* src/process.c: Export default filters and sentinels to Elisp.
[bpt/emacs.git] / src / ChangeLog
... / ...
CommitLineData
12013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * process.c: Export default filters and sentinels to Elisp.
4 (Qinternal_default_process_sentinel, Qinternal_default_process_filter):
5 New constants.
6 (pset_filter, pset_sentinel, make_process, Fset_process_filter)
7 (Fset_process_sentinel, Fformat_network_address):
8 Default to them instead of nil.
9 (server_accept_connection): Sentinels can't be nil any more.
10 (read_and_dispose_of_process_output): New function, extracted from
11 read_process_output.
12 (read_process_output): Use it; filters can't be nil.
13 (Finternal_default_process_filter): New function, extracted from
14 read_process_output.
15 (exec_sentinel_unwind): Remove function.
16 (exec_sentinel): Don't zilch sentinel while running.
17 (status_notify): Sentinels can't be nil.
18 (Finternal_default_process_sentinel): New function extracted from
19 status_notify.
20 (setup_process_coding_systems): Default filter is not nil any more.
21 (syms_of_process): Export new Elisp functions and initialize
22 new constants.
23 * lisp.h (make_lisp_proc): New function.
24
252013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
26
27 * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart.
28
292013-05-14 Eli Zaretskii <eliz@gnu.org>
30
31 * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT
32 unless we know that the window w is a leaf window.
33 Another attempt at solving bug#14062.
34
352013-05-14 Jan Djärv <jan.h.d@swipnet.se>
36
37 * nsfont.m (ns_spec_to_descriptor): Retain and autorelease
38 fdesc (Bug#14375).
39
402013-05-12 Paul Eggert <eggert@cs.ucla.edu>
41
42 * image.c (gif_load): Check that subimages fit (Bug#14345).
43
442013-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
45
46 * lread.c (skip_dyn_eof): New function.
47 (read1): Use it to skip the end of a file in response to #@00.
48
49 * doc.c (get_doc_string): Slightly relax the sanity checking.
50
512013-05-09 Jan Djärv <jan.h.d@swipnet.se>
52
53 * nsfns.m: Include IOGraphicsLib.h if Cocoa.
54 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare.
55 (MonitorInfo): New struct.
56 (free_monitors, ns_screen_name, ns_make_monitor_attribute_list)
57 (Fns_display_monitor_attributes_list): New functions.
58 (display-usable-bounds): Remove.
59 (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and
60 Qsource.
61
622013-05-09 Paul Eggert <eggert@cs.ucla.edu>
63
64 * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION.
65 (GTK_CHECK_VERSION): New macro, if not already defined.
66 All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc.
67 replaced by GTK_CHECK_VERSION.
68
692013-05-08 Paul Eggert <eggert@cs.ucla.edu>
70
71 * xterm.h (GTK_PREREQ): New macro.
72 All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed
73 to use this macro instead, for consistency and clarity.
74
752013-05-08 Eli Zaretskii <eliz@gnu.org>
76
77 * xdisp.c (row_for_charpos_p): New function, with code of
78 cursor_row_p, but accepts an additional argument CHARPOS instead
79 of using a hardcoded PT.
80 (cursor_row_p): Call row_for_charpos_p with 2nd argument PT.
81 (row_containing_pos): Call row_for_charpos_p instead of partially
82 doing the same. Fixes cursor positioning under longlines-mode
83 when longlines-show-effect includes more than one newline, when
84 moving the cursor vertically up.
85
862013-05-08 Juanma Barranquero <lekktu@gmail.com>
87
88 * makefile.w32-in (ACL_H): New macro.
89 ($(BLD)/fileio.$(O)): Update dependencies.
90
912013-05-07 Paul Eggert <eggert@cs.ucla.edu>
92
93 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
94 * Makefile.in (LIB_ACL): New macro.
95 (LIBACL_LIBS): Remove.
96 (LIBES): Use LIB_ACL, not LIBACL_LIBS.
97 * fileio.c: Include <acl.h>.
98 Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL.
99 (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by
100 !acl_errno_valid.
101 (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling
102 it ourselves.
103
104 * unexelf.c: Don't assume ElfW (Half) fits in int.
105 (entry_address, find_section, unexec): Use ptrdiff_t, not int,
106 when dealing with ElfW (Half) values, since they can exceed 2**31
107 on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes.
108 (entry_address): Omit unused NUM arg. All uses changed.
109
1102013-05-07 Juri Linkov <juri@jurta.org>
111
112 * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n'
113 to the string converted from number with `Fnumber_to_string'.
114 (Bug#14254)
115
1162013-05-07 Paul Eggert <eggert@cs.ucla.edu>
117
118 * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4.
119 This fixes a problem introduced by my previous change.
120
1212013-05-07 Glenn Morris <rgm@gnu.org>
122
123 * lread.c (readchar): Don't read from a dead buffer. (Bug#14280)
124
1252013-05-07 Jan Djärv <jan.h.d@swipnet.se>
126
127 * xfns.c: Move misplaced ifndef USE_GTK from previous checkin.
128
1292013-05-07 Paul Eggert <eggert@cs.ucla.edu>
130
131 Static checking by GCC 4.8.0.
132 * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors)
133 (x_get_monitor_for_frame, x_make_monitor_attribute_list)
134 (x_get_monitor_attributes_fallback)
135 (x_get_monitor_attributes_xinerama)
136 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes):
137 Define only if USE_GTK.
138 (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR.
139 (x_get_monitor_attributes_fallback): Omit unused locals.
140 (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list):
141 Use double, not float, to avoid mixed-mode floating point arithmetic.
142
1432013-05-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
144 Jan Djärv <jan.h.d@swipnet.se>
145
146 * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS)
147 (XINERAMA_CFLAGS): New macros.
148 (ALL_CFLAGS, LIBES): Use them.
149
150 * xfns.c: Include <X11/extensions/Xrandr.h> if HAVE_XRANDR, and
151 include <X11/extensions/Xinerama.h> if HAVE_XINERAMA.
152 (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables.
153 (syms_of_xfns): DEFSYM them.
154 (struct MonitorInfo): New struct.
155 (x_get_net_workarea, free_monitors, x_get_monitor_for_frame)
156 (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback)
157 (x_get_monitor_attributes_xrandr, x_get_monitor_attributes)
158 (x_get_monitor_attributes_xinerama): New functions.
159 (Fx_display_monitor_attributes_list): New primitive.
160 (syms_of_xfns): Defsubr it.
161
162 * xterm.h (x_display_info): Add Xatom_net_workarea and
163 Xatom_net_current_desktop.
164
165 * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea
166 and dpyinfo->Xatom_net_current_desktop.
167
1682013-05-06 Eli Zaretskii <eliz@gnu.org>
169
170 * xdisp.c (pos_visible_p): Use the special code for finding the
171 beginning of a display property or overlay for any "replacing"
172 display property, not just for display strings. This solves
173 incorrect reporting of position by posn-at-point. (Bug#14241)
174
1752013-05-06 Paul Eggert <eggert@cs.ucla.edu>
176
177 * unexelf.c: Fix some 32-bit integer problems, notably when debugging.
178 Include <limits.h>, <stdbool.h>, <intprops.h>, <verify.h>.
179 Verify that ElfW (Half) fits in int.
180 (fatal): Use same signature as lisp.h.
181 (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can
182 configure and build with -DUNEXELF_DEBUG without worrying about
183 other modules that use DEBUG.
184 (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints
185 possibly-wide integers now uses it instead of plain fprintf.
186 (entry_address): New function, which avoids problems with 32-bit
187 overflow on 64-bit hosts.
188 (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it.
189 (round_up): Don't assume the remainder fits in int.
190 (find_section): Use bool for boolean. Simplify debug code.
191 (unexec): Don't assume file sizes fit in int or size_t.
192 Omit unnecessary trailing newline in 'fatal' format.
193 Use strerror rather than outputting decimal error number.
194 Remove unused code when emacs is not defined;
195 this file relies on Emacs now.
196 Don't assume e_phnum and e_shnum are positive.
197
198 * regex.c: Fix problems when DEBUG is defined.
199 (extract_number, extract_number_and_incr): Define regardless of
200 whether DEBUG is defined; that's simpler and makes the code less
201 likely to go stale in the normal case when DEBUG is not defined.
202 Return int rather than taking an int * arg. All callers changed.
203 (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4):
204 Remove, replacing with ...
205 (DEBUG_PRINT): New macro. All callers changed.
206 (DEBUG_COMPILES_ARGUMENTS): New macro.
207 (print_fastmap, print_partial_compiled_pattern) [DEBUG]:
208 (print_compiled_pattern, print_double_string) [DEBUG]:
209 Use prototype rather than old-style definition.
210 (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]:
211 (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]:
212 (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]:
213 (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]:
214 Don't assume ptrdiff_t, size_t, and long are the same width as int.
215 (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t.
216 This matters only when DEBUG is defined.
217
2182013-05-05 Eli Zaretskii <eliz@gnu.org>
219
220 * xdisp.c (set_iterator_to_next): Set the
221 ignore_overlay_strings_at_pos_p flag only if we are _really_
222 iterating over an overlay string, as indicated by the
223 current.overlay_string_index member. (Bug#14306)
224
2252013-05-05 Jan Djärv <jan.h.d@swipnet.se>
226
227 * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle
228 to where it is used, to avoid autorelease issues (Bug#14050).
229
2302013-05-05 Paul Eggert <eggert@cs.ucla.edu>
231
232 `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273).
233 * fileio.c (syms_of_fileio): Implement this.
234 * filelock.c (create_lock_file): If symbolic links don't work, so
235 we use a regular file as a lock file, do not fsync the lock file;
236 it's not needed.
237
2382013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
239
240 * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp.
241 (syms_of_minibuf): Adjust accodingly.
242 * lread.c (Fread):
243 * callint.c (Fcall_interactively): Adjust calls accordingly.
244
2452013-05-04 Eli Zaretskii <eliz@gnu.org>
246
247 * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that
248 w->contents is a buffer before computing everything else.
249 Use parentheses to disambiguate last part of the condition.
250
251 * w32fns.c (w32_wnd_proc): Remove temporary code used to trap
252 assertion violations. (Bug#14062)
253
2542013-05-01 David Reitter <david.reitter@gmail.com>
255
256 * nsfns.m (ns_tooltip): Initialize.
257
2582013-04-28 Eli Zaretskii <eliz@gnu.org>
259
260 * coding.c (decode_coding_gap): Don't remove the character before
261 a newline unless it's a CR character. (Bug#14287)
262
2632013-04-28 Dan Nicolaescu <dann@gnu.org>
264
265 * dispextern.h (struct face): Move enum face_underline_type
266 earlier so that bitfields can be in the same word.
267
2682013-04-28 Jan Djärv <jan.h.d@swipnet.se>
269
270 * nsfns.m (handlePanelKeys): New function.
271 (EmacsOpenPanel:performKeyEquivalent:)
272 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
273 arrows/function/control and copy/paste keys (Bug#14296).
274
2752013-04-27 Juri Linkov <juri@jurta.org>
276
277 * callint.c (Fcall_interactively): Call `Qread_number' for
278 interactive code letter `n' instead of using duplicate code.
279 (Bug#14254)
280
2812013-04-27 Paul Eggert <eggert@cs.ucla.edu>
282
283 * systime.h (make_timeval): Declare as 'const'.
284
2852013-04-27 Kenichi Handa <handa@gnu.org>
286
287 * font.c (font_open_entity): Always open a font of manageable
288 size.
289
2902013-04-26 Paul Eggert <eggert@cs.ucla.edu>
291
292 Port better to AIX (Bug#14258).
293 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
294 to pacify AIX xlc.
295
2962013-04-24 Kenichi Handa <handa@gnu.org>
297
298 * coding.c (decode_coding_iso_2022): When an invalid escape
299 sequence is encountered, reset the invocation and designation
300 status to the safest one.
301
3022013-04-22 Paul Eggert <eggert@cs.ucla.edu>
303
304 * Makefile.in (bootstrap-clean): Remove stamp-h1 too.
305 Without this fix, "make distclean" leaves stamp-h1 behind.
306
3072013-04-20 Erik Charlebois <erikcharlebois@gmail.com>
308
309 * w32fns.c (w32_fullscreen_rect): New function to compute the
310 window rectangle for the given fullscreen mode.
311 (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no
312 longer tunes the window size. This keeps the window's edges flush
313 with the screen and allows the taskbar to hide itself in fullboth.
314
315 * w32term.c (w32fullscreen_hook): 'fullboth' now shows without
316 window decorations and uses the entire screen.
317
318 * w32term.h (w32_fullscreen_rect) Add prototype.
319 (struct w32_output): Replace normal_width, normal_height,
320 normal_top, and normal_left members with a single normal_placement
321 struct.
322 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP):
323 Remove macros.
324 (FRAME_NORMAL_PLACEMENT): New macro.
325
3262013-04-16 Juanma Barranquero <lekktu@gmail.com>
327
328 * minibuf.c (Ftest_completion): Silence compiler warning.
329
3302013-04-15 Eli Zaretskii <eliz@gnu.org>
331
332 * w32fns.c (w32_wnd_proc): Add more assertions to investigate
333 bug#14062.
334
335 * frame.h (WINDOW_FRAME): Protect macro and its argument with
336 parentheses.
337
338 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
339 (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P)
340 (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with
341 parentheses where appropriate.
342
3432013-04-14 Paul Eggert <eggert@cs.ucla.edu>
344
345 * keyboard.c (timer_start_idle): Remove no-longer-used local.
346
3472013-04-14 Eli Zaretskii <eliz@gnu.org>
348
349 * buffer.c (syms_of_buffer) <left-margin-width, right-margin-width>
350 <left-fringe-width, right-fringe-width, fringes-outside-margins>:
351 Mention in the doc string that setting these variables takes
352 effect only after a call to set-window-buffer. (Bug#14200)
353
3542013-04-13 Eli Zaretskii <eliz@gnu.org>
355
356 * indent.c (Fvertical_motion): Don't consider display strings on
357 overlay strings as display strings on the buffer position we
358 started from. This prevents vertical cursor motion from jumping
359 more than one line when there's an overlay string with a display
360 property at end of line.
361 Reported by Karl Chen <Karl.Chen@quarl.org> in
362 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
363
3642013-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
365
366 * window.c (select_window): `record_buffer' even if window is
367 already selected (bug#14191).
368
3692013-04-11 Eli Zaretskii <eliz@gnu.org>
370
371 * window.c (Fwindow_end): Test more flags, including the buffer's
372 last_overlay_modified flag, to determine whether the window's
373 display is really up-to-date. Prevents the function from
374 returning a stale value. (Bug#14170)
375 (Fwindow_line_height): Fix the test for up-to-date-ness of the
376 current matrix.
377
3782013-04-10 Eli Zaretskii <eliz@gnu.org>
379
380 * frame.c (do_switch_frame): Mark the TTY frame we switch to as
381 garbaged only if it is not already the top frame on its TTY.
382 This prevents flickering due to constant redrawing of TTY frames when
383 there are GUI frames open in the same session. (Bug#13864)
384
3852013-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
386
387 * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead
388 of marking the idle timers directly.
389
3902013-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
391
392 * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash
393 tables (bug#14054).
394
3952013-04-08 Stefan Monnier <monnier@iro.umontreal.ca>
396
397 * window.c (select_window): Don't record_buffer while the invariant is
398 temporarily broken (bug#14161).
399
400 * fns.c (Fdelq): Don't assume !NILP => CONSP.
401
4022013-04-07 Eli Zaretskii <eliz@gnu.org>
403
404 * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT.
405
4062013-04-07 Romain Francoise <romain@orebokech.com>
407
408 Ignore additional platform-specific ACL errors (Bug#13702).
409 * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib.
410 (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it.
411
4122013-03-31 Jan Djärv <jan.h.d@swipnet.se>
413
414 * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking
415 f->output_data.ns.
416
4172013-04-07 Paul Eggert <eggert@cs.ucla.edu>
418
419 Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783).
420 This bug was introduced by my 2013-02-25 change that simplified
421 data_start configuration. Without this change, on GNU/Linux
422 an Emacs configured with --enable-profiling fails immediately
423 due to a profiler signal.
424 * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link
425 with these flags. On platforms where special flags are needed
426 when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS.
427 (ALL_CFLAGS): Remove $(PROFILING_CFLAGS).
428 (.c.o, .m.o): Compile with $(PROFILING_CFLAGS).
429
4302013-04-07 Dmitry Antipov <dmantipov@yandex.ru>
431
432 Get rid of some platform-specific functions examining window
433 system and its capabilities. This is a partial rework of the
434 2013-04-05 change.
435 * lisp.h (have_menus_p): Remove prototype. This function is
436 replaced with platform-independent window_system_available.
437 (check_window_system): Move to...
438 * frame.h (decode_window_system_frame, window_system_available):
439 ...here, add new prototypes.
440 * frame.c (window_system_available, decode_window_system_frame):
441 New functions.
442 (check_window_system): Platform-independent now.
443 * xterm.h (x_in_use): Remove declaration.
444 (check_x_frame):
445 * w32term.h (check_x_frame):
446 * nsterm.h (check_x_frame): Remove prototypes. This function
447 is replaced with platform-independent decode_window_system_frame.
448 * msdos.c (have_menus_p): Remove.
449 * nsfns.m (check_window_system, have_menus_p, check_ns_frame):
450 Remove platform-specific functions. Use check_window_system,
451 decode_window_system_frame and check_ns_display_info where
452 appropriate. Minor style and comment tweaks.
453 * w32fns.c (w32_in_use, check_window_system, have_menus_p)
454 (check_x_frame): Likewise.
455 * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame):
456 Likewise.
457 * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m:
458 * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c:
459 * xmenu.c, xselect.c: All related users changed.
460
4612013-04-03 Kenichi Handa <handa@gnu.org>
462
463 The following changes is to optimize the code for reading UTF-8
464 files.
465
466 * coding.c (check_ascii): Rename from detect_ascii. Return value
467 changed. Check EOL format. Do not call adjust_coding_eol_type
468 here.
469 (check_utf_8): New function.
470 (adjust_coding_eol_type): Do nothing if already adjusted.
471 (detect_coding): Compare the return value of check_ascii with
472 coding->src_bytes. Call adjust_coding_eol_type if necessary.
473 (decode_coding_gap): Optimize for valid UTF-8.
474
4752013-03-21 Kenichi Handa <handa@gnu.org>
476
477 * coding.c (syms_of_coding): Cancel previous change.
478
479 * insdel.c (insert_from_gap): Fix previous change.
480
4812013-04-05 Dmitry Antipov <dmantipov@yandex.ru>
482
483 Consistently use platform-specific function to detect window system.
484 * lisp.h (check_window_system): New prototype. This function is
485 going to replace check_x, check_w32 and check_ns.
486 (have_menus_p): Mention msdos.c in comment.
487 * fontset.c (check_window_system_func): Remove. Adjust all users.
488 * fontset.h (check_window_system_func): Remove prototype.
489 * nsterm.h (check_ns):
490 * xterm.h (check_x):
491 * w32term.h (check_w32): Likewise.
492 * menu.c (Fx_popup_menu): Use check_window_system.
493 * msdos.c (check_window_system): Define for MS-DOS.
494 * nsfns.m (check_window_system): Define for NS. Adjust all users.
495 * w32fns.c (check_window_system): Likewise for MS-Windows.
496 * xfns.c (check_window_system): Likewise for X.
497 * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c:
498 * xfaces.c, xmenu.c: Use check_window_system where appropriate.
499
5002013-04-02 Paul Eggert <eggert@cs.ucla.edu>
501
502 Prefer < to > in range checks such as 0 <= i && i < N.
503 This makes it easier to visualize quantities on a number line.
504 This patch doesn't apply to all such range checks,
505 only to the range checks affected by the 2013-03-24 change.
506 This patch reverts most of the 2013-03-24 change.
507 * alloc.c (xpalloc, Fgarbage_collect):
508 * ccl.c (ccl_driver, resolve_symbol_ccl_program):
509 * character.c (string_escape_byte8):
510 * charset.c (read_hex):
511 * data.c (cons_to_unsigned):
512 * dispnew.c (update_frame_1):
513 * doc.c (Fsubstitute_command_keys):
514 * doprnt.c (doprnt):
515 * editfns.c (hi_time, decode_time_components):
516 * fileio.c (file_offset):
517 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
518 * font.c (font_intern_prop):
519 * frame.c (x_set_alpha):
520 * gtkutil.c (get_utf8_string):
521 * indent.c (check_display_width):
522 * keymap.c (Fkey_description):
523 * lisp.h (FIXNUM_OVERFLOW_P, vcopy):
524 * lread.c (read1):
525 * minibuf.c (read_minibuf_noninteractive):
526 * process.c (wait_reading_process_output):
527 * search.c (Freplace_match):
528 * window.c (get_phys_cursor_glyph):
529 * xdisp.c (redisplay_internal):
530 * xsmfns.c (smc_save_yourself_CB):
531 Prefer < to > for range checks.
532 * dispnew.c (sit_for): Don't mishandle NaNs.
533 This fixes a bug introduced in the 2013-03-24 change.
534 * editfns.c (decode_time_components): Don't hoist comparison.
535 This fixes another bug introduced in the 2013-03-24 change.
536
5372013-03-31 Dmitry Antipov <dmantipov@yandex.ru>
538
539 * frame.h (struct frame): Drop scroll_bottom_vpos
540 member becaue all real users are dead long ago.
541 (FRAME_SCROLL_BOTTOM_VPOS): Remove.
542 * xdisp.c (redisplay_internal): Adjust user.
543
5442013-03-30 Darren Ho <darren.hoo@gmail.com> (tiny change)
545
546 * nsmenu.m (showAtX:Y:for:): setLevel to
547 NSPopUpMenuWindowLevel (Bug#13998).
548
5492013-03-30 Jan Djärv <jan.h.d@swipnet.se>
550
551 * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open)
552 (ns_check_pending_open_menu): Declare.
553
554 * nsmenu.m (ns_update_menubar): Correct NSTRACE.
555 (x_activate_menubar): Update the menu with title that matches
556 ns_get_pending_menu_title, and call
557 ns_check_pending_openmenu (Bug#12698).
558 (menuWillOpen:): New method.
559 (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698).
560
561 * nsterm.m (menu_will_open_state, menu_mouse_point)
562 (menu_pending_title): New varaibles.
563 (ns_get_pending_menu_title, ns_check_menu_open)
564 (ns_check_pending_open_menu): New functions.
565
5662013-03-29 Dmitry Antipov <dmantipov@yandex.ru>
567
568 * indent.c (current_column_bol_cache): Remove leftover which is not
569 used in Fmove_to_column any more.
570 (current_column, scan_for_column): Adjust users.
571 * keyboard.c (last_point_position_buffer, last_point_position_window):
572 Remove leftovers which are not used for recording undo any more.
573 (command_loop_1, syms_of_keyboard): Adjust users.
574 * xdisp.c (last_max_ascent): Remove leftover which is not used in
575 redisplay_window any more.
576 (move_it_to): Adjust user.
577
5782013-03-29 Juanma Barranquero <lekktu@gmail.com>
579
580 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)):
581 Update dependencies.
582
5832013-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
584
585 * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER)
586 (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid
587 forward references.
588
5892013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
590
591 * window.h (struct window): Replace hchild, vchild and buffer slots
592 with the only contents slot. This is possible because each valid
593 window may have either the child window (in vertical or horizontal
594 combination) or buffer to display (for the leaf window). Using that,
595 a lof of operations to traverse and/or change window hierarchies may
596 be simplified. New member horizontal is used to distinguish between
597 horizontal and vertical combinations of internal windows.
598 (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P)
599 (WINDOW_VERTICAL_COMBINATION_P): New macros.
600 (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes.
601 * window.c (wset_hchild, wset_vchild): Remove. Adjust all users.
602 Use contents slot, not buffer, where appropriate.
603 (wset_combination): New function.
604 (wset_buffer): Add eassert.
605 (Fframe_first_window): Simplify the loop reaching first window.
606 (Fwindow_buffer): Use WINDOW_LEAF_P.
607 (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P.
608 (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P.
609 (unshow_buffer): Convert initial debugging check to eassert.
610 (replace_window, recombine_windows, Fdelete_other_windows_internal)
611 (make_parent_window, window_resize_check, window_resize_apply)
612 (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal)
613 (Fset_window_configuration, delete_all_child_windows, save_window_save):
614 Adjust to match struct window changes.
615 (window_loop): Check for broken markers in CHECK_ALL_WINDOWS.
616 (mark_window_cursors_off, count_windows, get_leaf_windows)
617 (foreach_window_1): Simplify the loop.
618 * alloc.c (mark_object): Do not check for the leaf window because
619 internal windows has no glyph matrices anyway.
620 * dispnew.c (clear_window_matrices, showing_window_margins_p)
621 (allocate_matrices_for_window_redisplay, fake_current_matrices)
622 (allocate_matrices_for_frame_redisplay, free_window_matrices)
623 (build_frame_matrix_from_window_tree, mirror_make_current)
624 (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers)
625 (update_window_tree, set_window_update_flags): Simplify the loop.
626 (sync_window_with_frame_matrix_rows): Enforce live window.
627 Use contents slot, not buffer, where appropriate.
628 * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P
629 and WINDOW_HORIZONTAL_COMBINATION_P.
630 (make_frame_visible_1): Simplify the loop.
631 Use contents slot, not buffer, where appropriate.
632 * xdisp.c (hscroll_window_tree, mark_window_display_accurate)
633 (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree)
634 (expose_window_tree): Likewise.
635 Use contents slot, not buffer, where appropriate.
636 * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW
637 to avoid deleted windows. Use contents slot instead of buffer.
638 * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c:
639 * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c:
640 * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c:
641 * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate.
642
6432013-03-28 Eli Zaretskii <eliz@gnu.org>
644
645 * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help
646 identify the reasons for assertion violations in bug#14062 and
647 similar ones.
648 (Fx_show_tip): Fix compilation error under
649 "--enable-check-lisp-object-type". (Bug#14073)
650
651 * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN.
652 Reported by <rzl24ozi@gmail.com>.
653
6542013-03-28 Dmitry Antipov <dmantipov@yandex.ru>
655
656 * xdisp.c (with_echo_area_buffer_unwind_data): Save window
657 start marker...
658 (unwind_with_echo_area_buffer): ...to restore it here.
659 This is needed to ensure that...
660 (redisplay_window): ...both window markers are valid here,
661 which is verified by eassert.
662 * editfns.c (save_excursion_save): Do not assume that
663 selected_window always displays the buffer.
664 * buffer.c (Fbuffer_swap_text): Adjust window start markers.
665 Fix comment.
666
6672013-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
668
669 * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for
670 the upcase table.
671
6722013-03-27 rzl24ozi <rzl24ozi@gmail.com> (tiny changes)
673
674 * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function.
675
6762013-03-27 Eli Zaretskii <eliz@gnu.org>
677
678 * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype,
679 since MinGW's w32api headers do. This avoids compiler warnings.
680
681 * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define
682 if already defined.
683
6842013-03-26 Eli Zaretskii <eliz@gnu.org>
685
686 * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64.
687
6882013-03-26 Jan Djärv <jan.h.d@swipnet.se>
689
690 * gtkutil.c (style_changed_cb): Check if frame is live and an
691 X frame (Bug#14038).
692
6932013-03-26 Eli Zaretskii <eliz@gnu.org>
694
695 * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]:
696 Define only for _WIN32_WINNT less than 0x0500.
697 (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for
698 MinGW64.
699 Move inclusion of time.h before sys/time.h, so that MinGW64 could
700 see its own definitions of 'struct timeval' and 'struct timezone'.
701
702 Fix incompatibilities between MinGW.org and MinGW64 headers.
703 * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined.
704
705 * w32.c (REPARSE_DATA_BUFFER): Guard with
706 MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
707
7082013-03-25 Jan Djärv <jan.h.d@swipnet.se>
709
710 * xterm.c: Include X11/XKBlib.h
711 (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041).
712
7132013-03-24 Andreas Schwab <schwab@linux-m68k.org>
714
715 * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are
716 written backwards.
717 * blockinput.h (input_blocked_p): Likewise.
718 * bytecode.c (exec_byte_code): Likewise.
719 * callproc.c (call_process_kill, call_process_cleanup)
720 (Fcall_process): Likewise.
721 * ccl.c (ccl_driver, resolve_symbol_ccl_program)
722 (Fccl_execute_on_string): Likewise.
723 * character.c (string_escape_byte8): Likewise.
724 * charset.c (read_hex): Likewise.
725 * cm.c (calccost): Likewise.
726 * data.c (cons_to_unsigned): Likewise.
727 * dired.c (directory_files_internal, file_name_completion):
728 Likewise.
729 * dispnew.c (scrolling_window, update_frame_1, Fsleep_for)
730 (sit_for): Likewise.
731 * doc.c (Fsubstitute_command_keys): Likewise.
732 * doprnt.c (doprnt): Likewise.
733 * editfns.c (hi_time, decode_time_components, Fformat): Likewise.
734 * emacsgtkfixed.c: Likewise.
735 * fileio.c (file_offset, Fwrite_region): Likewise.
736 * floatfns.c (Fexpt, fmod_float): Likewise.
737 * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
738 Likewise.
739 * font.c (font_intern_prop): Likewise.
740 * frame.c (x_set_alpha): Likewise.
741 * gtkutil.c (get_utf8_string): Likewise.
742 * indent.c (check_display_width): Likewise.
743 * intervals.c (create_root_interval, rotate_right, rotate_left)
744 (split_interval_right, split_interval_left)
745 (adjust_intervals_for_insertion, delete_node)
746 (interval_deletion_adjustment, adjust_intervals_for_deletion)
747 (merge_interval_right, merge_interval_left, copy_intervals)
748 (set_intervals_multibyte_1): Likewise.
749 * keyboard.c (gobble_input, append_tool_bar_item): Likewise.
750 * keymap.c (Fkey_description): Likewise.
751 * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise.
752 * lread.c (openp, read_integer, read1, string_to_number):
753 Likewise.
754 * menu.c (ensure_menu_items): Likewise.
755 * minibuf.c (read_minibuf_noninteractive): Likewise.
756 * print.c (printchar, strout): Likewise.
757 * process.c (create_process, Faccept_process_output)
758 (wait_reading_process_output, read_process_output, send_process)
759 (wait_reading_process_output): Likewise.
760 * profiler.c (make_log, handle_profiler_signal): Likewise.
761 * regex.c (re_exec): Likewise.
762 * regex.h: Likewise.
763 * search.c (looking_at_1, Freplace_match): Likewise.
764 * sysdep.c (get_child_status, procfs_ttyname)
765 (procfs_get_total_memory): Likewise.
766 * systime.h (EMACS_TIME_VALID_P): Likewise.
767 * term.c (dissociate_if_controlling_tty): Likewise.
768 * window.c (get_phys_cursor_glyph): Likewise.
769 * xdisp.c (init_iterator, redisplay_internal, redisplay_window)
770 (try_window_reusing_current_matrix, try_window_id, pint2hrstr):
771 Likewise.
772 * xfns.c (Fx_window_property): Likewise.
773 * xmenu.c (set_frame_menubar): Likewise.
774 * xselect.c (x_get_window_property, x_handle_dnd_message):
775 Likewise.
776 * xsmfns.c (smc_save_yourself_CB): Likewise.
777 * xterm.c (x_scroll_bar_set_handle): Likewise.
778
7792013-03-24 Dmitry Antipov <dmantipov@yandex.ru>
780
781 * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument
782 to be optional or nil. Adjust comment and convert it to docstring.
783 * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message.
784 * frame.c (display_x_get_resource, Fx_get_resource): Break long line.
785
7862013-03-24 Paul Eggert <eggert@cs.ucla.edu>
787
788 Static checking by GCC 4.8-20130319.
789 * image.c (gif_load): Assume pass < 3 to pacify GCC.
790 * process.c (Fset_process_datagram_address)
791 (Fmake_network_process): Check get_lisp_to_sockaddr_size return value.
792 * xdisp.c (get_char_face_and_encoding):
793 (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized.
794 (get_glyph_face_and_encoding): Prepare face before possibly using it.
795 (get_per_char_metric): Don't use CHAR2B if it might not be initialized.
796
7972013-03-24 Ken Brown <kbrown@cornell.edu>
798
799 * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to
800 fix compilation on 64-bit Cygwin, where underscores are not
801 automatically prepended.
802
803 * w32term.c (w32_initialize): Silence compiler warning.
804
8052013-03-23 Eli Zaretskii <eliz@gnu.org>
806
807 * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH,
808 FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static
809 variables, to save and restore frame dimensions.
810 Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position
811 after returning from a 'fullscreen' configuration.
812 use SendMessage instead of PostMessage to send the SC_RESTORE message,
813 to avoid races between the main thread and the input thread.
814
815 * w32term.h (struct w32_output): New members normal_width,
816 normal_height, normal_top, normal_left, and prev_fsmode.
817 (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP)
818 (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these
819 members of a frame.
820
821 * w32term.c (w32fullscreen_hook): Record last value of the frame's
822 'fullscreen' parameter. Always record previous width and height
823 of the frame, except when switching out of maximized modes, so
824 that they could be restored correctly, instead of resetting to the
825 default frame dimensions. Send SC_RESTORE command to the frame,
826 unless we are going to send SC_MAXIMIZE, to restore the frame
827 resize hints in the mouse pointer shown by the window manager.
828 (Bug#14032)
829
830 * frame.c (get_frame_param): Now extern for WINDOWSNT as well.
831
832 * lisp.h (get_frame_param): Adjust conditions for prototype
833 declaration.
834
8352013-03-22 Ken Brown <kbrown@cornell.edu>
836
837 * unexcw.c: Drop unneeded inclusion of w32common.h.
838 (report_sheap_usage): Declare.
839 (read_exe_header): Add magic numbers for x86_64.
840 (fixup_executable): Fix printf format specifier for unsigned long
841 argument.
842
8432013-03-22 Dmitry Antipov <dmantipov@yandex.ru>
844
845 * frame.h (struct frame): Put menu_bar_window under #ifdef
846 because this member is not needed when X toolkit is in use.
847 (fset_menu_bar_window):
848 * dispnew.c (clear_current_matrices, clear_desired_matrices)
849 (free_glyphs, update_frame):
850 * xdisp.c (expose_frame): Likewise.
851 (display_menu_bar): Likewise. Remove redundant eassert.
852 * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X
853 toolkit is in use.
854
8552013-03-21 Paul Eggert <eggert@cs.ucla.edu>
856
857 Use functions and constants to manipulate Lisp_Save_Value objects.
858 This replaces code that used macros and strings and token-pasting.
859 The change makes the C source a bit easier to follow,
860 and shrinks the Emacs executable a bit.
861 * alloc.c: Verify some properties of Lisp_Save_Value's representation.
862 (make_save_value): Change 1st arg from string to enum. All callers
863 changed.
864 (INTX): Remove.
865 (mark_object): Use if, not #if, for GC_MARK_STACK.
866 * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER)
867 (XSAVE_OBJECT): Now functions, not macros.
868 (STRING_BYTES_BOUND): Now just a macro, not a constant too;
869 the constant was never used.
870 (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT)
871 (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ)
872 (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ)
873 (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY):
874 New constants.
875 (struct Lisp_Save_Value): Replace members area, type0, type1, type2,
876 type3 with a single member save_type. All uses changed.
877 (save_type, set_save_pointer, set_save_integer): New functions.
878 * print.c (PRINTX): Remove.
879
880 * alloc.c: Remove redundant static declarations.
881
8822013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
883
884 * window.h (struct window): Convert left_col, top_line, total_lines
885 and total_cols from Lisp_Objects to integers. Adjust comments.
886 (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines):
887 Remove.
888 (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL)
889 (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion.
890 * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c:
891 Adjust users where appropriate.
892
8932013-03-20 Dmitry Antipov <dmantipov@yandex.ru>
894
895 * frame.h (struct frame): Drop resx and resy because the same data is
896 available from window system-specific output context. Adjust users.
897 (default_pixels_per_inch_x, default_pixels_per_inch_y):
898 New functions to provide defaults when no window system available.
899 (FRAME_RES_X, FRAME_RES_Y): New macros.
900 (NUMVAL): Move from xdisp.c.
901 * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface)
902 (Ffont_face_attributes, Fopen_font):
903 * image.c (gs_load):
904 * w32font.c (fill_in_logfont):
905 * xdisp.c (calc_pixel_width_or_height):
906 * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them.
907 * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment.
908
9092013-03-20 Kenichi Handa <handa@gnu.org>
910
911 * coding.c (syms_of_coding): Initialize disable_ascii_optimization
912 to 1 (temporary workaround until a bug related to ASCII
913 optimization is fixed).
914
9152013-03-19 Dmitry Antipov <dmantipov@yandex.ru>
916
917 * window.c (Fwindow_combination_limit, Fset_window_combination_limit):
918 Signal error if window is not internal. Adjust docstring.
919 (delete_all_child_windows): Use combination_limit to save the buffer.
920 (Fset_window_configuration): Adjust accordingly.
921 * print.c (syms_of_print): Initialize debugging output not here...
922 (init_print_once): ...but in a new function here.
923 * lisp.h (init_print_once): Add prototype.
924 * emacs.c (main): Add call to init_print_once. Adjust comments.
925
9262013-03-18 Dmitry Antipov <dmantipov@yandex.ru>
927
928 * window.c (window_resize_check, window_resize_apply)
929 (window_from_coordinates, recombine_windows, set_window_buffer)
930 (make_parent_window, Fwindow_resize_apply, resize_frame_windows)
931 (Fsplit_window_internal, Fdelete_window_internal)
932 (freeze_window_starts): Use bool for booleans.
933 * window.h (window_frame_coordinates, resize_frame_windows)
934 (freeze_window_starts, set_window_buffer): Adjust prototypes.
935
9362013-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
937
938 * dispnew.c (bitch_at_user): Use `user-error'.
939
9402013-03-17 Ken Brown <kbrown@cornell.edu>
941
942 * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it
943 as return type of image_background. (Bug#13981)
944 * image.c (RGB_PIXEL_COLOR): Move to dispextern.h.
945
9462013-03-16 Jan Djärv <jan.h.d@swipnet.se>
947
948 * nsterm.m (updateFrameSize:): Change resize increments if needed.
949 (ns_select): Don't return with result uninitialized.
950
951 * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename
952 and getDirectory.
953
954 * nsfns.m (ns_filename_from_panel, ns_directory_from_panel):
955 New functions.
956 (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose
957 directories. If filename is nil, get directory name (Bug#13932).
958 Use getFilename and getDirectory.
959 (getFilename, getDirectory): New methods for EmacsSavePanel and
960 EmacsOpenPanel.
961 (ok:): In EmacsOpenPanel, if we can't choose directories, just return.
962
9632013-03-15 Paul Eggert <eggert@cs.ucla.edu>
964
965 * coding.c (decode_coding_gap): Fix typo caught by static checking.
966
9672013-03-15 Kenichi Handa <handa@gnu.org>
968
969 * insdel.c (insert_from_gap): New arg text_at_gap_tail.
970 (adjust_after_replace): Make it back to static. Delete the third
971 arg text_at_gap_tail. Cancel the code for handling it.
972
973 * coding.h (struct coding_system): New member eol_seen.
974
975 * coding.c (detect_ascii): New function.
976 (detect_coding): Set coding->head_ascii and coding->eol_seen only
977 when the source bytes are actually scanned. On detecting for
978 coding_category_utf_8_auto, call detect_ascii instead of scanning
979 source bytes directly.
980 (produce_chars): Call insert_from_gap with the new arg 0.
981 (encode_coding): Likewise.
982 (decode_coding_gap): Control ASCII optimization by the variable
983 disable_ascii_optimization instead of #ifndef .. #endif.
984 Deccode EOL format according to coding->eol_seen.
985 (syms_of_coding): Declare disable-ascii-optimization as a Lisp
986 variable.
987
988 * lisp.h (adjust_after_replace): Cancel externing it.
989 (insert_from_gap): Adjust prototype.
990
9912013-03-15 Eli Zaretskii <eliz@gnu.org>
992
993 * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and
994 FULLSCREEN_MAXIMIZED. (Bug#13935)
995
9962013-03-15 Dmitry Antipov <dmantipov@yandex.ru>
997
998 * region-cache.c (find_cache_boundary, move_cache_gap)
999 (insert_cache_boundary, delete_cache_boundaries, set_cache_region):
1000 Simplify debugging check and convert to eassert. Adjust comment.
1001 (pp_cache): Put under ENABLE_CHECKING.
1002
10032013-03-14 Eli Zaretskii <eliz@gnu.org>
1004
1005 * w32term.c (w32_read_socket) <WM_WINDOWPOSCHANGED>: Remove old
1006 and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE
1007 and WM_ACTIVATEAPP.
1008 (w32fullscreen_hook): If the frame is visible, reset
1009 f->want_fullscreen flag after changing the frame size. If the
1010 frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT.
1011 (Bug#13953)
1012
10132013-03-13 Daniel Colascione <dancol@dancol.org>
1014
1015 * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds
1016 too so that these builds can use Cygwin's file conversion
1017 functions. (We've been building and linking cygw32.o all along
1018 and just not using it.)
1019
10202013-03-13 Paul Eggert <eggert@cs.ucla.edu>
1021
1022 File synchronization fixes (Bug#13944).
1023 * Makefile.in (LIB_FDATASYNC): New macro.
1024 (LIBES): Use it.
1025 * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
1026 * fileio.c (Fwrite_region, write_region_inhibit_fsync):
1027 Don't worry about HAVE_FSYNC, since a substitute fsync is
1028 available if the system lacks one.
1029 (Fwrite_regin): Retry fsync if interrupted.
1030
10312013-03-13 Eli Zaretskii <eliz@gnu.org>
1032
1033 * w32term.c (w32_read_socket): If the Emacs frame is being
1034 activated, call w32fullscreen_hook, to make sure the new frame
1035 dimensions are in effect. (Bug#13937)
1036
10372013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
1038
1039 * xdisp.c (init_iterator): Simplify because both character and byte
1040 positions are either specified or -1. Add eassert. Adjust comment.
1041 * window.c (Fscroll_other_window): Use SET_PT_BOTH because both
1042 character and byte positions can be obtained from marker.
1043
10442013-03-13 Paul Eggert <eggert@cs.ucla.edu>
1045
1046 Static checking by Sun C 5.12.
1047 * alloc.c (buffer_memory_full) [REL_ALLOC]:
1048 * bytecode.c (exec_byte_code):
1049 * dispnew.c (init_display):
1050 * eval.c (error):
1051 * fileio.c (Fsubstitute_in_file_name):
1052 * keyboard.c (Fevent_convert_list):
1053 * keymap.c (Fsingle_key_description):
1054 * term.c (maybe_fatal, fatal):
1055 * xfns.c (Fx_display_backing_store, Fx_display_visual_class):
1056 * xsmfns.c (Fhandle_save_session):
1057 Omit unreachable code.
1058 * keymap.c (map_keymap_char_table_item): Cast void * to
1059 a function pointer type; the C Standard requires this.
1060
1061 * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out.
1062 Include <sys/param.h> unconditionally, as that works elsewhere and
1063 is simpler here. Include <sys/sysctl.h> if DARWIN_OS ||
1064 __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin
1065 and FreeBSD now.
1066
10672013-03-11 Paul Eggert <eggert@cs.ucla.edu>
1068
1069 * insdel.c (adjust_after_replace): Use bool for boolean.
1070
10712013-03-11 Stefan Monnier <monnier@iro.umontreal.ca>
1072
1073 * keyboard.c: Move keyboard decoding to read_key_sequence.
1074 (decode_keyboard_code): Remove.
1075 (tty_read_avail_input): Don't try to decode input.
1076 (read_decoded_char): New function.
1077 (read_key_sequence): Use it.
1078
10792013-03-10 Daniel Colascione <dancol@dancol.org>
1080
1081 * w32term.h (GUISTR, GUI_ENCODE_FILE, GUI_ENCODE_SYSTEM, GUI_FN)
1082 (GUI_SDATA, guichar_t): Macros to abstract out differences between
1083 NTGUI_UNICODE and !NTGUI_UNICODE builds, some moved out of
1084 w32fns.c.
1085
1086 * w32term.c (construct_drag_n_drop): Use the above macros to make
1087 drag-and-drop work for non-ASCII filenames in cygw32 builds.
1088
1089 * w32fns.c (x_set_name, x_set_title): Use the above macros to
1090 properly display non-ASCII frame titles in cygw32 builds.
1091
1092 * w32fns.c (Fw32_shell_execute): Use the above macros to properly
1093 call ShellExecute in cygw32 builds.
1094
1095 * w32fn.c (Fx_file_dialog): Use the above macros to simplify the
1096 common file dialog code.
1097
1098 * w32fns.c (Ffile_system_info): Remove from cygw32 builds, which
1099 can just use du like other systems.
1100
1101 * coding.c (from_unicode_buffer): Declare.
1102 * coding.c (from_unicode_buffer): Implement.
1103
11042013-03-10 Stefan Monnier <monnier@iro.umontreal.ca>
1105
1106 * lread.c: Minor cleanup.
1107 (FROM_FILE_P): New macro.
1108 (skip_dyn_bytes, unreadchar, read1): Use it.
1109 (read_list): Consolidate duplicated code.
1110
1111 * bytecode.c (struct byte_stack): Remove `constants' when unused.
1112
11132013-03-10 Eli Zaretskii <eliz@gnu.org>
1114
1115 * xdisp.c (display_tool_bar_line, redisplay_tool_bar)
1116 (redisplay_internal, set_cursor_from_row, try_window)
1117 (try_window_id, dump_glyph_row, extend_face_to_end_of_line)
1118 (display_line, notice_overwritten_cursor)
1119 (mouse_face_from_buffer_pos, note_mouse_highlight):
1120 Use MATRIX_ROW_DISPLAYS_TEXT_P.
1121 (note_mouse_highlight): Use MATRIX_ROW_GLYPH_START.
1122 (mouse_face_from_string_pos, fast_find_string_pos):
1123 Use MATRIX_ROW_VPOS.
1124
1125 * xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
1126
1127 * w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
1128
1129 * xdisp.c (try_cursor_movement): Use MATRIX_ROW and
1130 MATRIX_MODE_LINE_ROW.
1131
1132 * dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW.
1133
11342013-03-10 handa <handa@gnu.org>
1135
1136 * lisp.h (adjust_after_replace): Extern it.
1137
1138 * coding.c (detect_coding): Cound the heading ASCII bytes in the
1139 case of detection for coding_category_utf_8_auto.
1140 (decode_coding_gap) [not CODING_DISABLE_ASCII_OPTIMIZATION]:
1141 Skip decoding if all bytes are ASCII.
1142
1143 * insdel.c (adjust_after_replace): Make it public. New arg
1144 text_at_gap_tail.
1145 (adjust_after_insert): Call adjust_after_replace with the new arg
1146 value 0.
1147
11482013-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
1149
1150 * keyboard.h (EVENT_START, EVENT_END, POSN_WINDOW, POSN_POSN)
1151 (POSN_WINDOW_POSN, POSN_TIMESTAMP): Be careful since events may come
1152 from Elisp via unread-command-events.
1153
1154 * keyboard.c (access_keymap_keyremap): Accept nil return value from
1155 functions to mean "no change".
1156
11572013-03-08 Paul Eggert <eggert@cs.ucla.edu>
1158
1159 region-cache.c, scroll.c, search.c: Use bool for booleans.
1160 * lisp.h (compile_pattern):
1161 * scroll.c (do_scrolling, do_direct_scrolling):
1162 * search.c (struct regexp_cache, compile_pattern_1)
1163 (compile_pattern, string_match_1, search_command)
1164 (trivial_regexp_p, search_buffer, Freplace_match, match_limit)
1165 (search_regs_saved, Fregexp_quote):
1166 Use bool for boolean.
1167 * region-cache.c (region_cache_forward, region_cache_backward):
1168 Fix comments to match code: these functions return int, not boolean.
1169
11702013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
1171
1172 * search.c (find_newline): Accept start and end byte positions
1173 as arguments and allow -1 if not known.
1174 (find_newline_no_quit): Likewise for start position.
1175 * lisp.h (find_newline, find_newline_no_quit): Adjust prototype.
1176 * bidi.c (bidi_find_paragraph_start): Pass byte position to
1177 find_newline_no_quit, thus eliminating CHAR_TO_BYTE.
1178 * editfns.c (Fconstrain_to_field): Break long line.
1179 Adjust call to find_newline.
1180 * indent.c (vmotion): Adjust calls to find_newline_no_quit.
1181 Use DEC_BOTH to start next search from the previous buffer
1182 position, where appropriate.
1183 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
1184 (get_visually_first_element, move_it_vertically_backward): Likewise.
1185 Obtain byte position from the display iterator, where appropriate.
1186
11872013-03-08 Paul Eggert <eggert@cs.ucla.edu>
1188
1189 print.c, process.c: Use bool for booleans.
1190 * lisp.h (wait_reading_process_output):
1191 * print.c (print_output_debug_flag, PRINTDECLARE, printchar)
1192 (strout, debug_output_compilation_hack, float_to_string, print)
1193 (print_object):
1194 * process.c (kbd_is_on_hold, inhibit_sentinels, process_output_skip)
1195 (decode_status, status_message, create_process, create_pty)
1196 (Fmake_network_process, Fnetwork_interface_info)
1197 (wait_reading_process_output, read_process_output)
1198 (write_queue_push, write_queue_pop, process_send_signal)
1199 (handle_child_signal, keyboard_bit_set, kbd_on_hold_p):
1200 * process.h (struct Lisp_Process, inhibit_sentinels, kbd_on_hold_p):
1201 Use bool for booleans.
1202 * process.c (Fnetwork_interface_list): Remove unused local.
1203 (connect_counter): Now EMACS_INT, not int.
1204
12052013-03-08 Dmitry Antipov <dmantipov@yandex.ru>
1206
1207 * bidi.c (bidi_fetch_char): Swap first and second arguments
1208 to match other functions accepting character and byte positions.
1209 Adjust comment.
1210 (bidi_resolve_explicit_1, bidi_level_of_next_char): Adjust users.
1211 (bidi_paragraph_init): Likewise. Use DEC_BOTH which is faster
1212 when you need just to move to the previous buffer position.
1213 * xdisp.c (Fcurrent_bidi_paragraph_direction): Use DEC_BOTH.
1214
12152013-03-07 Eli Zaretskii <eliz@gnu.org>
1216
1217 * .gdbinit (prowlims): Display the enabled_p flag of the row.
1218
12192013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
1220
1221 Avoid character to byte conversions in motion subroutines.
1222 * indent.h (compute_motion, vmotion): Add byte position argument.
1223 * indent.c (compute_motion): Use it and avoid CHAR_TO_BYTE.
1224 Add eassert.
1225 (Fcompute_motion): Break long line. Adjust call to compute_motion.
1226 Use list5 for return value.
1227 (vmotion): Use byte position argument and avoid call to CHAR_TO_BYTE.
1228 Adjust comments, style and calls to compute_motion.
1229 (Fvertical_motion): Adjust call to vmotion.
1230 * window.c (Fdelete_other_windows_internal): Record window start
1231 byte position and adjust call to vmotion.
1232 (window_scroll_line_based): Likewise with call to compute_motion.
1233 Use SET_PT_BOTH.
1234 (Frecenter): Adjust calls to vmotion.
1235
12362013-03-07 Dmitry Antipov <dmantipov@yandex.ru>
1237
1238 * lisp.h (list2i, list3i): New functions.
1239 (list4i): Move from window.c and make LISP_INLINE.
1240 * editfns.c (make_lisp_time):
1241 * fns.c (Flocale_info):
1242 * keyboard.c (parse_modifiers):
1243 * xterm.c (x_ewmh_activate_frame): Use list2i.
1244 * instel.c (signal_after_change):
1245 * nsfns.m (Fx_server_version, Fxw_color_values):
1246 * w32fns.c (Fxw_color_values, Fx_server_version):
1247 * xfns.c (Fxw_color_values, Fx_server_version): Use list3i.
1248 * fileio.c (Fvisited_file_modtime):
1249 * nsfns.m (Fns_display_usable_bounds):
1250 * w32.c (ltime): Use list4i.
1251
12522013-03-06 Eli Zaretskii <eliz@gnu.org>
1253
1254 * search.c (find_newline_no_quit): Rename from find_next_newline.
1255 Add commentary.
1256
1257 * lisp.h (find_newline_no_quit): Rename prototype.
1258
1259 * xdisp.c (back_to_previous_line_start)
1260 (forward_to_next_line_start, get_visually_first_element)
1261 (move_it_vertically_backward): Callers of find_newline_no_quit changed.
1262 * indent.c (vmotion): Callers of find_newline_no_quit changed.
1263 * bidi.c (bidi_find_paragraph_start): Callers of
1264 find_newline_no_quit changed.
1265
1266 * msdos.c: Change encoding to cp850. (Bug#13879)
1267 (fr_keyboard, it_keyboard, dk_keyboard): Update keyboard layouts.
1268
12692013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
1270
1271 Coding system support cleanup and minor refactoring.
1272 * coding.h (enum coding_result_code): Remove
1273 CODING_RESULT_INCONSISTENT_EOL and CODING_RESULT_INSUFFICIENT_MEM.
1274 (toplevel): Remove unused CODING_MODE_INHIBIT_INCONSISTENT_EOL.
1275 (CODING_MODE_LAST_BLOCK, CODING_MODE_SELECTIVE_DISPLAY)
1276 (CODING_MODE_DIRECTION, CODING_MODE_FIXED_DESTINATION)
1277 (CODING_MODE_SAFE_ENCODING): Rearrange bit values.
1278 (decode_coding_region, encode_coding_region, decode_coding_string):
1279 Remove unused compatibility macros.
1280 * coding.c (Qinconsistent_eol, Qinsufficient_memory): Remove.
1281 (record_conversion_result): Adjust user.
1282 (syms_of_coding): Likewise.
1283 (ALLOC_CONVERSION_WORK_AREA): Use SAFE_ALLOCA.
1284 (decode_coding, encode_coding): Add USE_SAFE_ALLOCA and SAFE_FREE.
1285 (decode_coding_object): Simplify since xrealloc never returns NULL.
1286 Add eassert.
1287
12882013-03-06 Paul Eggert <eggert@cs.ucla.edu>
1289
1290 Fix a build failure on OpenBSD 4.x and MirBSD (Bug#13881).
1291 * sysdep.c (list_system_processes)
1292 [BSD_SYSTEM && !DARWIN_OS && !__FreeBSD__]:
1293 Make it a stub in this case; otherwise the build might fail,
1294 and this code hasn't been tested on such hosts anyway.
1295 Problem reported by Nelson H. F. Beebe in
1296 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00021.html>
1297 and analyzed by Jérémie Courrèges-Anglas in
1298 <http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00062.html>.
1299
13002013-03-06 Dmitry Antipov <dmantipov@yandex.ru>
1301
1302 * lisp.h (find_next_newline_no_quit): Rename to find_next_newline.
1303 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
1304 (get_visually_first_element, move_it_vertically_backward): Ajust users.
1305 * bidi.c (bidi_find_paragraph_start): Likewise.
1306 * indent.c (vmotion): Likewise.
1307
13082013-03-05 Paul Eggert <eggert@cs.ucla.edu>
1309
1310 FILE's lock is now always .#FILE and may be a regular file (Bug#13807).
1311 * filelock.c: Include <c-ctype.h>.
1312 (MAX_LFINFO): New top-level constant.
1313 (lock_info_type): Remove members pid, boot_time. Add members at,
1314 dot, colon. Change user member to be the entire buffer, not a
1315 pointer. This allows us to handle the case where a foreign
1316 pid or boot time exceeds the local range. All uses changed.
1317 (LINKS_MIGHT_NOT_WORK): New constant.
1318 (FREE_LOCK_INFO): Remove, as the pieces no longer need freeing.
1319 (defined_WINDOWSNT): Remove.
1320 (MAKE_LOCK_NAME, file_in_lock_file_name):
1321 Always use .#FILE (not .#-FILE) for the file lock,
1322 even if it is a regular file.
1323 (rename_lock_file): New function.
1324 (create_lock_file): Use it.
1325 (create_lock_file, read_lock_data):
1326 Prefer a symbolic link for the lock file, falling back on a
1327 regular file if symlinks don't work. Do not try to create
1328 symlinks on MS-Windows, due to security hassles. Stick with
1329 POSIXish functions (open, read, write, close, fchmod, readlink, symlink,
1330 link, rename, unlink, mkstemp) when creating locks, as a GNUish
1331 host may be using a Windowsish file system, and cannot use
1332 MS-Windows-only system calls. Fall back on mktemp if mkstemp
1333 doesn't work. Don't fail merely because of a symlink-contents
1334 length limit in the current file system; fall back on regular
1335 files. Increase the symlink contents length limit to 8 KiB, this
1336 should be big enough for any real use and doesn't crunch the
1337 stack.
1338 (create_lock_file, lock_file_1, read_lock_data):
1339 Simplify allocation of lock file buffers now that they fit in 8 KiB.
1340 (lock_file_1): Return error number, not bool. All callers changed.
1341 (ELOOP): New macro, if not already defined.
1342 (read_lock_data): Return size of lock file contents, not Lisp object.
1343 All callers changed. Handle a race condition if some other process
1344 replaces a regular-file lock with a symlink lock or vice versa,
1345 while we're trying to read the lock.
1346 (current_lock_owner): Parse contents more carefully, to help avoid
1347 confusing a regular-file lock with some other application's use
1348 of the file. Check for lock file contents being too long, or
1349 not parsing correctly.
1350 (current_lock_owner, lock_file):
1351 Allow foreign pid and boot times that exceed the local range.
1352 (current_lock_owner, lock_if_free, lock_file):
1353 Simplify allocation of lock file contents.
1354 * w32.c (sys_rename_replace): New function, containing most of
1355 the contents of the old sys_rename.
1356 (sys_rename): Use it.
1357 (fchmod): New dummy function.
1358 * w32.h (sys_rename_replace, fchmod): New decls.
1359
13602013-03-05 Eli Zaretskii <eliz@gnu.org>
1361
1362 * bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or
1363 bidi_count_bytes, as the callers now arrange for bidi_it->charpos
1364 to be in sync with bidi_it->bytepos. Suggested by Dmitry Antipov
1365 <dmantipov@yandex.ru>.
1366
13672013-03-05 Dmitry Antipov <dmantipov@yandex.ru>
1368
1369 * composite.c (get_composition_id, fill_gstring_header):
1370 Use make_uninit_vector where appropriate.
1371 * font.c (Ffont_get_glyphs, build_style_table): Likewise.
1372 * xselect.c (clean_local_selection_data): Likewise.
1373
13742013-03-04 Paul Eggert <eggert@cs.ucla.edu>
1375
1376 Fix misuse of ImageMagick that caused core dump (Bug#13846).
1377 * image.c (imagemagick_load_image): Calculate height and width
1378 after flattening the image, not before.
1379
13802013-03-04 Dmitry Antipov <dmantipov@yandex.ru>
1381
1382 * font.c (Ffont_get_glyphs): Use convenient LGLYPH_NEW.
1383 * ftfont.c (ftfont_shape_by_flt): Likewise.
1384 * w32uniscribe.c (uniscribe_shape): Likewise.
1385
13862013-03-02 Paul Eggert <eggert@cs.ucla.edu>
1387
1388 The lock for FILE is now .#FILE or .#-FILE (Bug#13807).
1389 The old approach, which fell back on DIR/.#FILE.0 through
1390 DIR/.#FILE.9, had race conditions that could not be easily fixed.
1391 If DIR/.#FILE is a non-symlink file, Emacs now does not create a
1392 lock file for DIR/FILE; that is, DIR/FILE is no longer partly
1393 protected by a lock if DIR/.#FILE is a non-symlink file ("partly"
1394 because the locking mechanism was never reliable in that case).
1395 This patch fixes this and other bugs discovered by a code
1396 inspection that was prompted by
1397 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00531.html>.
1398 Also, this patch switches to .#-FILE (not .#FILE) on MS-Windows,
1399 to avoid interoperability problems between the MS-Windows and
1400 non-MS-Windows implementations. MS-Windows and non-MS-Windows
1401 instances of Emacs now ignore each others' locks.
1402 * filelock.c (defined_WINDOWSNT): New constant.
1403 (MAKE_LOCK_NAME, fill_in_lock_file_name):
1404 Don't create DIR/.#FILE.0 through DIR/.#FILE.9. Instead, create
1405 DIR/.#FILE symlinks on non-MS-Windows hosts, and DIR/.#-FILE
1406 regular files on MS-Windows hosts.
1407 (MAKE_LOCK_NAME, unlock_file, Ffile_locked_p):
1408 Use SAFE_ALLOCA to avoid problems with long file names.
1409 (MAX_LFINFO): Now a local constant, not a global macro.
1410 (IS_LOCK_FILE): Remove.
1411 (lock_file_1): Don't inspect errno if symlink call succeeds;
1412 that's not portable.
1413 (lock_file): Document that this function can return if lock
1414 creation fails.
1415 (lock_file): Don't access freed storage.
1416
14172013-03-02 Andreas Schwab <schwab@linux-m68k.org>
1418
1419 * lisp.h (XPNTR) [!USE_LSB_TAG]: Remove extra paren. (Bug#13734)
1420
14212013-03-02 Paul Eggert <eggert@cs.ucla.edu>
1422
1423 * textprop.c: Use bool for booleans.
1424 (validate_interval_range, Fadd_text_properties)
1425 (Fremove_text_properties): Prefer bool to int when either works.
1426
14272013-03-02 Eli Zaretskii <eliz@gnu.org>
1428
1429 * textprop.c (Fadd_text_properties, Fremove_text_properties):
1430 If the interval tree changes as a side effect of calling
1431 modify_region, re-do processing starting from the call to
1432 validate_interval_range. (Bug#13743)
1433
14342013-02-28 Eli Zaretskii <eliz@gnu.org>
1435
1436 * w32.c (sys_open): Don't reset the flags for FD in fd_info[].
1437 (Bug#13546).
1438
14392013-02-27 Eli Zaretskii <eliz@gnu.org>
1440
1441 * filelock.c (create_lock_file) [WINDOWSNT]: Use _sopen with
1442 _SH_DENYRW flag, instead of emacs_open, to deny any other process
1443 access to the lock file until it is written and closed.
1444 (Bug#13807)
1445
14462013-02-27 Paul Eggert <eggert@cs.ucla.edu>
1447
1448 * callint.c (Qcall_interactively):
1449 * macros.c (Qexecute_kbd_macro):
1450 Now static.
1451
14522013-02-26 Bastien Guerry <bzg@gnu.org>
1453
1454 * window.c (Frecenter): Tiny docstring enhancement.
1455
14562013-02-26 Paul Eggert <eggert@cs.ucla.edu>
1457
1458 Minor textprop integer cleanup.
1459 * intervals.h, textprop.c (add_text_properties_from_list):
1460 Return void, not int, since nobody uses the return value.
1461 * textprop.c (validate_plist, add_properties, remove_properties)
1462 (Fadd_text_properties):
1463 Don't assume list length fits in int.
1464 (interval_has_all_properties, interval_has_some_properties)
1465 (interval_has_some_properties_list, add_properties, remove_properties)
1466 (Fadd_text_properties, Fremove_text_properties)
1467 (Fremove_list_of_text_properties, text_property_stickiness):
1468 Use bool for booleans.
1469 (Fadd_text_properties, Fremove_text_properties):
1470 (Fremove_list_of_text_properties):
1471 Reindent do-while as per GNU style.
1472
14732013-02-25 Eli Zaretskii <eliz@gnu.org>
1474
1475 Implement CLASH_DETECTION for MS-Windows.
1476
1477 * filelock.c [WINDOWSNT]: Include w32.h.
1478 (MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime
1479 function of that name. Up-case the macro arguments.
1480 (IS_LOCK_FILE): New macro.
1481 (fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK.
1482 (create_lock_file): New function, with body extracted from
1483 lock_file_1.
1484 [WINDOWSNT]: Implement lock files by writing a regular file with
1485 the lock information as its contents.
1486 (read_lock_data): New function, on Posix platforms just calls
1487 emacs_readlinkat.
1488 [WINDOWSNT]: Read the lock info from the file.
1489 (current_lock_owner): Call read_lock_data instead of calling
1490 emacs_readlinkat directly.
1491 (lock_file) [WINDOWSNT]: Run the file name through
1492 dostounix_filename.
1493
1494 * w32proc.c (sys_kill): Support the case of SIG = 0, in which case
1495 just check if the process by that PID exists.
1496
1497 * w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is
1498 also present, as doing so will fail to error out if the file
1499 already exists.
1500
1501 * makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h.
1502
1503 * textprop.c (Fadd_text_properties, Fremove_text_properties)
1504 (Fremove_list_of_text_properties): Skip all of the intervals in
1505 the region between START and END that already have resp. don't
1506 have the requested properties, not just the first one.
1507 Add assertions that the loop afterwards always modifies the
1508 properties. (Bug#13743)
1509
15102013-02-25 Stefan Monnier <monnier@iro.umontreal.ca>
1511
1512 * callint.c (Fcall_interactively): Use the right lexical environment
1513 for `interactive' specs (bug#13811).
1514 * eval.c (Feval): Accept a lexical environment.
1515
15162013-02-25 Paul Eggert <eggert@cs.ucla.edu>
1517
1518 Simplify data_start configuration (Bug#13783).
1519 This is a followon simplification to the fix for Bug#13650.
1520 * Makefile.in (LD_FIRSTFLAG, LIB_GCC, CRT_DIR, LIB_STANDARD)
1521 (START_FILES): Remove. All uses removed.
1522 (otherobj): Remove $(VMLIMIT_OBJ), as it's now first.
1523 (ALLOBJS): Move here from autodeps.mk, and with VMLIMITS_OBJ first.
1524 (buildobj.h): Use it.
1525 ($(ALLOBJS)): Depend on globals.h.
1526 (temacs$(EXEEXT)): Use $(ALLOBJS).
1527 * autodeps.mk (ALLOBJS): Move to Makefile.in.
1528 * deps.mk (vm-limit.o):
1529 * makefile.w32-in ($(BLD)/vm-limit.$(O)):
1530 Do not depend on mem-limits.h.
1531 * emacs.c (__do_global_ctors, __do_global_ctors_aux)
1532 (__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__)
1533 [__GNUC__ && !ORDINARY_LINK]: Remove.
1534 * mem-limits.h, pre-crt0.c: Remove.
1535 * unexaix.c, unexcoff.c: Don't include mem-limits.h.
1536 * unexcoff.c (etext): New decl.
1537 (make_hdr): Use DATA_START instead of start_of_data.
1538 * vm-limit.c: Move most of mem-limits.h's contents here.
1539 (data_start): New decl. It's OK if this is approximate,
1540 so simplify-away some unnecessary exactness.
1541 (POINTER): Remove; all uses removed.
1542 (data_space_start): Now char *, to avoid casts.
1543 (exceeds_lisp_ptr): New function, replacing the old
1544 EXCEEDS_LISP_PTR macro. All uses changed.
1545 (check_memory_limits): Simplify and remove casts.
1546 (start_of_data) [!CANNOT_DUMP || !SYSTEM_MALLOC]: Remove.
1547 (memory_warnings): Use data_start instead of start_of_data.
1548
15492013-02-24 Andreas Schwab <schwab@linux-m68k.org>
1550
1551 * xdisp.c (set_message): Only check for debug-on-message if STRING
1552 is a string. (Bug#13797)
1553
15542013-02-24 Paul Eggert <eggert@cs.ucla.edu>
1555
1556 Fix regression introduced by July 10 filelock.c patch.
1557 * filelock.c (fill_in_lock_file_name): Fix crash caused by the
1558 2012-07-10 patch to this file. Reported by Eli Zaretskii in
1559 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00533.html>
1560 and diagnosed by Andreas Schwab in
1561 <http://lists.gnu.org/archive/html/emacs-devel/2013-02/msg00534.html>.
1562
15632013-02-22 Paul Eggert <eggert@cs.ucla.edu>
1564
1565 Assume C89 or better.
1566 * ralloc.c (SIZE, POINTER, NIL):
1567 * vm-limit.c (POINTER):
1568 Remove, replacing all uses with C89 equivalents. These old
1569 symbols were present only for porting to pre-C89 platforms.
1570
15712013-02-22 Claudio Bley <claudio.bley@gmail.com>
1572
1573 * w32.c (emacs_gnutls_pull): Don't call 'select', and don't loop.
1574 This avoids warning messages reported as part of Bug#13546.
1575
15762013-02-21 Ken Brown <kbrown@cornell.edu>
1577
1578 * sheap.c (report_sheap_usage): Fix arguments of message1_no_log.
1579
15802013-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
1581
1582 * sheap.c (report_sheap_usage): Prefer message1_nolog.
1583
1584 * keyboard.c (Qcommand_execute): New var.
1585 (command_loop_1, read_char): Use it.
1586 (Fcommand_execute): Remove, replace by an Elisp implementation.
1587 (syms_of_keyboard): Adjust accordingly.
1588
15892013-02-19 Daniel Colascione <dancol@dancol.org>
1590
1591 * sheap.c (report_sheap_usage): Use message, not message1, so
1592 that we don't try to create a buffer while we're in the middle
1593 of dumping Emacs. Explain why.
1594
15952013-02-20 Dmitry Antipov <dmantipov@yandex.ru>
1596
1597 * search.c (find_newline): Return byte position in bytepos.
1598 Adjust comment.
1599 (find_next_newline_no_quit, find_before_next_newline):
1600 Add bytepos argument.
1601 * lisp.h (find_newline, find_next_newline_no_quit)
1602 (find_before_next_newline): Adjust prototypes.
1603 * bidi.c (bidi_find_paragraph_start):
1604 * editfns.c (Fconstrain_to_field, Fline_end_position):
1605 * indent.c (compute_motion, vmotion):
1606 * xdisp.c (back_to_previous_line_start, forward_to_next_line_start):
1607 (get_visually_first_element, move_it_vertically_backward):
1608 Adjust users and avoid calls to CHAR_TO_BYTE where appropriate.
1609
16102013-02-19 Eli Zaretskii <eliz@gnu.org>
1611
1612 * w32proc.c (new_child): Avoid leaking handles if the subprocess
1613 resources were not orderly released.
1614
16152013-02-17 Eli Zaretskii <eliz@gnu.org>
1616
1617 * xdisp.c (x_draw_vertical_border): For a window that is neither
1618 the leftmost nor the rightmost, redraw both the left and the right
1619 vertical borders. (Bug#13723)
1620
16212013-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
1622
1623 * xml.c (init_libxml2_functions):
1624 * sound.c (sound_warning):
1625 * sheap.c (report_sheap_usage):
1626 * process.c (wait_reading_process_output):
1627 * msdos.c (XMenuActivate):
1628 * macros.c (Fstart_kbd_macro, Fend_kbd_macro):
1629 * keyboard.c (top_level_1):
1630 * editfns.c (Fmessage, Fmessage_box):
1631 * callint.c (Fcall_interactively):
1632 * fns.c (Fyes_or_no_p): Prefer `message1' over `message'.
1633
16342013-02-17 Jan Djärv <jan.h.d@swipnet.se>
1635
1636 * xterm.c (syms_of_xterm): Move scroll-bar-adjust-thumb-portion ...
1637 * frame.c (syms_of_frame): ... to here.
1638
16392013-02-16 Eli Zaretskii <eliz@gnu.org>
1640
1641 * w32.c (sys_chown): Remove unused function.
1642
1643 * w32term.c <input_signal_count>: Declare 'volatile'
1644 unconditionally. (Bug#9066)
1645
1646 * w32.c (set_errno): Reset h_errno and don't set it to any other
1647 value. Set errno instead.
1648 (check_errno): Reset h_errno.
1649 (sys_socket, socket_to_fd, sys_bind, sys_connect)
1650 (sys_gethostname, sys_getservbyname, sys_getpeername)
1651 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1652 (sys_accept, sys_recvfrom, sys_sendto, fcntl, sys_read): Don't set
1653 h_errno.
1654 (sys_gethostbyname): Set h_errno only errors detected.
1655
16562013-02-15 Paul Eggert <eggert@cs.ucla.edu>
1657
1658 * process.c (h_errno) [!HAVE_H_ERRNO]: Remove unused decl.
1659
16602013-02-15 Eli Zaretskii <eliz@gnu.org>
1661
1662 * keyboard.c (read_char): Fix calculation of auto-save time out
1663 when auto-save-timeout is less than 4. (Bug#13720)
1664
1665 * w32proc.c (new_child): Free up to 2 slots of dead processes at a
1666 time. Improve diagnostics in DebPrint. (Bug#13546)
1667
1668 * w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname)
1669 (sys_gethostbyname, sys_getservbyname, sys_getpeername)
1670 (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
1671 (sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure,
1672 make sure errno is set to an appropriate value. (Bug#13546)
1673 (socket_to_fd): Add assertion against indexing fd_info[] with a
1674 value that is out of bounds.
1675 (sys_accept): If fd is negative, do not set up the child_process
1676 structure for reading.
1677
16782013-02-15 Dmitry Antipov <dmantipov@yandex.ru>
1679
1680 * composite.c (fill_gstring_header): Remove useless prototype.
1681 Break long line.
1682 * lisp.h (message_dolog, compile_pattern): Adjust prototype.
1683 * print.c (PRINTDECLARE, print_object):
1684 * search.c (compile_pattern, fast_looking_at, search_buffer):
1685 (simple_search, boyer_moore, Freplace_match):
1686 * xdisp.c (c_string_pos, number_of_chars, message_dolog):
1687 (get_overlay_arrow_glyph_row, display_mode_element):
1688 (decode_mode_spec_coding, message3):
1689 * xfaces.c (face_at_string_position): Use bool for booleans.
1690 Adjust comments.
1691
16922013-02-15 Paul Eggert <eggert@cs.ucla.edu>
1693
1694 Fix AIX port (Bug#13650).
1695 * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
1696 Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set,
1697 was #undeffed earlier, so it cannot be used as a macro here.
1698 Use the constant and not the macro.
1699
17002013-02-15 Eli Zaretskii <eliz@gnu.org>
1701
1702 * w32proc.c (new_child): If no vacant slots are found in
1703 child_procs[], make another pass looking for slots whose process
1704 has exited or died. (Bug#13546)
1705
1706 * w32.c (sys_pipe): When failing due to file descriptors above
1707 MAXDESC, set errno to EMFILE.
1708 (_sys_read_ahead): Update cp->status when failing to read serial
1709 communications input, so that the status doesn't stay at
1710 STATUS_READ_IN_PROGRESS. (Bug#13546)
1711
17122013-02-14 Jan Djärv <jan.h.d@swipnet.se>
1713
1714 * gtkutil.c (tb_size_cb): New function.
1715 (xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512).
1716
17172013-02-14 Stefan Monnier <monnier@iro.umontreal.ca>
1718
1719 * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not
1720 an event.
1721
17222013-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
1723
1724 * keyboard.c (syms_of_keyboard): Further tweaks of docstring.
1725
17262013-02-13 Dmitry Antipov <dmantipov@yandex.ru>
1727
1728 * font.c (font_range): Add pos_byte argument. Adjust comment
1729 and break long line.
1730 * font.h (font_range): Adjust prototype.
1731 * composite.c (autocmp_chars): Pass byte position to font_range.
1732 Break long line. Remove useless prototype and format comment.
1733
17342013-02-13 Glenn Morris <rgm@gnu.org>
1735
1736 * keyboard.c (input-decode-map, key-translation-map): Doc fixes.
1737
17382013-02-13 Paul Eggert <eggert@cs.ucla.edu>
1739
1740 Improve AIX port some more (Bug#13650).
1741 With this, it should be as good as it was in 23.3, though it's
1742 still pretty bad: the dumped emacs does not run. See Mark Fleishman in
1743 http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html
1744 * unexaix.c (start_of_text): Remove.
1745 (_data, _text): Declare as char[], not int, as AIX manual suggests.
1746 (bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr)
1747 (orig_load_scnptr, orig_data_scnptr):
1748 Now off_t, not long, since they are file offsets.
1749 (make_hdr): Use _data, not start_of_data ().
1750 This is the key part of the fix.
1751 (make_hdr, unrelocate_symbols): Use off_t for file offsets.
1752 (unrelocate_symbols): Cast pointers to intptr_t, not to ulong.
1753
1754 * pre-crt0.c (data_start): Initialize to 1.
1755 This ports to compilers that optimize the external declaration
1756 'int x = 0;' as if it were 'int x;' to shrink the executable.
1757
1758 Improve AIX port (Bug#13650).
1759 This doesn't fix the bug, but it makes progress: Emacs builds now.
1760 * unexaix.c: Include inttypes.h, stdarg.h.
1761 (report_error, report_error_1): Mark as _Noreturn.
1762 (report_error): Don't report the wrong errno.
1763 (report_error_1): Now varargs. All callers changed.
1764 (make_hdr): Use uintptr_t, not unsigned, when converting pointers
1765 to unsigned. Don't use ADDR_CORRECT, as it no longer exists.
1766 (write_ptr): Use %p to print address rather than %lx and a cast
1767 to unsigned long. Grow buffer a bit, to be safer.
1768
17692013-02-13 Eli Zaretskii <eliz@gnu.org>
1770
1771 * bidi.c (bidi_resolve_neutral): After finding the next
1772 non-neutral character, accept NEUTRAL_ON type as well, because
1773 directional control characters, such as LRE and RLE, have their
1774 type converted to that by bidi_resolve_weak. This avoids aborts
1775 when LRE/RLE follows a run of neutrals.
1776 (bidi_move_to_visually_next): Assert that return value of
1777 bidi_peek_at_next_level is non-negative. Negative values will
1778 cause an infloop.
1779
17802013-02-13 Paul Eggert <eggert@cs.ucla.edu>
1781
1782 Minor getenv-related fixes.
1783 * callproc.c (Fcall_process_region) [!DOS_NT]:
1784 Avoid unnecessary duplicate call to getenv.
1785 * callproc.c (init_callproc):
1786 * dispnew.c (init_display):
1787 * sysdep.c (sys_subshell):
1788 Omit unnecessary cast of getenv or egetenv.
1789
17902013-02-13 Juanma Barranquero <lekktu@gmail.com>
1791
1792 * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/sysdep.$(O)):
1793 Update dependencies.
1794
17952013-02-12 Eli Zaretskii <eliz@gnu.org>
1796
1797 * xdisp.c (redisplay_internal): Don't set w->region_showing to the
1798 marker's position.
1799 (display_line): Set w->region_showing to the value of
1800 it->region_beg_charpos, not to -1. This fixes redisplay
1801 optimization when cursor is moved up after M->. (Bug#13623)
1802 (Bug#13626)
1803 (try_scrolling): Scroll text up more if point is too close to ZV
1804 and inside the scroll margin. This makes sure point is moved
1805 outside the scroll margin in these cases.
1806
1807 * window.h (struct window): region_showing can no longer be
1808 negative.
1809
18102013-02-11 Paul Eggert <eggert@cs.ucla.edu>
1811
1812 Tune by using memchr and memrchr.
1813 * doc.c (Fsnarf_documentation):
1814 * fileio.c (Fsubstitute_in_file_name):
1815 * search.c (find_newline, scan_newline):
1816 * xdisp.c (pos_visible_p, display_count_lines):
1817 Use memchr and memrchr rather than scanning byte-by-byte.
1818 * search.c (find_newline): Rename from scan_buffer.
1819 Omit first arg TARGET, as it's always '\n'. All callers changed.
1820
1821 Clean up read_key_sequence a tiny bit more.
1822 * keyboard.c (read_char_x_menu_prompt) [HAVE_MENUS]:
1823 (read_key_sequence): Remove unused locals.
1824
18252013-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
1826
1827 Clean up read_key_sequence a bit; reread active keymaps after first event.
1828 * keyboard.c (read_char, read_char_x_menu_prompt)
1829 (read_char_minibuf_menu_prompt):
1830 Replace nmaps+maps with a single `map' arg.
1831 (follow_key): Operate on a single map.
1832 (active_maps): New function.
1833 (test_undefined): Also return true for nil bindings.
1834 (read_key_sequence): Use active_maps to replace the arrays of keymaps with
1835 a single (composed) keymap. Remember `first_event' to choose the right
1836 set of active keymaps. Recompute the set of keymaps after receiving
1837 the first event. Remove GOBBLE_FIRST_EVENT.
1838 (syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
1839 * keyboard.h (read_char): Update declaration.
1840 * lread.c (read_filtered_event): Adjust call to read_char.
1841
18422013-02-11 Eli Zaretskii <eliz@gnu.org>
1843
1844 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1845 Don't use the limitation on backwards movement when lines are truncated
1846 in the window. (Bug#13675)
1847
18482013-02-11 Dmitry Antipov <dmantipov@yandex.ru>
1849
1850 * marker.c (set_marker_internal): If desired position is passed
1851 as a marker, avoid call to buf_charpos_to_bytepos.
1852 * window.c (Fset_window_point): Omit redundant type checking.
1853 (Fset_window_start): Likewise. Format comment.
1854 (window_scroll_pixel_based): Use set_marker_restricted_both
1855 with character and byte positions obtained from an iterator.
1856 (Fset_window_configuration): Use set_marker_restricted_both.
1857 * xdisp.c (message_dolog): Likewise.
1858
18592013-02-10 Eli Zaretskii <eliz@gnu.org>
1860
1861 * xdisp.c (move_it_vertically_backward, move_it_by_lines):
1862 When text lines are longer than window's screen lines, don't move back
1863 too far. This speeds up some redisplay operations. (Bug#13675)
1864
18652013-02-10 Dmitry Antipov <dmantipov@yandex.ru>
1866
1867 * syntax.c (scan_sexps_forward): Fix byte position calculation
1868 Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change.
1869
18702013-02-10 Paul Eggert <eggert@cs.ucla.edu>
1871
1872 * fileio.c (Fexpand_file_name): Omit confusing pointer comparison
1873 that was not needed.
1874
18752013-02-09 Paul Eggert <eggert@cs.ucla.edu>
1876
1877 Minor hashing refactoring.
1878 * fns.c (SXHASH_REDUCE): Move to lisp.h.
1879 (sxhash_float): Return EMACS_UINT, for consistency with the other
1880 hash functions.
1881 * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a
1882 non-static inline function and therefore can't use static vars.
1883 (SXHASH_REDUCE): Move here from fns.c, and make it inline.
1884 * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent
1885 with the other hash functions.
1886
18872013-02-09 Eli Zaretskii <eliz@gnu.org>
1888
1889 * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the
1890 XXXXXX part of the temporary file pattern is not downcased even
1891 when w32-downcase-file-names is non-nil. (Bug#13661)
1892
1893 * xdisp.c (decode_mode_spec): Remove handling of %t.
1894
1895 * msdos.c (careadlinkatcwd): Remove.
1896
18972013-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
1898
1899 * lread.c (skip_dyn_bytes): New function (bug#12598).
1900 (read1): Use it. Use getc instead of READCHAR to read bytes.
1901 (load_each_byte): Remove. Update users.
1902
19032013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1904
1905 * search.c (scan_buffer): Calculate end byte position just once.
1906 (scan_newline): Do not recalculate start_byte.
1907 (search_command): Use eassert.
1908 * syntax.c (struct lisp_parse_state): New member location_byte.
1909 (scan_sexps_forward): Record from_byte and avoid redundant
1910 character to byte position calculation ...
1911 (Fparse_partial_sexp): ... here. Break too long line.
1912
19132013-02-08 Dmitry Antipov <dmantipov@yandex.ru>
1914
1915 * lisp.h (make_uninit_vector): New function.
1916 * alloc.c (Fvector, Fmake_byte_code):
1917 * ccl.c (Fregister_ccl_program):
1918 * charset.c (Fdefine_charset_internal, define_charset_internal):
1919 * coding.c (make_subsidiaries, Fdefine_coding_system_internal):
1920 * composite.c (syms_of_composite):
1921 * font.c (Fquery_font, Ffont_info, syms_of_font):
1922 * fontset.c (FONT_DEF_NEW, Fset_fontset_font):
1923 * ftfont.c (ftfont_shape_by_flt):
1924 * indent.c (recompute_width_table):
1925 * nsselect.m (clean_local_selection_data):
1926 * syntax.c (init_syntax_once):
1927 * w32unsubscribe.c (uniscribe_shape):
1928 * window.c (Fcurrent_window_configuration):
1929 * xfaces.c (Fx_family_fonts):
1930 * xselect.c (selection_data_to_lisp_data): Use it.
1931
19322013-02-07 Dmitry Antipov <dmantipov@yandex.ru>
1933
1934 * coding.c (Fdefine_coding_system_internal): Use AREF where
1935 argument is known to be a vector.
1936 * fns.c (Flocale_info): Likewise for ASET.
1937 * xselect.c (selection_data_to_lisp_data): Likewise for ASET.
1938 * w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF.
1939
19402013-02-05 Jan Djärv <jan.h.d@swipnet.se>
1941
1942 * nsmenu.m (update_frame_tool_bar): Check for negative tool bar
1943 height.
1944
1945 * nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
1946 (EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
1947 updateCollectionBehaviour.
1948
1949 * nsterm.m (NEW_STYLE_FS): Remove.
1950 (ns_last_use_native_fullscreen): New variable.
1951 (x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
1952 (x_set_window_size): Do not take title bar and tool bar into account
1953 if isFullscreen returns YES.
1954 (ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
1955 (check_native_fs): New function.
1956 (ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
1957 (ns_term_init): Remove NEW_STYLE_FS.
1958 (updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
1959 and tool bar if isFullscreen returns NO.
1960 (windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
1961 (initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS
1962 with HAVE_NATIVE_FS.
1963 (window:willUseFullScreenPresentationOptions:): New method.
1964 (windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
1965 Hide toolbar if not enabled (Bug#13444).
1966 (windowDidExitFullScreen:): Call updateCollectionBehaviour.
1967 Restore tool bar if enabled, hide it otherwise (Bug#13444).
1968 (fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
1969 (toggleFullScreen:): If fs_is_native, call toggleFullScreen on
1970 window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
1971 Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
1972 FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs.
1973 (syms_of_nsterm): Add ns-use-native-fullscreen.
1974
19752013-02-04 Paul Eggert <eggert@cs.ucla.edu>
1976
1977 * fileio.c (Qchoose_write_coding_system): Now static.
1978
19792013-02-04 Eli Zaretskii <eliz@gnu.org>
1980
1981 * xdisp.c (window_buffer_changed): region_showing can be negative,
1982 which still means region is being displayed.
1983 (redisplay_internal): Resurrect code that forced redisplay of the
1984 whole window when showing region and the mark has changed.
1985 Record the new mark position to allow redisplay optimizations.
1986 (display_line): If it->region_beg_charpos is non-zero, set the
1987 window's region_showing member to -1. (Bug#13623) (Bug#13626)
1988
1989 * window.h (struct window) <region_showing>: Declare ptrdiff_t,
1990 not bitfield of 1 bit.
1991
19922013-02-03 Daniel Colascione <dancol@dancol.org>
1993
1994 * emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that
1995 daemon mode works on cygw32 when Emacs is installed and not just
1996 during development.
1997
19982013-02-02 Paul Eggert <eggert@cs.ucla.edu>
1999
2000 Avoid file time stamp bug on MS-Windows (Bug#13149).
2001 * fileio.c (Fwrite_region): Don't use the heuristic on empty files,
2002 as FAT32 doesn't update time stamps when truncating them.
2003 Also, check that a file time stamp is not a multiple of 100 ns;
2004 this should catch all instances of the problem on MS-Windows,
2005 as its native file system resolution is 100 ns or worse, and
2006 checking for a non-multiple of 100 ns should impose only a small
2007 overhead on systems with ns resolution.
2008
20092013-02-02 Eli Zaretskii <eliz@gnu.org>
2010
2011 Avoid encoding file names on MS-Windows when they need to be run
2012 through dostounix_filename.
2013 * w32.c (normalize_filename): Accept an additional argument
2014 MULTIBYTE; if non-zero, traverse the file name by bytes and don't
2015 downcase it even if w32-downcase-file-names is non-nil.
2016 (dostounix_filename): Accept an additional argument MULTIBYTE and
2017 pass it to normalize_filename.
2018 (emacs_root_dir): Adjust.
2019
2020 * msdos.h (dostounix_filename): Adjust prototype.
2021
2022 * w32.h (dostounix_filename): Adjust prototype.
2023
2024 * msdos.c (dostounix_filename): Accept an additional argument and
2025 ignore it.
2026 (init_environment): Adjust callers of dostounix_filename.
2027
2028 * fileio.c (Ffile_name_directory, file_name_as_directory)
2029 (directory_file_name, Fexpand_file_name)
2030 (Fsubstitute_in_file_name): [DOS_NT] Adjust call to
2031 dostounix_filename.
2032 [WINDOWSNT]: Downcase file names if w32-downcase-file-names is
2033 non-nil.
2034 (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
2035 variables, as egetenv is case-insensitive for DOS_NT.
2036
2037 * dired.c (file_name_completion): Don't call Fdirectory_file_name
2038 with an encoded file name.
2039
2040 * w32proc.c (Fw32_short_file_name, Fw32_long_file_name):
2041 Adjust calls to dostounix_filename.
2042
2043 * w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
2044
2045 * unexw32.c (unexec): Adjust call to dostounix_filename.
2046
2047 * termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
2048
2049 * emacs.c (decode_env_path) [DOS_NT]: Adjust call to
2050 dostounix_filename.
2051
2052 * callproc.c (Fcall_process) [MSDOS]: Adjust call to
2053 dostounix_filename.
2054
2055 * callproc.c (Fcall_process): Make sure program name in PATH and
2056 new_argv[0] is encoded, if needed. Otherwise, un-encoded string
2057 is passed to exec/spawnve, which fails unless the file-name
2058 encoding is UTF-8.
2059
2060 * w32proc.c (sys_spawnve): Make sure escape_char is initialized,
2061 even if w32-quote-process-args is nil.
2062
20632013-02-01 Paul Eggert <eggert@cs.ucla.edu>
2064
2065 Fix timestamp bug when write-region appends nothing (Bug#13149).
2066 * fileio.c (Fwrite_region): When neither O_EXCL nor O_TRUNC is used,
2067 the file's time stamp doesn't change if Emacs happens to write nothing
2068 to the file, and on a buggy file system this could cause Emacs to
2069 incorrectly infer that the file system doesn't have the bug.
2070 Avoid this problem by inhibiting the inference in this case.
2071
20722013-02-01 Dmitry Antipov <dmantipov@yandex.ru>
2073
2074 * window.h (struct window): Convert base_line_number, base_line_pos
2075 and column_number_displayed members from Lisp_Object to ptrdiff_t.
2076 Convert region_showing member from Lisp_Object to bitfield.
2077 Remove sequence_number member. Adjust comments.
2078 * window.c (sequence_number): Remove.
2079 (make_window): Initialize column_number_displayed.
2080 * print.c (print_object): Follow the printed representation of
2081 frames and print window pointer to distinguish between windows.
2082 (adjust_window_count): Invalidate base_line_pos. Adjust comment.
2083 * xdisp.c (wset_base_line_number, wset_base_line_pos)
2084 (wset_column_number_displayed, wset_region_showing): Remove.
2085 (window_buffer_changed, mode_line_update_needed, redisplay_internal)
2086 (try_scrolling, try_cursor_movement, redisplay_window)
2087 (try_window_reusing_current_matrix, try_window_id, display_line)
2088 (display_mode_lines, decode_mode_spec): Adjust users.
2089 * .gdbinit (pwinx): Do not print sequence_number.
2090
20912013-02-01 Paul Eggert <eggert@cs.ucla.edu>
2092
2093 Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539).
2094 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove.
2095 * dired.c: Include <fcntl.h>.
2096 (open_directory): New function, which uses open and fdopendir
2097 rather than opendir. DOS_NT platforms still use opendir, though.
2098 (directory_files_internal, file_name_completion): Use it.
2099 (file_attributes): New function, with most of the old Ffile_attributes.
2100 (directory_files_internal, Ffile_attributes): Use it.
2101 (file_attributes, file_name_completion_stat): First arg is now fd,
2102 not dir name. All uses changed. Use fstatat rather than lstat +
2103 stat.
2104 (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p.
2105 * fileio.c: Include <allocator.h>, <careadlinkat.h>.
2106 (emacs_readlinkat): New function, with much of the old
2107 Ffile_symlink_p, but with an fd argument for speed.
2108 It uses readlinkat rather than careadlinkatcwd, so that it
2109 need not assume the working directory.
2110 (Ffile_symlink_p): Use it.
2111 * filelock.c (current_lock_owner): Use emacs_readlinkat
2112 rather than emacs_readlink.
2113 * lisp.h (emacs_readlinkat): New decl.
2114 (READLINK_BUFSIZE, emacs_readlink): Remove.
2115 * sysdep.c: Do not include <allocator.h>, <careadlinkat.h>.
2116 (emacs_norealloc_allocator, emacs_readlink): Remove.
2117 This stuff is moved to fileio.c.
2118 * w32.c (fstatat, readlinkat): New functions.
2119 (careadlinkat): Don't check that fd == AT_FDCWD.
2120 (careadlinkatcwd): Remove; no longer needed.
2121
21222013-01-31 Glenn Morris <rgm@gnu.org>
2123
2124 * fileio.c (choose_write_coding_system): Make it callable from Lisp.
2125 (Fwrite_region): Update for new choose_write_coding_system args.
2126 Move the last piece of choose_write_coding_system here. (Bug#13522)
2127 (syms_of_fileio): Add choose-write-coding-system.
2128
21292013-01-30 Eli Zaretskii <eliz@gnu.org>
2130
2131 * w32.c (sys_open): Zero out the flags for the new file descriptor.
2132 (sys_close): Zero out the flags for the file descriptor before
2133 closing it. (Bug#13546)
2134
2135 * w32.c (parse_root, get_volume_info, readdir, read_unc_volume)
2136 (logon_network_drive, stat_worker, symlink, chase_symlinks):
2137 Use CharNextExA and CharPrevExA to iterate over file names encoded in
2138 DBCS. (Bug#13553)
2139
2140 * w32.c (w32_get_long_filename, init_environment, readlink):
2141 Support file names encoded in DBCS codepages.
2142 (readlink): Use the current file-name-coding-system, not the ANSI
2143 codepage, to decode and handle targets of symlinks.
2144
21452013-01-28 Eli Zaretskii <eliz@gnu.org>
2146
2147 * w32.c (opendir): Now accepts a 'const char *'.
2148
21492013-01-28 Dmitry Antipov <dmantipov@yandex.ru>
2150
2151 Remove obsolete redisplay code. See the discussion at
2152 http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00576.html.
2153 * dispnew.c (preemption_period, preemption_next_check): Remove.
2154 (Vredisplay_preemption_period): Likewise.
2155 (update_frame, update_single_window, update_window, update_frame_1):
2156 Adjust users. Always assume that PERIODIC_PREEMPTION_CHECKING is not
2157 used, following the 2012-06-22 change.
2158
21592013-01-25 Eli Zaretskii <eliz@gnu.org>
2160
2161 * w32notify.c (Fw32notify_add_watch): Doc fix. (Bug#13540)
2162
21632013-01-25 Dmitry Antipov <dmantipov@yandex.ru>
2164
2165 * font.c (num_fonts): Remove the leftover from old
2166 debugging code. Adjust comment style here and there.
2167 * insdel.c (insert_1): Remove.
2168 * lisp.h (insert_1): Remove prototype.
2169 * xdisp.c (message_dolog): Adjust users to call insert_1_both.
2170
21712013-01-25 Eli Zaretskii <eliz@gnu.org>
2172
2173 * w32.c (max_filename_mbslen): New function.
2174 (normalize_filename, readdir): Use it to detect locales where ANSI
2175 encoding of file names uses a double-byte character set (DBCS).
2176 If a DBCS encoding is used, advance by characters using
2177 CharNextExA, instead of incrementing a 'char *' pointer.
2178 Use _mbslwr instead of _strlwr. (Bug#13515)
2179
2180 * w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial
2181 request of memory reservation to 1.7GB. (Bug#13065)
2182
21832013-01-25 Andreas Schwab <schwab@linux-m68k.org>
2184
2185 * coding.c (detect_coding_iso_2022): Move back mis-reordered code
2186 at check_extra_latin label. (Bug#13505)
2187
21882013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2189
2190 * nsfont.m (ns_escape_name, ns_unescape_name, ns_registry_to_script):
2191 Avoid redundant calls to strlen.
2192
21932013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2194
2195 Drop async_visible and async_iconified fields of struct frame.
2196 This is possible because async input is gone; for details, see
2197 http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html.
2198 * frame.h (struct frame): Remove async_visible and async_iconified
2199 members, convert garbaged to unsigned bitfield. Adjust comments.
2200 (FRAME_SAMPLE_VISIBILITY): Remove. Adjust all users.
2201 (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
2202 * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
2203 Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
2204 FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
2205 * w32term.c: Ditto.
2206 (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
2207 properly. Likewise for obscured.
2208 * xterm.c: Ditto.
2209 (handle_one_xevent): Save visible state to generate ICONIFY_EVENT
2210 properly.
2211 * nsterm.m: Ditto.
2212 (windowDidDeminiaturize): Generate DEICONIFY_EVENT.
2213
22142013-01-24 Dmitry Antipov <dmantipov@yandex.ru>
2215
2216 * insdel.c (prepare_to_modify_buffer): Revert last change as suggested
2217 in http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00555.html.
2218
22192013-01-23 Stefan Monnier <monnier@iro.umontreal.ca>
2220
2221 * xdisp.c (message2, message2_nolog): Remove functions.
2222 (message3, message3_nolog): Extract nbytes and multibyteness directly
2223 from the string. Change all callers.
2224 (message3_nolog): Don't set message_enable_multibyte since set_message
2225 will reset it anyway.
2226 (message1, message1_nolog): Use message3.
2227 (vmessage): Use a stack allocated buffer rather than f->message_buf.
2228 (with_echo_area_buffer): Remove last two arguments. Update all callers.
2229 (set_message): Drop all but the second arg, which has to be a string.
2230 (set_message_1): Simplify now that we know that a1 is NULL and the
2231 second arg is a string.
2232 * frame.h (struct frame): Remove `message_buf' field.
2233 Use glyphs_initialized_p instead.
2234 (FRAME_MESSAGE_BUF): Remove macro.
2235 * w16select.c (Fw16_set_clipboard_data): Prefer message3 to message2.
2236 * lisp.h (message2, message2_nolog): Remove declarations.
2237 (message3, message3_nolog): Update declarations.
2238 * keyboard.c (read_char_minibuf_menu_text)
2239 (read_char_minibuf_menu_width): Remove vars.
2240 (read_char_minibuf_menu_prompt): Rewrite the menu's construction so as
2241 to correctly handle multibyte strings.
2242 * frame.c (delete_frame): Don't free message_buf any more.
2243 * editfns.c (message_text, message_length): Remove vars.
2244 (Fmessage_box): Don't copy the Lisp string's bytes any longer.
2245 * fileio.c (auto_save_error): Use message3 instead of message2.
2246 * dispnew.c (adjust_frame_message_buffer): Remove function.
2247
22482013-01-23 Eli Zaretskii <eliz@gnu.org>
2249
2250 * w32term.c (w32fullscreen_hook): Account correctly for the screen
2251 real estate used for the tool bar and the menu bar.
2252
22532013-01-23 Dmitry Antipov <dmantipov@yandex.ru>
2254
2255 * insdel.c (prepare_to_modify_buffer): Force redisplay if
2256 hidden buffer is prepared to modification (Bug#13164).
2257
22582013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
2259
2260 * window.h (struct window): Change window_end_valid member from
2261 Lisp_Object to a bitfield. Adjust comments.
2262 (wset_window_end_valid): Remove.
2263 * window.c (adjust_window_count): Clear window_end_valid.
2264 (Fwindow_end): Adjust user. Remove ancient #if 0 code.
2265 (Fwindow_line_height, set_window_buffer, Frecenter)
2266 (Fsplit_window_internal, Fdelete_other_windows_internal)
2267 (Fset_window_fringes, Fset_window_scroll_bars): Adjust users.
2268 * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise.
2269 * xdisp.c (check_window_end, reconsider_clip_changes)
2270 (redisplay_internal, mark_window_display_accurate_1, redisplay_window)
2271 (try_window, try_window_reusing_current_matrix, note_mouse_highlight)
2272 (find_first_unchanged_at_end_row, try_window_id): Likewise.
2273
22742013-01-22 Dmitry Antipov <dmantipov@yandex.ru>
2275
2276 * xdisp.c (mark_window_display_accurate): Simplify the loop
2277 assuming that the only one of vchild, hchild or buffer window
2278 slots is non-nil. Call mark_window_display_accurate_1 for
2279 the leaf windows only.
2280 (mark_window_display_accurate_1): Always assume leaf window.
2281 Adjust comment.
2282
22832013-01-22 Paul Eggert <eggert@cs.ucla.edu>
2284
2285 * emacs.c (Qkill_emacs_hook): Now static.
2286
2287 * fileio.c (Finsert_file_contents): Simplify.
2288 Remove unnecessary assignments and tests.
2289
22902013-01-21 Eli Zaretskii <eliz@gnu.org>
2291
2292 * w32.c (acl_set_file): Don't test for errors unless
2293 set_file_security returns FALSE. Avoids spurious errors when
2294 saving files.
2295
22962013-01-21 Dmitry Antipov <dmantipov@yandex.ru>
2297
2298 * fileio.c (Finsert_file_contents): Revert code introduced at
2299 2013-01-18 in favor of the simpler and generally better fix.
2300 Save stack space by removing 'buffer' and reusing 'read_buf'
2301 where appropriate.
2302
23032013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2304
2305 * lisp.h (eabs): Define unconditionally (Bug#13419).
2306 The old "#if !defined (eabs)" was an unnecessary revenant of back
2307 when this macro was called "abs". Document 'eabs' better.
2308
23092013-01-19 Glenn Morris <rgm@gnu.org>
2310
2311 * fns.c (Frandom): Doc fix.
2312
23132013-01-19 Eli Zaretskii <eliz@gnu.org>
2314
2315 * editfns.c (get_pos_property): Use SAFE_ALLOCA_LISP, to avoid
2316 segfault when there are lots of overlays.
2317
2318 * buffer.c (sort_overlays): Use SAFE_NALLOCA, to avoid segfault
2319 when there are lots of overlays.
2320 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00421.html
2321 for the details and a way to reproduce.
2322
23232013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2324
2325 * fileio.c: Use O_APPEND to append.
2326 This corresponds better to the natural interpretation of "append",
2327 and avoids the need to open the output file twice, or to invoke
2328 lseek when APPEND is neither nil nor a number.
2329 This relies on POSIX 1003.1-1988 or later, which is OK nowadays.
2330 (Fwrite_region): Simplify. Use O_APPEND instead of opening the
2331 file possibly twice, and lseeking to its end; this avoids the
2332 need to lseek on non-regular files. Do not use O_EXCL and O_TRUNC
2333 at the same time: the combination is never needed and apparently
2334 it doesn't work with DOS_NT.
2335
2336 Fix size bug on DOS_NT introduced by CIFS workaround (Bug#13149).
2337 * fileio.c (Fwrite_region): Use O_BINARY in checking code, too.
2338
2339 Allow floating-point file offsets.
2340 Problem reported by Vitalie Spinu in
2341 <http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00411.html>.
2342 * fileio.c (emacs_lseek): Remove.
2343 (file_offset): New function.
2344 (Finsert_file_contents, Fwrite_region): Use it.
2345
23462013-01-19 Chong Yidong <cyd@gnu.org>
2347
2348 * emacs.c (Fkill_emacs): Set waiting_for_input to 0 to avoid
2349 aborting on Fsignal (Bug#13289).
2350
23512013-01-19 Eli Zaretskii <eliz@gnu.org>
2352
2353 * w32.c (acl_set_file): Treat ERROR_ACCESS_DENIED from
2354 set_file_security as failure due to insufficient privileges.
2355 Reported by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2356 (fstat): Return owner and group like 'stat' and 'lstat' do.
2357
23582013-01-19 Paul Eggert <eggert@cs.ucla.edu>
2359
2360 Work around bug in CIFS and vboxsf file systems (Bug#13149).
2361 The bug was observed on Ubuntu operating inside a virtual machine,
2362 editing files mounted via CIFS or vboxsf from the MS Windows 7 host.
2363 The workaround introduces a race condition on non-buggy hosts,
2364 but it's an unlikely race and anyway there's a nearly identical
2365 nearby race that can't be fixed.
2366 * fileio.c (valid_timestamp_file_system, timestamp_file_system):
2367 New static vars.
2368 (Fwrite_region): Test for file system time stamp bug.
2369 (init_fileio): New function.
2370 * lisp.h (init_fileio): Declare it.
2371 * emacs.c (main): Call it.
2372
2373 * fileio.c (Finsert_file_contents): Simplify new diagnostic
2374 and make it more consistent with other stat-failure diagnostics.
2375
23762013-01-18 Dmitry Antipov <dmantipov@yandex.ru>
2377
2378 Fix crash when inserting data from non-regular files.
2379 See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00406.html
2380 for the error description produced by valgrind.
2381 * fileio.c (read_non_regular): Rename to read_contents.
2382 Free Lisp_Save_Value object used to pass parameters.
2383 (read_non_regular_quit): Rename to read_contents_quit.
2384 (Finsert_file_contents): Redesign internal file reading loop to adjust
2385 gap and end positions after each read and so help make_gap to work
2386 properly. Do not signal an I/O error too early and so do not leave
2387 not yet decoded characters in a buffer, which was the reason of
2388 redisplay crash. Use list2 to build return value. Adjust comments.
2389
23902013-01-17 Paul Eggert <eggert@cs.ucla.edu>
2391
2392 Close a race when statting and reading files (Bug#13149).
2393 * fileio.c (Finsert_file_contents): Use open+fstat, not stat+open.
2394 This avoids a race if the file is renamed between stat and open.
2395 This race is not the problem originally noted in Bug#13149;
2396 see <http://bugs.gnu.org/13149#73> and later messages in the thread.
2397
23982013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
2399
2400 * lisp.h (toplevel): Add comment about using Lisp_Save_Value
2401 objects, related functions and macros.
2402 (make_save_value): Adjust prototype.
2403 (make_save_pointer): New prototype.
2404 (SAFE_NALLOCA): Fix indentation. Use make_save_pointer.
2405 (SAFE_ALLOCA_LISP): Adjust make_save_value usage.
2406 * alloc.c (format_save_value): Rename to make_save_value.
2407 (make_save_pointer): New function.
2408 (record_xmalloc): Use make_save_pointer.
2409 * dired.c, editfns.c, fileio.c, font.c, gtkutil.c, lread.c:
2410 * nsmenu.m, nsterm.m, xfns.c, xmenu.c, xselect.c, keymap.c:
2411 Change users of make_save_value to make_save_pointer.
2412 Likewise for format_save_value and make_save_value.
2413
24142013-01-17 Dmitry Antipov <dmantipov@yandex.ru>
2415
2416 * buffer.h (NARROWED, BUF_NARROWED): Drop unused macros.
2417 (DECODE_POSITION, BUFFER_CHECK_INDIRECTION): Fix indentation.
2418 * buffer.c (toplevel, syms_of_buffer): Drop old commented-out
2419 debugging stubs.
2420
24212013-01-15 Paul Eggert <eggert@cs.ucla.edu>
2422
2423 * alloc.c (free_save_value): Now static.
2424
24252013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2426
2427 * keymap.c (map_keymap_internal): Use format_save_value.
2428 (map_keymap_char_table_item): Adjust accordingly.
2429 * fileio.c (non_regular_fd, non_regular_inserted)
2430 (non_regular_nbytes): Remove.
2431 (Finsert_file_contents): Convert trytry to ptrdiff_t.
2432 Use format_save_value to pass parameters to read_non_regular.
2433 (read_non_regular): Use XSAVE_ macros to extract parameters.
2434 Adjust comment.
2435 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
2436 format_save_value.
2437 (pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
2438
24392013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2440
2441 * lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow
2442 extraction from any Lisp_Save_Value slot. Add type checking.
2443 * alloc.c, dired.c, editfns.c, fileio.c, ftfont.c, gtkutil.c:
2444 * keymap.c, lread.c, nsterm.h, nsmenu.c, xfns.c, xmenu.c:
2445 * xselect.c: All users changed.
2446
24472013-01-15 Dmitry Antipov <dmantipov@yandex.ru>
2448
2449 Some convenient bits to deal with Lisp_Save_Values.
2450 * lisp.h (XSAVE_OBJECT): New macro to extract saved objects.
2451 (allocate_misc): Remove prototype.
2452 (format_save_value): New prototype.
2453 * alloc.c (allocate_misc): Revert back to static.
2454 (format_save_value): New function to build Lisp_Save_Value
2455 object with the specified internal structure.
2456 (make_save_value): Reimplement using format_save_value.
2457 * editfns.c (save_excursion_save): Use format_save_value.
2458 (save_excursion_restore): Use XSAVE_OBJECT.
2459
24602013-01-14 Paul Eggert <eggert@cs.ucla.edu>
2461
2462 Avoid needless casts with XSAVE_POINTER.
2463 * alloc.c (mark_object) [GC_MARK_STACK]:
2464 * dired.c (directory_files_internal_unwind):
2465 * fileio.c (do_auto_save_unwind):
2466 * gtkutil.c (pop_down_dialog):
2467 * keymap.c (map_keymap_char_table_item):
2468 * lread.c (load_unwind):
2469 * nsmenu.m (pop_down_menu):
2470 * print.c (print_object) [GC_MARK_STACK]:
2471 * xfns.c (clean_up_file_dialog):
2472 * xmenu.c (cleanup_widget_value_tree):
2473 Omit casts between XSAVE_POINTER and a pointer type.
2474
24752013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
2476
2477 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
2478 * eval.c (eval_sub): Protect `form' from being GCed before its
2479 car and cdr becomes protected with the backtrace entry.
2480
24812013-01-14 Dmitry Antipov <dmantipov@yandex.ru>
2482
2483 Make Lisp_Save_Value more versatile storage for up to four objects.
2484 * lisp.h (toplevel): Enumeration to describe types of saved objects.
2485 (struct Lisp_Save_Value): New layout. Adjust comments.
2486 (XSAVE_POINTER): New macro.
2487 (XSAVE_INTEGER): Likewise.
2488 (allocate_misc): Add prototype.
2489 (free_misc): Likewise.
2490 * alloc.c (allocate_misc): Now global.
2491 (free_misc): Likewise. Adjust comment.
2492 (make_save_value): Use new Lisp_Save_Value layout. Adjust comment.
2493 (free_save_value): Likewise.
2494 (mark_object): Likewise.
2495 * editfns.c (save_excursion_save): Pack everything within
2496 Lisp_Save_Value and so avoid xmalloc.
2497 (save_excursion_restore): Adjust to match new layout. Use free_misc
2498 because we do not allocate extra memory any more. Add eassert.
2499 * print.c (print_object): New code to print Lisp_Save_Value. Do not
2500 rely on valid_lisp_object_p if !GC_MARK_STACK. Adjust comments.
2501 * dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c,
2502 * lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c:
2503 Use XSAVE_POINTER and XSAVE_INTEGER where appropriate.
2504
25052013-01-13 Jan Djärv <jan.h.d@swipnet.se>
2506
2507 * nsfont.m (LCD_SMOOTHING_MARGIN): New define.
2508 (nsfont_draw): Remove disabling of LCD smoothing.
2509 (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix
2510 Bug#11484 with LCD smoothing on.
2511
25122013-01-13 Paul Eggert <eggert@cs.ucla.edu>
2513
2514 Fix SIGDANGER handlers, for AIX (Bug#13408).
2515 * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]:
2516 Move handlers here from emacs.c; they were out of place.
2517
25182013-01-11 Jan Djärv <jan.h.d@swipnet.se>
2519
2520 * xterm.c (syms_of_xterm): Adjust documentation for
2521 scroll-bar-adjust-thumb-portion.
2522
25232012-12-31 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
2524
2525 * xterm.c (scroll-bar-adjust-thumb-portion): New variable to
2526 determine whether scroll bar thumb size should be adjusted or
2527 not. Use variable for MOTIF.
2528
2529 * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for
2530 GTK.
2531
25322013-01-13 Jan Djärv <jan.h.d@swipnet.se>
2533
2534 * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key
2535 event is generated.
2536 (doCommandBySelector:): Set processingCompose to NO.
2537
2538 * nsfont.m (ns_findfonts): Add block/unblock_input calls.
2539 Remove check for fkeys count > zero, block/unblock fixes the real bug.
2540 (nsfont_list_family): Add block/unblock_input calls.
2541 (nsfont_open): Move block_input earlier. Add unblock_input before early
2542 return.
2543 (nsfont_draw): Add block/unblock_input calls.
2544
25452013-01-12 Dmitry Antipov <dmantipov@yandex.ru>
2546
2547 * indent.c (Fvertical_motion): Remove now-incorrect GCPROs
2548 for old_charpos and old_bytepos.
2549
25502013-01-12 Paul Eggert <eggert@cs.ucla.edu>
2551
2552 Fix bug with set-time-zone-rule and LOCALTIME_CACHE (Bug#13415).
2553 * editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]:
2554 Clear tzvalbuf_in_environ if this workaround is in effect.
2555 Problem and fix reported by Kazuhiro Ito.
2556
25572013-01-11 Aaron S. Hawley <Aaron.Hawley@vtinfo.com>
2558
2559 * insdel.c (Fcombine_after_change_execute, syms_of_insdel):
2560 Fix ambiguous doc string cross-reference(s).
2561
2562 * keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous
2563 doc string cross-reference(s).
2564
2565 * window.c (Fwindow_point, syms_of_window): Fix ambiguous doc
2566 string cross-reference(s).
2567
25682013-01-11 Dmitry Antipov <dmantipov@yandex.ru>
2569
2570 Avoid unnecessary byte position calculation for the gap movement.
2571 Since all users of move_gap do CHAR_TO_BYTE for other purposes
2572 anyway, all of them should use move_gap_both instead.
2573 * lisp.h (move_gap): Remove prototype.
2574 * insdel.c (move_gap): Remove.
2575 (move_gap_both): Add eassert.
2576 * editfns.c (Ftranspose_regions): Tweak to use move_gap_both.
2577 * xml.c (parse_region): Likewise.
2578
25792013-01-11 Paul Eggert <eggert@cs.ucla.edu>
2580
2581 emacsclient -t should not suspend Emacs server (Bug#13387)
2582 * lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
2583 New functions.
2584 * term.c (init_tty): Use them instead of rolling our own code.
2585 * sysdep.c (tcsetpgrp_without_stopping): Likewise. Here, this
2586 switches from 'signal' to 'pthread_sigmask', which is safer in
2587 multithreaded applications.
2588 * term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY,
2589 which has already arranged for that.
2590 (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY.
2591 This is the main part of the bug fix.
2592
25932013-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> (tiny change)
2594
2595 * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around
2596 x_last_font_name (Bug#13403).
2597
25982013-01-10 Dmitry Antipov <dmantipov@yandex.ru>
2599
2600 Omit buffer_slot_type_mismatch and use generic predicates to enforce
2601 the type of per-buffer values where appropriate.
2602 * lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to
2603 predicate, which is how it's really used now. Adjust comment.
2604 * buffer.h (buffer_slot_type_mismatch): Remove prototype.
2605 * buffer.c (buffer_slot_type_mismatch): Remove.
2606 (DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to
2607 predicate. Adjust comment.
2608 (syms_of_buffer): Use Qsymbolp for major-mode. Use Qintegerp for
2609 fill-column, left-margin, tab-width, buffer-saved-size,
2610 left-margin-width, right-margin-width, left-fringe-width,
2611 right-fringe-width, scroll-bar-width and buffer-display-count.
2612 Use Qstringp for default-directory, buffer-file-name,
2613 buffer-file-truename and buffer-auto-save-file-name. Use Qfloatp for
2614 scroll-up-aggressively and scroll-down-aggressively. Use Qnumberp for
2615 line-spacing.
2616 * data.c (store_symval_forwarding): Adjust to call the predicate.
2617
26182013-01-09 Juanma Barranquero <lekktu@gmail.com>
2619
2620 * w32.c (get_name_and_id, acl_set_file):
2621 * w32term.c (w32fullscreen_hook): Remove unused local variables.
2622
26232013-01-09 Dmitry Antipov <dmantipov@yandex.ru>
2624
2625 * lisp.h (make_gap_1): New prototype.
2626 * buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special
2627 gap size values.
2628 * editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common
2629 naming convention.
2630 (syms_of_editfns): Adjust defsubr. Drop commented-out obsolete code.
2631 * insdel.c (make_gap_larger): Use GAP_BYTES_DFL. Adjust comment.
2632 (make_gap_smaller): Use GAP_BYTES_MIN. Adjust comment.
2633 (make_gap_1): New function to adjust the gap of any buffer.
2634 * coding.c (coding_alloc_by_making_gap): Use it.
2635 * buffer.c (compact_buffer): Likewise. Use BUF_Z_BYTE, BUF_GAP_SIZE,
2636 GAP_BYTES_DFL and GAP_BYTES_MIN. Adjust comment.
2637
26382013-01-08 Juri Linkov <juri@jurta.org>
2639
2640 * xfaces.c (tty_supports_face_attributes_p): Return 0 for the case
2641 of (supports :underline (:style wave)). (Bug#13000)
2642
26432013-01-08 Aaron S. Hawley <aaron.s.hawley@gmail.com>
2644
2645 * undo.c (Fprimitive_undo): Move to simple.el.
2646 (syms_of_undo): Remove declarations for Sprimitive_undo.
2647
26482013-01-08 Stefan Monnier <monnier@iro.umontreal.ca>
2649
2650 * keyboard.c (echo_add_key): Rename from echo_add_char.
2651
26522013-01-06 Chong Yidong <cyd@gnu.org>
2653
2654 * keyboard.c (echo_add_char): New function, factored out from
2655 echo_char. Don't add a space if the previous echo string was
2656 empty (Bug#13255).
2657 (echo_char): Use it.
2658 (read_key_sequence): When echoing mock input, ensure that the
2659 trailing dash is properly added.
2660
26612013-01-05 Eli Zaretskii <eliz@gnu.org>
2662
2663 * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead
2664 of a non-portable "t" to print ptrdiff_t values. Allow up to 9
2665 digits for buffer positions, before misalignment starts.
2666 Display "0" for integer "object" field.
2667 (dump_glyph_row): Adapt the header line to changes in dump_glyph.
2668 Display the newline glyph more unambiguously.
2669
26702013-01-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2671
2672 * nsterm.m (ns_draw_underwave):
2673 * w32term.c (w32_draw_underwave):
2674 * xterm.c (x_draw_underwave): Make underwave look more triangular
2675 and also degrade gracefully for small fonts. (Bug#13000)
2676
2677 * nsterm.m (ns_draw_text_decoration):
2678 * w32term.c (x_draw_glyph_string):
2679 * xterm.c (x_draw_glyph_string): Don't use previous underline
2680 thickness and position if previous underline type is underwave.
2681
26822013-01-04 Stefan Monnier <monnier@iro.umontreal.ca>
2683
2684 * fileio.c (Ffile_acl): Undocument return format.
2685
26862013-01-02 Glenn Morris <rgm@gnu.org>
2687
2688 * keymap.c (Fkey_description): Doc fix. (Bug#13323)
2689
26902013-01-02 Paul Eggert <eggert@cs.ucla.edu>
2691
2692 Simplify via eabs.
2693 * dired.c (file_name_completion):
2694 * doc.c (get_doc_string):
2695 * floatfns.c (round2):
2696 * font.c (font_score, font_delete_unmatched):
2697 * fringe.c (compute_fringe_widths):
2698 * lread.c (read_list):
2699 * minibuf.c (Ftry_completion):
2700 * term.c (tty_ins_del_lines):
2701 * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
2702 Use eabs (x) rather than open-coding it as (x < 0 ? -x : x).
2703
27042012-12-31 Eli Zaretskii <eliz@gnu.org>
2705
2706 * w32.c (unsetenv): Set up the string passed to _putenv
2707 correctly.
2708 See http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00863.html
2709 for the bug this caused.
2710
27112012-12-30 Paul Eggert <eggert@cs.ucla.edu>
2712
2713 * coding.c (Qmac): Now static.
2714
27152012-12-30 Jan Djärv <jan.h.d@swipnet.se>
2716
2717 * gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
2718 (xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
2719 handlebox_widget. Set toolbar_in_hbox to false/true, set
2720 toolbar_is_packed to true.
2721 (xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
2722 (update_frame_tool_bar): Check toolbar_is_packed for packing.
2723 Show all on TOOLBAR_TOP_WIDGET.
2724 (free_frame_tool_bar): Check toolbar_is_packed. Use widget returned
2725 by TOOLBAR_TOP_WIDGET.
2726 (xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
2727 Check toolbar_is_packed.
2728 (xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on
2729 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2730 (xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return
2731 false.
2732 (create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2733 (xg_update_menubar): Update title only if
2734 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2735 (xg_update_submenu): Skip tearoff only if
2736 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2737 (xg_initialize): Initialize xg_detached_menus only if
2738 HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
2739
2740 * xterm.h (struct x_output): Surround handlebox_widget with
2741 #ifdef HAVE_GTK_HANDLE_BOX_NEW. toolbar_is_packed is new,
2742 toolbar_in_hbox is bool.
2743
27442012-12-30 Andreas Schwab <schwab@linux-m68k.org>
2745
2746 * src/Makefile.in (TEMACS_LDFLAGS2): Remove.
2747 (LIBS_GNUSTEP): Define.
2748 (LIBES): Add $(LIBS_GNUSTEP).
2749 (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
2750
27512012-12-30 Eli Zaretskii <eliz@gnu.org>
2752
2753 * xdisp.c (set_cursor_from_row): Don't confuse a truncation or
2754 continuation glyph on a TTY with an indication of an empty line.
2755 (Bug#13277)
2756
27572012-12-29 Eli Zaretskii <eliz@gnu.org>
2758
2759 * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if
2760 file's SELinux context or ACLs successfully set, nil otherwise.
2761 (Bug#13298)
2762 (Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails.
2763
2764 * w32proc.c (reader_thread): Avoid passing NULL handles to
2765 SetEvent and WaitForSingleObject.
2766
27672012-12-28 Paul Eggert <eggert@cs.ucla.edu>
2768
2769 Port EXTERNALLY_VISIBLE to Clang 3.2.
2770 * conf_post.h (__has_attribute): New macro.
2771 (EXTERNALLY_VISIBLE): Use it. This ports to Clang 3.2.
2772
27732012-12-27 Glenn Morris <rgm@gnu.org>
2774
2775 * cygw32.c (Fcygwin_convert_file_name_to_windows)
2776 (Fcygwin_convert_file_name_from_windows): Doc fixes.
2777
27782012-12-27 Eli Zaretskii <eliz@gnu.org>
2779
2780 * fileio.c (file_name_as_directory, directory_file_name):
2781 Accept an additional argument MULTIBYTE to indicate whether the input C
2782 came from a multibyte or a unibyte Lisp string; all callers
2783 adjusted. Don't assume the input string is always multibyte.
2784 (Bug#13262)
2785 (Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly:
2786 don't ENCODE_FILE them, and return a unibyte string if the input
2787 was unibyte.
2788 (Fexpand_file_name): Don't mix unibyte with multibyte strings, and
2789 don't assume the input strings will always be multibyte. If the
2790 input strings are multibyte, decode strings obtained from C
2791 library functions.
2792
27932012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2794
2795 * lisp.h (toplevel): Add two notices to the comment about
2796 defining a new Lisp data type.
2797 * print.c (print_object): If Lisp_Save_Value object's pointer
2798 is the address of a memory area containing Lisp_Objects, try
2799 to print them.
2800 * alloc.c (valid_lisp_object_p): Adjust comment.
2801
28022012-12-26 Dmitry Antipov <dmantipov@yandex.ru>
2803
2804 * keyboard.c (record_asynch_buffer_change): Initialize an event
2805 only if it's really needed.
2806 * frame.h (enum output_method): Remove output_mac member since
2807 it's a leftover from the deleted code.
2808 * frame.c (Fframep): Adjust user here ...
2809 * terminal.c (Fterminal_live_p): ... and here.
2810 * coding.c (Qmac): Now here because it's only used to denote
2811 end-of-line encoding type.
2812 (syms_of_coding): DEFSYM it.
2813 * frame.h (Qmac): Remove duplicated declaration.
2814
28152012-12-26 Paul Eggert <eggert@cs.ucla.edu>
2816
2817 * window.c (select_window_1): Now static, since it's used only here.
2818
28192012-12-25 Eli Zaretskii <eliz@gnu.org>
2820
2821 * window.c (window_body_cols): Subtract display margins from the
2822 window body width on TTYs as well. See
2823 http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html
2824 for the original report.
2825
28262012-12-25 Dmitry Antipov <dmantipov@yandex.ru>
2827
2828 * xdisp.c (redisplay_window): Remove inner local variable
2829 because the outer shadowed one has the same meaning.
2830 * xterm.h (struct x_output): Remove toolbar_detached member since it's
2831 set but never used.
2832 * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
2833 (xg_create_tool_bar): Adjust users.
2834
28352012-12-24 Dmitry Antipov <dmantipov@yandex.ru>
2836
2837 * buffer.h (BUF_COMPACT): New macro to follow the common style.
2838 * buffer.c (Fget_buffer_create): Use it to set compact field of
2839 struct buffer_text to avoid accessing an uninitialized value
2840 when compact_buffer is called for the first time.
2841 (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
2842 (Fset_buffer_modified_p): Use buffer_window_count to check
2843 whether the buffer is displayed in some window.
2844 * xdisp.c (message_dolog): Likewise.
2845
28462012-12-23 Eli Zaretskii <eliz@gnu.org>
2847
2848 * w32.c (acl_set_file): If setting the file security descriptor
2849 fails, and the new DACL is identical to the existing one, silently
2850 return success. This fixes problems for users backing up their
2851 own files without having the necessary privileges for setting
2852 security descriptors.
2853
2854 * w32proc.c (reader_thread): Do not index fd_info[] with negative
2855 values.
2856 (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
2857 after WaitForSingleObject returns normally. This expedites reader
2858 thread shutdown when delete_child triggers it.
2859 (reap_subprocess): More accurate commentary for why we call
2860 delete_child only when cp->fd is negative.
2861
2862 * w32.c (sys_close): Do not call delete_child on a subprocess
2863 whose handle is not yet closed. Instead, set its file descriptor
2864 to a negative value, so that reap_subprocess will call
2865 delete_child on that subprocess when its SIGCHLD arrives.
2866 This avoids closing handles used for communications between sys_select
2867 and reader_thread, which doesn't give sys_select a chance to
2868 notice that the process exited and invoke the SIGCHLD handler for
2869 it.
2870
28712012-12-23 Jan Djärv <jan.h.d@swipnet.se>
2872
2873 * nsfns.m (Fns_do_applescript): Run event loop until script has
2874 been executed (Bug#12969).
2875 (ns_run_ascript): Chech as_script for nil, set to nil after
2876 executing script.
2877
28782012-12-22 Martin Rudalics <rudalics@gmx.at>
2879
2880 * window.c (Fselect_window): Reword doc-string (Bug#13248).
2881
28822012-12-22 Eli Zaretskii <eliz@gnu.org>
2883
2884 * w32term.c (w32fullscreen_hook): New function.
2885 (w32_create_terminal): Plug it into the terminal's fullscreen_hook.
2886
28872012-12-21 Eli Zaretskii <eliz@gnu.org>
2888
2889 * fileio.c (Finsert_file_contents): Doc fix.
2890
2891 * w32proc.c (new_child, delete_child, find_child_pid): For a
2892 subprocess, consider its slot being in use as long as its process
2893 handle (procinfo.hProcess) is not NULL. This avoids reusing the
2894 slot when a new process is started immediately after killing
2895 another one, without waiting enough time for the first process to
2896 be reaped and resources allocated for it be orderly freed.
2897 (Bug#13086)
2898 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2899
29002012-12-21 Chong Yidong <cyd@gnu.org>
2901
2902 * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231).
2903
2904 * fns.c (Fcompare_strings): Doc fix (Bug#13081).
2905
29062012-12-21 Eli Zaretskii <eliz@gnu.org>
2907
2908 * w32.c (get_name_and_id): Always pass NULL as the first argument
2909 of lookup_account_sid. Avoids crashes with UNC file names that
2910 refer to DFS domains, not to specific machine names. (Bug#12621)
2911 Remove now unused argument FNAME; all callers changed.
2912 (get_file_owner_and_group): Remove now unused argument FNAME; all
2913 callers changed.
2914
29152012-12-21 Chong Yidong <cyd@gnu.org>
2916
2917 * editfns.c (Finsert_char): Since read-char-by-name now signals an
2918 error for invalid chars, don't check for a nil return value.
2919
29202012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2921
2922 Avoid calls to CHAR_TO_BYTE if byte position is known.
2923 * editfns.c (make_buffer_string_both): Use move_gap_both.
2924 (Fbuffer_string): Use make_buffer_string_both.
2925 * marker.c (buf_charpos_to_bytepos): Convert to eassert.
2926 Adjust comment.
2927 (buf_bytepos_to_charpos): Likewise.
2928 (charpos_to_bytepos): Remove.
2929 * fileio.c (Finsert_file_contents): Use move_gap_both.
2930 * search.c (Freplace_match): Likewise.
2931 * process.c (process_send_region): Likewise. Use convenient
2932 names for byte positions.
2933 * lisp.h (charpos_to_bytepos): Remove prototype.
2934 * indent.c (scan_for_column): Use CHAR_TO_BYTE.
2935 * insdel.c (move_gap): Likewise.
2936
29372012-12-20 Paul Eggert <eggert@cs.ucla.edu>
2938
2939 * xdisp.c (redisplay_internal): Remove now-unused local.
2940
29412012-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
2942
2943 * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove.
2944 (redisplay_internal): Don't bother selecting the frame to get the
2945 proper value of frame-local variables (bug#13225).
2946
29472012-12-20 Dmitry Antipov <dmantipov@yandex.ru>
2948
2949 * textprop.c (set_text_properties_1): Do not allow NULL interval.
2950 Rename 4th argument since it may be buffer or string. Adjust comment.
2951 * intervals.c (graft_intervals_info_buffer): Find an interval here.
2952
29532012-12-19 Dmitry Antipov <dmantipov@yandex.ru>
2954
2955 * coding.c (Fdetect_coding_region): Do not check start and end with
2956 CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
2957 (code_convert_region): Likewise.
2958
29592012-12-18 Eli Zaretskii <eliz@gnu.org>
2960
2961 * w32.c (acl_get_file, acl_set_file): Run the file name through
2962 map_w32_filename, and resolve any symlinks in the file name, like
2963 Posix platforms do.
2964 (acl_set_file): Call revert_to_self, if any privileges were
2965 enabled.
2966
29672012-12-17 Juanma Barranquero <lekktu@gmail.com>
2968
2969 * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
2970 ($(BLD)/w32.$(O)): Update dependencies.
2971
29722012-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
2973
2974 * xdisp.c (select_frame_for_redisplay): Use select_window_1 to
2975 propagate redisplay's scrolling (if any) to the right window.
2976 (redisplay_internal): Use ensure_selected_frame.
2977 (display_mode_lines): Complete last fix.
2978 * window.c (select_window_1): New func, extracted from select_window.
2979 (select_window): Use it.
2980 * window.h (select_window_1): Declare.
2981
29822012-12-17 Eli Zaretskii <eliz@gnu.org>
2983
2984 Emulate Posix ACL APIs on MS-Windows.
2985 * w32.c: Include sddl.h and sys/acl.h.
2986 (SDDL_REVISION_1): Define if not already defined.
2987 (g_b_init_get_security_descriptor_dacl)
2988 (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
2989 (g_b_init_is_valid_security_descriptor)
2990 (g_b_init_set_file_security): New static flags.
2991 (globals_of_w32): Initialize them to zero.
2992 (SetFileSecurity_Name): New string constant.
2993 (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
2994 (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
2995 (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
2996 (IsValidSecurityDescriptor_Proc): New typedefs.
2997 (get_file_security, get_security_descriptor_owner)
2998 (get_security_descriptor_group): Set errno to ENOTSUP.
2999 (set_file_security, get_security_descriptor_dacl)
3000 (is_valid_security_descriptor, convert_sd_to_sddl)
3001 (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
3002 (acl_free, acl_get_file, acl_set_file): New functions.
3003
3004 * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
3005
30062012-12-17 Paul Eggert <eggert@cs.ucla.edu>
3007
3008 Don't reraise SIGCHLD, as that can now lose (Bug#13192).
3009 With the 2012-12-03 fix for Bug#12980 in place, an old workaround
3010 for some of that bug's symptoms can now cause Emacs to abort.
3011 Remove the workaround.
3012 * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
3013 The bug that caused SIGCHLD to get lost has been fixed, and the
3014 workaround for it can now cause Emacs to abort.
3015
30162012-12-16 Paul Eggert <eggert@cs.ucla.edu>
3017
3018 * sysdep.c (emacs_abort): Bump backtrace size to 40.
3019 Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in
3020 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
3021
30222012-12-16 Romain Francoise <romain@orebokech.com>
3023
3024 * fileio.c (Ffile_acl, Fset_file_acl): New functions.
3025 (Fcopy_file): Change last arg to `preserve_extended_attributes'
3026 and copy ACL entries of file in addition to SELinux context if set.
3027 (syms_of_fileio): Add `file-acl' and `set-file-acl'.
3028
3029 * Makefile.in (LIBACL_LIBS): New macro.
3030 (LIBES): Use it.
3031
30322012-12-15 Paul Eggert <eggert@cs.ucla.edu>
3033
3034 * fileio.c (internal_delete_file): Use bool for boolean.
3035
30362012-12-15 Eli Zaretskii <eliz@gnu.org>
3037
3038 Fix bug #13079 on MS-Windows with temp files not being deleted.
3039 * w32.h (_child_process): New members input_file and
3040 pending_deletion.
3041 (register_child): First argument is now pid_t.
3042 (record_infile, record_pending_deletion): New prototypes.
3043
3044 * w32proc.c (new_child): Initialize input_file and
3045 pending_deletion members of the child.
3046 (delete_child): Delete the child's temporary input file, if any,
3047 that is pending deletion.
3048 (register_child): First argument is now pid_t.
3049 (record_infile, record_pending_deletion): New functions.
3050 (reap_subprocess): Fix a typo in DebPrint string.
3051 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
3052
3053 * fileio.c (internal_delete_file): Return an int again: non-zero
3054 if delete-file succeeds, zero otherwise.
3055
3056 * lisp.h (internal_delete_file): Adjust prototype.
3057
3058 * callproc.c (Fcall_process): Don't overwrite infile with result
3059 of DECODE_FILE.
3060 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
3061 asynchronous subprocess, record the name of the input file name,
3062 if any.
3063 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
3064 delete the file, record it as pending deletion when the subprocess
3065 exits.
3066
30672012-12-14 Eli Zaretskii <eliz@gnu.org>
3068
3069 * editfns.c [HAVE_PWD_H]: Include grp.h.
3070
3071 * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
3072
30732012-12-14 Paul Eggert <eggert@cs.ucla.edu>
3074
3075 Fix permissions bugs with setgid directories etc. (Bug#13125)
3076 * dired.c (Ffile_attributes): Return t as the 9th attribute,
3077 to mark it as a placeholder. The old value was often wrong.
3078 The only user of this attribute has been changed to use
3079 file-ownership-preserved-p instead, with its new group arg.
3080 * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
3081
30822012-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
3083
3084 * xdisp.c (select_frame_for_redisplay, display_mode_lines):
3085 Keep selected_window and selected_frame in sync.
3086
30872012-12-14 Eli Zaretskii <eliz@gnu.org>
3088
3089 * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
3090 try to get accurate owner and group information from NT file
3091 security APIs. This is to make most callers of 'stat' and
3092 'lstat', which don't need that information, much faster.
3093
3094 * dired.c (Ffile_attributes) [WINDOWSNT]:
3095 Set w32_stat_get_owner_group to a non-zero value, to request accurate
3096 owner and group information from 'lstat'.
3097
30982012-12-13 Paul Eggert <eggert@cs.ucla.edu>
3099
3100 * fileio.c (Finsert_file_contents): Don't put tail into head area,
3101 as that confuses set-auto-coding, so insist on the head-read
3102 returning the full 1024 bytes. Let lseek compute the tail offset;
3103 less work for us. Do not ignore I/O errors when reading the tail.
3104
3105 * xdisp.c: Minor style fixes.
3106 (init_iterator): Hoist assignment out of if-expression.
3107 (markpos_of_region): Callers now test for sign, not for -1.
3108
31092012-12-13 Dmitry Antipov <dmantipov@yandex.ru>
3110
3111 Minor redisplay optimization when the region length is zero.
3112 * xdisp.c (markpos_of_region): New function.
3113 (init_iterator): Do not highlight the region of zero length.
3114 (redisplay_window): Check whether the region is of non-zero length.
3115 (try_cursor_movement): Allow if the region length is zero.
3116 (try_window_reusing_current_matrix, try_window_id): Likewise.
3117
31182012-12-13 Eli Zaretskii <eliz@gnu.org>
3119
3120 * search.c (search_buffer): Check the inverse translations of each
3121 character in pattern when the buffer being searched is unibyte.
3122 (Bug#13084)
3123
31242012-12-13 Paul Eggert <eggert@cs.ucla.edu>
3125
3126 * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
3127 files, fixing a regression from 24.2.
3128 (Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
3129
31302012-12-13 Paul Eggert <eggert@cs.ucla.edu>
3131
3132 * fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
3133 fstat shouldn't fail, and if it does fail copy-file should not proceed.
3134 Remove unnecessary S_ISLNK test, as (contra the comments) this
3135 function can't copy symlinks. Improve quality of error message
3136 when attempting to copy files that are neither regular files nor
3137 directories.
3138
31392012-12-12 Dmitry Antipov <dmantipov@yandex.ru>
3140
3141 * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
3142 * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
3143 * window.c (Frecenter):
3144 * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
3145 * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
3146
31472012-12-12 Daniel Colascione <dancol@dancol.org>
3148
3149 * unexcw.c (fixup_executable): Use posix_fallocate to ensure that
3150 the dumped Emacs is not a sparse file, greatly improving Cygwin
3151 "make bootstrap" performance.
3152
31532012-12-11 Michael Albinus <michael.albinus@gmx.de>
3154
3155 * inotify.c (inotify_callback): Generate an Emacs event for every
3156 incoming inotify event.
3157
31582012-12-11 Eli Zaretskii <eliz@gnu.org>
3159
3160 * xdisp.c (handle_face_prop): Fix logic of computing
3161 it->start_of_box_run_p.
3162 (append_space_for_newline): If the glyph row is R2L, reset the
3163 iterator's end_of_box_run_p flag before prepending the space glyph.
3164 (extend_face_to_end_of_line): If the glyph row is R2L, reset the
3165 iterator's start_of_box_run_p flag before prepending the stretch.
3166 (append_glyph, produce_image_glyph, append_composite_glyph)
3167 (append_stretch_glyph, append_glyphless_glyph): Reverse the
3168 left_box_line_p and right_box_line_p flags of the glyph for R2L
3169 glyph rows. (Bug#13011)
3170
31712012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
3172
3173 * buffer.c (Fset_buffer_multibyte): Do not force redisplay
3174 if changed buffer is not shown in a window.
3175 * insdel.c (prepare_to_modify_buffer): Likewise.
3176 * window.c (replace_buffer_in_windows_safely): Do nothing
3177 if buffer is not shown in a window.
3178 (Fforce_window_update): Likewise if string or buffer argument
3179 is passed.
3180
31812012-12-11 Eli Zaretskii <eliz@gnu.org>
3182
3183 * inotify.c (Finotify_add_watch): Rename decoded_file_name to
3184 encoded_file_name, which is what it is.
3185
31862012-12-11 Dmitry Antipov <dmantipov@yandex.ru>
3187
3188 Consistently use marker_position and marker_byte_position.
3189 * fringe.c (Ffringe_bitmaps_at_pos):
3190 * indent.c (Fvertical_motion):
3191 * insdel.c (prepare_to_modify_buffer):
3192 * keyboard.c (make_lispy_position):
3193 * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
3194 (window_scroll_pixel_based, displayed_window_lines)
3195 (Fset_window_configuration):
3196 * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
3197 (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
3198 Replace direct access to marker fields with calls
3199 to marker_position and/or marker_byte_position.
3200
32012012-12-11 Juanma Barranquero <lekktu@gmail.com>
3202
3203 * makefile.w32-in (SIG2STR_H): New macro.
3204 (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
3205 ($(BLD)/w32notify.$(O)): Update dependencies.
3206
32072012-12-10 Daniel Colascione <dancol@dancol.org>
3208
3209 * w32term.c, keyboard.c: Fix build break in cygw32 by omitting
3210 Windows file notification functionality unless WINDOWSNT.
3211
3212 * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
3213 declarations.
3214
3215 * w32fns.c (cache_system_info): Initialize the global hinst
3216 variable here so various initialization calls DTRT.
3217
3218 * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
3219 (hinst): Remove unneeded extern declaration.
3220 (_start): Remove initialization of above variables; remove
3221 initialization of hinst, as cache_system_info now does that.
3222
3223 * emacs.c (main): Call cache_system_info early in startup; we
3224 previously weren't calling it in Cygwin builds.
3225
3226 * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
3227 Teach the autoconf build system how to compile a Windows resource file
3228 and link it to Emacs.
3229
32302012-12-10 Dmitry Antipov <dmantipov@yandex.ru>
3231
3232 Per-buffer window counters.
3233 * buffer.h (struct buffer): New member window_count.
3234 (buffer_window_count): New function.
3235 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
3236 Initialize window_count.
3237 (Fkill_buffer): Verify window_count for the buffer being killed.
3238 (modify_overlay): Do not force redisplay if buffer is not shown
3239 in any window.
3240 (init_buffer_once): Initialize window_count for buffer_defaults
3241 and buffer_local_symbols.
3242 * window.h (buffer_shared): Remove declaration.
3243 (wset_buffer): Convert from inline ...
3244 * window.c (wset_buffer): ... to an ordinary function.
3245 (adjust_window_count): New function.
3246 (make_parent_window): Use it.
3247 * xdisp.c (buffer_shared): Remove.
3248 (redisplay_internal, redisplay_window): Adjust users.
3249 (buffer_shared_and_changed): Use per-buffer window counter.
3250
32512012-12-10 Eli Zaretskii <eliz@gnu.org>
3252
3253 Support for filesystem notifications on MS-Windows.
3254 * w32proc.c (sys_select): If drain_message_queue returns non-zero,
3255 and this is a TTY frame, signal the caller that keyboard input is
3256 available.
3257
3258 * w32xfns.c (drain_message_queue): Now returns an int: an
3259 indication whether any WM_EMACS_FILENOTIFY messages were found in
3260 the queue.
3261
3262 * w32inevt.c (handle_file_notifications): New function.
3263 (w32_console_read_socket): Call it to process file notifications.
3264
3265 * w32console.c (initialize_w32_display): Record the main thread ID
3266 in dwMainThreadId.
3267
3268 * deps.mk (inotify.o): New dependency list.
3269
3270 * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
3271
3272 * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
3273 (WM_EMACS_END): Bump value by 1.
3274 (notification_buffer_in_use, file_notifications)
3275 (notifications_size, notifications_desc): Declare.
3276 (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
3277 Add prototypes.
3278
3279 * w32term.c (lispy_file_action, queue_notifications): New functions.
3280 (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
3281 <Qrenamed_to>: New symbols.
3282 (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
3283
3284 * w32notify.c: New file, implements file event notifications for
3285 MS-Windows.
3286
3287 * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
3288 by posting it to the w32_read_socket queue.
3289
3290 * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
3291
3292 * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
3293 (GLOBAL_SOURCES): Add w32notify.c
3294 ($(BLD)/w32notify.$(O)): New set of dependencies.
3295
3296 * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
3297
3298 * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
3299 Handle FILE_NOTIFY_EVENT.
3300 (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
3301 (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
3302 w32notify-handle-event by default.
3303
3304 * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
3305 syms_of_w32notify.
3306
33072012-12-10 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
3308
3309 Support for filesystem notifications on GNU/Linux via inotify.
3310 * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
3311
3312 * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
3313
3314 * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
3315 (syms_of_keyboard): DEFSYM it.
3316 (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
3317 (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
3318 Qfile_inotify events.
3319 (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
3320 special-event-map to inotify-handle-event.
3321
3322 * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
3323
3324 * Makefile.in (base_obj): Add inotify.o.
3325
3326 * inotify.c: New file.
3327
33282012-12-10 Jan Djärv <jan.h.d@swipnet.se>
3329
3330 * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
3331
33322012-12-10 Fabrice Popineau <fabrice.popineau@gmail.com>
3333
3334 * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
3335 DWORD_PTR, for compatibility with 64-bit builds.
3336
3337 * w32.c (_PROCESS_MEMORY_COUNTERS_EX):
3338 (GetProcessWorkingSetSize_Proc, get_process_working_set_size)
3339 (system_process_attributes): Use SIZE_T rather than DWORD, for
3340 compatibility with 64-bit builds.
3341
33422012-12-10 Christopher Schmidt <christopher@ch.ristopher.com>
3343
3344 * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
3345
33462012-12-10 Eli Zaretskii <eliz@gnu.org>
3347
3348 * indent.c (Fvertical_motion): If a display string will be
3349 displayed on the left or the right margin, don't consider it as a
3350 factor in cursor positioning. (Bug#13108)
3351
33522012-12-10 Martin Rudalics <rudalics@gmx.at>
3353
3354 * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
3355
33562012-12-10 Paul Eggert <eggert@cs.ucla.edu>
3357
3358 * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
3359 for string length.
3360
33612012-12-08 Eli Zaretskii <eliz@gnu.org>
3362
3363 * w32.c (unsetenv): Return 0 if the input string is too long.
3364
33652012-12-08 Paul Eggert <eggert@cs.ucla.edu>
3366
3367 Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
3368 * alloc.c (xputenv): New function.
3369 * dbusbind.c (Fdbus_init_bus):
3370 * emacs.c (main):
3371 * xterm.c (x_term_init):
3372 Use xputenv instead of setenv or putenv, to detect memory exhaustion.
3373 * editfns.c (initial_tz): Move static var decl up.
3374 (tzvalbuf_in_environ): New static var.
3375 (init_editfns): Initialize these two static vars.
3376 (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
3377 Save old TZ value on stack, if it's small.
3378 (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
3379 instead, use xputenv+unsetenv to set and restore TZ.
3380 (environbuf): Remove static var. All uses removed.
3381 (Fset_time_zone_rule): Do not save TZ and environ;
3382 no longer needed here.
3383 (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
3384 Move to inside set_time_zone_rule; they don't need file scope any more.
3385 (set_time_zone_rule): Maintain the TZ=value string separately.
3386 (syms_of_editfns): Don't initialize initial_tz;
3387 init_editfns now does it.
3388 * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
3389 * lisp.h (xputenv): New decl.
3390
33912012-12-08 Fabrice Popineau <fabrice.popineau@gmail.com>
3392
3393 * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
3394
33952012-12-08 Eli Zaretskii <eliz@gnu.org>
3396
3397 * w32.c (unsetenv, sys_putenv): New functions.
3398
33992012-12-08 Chong Yidong <cyd@gnu.org>
3400
3401 * editfns.c (Finsert_char): Make the error message more
3402 informative (Bug#12992).
3403
34042012-12-08 Paul Eggert <eggert@cs.ucla.edu>
3405
3406 Simplify get_lim_data.
3407 * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
3408 Remove USG and vlimit methods; no longer used these days.
3409 Add #error catchall just in case.
3410
3411 Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
3412 Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
3413 SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
3414 * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
3415 (deleted_pid_list, Fdelete_process, create_process)
3416 (record_child_status_change, handle_child_signal, deliver_child_signal)
3417 (init_process_emacs, syms_of_process):
3418 Assume SIGCHLD is defined.
3419 (parse_signal): Remove. All uses removed.
3420 (abbr_to_signal): New static function.
3421 (Fsignal_process): Use it to convert signal names to ints.
3422 * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
3423 kill (getpgrp (), ...).
3424 (emacs_sigaction_init): Assume SIGCHLD is defined.
3425 (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
3426 SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more.
3427 * syssignal.h (EMACS_KILLPG): Remove.
3428 All uses replaced by 'kill' with a negative pid.
3429 (SIGCHLD): Remove definition, as we now assume SIGCHLD.
3430 * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
3431
34322012-12-07 Paul Eggert <eggert@cs.ucla.edu>
3433
3434 * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
3435 This will cause a production Emacs to dump core instead of
3436 infinite-looping.
3437
34382012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
3439
3440 * frame.c (make_frame): Do not set window's buffer to t.
3441 * window.c (Fsplit_window_internal): Likewise. Previously it was
3442 used to indicate that the window is being set up. Now we use
3443 set_window_buffer for all new windows, so the condition in ...
3444 (Fset_window_buffer): ... is always true and can be removed.
3445
34462012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
3447
3448 Convenient macro to check whether the buffer is hidden.
3449 * buffer.h (BUFFER_HIDDEN_P): New macro.
3450 * frame.c (make_frame): Use it. Adjust comment.
3451 * buffer.c (candidate_buffer): New function.
3452 (Fother_buffer, other_buffer_safely): Use it.
3453
34542012-12-06 Eli Zaretskii <eliz@gnu.org>
3455
3456 * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
3457 if the child process is still running. Instead, exit the wait
3458 loop and return zero. (Bug#13086)
3459
34602012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3461
3462 * frame.h (x_char_width, x_char_height): Remove prototypes.
3463 * w32term.h (x_char_width, x_char_height): Likewise.
3464 * xfns.c (x_char_width, x_char_height): Remove.
3465 * w32fns.c (x_char_width, x_char_height): Likewise.
3466 * nsfns.c (x_char_width, x_char_height): Likewise.
3467 * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
3468 all window frames.
3469 (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
3470 * keyboard.c (command_loop_1): Remove prototype.
3471 (command_loop_2, top_level_1): Add static to match prototype.
3472
34732012-12-06 Paul Eggert <eggert@cs.ucla.edu>
3474
3475 Fix a recently-introduced delete-process race condition.
3476 * callproc.c, process.h (record_kill_process):
3477 New function, containing part of the old call_process_kill.
3478 (call_process_kill): Use it.
3479 This does not change call_process_kill's behavior.
3480 * process.c (Fdelete_process): Use record_kill_process to fix a
3481 race condition that could cause Emacs to lose track of a child.
3482
34832012-12-06 Dmitry Antipov <dmantipov@yandex.ru>
3484
3485 Avoid code duplication between prev_frame and next_frame.
3486 * frame.c (candidate_frame): New function. Add comment.
3487 (prev_frame, next_frame): Use it. Adjust comment.
3488
34892012-12-06 Eli Zaretskii <eliz@gnu.org>
3490
3491 * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
3492 fails, signal an error instead of continuing with an empty
3493 string. (Bug#13079)
3494 Encode expanded temp file pattern before passing it to mkstemp or
3495 mktemp.
3496
3497 * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
3498 Encode the file name before passing it to dostounix_filename, in
3499 case it will downcase it (under w32-downcase-file-names).
3500 (Bug#12933)
3501
35022012-12-05 Paul Eggert <eggert@cs.ucla.edu>
3503
3504 Minor call-process cleanups.
3505 * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
3506 at the same time as other platforms, to simplify analysis.
3507 No need for fd0_volatile since we have synch_process_fd.
3508 Avoid needless emacs_close; arg is always negative.
3509
35102012-12-04 Andreas Schwab <schwab@linux-m68k.org>
3511
3512 * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
3513 processes.
3514
35152012-12-04 Dmitry Antipov <dmantipov@yandex.ru>
3516
3517 * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
3518 member. Adjust users. Convert mouse_face_past_end, mouse_face_defer
3519 and mouse_face_hidden members to a bitfields.
3520 * frame.h (struct frame): Remove set-but-not-used space_width member.
3521 (FRAME_SPACE_WIDTH): Remove.
3522 * nsterm.m, w32term.c, xterm.c: Adjust users.
3523 * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
3524 member. Adjust users. Convert term_initted, delete_in_insert_mode,
3525 costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
3526 members to a bitfields.
3527
35282012-12-03 Paul Eggert <eggert@cs.ucla.edu>
3529
3530 Don't let call-process be a zombie factory (Bug#12980).
3531 Fixing this bug required some cleanup of the signal-handling code.
3532 As a side effect, this change also fixes a longstanding rare race
3533 condition whereby Emacs could mistakenly kill unrelated processes,
3534 and it fixes a bug where a second C-g does not kill a recalcitrant
3535 synchronous process in GNU/Linux and similar platforms.
3536 The patch should also fix the last vestiges of Bug#9488,
3537 a bug which has mostly been fixed on the trunk by other changes.
3538 * callproc.c, process.h (synch_process_alive, synch_process_death)
3539 (synch_process_termsig, sync_process_retcode):
3540 Remove. All uses removed, to simplify analysis and so that
3541 less consing is done inside critical sections.
3542 * callproc.c (call_process_exited): Remove. All uses replaced
3543 with !synch_process_pid.
3544 * callproc.c (synch_process_pid, synch_process_fd): New static vars.
3545 These take the role of what used to be in unwind-protect arg.
3546 All uses changed.
3547 (block_child_signal, unblock_child_signal):
3548 New functions, to avoid races that could kill innocent-victim processes.
3549 (call_process_kill, call_process_cleanup, Fcall_process): Use them.
3550 (call_process_kill): Record killed processes as deleted, so that
3551 zombies do not clutter up the system. Do this inside a critical
3552 section, to avoid a race that would allow the clutter.
3553 (call_process_cleanup): Fix code so that the second C-g works again
3554 on common platforms such as GNU/Linux.
3555 (Fcall_process): Create the child process in a critical section,
3556 to fix a race condition. If creating an asynchronous process,
3557 record it as deleted so that zombies do not clutter up the system.
3558 Do unwind-protect for WINDOWSNT too, as that's simpler in the
3559 light of these changes. Omit unnecessary call to emacs_close
3560 before failure, as the unwind-protect code does that.
3561 * callproc.c (call_process_cleanup):
3562 * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
3563 * process.c (record_deleted_pid): New function, containing
3564 code refactored out of Fdelete_process.
3565 (Fdelete_process): Use it.
3566 (process_status_retrieved): Remove. All callers changed to use
3567 child_status_change.
3568 (record_child_status_change): Remove, folding its contents into ...
3569 (handle_child_signal): ... this signal handler. Now, this
3570 function is purely a handler for SIGCHLD, and is not called after
3571 a synchronous waitpid returns; the synchronous code is moved to
3572 wait_for_termination. There is no need to worry about reaping
3573 more than one child now.
3574 * sysdep.c (get_child_status, child_status_changed): New functions.
3575 (wait_for_termination): Now takes int * status and bool
3576 interruptible arguments, too. Do not record child status change;
3577 that's now the caller's responsibility. All callers changed.
3578 Reimplement in terms of get_child_status.
3579 (wait_for_termination_1, interruptible_wait_for_termination):
3580 Remove. All callers changed to use wait_for_termination.
3581 * syswait.h: Include <stdbool.h>, for bool.
3582 (record_child_status_change, interruptible_wait_for_termination):
3583 Remove decls.
3584 (record_deleted_pid, child_status_changed): New decls.
3585 (wait_for_termination): Adjust to API changes noted above.
3586
3587 * bytecode.c, lisp.h (Qbytecode): Remove.
3588 No longer needed after 2012-11-20 interactive-p changes.
3589
35902012-12-03 Eli Zaretskii <eliz@gnu.org>
3591
3592 * xdisp.c (redisplay_window): If the cursor is visible, but inside
3593 the scroll margin, move point outside the margin. (Bug#13055)
3594
35952012-12-03 Jan Djärv <jan.h.d@swipnet.se>
3596
3597 * gtkutil.c (my_log_handler): New function.
3598 (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
3599
36002012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3601
3602 * lisp.h (modify_region): Rename to...
3603 (modify_region_1): ...new prototype.
3604 * textprop.c (modify_region): Now static. Adjust users.
3605 * insdel.c (modify_region): Rename to...
3606 (modify_region_1): ...new function to work with current buffer.
3607 Adjust comment and users. Use true and false for booleans.
3608
36092012-12-03 Dmitry Antipov <dmantipov@yandex.ru>
3610
3611 * alloc.c (free_save_value): New function.
3612 (safe_alloca_unwind): Use it.
3613 * lisp.h (free_save_value): New prototype.
3614 * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
3615 Add comment.
3616 (save_excursion_restore): Adjust to match saved data structure.
3617 Use free_save_value to offload some work from GC. Drop obsolete
3618 #if 0 code.
3619
36202012-12-03 Chong Yidong <cyd@gnu.org>
3621
3622 * fileio.c (Vauto_save_list_file_name): Doc fix.
3623
36242012-12-03 Fabrice Popineau <fabrice.popineau@gmail.com>
3625
3626 * w32fns.c: Remove prototype of atof.
3627 (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
3628 builds.
3629 (file_dialog_callback): Make it UINT_PTR.
3630
3631 * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
3632 with 64-bit builds.
3633
3634 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
3635 (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
3636 defined.
3637
36382012-12-03 Glenn Morris <rgm@gnu.org>
3639
3640 * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
3641
36422012-12-02 Paul Eggert <eggert@cs.ucla.edu>
3643
3644 Fix xpalloc confusion after memory is exhausted.
3645 * alloc.c (xpalloc): Comment fix.
3646 * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
3647 and signals an error, do not clear charset_table_size, as
3648 charset_table is still valid.
3649 * doprnt.c (evxprintf): Clear *BUF after freeing it.
3650
3651 Use execve to avoid need to munge environ (Bug#13054).
3652 * callproc.c (Fcall_process):
3653 * process.c (create_process):
3654 Don't save and restore environ; no longer needed.
3655 * callproc.c (child_setup):
3656 Use execve, not execvp, to preserve environ.
3657
36582012-12-01 Paul Eggert <eggert@cs.ucla.edu>
3659
3660 * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
3661
36622012-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3663
3664 * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
3665 display for sliced images (Bug#10500).
3666
3667 * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
3668
36692012-11-30 Juanma Barranquero <lekktu@gmail.com>
3670
3671 * doc.c (Fdocumentation): Re-add handling of function-documentation,
3672 accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
3673
36742012-11-29 Dmitry Antipov <dmantipov@yandex.ru>
3675
3676 * xdisp.c (window_outdated): Remove eassert since it hits
3677 some suspicious corner cases (see Bug#13007 and Bug#13012).
3678 (mode_line_update_needed): New function.
3679 (redisplay_internal, redisplay_window): Use it.
3680 (ensure_selected_frame): New function.
3681 (redisplay_internal, unwind_redisplay): Use it.
3682 (redisplay_internal): Move comment about buffer_shared...
3683 (buffer_shared_and_changed): ...near to its real use.
3684
36852012-11-29 Paul Eggert <eggert@cs.ucla.edu>
3686
3687 * callproc.c (Fcall_process): Don't misreport vfork failure.
3688
36892012-11-28 Paul Eggert <eggert@cs.ucla.edu>
3690
3691 * callproc.c (Fcall_process): Fix vfork portability problems.
3692 Do not assume that fd[0], count, filefd, and save_environ survive
3693 vfork. Fix bug whereby wrong errno value could be reported for
3694 pipe failure. Some minor cleanups, too, as follows. Move buf and
3695 bufsize to the context where they're needed. Change new_argv to
3696 be of type char **, as this is more convenient and avoids casts.
3697 (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
3698 Now local constants, not macros.
3699
37002012-11-18 Kenichi Handa <handa@gnu.org>
3701
3702 * font.c (font_unparse_xlfd): Fix previous change. Keep "const"
3703 for the variable "f".
3704
37052012-11-13 Kenichi Handa <handa@gnu.org>
3706
3707 * font.c (font_unparse_xlfd): Exclude special characters from the
3708 generating XLFD name.
3709
37102012-11-27 Paul Eggert <eggert@cs.ucla.edu>
3711
3712 Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
3713 * dired.c (stat_uname, stat_gname):
3714 * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
3715
3716 Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
3717 * dired.c (directory_files_internal, file_name_completion):
3718 Assume EAGAIN and EINTR are defined.
3719
3720 * fileio.c (Fcopy_file): Assume EISDIR is defined.
3721 * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
3722 * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
3723 * lread.c (readbyte_from_file): Assume EINTR is defined.
3724 * process.c (wait_reading_process_output, send_process) [subprocesses]:
3725 Assume EIO and EAGAIN are defined.
3726 * unexcoff.c (write_segment): Assume EFAULT is defined.
3727
37282012-11-27 Eli Zaretskii <eliz@gnu.org>
3729
3730 * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
3731 (Bug#11964)
3732
3733 * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
3734 highlighting on the frame was cleared. Prevents assertion
3735 violations when repeatedly clicking on the "Top" link of the
3736 "bread-crumbs" in Info buffers.
3737
37382012-11-25 Paul Eggert <eggert@cs.ucla.edu>
3739
3740 * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
3741
37422012-11-24 Ken Brown <kbrown@cornell.edu>
3743
3744 * keyboard.c (HAVE_MOUSE):
3745 * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
3746 were always defined.
3747
37482012-11-24 Eli Zaretskii <eliz@gnu.org>
3749
3750 * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
3751 between bpos_covered and bpos_max. This fixes cursor display when
3752 several display strings follow each other.
3753
3754 * .gdbinit (pgx): If the glyph's object is a string, display the
3755 pointer to string data, rather than the value of the string object
3756 itself (which barfs under CHECK_LISP_OBJECT_TYPE).
3757
3758 * indent.c (Fvertical_motion): If the starting position is covered
3759 by a display string, return to one position before that, to avoid
3760 overshooting it inside move_it_to. (Bug#12930)
3761
37622012-11-23 Dmitry Antipov <dmantipov@yandex.ru>
3763
3764 * frame.h (struct frame): Remove display_preempted member
3765 since all users are dead long ago.
3766 * nsterm.h (struct x_output): Use the only dummy member.
3767 * w32menu.c (pending_menu_activation): Remove since not
3768 really used.
3769 (set_frame_menubar): Adjust user.
3770 * w32term.h (struct x_output): Drop outdated #if 0 code.
3771 (struct w32_output): Use bitfields for explicit_parent,
3772 asked_for_visible and menubar_active members.
3773 Drop unused pending_menu_activation member.
3774 * xterm.h (struct x_output): Drop outdated #if 0 code.
3775 Use bitfields for explicit_parent, asked_for_visible,
3776 has_been_visible and net_wm_state_hidden_seen members.
3777
37782012-11-23 Eli Zaretskii <eliz@gnu.org>
3779
3780 * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
3781 of a literal "/". (Bug#12955)
3782 (gl-stamp): Invoke fc.exe directly, not through cmd.
3783
37842012-11-23 Paul Eggert <eggert@cs.ucla.edu>
3785
3786 Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
3787 * dired.c: Assume HAVE_DIRENT_H.
3788 (NAMLEN): Remove, replacing with ...
3789 (dirent_namelen): New function. All uses changed. Use the GNU macro
3790 _D_EXACT_NAMELEN if available, as it's faster than strlen.
3791 (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
3792 (DIRENTRY_NONEMPTY): Remove. All callers now assume it's nonzero.
3793 * makefile.w32-in (DIR_H): Remove. All uses replaced with
3794 $(NT_INC)/dirent.h.
3795 ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
3796 * ndir.h: Rename to ../nt/inc/dirent.h.
3797 * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
3798 Do not include <dirent.h>; no longer needed.
3799 * w32.c: Include <dirent.h> rather than "ndir.h".
3800
38012012-11-23 Chong Yidong <cyd@gnu.org>
3802
3803 * xftfont.c (xftfont_open): Remove duplicate assignment.
3804
38052012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
3806
3807 * alloc.c (Fgarbage_collect): Unblock input after clearing
3808 gc_in_progress to avoid note_mouse_highlight glitch with GC.
3809 * frame.h (FRAME_MOUSE_UPDATE): New macro.
3810 * msdos.c (IT_frame_up_to_date): Use it here...
3811 * w32term.c (w32_frame_up_to_date): ...here...
3812 * xterm.c (XTframe_up_to_date): ...and here...
3813 * nsterm.m (ns_frame_up_to_date): ...but not here.
3814 * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
3815 Adjust users.
3816 * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
3817 Do not check whether GC is in progress.
3818
38192012-11-22 Dmitry Antipov <dmantipov@yandex.ru>
3820
3821 * xdisp.c (window_buffer_changed): New function.
3822 (update_menu_bar, update_tool_bar): Use it to
3823 simplify large 'if' statements.
3824 (redisplay_internal): Generalize commonly used
3825 'tail' and 'frame' local variables.
3826
38272012-11-22 Eli Zaretskii <eliz@gnu.org>
3828
3829 * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
3830 with Windows system header.
3831
38322012-11-21 Paul Eggert <eggert@cs.ucla.edu>
3833
3834 Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
3835 * alloc.c: Assume unistd.h exists.
3836 * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
3837 * sysdep.c (get_current_dir_name): Assume getcwd exists.
3838 (getwd) [USG]: Remove; no longer needed.
3839 (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
3840 * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
3841 * w32.h (getcwd): Remove decl.
3842
38432012-11-21 Stefan Monnier <monnier@iro.umontreal.ca>
3844
3845 * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
3846 Make it set selected_window as well.
3847 (update_tool_bar): Use it.
3848
38492012-11-21 Ken Brown <kbrown@cornell.edu>
3850
3851 * emacs.c (main): Set the G_SLICE environment variable for all
3852 Cygwin builds, not just GTK builds. See
3853 https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
3854
38552012-11-21 Eli Zaretskii <eliz@gnu.org>
3856
3857 * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
3858 (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
3859 Define for the MSVC compiler.
3860
3861 * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
3862
3863 * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
3864 (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
3865 dostounix_filename. Prevents crashes down the road, because
3866 dostounix_filename assumes it gets a unibyte string.
3867 Reported by Michel de Ruiter <michel@sentient.nl>, see
3868 http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
3869
38702012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3871
3872 Conflate Qnil and Qunbound for `symbol-function'.
3873 * alloc.c (Fmake_symbol): Initialize `function' to Qnil.
3874 * lread.c (init_obarray): Set `function' fields to Qnil.
3875 * eval.c (Fcommandp): Ignore Qunbound.
3876 (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
3877 * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
3878 Test NILP rather than Qunbound.
3879 (Ffmakunbound): Set to Qnil.
3880 (Fsymbol_function): Never signal an error.
3881 (Finteractive_form): Ignore Qunbound.
3882
38832012-11-20 Paul Eggert <eggert@cs.ucla.edu>
3884
3885 * eval.c (interactive_p): Remove no-longer-used decl.
3886
38872012-11-20 Dmitry Antipov <dmantipov@yandex.ru>
3888
3889 * xdisp.c (buffer_shared): Adjust comment.
3890 (buffer_shared_and_changed): New function.
3891 (prepare_menu_bars, redisplay_internal): Use it to
3892 decide whether all windows or frames should be updated.
3893 (window_outdated): New function.
3894 (text_outside_line_unchanged_p, redisplay_window): Use it.
3895 (redisplay_internal): Likewise. Fix indentation.
3896
38972012-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3898
3899 * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
3900 (syms_of_eval): Remove corresponding defsubr.
3901 * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
3902
39032012-11-19 Daniel Colascione <dancol@dancol.org>
3904
3905 * w32fns.c (Fx_file_dialog):
3906 (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
3907 cygwin_convert_file_name*.
3908
3909 * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
3910 Rename cygwin_convert_path* to cygwin_convert_file_name*.
3911
39122012-11-18 Paul Eggert <eggert@cs.ucla.edu>
3913
3914 * nsterm.m (ns_select): Send SIGIO only to self, not to process group.
3915
39162012-11-18 Eli Zaretskii <eliz@gnu.org>
3917
3918 * w32select.c: Include w32common.h before w32term.h, so that
3919 windows.h gets included before w32term.h uses some of its
3920 features, see below.
3921
3922 * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
3923 New typedefs.
3924 (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
3925 New prototypes.
3926 (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878)
3927
39282012-11-18 Jan Djärv <jan.h.d@swipnet.se>
3929
3930 * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
3931 (ns_select): Return at once if events are held (Bug#12834).
3932
39332012-11-18 enami tsugutomo <tsugutomo.enami@jp.sony.com>
3934
3935 * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
3936 Needed following 2012-10-20 change. (Bug#12902)
3937
39382012-11-18 Juanma Barranquero <lekktu@gmail.com>
3939
3940 * w32proc.c (waitpid): Remove unused label get_result.
3941
39422012-11-17 Juanma Barranquero <lekktu@gmail.com>
3943
3944 * makefile.w32-in (SYSWAIT_H): New macro.
3945 ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
3946 ($(BLD)/sysdep.$(O)): Update dependencies.
3947
39482012-11-17 Paul Eggert <eggert@cs.ucla.edu>
3949
3950 Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
3951 * callproc.c (relocate_fd): Assume F_DUPFD.
3952 * emacs.c, term.c (O_RDWR): Remove.
3953 * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
3954 O_NDELAY, since O_NONBLOCK is the standard name for this flag.
3955 * nsterm.m: Assume <fcntl.h> exists.
3956 * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
3957 (create_pty, Fmake_network_process, server_accept_connection)
3958 (wait_reading_process_output, init_process_emacs):
3959 Assume O_NONBLOCK.
3960 (wait_reading_process_output): Put in a special case for WINDOWSNT
3961 to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
3962 It's not clear this is needed, but it's a more-conservative change.
3963 (create_process): Assume FD_CLOEXEC.
3964 (create_process, create_pty): Assume O_NOCTTY.
3965 * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
3966 (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
3967 Omit if not DOS_NT, since F_GETFL is not defined there.
3968 (serial_open): Assume O_NONBLOCK and O_NOCTTY.
3969 * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
3970 (O_NOCTTY): Remove.
3971 (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
3972 lack it, since gnulib guarantees this.
3973 * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
3974
39752012-11-17 Eli Zaretskii <eliz@gnu.org>
3976
3977 * w32.c (faccessat): Pretend that directories have the execute bit
3978 set. Emacs expects that, e.g., in files.el:cd-absolute.
3979
3980 * w32proc.c (create_child): Don't clip the PID of the child
3981 process to fit into an Emacs integer, as this is no longer a
3982 restriction.
3983 (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by
3984 reaping only the process specified by PID argument, if that is
3985 positive. Use PID instead of dead_child to know which process to
3986 reap. Wait for the child to die only if WNOHANG is not in
3987 OPTIONS.
3988 (sys_select): Don't set dead_child.
3989
3990 * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
3991 as it is no longer needed.
3992
3993 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
3994 no longer needed.
3995 (record_child_status_change): Remove the setting of
3996 record_at_most_one_child for the !WNOHANG case.
3997
39982012-11-17 Paul Eggert <eggert@cs.ucla.edu>
3999
4000 Fix problems in ns port found by static checking.
4001 * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
4002 (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
4003 not to process group.
4004 (ns_select): Use emacs_write, not write, as that's more robust
4005 in the presence of signals.
4006 (fd_handler:): Check for read errors.
4007
40082012-11-16 Glenn Morris <rgm@gnu.org>
4009
4010 * editfns.c (Fmessage): Mention message-log-max. (Bug#12849)
4011
40122012-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
4013
4014 * eval.c (Finteractive_p): Revert lexbind-merge mishap.
4015
40162012-11-16 Eli Zaretskii <eliz@gnu.org>
4017
4018 * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
4019 use the same value of thread handle.
4020 (start_timer_thread): If the timer thread exited (due to error),
4021 clean up by closing the two handles it used. Duplicate the caller
4022 thread's handle here, so it gets duplicated only once, when
4023 launching the timer thread. Set priority of the timer thread, not
4024 the caller thread.
4025 (getitimer): Don't duplicate the caller thread's handle here.
4026 (Bug#12832)
4027
40282012-11-16 Jan Djärv <jan.h.d@swipnet.se>
4029
4030 * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
4031 called (Bug#12834).
4032
40332012-11-16 Paul Eggert <eggert@cs.ucla.edu>
4034
4035 Remove no-longer-used pty_max_bytes variable.
4036 * process.c (pty_max_bytes): Remove; unused.
4037 (send_process): Do not set it.
4038
40392012-11-15 Juanma Barranquero <lekktu@gmail.com>
4040
4041 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
4042 Update dependencies.
4043
40442012-11-15 Paul Eggert <eggert@cs.ucla.edu>
4045
4046 * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
4047 This follows up on the 2012-09-29 patch that removed indirection
4048 for the 'function' field. Reported by Sergey Vinokurov in
4049 <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
4050
40512012-11-14 Eli Zaretskii <eliz@gnu.org>
4052
4053 * w32.c (faccessat): Rename from sys_faccessat. (No need to use a
4054 different name, as the MS runtime does not have such a function,
4055 and probably never will.) All callers changed. Ignore DIRFD
4056 value if PATH is an absolute file name, to match Posix spec
4057 better. If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
4058 symlinks.
4059
40602012-11-14 Dmitry Antipov <dmantipov@yandex.ru>
4061
4062 * xdisp.c (echo_area_display, redisplay_internal):
4063 Omit redundant check whether frame_garbaged is set.
4064
40652012-11-14 Paul Eggert <eggert@cs.ucla.edu>
4066
4067 Use faccessat, not access, when checking file permissions (Bug#12632).
4068 This fixes a bug that has been present in Emacs since its creation.
4069 It was reported by Chris Torek in 1983 even before GNU Emacs existed,
4070 which must set some sort of record. (Torek's bug report was against
4071 a predecessor of GNU Emacs, but GNU Emacs happened to have the
4072 same common flaw.) See Torek's Usenet posting
4073 "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
4074 Posted: Fri Apr 8 14:18:56 1983.
4075 * Makefile.in (LIB_EACCESS): New macro.
4076 (LIBES): Use it.
4077 * callproc.c (init_callproc):
4078 * charset.c (init_charset):
4079 * fileio.c (check_existing, check_executable, check_writable)
4080 (Ffile_readable_p):
4081 * lread.c (openp, load_path_check):
4082 * process.c (allocate_pty):
4083 * xrdb.c (file_p):
4084 Use effective UID when checking permissions, not real UID.
4085 * callproc.c (init_callproc):
4086 * charset.c (init_charset):
4087 * lread.c (load_path_check, init_lread):
4088 Test whether directories are accessible, not merely whether they exist.
4089 * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
4090 * fileio.c (check_existing, check_executable, check_writable)
4091 (Ffile_readable_p):
4092 Use symbolic names instead of integers for the flags, as they're
4093 portable now.
4094 (check_writable): New arg AMODE. All uses changed.
4095 Set errno on failure.
4096 (Ffile_readable_p): Use faccessat, not stat + open + close.
4097 (Ffile_writable_p): No need to call check_existing + check_writable.
4098 Just call check_writable and then look at errno. This saves a syscall.
4099 dir should never be nil; replace an unnecessary runtime check
4100 with an eassert. When checking the parent directory of a nonexistent
4101 file, check that the directory is searchable as well as writable, as
4102 we can't create files in unsearchable directories.
4103 (file_directory_p): New function, which uses 'stat' on most platforms
4104 but faccessat with D_OK (for efficiency) if WINDOWSNT.
4105 (Ffile_directory_p, Fset_file_times): Use it.
4106 (file_accessible_directory_p): New function, which uses a single
4107 syscall for efficiency.
4108 (Ffile_accessible_directory_p): Use it.
4109 * xrdb.c (file_p): Use file_directory_p.
4110 * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
4111 * lread.c (openp): When opening a file, use fstat rather than
4112 stat, as that avoids a permissions race. When not opening a file,
4113 use file_directory_p rather than stat.
4114 (dir_warning): First arg is now a usage string, not a format.
4115 Use errno. All uses changed.
4116 * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
4117 that merely introduced a race.
4118 * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
4119 changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
4120 and similarly for the other O_* flags.
4121 * w32.c (sys_faccessat): Rename from sys_access and switch to
4122 faccessat's API. All uses changed.
4123 * xrdb.c: Do not include <sys/stat.h>; no longer needed.
4124 (magic_db): Rename from magic_file_p.
4125 (magic_db, search_magic_path): Return an XrmDatabase rather than a
4126 char *, so that we don't have to test for file existence
4127 separately from opening the file for reading. This removes a race
4128 fixes a permission-checking problem, and simplifies the code.
4129 All uses changed.
4130 (file_p): Remove; no longer needed.
4131
41322012-11-13 Dmitry Antipov <dmantipov@yandex.ru>
4133
4134 Omit glyphs initialization at startup.
4135 * dispnew.c (glyphs_initialized_initially_p): Remove.
4136 (adjust_frame_glyphs_initially): Likewise. Adjust users.
4137 (Fredraw_frame): Move actual code from here...
4138 (redraw_frame): ...to here. Add eassert. Adjust comment.
4139 (Fredraw_display): Use redraw_frame.
4140 * xdisp.c (clear_garbaged_frames): Likewise.
4141
41422012-11-13 Eli Zaretskii <eliz@gnu.org>
4143
4144 * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
4145 passed to pint2str and pint2hrstr to be at most the size of the
4146 frame's decode_mode_spec_buffer. This avoids crashes with very
4147 large values of FIELD_WIDTH argument to decode_mode_spec.
4148 (Bug#12867)
4149
41502012-11-13 Paul Eggert <eggert@cs.ucla.edu>
4151
4152 Fix a race with verify-visited-file-modtime (Bug#12863).
4153 Since at least 1991 Emacs has ignored an mtime difference of no
4154 more than one second, but my guess is that this was to work around
4155 file system bugs that were fixed long ago. Since the race is
4156 causing problems now, let's remove that code.
4157 * fileio.c (Fverify_visited_file_modtime): Do not accept a file
4158 whose time stamp is off by no more than a second. Insist that the
4159 file time stamps match exactly.
4160
41612012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
4162
4163 * frame.h (struct frame): Convert external_tool_bar member to
4164 1-bit unsigned bitfield.
4165 * termhooks.h (struct terminal): Remove mouse_moved member since
4166 all users are long dead. Adjust comment on mouse_position_hook.
4167
41682012-11-12 Dmitry Antipov <dmantipov@yandex.ru>
4169
4170 Simplify by using FOR_EACH_FRAME here and there.
4171 * frame.c (next_frame, prev_frame, other_visible_frames)
4172 (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
4173 * w32term.c (x_window_to_scroll_bar): Likewise.
4174 * window.c (window_list): Likewise.
4175 * xdisp.c (x_consider_frame_title): Likewise.
4176 * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
4177 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4178 (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
4179 * xmenu.c (menubar_id_to_frame): Likewise.
4180 * xselect.c (frame_for_x_selection): Likewise.
4181 * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
4182 (x_window_to_menu_bar): Likewise.
4183 * w32fns.c (x_window_to_frame): Likewise. Adjust comment.
4184
41852012-11-12 Paul Eggert <eggert@cs.ucla.edu>
4186
4187 * data.c (Qdefalias_fset_function): Now static.
4188
4189 Another tweak to vectorlike_header change.
4190 * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
4191 Remove, and replace all uses with ...
4192 (next_in_free_list, set_next_in_free_list):
4193 New functions, which respect C's aliasing rules better.
4194
41952012-11-11 Paul Eggert <eggert@cs.ucla.edu>
4196
4197 * window.c (list4i): Rename from 'quad'. All uses changed.
4198 Needed because <sys/types.h> defines 'quad' on Solaris 10.
4199
42002012-11-11 Juanma Barranquero <lekktu@gmail.com>
4201
4202 * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
4203 warning about mixing declarations and code in ISO C90.
4204
42052012-11-10 Martin Rudalics <rudalics@gmx.at>
4206
4207 * window.c (Fsplit_window_internal): Set combination limit of
4208 new parent window to t iff Vwindow_combination_limit is t;
4209 fixing a regression introduced with the change from 2012-09-22.
4210 (Fset_window_combination_limit): Fix doc-string.
4211
42122012-11-10 Eli Zaretskii <eliz@gnu.org>
4213
4214 * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
4215 amount when the scroll margins are too large. When scrolling
4216 backwards in the buffer, give up if cannot reach point or the
4217 scroll margin within a reasonable number of screen lines.
4218 Fixes point position in window under scroll-up/down-aggressively when
4219 point is positioned many lines beyond the window top/bottom.
4220 (Bug#12811)
4221
4222 * ralloc.c (relinquish): If real_morecore fails to return memory
4223 to the system, don't crash; instead, leave the last heap
4224 unchanged and return. (Bug#12774)
4225
42262012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
4227
4228 * lisp.h (AUTOLOADP): New macro.
4229 * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
4230 * data.c (Ffset): Remove special ad-advice-info handling.
4231 (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
4232 (Fsubr_arity): CSE.
4233 (Finteractive_form): Simplify.
4234 (Fquo): Don't insist on having at least 2 arguments.
4235 (Qdefalias_fset_function): New var.
4236
42372012-11-09 Jan Djärv <jan.h.d@swipnet.se>
4238
4239 * image.c (xpm_make_color_table_h): Change to hashtest_equal.
4240
4241 * nsfont.m (Qcondensed, Qexpanded): New variables.
4242 (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
4243 (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
4244
42452012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
4246
4247 Fix recently introduced crash on MS-Windows (Bug#12839).
4248 * w32term.h (struct scroll_bar): Use convenient header.
4249 (SCROLL_BAR_VEC_SIZE): Remove.
4250 * w32term.c (x_scroll_bar_create): Use VECSIZE.
4251
42522012-11-09 Dmitry Antipov <dmantipov@yandex.ru>
4253
4254 Tweak last vectorlike_header change.
4255 * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
4256 vectorlike object on the free list. This is introduced to avoid
4257 some (but not all) pointer casting and aliasing problems, see
4258 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html.
4259 * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
4260 objects.
4261 (xvectype, xvecsize): Use them to examine Lisp_Object values.
4262
42632012-11-09 Jan Djärv <jan.h.d@swipnet.se>
4264
4265 * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
4266 been removed, so remove them here also.
4267
42682012-11-09 Stefan Monnier <monnier@iro.umontreal.ca>
4269
4270 * doc.c (Fdocumentation): Handle new property
4271 dynamic-docstring-function to replace the old ad-advice-info.
4272
42732012-11-09 Paul Eggert <eggert@cs.ucla.edu>
4274
4275 * fns.c (Qeql, hashtest_eq): Now static.
4276
42772012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
4278
4279 * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
4280 * fns.c (hashfn_eq, hashfn_eql, sxhash):
4281 * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
4282 * buffer.c (compare_overlays): Use XLI rather than XHASH.
4283
42842012-11-08 Paul Eggert <eggert@cs.ucla.edu>
4285
4286 Use same hash function for hashfn_profiler as for hash_string etc.
4287 * fns.c (SXHASH_COMBINE): Remove. All uses replaced by sxhash_combine.
4288 * lisp.h (sxhash_combine): New inline function, with the contents
4289 of the old SXHASH_COMBINE.
4290 * profiler.c (hashfn_profiler): Use it, instead of having a
4291 special hash function containing a comparison that always yields 1.
4292
42932012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
4294
4295 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
4296 (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
4297 (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
4298 Remove unused vars.
4299
43002012-11-08 Jan Djärv <jan.h.d@swipnet.se>
4301
4302 * image.c (xpm_make_color_table_h): Fix compiler error because
4303 make_hash_table changed.
4304
43052012-11-08 Thomas Kappler <tkappler@gmail.com> (tiny change)
4306
4307 * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
4308
43092012-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
4310
4311 Use ad-hoc comparison function for the profiler's hash-tables.
4312 * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
4313 (make_log): Use them.
4314 (handle_profiler_signal): Don't inhibit quit any longer since we don't
4315 call Fequal any more.
4316 (Ffunction_equal): New function.
4317 (cmpfn_profiler, hashfn_profiler): New functions.
4318 (syms_of_profiler): Initialize them.
4319 * lisp.h (struct hash_table_test): New struct.
4320 (struct Lisp_Hash_Table): Use it.
4321 * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
4322 * fns.c (make_hash_table): Take a struct to describe the test.
4323 (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
4324 (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
4325 (hash_lookup, hash_remove_from_table): Move assertion checking of
4326 hashfn result here. Check hash-equality before calling cmpfn.
4327 (Fmake_hash_table): Adjust call to make_hash_table.
4328 (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
4329 (syms_of_fns): Initialize them.
4330 * emacs.c (main): Move syms_of_fns earlier.
4331 * xterm.c (syms_of_xterm):
4332 * category.c (hash_get_category_set): Adjust call to make_hash_table.
4333 * print.c (print_object): Adjust to new hash-table struct.
4334 * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
4335
43362012-11-08 Eli Zaretskii <eliz@gnu.org>
4337
4338 * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
4339 value of w32-scroll-lock-modifier is neither nil nor one of the
4340 known key modifiers. (Bug#12806)
4341
43422012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
4343
4344 Shrink struct vectorlike_header to the only size field.
4345 * lisp.h (enum pvec_type): Avoid explicit enum member values.
4346 Adjust comment.
4347 (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
4348 PVEC_TYPE_MASK to arrange new bitfield in the vector header.
4349 (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
4350 (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
4351 information from the vector header. Adjust comment.
4352 (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
4353 (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
4354 layout.
4355 (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
4356 (struct vectorlike_header): Remove next member. Adjust comment.
4357 (struct Lisp_Subr): Add convenient header. Adjust comment.
4358 (allocate_pseudovector): Adjust prototype.
4359 * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
4360 (sweep_string, lisp_malloc): Remove useless prototypes.
4361 (enum mem_type): Adjust comment.
4362 (NEXT_IN_FREE_LIST): New macro.
4363 (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
4364 (Fmake_bool_vector): Likewise.
4365 (struct large_vector): New type to represent allocation unit for
4366 the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
4367 (large_vectors): Change type to struct large_vector.
4368 (allocate_vector_from_block): Simplify.
4369 (PSEUDOVECTOR_NBYTES): Replace with...
4370 (vector_nbytes): ...new function. Adjust users.
4371 (sweep_vectors): Adjust processing of large vectors.
4372 (allocate_vectorlike): Likewise.
4373 (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
4374 Add easserts. Adjust XSETPVECTYPESIZE usage.
4375 (allocate_buffer): Use BUFFER_PVEC_INIT.
4376 (live_vector_p): Adjust to match large vector.
4377 * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
4378 * buffer.h (struct buffer): Add next member.
4379 (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
4380 New macros.
4381 (FOR_EACH_BUFFER): Adjust to match struct buffer change.
4382 * fns.c (internal_equal): Adjust to match enum pvec_type change.
4383 (copy_hash_table): Adjust to match vector header change.
4384 * lread.c (defsubr): Use XSETPVECTYPE.
4385 * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
4386 (xvectype): Likewise. Print PVEC_NORMAL_VECTOR for regular vectors.
4387 (xvecsize): New command.
4388
43892012-11-08 Dmitry Antipov <dmantipov@yandex.ru>
4390
4391 * keyboard.c (event_to_kboard): Do not dereference
4392 frame_or_window field of SELECTION_REQUEST_EVENT
4393 and SELECTION_CLEAR_EVENT events (Bug#12814).
4394 * xterm.h (struct selection_input_event): Adjust comment.
4395
43962012-11-07 Eli Zaretskii <eliz@gnu.org>
4397
4398 * w32fns.c (modifier_set): Don't report modifiers from toggle key,
4399 such as Scroll Lock, if the respective keys are treated as
4400 function keys, not as modifiers. This avoids destroying non-ASCII
4401 keyboard input when Scroll Lock is toggled ON. (Bug#12806)
4402
44032012-11-07 Dmitry Antipov <dmantipov@yandex.ru>
4404
4405 * xfns.c (Fx_wm_set_size_hint): Use check_x_frame. Adjust docstring.
4406
44072012-11-06 Paul Eggert <eggert@cs.ucla.edu>
4408
4409 Restore some duplicate definitions (Bug#12814).
4410 This undoes part of the 2012-11-03 changes. Some people build
4411 with plain -g rather than with -g3, and they need the duplicate
4412 definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
4413 * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
4414 Define as macros, as well as as enums or as constants.
4415
44162012-11-06 Jan Djärv <jan.h.d@swipnet.se>
4417
4418 * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
4419 to keypad keys (Bug#12816).
4420
44212012-11-06 Paul Eggert <eggert@cs.ucla.edu>
4422
4423 Minor adjustments of recently-changed frame functions.
4424 * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
4425 known to be a frame (we're in the FRAMEP branch).
4426 * lisp.h (Qframep): Remove decl. frame.h declares this.
4427 * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
4428 since they're meant for Lisp fixnum values.
4429
44302012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4431
4432 * window.c (Fwindow_combination_limit): Revert to the only
4433 required argument and adjust docstring as suggested in
4434 http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
4435 by Martin Rudalics <rudalics@gmx.at>.
4436
44372012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4438
4439 Widely used frame validity and checking functions.
4440 * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
4441 * frame.c (decode_live_frame, decode_any_frame): New functions.
4442 (delete_frame, Fredirect_frame_focus, Fframe_parameters)
4443 (Fframe_parameter, Fframe_char_height, Fframe_char_width)
4444 (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
4445 (Fframe_pointer_visible_p): Use decode_any_frame.
4446 (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
4447 (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
4448 (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
4449 (Fframe_focus): Likewise. Allow zero number of arguments.
4450 Adjust docstring.
4451 (frame_buffer_list, frame_buffer_predicate): Remove.
4452 * lisp.h (frame_buffer_predicate): Remove prototype.
4453 * buffer.c (Fother_buffer): Use decode_any_frame.
4454 * xdisp.c (Ftool_bar_lines_needed): Likewise.
4455 * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
4456 * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
4457 (Fclose_font, Ffont_info): Use decode_live_frame.
4458 * fontset.c (check_fontset_name): Likewise.
4459 * terminal.c (Fframe_terminal): Likewise.
4460 * w32fns.c (check_x_frame): Likewise.
4461 * window.c (Fminibuffer_window, Fwindow_at)
4462 (Fcurrent_window_configuration): Likewise.
4463 (Frun_window_configuration_change_hook, Fwindow_resize_apply):
4464 Likewise. Allow zero number of arguments. Adjust docstring.
4465 * dispnew.c (Fredraw_frame): Likewise.
4466 * xfaces.c (frame_or_selected_frame): Remove.
4467 (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
4468 (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
4469 (Fframe_face_alist): Use decode_live_frame.
4470 * xfns.c (check_x_frame): Likewise.
4471
44722012-11-06 Dmitry Antipov <dmantipov@yandex.ru>
4473
4474 * window.c (quad): New function.
4475 (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
4476 (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
4477 (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
4478 (Fwindow_line_height): Use it.
4479 (Fwindow_fringes): Use list3.
4480 (Fwindow_scroll_bars): Use list4.
4481 (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
4482 (Fwindow_combination_limit): Allow zero number of arguments.
4483
44842012-11-05 Eli Zaretskii <eliz@gnu.org>
4485
4486 * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
4487
4488 * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
4489 (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
4490 file descriptor 2 for standard error. (Bug#12805)
4491
44922012-11-05 Chong Yidong <cyd@gnu.org>
4493
4494 * process.c (wait_reading_process_output): Revert previous change.
4495
44962012-11-05 Paul Eggert <eggert@cs.ucla.edu>
4497
4498 Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
4499 This removes code that has been obsolete since around 1990.
4500 * callproc.c (Fcall_process):
4501 * emacs.c (main):
4502 * process.c (create_process):
4503 * term.c (dissociate_if_controlling_tty):
4504 Assume setsid exists.
4505 * callproc.c (child_setup): Assume setpgid exists and behaves as
4506 per POSIX.1-1988 or later.
4507 * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
4508 * emacs.c (shut_down_emacs):
4509 * sysdep.c (sys_suspend, init_foreground_group):
4510 Assume getpgrp behaves as per POSIX.1-1998 or later.
4511 * msdos.c (setpgrp): Remove.
4512 (tcgetpgrp, setpgid, setsid): New functions.
4513 * systty.h (EMACS_GETPGRP): Remove. All callers now use getpgrp.
4514 * term.c (no_controlling_tty): Remove; unused.
4515 * w32proc.c (setpgrp): Remove.
4516 (setsid, tcgetpgrp): New functions.
4517
4518 Simplify by assuming __fpending.
4519 * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
4520 (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
4521 Do not assume that __fpending's result fits in int.
4522
45232012-11-04 Paul Eggert <eggert@cs.ucla.edu>
4524
4525 Remove EMACS_OUTQSIZE+sleep hack.
4526 * dispnew.c (update_frame_1): Remove hack for terminals slower
4527 than 2400 bps, which throttled Emacs by having it sleep.
4528 This code hasn't worked since at least 2007, when the multi-tty stuff
4529 was added, and anyway those old terminals are long dead.
4530 * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even
4531 without the dispnew.c change, as dispnew.c doesn't include systty.h.
4532
4533 Fix data-loss with --version (Bug#9574).
4534 * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
4535 as we can't assume that emacs_strerror is initialized, and strerror
4536 is good enough here.
4537 (main): Invoke atexit earlier, to catch earlier instances of
4538 sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
4539
45402012-11-04 Michael Marchionna <tralfaz@pacbell.net>
4541
4542 * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
4543 (keyDown): Remap keypad keys to X11 virtual key codes.
4544
45452012-11-03 Paul Eggert <eggert@cs.ucla.edu>
4546
4547 Fix data-loss with --batch (Bug#9574).
4548 * emacs.c: Include <close-stream.h>.
4549 (close_output_streams): New function.
4550 (main): Pass it to atexit, so that Emacs closes stdout and stderr
4551 and handles errors appropriately.
4552 (Fkill_emacs): Don't worry about flushing, as close_output_stream
4553 does that now.
4554
4555 Fix a race condition that causes Emacs to mess up glib (Bug#8855).
4556 The symptom is a diagnostic "GLib-WARNING **: In call to
4557 g_spawn_sync(), exit status of a child process was requested but
4558 SIGCHLD action was set to SIG_IGN and ECHILD was received by
4559 waitpid(), so exit status can't be returned." The diagnostic
4560 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
4561 The real bug is a race condition between Emacs and glib: Emacs
4562 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
4563 so that glib can't find it. Work around the bug by invoking
4564 waitpid only on subprocesses that Emacs itself creates.
4565 * process.c (create_process, record_child_status_change):
4566 Don't use special value -1 in pid field, as the caller now must
4567 know the pid rather than having the callee infer it.
4568 The inference was sometimes incorrect anyway, due to another race.
4569 (create_process): Set new 'alive' member if child is created.
4570 (process_status_retrieved): New function.
4571 (record_child_status_change): Use it.
4572 Accept negative 1st argument, which means to wait for the
4573 processes that Emacs already knows about. Move special-case code
4574 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
4575 processes that have already been waited for, by testing and
4576 clearing new 'alive' member.
4577 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
4578 now does this internally.
4579 (handle_child_signal): Let record_child_status_change do all
4580 the work, since we do not want to reap all exited child processes,
4581 only the child processes that Emacs itself created.
4582 * process.h (Lisp_Process): New boolean member 'alive'.
4583
4584 Omit duplicate definitions no longer needed with gcc -g3.
4585 * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
4586 (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
4587 Define only as macros. There's no longer any need to also define
4588 these symbols as enums or as constants, since we now assume
4589 gcc -g3 when debugging.
4590
45912012-11-03 Eli Zaretskii <eliz@gnu.org>
4592
4593 * lisp.mk: Adjust comments to the fact that term/internal is now
4594 loaded from loadup.el.
4595
4596 * msdos.c (msdos_abort): Rename from emacs_abort, and make static.
4597 (msdos_fatal_signal): New function.
4598 (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
4599 its argument list.
4600
4601 * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
4602 for GCC versions before 4.
4603 (emacs_raise): Define to call msdos_fatal_signal.
4604
4605 * xdisp.c (init_from_display_pos): Fix initialization of the bidi
4606 iterator when starting in the middle of a display or overlay
4607 string. (Bug#12745)
4608
46092012-11-03 Chong Yidong <cyd@gnu.org>
4610
4611 * process.c (wait_reading_process_output): Clean up the last
4612 change.
4613
46142012-11-03 Jim Paris <jim@jtan.com> (tiny change)
4615
4616 * process.c (wait_reading_process_output): Avoid a race condition
4617 with SIGIO delivery (Bug#11536).
4618
46192012-11-03 Chong Yidong <cyd@gnu.org>
4620
4621 * buffer.c (cursor_type): Untabify docstring.
4622
46232012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
4624
4625 * frame.h (struct frame): Drop can_have_scroll_bars member
4626 which is meaningless for a long time. Adjust comments.
4627 (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
4628 * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
4629
46302012-11-03 Dmitry Antipov <dmantipov@yandex.ru>
4631
4632 * window.c (decode_next_window_args): Update window arg after
4633 calling decode_live_window and so fix crash reported at
4634 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
4635 by Juanma Barranquero <lekktu@gmail.com>.
4636 (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
4637 * font.c (Ffont_at): Likewise.
4638
46392012-11-01 Jan Djärv <jan.h.d@swipnet.se>
4640
4641 * widget.c (resize_cb): New function.
4642 (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
4643 (EmacsFrameResize): Check if all is up to date before changing frame
4644 size.
4645
46462012-11-02 Eli Zaretskii <eliz@gnu.org>
4647
4648 Implement backtrace output for fatal errors on MS-Windows.
4649 * w32fns.c (CaptureStackBackTrace_proc): New typedef.
4650 (BACKTRACE_LIMIT_MAX): New macro.
4651 (w32_backtrace): New function.
4652 (emacs_abort): Use w32_backtrace when the user chooses not to
4653 attach a debugger. Update the text of the abort dialog.
4654
46552012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
4656
4657 Window-related stuff cleanup here and there.
4658 * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
4659 Use decode_any_window.
4660 * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
4661 * xdisp.c (Fformat_mode_line): Likewise.
4662 * font.c (Ffont_at): Use decode_live_window.
4663 * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
4664 * window.c (decode_next_window_args): Likewise.
4665 (decode_any_window): Remove static.
4666 * window.h (decode_any_window): Add prototype.
4667 * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
4668 * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
4669 respectively.
4670
46712012-11-02 Dmitry Antipov <dmantipov@yandex.ru>
4672
4673 Remove pad from struct input_event.
4674 * termhooks.h (struct input_event): Remove padding field.
4675 Adjust comment.
4676 * keyboard.c (event_to_kboard): Simplify because frame_or_window
4677 member is never cons for a long time. Adjust comment.
4678 (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
4679 SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment.
4680 * xterm.c (handle_one_xevent): Do not initialize frame_or_window
4681 field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
4682
46832012-11-01 Eli Zaretskii <eliz@gnu.org>
4684
4685 * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776)
4686
46872012-10-31 Paul Eggert <eggert@cs.ucla.edu>
4688
4689 Fix crash when using Emacs as commit editor for git (Bug#12697).
4690 * callproc.c (setpgrp): Remove macro, as we now use setpgid
4691 and it is configured in conf_post.h.
4692 (Fcall_process): Don't invoke both setsid and setpgid; the former
4693 is enough, if it exists.
4694 * callproc.c (Fcall_process, child_setup):
4695 * process.c (create_process): Use setpgid.
4696 * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
4697 for the real thing.
4698 * dispnew.c (init_display): Initialize the foreground group
4699 if we are running a tty display.
4700 * emacs.c (main): Do not worry about setpgrp; init_display does it now.
4701 * lisp.h (init_foreground_group): New decl.
4702 * sysdep.c (inherited_pgroup): New static var.
4703 (init_foreground_group, tcsetpgrp_without_stopping)
4704 (narrow_foreground_group, widen_foreground_group): New functions.
4705 (init_sys_modes): Narrow foreground group.
4706 (reset_sys_modes): Widen foreground group.
4707
47082012-10-31 Michael Albinus <michael.albinus@gmx.de>
4709
4710 * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE.
4711
47122012-10-31 Martin Rudalics <rudalics@gmx.at>
4713
4714 * minibuf.c (read_minibuf): Restore current buffer since
4715 choose_minibuf_frame calling Fset_frame_selected_window may
4716 change it (Bug#12766).
4717
47182012-10-30 Jan Djärv <jan.h.d@swipnet.se>
4719
4720 * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
4721
47222012-10-30 Kenichi Handa <handa@gnu.org>
4723
4724 * font.c (Ffont_at): If WINDOW is specified and it is not
4725 displaying the current buffer, signal an error.
4726
47272012-10-29 Daniel Colascione <dancol@dancol.org>
4728
4729 * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode):
4730 In preparation for fixing bug#12739, move these functions from
4731 here...
4732
4733 * coding.h, coding.c: ... to here, and compile them only when
4734 WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper
4735 lets us write cygw32-agnostic code for the HAVE_NTGUI case.
4736
47372012-10-28 Eli Zaretskii <eliz@gnu.org>
4738
4739 * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
4740 (timer_loop, getitimer, setitimer): Use it instead of
4741 CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
4742 'clock'.
4743 (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
4744 literal 10000.
4745
47462012-10-28 Jan Djärv <jan.h.d@swipnet.se>
4747
4748 * nsterm.m (NO_APPDEFINED_DATA): New define.
4749 (last_appdefined_event_data): New variable
4750 (last_appdefined_event): Remove.
4751 (ns_select): Initialize t from last_appdefined_event_data instead
4752 of [last_appdefined_event data1].
4753 (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
4754 remove last_appdefined_event (Bug#12698).
4755
47562012-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
4757
4758 * frame.c (x_set_font): Catch internal error.
4759
47602012-10-27 Eli Zaretskii <eliz@gnu.org>
4761
4762 Avoid overflow in w32 implementation of interval timers.
4763 When possible, for ITIMER_PROF count only times the main thread
4764 actually executes.
4765 * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
4766 'volatile ULONGLONG' types. All the other data which was
4767 previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'.
4768 (GetThreadTimes_Proc): New typedef.
4769 (w32_get_timer_time): New function, returns a suitable time value
4770 for the timer.
4771 (timer_loop): Enter critical section when accessing ULONGLONG
4772 values of the itimer_data struct, as these accesses are no longer
4773 atomic. Call 'w32_get_timer_time' instead of 'clock'.
4774 Remove unused variable.
4775 (init_timers): Initialize s_pfn_Get_Thread_Times.
4776 (start_timer_thread): Don't assign itimer->caller_thread here.
4777 (getitimer): Assign itimer->caller_thread here.
4778 (setitimer): Always call getitimer to get the value of ticks_now.
4779 (sys_spawnve): Avoid compiler warning about format mismatch.
4780
47812012-10-26 Eli Zaretskii <eliz@gnu.org>
4782
4783 * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
4784 mouse movement events if the menu bar is active. This avoids
4785 producing a busy "hour-glass" cursor by Windows if the mouse
4786 pointer is positioned over a tooltip shown for some menu item.
4787
47882012-10-25 Paul Eggert <eggert@cs.ucla.edu>
4789
4790 Don't assume process IDs fit in int.
4791 * emacs.c (shut_down_emacs) [!DOS_NT]:
4792 * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
4793 * term.c (dissociate_if_controlling_tty) [!DOS_NT]:
4794 Use pid_t, not int, to store process IDs, as 'int'
4795 is not wide enough on a few platforms (e.g., AIX and IRIX).
4796
47972012-10-23 Kenichi Handa <handa@gnu.org>
4798
4799 The following change is to make face-font-rescale-alist work
4800 correctly for non-ASCII fonts.
4801
4802 * font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
4803 (font_open_for_lface): Handle Vface_font_rescale_alist.
4804
48052012-10-23 Chong Yidong <cyd@gnu.org>
4806
4807 * xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
4808
48092012-10-21 Jan Djärv <jan.h.d@swipnet.se>
4810
4811 * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement
4812 for screen font.
4813 (nsfont_draw): Turn off LCD-smoothing (Bug#11484).
4814
4815 * xterm.c (x_focus_changed): Check if daemonp when sending focus in
4816 event (Bug#12681).
4817
48182012-10-21 Glenn Morris <rgm@gnu.org>
4819
4820 * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
4821
48222012-10-20 Paul Eggert <eggert@cs.ucla.edu>
4823
4824 Port to OpenBSD 5.1.
4825 * frame.c (Fmouse_position, Fmouse_pixel_position):
4826 * xdisp.c (produce_stretch_glyph):
4827 Declare local vars only when they're needed.
4828 This is clearer and avoids a warning on OpenBSD about unused vars.
4829 * frame.h (FRAME_WINDOW_P): Always evaluate its argument.
4830 This is safer, and avoids OpenBSD warnings about unused vars.
4831 * keyboard.c (record_menu_key): Remove unnecessary decl.
4832 (poll_timer): Define only if POLL_FOR_INPUT is defined.
4833 * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
4834 as our definition clashes with OpenBSD's.
4835 * xfaces.c (load_face_colors, check_lface_attrs)
4836 (get_lface_attributes_no_remap, get_lface_attributes)
4837 (lface_fully_specified_p, x_supports_face_attributes_p)
4838 (tty_supports_face_attributes_p, face_fontset, realize_face)
4839 (realize_x_face, realize_tty_face):
4840 Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
4841 merely Lisp_Object *. This is more informative and avoids
4842 a warning on OpenBSD about accessing beyond an object's size.
4843
48442012-10-20 Chong Yidong <cyd@gnu.org>
4845
4846 * lread.c (Fload): Doc fix (Bug#12592).
4847
48482012-10-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4849
4850 * font.c (Ffont_at): Fix previous change.
4851
48522012-10-19 Eli Zaretskii <eliz@gnu.org>
4853
4854 * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
4855 See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
4856 for the reasons.
4857
4858 * alloc.c (NSTATICS): Decrease to 0x800.
4859
48602012-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
4861
4862 * fns.c (Fnreverse): Include the problem element when signaling an
4863 error (bug#12677).
4864
48652012-10-18 Jan Djärv <jan.h.d@swipnet.se>
4866
4867 * nsterm.m (ns_select): Check writefds before call to
4868 FD_ISSET (Bug#12668).
4869
48702012-10-18 Daniel Colascione <dancol@dancol.org>
4871
4872 * alloc.c (NSTATICS): Increase from 0x650 to 0x1000
4873 (staticpro): If we run out of staticpro slots, die with an
4874 informative error instead of just calling emacs_abort.
4875
48762012-10-18 Martin Rudalics <rudalics@gmx.at>
4877
4878 Fix two flaws reported by Dmitry Antipov.
4879 * window.c (Ftemp_output_buffer_show): Remove.
4880 (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
4881 (syms_of_window): Remove defsubr for Stemp_output_buffer_show.
4882
48832012-10-17 Eli Zaretskii <eliz@gnu.org>
4884
4885 * makefile.w32-in ($(BLD)/w32.$(O)):
4886 ($(BLD)/vm-limit.$(O)):
4887 ($(BLD)/term.$(O)):
4888 ($(BLD)/unexw32.$(O)):
4889 ($(BLD)/fileio.$(O)):
4890 ($(BLD)/dispnew.$(O)): Update dependencies.
4891
4892 * w32term.h (w32_initialize_display_info, initialize_w32_display):
4893 Add prototypes.
4894
4895 * w32proc.c: Include ctype.h.
4896
4897 * w32.h (init_environment, check_windows_init_file)
4898 (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
4899 (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
4900 (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
4901 (sys_link): Add prototypes.
4902
4903 * w32.c: Include w32select.h.
4904 (sys_access, e_malloc, sys_select): Add prototypes.
4905 (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
4906
4907 * vm-limit.c [WINDOWSNT]: Include w32heap.h.
4908
4909 * unexw32.c: Include lisp.h and w32.h.
4910
4911 * term.c [WINDOWSNT]: Include w32term.h.
4912
4913 * process.c [WINDOWSNT]: Add prototype of sys_select.
4914
4915 * fileio.c [WINDOWSNT]: Include w32.h.
4916
4917 * dispnew.c [WINDOWSNT]: Include w32.h.
4918
4919 * cygw32.c (Fcygwin_convert_path_to_windows)
4920 (Fcygwin_convert_path_from_windows): Use EQ to compare 2
4921 Lisp_Object values. (Bug#12661)
4922
4923 * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
4924 to Lisp_Object. (Bug#12661)
4925
49262012-10-17 Kenichi Handa <handa@gnu.org>
4927
4928 * xdisp.c (reseat_1): Make the information stored in it->cmp_it
4929 invalidate.
4930
49312012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
4932
4933 * buffer.c (Fkill_buffer): When unchaining the marker,
4934 reset its buffer pointer to NULL (Bug#12652).
4935
49362012-10-17 Dmitry Antipov <dmantipov@yandex.ru>
4937
4938 Do not verify indirection counters of killed buffers (Bug#12579).
4939 * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
4940 * buffer.c (compact_buffer, set_buffer_internal_1): Use it.
4941
49422012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
4943
4944 * alloc.c (Fmake_byte_code): Fix typo in comment.
4945 * print.c (print_interval): Define as static to match prototype.
4946 * indent.c (disptab_matches_widthtab, recompute_width_table):
4947 Convert to eassert.
4948
49492012-10-16 Dmitry Antipov <dmantipov@yandex.ru>
4950
4951 * editfns.c (get_system_name): Remove.
4952 * lisp.h (get_system_name): Remove prototype.
4953 * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
4954 (get_environ_db): Use Vsystem_name. Avoid call to strlen.
4955
49562012-10-15 Daniel Colascione <dancol@dancol.org>
4957
4958 * dbusbind.c: Add comment explaining reason for previous change.
4959
49602012-10-15 Martin Rudalics <rudalics@gmx.at>
4961
4962 * window.c (Fwindow_end): Rewrite check whether cached position
4963 can be used (Bug#12600).
4964 (resize_frame_windows, grow_mini_window, shrink_mini_window):
4965 Set windows_or_buffers_changed.
4966
49672012-10-15 Daniel Colascione <dancol@dancol.org>
4968
4969 * dbusbind.c: Fix cygw32 build break when compiling with dbus
4970 enabled by undefining the symbol "interface", which the platform
4971 headers define to something incompatible.
4972
49732012-10-14 Daniel Colascione <dancol@dancol.org>
4974
4975 * image.c (init_tiff_functions, init_imagemagick_functions)
4976 (init_svg_functions): Fix cygw32 build break by using these
4977 functions only when WINDOWSNT _and_ HAVE_NTGUI.
4978
49792012-10-14 Jan Djärv <jan.h.d@swipnet.se>
4980
4981 * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
4982
49832012-10-13 Jan Djärv <jan.h.d@swipnet.se>
4984
4985 * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
4986
49872012-10-13 HANATAKA, Shinya <bogytech@gmail.com> (tiny change)
4988
4989 * coding.c (detect_coding): Set coding->id before calling
4990 this->detector.
4991
49922012-10-13 Andreas Schwab <schwab@linux-m68k.org>
4993
4994 * fileio.c: Formatting fixes.
4995
49962012-10-13 Paul Eggert <eggert@cs.ucla.edu>
4997
4998 Fix some stat-related races.
4999 * fileio.c (Fwrite_region): Avoid race condition if a file is
5000 removed or renamed by some other process immediately after Emacs
5001 writes it but before Emacs stats it. Do not assume that stat (or
5002 fstat) succeeds.
5003 * image.c (slurp_file): Resolve the file name with fopen + fstat
5004 rather than stat + fopen.
5005 (pbm_read_file) [0]: Remove unused code with stat race.
5006 * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
5007 Remove ineffective code with stat race.
5008
50092012-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
5010
5011 * doc.c (get_doc_string): Don't signal an error if the file is missing.
5012
50132012-10-12 Jan Djärv <jan.h.d@swipnet.se>
5014
5015 * nsterm.m (hold_event_q): New static variable.
5016 (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
5017 ! q_event_ptr.
5018 (hold_event): New function.
5019 (ns_read_socket): If hold_event_q have events, store them and
5020 return (Bug#12384).
5021 (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
5022 is zero (Bug#12384).
5023
50242012-10-12 Juanma Barranquero <lekktu@gmail.com>
5025
5026 * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies.
5027
50282012-10-12 Eli Zaretskii <eliz@gnu.org>
5029
5030 * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h.
5031
5032 * fileio.c (check_existing): New function.
5033 (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
5034 instead of calling 'stat', when what's needed is to check whether
5035 a file exists. This avoids expensive system calls on MS-Windows.
5036 (Bug#12587)
5037
5038 * w32.c (init_environment): Call 'check_existing' instead of 'stat'.
5039
5040 * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
5041 determine whether a file exists and is not a directory.
5042
5043 * lisp.h (check_existing): Add prototype.
5044
50452012-10-12 Jan Djärv <jan.h.d@swipnet.se>
5046
5047 * nsfont.m (nsfont_open): Remove font cache, it is not GC correct.
5048
50492012-10-12 Glenn Morris <rgm@gnu.org>
5050
5051 * buffer.c (Fset_buffer): Doc fix. (Bug#12624)
5052
50532012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
5054
5055 * buffer.c (Fkill_buffer): Null out the overlay list(s) as well.
5056
5057 * eval.c (Fautoload): Remember previous autoload status in load-history.
5058
50592012-10-11 Paul Eggert <eggert@cs.ucla.edu>
5060
5061 lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
5062 * lread.c (load_each_byte, new_backquote_flag, readchar)
5063 (read_filtered_event, lisp_file_lexically_bound_p)
5064 (safe_to_load_version, Fload, complete_filename_p, openp)
5065 (build_load_history, readevalloop, read_escape, read1)
5066 (string_to_number, read_vector, read_list):
5067 * macros.c (Fstart_kbd_macro):
5068 * marker.c (CONSIDER):
5069 * menu.c (parse_single_submenu, digest_single_submenu)
5070 (find_and_return_menu_selection, Fx_popup_menu):
5071 * minibuf.c (read_minibuf_noninteractive, read_minibuf)
5072 (Ftry_completion):
5073 * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
5074 (ns_menu_show):
5075 * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
5076 (xmenu_show, xdialog_show):
5077 Use bool for booleans.
5078 * lread.c (safe_to_load_version): Rename from safe_to_load_p,
5079 as it's not a predicate. All uses changed. Omit unnecessary
5080 buffer termination.
5081
50822012-10-11 Dmitry Antipov <dmantipov@yandex.ru>
5083
5084 * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
5085 (save_excursion_restore): Do not restore mark if it was not saved.
5086
50872012-10-11 Paul Eggert <eggert@cs.ucla.edu>
5088
5089 * marker.c (cached_modiff): EMACS_INT, not int.
5090
5091 * w32select.c (waiting_for_input): Declare by including "keyboard.h"
5092 instead of having a wrong decl.
5093 * nsmenu.m (waiting_for_input): Remove wrong decl.
5094
50952012-10-10 Paul Eggert <eggert@cs.ucla.edu>
5096
5097 keyboard.c, keymap.c: Use bool for booleans.
5098 * dispnew.c (sit_for): Distinguish between 3-way display_option
5099 and boolean do_display.
5100 * keyboard.c (single_kboard, this_command_key_count_reset)
5101 (waiting_for_input, echoing, immediate_quit, input_pending)
5102 (interrupt_input, interrupts_deferred, pop_kboard)
5103 (temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
5104 (command_loop_1, adjust_point_for_property)
5105 (safe_run_hooks_error, input_polling_used, read_char):
5106 (help_char_p, readable_events, kbd_buffer_events_waiting)
5107 (kbd_buffer_get_event, timer_check_2, make_lispy_event)
5108 (lucid_event_type_list_p, get_input_pending):
5109 (gobble_input, menu_separator_name_p, menu_bar_item)
5110 (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
5111 (read_char_minibuf_menu_prompt, access_keymap_keyremap)
5112 (keyremap_step, test_undefined, read_key_sequence)
5113 (detect_input_pending, detect_input_pending_ignore_squeezables)
5114 (detect_input_pending_run_timers, requeued_events_pending_p)
5115 (quit_throw_to_read_char, Fset_input_interrupt_mode):
5116 * keymap.c (get_keymap, keymap_parent, keymap_memberp)
5117 (access_keymap_1, access_keymap, map_keymap, get_keyelt)
5118 (Fdefine_key, Flookup_key, struct accessible_keymaps_data)
5119 (accessible_keymaps_1, Fkey_description, push_key_description):
5120 (shadow_lookup, struct where_is_internal_data)
5121 (where_is_internal, Fwhere_is_internal, where_is_internal_1)
5122 (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
5123 (describe_map, describe_vector):
5124 * menu.c (single_menu_item):
5125 * nsmenu.m (ns_update_menubar):
5126 * process.c (wait_reading_process_output):
5127 * search.c (scan_buffer, scan_newline):
5128 Use bool for boolean.
5129 * keyboard.c (timers_run, swallow_events)
5130 (detect_input_pending_run_timers):
5131 * process.c (wait_reading_process_output):
5132 Use unsigned for counter where wraparound-on-overflow is desired,
5133 since unsigned is guaranteed to have that behavior and signed is not.
5134 (read_char): Use ptrdiff_t for string length.
5135 (get_input_pending): Remove first argument, since it was always
5136 the same pointer-to-int (now pointer-to-boolean) &input_pending,
5137 and behave as if it had that value. Return new value of
5138 input_pending. All callers changed.
5139 * keyboard.h (struct kboard): Use unsigned : 1 for boolean member
5140 immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's
5141 a string length.
5142 * keymap.c (push_key_description): Omit last arg, which was always 1.
5143 All callers changed.
5144
5145 * regex.c (immediate_quit) [emacs]: Remove duplicate decl.
5146
51472012-10-10 Juanma Barranquero <lekktu@gmail.com>
5148
5149 * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
5150 ($(BLD)/term.$(O)): Update dependencies.
5151
51522012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
5153
5154 * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
5155 * lisp.h (enum pvec_type): Adjust comments and omit explicit
5156 initializer for PVEC_NORMAL_VECTOR.
5157
51582012-10-10 Paul Eggert <eggert@cs.ucla.edu>
5159
5160 Clean out old termopts cruft.
5161 * termopts.h (flow_control, meta_key): Remove unused decls.
5162 * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
5163 Don't include termopts.h.
5164
51652012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
5166
5167 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
5168
51692012-10-10 Paul Eggert <eggert@cs.ucla.edu>
5170
5171 * commands.h (immediate_quit): Remove duplicate decl.
5172
51732012-10-09 Jan Djärv <jan.h.d@swipnet.se>
5174
5175 * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
5176 caching.
5177 (nsfont_open): Remove setting of Vfonts_in_cache.
5178 (syms_of_nsfont): Remove initialization of Vfonts_in_cache.
5179
51802012-10-09 Eli Zaretskii <eliz@gnu.org>
5181
5182 * w32fns.c (w32_last_error): Change the return value to DWORD, to
5183 match what GetLastError returns. Explain why the function is
5184 needed.
5185
5186 * frame.c (delete_frame): Rename local variable 'tooltip_frame' to
5187 'is_tooltip_frame', to avoid confusion with its global namesake.
5188
51892012-10-08 Daniel Colascione <dancol@dancol.org>
5190
5191 * xdisp.c (start_hourglass): Call w32_note_current_window when
5192 HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
5193 build that caused Emacs to display the hourglass cursor forever.
5194
5195 * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
5196 which is broken under remote desktop, calculate the number of
5197 colors available for a display based on the display's number of
5198 planes and number of bits per pixel per plane. (bug#10397).
5199
52002012-10-08 Jan Djärv <jan.h.d@swipnet.se>
5201
5202 * nsfont.m (Vfonts_in_cache): New variable.
5203 (nsfont_open): Use unsignedLongLongValue for cache in case wide ints
5204 are used. Add cached fonts to Vfonts_in_cache.
5205 (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
5206
52072012-10-08 Juanma Barranquero <lekktu@gmail.com>
5208
5209 * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
5210 in nt/config.nt.
5211 (FONT_H): Define after FRAME_H.
5212 ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
5213 Update dependencies.
5214
5215 * w32term.c: Remove leftover declaration of keyboard_codepage.
5216
52172012-10-08 Eli Zaretskii <eliz@gnu.org>
5218
5219 * makefile.w32-in (FONT_H): Add $(FRAME_H).
5220 (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
5221 ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
5222 (GLOBAL_SOURCES): Add cygw32.c.
5223 ($(BLD)/unexw32.$(O)):
5224 ($(BLD)/w32.$(O)):
5225 ($(BLD)/w32console.$(O)):
5226 ($(BLD)/w32fns.$(O)):
5227 ($(BLD)/w32heap.$(O)):
5228 ($(BLD)/w32menu.$(O)):
5229 ($(BLD)/w32proc.$(O)): Add w32common.h.
5230
5231 * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
5232 'const char *'.
5233 (x_to_w32_color): Don't modify the argument, modify a copy instead.
5234
52352012-10-08 Daniel Colascione <dancol@dancol.org>
5236
5237 * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
5238 (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
5239 accidental message numbering hole. Change other messages to
5240 match.
5241
5242 * w32select.h (HAVE_W32SELECT): Remove.
5243
5244 * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
5245 w32common.h instead of w32heap.h.
5246
5247 * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
5248 (get_allocation_unit, get_processor_type, get_w32_major_version)
5249 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
5250 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
5251 (OS_NT, os_subtype, cache_system_info): Move declarations to
5252 w32common.
5253
5254 * w32heap.c: Include w32common.h.
5255 (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
5256 (w32_minor_version, w32_build_number, w32_subtype):
5257 Remove duplicate definitions.
5258
5259 * w32fns.c: Include w32common.h; include w32heap.h only in
5260 WINDOWSNT.
5261
5262 (Fx_file_dialog): Clarify comment on GetOpenFileName structure.
5263 Use `report_file_error' instead of `error' in order to better
5264 inform users of what went wrong. Increase NTGUI_UNICODE file
5265 dialog box file name length to 32k, the maximum allowed by the NT
5266 kernel.
5267
5268 * w32common.h: New file.
5269 (ROUND_UP, ROUND_DOWN, get_page_size)
5270 (get_allocation_unit, get_processor_type, get_w32_major_version)
5271 (get_w32_minor_version, sysinfo_cache, osinfo_cache)
5272 (w32_major_version, w32_minor_version, w32_build_number, OS_9X)
5273 (OS_NT, os_subtype, cache_system_info): Move here.
5274
5275 * unexw32.c, unexcw.c: Include w32common.h.
5276
5277 * emacs.c (main): Use (defined (WINDOWSNT) || defined
5278 HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
5279 to call syms_of_w32select.
5280
5281 * cygw32.h: Remove obsolete EXFUN declarations.
5282
5283 * cygw32.c (Qutf_16_le): Rename to Qutf_16le.
5284
5285 * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
5286 of w32inevt.o from SOME_MACHINE_OBJECTS.
5287
52882012-10-08 Daniel Colascione <dancol@dancol.org>
5289
5290 * image.c: Permanent fix for JPEG compilation issue --- limit
5291 jpeglib `boolean' redefinition to Cygwin builds.
5292
52932012-10-08 Eli Zaretskii <eliz@gnu.org>
5294
5295 * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
5296
5297 * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
5298 Cygwin.
5299
53002012-10-08 Daniel Colascione <dancol@dancol.org>
5301
5302 * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
5303 w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
5304 w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
5305 w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
5306 keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
5307 emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
5308 Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
5309 operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
5310 now a supported configuration.
5311
5312 * Makefile.in: consolidate image variables into LIBIMAGE; add
5313 W32_OBJ and W32_LIBS. Compile new files.
5314
5315 * conf_post.h:
5316 (_DebPrint) declare tracing facility for W32 debugging. We need
5317 to unify tracing later.
5318
5319 (NTGUI_UNICODE) Define when compiling for Cygwin to allow the
5320 unconditional use of W32 Unicode functions. Cygwin runs only on
5321 100% Unicode operating systems.
5322
5323 * cygw32.c: New file. Define Cygwin-specific facilities.
5324 (Fcygwin_convert_path_to_windows)
5325 (Fcygwin_convert_path_from_windows): New user functions for
5326 accessing Cygwin path-munging routines.
5327
5328 * cygw32.h: New file.
5329 (WCSDATA, to_unicode, from_unicode): Define facilities for storing
5330 UTF-16LE strings temporarily inside non-Lisp-visible string
5331 objects.
5332
5333 (w32_strerror): Just what it says on the tin.
5334
5335 * emacs.c: Make the NS fork-then-exec code for daemon-launching
5336 also run for Cygwin; both systems have the same problem with using
5337 GUI facilities in a forked child. Also call syms_of_cygw32,
5338 syms_of_w32select in correct places.
5339
5340 (DAEMON_MUST_EXEC): new macro defined to signal that a platform
5341 needs fork-then-exec for daemon launching.
5342
5343 * font.h: Include frame.h.
5344
5345 * image.c: Use the image library cache machinery only when we're
5346 compiling for native WINDOWSNT; Cygwin can use shared libraries
5347 like any other Unixlike system.
5348
5349 * keyboard.c: Clarify a comment regarding the input loop.
5350
5351 * menu.c: When NTGUI_UNICODE is defined, use Unicode menu
5352 functions directly instead of trying to detect at runtime that our
5353 host operating system supports them. We make this change for two
5354 reasons: Cygwin lacks support for the multibyte character
5355 conversion functions used by the legacy menu code, and Cygwin
5356 never needs to rely on non-Unicode APIs.
5357
5358 * unexw32.c (hinst): Declare extern.
5359
5360 * w32.c: Change header order;
5361 (w32_strerror): Move to w32fns.c because we need it for
5362 non-WINDOWSNT builds.
5363
5364 * w32.h: Add #error macro to make sure we don't include w32.h for
5365 Cygwin builds. Remove w32select declarations.
5366
5367 * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
5368 w32fns.c. w32console.c is WINDOWSNT-only.
5369
5370 * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
5371 NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more
5372 POSIXy alternative.
5373 (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
5374 (w32_major_version, w32_minor_version, w32_build_number)
5375 (os_subtype, sound_type): Define here
5376 (w32_defined_color): Make color parameter const for consistency
5377 with other _defined_color functions.
5378 (w32_createwindow): Unconditionally call w32_init_class instead of
5379 doing so only when hprevinst is non-NULL. Plumbing hprevinst
5380 through the code is complex and unnecessary because class
5381 registration is practically free.
5382 (w32_name_of_message): New EMACSDEBUG-only function.
5383 (Fset_message_beep): Move here
5384 (Fx_open_connection): Require that the display name for Windows be
5385 "w32" for consistency, emacsclient disambiguation, and maybe, one
5386 day, multi-window-system support.
5387 (file_dialog_callback): NTGUI_UNICODE changes; encode and decode
5388 Cygwin files for W32 GUI facilities, since these clearly don't
5389 expect Cygwin names.
5390 (_DebPrint): Define.
5391 (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
5392 (w32_kbd_patch_key, w32_sys_ring_bell): Move here.
5393 (Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
5394 (w32_last_error): Remove.
5395
5396 * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
5397
5398 * w32heap.c (syspage_mask): Declare here.
5399 (cache_system_info): Remove.
5400
5401 * w32inevt.c (faked_key): Define globally, not statically.
5402 (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
5403 (w32_console_toggle_lock_key): Move to w32fns.c.
5404
5405 * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout.
5406
5407 * w32proc.c (_DebPrint): Move to w32fns.c.
5408 * w32select.c: Include string.h, stdio.h for Cygwin.
5409 * w32select.h: New File.
5410
5411 * w32term.c: Include io.h for non-CYGWIN builds; needed for
5412 get_osfhandle.
5413 (w32_message_fd): New variable. Under Cygwin, holds the file
5414 descriptor the system used to tell us about pending thread
5415 messages.
5416
5417 (w32_init_term): Remove incorrect calls to fcntl and init_sigio
5418 that prevented compilation under non-WINDOWSNT systems.
5419
5420 (w32_initialize): Open /dev/windows and assign it to
5421 w32_message_fd. Provide w32 feature.
5422
5423 * w32term.h: Include frame.h, atimer.h. Declare various frame functions.
5424 (WM_EMACS_INPUT_READY): add.
5425 (prepend_msg, w32_message_fd): Declare globally.
5426
5427 * w32xfns.c:
5428 (keyboard_handle): Use only when WINDOWSNT.
5429 (notify_msg_ready): New function. Posts a message to the main
5430 thread's message queue under CYGWIN, which wakes up the main
5431 thread from select(2) by making the /dev/windows file descriptor
5432 ready. Under WINDOWSNT, it sets an event the same way the old
5433 code did.
5434
5435 (post, prepend_msg): Actually call notify_msg_ready instead of
5436 setting the input event directly.
5437
54382012-10-07 Eli Zaretskii <eliz@gnu.org>
5439
5440 * ralloc.c (relinquish): If a heap is ready to be relinquished,
5441 but it still has blocs in it, don't return it to the system,
5442 instead of aborting. (Bug#12402)
5443
54442012-10-07 Jan Djärv <jan.h.d@swipnet.se>
5445
5446 * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
5447
5448 * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of
5449 MAC_OS_X_VERSION_10_6.
5450 (syms_of_nsterm): Remove comment about Panther and above for
5451 ns-antialias-text.
5452 * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
5453 (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
5454 (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
5455
5456 * nsselect.m (ns_string_from_pasteboard): Remove check for >=
5457 MAC_OS_X_VERSION_10_4.
5458
5459 * nsmenu.m (fillWithWidgetValue:): Remove code for <
5460 MAC_OS_X_VERSION_10_2.
5461
5462 * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
5463
5464 * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
5465 (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
5466
5467 * nsterm.m (ns_in_resize): Remove (Bug#12479).
5468 (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
5469 (ns_clear_frame, sendEvent, windowDidResize, drawRect:):
5470 Remove ns_in_resize check.
5471 (ns_clear_frame_area): Remove resize handle code.
5472
5473 * nsfns.m (ns_in_resize): Remove.
5474 (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
5475 Remove ns_in_resize check.
5476
54772012-10-07 Paul Eggert <eggert@cs.ucla.edu>
5478
5479 Improve sys_siglist detection.
5480 * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
5481 defined as a macro, as is done in Solaris.
5482 (sys_siglist_entries): New macro.
5483 (save_strsignal): Use it.
5484 * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
5485 GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
5486
54872012-10-06 Jan Djärv <jan.h.d@swipnet.se>
5488
5489 * nsfns.m (Fx_create_frame): Call x_default_parameter with
5490 fullscreen/Fullscreen.
5491
5492 * nsterm.h (EmacsView): Rename tbar_height to tibar_height.
5493 tobar_height is new.
5494
5495 * nsterm.m (x_make_frame_visible): Check for fullscreen.
5496 (ns_fullscreen_hook): Activate old style fullscreen with a timer.
5497 (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
5498 (windowDidResize:): Check for correct window if old style fullscreen.
5499 Capitalize word in comment. Remove incorrect comment.
5500 (initFrameFromEmacs:): tbar_height renamed tibar_height.
5501 (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
5502 error in drawing background.
5503 (toggleFullScreen:): Remove comment. Rearrange calls.
5504 Set toolbar values to zero, save old height in tobar_height.
5505 Restore tool bar height when leaving fullscreen.
5506 (canBecomeMainWindow): New function.
5507
55082012-10-06 Paul Eggert <eggert@cs.ucla.edu>
5509
5510 * keyboard.c (read_char): Remove unnecessary 'volatile's and label.
5511
55122012-10-05 Eli Zaretskii <eliz@gnu.org>
5513
5514 * w32proc.c (stop_timer_thread): Fix declaration of 'err'.
5515
5516 * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
5517 that time stamps of directories could also be changed.
5518 Don't request the too broad GENERIC_WRITE, only the more restrictive
5519 FILE_WRITE_ATTRIBUTES access rights.
5520
5521 * fileio.c (Fset_file_times): Special-case ignoring errors for
5522 directories only on MSDOS, not on MS-Windows.
5523
55242012-10-05 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
5525
5526 * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555)
5527
55282012-10-04 Eli Zaretskii <eliz@gnu.org>
5529
5530 * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
5531 see whether CreateFile failed.
5532
55332012-10-04 Paul Eggert <eggert@cs.ucla.edu>
5534
5535 * profiler.c (handle_profiler_signal): Inhibit pending signals too,
5536 to avoid similar races.
5537 * keyboard.c (pending_signals): Now bool, not int.
5538
5539 Port timers to OpenBSD, plus check for timer failures.
5540 OpenBSD problem reported by Han Boetes.
5541 * profiler.c (setup_cpu_timer): Check for failure of timer_settime
5542 and/or setitimer.
5543 (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
5544 * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms
5545 like OpenBSD, which has timer_settime but does not declare it.
5546 OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
5547 whether to use itimerspec-related primitives. All uses of
5548 HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
5549
55502012-10-02 Paul Eggert <eggert@cs.ucla.edu>
5551
5552 * profiler.c (handle_profiler_signal): Fix a malloc race
5553 that caused Emacs to hang on Fedora 17 when profiling Lisp.
5554
55552012-10-02 Jan Djärv <jan.h.d@swipnet.se>
5556
5557 * nsterm.m (windowDidEnterFullScreen): Remove fprintf.
5558
55592012-10-02 Eli Zaretskii <eliz@gnu.org>
5560
5561 * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
5562 consistent with the change in return value of 'safe_strsignal'.
5563
55642012-10-02 Paul Eggert <eggert@cs.ucla.edu>
5565
5566 Prefer plain 'static' to 'static inline' (Bug#12541).
5567 * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
5568 (bidi_set_sor_type, bidi_push_embedding_level)
5569 (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
5570 (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
5571 (bidi_cache_search, bidi_cache_ensure_space)
5572 (bidi_cache_iterator_state, bidi_cache_find)
5573 (bidi_peek_at_next_level, bidi_set_paragraph_end)
5574 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
5575 (bidi_explicit_dir_char, bidi_resolve_neutral_1):
5576 Now 'static', not 'static inline'.
5577
5578 Count overruns when profiling; change units to ns.
5579 * profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
5580 Give extra weight to samples after overruns, to attempt to count
5581 the time more accurately.
5582 (setup_cpu_timer): Change sampling interval units from ms to ns, since
5583 the underlying primitives nominally do ns.
5584 (Fprofiler_cpu_start): Document the change. Mention that
5585 the sampling intervals are only approximate.
5586
55872012-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
5588
5589 * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
5590
5591 * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
5592 case for the special 0 coding-system.
5593
5594 * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
5595 (Fmake_overlay): Remove redundant tests.
5596 (fix_start_end_in_overlays): Remove redundant recentering.
5597
55982012-10-02 Juanma Barranquero <lekktu@gmail.com>
5599
5600 * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
5601 Update dependencies.
5602
56032012-10-01 Paul Eggert <eggert@cs.ucla.edu>
5604
5605 Fix a malloc race condition involving strsignal.
5606 A signal can arrive in the middle of a malloc, and Emacs's signal
5607 handler can invoke strsignal, which can invoke malloc, which is
5608 not portable. This race condition bug makes Emacs hang on GNU/Linux.
5609 Fix it by altering the signal handler so that it does not invoke
5610 strsignal.
5611 * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
5612 * process.c (status_message): Use const pointer, in case strsignal
5613 is #defined to safe_strsignal.
5614 * sysdep.c (sys_siglist, init_signals): Always define and
5615 initialize a substitute sys_siglist if the system does not define
5616 one, even if HAVE_STRSIGNAL.
5617 (safe_strsignal): Rename from strsignal. Always define,
5618 using sys_siglist. Return a const pointer.
5619 * syssignal.h (safe_strsignal): New decl.
5620 (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
5621
56222012-10-01 Eli Zaretskii <eliz@gnu.org>
5623
5624 * w32proc.c (timer_loop): Fix code that waits for timer
5625 expiration, to avoid high CPU usage.
5626
56272012-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
5628
5629 * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
5630 (sweep_weak_table): Remove redundant prototypes.
5631
56322012-10-01 Fabrice Popineau <fabrice.popineau@gmail.com>
5633
5634 * emacs.c: Move the inclusion of TERM_HEADER after including
5635 windows.h on WINDOWSNT. This avoids compilation problems with
5636 MSVC.
5637
56382012-10-01 Eli Zaretskii <eliz@gnu.org>
5639
5640 * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
5641 (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
5642 (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
5643 as the previous version used 'void *'.
5644
5645 * ralloc.c (ROUNDUP): Fix last change.
5646 (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
5647 'size_t'.
5648
5649 * w32proc.c <disable_itimers>: New static flag.
5650 (init_timers): Initialize it to zero, after creating the critical
5651 sections used by the timer threads.
5652 (term_timers): Set to 1 before deleting the critical sections.
5653 (getitimer, setitimer): If disable_itimers is non-zero, return an
5654 error indication without doing anything. Reported by Fabrice
5655 Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
5656 (alarm) [HAVE_SETITIMER]: Be more conformant to the expected
5657 return results.
5658 [!HAVE_SETITIMER]: Behave as the previous version that didn't
5659 support timers.
5660
5661 * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
5662 term_ntproc after all the other bookkeeping, to get timers working
5663 as long as possible.
5664
56652012-10-01 Paul Eggert <eggert@cs.ucla.edu>
5666
5667 * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
5668 Suggested by Juri Linkov in
5669 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00821.html>.
5670
5671 Prefer plain 'static' to 'static inline' (Bug#12541).
5672 With static functions, modern compilers inline pretty well by
5673 themselves; advice from programmers often hurts as much as it helps.
5674 On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
5675 this change shrinks the text size of the Emacs executable by 1.1%
5676 without affecting CPU significantly in my benchmark.
5677 * alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
5678 (live_float_p, live_misc_p, live_vector_p, live_buffer_p)
5679 (mark_maybe_object, mark_maybe_pointer, bounded_number):
5680 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
5681 (bset_auto_fill_function, bset_auto_save_file_format)
5682 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
5683 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
5684 (bset_cache_long_line_scans, bset_case_fold_search)
5685 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
5686 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
5687 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
5688 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
5689 (bset_header_line_format, bset_indicate_buffer_boundaries)
5690 (bset_indicate_empty_lines, bset_invisibility_spec)
5691 (bset_left_fringe_width, bset_major_mode, bset_mark)
5692 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
5693 (bset_name, bset_overwrite_mode, bset_pt_marker)
5694 (bset_right_fringe_width, bset_save_length)
5695 (bset_scroll_bar_width, bset_scroll_down_aggressively)
5696 (bset_scroll_up_aggressively, bset_selective_display)
5697 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
5698 (bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
5699 (set_buffer_overlays_after):
5700 * category.c (bset_category_table):
5701 * charset.c (read_hex):
5702 * coding.c (produce_composition, produce_charset)
5703 (handle_composition_annotation, handle_charset_annotation)
5704 (char_encodable_p):
5705 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
5706 (assign_row, set_frame_matrix_frame, make_current)
5707 (add_row_entry):
5708 * eval.c (set_specpdl_symbol, set_specpdl_old_value):
5709 * fns.c (maybe_resize_hash_table):
5710 * frame.c (fset_buffer_predicate, fset_minibuffer_window):
5711 * gmalloc.c (register_heapinfo):
5712 * image.c (lookup_image_type):
5713 * intervals.c (set_interval_object, set_interval_left)
5714 (set_interval_right, copy_interval_parent, rotate_right)
5715 (rotate_left, balance_possible_root_interval):
5716 * keyboard.c (kset_echo_string, kset_kbd_queue)
5717 (kset_keyboard_translate_table, kset_last_prefix_arg)
5718 (kset_last_repeatable_command, kset_local_function_key_map)
5719 (kset_overriding_terminal_local_map, kset_real_last_command)
5720 (kset_system_key_syms, clear_event, set_prop):
5721 * lread.c (digit_to_number):
5722 * marker.c (attach_marker, live_buffer, set_marker_internal):
5723 * nsterm.m (ns_compute_glyph_string_overhangs):
5724 * process.c (pset_buffer, pset_command)
5725 (pset_decode_coding_system, pset_decoding_buf)
5726 (pset_encode_coding_system, pset_encoding_buf, pset_filter)
5727 (pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
5728 (pset_status, pset_tty_name, pset_type, pset_write_queue):
5729 * syntax.c (bset_syntax_table, dec_bytepos):
5730 * terminal.c (tset_param_alist):
5731 * textprop.c (interval_has_some_properties)
5732 (interval_has_some_properties_list):
5733 * window.c (wset_combination_limit, wset_dedicated)
5734 (wset_display_table, wset_hchild, wset_left_fringe_width)
5735 (wset_left_margin_cols, wset_new_normal, wset_new_total)
5736 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
5737 (wset_right_fringe_width, wset_right_margin_cols)
5738 (wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
5739 (wset_vertical_scroll_bar_type, wset_window_parameters):
5740 * xdisp.c (wset_base_line_number, wset_base_line_pos)
5741 (wset_column_number_displayed, wset_region_showing)
5742 (window_box_edges, run_window_scroll_functions)
5743 (append_glyph_string_lists, prepend_glyph_string_lists)
5744 (append_glyph_string, set_glyph_string_background_width)
5745 (append_glyph, append_composite_glyph)
5746 (take_vertical_position_into_account):
5747 * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
5748 (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
5749 (lface_hash, lface_same_font_attributes_p, lookup_face):
5750 * xml.c (libxml2_loaded_p):
5751 * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
5752 (x_set_glyph_string_clipping, x_clear_glyph_string_rect):
5753 Now 'static', not 'static inline'.
5754
5755 * bidi.c: Tune.
5756 (bidi_copy_it): Do the whole copy with a single memcpy.
5757 (bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
5758
5759 Revert the FOLLOW-SYMLINKS change for file-attributes.
5760 Doing it right would require several changes to Tramp, and there's
5761 not enough time to get that tested before the freeze today.
5762 * dired.c (directory_files_internal, Ffile_attributes):
5763 Undo last change.
5764
5765 * frame.c (x_report_frame_params): Port better to wider ints.
5766 Do not assume that EMACS_UINT is the same width as uprintmax_t,
5767 or that pointers can be printed in 15 decimal digits.
5768 Avoid GCC warnings if EMACS_UINT is wider than a pointer.
5769
57702012-09-30 Fabrice Popineau <fabrice.popineau@supelec.fr>
5771
5772 Support x64 build on MS-Windows.
5773 * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
5774 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
5775 compatibility with x64.
5776 (x_get_focus_frame): Add prototype.
5777
5778 * w32term.c (w32_draw_underwave): Don't use GCC extensions for
5779 defining an XRectangle structure.
5780
5781 * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
5782 arithmetics for compatibility with x64.
5783
5784 * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
5785 compatibility with x64.
5786
5787 * w32heap.h: Adjust prototypes and declarations.
5788
5789 * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
5790 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
5791 DWORD, long, and unsigned long, for compatibility with x64.
5792 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
5793 (sbrk): Argument is now of type ptrdiff_t.
5794
5795 * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
5796 less than 0x0500.
5797 (w32_msg_pump): Use WPARAM type for 'result'.
5798
5799 * w32.c (init_environment, get_emacs_configuration): Support AMD64
5800 architecture.
5801 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
5802 compatibility with x64.
5803
5804 * vm-limit.c (lim_data): Now size_t.
5805 (check_memory_limits): Adjust prototypes of real_morecore and
5806 __morecore to receive argument of type ptrdiff_t. Use size_t for
5807 five_percent and data_size.
5808
5809 * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
5810 variables, for compatibility with x64.
5811 (rva_to_section, offset_to_section, relocate_offset)
5812 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
5813 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
5814 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
5815 for compatibility with x64.
5816
5817 * sysdep.c (STDERR_FILENO): Define if not already defined.
5818
5819 * ralloc.c (real_morecore): Argument type is now ptrdiff_t.
5820 (__morecore): Argument type is now ptrdiff_t.
5821 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
5822 (relinquish): Use ptrdiff_t type for 'excess'.
5823 (r_alloc_sbrk): Argument type is now ptrdiff_t.
5824
5825 * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
5826 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
5827 instead of a literal number.
5828
5829 * gmalloc.c [WINDOWSNT]: Include w32heap.h.
5830 (min): Define only if not already defined.
5831
5832 * frame.c (x_report_frame_params): Use EMACS_UINT for the return
5833 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
5834 hosts.
5835
5836 * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
5837 'bitmaps' is a pointer.
5838
5839 * dispextern.h (x_bitmap_pixmap): Adjust prototype.
5840
5841 * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
5842
58432012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5844
5845 file-attributes has a new optional arg FOLLOW-SYMLINKS.
5846 * dired.c (directory_files_internal, Ffile_attributes):
5847 New arg follow_symlinks. All uses changed.
5848
58492012-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
5850
5851 * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
5852
58532012-09-30 Eli Zaretskii <eliz@gnu.org>
5854
5855 Support atimers and CPU profiler via profile.c on MS-Windows.
5856 * w32proc.c (sig_mask, crit_sig): New static variables.
5857 (sys_signal): Support SIGALRM and SIGPROF.
5858 (sigemptyset, sigaddset, sigfillset, sigprocmask)
5859 (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset,
5860 sigfillset, and sigprocmask are no longer no-ops.
5861 (sigismember): New function.
5862 (struct itimer_data): New definition.
5863 (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
5864 (crit_prof): New static variables.
5865 (MAX_SINGLE_SLEEP): New definition.
5866 (timer_loop, stop_timer_thread, term_timers, init_timers)
5867 (start_timer_thread, getitimer, setitimer): New functions.
5868 (alarm): No longer a no-op, calls setitimer.
5869
5870 * w32.c (term_ntproc): Call term_timers.
5871 (init_ntproc): Make sure all signals are unblocked at startup, to
5872 erase any traces of dumping. Call init_timers.
5873
5874 * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
5875 Windows-specific code to display the hourglass mouse pointer is no
5876 longer used.
5877 (w32_wnd_proc): Remove code that handled the WM_TIMER message due
5878 to hourglass timer expiration.
5879 (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
5880 Remove, no longer used.
5881 (w32_note_current_window, show_hourglass, hide_hourglass):
5882 New functions, in support of hourglass cursor display similar to other
5883 window systems.
5884 (syms_of_w32fns): Don't initialize hourglass_timer.
5885
5886 * xdisp.c (start_hourglass, cancel_hourglass): Now used on
5887 WINDOWSNT as well.
5888 (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
5889
5890 * w32.h (init_timers, term_timers): Add prototypes.
5891
58922012-09-30 Kenichi Handa <handa@gnu.org>
5893
5894 * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
5895 to the buffer relocation which may be caused by ccl_driver.
5896
58972012-09-30 Jan Djärv <jan.h.d@swipnet.se>
5898
5899 * xfns.c (Fx_file_dialog): Update comment.
5900
5901 * w32fns.c (Fx_file_dialog): Update comment.
5902
5903 * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
5904 Initialize panel name field if OSX >= 10.6.
5905
5906 * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
5907
5908 * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
5909
5910 * nsterm.m (NEW_STYLE_FS): New define.
5911 (ns_fullscreen_hook, windowWillEnterFullScreen)
5912 (windowDidEnterFullScreen, windowWillExitFullScreen)
5913 (windowDidExitFullScreen, toggleFullScreen, handleFS)
5914 (setFSValue): New functions.
5915 (EmacsFSWindow): New implementation.
5916 (canBecomeKeyWindow): New function for EmacsFSWindow.
5917 (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
5918 (dealloc): Release nonfs_window if in fullscreen.
5919 (updateFrameSize:): Call windowDidMove to update top/left.
5920 (windowWillResize:toSize:): Check if frame is still maximized.
5921 (initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
5922 next_maximized, maximized_width, maximized_height and nonfs_window.
5923 Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
5924 tbar_height.
5925 (windowWillUseStandardFrame:defaultFrame:): Update frame parameter
5926 fullscreen. Set maximized_width/height. Act on next_maximized.
5927
5928 * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
5929 (EmacsView): Add variables for fullscreen.
5930 (handleFS, setFSValue, toggleFullScreen): New in EmacsView.
5931 (EmacsFSWindow): New interface for fullscreen.
5932
59332012-09-30 Juanma Barranquero <lekktu@gmail.com>
5934
5935 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
5936
59372012-09-30 Chong Yidong <cyd@gnu.org>
5938
5939 * fns.c (Frandom): Doc fix.
5940
59412012-09-30 Martin Rudalics <rudalics@gmx.at>
5942
5943 * window.c (Vwindow_combination_limit): New default value.
5944 (Qwindow_size): New symbol replacing Qtemp_buffer_resize.
5945
59462012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5947
5948 * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
5949 Suggested by Eli Zaretskii in
5950 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00811.html>.
5951
59522012-09-30 Eli Zaretskii <eliz@gnu.org>
5953
5954 * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
5955 HAVE_TIMER_SETTIME is defined.
5956
59572012-09-30 Paul Eggert <eggert@cs.ucla.edu>
5958
5959 Profiler improvements: more-accurate timers, overflow checks.
5960 * profiler.c: Don't include stdio.h, limits.h, sys/time.h,
5961 signal.h, setjmp.h. Include systime.h instead.
5962 (saturated_add): New function.
5963 (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
5964 (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
5965 (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
5966 New static vars.
5967 (enum profiler_cpu_running): New enum.
5968 (profiler_cpu_running): Now of that enum type, not bool.
5969 All uses changed to store the new value.
5970 (handle_profiler_signal): Rename from sigprof_handler_1,
5971 for consistency with other handlers. Do not check whether
5972 cpu_log is a hash-table if garbage collecting, since it
5973 doesn't matter in that case.
5974 (deliver_profiler_signal): Rename from sigprof_handler,
5975 for consistency with other handlers.
5976 (setup_cpu_timer): New function, with much of what used to be in
5977 Fprofiler_cpu_start. Check for out-of-range argument.
5978 Prefer timer_settime if available, and prefer
5979 thread cputime clocks, then process cputime clocks, then
5980 monotonic clocks, to the old realtime clock. Use make_timeval
5981 to round more-correctly when falling back to setitimer.
5982 (Fprofiler_cpu_start): Use it.
5983 (Fprofiler_cpu_stop): Prefer timer_settime if available.
5984 Don't assume that passing NULL as the 2nd argument of setitimer
5985 is the same as passing a pointer to all-zero storage.
5986 Ignore SIGPROF afterwards.
5987 (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
5988 * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
5989 non-fatal signal handlers. Ignore SIGPROF on startup.
5990 * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
5991 in profiler.c, since sysdep.c now uses it.
5992
5993 * sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
5994 Suggested by Eli Zaretskii in
5995 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
5996
59972012-09-29 Juanma Barranquero <lekktu@gmail.com>
5998
5999 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
6000
60012012-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
6002
6003 * lisp.h (struct backtrace): Remove indirection for `function' field.
6004 * xdisp.c (redisplay_internal):
6005 * profiler.c (record_backtrace, sigprof_handler_1):
6006 * alloc.c (Fgarbage_collect):
6007 * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
6008 (Fbacktrace_frame): Adjust accordingly.
6009
60102012-09-28 Glenn Morris <rgm@gnu.org>
6011
6012 * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
6013 (Frun_hook_with_args_until_failure): Doc fixes.
6014
60152012-09-28 Eli Zaretskii <eliz@gnu.org>
6016
6017 * xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
6018 Qautomatic_redisplay and change the symbol name. All users changed.
6019
60202012-09-28 Tomohiro Matsuyama <tomo@cx4a.org>
6021
6022 * profiler.c (sigprof_handler): Fix race condition.
6023
60242012-09-28 Glenn Morris <rgm@gnu.org>
6025
6026 * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528)
6027
60282012-09-27 Paul Eggert <eggert@cs.ucla.edu>
6029
6030 Check more robustly for timer_settime.
6031 * Makefile.in (LIB_TIMER_TIME): New macro.
6032 (LIBES): Add it.
6033 * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
6034 Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
6035 call timer_settime.
6036
60372012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
6038
6039 * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
6040
60412012-09-26 Juanma Barranquero <lekktu@gmail.com>
6042
6043 * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
6044
60452012-09-26 Paul Eggert <eggert@cs.ucla.edu>
6046
6047 * character.h (MAYBE_UNIFY_CHAR): Remove.
6048 * charset.c, charset.h (maybe_unify_char): Now static.
6049 * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
6050 Since this stuff is now private to charset.c, there's no need for
6051 a public macro and no need to inline by hand.
6052
60532012-09-26 Tomohiro Matsuyama <tomo@cx4a.org>
6054 Stefan Monnier <monnier@iro.umontreal.ca>
6055 Juanma Barranquero <lekktu@gmail.com>
6056
6057 * profiler.c: New file.
6058 * Makefile.in (base_obj): Add profiler.o.
6059 * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
6060 ($(BLD)/profiler.$(O)): New target.
6061 * emacs.c (main): Call syms_of_profiler.
6062 * alloc.c (Qautomatic_gc): New constant.
6063 (MALLOC_PROBE): New macro.
6064 (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
6065 (total_bytes_of_live_objects): New function.
6066 (Fgarbage_collect): Use it. Record itself in backtrace_list.
6067 Call malloc_probe for the memory profiler.
6068 (syms_of_alloc): Define Qautomatic_gc.
6069 * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
6070 race condition.
6071 (struct backtrace): Move definition...
6072 * lisp.h (struct backtrace): ..here.
6073 (Qautomatic_gc, profiler_memory_running): Declare vars.
6074 (malloc_probe, syms_of_profiler): Declare functions.
6075 * xdisp.c (Qautomatic_redisplay): New constant.
6076 (redisplay_internal): Record itself in backtrace_list.
6077 (syms_of_xdisp): Define Qautomatic_redisplay.
6078
60792012-09-25 Eli Zaretskii <eliz@gnu.org>
60802012-09-25 Juanma Barranquero <lekktu@gmail.com>
6081
6082 * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
6083
60842012-09-25 Paul Eggert <eggert@cs.ucla.edu>
6085
6086 Prefer POSIX timers if available.
6087 They avoid a race if the timer is too close to the current time.
6088 * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
6089 (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
6090 (init_atimer) [SIGEV_SIGNAL]: Initialize them.
6091
60922012-09-25 Eli Zaretskii <eliz@gnu.org>
6093
6094 * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
6095 CHAR_STRING_ADVANCE.
6096 (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
6097 STRING_CHAR_ADVANCE.
6098
60992012-09-25 Juanma Barranquero <lekktu@gmail.com>
6100
6101 Move Vlibrary_cache to emacs.c and reset before dumping.
6102
6103 * lisp.h (reset_image_types): Declare.
6104 [WINDOWSNT] (Vlibrary_cache): Declare.
6105
6106 * image.c (reset_image_types): New function.
6107
6108 * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
6109 (syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
6110 (Fdump_emacs): Reset Vlibrary_cache and image_types.
6111
6112 * w32.c (Vlibrary_cache): Do not define; moved to emacs.c
6113 (globals_of_w32) <Vlibrary_cache>: Do not initialize.
6114
6115 * w32.h (Vlibrary_cache): Do not declare.
6116
61172012-09-25 Eli Zaretskii <eliz@gnu.org>
6118
6119 * w32proc.c (sys_signal): Handle all signals defined by the
6120 MS-Windows runtime, not just SIGCHLD. Actually install the signal
6121 handlers for signals supported by Windows. Don't override
6122 term_ntproc as the handler for SIGABRT.
6123 (sigaction): Rewrite to call sys_signal instead of duplicating its
6124 code.
6125 (sys_kill): Improve commentary.
6126
6127 * w32.c (term_ntproc): Accept (and ignore) one argument, for
6128 consistency with a signature of a signal handler. All callers
6129 changed.
6130 (init_ntproc): Accept an argument DUMPING. If dumping, don't
6131 install term_ntproc as a signal handler for SIGABRT, as that
6132 should be done by the dumped Emacs.
6133
6134 * w32.h (init_ntproc, term_ntproc): Adjust prototypes.
6135
6136 * w32select.c (term_w32select): Protect against repeated
6137 invocation by setting clipboard_owner to NULL after calling
6138 DestroyWindow.
6139
6140 * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
6141 and term_ntproc to their modified signatures.
6142
6143 * character.c (char_string, string_char): Remove calls to
6144 MAYBE_UNIFY_CHAR. See the discussion starting at
6145 http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html
6146 for the details.
6147
61482012-09-25 Chong Yidong <cyd@gnu.org>
6149
6150 * xdisp.c (mode_line_inverse_video): Delete obsolete variable.
6151
61522012-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
6153
6154 * bytecode.c (exec_byte_code): Signal an error instead of aborting,
6155 when encountering an unknown bytecode.
6156
61572012-09-24 Paul Eggert <eggert@cs.ucla.edu>
6158
6159 image.c, indent.c: Use bool for booleans.
6160 * dispextern.h (struct image_type): Members valid_p, load, init
6161 now return bool, not int. All uses changed.
6162 * image.c: Omit unnecessary static decls.
6163 (x_create_bitmap_mask, x_build_heuristic_mask):
6164 Return void, not int, since callers don't care about the return value.
6165 (x_create_bitmap_mask, define_image_type, valid_image_p)
6166 (struct image_keyword, parse_image_spec, image_spec_value)
6167 (check_image_size, image_background)
6168 (image_background_transparent, x_clear_image_1)
6169 (postprocess_image, lookup_image, x_check_image_size)
6170 (x_create_x_image_and_pixmap, xbm_image_p)
6171 (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
6172 (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
6173 (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
6174 (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
6175 (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
6176 (png_image_p, init_png_functions, png_load_body, png_load)
6177 (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
6178 (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
6179 (init_gif_functions, gif_load, imagemagick_image_p)
6180 (imagemagick_load_image, imagemagick_load, svg_image_p)
6181 (init_svg_functions, svg_load, svg_load_image, gs_image_p)
6182 (gs_load):
6183 * nsimage.m (ns_load_image):
6184 * nsterm.m (ns_defined_color):
6185 * xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
6186 * xfns.c (x_defined_color):
6187 * xterm.c (x_alloc_lighter_color_for_widget)
6188 (x_alloc_nearest_color_1, x_alloc_nearest_color)
6189 (x_alloc_lighter_color):
6190 * indent.c (disptab_matches_widthtab, current_column)
6191 (scan_for_column, string_display_width, indented_beyond_p)
6192 (compute_motion, vmotion, Fvertical_motion):
6193 Use bool for booleans.
6194
61952012-09-24 Chong Yidong <cyd@gnu.org>
6196
6197 * chartab.c (Fset_char_table_default): Obsolete function removed.
6198
61992012-09-23 Paul Eggert <eggert@cs.ucla.edu>
6200
6201 Move pid_t related decls out of lisp.h.
6202 * lisp.h, syswait.h (record_child_status_change, wait_for_termination)
6203 (interruptible_wait_for_termination):
6204 Move these decls from lisp.h to syswait.h, since they use pid_t.
6205 Needed on FreeBSD; see Herbert J. Skuhra in
6206 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00571.html>.
6207 * callproc.c: Include syswait.h.
6208
6209 gnutls.c, gtkutil.c: Use bool for boolean.
6210 * gnutls.c (gnutls_global_initialized, init_gnutls_functions)
6211 (emacs_gnutls_handle_error):
6212 * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
6213 (xg_hide_tooltip, xg_create_frame_widgets)
6214 (create_dialog, xg_uses_old_file_dialog)
6215 (xg_get_file_with_chooser, xg_get_file_with_selection)
6216 (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
6217 (xg_item_label_same_p, xg_update_menubar)
6218 (xg_modify_menubar_widgets, xg_event_is_for_menubar)
6219 (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
6220 (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
6221 (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
6222 (update_frame_tool_bar, free_frame_tool_bar):
6223 * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
6224 * nsmenu.m (ns_update_menubar):
6225 * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
6226 * xfns.c (Fx_show_tip) [USE_GTK]:
6227 Use bool for boolean.
6228 * gtkutil.c (xg_update_frame_menubar):
6229 * xmenu.c (update_frame_menubar):
6230 Return void, not int, since caller ignores return value.
6231 * gtkutil.c (xg_change_toolbar_position):
6232 Return void, not 1.
6233
62342012-09-23 Juanma Barranquero <lekktu@gmail.com>
6235
6236 * makefile.w32-in (BLOCKINPUT_H): Remove.
6237 (SYSSIGNAL_H): New macro.
6238 ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
6239 ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
6240 ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
6241 ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
6242 ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
6243 ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
6244 ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
6245 ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
6246 ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
6247 ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
6248 ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
6249 ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
6250 ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
6251 ($(BLD)/w32xfns.$(O)): Update dependencies.
6252
62532012-09-23 Eli Zaretskii <eliz@gnu.org>
6254
6255 * .gdbinit: Set breakpoint on terminate_due_to_signal, not on
6256 fatal_error_backtrace.
6257
6258 * w32proc.c (sys_kill): Undo last change: don't do anything when
6259 invoked to deliver SIGABRT to our own process. This is now
6260 handled by emacs_raise.
6261
62622012-09-23 Juanma Barranquero <lekktu@gmail.com>
6263
6264 * w32term.c (w32_read_socket): Remove leftover reference to
6265 interrupt_input_pending.
6266
62672012-09-23 Paul Eggert <eggert@cs.ucla.edu>
6268
6269 Do not use SA_NODEFER.
6270 Problem reported by Dani Moncayo in
6271 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00557.html>.
6272 * alloc.c (die):
6273 * sysdep.c (emacs_abort): Do not reset signal handler.
6274 * emacs.c (terminate_due_to_signal): Reset signal handler here.
6275 * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't
6276 wanted even on POSIXish hosts, and it doesn't work on Windows.
6277
62782012-09-23 Jan Djärv <jan.h.d@swipnet.se>
6279
6280 * xterm.c (x_term_init): Call fixup_locale before and after calling
6281 gtk_init (Bug#12392).
6282
62832012-09-23 Chong Yidong <cyd@gnu.org>
6284
6285 * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
6286 Vdynamic_library_alist.
6287
6288 * gnutls.c (init_gnutls_functions): Caller changed; remove arg.
6289 (Fgnutls_available_p): Caller changed.
6290
6291 * xml.c (init_libxml2_functions, Flibxml_parse_html_region)
6292 (Flibxml_parse_xml_region): Likewise.
6293
6294 * dispextern.h (struct image_type): Remove arg from init function.
6295
6296 * image.c (Finit_image_library, lookup_image_type)
6297 (define_image_type): Remove now-unneeded second arg.
6298 (init_xpm_functions, init_png_functions, init_jpeg_functions)
6299 (init_tiff_functions, init_gif_functions, init_svg_functions):
6300 Arglist and w32_delayed_load calling convention changed.
6301 (gs_type): Remove init_gs_functions; there is no such function.
6302 (valid_image_p, make_image): Fix caller to lookup_image_type.
6303
63042012-09-23 Paul Eggert <eggert@cs.ucla.edu>
6305
6306 Simplify and avoid signal-handling races (Bug#12471).
6307 * alloc.c (die):
6308 * sysdep.c (emacs_abort) [HAVE_NTGUI]:
6309 Avoid recursive loop if there's a fatal error in the function itself.
6310 * atimer.c (pending_atimers):
6311 * blockinput.h: Don't include "atimer.h"; no longer needed.
6312 (interrupt_input_pending): Remove. All uses removed.
6313 pending_signals now counts both atimers and ordinary interrupts.
6314 This is less racy than having three separate pending-signal flags.
6315 (block_input, unblock_input, totally_unblock_input, unblock_input_to)
6316 (input_blocked_p):
6317 Rename from their upper-case counterparts BLOCK_INPUT,
6318 UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
6319 INPUT_BLOCKED_P, and turn into functions. All uses changed.
6320 This makes it easier to access volatile variables more accurately.
6321 (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input ().
6322 (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
6323 that's more reliable if the code is buggy and sets
6324 interrupt_input_blocked to a negative value. All uses changed.
6325 * atimer.c (deliver_alarm_signal):
6326 Remove. No need to deliver this to the parent; any thread can
6327 handle this signal now. All uses replaced by underlying handler.
6328 * atimer.c (turn_on_atimers):
6329 * dispnew.c (handle_window_change_signal):
6330 * emacs.c (handle_danger_signal):
6331 * keyboard.c (kbd_buffer_get_event):
6332 Don't reestablish signal handler; not needed with sigaction.
6333 * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
6334 (UNBLOCK_INPUT_TO):
6335 Rework to avoid unnecessary accesses to volatile variables.
6336 (UNBLOCK_INPUT_TO): Now a function.
6337 (totally_unblock_input, unblock_input): New decls.
6338 * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
6339 (init_data): Remove. Necessary stuff now done in init_signal.
6340 * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
6341 * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
6342 (fatal_error_code): Remove; no longer needed.
6343 (terminate_due_to_signal): Rename from fatal_error_backtrace, since
6344 it doesn't always backtrace. All uses changed. No need to reset
6345 signal to default, since sigaction and/or die does that for us now.
6346 Use emacs_raise (FOO), not kill (getpid (), FOO).
6347 (main): Check more-accurately whether we're dumping.
6348 Move fatal-error setup to sysdep.c
6349 * floatfns.c: Do not include "syssignal.h"; no longer needed.
6350 * gtkutil.c (xg_get_file_name, xg_get_font):
6351 Remove no-longer-needed signal-mask manipulation.
6352 * keyboard.c, process.c (POLL_FOR_INPUT):
6353 Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
6354 * keyboard.c (read_avail_input): Remove.
6355 All uses replaced by gobble_input.
6356 (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
6357 (kbd_buffer_store_event_hold, gobble_input):
6358 (record_asynch_buffer_change) [USABLE_SIGIO]:
6359 (store_user_signal_events):
6360 No need to mess with signal mask.
6361 (gobble_input): If blocking input and there are terminals, simply
6362 set pending_signals to 1 and return. All hooks changed to not
6363 worry about whether input is blocked.
6364 (process_pending_signals): Clear pending_signals before processing
6365 them, in case a signal comes in while we're processing.
6366 By convention callers now test pending_signals before calling us.
6367 (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
6368 New functions, to support changes to blockinput.h.
6369 (handle_input_available_signal): Now extern.
6370 (reinvoke_input_signal): Remove. All uses replaced by
6371 handle_async_input.
6372 (quit_count): Now volatile, since a signal handler uses it.
6373 (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
6374 All callers changed. Block SIGINT only if not already blocked.
6375 Clear sigmask reliably, even if Fsignal returns, which it can.
6376 Omit unnecessary accesses to volatile var.
6377 (quit_throw_to_read_char): No need to restore sigmask.
6378 * keyboard.c (gobble_input, handle_user_signal):
6379 * process.c (wait_reading_process_output):
6380 Call signal-handling code rather than killing ourselves.
6381 * lisp.h: Include <float.h>, for...
6382 (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
6383 (pending_signals): Now volatile.
6384 (syms_of_data): Now const if IEEE floating point.
6385 (handle_input_available_signal) [USABLE_SIGIO]:
6386 (terminate_due_to_signal, record_child_status_change): New decls.
6387 * process.c (create_process): Avoid disaster if memory is exhausted
6388 while we're processing a vfork, by tightening the critical section
6389 around the vfork.
6390 (send_process_frame, process_sent_to, handle_pipe_signal)
6391 (deliver_pipe_signal): Remove. No longer needed, as Emacs now
6392 ignores SIGPIPE.
6393 (send_process): No need for setjmp/longjmp any more, since the
6394 SIGPIPE stuff is now gone. Instead, report an error if errno
6395 is EPIPE.
6396 (record_child_status_change): Now extern. PID and W are now args.
6397 Return void, not bool. All callers changed.
6398 * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
6399 Remove. All uses removed. This bug should be fixed now in a
6400 different way.
6401 (wait_for_termination_1): Use waitpid rather than sigsuspend,
6402 and record the child status change directly. This avoids the
6403 need to futz with the signal mask.
6404 (process_fatal_action): Move here from emacs.c.
6405 (emacs_sigaction_flags): New function, containing
6406 much of what used to be in emacs_sigaction_init.
6407 (emacs_sigaction_init): Use it. Block nonfatal system signals that are
6408 caught by emacs, to make races less likely.
6409 (deliver_process_signal): Rename from handle_on_main_thread.
6410 All uses changed.
6411 (BACKTRACE_LIMIT_MAX): Now at top level.
6412 (thread_backtrace_buffer, threadback_backtrace_pointers):
6413 New static vars.
6414 (deliver_thread_signal, deliver_fatal_thread_signal):
6415 New functions, for more-accurate delivery of thread-specific signals.
6416 (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
6417 (deliver_arith_signal): Handle in this thread, not
6418 in the main thread, since it's triggered by this thread.
6419 (maybe_fatal_sig): New function.
6420 (init_signals): New arg DUMPING so that we can be more accurate
6421 about whether we're dumping. Caller changed.
6422 Treat thread-specific signals differently from process-general signals.
6423 Block all signals while handling fatal error; that's safer.
6424 xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
6425 on IEEE hosts.
6426 When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
6427 Ignore SIGPIPE unless batch.
6428 (emacs_backtrace): Output backtrace for the appropriate thread,
6429 which is not necessarily the main thread.
6430 * syssignal.h: Include <stdbool.h>.
6431 (emacs_raise): New macro.
6432 * xterm.c (x_connection_signal): Remove; no longer needed
6433 now that we use sigaction.
6434 (x_connection_closed): No need to mess with sigmask now.
6435 (x_initialize): No need to reset SIGPIPE handler here, since
6436 init_signals does this for us now.
6437
64382012-09-23 Jan Djärv <jan.h.d@swipnet.se>
6439
6440 * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
6441 background rect may be larger (Bug#12245).
6442
64432012-09-23 Chong Yidong <cyd@gnu.org>
6444
6445 * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
6446
64472012-09-22 Paul Eggert <eggert@cs.ucla.edu>
6448
6449 * .gdbinit: Just stop at fatal_error_backtrace.
6450 See Stefan Monnier's request in
6451 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00549.html>.
6452 Remove no-longer-used query of system type.
6453
64542012-09-22 Chong Yidong <cyd@gnu.org>
6455
6456 * search.c (Freplace_match): Doc fix (Bug#12325).
6457
6458 * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
6459
6460 * editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
6461 (Fline_end_position): Doc fix.
6462
6463 * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
6464
64652012-09-22 Chong Yidong <cyd@gnu.org>
6466
6467 * dispextern.h (struct image_type): Add new slot, storing a type
6468 initialization function.
6469
6470 * image.c (define_image_type): Call the image initializer function
6471 if it is defined. Arguments and return value changed.
6472 (valid_image_p, make_image): Callers changed.
6473 (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
6474 (gif_type, imagemagick_type, svg_type, gs_type):
6475 Add initialization functions.
6476 (Finit_image_library): Call lookup_image_type.
6477 (CHECK_LIB_AVAILABLE): Macro deleted.
6478 (lookup_image_type): Call define_image_type here, rather than via
6479 Finit_image_library, and without using CHECK_LIB_AVAILABLE.
6480 (syms_of_image): Move define_image_type calls for xbm_type and
6481 pbm_type to lookup_image_type.
6482
64832012-09-22 Eli Zaretskii <eliz@gnu.org>
6484
6485 * keyboard.c (timer_check_2): Move calculation of 'timers' and
6486 'idle_timers' from here ...
6487 (timer_check): ... to here. Use Fcopy_sequence to copy the timer
6488 lists, to avoid infloops when the timer does something stupid,
6489 like reinvoke itself with the same or smaller time-out.
6490 (Bug#12447)
6491
64922012-09-22 Martin Rudalics <rudalics@gmx.at>
6493
6494 * window.c (Fsplit_window_internal): Handle only Qt value of
6495 Vwindow_combination_limit separately.
6496 (Qtemp_buffer_resize): New symbol.
6497 (Vwindow_combination_limit): New default value.
6498 Rewrite doc-string.
6499
65002012-09-22 Eli Zaretskii <eliz@gnu.org>
6501
6502 * xdisp.c (next_overlay_string): Initialize it->end_charpos for
6503 the new overlay string. (Bug#10159)
6504
65052012-09-22 Paul Eggert <eggert@cs.ucla.edu>
6506
6507 * emacs.c (shut_down_emacs): Don't assume stderr is buffered,
6508 or that fprintf is async-signal-safe. POSIX doesn't require
6509 either assumption.
6510
65112012-09-22 Chong Yidong <cyd@gnu.org>
6512
6513 * buffer.c (Fset_buffer_modified_p): Handle indirect buffers
6514 (Bug#8207).
6515
65162012-09-22 Kenichi Handa <handa@gnu.org>
6517
6518 * composite.c (composition_reseat_it): Handle the case that a
6519 grapheme cluster is not covered by a single font (Bug#12352).
6520
65212012-09-21 Chong Yidong <cyd@gnu.org>
6522
6523 * image.c (define_image_type): Avoid adding duplicate types to
6524 image_types (Bug#12463). Suggested by Jörg Walter.
6525
65262012-09-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6527
6528 * unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
6529 (print_load_command_name): Add case LC_DATA_IN_CODE.
6530 (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
6531
65322012-09-21 Glenn Morris <rgm@gnu.org>
6533
6534 * eval.c (Frun_hook_with_args_until_success)
6535 (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393)
6536
65372012-09-21 Andreas Schwab <schwab@linux-m68k.org>
6538
6539 * fileio.c (Ffile_selinux_context): Only call freecon when
6540 lgetfilecon succeeded.
6541 (Fset_file_selinux_context): Likewise. (Bug#12444)
6542
65432012-09-21 Eli Zaretskii <eliz@gnu.org>
6544
6545 * xdisp.c (try_window_reusing_current_matrix): Under bidi
6546 reordering, locate the cursor by calling set_cursor_from_row; if
6547 that fails, clear the desired glyph matrix before returning a
6548 failure indication to the caller. Fixes leaving garbled display
6549 when fast scrolling with a down-key. (Bug#12403)
6550 (compute_stop_pos_backwards): Fix a typo that caused crashes while
6551 scrolling through multibyte text.
6552
65532012-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
6554
6555 * alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
6556 calling mark_vectorlike since that's the one that marks the window.
6557 (mark_discard_killed_buffers): Mark the final cdr.
6558 * window.h (struct window): Move prev/next_buffers to the
6559 non-standard fields.
6560 * window.c (make_window): Initialize prev/next_buffers manually.
6561
65622012-09-20 Paul Eggert <eggert@cs.ucla.edu>
6563
6564 Omit unused arg EXPECTED from socket hooks.
6565 * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
6566 * nsterm.m (ns_term_init):
6567 * termhooks.h (struct terminal.read_socket_hook):
6568 * w32inevt.c (w32_console_read_socket):
6569 * w32term.c (w32_read_socket):
6570 * xterm.c (XTread_socket):
6571 Omit unused arg EXPECTED. All callers changed.
6572 (store_user_signal_events): Return void, not int, since callers no
6573 longer care about the return value. All uses changed.
6574
65752012-09-20 Juanma Barranquero <lekktu@gmail.com>
6576
6577 * w32gui.h (XParseGeometry): Do not declare.
6578
65792012-09-19 Paul Eggert <eggert@cs.ucla.edu>
6580
6581 * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
6582 Ignore 'expected'. See Eli Zaretskii in
6583 <http://bugs.gnu.org/12471#8> (last line).
6584
6585 * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul.
6586 (XParseGeometry): Now static. Substitute extremal values for
6587 values that are out of range.
6588
65892012-09-19 Jan Djärv <jan.h.d@swipnet.se>
6590
6591 * w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
6592
6593 * nsfns.m (XParseGeometry): Remove.
6594 (Fx_create_frame): Call x_set_offset to correctly interpret
6595 top_pos in geometry.
6596
6597 * frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
6598 (Fx_parse_geometry): If there is a space in string, call
6599 Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
6600
66012012-09-17 Eli Zaretskii <eliz@gnu.org>
6602
6603 * search.c (scan_buffer): Use character positions in calls to
6604 region_cache_forward and region_cache_backward, not byte
6605 positions. (Bug#12196)
6606
6607 * w32term.c (w32_read_socket): Set pending_signals to 1, like
6608 xterm.c does. Reported by Daniel Colascione <dancol@dancol.org>.
6609
6610 * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
6611 __malloc_extra_blocks to 32 instead of 64, like alloc.c did in
6612 emacs_blocked_malloc, now deleted.
6613
66142012-09-17 Paul Eggert <eggert@cs.ucla.edu>
6615
6616 Remove no-longer-needed Solaris 2.4 vfork bug workaround.
6617 The workaround was for improving performance on Solaris 2.4, but
6618 is getting in the way now. Emacs will still work if someone is
6619 still running Solaris 2.4 in a museum somewhere; Sun dropped
6620 support for Solaris 2.4 in 2003.
6621 * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
6622 * process.c (create_process) [HAVE_WORKING_VFORK]:
6623 Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
6624 since Emacs no longer uses vfork on that platform.
6625
66262012-09-17 Glenn Morris <rgm@gnu.org>
6627
6628 * emacs.c: Use COPYRIGHT.
6629
66302012-09-16 Paul Eggert <eggert@cs.ucla.edu>
6631
6632 Remove configure's --without-sync-input option (Bug#12450).
6633 When auditing signal-handling in preparation for cleaning it up,
6634 I found that SYNC_INPUT has race conditions and would be a real
6635 pain to fix. Since it's an undocumented and deprecated
6636 configure-time option, now seems like a good time to remove it.
6637 Also see <http://bugs.gnu.org/11080#16>.
6638 * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
6639 (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
6640 (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
6641 (malloc_hysteresis):
6642 (check_depth) [XMALLOC_OVERRUN_CHECK]:
6643 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
6644 (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
6645 (dont_register_blocks, bytes_used_when_reconsidered)
6646 (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
6647 (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
6648 [!SYSTEM_MALLOC && !SYNC_INPUT]:
6649 Remove. All uses removed.
6650 (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
6651 implementation, one that depends on whether the new macro
6652 XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
6653 is defined.
6654 * atimer.c (run_timers, handle_alarm_signal):
6655 * keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
6656 (handle_async_input, process_pending_signals)
6657 (handle_input_available_signal, init_keyboard):
6658 * nsterm.m (ns_read_socket):
6659 * process.c (wait_reading_process_output):
6660 * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
6661 * sysdep.c (emacs_sigaction_init) [SA_RESTART]:
6662 (emacs_write):
6663 * xterm.c (XTread_socket):
6664 Assume SYNC_INPUT.
6665 * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
6666 * eval.c (handling_signal): Remove. All uses removed.
6667 * lisp.h (ELSE_PENDING_SIGNALS): Remove.
6668 All uses replaced with the SYNC_INPUT version.
6669 (reset_malloc_hooks, uninterrupt_malloc, handling_signal):
6670 Remove decls.
6671 * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
6672 Now static.
6673
6674 * font.c (Ffont_shape_gstring): Remove unused local.
6675
66762012-09-16 Glenn Morris <rgm@gnu.org>
6677
6678 * Makefile.in (clean): No longer run nextstep's clean.
6679
6680 * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
6681 (ns_frag): Remove.
6682 (ns-app): Move here from ns.mk, and simplify.
6683 (clean): Simplify nextstep entry.
6684 * ns.mk: Remove file.
6685
66862012-09-17 Kenichi Handa <handa@gnu.org>
6687
6688 * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
6689 not covert the last few charactes.
6690
66912012-09-16 Kenichi Handa <handa@gnu.org>
6692
6693 * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
6694 here, but just check the validity of glyphs in the glyph-string.
6695
66962012-09-16 Martin Rudalics <rudalics@gmx.at>
6697
6698 * window.c (Fwindow_parameter, Fset_window_parameter):
6699 Accept any window as argument (Bug#12452).
6700
67012012-09-16 Jan Djärv <jan.h.d@swipnet.se>
6702
6703 * nsfns.m (Fx_open_connection): Move initialization of ns_*_types
6704 to ns_term_init to avoid memory leak.
6705
6706 * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
6707 explicit retain/release.
6708 (ns_term_init): Only allow one display. Initialize outerpool and
6709 ns_*_types.
6710
67112012-09-15 Paul Eggert <eggert@cs.ucla.edu>
6712
6713 Port _setjmp fix to POSIXish hosts as well as Microsoft.
6714 * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
6715 it's needed on POSIXish hosts that lack _setjmp. Attempt to solve
6716 the Microsoft problem in a different way, by altering ../nt/config.nt.
6717
67182012-09-15 Eli Zaretskii <eliz@gnu.org>
6719
6720 * w32xfns.c:
6721 * w32uniscribe.c:
6722 * w32term.c:
6723 * w32select.c:
6724 * w32reg.c:
6725 * w32proc.c:
6726 * w32menu.c:
6727 * w32inevt.c:
6728 * w32heap.c:
6729 * w32font.c:
6730 * w32fns.c:
6731 * w32console.c:
6732 * w32.c:
6733 * w16select.c: Remove inclusion of setjmp.h, as it is now included
6734 by lisp.h. This completes removal of setjmp.h inclusion
6735 erroneously announced in the previous commit. (Bug#12446)
6736
6737 * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
6738 more accurate.
6739
6740 * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
6741 not defined as a macro. The latter happens on MS-Windows.
6742 (Bug#12446)
6743
67442012-09-15 Paul Eggert <eggert@cs.ucla.edu>
6745
6746 Port better to POSIX hosts lacking _setjmp (Bug#12446).
6747 * lisp.h: Include <setjmp.h> here, since we use its symbols here.
6748 Some instances of '#include <setjmp.h>' removed, if the
6749 only reason for the instance was because "lisp.h" was included.
6750 (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
6751 Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
6752 and _longjmp with the new symbols. Emacs already uses _setjmp if
6753 available, so this change affects only POSIXish hosts that have
6754 sigsetjmp but not _setjmp, such as some versions of Solaris and
6755 Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.)
6756 * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
6757 (png_load_body) [HAVE_PNG]:
6758 (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
6759 (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
6760 Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
6761 since PNG requires jmp_buf. This is the only exception to the
6762 general rule that we now use sys_setjmp and sys_longjmp.
6763 This exception is OK since this code does not change the signal
6764 mask or longjmp out of a signal handler.
6765
67662012-09-14 Paul Eggert <eggert@cs.ucla.edu>
6767
6768 * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
6769 Include "syssignal.h", for 'main_thread'.
6770
67712012-09-14 Dmitry Antipov <dmantipov@yandex.ru>
6772
6773 Avoid out-of-range marker position (Bug#12426).
6774 * insdel.c (replace_range, replace_range_2):
6775 Adjust markers before overlays, as suggested by comments.
6776 (insert_1_both, insert_from_buffer_1, adjust_after_replace):
6777 Remove redundant check before calling offset_intervals.
6778
67792012-09-14 Martin Rudalics <rudalics@gmx.at>
6780
6781 * xdisp.c (Fformat_mode_line): Unconditionally save/restore
6782 current buffer (Bug#12387).
6783
67842012-09-14 Juanma Barranquero <lekktu@gmail.com>
6785
6786 * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
6787
67882012-09-13 Paul Eggert <eggert@cs.ucla.edu>
6789
6790 Use a more backwards-compatible timer format (Bug#12430).
6791 * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
6792 vector element, not from the 4th, since PSECS is now at the end.
6793 (Fcurrent_idle_time): Doc fix.
6794
67952012-09-13 Dmitry Antipov <dmantipov@yandex.ru>
6796
6797 Function to mark objects and remove killed buffers at once.
6798 * alloc.c (discard_killed_buffers): Rename to ...
6799 (mark_discard_killed buffers) ... new name. Add marking
6800 of remaining objects. Fix comment. Adjust users.
6801 (mark_object): Do not touch frame buffer lists here.
6802 * frame.c (delete_frame): Reset frame buffer lists here.
6803
68042012-09-13 Paul Eggert <eggert@cs.ucla.edu>
6805
6806 Better workaround for GNOME bug when --enable-gcc-warnings.
6807 * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
6808 Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in
6809 <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00335.html>.
6810
6811 Simplify SIGIO usage (Bug#12408).
6812 The code that dealt with SIGIO was crufty and confusing, e.g., it
6813 played tricks like "#undef SIGIO" but these tricks were not used
6814 consistently. Simplify mostly by not #undeffing standard symbols,
6815 e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
6816 or not as we please) rather than "defined SIGIO" (standard symbol
6817 that we probably shouldn't #undef).
6818 * conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
6819 Modules that need it can include it.
6820 [USG5_4 && emacs]: Likewise, do not include the streams stuff here.
6821 * dispextern.h (ignore_sigio): New decl.
6822 * emacs.c (shut_down_emacs): Invoke unrequest_sigio
6823 unconditionally, since it's now a no-op if !USABLE_SIGIO.
6824 * emacs.c (shut_down_emacs):
6825 * keyboard.c (kbd_buffer_store_event_hold):
6826 Use ignore_sigio rather than invoking 'signal' directly.
6827 * keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
6828 for FIONREAD.
6829 (FIONREAD, SIGIO): Do not #undef.
6830 (tty_read_avail_input): Use #error rather than a syntax error.
6831 * process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
6832 for I_PIPE, used by SETUP_SLAVE_PTY.
6833 (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
6834 * sysdep.c (croak): Remove; no longer needed. This bit of
6835 temporary code, with Fred N. Fish's comment that it's temporary,
6836 has been in Emacs since at least 1992!
6837 (init_sigio, reset_sigio, request_sigio, unrequest_sigio):
6838 Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
6839 * syssignal.h (croak): Remove decl.
6840 (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
6841 * systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
6842 now that we're termios-only.
6843 (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
6844 * term.c (dissociate_if_controlling_tty): Use #error rather than
6845 a run-time error.
6846
6847 Work around GCC and GNOME bugs when --enable-gcc-warnings.
6848 * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
6849 to work around GNOME bug 683906.
6850 * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
6851 (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
6852 This works around GCC bug 54561.
6853
68542012-09-12 Paul Eggert <eggert@cs.ucla.edu>
6855
6856 More fixes for 'volatile' and setjmp/longjmp.
6857 * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
6858 * image.c (struct png_load_context) [HAVE_PNG]: New type.
6859 (png_load_body) [HAVE_PNG]:
6860 (jpeg_load_body) [HAVE_JPEG]:
6861 New function, with most of the old parent function's body.
6862 (png_load) [HAVE_PNG]:
6863 (jpeg_load) [HAVE_JPEG]:
6864 Invoke the new function, to avoid longjmp munging our locals.
6865 (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
6866 (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
6867 longjmp is passed 2, as the C standard doesn't guarantee this.
6868 Instead, store the failure code into mgr->failure_code.
6869
68702012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
6871
6872 * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
6873 (Fdiscard_input, quit_throw_to_read_char, init_keyboard)
6874 (syms_of_keyboard): Remove support for unread-command-char.
6875
68762012-09-12 Eli Zaretskii <eliz@gnu.org>
6877
6878 * w32proc.c (sys_kill): If PID is our process ID and the signal is
6879 SIGABRT, call emacs_abort. Avoids silently exiting upon assertion
6880 violation. (Bug#12426)
6881
68822012-09-12 Paul Eggert <eggert@cs.ucla.edu>
6883
6884 * image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
6885
68862012-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
6887
6888 * eval.c: Add `inhibit-debugger'.
6889 (Qinhibit_debugger): New symbol.
6890 (call_debugger): Bind it instead of Qdebug_on_error.
6891 (maybe_call_debugger): Test Vinhibit_debugger.
6892 (syms_of_eval): Define inhibit-debugger.
6893 * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
6894 (syms_of_xdisp): Remove inhibit-debug-on-message.
6895
68962012-09-11 Paul Eggert <eggert@cs.ucla.edu>
6897
6898 Avoid _setjmp/_longjmp problems with local nonvolatile variables.
6899 If a nonvolatile local variable is written before a _longjmp to
6900 the frame containing the variable, and is read after the _longjmp,
6901 the value read is indeterminate. Some local variables of type
6902 'struct handler' and 'struct catchtag' are used in this way, so
6903 mark each of their slots as volatile if the slot can be set before
6904 _longjmp and read afterwards.
6905 * lisp.h (struct handler): var and chosen_clause are now volatile.
6906 (struct catchtag): val, next, and pdlcount are now volatile.
6907
6908 * bidi.c (bidi_push_it, bidi_pop_it):
6909 * fns.c (copy_hash_table):
6910 * image.c (define_image_type):
6911 * keyboard.c (kbd_buffer_store_event_hold):
6912 * process.c (Fprocess_send_eof):
6913 * xfaces.c (x_create_gc) [HAVE_NS]:
6914 * xgselect.c (xg_select):
6915 Prefer assignment to memcpy when either will do.
6916
6917 * alloc.c (discard_killed_buffers): Tune and simplify a bit.
6918 Use pointer-to-a-pointer to simplify and avoid a NILP check each
6919 time an item is removed. No need to mark this function 'inline';
6920 the compiler knows better than we do.
6921
69222012-09-11 Jan Djärv <jan.h.d@swipnet.se>
6923
6924 * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
6925 (updateFrameSize:): Add delay parameter to updateFrameSize, send it
6926 to change_frame_size (Bug#12388).
6927 (windowDidResize:): Pass YES to updateFrameSize.
6928
6929 * nsterm.h: Add delay parameter to updateFrameSize.
6930
69312012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6932
6933 Discard killed buffers from deleted window and frame objects.
6934 This reduces an amount of references to killed buffers and
6935 helps GC to reclaim them faster.
6936 * alloc.c (discard_killed_buffers): New function.
6937 (mark_object): Use it for deleted windows and frames.
6938 (mark_object): If symbol's value is set up for a killed buffer
6939 or deleted frame, restore its global binding.
6940 * data.c (swap_in_global_binding): Add GC notice.
6941 (swap_in_symval_forwarding): Use convenient set_blv_where.
6942 * window.c (wset_next_buffers, wset_prev_buffers): Move ...
6943 * window.h: ... to here.
6944
69452012-09-11 Dmitry Antipov <dmantipov@yandex.ru>
6946
6947 Convenient macro to check whether the buffer is live.
6948 * buffer.h (BUFFER_LIVE_P): New macro.
6949 * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
6950 * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
6951
69522012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6953
6954 * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
6955 composition cases (Bug#12364).
6956
6957 * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
6958 overhang of succeeding glyphs overlapping box cursor.
6959
6960 * w32term.c (x_draw_glyph_string): Likewise.
6961
69622012-09-11 Paul Eggert <eggert@cs.ucla.edu>
6963
6964 Simplify, document, and port floating-point (Bug#12381).
6965 The porting part of this patch fixes bugs on non-IEEE platforms
6966 with frexp, ldexp, logb.
6967 * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
6968 Now static.
6969 * floatfns.c: Simplify discussion of functions that Emacs doesn't
6970 support, by removing commented-out code and briefly listing the
6971 C89 functions excluded. The commented-out stuff was confusing
6972 maintenance, e.g., we thought we needed cbrt but it was commented out.
6973 (logb): Remove decl; no longer needed.
6974 (isfinite): New macro, if not already supplied.
6975 (isnan): Don't replace any existing macro.
6976 (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
6977 are present on all C89 platforms.
6978 (Ffrexp): Do not special-case zero, as frexp does the right thing
6979 for that case.
6980 (Flogb): Do not use logb, as it doesn't have the desired meaning
6981 on hosts that use non-base-2 floating point. Instead, stick with
6982 frexp, which is C89 anyway. Do not pass an infinity or a NaN to
6983 frexp, to avoid getting an unspecified result.
6984
6985 * xdisp.c (Qinhibit_debug_on_message): Now static.
6986
69872012-09-10 Jan Djärv <jan.h.d@swipnet.se>
6988
6989 * nsterm.m (ns_update_begin): Set clip path to whole view by using
6990 NSBezierPath (Bug#12131).
6991
69922012-09-10 Chong Yidong <cyd@gnu.org>
6993
6994 * fns.c (Fdelq, Fdelete): Doc fix.
6995
69962012-09-10 Paul Eggert <eggert@cs.ucla.edu>
6997
6998 * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
6999 (XSETFLOAT, XSETMISC): Parenthesize macro bodies.
7000
70012012-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
7002
7003 * lisp.h (make_lisp_ptr): New macro to replace XSET.
7004 (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
7005 Use it.
7006
70072012-09-09 Eli Zaretskii <eliz@gnu.org>
7008
7009 * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
7010 left fringe if the window has a left margin. This avoids leaving
7011 traces of the cursor because its leftmost pixel is not drawn over.
7012
7013 * dispnew.c (update_window_line): When the left margin area of a
7014 screen line is updated, set the redraw_fringe_bitmaps_p flag of
7015 that screen line. (Bug#12277)
7016
70172012-09-09 Paul Eggert <eggert@cs.ucla.edu>
7018
7019 Assume C89 or later for math functions (Bug#12381).
7020 This simplifies the code, and makes it a bit smaller and faster,
7021 and (most important) makes it easier to clean up signal handling
7022 since we can stop worring about floating-point exceptions in
7023 library code. That was a problem before C89, but the problem
7024 went away many years ago on all practical Emacs targets.
7025 * data.c, image.c, lread.c, print.c:
7026 Don't include <math.h>; no longer needed.
7027 * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
7028 might be autoconfigured, as that never happens.
7029 * data.c (fmod):
7030 * doprnt.c (DBL_MAX_10_EXP):
7031 * print.c (DBL_DIG):
7032 Remove. C89 or later always defines these.
7033 * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
7034 (in_float, float_error_arg, float_error_arg2, float_error_fn_name)
7035 (arith_error, domain_error, domain_error2):
7036 Remove all this pre-C89 cruft. Do not include <errno.h> as that's
7037 no longer needed -- we simply return what C returns. All uses removed.
7038 (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with
7039 the wrapped code.
7040 (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
7041 Remove. All uses expanded, as these macros are no longer used
7042 more than once and are now more trouble than they're worth.
7043 (Ftan): Use tan, not sin / cos.
7044 (Flogb): Assume C89 frexp.
7045 (fmod_float): Assume C89 fmod.
7046 (matherr) [HAVE_MATHERR]: Remove; no longer needed.
7047 (init_floatfns): Remove. All uses removed.
7048
70492012-09-08 Jan Djärv <jan.h.d@swipnet.se>
7050
7051 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
7052 compositeToPoint for OSX < 10.6 (Bug#12390).
7053
70542012-09-08 Paul Eggert <eggert@cs.ucla.edu>
7055
7056 * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
7057 This produces more-accurate results.
7058
70592012-09-08 Jan Djärv <jan.h.d@swipnet.se>
7060
7061 * nsterm.m (updateFrameSize): Call setFrame: on the view when size
7062 changes (Bug#12088).
7063
70642012-09-08 Chong Yidong <cyd@gnu.org>
7065
7066 * syntax.c (Fstring_to_syntax): Doc fix.
7067
70682012-09-08 Jan Djärv <jan.h.d@swipnet.se>
7069
7070 * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
7071 in the internal border.
7072 (x_set_window_size): Remove static variables and their usage.
7073 (ns_redraw_scroll_bars): Fix NSTRACE arg.
7074 (ns_after_update_window_line, ns_draw_fringe_bitmap):
7075 Remove fringe/internal border adjustment (Bug#11052).
7076 (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
7077 (ns_draw_window_cursor): Remove fringe/internal border adjustment.
7078 (ns_fix_rect_ibw): Remove.
7079 (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
7080 (ns_dumpglyphs_box_or_relief): Ditto.
7081 (ns_maybe_dumpglyphs_background): Remove fringe/internal border
7082 adjustment.
7083 (ns_dumpglyphs_image): Ditto.
7084 (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal
7085 border adjustment.
7086 (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
7087 their usage. Add fringe_extended_p and its use as in other terms.
7088 (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if
7089 scroll bar was removed.
7090 (updateFrameSize): New function.
7091 (windowDidResize): Move code to updateFrameSize and call it.
7092
7093 * nsterm.h (EmacsView): Add updateFrameSize.
7094
70952012-09-07 Chong Yidong <cyd@gnu.org>
7096
7097 * textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
7098
7099 * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
7100
71012012-09-07 Paul Eggert <eggert@cs.ucla.edu>
7102
7103 More signal-handler cleanup (Bug#12327).
7104 * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
7105 Problem introduced when merging patches. Noted by Eli Zaretskii in
7106 <http://bugs.gnu.org/12327#67>.
7107 * floatfns.c: Comment fix.
7108 * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
7109 SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
7110 and anyway the declaration is harmless even if SIGDANGER is not defined.
7111 * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
7112 defined BROKEN_FIONREAD). systty.h formerly did this, but other
7113 source files not surprisingly expected syssignal.h to define, or
7114 not define, SIGIO, and it's cleaner to do it that way, for consistency.
7115 Include <sys/ioctl.h>, for FIONREAD.
7116 * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
7117 This eliminates a problem whereby other files mysteriously had
7118 to include "syssignal.h" before including "systty.h" if they
7119 wanted to use "#ifdef SIGIO".
7120
71212012-09-07 Eli Zaretskii <eliz@gnu.org>
7122
7123 * w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
7124
7125 * w32.c (sigemptyset): Empty the set.
7126 (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
7127
7128 * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
7129
71302012-09-07 Dmitry Antipov <dmantipov@yandex.ru>
7131
7132 * alloc.c (mark_buffer): Revert unsafe marking optimization.
7133 (mark_object): Likewise for frame objects.
7134
71352012-09-07 Paul Eggert <eggert@cs.ucla.edu>
7136
7137 * syssignal.h (handle_on_main_thread): Always declare,
7138 even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
7139 This ports to platforms without HAVE_PTHREAD.
7140
71412012-09-06 Paul Eggert <eggert@cs.ucla.edu>
7142
7143 Signal-handler cleanup (Bug#12327).
7144 Emacs's signal handlers were written in the old 4.2BSD style with
7145 sigblock and sigmask and so forth, and this led to some
7146 inefficiencies and confusion. Rewrite these to use
7147 pthread_sigmask etc. without copying signal sets around. Also,
7148 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
7149 'signal', and instead use functions that do not attempt to take
7150 over the system name space. This patch causes Emacs's text
7151 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
7152 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
7153 Do not include <signal.h> or "syssignal.h", as these
7154 modules do not use signals.
7155 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
7156 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
7157 Do not include <signal.h>, as "syssignal.h" does that for us now.
7158 * atimer.c (sigmask_atimers): New function.
7159 (block_atimers, unblock_atimers): New functions,
7160 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
7161 All uses replaced.
7162 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
7163 no longer needed here.
7164 * emacs.c (main): Inspect existing signal handler with sigaction,
7165 so that there's no need to block and unblock SIGHUP.
7166 * sysdep.c (struct save_signal): New member 'action', replacing
7167 old member 'handler'.
7168 (save_signal_handlers, restore_signal_handlers):
7169 Use sigaction instead of 'signal' to save and restore.
7170 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
7171 New function. All users of 'signal' modified to use set_sighandler
7172 if they're writeonly, and to use sys_signal if they're read+write.
7173 (emacs_sigaction_init, forwarded_signal): New functions.
7174 (sys_signal): Remove. All uses replaced by calls to sigaction
7175 and emacs_sigaction_init, or by direct calls to 'signal'.
7176 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
7177 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
7178 all uses replaced by pthread_sigmask etc. calls.
7179 * syssignal.h: Include <signal.h>.
7180 (emacs_sigaction_init, forwarded_signal): New decls.
7181 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
7182 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
7183 (sigmask, sys_sigmask): Remove; no longer needed.
7184 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
7185 (sigblock, sigunblock, sigfree):
7186 (sigsetmask) [!defined sigsetmask]:
7187 Remove. All uses replaced by pthread_sigmask.
7188 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
7189 no longer need to be replaced, and its typical old uses
7190 are now done via emacs_sigaction_init and sigaction.
7191 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
7192 (sys_sigdel): Remove; unused.
7193 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
7194
71952012-09-06 Eli Zaretskii <eliz@gnu.org>
7196
7197 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
7198 SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327)
7199
72002012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
7201
7202 Explicitly mark buffer_defaults and buffer_local_symbols.
7203 * alloc.c (Fgarbage_collect): Mark buffer_defaults and
7204 mark_local_symbols here.
7205 (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
7206 since special buffers aren't marked here any more.
7207 (allocate_buffer): Chain new buffer with all_buffers here...
7208 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
7209 not here.
7210 (Vbuffer_defaults, Vbuffer_local_symbols): Remove.
7211 (syms_of_buffer): Remove staticpro of the above.
7212 (init_buffer_once): Set names for buffer_defaults and
7213 buffer_local_symbols.
7214
72152012-09-06 Paul Eggert <eggert@cs.ucla.edu>
7216
7217 Use bool for booleans in font-related modules.
7218 * font.c (font_intern_prop, font_style_to_value)
7219 (font_style_symbolic, font_parse_xlfd, font_parse_fcname)
7220 (generate_otf_features, font_check_otf_features, font_check_otf)
7221 (font_match_p, font_list_entities, font_at):
7222 * fontset.c (fontset_id_valid_p, reorder_font_vector
7223 (fontset_find_font, Fset_fontset_font)
7224 (face_suitable_for_char_p) [0]:
7225 * ftfont.c (fc_initialized, ftfont_get_open_type_spec)
7226 (ftfont_open, ftfont_text_extents, ftfont_check_otf):
7227 (m17n_flt_initialized, ftfont_shape_by_flt):
7228 * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
7229 * nsfont.m (nsfont_draw):
7230 * w32font.c (w32font_draw):
7231 * w32term.c (x_draw_glyphless_glyph_string_foreground):
7232 Use bool for booleans.
7233 * font.h: Adjust to above API changes.
7234 (struct font, struct font_driver, struct font_driver_list):
7235 Use bool for booleans.
7236 (struct font): Remove useless member encoding_type.
7237 All users removed.
7238 * fontset.c, xftfont.c: Omit unnecessary static decls.
7239
72402012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
7241
7242 * alloc.c (mark_object): Revert window marking code
7243 since it's unsafe for the Fset_window_configuration.
7244
72452012-09-05 Paul Eggert <eggert@cs.ucla.edu>
7246
7247 Fix race conditions with signal handlers and errno (Bug#12327).
7248 Be more systematic about preserving errno whenever a signal
7249 handler returns, even if it's not in the main thread. Do this by
7250 renaming signal handlers to distinguish between signal delivery
7251 and signal handling. All uses changed.
7252 * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
7253 * data.c (deliver_arith_signal): Rename from arith_error.
7254 * dispnew.c (deliver_window_change_signal): Rename from
7255 window_change_signal.
7256 * emacs.c (deliver_error_signal): Rename from fatal_error_signal.
7257 (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
7258 * keyboard.c (deliver_input_available_signal): Rename from
7259 input_available_signal.
7260 (deliver_user_signal): Rename from handle_user_signal.
7261 (deliver_interrupt_signal): Rename from interrupt_signal.
7262 * process.c (deliver_pipe_signal): Rename from send_process_trap.
7263 (deliver_child_signal): Rename from sigchld_handler.
7264 * atimer.c (handle_alarm_signal):
7265 * data.c (handle_arith_signal):
7266 * dispnew.c (handle_window_change_signal):
7267 * emacs.c (handle_fatal_signal, handle_danger_signal):
7268 * keyboard.c (handle_input_available_signal):
7269 * keyboard.c (handle_user_signal, handle_interrupt_signal):
7270 * process.c (handle_pipe_signal, handle_child_signal):
7271 New functions, with the actual signal-handling code taken from the
7272 original respective signal handlers, sans the sporadic attempts to
7273 preserve errno, since that's now done by handle_on_main_thread.
7274 * atimer.c (alarm_signal_handler): Remove unnecessary decl.
7275 * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
7276 * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
7277 Move to sysdep.c.
7278 (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
7279 Move initialization of main_thread to sysdep.c's init_signals.
7280 * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
7281 our usage, and simplifies the mainline code.
7282 (record_child_status_change): New static function, as a helper
7283 for handle_child_signal, and with most of the old child handler's
7284 contents.
7285 (CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
7286 (handle_child_signal): Use the above.
7287 * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
7288 Moved here from emacs.c.
7289 (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
7290 code moved here from emacs.c's main function.
7291 * sysdep.c, syssignal.h (handle_on_main_thread): New function,
7292 replacing the old SIGNAL_THREAD_CHECK. All uses changed.
7293 This lets callers save and restore errno properly.
7294
72952012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7296
7297 Remove redundant or unused things here and there.
7298 * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
7299 * conf_post.h (RE_TRANSLATE): Use char_table_translate.
7300 * editfns.c (Fcompare_buffer_substrings): Likewise.
7301 * frame.h (struct terminal, struct font_driver_list):
7302 Remove redundant declarations.
7303 * window.h (Qleft, Qright): Likewise.
7304
73052012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7306
7307 Do not mark objects from deleted buffers, windows and frames.
7308 * alloc.c (mark_buffer): Mark just the buffer if it is dead.
7309 (mark_object): Likewise for windows and frames.
7310
73112012-09-05 Dmitry Antipov <dmantipov@yandex.ru>
7312
7313 * alloc.c (valid_lisp_object_p): Treat killed buffers,
7314 buffer_defaults and buffer_local_symbols as valid objects.
7315 Return special value to denote them.
7316
73172012-09-05 Paul Eggert <eggert@cs.ucla.edu>
7318
7319 * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
7320 * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
7321 (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
7322 (file_name_absolute_p, Fsubstitute_in_file_name):
7323 (check_executable, check_writable, Ffile_accessible_directory_p)
7324 (Fset_file_selinux_context, Fdefault_file_modes)
7325 (Finsert_file_contents, choose_write_coding_system)
7326 (Fwrite_region, build_annotations, a_write, e_write)
7327 (Fdo_auto_save):
7328 * filelock.c (boot_time_initialized, get_boot_time)
7329 (get_boot_time_1, lock_file_1, within_one_second):
7330 * floatfns.c (in_float):
7331 * fns.c (concat, internal_equal, Frequire, base64_encode_1)
7332 (base64_decode_1, cmpfn_eql, cmpfn_user_defined)
7333 (sweep_weak_table, sweep_weak_hash_tables, secure_hash):
7334 * lisp.h (struct Lisp_Hash_Table.cmpfn):
7335 * window.c (compare_window_configurations):
7336 Use bool for booleans.
7337 * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
7338 (Fdefault_file_modes): Now mode_t, not int, for modes.
7339 (Fdo_auto_save): Set a boolean to 1 rather than using ++.
7340 (internal_delete_file): Now returns void, not a (boolean) int,
7341 since nobody was looking at the return value.
7342 * lisp.h, window.h: Adjust to above API changes.
7343
7344 * xdisp.c (set_message): Simplify and reindent last change.
7345
73462012-09-05 Juanma Barranquero <lekktu@gmail.com>
7347
7348 * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
7349
73502012-09-04 Lars Ingebrigtsen <larsi@gnus.org>
7351
7352 * eval.c (call_debugger): Make the function non-static so that we
7353 can call it from set_message.
7354
7355 * xdisp.c (set_message): Implement the new variable `debug-on-message'.
7356 (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
7357
73582012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7359
7360 Give more-useful info on a fatal error (Bug#12328).
7361 * alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
7362 (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
7363 of doing the work ourselves.
7364 * emacs.c (fatal_error_signal): Let fatal_error_backtrace
7365 do most of the work.
7366 (fatal_error_backtrace): New function, taken from the guts
7367 of the old fatal_error_signal, but with a new option to output
7368 a backtrace.
7369 (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
7370 info about the signal than just its number.
7371 * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
7372 * sysdep.c: Include <execinfo.h>
7373 (emacs_backtrace): New function, taken partly from the previous
7374 code of the 'die' function.
7375 (emacs_abort): Call fatal_error_backtrace rather than abort.
7376
73772012-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
7378
7379 * lread.c (readevalloop): Call internal-macroexpand-for-load to perform
7380 eager (load-time) macro-expansion.
7381 * lisp.mk (lisp): Add macroexp.
7382
73832012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7384
7385 Simplify redefinition of 'abort' (Bug#12316).
7386 Do not try to redefine the 'abort' function. Instead, redo
7387 the code so that it calls 'emacs_abort' rather than 'abort'.
7388 This removes the need for the NO_ABORT configure-time macro
7389 and makes it easier to change the abort code to do a backtrace.
7390 * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
7391 * emacs.c (abort) [!DOS_NT && !NO_ABORT]:
7392 Remove; sysdep.c's emacs_abort now takes its place.
7393 * lisp.h (emacs_abort): New decl. All calls from Emacs code to
7394 'abort' changed to use 'emacs_abort'.
7395 * msdos.c (dos_abort) [defined abort]: Remove; not used.
7396 (abort) [!defined abort]: Rename to ...
7397 (emacs_abort): ... new name.
7398 * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
7399 the place of the old 'abort' in emacs.c.
7400 * w32.c, w32fns.c (abort): Do not #undef.
7401 * w32.c (emacs_abort): Rename from w32_abort.
7402
74032012-09-04 Eli Zaretskii <eliz@gnu.org>
7404
7405 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
7406 offsets[j].dv, since the y axis of the screen coordinates points
7407 down, while the y axis of the font definition coordinates points
7408 up. This fixes display of Arabic diacritics such as KASRA and
7409 KASRATAN. (Bug#11860)
7410
74112012-09-04 Paul Eggert <eggert@cs.ucla.edu>
7412
7413 Be more systematic about _setjmp vs setjmp.
7414 * alloc.c (test_setjmp, mark_stack):
7415 * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
7416 (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
7417 (png_load, my_error_exit, jpeg_load):
7418 * process.c (send_process_trap, send_process):
7419 Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
7420 The underscored versions are up to 30x faster on some hosts.
7421 Formerly, the code used setjmp+longjmp sometimes and
7422 _setjmp+_longjmp at other times, with no particular reason to
7423 prefer setjmp+longjmp.
7424
74252012-09-03 Paul Eggert <eggert@cs.ucla.edu>
7426
7427 Fix minor problem found by static checking.
7428 * buffer.c (Fdelete_all_overlays): Return nil.
7429
74302012-09-03 Martin Rudalics <rudalics@gmx.at>
7431
7432 * buffer.c (Fdelete_all_overlays): New function.
7433
74342012-09-03 Chong Yidong <cyd@gnu.org>
7435
7436 * gtkutil.c: Add extern decl for Qxft.
7437
74382012-09-02 Paul Eggert <eggert@cs.ucla.edu>
7439
7440 * emacs.c, eval.c: Use bool for boolean.
7441 * emacs.c (initialized, inhibit_window_system, running_asynch_code):
7442 (malloc_using_checking) [DOUG_LEA_MALLOC]:
7443 (display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
7444 (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
7445 (main, decode_env_path, Fdaemon_initialized):
7446 * eval.c (call_debugger, Finteractive_p, interactive_p):
7447 (unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
7448 (maybe_call_debugger, Fbacktrace):
7449 * process.c (read_process_output, exec_sentinel):
7450 Use bool for booleans.
7451 * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
7452 All callers changed.
7453 * eval.c (interactive_p): Omit always-true boolean argument
7454 EXCLUDE_SUBRS_P. All callers changed.
7455 * dispextern.h, lisp.h: Reflect above API changes.
7456 * firstfile.c (dummy): Use the address of 'main', whose signature
7457 won't change, instead of the address of 'initialize', whose
7458 signature just changed from int to bool.
7459 * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
7460 * msdos.c (fatal_error_in_progress): ... from here.
7461 * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead
7462 of incrementing it.
7463 (redisplay_internal, unwind_redisplay): Simply clear
7464 REDISPLAYING_P when unwinding, instead of saving its previous,
7465 always-false value and then restoring it.
7466
7467 Clean up some extern decls.
7468 Mostly, this hoists extern decls out of .c files and into .h files.
7469 That way, we're more likely to catch errors if the interfaces change.
7470 * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
7471 declare xg_mark_data.
7472 * dispextern.h (x_frame_parm_handlers):
7473 * font.h (Qxft):
7474 * lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
7475 (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
7476 (Qultra_bold, Qoblique, Qitalic):
7477 Move extern decl here from .c file.
7478 * alloc.c (xg_mark_data) [USE_GTK]:
7479 * doc.c (Qclosure):
7480 * eval.c (Qlexical_binding):
7481 * fns.c (time) [!HAVE_UNISTD_H]:
7482 * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
7483 (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
7484 * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
7485 * lread.c (Qinternal_interpreter_environment):
7486 * minibuf.c (Qbuffer):
7487 * process.c (QCfamily, QCfilter):
7488 * widget.c (free_frame_faces):
7489 * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
7490 * xfont.c (x_clear_errors):
7491 * xterm.c (x_frame_parm_handlers):
7492 Remove now-redundant extern decls.
7493 * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
7494 * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
7495 Now static.
7496 * xfaces.c: Remove unnecessary static decls.
7497 * xterm.c (updating_frame): Remove decl of nonexistent object.
7498
7499 * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
7500 when building globals.h, as the objects that are not built on
7501 this host are not needed to compile C files on this host.
7502
75032012-09-02 Jan Djärv <jan.h.d@swipnet.se>
7504
7505 * gtkutil.h: Remove prototype for x_wm_set_size_hint.
7506
7507 * frame.h: Add missing prototype for x_wm_set_size_hint.
7508
75092012-09-02 Paul Eggert <eggert@cs.ucla.edu>
7510
7511 * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
7512 * doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
7513 (Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
7514 (Fsubstitute_command_keys):
7515 * editfns.c (region_limit, find_field, Fconstrain_to_field)
7516 (save_excursion_save, save_excursion_restore)
7517 (disassemble_lisp_time, decode_time_components, emacs_nmemftime)
7518 (format_time_string, general_insert_function)
7519 (make_buffer_string, make_buffer_string_both)
7520 (Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
7521 * insdel.c (check_markers, gap_left, adjust_markers_for_insert)
7522 (copy_text, insert_1, insert_1_both, insert_from_string)
7523 (insert_from_string_before_markers, insert_from_string_1)
7524 (insert_from_buffer, insert_from_buffer_1, replace_range)
7525 (replace_range_2, del_range_1, del_range_byte, del_range_both)
7526 (del_range_2, modify_region):
7527 * intervals.c (intervals_equal, balance_possible_root_interval)
7528 (adjust_intervals_for_insertion, merge_properties_sticky)
7529 (graft_intervals_into_buffer, lookup_char_property)
7530 (adjust_for_invis_intang, set_point_both)
7531 (get_property_and_range, compare_string_intervals)
7532 (set_intervals_multibyte_1, set_intervals_multibyte):
7533 * keyboard.c (decode_timer):
7534 Use bool for boolean.
7535 * intervals.h, lisp.h, systime.h: Reflect above API changes.
7536 * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
7537
75382012-09-02 Chong Yidong <cyd@gnu.org>
7539
7540 * keymap.c (push_key_description): Print M-TAB as C-M-i
7541 (Bug#11758).
7542
75432012-09-02 Juanma Barranquero <lekktu@gmail.com>
7544
7545 * makefile.w32-in (CCL_H, W32FONT_H): New macros.
7546 (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
7547 ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
7548 ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
7549 ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
7550 ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
7551 ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
7552
75532012-09-01 Eli Zaretskii <eliz@gnu.org>
7554
7555 * w32uniscribe.c (uniscribe_shape): Handle correctly the case of
7556 more than one grapheme cluster passed to the shaper: compute the
7557 offset adjustment values separately for each cluster. (Bug#11860)
7558
7559 * image.c: Restore mistakenly removed inclusion of w32.h. Without
7560 it, GCC doesn't see prototypes of w32_delayed_load, and complains
7561 about implicit conversions from integer to pointer.
7562
75632012-09-01 Daniel Colascione <dancol@dancol.org>
7564
7565 * w32fns.c (x_display_info_for_name): Prevent crash if w32 window
7566 system used too early.
7567
75682012-09-01 Paul Eggert <eggert@cs.ucla.edu>
7569
7570 Better seed support for (random).
7571 * emacs.c (main): Call init_random.
7572 * fns.c (Frandom): Set the seed from a string argument, if given.
7573 Remove long-obsolete Gentzel cruft.
7574 * lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
7575 (init_random): New function.
7576
75772012-09-01 Daniel Colascione <dancol@dancol.org>
7578
7579 * xterm.h: Add header guards. Declare x_menubar_window_to_frame.
7580 Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
7581 x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
7582 x_wm_set_size_hint, x_query_colors, x_real_positions,
7583 x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
7584 x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
7585 all of which have been moved to common code.
7586
7587 * xfaces.c: Include TERM_HEADER instead of listing all possible
7588 window-system headers.
7589
7590 * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
7591 to match header.
7592
7593 * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
7594 directly accessing frame internals.
7595
7596 * w32font.h: Include font.h. Define syms_of_w32font and
7597 globals_of_w32font.
7598
7599 * process.c: Include TERM_HEADER instead of listing all possible
7600 window-system headers.
7601
7602 * nsterm.h: Remove declarations now in frame.h.
7603 Define FRAME_X_SCREEN, FRAME_X_VISUAL.
7604
7605 * menu.c: Include TERM_HEADER instead of listing all possible
7606 window-system headers.
7607
7608 * keyboard.h: Declare ignore_mouse_drag_p whenever we have a
7609 window system.
7610
7611 * keyboard.c: Include TERM_HEADER instead of listing all possible
7612 window-system headers.
7613
7614 * image.c: Include TERM_HEADER instead of listing all possible
7615 window-system headers. Declare Vlibrary_cache when compiling for
7616 Windows.
7617
7618 * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
7619 window system declarations.
7620
7621 * frame.h: Move common functions here: set_frame_menubar,
7622 x_set_window_size, x_sync, x_get_focus_frame,
7623 x_set_mouse_position, x_set_mouse_pixel_position,
7624 x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
7625 x_char_width, x_char_height, x_pixel_width, x_pixel_height,
7626 x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
7627 x_activate_menubar, x_real_positions, x_bitmap_icon,
7628 x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
7629 and x_query_colors.
7630
7631 * frame.c: Include TERM_HEADER instead of listing all possible
7632 window-system headers.
7633
7634 * font.c: Include TERM_HEADER instead of listing all possible
7635 window-system headers.
7636
7637 * emacs.c: Include TERM_HEADER.
7638
7639 * dispnew.c: Include TERM_HEADER instead of listing all possible
7640 window-system headers.
7641
7642 * ccl.h: Include character.h.
7643
7644 * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
7645 the current window system; include in list of objects to link into
7646 Emacs.
7647
76482012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7649
7650 Remove mark_ttys function and fix tty_display_info initialization.
7651 * lisp.h (mark_ttys): Remove prototype.
7652 * alloc.c (Fgarbage_collect): Remove redundant (and the only) call
7653 to mark_ttys because all possible values of 'top_frame' slot are
7654 the frames which are reachable from Vframe_list.
7655 * term.c (mark_ttys): Remove.
7656 (init_tty): Safely initialize 'top_frame' slot with Qnil.
7657
76582012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7659
7660 Change struct frame bitfields from unsigned char to unsigned.
7661 * frame.h (struct frame): Change type of 'display_preempted',
7662 'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
7663 'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
7664 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
7665 bitfields from unsigned char to unsigned.
7666
76672012-08-31 Dmitry Antipov <dmantipov@yandex.ru>
7668
7669 Remove unused member of struct x_output and struct w32_output.
7670 * xterm.h (struct x_output): Remove unused field 'needs_exposure'.
7671 * w32term.h (struct w32_output): Likewise.
7672
76732012-08-30 Jan Djärv <jan.h.d@swipnet.se>
7674
7675 * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
7676 does not become zero (Bug#12234).
7677
76782012-08-30 Paul Eggert <eggert@cs.ucla.edu>
7679
7680 * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
7681 for GCC 4.7.1 x86-64.
7682
76832012-08-30 Glenn Morris <rgm@gnu.org>
7684
7685 * lread.c (init_lread): For out-of-tree builds, only add the
7686 source directory's site-lisp dir to the load-path if it exists,
7687 consistent with in-tree builds. (Bug#12302)
7688
76892012-08-28 Jan Djärv <jan.h.d@swipnet.se>
7690
7691 * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
7692 button_values to NULL. Call setStykeMask so dialogs get a close button.
7693 (windowShouldClose:): Set window_closed.
7694 (dealloc): New member, free button_values.
7695 (process_dialog:): Make member function. Remove window argument,
7696 replace window with self. Count buttons and allocate and store values
7697 in button_values.
7698 (addButton:value:row:): value is int with the name tag. Call setTag
7699 with tag. Remove return self, declare return value as void.
7700 (addString:row:): Remove return self, declare return value as void.
7701 (addSplit): Remove return self, declare return value as void.
7702 (clicked:): Remove return self, declare return value as void.
7703 Set dialog_return to button_values[seltag]. Code formatting change.
7704 (initFromContents:isQuestion:): Adjust call to process_dialog.
7705 Code formatting change.
7706 (timeout_handler:): Set timer_fired to YES.
7707 (runDialogAt:): Set timer_fired to NO.
7708 Handle click on close button as quit.
7709
7710 * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
7711 Add window_closed and button_values. Add void as return value for
7712 add(Button|String|Split). addButton takes int instead of Lisp_Object.
7713 Add process_dialog as new member.
7714
77152012-08-28 Eli Zaretskii <eliz@gnu.org>
7716
7717 * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
7718 is not one of the heaps we manage. (Bug#12242)
7719
77202012-08-28 Glenn Morris <rgm@gnu.org>
7721
7722 * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747)
7723
77242012-08-28 Martin Rudalics <rudalics@gmx.at>
7725
7726 * window.c (Fset_window_configuration): Remove handling of
7727 auto-buffer-name window parameter. Install revision of reverted
7728 fix.
7729
77302012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7731
7732 Do not allow to set major mode for a dead buffer.
7733 * buffer.c (Fset_buffer_major_mode): Signal an error
7734 if the buffer is dead.
7735 (Fother_buffer, other_buffer_safely): Remove redundant
7736 nested declaration.
7737
77382012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7739
7740 Always use set_buffer_if_live to restore original buffer at unwind.
7741 * buffer.h (record_unwind_current_buffer): New function.
7742 * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
7743 * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
7744 * undo.c, window.c: Adjust users.
7745 * buffer.c (set_buffer_if_live): Fix comment.
7746
77472012-08-28 Dmitry Antipov <dmantipov@yandex.ru>
7748
7749 Fix usage of set_buffer_internal.
7750 * buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
7751 * buffer.c (set_buffer_if_live): Use set_buffer_internal.
7752 * coding.c (decode_coding): Omit redundant test.
7753 * fileio.c (decide_coding_unwind): Likewise.
7754 * fns.c (secure_hash): Likewise.
7755 * insdel.c (modify_region): Likewise.
7756 * keyboard.c (command_loop_1): Likewise.
7757 * print.c (PRINTFINISH): Likewise.
7758 * xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
7759
77602012-08-27 Paul Eggert <eggert@cs.ucla.edu>
7761
7762 * dispnew.c: Use bool for boolean.
7763 (frame_garbaged, display_completed, delayed_size_change)
7764 (fonts_changed_p, add_window_display_history)
7765 (add_frame_display_history, verify_row_hash)
7766 (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
7767 (row_equal_p, realloc_glyph_pool)
7768 (allocate_matrices_for_frame_redisplay)
7769 (showing_window_margins_p)
7770 (adjust_frame_glyphs_for_frame_redisplay)
7771 (build_frame_matrix_from_leaf_window, make_current)
7772 (mirrored_line_dance, mirror_line_dance, update_frame)
7773 (update_window_tree, update_single_window)
7774 (check_current_matrix_flags, update_window, update_text_area)
7775 (update_window_line, set_window_update_flags, scrolling_window)
7776 (update_frame_1, scrolling, buffer_posn_from_coords)
7777 (do_pending_window_change, change_frame_size)
7778 (change_frame_size_1, sit_for):
7779 Use bool for boolean.
7780 (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
7781 and remove last int (actually boolean) argument, which was always 0.
7782 All callers changed.
7783 * dispextern.h, frame.h, lisp.h: Reflect above API changes.
7784 * dispextern.h (struct composition_it): Use bool for boolean.
7785 (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
7786 (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
7787 * dired.c (file_name_completion):
7788 Use bool for boolean. (This was missed in an earlier change.)
7789
77902012-08-27 Martin Rudalics <rudalics@gmx.at>
7791
7792 * window.c (Fset_window_configuration): Revert first part of
7793 last change.
7794
77952012-08-27 Jan Djärv <jan.h.d@swipnet.se>
7796
7797 * nsterm.h (NSPanel): New class variable dialog_return.
7798
7799 * nsmenu.m (initWithContentRect:styleMask:backing:defer:):
7800 Initialize dialog_return.
7801 (windowShouldClose:): Use stop instead of stopModalWithCode.
7802 (clicked:): Ditto, and also set dialog_return (Bug#12258).
7803 (timeout_handler:): Use stop instead of abortModal. Send a dummy
7804 event.
7805 (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when
7806 modal loop returns.
7807
78082012-08-27 Paul Eggert <eggert@cs.ucla.edu>
7809
7810 * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
7811 * composite.c (find_composition, composition_gstring_p)
7812 (composition_reseat_it, find_automatic_composition):
7813 * data.c (let_shadows_buffer_binding_p)
7814 (let_shadows_global_binding_p, set_internal, make_blv)
7815 (Fmake_variable_buffer_local, Fmake_local_variable)
7816 (Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
7817 (cons_to_signed, arith_driver):
7818 * dbusbind.c (xd_in_read_queued_messages):
7819 * dired.c (directory_files_internal, file_name_completion):
7820 Use bool for booleans.
7821 * dired.c (file_name_completion):
7822 * process.h (fd_callback):
7823 Omit int (actually boolean) argument. It wasn't being used.
7824 All uses changed.
7825 * composite.h, lisp.h: Reflect above API changes.
7826
7827 * cmds.c, coding.c: Use bool for booleans.
7828 * cmds.c (move_point, Fself_insert_command):
7829 * coding.h (struct composition status, struct coding_system):
7830 * coding.c (detect_coding_utf_8, encode_coding_utf_8)
7831 (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
7832 (emacs_mule_char, decode_coding_emacs_mule)
7833 (encode_coding_emacs_mule, detect_coding_iso_2022)
7834 (decode_coding_iso_2022, encode_invocation_designation)
7835 (encode_designation_at_bol, encode_coding_iso_2022)
7836 (detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
7837 (decode_coding_big5, encode_coding_sjis, encode_coding_big5)
7838 (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
7839 (encode_coding_raw_text, detect_coding_charset)
7840 (decode_coding_charset, encode_coding_charset, detect_eol)
7841 (detect_coding, get_translation_table, produce_chars)
7842 (consume_chars, reused_workbuf_in_use)
7843 (make_conversion_work_buffer, code_conversion_save)
7844 (decode_coding_object, encode_coding_object)
7845 (detect_coding_system, char_encodable_p)
7846 (Funencodable_char_position, code_convert_region)
7847 (code_convert_string, code_convert_string_norecord)
7848 (Fset_coding_system_priority):
7849 * fileio.c (Finsert_file_contents):
7850 Use bool for booleans.
7851 * coding.h, lisp.h: Reflect above API changes.
7852 * coding.c: Remove unnecessary static function decls.
7853 (detect_coding): Use unsigned, not signed, to copy an unsigned field.
7854 (decode_coding, encode_coding, decode_coding_gap): Return 'void',
7855 not a boolean 'int', since callers never look at the return value.
7856 (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
7857 * coding.h (decoding_buffer_size, encoding_buffer_size)
7858 (emacs_mule_string_char): Remove unused extern decls.
7859 (struct iso_2022_spec, struct coding_system):
7860 Use 'unsigned int : 1' for boolean fields, since there's more than one.
7861 (struct emacs_mule_spec): Remove unused field 'full_support'.
7862 All initializations removed.
7863 * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
7864
78652012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7866
7867 Fix spare memory change (Bug#12286).
7868 * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
7869 (valid_lisp_object_p): Likewise.
7870
78712012-08-27 Martin Rudalics <rudalics@gmx.at>
7872
7873 * window.c (Fset_window_configuration): Record any window's old
7874 buffer if it's replaced (see Bug#8789). If the new current
7875 buffer doesn't appear in the selected window, go to its old
7876 point (Bug#12208).
7877
78782012-08-27 Dmitry Antipov <dmantipov@yandex.ru>
7879
7880 Special MEM_TYPE_SPARE to denote reserved memory.
7881 * alloc.c (enum mem_type): New memory type.
7882 (refill_memory_reserve): Use new type for spare memory.
7883 This prevents live_cons_p and live_string_p from incorrect
7884 detection of uninitialized objects from spare memory as live.
7885
78862012-08-26 Paul Eggert <eggert@cs.ucla.edu>
7887
7888 Spelling fixes.
7889 * Makefile.in (.PHONY): versioclean -> versionclean.
7890
7891 Remove unused external symbols.
7892 * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
7893 * window.c (Qwindow_valid_p, decode_valid_window):
7894 Now static, not extern.
7895 * data.c (Qinterval): Remove; unused.
7896 (syms_of_data): Do not define 'interval'.
7897 * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
7898 * window.h (decode_valid_window):
7899 Remove decls.
7900
7901 * character.c, charset.c, chartab.c: Use bool for booleans.
7902 * character.c (lisp_string_width, string_count_byte8)
7903 (string_escape_byte8):
7904 * charset.c (charset_map_loaded, load_charset_map, read_hex):
7905 (load_charset_map_from_file, map_charset_chars)
7906 (Fdefine_charset_internal, define_charset_internal)
7907 (Fdeclare_equiv_charset, find_charsets_in_text)
7908 (Ffind_charset_region, char_charset, Fiso_charset):
7909 * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
7910 (sub_char_table_set, sub_char_table_set_range)
7911 (char_table_set_range, optimize_sub_char_table)
7912 (map_sub_char_table):
7913 Use bool for boolean.
7914 * character.c (str_to_unibyte): Omit last boolean argument; it was
7915 always 0. All callers changed.
7916 * character.h, charset.h: Adjust to match previous changes.
7917 * character.h (char_printable_p): Remove decl of nonexistent function.
7918 * charset.h (struct charset): Members code_linear_p, iso_chars_96,
7919 ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
7920 are all boolean, so make them single-bit bitfields.
7921
7922 * lisp.h (ASET): Remove attempt to detect side effects.
7923 It was meant to be temporary and it often doesn't work,
7924 because when IDX has side effects the behavior of IDX==IDX
7925 is undefined. See Stefan Monnier in
7926 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00762.html>.
7927
79282012-08-26 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
7929
7930 * lisp.h (functionp): New function (extracted from Ffunctionp).
7931 (FUNCTIONP): Use it.
7932 * eval.c (Ffunctionp): Use it.
7933
79342012-08-25 Paul Eggert <eggert@cs.ucla.edu>
7935
7936 * xgselect.c (xg_select): Use auto storage for the GPollFD buffer
7937 as that's faster and simpler than static storage. Don't bother
7938 with the g_main_context_query overhead if g_main_context_pending
7939 says no events are pending.
7940 (gfds, gfds_size): Remove these static vars.
7941 (xgselect_initialize): Remove; no longer needed.
7942 All uses and decls removed.
7943
7944 * emacs.c (fatal_error_signal_hook): Remove.
7945 All uses removed. This leftover from old code was always 0.
7946
7947 * casefiddle.c, casetab.c, category.c: Use bool for boolean.
7948 * casefiddle.c (casify_object, casify_region):
7949 * casetab.c (set_case_table):
7950 * category.c, category.h (word_boundary_p):
7951 * category.h (CHAR_HAS_CATEGORY):
7952 Use bool for booleans, instead of int.
7953
79542012-08-25 Eli Zaretskii <eliz@gnu.org>
7955
7956 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
7957
79582012-08-25 Paul Eggert <eggert@cs.ucla.edu>
7959
7960 On assertion failure, print backtrace if available.
7961 * alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
7962 (die) [ENABLE_CHECKING]: Print a backtrace if available.
7963 * Makefile.in (LIB_EXECINFO): New macro.
7964 (LIBES): Use it.
7965
7966 * bytecode.c, callint.c, callproc.c: Use bool for boolean.
7967 * bytecode.c (exec_byte_code):
7968 * callint.c (check_mark, Fcall_interactively):
7969 * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
7970 (getenv_internal, sync_process_alive, call_process_exited):
7971 * lisp.h (USE_SAFE_ALLOCA):
7972 Use bool for booleans, instead of int.
7973 * lisp.h, process.h: Adjust prototypes to match above changes.
7974 * callint.c (Fcall_interactively): Don't assume the mark's
7975 offset fits in 'int'.
7976
79772012-08-24 Paul Eggert <eggert@cs.ucla.edu>
7978
7979 * buffer.c, buffer.h: Use bool for boolean.
7980 * buffer.c (reset_buffer_local_variables)
7981 (buffer_lisp_local_variables, Fset_buffer_modified_p)
7982 (Frestore_buffer_modified_p, Fset_buffer_multibyte):
7983 (overlays_at, overlays_in, mouse_face_overlay_overlaps)
7984 (overlay_touches_p, overlay_strings, Foverlay_put)
7985 (report_overlay_modification, call_overlay_mod_hooks):
7986 (mmap_enlarge, mmap_set_vars):
7987 * buffer.h (buffer_has_overlays, uppercasep, lowercasep):
7988 Use bool for booleans, instead of int.
7989 * buffer.c (compact_buffer, mmap_free_1): Return void, not int,
7990 since the 1-or-0 return value is always ignored anyway.
7991 (mmap_initialized_p):
7992 * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
7993 * buffer.h, lisp.h: Adjust prototypes to match above changes.
7994
79952012-08-23 Paul Eggert <eggert@cs.ucla.edu>
7996
7997 * bidi.c: Use bool for boolean.
7998 This is a bit more readable, and makes the text segment of bidi.o
7999 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
8000 Presumably it's faster too.
8001 (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
8002 Now bool.
8003 (bidi_cache_find_level_change, bidi_cache_iterator_state)
8004 (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
8005 (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
8006 (bidi_explicit_dir_char, bidi_level_of_next_char)
8007 (bidi_find_other_level_edge, bidi_move_to_visually_next):
8008 Use bool for booleans, instead of int.
8009 * dispextern.h (bidi_init_it, bidi_paragraph_init)
8010 (bidi_unshelve_cache): Adjust decls to match code.
8011
80122012-08-23 Martin Rudalics <rudalics@gmx.at>
8013
8014 * keyboard.c (Fposn_at_x_y): Do not allow internal window as
8015 argument.
8016
80172012-08-23 Paul Eggert <eggert@cs.ucla.edu>
8018
8019 * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
8020 * atimer.h: Include <stdbool.h>.
8021
80222012-08-22 Dan Nicolaescu <dann@gnu.org>
8023
8024 * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
8025 compile time tests instead of run time tests on systems that do
8026 not use them.
8027 (FRAME_MAC_P): Remove leftover from deleted code.
8028 * frame.c (syms_of_frame): Remove leftover from deleted code.
8029
80302012-08-22 Jan Djärv <jan.h.d@swipnet.se>
8031
8032 * nsterm.m (insertText:): Don't clear modifiers if code is space.
8033
80342012-08-22 Paul Eggert <eggert@cs.ucla.edu>
8035
8036 * fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
8037 Otherwise, the compiler complains about (A?B:C) where B is void
8038 and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12.
8039 (fontset_add): Return void, for FONTSET_ADD.
8040
80412012-08-21 Paul Eggert <eggert@cs.ucla.edu>
8042
8043 * alloc.c: Use bool for booleans.
8044 (gc_in_progress, abort_on_gc)
8045 (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
8046 (dont_register_blocks) [GC_MALLOC_CHECK]:
8047 (suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
8048 (check_string_bytes, make_specified_string, memory_full)
8049 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
8050 (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
8051 (mark_stack, valid_pointer_p, make_pure_string)
8052 (Fgarbage_collect, survives_gc_p, gc_sweep):
8053 Use bool for booleans, instead of int.
8054 (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
8055 Remove unused local.
8056 * alloc.c (PURE_POINTER_P):
8057 * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
8058 * editfns.c (Fformat):
8059 * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
8060 (Fdo_auto_save):
8061 * fns.c (sweep_weak_table):
8062 * lisp.h (suppress_checking, push_message, survives_gc_p)
8063 (make_pure_string, gc_in_progress, abort_on_gc):
8064 * lread.c (readchar, read1):
8065 * print.c (Fprin1_to_string):
8066 * xdisp.c (push_message):
8067 Use bool for booleans affected directly or indirectly by
8068 alloc.c's changes.
8069
8070 Make recently-introduced setters macros.
8071 * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
8072 (set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
8073 (set_fontset_default, set_fontset_fallback): Rename from their
8074 upper-case counterparts, and make them functions rather than macros.
8075 This is more consistent with the other recently-introduced setters.
8076 These don't need to be inline, since they're local.
8077
80782012-08-21 Jan Djärv <jan.h.d@swipnet.se>
8079
8080 * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
8081 the loop (Bug#12247).
8082
80832012-08-21 Paul Eggert <eggert@cs.ucla.edu>
8084
8085 * lisp.h (vcopy): Use memcpy rather than our own loop.
8086 This fixes a performance regression introduced by the recent
8087 addition of vcopy. This means 'vcopy' will need to be modified
8088 for a copying collector, but that's OK. Also, tighten the
8089 checking in the assertion.
8090
80912012-08-21 Eli Zaretskii <eliz@gnu.org>
8092
8093 * w32uniscribe.c (uniscribe_shape): Fix producing gstring
8094 components for RTL text (Bug#11860). Adjust X-OFFSET of each
8095 non-base glyph for the width of the base character, according to
8096 what x_draw_composite_glyph_string_foreground expects.
8097 Generate WADJUST value according to composition_gstring_width's
8098 expectations, to produce correct width of the composed character.
8099 Reverse the sign of the DU offset produced by ScriptPlace.
8100
81012012-08-21 Paul Eggert <eggert@cs.ucla.edu>
8102
8103 * dbusbind.c (xd_remove_watch): Do not assume C99 comments.
8104
81052012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
8106
8107 Avoid direct writes to contents member of struct Lisp_Vector.
8108 * lisp.h (vcopy): New function to copy data into vector.
8109 * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
8110 * fns.c (Ffillarray): Use ASET.
8111 * keyboard.c (timer_check_2): Use AREF and ASET.
8112 (append_tool_bar_item, Frecent_keys): Use vcopy.
8113 * lread.c (read_vector): Use ASET.
8114 * msdos.c (Frecent_doskeys): Use vcopy.
8115 * xface.c (Finternal_copy_lisp_face): Use vcopy.
8116 (Finternal_merge_in_global_face): Use ASET and vcopy.
8117 * xfont.c (xfont_list_pattern): Likewise.
8118
81192012-08-21 Martin Rudalics <rudalics@gmx.at>
8120
8121 * window.c (Fwindow_point): For the selected window always return
8122 the position of its buffer's point.
8123 (Fset_window_point): For the selected window always go in its
8124 buffer to the specified position.
8125
81262012-08-21 Dmitry Antipov <dmantipov@yandex.ru>
8127
8128 Setter macros for fontsets.
8129 * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
8130 (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
8131 (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
8132 Adjust users.
8133
81342012-08-20 Glenn Morris <rgm@gnu.org>
8135
8136 * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
8137 Don't assume that `ln -f' works.
8138
81392012-08-20 Eli Zaretskii <eliz@gnu.org>
8140
8141 * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
8142 and later about non-assignments with no effect. See discussion at
8143 http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
8144 details.
8145
81462012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8147
8148 Inline setter functions for Lisp_Objects slots of struct specbinding.
8149 * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
8150 Adjust users.
8151
81522012-08-20 Martin Rudalics <rudalics@gmx.at>
8153
8154 * window.c (select_window): Always make selected window's buffer
8155 current.
8156
81572012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8158
8159 Use AREF and ASET for docstrings of category tables.
8160 * category.h (CATEGORY_DOCSTRING): Use AREF.
8161 (SET_CATEGORY_DOCSTRING): Use ASET.
8162 * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
8163
81642012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8165
8166 Inline setter functions for hash table members.
8167 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
8168 (set_hash_hash, set_hash_index): Rename with _slot suffix.
8169 (set_hash_key_and_value, set_hash_index, set_hash_next)
8170 (set_hash_hash): New functions.
8171 * charset.c, fns.c: Adjust users.
8172
81732012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
8174
8175 Inline getter and setter functions for per-buffer values.
8176 * buffer.h (per_buffer_default, set_per_buffer_default)
8177 (per_buffer_value, set_per_buffer_value): New functions.
8178 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
8179 * buffer.c, data.c: Adjust users.
8180
81812012-08-20 Juanma Barranquero <lekktu@gmail.com>
8182
8183 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
8184
81852012-08-19 Paul Eggert <eggert@cs.ucla.edu>
8186
8187 Rely on <config.h> + <unistd.h> to declare 'environ',
8188 as gnulib does this if the system doesn't.
8189 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
8190 Remove declaration. MS-Windows declares it on stdlib.h which is
8191 included by conf_post.h.
8192 * emacs.c (environ) [DOUG_LEA_MALLOC]:
8193 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
8194 * vm-limit.c: Include <unistd.h>, for 'environ'.
8195
8196 * unexaix.c, unexcoff.c: Include "mem-limits.h".
8197 (start_of_data): Remove decl; mem-limits.h provides it.
8198
8199 * xdisp.c (handle_invisible_prop): Make it a bit faster
8200 and avoid a gcc -Wmaybe-uninitialized diagnostic.
8201
82022012-08-19 Chong Yidong <cyd@gnu.org>
8203
8204 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
8205 ends (Bug#3874).
8206
82072012-08-19 Andreas Schwab <schwab@linux-m68k.org>
8208
8209 * .gdbinit: Use call instead of set when calling a function in the
8210 inferior.
8211
8212 * data.c (set_internal): Don't use set_blv_found.
8213 (Fkill_local_variable): Likewise.
8214
82152012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
8216
8217 * nsfont.m (ns_ascii_average_width): Ensure the string
8218 ascii_printable is initialized with a null-terminated character
8219 array. Otherwise, it can contain undesired extra characters.
8220
82212012-08-18 Paul Eggert <eggert@cs.ucla.edu>
8222
8223 port new setting code to Sun C 5.8 2005/10/13
8224 * chartab.c, lisp.h (char_table_set, char_table_set_range):
8225 Return void, not Lisp_Object. Otherwise, the compiler
8226 complains about (A?B:C) where B is void and C is Lisp_Object
8227 when compiling CHAR_TABLE_SET, due to the recent change to
8228 the API of sub_char_table_set_contents.
8229
82302012-08-18 Chong Yidong <cyd@gnu.org>
8231
8232 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
8233 for the string case (Bug#3874).
8234
82352012-08-18 Paul Eggert <eggert@cs.ucla.edu>
8236
8237 * buffer.h (BSET): Remove (Bug#12215).
8238 Replace all uses with calls to new setter functions.
8239 (bset_bidi_paragraph_direction, bset_case_canon_table)
8240 (bset_case_eqv_table, bset_directory, bset_display_count)
8241 (bset_display_time, bset_downcase_table)
8242 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
8243 (bset_last_selected_window, bset_local_var_alist)
8244 (bset_mark_active, bset_point_before_scroll, bset_read_only)
8245 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
8246 (bset_width_table):
8247 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
8248 (bset_auto_fill_function, bset_auto_save_file_format)
8249 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
8250 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
8251 (bset_cache_long_line_scans, bset_case_fold_search)
8252 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
8253 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
8254 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
8255 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
8256 (bset_header_line_format, bset_indicate_buffer_boundaries)
8257 (bset_indicate_empty_lines, bset_invisibility_spec)
8258 (bset_left_fringe_width, bset_major_mode, bset_mark)
8259 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
8260 (bset_name, bset_overwrite_mode, bset_pt_marker)
8261 (bset_right_fringe_width, bset_save_length)
8262 (bset_scroll_bar_width, bset_scroll_down_aggressively)
8263 (bset_scroll_up_aggressively, bset_selective_display)
8264 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
8265 (bset_word_wrap, bset_zv_marker):
8266 * category.c (bset_category_table):
8267 * syntax.c (bset_syntax_table):
8268 New setter functions.
8269
8270 * process.h (PSET): Remove (Bug#12215).
8271 Replace all uses with calls to new setter functions.
8272 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8273 (PROCESS_INLINE): New macro.
8274 (pset_childp): New setter function.
8275 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
8276 * process.c (PROCESS_INLINE):
8277 Define to EXTERN_INLINE, so that the corresponding functions
8278 are compiled into code.
8279 (pset_buffer, pset_command, pset_decode_coding_system)
8280 (pset_decoding_buf, pset_encode_coding_system)
8281 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
8282 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
8283 (pset_type, pset_write_queue): New setter functions.
8284
8285 * window.h (WSET): Remove (Bug#12215).
8286 Replace all uses with calls to new setter functions.
8287 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8288 (WINDOW_INLINE): New macro.
8289 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
8290 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
8291 (wset_total_lines, wset_vertical_scroll_bar)
8292 (wset_window_end_pos, wset_window_end_valid)
8293 (wset_window_end_vpos): New setter functions.
8294 * window.c (WINDOW_INLINE):
8295 Define to EXTERN_INLINE, so that the corresponding functions
8296 are compiled into code.
8297 (wset_combination_limit, wset_dedicated, wset_display_table)
8298 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
8299 (wset_new_normal, wset_new_total, wset_next_buffers)
8300 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
8301 (wset_prev_buffers, wset_right_fringe_width)
8302 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
8303 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
8304 (wset_window_parameters):
8305 * xdisp.c (wset_base_line_number, wset_base_line_pos)
8306 (wset_column_number_displayed, wset_region_showing):
8307 New setter functions.
8308
8309 * termhooks.h (TSET): Remove (Bug#12215).
8310 Replace all uses with calls to new setter functions.
8311 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8312 (TERMHOOKS_INLINE): New macro.
8313 (tset_charset_list, tset_selection_alist): New setter functions.
8314 * terminal.c (TERMHOOKS_INLINE):
8315 Define to EXTERN_INLINE, so that the corresponding functions
8316 are compiled into code.
8317 (tset_param_alist): New setter function.
8318
83192012-08-17 Paul Eggert <eggert@cs.ucla.edu>
8320
8321 * keyboard.h (KSET): Remove (Bug#12215).
8322 Replace all uses with calls to new setter functions.
8323 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8324 (KEYBOARD_INLINE): New macro.
8325 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
8326 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
8327 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
8328 New setter functions.
8329 * keyboard.c (KEYBOARD_INLINE):
8330 Define to EXTERN_INLINE, so that the corresponding functions
8331 are compiled into code.
8332 (kset_echo_string, kset_kbd_queue)
8333 (kset_keyboard_translate_table, kset_last_prefix_arg)
8334 (kset_last_repeatable_command, kset_local_function_key_map)
8335 (kset_overriding_terminal_local_map, kset_real_last_command)
8336 (kset_system_key_syms): New setter functions.
8337
8338 * frame.h (FSET): Remove (Bug#12215).
8339 Replace all uses with calls to new setter functions.
8340 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
8341 (FRAME_INLINE): New macro.
8342 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
8343 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
8344 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
8345 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
8346 (fset_param_alist, fset_root_window, fset_scroll_bars)
8347 (fset_selected_window, fset_title, fset_tool_bar_items)
8348 (fset_tool_bar_position, fset_tool_bar_window): New functions.
8349 * frame.c (FRAME_INLINE):
8350 Define to EXTERN_INLINE, so that the corresponding functions
8351 are compiled into code.
8352 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
8353
8354 A few more naming-convention fixes for getters and setters.
8355 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
8356 and rename from buffer_overlays_set_before.
8357 (set_buffer_overlays_after): Move here from buffer.h, and rename
8358 from buffer_overlays_set_after.
8359 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
8360 All uses changed.
8361 (set_buffer_intervals): Rename from buffer_set_intervals.
8362 * intervals.c (set_interval_object): Move here from intervals.h,
8363 and rename from interval_set_object.
8364 (set_interval_left): Move here from intervals.h, and rename from
8365 interval_set_left.
8366 (set_interval_right): Move here from intervals.h, and rename from
8367 interval_set_right.
8368 (copy_interval_parent): Move here from intervals.h, and rename from
8369 interval_copy_parent.
8370 * intervals.h (set_interval_parent): Rename from interval_set_parent.
8371 (set_interval_plist): Rename from interval_set_plist.
8372 Return void, not Lisp_Object, since no caller uses the result.
8373 * lisp.h (string_intervals): Rename from string_get_intervals.
8374 (set_string_intervals): Rename from string_set_intervals.
8375
8376 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
8377 (set_char_table_contents): Rename from char_table_set_contents.
8378 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
8379 All uses changed. See the end of
8380 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
8381
8382 * lisp.h (CSET): Remove (Bug#12215).
8383 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
8384 (set_char_table_purpose): New functions,
8385 replacing CSET. All uses changed. For example, replace
8386 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
8387 "set_char_table_parent (char_table, parent);".
8388 The old version was confusing because it used the same name
8389 'parent' for two different things.
8390
83912012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
8392
8393 Functions to get and set Lisp_Object fields of buffer-local variables.
8394 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
8395 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
8396 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
8397 * data.c, eval.c, frame.c: Adjust users.
8398
83992012-08-17 Chong Yidong <cyd@gnu.org>
8400
8401 * xfaces.c (merge_face_vectors): If the target font specfies a
8402 font spec, make the font's attributes take precedence over
8403 directly-specified attributes.
8404 (merge_face_ref): Recognize :font.
8405
84062012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
8407
8408 Do not use memcpy for copying intervals.
8409 * intervals.c (reproduce_interval): New function.
8410 (reproduce_tree, reproduce_tree_obj): Use it.
8411 (reproduce_tree_obj): Remove prototype.
8412
84132012-08-17 Paul Eggert <eggert@cs.ucla.edu>
8414
8415 * lisp.h (duration_to_sec_usec): Remove unused decl.
8416
84172012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
8418
8419 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
8420 to an allocated instance of NSString, not to the class itself.
8421
84222012-08-17 Juanma Barranquero <lekktu@gmail.com>
8423
8424 * makefile.w32-in (C_CTYPE_H): New macro.
8425 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
8426 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
8427 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
8428
84292012-08-16 Paul Eggert <eggert@cs.ucla.edu>
8430
8431 Use ASCII tests for character types.
8432 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
8433 * xfns.c, xterm.c:
8434 Don't include <ctype.h>; was not needed.
8435 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
8436 * sysdep.c, xfaces.c:
8437 Include <c-ctype.h> instead of <ctype.h>.
8438 * nsterm.m: Include <c-ctype.h>.
8439 * charset.c (read_hex):
8440 * doc.c (Fsnarf_documentation):
8441 * fileio.c (IS_DRIVE) [WINDOWSNT]:
8442 (DRIVE_LETTER) [DOS_NT]:
8443 (Ffile_name_directory, Fexpand_file_name)
8444 (Fsubstitute_in_file_name):
8445 * font.c (font_parse_xlfd, font_parse_fcname):
8446 * frame.c (x_set_font_backend):
8447 * gtkutil.c (xg_get_font):
8448 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
8449 * nsimage.m (hexchar):
8450 * nsterm.m (ns_xlfd_to_fontname):
8451 * sysdep.c (system_process_attributes):
8452 * xfaces.c (hash_string_case_insensitive):
8453 Use C-locale tests instead of locale-specific tests for character
8454 types, since we want the ASCII interpretation here, not the
8455 interpretation suitable for whatever happens to be the current locale.
8456
84572012-08-16 Martin Rudalics <rudalics@gmx.at>
8458
8459 Consistently check windows for validity/liveness
8460 (Bug#11984, Bug#12025, Bug#12026).
8461 * lisp.h (CHECK_VALID_WINDOW): New macro.
8462 * window.c (decode_window): Rename to decode_live_window.
8463 (decode_valid_window, Fwindow_valid_p): New functions.
8464 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
8465 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
8466 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
8467 (Fwindow_prev_sibling, Fwindow_combination_limit)
8468 (Fset_window_combination_limit, Fwindow_use_time)
8469 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
8470 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
8471 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
8472 (Fwindow_hscroll, Fset_window_hscroll)
8473 (Fwindow_redisplay_end_trigger)
8474 (Fset_window_redisplay_end_trigger, Fwindow_edges)
8475 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
8476 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
8477 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
8478 (Fwindow_end, Fset_window_point, Fset_window_start)
8479 (Fpos_visible_in_window_p, Fwindow_line_height)
8480 (Fwindow_dedicated_p, Fset_window_dedicated_p)
8481 (Fwindow_prev_buffers, Fset_window_prev_buffers)
8482 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
8483 (Fset_window_parameter, Fwindow_display_table)
8484 (Fset_window_display_table, Fdelete_other_windows_internal)
8485 (Fset_window_buffer, Fset_window_new_total)
8486 (Fset_window_new_normal, Fdelete_window_internal)
8487 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
8488 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
8489 (Fwindow_scroll_bars): Check whether argument window is a valid or
8490 live window. Update doc-strings.
8491 (syms_of_window): New symbol Qwindow_valid_p.
8492 * keyboard.c (Fposn_at_x_y): Check whether argument
8493 frame_or_window denotes a valid window.
8494
84952012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
8496
8497 Fix previous char table change.
8498 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
8499 * chartab.c (optimize_sub_char_table): Likewise.
8500
85012012-08-16 Chong Yidong <cyd@gnu.org>
8502
8503 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
8504
8505 * xfont.c (xfont_open):
8506 * xftfont.c (xftfont_open): Set the font's max_width field.
8507
8508 * nsfont.m (nsfont_open): Similar to the Xft backend, set
8509 min_width to space_width and average_width to the average over
8510 printable ASCII characters.
8511 (ns_char_width): Code cleanup.
8512 (ns_ascii_average_width): New utility function.
8513
8514 * font.h (struct font): Update comments.
8515
85162012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
8517
8518 Simple interface to set Lisp_Object fields of character tables.
8519 * lisp.h (CSET): New macro.
8520 (char_table_set_extras, char_table_set_contents)
8521 (sub_char_table_set_contents): New function.
8522 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
8523 * syntax.c: Adjust users.
8524
85252012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
8526
8527 * eval.c (eval_sub): Bind lexical-binding.
8528 * lread.c (Qlexical_binding): Make non-static.
8529
85302012-08-15 Jan Djärv <jan.h.d@swipnet.se>
8531
8532 * nsmenu.m (popupSession): Remove.
8533 (pop_down_menu): Remove endModalSession.
8534 (timeout_handler:): New method.
8535 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
8536 Call runModalForWindow. Check timer_fired when it returns.
8537 If not set, cancel timer and break out of loop.
8538 Otherwise loop again, with a new timeout.
8539
8540 * nsterm.m: Include fcntl.h if present.
8541 (fd_entry, t_readfds, inNsSelect): Remove.
8542 (select_writefds, select_valid, select_timeout, selfds)
8543 (select_mutex, apploopnr): Add.
8544 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
8545 Otherwise call kbd_buffer_store_event.
8546 (ns_send_appdefined): Remove release of fd_entry.
8547 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
8548 Increment and decrement apploopnr.
8549 (ns_select): If no file descriptors, just do a NSTimer.
8550 Otherwise copy read/write masks and start select thread (fd_handler).
8551 Start main loop and wait for application defined event.
8552 Inform select thread to stop selecting after main loop is exited.
8553 (ns_term_init): Create selfds pipe and set non-blocking.
8554 Initialize select_mutex. Start the select thread (fd_handler).
8555 (fd_handler:): Loop forever, wait for info from the main thread
8556 to either start or stop selecting. When select returns, send
8557 and appdefined event.
8558 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
8559 If not call kbd_buffer_store_event.
8560
8561 * nsterm.h (EmacsApp): fd_handler takes id argument.
8562 (EmacsDialogPanel): Add timer_fired and timeout_handler.
8563
8564 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
8565
85662012-08-15 Eli Zaretskii <eliz@gnu.org>
8567
8568 * region-cache.c (move_cache_gap): Update gap_len using the actual
8569 growth of the boundaries array. Do not change cache_len.
8570 (Bug#12196)
8571
85722012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
8573
8574 Generalize and cleanup font subsystem checks.
8575 * font.h (FONT_DEBUG, font_assert): Remove.
8576 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
8577 Change font_assert to eassert. Use eassert where appropriate.
8578
85792012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
8580
8581 * gtkutil.c (xg_get_font): Use pango_units_to_double.
8582
85832012-08-15 Chong Yidong <cyd@gnu.org>
8584
8585 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
8586 When using the new font chooser, use gtk_font_chooser_get_font_desc to
8587 extract the font descriptor instead of just the font name.
8588 In that case, return a font spec instead of a string.
8589 (x_last_font_name): Move to this file from xfns.c.
8590
8591 * xfns.c (Fx_select_font): The return value can also be a font
8592 spec. Move x_last_font_name management to gtkutil.c.
8593
8594 * xfaces.c: Make font weight and style symbols non-static.
8595
85962012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
8597
8598 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
8599 (bug#12117).
8600
86012012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
8602
8603 * alloc.c (Fgarbage_collect): Use plural form consistently.
8604
86052012-08-14 Eli Zaretskii <eliz@gnu.org>
8606
8607 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
8608 iteration through the command loop. Fixes a problem whereby mouse
8609 movements are ignored until the first mouse click.
8610
86112012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8612
8613 Use bool, not int, for Lisp booleans.
8614 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
8615 makes Emacs a bit smaller and presumably a bit faster.
8616 * lisp.h: Include <stdbool.h>.
8617 (struct Lisp_Boolfwd, defvar_bool):
8618 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
8619 * regex.c [!emacs]: Include <stdbool.h>.
8620 (false, true): Remove; <stdbool.h> does this for us now.
8621
86222012-08-14 Chong Yidong <cyd@gnu.org>
8623
8624 * character.c (Fcharacterp): Doc fix (Bug#12076).
8625
8626 * data.c (Findirect_variable): Doc fix (Bug#11040).
8627
8628 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
8629
8630 * editfns.c (Fformat): Doc fix (Bug#12059).
8631 (Fsave_current_buffer): Doc fix (Bug#11542).
8632
86332012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
8634
8635 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
8636 (bug#12022).
8637
86382012-08-14 Martin Rudalics <rudalics@gmx.at>
8639
8640 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
8641 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
8642 * minibuf.c (choose_minibuf_frame, read_minibuf):
8643 * w32fns.c (x_create_tip_frame):
8644 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
8645 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
8646
86472012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8648
8649 * intervals.c (offset_intervals): Remove obsolete comment.
8650
86512012-08-14 Andreas Schwab <schwab@linux-m68k.org>
8652
8653 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
8654
86552012-08-14 Gergely Risko <gergely@risko.hu>
8656
8657 * coding.c (decode_coding): Record buffer modification before
8658 disabling undo_list (Bug#11773).
8659
86602012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8661
8662 Revert and cleanup some recent overlay changes.
8663 * buffer.h (enum overlay_type): Remove.
8664 (buffer_get_overlays, buffer_set_overlays): Likewise.
8665 (buffer_set_overlays_before, buffer_set_overlays_after):
8666 New function. Adjust users.
8667 (unchain_both): Add eassert.
8668
86692012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
8670
8671 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
8672
86732012-08-14 Paul Eggert <eggert@cs.ucla.edu>
8674
8675 * gtkutil.c (xg_mark_data): Don't assume C99.
8676
86772012-08-13 Jan Djärv <jan.h.d@swipnet.se>
8678
8679 * gtkutil.c (xg_frame_tb_info): New struct.
8680 (TB_INFO_KEY): New define.
8681 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
8682 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
8683 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
8684 if not present.
8685 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
8686 is up to date. Otherwise store new data.
8687 (free_frame_tool_bar): Free xg_frame_tb_info if present.
8688
86892012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8690
8691 Use KSET for write access to Lisp_Object members of struct kboard.
8692 * keyboard.h (KSET): New macro.
8693 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
8694 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
8695 * xterm.c: Adjust users.
8696
86972012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
8698
8699 Use BSET for write access to Lisp_Object members of struct buffer.
8700 * buffer.h (BSET): New macro.
8701 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
8702 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
8703 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
8704 * window.c, xdisp.c, xfns.c: Adjust users.
8705
87062012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
8707
8708 * lread.c (syms_of_lread): Initialize Vlexical_binding.
8709
87102012-08-11 Jan Djärv <jan.h.d@swipnet.se>
8711
8712 * nsterm.m (not_in_argv): New function.
8713 (application:openFile, application:openTempFile:):
8714 (application:openFileWithoutUI:, application:openFiles:): Open file
8715 if not_in_argv returns non-zero (bug#12171).
8716
8717 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
8718 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
8719 Define for Gtk+ versions less than 3.2.
8720 (xg_get_font_name): Use those functions/macros here.
8721 Reported by Frans Oilinki <moilinki@gmail.com>.
8722
87232012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8724
8725 * unexmacosx.c (copy_data_segment): Copy initialized data in
8726 statically linked libraries from input file rather than memory.
8727
8728 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
8729 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
8730 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
8731
87322012-08-10 Glenn Morris <rgm@gnu.org>
8733
8734 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
8735 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
8736
87372012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8738
8739 Fix last change to allow compilation with low optimization levels.
8740 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
8741 Reported by Jan Djärv <jan.h.d@swipnet.se>.
8742
87432012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8744
8745 Use common inline syntax in intervals.h.
8746 * intervals.h (INTERVALS_INLINE): New macro.
8747 Change all users from LISP_INLINE.
8748
87492012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8750
8751 Define Qnone once for all platforms.
8752 * frame.c (Qnone): Define here.
8753 (syms_of_frame): DEFSYM it.
8754 * lisp.h (Qnone): New declaration.
8755 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
8756 * xfns.c: Remove duplication. Adjust users.
8757
87582012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
8759
8760 Remove unused macros from intervals.h.
8761 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
8762 * intervals.c: Adjust comment.
8763
87642012-08-10 Eli Zaretskii <eliz@gnu.org>
8765
8766 * w32fns.c <w32_unicode_gui>: New static variable.
8767 (globals_of_w32fns): Initialize it according to os_subtype.
8768 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
8769 testing os_subtype.
8770
87712012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
8772 Eli Zaretskii <eliz@gnu.org>
8773
8774 Fix bug #10299 with Unicode characters sent by customized
8775 keyboards created by MSKLC.
8776 * w32fns.c (INIT_WINDOW_CLASS): New macro.
8777 (w32_init_class): Use it to initialize the Emacs class with either
8778 ANSI or Unicode API calls.
8779 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
8780 later.
8781 (w32_wnd_proc): If the character code sent by WM_CHAR or
8782 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
8783 original message. Call DefWindowProcW on NT and later.
8784
87852012-08-10 Glenn Morris <rgm@gnu.org>
8786
8787 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
8788
8789 * lisp.h (DIRECTORY_SEP): Let configure set it.
8790
87912012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
8792
8793 Use TSET for write access to Lisp_Object slots of struct terminal.
8794 * termhooks.h (TSET): New macro.
8795 * coding.c, terminal.c, xselect.c: Adjust users.
8796
87972012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
8798
8799 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
8800 the failing expression, include them in the error message.
8801 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
8802 * lisp.h (internal_condition_case_n): Update declaration.
8803
88042012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8805
8806 Inline functions to examine and change buffer overlays.
8807 * buffer.c (unchain_both): New function.
8808 * buffer.h (buffer_get_overlays, buffer_set_overlays):
8809 (buffer_has_overlays): New function.
8810 (enum overlay_type): New enum.
8811 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
8812 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
8813
88142012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8815
8816 Inline functions to examine and change buffer intervals.
8817 * alloc.c (mark_interval_tree): Remove.
8818 (MARK_INTERVAL_TREE): Simplify.
8819 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
8820 * intervals.c (buffer_balance_intervals): New function.
8821 (graft_intervals_into_buffer): Adjust indentation.
8822 (set_intervals_multibyte): Simplify.
8823 * buffer.h (BUF_INTERVALS): Remove.
8824 (buffer_get_intervals, buffer_set_intervals): New function.
8825 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
8826 * intervals.c, textprop.c: Adjust users.
8827
88282012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8829
8830 Inline functions to examine and change string intervals.
8831 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
8832 (string_get_intervals, string_set_intervals): New function.
8833 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
8834 * lread.c, print.c, textprop.c: Adjust users.
8835
88362012-08-08 Glenn Morris <rgm@gnu.org>
8837
8838 * lisp.mk (lisp): Remove language/persian.elc.
8839
88402012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8841
8842 Cleanup intervals.
8843 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
8844 (NULL_INTERVAL_P): Likewise. Adjust users.
8845 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
8846 Adjust comment. Move under #if 0.
8847 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
8848 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
8849
88502012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
8851
8852 Check total length of intervals with eassert.
8853 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
8854 * intervals.c: Change all users to eassert.
8855
88562012-08-07 Eli Zaretskii <eliz@gnu.org>
8857
8858 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
8859 Rename fields to match removal of FGET and WGET and disuse of
8860 INTERNAL_FIELD in Lisp_Cons.
8861
88622012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8863
8864 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
8865 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
8866 name since all xname users are fixed long time ago. Do not
8867 use INTERNAL_FIELD.
8868 (set_symbol_name, set_symbol_function, set_symbol_plist):
8869 (set_symbol_next, set_overlay_plist): New function.
8870 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
8871 (struct Lisp_Overlay): Likewise.
8872 (CVAR, MVAR, SVAR): Remove.
8873 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
8874 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
8875 * xterm.c: Adjust users.
8876 * .gdbinit: Change to use name field of struct Lisp_Symbol
8877 where appropriate.
8878
88792012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8880
8881 Basic functions to set Lisp_Object and pointer slots of intervals.
8882 * intervals.h (interval_set_parent, interval_set_object):
8883 (interval_set_left, interval_set_right, interval_set_plist):
8884 (interval_copy_parent): New function.
8885 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
8886 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
8887 Adjust indentation.
8888 (INTERVAL_SIZE): Remove. Adjust users.
8889 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
8890
88912012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8892
8893 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
8894 * process.h (PGET): Remove.
8895 (struct Lisp_Process): Do not use INTERNAL_FIELD.
8896 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
8897
88982012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8899
8900 Drop WGET and revert read access to Lisp_Objects slots of struct window.
8901 * window.h (WGET): Remove.
8902 (struct window): Do not use INTERNAL_FIELD.
8903 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
8904 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
8905 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
8906 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
8907 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
8908 Adjust users.
8909
89102012-08-07 Chong Yidong <cyd@gnu.org>
8911
8912 * window.c (Fwindow_edges, Fwindow_pixel_edges)
8913 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
8914 (Fdelete_window_internal): Signal an error if the window is not on
8915 a live frame (Bug#12025).
8916
89172012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
8918
8919 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
8920 * frame.h (FGET): Remove.
8921 (struct frame): Do not use INTERNAL_FIELD.
8922 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
8923 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
8924 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
8925 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
8926
89272012-08-06 Juanma Barranquero <lekktu@gmail.com>
8928
8929 * w32.c: Silence compiler warnings.
8930 (map_w32_filename): Remove unused variable `is_fat'.
8931 (chase_symlinks): Add parentheses around expression.
8932
89332012-08-06 Glenn Morris <rgm@gnu.org>
8934
8935 * sysdep.c: Respect BROKEN_GETWD.
8936
8937 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
8938 Let configure handle it.
8939 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
8940
89412012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8942
8943 Use GCALIGNMENT where appropriate.
8944 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
8945 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
8946 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
8947
89482012-08-06 Eli Zaretskii <eliz@gnu.org>
8949
8950 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
8951 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
8952
89532012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
8954
8955 * buffer.h (struct buffer): Revert `indirections' to a simple int;
8956 that should be sufficient for everyone.
8957
89582012-08-06 Jan Djärv <jan.h.d@swipnet.se>
8959
8960 * keyboard.c (timer_check_2): Add break so timer_check returns next
8961 timeout.
8962
89632012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8964
8965 Fix Windows build errors introduced after converting to WGET and WSET.
8966 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
8967 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
8968
89692012-08-06 Jan Djärv <jan.h.d@swipnet.se>
8970
8971 * nsterm.m (ns_frame_rehighlight): Use FSET.
8972
8973 * nsmenu.m (ns_update_menubar): Use FSET.
8974
89752012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8976
8977 Separate read and write access to Lisp_Object slots of Lisp_Process.
8978 * process.h (PGET, PSET): New macros similar to AREF and ASET.
8979 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
8980
89812012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8982
8983 Separate read and write access to Lisp_Object slots of struct window.
8984 * window.h (WGET, WSET): New macros similar to AREF and ASET.
8985 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
8986 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
8987 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
8988 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
8989 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
8990 Adjust users.
8991
89922012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
8993
8994 Fix Windows build errors introduced after converting to FGET and FSET.
8995 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
8996 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
8997 (w32_judge_scroll_bars): Change to use FSET.
8998 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
8999
90002012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
9001
9002 Fix replacement typo.
9003 * window.c (replace_window): Set root_window instead of
9004 selected_window. This fixes a total window subsystem
9005 malfunction reported by Bastien Guerry <bzg@gnu.org>.
9006
90072012-08-06 Glenn Morris <rgm@gnu.org>
9008
9009 * lisp.mk (lisp): Add language/persian.elc.
9010
90112012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
9012
9013 Separate read and write access to Lisp_Object slots of struct frame.
9014 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
9015 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
9016 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
9017 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
9018 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
9019
90202012-08-05 Andreas Schwab <schwab@linux-m68k.org>
9021
9022 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
9023
90242012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
9025
9026 Generalize common compile-time constants.
9027 * lisp.h (header_size, bool_header_size, word_size): Now here.
9028 (struct Lisp_Vector): Add comment.
9029 (struct Lisp_Bool_Vector): Move up to define handy constants.
9030 (VECSIZE, PSEUDOVECSIZE): Simplify.
9031 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
9032 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
9033 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
9034 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
9035 * xfont.c, xmenu.c: Use word_size where appropriate.
9036
90372012-08-05 Lawrence Mitchell <wence@gmx.li>
9038
9039 * search.c (Freplace_match): Treat \? in the replacement text
9040 literally (Bug#8161).
9041
90422012-08-05 Chong Yidong <cyd@gnu.org>
9043
9044 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
9045 * frame.c (Vdelete_frame_functions):
9046 * emacs.c (Vkill_emacs_hook): Doc fix.
9047
90482012-08-04 Eli Zaretskii <eliz@gnu.org>
9049
9050 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
9051 --with-x-toolkit=no builds.
9052 Reported by Carsten Mattner <carstenmattner@gmail.com>.
9053
90542012-08-04 Chong Yidong <cyd@gnu.org>
9055
9056 * syntax.c (Fmodify_syntax_entry): Doc fix.
9057
90582012-08-04 Eli Zaretskii <eliz@gnu.org>
9059
9060 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
9061 * w32.c (init_environment): Change the default values of many
9062 environment variables in dflt_envvars[] to NULL, to avoid pushing
9063 them into environment when they were not already defined.
9064 Remove the code that deletes site-lisp subdirectories from the default
9065 value of EMACSLOADPATH, as it is no longer needed.
9066 (check_windows_init_file): Now external, not static.
9067 Use Vload_path as is, without adding anything, as this function is now
9068 called when Vload_path is already set up.
9069
9070 * w32.h (check_windows_init_file): Add prototype.
9071
9072 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
9073 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
9074 compatibility with Posix platforms.
9075 (main): Move the call to check_windows_init_file to here from
9076 w32.c.
9077 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
9078 any, in the DEFALT argument into the root of the Emacs build or
9079 installation tree, as appropriate.
9080
9081 * callproc.c (init_callproc_1): Call decode_env_path instead of
9082 doing its equivalent by hand.
9083 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
9084 the code that sets Vexec_path run on MS-Windows.
9085
9086 * lread.c (init_lread): Add comments to #ifdef's.
9087
9088 * msdos.c (dos_set_window_size, IT_update_begin)
9089 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
9090 instead of direct references.
9091
90922012-08-04 Paul Eggert <eggert@cs.ucla.edu>
9093
9094 Export DEFAULT_REHASH_* to GDB.
9095 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
9096 Now constants, not macros.
9097
90982012-08-03 Paul Eggert <eggert@cs.ucla.edu>
9099
9100 Remove unnecessary casts involving pointers.
9101 These casts are no longer needed now that we assume C89 or later,
9102 since they involve casting to or from void *.
9103 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
9104 (make_pure_float, make_pure_vector):
9105 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
9106 * macros.c (Fstart_kbd_macro):
9107 * menu.c (find_and_return_menu_selection):
9108 * minibuf.c (read_minibuf_noninteractive):
9109 * sysdep.c (closedir):
9110 * xdisp.c (x_produce_glyphs):
9111 * xfaces.c (compare_fonts_by_sort_order):
9112 * xfns.c (x_real_positions, select_visual):
9113 * xselect.c (x_stop_queuing_selection_requests)
9114 (x_get_window_property, x_get_window_property_as_lisp_data):
9115 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
9116 Remove unnecessary pointer casts.
9117 * alloc.c (record_xmalloc): New function.
9118 * lisp.h (record_xmalloc): New decl.
9119 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
9120 more like a function. This is because the pointer cast is not
9121 needed. All uses changed.
9122 * print.c (print_string, print_error_message): Avoid length recalc.
9123
9124 Improve fix for macroexp crash with debugging (Bug#12118).
9125 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
9126 ARRAY_MARK_FLAG when checking subscripts, because ASET is
9127 not supposed to be invoked from the garbage collector.
9128 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
9129 (gc_aset): New function, which is like ASET but can be
9130 used in the garbage collector.
9131 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
9132 (set_hash_index): Use it instead of ASET.
9133
91342012-08-03 Eli Zaretskii <eliz@gnu.org>
9135
9136 Support symlinks on latest versions of MS-Windows.
9137 * w32.c: Include winioctl.h and aclapi.h.
9138 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
9139 (revert_to_self): Forward declarations of static functions.
9140 <static BOOL g_b_init_get_security_info>:
9141 <g_b_init_create_symbolic_link>: New static flags.
9142 (globals_of_w32): Initialize them to zero.
9143 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
9144 (map_w32_filename): Improve commentary. Simplify switch.
9145 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
9146 headers (most versions of MinGW w32api don't).
9147 (get_security_info, create_symbolic_link)
9148 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
9149 New functions.
9150 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
9151 in the argument file name.
9152 (sys_access): Call unc_volume_file_attributes only if
9153 GetFileAttributes fails with network-related error codes.
9154 (sys_rename): Diagnose renaming of a symlink when the user doesn't
9155 have the required privileges.
9156 (get_file_security_desc_by_name): Rename from
9157 get_file_security_desc.
9158 (stat_worker): New function, with most of the guts of 'stat', and
9159 with addition of handling of symlinks and support for 'lstat'.
9160 If possible, get file's attributes and security information by
9161 handle, not by name. Produce S_IFLNK bit for symlinks, when
9162 called from 'lstat'.
9163 (stat, lstat): New functions, call 'stat_worker'.
9164 (symlink, readlink, careadlinkat): Rewritten to create and resolve
9165 symlinks when the underlying filesystem supports them.
9166
91672012-08-02 Paul Eggert <eggert@cs.ucla.edu>
9168
9169 Fix macroexp crash on Windows with debugging (Bug#12118).
9170 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
9171 checking subscripts; problem introduced with the recent
9172 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
9173 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
9174 since it's used in non-static inline functions now.
9175
9176 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
9177 Don't assume buffer size fits in 'int'. Remove unused local.
9178
9179 Use C99-style 'extern inline' if available.
9180 * buffer.h (BUFFER_INLINE):
9181 * category.h (CATEGORY_INLINE):
9182 * character.h (CHARACTER_INLINE):
9183 * charset.h (CHARSET_INLINE):
9184 * composite.h (COMPOSITE_INLINE):
9185 * dispextern.h (DISPEXTERN_INLINE):
9186 * lisp.h (LISP_INLINE):
9187 * systime.h (SYSTIME_INLINE):
9188 New macro, replacing 'static inline' in this header.
9189 * buffer.h, category.h, character.h, charset.h, composite.h:
9190 * dispextern.h, lisp.h, systime.h:
9191 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
9192 * alloc.c (LISP_INLINE):
9193 * buffer.c (BUFFER_INLINE):
9194 * category.c (CATEGORY_INLINE):
9195 * character.c (CHARACTER_INLINE):
9196 * charset.c (CHARSET_INLINE):
9197 * composite.c (COMPOSITE_INLINE):
9198 * dispnew.c (DISPEXTERN_INLINE):
9199 * sysdep.c (SYSTIME_INLINE):
9200 Define to EXTERN_INLINE, so that the corresponding functions
9201 are compiled into code.
9202 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
9203 (INLINE_HEADER_END): New macros.
9204 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
9205 since it's used in non-static inline functions now.
9206 (VALMASK) [!USE_LSB_TAG]: Likewise.
9207
92082012-08-02 Glenn Morris <rgm@gnu.org>
9209
9210 * s/: Remove empty directory.
9211
9212 * s/ms-w32.h: Move to ../nt/inc.
9213 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
9214 Update for new ms-w32.h location.
9215
92162012-08-02 Paul Eggert <eggert@cs.ucla.edu>
9217
9218 Port to Solaris 8.
9219 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
9220
92212012-08-02 Glenn Morris <rgm@gnu.org>
9222
9223 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
9224 hard-coding the path separator.
9225
92262012-08-01 Paul Eggert <eggert@cs.ucla.edu>
9227
9228 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
9229 This how ASET and AREF are supposed to work, and makes
9230 it easier to think about future improvements. See
9231 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
9232 * charset.h (set_charset_attr): New function.
9233 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
9234 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
9235 (aref_addr): New function. All uses of &AREF(...) changed.
9236 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
9237 (set_hash_index): New functions. All lvalue-style uses of
9238 HASH_KEY etc. changed.
9239 * keyboard.c (set_prop): New function. All lvalue-style uses
9240 of PROP changed.
9241
92422012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
9243
9244 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
9245 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
9246 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
9247 * nsfns.m (ns_set_name_as_filename): Likewise.
9248 * nsmenu.m (ns_update_menubar): Likewise.
9249 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
9250
92512012-08-01 Eli Zaretskii <eliz@gnu.org>
9252
9253 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
9254 Adapt to latest changes in field names of the corresponding Lisp
9255 objects.
9256
9257 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
9258
92592012-08-01 Glenn Morris <rgm@gnu.org>
9260
9261 * s/msdos.h: Remove file.
9262 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
9263 * Makefile.in (S_FILE): Remove.
9264 (config_h): Remove S_FILE.
9265
92662012-08-01 Juanma Barranquero <lekktu@gmail.com>
9267
9268 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
9269 Remove; moved to nt/config.nt.
9270
92712012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9272
9273 Use INTERNAL_FIELD for conses and overlays.
9274 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
9275 Remove obsolete comment.
9276 (MVAR): New macro.
9277 (struct Lisp_Overlay): Use INTERNAL_FIELD.
9278 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
9279
92802012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9281
9282 Use INTERNAL_FIELD for symbols.
9283 * lisp.h (SVAR): New macro. Adjust users.
9284 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
9285 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
9286
92872012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9288
9289 Use INTERNAL_FIELD for processes.
9290 * process.h (PVAR): New macro. Adjust style.
9291 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
9292 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
9293
92942012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
9295
9296 Use INTERNAL_FIELD for windows.
9297 * window.h (WVAR): New macro.
9298 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
9299 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
9300 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
9301 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
9302 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
9303 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
9304
93052012-08-01 Paul Eggert <eggert@cs.ucla.edu>
9306
9307 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
9308
93092012-08-01 Glenn Morris <rgm@gnu.org>
9310
9311 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
9312 Move to configure.ac.
9313
93142012-08-01 Juanma Barranquero <lekktu@gmail.com>
9315
9316 * makefile.w32-in (CONFIG_H): Update dependencies.
9317 (CONF_POST_H): New macro.
9318
9319 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
9320
93212012-07-31 Glenn Morris <rgm@gnu.org>
9322
9323 * Makefile.in (S_FILE): No longer set by configure.
9324
9325 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
9326 is available.
9327 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
9328
9329 * process.h (NULL_DEVICE):
9330 * emacs.c (SEPCHAR):
9331 * editfns.c (USER_FULL_NAME): Let configure set them.
9332
9333 * s/README, s/template.h: Remove files.
9334
9335 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
9336
9337 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
9338 Move to configure.ac.
9339
93402012-07-31 Eli Zaretskii <eliz@gnu.org>
9341
9342 * .gdbinit (xframe): Adapt to introduction of FVAR and the
9343 resulting renaming of 'struct frame' members.
9344
9345 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
9346
9347 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
9348 after introduction of FVAR.
9349
93502012-07-31 Jan Djärv <jan.h.d@swipnet.se>
9351
9352 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
9353
9354 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
9355 instead of compositeToPoint.
9356 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
9357
9358 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
9359
93602012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
9361
9362 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
9363 * lisp.h (INTERNAL_FIELD): New macro.
9364 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
9365 (BVAR): Change to use INTERNAL_FIELD.
9366 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
9367 (KVAR): Change to use INTERNAL_FIELD.
9368 * frame.h (FVAR): New macro.
9369 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
9370 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
9371 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
9372 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
9373 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
9374
93752012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
9376
9377 Miscellaneous fixes for non-default X toolkits.
9378 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
9379 * xterm.c (x_frame_of_widget): Remove redundant prototype.
9380 Move under #ifdef USE_LUCID.
9381 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
9382 definition and usage to avoid warnings.
9383
93842012-07-31 Jan Djärv <jan.h.d@swipnet.se>
9385
9386 * nsterm.m (openFiles): Fix previous checkin.
9387
93882012-07-31 Paul Eggert <eggert@cs.ucla.edu>
9389
9390 * indent.c (compute_motion): Remove unused local.
9391
93922012-07-31 Glenn Morris <rgm@gnu.org>
9393
9394 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
9395
9396 * conf_post.h [USG5_4]:
9397 Move remaining contents of s/usg5-4-common.h here.
9398 * s/usg5-4-common.h: Remove file.
9399
9400 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
9401 * s/irix6-5.h: Remove file.
9402
9403 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
9404 * s/darwin.h: Remove file.
9405
9406 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
9407 * s/hpux10-20.h: Remove file, which is now empty.
9408
94092012-07-30 Glenn Morris <rgm@gnu.org>
9410
9411 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
9412 * Makefile.in (config_h): Add conf_post.h.
9413 * makefile.w32-in (CONFIG_H): Add conf_post.h.
9414
94152012-07-30 Jan Djärv <jan.h.d@swipnet.se>
9416
9417 * nsterm.m (ns_do_open_file): New variable.
9418 (ns_term_init): Set ns_do_open_file to YES after run returns.
9419 (openFile, openTempFile, openFileWithoutUI, openFiles):
9420 Open files only if ns_do_open_file.
9421
94222012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9423
9424 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
9425 This no-op macro hasn't been needed for many years.
9426 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
9427
9428 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
9429 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
9430 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
9431 gdb_make_enums_visible.
9432 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
9433 (DIRECTORY_SEP): Now a constant, not a macro.
9434
94352012-07-30 Eli Zaretskii <eliz@gnu.org>
9436
9437 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
9438 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
9439
9440 * w32term.c <w32_keyboard_codepage>: Renamed from
9441 keyboard_codepage and now external. All users changed.
9442
9443 * w32term.h: Add declaration of w32_keyboard_codepage.
9444
9445 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
9446 the codepage to translate keys to Unicode. If this argument is
9447 -1, use the value returned by GetConsoleCP. All callers changed.
9448
94492012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9450
9451 Update .PHONY listings in makefiles.
9452 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
9453 bootstrap-clean, distclean, maintainer-clean, versioclean,
9454 extraclean, frc.
9455
9456 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
9457 This is a bit clearer. Fix some commentary typos.
9458
94592012-07-30 Glenn Morris <rgm@gnu.org>
9460
9461 * s/netbsd.h: Let configure include signal.h if needed.
9462 Remove file, which is now empty.
9463
9464 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
9465 Let configure set them.
9466 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
9467 No more need to undefine.
9468
94692012-07-30 Andreas Schwab <schwab@linux-m68k.org>
9470
9471 * keymap.c (Fkey_description): Don't remove 0x80 bit from
9472 non-single-byte char when adding meta modifier. (Bug#12090)
9473
94742012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
9475
9476 Convert safe_call to use variable number of arguments.
9477 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
9478 (safe_call2): Fix comment.
9479 * lisp.h (safe_call): Adjust prototype.
9480 * coding.c (encode_coding_object): Change to use safe_call2.
9481 * xfaces.c (merge_face_heights): Change to use safe_call1.
9482
94832012-07-30 Glenn Morris <rgm@gnu.org>
9484
9485 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
9486 does that unconditionally. Remove file, which is now empty.
9487
9488 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
9489 Remove empty files.
9490
94912012-07-30 Paul Eggert <eggert@cs.ucla.edu>
9492
9493 Export to GDB most of lisp.h's remaining object-like macros.
9494 * lisp.h (min, max): Move earlier, because they're used earlier now.
9495 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
9496 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
9497 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
9498 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
9499 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
9500 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
9501 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
9502 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
9503 Now constants, for GDB. They need not be macros.
9504 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
9505 Now constants, for GDB, as well as macros, for static initializers.
9506 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
9507 Move to after the definition of struct Lisp_Char_Table,
9508 since the former now needs that type defined.
9509 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
9510 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
9511 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
9512 New enums, for gdb_make_enums_visible.
9513 (GLYPH_MODE_LINE_FACE): Remove; unused.
9514 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
9515 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
9516 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
9517 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
9518 enum maxargs, enum MAX_ALLOCA.
9519 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
9520 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
9521 no longer needed, now that they are done in lisp.h.
9522
95232012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
9524
9525 Cleanup string bytes checking.
9526 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
9527 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
9528 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
9529 (check_sblock, compact_small_strings): Simplify.
9530
95312012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9532
9533 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
9534 These macros are confusing and no longer need to be defined, as
9535 the enum values now suffice. All uses replaced with definiens.
9536 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
9537
95382012-07-29 Juanma Barranquero <lekktu@gmail.com>
9539
9540 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
9541 ($(BLD)/w32console.$(O)): Update dependencies.
9542
95432012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9544
9545 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
9546 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
9547 time. Adjust users.
9548 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
9549
95502012-07-29 Jan Djärv <jan.h.d@swipnet.se>
9551
9552 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
9553 setting sitelisp (Bug#12010).
9554
95552012-07-29 Eli Zaretskii <eliz@gnu.org>
9556
9557 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
9558
9559 * w32heap.c (cache_system_info):
9560 * w32.c (sys_rename):
9561 * w32proc.c (find_child_console, sys_kill): All users changed.
9562
95632012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9564
9565 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
9566
95672012-07-29 Eli Zaretskii <eliz@gnu.org>
9568
9569 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
9570
95712012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9572
9573 Cleanup statistics calculation in Fgarbage_collect.
9574 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
9575 Fix zombies percentage calculation. Simplify elapsed time calculation.
9576
95772012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
9578
9579 Generalize marker debugging code under MARKER_DEBUG and use eassert.
9580 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
9581 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
9582 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
9583 (replace_range, replace_range_2, del_range_2): Change to eassert.
9584 * marker.c (byte_char_debug_check): Adjust style.
9585
95862012-07-29 Paul Eggert <eggert@cs.ucla.edu>
9587
9588 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
9589 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
9590 long-ago-commented-out code that talks about "WIN32".
9591 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
9592 All uses changed.
9593
95942012-07-28 Paul Eggert <eggert@cs.ucla.edu>
9595
9596 Use Gnulib stdalign module (Bug#9772, Bug#9960).
9597 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
9598 Simplify by using alignof.
9599 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
9600 * lisp.h: Include <stdalign.h>.
9601 (GCALIGNMENT): New macro and constant.
9602 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
9603 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
9604 (stdalign): New macro, if not already defined.
9605
96062012-07-28 Eli Zaretskii <eliz@gnu.org>
9607
9608 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
9609 * w32inevt.c: Include w32inevt.h.
9610 (w32_read_console_input): New inline function, calls either
9611 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
9612 w32_console_unicode_input.
9613 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
9614 (w32_kbd_patch_key, key_event): Use the codepage returned by
9615 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
9616 (key_event): use uChar.UnicodeChar only if
9617 w32_console_unicode_input is non-zero.
9618
9619 * w32console.c: Include w32heap.h.
9620 <w32_console_unicode_input>: New global variable.
9621 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
9622 family of Windows, zero otherwise.
9623
9624 * w32inevt.h: Declare w32_console_unicode_input.
9625
9626 * xdisp.c (init_iterator): Don't reference tip_frame in a build
9627 --without-x. (Bug#11742)
9628
96292012-07-27 Paul Eggert <eggert@cs.ucla.edu>
9630
9631 Adjust GDB to reflect pvec_type changes (Bug#12036).
9632 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
9633 2012-07-04 changes to pseudovector representation.
9634 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
9635
96362012-07-27 Michael Albinus <michael.albinus@gmx.de>
9637
9638 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
9639 bus address.
9640 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
9641
96422012-07-27 Eli Zaretskii <eliz@gnu.org>
9643
9644 * alloc.c (listn): Fix the order the arguments are consed onto the
9645 list.
9646
9647 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
9648 enumeration constants, as PURE and HEAP are too general, and clash
9649 with other headers and sources, such as gmalloc.c and the
9650 MS-Windows system headers. All users changed.
9651
96522012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9653
9654 Revert last save_excursion_save and save_excursion_restore changes.
9655 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
9656 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
9657
96582012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9659
9660 Fix recently-introduced typos in Windows port.
9661 Reported by Martin Rudalics <rudalics@gmx.at>.
9662 * w32.c (init_environment): Replace comma with semicolon.
9663 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
9664
96652012-07-27 Paul Eggert <eggert@cs.ucla.edu>
9666
9667 Improve GDB symbol export (Bug#12036).
9668 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
9669 arms of an 'if', not using conditional expressions; otherwise GDB
9670 complains about the types in the unevaluated arm when the argument
9671 is an integer literal.
9672 (xgetint): Simplify expression.
9673 * alloc.c (gdb_make_enums_visible): New constant. This ports to
9674 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
9675 Zaretskii in <http://bugs.gnu.org/12036#13>.
9676 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
9677 needed now that we have gdb_make_enums_visible.
9678 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
9679 (enum enum_USE_LSB_TAG):
9680 New enum types, packaging up enums that need to be exported to GDB.
9681
96822012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9683
9684 Utility function to make a list from specified amount of objects.
9685 * lisp.h (enum constype): New datatype.
9686 (listn): New prototype.
9687 * alloc.c (listn): New function.
9688 (Fmemory_use_count, syms_of_alloc): Use it.
9689 * buffer.c (syms_of_buffer): Likewise.
9690 * callint.c (syms_of_callint): Likewise.
9691 * charset.c (define_charset_internal): Likewise.
9692 * coding.c (syms_of_coding): Likewise.
9693 * keymap.c (syms_of_keymap): Likewise.
9694 * search.c (syms_of_search): Likewise.
9695 * syntax.c (syms_of_syntax): Likewise.
9696 * w32.c (init_environment): Likewise.
9697 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
9698 * xdisp.c (syms_of_xdisp): Likewise.
9699 * xfns.c (syms_of_xfns): Likewise.
9700
97012012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
9702
9703 Fast save_excursion_save and save_excursion_restore.
9704 * lisp.h (struct Lisp_Excursion): New data type.
9705 (PVEC_EXCURSION): New pseudovector type.
9706 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
9707 to deal with it. Adjust comments.
9708 (init_marker, attach_marker): New prototype.
9709 (unchain_marker): Adjust prototype.
9710 * marker.c (attach_marker): Change to global.
9711 (init_marker): New function.
9712 * alloc.c (Fmake_marker, build_marker): Use it.
9713 (build_marker): More easserts.
9714 (mark_object): Handle struct Lisp_Excursion.
9715 * editfns.c (save_excursion_save, save_excursion_restore):
9716 Reimplement to use struct Lisp_Excursion. Add comments.
9717
97182012-07-26 Paul Eggert <eggert@cs.ucla.edu>
9719
9720 Fix export of symbols to GDB (Bug#12036).
9721 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
9722 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
9723 emacs.c, as this is a more-suitable home. Had this been done earlier
9724 the fix for 12036 would have avoided some of the problems noted in
9725 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
9726 would have been more obvious.
9727 * emacs.c: Do not include <verify.h>; no longer needed.
9728 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
9729 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
9730 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
9731 Remove; now done in lisp.h.
9732 * lisp.h (PUBLISH_TO_GDB): New macro.
9733 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
9734 (DATA_SEG_BITS): Use it.
9735 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
9736 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
9737 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
9738 not be usable in #if. This simplifies things.
9739
97402012-07-26 Juanma Barranquero <lekktu@gmail.com>
9741
9742 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
9743
97442012-07-26 Paul Eggert <eggert@cs.ucla.edu>
9745
9746 Simplify export of symbols to GDB (Bug#12036).
9747 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
9748 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
9749 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
9750 Adjust to changes in lisp.h and emacs.c, by using
9751 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
9752 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
9753 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
9754 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
9755 instead of gdb_valbits.
9756 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
9757 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
9758 instead of gdb_array_mark_flag.
9759 (xboolvector): Get size from $->size, not $->header.size.
9760 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
9761 (xreload, hook-run, hookpost-run): Remove.
9762 * emacs.c: Include <verify.h>.
9763 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
9764 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
9765 Remove.
9766 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
9767 (gdb_USE_LSB_TAG): New enum constants.
9768 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
9769 Also define these as enum constants, so they're visible to GDB.
9770 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
9771 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
9772 as constants, so they're visible to GDB.
9773 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
9774 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
9775 Now enum constants, not macros, so they're visible to GDB.
9776 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
9777 more convenient now. All uses changed.
9778 (VALMASK) [USE_LSB_TAG]: Also define in this case.
9779 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
9780
97812012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
9782
9783 Explicitly free restriction data that are not needed anymore.
9784 * editfns.c (save_restriction_restore): Free restriction data.
9785
97862012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
9787
9788 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
9789 add argument, tune behavior, and adjust all callers.
9790
97912012-07-25 Paul Eggert <eggert@cs.ucla.edu>
9792
9793 Use typedef for EMACS_INT, EMACS_UINT.
9794 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
9795 than macros. This simplifies debugging in the usual case, since
9796 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
9797 and it allows expressions involving EMACS_INT casts.
9798 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
9799
98002012-07-25 Jan Djärv <jan.h.d@swipnet.se>
9801
9802 * nsterm.m (ns_read_socket): Return early if there is a modal
9803 window (Bug#12043).
9804
98052012-07-25 Martin Rudalics <rudalics@gmx.at>
9806
9807 * frame.c (Fredirect_frame_focus): In doc-string don't mention
9808 that FOCUS-FRAME can be omitted.
9809
98102012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
9811
9812 Adjust buffer text indirection counters at the end of Fkill_buffer.
9813 * buffer.c (Fkill_buffer): Adjust indirection counters when the
9814 buffer is definitely dead. This should really fix an issue reported
9815 by Christoph Scholtes again. (Bug#12007).
9816 (init_buffer_once): Initialize indirection counters of
9817 buffer_defaults and buffer_local_symbols (for sanity and safety).
9818
98192012-07-24 Eli Zaretskii <eliz@gnu.org>
9820
9821 * xdisp.c (init_iterator): Don't compute dimensions of truncation
9822 and continuation glyphs on tooltip frames, leave them at zero.
9823 Avoids continued lines in tooltips. (Bug#11832)
9824
98252012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
9826
9827 Simplify copy_overlay.
9828 * buffer.c (copy_overlay): Simplify. Use build_marker.
9829 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
9830
98312012-07-23 Eli Zaretskii <eliz@gnu.org>
9832
9833 * print.c (print_object): Don't crash when a frame's name is nil
9834 or invalid. (Bug#12025)
9835
9836 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
9837 it signals an error when a tooltip frame is being created.
9838
98392012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
9840
9841 Cleanup miscellaneous objects allocation and initialization.
9842 * alloc.c (allocate_misc): Change to static. Add argument to
9843 specify the subtype. Adjust comment and users.
9844 (build_overlay): New function.
9845 * buffer.c (copy_overlays, Fmake_overlay): Use it.
9846 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
9847 (allocate_misc): Remove prototype.
9848 (build_overlay): Add prototype.
9849
98502012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
9851
9852 Swap buffer text indirection counters in Fbuffer_swap_text.
9853 * buffer.c (Fbuffer_swap_text): Swap indirections too.
9854 This avoids crash reported by Christoph Scholtes at
9855 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
9856
98572012-07-22 Jan Djärv <jan.h.d@swipnet.se>
9858
9859 * nsmenu.m (Popdown_data): New struct.
9860 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
9861 free Popdown_data.
9862 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
9863 (initWithContentRect): Make imgView and contentView non-static
9864 and autorelease them. Also autorelease img and matrix (Bug#12005).
9865 (dealloc): Remove (Bug#12005).
9866
98672012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
9868
9869 Adjust consing_since_gc when objects are explicitly freed.
9870 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
9871 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
9872 (free_cons, free_misc): Subtract object size from consing_since_gc.
9873
98742012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
9875
9876 Simplify and cleanup markers positioning code.
9877 * marker.c (attach_marker): More useful eassert.
9878 (live_buffer, set_marker_internal): New function.
9879 (Fset_marker, set_marker_restricted): Use set_marker_internal.
9880 (set_marker_both, set_marker_restricted_both): Use live_buffer.
9881
98822012-07-22 Paul Eggert <eggert@cs.ucla.edu>
9883
9884 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
9885 as it's limited by the amount of memory, not by INT_MAX.
9886
98872012-07-21 Eli Zaretskii <eliz@gnu.org>
9888
9889 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
9890 in special-event-map. See the discussion at
9891 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
9892 for the reasons.
9893
9894 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
9895 info.dwItemData. Fixes crashes on 64-bit Windows.
9896 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
9897
98982012-07-21 Jan Djärv <jan.h.d@swipnet.se>
9899
9900 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
9901 (conversationIdentifier): Return value is NSInteger.
9902 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
9903
99042012-07-21 Chong Yidong <cyd@gnu.org>
9905
9906 * window.c (decode_any_window): Signal an error if the window is
9907 on a dead frame (Bug#11984).
9908
99092012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9910
9911 Add indirection counting to speed up Fkill_buffer.
9912 * buffer.h (struct buffer): New member.
9913 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
9914 (Fmake_indirect_buffer): Set indirection counter to -1, increment
9915 base buffer indirection counter.
9916 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
9917 (Fkill_buffer): Adjust indirection counters as needed, don't walk
9918 through buffer list if indirection counter is 0.
9919
99202012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9921
9922 Extend the value returned by Fgarbage_collect with heap statistics.
9923 * alloc.c (Qheap): New symbol.
9924 (syms_of_alloc): DEFSYM it.
9925 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
9926 (Fmemory_free): Remove.
9927 (syms_of_alloc): Don't defsubr it.
9928 * buffer.c (Fcompact_buffer): Remove.
9929 (syms_of_buffer): Don't defsubr it.
9930
99312012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9932
9933 Make maybe_gc inline.
9934 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
9935 * lisp.h (consing_since_gc, gc_relative_threshold)
9936 (memory_full_cons_threshold): Revert declaration.
9937 (maybe_gc): Remove prototype, define as inline.
9938 * alloc.c: Remove old commented-out code.
9939 (consing_since_gc, gc_relative_threshold)
9940 (memory_full_cons_threshold): Revert to global.
9941 (maybe_gc): Remove.
9942
99432012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9944
9945 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
9946 * lisp.h (build_unibyte_string): New function.
9947 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
9948 * sysdep.c, w32fns.c, xfns.c: Use it.
9949 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
9950 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
9951 Adjust users accordingly.
9952 * font.h (font_open_by_name): Adjust prototype.
9953
99542012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
9955
9956 Cleanup calls to Fgarbage_collect.
9957 * lisp.h (maybe_gc): New prototype.
9958 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
9959 Remove declarations.
9960 * alloc.c (maybe_gc): New function.
9961 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
9962 Make them static.
9963 * bytecode.c (MAYBE_GC): Use maybe_gc.
9964 * eval.c (eval_sub, Ffuncall): Likewise.
9965 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
9966 to avoid dependency from auto-save feature.
9967
99682012-07-19 Paul Eggert <eggert@cs.ucla.edu>
9969
9970 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
9971 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
9972 'for_each_per_buffer_object_at'.
9973 All uses changed. It's better to use upper-case for macros that
9974 cannot be implemented as functions, to give the reader a clue
9975 that they're special.
9976
99772012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
9978
9979 * alloc.c (Fgarbage_collect): Tweak docstring.
9980
99812012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
9982
9983 Tweak the value returned from Fgarbage_collect again.
9984 * alloc.c (Fgarbage_collect): New return value, as confirmed in
9985 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
9986 Adjust documentation.
9987 (total_vector_bytes): Rename to total_vector_slots, adjust
9988 accounting.
9989 (total_free_vector_bytes): Rename to total_free_vector_slots,
9990 adjust accounting.
9991 (Qstring_bytes, Qvector_slots): New symbols.
9992 (syms_of_alloc): DEFSYM them.
9993
99942012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
9995
9996 Buffer compaction primitive which may be used from Lisp.
9997 * buffer.c (compact_buffer, Fcompact_buffer): New function.
9998 (syms_of_buffer): Register Fcompact_buffer.
9999 * alloc.c (Fgarbage_collect): Use compact_buffer.
10000 * buffer.h (compact_buffer): New prototype.
10001 (struct buffer_text): New member.
10002
100032012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
10004
10005 New macro to iterate over all buffers, miscellaneous cleanups.
10006 * lisp.h (all_buffers): Remove declaration.
10007 * buffer.h (all_buffers): Add declaration, with comment.
10008 (for_each_buffer): New macro.
10009 * alloc.c (Fgarbage_collect, mark_object): Use it.
10010 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
10011 (init_buffer): Likewise.
10012 * data.c (Fset_default): Likewise.
10013 * coding.c (code_conversion_restore): Remove redundant check
10014 for dead buffer.
10015 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
10016
100172012-07-18 Andreas Schwab <schwab@linux-m68k.org>
10018
10019 Fix bug that created negative-length intervals.
10020 * intervals.c (merge_interval_right, merge_interval_left):
10021 Do not zero out this interval if it is absorbed by its children,
10022 as this interval's total length doesn't change in that case. See
10023 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
10024
100252012-07-18 Paul Eggert <eggert@cs.ucla.edu>
10026
10027 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
10028 when invoking (make-bool-vector N t) and N is a positive
10029 multiple of 8 -- the last 8 bits were mistakenly cleared.
10030
10031 Remove some struct layout assumptions in bool vectors.
10032 * alloc.c (bool_header_size): New constant.
10033 (header_size, word_size): Move earlier, as they're now used earlier.
10034 Use 'word_size' in a few more places, where it's appropriate.
10035 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
10036 padding before the data member of a bool vector.
10037 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
10038 than doing the check by hand with an abort ().
10039
100402012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
10041
10042 * eval.c (Fdefvar): Don't check constants since we only set the var if
10043 it's not yet defined anyway (bug#11904).
10044
10045 * lisp.h (last_undo_boundary): Declare new var.
10046 * keyboard.c (command_loop_1): Set it.
10047 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
10048 were auto-added by the command loop (bug#11774).
10049
100502012-07-18 Andreas Schwab <schwab@linux-m68k.org>
10051
10052 * w32font.c (Qsymbol): Remove local definition.
10053 (syms_of_w32font): Don't DEFSYM it.
10054
100552012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
10056
10057 Fix sweep_vectors to handle large bool vectors correctly.
10058 * alloc.c (sweep_vectors): Account total_vector_bytes for
10059 bool vectors larger than VBLOCK_BYTES_MAX.
10060
100612012-07-18 Chong Yidong <cyd@gnu.org>
10062
10063 * frame.c (x_set_frame_parameters): Revert bogus change introduced
10064 in 2012-05-25 commit by Paul Eggert (Bug#11738).
10065
100662012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
10067
10068 Return more descriptive data from Fgarbage_collect.
10069 Suggested by Stefan Monnier in
10070 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
10071 * alloc.c (bounded_number): New function.
10072 (total_buffers, total_vectors): New variable.
10073 (total_string_size): Rename to total_string_bytes, adjust users.
10074 (total_vector_size): Rename to total_vector_bytes, adjust users.
10075 (sweep_vectors): Account total_vectors and total_vector_bytes.
10076 (Fgarbage_collect): New return value. Adjust documentation.
10077 (gc_sweep): Account total_buffers.
10078 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
10079 (VECTOR_SIZE): Remove.
10080 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
10081 (Qinterval, Qmisc): New symbols.
10082 (syms_of_data): Initialize them.
10083 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
10084 (Qcons, Qbuffer): New declarations.
10085
100862012-07-17 Paul Eggert <eggert@cs.ucla.edu>
10087
10088 * alloc.c (Fmemory_free): Account for memory-free's own storage.
10089 Round up, not down. Improve doc.
10090
100912012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10092
10093 Restore old code in allocate_string_data to avoid Faset breakage.
10094 Reported by Julien Danjou <julien@danjou.info> in
10095 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
10096 * alloc.c (allocate_string_data): Restore old code with minor
10097 adjustments, fix comment to explain this subtle issue.
10098
100992012-07-17 Eli Zaretskii <eliz@gnu.org>
10100
10101 Remove FILE_SYSTEM_CASE.
10102 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
10103
10104 * fileio.c (FILE_SYSTEM_CASE): Don't define.
10105 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
10106 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
10107 call-process-region passes it through expand-file-name.
10108
10109 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
10110
101112012-07-17 Andreas Schwab <schwab@linux-m68k.org>
10112
10113 Fix crash when creating indirect buffer (Bug#11917)
10114 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
10115 Don't handle unbound variables specially if non-zero.
10116 (Fbuffer_local_variables): Pass zero.
10117 (clone_per_buffer_values): Pass non-zero.
10118
101192012-07-17 Andreas Schwab <schwab@linux-m68k.org>
10120
10121 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
10122 to make the loop interruptible.
10123
101242012-07-17 Andreas Schwab <schwab@linux-m68k.org>
10125
10126 * gnutls.c (emacs_gnutls_handshake): Only retry if
10127 GNUTLS_E_INTERRUPTED.
10128
101292012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10130
10131 Cleanup and convert miscellaneous checks to eassert.
10132 * alloc.c (mark_interval): Fix comment, partially rephrase
10133 old comment from intervals.h (see below).
10134 * intervals.c (find_interval, adjust_intervals_for_insertion)
10135 (delete_interval, adjust_intervals_for_deletion)
10136 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
10137 Convert to eassert.
10138 (adjust_intervals_for_insertion, make_new_interval):
10139 Remove obsolete and unused code.
10140 * intervals.h (struct interval): Remove obsolete comment.
10141 * textprotp.c (erase_properties): Remove unused code.
10142 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
10143 (Fremove_list_of_text_properties): Convert to eassert.
10144
101452012-07-17 Chong Yidong <cyd@gnu.org>
10146
10147 * editfns.c (Finsert_char): Doc fix.
10148
101492012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10150
10151 Fix previous change to make Fmemory_free always accurate.
10152 * alloc.c (make_interval): Update total_free_intervals.
10153 (make_float): Likewise for total_free_floats.
10154 (free_cons, Fcons): Likewise for total_free_conses.
10155 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
10156 Likewise for total_free_vector_bytes.
10157 (Fmake_symbol): Likewise for total_free_symbols.
10158 (bytes_free): Remove.
10159
101602012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10161
10162 Simple free memory accounting feature.
10163 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
10164 (sweep_vectors): Accumulate size of free vectors.
10165 (Fgarbage_collect): Setup bytes_free.
10166 (Fmemory_free): New function.
10167 (syms_of_alloc): Register it.
10168
101692012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
10170
10171 Cleanup overlays checking.
10172 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
10173 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
10174 eassert and OVERLAYP.
10175 (sort_overlays): Change to use OVERLAYP.
10176
101772012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
10178
10179 * editfns.c (Finsert_char): Make it interactive, and make the
10180 second arg optional. Copy interactive spec and docstring from
10181 ucs-insert.
10182
101832012-07-17 Paul Eggert <eggert@cs.ucla.edu>
10184
10185 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
10186 Unlike the other wrapped functions, fabs has an unspecified
10187 effect on errno.
10188
101892012-07-16 Jan Djärv <jan.h.d@swipnet.se>
10190
10191 * nsterm.m (keyDown): Interpret flags without left/right bits
10192 as the left key (Bug#11670).
10193
101942012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
10195
10196 Remove empty and useless init functions.
10197 * lisp.h (init_character_once, init_fns, init_image)
10198 (init_filelock, init_sound): Remove prototype.
10199 * character.c (init_character_once): Remove.
10200 * filelock.c (init_filelock): Likewise.
10201 * fns.c (init_fns): Likewise.
10202 * image.c (init_image): Likewise.
10203 * sound.c (init_sound): Likewise.
10204 * emacs.c (main): Adjust accordingly.
10205
102062012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
10207
10208 * gtkutil.h: Tiny cleanups.
10209 (use_old_gtk_file_dialog): Remove useless declaration.
10210 (xg_uses_old_file_dialog): Add suggested const attribute.
10211
102122012-07-15 Eli Zaretskii <eliz@gnu.org>
10213
10214 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
10215 (bidi_paragraph_init): Use it to limit search forward for a strong
10216 directional character in abnormally large paragraphs full of
10217 neutral or weak characters. (Bug#11943)
10218
102192012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
10220
10221 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
10222 the toolbar (Bug#9451).
10223 (xg_make_tool_item): Give the widget event box a transparent
10224 background.
10225
102262012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
10227
10228 Cleanup basic allocation variables and functions.
10229 * alloc.c (ignore_warnings, init_intervals, init_float)
10230 (init_cons, init_symbol, init_marker): Remove.
10231 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
10232 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
10233 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
10234 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
10235 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
10236 (staticidx, init_alloc_once, init_strings, free_ablock):
10237 Remove redundant initialization.
10238 * fns.c (init_weak_hash_tables): Remove.
10239 * lisp.h (init_weak_hash_tables): Remove prototype.
10240
102412012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
10242
10243 Use zero_vector where appropriate.
10244 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
10245 accordingly.
10246 * lisp.h (zero_vector): New declaration.
10247 * font.c (null_vector): Remove.
10248 (syms_of_font): Remove initialization and staticpro.
10249 (font_list_entities, font_find_for_lface): Change to use zero_vector.
10250 * keymap.c (Faccessible_keymaps): Likewise.
10251
102522012-07-15 Leo Liu <sdl.web@gmail.com>
10253
10254 * fringe.c: Fix typo in comments.
10255
102562012-07-14 Leo Liu <sdl.web@gmail.com>
10257
10258 * fringe.c: Add a new bitmap exclamation-mark.
10259
102602012-07-14 Eli Zaretskii <eliz@gnu.org>
10261
10262 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
10263
10264 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
10265 (HAVE_MENUS): Don't define, defined by editing config.in with
10266 msdos/sed2v2.inp.
10267 (GMALLOC_INHIBIT_VALLOC): Don't define.
10268 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
10269
102702012-07-14 Juanma Barranquero <lekktu@gmail.com>
10271
10272 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
10273
102742012-07-14 Glenn Morris <rgm@gnu.org>
10275
10276 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
10277 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
10278 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
10279
102802012-07-13 Glenn Morris <rgm@gnu.org>
10281
10282 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
10283
10284 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
10285 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
10286
102872012-07-13 Jan Djärv <jan.h.d@swipnet.se>
10288
10289 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
10290 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
10291 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
10292 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
10293 where appropriate.
10294 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
10295 as boolean expression.
10296 (x_set_window_size): Remove unused variable toolbar.
10297 (ns_get_color_default, ns_mod_to_lisp): Remove.
10298 (ns_mouse_position): Remove unused variables xchar and ychar.
10299 (ns_compute_glyph_string_overhangs): Remove unused variable face.
10300 (ns_set_vertical_scroll_bar): Remove unused variable count.
10301 (ns_delete_terminal): Remove unused variable i.
10302 (ns_term_init): Remove unused variables r, g and b.
10303 (mouseDown): Remove unused variable window.
10304 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
10305 (initFrameFromEmacs): Remove unused variable vbextra.
10306 (mouseEntered): Remove unused variables p and dpyinfo.
10307 (mouseExited): Remove unused variables p and r.
10308 (ns_define_frame_cursor, ns_clear_frame_area)
10309 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
10310 (menuDown): Assign [sender tag] to variable and cast the variable.
10311
10312 * nsterm.h (menuDown): Add id as type to argument sender.
10313 (ns_display_info_for_name): Add Lisp_Object argument.
10314 (ns_term_init): Add Lisp_Object argument.
10315 (ns_map_event_to_object): Add void argument.
10316 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
10317 prototype with arguments and only declare if __OBJC__.
10318 (nxatoms_of_nsselect): Add void argument.
10319 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
10320 (ns_alloc_autorelease_pool): Add void argument.
10321 (ns_release_autorelease_pool): Add void* argument.
10322 (ns_get_defaults_value): Add const char* argument.
10323
10324 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
10325 (initFromContents): Use SSDATA where appropriate.
10326 (ns_update_menubar): Add braces to ambigous if-else.
10327 (initWithTitle): Put () around assignment in if statement.
10328 (ns_menu_show): Remove unused variables window and keymap.
10329 (update_frame_tool_bar): Remove unused variable selected_p.
10330 (initWithContentRect): Remove unused variable this_cmd_name.
10331
10332 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
10333 appropriate.
10334 (setXBMColor): Remove unused variable len.
10335 (setPixmapData): Put () around assignment in loop statement.
10336
10337 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
10338 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
10339 where appropriate.
10340 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
10341 around assignment in loop statement.
10342 (nsfont_open): Remove unused variable i.
10343 (nsfont_open): Remove unused variable len.
10344 (nsfont_draw): Remove unused variable cs.
10345
10346 * nsfns.m (x_set_icon_name, ns_set_name_internal)
10347 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
10348 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
10349 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
10350 (Fns_font_name, Fns_perform_service)
10351 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
10352 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
10353 (ns_set_name): Remove unused variable view.
10354 (x_set_menu_bar_lines): Remove unused variable olines.
10355 (x_set_tool_bar_lines): Remove unused variable root_window.
10356 (Fns_list_colors): Put () around assignment in while statement.
10357 (Fns_perform_service): Remove unused variable len.
10358 (Fns_display_usable_bounds): Remove unused variable top.
10359 (syms_of_nsfns): Remove unused variable i.
10360
10361 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
10362 memcpy (Bug#11907).
10363
103642012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
10365
10366 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
10367 and free it with DestroyExceptionInfo (Bug#11558).
10368
103692012-07-13 Juanma Barranquero <lekktu@gmail.com>
10370
10371 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
10372 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
10373 Set here, not in nt/config.nt.
10374
103752012-07-13 Eli Zaretskii <eliz@gnu.org>
10376
10377 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
10378 cursor overflow into the last glyph on display line when the right
10379 fringe is off. (Bug#11832)
10380
103812012-07-13 Paul Eggert <eggert@cs.ucla.edu>
10382
10383 * xdisp.c (produce_special_glyphs): Now static.
10384 * dispextern.h (produce_special_glyphs): Remove decl.
10385
103862012-07-13 Glenn Morris <rgm@gnu.org>
10387
10388 * s/bsd-common.h, s/cygwin.h: Remove empty files.
10389 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
10390
10391 * s/usg5-4-common.h (USG, USG5):
10392 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
10393 * s/sol2-6.h (SOLARIS2):
10394 * s/irix6-5.h (IRIX6_5):
10395 * s/hpux10-20.h (USG, USG5, HPUX):
10396 * s/gnu-linux.h (USG, GNU_LINUX):
10397 * s/freebsd.h (BSD_SYSTEM):
10398 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
10399 * s/cygwin.h (CYGWIN):
10400 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
10401 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
10402
104032012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
10404
10405 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
10406
104072012-07-13 Glenn Morris <rgm@gnu.org>
10408
10409 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
10410
10411 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
10412
10413 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
10414 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
10415
104162012-07-12 Glenn Morris <rgm@gnu.org>
10417
10418 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
10419
10420 * process.c (init_process_emacs): Rename from init_process.
10421 The old name is also the name of a Mach system call.
10422 * lisp.h, emacs.c: Update for this name change.
10423 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
10424 longer needed.
10425
104262012-07-12 Eli Zaretskii <eliz@gnu.org>
10427
10428 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
10429 memmove call that removes glyphs covered by the left truncation
10430 glyph. Improve commentary.
10431 (display_line): Fix display of continuation glyphs on GUI frames
10432 when the right fringe is turned off and variable-size fonts are
10433 used in the window. Move the code that appends a stretch glyph to
10434 produce_special_glyphs, so that it could be used for truncation
10435 and continuation glyphs alike.
10436 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
10437 glyph of a suitably computed width, to align the special glyphs at
10438 the window margin. Code moved from display_line. (Bug#11832)
10439
104402012-07-12 Glenn Morris <rgm@gnu.org>
10441
10442 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
10443
10444 * s/gnu-linux.h, s/hpux10-20.h:
10445 Do not unconditionally define HAVE_XRMSETDATABASE.
10446
10447 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
10448
104492012-07-12 Paul Eggert <eggert@cs.ucla.edu>
10450
10451 Fix typos that broke OS X build.
10452 Reported by Randal L. Schwartz in
10453 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
10454 * nsterm.m (ns_timeout): Add missing local decl.
10455 (ns_get_color): snprintf -> sprintf, to fix typo.
10456
104572012-07-12 Glenn Morris <rgm@gnu.org>
10458
10459 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
10460 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
10461 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
10462 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
10463
10464 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
10465 Move PTY_OPEN to configure.
10466
10467 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10468 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
10469 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
10470
104712012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
10472
10473 Use empty_unibyte_string where applicable.
10474 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
10475 * lread.c (read1): Likewise.
10476 * xsettings.c (syms_of_xsettings): Likewise.
10477
104782012-07-12 Glenn Morris <rgm@gnu.org>
10479
10480 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
10481 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
10482 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
10483 * s/hpux10-20.h (RUN_TIME_REMAP):
10484 * s/bsd-common.h (TABDLY): Move to configure.
10485
10486 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
10487
10488 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
10489
10490 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
10491 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
10492
10493 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
10494
10495 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
10496 * s/template.h: Move NARROWPROTO to configure.
10497
104982012-07-11 Glenn Morris <rgm@gnu.org>
10499
10500 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
10501 unused since 2011-01-17 change to systty.h.
10502
10503 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
10504 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
10505 Move HAVE_PTYS and HAVE_SOCKETS to configure.
10506
105072012-07-11 Paul Eggert <eggert@cs.ucla.edu>
10508
10509 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
10510
105112012-07-11 Glenn Morris <rgm@gnu.org>
10512
10513 * s/darwin.h, s/gnu-linux.h, s/template.h:
10514 Move INTERRUPT_INPUT to configure.
10515
105162012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10517
10518 Minor adjustments to interning code.
10519 * lisp.h (intern, intern_c_string): Redefine as static inline
10520 wrappers for intern_1 and intern_c_string_1, respectively.
10521 (intern_1, intern_c_string_1): Rename prototypes.
10522 * lread.c (intern_1, intern_c_string_1, oblookup):
10523 Simplify Vobarray checking.
10524 * font.c (font_intern_prop): Likewise. Adjust comment.
10525 * w32font.c (intern_font_name): Likewise.
10526
105272012-07-11 Andreas Schwab <schwab@linux-m68k.org>
10528
10529 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
10530
10531 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
10532 of Fcar/Fcdr if possible.
10533 * font.c (check_otf_features): Likewise.
10534 * fontset.c (Fnew_fontset): Likewise.
10535 * gnutls.c (Fgnutls_boot): Likewise.
10536 * minibuf.c (read_minibuf): Likewise.
10537 * msdos.c (IT_set_frame_parameters): Likewise.
10538 * xmenu.c (Fx_popup_dialog): Likewise.
10539 * w32menu.c (Fx_popup_dialog): Likewise.
10540
105412012-07-11 Glenn Morris <rgm@gnu.org>
10542
10543 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
10544 since nothing has defined it on these platforms.
10545
10546 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
10547 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
10548
10549 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
10550 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
10551 Move CLASH_DETECTION to configure.
10552
10553 * s/gnu.h: Remove file, which is now empty.
10554
10555 * s/gnu.h, s/gnu-linux.h:
10556 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
10557
105582012-07-11 John Wiegley <johnw@newartisans.com>
10559
10560 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
10561 function attribute, so we only use it if it exists in the
10562 compiler.
10563
105642012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10565
10566 Avoid call to strlen in fast_c_string_match_ignore_case.
10567 * search.c (fast_c_string_match_ignore_case): Change to use
10568 length argument. Adjust users accordingly.
10569 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
10570
105712012-07-11 Paul Eggert <eggert@cs.ucla.edu>
10572
10573 Assume mkdir, rmdir.
10574 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
10575 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
10576
10577 Assume rename.
10578 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
10579
10580 Assume perror.
10581 * s/hpux10-20.h (HAVE_PERROR): Remove.
10582 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
10583 Remove dummy definition, as this problem was obsolete long ago.
10584
10585 Assume strerror.
10586 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
10587
105882012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
10589
10590 Avoid calls to strlen in font processing functions.
10591 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
10592 (font_open_by_name): Change to use length argument.
10593 Adjust users accordingly.
10594 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
10595 Adjust prototypes.
10596 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
10597 Change to return ptrdiff_t.
10598 (xfont_list_pattern, xfont_match): Use length returned by
10599 xfont_decode_coding_xlfd.
10600 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
10601
106022012-07-11 Glenn Morris <rgm@gnu.org>
10603
10604 * s/darwin.h, s/freebsd.h, s/netbsd.h:
10605 Move DONT_REOPEN_PTY to configure.
10606
10607 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
10608 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
10609
106102012-07-10 Paul Eggert <eggert@cs.ucla.edu>
10611
10612 Remove "#define unix" that is no longer needed (Bug#11905).
10613 * s/aix4-2.h (unix): Remove; no longer needed.
10614
10615 EMACS_TIME simplification (Bug#11875).
10616 This replaces macros (which typically do not work in GDB)
10617 with functions, typedefs and enums, making the code easier to debug.
10618 The functional style also makes code easier to read and maintain.
10619 * systime.h: Include <sys/time.h> on all hosts, not just if
10620 WINDOWSNT, since 'struct timeval' is needed in general.
10621 (EMACS_TIME): Now a typedef, not a macro.
10622 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
10623 not macros.
10624 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
10625 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
10626 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
10627 (EMACS_TIME_LE): Now functions, not macros.
10628 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
10629 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
10630 which are not functions. All uses rewritten to use:
10631 (make_emacs_time): New function.
10632 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
10633 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
10634 not functions. All uses rewritten to use the following, respectively:
10635 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
10636 (add_emacs_time, sub_emacs_time): New functions.
10637 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
10638 * fileio.c (Fcopy_file):
10639 * xterm.c (XTflash): Get the current time closer to when it's used.
10640 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
10641
10642 * bytecode.c (targets): Suppress -Woverride-init warnings.
10643
10644 Simplify by avoiding confusing use of strncpy etc.
10645 * doc.c (Fsnarf_documentation):
10646 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
10647 * frame.c (Fmake_terminal_frame):
10648 * gtkutil.c (get_utf8_string):
10649 * lread.c (openp):
10650 * nsmenu.m (ns_update_menubar):
10651 * regex.c (regerror):
10652 Prefer memcpy to strncpy and strncat when either will do.
10653 * fileio.c (Fsubstitute_in_file_name):
10654 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
10655 (menu_separator_name_p):
10656 * nsmenu.m (ns_update_menubar):
10657 Prefer memcmp to strncmp when either will do.
10658 * nsterm.m: Include <ftoastr.h>.
10659 (ns_get_color):
10660 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
10661 Prefer snprintf to strncpy.
10662 * nsterm.m (ns_term_init):
10663 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
10664 * nsterm.m (ns_term_init):
10665 Avoid the need for strncpy, by using build_string or
10666 make_unibyte_string directly. Use dtoastr, not snprintf.
10667 * process.c (Fmake_network_process): Diagnose service names that
10668 are too long, rather than silently truncating them or creating
10669 non-null-terminated names.
10670 (Fnetwork_interface_info): Likewise, for interface names.
10671 * sysdep.c (system_process_attributes) [GNU_LINUX]:
10672 Prefer sprintf to strncat.
10673 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
10674 Prefer vsnprintf to vsprintf + strncpy.
10675
106762012-07-10 Glenn Morris <rgm@gnu.org>
10677
10678 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
10679 Clarify fallback case.
10680
106812012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10682
10683 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
10684 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
10685 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
10686 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
10687 where argument type is known to be a Lisp_Cons.
10688
106892012-07-10 Tom Tromey <tromey@redhat.com>
10690
10691 * bytecode.c (BYTE_CODE_THREADED): New macro.
10692 (BYTE_CODES): New macro. Replaces all old byte-code defines.
10693 (enum byte_code_op): New type.
10694 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
10695 (exec_byte_code): Use them. Use token threading when applicable.
10696
106972012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10698
10699 Optimize pure C strings initialization.
10700 * lisp.h (make_pure_string): Fix prototype.
10701 (build_pure_c_string): New function, defined as static inline. This
10702 provides a better opportunity to optimize away calls to strlen when
10703 the function is called with compile-time constant argument.
10704 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
10705 argument, adjust users accordingly. Use build_pure_c_string where
10706 appropriate.
10707 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
10708 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
10709 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
10710
107112012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10712
10713 Avoid calls to strlen in miscellaneous functions.
10714 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
10715 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
10716 * lread.c (openp): Likewise.
10717
107182012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
10719
10720 Avoid calls to strlen in path processing functions.
10721 * fileio.c (file_name_as_directory): Add comment. Change to add
10722 srclen argument and return the length of result. Adjust users
10723 accordingly.
10724 (directory_file_name): Fix comment. Change to add srclen argument,
10725 swap 1st and 2nd arguments to obey the common convention.
10726 Adjust users accordingly.
10727 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
10728
107292012-07-10 Glenn Morris <rgm@gnu.org>
10730
10731 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
10732 Move PENDING_OUTPUT_COUNT definition to configure.
10733
10734 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
10735 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
10736 * s/gnu.h (DATA_START): Move definitions to configure.
10737
10738 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
10739 We include usg5-4-common.h, which defines them both.
10740
10741 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
10742 O_RDONLY already includes it).
10743
10744 Stop ns builds setting the EMACSLOADPATH environment variable.
10745 * nsterm.m (ns_load_path): Rename from ns_init_paths.
10746 Now it does not set EMACSLOADPATH, just returns the load-path string.
10747 * nsterm.h: Update accordingly.
10748 * lread.c [HAVE_NS]: Include nsterm.h.
10749 (init_lread) [HAVE_NS]: Use ns_load_path.
10750 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
10751
107522012-07-09 Glenn Morris <rgm@gnu.org>
10753
10754 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
10755 since the included bsd-common.h does so.
10756
10757 Stop ns builds setting the EMACSPATH environment variable.
10758 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
10759 (ns_init_paths): Do not set EMACSPATH.
10760 * nsterm.h (ns_exec_path): Add it.
10761 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
10762 Use ns_exec_path.
10763
10764 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
10765
107662012-07-09 Paul Eggert <eggert@cs.ucla.edu>
10767
10768 * process.c (wait_reading_process_output): 'waitchannels' was unset
10769 when read_kbd || !NILP (wait_for_cell); fix this.
10770
10771 Add GCC-style 'const' attribute to functions that can use it.
10772 * character.h (char_resolve_modifier_mask):
10773 * keyboard.h (make_ctrl_char):
10774 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
10775 (init_character_once, next_almost_prime, init_fns, init_image)
10776 (flush_pending_output, init_sound):
10777 * mem-limits.h (start_of_data):
10778 * menu.h (finish_menu_items):
10779 Add ATTRIBUTE_CONST.
10780 * emacs.c (DEFINE_DUMMY_FUNCTION):
10781 Declare the dummy function with ATTRIBUTE_CONST.
10782 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
10783 Add decls with ATTRIBUTE_CONST.
10784
10785 Minor improvements to make_formatted_string.
10786 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
10787 where int is good enough, as vsprintf returns an int.
10788 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
10789
107902012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
10791
10792 Use make_formatted_string to avoid double length calculation.
10793 * lisp.h (make_formatted_string): New prototype.
10794 * alloc.c (make_formatted_string): New function.
10795 * buffer.c (Fgenerate_new_buffer_name): Use it.
10796 * dbusbind.c (syms_of_dbusbind): Likewise.
10797 * editfns.c (Fcurrent_time_zone): Likewise.
10798 * filelock.c (get_boot_time): Likewise.
10799 * frame.c (make_terminal_frame, set_term_frame_name)
10800 (x_report_frame_params): Likewise.
10801 * image.c (gs_load): Likewise.
10802 * minibuf.c (get_minibuffer): Likewise.
10803 * msdos.c (dos_set_window_size): Likewise.
10804 * process.c (make_process): Likewise.
10805 * xdisp.c (ensure_echo_area_buffers): Likewise.
10806 * xsettings.c (apply_xft_settings): Likewise.
10807
108082012-07-09 Glenn Morris <rgm@gnu.org>
10809
10810 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
10811 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
10812 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
10813 * nsterm.h (ns_etc_directory): Add it.
10814 * callproc.c [HAVE_NS]: Include nsterm.h.
10815 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
10816
108172012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
10818
10819 Move marker debugging code under MARKER_DEBUG.
10820 * marker.c (MARKER_DEBUG): Move marker debugging code under
10821 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
10822 for bootstrap with --enable-checking (~3x slowdown reported
10823 by Juanma Barranquero <lekktu@gmail.com>).
10824 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
10825
108262012-07-08 Paul Eggert <eggert@cs.ucla.edu>
10827
10828 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
10829 See <http://bugs.gnu.org/11825#29>.
10830
108312012-07-08 Eli Zaretskii <eliz@gnu.org>
10832
10833 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
10834 has no font, use the frame's font. (Bug#11813)
10835 (display_line): Add commentary about displaying truncation glyphs
10836 on GUI frames.
10837 (produce_special_glyphs): Move here from term.c.
10838
10839 * term.c (produce_special_glyphs): Move to xdisp.c.
10840
10841 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
10842 section.
10843
108442012-07-07 Andreas Schwab <schwab@linux-m68k.org>
10845
10846 * xdisp.c (display_line): Avoid warning about implicit declaration
10847 of FRAME_FONT.
10848
10849 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
10850
10851 * lisp.h: Remove empty conditional.
10852
108532012-07-07 Paul Eggert <eggert@cs.ucla.edu>
10854
10855 * lread.c (load_path_check): Now static.
10856
10857 Fix some minor --with-ns problems found by static checking.
10858 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
10859 (x_set_font) [!HAVE_X_WINDOWS]:
10860 * image.c (xpm_load_image) [HAVE_NS]:
10861 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
10862 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
10863 Remove unused local.
10864 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
10865 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
10866 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
10867 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
10868 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
10869 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
10870 Fix pointer signedness problem.
10871 * xfaces.c (FRAME_X_FONT_TABLE):
10872 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
10873
108742012-07-07 Glenn Morris <rgm@gnu.org>
10875
10876 * lread.c (load_path_check): New function, split from init_lread.
10877 (init_lread): Reorganize. Motivation:
10878 If EMACSLOADPATH is set, check/warn about that rather than the
10879 defaults, which we are not going to use. Hence we can remove
10880 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
10881 Don't warn if site-lisp directories are missing.
10882 If not installed, start from a blank load-path, since
10883 PATH_LOADSEARCH refers to the eventual installation directories.
10884
108852012-07-07 Eli Zaretskii <eliz@gnu.org>
10886
10887 Support truncation and continuation glyphs on GUI frames, when
10888 fringes are disabled. (Bug#11832)
10889 * xdisp.c (init_iterator): Get dimensions of truncation and
10890 continuation glyphs even if on GUI frames.
10891 Adjust it->last_visible_x on GUI frames when the left or right fringes,
10892 or both, are absent.
10893 (start_display, move_it_in_display_line_to): Handle the case of a
10894 GUI frame without a fringe to display continuation or truncation
10895 glyphs.
10896 (insert_left_trunc_glyphs): Support GUI frames: make sure
10897 truncation glyphs overwrite enough glyphs from the current line to
10898 have sufficient space in pixels.
10899 (display_line): Support truncation and continuation glyphs on GUI
10900 frames. If some spare pixels are left on the line after inserting
10901 the truncation glyphs, fill that space with a stretch glyph of a
10902 suitably computed width.
10903
10904 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
10905 produce_glyphs, to support GUI sessions.
10906
109072012-07-07 Paul Eggert <eggert@cs.ucla.edu>
10908
10909 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
10910
10911 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
10912
10913 Do not require float-time's arg to fit in time_t (Bug#11825).
10914 This works better on hosts where time_t is unsigned, and where
10915 float-time is applied to the (negative) difference between two times.
10916 * editfns.c (decode_time_components): Last arg is now double *,
10917 not int *, and means to store all the result as a double, without
10918 worrying about whether the seconds part fits in time_t.
10919 All callers changed.
10920 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
10921 All callers changed.
10922 (Ffloat_time): Do not fail merely because the specified time falls
10923 outside of time_t range.
10924
109252012-07-07 Glenn Morris <rgm@gnu.org>
10926
10927 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
10928 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
10929 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
10930
109312012-07-07 Juanma Barranquero <lekktu@gmail.com>
10932
10933 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
10934 Update dependencies.
10935
10936 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
10937
109382012-07-06 Paul Eggert <eggert@cs.ucla.edu>
10939
10940 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
10941 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
10942 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
10943 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
10944 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
10945 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
10946
10947 * xfont.c (compare_font_names): Redo to omit the need for casts.
10948
109492012-07-06 Andreas Schwab <schwab@linux-m68k.org>
10950
10951 * xfns.c (Fx_change_window_property): Doc fix.
10952 * w32fns.c (Fx_change_window_property): Doc fix.
10953
10954 * w32fns.c (Fx_window_property): Accept the same arguments as the
10955 X Windows version. Doc fix.
10956 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
10957
109582012-07-06 Juanma Barranquero <lekktu@gmail.com>
10959 Eli Zaretskii <eliz@gnu.org>
10960
10961 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
10962 Windows-specific code from nt/config.nt moved here.
10963 Obsolete settings removed.
10964
109652012-07-06 Paul Eggert <eggert@cs.ucla.edu>
10966
10967 * process.c: Avoid unnecessary calls to gettime.
10968 (wait_reading_process_output): Don't get the time of day
10969 when gobbling data immediately and not waiting, as there's no need
10970 for it in that case. This removes a FIXME.
10971
109722012-07-06 Jan Djärv <jan.h.d@swipnet.se>
10973
10974 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
10975 is defined (Bug#11768).
10976
109772012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10978
10979 Fix marker debugging code.
10980 * marker.c (byte_char_debug_check): Do not perform the check
10981 if buffer is not multibyte.
10982 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
10983 Call byte_char_debug_check with correct arguments.
10984
109852012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10986
10987 Compile marker debugging code only if ENABLE_CHECKING is defined.
10988 * marker.c (byte_char_debug_check, count_markers):
10989 Use only if ENABLE_CHECKING is defined.
10990 (byte_debug_flag): Remove.
10991 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
10992 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
10993
109942012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
10995
10996 Avoid code repetition in marker-related functions.
10997 * marker.c (attach_marker): New function.
10998 (Fset_marker, set_marker_restricted, set_marker_both)
10999 (set_marker_restricted_both): Use it.
11000 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
11001 Consistently rename charno to charpos.
11002 (marker_position): Add eassert.
11003 (marker_byte_position): Convert to eassert.
11004
110052012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11006
11007 Simplify list operations in unchain_overlay and unchain_marker.
11008 * buffer.c (unchain_overlay): Simplify. Add comment.
11009 * marker.c (unchain_marker): Simplify. Fix comments.
11010
110112012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11012
11013 Introduce fast path for the widely used marker operation.
11014 * alloc.c (build_marker): New function.
11015 * lisp.h (build_marker): New prototype.
11016 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
11017 * composite.c (autocmp_chars): Likewise.
11018 * editfns.c (buildmark): Remove.
11019 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
11020 (save_restriction_save): Use build_marker.
11021 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
11022 * window.c (save_window_save): Likewise.
11023
110242012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
11025
11026 Do not use Fdelete_overlay in delete_all_overlays
11027 to avoid redundant calls to unchain_overlay.
11028 * buffer.c (drop_overlay): New function.
11029 (delete_all_overlays, Fdelete_overlay): Use it.
11030 * minibuf.c (get_minibuffer): Fix comment.
11031
110322012-07-06 Paul Eggert <eggert@cs.ucla.edu>
11033
11034 Port to OpenBSD 5.1 amd64.
11035 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
11036 This is needed for OpenBSD, and should be harmless on all BSD systems.
11037 Also, include <sys/sysctl.h>, as it should be available on all
11038 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
11039 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
11040 use p_pid member, not kp_proc.pid.
11041
110422012-07-06 Glenn Morris <rgm@gnu.org>
11043
11044 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
11045
110462012-07-05 Paul Eggert <eggert@cs.ucla.edu>
11047
11048 More xmalloc and related cleanup.
11049 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
11050 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
11051 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
11052 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
11053 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
11054 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
11055 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
11056 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
11057 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
11058 * xterm.c:
11059 Omit needless casts involving void * pointers and allocation.
11060 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
11061 as the former is more robust if P's type is changed.
11062 Prefer xzalloc to xmalloc + memset 0.
11063 Simplify malloc-or-realloc to realloc.
11064 Don't worry about xmalloc returning a null pointer.
11065 Prefer xstrdup to xmalloc + strcpy.
11066 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
11067 growing it.
11068 * keyboard.c (apply_modifiers_uncached): Prefer local array to
11069 alloca of a constant.
11070
110712012-07-05 Eli Zaretskii <eliz@gnu.org>
11072
11073 * xdisp.c (display_line): Fix horizontal pixel coordinates when
11074 hscroll is larger than the line width. Fixes long and futile
11075 looping inside extend_face_to_end_of_line (on a TTY) producing
11076 glyphs that are not needed and thrown away.
11077
110782012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
11079
11080 * marker.c (set_marker_restricted_both): Simplify by using
11081 clip_to_bounds.
11082
110832012-07-05 Paul Eggert <eggert@cs.ucla.edu>
11084
11085 * editfns.c (region_limit): Simplify by using clip_to_bounds.
11086
110872012-07-05 Jan Djärv <jan.h.d@swipnet.se>
11088
11089 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
11090 not defined (Bug#11768).
11091 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
11092 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
11093 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
11094 followed by gtk_box_set_homogeneous (Bug#11768).
11095 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
11096 (update_theme_scrollbar_width, xg_create_scroll_bar):
11097 Use gtk_scrollbar_new (Bug#11768).
11098 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
11099 (is_box_type): New function (Bug#11768).
11100 (xg_tool_item_stale_p): Call is_box_type.
11101 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
11102 with default display (Bug#11768).
11103
111042012-07-05 Eli Zaretskii <eliz@gnu.org>
11105
11106 * xdisp.c (window_hscroll_limited): New function.
11107 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
11108 coordinates when window's hscroll is set to insanely large
11109 values. (Bug#11857)
11110
111112012-07-05 Juanma Barranquero <lekktu@gmail.com>
11112
11113 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
11114 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
11115
111162012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
11117
11118 Cleanup xmalloc.
11119 * lisp.h (xzalloc): New prototype. Omit needless casts.
11120 * alloc.c (xzalloc): New function. Omit needless casts.
11121 * charset.c: Omit needless casts. Convert all calls to
11122 xmalloc with following memset to xzalloc.
11123 * dispnew.c: Likewise.
11124 * fringe.c: Likewise.
11125 * image.c: Likewise.
11126 * sound.c: Likewise.
11127 * term.c: Likewise.
11128 * w32fns.c: Likewise.
11129 * w32font.c: Likewise.
11130 * w32term.c: Likewise.
11131 * xfaces.c: Likewise.
11132 * xfns.c: Likewise.
11133 * xterm.c: Likewise.
11134 * atimer.c: Omit needless casts.
11135 * buffer.c: Likewise.
11136 * callproc.c: Likewise.
11137 * ccl.c: Likewise.
11138 * coding.c: Likewise.
11139 * composite.c: Likewise.
11140 * doc.c: Likewise.
11141 * doprnt.c: Likewise.
11142 * editfns.c: Likewise.
11143 * emacs.c: Likewise.
11144 * eval.c: Likewise.
11145 * filelock.c: Likewise.
11146 * fns.c: Likewise.
11147 * gtkutil.c: Likewise.
11148 * keyboard.c: Likewise.
11149 * lisp.h: Likewise.
11150 * lread.c: Likewise.
11151 * minibuf.c: Likewise.
11152 * msdos.c: Likewise.
11153 * print.c: Likewise.
11154 * process.c: Likewise.
11155 * region-cache.c: Likewise.
11156 * search.c: Likewise.
11157 * sysdep.c: Likewise.
11158 * termcap.c: Likewise.
11159 * terminal.c: Likewise.
11160 * tparam.c: Likewise.
11161 * w16select.c: Likewise.
11162 * w32.c: Likewise.
11163 * w32reg.c: Likewise.
11164 * w32select.c: Likewise.
11165 * w32uniscribe.c: Likewise.
11166 * widget.c: Likewise.
11167 * xdisp.c: Likewise.
11168 * xmenu.c: Likewise.
11169 * xrdb.c: Likewise.
11170 * xselect.c: Likewise.
11171
111722012-07-05 Paul Eggert <eggert@cs.ucla.edu>
11173
11174 * fileio.c (time_error_value): Check the right error number.
11175 Problem reported by Troels Nielsen in
11176 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
11177
111782012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11179
11180 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
11181 This should be fixed in a better way; see Eli Zaretskii in
11182 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
11183 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
11184
11185 * fileio.c (time_error_value): Rename from special_mtime.
11186 The old name's problems were noted by Eli Zaretskii in
11187 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
11188
11189 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
11190 This variable's comment says Emacs needs at least one GDB-visible
11191 symbol of type enum pvec_type, to work around GDB problems.
11192 The symbol's value doesn't matter.
11193
11194 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
11195 that causes compilation to fail on pre-C99 compilers.
11196
111972012-07-04 Juanma Barranquero <lekktu@gmail.com>
11198
11199 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
11200 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
11201
112022012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
11203
11204 * buffer.c (init_buffer_once): Fix initialization of
11205 headers for buffer_defaults and buffer_local_symbols.
11206 Reported by Juanma Barranquero <lekktu@gmail.com>.
11207
112082012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
11209
11210 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
11211 * lisp.h (enum pvec_type): Use fewer bits.
11212 (PSEUDOVECTOR_SIZE_BITS): New constant.
11213 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
11214 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
11215 change in pvec_type.
11216 (PSEUDOVECTOR_TYPEP): New macro.
11217 (TYPED_PSEUDOVECTORP): Use it.
11218 * fns.c (internal_equal): Adapt code to extract pvectype.
11219 * emacs.c (gdb_pvec_type): Update type.
11220 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
11221 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
11222 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
11223 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
11224 (sweep_vectors): Use it. Use local var `total_bytes' instead of
11225 abusing vector->header.next.nbytes.
11226 (live_vector_p): Use PVEC_TYPE.
11227 (mark_object): Adapt code to extract pvectype. Use switch.
11228
112292012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11230
11231 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
11232 Tighten new eassert a bit.
11233
112342012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
11235
11236 Fix compilation with --enable-gcc-warnings and -O1
11237 optimization level.
11238 * doprnt.c (doprnt): Change type of tem to int, initialize
11239 to avoid compiler warning. Add eassert.
11240 * search.c (simple_search): Initialize match_byte to avoid
11241 compiler warning. Add eassert.
11242
112432012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11244
11245 Avoid weird behavior with large horizontal scrolls.
11246 Without this change, for example, large hscroll values would
11247 mess up Emacs's display on Fedora 15 x86, presumably due to
11248 overflows in int calculations in the display code.
11249 Also, if buffers had long lines, Emacs would freeze.
11250 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
11251 (set_window_hscroll): New function, containing the old guts of
11252 Fset_window_hscroll. Return the clipped value.
11253 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
11254 This avoids the need to check against PTRDIFF_MAX.
11255
11256 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
11257
112582012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
11259
11260 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
11261
112622012-07-04 Paul Eggert <eggert@cs.ucla.edu>
11263
11264 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
11265 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
11266 since GCC 4.4.6 issues a bogus warning for them.
11267
11268 Fix bugs in file timestamp newness comparisons.
11269 * fileio.c (Ffile_newer_than_file_p):
11270 * lread.c (Fload): Use full timestamp resolution of files,
11271 not just the 1-second resolution, so that files that are only
11272 slightly newer still count as newer.
11273 * fileio.c (Ffile_newer_than_file_p): Don't assume file
11274 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
11275
112762012-07-03 Paul Eggert <eggert@cs.ucla.edu>
11277
11278 * fileio.c: Improve handling of file time marker. (Bug#11852)
11279 (special_mtime): New function.
11280 (Finsert_file_contents, Fverify_visited_file_modtime):
11281 Use it to set special mtime values consistently.
11282
112832012-07-03 Andreas Schwab <schwab@linux-m68k.org>
11284
11285 * fileio.c (Finsert_file_contents): Properly handle st_mtime
11286 marker for non-existing file. (Bug#11852)
11287
112882012-07-03 Glenn Morris <rgm@gnu.org>
11289
11290 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
11291 and did not make it into globals.h).
11292
112932012-07-03 Tom Tromey <tromey@redhat.com>
11294
11295 * window.c (Fset_window_margins, Fset_window_fringes)
11296 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
11297 * textprop.c (Fprevious_property_change): No longer static.
11298 * syntax.c (Fsyntax_table_p): No longer static.
11299 * process.c (Fget_process, Fprocess_datagram_address): No longer
11300 static.
11301 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
11302 * keyboard.c (Fcommand_execute): No longer static.
11303 Remove EXFUN.
11304 * insdel.c (Fcombine_after_change_execute): No longer static.
11305 * image.c (Finit_image_library): No longer static.
11306 * fileio.c (Fmake_symbolic_link): No longer static.
11307 * eval.c (Ffetch_bytecode): No longer static.
11308 * editfns.c (Fuser_full_name): No longer static.
11309 * doc.c (Fdocumentation_property, Fsnarf_documentation):
11310 No longer static.
11311 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
11312 static.
11313 * dired.c (Ffile_attributes): No longer static.
11314 * composite.c (Fcomposition_get_gstring): No longer static.
11315 * callproc.c (Fgetenv_internal): No longer static.
11316
11317 * ccl.h: Remove EXFUNs.
11318 * buffer.h: Remove EXFUNs.
11319 * dispextern.h: Remove EXFUNs.
11320 * intervals.h: Remove EXFUNs.
11321 * fontset.h: Remove EXFUN.
11322 * font.h: Remove EXFUNs.
11323 * dosfns.c (system_process_attributes): Remove EXFUN.
11324 * keymap.h: Remove EXFUNs.
11325 * lisp.h: Remove EXFUNs.
11326 * w32term.h: Remove EXFUNs.
11327 * window.h: Remove EXFUNs.
11328 * xsettings.h: Remove EXFUN.
11329 * xterm.h: Remove EXFUN.
11330
113312012-07-03 Glenn Morris <rgm@gnu.org>
11332
11333 * lisp.h (Frandom): Make it visible to C.
11334 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
11335 buffer for invisible buffers. (Bug#1229)
11336
113372012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11338
11339 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
11340 values which aren't power of 2.
11341 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
11342 Verify its value and the value of VECTOR_BLOCK_SIZE. Adjust users
11343 accordingly.
11344
113452012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
11346
11347 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
11348
11349 * alloc.c (mark_object): Revert part of last patch to use `switch'.
11350
113512012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11352
11353 * alloc.c (allocate_vector_block): Remove redundant
11354 calls to mallopt if DOUG_LEA_MALLOC is defined.
11355 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
11356 avoid calls to mallopt if zero_vector is returned.
11357
113582012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11359
11360 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
11361 is enabled, avoid dereferencing NULL current_sblock if
11362 running undumped.
11363
113642012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
11365
11366 Cleanup basic buffer management.
11367 * buffer.h (struct buffer): Change layout to use generic vector
11368 marking code. Fix some comments. Change type of 'clip_changed'
11369 to bitfield. Remove unused #ifndef old.
11370 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
11371 (GET_OVERLAYS_AT): Fix indentation.
11372 (for_each_per_buffer_object_at): New macro.
11373 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
11374 (Fbuffer_local_variables): Use it.
11375 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
11376 * alloc.c (allocate_buffer): Adjust to match new layout of
11377 struct buffer. Fix comment.
11378 (mark_overlay): New function.
11379 (mark_buffer): Use it. Use mark_vectorlike to mark normal
11380 Lisp area of struct buffer.
11381 (mark_object): Use it. Adjust marking of misc objects
11382 and related comments.
11383
113842012-07-02 Paul Eggert <eggert@cs.ucla.edu>
11385
11386 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
11387 wrapper that is not needed because the wrapped code is a no-op (zero
11388 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
11389 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
11390
113912012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
11392
11393 * alloc.c (mark_buffer): Simplify. Remove prototype.
11394 (mark_object): Add comment. Reorganize marking of vector-like
11395 objects. Use CHECK_LIVE for all vector-like objects except buffers
11396 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
11397 Avoid redundant calls to mark_vectorlike for bool vectors.
11398
113992012-06-30 Glenn Morris <rgm@gnu.org>
11400
11401 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
11402
11403 * epaths.in (PATH_SITELOADSEARCH): New.
11404 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
11405 This is rather than relying on --enable-locallisppath elements
11406 having "site-lisp" in their names. (Bug#10208#25, 11658)
11407
114082012-06-30 Eli Zaretskii <eliz@gnu.org>
11409
11410 * w32proc.c (sys_select): Accept and ignore one more argument.
11411
11412 * w32.c (emacs_gnutls_pull): Call select with one more argument.
11413
11414 * sysselect.h [DOS_NT]: Don't include sys/select.h.
11415 (pselect) [!MS_DOS]: Redirect to sys_select.
11416
11417 * sysdep.c: Don't include dos.h and dosfns.h.
11418
11419 * process.c (sys_select):
11420 * msdos.c (sys_select): Accept one more argument and ignore it.
11421
11422 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
11423 adapt data types and code to that.
11424
11425 * dosfns.c:
11426 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
11427 which clashes with the gnulib function of the same name.
11428
114292012-06-30 Andreas Schwab <schwab@linux-m68k.org>
11430
11431 * font.c (font_style_to_value, font_style_symbolic)
11432 (font_prop_validate_style): Add type checks for values in
11433 font_style_table.
11434
11435 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
11436 argument.
11437 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
11438 uses.
11439
114402012-06-29 Eli Zaretskii <eliz@gnu.org>
11441
11442 * xdisp.c (try_window_id): Undo last change.
11443
11444 * w32.c (getwd): Adjust commentary about startup_dir.
11445 (init_environment): Always call sys_access, even in non-MSVC
11446 builds. Don't chdir to the directory of the Emacs executable.
11447 This undoes code from 1997 which was justified by the need to
11448 "avoid conflicts when removing and renaming directories". But its
11449 downside was that every relative file name was being interpreted
11450 relative to the directory of the Emacs executable, which can never
11451 be TRT. In particular, it broke sys_access when called with
11452 relative file names.
11453 (sys_access): Map GetLastError to errno.
11454
114552012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11456
11457 * window.h (struct window): Change type of 'fringes_outside_margins'
11458 to bitfield. Fix comment. Adjust users accordingly.
11459 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
11460 Adjust comment.
11461 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
11462 to ptrdiff_t.
11463
114642012-06-29 Andreas Schwab <schwab@linux-m68k.org>
11465
11466 * gnutls.c (emacs_gnutls_handshake):
11467 Add QUIT to make the loop interruptible.
11468
114692012-06-29 Glenn Morris <rgm@gnu.org>
11470
11471 * charset.c (init_charset): Make lack of etc/charsets fatal.
11472
114732012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11474
11475 * editfns.c (region_limit): Fix type mismatch.
11476
114772012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
11478
11479 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
11480 undefined. Convert from xassert to eassert.
11481 * nsmenu.m: Convert from xassert to eassert.
11482 * nsterm.m: Likewise.
11483
114842012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
11485
11486 * editfns.c (region_limit): Clip to narrowing (bug#11770).
11487
114882012-06-28 Paul Eggert <eggert@cs.ucla.edu>
11489
11490 Avoid integer overflow on scroll-left and scroll-right.
11491 * window.c (HSCROLL_MAX): New macro.
11492 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
11493 overflow when requested scroll falls outside ptrdiff_t range.
11494
114952012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11496
11497 * window.h (struct window): Change type of 'hscroll',
11498 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
11499 'last_modified' and 'last_overlay_modified' to EMACS_INT.
11500 Adjust users accordingly.
11501 * xdisp.c (try_cursor_movement): Replace type check with eassert.
11502 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
11503 from EMACS_INT to ptrdiff_t.
11504 (make_window): Omit redundant initialization.
11505
115062012-06-28 Juanma Barranquero <lekktu@gmail.com>
11507
11508 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
11509
115102012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11511
11512 * window.h (struct window): Change type of 'use_time' and
11513 'sequence_number' from Lisp_Object to int.
11514 * frame.c (make_frame): Adjust users accordingly.
11515 * print.c (print_object): Likewise.
11516 * window.c (select_window, Fwindow_use_time, make_parent_window)
11517 (make_window): Likewise.
11518
115192012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11520
11521 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
11522 enabled with --enable-checking=[all,glyphs] configure option.
11523 Fix GLYPH_DEBUG usage assuming that it may be undefined,
11524 adjust comments accordingly.
11525 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
11526 undefined, adjust comments accordingly.
11527 * image.c: Likewise.
11528 * scroll.c: Likewise.
11529 * w32fns.c: Likewise.
11530 * w32term.c: Likewise.
11531 * xdisp.c: Likewise.
11532 * xfaces.c: Likewise.
11533 * xfns.c: Likewise.
11534 * xterm.c: Likewise.
11535
115362012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
11537
11538 Generalize run-time debugging checks.
11539 * dispextern.h (XASSERTS): Remove.
11540 * fontset.c (xassert): Remove.
11541 Convert from xassert to eassert.
11542 * alloc.c: Convert from xassert to eassert.
11543 * bidi.c: Likewise.
11544 * dispnew.c: Likewise.
11545 * fns.c: Likewise.
11546 * fringe.c: Likewise.
11547 * ftfont.c: Likewise.
11548 * gtkutil.c: Likewise.
11549 * image.c: Likewise.
11550 * keyboard.c: Likewise.
11551 * menu.c: Likewise.
11552 * process.c: Likewise.
11553 * scroll.c: Likewise.
11554 * sound.c: Likewise.
11555 * term.c: Likewise.
11556 * w32console.c: Likewise.
11557 * w32fns.c: Likewise.
11558 * w32term.c: Likewise.
11559 * window.c: Likewise.
11560 * xdisp.c: Likewise.
11561 * xfaces.c: Likewise.
11562 * xfns.c: Likewise.
11563 * xselect.c: Likewise.
11564 * xterm.c: Likewise.
11565
115662012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
11567
11568 * fns.c (maybe_resize_hash_table): Output message when growing the
11569 purify-hashtable.
11570
115712012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11572
11573 * alloc.c (allocate_string_data): Remove dead code.
11574 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
11575 avoid GCC warning about unused macro.
11576
115772012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11578
11579 * alloc.c (allocate_string): Omit intervals initialization.
11580 * alloc.c (make_uninit_multibyte_string): Initialize intervals
11581 as in make_pure_string and make_pure_c_string.
11582
115832012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11584
11585 * alloc.c (allocate_string): Fix last change.
11586
115872012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
11588
11589 * alloc.c (allocate_string): Remove two redundant calls
11590 to memset, add explicit initialization where appropriate.
11591
115922012-06-27 Glenn Morris <rgm@gnu.org>
11593
11594 * lisp.mk (lisp): Remove paths.elc.
11595
115962012-06-27 Chong Yidong <cyd@gnu.org>
11597
11598 * doc.c (Fsubstitute_command_keys): Fix punctuation.
11599
116002012-06-26 John Wiegley <johnw@newartisans.com>
11601
11602 * unexmacosx.c (copy_data_segment): Add two section names used
11603 on Mac OS X Lion: __mod_init_func and __mod_term_func.
11604
11605 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
11606 when building with Clang.
11607
116082012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
11609
11610 * eval.c (Fapply): Allow calling it with a single argument.
11611
116122012-06-26 Eli Zaretskii <eliz@gnu.org>
11613
11614 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
11615 _stricmp and _strnicmp.
11616 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
11617
116182012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11619
11620 * alloc.c (allocate_window): Zero out non-Lisp part of newly
11621 allocated window.
11622 (allocate_process): Likewise for new process.
11623 (allocate_terminal): Change to use offsetof.
11624 (allocate_frame): Likewise.
11625 * frame.c (make_frame): Omit redundant initialization.
11626 * window.c (make_parent_window): Use memset.
11627 (make_window): Omit redundant initialization.
11628 * process.c (make_process): Omit redundant initialization.
11629 * terminal.c (create_terminal): Likewise.
11630
116312012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11632
11633 * term.c (delete_tty): Remove redundant call to memset.
11634
116352012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
11636
11637 * alloc.c: Remove build_string.
11638 * lisp.h: Define build_string as static inline. This provides
11639 a better opportunity to optimize away calls to strlen when the
11640 function is called with compile-time constant argument.
11641 * image.c (imagemagick_error): Convert to build_string.
11642 * w32proc.c (sys_spawnve): Likewise.
11643 * xterm.c (x_term_init): Likewise.
11644
116452012-06-26 Paul Eggert <eggert@cs.ucla.edu>
11646
11647 Use sprintf return value instead of invoking strlen on result.
11648 In the old days this wasn't portable, since some sprintf
11649 implementations returned char *. But they died out years ago and
11650 Emacs already assumes sprintf returns int.
11651 Similarly for float_to_string.
11652 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
11653 * ccl.c (ccl_driver):
11654 * character.c (string_escape_byte8):
11655 * data.c (Fnumber_to_string):
11656 * doprnt.c (doprnt):
11657 * print.c (print_object):
11658 * xdisp.c (message_dolog):
11659 * xfns.c (syms_of_xfns):
11660 Use sprintf or float_to_string result to avoid need to call strlen.
11661 * data.c (Fnumber_to_string):
11662 Use make_unibyte_string, since the string must be ASCII.
11663 * lisp.h, print.c (float_to_string): Now returns int length.
11664 * term.c (produce_glyphless_glyph):
11665 Use sprintf result rather than recomputing it.
11666
11667 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
11668 * Makefile.in (ALL_CFLAGS):
11669 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
11670 * gmalloc.c, regex.c: Include <config.h> unconditionally.
11671
116722012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11673
11674 * dispextern.h (xstrcasecmp): Define to library function
11675 strcasecmp if available.
11676 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
11677
116782012-06-25 Andreas Schwab <schwab@linux-m68k.org>
11679
11680 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
11681 Avoid comma operator.
11682 * menu.c (push_submenu_start, push_submenu_end)
11683 (push_left_right_boundary, push_menu_pane): Likewise.
11684 * msdos.c (dos_rawgetc): Likewise.
11685
116862012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11687
11688 * xfns.c (xic_create_fontsetname): Remove redundant calls
11689 to memset.
11690
116912012-06-25 Paul Eggert <eggert@cs.ucla.edu>
11692
11693 * gtkutil.c (get_utf8_string): Remove redundant assignment.
11694 sprintf already null-terminates its output.
11695
11696 * xfns.c (x_window): Remove redundant cast.
11697
116982012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
11699
11700 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
11701 `const char *' to `char *' to avoid compiler warning.
11702
117032012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11704
11705 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
11706 instead of truncating it to 63 (admittedly a generous limit).
11707
11708 * process.c: Fix spelling and caps in comments.
11709
117102012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
11711
11712 * emacs.c (setpgrp): Remove definition, unused.
11713 * sysdep.c (setpgrp): Remove definition, not used in this file.
11714
117152012-06-24 Juanma Barranquero <lekktu@gmail.com>
11716
11717 * makefile.w32-in: Update dependencies.
11718
117192012-06-24 Eli Zaretskii <eliz@gnu.org>
11720
11721 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
11722 (SYSTIME_H): Add nt/inc/sys/time.h.
11723
11724 * systime.h [WINDOWSNT]: Include sys/time.h.
11725
11726 * s/ms-w32.h (struct timespec): Definition moved from
11727 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
11728
117292012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11730
11731 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
11732 * buffer.h (buffer_slot_type_mismatch):
11733 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
11734 * eval.c (unwind_to_catch):
11735 * image.c (my_png_error, my_error_exit):
11736 * keyboard.c (quit_throw_to_read_char, user_error)
11737 (Fexit_recursive_edit, Fabort_recursive_edit):
11738 * lisp.h (die, args_out_of_range, args_out_of_range_3)
11739 (wrong_type_argument, buffer_overflow, __executable_start)
11740 (memory_full, buffer_memory_full, string_overflow, Fthrow)
11741 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
11742 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
11743 (fatal):
11744 (child_setup) [!DOS_NT]:
11745 * lread.c (end_of_file_error, invalid_syntax):
11746 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
11747 * puresize.h (pure_write_error):
11748 * search.c (matcher_overflow):
11749 * sound.c (sound_perror, alsa_sound_perror):
11750 * sysdep.c, syssignal.h (croak):
11751 * term.c (maybe_fatal, vfatal):
11752 * textprop.c (text_read_only):
11753 * undo.c (user_error):
11754 * unexmacosx.c (unexec_error):
11755 * xterm.c (x_ins_del_lines, x_delete_glyphs):
11756 Use _Noreturn rather than NO_RETURN.
11757 No need for separate decl merely because of _Noreturn.
11758 * sound.c (sound_warning, parse_sound):
11759 Remove unnecessary forward decls.
11760
117612012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11762
11763 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
11764 * lisp.h (WAIT_READING_MAX): New macro.
11765 * dispnew.c (Fsleep_for, sit_for):
11766 * keyboard.c (kbd_buffer_get_event):
11767 * process.c (Faccept_process_output):
11768 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
11769 This improves on the previous patch, which introduced a bug
11770 when time_t is unsigned and as wide as intmax_t.
11771 See <http://bugs.gnu.org/9000#51>.
11772
117732012-06-23 Eli Zaretskii <eliz@gnu.org>
11774
11775 * dispnew.c (sit_for, Fsleep_for):
11776 * keyboard.c (kbd_buffer_get_event):
11777 * process.c (Faccept_process_output): Avoid compiler warnings when
11778 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
11779
117802012-06-23 Juanma Barranquero <lekktu@gmail.com>
11781
11782 * makefile.w32-in: Update dependencies.
11783
11784 * w32.c (ltime): Add return type and declare static.
11785 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
11786
117872012-06-23 Paul Eggert <eggert@cs.ucla.edu>
11788
11789 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
11790 Privately reported by Herbert J. Skuhra.
11791 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
11792 All uses changed.
11793 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
11794 not make_lisp_timeval, when the argument is of type EMACS_TIME.
11795
117962012-06-23 Eli Zaretskii <eliz@gnu.org>
11797
11798 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
11799 last argument of make_unibyte_string.
11800
11801 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
11802 language ID in the event parameters.
11803
11804 * w32term.c (w32_read_socket): Put the new keyboard codepage into
11805 event.code, not the obscure "character set ID".
11806
118072012-06-23 Chong Yidong <cyd@gnu.org>
11808
11809 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
11810
118112012-06-23 Eli Zaretskii <eliz@gnu.org>
11812
11813 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
11814 * w32.c (fdutimens): New function.
11815
11816 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
11817
11818 * s/ms-w32.h (pselect): Redirect to sys_select.
11819
11820 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
11821
11822 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
11823 in the logic of incrementing and decrementing the value of
11824 use_relocatable_buffers.
11825
118262012-06-23 Paul Eggert <eggert@cs.ucla.edu>
11827
11828 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
11829 Privately reported by Herbert J. Skuhra.
11830 [__FreeBSD__]: Remove "*/" typo after "#include".
11831 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
11832 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
11833 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
11834 Don't assume EMACS_TIME and struct timeval are the same type.
11835
118362012-06-22 Paul Eggert <eggert@cs.ucla.edu>
11837
11838 Support higher-resolution time stamps (Bug#9000).
11839 The time stamps are only nanosecond-resolution at the C level,
11840 since that's the best that any real-world system supports now.
11841 But they are picosecond-resolution at the Lisp level, as that's
11842 easy, and leaves room for future OS improvements.
11843
11844 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
11845 (LIBES): Use it.
11846
11847 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
11848 Don't get current time unless it's needed.
11849
11850 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
11851 now provides it if it's absent.
11852 (start_atimer): Port to higher-res time stamps.
11853 Check for time stamp overflow. Don't get current time more
11854 often than is needed.
11855
11856 * buffer.h (struct buffer): Buffer modtime now has high resolution.
11857 Include systime.h, not time.h.
11858 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
11859
11860 * dired.c: Include stat-time.h.
11861 (Ffile-attributes): File times now have higher resolution.
11862
11863 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
11864 (struct image): Timestamp now has higher resolution.
11865
11866 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
11867 has at least microseconds now. All uses removed.
11868 (update_frame, update_single_window, update_window, update_frame_1)
11869 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
11870 (duration_to_sec_usec): Remove; no longer needed.
11871
11872 * editfns.c (time_overflow): Now extern.
11873 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
11874 (float-time, Fformat_time_string, Fcurrent_time_string)
11875 (Fcurrent_time_zone): Accept and generate higher-resolution
11876 time stamps.
11877 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
11878 (decode_time_components, lisp_seconds_argument): New functions.
11879 (make_time): Now static.
11880 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
11881 Report an error if the time is invalid, rather than having the caller
11882 do that.
11883
11884 * fileio.c: Include <stat-time.h>
11885 (Fcopy_file): Copy higher-resolution time stamps.
11886 Prefer to set the time stamp via a file descriptor if that works.
11887 (Fset_file_times, Finsert_file_contents, Fwrite_region)
11888 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
11889 (Fvisited_file_modtime, Fset_visited_file_modtime):
11890 Support higher-resolution time stamps.
11891
11892 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
11893
11894 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
11895
11896 * image.c (prepare_image_for_display, clear_image_cache)
11897 (lookup_image): Port to higer-resolution time stamps.
11898
11899 * keyboard.c (start_polling, bind_polling_period):
11900 Check for time stamp overflow.
11901 (read_char, kbd_buffer_get_event, timer_start_idle)
11902 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
11903 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
11904 Port to higher-resolution time stamps. Do not assume time_t is signed.
11905 (decode_timer): New function. Timers are now vectors of length 9,
11906 not 8, to accommodate the picosecond component.
11907 (timer_check_2): Use it.
11908
11909 * nsterm.m (select_timeout, timeval_subtract): Remove.
11910 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
11911 as they're a bit more accurate and handle overflow better.
11912 (ns_select): Change prototype to be compatible with pselect.
11913 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
11914 * nsterm.h (ns_select): Adjust prototype.
11915
11916 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
11917 us-resolution time stamps.
11918 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
11919
11920 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
11921
11922 * lisp.h (time_overflow): New decl.
11923 (wait_reading_process_output): First arg is now intmax_t, not int,
11924 to accommodate larger waits.
11925
11926 * process.h (struct Lisp_Process.read_output_delay):
11927 Now counts nanoseconds, not microseconds.
11928 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
11929 EMACS_HAS_USECS.
11930 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
11931 (wait_reading_process_output):
11932 Port to ns-resolution time stamps.
11933 (Faccept_process_output, wait_reading_process_output):
11934 Check for time stamp overflow. Do not assume time_t is signed.
11935 (select_wrapper): Remove; we now use pselect.
11936 (Fprocess_attributes): Now generates ns-resolution time stamps.
11937
11938 * sysdep.c: Include utimens.h. Don't include utime.h
11939 or worry about struct utimbuf; gnulib does that for us now.
11940 (gettimeofday): Remove; gnulib provides a substitute.
11941 (make_timeval): New function.
11942 (set_file_times): Now sets ns-resolution time stamps.
11943 New arg FD; all uses changed.
11944 (time_from_jiffies, ltime_from_jiffies, get_up_time)
11945 (system_process_attributes):
11946 Now returns ns-resolution time stamp. All uses changed.
11947 Check for time stamp overflow.
11948
11949 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
11950 provides a substitute now.
11951
11952 * systime.h: Include timespec.h rather than sys/time.h and time.h,
11953 since it guarantees struct timespec.
11954 (EMACS_TIME): Now struct timespec, so that we can support
11955 ns-resolution time stamps.
11956 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
11957 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
11958 (EMACS_USECS): Remove.
11959 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
11960 so multiply the arg by 1000 before storing it.
11961 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
11962 New macros.
11963 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
11964 Port to ns-resolution time stamps.
11965 (EMACS_TIME_NEG_P): Remove; replaced by....
11966 (EMACS_TIME_SIGN): New macro.
11967 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
11968 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
11969 (set_file_times, make_time, lisp_time_argument): Adjust signature.
11970 (make_timeval, make_lisp_time, decode_time_components): New decls.
11971 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
11972 that it mishandled time_t overflow. You can't compare by subtracting!
11973 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
11974 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
11975
11976 * term.c: Include <sys/time.h>.
11977 (timeval_to_Time): New function, for proper overflow wraparound.
11978 (term_mouse_position, term_mouse_click): Use it.
11979
11980 * undo.c (record_first_change): Support higher-resolution time stamps
11981 in the undo buffer.
11982 (Fprimitive_undo): Use them when restoring time stamps.
11983
11984 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
11985 (w32_get_internal_run_time):
11986 Port to higher-resolution Emacs time stamps.
11987 (ltime): Now accepts single 64-bit integer, as that's more convenient
11988 for callers.
11989
11990 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
11991
11992 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
11993 for compatibility with pselect. Support ns-resolution time stamps.
11994
11995 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
11996
11997 * xselect.c (wait_for_property_change, x_get_foreign_selection):
11998 Check for time stamp overflow, and support ns-resolution time stamps.
11999
12000 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
12001 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
12002 (timeval_subtract): Remove; no longer needed.
12003 (XTflash, XTring_bell, x_wait_for_event):
12004 Port to ns-resolution time stamps. Don't assume time_t is signed.
12005
120062012-06-22 Chong Yidong <cyd@gnu.org>
12007
12008 * xdisp.c (x_consider_frame_title): Revert last change.
12009
120102012-06-22 Eli Zaretskii <eliz@gnu.org>
12011
12012 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
12013 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
12014 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
12015 staticidx goes up to 1597 out of 1600 = 0x640.)
12016
120172012-06-20 Paul Eggert <eggert@cs.ucla.edu>
12018
12019 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
12020 Otherwise, the umask might be mistakenly 0 while handling input signals.
12021
120222012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
12023
12024 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
12025
120262012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
12027
12028 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
12029 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
12030 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
12031 access to `contents' member of Lisp_Vector objects with AREF and ASET
12032 where appropriate.
12033
120342012-06-19 Chong Yidong <cyd@gnu.org>
12035
12036 * frame.c (delete_frame): When selecting a frame on a different
12037 text terminal, do not alter the terminal's top-frame.
12038
12039 * xdisp.c (format_mode_line_unwind_data): Record the target
12040 frame's selected window and its terminal's top-frame.
12041 (unwind_format_mode_line): Restore them.
12042 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
12043 Callers changed.
12044 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
12045 since tty frames can be explicitly named.
12046 (prepare_menu_bars): Likewise.
12047
12048 * term.c (Ftty_top_frame): New function.
12049
120502012-06-18 Paul Eggert <eggert@cs.ucla.edu>
12051
12052 Port byte-code-meter to modern targets.
12053 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
12054 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
12055 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
12056 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
12057 (METER_1, METER_2): Simplify.
12058
120592012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
12060
12061 * data.c (Fdefalias): Return `symbol' (bug#11686).
12062
120632012-06-18 Martin Rudalics <rudalics@gmx.at>
12064
12065 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
12066 gets killed during executing of this function (Bug#11665).
12067 Try to always return Qt when the buffer has been actually killed.
12068 (Vkill_buffer_query_functions): In doc-string say that functions
12069 run by this hook should not change the current buffer.
12070
120712012-06-18 Paul Eggert <eggert@cs.ucla.edu>
12072
12073 Fix recently-introduced process.c problems found by static checking.
12074 * process.c (write_queue_push, write_queue_pop, send_process):
12075 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
12076 (write_queue_pop): Fix pointer signedness problem.
12077 (send_process): Remove unused local.
12078
120792012-06-17 Chong Yidong <cyd@gnu.org>
12080
12081 * xdisp.c (redisplay_internal): No need to redisplay terminal
12082 frames that are not on top.
12083
120842012-06-17 Troels Nielsen <bn.troels@gmail.com>
12085
12086 * process.c (make_process): Initialize write_queue.
12087 (write_queue_push, write_queue_pop): New functions.
12088 (send_process): Use them to maintain correct ordering of process
12089 writes (Bug#10815).
12090
120912012-06-17 Paul Eggert <eggert@cs.ucla.edu>
12092
12093 * lisp.h (eassert): Assume C89 or later.
12094 This removes the need for CHECK.
12095 (CHECK): Remove. Its comments about always evaluating its
12096 argument were confusing, as 'eassert' typically does not evaluate
12097 its argument.
12098
12099 * coding.c (produce_chars): Use ptrdiff_t, not int.
12100
12101 * xterm.c (x_draw_underwave): Check for integer overflow.
12102 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
12103
121042012-06-17 Jan Djärv <jan.h.d@swipnet.se>
12105
12106 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
12107 referenced (Bug#11583).
12108
121092012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
12110
12111 Implement wave-style variant of underlining.
12112 * dispextern.h (face_underline_type): New enum.
12113 (face): Add field for underline type.
12114 * nsterm.m (ns_draw_underwave): New function.
12115 (ns_draw_text_decoration): Use it.
12116 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
12117 New functions.
12118 (x_draw_glyph_string): Use them.
12119 * xfaces.c (Qline, Qwave): New Lisp objects.
12120 (check_lface_attrs, merge_face_ref)
12121 (Finternal_set_lisp_face_attribute, realize_x_face):
12122 Handle wave-style underline face attributes.
12123 * xterm.c (x_draw_underwave): New function.
12124 (x_draw_glyph_string): Use it.
12125
121262012-06-16 Juanma Barranquero <lekktu@gmail.com>
12127
12128 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
12129 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
12130 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
12131 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
12132 ($(BLD)/w32select.$(O)): Update dependencies.
12133
121342012-06-16 Andreas Schwab <schwab@linux-m68k.org>
12135
12136 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
12137 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
12138 * character.c (_fetch_multibyte_char_p): Remove.
12139 * alloc.c: Include "character.h" before "buffer.h".
12140 * bidi.c: Likewise.
12141 * buffer.c: Likewise.
12142 * bytecode.c: Likewise.
12143 * callint.c: Likewise.
12144 * callproc.c: Likewise.
12145 * casefiddle.c: Likewise.
12146 * casetab.c: Likewise.
12147 * category.c: Likewise.
12148 * cmds.c: Likewise.
12149 * coding.c: Likewise.
12150 * composite.c: Likewise.
12151 * dired.c: Likewise.
12152 * dispnew.c: Likewise.
12153 * doc.c: Likewise.
12154 * dosfns.c: Likewise.
12155 * editfns.c: Likewise.
12156 * emacs.c: Likewise.
12157 * fileio.c: Likewise.
12158 * filelock.c: Likewise.
12159 * font.c: Likewise.
12160 * fontset.c: Likewise.
12161 * fringe.c: Likewise.
12162 * indent.c: Likewise.
12163 * insdel.c: Likewise.
12164 * intervals.c: Likewise.
12165 * keyboard.c: Likewise.
12166 * keymap.c: Likewise.
12167 * lread.c: Likewise.
12168 * macros.c: Likewise.
12169 * marker.c: Likewise.
12170 * minibuf.c: Likewise.
12171 * nsfns.m: Likewise.
12172 * nsmenu.m: Likewise.
12173 * print.c: Likewise.
12174 * process.c: Likewise.
12175 * regex.c: Likewise.
12176 * region-cache.c: Likewise.
12177 * search.c: Likewise.
12178 * syntax.c: Likewise.
12179 * term.c: Likewise.
12180 * textprop.c: Likewise.
12181 * undo.c: Likewise.
12182 * unexsol.c: Likewise.
12183 * w16select.c: Likewise.
12184 * w32fns.c: Likewise.
12185 * w32menu.c: Likewise.
12186 * window.c: Likewise.
12187 * xdisp.c: Likewise.
12188 * xfns.c: Likewise.
12189 * xmenu.c: Likewise.
12190 * xml.c: Likewise.
12191 * xselect.c: Likewise.
12192
121932012-06-16 Eli Zaretskii <eliz@gnu.org>
12194
12195 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
12196 If all the glyphs of the glyph row came from strings, and we have no
12197 cursor positioning clues, put the cursor on the first glyph of the
12198 row.
12199 (handle_face_prop): Use chunk-relative overlay string index when
12200 indexing into it->string_overlays array. (Bug#11653)
12201 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
12202 the rightmost. (Bug#11720)
12203
122042012-06-16 Andreas Schwab <schwab@linux-m68k.org>
12205
12206 * category.h (CHAR_HAS_CATEGORY): Define as inline.
12207 (CATEGORY_MEMBER): Enforce 1/0 value.
12208 * category.c (_temp_category_set): Remove.
12209
122102012-06-16 Eli Zaretskii <eliz@gnu.org>
12211
12212 * window.c (Fdelete_other_windows_internal)
12213 (Fdelete_window_internal): Don't access frame's mouse highlight
12214 info of the initial frame. (Bug#11677)
12215
122162012-06-14 Paul Eggert <eggert@cs.ucla.edu>
12217
12218 * .gdbinit (xgetint): Fix recently-introduced paren typo.
12219 Assume USE_2_TAGS_FOR_INTS.
12220 (xreload): Adjust $tagmask width to match recent lisp.h change.
12221
12222 Simplify lisp.h in minor ways that should not affect code.
12223 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
12224 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
12225 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
12226 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
12227 (INTTYPEBITS): New macro, for clarity.
12228 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
12229 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
12230 Simplify now that USE_LSB_TAG is always defined.
12231 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
12232 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
12233
122342012-06-13 Juanma Barranquero <lekktu@gmail.com>
12235
12236 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
12237
122382012-06-13 Glenn Morris <rgm@gnu.org>
12239
12240 * s/bsd-common.h (BSD4_3):
12241 * s/usg5-4-common.h (USG5_4): No longer define; unused.
12242
122432012-06-13 Andreas Schwab <schwab@linux-m68k.org>
12244
12245 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
12246 instead of union.
12247 (XLI, XIL): Define.
12248 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
12249 Use them.
12250 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
12251 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
12252 * alloc.c (widen_to_Lisp_Object): Remove.
12253 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
12254 * frame.c (delete_frame): Remove outdated comment.
12255 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
12256 USE_LISP_UNION_TYPE.
12257 (Fw32_unregister_hot_key): Likewise.
12258 (Fw32_toggle_lock_key): Likewise.
12259 * w32menu.c (add_menu_item): Likewise.
12260 (w32_menu_display_help): Use XIL instead of checking
12261 USE_LISP_UNION_TYPE.
12262 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
12263 (init_heap): Likewise.
12264 * w32term.c (w32_read_socket): Update comment.
12265
122662012-06-13 Glenn Morris <rgm@gnu.org>
12267
12268 * s/usg5-4-common.h, src/s/unixware.h:
12269 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
12270
12271 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
12272
122732012-06-13 Paul Eggert <eggert@cs.ucla.edu>
12274
12275 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
12276 * alloc.c (make_number) [!defined make_number]:
12277 Remove, as lisp.h always defines this now.
12278 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
12279 (roundup_size): Verify that it is a power of 2.
12280 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
12281 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
12282 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
12283 -DUSE_LSB_TAG=0, to override the automatically-selected default.
12284 USE_LSB_TAG now is always defined to be either 0 or 1.
12285 All uses changed.
12286 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
12287 code works fine either way, and efficiency is not a concern here,
12288 as the union type is for debugging, not for production.
12289 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
12290 Use an inline function on all platforms when using the union type,
12291 since this is simpler and 'static inline' can be used portably
12292 within Emacs now.
12293 (LISP_INITIALLY_ZERO): New macro.
12294 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
12295 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
12296
122972012-06-12 Glenn Morris <rgm@gnu.org>
12298
12299 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
12300
12301 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
12302
12303 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
12304 Move BROKEN_SIGIO to configure.
12305
12306 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
12307 Move NO_TERMIO to configure.
12308
123092012-06-12 Chong Yidong <cyd@gnu.org>
12310
12311 * image.c (imagemagick_load_image): Use MagickFlattenImage if
12312 MagickMergeImageLayers is undefined. Use pixel pusher loop if
12313 MagickExportImagePixels is undefined.
12314
123152012-06-12 Paul Eggert <eggert@cs.ucla.edu>
12316
12317 * image.c (imagemagick_load_image): Remove unused label.
12318
123192012-06-11 Glenn Morris <rgm@gnu.org>
12320
12321 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
12322 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
12323 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
12324 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
12325
123262012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
12327
12328 * alloc.c (make_byte_code): New function.
12329 (Fmake_byte_code): Use it. Don't purify here.
12330 * lread.c (read1): Use it as well to avoid extra allocation.
12331
123322012-06-11 Chong Yidong <cyd@gnu.org>
12333
12334 * image.c (imagemagick_load_image): Implement transparency.
12335
123362012-06-10 Andreas Schwab <schwab@linux-m68k.org>
12337
12338 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
12339 account for preceding backslashes. (Bug#11663)
12340
123412012-06-09 Chong Yidong <cyd@gnu.org>
12342
12343 * term.c: Support italics in capable terminals (Bug#9652).
12344 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
12345 (turn_on_face): Output using TS_enter_italic_mode if available.
12346 Don't handle unused blinking and alt-charset cases.
12347 (turn_off_face): Handle italic case; discard unused tty_blinking_p
12348 and tty_alt_charset_p cases.
12349 (tty_capable_p, init_tty): Support italics.
12350
12351 * termchar.h (struct tty_display_info): Add field for italics.
12352 Remove unused blink field.
12353
12354 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
12355 Handle slant.
12356
12357 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
12358 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
12359 tty_alt_charset_p. Add tty_italic_p.
12360
123612012-06-09 Michael Albinus <michael.albinus@gmx.de>
12362
12363 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
12364 dbus_type_is_basic if available.
12365 (xd_extract_signed, xd_extract_unsigned): Rename from
12366 extract_signed and extract_unsigned, respectively. Adapt callers.
12367
123682012-06-09 Chong Yidong <cyd@gnu.org>
12369
12370 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
12371
12372 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
12373 case (Bug#9752).
12374
123752012-06-08 Paul Eggert <eggert@cs.ucla.edu>
12376
12377 * xdisp.c (vmessage): Treat frame message as multibyte.
12378 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
12379 would generate the diagnostic "Making \302\247 buffer-local while
12380 let-bound!".
12381
123822012-06-08 Eli Zaretskii <eliz@gnu.org>
12383
12384 * dispnew.c (showing_window_margins_p): Undo last change, which
12385 was done due to an inadvertent commit.
12386 (adjust_frame_glyphs_for_frame_redisplay): Do call
12387 showing_window_margins_p.
12388
123892012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
12390
12391 * eval.c (Fmake_var_non_special): New primitive.
12392 (syms_of_eval): Defsubr it.
12393 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
12394
123952012-06-08 Juanma Barranquero <lekktu@gmail.com>
12396
12397 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
12398 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
12399
124002012-06-08 Eli Zaretskii <eliz@gnu.org>
12401
12402 * alloc.c (allocate_vectorlike): Fix last change.
12403
124042012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
12405
12406 Block-based vector allocation of small vectors.
12407 * lisp.h (struct vectorlike_header): New field `nbytes',
12408 adjust comment accordingly.
12409 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
12410 to denote vector blocks. Adjust users (live_vector_p,
12411 mark_maybe_pointer, valid_lisp_object_p) accordingly.
12412 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
12413 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES)
12414 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX)
12415 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST)
12416 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
12417 (roundup_size): New constant.
12418 (struct vector_block): New data type.
12419 (vector_blocks, vector_free_lists, zero_vector): New variables.
12420 (all_vectors): Rename to `large_vectors'.
12421 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
12422 (sweep_vectors): New functions.
12423 (allocate_vectorlike): Return `zero_vector' as the only vector of
12424 0 items. Allocate new vector from block if vector size is less than
12425 or equal to VBLOCK_BYTES_MAX.
12426 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
12427 (init_alloc_once): Add call to init_vectors.
12428
124292012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
12430
12431 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
12432
124332012-06-07 Paul Eggert <eggert@cs.ucla.edu>
12434
12435 * doprnt.c (doprnt): Truncate multibyte char correctly.
12436 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
12437 would mishandle a string argument "Xc" if X was a multibyte
12438 character of length 2: it would truncate after X's first byte
12439 rather than including all of X.
12440
124412012-06-06 Chong Yidong <cyd@gnu.org>
12442
12443 * buffer.c (word_wrap): Doc fix.
12444
124452012-06-04 Paul Eggert <eggert@cs.ucla.edu>
12446
12447 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
12448
124492012-06-03 Glenn Morris <rgm@gnu.org>
12450
12451 * xdisp.c (tool-bar-style): Doc fix.
12452
124532012-06-03 Ulrich Müller <ulm@gentoo.org>
12454
12455 * Makefile.in (PAXCTL): Define.
12456 (temacs$(EXEEXT)): Disable memory randomization for the temacs
12457 binary via PaX flags if the paxctl utility is available.
12458 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
12459 Restore PaX flags to their default. (Bug#11398)
12460
124612012-06-03 Chong Yidong <cyd@gnu.org>
12462
12463 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
12464 buffer (Bug#11226).
12465
124662012-06-03 Chong Yidong <cyd@gnu.org>
12467
12468 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
12469 (note_mode_line_or_margin_highlight): If there is no help echo,
12470 use mode-line-default-help-echo. Handle the case where the mouse
12471 position is past the end of the mode line string.
12472
12473 * buffer.c (buffer_local_value_1): New function, split from
12474 Fbuffer_local_value; can return Qunbound.
12475 (Fbuffer_local_value): Use it.
12476 (Vmode_line_format): Docstring tweaks.
12477
124782012-06-02 Paul Eggert <eggert@cs.ucla.edu>
12479
12480 * sysdep.c (system_process_attributes): Improve comment.
12481
124822012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
12483
12484 * keyboard.c: Export real-this-command to Elisp.
12485 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
12486 and DEFVAR it. Update all users.
12487
124882012-06-02 Paul Eggert <eggert@cs.ucla.edu>
12489
12490 * minibuf.c (Fassoc_string): Remove duplicate declaration.
12491
12492 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
12493 Convert pctcpu and pctmem to Lisp float properly.
12494 Let the compiler fold better, as 100.0/0x8000 is exact.
12495
124962012-06-02 Andreas Schwab <schwab@linux-m68k.org>
12497
12498 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
12499 cons_block.
12500
125012012-06-01 Paul Eggert <eggert@cs.ucla.edu>
12502
12503 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
12504
125052012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
12506
12507 For a 'struct window', replace some Lisp_Object fields to
12508 bitfields where appropriate, remove unused fields.
12509 * window.h (struct window): Remove unused 'last_mark_x' and
12510 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
12511 change its type from Lisp_Object to bitfield.
12512 Change type of 'force_start', 'optional_new_start',
12513 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
12514 fields from Lisp_Object to bitfield. Adjust users accordingly.
12515
125162012-05-31 Paul Eggert <eggert@cs.ucla.edu>
12517
12518 Pacify gcc -Wdouble-precision when using Xaw.
12519 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
12520 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
12521 Use 'float' consistently, rather than 'float' in most places
12522 and 'double' in a couple of places.
12523
125242012-05-31 Eli Zaretskii <eliz@gnu.org>
12525
12526 * xdisp.c (handle_stop): Detect whether we have overlay strings
12527 loaded by testing it->current.overlay_string_index to be
12528 non-negative, instead of checking whether n_overlay_strings is
12529 positive. (Bug#11587)
12530
125312012-05-31 Chong Yidong <cyd@gnu.org>
12532
12533 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
12534
12535 * doc.c (Fsubstitute_command_keys): Doc fix.
12536
125372012-05-31 Eli Zaretskii <eliz@gnu.org>
12538
12539 * search.c (search_buffer): Remove calls to
12540 r_alloc_inhibit_buffer_relocation, as it is now called by
12541 maybe_unify_char, which was the cause of relocation of buffer text
12542 in bug#11519.
12543
125442012-05-31 Eli Zaretskii <eliz@gnu.org>
12545
12546 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
12547 for the duration of call to load_charset, to avoid problems with
12548 callers of maybe_unify_char that access buffer text through C
12549 pointers.
12550
12551 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
12552 decrement the inhibition flag, instead of just setting or
12553 resetting it.
12554
125552012-05-31 Paul Eggert <eggert@cs.ucla.edu>
12556
12557 Remove obsolete '#define static' cruft.
12558 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
12559 This #undef was "temporary" in 2000; it is no longer needed
12560 now that '#define static' has gone away.
12561 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
12562 (gray_bitmap_bits): Remove; no longer needed.
12563 All uses replaced with definiens.
12564 * xterm.c: Include "bitmaps/gray.xbm".
12565
125662012-05-30 Paul Eggert <eggert@cs.ucla.edu>
12567
12568 Clean up __executable_start, monstartup when --enable-profiling.
12569 The following changes affect the code only when profiling.
12570 * dispnew.c (__executable_start): Rename from safe_bcopy.
12571 Define only on platforms that need it.
12572 * emacs.c: Include <sys/gmon.h> when profiling.
12573 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
12574 (__executable_start): Remove decl, since lisp.h does it now.
12575 (safe_bcopy): Remove decl; no longer has that name.
12576 (main): Coalesce #if into single bit of code, for simplicity.
12577 Cast pointers to uintptr_t, since standard libraries want integers
12578 and not pointers.
12579 * lisp.h (__executable_start): New decl.
12580
125812012-05-31 Glenn Morris <rgm@gnu.org>
12582
12583 * image.c (Fimagemagick_types): Doc fix.
12584
125852012-05-30 Jim Meyering <meyering@redhat.com>
12586
12587 * callproc.c (Fcall_process_region): Include directory component
12588 in mkstemp error message (Bug#11586).
12589
125902012-05-30 Paul Eggert <eggert@cs.ucla.edu>
12591
12592 * alloc.c, lisp.h (make_pure_vector): Now static.
12593
125942012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
12595
12596 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
12597 Move to byte-run.el.
12598 (Fautoload): Do the hash-doc more carefully.
12599 * data.c (Fdefalias): Purify definition, except for keymaps.
12600 (Qdefun): Move from eval.c.
12601 * lisp.h (Qdefun): Remove.
12602 * lread.c (read1): Tiny simplification.
12603
126042012-05-29 Troels Nielsen <bn.troels@gmail.com>
12605
12606 Do not create empty overlays with the evaporate property (Bug#9642).
12607 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
12608 Bug#9642, but explicitly check that the buffer the overlay would
12609 be moved to is live and rearrange lines to make sure that errors
12610 will not put the overlay in an inconsistent state.
12611 (Fdelete_overlay): Cosmetics.
12612
126132012-05-28 Eli Zaretskii <eliz@gnu.org>
12614
12615 * w32term.c (my_bring_window_to_top): New function.
12616 (x_raise_frame): Use handle returned by DeferWindowPos, which
12617 could be different from the original one.
12618 Call my_bring_window_to_top instead of my_set_foreground_window.
12619 (Bug#11513)
12620
12621 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
12622 by calling BringWindowToTop.
12623
12624 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
12625 (WM_EMACS_END): Increase by one.
12626
126272012-05-28 Paul Eggert <eggert@cs.ucla.edu>
12628
12629 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
12630 This avoids undefined behavior that might cause the eassert
12631 to not catch an out-of-range value.
12632
126332012-05-28 Juanma Barranquero <lekktu@gmail.com>
12634
12635 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
12636 Update dependencies.
12637
126382012-05-27 Eli Zaretskii <eliz@gnu.org>
12639
12640 * bidi.c (bidi_mirror_char): Fix last change.
12641
126422012-05-27 Andreas Schwab <schwab@linux-m68k.org>
12643
12644 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
12645 when referring to sectname field in printf format.
12646
126472012-05-27 Paul Eggert <eggert@cs.ucla.edu>
12648
12649 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
12650 Only r_alloc_inhibit_buffer_relocation needed to be added;
12651 the others were already declared.
12652
12653 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
12654 before checking whether it's out of range. Put the check inside
12655 eassert. See
12656 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
12657
126582012-05-27 Ken Brown <kbrown@cornell.edu>
12659
12660 * callproc.c (Fcall_process): Restore a line that was accidentally
12661 commented out in the 2011-02-13 change (bug#11547).
12662
126632012-05-27 Eli Zaretskii <eliz@gnu.org>
12664
12665 * lisp.h [REL_ALLOC]: Add prototypes for external functions
12666 defined on ralloc.c.
12667
12668 * buffer.c [REL_ALLOC]: Remove prototypes of
12669 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
12670 they are now on lisp.h.
12671
12672 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
12673
12674 * search.c (search_buffer): Use it to inhibit relocation of buffer
12675 text while re_search_2 is doing its job, because re_search_2 is
12676 passed C pointers to buffer text. (Bug#11519)
12677
12678 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
12679 Update value to 24.
12680
12681 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
12682 state after an additional call to move_it_in_display_line_to, keep
12683 the values of it->max_ascent and it->max_descent found for the
12684 entire line.
12685 (pos_visible_p): Revert the comparison against bottom_y to what it
12686 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
12687 (Bug#11464)
12688
126892012-05-26 Paul Eggert <eggert@cs.ucla.edu>
12690
12691 Fix coding-related core dumps with gcc -ftrapv.
12692 The code was computing A - B, where A and B are pointers, and B is
12693 random garbage. This can lead to core dumps on platforms that
12694 have special pointer registers, and it also leads to core dumps on
12695 x86-64 when compiled with gcc -ftrapv. The fix is to compute
12696 A - B only when B is initialized properly.
12697 * coding.c (coding_set_source, coding_set_destination): Return void.
12698 (coding_change_source, coding_change_destinations): New functions,
12699 with the old behaviors of coding_set_source and coding_set_destination.
12700 All callers that need an offset changed to use these new functions.
12701
127022012-05-26 Glenn Morris <rgm@gnu.org>
12703
12704 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
12705
127062012-05-26 Eli Zaretskii <eliz@gnu.org>
12707
12708 Extend mouse support on W32 text-mode console.
12709 * xdisp.c (draw_row_with_mouse_face):
12710 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
12711
12712 * w32console.c: Include window.h.
12713 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
12714 New functions.
12715 (initialize_w32_display): Initialize mouse-highlight data.
12716
12717 * w32inevt.c: Include termchar.h and window.h.
12718 (do_mouse_event): Support mouse-autoselect-window. When the mouse
12719 moves, call note_mouse_highlight. If help_echo changed, call
12720 gen_help_event to produce help-echo message in the echo area.
12721 Call clear_mouse_face if mouse_face_hidden is set in the mouse
12722 highlight info.
12723
127242012-05-26 Paul Eggert <eggert@cs.ucla.edu>
12725
12726 * lread.c (read1): Simplify slightly to avoid an overflow warning
12727 with GCC 4.7.0 on x86-64.
12728
127292012-05-26 Eli Zaretskii <eliz@gnu.org>
12730
12731 * bidi.c (bidi_mirror_char): Revert last change: an int is
12732 definitely wide enough here.
12733
127342012-05-25 Paul Eggert <eggert@cs.ucla.edu>
12735
12736 Fix integer width and related bugs (Bug#9874).
12737 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
12738 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
12739 (string_bytes, check_sblock, allocate_string_data):
12740 (compact_small_strings, Fmake_bool_vector, make_string)
12741 (make_unibyte_string, make_multibyte_string)
12742 (make_string_from_bytes, make_specified_string)
12743 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
12744 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
12745 (mark_vectorlike):
12746 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12747 (allocate_pseudovector):
12748 Use int, not EMACS_INT, where int is wide enough.
12749 (inhibit_garbage_collection, Fgarbage_collect):
12750 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12751 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
12752 int might not be wide enough.
12753 (bidi_cache_search, bidi_cache_find, bidi_init_it)
12754 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
12755 (bidi_at_paragraph_end, bidi_find_paragraph_start)
12756 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
12757 (bidi_level_of_next_char, bidi_move_to_visually_next):
12758 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12759 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
12760 (Fkill_buffer, Fset_buffer_major_mode)
12761 (advance_to_char_boundary, Fbuffer_swap_text)
12762 (Fset_buffer_multibyte, overlays_at, overlays_in)
12763 (overlay_touches_p, struct sortvec, record_overlay_string)
12764 (overlay_strings, recenter_overlay_lists)
12765 (adjust_overlays_for_insert, adjust_overlays_for_delete)
12766 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
12767 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
12768 (Foverlay_recenter, last_overlay_modification_hooks_used)
12769 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
12770 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12771 (validate_region): Omit unnecessary test for b <= e,
12772 since that's guaranteed by the previous test.
12773 (adjust_overlays_for_delete): Avoid pos + length overflow.
12774 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
12775 (report_overlay_modification):
12776 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12777 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
12778 Omit pointer cast, which isn't needed anyway, and doesn't work
12779 after the EMACS_INT -> ptrdiff_t change.
12780 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
12781 * buffer.h: Adjust decls to match defn changes elsewhere.
12782 (struct buffer_text, struct buffer):
12783 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12784 Use EMACS_INT, not int, where int might not be wide enough.
12785 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
12786 not int, to avoid needless 32-bit limit on 64-bit hosts.
12787 (exec_byte_code): Use tighter memory-full test, one that checks
12788 for alloca overflow. Don't compute the address of the object just
12789 before an array, as that's not portable. Use EMACS_INT, not
12790 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
12791 * callint.c (Fcall_interactively):
12792 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12793 * callproc.c (call_process_kill, Fcall_process):
12794 Don't assume pid_t fits into an Emacs fixnum.
12795 (call_process_cleanup, Fcall_process, child_setup):
12796 Don't assume pid_t fits into int.
12797 (call_process_cleanup, Fcall_process, delete_temp_file)
12798 (Fcall_process_region):
12799 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12800 (Fcall_process): Simplify handling of volatile integers.
12801 Use int, not EMACS_INT, where int will do.
12802 * casefiddle.c (casify_object, casify_region, operate_on_word)
12803 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
12804 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12805 (casify_object): Avoid integer overflow when overallocating buffer.
12806 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
12807 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
12808 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
12809 * category.h (CATEGORYP): Don't assume arg is nonnegative.
12810 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
12811 integers are now checked earlier. All uses replaced with XINT.
12812 (ccl_driver):
12813 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12814 For CCL_MapSingle, check that content and value are in int range.
12815 (ccl_driver, Fregister_code_conversion_map):
12816 Check that Vcode_version_map_vector is a vector.
12817 (resolve_symbol_ccl_program): Check that vector header is in range.
12818 Always copy the vector, so that we can check its contents reliably
12819 now rather than having to recheck each instruction as it's being
12820 executed. Check that vector words fit in 'int'.
12821 (ccl_get_compiled_code, Fregister_ccl_program)
12822 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
12823 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
12824 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
12825 contents are in range.
12826 (Fccl_execute_on_string): Check that status is in range.
12827 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
12828 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
12829 Accept and return EMACS_INT, not int, because callers can pass values
12830 out of 'int' range.
12831 (c_string_width, strwidth, lisp_string_width, chars_in_text)
12832 (multibyte_chars_in_text, parse_str_as_multibyte)
12833 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
12834 (str_as_unibyte, str_to_unibyte, string_count_byte8)
12835 (string_escape_byte8, Fget_byte):
12836 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12837 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
12838 avoid mishandling large integers.
12839 * character.h: Adjust decls to match defn changes elsewhere.
12840 * charset.c (load_charset_map_from_file, find_charsets_in_text)
12841 (Ffind_charset_region):
12842 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12843 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
12844 (load_charset_map_from_vector, Fdefine_charset_internal):
12845 Don't assume fixnum fits in int.
12846 (load_charset_map_from_vector, Fmap_charset_chars):
12847 Remove now-unnecessary CHECK_NATNUMs.
12848 (Fdefine_charset_internal): Check ranges here, more carefully.
12849 Don't rely on undefined behavior with signed left shift overflow.
12850 Don't assume unsigned int fits into fixnum, or that fixnum fits
12851 into unsigned int. Don't require max_code to be a valid fixnum;
12852 that's not true for gb10830 4-byte on a 32-bit host. Allow
12853 invalid_code to be a cons, for the same reason. Require code_offset
12854 to be a character. Avoid int overflow if max_char is close
12855 to INT_MAX.
12856 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
12857 this is intended anyway and avoids some undefined behavior.
12858 (load_charset_map): Pass unsigned, not int, as 2nd arg of
12859 INDEX_TO_CODE_POINT, as that's what it expects.
12860 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
12861 * charset.h (DECODE_CHAR): Return int, not unsigned;
12862 this is what was intended anyway, and it avoids undefined behavior.
12863 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
12864 integer-overflow issues.
12865 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
12866 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
12867 where the argument is EMACS_INT, and this behavior is not intended.
12868 * chartab.c (Fmake_char_table, Fset_char_table_range)
12869 (uniprop_get_decoder, uniprop_get_encoder):
12870 Don't assume fixnum fits in int.
12871 * cmds.c (move_point): New function, that does the gist of
12872 Fforward_char and Fbackward_char, but does so while checking
12873 for integer overflow more accurately.
12874 (Fforward_char, Fbackward_char): Use it.
12875 (Fforward_line, Fend_of_line, internal_self_insert)
12876 (internal_self_insert):
12877 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12878 Fix a FIXME, by checking for integer overflow when calculating
12879 target_clm and actual_clm.
12880 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
12881 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
12882 (ASSURE_DESTINATION, coding_alloc_by_realloc)
12883 (coding_alloc_by_making_gap, alloc_destination)
12884 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
12885 (encode_coding_utf_16, detect_coding_emacs_mule)
12886 (decode_coding_emacs_mule, encode_coding_emacs_mule)
12887 (detect_coding_iso_2022, decode_coding_iso_2022)
12888 (encode_invocation_designation, encode_designation_at_bol)
12889 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
12890 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
12891 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
12892 (encode_coding_ccl, encode_coding_raw_text)
12893 (detect_coding_charset, decode_coding_charset)
12894 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
12895 (produce_composition, produce_charset, produce_annotation)
12896 (decode_coding, handle_composition_annotation)
12897 (handle_charset_annotation, consume_chars, decode_coding_gap)
12898 (decode_coding_object, encode_coding_object, detect_coding_system)
12899 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
12900 (code_convert_region, code_convert_string)
12901 (Fdefine_coding_system_internal)
12902 (coding_set_source, coding_set_destination):
12903 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12904 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
12905 (Fdefine_coding_system_internal):
12906 Don't assume fixnums fit in int.
12907 (decode_coding_gap, decode_coding_object, encode_coding_object)
12908 (Fread_coding_system, Fdetect_coding_region)
12909 (Funencodable_char_position, Fcheck_coding_systems_region)
12910 (get_translation, handle_composition_annotation, consume_chars):
12911 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12912 (consume_chars): Rewrite to not calculate an address outside buffer.
12913 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
12914 Don't access memory outside of the args array.
12915 (Fdefine_coding_system_internal): Check for charset-id overflow.
12916 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
12917 result of ENCODE_CHAR.
12918 * coding.h: Adjust decls to match defn changes elsewhere.
12919 (struct coding_system):
12920 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12921 * composite.c (get_composition_id, find_composition)
12922 (run_composition_function, update_compositions)
12923 (compose_text, composition_gstring_put_cache)
12924 (composition_gstring_p, composition_gstring_width)
12925 (fill_gstring_header, fill_gstring_body, autocmp_chars)
12926 (composition_compute_stop_pos, composition_reseat_it)
12927 (composition_update_it, struct position_record)
12928 (find_automatic_composition, composition_adjust_point)
12929 (Fcomposition_get_gstring, Ffind_composition_internal):
12930 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12931 (update_compositions):
12932 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12933 * composite.h: Adjust decls to match defn changes elsewhere.
12934 (struct composition):
12935 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12936 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
12937 Do not attempt to compute the address of the object just before a
12938 buffer; this is not portable.
12939 (Faref, Faset):
12940 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12941 (Faset): Use int, not EMACS_INT, where int is wide enough.
12942 (Fstring_to_number): Don't assume fixnums fit in int.
12943 (Frem): Don't assume arg is nonnegative.
12944 * dbusbind.c (xd_append_arg): Check for integers out of range.
12945 (Fdbus_call_method): Don't overflow the timeout int.
12946 (extract_signed, extract_unsigned): New functions.
12947 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
12948 (xd_get_connection_references): Return ptrdiff_t, not int.
12949 All uses changed.
12950 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
12951 (xd_read_message_1):
12952 Use int, not unsigned, where the dbus API uses int.
12953 (Fdbus_message_internal): Don't overflow mtype.
12954 (syms_of_dbusbind): Allocate right-sized buffer for integers.
12955 * dired.c (directory_files_internal, file_name_completion, scmp)
12956 (file_name_completion_stat):
12957 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12958 (file_name_completion): Don't overflow matchcount.
12959 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
12960 * dispextern.h: Adjust decls to match defn changes elsewhere.
12961 (struct text_pos, struct glyph, struct bidi_saved_info)
12962 (struct bidi_string_data, struct bidi_it, struct composition_it)
12963 (struct it):
12964 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12965 (struct display_pos, struct composition_it, struct it):
12966 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12967 * dispnew.c (increment_matrix_positions)
12968 (increment_row_positions, mode_line_string)
12969 (marginal_area_string):
12970 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12971 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
12972 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
12973 (duration_to_sec_usec): New function, to check for overflow better.
12974 (Fsleep_for, sit_for): Use it.
12975 * doc.c (get_doc_string, store_function_docstring):
12976 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12977 (get_doc_string, Fsnarf_documentation):
12978 Use int, not EMACS_INT, where int is wide enough.
12979 (get_doc_string):
12980 Use SAFE_ALLOCA, not alloca.
12981 Check for overflow when converting EMACS_INT to off_t.
12982 * doprnt.c (doprnt):
12983 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12984 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
12985 Don't assume uid_t fits into fixnum.
12986 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
12987 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
12988 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
12989 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
12990 (general_insert_function)
12991 (Finsert_char, make_buffer_string, make_buffer_string_both)
12992 (update_buffer_properties, Fbuffer_substring)
12993 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
12994 (Fsubst_char_in_region, check_translation)
12995 (Ftranslate_region_internal, save_restriction_restore, Fformat)
12996 (transpose_markers, Ftranspose_regions):
12997 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
12998 (clip_to_bounds): Move to lisp.h as an inline function).
12999 (Fconstrain_to_field): Don't assume integers are nonnegative.
13000 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
13001 (Fsubst_char_in_region, Fsave_restriction):
13002 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13003 (Femacs_pid): Don't assume pid_t fits into fixnum.
13004 (lo_time): Use int, not EMACS_INT, when int suffices.
13005 (lisp_time_argument): Check for usec out of range.
13006 (Fencode_time): Don't assume fixnum fits in int.
13007 (Fuser_login_name, Fuser_full_name): Signal an error
13008 if a uid argument is out of range, rather than relying on
13009 undefined behavior.
13010 (Fformat_time_string): Remove now-unnecessary check.
13011 lisp_time_argument checks for out-of-range usec now.
13012 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
13013 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
13014 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
13015 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
13016 (init_cmdargs, Fdump_emacs):
13017 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13018 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
13019 the bottom (typically) 32 bits of the fixnum.
13020 * eval.c (specpdl_size, call_debugger):
13021 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13022 (when_entered_debugger, Fbacktrace_debug):
13023 Don't assume fixnum can fit in int.
13024 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
13025 the object just before a buffer; this is not portable.
13026 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
13027 (grow_specpdl, unbind_to):
13028 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13029 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
13030 (grow_specpdl): Simplify allocation by using xpalloc.
13031 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
13032 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
13033 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
13034 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13035 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
13036 (a_write, e_write):
13037 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13038 (Fcopy_file, non_regular_nbytes, read_non_regular)
13039 (Finsert_file_contents):
13040 Use int, not EMACS_INT, where int is wide enough.
13041 (READ_BUF_SIZE): Verify that it fits in int.
13042 (Finsert_file_contents): Check that counts are in proper range,
13043 rather than assuming fixnums fit into ptrdiff_t etc.
13044 Don't assume fixnums fit into int.
13045 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
13046 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
13047 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
13048 (string_char_to_byte, string_byte_to_char)
13049 (string_make_multibyte, string_to_multibyte)
13050 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
13051 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
13052 (substring_both, Fdelete, internal_equal, Ffillarray)
13053 (Fclear_string, mapcar1)
13054 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
13055 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
13056 (larger_vector, make_hash_table, maybe_resize_hash_table)
13057 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
13058 (Fmaphash, secure_hash):
13059 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13060 (concat): Check for string index and length overflow.
13061 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
13062 (Frequire):
13063 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13064 (larger_vector): New API (vec, incr_min, size_max) replaces old
13065 one (vec, new_size, init). This catches size overflow.
13066 INIT was removed because it was always Qnil.
13067 All callers changed.
13068 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
13069 the upper bound on a hash table index size.
13070 (make_hash_table, maybe_resize_hash_table): Use it.
13071 (secure_hash): Computer start_byte and end_byte only after
13072 they're known to be in ptrdiff_t range.
13073 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
13074 (Ffont_get_glyphs, Ffont_at):
13075 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13076 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
13077 (Flist_fonts, Fopen_font):
13078 Don't assume fixnum can fit in int.
13079 (check_gstring): Don't assume index can fit in int.
13080 (font_match_p): Check that fixnum is a character, not a nonnegative
13081 fixnum, since the later code needs to stuff it into an int.
13082 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
13083 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
13084 conversion overflow issues.
13085 (Fopen_font): Check for integer out of range.
13086 (Ffont_get_glyphs): Don't assume index can fit in int.
13087 * font.h: Adjust decls to match defn changes elsewhere.
13088 * fontset.c (reorder_font_vector): Redo score calculation to avoid
13089 integer overflow.
13090 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
13091 printmax_t, where ptrdiff_t is wide enough.
13092 (Finternal_char_font):
13093 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13094 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
13095 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
13096 (Fset_frame_position, x_set_frame_parameters)
13097 (x_set_line_spacing, x_set_border_width)
13098 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
13099 Check that fixnums are in proper range for system types.
13100 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
13101 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13102 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
13103 Use SAFE_ALLOCA_LISP, not alloca.
13104 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
13105 intptr_t is wide enough.
13106 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
13107 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
13108 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
13109 Check for fixnum out of range.
13110 * ftfont.c (ftfont_list): Don't assume index fits in int.
13111 Check that fixnums are in proper range for system types.
13112 (ftfont_shape_by_flt):
13113 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13114 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
13115 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13116 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
13117 Check that fixnums are in proper range for system types.
13118 * gnutls.h: Adjust decls to match defn changes elsewhere.
13119 * gtkutil.c (xg_dialog_run):
13120 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13121 (update_frame_tool_bar):
13122 Check that fixnums are in proper range for system types.
13123 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
13124 (lookup_image): Check that fixnums are in range for system types.
13125 * indent.c (last_known_column, last_known_column_point):
13126 (current_column_bol_cache):
13127 (skip_invisible, current_column, check_display_width):
13128 (check_display_width, scan_for_column, current_column_1)
13129 (Findent_to, Fcurrent_indentation, position_indentation)
13130 (indented_beyond_p, Fmove_to_column, compute_motion):
13131 (Fcompute_motion, Fvertical_motion):
13132 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13133 (last_known_column_modified): Use EMACS_INT, not int.
13134 (check_display_width):
13135 (Fcompute_motion):
13136 Check that fixnums and floats are in proper range for system types.
13137 (compute_motion): Don't assume index or fixnum fits in int.
13138 (compute_motion, Fcompute_motion):
13139 Use int, not EMACS_INT, when it is wide enough.
13140 (vmotion): Omit local var start_hpos that is always 0; that way
13141 we don't need to worry about overflow in expressions involving it.
13142 * indent.h: Adjust decls to match defn changes elsewhere.
13143 (struct position):
13144 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13145 Use int, not EMACS_INT, where int is wide enough.
13146 Remove unused members ovstring_chars_done and tab_offset;
13147 all uses removed.
13148 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
13149 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
13150 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
13151 (make_gap, copy_text, insert, insert_and_inherit)
13152 (insert_before_markers, insert_before_markers_and_inherit)
13153 (insert_1, count_combining_before, count_combining_after)
13154 (insert_1_both, insert_from_string)
13155 (insert_from_string_before_markers, insert_from_string_1)
13156 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
13157 (adjust_after_replace, adjust_after_insert, replace_range)
13158 (replace_range_2, del_range, del_range_1, del_range_byte)
13159 (del_range_both, del_range_2, modify_region)
13160 (prepare_to_modify_buffer, signal_before_change)
13161 (signal_after_change, Fcombine_after_change_execute):
13162 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13163 * intervals.c (traverse_intervals, rotate_right, rotate_left)
13164 (balance_an_interval, split_interval_right, split_interval_left)
13165 (find_interval, next_interval, update_interval)
13166 (adjust_intervals_for_insertion, delete_node, delete_interval)
13167 (interval_deletion_adjustment, adjust_intervals_for_deletion)
13168 (static_offset_intervals, offset_intervals)
13169 (merge_interval_right, merge_interval_left, make_new_interval)
13170 (graft_intervals_into_buffer, temp_set_point_both)
13171 (temp_set_point, set_point, adjust_for_invis_intang)
13172 (set_point_both, move_if_not_intangible, get_property_and_range)
13173 (get_local_map, copy_intervals, copy_intervals_to_string)
13174 (compare_string_intervals, set_intervals_multibyte_1):
13175 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13176 * intervals.h: Adjust decls to match defn changes elsewhere.
13177 (struct interval):
13178 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13179 * keyboard.c (this_command_key_count, this_single_command_key_start)
13180 (before_command_key_count, before_command_echo_length, echo_now)
13181 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
13182 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
13183 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
13184 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
13185 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13186 (last_non_minibuf_size, last_point_position, echo_truncate)
13187 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
13188 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
13189 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
13190 (stuff_buffered_input):
13191 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13192 (last_auto_save, command_loop_1, read_char):
13193 Use EMACS_INT, not int, to avoid integer overflow.
13194 (record_char): Avoid overflow in total_keys computation.
13195 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
13196 * keyboard.h: Adjust decls to match defn changes elsewhere.
13197 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
13198 (Fkey_description, Fdescribe_vector, Flookup_key):
13199 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13200 (click_position): New function, to check that positions are in range.
13201 (Fcurrent_active_maps):
13202 (describe_command):
13203 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13204 (Faccessible_keymaps, Fkey_description):
13205 (preferred_sequence_p):
13206 Don't assume fixnum can fit into int.
13207 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
13208 Check for integer overflow in size calculations.
13209 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
13210 avoid mishandling large integers.
13211 * lisp.h: Adjust decls to match defn changes elsewhere.
13212 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
13213 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
13214 (struct Lisp_Marker):
13215 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13216 (clip_to_bounds): Now an inline function, moved here from editfns.c.
13217 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
13218 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
13219 All callers changed.
13220 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
13221 Assume the arg has valid form, since it always does.
13222 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
13223 unsigned integer system type.
13224 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
13225 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
13226 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13227 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
13228 (duration_to_sec_usec): New decl.
13229 * lread.c (read_from_string_index, read_from_string_index_byte)
13230 (read_from_string_limit, readchar, unreadchar, openp)
13231 (read_internal_start, read1, oblookup):
13232 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13233 (Fload, readevalloop, Feval_buffer, Feval_region):
13234 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13235 (openp): Check for out-of-range argument to 'access'.
13236 (read1): Use int, not EMACS_INT, where int is wide enough.
13237 Don't assume fixnum fits into int.
13238 Fix off-by-one error that can read outside a buffer.
13239 (read_filtered_event): Use duration_to_sec_usec
13240 to do proper overflow checking on durations.
13241 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
13242 in size calculation.
13243 (Fexecute_kbd_macro):
13244 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13245 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
13246 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
13247 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
13248 (set_marker_both, set_marker_restricted_both, marker_position)
13249 (marker_byte_position, Fbuffer_has_markers_at):
13250 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13251 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
13252 * menu.c (ensure_menu_items): Rename from grow_menu_items.
13253 It now merely ensures that the menu is large enough, without
13254 necessarily growing it, as this avoids some integer overflow issues.
13255 All callers changed.
13256 (keymap_panes, parse_single_submenu, Fx_popup_menu):
13257 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13258 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
13259 Use SAFE_ALLOCA_LISP, not alloca.
13260 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
13261 to EMACS_INT. Check that fixnums are in proper range for system types.
13262 * minibuf.c (minibuf_prompt_width, string_to_object)
13263 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
13264 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
13265 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13266 (get_minibuffer, read_minibuf_unwind):
13267 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13268 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
13269 this simplifies overflow checking. All callers changed.
13270 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
13271 (Ftest_completion):
13272 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13273 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
13274 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
13275 Check that fixnums are in proper range for system types.
13276 (Fx_create_frame, Fx_show_tip):
13277 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13278 * nsfont.m (ns_findfonts, nsfont_list_family):
13279 Don't assume fixnum fits in long.
13280 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
13281 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13282 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
13283 wide enough.
13284 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
13285 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13286 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
13287 (PRINTDECLARE, PRINTPREPARE):
13288 (strout, print_string):
13289 (print, print_preprocess, print_check_string_charset_prop)
13290 (print_object):
13291 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13292 (PRINTDECLARE):
13293 (temp_output_buffer_setup, Fprin1_to_string, print_object):
13294 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13295 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
13296 (printchar, strout): Use xpalloc to catch size calculation overflow.
13297 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
13298 (print_error_message): Use SAFE_ALLOCA, not alloca.
13299 (print_object): Use int, not EMACS_INT, where int is wide enough.
13300 (print_depth, new_backquote_output, print_number_index):
13301 Use ptrdiff_t, not int, where int might not be wide enough.
13302 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
13303 (Fset_process_window_size, Fformat_network_address)
13304 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
13305 (sigchld_handler):
13306 Check that fixnums are in proper range for system types.
13307 (Fsignal_process): Simplify by avoiding a goto.
13308 Check for process-ids out of pid_t range rather than relying on
13309 undefined behavior.
13310 (process_tick, update_tick): Use EMACS_INT, not int.
13311 (Fformat_network_address, read_process_output, send_process)
13312 (Fprocess_send_region, status_notify):
13313 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13314 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
13315 (wait_reading_process_output, read_process_output, exec_sentinel):
13316 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13317 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
13318 (Faccept_process_output): Use duration_to_sec_usec to do proper
13319 overflow checking on durations.
13320 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
13321 Don't assume pid_t fits in int.
13322 * process.h (struct Lisp_Process): Members tick and update_tick
13323 are now of type EMACS_INT, not int.
13324 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
13325 configured --with-wide-int.
13326 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
13327 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
13328 * search.c (looking_at_1, string_match_1):
13329 (fast_string_match, fast_c_string_match_ignore_case)
13330 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
13331 (scan_newline, find_before_next_newline, search_command)
13332 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
13333 (set_search_regs, wordify):
13334 (Freplace_match):
13335 (Fmatch_data):
13336 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13337 (string_match_1, search_buffer, set_search_regs):
13338 (Fmatch_data):
13339 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13340 (wordify): Check for overflow in size calculation.
13341 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
13342 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
13343 Check that fixnums are in proper range for system types.
13344 * sound.c (struct sound_device)
13345 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
13346 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13347 (Fplay_sound_internal):
13348 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13349 * syntax.c (struct lisp_parse_state, find_start_modiff)
13350 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
13351 (Fparse_partial_sexp):
13352 Don't assume fixnums can fit in int.
13353 (struct lisp_parse_state, find_start_pos, find_start_value)
13354 (find_start_value_byte, find_start_begv)
13355 (update_syntax_table, char_quoted, dec_bytepos)
13356 (find_defun_start, prev_char_comend_first, back_comment):
13357 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
13358 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
13359 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13360 (Finternal_describe_syntax_value): Check that match_lisp is a
13361 character, not an integer, since the code stuffs it into int.
13362 (scan_words, scan_sexps_forward):
13363 Check that fixnums are in proper range for system types.
13364 (Fforward_word):
13365 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13366 (scan_sexps_forward):
13367 Use CHARACTERP, not INTEGERP, since the value must fit into int.
13368 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
13369 * syntax.h: Adjust decls to match defn changes elsewhere.
13370 (struct gl_state_s):
13371 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13372 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
13373 MOST_POSITIVE_FIXNUM.
13374 * sysdep.c (wait_for_termination_1, wait_for_termination)
13375 (interruptible_wait_for_termination, mkdir):
13376 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
13377 (emacs_read, emacs_write):
13378 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13379 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
13380 and double all fit in int.
13381 * term.c (set_tty_color_mode):
13382 Check that fixnums are in proper range for system types.
13383 * termhooks.h (struct input_event):
13384 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13385 * textprop.c (validate_interval_range, interval_of)
13386 (Fadd_text_properties, set_text_properties_1)
13387 (Fremove_text_properties, Fremove_list_of_text_properties)
13388 (Ftext_property_any, Ftext_property_not_all)
13389 (copy_text_properties, text_property_list, extend_property_ranges)
13390 (verify_interval_modification):
13391 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13392 (Fnext_single_char_property_change)
13393 (Fprevious_single_char_property_change):
13394 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13395 (copy_text_properties):
13396 Check for integer overflow in index calculation.
13397 * undo.c (last_boundary_position, record_point, record_insert)
13398 (record_delete, record_marker_adjustment, record_change)
13399 (record_property_change):
13400 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13401 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
13402 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13403 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
13404 (Fx_hide_tip, Fx_file_dialog):
13405 * w32menu.c (set_frame_menubar):
13406 Use ptrdiff_t, not int, for consistency with rest of code.
13407 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
13408 (select_window, Fdelete_other_windows_internal)
13409 (window_scroll_pixel_based, window_scroll_line_based)
13410 (Frecenter, Fset_window_configuration):
13411 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13412 (Fset_window_hscroll, run_window_configuration_change_hook)
13413 (set_window_buffer, temp_output_buffer_show, scroll_command)
13414 (Fscroll_other_window, Frecenter):
13415 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13416 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
13417 Don't assume fixnum fits in int.
13418 (Fset_window_scroll_bars):
13419 Check that fixnums are in proper range for system types.
13420 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
13421 (string_pos, c_string_pos, number_of_chars, init_iterator)
13422 (in_ellipses_for_invisible_text_p, init_from_display_pos)
13423 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
13424 (compute_display_string_end, handle_face_prop)
13425 (face_before_or_after_it_pos, handle_invisible_prop)
13426 (handle_display_prop, handle_display_spec, handle_single_display_spec)
13427 (display_prop_intangible_p, string_buffer_position_lim)
13428 (string_buffer_position, handle_composition_prop, load_overlay_strings)
13429 (get_overlay_strings_1, get_overlay_strings)
13430 (iterate_out_of_display_property, forward_to_next_line_start)
13431 (back_to_previous_visible_line_start, reseat, reseat_to_string)
13432 (get_next_display_element, set_iterator_to_next)
13433 (get_visually_first_element, compute_stop_pos_backwards)
13434 (handle_stop_backwards, next_element_from_buffer)
13435 (move_it_in_display_line_to, move_it_in_display_line)
13436 (move_it_to, move_it_vertically_backward, move_it_by_lines)
13437 (add_to_log, message_dolog, message_log_check_duplicate)
13438 (message2, message2_nolog, message3, message3_nolog
13439 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
13440 (current_message_1, truncate_echo_area, truncate_message_1)
13441 (set_message, set_message_1, store_mode_line_noprop)
13442 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
13443 (text_outside_line_unchanged_p, check_point_in_composition)
13444 (reconsider_clip_changes)
13445 (redisplay_internal, set_cursor_from_row, try_scrolling)
13446 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
13447 (redisplay_window, find_last_unchanged_at_beg_row)
13448 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
13449 (trailing_whitespace_p, find_row_edges, display_line)
13450 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
13451 (display_mode_element, store_mode_line_string)
13452 (pint2str, pint2hrstr, decode_mode_spec)
13453 (display_count_lines, display_string, draw_glyphs)
13454 (x_produce_glyphs, x_insert_glyphs)
13455 (rows_from_pos_range, mouse_face_from_buffer_pos)
13456 (fast_find_string_pos, mouse_face_from_string_pos)
13457 (note_mode_line_or_margin_highlight, note_mouse_highlight):
13458 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13459 (safe_call, init_from_display_pos, handle_fontified_prop)
13460 (handle_single_display_spec, load_overlay_strings)
13461 (with_echo_area_buffer, setup_echo_area_for_printing)
13462 (display_echo_area, echo_area_display)
13463 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
13464 (update_tool_bar, hscroll_window_tree, redisplay_internal)
13465 (redisplay_window, dump_glyph_row, display_mode_line)
13466 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
13467 (handle_display_spec, display_prop_string_p):
13468 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13469 (handle_single_display_spec, build_desired_tool_bar_string)
13470 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
13471 (get_specified_cursor_type):
13472 Check that fixnums are in proper range for system types.
13473 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
13474 (Flookup_image_map):
13475 Don't assume fixnums fit in int.
13476 (compare_overlay_entries):
13477 Avoid mishandling comparisons due to subtraction overflow.
13478 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
13479 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
13480 (handle_tool_bar_click):
13481 Use int, not unsigned, since we prefer signed and the signedness
13482 doesn't matter here.
13483 (get_next_display_element, next_element_from_display_vector):
13484 Use int, not EMACS_INT, when int is wide enough.
13485 (start_hourglass): Use duration_to_sec_usec to do proper
13486 overflow checking on durations.
13487 * xfaces.c (Fbitmap_spec_p):
13488 Check that fixnums are in proper range for system types.
13489 (compare_fonts_by_sort_order):
13490 Avoid mishandling comparisons due to subtraction overflow.
13491 (Fx_family_fonts, realize_basic_faces):
13492 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13493 (Fx_family_fonts):
13494 Don't assume fixnum fits in int.
13495 Use SAFE_ALLOCA_LISP, not alloca.
13496 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
13497 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
13498 (face_at_buffer_position, face_for_overlay_string)
13499 (face_at_string_position):
13500 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13501 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
13502 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
13503 (Fx_show_tip):
13504 Check that fixnums are in proper range for system types.
13505 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
13506 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
13507 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13508 (Fx_change_window_property): Don't assume fixnums fit in int.
13509 * xfont.c (xfont_chars_supported):
13510 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13511 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
13512 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
13513 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13514 * xml.c (parse_region):
13515 * xrdb.c (magic_file_p):
13516 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
13517 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
13518 (x_get_local_selection, x_reply_selection_request)
13519 (x_handle_selection_request, wait_for_property_change):
13520 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13521 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
13522 short is wide enough.
13523 (x_send_client_event): Don't assume fixnum fits in int.
13524 * xterm.c (x_x_to_emacs_modifiers):
13525 Don't assume EMACS_INT overflows nicely into int.
13526 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
13527 may come from Lisp.
13528 (handle_one_xevent): NATNUMP can eval its arg twice.
13529 (x_connection_closed):
13530 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
13531 * xterm.h: Adjust decls to match defn changes elsewhere.
13532 (struct scroll_bar): Use struct vectorlike_header
13533 rather than rolling our own approximation.
13534 (SCROLL_BAR_VEC_SIZE): Remove; not used.
13535
135362012-05-25 Glenn Morris <rgm@gnu.org>
13537
13538 * lisp.mk (lisp): Update for more files being compiled now.
13539
135402012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
13541
13542 * lread.c: Remove `read_pure' which makes no difference.
13543 (read_pure): Remove var.
13544 (unreadpure): Remove function.
13545 (readevalloop): Don't call read_list with -1 flag.
13546 (read1, read_vector): Don't test read_pure any more.
13547 (read_list): Simplify.
13548
13549 * fileio.c, character.h: Minor style tweaks.
13550
135512012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
13552
13553 * window.h (clip_changed): Remove useless declaration.
13554
135552012-05-22 Juanma Barranquero <lekktu@gmail.com>
13556
13557 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
13558 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
13559
135602012-05-22 Paul Eggert <eggert@cs.ucla.edu>
13561
13562 Remove src/m/*.
13563 This directory predates autoconf and is no longer needed nowadays.
13564 Move its few remaining bits of functionality to where they're needed.
13565 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
13566 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
13567 * m/template.h: Remove.
13568 * Makefile.in (M_FILE): Remove. All uses removed.
13569 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
13570 * lisp.h (USE_LSB_TAG):
13571 * mem-limits.h (EXCEEDS_LISP_PTR):
13572 Use VAL_MAX, not VALBITS, in #if.
13573 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
13574 (EMACS_UINT): Define unconditionally now.
13575 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
13576 (BITS_PER_EMACS_INT): New constants, replacing
13577 what used to be in config.h, but not useful in #if.
13578 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
13579 define them any more.
13580 (VAL_MAX): New macro.
13581 (VALMASK): Use it.
13582 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
13583 BITS_PER_EMACS_INT, in #if.
13584 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
13585 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
13586 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
13587 * s/ms-w32.h (DATA_START):
13588 Move here from removed file m/intel386.h.
13589 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
13590 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
13591
135922012-05-21 Paul Eggert <eggert@cs.ucla.edu>
13593
13594 Assume C89 or later.
13595 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
13596 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
13597 (xrealloc):
13598 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
13599 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
13600 * textprop.c, tparam.c (NULL): Remove.
13601 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
13602 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
13603 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
13604 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
13605 * xterm.c (input_signal_count): Assume volatile works.
13606
136072012-05-21 Ken Brown <kbrown@cornell.edu>
13608
13609 * xgselect.c (xg_select): Fix first argument in call to 'select'
13610 (bug#11508).
13611
136122012-05-20 Ken Brown <kbrown@cornell.edu>
13613
13614 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
13615 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
13616
136172012-05-19 Ken Brown <kbrown@cornell.edu>
13618
13619 * xfns.c (x_in_use): Remove `static' qualifier.
13620 * xterm.h (x_in_use): Declare.
13621 * xgselect.c: Include xterm.h.
13622 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
13623 and `display_arg' (bug#9754).
13624
136252012-05-19 Paul Eggert <eggert@cs.ucla.edu>
13626
13627 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
13628
13629 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
13630 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
13631
136322012-05-18 Eli Zaretskii <eliz@gnu.org>
13633
13634 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
13635
13636 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
13637 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
13638
13639 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
13640 reference to image_cache->refcount.
13641 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
13642
136432012-05-17 Juri Linkov <juri@jurta.org>
13644
13645 * search.c (Fword_search_regexp, Fword_search_backward)
13646 (Fword_search_forward, Fword_search_backward_lax)
13647 (Fword_search_forward_lax): Move functions to isearch.el
13648 (bug#10145, bug#11381).
13649
136502012-05-16 Paul Eggert <eggert@cs.ucla.edu>
13651
13652 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
13653
136542012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
13655
13656 * lread.c (init_obarray): Declare Qt and Qnil as special.
13657
136582012-05-14 Glenn Morris <rgm@gnu.org>
13659
13660 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
13661 Put "libexec" before "bin", for the sake of init_callproc_1.
13662
136632012-05-14 Paul Eggert <eggert@cs.ucla.edu>
13664
13665 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
13666
13667 * unexaix.c: Port to more-recent AIX compilers.
13668 (report_error, report_error_1, make_hdr, copy_sym)
13669 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
13670 Make arguments const char *, not char *, to avoid violations of C
13671 standard and to fix some AIX warnings reported by Gilles Pion.
13672
136732012-05-14 Eli Zaretskii <eliz@gnu.org>
13674
13675 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
13676 already have overlays loaded.
13677 (handle_single_display_spec): Before returning without displaying
13678 fringe bitmap, synchronize the bidi iterator with the main display
13679 iterator, by calling iterate_out_of_display_property.
13680 (iterate_out_of_display_property): Detect buffer iteration by
13681 testing that it->string is a Lisp string.
13682 (get_next_display_element): When the current object is exhausted,
13683 and there's something on it->stack, call set_iterator_to_next to
13684 proceed with what's on the stack, instead of returning zero.
13685 (set_iterator_to_next): If called at the end of a Lisp string,
13686 proceed to consider_string_end without incrementing string
13687 position. Don't increment display vector index past the end of
13688 the display vector. (Bug#11417)
13689 (pos_visible_p): Don't report a position visible when move_it_to
13690 stopped at the last line of window, which happens to be scanned
13691 backwards by the bidi iteration. (Bug#11464)
13692
136932012-05-14 Eli Zaretskii <eliz@gnu.org>
13694
13695 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
13696 and right-margin display specs even if the spec is invalid or we
13697 are on a TTY, and thus unable to display on the fringes.
13698 That's because the text with the property will not be displayed anyway,
13699 so we need to signal to the caller that this is a "replacing"
13700 display spec. This fixes display when the spec is invalid or we
13701 are on a TTY.
13702
137032012-05-14 Paul Eggert <eggert@cs.ucla.edu>
13704
13705 * unexaix.c (make_hdr): Fix typo in prototype.
13706 This bug broke the build on AIX. Problem reported by Gilles Pion.
13707
137082012-05-14 Michael Albinus <michael.albinus@gmx.de>
13709
13710 * keyboard.c (kbd_buffer_get_event): Read special events also in
13711 batch mode. (Bug#11415)
13712
137132012-05-12 Glenn Morris <rgm@gnu.org>
13714
13715 * ns.mk: Update for ns_appbindir no longer having trailing "/".
13716
137172012-05-12 Eli Zaretskii <eliz@gnu.org>
13718
13719 * lisp.mk (lisp): Add newcomment.elc.
13720
137212012-05-12 Glenn Morris <rgm@gnu.org>
13722
13723 * Makefile.in (MKDIR_P): New, set by configure.
13724 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
13725
137262012-05-11 Paul Eggert <eggert@cs.ucla.edu>
13727
13728 Remove unused function hourglass_started.
13729 * dispextern.h (hourglass_started):
13730 * w32fns.c (hourglass_started):
13731 * xdisp.c (hourglass_started): Remove.
13732
137332012-05-10 Juanma Barranquero <lekktu@gmail.com>
13734
13735 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
13736 Update dependencies.
13737
137382012-05-10 Paul Eggert <eggert@cs.ucla.edu>
13739
13740 * xgselect.c (xg_select): Put maxfds+1 into a var.
13741 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
13742
13743 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
13744
137452012-05-10 Dave Abrahams <dave@boostpro.com>
13746
13747 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
13748 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
13749
137502012-05-09 Michael Albinus <michael.albinus@gmx.de>
13751
13752 * dbusbind.c (xd_registered_buses): New internal Lisp object.
13753 Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
13754 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
13755 Initialize xd_registered_buses.
13756
137572012-05-09 Paul Eggert <eggert@cs.ucla.edu>
13758
13759 Untag more efficiently if USE_LSB_TAG.
13760 This is based on a proposal by YAMAMOTO Mitsuharu in
13761 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
13762 For an admittedly artificial (nth 8000 longlist) benchmark on
13763 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
13764 Emacs's overall text size by 1%.
13765 * lisp.h (XUNTAG): New macro.
13766 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
13767 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
13768 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
13769 * eval.c (Fautoload):
13770 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
13771 * frame.h (XFRAME): Use XUNTAG.
13772
13773 Port recent dbusbind.c changes to 32-bit --with-wide-int.
13774 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
13775 Remove unportable assumptions about print widths of types like
13776 dbus_uint32_t.
13777 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
13778 intptr_t when converting between pointer and integer, to avoid GCC
13779 warnings about wrong width.
13780
137812012-05-09 Eli Zaretskii <eliz@gnu.org>
13782
13783 * w32proc.c (new_child): Force Windows to reserve only 64KB of
13784 stack for each reader_thread, instead of defaulting to 8MB
13785 determined by the linker. This avoids failures in creating
13786 subprocesses on Windows 7, see the discussion in this thread:
13787 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
13788
137892012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
13790
13791 Fix up display of the *Minibuf-0* buffer in the mini window.
13792 * keyboard.c (read_char): Don't clear the echo area if there's no
13793 message to clear.
13794 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
13795 contents of *Minibuf-0*) if there's no message displayed in its stead.
13796
137972012-05-07 Michael Albinus <michael.albinus@gmx.de>
13798
13799 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
13800 batch mode.
13801
138022012-05-06 Chong Yidong <cyd@gnu.org>
13803
13804 * lisp.mk (lisp): Update.
13805
138062012-05-05 Jim Meyering <meyering@redhat.com>
13807
13808 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
13809
138102012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
13811
13812 * data.c (PUT_ERROR): New macro.
13813 (syms_of_data): Use it. Add new error type `user-error'.
13814 * undo.c (user_error): New function.
13815 (Fprimitive_undo): Use it.
13816 * print.c (print_error_message): Adjust print style for `user-error'.
13817 * keyboard.c (user_error): New function.
13818 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
13819
138202012-05-03 Paul Eggert <eggert@cs.ucla.edu>
13821
13822 Do not limit current-time-string to years 1000..9999.
13823 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
13824 (Fcurrent_time_string): Support any year that is supported by the
13825 underlying localtime representation. Don't use asctime, as it
13826 has undefined behavior for years outside the range -999..9999.
13827
138282012-05-02 Paul Eggert <eggert@cs.ucla.edu>
13829
13830 Fix race conditions involving setenv, gmtime, localtime, asctime.
13831 Without this fix, interrupts could mess up code that uses these
13832 nonreentrant functions, since setting TZ invalidates existing
13833 tm_zone or tzname values, and since most of these functions return
13834 pointers to static storage.
13835 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
13836 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
13837 Grow the critical sections to include not just invoking
13838 localtime/gmtime, but also accessing these functions' results
13839 including their tm_zone values if any, and any related TZ setting.
13840 (format_time_string): Last arg is now struct tm *, not struct tm **,
13841 so that the struct tm is saved in the critical section.
13842 All callers changed. Simplify allocation of initial buffer, partly
13843 motivated by the fact that memory allocation needs to be outside
13844 the critical section.
13845
138462012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
13847
13848 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
13849 with RESET_INTERVAL.
13850
13851 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
13852 Remove duplicated buffer name initialization.
13853
138542012-05-02 Jim Meyering <jim@meyering.net>
13855
13856 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
13857
13858 * xfns.c (x_window): Use xstrdup (Bug#11375).
13859
138602012-05-02 Eli Zaretskii <eliz@gnu.org>
13861
13862 * xdisp.c (pos_visible_p): If already at a newline from the
13863 display string before the 'while' loop, don't walk back the glyphs
13864 from it3.glyph_row. Solves assertion violation when the display
13865 string begins with a newline (egg.el). (Bug#11367)
13866
138672012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
13868
13869 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
13870 Move to simple.el.
13871
138722012-05-01 Glenn Morris <rgm@gnu.org>
13873
13874 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
13875 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
13876 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
13877 All were removed before 23.1.
13878
13879 * dispnew.c: Remove HAVE_LIBNCURSES test;
13880 it is always true on relevant platforms.
13881
13882 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
13883 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
13884
13885 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
13886
138872012-04-30 Andreas Schwab <schwab@linux-m68k.org>
13888
13889 * .gdbinit (xpr): Remove checks for no longer existing misc types.
13890 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
13891 Remove.
13892
138932012-04-28 Paul Eggert <eggert@cs.ucla.edu>
13894
13895 Do not avoid creating empty evaporating overlays (Bug#9642).
13896 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
13897 That is, do not delete an evaporating overlay if it becomes
13898 empty after its bounds are adjusted to fit within its buffer.
13899 This fix caused other problems, and I'm reverting it until we get
13900 to the bottom of them.
13901
139022012-04-27 Chong Yidong <cyd@gnu.org>
13903
13904 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
13905
139062012-04-27 Eli Zaretskii <eliz@gnu.org>
13907
13908 * xdisp.c (pos_visible_p): If the window start position is beyond
13909 ZV, start the display from buffer beginning. Prevents assertion
13910 violation in init_iterator when the minibuffer window is scrolled
13911 via the scroll bar.
13912
13913 * window.c (window_scroll_pixel_based): Likewise.
13914
139152012-04-27 Chong Yidong <cyd@gnu.org>
13916
13917 * keymap.c (where_is_internal): Doc fix (Bug#10872).
13918
139192012-04-27 Glenn Morris <rgm@gnu.org>
13920
13921 * fileio.c (Fcopy_file, Fset_file_selinux_context):
13922 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
13923
139242012-04-27 Eli Zaretskii <eliz@gnu.org>
13925
13926 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
13927 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
13928
139292012-04-26 Eli Zaretskii <eliz@gnu.org>
13930
13931 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
13932 display element, check also the underlying string or buffer
13933 character. (Bug#11341)
13934
13935 * w32menu.c: Include w32heap.h.
13936 (add_menu_item): If the call to AppendMenuW (via
13937 unicode_append_menu) fails, disable Unicode menus only if we are
13938 running on Windows 9X/Me.
13939
139402012-04-24 Andreas Schwab <schwab@linux-m68k.org>
13941
13942 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
13943 (xgetint): Add missing shift for LSB tags.
13944
139452012-04-24 Martin Rudalics <rudalics@gmx.at>
13946
13947 * keyboard.c (read_char): Don't wipe echo area for select window
13948 events: These might get delayed via `mouse-autoselect-window'
13949 (Bug#11304).
13950
139512012-04-24 Juanma Barranquero <lekktu@gmail.com>
13952
13953 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
13954 manipulation of :loaded-from data.
13955
139562012-04-23 Juanma Barranquero <lekktu@gmail.com>
13957
13958 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
13959 now a cons (bug#11311).
13960
139612012-04-23 Paul Eggert <eggert@cs.ucla.edu>
13962
13963 Do not create empty overlays with the evaporate property (Bug#9642).
13964 * buffer.c (Fmove_overlay): Delete an evaporating overlay
13965 if it becomes empty after its bounds are adjusted to fit within
13966 its buffer. Without this fix, in a nonempty buffer (let ((o
13967 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
13968 yields an empty overlay that has the evaporate property, which is
13969 not supposed to happen.
13970
13971 Fix minor GTK3 problems found by static checking.
13972 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
13973 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
13974 (struct _EmacsFixedClass, emacs_fixed_get_type):
13975 Move decls here from emacsgtkfixed.h, since they needn't be public.
13976 (emacs_fixed_get_type): Now static.
13977 (emacs_fixed_class_init): Omit unused local.
13978 (emacs_fixed_child_type): Remove; unused.
13979 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
13980 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
13981 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
13982 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
13983 (EMACS_FIXED_GET_CLASS): Remove; unused.
13984 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
13985
13986 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
13987 Problem reported by Juanma Barranquero for Windows -Wunused-function.
13988
139892012-04-22 Paul Eggert <eggert@cs.ucla.edu>
13990
13991 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
13992 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
13993 (__malloc_size_t, __malloc_ptrdiff_t):
13994 Remove. All uses removed, replaced by the definiens if needed,
13995 since we can assume C89 or better now.
13996 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
13997 (protect_malloc_state, align, get_contiguous_space)
13998 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
13999 (malloc_atfork_handler_child, malloc_enable_thread)
14000 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
14001 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
14002 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
14003 (special_realloc, _realloc_internal_nolock, _realloc_internal)
14004 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
14005 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
14006 Define using prototypes, not old style.
14007 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
14008 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
14009 (align): Don't assume that signed integer overflow wraps around.
14010 Omit unused local var.
14011 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
14012 (_free_internal_nolock, memalign, mallochook, reallochook):
14013 Omit no-longer-needed casts.
14014 (valloc): Use getpagesize, not __getpagesize.
14015 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
14016 (struct hdr): The 'magic' member is now size_t, not unsigned long.
14017
14018 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
14019
140202012-04-22 Michael Albinus <michael.albinus@gmx.de>
14021
14022 Move functions from C to Lisp. Make non-blocking method calls
14023 the default. Implement further D-Bus standard interfaces.
14024
14025 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
14026 (QCdbus_request_name_allow_replacement)
14027 (QCdbus_request_name_replace_existing)
14028 (QCdbus_request_name_do_not_queue)
14029 (QCdbus_request_name_reply_primary_owner)
14030 (QCdbus_request_name_reply_in_queue)
14031 (QCdbus_request_name_reply_exists)
14032 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
14033 (QCdbus_registered_serial, QCdbus_registered_method)
14034 (QCdbus_registered_signal): New Lisp objects.
14035 (XD_DEBUG_MESSAGE): Use sizeof.
14036 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
14037 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
14038 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
14039 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
14040 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
14041 (xd_signature, xd_append_arg): Allow float for integer types.
14042 (xd_get_connection_references): New function.
14043 (xd_get_connection_address): Rename from xd_initialize.
14044 Return cached address.
14045 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
14046 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
14047 level.
14048 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
14049 Return number of refcounts.
14050 (Fdbus_get_unique_name): Make stronger parameter check.
14051 (Fdbus_message_internal): New defun.
14052 (Fdbus_call_method, Fdbus_call_method_asynchronously)
14053 (Fdbus_method_return_internal, Fdbus_method_error_internal)
14054 (Fdbus_send_signal, Fdbus_register_service)
14055 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
14056 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
14057 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
14058 (Vdbus_compiled_version, Vdbus_runtime_version)
14059 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
14060 (Vdbus_message_type_method_return, Vdbus_message_type_error)
14061 (Vdbus_message_type_signal): New defvars.
14062 (Vdbus_registered_buses, Vdbus_registered_objects_table):
14063 Adapt docstring.
14064
140652012-04-22 Paul Eggert <eggert@cs.ucla.edu>
14066
14067 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
14068 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
14069 Do not assume ptrdiff_t is the same width as 'int'.
14070
14071 * alloc.c: Handle unusual debugging option combinations.
14072 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
14073 since the two debugging options are incompatible.
14074 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
14075 is defined.
14076 (mem_init, mem_insert, mem_insert_fixup):
14077 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
14078 (NEED_MEM_INSERT): Remove; no longer needed.
14079
140802012-04-22 Leo Liu <sdl.web@gmail.com>
14081
14082 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
14083
140842012-04-22 Paul Eggert <eggert@cs.ucla.edu>
14085
14086 * sysdep.c [__FreeBSD__]: Minor cleanups.
14087 (list_system_processes, system_process_attributes) [__FreeBSD__]:
14088 Use Emacs indenting style more consistently. Avoid some casts.
14089 Use 'double' consistently rather than mixing 'float' and 'double'.
14090
140912012-04-21 Eduard Wiebe <usenet@pusto.de>
14092
14093 * sysdep.c (list_system_processes, system_process_attributes):
14094 Add implementation for FreeBSD (Bug#5243).
14095
140962012-04-21 Andreas Schwab <schwab@linux-m68k.org>
14097
14098 * lisp.mk (lisp): Update.
14099
141002012-04-20 Paul Eggert <eggert@cs.ucla.edu>
14101
14102 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
14103 It is never used otherwise.
14104
141052012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
14106
14107 * print.c (print_preprocess): Only check print_depth if print-circle
14108 is nil.
14109 (print_object): Check for cycles even when print-circle is nil and
14110 print-gensym is t, but only check print_depth if print-circle is nil.
14111
141122012-04-20 Chong Yidong <cyd@gnu.org>
14113
14114 * process.c (wait_reading_process_output): If EIO occurs on a pty,
14115 set the status to "failed" and ensure that sentinel is run.
14116
141172012-04-20 Glenn Morris <rgm@gnu.org>
14118
14119 * process.c (Fset_process_inherit_coding_system_flag)
14120 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
14121 (Fmake_network_process, Fmake_serial_process): Doc fix.
14122
141232012-04-20 Eli Zaretskii <eliz@gnu.org>
14124
14125 * xdisp.c (string_buffer_position_lim): Limit starting position to
14126 BEGV.
14127 (set_cursor_from_row): If called for a mode-line or header-line
14128 row, return zero immediately.
14129 (try_cursor_movement): If inside continuation line, don't back up
14130 farther than the first row after the header line, if any.
14131 Don't consider the header-line row as "partially visible", even if
14132 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
14133
141342012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
14135
14136 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
14137 (bug#11238).
14138
141392012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
141402012-04-18 Paul Eggert <eggert@cs.ucla.edu>
14141
14142 configure: new option --enable-gcc-warnings (Bug#11207)
14143 * Makefile.in (C_WARNINGS_SWITCH): Remove.
14144 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
14145 (ALL_CFLAGS): Use new macros rather than old.
14146 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
14147 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
14148 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
14149 -Wunused-result, -Wunused-variable. This should go away once
14150 the Emacs and Gnulib regex code is merged.
14151 (xmalloc, xrealloc): Now static.
14152
141532012-04-17 Paul Eggert <eggert@cs.ucla.edu>
14154
14155 * dired.c (Fsystem_groups): Remove unused local.
14156
141572012-04-17 Glenn Morris <rgm@gnu.org>
14158
14159 * dired.c (Fsystem_users): Doc fix.
14160
141612012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
14162
14163 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
14164 (syms_of_dired): Add them.
14165
141662012-04-16 Paul Eggert <eggert@cs.ucla.edu>
14167
14168 Fix minor alloc.c problems found by static checking.
14169 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
14170 New extern decls, to avoid calling undeclared functions.
14171 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
14172 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
14173 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
14174 (NEED_MEM_INSERT): New macro.
14175 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
14176 Remove one incorrect comment and fix another.
14177
14178 Fix minor ralloc.c problems found by static checking.
14179 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
14180 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
14181 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
14182 (r_alloc_sbrk): Now static.
14183
14184 Improve ralloc.c interface checking.
14185 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
14186 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
14187 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
14188 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
14189 [REL_ALLOC]: ... to here, to check interface.
14190 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
14191 Remove decls. This fixes an "It stinks!".
14192
14193 * alloc.c (which_symbols): Fix alignment issue / type clash.
14194
141952012-04-15 Andreas Schwab <schwab@linux-m68k.org>
14196
14197 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
14198 (struct Lisp_Misc_Any): Likewise.
14199 (struct Lisp_Free): Likewise.
14200 * alloc.c (union aligned_Lisp_Symbol): Define.
14201 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
14202 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
14203 (union aligned_Lisp_Misc): Define.
14204 (MARKER_BLOCK_SIZE, struct marker_block): Use union
14205 aligned_Lisp_Misc instead of union Lisp_Misc.
14206 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
14207
142082012-04-14 Paul Eggert <eggert@cs.ucla.edu>
14209
14210 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
14211 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
14212 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
14213 * s/netbsd.h, s/sol2-6.h:
14214 Remove definition of GC_MARK_STACK, since the default now works.
14215 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
14216 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
14217 no longer the default.
14218 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
14219
142202012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
14221
14222 * lread.c (lisp_file_lexically_bound_p):
14223 Fix hang at ";-*-\n" (bug#11238).
14224
142252012-04-14 Eli Zaretskii <eliz@gnu.org>
14226
14227 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
14228 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
14229
142302012-04-14 Jan Djärv <jan.h.d@swipnet.se>
14231
14232 * nsterm.m (constrainFrameRect): Always constrain when there is only
14233 one screen (Bug#10962).
14234
142352012-04-13 Ken Brown <kbrown@cornell.edu>
14236
14237 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
14238
142392012-04-13 Reuben Thomas <rrt@sc3d.org>
14240
14241 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
14242
142432012-04-11 Daniel Colascione <dancol@dancol.org>
14244
14245 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
14246 against is gone. It's better to use vfork now so that when Cygwin
14247 gains a new, working vfork, we use it automatically (bug#10398).
14248
142492012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
14250
14251 * window.c (save_window_save): Obey window-point-insertion-type.
14252
142532012-04-11 Glenn Morris <rgm@gnu.org>
14254
14255 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
14256
142572012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
14258
14259 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
14260
142612012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
14262
14263 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
14264 (force_quit_count): New var.
14265 (handle_interrupt): Use it.
14266
142672012-04-10 Juanma Barranquero <lekktu@gmail.com>
14268
14269 * w32.c (w32_delayed_load): Record the full path of the library
14270 being loaded (bug#10424).
14271
142722012-04-09 Glenn Morris <rgm@gnu.org>
14273
14274 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
14275 not just in the obarray, before snarfing them. (Bug#11036)
14276
14277 * Makefile.in ($(leimdir)/leim-list.el):
14278 Pass EMACS rather than BUILT_EMACS.
14279
142802012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
14281
14282 * process.c (make_process):
14283 * process.h: Add integer `gnutls_handshakes_tried' member to
14284 process struct.
14285
14286 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
14287 Add convenience `GNUTLS_LOG2i' macro.
14288
14289 * gnutls.c (gnutls_log_function2i): Convenience log function.
14290 (emacs_gnutls_read): Use new log functions,
14291 `gnutls_handshakes_tried' process member, and
14292 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
14293 attempts per process (connection).
14294
142952012-04-09 Chong Yidong <cyd@gnu.org>
14296
14297 * eval.c (Fuser_variable_p, user_variable_p_eh)
14298 (lisp_indirect_variable): Functions deleted.
14299 (Fdefvar): Caller changed.
14300
14301 * callint.c (Finteractive, Fcall_interactively):
14302 * minibuf.c (Fread_variable): Callers changed.
14303
143042012-04-09 Eli Zaretskii <eliz@gnu.org>
14305
14306 * xdisp.c (set_cursor_from_row): If the display string appears in
14307 the buffer at position that is closer to point than the position
14308 after the display string, display the cursor on the first glyph of
14309 the display string. Fixes cursor display when a 'display' text
14310 property immediately follows invisible text. (Bug#11094)
14311
143122012-04-09 Paul Eggert <eggert@cs.ucla.edu>
14313
14314 composite.c: use 'double' consistently
14315 * composite.c (get_composition_id): Use 'double' consistently
14316 instead of converting 'float' to 'double' and vice versa; this is
14317 easier to understand and avoids a GCC warning.
14318
143192012-04-09 Glenn Morris <rgm@gnu.org>
14320
14321 * Makefile.in: Generate leim-list with bootstrap-emacs, in
14322 preparation for dumping it with emacs. (Bug#4789)
14323 (leimdir): New variable.
14324 ($(leimdir)/leim-list.el): New rule.
14325 (emacs$(EXEEXT)): Depend on leim-list.el.
14326
14327 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
14328 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
14329 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
14330
143312012-04-08 Andreas Schwab <schwab@linux-m68k.org>
14332
14333 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
14334 proper alignment.
14335
143362012-04-07 Juanma Barranquero <lekktu@gmail.com>
14337
14338 * xml.c (init_libxml2_functions) [WINDOWSNT]:
14339 Remove unused local variable.
14340
143412012-04-07 Paul Eggert <eggert@cs.ucla.edu>
14342
14343 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
14344 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
14345 (mark_memory): Mark Lisp_Objects only if pointers might hide in
14346 objects, as mark_maybe_pointer will catch them otherwise.
14347 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
14348 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
14349
143502012-04-07 Paul Eggert <eggert@cs.ucla.edu>
14351
14352 Fix typo that broke non-Windows builds.
14353 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
14354
143552012-04-07 Eli Zaretskii <eliz@gnu.org>
14356
14357 Support building on MS-Windows with libxml2.
14358
14359 * makefile.w32-in (OBJ2): Add xml.$(O).
14360 (GLOBAL_SOURCES): Add xml.c.
14361 ($(BLD)/xml.$(O)): New dependency list.
14362
14363 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
14364 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
14365 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
14366 [!WINDOWSNT]: New macros.
14367 (init_libxml2_functions, libxml2_loaded_p): New functions.
14368 (parse_region): Call fn_xmlCheckVersion instead of using the macro
14369 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
14370 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
14371 Calls xmlCleanupParser only if libxml2 was loaded (or statically
14372 linked in).
14373 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
14374 Call init_libxml2_functions before calling libxml2 functions.
14375 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
14376
14377 * emacs.c: Don't include libxml/parser.h.
14378 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
14379 xmlCleanupParser directly.
14380
14381 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
14382
143832012-04-07 Eli Zaretskii <eliz@gnu.org>
14384
14385 * indent.c (Fvertical_motion): If there is a display string at
14386 point, use it.vpos to compute how many lines to backtrack after
14387 move_it_to point. (Bug#11133)
14388
143892012-04-06 Eli Zaretskii <eliz@gnu.org>
14390
14391 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
14392 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
14393 about subtle differences between FETCH_CHAR* and STRING_CHAR*
14394 macros related to unification of CJK characters. For the details,
14395 see the discussion following the message here:
14396 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
14397
143982012-04-04 Chong Yidong <cyd@gnu.org>
14399
14400 * keyboard.c (Vdelayed_warnings_list): Doc fix.
14401
144022012-04-01 Eli Zaretskii <eliz@gnu.org>
14403
14404 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
14405 instead of alloca. (Bug#11138)
14406
144072012-04-01 Andreas Schwab <schwab@linux-m68k.org>
14408
14409 * w32menu.c (is_simple_dialog): Properly check lisp types.
14410 (Bug#11141)
14411
144122012-03-31 Eli Zaretskii <eliz@gnu.org>
14413
14414 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
14415 position we get to after a call to move_it_to fails the
14416 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
14417 only if we wind up in a string from display property. (Bug#11063)
14418
14419 * window.c (Fdelete_other_windows_internal): Invalidate the row
14420 and column information about mouse highlight, so that redisplay
14421 restores it after reallocating the glyph matrices. (Bug#7464)
14422
14423 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
14424 string comes from a `display' text property, use the buffer
14425 position of that property as if we actually saw that position in
14426 the row's glyphs.
14427 (move_it_by_lines): Remove the assertion that
14428 "it->current_x == 0 && it->hpos == 0" which can be legitimately
14429 violated when there's a before-string at the beginning of a line.
14430 (Bug#11063)
14431
144322012-03-30 Eli Zaretskii <eliz@gnu.org>
14433
14434 * xdisp.c (append_space_for_newline): If the default face was
14435 remapped, use the remapped face for the appended newline.
14436 (extend_face_to_end_of_line): Use the remapped default face for
14437 extending the face to the end of the line.
14438 (display_line): Call extend_face_to_end_of_line when the default
14439 face was remapped. (Bug#11068)
14440
144412012-03-29 Eli Zaretskii <eliz@gnu.org>
14442
14443 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
14444
144452012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
14446
14447 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
14448
144492012-03-27 Glenn Morris <rgm@gnu.org>
14450
14451 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
14452 Doc fixes.
14453
144542012-03-26 Kenichi Handa <handa@m17n.org>
14455
14456 * dispextern.h (struct glyph): Fix previous change. Change the
14457 bit length of glyphless.ch to 25 (Bug#11082).
14458
144592012-03-26 Chong Yidong <cyd@gnu.org>
14460
14461 * keyboard.c (Vselection_inhibit_update_commands): New variable.
14462 (command_loop_1): Use it; inhibit selection update for
14463 handle-select-window too (Bug#8996).
14464
144652012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
14466
14467 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
14468
144692012-03-25 Kenichi Handa <handa@m17n.org>
14470
14471 * dispextern.h (struct glyph): Change the bit length of
14472 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
14473
144742012-03-24 Eli Zaretskii <eliz@gnu.org>
14475
14476 * s/ms-w32.h (tzname): Include time.h before redirecting to
14477 _tzname. Fixes the MSVC build. (Bug#9960)
14478
144792012-03-24 Andreas Schwab <schwab@linux-m68k.org>
14480
14481 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
14482 characters.
14483
14484 * xterm.c (XTread_socket): Only modify handling_signal if
14485 !SYNC_INPUT. (Bug#11080)
14486
144872012-03-23 Eli Zaretskii <eliz@gnu.org>
14488
14489 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
14490 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
14491 when fetching a multibyte character consumes more bytes than
14492 CHAR_BYTES returns, due to unification of CJK characters in
14493 string_char. (Bug#11073)
14494
144952012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
14496
14497 * process.c (wait_reading_process_output): Handle pty disconnect
14498 by refraining from sending oneself a SIGCHLD (bug#10933).
14499
145002012-03-22 Chong Yidong <cyd@gnu.org>
14501
14502 * dispextern.h (struct it): New member string_from_prefix_prop_p.
14503
14504 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
14505 Mark string as coming from a prefix property.
14506 (handle_face_prop): Use default face for prefix strings (Bug#4281).
14507 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
14508
145092012-03-21 Chong Yidong <cyd@gnu.org>
14510
14511 * xfaces.c (Vface_remapping_alist): Doc fix.
14512
145132012-03-20 Eli Zaretskii <eliz@gnu.org>
14514
14515 * w32proc.c (Fw32_set_console_codepage)
14516 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
14517 Doc fixes.
14518
145192012-03-20 Chong Yidong <cyd@gnu.org>
14520
14521 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
14522 to reflect default non-nil value of redisplay-dont-pause.
14523
145242012-03-19 Kenichi Handa <handa@m17n.org>
14525
14526 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
14527 it fit in a valid range (Bug#11003).
14528
145292012-03-18 Eli Zaretskii <eliz@gnu.org>
14530
14531 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
14532 that is not from display property, accept the row as a "cursor
14533 row" if one of the string's character has a non-nil `cursor'
14534 property. Fixes cursor positioning when there are newlines in
14535 overlay strings, e.g. in icomplete.el. (Bug#11035)
14536
145372012-03-12 Paul Eggert <eggert@cs.ucla.edu>
14538
14539 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
14540
145412012-03-12 Chong Yidong <cyd@gnu.org>
14542
14543 * eval.c (inhibit_lisp_code): Rename from
14544 inhibit_window_configuration_change_hook; move from window.c.
14545
14546 * xfns.c (unwind_create_frame_1, Fx_create_frame):
14547 * window.c (run_window_configuration_change_hook)
14548 (syms_of_window): Callers changed.
14549
145502012-03-11 Chong Yidong <cyd@gnu.org>
14551
14552 * keymap.c (Fkey_description): Doc fix (Bug#9700).
14553
14554 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
14555
145562012-03-10 Chong Yidong <cyd@gnu.org>
14557
14558 * frame.c (other_visible_frames): Don't assume the selected frame
14559 is visible (Bug#10955).
14560
145612012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
14562
14563 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
14564
145652012-03-08 Jan Djärv <jan.h.d@swipnet.se>
14566
14567 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
14568 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
14569 zero (Bug#10954).
14570
145712012-03-03 Glenn Morris <rgm@gnu.org>
14572
14573 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
14574
145752012-03-02 Eli Zaretskii <eliz@gnu.org>
14576
14577 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
14578 position past the first glyph_row that ends at ZV. (Bug#10902)
14579 (redisplay_window, next_element_from_string): Fix typos in
14580 comments.
14581 (redisplay_window): Pass to move_it_vertically the margin in
14582 pixels, not in screen lines.
14583
145842012-03-02 Glenn Morris <rgm@gnu.org>
14585
14586 * buffer.c (buffer-list-update-hook): Doc fix.
14587
145882012-02-29 Eli Zaretskii <eliz@gnu.org>
14589
14590 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
14591 push_it before setting up the iterator for the first overlay
14592 string, even if we have an empty string loaded.
14593 (next_overlay_string): If there's an empty string on the iterator
14594 stack, pop the stack. (Bug#10903)
14595
145962012-02-25 Paul Eggert <eggert@cs.ucla.edu>
14597
14598 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
14599 Suggested by Stefan Monnier in
14600 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
14601 * alloc.c (widen_to_Lisp_Object): New static function.
14602 (mark_memory): Also mark Lisp_Objects by fetching pointer words
14603 and widening them to Lisp_Objects. This would work even if
14604 USE_LSB_TAG is defined and wide integers are used, which might
14605 happen in a future version of Emacs.
14606
146072012-02-25 Chong Yidong <cyd@gnu.org>
14608
14609 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
14610 Doc fix.
14611
14612 * xselect.c (Fx_selection_exists_p): Doc fix.
14613 (x_clipboard_manager_save_all): Print an informative message
14614 before saving to clipboard manager.
14615
146162012-02-24 Chong Yidong <cyd@gnu.org>
14617
14618 * keyboard.c (process_special_events): Handle all X selection
14619 requests in kbd_buffer, not just the next one (Bug#8869).
14620
146212012-02-23 Chong Yidong <cyd@gnu.org>
14622
14623 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
14624 call when setting menu-bar-lines and tool-bar-lines parameters.
14625 (unwind_create_frame_1): New helper function.
14626
14627 * window.c (inhibit_window_configuration_change_hook): New var.
14628 (run_window_configuration_change_hook): Obey it.
14629 (syms_of_window): Initialize it.
14630
146312012-02-22 Chong Yidong <cyd@gnu.org>
14632
14633 * xterm.c (x_draw_image_relief): Add missing type check for
14634 Vtool_bar_button_margin (Bug#10743).
14635
146362012-02-21 Chong Yidong <cyd@gnu.org>
14637
14638 * fileio.c (Vfile_name_handler_alist): Doc fix.
14639
14640 * buffer.c (Fget_file_buffer): Protect against invalid file
14641 handler return value.
14642
146432012-02-20 Paul Eggert <eggert@cs.ucla.edu>
14644
14645 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
14646 when computing $valmask.
14647
14648 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
14649 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
14650 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
14651 It's useless in that case, and it can cause problems on hosts
14652 that allocate halves of EMACS_INT values separately.
14653 Reported by Dan Horák. Diagnosed by Andreas Schwab in
14654 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
14655 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
14656 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
14657 it avoids undefined behavior on hosts where shifting right by more
14658 than the word width has undefined behavior.
14659
146602012-02-19 Chong Yidong <cyd@gnu.org>
14661
14662 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
14663 (Funhandled_file_name_directory, Ffile_name_as_directory)
14664 (Fdirectory_file_name, Fexpand_file_name)
14665 (Fsubstitute_in_file_name): Protect against invalid file handler
14666 return values (Bug#10845).
14667
146682012-02-18 Eli Zaretskii <eliz@gnu.org>
14669
14670 * .gdbinit (pitx): Fix incorrect references to fields of the
14671 iterator stack.
14672
146732012-02-17 Chong Yidong <cyd@gnu.org>
14674
14675 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
14676
146772012-02-15 Paul Eggert <eggert@cs.ucla.edu>
14678
14679 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
14680 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
14681
146822012-02-15 Chong Yidong <cyd@gnu.org>
14683
14684 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
14685 marked as special. Also, starting docstrings with * is obsolete.
14686
146872012-02-13 Andreas Schwab <schwab@linux-m68k.org>
14688
14689 * gnutls.c (emacs_gnutls_write): Fix last change.
14690
146912012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
14692
14693 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
14694 send_process.
14695
146962012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
14697
14698 * keymap.c (Fsingle_key_description): Handle char ranges.
14699
147002012-02-12 Chong Yidong <cyd@gnu.org>
14701
14702 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
14703 as that creates a dangerous corner case.
14704
14705 * window.c (Fdelete_window_internal): Invalidate the mouse
14706 highlight (Bug#9904).
14707
147082012-02-12 Glenn Morris <rgm@gnu.org>
14709
14710 * xselect.c (Fx_own_selection_internal)
14711 (Fx_get_selection_internal, Fx_disown_selection_internal)
14712 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
14713 * nsselect.m (Fx_own_selection_internal)
14714 (Fx_disown_selection_internal, Fx_selection_exists_p)
14715 (Fx_selection_owner_p, Fx_get_selection_internal):
14716 Sync docs and argument specs with the xselect.c versions.
14717
147182012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
14719
14720 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
14721
147222012-02-11 Eli Zaretskii <eliz@gnu.org>
14723
14724 * w32select.c (Fx_selection_exists_p): Sync doc string and
14725 argument list with xselect.c. (Bug#10783)
14726
14727 * w16select.c (Fx_selection_exists_p): Sync doc string and
14728 argument list with xselect.c. (Bug#10783)
14729
147302012-02-10 Glenn Morris <rgm@gnu.org>
14731
14732 * fns.c (Fsecure_hash): Doc fix.
14733
147342012-02-09 Kenichi Handa <handa@m17n.org>
14735
14736 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
14737
147382012-02-07 Chong Yidong <cyd@gnu.org>
14739
14740 * buffer.c (Fbuffer_local_variables)
14741 (buffer_lisp_local_variables): Handle unbound vars correctly;
14742 don't let Qunbound leak into Lisp.
14743
147442012-02-07 Glenn Morris <rgm@gnu.org>
14745
14746 * image.c (Fimagemagick_types): Doc fix.
14747
14748 * image.c (imagemagick-render-type): Change it from a lisp object
14749 to an integer. Move the doc here from the lisp manual.
14750 Treat all values not equal to 0 the same.
14751
147522012-02-06 Chong Yidong <cyd@gnu.org>
14753
14754 * doc.c (store_function_docstring): Avoid applying docstring of
14755 alias to base function (Bug#2603).
14756
147572012-02-04 Andreas Schwab <schwab@linux-m68k.org>
14758
14759 * .gdbinit (pp1, pv1): Remove redundant defines.
14760 (pr): Use pp.
14761
147622012-02-04 Chong Yidong <cyd@gnu.org>
14763
14764 * nsterm.m: Declare a global (Bug#10694).
14765
147662012-02-04 Eli Zaretskii <eliz@gnu.org>
14767
14768 * w32.c (get_emacs_configuration_options):
14769 Include --enable-checking, if specified, in the return value.
14770
147712012-02-04 Martin Rudalics <rudalics@gmx.at>
14772
14773 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
14774 after rounding frame sizes. (Bug#9723)
14775
147762012-02-04 Eli Zaretskii <eliz@gnu.org>
14777
14778 * keyboard.c (adjust_point_for_property): Don't position point
14779 before BEGV. (Bug#10696)
14780
147812012-02-03 Paul Eggert <eggert@cs.ucla.edu>
14782
14783 Handle overflow when computing char display width (Bug#9496).
14784 * character.c (char_width): Return EMACS_INT, not int.
14785 (char_width, c_string_width): Check for overflow when
14786 computing the width; this is possible now that individual
14787 characters can have unbounded width. Problem introduced
14788 by merge from Emacs 23 on 2012-01-19.
14789
147902012-02-02 Michael Albinus <michael.albinus@gmx.de>
14791
14792 * dbusbind.c (Fdbus_register_method): Mention the return value
14793 :ignore in the docstring.
14794
147952012-02-02 Glenn Morris <rgm@gnu.org>
14796
14797 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
14798
14799 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
14800 Unconditionally set to t. (Bug#10673)
14801 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
14802 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
14803 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
14804
148052012-02-02 Kenichi Handa <handa@m17n.org>
14806
14807 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
14808 0, do not call append_composite_glyph.
14809
148102012-02-02 Kenichi Handa <handa@m17n.org>
14811
14812 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
14813 NULL (Bug#6988).
14814 (x_produce_glyphs): If the component of a composition is a null
14815 string, set it->pixel_width to 1 to avoid zero-width glyph.
14816
148172012-02-01 Eli Zaretskii <eliz@gnu.org>
14818
14819 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
14820 first 2 arguments are identical. This makes inserting large
14821 output from a subprocess an order of magnitude faster on
14822 MS-Windows, where all sbrk'ed memory is always contiguous.
14823
148242012-01-31 Glenn Morris <rgm@gnu.org>
14825
14826 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
14827 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
14828 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
14829
148302012-01-29 Glenn Morris <rgm@gnu.org>
14831
14832 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
14833
148342012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
14835
14836 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
14837
148382012-01-28 Chong Yidong <cyd@gnu.org>
14839
14840 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
14841
148422012-01-26 Chong Yidong <cyd@gnu.org>
14843
14844 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
14845
14846 * search.c (Fsearch_forward, Fsearch_backward): Document negative
14847 repeat counts (Bug#10507).
14848
148492012-01-26 Glenn Morris <rgm@gnu.org>
14850
14851 * lread.c (syms_of_lread): Doc fix.
14852
148532012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
14854
14855 * coding.c (encode_designation_at_bol): Change return value to
14856 EMACS_INT.
14857
148582012-01-25 Chong Yidong <cyd@gnu.org>
14859
14860 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
14861
148622012-01-21 Chong Yidong <cyd@gnu.org>
14863
14864 * floatfns.c (Fcopysign): Make the second argument non-optional,
14865 since nil is not allowed anyway.
14866
148672012-01-21 Andreas Schwab <schwab@linux-m68k.org>
14868
14869 * process.c (read_process_output): Use p instead of XPROCESS (proc).
14870 (send_process): Likewise.
14871
148722012-01-19 Martin Rudalics <rudalics@gmx.at>
14873
14874 * window.c (save_window_save, Fcurrent_window_configuration)
14875 (Vwindow_persistent_parameters): Do not use Qstate.
14876 Rewrite doc-strings.
14877
148782012-01-19 Kenichi Handa <handa@m17n.org>
14879
14880 * character.c (char_width): New function.
14881 (Fchar_width, c_string_width, lisp_string_width):
14882 Use char_width (Bug#9496).
14883
148842012-01-16 Martin Rudalics <rudalics@gmx.at>
14885
14886 * window.c (Vwindow_persistent_parameters): New variable.
14887 (Fset_window_configuration, save_window_save): Handle persistent
14888 window parameters.
14889
148902012-01-14 Eli Zaretskii <eliz@gnu.org>
14891
14892 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
14893 thrashing the stack of the thread. (Bug#9087)
14894
148952012-01-12 Paul Eggert <eggert@cs.ucla.edu>
14896
14897 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
14898
148992012-01-11 Eli Zaretskii <eliz@gnu.org>
14900
14901 * xdisp.c (rows_from_pos_range): Handle the case where the
14902 highlight ends on a newline. (Bug#10464)
14903 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
14904 he end column for display of highlight that ends on a newline
14905 before a R2L line.
14906
149072012-01-11 Glenn Morris <rgm@gnu.org>
14908
14909 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
14910 from load-path also when installation-directory is nil. (Bug#10208)
14911
149122012-01-10 Glenn Morris <rgm@gnu.org>
14913
14914 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
14915
14916 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
14917 Update template values to be closer to their typical values these days.
14918
149192012-01-09 Eli Zaretskii <eliz@gnu.org>
14920
14921 * xdisp.c (rows_from_pos_range): Accept additional argument
14922 DISP_STRING, and accept any glyph in a row whose object is that
14923 string as eligible for mouse highlight. Fixes mouse highlight of
14924 display strings from overlays. (Bug#10464)
14925
149262012-01-07 Paul Eggert <eggert@cs.ucla.edu>
14927
14928 emacs: fix an auto-save permissions race condition (Bug#10400)
14929 * fileio.c (auto_saving_dir_umask): New static var.
14930 (Fmake_directory_internal): Use it.
14931 (do_auto_save_make_dir): Set it, instead of invoking chmod after
14932 creating the directory. The old code temporarily assigns
14933 too-generous permissions to the directory.
14934 (do_auto_save_eh): Clear it.
14935 (Fdo_auto_save): Catch all errors, not just file errors, so
14936 that the var is always cleared.
14937
149382012-01-07 Eli Zaretskii <eliz@gnu.org>
14939
14940 * search.c (scan_buffer): Pass character positions to
14941 know_region_cache, not byte positions. (Bug#6540)
14942
149432012-01-07 LynX <_LynX@bk.ru> (tiny change)
14944
14945 * w32.c (sys_rename): Report EXDEV when rename of a directory
14946 fails because the target is on another logical disk. (Bug#10284)
14947
149482012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
14949
14950 * xterm.c (x_embed_request_focus): New function.
14951
14952 * xterm.h: Add prototype.
14953
14954 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
14955
149562012-01-05 Glenn Morris <rgm@gnu.org>
14957
14958 * emacs.c (emacs_copyright): Update short copyright year to 2012.
14959
149602012-01-01 Eli Zaretskii <eliz@gnu.org>
14961
14962 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
14963 Load gnutls_transport_set_lowat only if GnuTLS version is below
14964 2.11.1.
14965 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
14966 GnuTLS versions below 2.11.1.
14967
149682011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
14969
14970 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
14971 to the doc string advising against its use for altering the way
14972 windows are scrolled.
14973
149742011-12-28 Kenichi Handa <handa@m17n.org>
14975
14976 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
14977 coding-system ASCII compatible only when it does not produce BOM
14978 on encoding (Bug#10383).
14979
149802011-12-26 Jan Djärv <jan.h.d@swipnet.se>
14981
14982 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
14983 can scroll.
14984 (create_and_show_popup_menu): Always use menu_position_func for
14985 Gtk3 (Bug#10361).
14986
149872011-12-24 Andreas Schwab <schwab@linux-m68k.org>
14988
14989 * callint.c (Fcall_interactively): Don't truncate prompt string.
14990
149912011-12-23 Eli Zaretskii <eliz@gnu.org>
14992
14993 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
14994 property that ends at ZV, so that the bidi iteration could be
14995 resumed from there (after widening). (Bug#10360)
14996
149972011-12-22 Jan Djärv <jan.h.d@swipnet.se>
14998
14999 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
15000
150012011-12-21 Jan Djärv <jan.h.d@swipnet.se>
15002
15003 * nsterm.m (x_free_frame_resources):
15004 Release f->output_data.ns->miniimage.
15005 (ns_index_color): Fix indentation. Do not retain
15006 color_table->colors[i].
15007
15008 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
15009 before returning.
15010
15011 * nsfns.m (x_set_background_color): Assign return value from
15012 ns_index_color to face-background instead of NSColor*.
15013 (ns_implicitly_set_icon_type): Fix indentation.
15014 Change assignment in for loop to comparison.
15015
15016 * emacs.c (ns_pool): New variable.
15017 (main): Assign ns_pool.
15018 (Fkill_emacs): Call ns_release_autorelease_pool.
15019
15020 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
15021 autorelease fdesc, release fdAttrs and tdict.
15022 (ns_get_covering_families): Release charset.
15023 (ns_findfonts): Release NSFontDescriptor created with new.
15024 (ns_uni_to_glyphs): Fix indentation.
15025 (setString): Release attrStr before assigning new value.
15026
150272011-12-18 Jan Djärv <jan.h.d@swipnet.se>
15028
15029 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
15030 and NS_IMPL_COCOA.
15031 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
15032 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
15033
150342011-12-18 David Reitter <reitter@cmu.edu>
15035
15036 * nsterm.m (ns_term_init): Subscribe for notifications
15037 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
15038 to method trackingNotification in EmacsMenu.
15039
15040 * nsmenu.m (trackingMenu): New variable.
15041 (trackingNotification): New method (from Aquamacs).
15042 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
15043 from Aquamacs (Bug#7030).
15044
150452011-12-18 Jan Djärv <jan.h.d@swipnet.se>
15046
15047 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
15048 (symbol_to_nsstring): Fix indentation.
15049 (ns_symbol_to_pb): New function.
15050 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
15051 (Fns_rotate_cut_buffers_internal): Remove.
15052 (Fns_store_selection_internal): Rename from
15053 Fns_store_cut_buffer_internal.
15054 (ns_get_foreign_selection, Fx_own_selection_internal)
15055 (Fx_disown_selection_internal, Fx_selection_exists_p)
15056 (Fns_get_selection_internal, Fns_store_selection_internal):
15057 Use ns_symbol_to_pb and check if return value is nil.
15058 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
15059 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
15060 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
15061 renamed to Sns_store_selection_internal.
15062 (ns_handle_selection_request): Move code to Fx_own_selection_internal
15063 and remove this function.
15064 (ns_handle_selection_clear): Remove, never used.
15065 (Fx_own_selection_internal): Move code from ns_handle_selection_request
15066 here.
15067
150682011-12-17 Ken Brown <kbrown@cornell.edu>
15069
15070 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
15071 GID is unknown (Bug#10257).
15072
150732011-12-17 Paul Eggert <eggert@cs.ucla.edu>
15074
15075 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
15076 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
15077 which caused a build failure on GNU/Linux IA-64. This problem was
15078 introduced by my 2011-10-07 patch.
15079
150802011-12-15 Juri Linkov <juri@jurta.org>
15081
15082 * image.c (imagemagick_error): New function. (Bug#10112)
15083 (imagemagick_load_image): Comment out `MagickSetResolution' call.
15084 Use `imagemagick_error' where ImageMagick functions return
15085 `MagickFalse'.
15086 (Fimagemagick_types): Add `Fnreverse' to return the list in the
15087 proper order.
15088
150892011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15090
15091 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
15092 fill background (Bug#8992).
15093
150942011-12-13 Martin Rudalics <rudalics@gmx.at>
15095
15096 * window.c (Vwindow_combination_resize)
15097 (Vwindow_combination_limit): Use t instead of non-nil in
15098 doc-strings.
15099 (Vrecenter_redisplay): Add first sentence of doc-string on
15100 separate line.
15101 (Frecenter): Fix doc-string typo.
15102
151032011-12-11 Kenichi Handa <handa@m17n.org>
15104
15105 * coding.c (Funencodable_char_position): Pay attention to the
15106 buffer text relocation (Bug#9389).
15107
151082011-12-10 Jan Djärv <jan.h.d@swipnet.se>
15109
15110 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
15111 gtk_init (Bug#10100).
15112
151132011-12-10 Eli Zaretskii <eliz@gnu.org>
15114
15115 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
15116 IT->string is nil. (Bug#10263)
15117
151182011-12-10 Jan Djärv <jan.h.d@swipnet.se>
15119
15120 * nsterm.h (x_free_frame_resources): Declare.
15121
15122 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
15123 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
15124
15125 * nsterm.h (ns_get_defaults_value): Declare.
15126
15127 * nsterm.m (ns_default): Call ns_get_defaults_value.
15128
151292011-12-09 Eli Zaretskii <eliz@gnu.org>
15130
15131 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
15132 (Bug#10170)
15133
151342011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15135
15136 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
15137 that where the value of an _OBJC_* symbol points to is in the .bss
15138 section (Bug#10240).
15139
151402011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
15141
15142 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
15143 after the loop to call ccl_driver at least once (Bug#8619).
15144
151452011-12-08 Kenichi Handa <handa@m17n.org>
15146
15147 * ftfont.c (get_adstyle_property): Fix previous change
15148 (Bug#10233).
15149
151502011-12-07 Juanma Barranquero <lekktu@gmail.com>
15151
15152 * w32.c (init_environment): If no_site_lisp, remove site-lisp
15153 dirs from the default value of EMACSLOADPATH (bug#10208).
15154
151552011-12-07 Glenn Morris <rgm@gnu.org>
15156
15157 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
15158 installation and source directories as well. (Bug#10208)
15159
151602011-12-06 Chong Yidong <cyd@gnu.org>
15161
15162 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
15163
151642011-12-06 Glenn Morris <rgm@gnu.org>
15165
15166 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
15167 as an error, not just -1. (Bug#10217)
15168
151692011-12-05 Chong Yidong <cyd@gnu.org>
15170
15171 * keyboard.c (process_special_events): New function.
15172 (swallow_events, Finput_pending_p): Use it (Bug#10195).
15173
151742011-12-05 Paul Eggert <eggert@cs.ucla.edu>
15175
15176 * coding.c (encode_designation_at_bol): Don't use uninitialized
15177 local variable (Bug#9318).
15178
151792011-12-05 Kenichi Handa <handa@m17n.org>
15180
15181 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
15182 return Qnil (Bug#8046, Bug#10193).
15183
151842011-12-05 Kenichi Handa <handa@m17n.org>
15185
15186 * coding.c (encode_designation_at_bol): New args charbuf_end and
15187 dst. Return the number of produced bytes. Callers changed.
15188 (coding_set_source): Return how many bytes coding->source was
15189 relocated.
15190 (coding_set_destination): Return how many bytes
15191 coding->destination was relocated.
15192 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
15193 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
15194
151952011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
15196
15197 * coding.c (CODING_CHAR_CHARSET_P): New macro.
15198 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
15199 macro (Bug#9318).
15200
152012011-12-05 Andreas Schwab <schwab@linux-m68k.org>
15202
15203 The following changes are to fix Bug#9318.
15204
15205 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
15206 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
15207 (encode_coding_iso_2022, encode_coding_sjis)
15208 (encode_coding_big5, encode_coding_charset): Use the above macros.
15209
152102011-12-05 Juanma Barranquero <lekktu@gmail.com>
15211
15212 * lisp.h (process_quit_flag): Fix external declaration.
15213
152142011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
15215
15216 Don't macro-inline non-performance-critical code.
15217 * eval.c (process_quit_flag): New function.
15218 * lisp.h (QUIT): Use it.
15219
152202011-12-04 Jan Djärv <jan.h.d@swipnet.se>
15221
15222 * nsfns.m (get_geometry_from_preferences): New function.
15223 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
15224
152252011-12-04 Andreas Schwab <schwab@linux-m68k.org>
15226
15227 * emacs.c (Qkill_emacs): Define.
15228 (syms_of_emacs): Initialize it.
15229 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
15230 Qquit_flag to `kill-emacs' instead.
15231 (quit_throw_to_read_char): Add parameter `from_signal'.
15232 All callers changed. Call Fkill_emacs if requested and safe.
15233 * lisp.h (QUIT): Call Fkill_emacs if requested.
15234
152352011-12-03 Jan Djärv <jan.h.d@swipnet.se>
15236
15237 * widget.c (update_wm_hints): Return if wmshell is null.
15238 (widget_update_wm_size_hints): New function.
15239
15240 * widget.h (widget_update_wm_size_hints): Declare.
15241
15242 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
15243 widget_update_wm_size_hints (Bug#10104).
15244
152452011-12-03 Eli Zaretskii <eliz@gnu.org>
15246
15247 * xdisp.c (handle_invisible_prop): If the invisible text ends just
15248 before a newline, prepare the bidi iterator for consuming the
15249 newline, and keep the current paragraph direction. (Bug#10183)
15250 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
15251
152522011-12-02 Juri Linkov <juri@jurta.org>
15253
15254 * search.c (Fword_search_regexp): New Lisp function created from
15255 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
15256 (Fword_search_backward, Fword_search_forward)
15257 (Fword_search_backward_lax, Fword_search_forward_lax):
15258 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
15259 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
15260
152612011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
15262
15263 * fileio.c (Finsert_file_contents): Move after-change-function call
15264 to before the "handled:" label, since all "goto handled" appear in
15265 cases where the *-change-functions have already been properly called
15266 (bug#10117).
15267
152682011-12-01 Andreas Schwab <schwab@linux-m68k.org>
15269
15270 * keyboard.c (interrupt_signal): Don't call kill-emacs when
15271 waiting for input. (Bug#10169)
15272
152732011-11-30 Eli Zaretskii <eliz@gnu.org>
15274
15275 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
15276 verifies glyph row's hash code--we have just reallocated the
15277 glyphs, so their contents can be complete garbage. (Bug#10164)
15278
152792011-11-30 Juanma Barranquero <lekktu@gmail.com>
15280
15281 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
15282
152832011-11-30 Eli Zaretskii <eliz@gnu.org>
15284
15285 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
15286 attributes are tested _before_ calling verify_row_hash, to protect
15287 against GCC re-ordering of the tests. (Bug#10164)
15288
152892011-11-29 Jan Djärv <jan.h.d@swipnet.se>
15290
15291 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
15292
15293 * xterm.c (handle_one_xevent): Only set async_visible and friends
15294 if net_wm_state_hidden_seen is non-zero (Bug#10002)
15295 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
15296 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
15297
152982011-11-28 Paul Eggert <eggert@cs.ucla.edu>
15299
15300 Remove GCPRO-related macros that exist only to avoid shadowing locals.
15301 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
15302 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
15303 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
15304 All uses changed to use GCPRO1 etc.
15305 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
15306 Revert to old implementation (i.e., before 2011-03-11).
15307
153082011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15309
15310 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
15311 of scroll runs so as to avoid assigning disabled bogus rows and
15312 unnecessary graphics copy operations.
15313
153142011-11-27 Eli Zaretskii <eliz@gnu.org>
15315
15316 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
15317 (snprintf) [_MSC_VER]: Redirect to _snprintf.
15318 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
15319 (malloc, free, realloc, calloc): Redirect to e_* only when
15320 compiling Emacs.
15321
15322 * lisp.h (GCTYPEBITS): Move before first use.
15323 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
15324 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
15325 this macro definition.
15326
15327 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
15328 _MSC_VER.
15329
153302011-11-27 Jan Djärv <jan.h.d@swipnet.se>
15331
15332 * gtkutil.c (xg_create_frame_widgets):
15333 Call gtk_window_set_has_resize_grip (FALSE) if that function is
15334 present with Gtk+ 2.0.
15335
153362011-11-26 Paul Eggert <eggert@cs.ucla.edu>
15337
15338 * fileio.c (Finsert_file_contents): Undo previous change; see
15339 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
15340
153412011-11-26 Paul Eggert <eggert@cs.ucla.edu>
15342
15343 Rename locals to avoid shadowing.
15344 * fileio.c (Finsert_file_contents):
15345 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
15346 * process.c (wait_reading_process_output):
15347 Rename inner 'proc' to 'p' to avoid shadowing.
15348 Indent for consistency with usual Emacs style.
15349
153502011-11-25 Eli Zaretskii <eliz@gnu.org>
15351
15352 * xdisp.c (redisplay_window): If cursor row is not fully visible
15353 after recentering, and scroll-conservatively is set to a large
15354 number, scroll window by a few more lines to make the cursor fully
15355 visible and out of scroll-margin. (Bug#10105)
15356 (start_display): Don't move to the next line if the display should
15357 start at a newline that is part of a display vector or an overlay
15358 string. (Bug#10119)
15359
153602011-11-24 Juri Linkov <juri@jurta.org>
15361
15362 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
15363 after the `MagickPingImage' call. (Bug#10112)
15364
153652011-11-23 Chong Yidong <cyd@gnu.org>
15366
15367 * window.c (Fcoordinates_in_window_p): Accept only live windows.
15368
153692011-11-23 Martin Rudalics <rudalics@gmx.at>
15370
15371 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
15372 making another buffer current. (Bug#10114)
15373
153742011-11-23 Glenn Morris <rgm@gnu.org>
15375
15376 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
15377
153782011-11-23 Chong Yidong <cyd@gnu.org>
15379
15380 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
15381 using it (Bug#5984).
15382
153832011-11-22 Eli Zaretskii <eliz@gnu.org>
15384
15385 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
15386 and header-lines, as they don't have one computed for them.
15387 (Bug#10098)
15388
15389 * .gdbinit (prow): Make displayed values more self-explaining.
15390 Add row's hash code.
15391
153922011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
15393
15394 * process.c (wait_reading_process_output): Fix asynchrounous
15395 GnuTLS socket handling on some versions of the GnuTLS library.
15396 (wait_reading_process_output): Add comment and URL.
15397
153982011-11-21 Jan Djärv <jan.h.d@swipnet.se>
15399
15400 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
15401
154022011-11-21 Chong Yidong <cyd@gnu.org>
15403
15404 * window.c (Fnext_window, Fprevious_window): Doc fix.
15405
154062011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
15407
15408 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
15409
154102011-11-20 Juanma Barranquero <lekktu@gmail.com>
15411
15412 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
15413
154142011-11-20 Martin Rudalics <rudalics@gmx.at>
15415
15416 * window.c (Fset_window_combination_limit): Rename argument
15417 STATUS to LIMIT.
15418 (Vwindow_combination_limit): Remove "status" from doc-string.
15419
154202011-11-20 Andreas Schwab <schwab@linux-m68k.org>
15421
15422 * m/ibms390.h: Remove.
15423 * m/ibms390x.h: Don't include "ibms390.h".
15424
154252011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
15426
15427 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
15428 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
15429
154302011-11-20 Juanma Barranquero <lekktu@gmail.com>
15431
15432 * casetab.c (Fset_case_table):
15433 * charset.c (Fcharset_after): Fix typos.
15434
154352011-11-20 Paul Eggert <eggert@cs.ucla.edu>
15436
15437 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
15438 Otherwise, valgrind does not work on some platforms.
15439 Problem reported by Andreas Schwab in
15440 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
15441 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
15442 is set, removing the need for VIRT_ADDRESS_VARIES.
15443 (PURE_P): Use a more-efficient implementation that needs just one
15444 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
15445 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
15446 to 4 (xorl, subq, cmpq, setbe).
15447 * alloc.c (pure): Always extern now, since that's the
15448 VIRT_ADDR_VARIES behavior.
15449 (PURE_POINTER_P): Use a single comparison, not two, for
15450 consistency with the new puresize.h.
15451 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
15452 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
15453 Remove VIRT_ADDR_VARIES no longer needed.
15454
154552011-11-19 Eli Zaretskii <eliz@gnu.org>
15456
15457 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
15458 (erase_phys_cursor, update_window_cursor, show_mouse_face)
15459 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
15460 behave as if the cursor position were at the window margin.
15461
15462 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
15463 and the cursor position is out of bounds, behave as if the cursor
15464 position were at the window margin. (Bug#10075)
15465
154662011-11-18 Chong Yidong <cyd@gnu.org>
15467
15468 * window.c (Fwindow_combination_limit): Make first argument
15469 non-optional, since it is meaningless for live windows like the
15470 selected window.
15471
154722011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
15473
15474 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
15475
154762011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
15477
15478 * intervals.c: Fix grafting over the whole buffer (bug#10071).
15479 (graft_intervals_into_buffer): Simplify.
15480
154812011-11-18 Eli Zaretskii <eliz@gnu.org>
15482
15483 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
15484 hash values of the two rows.
15485 (copy_row_except_pointers): Preserve the used[] arrays and the
15486 hash values of the two rows. (Bug#10035)
15487 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
15488
15489 * xdisp.c (row_hash): New function, body extracted from
15490 compute_line_metrics.
15491 (compute_line_metrics): Call row_hash, instead of computing the
15492 hash code inline.
15493
15494 * dispnew.c (verify_row_hash): Call row_hash for computing the
15495 hash code of a row, instead of duplicating code from xdisp.c.
15496
15497 * dispextern.h (row_hash): Add prototype.
15498
154992011-11-18 Tassilo Horn <tassilo@member.fsf.org>
15500
15501 * frame.c (delete_frame): Don't delete the terminal when the last
15502 X frame is closed if emacs is built with GTK toolkit.
15503
155042011-11-17 Juanma Barranquero <lekktu@gmail.com>
15505
15506 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
15507
155082011-11-17 Martin Rudalics <rudalics@gmx.at>
15509
15510 * window.c (Vwindow_splits): Rename to
15511 Vwindow_combination_resize. Suggested by Juri Linkov.
15512 (Fsplit_window_internal): Use Vwindow_combination_resize instead
15513 of Vwindow_splits.
15514
155152011-11-16 Juanma Barranquero <lekktu@gmail.com>
15516
15517 * nsfns.m (Fns_font_name):
15518 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
15519
155202011-11-16 Martin Rudalics <rudalics@gmx.at>
15521
15522 * window.h (window): Rename slot "nest" to "combination_limit".
15523 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
15524 (Fset_window_nest): Rename to Fset_window_combination_limit.
15525 (Vwindow_nest): Rename to Vwindow_combination_limit.
15526 (recombine_windows, make_parent_window, make_window)
15527 (Fsplit_window_internal, saved_window)
15528 (Fset_window_configuration, save_window_save): Rename all
15529 occurrences of window_nest to window_combination_limit.
15530
155312011-11-15 Juanma Barranquero <lekktu@gmail.com>
15532
15533 * image.c (imagemagick_load_image): Fix typo.
15534
155352011-11-14 Eli Zaretskii <eliz@gnu.org>
15536
15537 * xdisp.c (display_line): Move the call to
15538 highlight_trailing_whitespace before the call to
15539 compute_line_metrics, since the latter needs to see the final
15540 faces of all the glyphs to compute ROW's hash value.
15541 Fixes assertion violations in row_equal_p. (Bug#10035)
15542
155432011-11-14 Juanma Barranquero <lekktu@gmail.com>
15544
15545 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
15546 just return (bug#10044).
15547
155482011-11-12 Eli Zaretskii <eliz@gnu.org>
15549
15550 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
15551 with user-defined heap size. Bump the default size of the temacs
15552 heap to 27MB, to avoid memory warning when running temacs.
15553 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
15554
15555 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
15556 current_matrix and desired_matrix. (Bug#9990)
15557 (verify_row_hash) [XASSERTS]: New function.
15558 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
15559 that the hash value of glyph rows is correct.
15560
155612011-11-12 Martin Rudalics <rudalics@gmx.at>
15562
15563 * window.h (window): Remove splits slot.
15564 * window.c (Fwindow_splits, Fset_window_splits): Remove.
15565 (Fdelete_other_windows_internal, make_parent_window)
15566 (make_window, Fsplit_window_internal, Fdelete_window_internal)
15567 (Fset_window_configuration, save_window_save): Don't deal with
15568 split status of windows.
15569 (saved_window): Remove splits slot.
15570 (Vwindow_splits): Rewrite doc-string.
15571
155722011-11-11 Jan Djärv <jan.h.d@swipnet.se>
15573
15574 * xfns.c (unwind_create_frame):
15575 * nsfns.m (unwind_create_frame):
15576 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
15577 Vframe_list (Bug#9999).
15578
155792011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
15580
15581 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
15582
155832011-11-11 Kenichi Handa <handa@m17n.org>
15584
15585 * callproc.c (Fcall_process): Set the member dst_multibyte of
15586 process_coding.
15587
155882011-11-11 Johan Bockgård <bojohan@gnu.org>
15589
15590 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
15591 avoid a crash (bug#9496).
15592
155932011-11-09 Chong Yidong <cyd@gnu.org>
15594
15595 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
15596 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
15597
155982011-11-08 Paul Eggert <eggert@cs.ucla.edu>
15599
15600 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
15601
156022011-11-08 Paul Eggert <eggert@cs.ucla.edu>
15603
15604 Avoid some portability problems by eschewing 'extern inline' functions.
15605 The trivial performance wins aren't worth the portability hassles; see
15606 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
15607 et seq.
15608 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
15609 (window_box_width, window_box_left, window_box_left_offset)
15610 (window_box_right, window_box_right_offset): Undo previous change,
15611 by removing the "extern"s.
15612 * intervals.c (adjust_intervals_for_insertion)
15613 (adjust_intervals_for_deletion): Undo previous change,
15614 making these static again.
15615 (offset_intervals, temp_set_point_both, temp_set_point)
15616 (copy_intervals_to_string): No longer inline.
15617 * xdisp.c (window_text_bottom_y, window_box_width)
15618 (window_box_height, window_box_left_offset)
15619 (window_box_right_offset, window_box_left, window_box_right)
15620 (window_box): No longer inline.
15621
156222011-11-08 Chong Yidong <cyd@gnu.org>
15623
15624 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
15625 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
15626 Signal an error if not a live window.
15627 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
15628 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
15629
156302011-11-07 Juanma Barranquero <lekktu@gmail.com>
15631
15632 * lisp.h (syms_of_abbrev): Remove declaration.
15633 Reported by CHENG Gao <chenggao@royau.me>.
15634
156352011-11-07 Eli Zaretskii <eliz@gnu.org>
15636
15637 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
15638 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
15639 of temacs in GUI mode.
15640
156412011-11-07 Martin Rudalics <rudalics@gmx.at>
15642
15643 * window.h: Declare delete_all_child_windows instead of
15644 delete_all_subwindows.
15645 * window.c (Fwindow_nest, Fset_window_nest)
15646 (Fset_window_new_total, Fset_window_new_normal)
15647 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
15648 (delete_all_subwindows): Rename to delete_all_child_windows.
15649 (Fdelete_other_windows_internal, Fset_window_configuration):
15650 Call delete_all_child_windows instead of delete_all_subwindows.
15651 * frame.c (delete_frame): Call delete_all_child_windows instead
15652 of delete_all_subwindows.
15653
156542011-11-07 Paul Eggert <eggert@cs.ucla.edu>
15655
15656 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
15657 This is also needed for porting to any host where GC_MARK_STACK is
15658 not GC_MAKE_GCPROS_NOOPS.
15659 (which_symbols): Use it.
15660
156612011-11-07 Kenichi Handa <handa@m17n.org>
15662
15663 * coding.c (coding_set_destination): Check coding->src_pos only
15664 when coding->src_object is a buffer (bug#9910).
15665
15666 * process.c (send_process): Set the member src_multibyte of coding
15667 to 0 (bug#9911) when sending a unibyte text.
15668
15669 * callproc.c (Fcall_process): Set the member src_multibyte of
15670 process_coding to 0 (bug#9912).
15671
156722011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15673
15674 * xmenu.c (cleanup_widget_value_tree): New function.
15675 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
15676 calling free_menubar_widget_value_tree directly (Bug#9830).
15677
156782011-11-06 Paul Eggert <eggert@cs.ucla.edu>
15679
15680 Fix some portability problems with 'inline'.
15681 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
15682 (window_box_width, window_box_left, window_box_left_offset)
15683 (window_box_right, window_box_right_offset): Declare extern.
15684 Otherwise, these inline functions do not conform to C99 and
15685 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
15686 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
15687 * intervals.c (adjust_intervals_for_insertion)
15688 (adjust_intervals_for_deletion): Now extern, because otherwise the
15689 extern inline functions 'offset_intervals' couldn't refer to it.
15690 (static_offset_intervals): Remove.
15691 (offset_intervals): Rewrite using the old contents of
15692 static_offset_intervals. The old version didn't conform to C99
15693 because an extern inline function contained a reference to an
15694 identifier with static linkage.
15695
156962011-11-06 Andreas Schwab <schwab@linux-m68k.org>
15697
15698 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
15699 GC.
15700
157012011-11-06 Eli Zaretskii <eliz@gnu.org>
15702
15703 * xdisp.c (init_iterator, reseat_to_string): Don't set the
15704 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
15705 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
15706 return Qleft_to_right.
15707
157082011-11-06 Chong Yidong <cyd@gnu.org>
15709
15710 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
15711 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
15712 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
15713 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
15714 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
15715 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
15716 (Fwindow_vscroll): Doc fix.
15717 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
15718 argument, since it makes no sense to pass a live window and for
15719 consistency with window-child.
15720
157212011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
15722
15723 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
15724 support MSVC.
15725
157262011-11-05 Jason Rumney <jasonr@gnu.org>
15727
15728 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
15729 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
15730 fonts (Bug#6029).
15731 (add_font_entity_to_list): Fix logic errors in mixed boolean and
15732 bitwise arithmetic preventing use of unicode-sip and non-truetype
15733 opentype fonts.
15734
157352011-11-05 Eli Zaretskii <eliz@gnu.org>
15736
15737 * s/ms-w32.h (fstat, stat, utime): Move redirections to
15738 "emacs"-only part.
15739
15740 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
15741 initialization code to keep similarity to xfns.c after changes
15742 from 2011-11-05.
15743
157442011-11-05 Jan Djärv <jan.h.d@swipnet.se>
15745
15746 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
15747 (unwind_create_frame): New function (Bug#9943).
15748 (Fx_create_frame): Restructure code to be more similar to the one in
15749 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
15750 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
15751 Move terminal->reference_count++ just before making the frame official
15752 (Bug#9943).
15753
15754 * nsterm.m (x_free_frame_resources): New function.
15755 (x_destroy_window): Move code to x_free_frame_resources.
15756
15757 * xfns.c (unwind_create_frame): Fix comment.
15758 (Fx_create_frame, x_create_tip_frame):
15759 Move terminal->reference_count++ just before making the frame
15760 official. Move initialization of image_cache_refcount and
15761 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
15762
157632011-11-05 Eli Zaretskii <eliz@gnu.org>
15764
15765 Support MSVC build with newer versions of Visual Studio.
15766 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
15767 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
15768 nt/gmake.defs.
15769
15770 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
15771 which are not supported by MSVC.
15772 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
15773 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
15774 bitfields.
15775 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
15776 types in bitfields.
15777 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
15778
15779 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
15780
157812011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
15782
15783 Support MSVC build with newer versions of Visual Studio.
15784 * w32.c: Don't include w32api.h for MSVC.
15785 (init_environment) [_MSC_VER]: Call sys_access, not _access.
15786
15787 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
15788 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
15789 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
15790 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
15791 e_* cousins.
15792 (alloca) [_MSC_VER]: Define to _alloca.
15793
15794 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
15795
15796 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
15797
157982011-11-04 Eli Zaretskii <eliz@gnu.org>
15799
15800 * xdisp.c (note_mouse_highlight): If either of
15801 previous/next-single-property-change returns nil, treat that as
15802 the beginning or the end of the buffer. (Bug#9955)
15803
158042011-11-04 Jan Djärv <jan.h.d@swipnet.se>
15805
15806 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
15807 label is not null (Bug#9951).
15808 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
15809 may be NULL.
15810
158112011-11-04 Eli Zaretskii <eliz@gnu.org>
15812
15813 * window.c (Fwindow_body_size): Mention in the doc string that the
15814 return value is in frame's canonical units. (Bug#9949)
15815
158162011-11-03 Eli Zaretskii <eliz@gnu.org>
15817
15818 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
15819
15820 * w32fns.c (unwind_create_frame): If needed, free the glyph
15821 matrices of the partially constructed frame. (Bug#9943)
15822 * xfns.c (unwind_create_frame): Likewise.
15823
158242011-11-01 Eli Zaretskii <eliz@gnu.org>
15825
15826 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
15827 Don't stop backward scan on the continuation glyph, even though
15828 its CHARPOS is positive.
15829 (mouse_face_from_buffer_pos, note_mouse_highlight):
15830 Rename cover_string to disp_string.
15831
158322011-11-01 Martin Rudalics <rudalics@gmx.at>
15833
15834 * window.c (temp_output_buffer_show): Don't use
15835 Vtemp_buffer_show_specifiers.
15836 (Vtemp_buffer_show_specifiers): Remove unused variable.
15837
158382011-10-30 Eli Zaretskii <eliz@gnu.org>
15839
15840 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
15841 past the beginning of the current glyph matrix.
15842
158432011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
15844
15845 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
15846 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
15847 HAVE_GTK3 (Bug#9869).
15848
15849 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
15850 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
15851
15852 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
15853
15854 * xterm.c: Declare x_handle_net_wm_state to return int.
15855 (handle_one_xevent): Check if we are iconified but don't have
15856 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
15857 (get_current_wm_state): Return non-zero if not hidden,
15858 check for _NET_WM_STATE_HIDDEN (Bug#9893).
15859 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
15860 (x_handle_net_wm_state): Return what get_current_wm_state returns.
15861 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
15862
158632011-10-29 Paul Eggert <eggert@cs.ucla.edu>
15864
15865 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
15866 so that this new function doesn't get optimized away by a
15867 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
15868
158692011-10-29 Andreas Schwab <schwab@linux-m68k.org>
15870
15871 * frame.h (MOUSE_HL_INFO): Remove excess parens.
15872
158732011-10-29 Eli Zaretskii <eliz@gnu.org>
15874
15875 Fix the `xbytecode' command.
15876 * .gdbinit (xprintbytestr): New command.
15877 (xwhichsymbols): Rename from `which'; all callers changed.
15878 (xbytecode): Print the byte-code string as well.
15879
158802011-10-29 Kim Storm <storm@cua.dk>
15881
15882 * alloc.c (which_symbols): New function.
15883
158842011-10-29 Andreas Schwab <schwab@linux-m68k.org>
15885
15886 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
15887 line. (Bug#9903)
15888
158892011-10-29 Glenn Morris <rgm@gnu.org>
15890
15891 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
15892 Not clear what it was for, and it causes various bugs. (Bug#9839)
15893
158942011-10-28 Eli Zaretskii <eliz@gnu.org>
15895
15896 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
15897 possible random value that matches one of those tested as
15898 condition to clear the mouse face.
15899
159002011-10-28 Chong Yidong <cyd@gnu.org>
15901
15902 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
15903
159042011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
15905
15906 * window.c (make_window): Initialize phys_cursor_on_p.
15907
159082011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
15909
15910 * lisp.h (struct Lisp_Symbol): Update comments.
15911
159122011-10-28 Juanma Barranquero <lekktu@gmail.com>
15913
15914 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
15915
159162011-10-28 Eli Zaretskii <eliz@gnu.org>
15917
15918 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
15919 <oslsachem@gmail.com> for helping to debug this.
15920
15921 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
15922 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
15923 (g_b_init_get_glyph_outline_w): New static variables.
15924 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
15925 (GetGlyphOutlineW_Proc): New typedefs.
15926 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
15927 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
15928 New functions.
15929 (w32font_open_internal, compute_metrics):
15930 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
15931 instead of calling the "wide" APIs directly.
15932
15933 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
15934
15935 * w32.h (syms_of_w32font): Add prototype.
15936
159372011-10-27 Juanma Barranquero <lekktu@gmail.com>
15938
15939 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
15940 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
15941 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
15942 (Fmove_to_window_line): Doc fix.
15943
159442011-10-27 Chong Yidong <cyd@gnu.org>
15945
15946 * process.c (make_process): Set gnutls_state to NULL.
15947
15948 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
15949 non-NULL, regardless of GNUTLS_INITSTAGE.
15950 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
15951 an error. Set process slots as soon as we allocate them.
15952
15953 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
15954
159552011-10-27 Chong Yidong <cyd@gnu.org>
15956
15957 * gnutls.c (emacs_gnutls_deinit): New function.
15958 Deallocate credentials structures as well as calling gnutls_deinit.
15959 (Fgnutls_deinit, Fgnutls_boot): Use it.
15960
15961 * process.c (make_process): Initialize GnuTLS credentials to NULL.
15962 (deactivate_process): Call emacs_gnutls_deinit.
15963
159642011-10-27 Juanma Barranquero <lekktu@gmail.com>
15965
15966 * image.c (x_create_x_image_and_pixmap):
15967 * w32.c (sys_rename, w32_delayed_load):
15968 * w32font.c (fill_in_logfont):
15969 * w32reg.c (x_get_string_resource): Silence compiler warnings.
15970
159712011-10-26 Juanma Barranquero <lekktu@gmail.com>
15972
15973 * w32fns.c (w32_default_color_map): New function,
15974 extracted from Fw32_default_color_map.
15975 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
15976
159772011-10-25 Paul Eggert <eggert@cs.ucla.edu>
15978
15979 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
15980
159812011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
15982
15983 * keyboard.c (test_undefined): New function (bug#9751).
15984 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
15985
159862011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
15987
15988 * sysdep.c (init_sys_modes): Fix the check for the controlling
15989 terminal (Bug#6649).
15990
159912011-10-20 Eli Zaretskii <eliz@gnu.org>
15992
15993 * dispextern.h (struct bidi_it): New member next_en_type.
15994
15995 * bidi.c (bidi_line_init): Initialize the next_en_type member.
15996 (bidi_resolve_explicit_1): When next_en_pos is valid for the
15997 current character, check also for next_en_type being WEAK_EN.
15998 (bidi_resolve_weak): Don't enter the expensive loop if the current
15999 position is before next_en_pos. Record the bidi type of the first
16000 non-ET, non-BN character we find, in addition to its position.
16001 (bidi_level_of_next_char): Invalidate next_en_type when
16002 next_en_pos is over-stepped.
16003
160042011-10-20 Paul Eggert <eggert@cs.ucla.edu>
16005
16006 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
16007 * editfns.c: Rewrite current-time-zone so that it invokes
16008 the equivalent of (format-time-string "%Z") to get the time zone name.
16009 This fixes a bug when the time zone name contains characters that
16010 need converting from the system time locale to Emacs internal format.
16011 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
16012 that patch fixed format-time-string to do the conversion, but
16013 I forgot to fix current-time-zone.
16014 (format_time_string): New function, containing most of
16015 what Fformat_time_string used to contain.
16016 (Fformat_time_string): Rewrite in terms of format_time_string.
16017 This doesn't change this function's behavior.
16018 (current-time-zone): Rewrite to use format_time_string.
16019 This fixes the bug reported by Michael Schierl in
16020 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
16021 Jason Rumney's 2007-06-07 change worked around this bug, but
16022 didn't fix it.
16023 * systime.h (tzname, timezone): Remove no-longer-used declarations.
16024
160252011-10-19 Eli Zaretskii <eliz@gnu.org>
16026
16027 * xdisp.c (start_display): If the character at POS is displayed
16028 via a display vector, reset IT->current.dpvec_index to zero.
16029 (try_window_reusing_current_matrix): If a line ends in a display
16030 vector or the next line starts in a display vector, continue
16031 redrawing the window even though the character position of
16032 start_row was reached.
16033 (Bug#9771, part 2)
16034
160352011-10-18 Chong Yidong <cyd@gnu.org>
16036
16037 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
16038 with nobreak-char-display too.
16039
160402011-10-18 Eli Zaretskii <eliz@gnu.org>
16041
16042 Fix part 3 of bug#9771.
16043 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
16044 (bidi_resolve_neutral): Don't enter the expensive loop looking for
16045 non-neutral characters if the current character is a paragraph
16046 separator (a.k.a. Newline). This avoids running the same
16047 expensive loop twice, once when we consume the preceding newline
16048 and the other time when the line actually needs to be displayed.
16049 Avoid the loop when we see neutrals on the base embedding level
16050 following a character whose directionality is the same as the
16051 paragraph's. This avoids running the expensive loop when a line
16052 ends in a long sequence of neutrals, like control characters.
16053 Add assertion against STRONG_AL type. Slightly rearrange code
16054 that determines the type of a neutral given the first non-neutral
16055 that follows it.
16056 (bidi_level_of_next_char): Set next_en_pos to zero when
16057 invalidating its info.
16058
160592011-10-17 Eli Zaretskii <eliz@gnu.org>
16060
16061 * xdisp.c (push_display_prop): Determine whether to record string
16062 or buffer position by IT->string, not by IT->method. Allow
16063 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
16064 (move_it_vertically_backward): Don't look for character position
16065 immediately after the newline when in a continuation line.
16066 (Bug#9771, part 1)
16067
160682011-10-15 Martin Rudalics <rudalics@gmx.at>
16069
16070 * window.c (coordinates_in_window): Rewrite and delabelize
16071 vertical border check. (Bug#5357) (Bug#9618)
16072
160732011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
16074
16075 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
16076 errors in XSetWindowBorder (bug#9310).
16077
160782011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
16079
16080 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
16081 avoid crash when xmalloc overrun checking is enabled.
16082
160832011-10-13 Eli Zaretskii <eliz@gnu.org>
16084
16085 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
16086 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
16087 cursor motion with <left> and <right> arrow keys.
16088
16089 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
16090 some callers set that themselves.
16091
160922011-10-12 Eli Zaretskii <eliz@gnu.org>
16093
16094 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
16095 display string and the previous row comes from the same string and
16096 is empty. (Bug#9739) (Bug#9738)
16097
160982011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
16099
16100 * doc.c (get_doc_string): Encode file name (bug#9735).
16101
161022011-10-12 Eli Zaretskii <eliz@gnu.org>
16103
16104 * bidi.c (bidi_level_of_next_char):
16105 * xdisp.c (get_visually_first_element): Remove old incorrect
16106 comments regarding the Unicode Line Separator character.
16107
16108 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
16109
161102011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
16111
16112 * alloc.c (Fgc_status): Do not access beyond zombies array
16113 boundary if nzombies > MAX_ZOMBIES.
16114 * alloc.c (dump_zombies): Add missing format specifier.
16115
161162011-10-12 Paul Eggert <eggert@cs.ucla.edu>
16117
16118 * xdisp.c (set_cursor_from_row): Simplify conditionals,
16119 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
16120
16121 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
16122 Some packages use them to denote characters with modifiers.
16123
161242011-10-11 Andreas Schwab <schwab@linux-m68k.org>
16125
16126 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
16127 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
16128 matching a pp-number. Rename parameter var to var1.
16129
161302011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
16131
16132 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
16133
161342011-10-08 Glenn Morris <rgm@gnu.org>
16135
16136 * callint.c (Fcall_interactively): Give a more explicit error for the
16137 'c' case with a non-character input. (Bug#8479)
16138
161392011-10-08 Eli Zaretskii <eliz@gnu.org>
16140
16141 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
16142 lines.
16143 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
16144 lines that are hscrolled on the left.
16145
16146 * dispnew.c (buffer_posn_from_coords): Account for a possible
16147 presence of header-line. (Bug#4426)
16148
161492011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
16150
16151 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
16152 Don't advertise functionality which we discourage or doesn't work.
16153
161542011-10-07 Paul Eggert <eggert@cs.ucla.edu>
16155
16156 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
16157 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
16158 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
16159 this makes Emacs dump core during garbage collection on rare
16160 occasions. sizeof is obviously inferior to offsetof here, so
16161 stick with offsetof.
16162 (GC_POINTER_ALIGNMENT): New macro.
16163 (mark_memory): Omit 3rd (offset) arg; caller changed.
16164 Don't assume EMACS_INT alignment is the same as pointer alignment.
16165
161662011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
16167
16168 * keyboard.c (read_key_sequence_remapped): New var.
16169 (read_key_sequence): Compute remapping in the right buffer.
16170 (command_loop_1): Use read_key_sequence's remapping directly.
16171
161722011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
16173
16174 * dired.c (file_name_completion): Don't expand file name.
16175 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
16176 before checking file name handler.
16177
16178 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
16179 they've been requested explicitly (bug#9591).
16180
161812011-10-01 Andreas Schwab <schwab@linux-m68k.org>
16182
16183 * keymap.c (Fsingle_key_description): Use make_specified_string
16184 instead of build_string to build string from push_key_description.
16185 (Bug#5193)
16186
161872011-09-30 Paul Eggert <eggert@cs.ucla.edu>
16188
16189 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
16190 This fixes a Y2038 bug on 64-bit hosts.
16191 * buffer.c (reset_buffer):
16192 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
16193 (Fclear_buffer_auto_save_failure):
16194 Use 0, not -1, to represent an unset failure time, since time_t
16195 might not be signed.
16196
16197 Remove dependency on glibc malloc internals.
16198 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16199 Move back here from lisp.h, but with their new implementations.
16200 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
16201 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
16202 * charset.c (charset_table_init): New static var.
16203 (syms_of_charset): Use it instead of xmalloc. This removes a
16204 dependency on glibc malloc internals. See Eli Zaretskii's comment in
16205 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
16206 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16207 Move back to alloc.c.
16208 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
16209 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
16210
162112011-09-30 Jan Djärv <jan.h.d@swipnet.se>
16212
16213 * nsterm.m (windowDidResize): Call x_set_window_size only when
16214 ns_in_resize is true. Otherwise set pixelwidth/height and
16215 call change_frame_size (Bug#9628).
16216
162172011-09-30 Paul Eggert <eggert@cs.ucla.edu>
16218
16219 Port --enable-checking=all to Fedora 14 x86-64.
16220 * charset.c (syms_of_charset): Also account for glibc malloc's
16221 internal overhead when calculating the initial malloc maximum.
16222
16223 Port --enable-checking=all to Fedora 14 x86.
16224 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16225 Move to lisp.h.
16226 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
16227 (overrun_check_realloc, overrun_check_free):
16228 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
16229 That way, xmalloc returns a properly-aligned pointer even if
16230 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
16231 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
16232 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
16233 into account when calculating the initial malloc maximum.
16234 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
16235 Move here from alloc.c, so that charset.c can use it too.
16236 Properly align; the old code wasn't right for common 32-bit hosts
16237 when configured with --enable-checking=all.
16238 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
16239 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
16240
162412011-09-29 Eli Zaretskii <eliz@gnu.org>
16242
16243 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
16244 use EDOM.
16245
162462011-09-28 Eli Zaretskii <eliz@gnu.org>
16247
16248 * xdisp.c (compute_display_string_end): If there's no display
16249 string at CHARPOS, return -1.
16250
16251 * bidi.c (bidi_fetch_char): When compute_display_string_end
16252 returns a negative value, treat the character as a normal
16253 character not covered by a display string. (Bug#9624)
16254
162552011-09-28 Juanma Barranquero <lekktu@gmail.com>
16256
16257 * lread.c (Fread_from_string): Fix typo in docstring.
16258
162592011-09-27 Eli Zaretskii <eliz@gnu.org>
16260
16261 * xdisp.c (handle_invisible_prop): If invisible text ends on a
16262 newline, reseat the iterator instead of bidi-iterating there one
16263 character at a time. (Bug#9610)
16264 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
16265 TO_CHARPOS if the bidi iterator is at base embedding level.
16266
162672011-09-27 Andreas Schwab <schwab@linux-m68k.org>
16268
16269 * lread.c (readevalloop): Use correct code for NBSP.
16270 (read1): Likewise. (Bug#9608)
16271
162722011-09-25 Michael Albinus <michael.albinus@gmx.de>
16273
16274 * dbusbind.c (Fdbus_register_signal): When service is not
16275 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
16276
162772011-09-25 Glenn Morris <rgm@gnu.org>
16278
16279 * buffer.c (truncate-lines): Doc fix.
16280
162812011-09-24 Chong Yidong <cyd@stupidchicken.com>
16282
16283 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
16284 (Fset_window_next_buffers): Doc fix.
16285
162862011-09-24 Glenn Morris <rgm@gnu.org>
16287
16288 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
16289
162902011-09-24 Paul Eggert <eggert@cs.ucla.edu>
16291
16292 Fix minor problems found by static checking.
16293 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
16294 * indent.c (Fvertical_motion): Fix == vs = typo.
16295
162962011-09-24 Eli Zaretskii <eliz@gnu.org>
16297
16298 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
16299 Default value is now t. Doc fix.
16300
16301 * indent.c (Fvertical_motion): Compute and apply the overshoot
16302 logic when moving up, not only when moving down. Fix the
16303 confusing name and values of the it_overshoot_expected variable;
16304 logic changes accordingly. (Bug#9254) (Bug#9549)
16305
16306 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
16307 CHARPOS is covered by a display string which includes newlines.
16308 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
16309 is covered by a display string with embedded newlines.
16310
163112011-09-24 Michael Albinus <michael.albinus@gmx.de>
16312
16313 * dbusbind.c (Fdbus_register_signal): Add match rule to
16314 Vdbus_registered_objects_table. (Bug#9581)
16315 (Fdbus_register_method, Vdbus_registered_objects_table):
16316 Fix docstring.
16317
163182011-09-24 Jim Meyering <meyering@redhat.com>
16319
16320 do not ignore write error for any output size
16321 The previous change was incomplete.
16322 While it makes emacs --batch detect the vast majority of stdout
16323 write failures, errors were still ignored whenever the output size is
16324 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
16325 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
16326 && echo FAIL: ignored write error
16327 FAIL: ignored write error
16328 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
16329 && echo FAIL: ignored write error
16330 FAIL: ignored write error
16331 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
16332
163332011-09-23 Andreas Schwab <schwab@linux-m68k.org>
16334
16335 * emacs.c (Fkill_emacs): In noninteractive mode exit
16336 non-successfully if a write error occurred on stdout. (Bug#9574)
16337
163382011-09-21 Eli Zaretskii <eliz@gnu.org>
16339
16340 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
16341 the xassert test.
16342
16343 * dispextern.h (struct it): Update the comment documenting what
16344 can it->OBJECT be.
16345
163462011-09-20 Eli Zaretskii <eliz@gnu.org>
16347
16348 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
16349 a display string, extend search for cursor position to end of row.
16350 (find_row_edges): If the row ends in a newline from a display
16351 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
16352 Handle the case of a display string with multiple newlines.
16353 (Fcurrent_bidi_paragraph_direction): Fix search for previous
16354 non-empty line. Fixes confusing cursor motion with arrow keys at
16355 the beginning of a line that starts with whitespace.
16356
163572011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
16358
16359 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
16360 (bug#9493).
16361
163622011-09-18 Chong Yidong <cyd@stupidchicken.com>
16363
16364 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
16365 boolean (Bug#9154).
16366
163672011-09-18 Eli Zaretskii <eliz@gnu.org>
16368
16369 * xdisp.c (display_line): Record maximum and minimum buffer
16370 positions even if no glyphs were produced (e.g., by a zero-width
16371 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
16372 buffer positions that will be removed from the glyph row because
16373 they don't fit.
16374 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
16375 column is beyond frame width: don't subtract 1 "pixel" when
16376 computing width of the stretch.
16377 (reseat_at_next_visible_line_start): Undo the change made on
16378 2011-09-17 that saved paragraph information and restored it after
16379 the call to `reseat'. (Bug#9545)
16380
163812011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
16382
16383 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
16384 and turn window cursor on if cleared (Bug#9415).
16385
163862011-09-18 Andreas Schwab <schwab@linux-m68k.org>
16387
16388 * search.c (boyer_moore): Take unibyte characters from pattern
16389 literally. (Bug#9458)
16390
163912011-09-18 Eli Zaretskii <eliz@gnu.org>
16392
16393 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
16394
163952011-09-18 Paul Eggert <eggert@cs.ucla.edu>
16396
16397 Fix minor problem found by static checking.
16398 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
16399 initialized, to pacify gcc -Wuninitialized.
16400
16401 * fileio.c: Report proper errno when syscall falls.
16402 (Finsert_file_contents): Save and restore errno,
16403 so that report_file_error outputs the correct diagnostic.
16404 (Fwrite_region) [CLASH_DETECTION]: Likewise.
16405
164062011-09-18 Eli Zaretskii <eliz@gnu.org>
16407
16408 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
16409
164102011-09-17 Eli Zaretskii <eliz@gnu.org>
16411
16412 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
16413 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
16414
164152011-09-17 Eli Zaretskii <eliz@gnu.org>
16416
16417 * xdisp.c (reseat_at_next_visible_line_start): Keep information
16418 about the current paragraph and restore it after the call to reseat.
16419
16420 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
16421 (bidi_find_paragraph_start): Search back for paragraph beginning
16422 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
16423 (bidi_move_to_visually_next): Only trigger paragraph-related
16424 computations when the last character is a newline or at EOB, not
16425 just any NEUTRAL_B. (Bug#9470)
16426
16427 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
16428 truncated lines if point is covered by a display string. (Bug#9524)
16429
164302011-09-16 Paul Eggert <eggert@cs.ucla.edu>
16431
16432 * xselect.c: Relax test for outgoing X longs (Bug#9498).
16433 (cons_to_x_long): New function.
16434 (lisp_data_to_selection_data): Use it. Correct the test for
16435 short-versus-long data; it was negated. Break out of vector
16436 loop, for efficiency, when a long datum is discovered.
16437
164382011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
16439
16440 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
16441
164422011-09-16 Eli Zaretskii <eliz@gnu.org>
16443
16444 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
16445 GCC PR/17406) by declaring this function with external scope.
16446
164472011-09-15 Paul Eggert <eggert@cs.ucla.edu>
16448
16449 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
16450 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
16451
164522011-09-15 Andreas Schwab <schwab@linux-m68k.org>
16453
16454 * editfns.c (Fformat): Correctly handle text properties on "%%".
16455
164562011-09-15 Eli Zaretskii <eliz@gnu.org>
16457
16458 * xterm.c (x_draw_composite_glyph_string_foreground):
16459 * w32term.c (x_draw_composite_glyph_string_foreground):
16460 * term.c (encode_terminal_code):
16461 * composite.c (composition_update_it, get_composition_id):
16462 * xdisp.c (get_next_display_element)
16463 (fill_composite_glyph_string): Add comments about special meaning
16464 of TAB characters in a composition.
16465
164662011-09-15 Paul Eggert <eggert@cs.ucla.edu>
16467
16468 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
16469 This occurs when processing a multibyte format.
16470 Problem reported by Wolfgang Jenker.
16471
164722011-09-15 Johan Bockgård <bojohan@gnu.org>
16473
16474 * xdisp.c (try_cursor_movement): Only check for exact match if
16475 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
16476
164772011-09-14 Paul Eggert <eggert@cs.ucla.edu>
16478
16479 Remove unused external symbols.
16480 * dispextern.h (calc_pixel_width_or_height): Remove decl.
16481 * xdisp.c (calc_pixel_width_or_height): Now static.
16482 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
16483 * indent.c (check_display_width):
16484 * w32term.c: Fix comment to match code.
16485 * xterm.c, xterm.h (x_catching_errors): Remove.
16486
164872011-09-14 Paul Eggert <eggert@cs.ucla.edu>
16488
16489 * xselect.c: Use signed conversions more consistently (Bug#9498).
16490 (selection_data_to_lisp_data): Assume incoming selection data are
16491 signed integers, not unsigned. This is to be consistent with
16492 outgoing selection data, which was modified to use signed integers
16493 in as part of the fix to Bug#9196 in response to Jan D.'s comment
16494 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
16495 expects long, not unsigned long.
16496
164972011-09-14 Eli Zaretskii <eliz@gnu.org>
16498
16499 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
16500 computation of loop end. Reported by Johan Bockgård
16501 <bojohan@gnu.org>.
16502
165032011-09-13 Chong Yidong <cyd@stupidchicken.com>
16504
16505 * frame.c (Fother_visible_frames_p): Function deleted.
16506
165072011-09-12 Eli Zaretskii <eliz@gnu.org>
16508
16509 * indent.c (compute_motion): Process display vector front to back
16510 rather than the other way around. (Bug#2496)
16511
165122011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
16513
16514 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
16515
165162011-09-11 Chong Yidong <cyd@stupidchicken.com>
16517
16518 * minibuf.c (Fread_from_minibuffer): Doc fix.
16519
165202011-09-11 Eli Zaretskii <eliz@gnu.org>
16521
16522 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
16523 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
16524
165252011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
16526
16527 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
16528 value for non-existent files.
16529
165302011-09-11 Eli Zaretskii <eliz@gnu.org>
16531
16532 * fileio.c (Finsert_file_contents): If the file cannot be opened,
16533 set its "size" to -1. This will set the modtime_size field of
16534 the corresponding buffer to -1, which is what
16535 verify-visited-file-modtime expects for files that do not exist.
16536 (Bug#9139)
16537
165382011-09-11 Paul Eggert <eggert@cs.ucla.edu>
16539
16540 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
16541 here ...
16542 * lisp.h: ... from here. push_key_description is no longer
16543 defined in keyboard.c, so its declaration should not be in
16544 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
16545 logically belongs with push_key_description.
16546
165472011-09-10 Paul Eggert <eggert@cs.ucla.edu>
16548
16549 * buffer.h: Include <sys/types.h> instead of <time.h>.
16550 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
16551 Problem reported by Herbert J. Skuhra.
16552
165532011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
16554
16555 * xml.c (parse_region): Make the parsing work for
16556 non-comment-starting XML files again (bug#9144).
16557
165582011-09-10 Andreas Schwab <schwab@linux-m68k.org>
16559
16560 * image.c (gif_load): Fix calculation of bottom and right corner.
16561 (Bug#9468)
16562
165632011-09-10 Eli Zaretskii <eliz@gnu.org>
16564
16565 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
16566 redisplay in small windows.
16567
165682011-09-09 Eli Zaretskii <eliz@gnu.org>
16569
16570 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
16571
165722011-09-08 Martin Rudalics <rudalics@gmx.at>
16573
16574 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
16575 Operate on live windows only.
16576
165772011-09-08 Juanma Barranquero <lekktu@gmail.com>
16578
16579 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
16580
165812011-09-07 Eli Zaretskii <eliz@gnu.org>
16582
16583 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
16584 only under bidi iteration.
16585
165862011-09-07 Jan Djärv <jan.h.d@swipnet.se>
16587
16588 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
16589
165902011-09-06 Paul Eggert <eggert@cs.ucla.edu>
16591
16592 isnan: Fix porting problem to Solaris 10 with bundled gcc.
16593 Without this fix, the command to link temacs failed due to an
16594 undefined symbol __builtin_isnan. This is because
16595 /usr/include/iso/math_c99.h #defines isnan(x) to
16596 __builtin_isnan(x), but the bundled gcc, which identifies itself
16597 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
16598 a __builtin_isnan.
16599 * floatfns.c (isnan): #undef, and then #define to a clone of
16600 what's in data.c.
16601 (Fisnan): Always define, since it's always available now.
16602 (syms_of_floatfns): Always define isnan at the Lisp level.
16603
166042011-09-06 Paul Eggert <eggert@cs.ucla.edu>
16605
16606 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
16607
166082011-09-06 Paul Eggert <eggert@cs.ucla.edu>
16609
16610 * fileio.c: Fix bugs with large file offsets (Bug#9428).
16611 The previous code assumed that file offsets (off_t values) fit in
16612 EMACS_INT variables, which is not true on typical 32-bit hosts.
16613 The code messed up by falsely reporting buffer overflow in cases
16614 such as (insert-file-contents "big" nil 1 2) into an empty buffer
16615 when "big" contains more than 2**29 bytes, even though this
16616 inserts just one byte and does not overflow the buffer.
16617 (Finsert_file_contents): Store file offsets as off_t
16618 values, not as EMACS_INT values. Check for overflow when
16619 converting between EMACS_INT and off_t. When checking for
16620 buffer overflow or for overlap, take the offsets into account.
16621 Don't use EMACS_INT for small values where int suffices.
16622 When checking for overlap, fix a typo: ZV was used where
16623 ZV_BYTE was intended.
16624 (Fwrite_region): Don't assume off_t fits into 'long'.
16625 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
16626
166272011-09-05 Michael Albinus <michael.albinus@gmx.de>
16628
16629 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
16630
166312011-09-04 Paul Eggert <eggert@cs.ucla.edu>
16632
16633 sprintf-related integer and memory overflow issues (Bug#9412).
16634
16635 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
16636 (esprintf, exprintf, evxprintf): New functions.
16637 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
16638 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
16639 (modify_event_symbol): Do not assume that the length of
16640 name_alist_or_stem is safe to alloca and fits in int.
16641 (Fexecute_extended_command): Likewise for function name and binding.
16642 (Frecursion_depth): Wrap around reliably on integer overflow.
16643 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
16644 since some callers pass EMACS_INT values.
16645 (Fsingle_key_description): Don't crash if symbol name contains more
16646 than MAX_ALLOCA bytes.
16647 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
16648 (get_minibuffer): Arg is now EMACS_INT, not int.
16649 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
16650 (esprintf, exprintf, evxprintf): New decls.
16651 * window.h (command_loop_level, minibuf_level): Reflect API changes.
16652
16653 * dbusbind.c (signature_cat): New function.
16654 (xd_signature, Fdbus_register_signal):
16655 Do not overrun buffer; instead, report string overflow.
16656
16657 * dispnew.c (add_window_display_history): Don't overrun buffer.
16658 Truncate instead; this is OK since it's just a log.
16659
16660 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
16661 even if the time zone offset is outlandishly large.
16662 Don't mishandle offset == INT_MIN.
16663
16664 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
16665 when creating daemon; the previous buffer-overflow check was incorrect.
16666
16667 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
16668 which has the guts of the old verror function.
16669
16670 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
16671 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
16672
16673 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
16674 (font_unparse_xlfd): Don't blindly alloca long strings.
16675 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
16676 fits in int, when using sprintf. Use single snprintf to count
16677 length of string rather than counting it via multiple sprintfs;
16678 that's simpler and more reliable.
16679 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
16680 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
16681 sprintf, in case result does not fit in int.
16682
16683 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
16684 (fontset_from_font): Print it.
16685
16686 * frame.c (tty_frame_count): Now printmax_t, not int.
16687 (make_terminal_frame, set_term_frame_name): Print it.
16688 (x_report_frame_params): In X, window IDs are unsigned long,
16689 not signed long, so print them as unsigned.
16690 (validate_x_resource_name): Check for implausibly long names,
16691 and don't assume name length fits in 'int'.
16692 (x_get_resource_string): Don't blindly alloca invocation name;
16693 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
16694 not fit in int.
16695
16696 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
16697 (xg_check_special_colors, xg_set_geometry):
16698 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
16699
16700 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
16701 Use esprintf, not sprintf, in case result does not fit in int.
16702
16703 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
16704 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
16705 it as a large positive number.
16706 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
16707 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
16708
16709 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
16710 in case result does not fit in int.
16711
16712 * print.c (float_to_string): Detect width overflow more reliably.
16713 (print_object): Make sprintf buffer a bit bigger, to avoid potential
16714 buffer overrun. Don't assume list length fits in 'int'. Treat
16715 print length of 0 as 0, not as infinity; to be consistent with other
16716 uses of print length in this function. Don't overflow print length
16717 index. Don't assume hash table size fits in 'long', or that
16718 vectorlike size fits in 'unsigned long'.
16719
16720 * process.c (make_process): Use printmax_t, not int, to format
16721 process-name gensyms.
16722
16723 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
16724
16725 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
16726 to avoid potential buffer overrun.
16727
16728 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
16729 if X resource line is longer than 512 bytes.
16730
16731 * xfns.c (x_window): Make sprintf buffer a bit bigger
16732 to avoid potential buffer overrun.
16733
16734 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
16735
16736 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
16737
167382011-09-04 Paul Eggert <eggert@cs.ucla.edu>
16739
16740 Integer overflow fixes for scrolling, etc.
16741 Without these, Emacs silently mishandles large integers sometimes.
16742 For example, "C-u 4294967297 M-x recenter" was treated as if
16743 it were "C-u 1 M-x recenter" on a typical 64-bit host.
16744
16745 * xdisp.c (try_window_id): Check Emacs fixnum range before
16746 converting to 'int'.
16747
16748 * window.c (window_scroll_line_based, Frecenter):
16749 Check that an Emacs fixnum is in range before assigning it to 'int'.
16750 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
16751 values converted from Emacs fixnums.
16752 (Frecenter): Don't wrap around a line count if it is out of 'int'
16753 range; instead, treat it as an extreme value.
16754 (Fset_window_configuration, compare_window_configurations):
16755 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
16756
16757 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
16758 that can exceed INT_MAX. Check that EMACS_INT value is in range
16759 before assigning it to the (possibly-narrower) index.
16760 (match_limit): Don't assume that a fixnum can fit in 'int'.
16761
16762 * print.c (print_object): Use ptrdiff_t, not int, for index that can
16763 exceed INT_MAX.
16764
16765 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
16766 (Fvertical_motion): Don't wrap around LINES values that don't fit
16767 in 'int'. Instead, treat them as extreme values. This is good
16768 enough for windows, which can't have more than INT_MAX lines anyway.
16769
167702011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
16771
16772 * Require libxml/parser.h to avoid compilation warning.
16773
16774 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
16775
16776 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
16777 since this reportedly can destroy thread storage.
16778
167792011-08-30 Chong Yidong <cyd@stupidchicken.com>
16780
16781 * syntax.c (find_defun_start): Update all cache variables if
16782 exiting early (Bug#9401).
16783
167842011-08-30 Eli Zaretskii <eliz@gnu.org>
16785
16786 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
16787
16788 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
16789 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
16790 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
16791
16792 * term.c (tty_append_glyph): New function.
16793 (produce_stretch_glyph): Static function and its prototype deleted.
16794
16795 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
16796 Add prototypes.
16797
167982011-08-29 Paul Eggert <eggert@cs.ucla.edu>
16799
16800 * image.c (parse_image_spec): Check for nonnegative, not for positive,
16801 when checking :margin (Bug#9390).
16802 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
16803 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
16804 so that the name doesn't mislead. All uses changed.
16805
168062011-08-28 Johan Bockgård <bojohan@gnu.org>
16807
16808 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
16809 set_tty_hooks.
16810
168112011-08-27 Eli Zaretskii <eliz@gnu.org>
16812
16813 * xdisp.c (move_it_to): Don't bail out early when reaching
16814 position beyond to_charpos, if we are scanning backwards.
16815 (move_it_vertically_backward): When DY == 0, make sure we get to
16816 the first character in the line after the newline.
16817
168182011-08-27 Paul Eggert <eggert@cs.ucla.edu>
16819
16820 * ccl.c: Improve and simplify overflow checking (Bug#9196).
16821 (ccl_driver): Do not generate an out-of-range pointer.
16822 (Fccl_execute_on_string): Remove unnecessary check for
16823 integer overflow, noted by Stefan Monnier in
16824 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
16825 Remove a FIXME that didn't need fixing.
16826 Simplify the newly-introduced buffer reallocation code.
16827
168282011-08-27 Juanma Barranquero <lekktu@gmail.com>
16829
16830 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
16831
168322011-08-26 Paul Eggert <eggert@cs.ucla.edu>
16833
16834 Integer and memory overflow issues (Bug#9196).
16835
16836 * doc.c (get_doc_string): Rework so that
16837 get_doc_string_buffer_size is the actual buffer size, rather than
16838 being 1 less than the actual buffer size; this makes xpalloc more
16839 convenient.
16840
16841 * image.c (x_allocate_bitmap_record, cache_image):
16842 * xselect.c (Fx_register_dnd_atom):
16843 Simplify previous changes by using xpalloc.
16844
16845 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
16846 since either will do and ptrdiff_t is convenient with xpalloc.
16847
16848 * charset.c (charset_table_size)
16849 (struct charset_sort_data.priority): Now ptrdiff_t.
16850 (charset_compare): Don't overflow if priorities differ greatly.
16851 (Fsort_charsets): Don't assume list length fits in int.
16852 Check for size-calculation overflow when allocating sort data.
16853 (syms_of_charset): Allocate an initial charset table that is
16854 just under 64 KiB, to avoid problems with glibc malloc and mmap.
16855
16856 * cmds.c (internal_self_insert): Check for size-calculation overflow.
16857
16858 * composite.h (struct composition.glyph_len): Now int, not unsigned.
16859 The actual value is always <= INT_MAX, and leaving it unsigned made
16860 overflow checking harder.
16861
16862 * dispextern.h (struct glyph_matrix.rows_allocated)
16863 (struct face_cache.size): Now ptrdiff_t, for convenience in use
16864 with xpalloc. The values are still always <= INT_MAX.
16865
16866 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
16867
16868 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
16869 (SAFE_NALLOCA): New macro.
16870
16871 * region-cache.c (struct boundary.pos, find_cache_boundary)
16872 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
16873 (set_cache_region, invalidate_region_cache)
16874 (revalidate_region_cache, know_region_cache, region_cache_forward)
16875 (region_cache_backward, pp_cache):
16876 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
16877 so that ptrdiff_t * can be passed to xpalloc.
16878 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
16879 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
16880 (pp_cache): Don't assume cache_len fits in int.
16881 * region-cache.h: Adjust extern decls to match.
16882
16883 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
16884 EMACS_INT, since either will do, for xpalloc.
16885
16886 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
16887 (xnmalloc, xnrealloc, xpalloc): New functions.
16888
16889 * bidi.c (bidi_shelve_header_size): New constant.
16890 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
16891 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
16892
16893 * bidi.c (bidi_cache_shrink):
16894 * buffer.c (overlays_at, overlays_in, record_overlay_string)
16895 (overlay_strings):
16896 Don't update size of array until after memory allocation succeeds,
16897 because xmalloc/xrealloc may not return.
16898 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
16899 now that we have proper integer overflow checking.
16900 (record_overlay_string, overlay_strings): Catch overflows when
16901 calculating size of overlay_str_buf.
16902
16903 * callproc.c (Fcall_process): Check for size overflow when
16904 calculating size of args2.
16905 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
16906 Normally we prefer signed values, but sticking with ptrdiff_t would
16907 require adding more-complicated checks.
16908
16909 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
16910 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
16911 Redo buffer-overflow calculations to avoid integer overflow.
16912 Add a FIXME comment where memory seems to be over-allocated.
16913
16914 * character.c (Fstring): Check for size-calculation overflow.
16915
16916 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
16917 unnecessary integer overflow. Check for size overflow.
16918 (encode_coding_object): Don't update size until xmalloc succeeds.
16919
16920 * composite.c (get_composition_id): Check for overflow in glyph
16921 length calculations.
16922
16923 Integer and memory overflow fixes for display code.
16924 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
16925 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
16926 (scrolling_window): Check for overflow in size calculations.
16927 (line_draw_cost, realloc_glyph_pool, add_row_entry):
16928 Don't assume glyph table len fits in int.
16929 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
16930 (row_table_size): Now ptrdiff_t, not int.
16931 (scrolling_window): Avoid overflow in size calculations.
16932 Don't update size until allocation succeeds.
16933 * fns.c (concat): Check for overflow in size calculations.
16934 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
16935 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
16936 (NEXT_ALMOST_PRIME_LIMIT): New constant.
16937
16938 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
16939 (get_doc_string): Check for size calculation overflow.
16940 Don't update size until allocation succeeds.
16941 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
16942 EMACS_INT, where ptrdiff_t will do.
16943 (Fsubstitute_command_keys): Check for string overflow.
16944
16945 * editfns.c (set_time_zone_rule): Don't assume environment length
16946 fits in int.
16947 (message_length): Now ptrdiff_t, not int.
16948 (Fmessage_box): Don't update size until allocation succeeds.
16949 Don't assume message length fits in int.
16950 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
16951
16952 * emacs.c (main): Do not reallocate argv, since there is a null at
16953 the end that can be overwritten, and this way there's no need to
16954 worry about size-calculation overflow.
16955 (sort_args): Check for size-calculation overflow.
16956
16957 * eval.c (init_eval_once, grow_specpdl): Don't update size until
16958 alloc succeeds.
16959 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
16960
16961 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
16962 (x_set_scroll_bar_width, x_figure_window_size):
16963 Check for integer overflow.
16964 (x_set_alpha): Do not assume XINT fits in int.
16965
16966 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
16967 This is for the members text_lines, text_cols, total_lines, total_cols,
16968 where the system imposes an 'int' limit.
16969
16970 * fringe.c (Fdefine_fringe_bitmap):
16971 Don't update size until alloc works.
16972
16973 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
16974 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
16975
16976 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
16977 Check for size-calculation overflow.
16978 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
16979 do, as we prefer signed integers.
16980 (id_to_widget.max_size, id_to_widget.used)
16981 (xg_store_widget_in_map, xg_remove_widget_from_map)
16982 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
16983 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
16984 Use and return ptrdiff_t, not int.
16985 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
16986 * gtkutil.h: Change prototypes to match the above.
16987
16988 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
16989 are duplicate now that they've been promoted to lisp.h.
16990 (x_allocate_bitmap_record, x_alloc_image_color)
16991 (make_image_cache, cache_image, xpm_load):
16992 Don't update size until alloc is done.
16993 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
16994 (x_detect_edges):
16995 Check for size calculation overflow.
16996 (ct_colors_allocated_max): New constant.
16997 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
16998 overflow.
16999
17000 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
17001 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
17002 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
17003 Use ptrdiff_t, not int, to count maps.
17004 (read_char_minibuf_menu_prompt): Check for overflow in size
17005 calculations. Don't update size until allocation succeeds.
17006 Redo calculations to avoid overflow.
17007 * keyboard.h: Change prototypes to match the above.
17008
17009 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
17010 to count maps.
17011 (current_minor_maps): Check for size calculation overflow.
17012 * keymap.h: Change prototypes to match the above.
17013
17014 * lread.c (read1, init_obarray): Don't update size until alloc done.
17015
17016 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
17017 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
17018
17019 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
17020 Now ptrdiff_t, not int.
17021 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
17022 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
17023
17024 * process.c (Fnetwork_interface_list): Check for overflow
17025 in size calculation.
17026
17027 * region-cache.c (move_cache_gap): Check for size calculation overflow.
17028
17029 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
17030 overflow. Don't bother calling xmalloc when xrealloc will do.
17031
17032 * search.c (Freplace_match): Check for size calculation overflow.
17033 (Fset_match_data): Don't assume list lengths fit in 'int'.
17034
17035 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
17036 for command line length. Do not attempt to address one before the
17037 beginning of an array, as that's not portable.
17038
17039 * term.c (max_frame_lines): Remove; unused.
17040 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
17041 not int.
17042 (encode_terminal_code, calculate_costs): Check for size
17043 calculation overflow.
17044 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
17045 table lengths and related sizes. Don't update size until alloc
17046 done. Redo calculations to avoid overflow.
17047 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
17048
17049 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
17050 subtracting pointers.
17051 (gobble_line): Check for overflow more carefully. Don't update size
17052 until alloc done.
17053
17054 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
17055 Don't update size until alloc done.
17056 Redo size calculations to avoid overflow.
17057 Check for size calculation overflow.
17058 (main) [DEBUG]: Fix typo in invoking tparam1.
17059
17060 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
17061 Use ptrdiff_t, not int, for sizes.
17062 (store_mode_line_noprop_char): Don't update size until alloc done.
17063
17064 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
17065 Use ptrdiff_t, not int, for sizes.
17066 (Finternal_make_lisp_face, cache_face):
17067 Check for size calculation overflow.
17068 (cache_face): Treat size calculation overflows as if they were
17069 memory exhaustion (the usual treatment), rather than aborting.
17070
17071 * xfns.c (x_encode_text, x_set_name_internal)
17072 (Fx_change_window_property): Use ptrdiff_t, not int, to count
17073 sizes, since they can exceed INT_MAX in size. Check for size
17074 calculation overflow.
17075
17076 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
17077 (xg_select): Check for size calculation overflow.
17078 Don't update size until alloc done.
17079
17080 * xrdb.c (get_environ_db): Don't assume path length fits in int,
17081 as sprintf is limited to int lengths.
17082
17083 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
17084 (X_LONG_MIN): New macros.
17085 Use them to make the following changes clearer.
17086 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
17087 This change doesn't affect the value now, but it may help remind
17088 future maintainers not to raise the value too much later.
17089 (SELECTION_QUANTUM): Remove, replacing with ...
17090 (selection_quantum): ... new function, which avoids overflow.
17091 All uses changed.
17092 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
17093 assumption that selection length fits in 'int'.
17094 (x_reply_selection_request, x_handle_selection_request)
17095 (x_get_window_property, receive_incremental_selection)
17096 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
17097 (lisp_data_to_selection_data, clean_local_selection_data):
17098 Use ptrdiff_t, not int, to record length of selection.
17099 (x_reply_selection_request, x_get_window_property)
17100 (receive_incremental_selection, x_property_data_to_lisp):
17101 Redo calculations to avoid overflow.
17102 (x_reply_selection_request): When sending hint, ceiling it at
17103 X_LONG_MAX rather than relying on wraparound overflow to send
17104 something.
17105 (x_get_window_property, receive_incremental_selection)
17106 (lisp_data_to_selection_data, x_property_data_to_lisp):
17107 Check for size-calculation overflow.
17108 (x_get_window_property, receive_incremental_selection)
17109 (lisp_data_to_selection_data, Fx_register_dnd_atom):
17110 Don't store size until memory allocation succeeds.
17111 (x_get_window_property): Plug memory leak on memory exhaustion.
17112 Don't double-block input; malloc is safe here. Don't assume 2**34
17113 - 4 fits in unsigned long. Add an xassert to check
17114 XGetWindowProperty overflow. Be more careful about overflow
17115 calculations, and distinguish size from memory overflow better.
17116 (receive_incremental_selection): When tracing, don't assume
17117 unsigned int is less than INT_MAX.
17118 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
17119 harmful) conversions of unsigned short to int.
17120 (lisp_data_to_selection_data): Don't assume that integers
17121 in the range -65535 through -1 fit in an X unsigned short.
17122 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
17123 result parameters unless successful. Rely on cons_to_unsigned
17124 to report problems with elements; the old code wasn't right anyway.
17125 (x_check_property_data): Check for int overflow; we cannot use
17126 a wider type due to X limits.
17127 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
17128
17129 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
17130
17131 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
17132 (x_term_init): Check for size calculation overflow.
17133 (x_color_cells): Don't store size until memory allocation succeeds.
17134 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
17135 Don't assume alloca size is less than MAX_ALLOCA.
17136 (x_term_init): Don't assume length fits in int (sprintf is limited
17137 to int size).
17138
17139 Use ptrdiff_t for composition IDs.
17140 * character.c (lisp_string_width):
17141 * composite.c (composition_table_size, n_compositions)
17142 (get_composition_id, composition_gstring_from_id):
17143 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
17144 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
17145 * window.c (Frecenter):
17146 Use ptrdiff_t, not int, for composition IDs.
17147 * composite.c (get_composition_id): Check for integer overflow.
17148 * composite.h: Adjust prototypes to match the above changes.
17149
17150 Use ptrdiff_t for hash table indexes.
17151 * category.c (hash_get_category_set):
17152 * ccl.c (ccl_driver):
17153 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
17154 * coding.c (coding_system_charset_list, detect_coding_system):
17155 * coding.h (struct coding_system.id):
17156 * composite.c (get_composition_id, gstring_lookup_cache):
17157 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
17158 * image.c (xpm_get_color_table_h):
17159 * lisp.h (hash_lookup, hash_put):
17160 * minibuf.c (Ftest_completion):
17161 Use ptrdiff_t for hash table indexes, not int (which is too
17162 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
17163 32-bit --with-wide-int hosts).
17164
17165 * charset.c (Fdefine_charset_internal): Check for integer overflow.
17166 Add a FIXME comment about memory leaks.
17167 (syms_of_charset): Don't assume xmalloc returns.
17168
17169 Don't assume that stated character widths fit in int.
17170 * character.c (Fchar_width, c_string_width, lisp_string_width):
17171 * character.h (CHAR_WIDTH):
17172 * indent.c (MULTIBYTE_BYTES_WIDTH):
17173 Use sanitize_char_width to avoid undefined and/or bad behavior
17174 with outlandish widths.
17175 * character.h (sanitize_tab_width): Rename from sanitize_width,
17176 now that we have two such functions. All uses changed.
17177 (sanitize_char_width): New inline function.
17178
17179 Don't assume that tab-width fits in int.
17180 * character.h (sanitize_width): New inline function.
17181 (SANE_TAB_WIDTH): New macro.
17182 (ASCII_CHAR_WIDTH): Use it.
17183 * indent.c (sane_tab_width): Remove. All uses replaced by
17184 SANE_TAB_WIDTH (current_buffer).
17185 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
17186
17187 * fileio.c: Integer overflow issues with file modes.
17188 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
17189
17190 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
17191 Remove unreachable code.
17192 (read_hex, load_charset_map_from_file): Check for integer overflow.
17193
17194 * xterm.c: Don't go over XClientMessageEvent limit.
17195 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
17196 (x_send_scroll_bar_event): Likewise. Check that the size does not
17197 exceed limits imposed by XClientMessageEvent, as well as the usual
17198 ptrdiff_t and size_t limits.
17199
17200 * keyboard.c: Overflow, signedness and related fixes.
17201 (make_lispy_movement): Use same integer type in forward decl
17202 that is used in the definition.
17203 (read_key_sequence, keyremap_step):
17204 Change bufsize argument back to int, undoing my 2011-03-30 change.
17205 We prefer signed types, and int is wide enough here.
17206 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
17207 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
17208 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
17209 length, not size_t. Use ptrdiff_t for index, not int.
17210 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
17211 possibility of integer overflow.
17212
17213 Overflow, signedness and related fixes for images.
17214
17215 * dispextern.h (struct it.stack[0].u.image.image_id)
17216 (struct_it.image_id, struct image.id, struct image_cache.size)
17217 (struct image_cache.used, struct image_cache.ref_count):
17218 * gtkutil.c (update_frame_tool_bar):
17219 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
17220 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
17221 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
17222 * nsmenu.m (update_frame_tool_bar):
17223 * xdisp.c (calc_pixel_width_or_height):
17224 * xfns.c (image_cache_refcount):
17225 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
17226 on typical 64-bit hosts.
17227
17228 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
17229 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
17230 Omit unnecessary casts to int.
17231 (parse_image_spec): Check that integers fall into 'int' range
17232 when the callers expect that.
17233 (image_ascent): Redo ascent calculation to avoid int overflow.
17234 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
17235 (lookup_image): Remove unnecessary tests.
17236 (xbm_image_p): Locals are now of int, not EMACS_INT,
17237 since parse_image_check makes sure they fit into int.
17238 (png_load, gif_load, svg_load_image):
17239 Prefer int to unsigned where either will do.
17240 (tiff_handler): New function, combining the cores of the
17241 old tiff_error_handler and tiff_warning_handler.
17242 This function is rewritten to use vsnprintf and thereby avoid
17243 stack buffer overflows. It uses only the features of vsnprintf
17244 that are common to both POSIX and native Microsoft.
17245 (tiff_error_handler, tiff_warning_handler): Use it.
17246 (tiff_load, gif_load, imagemagick_load_image):
17247 Don't assume :index value fits in 'int'.
17248 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
17249 (imagemagick_load_image): Check that crop parameters fit into
17250 the integer types that MagickCropImage accepts. Don't assume
17251 Vimagemagick_render_type has a nonnegative value. Don't assume
17252 size_t fits in 'long'.
17253 (gs_load): Use printmax_t to print the widest integers possible.
17254 Check for integer overflow when computing image height and width.
17255
172562011-08-26 Eli Zaretskii <eliz@gnu.org>
17257
17258 * xdisp.c (redisplay_window): Don't force window start if point
17259 will be invisible in the resulting window. (Bug#9324)
17260
172612011-08-25 Eli Zaretskii <eliz@gnu.org>
17262
17263 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
17264 the display spec is of the form `(space ...)'.
17265 (handle_display_spec): Return the value returned by
17266 handle_single_display_spec, not just 1 or zero.
17267 (handle_single_display_spec): If the display spec is of the form
17268 `(space ...)', and specifies display in the text area, return 2
17269 rather than 1.
17270 (try_cursor_movement): Check for the need to scroll more
17271 accurately, and prefer exact match for point under bidi.
17272 Don't advance `row' beyond the last row of the window.
17273
17274 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
17275 into disp_prop; all users changed.
17276
17277 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
17278 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
17279 for the text covered by the display property.
17280
172812011-08-25 Chong Yidong <cyd@stupidchicken.com>
17282
17283 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
17284 Change return value to nil.
17285 (Frecord_buffer): Delete unused function.
17286
172872011-08-24 Eli Zaretskii <eliz@gnu.org>
17288
17289 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
17290 buffers, return left-to-right.
17291 (set_cursor_from_row): Consider candidate row a win if its glyph
17292 represents a newline and point is on that newline. Fixes cursor
17293 positioning on the newline at EOL of R2L text within L2R
17294 paragraph, and vice versa.
17295 (try_cursor_movement): Check continued rows, in addition to
17296 continuation rows. Fixes unwarranted scroll when point enters a
17297 continued line of R2L text within an L2R paragraph, or vice versa.
17298 (cursor_row_p): Consider the case of point being equal to
17299 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
17300 from the end of a short line to the beginning of a continued line
17301 of R2L text within L2R paragraph.
17302 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
17303 composed characters.
17304
17305 * bidi.c (bidi_check_type): Use xassert.
17306 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
17307 members.
17308
173092011-08-23 Eli Zaretskii <eliz@gnu.org>
17310
17311 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
17312 a character.
17313
173142011-08-23 Chong Yidong <cyd@stupidchicken.com>
17315
17316 * nsfont.m (ns_otf_to_script): Fix typo.
17317
173182011-08-22 Kenichi Handa <handa@m17n.org>
17319
17320 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
17321 extra slot even if the purpose is char-code-property-table.
17322
173232011-08-23 Eli Zaretskii <eliz@gnu.org>
17324
17325 * xdisp.c (redisplay_window): When computing centering_position,
17326 account for the height of the header line. (Bug#8874)
17327
17328 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
17329 instead of CHAR_TO_BYTE. Fixes a crash when a completion
17330 candidate is selected by the mouse, and that candidate has a
17331 composed character under the mouse.
17332
17333 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
17334 coordinates reported by pos-visible-in-window-p for a composed
17335 character in column zero.
17336
173372011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
17338
17339 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
17340
173412011-08-22 Eli Zaretskii <eliz@gnu.org>
17342
17343 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
17344 consider it a hit if to_charpos is anywhere in the range of the
17345 composed buffer positions.
17346
173472011-08-22 Chong Yidong <cyd@stupidchicken.com>
17348
17349 * image.c (gif_load): Don't assume that each subimage has the same
17350 dimensions as the base image. Handle disposal method that is
17351 "undefined" by the gif spec (Bug#9335).
17352
173532011-08-20 Chong Yidong <cyd@stupidchicken.com>
17354
17355 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
17356 (Fcondition_case): Document `debug' symbol in error handler.
17357
173582011-08-19 Eli Zaretskii <eliz@gnu.org>
17359
17360 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
17361 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
17362 from an Org mode buffer to a Speedbar frame.
17363
17364 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
17365 a composition, take its buffer position from IT->cmp_it.charpos.
17366 Fixes cursor positioning at the beginning of a line that begins
17367 with a composed character.
17368
173692011-08-18 Eli Zaretskii <eliz@gnu.org>
17370
17371 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
17372 character bidirectional type, use STRONG_L instead. Fixes crashes
17373 in a buffer produced by `describe-categories'.
17374
17375 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
17376 members before the level stack, so they would be saved and
17377 restored when copying iterator state. Fixes incorrect reordering
17378 around TABs covered by display properties.
17379
173802011-08-18 Andreas Schwab <schwab@linux-m68k.org>
17381
17382 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
17383
173842011-08-17 Chong Yidong <cyd@stupidchicken.com>
17385
17386 * eval.c (internal_condition_case, internal_condition_case_1)
17387 (internal_condition_case_2, internal_condition_case_n):
17388 Remove unnecessary aborts (Bug#9081).
17389
173902011-08-17 Eli Zaretskii <eliz@gnu.org>
17391
17392 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
17393 has no `load' handler, try opening the file locally. (Bug#9311)
17394
173952011-08-16 Ken Brown <kbrown@cornell.edu>
17396
17397 * gmalloc.c: Expand comment.
17398
173992011-08-16 Eli Zaretskii <eliz@gnu.org>
17400
17401 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
17402 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
17403
174042011-08-16 Ken Brown <kbrown@cornell.edu>
17405
17406 Fix memory allocation problems in Cygwin build (Bug#9273).
17407
17408 * unexcw.c ( __malloc_initialized): Declare external variable.
17409 (fixup_executable): Force the dumped emacs to reinitialize malloc.
17410
17411 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
17412 New variables.
17413 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
17414 dumped emacs.
17415 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
17416 in the static heap.
17417 [CYGWIN] (special_realloc): New function.
17418 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
17419 requests to realloc storage in the static heap.
17420
174212011-08-15 Paul Eggert <eggert@cs.ucla.edu>
17422
17423 * bidi.c (bidi_initialize): Remove unused local.
17424
174252011-08-15 Eli Zaretskii <eliz@gnu.org>
17426
17427 * bidimirror.h:
17428 * biditype.h: Remove file.
17429 * makefile.w32-in ($(BLD)/bidi.$(O)):
17430 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
17431
17432 * dispextern.h: Fix a typo in the comment to bidi_type_t.
17433
17434 * chartab.c: Improve commentary for the uniprop_table API.
17435
17436 * bidi.c (bidi_paragraph_init): Support zero value of
17437 bidi_ignore_explicit_marks_for_paragraph_level.
17438 (bidi_initialize): Use uniprop_table instead of including
17439 biditype.h and bidimirror.h.
17440
17441 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
17442 coordinates of the iterator when restoring from ppos_it.
17443 (Bug#9296)
17444
174452011-08-14 Kenichi Handa <handa@m17n.org>
17446
17447 * process.c (create_process): Call setup_process_coding_systems
17448 after the pid of the process is set to -1 (Bug#8162).
17449
174502011-08-14 Eli Zaretskii <eliz@gnu.org>
17451
17452 * xdisp.c (move_it_in_display_line_to): Don't invoke
17453 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
17454 ppos_it. Fixes vertical cursor motion when line beginning is
17455 covered by an image. (Bug#9296)
17456
174572011-08-14 Jan Djärv <jan.h.d@swipnet.se>
17458
17459 * nsterm.h (ns_run_ascript): Declare.
17460 (NSAPP_DATA2_RUNASSCRIPT): Define.
17461
17462 * nsfns.m (as_script, as_result, as_status): New static variables.
17463 (ns_run_ascript): New function.
17464 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
17465 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
17466 the event loop. Get status from as_status (Bug#7276).
17467
17468 * nsterm.m (sendEvent): If event is NSApplicationDefined and
17469 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
17470 the event loop (Bug#7276).
17471
174722011-08-14 Andreas Schwab <schwab@linux-m68k.org>
17473
17474 * gnutls.c (QCgnutls_bootprop_priority)
17475 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
17476 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
17477 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
17478 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
17479 (QCgnutls_bootprop_verify_hostname_error)
17480 (QCgnutls_bootprop_callbacks_verify): Rename from
17481 Qgnutls_bootprop_..., all uses changed.
17482
17483 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
17484 uses changed.
17485
174862011-08-14 Paul Eggert <eggert@cs.ucla.edu>
17487
17488 * xfaces.c (Qframe_set_background_mode): Now static.
17489 * dispextern.h (Qframe_set_background_mode): Remove decl.
17490
17491 * process.c (Fnetwork_interface_info): Declare local only if needed.
17492
174932011-08-13 Jan Djärv <jan.h.d@swipnet.se>
17494
17495 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
17496 (Fnetwork_interface_list): Allocate in increments of bytes instead
17497 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
17498 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
17499 sockaddr.
17500 (struct ifflag_def): notrailers is smart on OSX.
17501 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
17502 Get hardware address with getifaddrs if available.
17503
175042011-08-12 Eli Zaretskii <eliz@gnu.org>
17505
17506 * xdisp.c (iterate_out_of_display_property): xassert that
17507 IT->position is set to within IT->object's boundaries. Break from
17508 the loop as soon as EOB is reached; avoids infloops in redisplay
17509 when IT->position is set up wrongly due to some bug.
17510 Set IT->current to match the bidi iterator unconditionally.
17511 (push_display_prop): Allow GET_FROM_STRING as IT->method on
17512 entry. Force push_it to save on the stack the current
17513 buffer/string position, to be restored by pop_it. Fix flags in
17514 the iterator structure wrt the object coming from a display
17515 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
17516 properties. (Bug#9284)
17517
175182011-08-09 Andreas Schwab <schwab@linux-m68k.org>
17519
17520 * fontset.c (fontset_get_font_group): Add proper type checks.
17521 (Bug#9172)
17522
175232011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
17524
17525 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
17526 and LC_VERSION_MIN_MACOSX.
17527 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
17528 (dump_it) [LC_FUNCTION_STARTS]: Use it.
17529
175302011-08-08 Eli Zaretskii <eliz@gnu.org>
17531
17532 * xdisp.c (forward_to_next_line_start): Allow to use the
17533 no-display-properties-and-no-overlays under bidi display.
17534 Set disp_pos in the bidi iterator to avoid searches for display
17535 properties and overlays.
17536
175372011-08-08 Chong Yidong <cyd@stupidchicken.com>
17538
17539 * editfns.c (Fset_time_zone_rule): Document relationship with the
17540 setenv function.
17541
17542 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
17543 the font entity extracted from the cache (Bug#8109).
17544
175452011-08-07 Chong Yidong <cyd@stupidchicken.com>
17546
17547 * composite.c (autocmp_chars): Don't reset point. That is done by
17548 restore_point_unwind (Bug#5984).
17549
175502011-08-07 Juri Linkov <juri@jurta.org>
17551
17552 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
17553 to show the arg `TIME' instead of `TIMEVAL'.
17554
175552011-08-06 Eli Zaretskii <eliz@gnu.org>
17556
17557 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
17558 display property strides EOL and includes a newline, as in
17559 longlines-mode. (Bug#9254)
17560 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
17561 word-wrap under bidirectional display. (Bug#9224)
17562
17563 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
17564 is non-zero, even if the data buffer is NULL. Fixes a crash in
17565 vertical-motion with longlines-mode. (Bug#9254)
17566
175672011-08-05 Eli Zaretskii <eliz@gnu.org>
17568
17569 * bidi.c <bidi_cache_total_alloc>: Now static.
17570 (bidi_initialize): Initialize bidi_cache_total_alloc.
17571
17572 * xdisp.c (display_line): Release buffer allocated for shelved bidi
17573 cache. (Bug#9221)
17574
17575 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
17576 amount allocated this far in `bidi_cache_total_alloc'.
17577 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
17578 non-zero, only free the data buffer without restoring the cache
17579 contents. All callers changed.
17580
17581 * dispextern.h (bidi_unshelve_cache): Update prototype.
17582
17583 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
17584 (move_it_in_display_line, move_it_to)
17585 (move_it_vertically_backward, move_it_by_lines): Replace the call
17586 to xfree to an equivalent call to bidi_unshelve_cache.
17587 (move_it_in_display_line_to): Fix logic of returning
17588 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
17589
175902011-08-05 Eli Zaretskii <eliz@gnu.org>
17591
17592 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
17593 came from a string character with a `cursor' property. (Bug#9229)
17594
175952011-08-04 Jan Djärv <jan.h.d@swipnet.se>
17596
17597 * Makefile.in (LIB_PTHREAD): New variable.
17598 (LIBES): Add LIB_PTHREAD (Bug#9216).
17599
17600 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
17601 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
17602
176032011-08-04 Andreas Schwab <schwab@linux-m68k.org>
17604
17605 * regex.c (re_iswctype): Remove some redundant boolean conversions.
17606
176072011-08-04 Jan Djärv <jan.h.d@swipnet.se>
17608
17609 * xterm.c (x_find_topmost_parent): New function.
17610 (x_set_frame_alpha): Find topmost parent window with
17611 x_find_topmost_parent and set the property there also (bug#9181).
17612 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
17613
176142011-08-04 Paul Eggert <eggert@cs.ucla.edu>
17615
17616 * callproc.c (Fcall_process): Avoid vfork clobbering
17617 the local vars buffer, coding_systems, current_dir.
17618
176192011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
17620
17621 * keymap.c (Fmake_composed_keymap): Move to subr.el.
17622
176232011-08-03 Paul Eggert <eggert@cs.ucla.edu>
17624
17625 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
17626 so that it is not optimized away.
17627
17628 * xdisp.c (compute_display_string_pos): Remove unused local.
17629
176302011-08-02 Eli Zaretskii <eliz@gnu.org>
17631
17632 Fix slow cursor motion and scrolling in large buffers with
17633 selective display, like Org Mode buffers. (Bug#9218)
17634
17635 * dispextern.h (struct bidi_it): New member disp_prop_p.
17636
17637 * xdisp.c: Remove one-slot cache of display string positions.
17638 (compute_display_string_pos): Accept an additional argument
17639 DISP_PROP_P; callers changed. Scan at most 5K characters forward
17640 for a display string or property. If found, set DISP_PROP_P
17641 non-zero.
17642
17643 * bidi.c (bidi_fetch_char): Accept an additional argument
17644 DISP_PROP_P, and pass it to compute_display_string_pos.
17645 Only handle text covered by a display string if DISP_PROP_P is returned
17646 non-zero. All callers of bidi_fetch_char changed.
17647
176482011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
17649
17650 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
17651
176522010-12-03 Don March <don@ohspite.net>
17653
17654 * keymap.c (Fdefine_key): Fix non-prefix key error message when
17655 last character M-[char] is translated to ESC [char] (bug#7541).
17656
176572011-08-02 Kenichi Handa <handa@m17n.org>
17658
17659 * lisp.h (uniprop_table): Extern it.
17660
17661 * chartab.c (uniprop_table): Make it non-static.
17662
176632011-08-01 Eli Zaretskii <eliz@gnu.org>
17664
17665 * xdisp.c (forward_to_next_line_start): Accept additional argument
17666 BIDI_IT_PREV, and store into it the state of the bidi iterator had
17667 on the newline.
17668 (reseat_at_next_visible_line_start): Use the bidi iterator state
17669 returned by forward_to_next_line_start to restore the state of
17670 it->bidi_it after backing up to previous newline. (Bug#9212)
17671
176722011-07-30 Andreas Schwab <schwab@linux-m68k.org>
17673
17674 * regex.c (re_comp): Protoize.
17675 (re_exec): Fix return type.
17676 (regexec): Fix type of `ret'. (Bug#9203)
17677
176782011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17679
17680 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
17681 This is needed if max-image-size is a floating-point number.
17682
176832011-07-28 Andreas Schwab <schwab@linux-m68k.org>
17684
17685 * print.c (print_object): Print empty symbol as ##.
17686
17687 * lread.c (read1): Read ## as empty symbol.
17688
176892011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
17690
17691 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
17692 setting frame foreground color (Bug#9175).
17693 (x_set_background_color): Likewise.
17694
17695 * nsmenu.m (-setText): Size tooltip dimensions precisely to
17696 contents (Bug#9176).
17697 (EmacsTooltip -init): Remove bezels and add shadows to
17698 tooltip windows.
17699
17700 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
17701 or scroll bar (Bug#8470).
17702
17703 * nsfont.m (nsfont_open): Remove assignment to voffset and
17704 unnecessary vars hshink, expand, hd, full_height, min_height.
17705 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
17706
17707 * nsterm.h (nsfont_info): Remove voffset field.
17708
177092011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
17710
17711 Implement strike-through and overline on NextStep (Bug#8863).
17712
17713 * nsfont.m (nsfont_open): Use underline position provided by font,
17714 instead of hard-coded value of 2.
17715 (nsfont_draw): Call ns_draw_text_decoration instead.
17716
17717 * nsterm.h: Add declaration for ns_draw_text_decoration.
17718
17719 * nsterm.m (ns_draw_text_decoration): New function for drawing
17720 underline, overline, and strike-through.
17721 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
17722 ns_draw_text_decoration. Change treatment of cursor drawing to
17723 accommodate underlining, etc.
17724
177252011-07-28 Eli Zaretskii <eliz@gnu.org>
17726
17727 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
17728 default.
17729
177302011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17731
17732 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
17733 Without this fix, if a signal arrives just after memory fills up,
17734 'malloc' might be invoked reentrantly.
17735
17736 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
17737 In other words, assume that every image size is allowed, on non-X
17738 hosts. This assumption is probably wrong, but it lets Emacs compile.
17739
177402011-07-28 Andreas Schwab <schwab@linux-m68k.org>
17741
17742 * regex.c (re_iswctype): Convert return values to boolean.
17743
177442011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
17745
17746 * xdisp.c (compute_display_string_pos): Don't use cached display
17747 string position if the buffer had its restriction changed.
17748 (Bug#9184)
17749
177502011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17751
17752 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
17753
177542011-07-28 Paul Eggert <eggert@cs.ucla.edu>
17755
17756 Integer signedness and overflow and related fixes. (Bug#9079)
17757
17758 * bidi.c: Integer size and overflow fixes.
17759 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
17760 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
17761 (bidi_cache_find_level_change, bidi_cache_ensure_space)
17762 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
17763 (bidi_find_other_level_edge):
17764 Use ptrdiff_t instead of EMACS_INT where either will do.
17765 This works better on 32-bit hosts configured --with-wide-int.
17766 (bidi_cache_ensure_space): Check for size-calculation overflow.
17767 Use % rather than repeated addition, for better worst-case speed.
17768 Don't set bidi_cache_size until after xrealloc returns, because it
17769 might not return.
17770 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
17771 (bidi_cache_ensure_space): Also check that the bidi cache size
17772 does not exceed that of the largest Lisp string or buffer. See Eli
17773 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
17774
17775 * alloc.c (__malloc_size_t): Remove.
17776 All uses replaced by size_t. See Andreas Schwab's note
17777 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
17778
17779 * image.c: Improve checking for integer overflow.
17780 (check_image_size): Assume that f is nonnull, since
17781 it is always nonnull in practice. This is one less thing to
17782 worry about when checking for integer overflow later.
17783 (x_check_image_size): New function, which checks for integer
17784 overflow issues inside X.
17785 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
17786 This removes the need for a memory_full check.
17787 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
17788 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
17789 (xbm_read_bitmap_data): Change locals back to 'int', since
17790 their values must fit in 'int'.
17791 (xpm_load_image, png_load, tiff_load):
17792 Invoke x_create_x_image_and_pixmap earlier,
17793 to avoid much needless work if the image is too large.
17794 (tiff_load): Treat overly large images as if
17795 x_create_x_image_and_pixmap failed, not as malloc failures.
17796 (gs_load): Use x_check_image_size.
17797
17798 * gtkutil.c: Omit integer casts.
17799 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
17800 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
17801
17802 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
17803
17804 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
17805 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
17806 would wrongly return t on a 64-bit host.
17807
17808 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
17809 The plain *_OVERFLOW macros run afoul of GCC bug 49705
17810 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
17811 and therefore cause GCC to emit a bogus diagnostic in some cases.
17812
17813 * image.c: Integer signedness and overflow and related fixes.
17814 This is not an exhaustive set of fixes, but it's time to
17815 record what I've got.
17816 (lookup_pixel_color, check_image_size): Remove redundant decls.
17817 (check_image_size): Don't assume that arbitrary EMACS_INT values
17818 fit in 'int', or that arbitrary 'double' values fit in 'int'.
17819 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
17820 (tiff_load, imagemagick_load_image):
17821 Check for overflow in size calculations.
17822 (x_create_x_image_and_pixmap): Remove unnecessary test for
17823 xmalloc returning NULL; that can't happen.
17824 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
17825 (xpm_color_bucket): Use better integer hashing function.
17826 (xpm_cache_color): Don't possibly over-allocate memory.
17827 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
17828 (gif_memory_source):
17829 Use ptrdiff_t, not int or size_t, to record sizes.
17830 (png_load): Don't assume values greater than 2**31 fit in 'int'.
17831 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
17832 either works, as we prefer signed integers.
17833 (tiff_read_from_memory, tiff_write_from_memory):
17834 Return tsize_t, not size_t, since that's what the TIFF API wants.
17835 (tiff_read_from_memory): Don't fail simply because the read would
17836 go past EOF; instead, return a short read.
17837 (tiff_load): Omit no-longer-needed casts.
17838 (Fimagemagick_types): Don't assume size fits into 'int'.
17839
17840 Improve hashing quality when configured --with-wide-int.
17841 * fns.c (hash_string): New function, taken from sxhash_string.
17842 Do not discard information about ASCII character case; this
17843 discarding is no longer needed.
17844 (sxhash-string): Use it. Change sig to match it. Caller changed.
17845 * lisp.h: Declare it.
17846 * lread.c (hash_string): Remove, since we now use fns.c's version.
17847 The fns.c version returns a wider integer if --with-wide-int is
17848 specified, so this should help the quality of the hashing a bit.
17849
17850 * emacs.c: Integer overflow minor fix.
17851 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
17852 Define only if GNU_LINUX.
17853 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
17854
17855 * dispnew.c: Integer signedness and overflow fixes.
17856 Remove unnecessary forward decls, that were a maintenance hassle.
17857 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
17858 All uses changed.
17859 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
17860 (scrolling_window): Use ptrdiff_t, not int, for byte count.
17861 (prepare_desired_row, line_draw_cost):
17862 Use int, not unsigned, where either works.
17863 (save_current_matrix, restore_current_matrix):
17864 Use ptrdiff_t, not size_t, where either works.
17865 (init_display): Check for overflow more accurately, and without
17866 relying on undefined behavior.
17867
17868 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
17869 Remove, replacing with the new symbols in lisp.h. All uses changed.
17870 * fileio.c (make_temp_name):
17871 * filelock.c (lock_file_1, lock_file):
17872 * xdisp.c (message_dolog):
17873 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
17874 Use pMd etc. instead.
17875 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
17876 replacing the pWIDE etc. symbols removed from editfns.c.
17877
17878 * keyboard.h (num_input_events): Now uintmax_t.
17879 This is (very slightly) less likely to mess up due to wraparound.
17880 All uses changed.
17881
17882 * buffer.c: Integer signedness fixes.
17883 (alloc_buffer_text, enlarge_buffer_text):
17884 Use ptrdiff_t rather than size_t when either will do, as we prefer
17885 signed integers.
17886
17887 * alloc.c: Integer signedness and overflow fixes.
17888 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
17889 (__malloc_size_t): Default to size_t, not to int.
17890 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
17891 (Fgarbage_collect, mark_object_loop_halt, mark_object):
17892 Prefer ptrdiff_t to size_t when either would do, as we prefer
17893 signed integers.
17894 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
17895 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
17896 Now const. Initialize with values that are in range even if char
17897 is signed.
17898 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
17899 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
17900 These functions do the right thing with sizes > 2**32.
17901 (check_depth): Now ptrdiff_t, not int.
17902 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
17903 Adjust to new way of storing sizes. Check for size overflow bugs
17904 in rest of code.
17905 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
17906 slightly wrong anyway, as it missed one instance of
17907 XMALLOC_OVERRUN_CHECK_OVERHEAD.
17908 (refill_memory_reserve): Omit needless cast to size_t.
17909 (mark_object_loop_halt): Mark as externally visible.
17910
17911 * xselect.c: Integer signedness and overflow fixes.
17912 (Fx_register_dnd_atom, x_handle_dnd_message):
17913 Use ptrdiff_t, not size_t, since we prefer signed.
17914 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
17915 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
17916 x_dnd_atoms_size and x_dnd_atoms_length.
17917
17918 * doprnt.c: Prefer signed to unsigned when either works.
17919 * eval.c (verror):
17920 * doprnt.c (doprnt):
17921 * lisp.h (doprnt):
17922 * xdisp.c (vmessage):
17923 Use ptrdiff_t, not size_t, when using or implementing doprnt,
17924 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
17925 prefer signed arithmetic to avoid comparison confusion.
17926 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
17927 but is a bit tricky.
17928
17929 Assume freestanding C89 headers, string.h, stdlib.h.
17930 * data.c, doprnt.c, floatfns.c, print.c:
17931 Include float.h unconditionally.
17932 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
17933 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
17934 * regex.c: Likewise for stddef.h, string.h.
17935 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
17936 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
17937 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
17938 (STDC_HEADERS): Remove obsolete defines.
17939 * sysdep.c: Include limits.h unconditionally.
17940
17941 Assume support for memcmp, memcpy, memmove, memset.
17942 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
17943 * regex.c (memcmp, memcpy):
17944 Remove; we assume C89 now.
17945
17946 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
17947 (__malloc_safe_bcopy): Remove; no longer needed.
17948
17949 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
17950 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
17951 well either way, and we prefer signed to unsigned.
17952
179532011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
17954
17955 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
17956 closes the connection while we're reading (bug#9182).
17957
179582011-07-25 Jan Djärv <jan.h.d@swipnet.se>
17959
17960 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
17961 are specified (Bug#9168).
17962
179632011-07-25 Paul Eggert <eggert@cs.ucla.edu>
17964
17965 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
17966 Found by GCC static checking and --with-wide-int on a 32-bit host.
17967
179682011-07-25 Eli Zaretskii <eliz@gnu.org>
17969
17970 * xdisp.c (compute_display_string_pos): Fix logic of caching
17971 previous display string position. Initialize cached_prev_pos to
17972 -1. Fixes slow-down at the beginning of a buffer.
17973
179742011-07-24 Eli Zaretskii <eliz@gnu.org>
17975
17976 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
17977 for attrs[LFACE_FONTSET_INDEX].
17978
179792011-07-23 Paul Eggert <eggert@cs.ucla.edu>
17980
17981 * xml.c (parse_region): Remove unused local
17982 that was recently introduced.
17983
179842011-07-23 Eli Zaretskii <eliz@gnu.org>
17985
17986 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
17987 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
17988
17989 * xdisp.c (move_it_in_display_line_to): Record the best matching
17990 position for TO_CHARPOS while scanning the line, and restore it on
17991 exit if none of the characters scanned was an exact match.
17992 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
17993 when exact match is impossible due to invisible text, and the
17994 lines are truncated.
17995
179962011-07-23 Jan Djärv <jan.h.d@swipnet.se>
17997
17998 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
17999 for OSX >= 10.7.
18000
180012011-07-22 Eli Zaretskii <eliz@gnu.org>
18002
18003 Fix a significant slow-down of cursor motion with C-n, C-p,
18004 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
18005 auto-repeat under bidi redisplay in fontified buffers.
18006 * xdisp.c (compute_stop_pos_backwards): New function.
18007 (next_element_from_buffer): Call compute_stop_pos_backwards to
18008 find a suitable prev_stop when we find ourselves before
18009 base_level_stop.
18010 (reseat): Don't look for prev_stop, as that could mean a very long
18011 run.
18012 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
18013 <cached_disp_overlay_modiff>: Cache for last found display string
18014 position.
18015 (compute_display_string_pos): Return the cached position if asked
18016 about the same buffer in the same area of character positions, and
18017 the buffer wasn't changed since the time the display string
18018 position was cached.
18019
180202011-07-22 Eli Zaretskii <eliz@gnu.org>
18021
18022 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
18023 is an integer, which is important for empty lines. (Bug#9149)
18024
180252011-07-22 Chong Yidong <cyd@stupidchicken.com>
18026
18027 * frame.c (Fmodify_frame_parameters): In tty case, update the
18028 default face if necessary (Bug#4238).
18029
180302011-07-21 Chong Yidong <cyd@stupidchicken.com>
18031
18032 * editfns.c (Fstring_to_char): No need to explain what a character
18033 is in the docstring (Bug#6576).
18034
180352011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
18036
18037 * xml.c (parse_region): Make sure we always return a tree.
18038
180392011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
18040
18041 * xml.c (parse_region): If a document contains only comments,
18042 return that, too.
18043
180442011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
18045
18046 * xml.c (make_dom): Return comments, too.
18047
180482011-07-19 Paul Eggert <eggert@cs.ucla.edu>
18049
18050 Port to OpenBSD.
18051 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
18052 and the surrounding thread.
18053 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
18054 rather than fgets, and retry after EINTR. Otherwise, 'emacs
18055 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
18056 timer goes off.
18057 * s/openbsd.h (BROKEN_SIGIO): Define.
18058 * unexelf.c (unexec) [__OpenBSD__]:
18059 Don't update the .mdebug section of the Alpha COFF symbol table.
18060
180612011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
18062
18063 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
18064 (bug#8460).
18065
180662011-07-18 Paul Eggert <eggert@cs.ucla.edu>
18067
18068 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
18069 This fixes some race conditions on the permissions of any newly
18070 created file.
18071
18072 * alloc.c (valid_pointer_p): Use pipe, not open.
18073 This fixes some permissions issues when debugging.
18074
18075 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
18076 If fchown fails to set both uid and gid, try to set just gid,
18077 as that is sometimes allowed. Adjust the file's mode to eliminate
18078 setuid or setgid bits that are inappropriate if fchown fails.
18079
180802011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
18081
18082 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
18083 to compare Lisp_Objects.
18084 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
18085 global_gnutls_log_level, don't mistake it for a Lisp_Object.
18086 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
18087
180882011-07-17 Andreas Schwab <schwab@linux-m68k.org>
18089
18090 * lread.c (read_integer): Unread even EOF character.
18091 (read1): Likewise. Properly record start position of symbol.
18092
18093 * lread.c (read1): Read `#:' as empty uninterned symbol if no
18094 symbol character follows.
18095
180962011-07-17 Paul Eggert <eggert@cs.ucla.edu>
18097
18098 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
18099 This works around a problem with the previous change to Fcopy_file.
18100 Recent glibc declares fchown with __attribute__((warn_unused_result)),
18101 and without this change, GCC might complain about discarding
18102 fchown's return value.
18103
181042011-07-16 Juanma Barranquero <lekktu@gmail.com>
18105
18106 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
18107
181082011-07-16 Paul Eggert <eggert@cs.ucla.edu>
18109
18110 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
18111
181122011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
18113
18114 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
18115 it's used from the C level.
18116
18117 * process.c: Use the same condition for POLL_FOR_INPUT in both
18118 keyboard.c and process.c (bug#1858).
18119
181202011-07-09 Lawrence Mitchell <wence@gmx.li>
18121
18122 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
18123 (Fgnutls_boot): Use it.
18124
181252011-07-15 Andreas Schwab <schwab@linux-m68k.org>
18126
18127 * doc.c (Fsubstitute_command_keys): Revert last change.
18128
181292011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
18130
18131 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
18132 quotes the next character, and doesn't affect other longer
18133 sequences (bug#8935).
18134
18135 * lread.c (syms_of_lread): Clarify that is isn't only
18136 `eval-buffer' and `eval-defun' that's affected by
18137 `lexical-binding' (bug#8460).
18138
181392011-07-15 Eli Zaretskii <eliz@gnu.org>
18140
18141 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
18142 bidi redisplay when a line includes both an image and is truncated.
18143
181442011-07-14 Paul Eggert <eggert@cs.ucla.edu>
18145
18146 Fix minor problems found by static checking.
18147 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
18148 (elsz): Now a signed constant, not a size_t var. We prefer signed
18149 types to unsigned, to avoid integer comparison confusion. Without
18150 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
18151 "cannot optimize loop, the loop counter may overflow", a symptom
18152 of the confusion.
18153 * indent.c (Fvertical_motion): Mark locals as initialized.
18154 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
18155
181562011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
18157
18158 * search.c (Fre_search_backward): Mention `case-fold-search' in
18159 all the re_search_* functions (bug#8138).
18160
18161 * keyboard.c (Fopen_dribble_file): Document when the file is
18162 closed (bug#8056).
18163
181642011-07-14 Eli Zaretskii <eliz@gnu.org>
18165
18166 * bidi.c (bidi_dump_cached_states): Fix format of displaying
18167 bidi_cache_idx.
18168
18169 Support bidi reordering of display and overlay strings.
18170 * xdisp.c (compute_display_string_pos)
18171 (compute_display_string_end): Accept additional argument STRING.
18172 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
18173 (reseat_to_string): Initialize bidi_it->string.s and
18174 bidi_it->string.schars.
18175 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
18176 NULL (avoids a crash in bidi_paragraph_init).
18177 Initialize itb.string.lstring.
18178 (init_iterator): Call bidi_init_it only of a valid
18179 buffer position was specified. Initialize paragraph_embedding to
18180 L2R.
18181 (reseat_to_string): Initialize the bidi iterator.
18182 (display_string): If we need to ignore text properties of
18183 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
18184 original value of -1 will not work with bidi.)
18185 (compute_display_string_pos): First arg is now struct
18186 `text_pos *'; all callers changed. Support display properties on
18187 Lisp strings.
18188 (compute_display_string_end): Support display properties on Lisp
18189 strings.
18190 (init_iterator, reseat_1, reseat_to_string): Initialize the
18191 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
18192 when iterating on a string not from display properties).
18193 (compute_display_string_pos, compute_display_string_end):
18194 Fix calculation of the object to scan. Fixes an error when using
18195 arrow keys.
18196 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
18197 base_level_stop; instead, set base_level_stop to BEGV.
18198 Fixes crashes in vertical-motion.
18199 (next_element_from_buffer): Improve commentary for when
18200 the iterator is before prev_stop.
18201 (init_iterator): Initialize bidi_p from the default value of
18202 bidi-display-reordering, not from buffer-local value. Use the
18203 buffer-local value only if initializing for buffer iteration.
18204 (handle_invisible_prop): Support invisible properties on strings
18205 that are being bidi-reordered.
18206 (set_iterator_to_next): Support bidi reordering of C strings and
18207 Lisp strings.
18208 (next_element_from_string): Support bidi reordering of Lisp
18209 strings.
18210 (handle_stop_backwards): Support Lisp strings as well.
18211 (display_string): Support display of R2L glyph rows.
18212 Use IT_STRING_CHARPOS when displaying from a Lisp string.
18213 (init_iterator): Don't initialize it->bidi_p for strings
18214 here.
18215 (reseat_to_string): Initialize it->bidi_p for strings here.
18216 (next_element_from_string, next_element_from_c_string)
18217 (next_element_from_buffer): Add xassert's for correspondence
18218 between IT's object being iterated and it->bidi_it.string
18219 structure.
18220 (face_before_or_after_it_pos): Support bidi iteration.
18221 (next_element_from_c_string): Handle the case of the first string
18222 character that is not the first one in the visual order.
18223 (get_visually_first_element): New function, refactored from common
18224 parts of next_element_from_buffer, next_element_from_string, and
18225 next_element_from_c_string.
18226 (tool_bar_lines_needed, redisplay_tool_bar)
18227 (display_menu_bar): Force left-to-right direction. Add a FIXME
18228 comment for making that be controlled by a user option.
18229 (push_it, pop_it): Save and restore the state of the
18230 bidi iterator. Save and restore the bidi_p flag.
18231 (pop_it): Iterate out of display property for string iteration as
18232 well.
18233 (iterate_out_of_display_property): Support iteration over strings.
18234 (handle_single_display_spec): Set up it->bidi_it for iteration
18235 over a display string, and call bidi_init_it.
18236 (handle_single_display_spec, next_overlay_string)
18237 (get_overlay_strings_1, push_display_prop): Set up the bidi
18238 iterator for displaying display or overlay strings.
18239 (forward_to_next_line_start): Don't use the shortcut if
18240 bidi-iterating.
18241 (back_to_previous_visible_line_start): If handle_display_prop
18242 pushed the iterator stack, restore the internal state of the bidi
18243 iterator by calling bidi_pop_it same number of times.
18244 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
18245 and we are bidi-iterating, don't decrement the iterator position;
18246 instead, set the first_elt flag in the bidi iterator, to produce
18247 the same effect.
18248 (reseat_1): Remove redundant setting of string_from_display_prop_p.
18249 (push_display_prop): xassert that we are iterating a buffer.
18250 (push_it, pop_it): Save and restore paragraph_embedding member.
18251 (handle_single_display_spec, next_overlay_string)
18252 (get_overlay_strings_1, reseat_1, reseat_to_string)
18253 (push_display_prop): Set up the `unibyte' member of bidi_it.string
18254 correctly. Don't assume unibyte strings are not bidi-reordered.
18255 (compute_display_string_pos)
18256 (compute_display_string_end): Fix handling the case of C string.
18257 (push_it, pop_it): Save and restore from_disp_prop_p.
18258 (handle_single_display_spec, push_display_prop): Set the
18259 from_disp_prop_p flag.
18260 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
18261 (pop_it): Call iterate_out_of_display_property only if we are
18262 popping after iteration over a string that came from a display
18263 property. Fix a typo in popping stretch info. Add an assertion
18264 for verifying that the iterator position is in sync with the bidi
18265 iterator.
18266 (handle_single_display_spec, get_overlay_strings_1)
18267 (push_display_prop): Fix initialization of paragraph direction for
18268 string when that of the parent object is not yet determined.
18269 (reseat_1): Call bidi_init_it to resync the bidi
18270 iterator with IT's position. (Bug#7616)
18271 (find_row_edges): If ROW->start.pos gives position
18272 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
18273 (handle_stop, back_to_previous_visible_line_start, reseat_1):
18274 Reset the from_disp_prop_p flag.
18275 (SAVE_IT, RESTORE_IT): New macros.
18276 (pos_visible_p, face_before_or_after_it_pos)
18277 (back_to_previous_visible_line_start)
18278 (move_it_in_display_line_to, move_it_in_display_line)
18279 (move_it_to, move_it_vertically_backward, move_it_by_lines)
18280 (try_scrolling, redisplay_window, display_line): Use them when
18281 saving a temporary copy of the iterator and restoring it back.
18282 (back_to_previous_visible_line_start, reseat_1)
18283 (init_iterator): Empty the bidi cache "stack".
18284 (move_it_in_display_line_to): If iterator ended up at
18285 EOL, but we never saw any buffer positions smaller than
18286 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
18287 motion in bidi-reordered lines.
18288 (move_it_in_display_line_to): Record prev_method and prev_pos
18289 immediately before the call to set_iterator_to_next. Fixes cursor
18290 motion in bidi-reordered lines with stretch glyphs and strings
18291 displayed in margins. (Bug#8133) (Bug#8867)
18292 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
18293 TO_CHARPOS.
18294 (pos_visible_p): Support positions in bidi-reordered lines.
18295 Save and restore bidi cache.
18296
18297 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
18298 (bidi_paragraph_info): Delete unused struct.
18299 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
18300 (bidi_cache_start): New variable.
18301 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
18302 to zero.
18303 (bidi_cache_fetch_state, bidi_cache_search)
18304 (bidi_cache_find_level_change, bidi_cache_iterator_state)
18305 (bidi_cache_find, bidi_peek_at_next_level)
18306 (bidi_level_of_next_char, bidi_find_other_level_edge)
18307 (bidi_move_to_visually_next): Compare cache index with
18308 bidi_cache_start rather than with zero.
18309 (bidi_fetch_char): Accept new argument STRING; all callers
18310 changed. Support iteration over a string. Support strings with
18311 display properties. Support unibyte strings. Fix the type of
18312 `len' according to what STRING_CHAR_AND_LENGTH expects.
18313 (bidi_paragraph_init, bidi_resolve_explicit_1)
18314 (bidi_resolve_explicit, bidi_resolve_weak)
18315 (bidi_level_of_next_char, bidi_move_to_visually_next):
18316 Support iteration over a string.
18317 (bidi_set_sor_type, bidi_resolve_explicit_1)
18318 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
18319 can now be zero (for strings); special values 0 and -1 were
18320 changed to -1 and -2, respectively.
18321 (bidi_char_at_pos): New function.
18322 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
18323 Call it instead of FETCH_MULTIBYTE_CHAR.
18324 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
18325 initialized to valid values.
18326 (bidi_init_it): Don't initialize charpos and bytepos with invalid
18327 values.
18328 (bidi_level_of_next_char): Allow the sentinel "position" to pass
18329 the test for valid cached positions. Fix the logic for looking up
18330 the sentinel state in the cache. GCPRO the Lisp string we are
18331 iterating.
18332 (bidi_push_it, bidi_pop_it): New functions.
18333 (bidi_initialize): Initialize the bidi cache start stack pointer.
18334 (bidi_cache_ensure_space): New function, refactored from part of
18335 bidi_cache_iterator_state. Don't assume the required size is just
18336 one BIDI_CACHE_CHUNK away.
18337 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
18338 (bidi_count_bytes, bidi_char_at_pos): New functions.
18339 (bidi_cache_search): Don't assume bidi_cache_last_idx is
18340 always valid if bidi_cache_idx is valid.
18341 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
18342 is valid if it's going to be used.
18343 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
18344 (bidi_cache_fetch_state, bidi_cache_search)
18345 (bidi_cache_find_level_change, bidi_cache_ensure_space)
18346 (bidi_cache_iterator_state, bidi_cache_find)
18347 (bidi_find_other_level_edge, bidi_cache_start_stack):
18348 All variables related to cache indices are now EMACS_INT.
18349
18350 * dispextern.h (struct bidi_string_data): New structure.
18351 (struct bidi_it): New member `string'. Make flag members be 1-bit
18352 fields, and put them last in the struct.
18353 (compute_display_string_pos, compute_display_string_end):
18354 Update prototypes.
18355 (bidi_push_it, bidi_pop_it): Add prototypes.
18356 (struct iterator_stack_entry): New members bidi_p,
18357 paragraph_embedding, and from_disp_prop_p.
18358 (struct it): Member bidi_p is now a bit field 1 bit wide.
18359 (bidi_shelve_cache, bidi_unshelve_cache):
18360 Declare prototypes.
18361
18362 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
18363 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
18364 and vector-like objects.
18365
18366 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
18367 cache around display iteration.
18368
18369 * window.c (Fwindow_end, window_scroll_pixel_based)
18370 (displayed_window_lines, Frecenter): Save and restore the bidi
18371 cache around display iteration.
18372
183732011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
18374
18375 * editfns.c (Fdelete_region): Clarify the use of the named
18376 parameters (bug#6788).
18377
183782011-07-14 Martin Rudalics <rudalics@gmx.at>
18379
18380 * indent.c (Fvertical_motion): Set and restore w->pointm when
18381 saving and restoring the window's buffer (Bug#9006).
18382
183832011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
18384
18385 * editfns.c (Fstring_to_char): Clarify just what is returned
18386 (bug#6576). Text by Eli Zaretskii.
18387
183882011-07-13 Juanma Barranquero <lekktu@gmail.com>
18389
18390 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
18391
183922011-07-13 Eli Zaretskii <eliz@gnu.org>
18393
18394 * buffer.c (mmap_find): Fix a typo.
18395
183962011-07-13 Johan Bockgård <bojohan@gnu.org>
18397
18398 Fix execution of x selection hooks.
18399 * xselect.c (Qx_lost_selection_functions)
18400 (Qx_sent_selection_functions): New vars.
18401 (syms_of_xselect): DEFSYM them.
18402 (x_handle_selection_request): Pass Qx_sent_selection_functions
18403 rather than Vx_sent_selection_functions to Frun_hook_with_args.
18404 (x_handle_selection_clear,x_clear_frame_selections):
18405 Pass Qx_lost_selection_functions rather than
18406 Vx_lost_selection_functions to Frun_hook_with_args.
18407
184082011-07-13 Paul Eggert <eggert@cs.ucla.edu>
18409
18410 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
18411 The old code sometimes used this field without initializing it.
18412
18413 * alloc.c (gc_sweep): Don't read past end of array.
18414 In theory, the old code could also have corrupted Emacs internals,
18415 though it'd be very unlikely.
18416
184172011-07-12 Andreas Schwab <schwab@linux-m68k.org>
18418
18419 * character.c (Fcharacterp): Don't advertise optional ignored
18420 argument. (Bug#4026)
18421
184222011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
18423
18424 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
18425 key" (bug#4257).
18426
18427 * window.c (Fset_window_start): Doc fix (bug#4199).
18428 (Fset_window_hscroll): Ditto.
18429
184302011-07-12 Paul Eggert <eggert@cs.ucla.edu>
18431
18432 Fix minor new problems caught by GCC 4.6.1.
18433 * term.c (init_tty): Remove unused local.
18434 * xsettings.c (store_monospaced_changed): Define this function only
18435 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
18436 not used otherwise.
18437
184382011-07-12 Chong Yidong <cyd@stupidchicken.com>
18439
18440 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
18441
184422011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
18443
18444 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
18445 are the mini-buffer and the echo area (bug#3320).
18446
18447 * term.c (init_tty): Remove support for supdup, c10 and perq
18448 terminals, which are no longer supported (bug#1482).
18449
184502011-07-10 Johan Bockgård <bojohan@gnu.org>
18451
18452 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
18453
184542011-07-10 Jan Djärv <jan.h.d@swipnet.se>
18455
18456 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
18457 for non-popups (Bug#3642).
18458
184592011-07-10 Andreas Schwab <schwab@linux-m68k.org>
18460
18461 * alloc.c (reset_malloc_hooks): Protoize.
18462 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
18463 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
18464 * cm.c (losecursor): Likewise.
18465 * data.c (fmod): Likewise.
18466 * dispnew.c (swap_glyphs_in_rows): Likewise.
18467 * emacs.c (memory_warning_signal): Likewise.
18468 * floatfns.c (float_error): Likewise.
18469 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
18470 (otf_open, font_otf_capability, generate_otf_features)
18471 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
18472 Likewise.
18473 * image.c (pbm_read_file): Likewise.
18474 * indent.c (string_display_width): Likewise.
18475 * intervals.c (check_for_interval, search_for_interval)
18476 (inc_interval_count, count_intervals, root_interval)
18477 (adjust_intervals_for_insertion, make_new_interval): Likewise.
18478 * lread.c (defalias): Likewise.
18479 * ralloc.c (r_alloc_check): Likewise.
18480 * regex.c (set_image_of_range_1, set_image_of_range)
18481 (regex_grow_registers): Likewise.
18482 * sysdep.c (strerror): Likewise.
18483 * termcap.c (valid_filename_p, tprint, main): Likewise.
18484 * tparam.c (main): Likewise.
18485 * unexhp9k800.c (run_time_remap, save_data_space)
18486 (update_file_ptrs, read_header, write_header, calculate_checksum)
18487 (copy_file, copy_rest, display_header): Likewise.
18488 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
18489 Likewise.
18490 * xdisp.c (check_it): Likewise.
18491 * xfaces.c (register_color, unregister_color, unregister_colors):
18492 Likewise.
18493 * xfns.c (print_fontset_result): Likewise.
18494 * xrdb.c (member, fatal, main): Likewise.
18495
184962011-07-10 Paul Eggert <eggert@cs.ucla.edu>
18497
18498 Fix minor problems found by static checking (Bug#9031).
18499 * chartab.c (char_table_set_range, map_sub_char_table):
18500 Remove unused locals.
18501 (uniprop_table): Now static.
18502 * composite.c (_work_char): Remove unused static var.
18503
185042011-07-09 Juanma Barranquero <lekktu@gmail.com>
18505
18506 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
18507
185082011-07-09 Jan Djärv <jan.h.d@swipnet.se>
18509
18510 * gtkutil.c (qttip_cb): Remove code without function.
18511
185122011-07-09 Eli Zaretskii <eliz@gnu.org>
18513
18514 * w32.c (pthread_sigmask): New stub.
18515
185162011-07-08 Paul Eggert <eggert@cs.ucla.edu>
18517
18518 Use pthread_sigmask, not sigprocmask (Bug#9010).
18519 sigprocmask is portable only for single-threaded applications, and
18520 Emacs can be multi-threaded when it uses GTK.
18521 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
18522 (LIBES): Use it.
18523 * callproc.c (Fcall_process):
18524 * process.c (create_process):
18525 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
18526 Use pthread_sigmask, not sigprocmask.
18527
185282011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18529
18530 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
18531 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
18532 wrong (Bug#8591).
18533
185342011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18535
18536 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
18537 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
18538 (xg_hide_tooltip): Fix comment.
18539
18540 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
18541 in registerServicesMenuSendTypes.
18542 (validRequestorForSendType): Don't check ns_return_types.
18543
18544 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
18545 ns_return_type.
18546
185472011-07-08 Jason Rumney <jasonr@gnu.org>
18548
18549 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
18550 SH_SHOW for hidden windows (Bug#5482).
18551
18552 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
18553 frame struct members of non-existent frames (Bug#6284).
18554
185552011-07-08 Jan Djärv <jan.h.d@swipnet.se>
18556
18557 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
18558 variable firstTime not needed on OSX >= 10.6.
18559 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
18560 >= 10.5. Use setKnobProportion, setDoubleValue.
18561
18562 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
18563 (MAC_OS_X_VERSION_10_5): Define if not defined.
18564 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
18565 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
18566 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
18567
18568 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
18569 cString and lossyCString on OSX >= 10.4.
18570
18571 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
18572 sizeToFit on OSX >= 10.2.
18573
18574 * nsimage.m (allocInitFromFile): Don't use deprecated method
18575 bestRepresentationForDevice on OSX >= 10.6.
18576
18577 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
18578 to avoid warning.
18579
18580 * emacs.c: Declare unexec_init_emacs_zone.
18581
18582 * nsgui.h: Fix compiler warning about gnulib redefining verify.
18583
18584 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
18585
18586 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
18587 on svcsMenu (Bug#8842).
18588
18589 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
18590 ns_return_types.
18591 (Fns_list_services): Just return Qnil on 10.6, code not working there.
18592
18593 * nsterm.m (QUTF8_STRING): Declare.
18594 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
18595 (validRequestorForSendType): Return type is (id).
18596 Change indexOfObjectIdenticalTo to indexOfObject.
18597 Check if we have local selection before returning self (Bug#8842).
18598 (writeSelectionToPasteboard): Put local selection into paste board
18599 if we have a local selection (Bug#8842).
18600 (syms_of_nsterm): DEFSYM QUTF8_STRING.
18601
18602 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
18603 (ns_get_local_selection): Declare.
18604
186052011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
18606
18607 * keymap.c (describe_map_tree): Don't insert a double newline at
18608 the end of the buffer (bug#1169) and return whether we inserted
18609 something.
18610
18611 * callint.c (Fcall_interactively): Change "reading args" to
18612 "providing args" to try to clarify what it does (bug#1010).
18613
186142011-07-07 Kenichi Handa <handa@m17n.org>
18615
18616 * composite.c (composition_compute_stop_pos): Ignore a static
18617 composition starting before CHARPOS (Bug#8915).
18618
18619 * xdisp.c (handle_composition_prop): Likewise.
18620
186212011-07-07 Eli Zaretskii <eliz@gnu.org>
18622
18623 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
18624 (Bug#9015)
18625
186262011-07-07 Kenichi Handa <handa@m17n.org>
18627
18628 * character.h (unicode_category_t): New enum type.
18629
18630 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
18631 (Qchar_code_property_table): New variable.
18632 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
18633 (UNIPROP_COMPRESSED_FORM_P): New macros.
18634 (char_table_ascii): Uncompress the compressed values.
18635 (sub_char_table_ref): New arg is_uniprop. Callers changed.
18636 Uncompress the compressed values.
18637 (sub_char_table_ref_and_range): Likewise.
18638 (char_table_ref_and_range): Uncompress the compressed values.
18639 (sub_char_table_set): New arg is_uniprop. Callers changed.
18640 Uncompress the compressed values.
18641 (sub_char_table_set_range): Args changed. Callers changed.
18642 (char_table_set_range): Adjuted for the above change.
18643 (map_sub_char_table): Delete args default_val and parent. Add arg
18644 top. Give decoded values to a Lisp function.
18645 (map_char_table): Adjust for the above change. Give decoded
18646 values to a Lisp function. Gcpro more variables.
18647 (uniprop_table_uncompress)
18648 (uniprop_decode_value_run_length): New functions.
18649 (uniprop_decoder, uniprop_decoder_count): New variables.
18650 (uniprop_get_decoder, uniprop_encode_value_character)
18651 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
18652 New functions.
18653 (uniprop_encoder, uniprop_encoder_count): New variables.
18654 (uniprop_get_encoder, uniprop_table)
18655 (Funicode_property_table_internal, Fget_unicode_property_internal)
18656 (Fput_unicode_property_internal): New functions.
18657 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
18658 Sunicode_property_table_internal, Sget_unicode_property_internal,
18659 and Sput_unicode_property_internal. Defvar_lisp
18660 char-code-property-alist.
18661
18662 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
18663 Vunicode_category_table.
18664
18665 * font.c (font_range): Adjust for the change of
18666 Vunicode_category_table.
18667
186682011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
18669
18670 * m/iris4d.h: Remove file, move contents ...
18671 * s/irix6-5.h: ... here.
18672
186732011-07-06 Paul Eggert <eggert@cs.ucla.edu>
18674
18675 Remove unportable assumption about struct layout (Bug#8884).
18676 * alloc.c (mark_buffer):
18677 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
18678 (clone_per_buffer_values): Don't assume that
18679 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
18680 This isn't true in general, and it's particularly not true
18681 if Emacs is configured with --with-wide-int.
18682 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
18683 New macros, used in the buffer.c change.
18684
186852011-07-05 Jan Djärv <jan.h.d@swipnet.se>
18686
18687 * xsettings.c: Use both GConf and GSettings if both are available.
18688 (store_config_changed_event): Add comment.
18689 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
18690 (store_tool_bar_style_changed): New functions.
18691 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
18692 (struct xsettings): Move font inside HAVE_XFT.
18693 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
18694 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
18695 Move inside HAVE_XFT.
18696 (something_changed_gsettingsCB): Rename from something_changedCB.
18697 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
18698 also.
18699 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
18700 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
18701 (something_changed_gconfCB): Rename from something_changedCB.
18702 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
18703 (parse_settings): Move check for font inside HAVE_XFT.
18704 (read_settings, apply_xft_settings): Add comment.
18705 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
18706 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
18707 call store_font_name_changed.
18708 (xft_settings_event): Add comment.
18709 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
18710 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
18711 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
18712 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
18713 (xsettings_initialize): Call init_gsettings last.
18714 (xsettings_get_system_font, xsettings_get_system_normal_font):
18715 Add comment.
18716
187172011-07-05 Paul Eggert <eggert@cs.ucla.edu>
18718
18719 Random fixes. E.g., (random) never returned negative values.
18720 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
18721 subseconds part to the entropy, as that's a bit more random.
18722 Prefer signed to unsigned, since the signedness doesn't matter and
18723 in general we prefer signed. When given a limit, use a
18724 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
18725 latter isn't right if USE_2_TAGS_FOR_INTS.
18726 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
18727 not 0..VALMASK. Don't discard "excess" bits that random () returns.
18728
187292011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
18730
18731 * textprop.c (text_property_stickiness):
18732 Obey Vtext_property_default_nonsticky.
18733 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
18734 * w32fns.c (syms_of_w32fns):
18735 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
18736
187372011-07-04 Paul Eggert <eggert@cs.ucla.edu>
18738
18739 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
18740 This is more efficient than Ffile_directory_p and avoids a minor race.
18741
187422011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
18743
18744 * buffer.c (Foverlay_put): Say what the return value is
18745 (bug#7835).
18746
18747 * fileio.c (barf_or_query_if_file_exists): Check first if the file
18748 is a directory before asking whether to use the file name
18749 (bug#7564).
18750 (barf_or_query_if_file_exists): Make the "File is a directory"
18751 error be more correct.
18752
18753 * fns.c (Frequire): Remove the mention of the .gz files, since
18754 that's installation-specific, but keep the mention of
18755 `get-load-suffixes'.
18756
187572011-07-04 Paul Eggert <eggert@cs.ucla.edu>
18758
18759 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
18760 Report string overflow if the output is too long.
18761
187622011-07-04 Juanma Barranquero <lekktu@gmail.com>
18763
18764 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
18765 (syms_of_gnutls): Remove duplicate DEFSYM for
18766 Qgnutls_bootprop_verify_hostname_error, an error for
18767 Qgnutls_bootprop_verify_error (which is no longer used).
18768
18769 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
18770 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
18771 Also (re)move comments that are misplaced or no longer relevant.
18772
187732011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
18774
18775 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
18776
187772011-07-03 Chong Yidong <cyd@stupidchicken.com>
18778
18779 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
18780 and background color parameters if they have been changed.
18781
187822011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
18783
18784 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
18785
187862011-07-03 Paul Eggert <eggert@cs.ucla.edu>
18787
18788 * xsettings.c (SYSTEM_FONT): Define only when used.
18789 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
18790
18791 * keymap.c (access_keymap_1): Now static.
18792
187932011-07-02 Chong Yidong <cyd@stupidchicken.com>
18794
18795 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
18796 leave any prefix arg for the up event (Bug#1586).
18797
187982011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
18799
18800 * lread.c (syms_of_lread): Mention single symbols defined by
18801 `defvar' or `defconst' (bug#7154).
18802
18803 * fns.c (Frequire): Mention .el.gz files (bug#7314).
18804 (Frequire): Mention get-load-suffixes.
18805
188062011-07-02 Martin Rudalics <rudalics@gmx.at>
18807
18808 * window.h (window): Remove clone_number slot.
18809 * window.c (Fwindow_clone_number, Fset_window_clone_number):
18810 Remove.
18811 (make_parent_window, make_window, saved_window)
18812 (Fset_window_configuration, save_window_save): Don't deal with
18813 clone numbers.
18814 * buffer.c (Qclone_number): Remove declaration.
18815 (sort_overlays, overlay_strings): Don't deal with clone numbers.
18816
188172011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
18818
18819 Add multiple inheritance to keymaps.
18820 * keymap.c (Fmake_composed_keymap): New function.
18821 (Fset_keymap_parent): Simplify.
18822 (fix_submap_inheritance): Remove.
18823 (access_keymap_1): New function extracted from access_keymap to handle
18824 embedded parents and handle lists of maps.
18825 (access_keymap): Use it.
18826 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
18827 (Fcopy_keymap): Handle embedded parents.
18828 (Fcommand_remapping, define_as_prefix): Simplify.
18829 (Fkey_binding): Simplify.
18830 (syms_of_keymap): Move minibuffer-local-completion-map,
18831 minibuffer-local-filename-completion-map,
18832 minibuffer-local-must-match-map, and
18833 minibuffer-local-filename-must-match-map to Elisp.
18834 (syms_of_keymap): Defsubr make-composed-keymap.
18835 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
18836 (parse_menu_item): Trivial simplification.
18837
188382011-07-01 Glenn Morris <rgm@gnu.org>
18839
18840 * Makefile.in (SETTINGS_LIBS): Fix typo.
18841
188422011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
18843
18844 * coding.c (Fencode_coding_string): Record the last coding system
18845 used, as the function doc string says (bug#8738).
18846
188472011-07-01 Jan Djärv <jan.h.d@swipnet.se>
18848
18849 * xsettings.c (store_monospaced_changed): Take new font as arg and
18850 check for change against current_mono_font.
18851 (EMACS_TYPE_SETTINGS): Remove this and related defines.
18852 (emacs_settings_constructor, emacs_settings_get_property)
18853 (emacs_settings_set_property, emacs_settings_class_init)
18854 (emacs_settings_init, gsettings_obj): Remove.
18855 (something_changedCB): New function for HAVE_GSETTINGS.
18856 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
18857 with value as argument.
18858 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
18859 g_settings_new (Bug#8967). Do not create gsettings_obj.
18860 Remove calls to g_settings_bind. Connect something_changedCB to
18861 "changed".
18862
18863 * xgselect.c: Add defined (HAVE_GSETTINGS).
18864 (xgselect_initialize): Ditto.
18865
18866 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
18867 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
18868 xg_select.
18869
188702011-07-01 Paul Eggert <eggert@cs.ucla.edu>
18871
18872 * eval.c (struct backtrace): Simplify and port the data structure.
18873 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
18874 signed bit field, as this assumption is not portable and it makes
18875 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
18876 "char debug_on_exit : 1" as this is not portable either; instead,
18877 use the portable "unsigned int debug_on_exit : 1". Remove unused
18878 member evalargs. Remove obsolete comments about cc bombing out.
18879
188802011-06-30 Jan Djärv <jan.h.d@swipnet.se>
18881
18882 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
18883 Let HAVE_GSETTINGS override HAVE_GCONF.
18884 (store_monospaced_changed): New function.
18885 (EMACS_SETTINGS): A new type derived from GObject to handle
18886 GSettings notifications.
18887 (emacs_settings_constructor, emacs_settings_get_property)
18888 (emacs_settings_set_property, emacs_settings_class_init):
18889 New functions.
18890 (gsettings_client, gsettings_obj): New variables.
18891 (GSETTINGS_SCHEMA): New define.
18892 (something_changedCB): Call store_monospaced_changed.
18893 (init_gsettings): New function.
18894 (xsettings_initialize): Call init_gsettings.
18895 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
18896 to NULL.
18897
18898 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
18899 GCONF_CFLAGS/LIBS.
18900
189012011-06-29 Martin Rudalics <rudalics@gmx.at>
18902
18903 * window.c (resize_root_window, grow_mini_window)
18904 (shrink_mini_window): Rename Qresize_root_window to
18905 Qwindow_resize_root_window and Qresize_root_window_vertically to
18906 Qwindow_resize_root_window_vertically.
18907
189082011-06-28 Paul Eggert <eggert@cs.ucla.edu>
18909
18910 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
18911
189122011-06-27 Juanma Barranquero <lekktu@gmail.com>
18913
18914 * makefile.w32-in: Redesign dependencies so they reflect more
18915 clearly which files are directly included by each source file,
18916 and not through other includes.
18917
189182011-06-27 Martin Rudalics <rudalics@gmx.at>
18919
18920 * buffer.c (Qclone_number): Declare static and DEFSYM it.
18921 (sort_overlays, overlay_strings): When an overlay's clone number
18922 matches the window's clone number process the overlay even if
18923 the overlay's window property doesn't match the current window.
18924
18925 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
18926 (Fwindow_hchild): Rename to Fwindow_left_child.
18927 (Fwindow_next): Rename to Fwindow_next_sibling.
18928 (Fwindow_prev): Rename to Fwindow_prev_sibling.
18929 (resize_window_check): Rename to window_resize_check.
18930 (resize_window_apply): Rename to window_resize_apply.
18931 (Fresize_window_apply): Rename to Fwindow_resize_apply.
18932 (Fdelete_other_windows_internal, resize_frame_windows)
18933 (Fsplit_window_internal, Fdelete_window_internal)
18934 (grow_mini_window, shrink_mini_window)
18935 (Fresize_mini_window_internal): Fix callers accordingly.
18936
189372011-06-26 Jan Djärv <jan.h.d@swipnet.se>
18938
18939 * emacsgtkfixed.h: State that this is only used with Gtk+3.
18940 (emacs_fixed_set_min_size): Remove.
18941 (emacs_fixed_new): Take frame as argument.
18942
18943 * emacsgtkfixed.c: State that this is only used with Gtk+3.
18944 (_EmacsFixedPrivate): Remove minwidth/height.
18945 Add struct frame *f.
18946 (emacs_fixed_init): Initialize priv->f.
18947 (get_parent_class, emacs_fixed_set_min_size): Remove.
18948 (emacs_fixed_new): Set priv->f to argument.
18949 (emacs_fixed_get_preferred_width)
18950 (emacs_fixed_get_preferred_height): Use min_width/height from
18951 frames size_hint to set minimum and natural (Bug#8919).
18952 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
18953 and use min_width/height from frames size_hint to set
18954 min_width/height (Bug#8919).
18955
18956 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
18957 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
18958 Fix indentation.
18959
189602011-06-26 Eli Zaretskii <eliz@gnu.org>
18961
18962 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
18963 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
18964 called at ZV.
18965
189662011-06-26 Chong Yidong <cyd@stupidchicken.com>
18967
18968 * process.c (wait_reading_process_output): Bypass select if
18969 waiting for a cell while ignoring keyboard input, and input is
18970 pending. Suggested by Jan Djärv (Bug#8869).
18971
189722011-06-25 Paul Eggert <eggert@cs.ucla.edu>
18973
18974 Use gnulib's dup2 module instead of rolling our own.
18975 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
18976
189772011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
18978
18979 * dispnew.c (scrolling_window): Before scrolling, turn off a
18980 mouse-highlight in the window being scrolled.
18981
189822011-06-24 Juanma Barranquero <lekktu@gmail.com>
18983
18984 Move DEFSYM to lisp.h and use everywhere.
18985
18986 * character.h (DEFSYM): Move declaration...
18987 * lisp.h (DEFSYM): ...here.
18988
18989 * gnutls.c:
18990 * minibuf.c:
18991 * w32menu.c:
18992 * w32proc.c:
18993 * w32select.c: Don't include character.h.
18994
18995 * alloc.c (syms_of_alloc):
18996 * buffer.c (syms_of_buffer):
18997 * bytecode.c (syms_of_bytecode):
18998 * callint.c (syms_of_callint):
18999 * casefiddle.c (syms_of_casefiddle):
19000 * casetab.c (init_casetab_once):
19001 * category.c (init_category_once, syms_of_category):
19002 * ccl.c (syms_of_ccl):
19003 * cmds.c (syms_of_cmds):
19004 * composite.c (syms_of_composite):
19005 * dbusbind.c (syms_of_dbusbind):
19006 * dired.c (syms_of_dired):
19007 * dispnew.c (syms_of_display):
19008 * doc.c (syms_of_doc):
19009 * editfns.c (syms_of_editfns):
19010 * emacs.c (syms_of_emacs):
19011 * eval.c (syms_of_eval):
19012 * fileio.c (syms_of_fileio):
19013 * fns.c (syms_of_fns):
19014 * frame.c (syms_of_frame):
19015 * fringe.c (syms_of_fringe):
19016 * insdel.c (syms_of_insdel):
19017 * keymap.c (syms_of_keymap):
19018 * lread.c (init_obarray, syms_of_lread):
19019 * macros.c (syms_of_macros):
19020 * msdos.c (syms_of_msdos):
19021 * print.c (syms_of_print):
19022 * process.c (syms_of_process):
19023 * search.c (syms_of_search):
19024 * sound.c (syms_of_sound):
19025 * syntax.c (init_syntax_once, syms_of_syntax):
19026 * terminal.c (syms_of_terminal):
19027 * textprop.c (syms_of_textprop):
19028 * undo.c (syms_of_undo):
19029 * w32.c (globals_of_w32):
19030 * window.c (syms_of_window):
19031 * xdisp.c (syms_of_xdisp):
19032 * xfaces.c (syms_of_xfaces):
19033 * xfns.c (syms_of_xfns):
19034 * xmenu.c (syms_of_xmenu):
19035 * xsettings.c (syms_of_xsettings):
19036 * xterm.c (syms_of_xterm): Use DEFSYM.
19037
190382011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
19039
19040 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
19041
190422011-06-23 Paul Eggert <eggert@cs.ucla.edu>
19043
19044 Integer and buffer overflow fixes (Bug#8873).
19045
19046 * print.c (printchar, strout): Check for string overflow.
19047 (PRINTPREPARE, printchar, strout):
19048 Don't set size unless allocation succeeds.
19049
19050 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
19051 for sizes. Check for string overflow more accurately.
19052 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
19053
19054 * macros.c: Integer and buffer overflow fixes.
19055 * keyboard.h (struct keyboard.kbd_macro_bufsize):
19056 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
19057 Use ptrdiff_t, not int, for sizes.
19058 Don't increment bufsize until after realloc succeeds.
19059 Check for size-calculation overflow.
19060 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
19061
19062 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
19063
19064 * lread.c: Integer overflow fixes.
19065 (read_integer): Radix is now EMACS_INT, not int,
19066 to improve quality of diagnostics for out-of-range radices.
19067 Calculate buffer size correctly for out-of-range radices.
19068 (read1): Check for integer overflow in radices, and in
19069 read-circle numbers.
19070 (read_escape): Avoid int overflow.
19071 (Fload, openp, read_buffer_size, read1)
19072 (substitute_object_recurse, read_vector, read_list, map_obarray):
19073 Use ptrdiff_t, not int, for sizes.
19074 (read1): Use EMACS_INT, not int, for sizes.
19075 Check for size overflow.
19076
19077 * image.c (cache_image): Check for size arithmetic overflow.
19078
19079 * lread.c: Integer overflow issues.
19080 (saved_doc_string_size, saved_doc_string_length)
19081 (prev_saved_doc_string_size, prev_saved_doc_string_length):
19082 Now ptrdiff_t, not int.
19083 (read1): Don't assume doc string length fits in int. Check for
19084 out-of-range doc string lengths.
19085 (read_list): Don't assume file position fits in int.
19086 (read_escape): Check for hex character overflow.
19087
190882011-06-22 Leo Liu <sdl.web@gmail.com>
19089
19090 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
19091 Move to minibuffer.el.
19092
190932011-06-22 Paul Eggert <eggert@cs.ucla.edu>
19094
19095 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
19096 The following patches are for when GLYPH_DEBUG && !XASSERT.
19097 * dispextern.h (trace_redisplay_p, dump_glyph_string):
19098 * dispnew.c (flush_stdout):
19099 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
19100 Mark as externally visible.
19101 * dispnew.c (check_window_matrix_pointers): Now static.
19102 * dispnew.c (window_to_frame_vpos):
19103 * xfns.c (unwind_create_frame):
19104 * xterm.c (x_check_font): Remove unused local.
19105 * scroll.c (CHECK_BOUNDS):
19106 * xfaces.c (cache_fache): Rename local to avoid shadowing.
19107 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
19108 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
19109 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
19110 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
19111 Now static.
19112 (debug_method_add): Use va_list and vsprintf rather than relying
19113 on undefined behavior with wrong number of arguments.
19114 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
19115 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
19116 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
19117 since we're not interested in debugging glyphs with old libraries.
19118 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
19119 GCC 4.6.0's static checking.
19120
191212011-06-22 Paul Eggert <eggert@cs.ucla.edu>
19122
19123 Integer overflow and signedness fixes (Bug#8873).
19124 A few related buffer overrun fixes, too.
19125
19126 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
19127
19128 * dispextern.h (struct face.stipple):
19129 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
19130 (x_bitmap_mask, x_allocate_bitmap_record)
19131 (x_create_bitmap_from_data, x_create_bitmap_from_file)
19132 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
19133 (x_create_bitmap_from_xpm_data):
19134 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
19135 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
19136 (.bitmaps_last):
19137 * xfaces.c (load_pixmap):
19138 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
19139 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
19140 (.bitmaps_last, struct x_output.icon_bitmap):
19141 Use ptrdiff_t, not int, for bitmap indexes.
19142 (x_allocate_bitmap_record): Check for size overflow.
19143 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
19144
19145 Use ptrdiff_t, not int, for overlay counts.
19146 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
19147 * editfns.c (overlays_around, get_pos_property):
19148 * textprop.c (get_char_property_and_overlay):
19149 * xdisp.c (next_overlay_change, note_mouse_highlight):
19150 * xfaces.c (face_at_buffer_position):
19151 * buffer.c (OVERLAY_COUNT_MAX): New macro.
19152 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
19153 (Fnext_overlay_change, Fprevious_overlay_change)
19154 (mouse_face_overlay_overlaps, Foverlays_in):
19155 Use ptrdiff_t, not int, for sizes.
19156 (overlays_at, overlays_in): Check for size-calculation overflow.
19157
19158 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
19159
19160 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
19161 (x_session_initialize): Do not assume string length fits in int.
19162
19163 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
19164 This is unlikely, but can occur if DPI is outlandish.
19165
19166 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
19167 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
19168
19169 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
19170 * xrdb.c (magic_file_p, search_magic_path):
19171 Omit last arg SUFFIX; it was always 0. All callers changed.
19172 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
19173
19174 * xfont.c (xfont_match): Avoid need for strlen.
19175
19176 * xfns.c: Don't assume strlen fits in int.
19177 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
19178
19179 * xdisp.c (message_log_check_duplicate): Return intmax_t,
19180 not unsigned long, as we prefer signed integers. All callers changed.
19181 Detect integer overflow in repeat count.
19182 (message_dolog): Don't assume print length fits in 39 bytes.
19183 (display_mode_element): Don't assume strlen fits in int.
19184
19185 * termcap.c: Don't assume sizes fit in int and never overflow.
19186 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
19187 (gobble_line): Check for size-calculation overflow.
19188
19189 * minibuf.c (Fread_buffer):
19190 * lread.c (intern, intern_c_string):
19191 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
19192 Don't assume string length fits in int.
19193
19194 * keyboard.c (parse_tool_bar_item):
19195 * gtkutil.c (style_changed_cb): Avoid need for strlen.
19196
19197 * font.c: Don't assume string length fits in int.
19198 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
19199 Use ptrdiff_t, not int.
19200 (font_intern_prop): Don't assume string length fits in int.
19201 Don't assume integer property fits in fixnum.
19202 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
19203
19204 * filelock.c: Fix some buffer overrun and integer overflow issues.
19205 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
19206 Reformulate so as not to need the command string.
19207 Invoke gzip -cd rather than gunzip, as it's more portable.
19208 (lock_info_type, lock_file_1, lock_file):
19209 Don't assume pid_t and time_t fit in unsigned long.
19210 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
19211 (current_lock_owner): Prefer signed type for sizes.
19212 Use memcpy, not strncpy, where memcpy is what is really wanted.
19213 Don't assume (via atoi) that time_t and pid_t fit in int.
19214 Check for time_t and/or pid_t out of range, e.g., via a network share.
19215 Don't alloca where an auto var works fine.
19216
19217 * fileio.c: Fix some integer overflow issues.
19218 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
19219 Don't assume string length fits in int.
19220 (directory_file_name): Don't assume string length fits in long.
19221 (make_temp_name): Don't assume pid fits in int, or that its print
19222 length is less than 20.
19223
19224 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
19225
19226 * coding.c (make_subsidiaries): Don't assume string length fits in int.
19227
19228 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
19229
19230 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
19231 We prefer signed integers, even for size calculations.
19232
19233 * emacs.c: Don't assume string length fits in 'int'.
19234 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
19235 (main): Don't invoke strlen when not needed.
19236
19237 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
19238 (XD_DEBUG_MESSAGE): Don't waste a byte.
19239
19240 * callproc.c (getenv_internal_1, getenv_internal)
19241 (Fgetenv_internal):
19242 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
19243
19244 * lread.c (invalid_syntax): Omit length argument.
19245 All uses changed. This doesn't fix a bug, but it simplifies the
19246 code away from its former Hollerith-constant appearance, and it's
19247 one less 'int' to worry about when looking at integer-overflow issues.
19248 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
19249
19250 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
19251 This didn't break anything, but it didn't help either.
19252 It's confusing to put a bogus integer in a place where the actual
19253 value does not matter.
19254 (LIST_END_P): Remove unused macro and its bogus comment.
19255 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
19256
19257 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
19258 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
19259 implementation.
19260 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
19261 We prefer signed types, and the value cannot exceed the EMACS_INT
19262 range anyway (because otherwise the length would not be representable).
19263 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
19264 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
19265 This avoids a GCC warning when WIDE_EMACS_INT.
19266
19267 * indent.c (sane_tab_width): New function.
19268 (current_column, scan_for_column, Findent_to, position_indentation)
19269 (compute_motion): Use it. This is just for clarity.
19270 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
19271
19272 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
19273
19274 * lisp.h (lint_assume): New macro.
19275 * composite.c (composition_gstring_put_cache):
19276 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
19277
19278 * editfns.c, insdel.c:
19279 Omit unnecessary forward decls, to simplify future changes.
19280
19281 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
19282
19283 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
19284
19285 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
19286 Use much-faster test for byte-length change.
19287 Don't assume string byte-length fits in 'int'.
19288 Check that character arg fits in 'int'.
19289 (mapcar1): Declare byte as byte, for clarity.
19290
19291 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
19292
19293 * fns.c (concat): Catch string overflow earlier.
19294 Do not rely on integer wraparound.
19295
19296 * dispextern.h (struct it.overlay_strings_charpos)
19297 (struct it.selective): Now EMACS_INT, not int.
19298 * xdisp.c (forward_to_next_line_start)
19299 (back_to_previous_visible_line_start)
19300 (reseat_at_next_visible_line_start, next_element_from_buffer):
19301 Don't arbitrarily truncate the value of 'selective' to int.
19302
19303 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
19304
19305 * composite.c: Don't truncate sizes to 'int'.
19306 (composition_gstring_p, composition_reseat_it)
19307 (composition_adjust_point): Use EMACS_INT, not int.
19308 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
19309 not EMACS_UINT, for indexes.
19310
19311 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
19312
19313 * buffer.c: Include <verify.h>.
19314 (struct sortvec.priority, struct sortstr.priority):
19315 Now EMACS_INT, not int.
19316 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
19317 (struct sortstr.size, record_overlay_string)
19318 (struct sortstrlist.size, struct sortlist.used):
19319 Don't truncate size to int.
19320 (record_overlay_string): Check for size-calculation overflow.
19321 (init_buffer_once): Check at compile-time, not run-time.
19322
193232011-06-22 Jim Meyering <meyering@redhat.com>
19324
19325 Don't leak an XBM-image-sized buffer
19326 * image.c (xbm_load): Free the image buffer after using it.
19327
193282011-06-21 Paul Eggert <eggert@cs.ucla.edu>
19329
19330 Port to Sun C.
19331 * composite.c (find_automatic_composition): Omit needless 'return 0;'
19332 that Sun C diagnosed.
19333 * fns.c (secure_hash): Fix pointer signedness issue.
19334 * intervals.c (static_offset_intervals): New function.
19335 (offset_intervals): Use it.
19336
193372011-06-21 Leo Liu <sdl.web@gmail.com>
19338
19339 * deps.mk (fns.o):
19340 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
19341 sha512.h.
19342
19343 * fns.c (secure_hash): Rename from crypto_hash_function and change
19344 the first arg to accept symbols.
19345 (Fsecure_hash): New primitive.
19346 (syms_of_fns): New symbols.
19347
193482011-06-20 Deniz Dogan <deniz@dogan.se>
19349
19350 * process.c (Fset_process_buffer): Clarify return value in
19351 docstring.
19352
193532011-06-18 Chong Yidong <cyd@stupidchicken.com>
19354
19355 * dispnew.c (add_window_display_history): Use BVAR.
19356
19357 * xdisp.c (debug_method_add): Use BVAR.
19358 (check_window_end, dump_glyph_matrix, dump_glyph)
19359 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
19360
19361 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
19362 Likewise.
19363
19364 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
19365 check till after the cache is created in init_frame_faces.
19366
193672011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
19368
19369 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
19370
193712011-06-16 Paul Eggert <eggert@cs.ucla.edu>
19372
19373 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
19374 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
19375 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
19376
19377 Improve buffer-overflow checking (Bug#8873).
19378 * fileio.c (Finsert_file_contents):
19379 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
19380 Remove the old (too-loose) buffer overflow checks.
19381 They weren't needed, since make_gap checks for buffer overflow.
19382 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
19383 The old code merely checked for Emacs fixnum overflow, and relied
19384 on undefined (wraparound) behavior. The new code avoids undefined
19385 behavior, and also checks for ptrdiff_t and/or size_t overflow.
19386
19387 * editfns.c (Finsert_char): Don't dump core with very negative counts.
19388 Tune. Don't use wider integers than needed. Don't use alloca.
19389 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
19390
19391 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
19392
19393 * insdel.c, lisp.h (buffer_overflow): New function.
19394 (insert_from_buffer_1, replace_range, replace_range_2):
19395 * insdel.c (make_gap_larger):
19396 * editfns.c (Finsert_char):
19397 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
19398
19399 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
19400
194012011-06-15 Paul Eggert <eggert@cs.ucla.edu>
19402
19403 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
19404
19405 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
19406 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
19407
19408 * fileio.c: Don't assume EMACS_INT fits in off_t.
19409 (emacs_lseek): New static function.
19410 (Finsert_file_contents, Fwrite_region): Use it.
19411 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
19412
19413 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
19414
19415 * fns.c: Don't overflow int when computing a list length.
19416 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
19417 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
19418 truncation on 64-bit hosts. Check for QUIT every
19419 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
19420 faster and is responsive enough.
19421 (Flength): Report an error instead of overflowing an integer.
19422 (Fsafe_length): Return a float if the value is not representable
19423 as a fixnum. This shouldn't happen except in contrived situations.
19424 (Fnthcdr, Fsort): Don't assume list length fits in int.
19425 (Fcopy_sequence): Don't assume vector length fits in int.
19426
19427 * alloc.c: Check that resized vectors' lengths fit in fixnums.
19428 (header_size, word_size): New constants.
19429 (allocate_vectorlike): Don't check size overflow here.
19430 (allocate_vector): Check it here instead, since this is the only
19431 caller of allocate_vectorlike that could cause overflow.
19432 Check that the new vector's length is representable as a fixnum.
19433
19434 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
19435 The previous code was bogus. For example, next_almost_prime (32)
19436 returned 39, which is undesirable as it is a multiple of 3; and
19437 next_almost_prime (24) returned 25, which is a multiple of 5 so
19438 why was the code bothering to check for multiples of 7?
19439
19440 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
19441
19442 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
19443
19444 Variadic C functions now count arguments with ptrdiff_t.
19445 This partly undoes my 2011-03-30 change, which replaced int with size_t.
19446 Back then I didn't know that the Emacs coding style prefers signed int.
19447 Also, in the meantime I found a few more instances where arguments
19448 were being counted with int, which may truncate counts on 64-bit
19449 machines, or EMACS_INT, which may be unnecessarily wide.
19450 * lisp.h (struct Lisp_Subr.function.aMANY)
19451 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
19452 Arg counts are now ptrdiff_t, not size_t.
19453 All variadic functions and their callers changed accordingly.
19454 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
19455 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
19456 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
19457 * callint.c (Fcall_interactively): Check arg count for overflow,
19458 to avoid potential buffer overrun. Use signed char, not 'int',
19459 for 'varies' array, so that we needn't bother to check its size
19460 calculation for overflow.
19461 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
19462 * eval.c (apply_lambda):
19463 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
19464 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
19465 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
19466
19467 * callint.c (Fcall_interactively): Don't use index var as event count.
19468
19469 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
19470 * mem-limits.h (SIZE): Remove; no longer used.
19471
19472 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
19473
19474 Remove unnecessary casts.
19475 * xterm.c (x_term_init):
19476 * xfns.c (x_set_border_pixel):
19477 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
19478 These aren't needed now that we assume ANSI C.
19479
19480 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
19481 It's more likely to cause problems (due to unsigned overflow)
19482 than to cure them.
19483
19484 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
19485
19486 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
19487
19488 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
19489
19490 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
19491
19492 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
19493
19494 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
19495
19496 GLYPH_CODE_FACE returns EMACS_INT, not int.
19497 * dispextern.h (merge_faces):
19498 * xfaces.c (merge_faces):
19499 * xdisp.c (get_next_display_element, next_element_from_display_vector):
19500 Don't assume EMACS_INT fits in int.
19501
19502 * character.h (CHAR_VALID_P): Remove unused parameter.
19503 * fontset.c, lisp.h, xdisp.c: All uses changed.
19504
19505 * editfns.c (Ftranslate_region_internal): Omit redundant test.
19506
19507 * fns.c (concat): Minor tuning based on overflow analysis.
19508 This doesn't fix any bugs. Use int to hold character, instead
19509 of constantly refetching from Emacs object. Use XFASTINT, not
19510 XINT, for value known to be a character. Don't bother comparing
19511 a single byte to 0400, as it's always less.
19512
19513 * floatfns.c (Fexpt):
19514 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
19515
19516 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
19517 for characters.
19518
19519 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
19520
19521 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
19522 Without this fix, on a 64-bit host (aset S 0 4294967386) would
19523 incorrectly succeed when S was a string, because 4294967386 was
19524 truncated before it was used.
19525
19526 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
19527 Otherwise, an out-of-range integer could cause undefined behavior
19528 on a 64-bit host.
19529
19530 * composite.c: Use int, not EMACS_INT, for characters.
19531 (fill_gstring_body, composition_compute_stop_pos): Use int, not
19532 EMACS_INT, for values that are known to be in character range.
19533 This doesn't fix any bugs but is the usual style inside Emacs and
19534 may generate better code on 32-bit machines.
19535
19536 Make sure a 64-bit char is never passed to ENCODE_CHAR.
19537 This is for reasons similar to the recent CHAR_STRING fix.
19538 * charset.c (Fencode_char): Check that character arg is actually
19539 a character. Pass an int to ENCODE_CHAR.
19540 * charset.h (ENCODE_CHAR): Verify that the character argument is no
19541 wider than 'int', as a compile-time check to prevent future regressions
19542 in this area.
19543
19544 * character.c (char_string): Remove unnecessary casts.
19545
19546 Make sure a 64-bit char is never passed to CHAR_STRING.
19547 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
19548 by silently ignoring the top 32 bits, allowing some values
19549 that were far too large to be valid characters.
19550 * character.h: Include <verify.h>.
19551 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
19552 arguments are no wider than unsigned, as a compile-time check
19553 to prevent future regressions in this area.
19554 * data.c (Faset):
19555 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
19556 (Fsubst_char_in_region):
19557 * fns.c (concat):
19558 * xdisp.c (decode_mode_spec_coding):
19559 Adjust to CHAR_STRING's new requirement.
19560 * editfns.c (Finsert_char, Fsubst_char_in_region):
19561 * fns.c (concat): Check that character args are actually
19562 characters. Without this test, these functions did the wrong
19563 thing with wildly out-of-range values on 64-bit hosts.
19564
19565 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
19566 These casts should not be needed on 32-bit hosts, either.
19567 * keyboard.c (read_char):
19568 * lread.c (Fload): Remove casts to unsigned.
19569
19570 * lisp.h (UNSIGNED_CMP): New macro.
19571 This fixes comparison bugs on 64-bit hosts.
19572 (ASCII_CHAR_P): Use it.
19573 * casefiddle.c (casify_object):
19574 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
19575 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
19576 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
19577 * dispextern.h (FACE_FROM_ID):
19578 * keyboard.c (read_char): Use UNSIGNED_CMP.
19579
19580 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
19581 not to EMACS_INT, to avoid GCC warning.
19582
19583 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
19584
19585 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
19586 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
19587 isn't needed on 32-bit machines.
19588
19589 * buffer.c (Fgenerate_new_buffer_name):
19590 Use EMACS_INT for count, not int.
19591 (advance_to_char_boundary): Return EMACS_INT, not int.
19592
19593 * data.c (Qcompiled_function): Now static.
19594
19595 * window.c (window_body_lines): Now static.
19596
19597 * image.c (gif_load): Rename local to avoid shadowing.
19598
19599 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
19600 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
19601 * alloc.c (make_save_value): Integer argument is now of type
19602 ptrdiff_t, not int.
19603 (mark_object): Use ptrdiff_t, not int.
19604 * lisp.h (pD): New macro.
19605 * print.c (print_object): Use it.
19606
19607 * alloc.c: Use EMACS_INT, not int, to count objects.
19608 (total_conses, total_markers, total_symbols, total_vector_size)
19609 (total_free_conses, total_free_markers, total_free_symbols)
19610 (total_free_floats, total_floats, total_free_intervals)
19611 (total_intervals, total_strings, total_free_strings):
19612 Now EMACS_INT, not int. All uses changed.
19613 (Fgarbage_collect): Compute overall total using a double, so that
19614 integer overflow is less likely to be a problem. Check for overflow
19615 when converting back to an integer.
19616 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
19617 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
19618 These were 'int' variables that could overflow on 64-bit hosts;
19619 they were never used, so remove them instead of repairing them.
19620 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
19621 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
19622 Previously, this ceilinged at INT_MAX, but that doesn't work on
19623 64-bit machines.
19624 (allocate_pseudovector): Don't use EMACS_INT when int would do.
19625
19626 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
19627 (allocate_vectorlike): Check for ptrdiff_t overflow.
19628 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
19629 when a (possibly-narrower) signed value would do just as well.
19630 We prefer using signed arithmetic, to avoid comparison confusion.
19631
19632 * alloc.c: Catch some string size overflows that we were missing.
19633 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
19634 for convenience in STRING_BYTES_MAX.
19635 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
19636 The definition here is exact; the one in lisp.h was approximate.
19637 (allocate_string_data): Check for string overflow. This catches
19638 some instances we weren't catching before. Also, it catches
19639 size_t overflow on (unusual) hosts where SIZE_MAX <= min
19640 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
19641 and ptrdiff_t and EMACS_INT are both 64 bits.
19642
19643 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
19644 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
19645 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
19646
19647 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
19648
19649 * alloc.c (Fmake_string): Check for out-of-range init.
19650
196512011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
19652
19653 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
19654
196552011-06-14 Jan Djärv <jan.h.d@swipnet.se>
19656
19657 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
19658 xg_get_default_scrollbar_width.
19659
19660 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
19661 (int_gtk_range_get_value): Move to the scroll bar part of the file.
19662 (style_changed_cb): Call update_theme_scrollbar_width and call
19663 x_set_scroll_bar_default_width and xg_frame_set_char_size for
19664 all frames (Bug#8505).
19665 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
19666 Call gtk_window_set_resizable if HAVE_GTK3.
19667 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
19668 and height if HAVE_GTK3 (Bug#8505).
19669 (scroll_bar_width_for_theme): New variable.
19670 (update_theme_scrollbar_width): New function.
19671 (xg_get_default_scrollbar_width): Move code to
19672 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
19673 (xg_initialize): Call update_theme_scrollbar_width.
19674
19675 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
19676
19677 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
19678
196792011-06-12 Martin Rudalics <rudalics@gmx.at>
19680
19681 * frame.c (make_frame): Call other_buffer_safely instead of
19682 other_buffer.
19683
19684 * window.c (temp_output_buffer_show): Call display_buffer with
19685 second argument Vtemp_buffer_show_specifiers and reset latter
19686 immediately after the call.
19687 (Vtemp_buffer_show_specifiers): New variable.
19688 (auto_window_vscroll_p, next_screen_context_lines)
19689 (Vscroll_preserve_screen_position): Remove leading asterisks from
19690 doc-strings.
19691
196922011-06-12 Paul Eggert <eggert@cs.ucla.edu>
19693
19694 Fix minor problems found by GCC 4.6.0 static checking.
19695 * buffer.c (Qclone_number): Remove for now, as it's unused.
19696 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
19697 (record_buffer): Remove unused local.
19698 * frame.c (other_visible_frames, frame_buffer_list): Now static.
19699 (set_frame_buffer_list): Remove; unused.
19700 * frame.h (other_visible_frames): Remove decl.
19701 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
19702 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
19703 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
19704 if HAVE_GPM.
19705 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
19706 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
19707 Define only if HAVE_GPM.
19708 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
19709 (update_hints_inhibit): Remove; never set. All uses removed.
19710 * widgetprv.h (emacsFrameClassRec): Remove decl.
19711 * window.c (delete_deletable_window): Now returns void, since it
19712 wasn't returning anything.
19713 (compare_window_configurations): Remove unused locals.
19714 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
19715 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
19716 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
19717 the same widths as pointers. This follows up on the 2011-05-06 patch.
19718 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
19719 * xterm.h: Likewise.
19720 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
19721
197222011-06-12 Juanma Barranquero <lekktu@gmail.com>
19723
19724 * makefile.w32-in: Update dependencies.
19725 (LISP_H): Add lib/intprops.h.
19726
197272011-06-11 Chong Yidong <cyd@stupidchicken.com>
19728
19729 * image.c (gif_load): Add animation frame delay to the metadata.
19730 (syms_of_image): Use DEFSYM. New symbol `delay'.
19731
197322011-06-11 Martin Rudalics <rudalics@gmx.at>
19733
19734 * window.c (delete_deletable_window): Re-add.
19735 (Fset_window_configuration): Rewrite to handle dead buffers and
19736 consequently deletable windows.
19737 (window_tree, Fwindow_tree): Remove. Supply functionality in
19738 window.el.
19739 (compare_window_configurations): Simplify code.
19740
197412011-06-11 Andreas Schwab <schwab@linux-m68k.org>
19742
19743 * image.c (imagemagick_load_image): Fix type mismatch.
19744 (Fimagemagick_types): Likewise.
19745
19746 * window.h (replace_buffer_in_windows): Declare.
19747
197482011-06-11 Martin Rudalics <rudalics@gmx.at>
19749
19750 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
19751 Qclone_number. Remove external declaration of Qdelete_window.
19752 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
19753 code.
19754 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
19755 Run Qbuffer_list_update_hook if allowed.
19756 (Fother_buffer): Rewrite doc-string. Major rewrite for new
19757 buffer list implementation.
19758 (other_buffer_safely): New function.
19759 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
19760 calls to replace_buffer_in_windows and
19761 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
19762 if allowed.
19763 (record_buffer): Inhibit quitting and rewrite using quittable
19764 functions. Run Qbuffer_list_update_hook if allowed.
19765 (Frecord_buffer, Funrecord_buffer): New functions.
19766 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
19767 Move switch-to-buffer to window.el.
19768 (bury-buffer): Move to window.el.
19769 (Vbuffer_list_update_hook): New variable.
19770
19771 * lisp.h (other_buffer_safely): Add prototype in buffer.c
19772 section.
19773
19774 * window.h (resize_frame_windows): Move up in code.
19775 (Fwindow_frame): Remove EXFUN.
19776 (replace_buffer_in_all_windows): Remove prototype.
19777 (replace_buffer_in_windows_safely): Add prototype.
19778
19779 * window.c: Declare Qdelete_window static again. Move down
19780 declaration of select_count.
19781 (Fnext_window, Fprevious_window): Rewrite doc-strings.
19782 (Fother_window): Move to window.el.
19783 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
19784 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
19785 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
19786 window.el.
19787 (replace_buffer_in_windows): Implement by calling
19788 Qreplace_buffer_in_windows.
19789 (replace_buffer_in_all_windows): Remove with some functionality
19790 moved into replace_buffer_in_windows_safely.
19791 (replace_buffer_in_windows_safely): New function.
19792 (select_window_norecord, select_frame_norecord): Move in front
19793 of run_window_configuration_change_hook. Remove now obsolete
19794 declarations.
19795 (Fset_window_buffer): Rewrite doc-string.
19796 Call Qrecord_window_buffer.
19797 (keys_of_window): Move binding for other-window to window.el.
19798
197992011-06-11 Chong Yidong <cyd@stupidchicken.com>
19800
19801 * dispextern.h (struct image): Replace data member, whose int_val
19802 and ptr_val fields were not used by anything, with a single
19803 lisp_val object.
19804
19805 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
19806 (gif_clear_image, gif_load, imagemagick_load_image)
19807 (gs_clear_image, gs_load): Callers changed.
19808
198092011-06-10 Paul Eggert <eggert@cs.ucla.edu>
19810
19811 * buffer.h: Include <time.h>, for time_t.
19812 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
19813
19814 Fix minor problems found by static checking.
19815
19816 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
19817
19818 Make identifiers static if they are not used in other modules.
19819 * data.c (Qcompiled_function, Qframe, Qvector):
19820 * image.c (QimageMagick, Qsvg):
19821 * minibuf.c (Qmetadata):
19822 * window.c (resize_window_check, resize_root_window): Now static.
19823 * window.h (resize_window_check, resize_root_window): Remove decls.
19824
19825 * window.c (window_deletion_count, delete_deletable_window):
19826 Remove; unused.
19827 (window_body_lines): Now static.
19828 (Fdelete_other_windows_internal): Mark vars as initialized.
19829 Make sure 'resize_failed' is initialized.
19830 (run_window_configuration_change_hook): Rename local to avoid shadowing.
19831 (resize_window_apply): Remove unused local.
19832 * window.h (delete_deletable_window): Remove decl.
19833
19834 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
19835 (imagemagick_load_image): Fix pointer signedness problem by changing
19836 last arg from unsigned char * to char *. All uses changed.
19837 Also, fix a local for similar reasons.
19838 Remove unused locals. Remove locals to avoid shadowing.
19839 (fn_rsvg_handle_free): Remove; unused.
19840 (svg_load, svg_load_image): Fix pointer signedness problem.
19841 (imagemagick_load_image): Don't use garbage pointer image_wand.
19842
19843 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
19844
198452011-06-10 Chong Yidong <cyd@stupidchicken.com>
19846
19847 * image.c (gif_load): Fix omitted cast error introduced by
19848 2011-06-06 change.
19849
198502011-06-10 Martin Rudalics <rudalics@gmx.at>
19851
19852 * window.h (resize_proportionally, orig_total_lines)
19853 (orig_top_line): Remove from window structure.
19854 (set_window_height, set_window_width, change_window_heights)
19855 (Fdelete_window): Remove prototypes.
19856 (resize_frame_windows): Remove duplicate declaration.
19857
198582011-06-10 Eli Zaretskii <eliz@gnu.org>
19859
19860 * window.h (resize_frame_windows, resize_window_check)
19861 (delete_deletable_window, resize_root_window)
19862 (resize_frame_windows): Declare prototypes.
19863
19864 * window.c (resize_window_apply): Make definition be "static" to
19865 match the prototype.
19866
198672011-06-10 Martin Rudalics <rudalics@gmx.at>
19868
19869 * window.c: Remove declarations of Qwindow_size_fixed,
19870 window_min_size_1, window_min_size_2, window_min_size,
19871 size_window, window_fixed_size_p, enlarge_window, delete_window.
19872 Remove static from declaration of Qdelete_window, it's
19873 temporarily needed by Fbury_buffer.
19874 (replace_window): Don't assign orig_top_line and
19875 orig_total_lines.
19876 (Fdelete_window, delete_window): Remove. Window deletion is
19877 handled by window.el.
19878 (window_loop): Remove DELETE_OTHER_WINDOWS case.
19879 Replace Fdelete_window calls with calls to Qdelete_window.
19880 (Fdelete_other_windows): Remove. Deleting other windows is
19881 handled by window.el.
19882 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
19883 handled in window.el.
19884 (window_min_size_2, window_min_size_1, window_min_size): Remove.
19885 Window minimum sizes are handled in window.el.
19886 (shrink_windows, size_window, set_window_height)
19887 (set_window_width, change_window_heights, window_height)
19888 (window_width, CURBEG, CURSIZE, enlarge_window)
19889 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
19890 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
19891 handled in window.el.
19892 (make_dummy_parent): Rename to make_parent_window and give it a
19893 second argument horflag.
19894 (make_window): Don't set resize_proportionally any more.
19895 (Fsplit_window): Remove. Windows are split in window.el.
19896 (save_restore_action, save_restore_orig_size)
19897 (shrink_window_lowest_first, save_restore_orig_size): Remove.
19898 Resize mini windows in window.el.
19899 (grow_mini_window, shrink_mini_window): Implement by calling
19900 Qresize_root_window_vertically, resize_window_check and
19901 resize_window_apply.
19902 (saved_window, Fset_window_configuration, save_window_save):
19903 Do not handle orig_top_line, orig_total_lines, and
19904 resize_proportionally.
19905 (window_min_height, window_min_width): Move to window.el.
19906 (keys_of_window): Move bindings for delete-other-windows,
19907 split-window, delete-window and enlarge-window to window.el.
19908
19909 * buffer.c: Temporarily extern Qdelete_window.
19910 (Fbury_buffer): Temporarily call Qdelete_window instead of
19911 Fdelete_window (Fbury_buffer will move to window.el soon).
19912
19913 * frame.c (set_menu_bar_lines_1): Remove code handling
19914 orig_top_line and orig_total_lines.
19915
19916 * dispnew.c (adjust_frame_glyphs_initially): Don't use
19917 set_window_height but set heights directly.
19918 (change_frame_size_1): Use resize_frame_windows.
19919
19920 * xdisp.c (init_xdisp): Don't use set_window_height but set
19921 heights directly.
19922
19923 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
19924 Use resize_frame_windows instead of change_window_heights and run
19925 run_window_configuration_change_hook.
19926
19927 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
19928 instead of change_window_heights and run
19929 run_window_configuration_change_hook.
19930
199312011-06-09 Martin Rudalics <rudalics@gmx.at>
19932
19933 * window.c (replace_window): Rename second argument REPLACEMENT to
19934 NEW. New third argument SETFLAG. Rewrite.
19935 (delete_window, make_dummy_parent): Call replace_window with
19936 third argument 1.
19937 (window_list_1): Move down in code.
19938 (run_window_configuration_change_hook): Move set_buffer part
19939 before select_frame_norecord part in order to unwind correctly.
19940 Rename count1 to count.
19941 (recombine_windows, delete_deletable_window, resize_root_window)
19942 (Fdelete_other_windows_internal)
19943 (Frun_window_configuration_change_hook, make_parent_window)
19944 (resize_window_check, resize_window_apply, Fresize_window_apply)
19945 (resize_frame_windows, Fsplit_window_internal)
19946 (Fdelete_window_internal, Fresize_mini_window_internal):
19947 New functions.
19948 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
19949
199502011-06-08 Martin Rudalics <rudalics@gmx.at>
19951
19952 * window.h (window): Add some new members to window structure -
19953 normal_lines, normal_cols, new_total, new_normal, clone_number,
19954 splits, nest, prev_buffers, next_buffers.
19955 (WINDOW_TOTAL_SIZE): Move here from window.c.
19956 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
19957
19958 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
19959 Remove.
19960 (make_dummy_parent): Set new members of windows structure.
19961 (make_window): Move down in code. Handle new members of window
19962 structure.
19963 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
19964 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
19965 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
19966 (Fset_window_prev_buffers, Fwindow_next_buffers)
19967 (Fset_window_next_buffers, Fset_window_clone_number):
19968 New functions.
19969 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
19970 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
19971 Doc-string fixes.
19972 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
19973 Argument WINDOW can be now internal window too.
19974 (Fwindow_use_time): Move up in code.
19975 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
19976 Rewrite doc-string.
19977 (Fset_window_configuration, saved_window)
19978 (Fcurrent_window_configuration, save_window_save): Handle new
19979 members of window structure.
19980 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
19981 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
19982 (syms_of_window): New Lisp objects Qrecord_window_buffer,
19983 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
19984 Qget_mru_window, Qresize_root_window,
19985 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
19986 Qauto_buffer_name; staticpro them.
19987
199882011-06-07 Martin Rudalics <rudalics@gmx.at>
19989
19990 * window.c (Fwindow_total_size, Fwindow_left_column)
19991 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
19992 (Fwindow_list_1): New functions.
19993 (window_box_text_cols): Replace with window_body_cols.
19994 (Fwindow_width, Fscroll_left, Fscroll_right):
19995 Use window_body_cols instead of window_box_text_cols.
19996 (delete_window, Fset_window_configuration):
19997 Call delete_all_subwindows with window as argument.
19998 (delete_all_subwindows): Take a window as argument and not a
19999 structure. Rewrite.
20000 (window_loop): Remove handling of GET_LRU_WINDOW and
20001 GET_LARGEST_WINDOW.
20002 (Fget_lru_window, Fget_largest_window): Move to window.el.
20003
20004 * window.h: Extern window_body_cols instead of
20005 window_box_text_cols. delete_all_subwindows now takes a
20006 Lisp_Object as argument.
20007
20008 * indent.c (compute_motion, Fcompute_motion):
20009 Use window_body_cols instead of window_box_text_cols.
20010
20011 * frame.c (delete_frame): Call delete_all_subwindows with root
20012 window as argument.
20013
200142011-06-07 Daniel Colascione <dan.colascione@gmail.com>
20015
20016 * fns.c (Fputhash): Document return value.
20017
200182011-06-06 Chong Yidong <cyd@stupidchicken.com>
20019
20020 * image.c (gif_load): Implement gif89a spec "no disposal" method.
20021
200222011-06-06 Paul Eggert <eggert@cs.ucla.edu>
20023
20024 Cons<->int and similar integer overflow fixes (Bug#8794).
20025
20026 Check for overflow when converting integer to cons and back.
20027 * charset.c (Fdefine_charset_internal, Fdecode_char):
20028 Use cons_to_unsigned to catch overflow.
20029 (Fencode_char): Use INTEGER_TO_CONS.
20030 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
20031 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
20032 * data.c (long_to_cons, cons_to_long): Remove.
20033 (cons_to_unsigned, cons_to_signed): New functions.
20034 These signal an error for invalid or out-of-range values.
20035 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
20036 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
20037 * font.c (Ffont_variation_glyphs):
20038 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
20039 * lisp.h: Include <intprops.h>.
20040 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
20041 (cons_to_signed, cons_to_unsigned): New decls.
20042 (long_to_cons, cons_to_long): Remove decls.
20043 * undo.c (record_first_change): Use INTEGER_TO_CONS.
20044 (Fprimitive_undo): Use CONS_TO_INTEGER.
20045 * xfns.c (Fx_window_property): Likewise.
20046 * xselect.c: Include <limits.h>.
20047 (x_own_selection, selection_data_to_lisp_data):
20048 Use INTEGER_TO_CONS.
20049 (x_handle_selection_request, x_handle_selection_clear)
20050 (x_get_foreign_selection, Fx_disown_selection_internal)
20051 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
20052 (lisp_data_to_selection_data): Use cons_to_unsigned.
20053 (x_fill_property_data): Use cons_to_signed.
20054 Report values out of range.
20055
20056 Check for buffer and string overflow more precisely.
20057 * buffer.h (BUF_BYTES_MAX): New macro.
20058 * lisp.h (STRING_BYTES_MAX): New macro.
20059 * alloc.c (Fmake_string):
20060 * character.c (string_escape_byte8):
20061 * coding.c (coding_alloc_by_realloc):
20062 * doprnt.c (doprnt):
20063 * editfns.c (Fformat):
20064 * eval.c (verror):
20065 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
20066 since they may not be the same number.
20067 * editfns.c (Finsert_char):
20068 * fileio.c (Finsert_file_contents):
20069 Likewise for BUF_BYTES_MAX.
20070
20071 * image.c: Use ptrdiff_t, not int, for sizes.
20072 (slurp_file): Switch from int to ptrdiff_t.
20073 All uses changed.
20074 (slurp_file): Check that file size fits in both size_t (for
20075 malloc) and ptrdiff_t (for sanity and safety).
20076
20077 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
20078 if b->modtime has its maximal value.
20079
20080 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
20081
20082 Don't assume time_t can fit into int.
20083 * buffer.h (struct buffer.modtime): Now time_t, not int.
20084 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
20085 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
20086
20087 Minor fixes for signed vs unsigned integers.
20088 * character.h (MAYBE_UNIFY_CHAR):
20089 * charset.c (maybe_unify_char):
20090 * keyboard.c (read_char, reorder_modifiers):
20091 XINT -> XFASTINT, since the integer must be nonnegative.
20092 * ftfont.c (ftfont_spec_pattern):
20093 * keymap.c (access_keymap, silly_event_symbol_error):
20094 XUINT -> XFASTINT, since the integer must be nonnegative.
20095 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
20096 since it makes no difference and we prefer signed.
20097 * keyboard.c (record_char): Use XUINT when all the neighbors do.
20098 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
20099 nonnegative.
20100
201012011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
20102
20103 * window.h (Fwindow_frame): Declare.
20104
201052011-06-06 Paul Eggert <eggert@cs.ucla.edu>
20106
20107 * alloc.c: Simplify handling of large-request failures (Bug#8800).
20108 (SPARE_MEMORY): Always define.
20109 (LARGE_REQUEST): Remove.
20110 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
20111
201122011-06-06 Martin Rudalics <rudalics@gmx.at>
20113
20114 * lisp.h: Move EXFUNS for Fframe_root_window,
20115 Fframe_first_window and Fset_frame_selected_window to window.h.
20116
20117 * window.h: Move EXFUNS for Fframe_root_window,
20118 Fframe_first_window and Fset_frame_selected_window here from
20119 lisp.h.
20120
20121 * frame.c (Fwindow_frame, Fframe_first_window)
20122 (Fframe_root_window, Fframe_selected_window)
20123 (Fset_frame_selected_window): Move to window.c.
20124 (Factive_minibuffer_window): Move to minibuf.c.
20125 (Fother_visible_frames_p): New function.
20126
20127 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
20128
20129 * window.c (decode_window, decode_any_window): Move up in code.
20130 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
20131 (inhibit_frame_unsplittable): Remove unused variable.
20132 (Fwindow_buffer): Move up and rewrite doc-string.
20133 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
20134 (Fwindow_prev): New functions.
20135 (Fwindow_frame): Move here from frame.c. Accept any window as
20136 argument.
20137 (Fframe_root_window, Fframe_first_window)
20138 (Fframe_selected_window): Move here from frame.c. Accept frame
20139 or arbitrary window as argument. Update doc-strings.
20140 (Fminibuffer_window): Move up in code.
20141 (Fwindow_minibuffer_p): Move up in code and simplify.
20142 (Fset_frame_selected_window): Move here from frame.c.
20143 Marginal rewrite.
20144 (Fselected_window, select_window, Fselect_window): Move up in
20145 code. Minor doc-string fixes.
20146
201472011-06-06 Paul Eggert <eggert@cs.ucla.edu>
20148
20149 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
20150 Do not assume that spare memory exists; that assumption is valid
20151 only if SYSTEM_MALLOC.
20152 (LARGE_REQUEST): New macro, so that the issue of large requests
20153 is separated from the issue of spare memory.
20154
201552011-06-05 Andreas Schwab <schwab@linux-m68k.org>
20156
20157 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
20158 format. (Bug#8806)
20159
20160 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
20161
20162 * xfns.c (x_set_scroll_bar_default_width): Move declarations
20163 before statements.
20164
201652011-06-05 Jan Djärv <jan.h.d@swipnet.se>
20166
20167 * gtkutil.c (xg_get_default_scrollbar_width): New function.
20168
20169 * gtkutil.h: Declare xg_get_default_scrollbar_width.
20170
20171 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
20172 min width by calling x_set_scroll_bar_default_width (Bug#8505).
20173
201742011-06-05 Juanma Barranquero <lekktu@gmail.com>
20175
20176 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
20177
201782011-06-04 Chong Yidong <cyd@stupidchicken.com>
20179
20180 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
20181 (x_clipboard_manager_save): Add return value.
20182 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
20183 New error handlers.
20184 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
20185 Obey Vx_select_enable_clipboard_manager. Catch errors in
20186 x_clipboard_manager_save (Bug#8779).
20187 (Vx_select_enable_clipboard_manager): New variable.
20188 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
20189
201902011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
20191
20192 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
20193
201942011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20195
20196 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
20197 in the current matrix if keep_current_p is non-zero.
20198
201992011-06-04 Eli Zaretskii <eliz@gnu.org>
20200
20201 * bidi.c (bidi_level_of_next_char): Fix last change.
20202
202032011-06-03 Eli Zaretskii <eliz@gnu.org>
20204
20205 Support bidi reordering of text covered by display properties.
20206
20207 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
20208 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
20209 (bidi_cache_search, bidi_cache_iterator_state)
20210 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
20211 (bidi_level_of_next_char, bidi_move_to_visually_next):
20212 Support character positions inside a run of characters covered by a
20213 display string.
20214 (bidi_paragraph_init, bidi_resolve_explicit_1)
20215 (bidi_level_of_next_char): Call bidi_fetch_char and
20216 bidi_fetch_char_advance instead of FETCH_CHAR and
20217 FETCH_CHAR_ADVANCE.
20218 (bidi_init_it): Initialize new members.
20219 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
20220 definitions.
20221 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
20222 instead of using explicit *_CHAR codes.
20223 (bidi_resolve_explicit, bidi_resolve_weak):
20224 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
20225 bidirectional text is supported only in multibyte buffers.
20226 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
20227 it to initialize the frame_window_p member of struct bidi_it.
20228 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
20229 (bidi_resolve_explicit, bidi_resolve_weak)
20230 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
20231 bidi_it->nchars is non-positive.
20232 (bidi_level_of_next_char): Don't try to lookup the cache for the
20233 next/previous character if nothing is cached there yet, or if we
20234 were just reseat()'ed to a new position.
20235
20236 * xdisp.c (set_cursor_from_row): Set start and stop points
20237 according to the row's direction when priming the loop that looks
20238 for the glyph on which to display cursor.
20239 (single_display_spec_intangible_p): Function deleted.
20240 (display_prop_intangible_p): Reimplement to call
20241 handle_display_spec instead of single_display_spec_intangible_p.
20242 Accept 3 additional arguments needed by handle_display_spec.
20243 This fixes incorrect cursor motion across display property with complex
20244 values: lists, `(when COND...)' forms, etc.
20245 (single_display_spec_string_p): Support property values that are
20246 lists with the argument STRING its top-level element.
20247 (display_prop_string_p): Fix the condition for processing a
20248 property that is a list to be consistent with handle_display_spec.
20249 (handle_display_spec): New function, refactored from the
20250 last portion of handle_display_prop.
20251 (compute_display_string_pos): Accept additional argument
20252 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
20253 value of a `display' property is a "replacing spec".
20254 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
20255 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
20256 the display property, but just return a value indicating whether
20257 the display property will replace the characters it covers.
20258 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
20259 frame_window_p members of struct bidi_it.
20260 (compute_display_string_pos, compute_display_string_end):
20261 New functions.
20262 (push_it): Accept second argument POSITION, where pop_it should
20263 jump to continue iteration.
20264 (reseat_1): Initialize bidi_it.disp_pos.
20265
20266 * keyboard.c (adjust_point_for_property): Adjust the call to
20267 display_prop_intangible_p to its new signature.
20268
20269 * dispextern.h (struct bidi_it): New member frame_window_p.
20270 (bidi_init_it): Update prototypes.
20271 (display_prop_intangible_p): Update prototype.
20272 (compute_display_string_pos, compute_display_string_end):
20273 Declare prototypes.
20274 (struct bidi_it): New members nchars and disp_pos. ch_len is now
20275 EMACS_INT.
20276
202772011-06-02 Paul Eggert <eggert@cs.ucla.edu>
20278
20279 Malloc failure behavior now depends on size of allocation.
20280 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
20281 * lisp.h: Change signatures accordingly.
20282 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
20283 All callers changed. (Bug#8762)
20284
20285 * gnutls.c: Use Emacs's memory allocators.
20286 Without this change, the gnutls library would invoke malloc etc.
20287 directly, which causes problems on non-SYNC_INPUT hosts, and which
20288 runs afoul of improving memory_full behavior. (Bug#8761)
20289 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
20290 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
20291 xfree instead of the default malloc, realloc, free.
20292 (Fgnutls_boot): No need to check for memory allocation failure,
20293 since xmalloc does that for us.
20294
20295 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
20296 * category.c (hash_get_category_set):
20297 * ccl.c (ccl_driver):
20298 * charset.c (Fdefine_charset_internal):
20299 * charset.h (struct charset.hash_index):
20300 * composite.c (get_composition_id, gstring_lookup_cache)
20301 (composition_gstring_put_cache):
20302 * composite.h (struct composition.hash_index):
20303 * dispextern.h (struct image.hash):
20304 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
20305 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
20306 (hashfn_equal, hashfn_user_defined, make_hash_table)
20307 (maybe_resize_hash_table, hash_lookup, hash_put)
20308 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
20309 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
20310 (Fsxhash, Fgethash, Fputhash, Fmaphash):
20311 * image.c (make_image, search_image_cache, lookup_image)
20312 (xpm_put_color_table_h):
20313 * lisp.h (struct Lisp_Hash_Table):
20314 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
20315 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
20316 for hashes and hash indexes, instead of 'unsigned' and 'int'.
20317 * alloc.c (allocate_vectorlike):
20318 Check for overflow in vector size calculations.
20319 * ccl.c (ccl_driver):
20320 Check for overflow when converting EMACS_INT to int.
20321 * fns.c, image.c: Remove unnecessary static decls that would otherwise
20322 need to be updated by these changes.
20323 * fns.c (make_hash_table, maybe_resize_hash_table):
20324 Check for integer overflow with large hash tables.
20325 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
20326 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
20327 (SXHASH_REDUCE): New macro.
20328 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
20329 Use it instead of discarding useful hash info with large hash values.
20330 (sxhash_float): New function.
20331 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
20332 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
20333 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
20334 Rewrite to use FIXNUM_BITS, as this simplifies things.
20335 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
20336 Adjust signatures to match updated version of code.
20337 (consing_since_gc): Now EMACS_INT, since a single hash table can
20338 use more than INT_MAX bytes.
20339
203402011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
20341
20342 Make it possible to build with GCC-4.6+ -O2 -flto.
20343
20344 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
20345
203462011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
20347
20348 * minibuf.c (get_minibuffer, read_minibuf_unwind):
20349 Call minibuffer-inactive-mode.
20350
203512011-05-31 Juanma Barranquero <lekktu@gmail.com>
20352
20353 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
20354 Update dependencies.
20355
203562011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20357
20358 * data.c (init_data): Remove code for UTS, this system is not
20359 supported anymore.
20360
203612011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20362
20363 Don't force ./temacs to start in terminal mode.
20364
20365 * frame.c (make_initial_frame): Initialize faces in all cases, not
20366 only when CANNOT_DUMP is defined.
20367 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
20368
203692011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20370
20371 * dispnew.c (add_window_display_history): Use const for the string
20372 pointer. Remove declaration, not needed.
20373
203742011-05-31 Paul Eggert <eggert@cs.ucla.edu>
20375
20376 Use 'inline', not 'INLINE'.
20377 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
20378 * alloc.c, fontset.c (INLINE): Remove.
20379 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
20380 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
20381 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
20382 * gmalloc.c (register_heapinfo): Use inline unconditionally.
20383 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
20384
203852011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
20386
20387 Make it possible to run ./temacs.
20388
20389 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
20390 syms_of_callproc does the same thing. Remove test for
20391 "initialized", do it in the caller.
20392 * emacs.c (main): Avoid calling set_initial_environment when dumping.
20393
203942011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
20395
20396 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
20397 (read_minibuf): Use get_minibuffer.
20398 (syms_of_minibuf): Use DEFSYM.
20399 (Qmetadata): New var.
20400 * data.c (Qbuffer): Don't make it static.
20401 (syms_of_data): Use DEFSYM.
20402
204032011-05-31 Paul Eggert <eggert@cs.ucla.edu>
20404
20405 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
20406 (CCL_CODE_MIN): New macro.
20407
204082011-05-30 Paul Eggert <eggert@cs.ucla.edu>
20409
20410 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
20411
20412 * eval.c (Qdebug): Now static.
20413 * lisp.h (Qdebug): Remove decl. This reverts a part of the
20414 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
20415 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
20416
204172011-05-29 Chong Yidong <cyd@stupidchicken.com>
20418
20419 * image.c: Various fixes to ImageMagick code comments.
20420 (Fimagemagick_types): Doc fix.
20421
204222011-05-29 Paul Eggert <eggert@cs.ucla.edu>
20423
20424 Minor fixes prompted by GCC 4.6.0 warnings.
20425
20426 * xselect.c (converted_selections, conversion_fail_tag): Now static.
20427
20428 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
20429 (x_clipboard_manager_save_all): Move extern decl to ...
20430 * xterm.h: ... here, so that it can be checked for consistency.
20431
204322011-05-29 Chong Yidong <cyd@stupidchicken.com>
20433
20434 * xselect.c (x_clipboard_manager_save_frame)
20435 (x_clipboard_manager_save_all): New functions.
20436 (Fx_clipboard_manager_save): Lisp function deleted.
20437
20438 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
20439 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
20440
20441 * xterm.h: Update prototype.
20442
204432011-05-28 William Xu <william.xwl@gmail.com>
20444
20445 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
20446 exiting (Bug#8239).
20447
204482011-05-28 Jim Meyering <meyering@redhat.com>
20449
20450 Avoid a sign-extension bug in crypto_hash_function.
20451 * fns.c (to_uchar): Define.
20452 (crypto_hash_function): Use it to convert some newly-signed
20453 variables to unsigned, to avoid sign-extension bugs. For example,
20454 without this change, (md5 "truc") would evaluate to
20455 45723a2aff78ff4fff7fff1114760e62 rather than the expected
20456 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
20457 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
20458
204592011-05-27 Paul Eggert <eggert@cs.ucla.edu>
20460
20461 Integer overflow fixes.
20462
20463 * dbusbind.c: Serial number integer overflow fixes.
20464 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
20465 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
20466 to hold a serial number that is too large for a fixnum.
20467 (Fdbus_method_return_internal, Fdbus_method_error_internal):
20468 Check for serial numbers out of range. Decode any serial number
20469 that was so large that it became a float. (Bug#8722)
20470
20471 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
20472 (Fdbus_call_method, Fdbus_call_method_asynchronously):
20473 Use XFASTINT rather than XUINT when numbers are nonnegative.
20474 (xd_append_arg, Fdbus_method_return_internal):
20475 (Fdbus_method_error_internal): Likewise. Also, for unsigned
20476 arguments, check that Lisp number is nonnegative, rather than
20477 silently wrapping negative numbers around. (Bug#8722)
20478 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
20479 (Bug#8722)
20480
20481 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
20482
20483 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
20484
20485 ccl: Add integer overflow checks.
20486 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
20487 (IN_INT_RANGE): New macros.
20488 (ccl_driver): Use them to check for integer overflow when
20489 decoding a CCL program. Many of the new checks are whether XINT (x)
20490 fits in int; it doesn't always, on 64-bit hosts. The new version
20491 doesn't catch all possible integer overflows, but it's an
20492 improvement. (Bug#8719)
20493
20494 * alloc.c (make_event_array): Use XINT, not XUINT.
20495 There's no need for unsigned here.
20496
20497 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
20498 This follows up to the 2011-05-06 change that substituted uintptr_t
20499 for EMACS_INT. This case wasn't caught back then.
20500
20501 Rework Fformat to avoid integer overflow issues.
20502 * editfns.c: Include <float.h> unconditionally, as it's everywhere
20503 now (part of C89). Include <verify.h>.
20504 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
20505 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
20506 (Fformat): Avoid the prepass trying to compute sizes; it was only
20507 approximate and thus did not catch overflow reliably. Instead, walk
20508 through the format just once, formatting and computing sizes as we go,
20509 checking for integer overflow at every step, and allocating a larger
20510 buffer as needed. Keep track separately whether the format is
20511 multibyte. Keep only the most-recently calculated precision, rather
20512 than them all. Record whether each argument has been converted to
20513 string. Use EMACS_INT, not int, for byte and char and arg counts.
20514 Support field widths and precisions larger than INT_MAX. Avoid
20515 sprintf's undefined behavior with conversion specifications such as %#d
20516 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
20517 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
20518 formatting out-of-range floating point numbers with int
20519 formats. (Bug#8668)
20520
20521 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
20522
20523 * data.c: Avoid integer truncation in expressions involving floats.
20524 * data.c: Include <intprops.h>.
20525 (arith_driver): When there's an integer overflow in an expression
20526 involving floating point, convert the integers to floating point
20527 so that the resulting value does not suffer from catastrophic
20528 integer truncation. For example, on a 64-bit host (* 4
20529 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
20530 Do not rely on undefined behavior after integer overflow.
20531
20532 merge count_size_as_multibyte, parse_str_to_multibyte
20533 * character.c, character.h (count_size_as_multibyte):
20534 Rename from parse_str_to_multibyte; all uses changed.
20535 Check for integer overflow.
20536 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
20537 since it's now a duplicate of the other. This is more of
20538 a character than a buffer op, so better that it's in character.c.
20539 * fns.c, print.c: Adjust to above changes.
20540
205412011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
20542
20543 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
20544
205452011-05-27 Paul Eggert <eggert@cs.ucla.edu>
20546
20547 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
20548 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
20549 (x_clipboard_manager_save): Now static.
20550 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
20551
20552 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
20553 (crypto_hash_function): Now static.
20554 Fix pointer signedness problems. Avoid unnecessary initializations.
20555
205562011-05-27 Chong Yidong <cyd@stupidchicken.com>
20557
20558 * termhooks.h (Vselection_alist): Make it terminal-local.
20559
20560 * terminal.c (create_terminal): Initialize it.
20561
20562 * xselect.c: Support for clipboard managers.
20563 (Vselection_alist): Move to termhooks.h as terminal-local var.
20564 (LOCAL_SELECTION): New macro.
20565 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
20566 (symbol_to_x_atom): Remove gratuitous arg.
20567 (x_handle_selection_request, lisp_data_to_selection_data)
20568 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
20569 (x_own_selection, x_get_local_selection, x_convert_selection):
20570 New arg, specifying work frame. Use terminal-local Vselection_alist.
20571 (some_frame_on_display): Delete unused function.
20572 (Fx_own_selection_internal, Fx_get_selection_internal)
20573 (Fx_disown_selection_internal, Fx_selection_owner_p)
20574 (Fx_selection_exists_p): New optional frame arg.
20575 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
20576 (x_handle_selection_clear): Don't treat other terminals with the
20577 same keyboard specially. Use the terminal-local Vselection_alist.
20578 (x_clear_frame_selections): Use Frun_hook_with_args.
20579
20580 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
20581
20582 * xterm.h: Add support for those atoms.
20583
205842011-05-26 Chong Yidong <cyd@stupidchicken.com>
20585
20586 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
20587 (converted_selections, conversion_fail_tag): New global variables.
20588 (x_selection_request_lisp_error): Free the above.
20589 (x_get_local_selection): Remove unnecessary code.
20590 (x_reply_selection_request): Args changed; handle arbitrary array
20591 of converted selections stored in converted_selections.
20592 Separate the XChangeProperty and SelectionNotify steps.
20593 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
20594 (x_convert_selection): New function.
20595 (x_handle_selection_event): Simplify.
20596 (x_get_foreign_selection): Don't ignore incoming requests while
20597 waiting for an answer; this will fail when we implement
20598 SAVE_TARGETS, and seems unnecessary anyway.
20599 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
20600 (Vx_sent_selection_functions): Doc fix.
20601
206022011-05-26 Leo Liu <sdl.web@gmail.com>
20603
20604 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
20605
206062011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20607
20608 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
20609
20610 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
20611 for fringe update if it has periodic bitmap.
20612 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
20613 and fringe_bitmap_periodic_p.
20614
20615 * fringe.c (get_fringe_bitmap_data): New function.
20616 (draw_fringe_bitmap_1, update_window_fringes): Use it.
20617 (update_window_fringes): Record periodicity of fringe bitmap in glyph
20618 row. Mark glyph row for fringe update if periodicity changed.
20619
20620 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
20621 for fringe update unless it has periodic bitmap.
20622
206232011-05-25 Kenichi Handa <handa@m17n.org>
20624
20625 * xdisp.c (get_next_display_element): Set correct it->face_id for
20626 a static composition.
20627
206282011-05-24 Leo Liu <sdl.web@gmail.com>
20629
20630 * deps.mk (fns.o):
20631 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
20632
20633 * fns.c (crypto_hash_function, Fsha1): New function.
20634 (Fmd5): Use crypto_hash_function.
20635 (syms_of_fns): Add Ssha1.
20636
206372011-05-22 Paul Eggert <eggert@cs.ucla.edu>
20638
20639 * gnutls.c: Remove unused macros.
20640 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
20641 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
20642 Remove macros that are defined and never used.
20643 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
20644
206452011-05-22 Chong Yidong <cyd@stupidchicken.com>
20646
20647 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
20648 (Fx_get_selection_internal): Minor cleanup.
20649 (Fx_own_selection_internal): Rename arguments for consistency with
20650 select.el.
20651
206522011-05-22 Paul Eggert <eggert@cs.ucla.edu>
20653
20654 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
20655
206562011-05-22 Chong Yidong <cyd@stupidchicken.com>
20657
20658 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
20659
206602011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20661
20662 * dispnew.c (scrolling_window): Don't exclude the case that the
20663 last enabled row in the desired matrix touches the bottom boundary.
20664
206652011-05-21 Glenn Morris <rgm@gnu.org>
20666
20667 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
20668 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
20669 and add some more files.
20670
206712011-05-20 Eli Zaretskii <eliz@gnu.org>
20672
20673 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
20674 report_file_error introduced by the change from 2011-05-07.
20675
206762011-05-20 Paul Eggert <eggert@cs.ucla.edu>
20677
20678 * systime.h (Time): Define only if emacs is defined.
20679 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
20680 where the include path doesn't have X11/X.h by default. See
20681 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
20682
206832011-05-20 Kenichi Handa <handa@m17n.org>
20684
20685 * composite.c (find_automatic_composition): Fix previous change.
20686
206872011-05-20 Glenn Morris <rgm@gnu.org>
20688
20689 * lisp.mk: New file, split from Makefile.in.
20690 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
20691 (shortlisp): Remove.
20692 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
20693
206942011-05-19 Glenn Morris <rgm@gnu.org>
20695
20696 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
20697 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
20698 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
20699 (lisp): Set the order to that of loadup.el.
20700 (shortlisp): Make it a copy of $lisp.
20701 (SOME_MACHINE_LISP): Remove.
20702 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
20703 Use just $shortlisp, not $SOME_MACHINE_LISP too.
20704
207052011-05-18 Kenichi Handa <handa@m17n.org>
20706
20707 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
20708 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
20709 (find_automatic_composition): Mostly rewrite for efficiency.
20710
207112011-05-18 Juanma Barranquero <lekktu@gmail.com>
20712
20713 * makefile.w32-in: Update dependencies.
20714
207152011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
20716
20717 * menu.c: Include limits.h (fixes the MS-Windows build broken by
20718 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
20719
207202011-05-18 Paul Eggert <eggert@cs.ucla.edu>
20721
20722 Fix some integer overflow issues, such as string length overflow.
20723
20724 * insdel.c (count_size_as_multibyte): Check for string overflow.
20725
20726 * character.c (lisp_string_width): Check for string overflow.
20727 Use EMACS_INT, not int, for string indexes and lengths; in
20728 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
20729 the resulting string length overflows an EMACS_INT; instead,
20730 report a string overflow if no precision given. When checking for
20731 precision exhaustion, use a check that cannot possibly have
20732 integer overflow. (Bug#8675)
20733 * character.h (lisp_string_width): Adjust to new signature.
20734
20735 * alloc.c (string_overflow): New function.
20736 (Fmake_string): Use it. This doesn't change behavior, but saves
20737 a few bytes and will simplify future changes.
20738 * character.c (string_escape_byte8): Likewise.
20739 * lisp.h (string_overflow): New decl.
20740
20741 Fixups, following up to the user-interface timestamp change.
20742 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
20743 for UI timestamps, instead of unsigned long.
20744 * msdos.c (mouse_get_pos): Likewise.
20745 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
20746 * w32gui.h (Time): Define by including "systime.h" rather than by
20747 declaring it ourselves. (Bug#8664)
20748
20749 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
20750 * image.c (clear_image_cache): Likewise.
20751
20752 * term.c (term_mouse_position): Don't assume time_t wraparound.
20753
20754 Be more systematic about user-interface timestamps.
20755 Before, the code sometimes used 'Time', sometimes 'unsigned long',
20756 and sometimes 'EMACS_UINT', to represent these timestamps.
20757 This change causes it to use 'Time' uniformly, as that's what X uses.
20758 This makes the code easier to follow, and makes it easier to catch
20759 integer overflow bugs such as Bug#8664.
20760 * frame.c (Fmouse_position, Fmouse_pixel_position):
20761 Use Time, not unsigned long, for user-interface timestamps.
20762 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
20763 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
20764 * keyboard.h (last_event_timestamp): Likewise.
20765 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
20766 * menu.h (xmenu_show): Likewise.
20767 * term.c (term_mouse_position): Likewise.
20768 * termhooks.h (struct input_event.timestamp): Likewise.
20769 (struct terminal.mouse_position_hook): Likewise.
20770 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
20771 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
20772 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
20773 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
20774 what it was before.
20775 * menu.h, termhooks.h: Include "systime.h", for Time.
20776
20777 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
20778 Don't assume that the difference between two unsigned long values
20779 can fit into an integer. At this point, we know button_down_time
20780 <= event->timestamp, so the difference must be nonnegative, so
20781 there's no need to cast the result if double-click-time is
20782 nonnegative, as it should be; check that it's nonnegative, just in
20783 case. This bug is triggered when events are more than 2**31 ms
20784 apart (about 25 days). (Bug#8664)
20785
20786 * xselect.c (last_event_timestamp): Remove duplicate decl.
20787 (x_own_selection): Remove needless cast to unsigned long.
20788
20789 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
20790 that always fit in int. Use a sentinel instead of a counter, to
20791 avoid a temp and to allay GCC's concerns about possible int overflow.
20792 * frame.h (struct frame): Use int for menu_bar_items_used
20793 instead of EMACS_INT, since it always fits in int.
20794
20795 * menu.c (grow_menu_items): Check for int overflow.
20796
20797 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
20798
20799 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
20800 Before, the code was not consistent. These values cannot exceed
20801 2**31 - 1 so there's no need to make them unsigned.
20802 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
20803 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
20804 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
20805 as modifiers.
20806 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
20807
20808 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
20809 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
20810 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
20811 presumably because the widths might not match.
20812
20813 * window.c (size_window): Avoid needless test at loop start.
20814
208152011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
20816
20817 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
20818
208192011-05-12 Drew Adams <drew.adams@oracle.com>
20820
20821 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
20822
208232011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
20824
20825 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
20826 `width' to `bar_area_x' and `bar_area_width', respectively.
20827 (x_scroll_run): Take account of fringe background extension.
20828
20829 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
20830 Rename local vars `left' and `width' to `bar_area_x' and
20831 `bar_area_width', respectively.
20832 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
20833 background extension.
20834
208352011-05-10 Jim Meyering <meyering@redhat.com>
20836
20837 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
20838
208392011-05-10 Juanma Barranquero <lekktu@gmail.com>
20840
20841 * image.c (Finit_image_library): Return t for built-in image types,
20842 like pbm and xbm. (Bug#8640)
20843
208442011-05-09 Andreas Schwab <schwab@linux-m68k.org>
20845
20846 * w32menu.c (set_frame_menubar): Fix submenu allocation.
20847
208482011-05-07 Eli Zaretskii <eliz@gnu.org>
20849
20850 * w32console.c (Fset_screen_color): Doc fix.
20851 (Fget_screen_color): New function.
20852 (syms_of_ntterm): Defsubr it.
20853
20854 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
20855 unlink the temporary file if Fcall_process didn't create it in the
20856 first place.
20857 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
20858 child process will be redirected to a file specified with `:file'.
20859 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
20860 cue to call_process_cleanup not to close that handle.
20861
208622011-05-07 Ben Key <bkey76@gmail.com>
20863
20864 * makefile.w32-in: The bootstrap-temacs rule now makes use of
20865 one of two shell specific rules, either bootstrap-temacs-CMD or
20866 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
20867 to the previous implementation of the bootstrap-temacs rule.
20868 The bootstrap-temacs-CMD rule is similar to the previous
20869 implementation of the bootstrap-temacs rule except that it
20870 makes use of the ESC_CFLAGS variable instead of the CFLAGS
20871 variable.
20872
20873 These changes, along with some changes to nt/configure.bat,
20874 nt/gmake.defs, and nt/nmake.defs, are required to extend my
20875 earlier fix to add support for --cflags and --ldflags options
20876 that include quotes so that it works whether make uses cmd or
20877 sh as the shell.
20878
208792011-05-06 Michael Albinus <michael.albinus@gmx.de>
20880
20881 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
20882 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
20883 is a constant.
20884 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
20885 a string. Handle both cases.
20886 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
20887 (Fdbus_register_method): Use Qinvalid_function.
20888
208892011-05-06 Juanma Barranquero <lekktu@gmail.com>
20890
20891 * makefile.w32-in: Update dependencies.
20892 (LISP_H): Add inttypes.h and stdin.h.
20893 (PROCESS_H): Add unistd.h.
20894
208952011-05-06 Eli Zaretskii <eliz@gnu.org>
20896
20897 * lread.c: Include limits.h (fixes the MS-Windows build broken by
20898 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
20899
209002011-05-06 Paul Eggert <eggert@cs.ucla.edu>
20901
20902 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
20903
20904 * term.c (vfatal): Remove stray call to va_end.
20905 It's not needed and the C Standard doesn't allow it here anyway.
20906
20907 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
20908 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
20909
20910 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
20911 bytes.
20912
20913 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
20914
20915 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
20916
20917 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
20918
20919 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
20920
20921 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
20922
20923 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
20924 * charset.c (Fdefine_charset_internal): Don't initialize
20925 charset.code_space[15]. The value was garbage, on hosts with
20926 32-bit int (Bug#8600).
20927
20928 * lread.c (read_integer): Be more consistent with string-to-number.
20929 Use string_to_number to do the actual conversion; this avoids
20930 rounding errors and fixes some other screwups. Without this fix,
20931 for example, #x1fffffffffffffff was misread as -2305843009213693952.
20932 (digit_to_number): Move earlier, for benefit of read_integer.
20933 Return -1 if the digit is out of range for the base, -2 if it is
20934 not a digit in any supported base. (Bug#8602)
20935
20936 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
20937
20938 * dispnew.c (scrolling_window): Return 1 if we scrolled,
20939 to match comment at start of function. This also removes a
20940 GCC warning about overflow in a 32+64-bit port.
20941
20942 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
20943
20944 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
20945 Reported by Stefan Monnier in
20946 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
20947 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
20948 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
20949
20950 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
20951 (EMACS_UINTPTR): Likewise, with uintptr_t.
20952
20953 * lisp.h: Prefer 64-bit EMACS_INT if available.
20954 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
20955 on 32-bit hosts that have 64-bit int, so that they can access
20956 large files.
20957 However, temporarily disable this change unless the temporary
20958 symbol WIDE_EMACS_INT is defined.
20959
20960 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
20961
20962 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
20963 This removes an assumption that EMACS_INT and long are the same
20964 width as pointers. The assumption is true for Emacs porting targets
20965 now, but we want to make other targets possible.
20966 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
20967 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
20968 In the rest of the code, change types of integers that hold casted
20969 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
20970 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
20971 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
20972 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
20973 No need to cast type when ORing.
20974 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
20975 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
20976 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
20977 assume EMACS_INT is the same width as char *.
20978 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
20979 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
20980 Remove no-longer-needed casts.
20981 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
20982 (xg_tool_bar_help_callback, xg_make_tool_item):
20983 Use EMACS_INTPTR to hold an integer
20984 that will be cast to void *; this can avoid a GCC warning
20985 if EMACS_INT is not the same width as void *.
20986 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
20987 * xdisp.c (display_echo_area_1, resize_mini_window_1):
20988 (current_message_1, set_message_1):
20989 Use a local to convert to proper width without a cast.
20990 * xmenu.c (dialog_selection_callback): Likewise.
20991
20992 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
20993 Also, don't assume VALBITS / RAND_BITS is less than 5,
20994 and don't rely on undefined behavior when shifting a 1 left into
20995 the sign bit.
20996 * lisp.h (get_random): Change signature to match.
20997
20998 * lread.c (hash_string): Use size_t, not int, for hash computation.
20999 Normally we prefer signed values; but hashing is special, because
21000 it's better to use unsigned division on hash table sizes so that
21001 the remainder is nonnegative. Also, size_t is the natural width
21002 for hashing into memory. The previous code used 'int', which doesn't
21003 retain enough info to hash well into very large tables.
21004 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
21005
21006 * dbusbind.c: Don't possibly lose pointer info when converting.
21007 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
21008 Use XPNTR rather than XHASH, so that the high-order bits of
21009 the pointer aren't lost when converting through void *.
21010
21011 * eval.c (Fautoload): Don't double-shift a pointer.
21012
21013 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
21014
210152011-05-06 Juanma Barranquero <lekktu@gmail.com>
21016
21017 * gnutls.c (DEF_GNUTLS_FN):
21018 * image.c (DEF_IMGLIB_FN): Make function pointers static.
21019
210202011-05-05 Andreas Schwab <schwab@linux-m68k.org>
21021
21022 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
21023 marker. (Bug#8610)
21024
210252011-05-05 Eli Zaretskii <eliz@gnu.org>
21026
21027 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
21028 New version that can reserve upto 2GB of heap space.
21029
210302011-05-05 Chong Yidong <cyd@stupidchicken.com>
21031
21032 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
21033
210342011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
21035
21036 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
21037 `gnutls_certificate_set_x509_key_file'.
21038
210392011-05-05 Juanma Barranquero <lekktu@gmail.com>
21040
21041 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
21042 Update dependencies.
21043
210442011-05-04 Juanma Barranquero <lekktu@gmail.com>
21045
21046 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
21047 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
21048 Remove unused parameter `fildes'.
21049 * process.c (read_process_output, send_process): Don't pass it.
21050
210512011-05-04 Juanma Barranquero <lekktu@gmail.com>
21052
21053 Fix previous change: the library cache is defined in w32.c.
21054 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
21055 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
21056
210572011-05-04 Juanma Barranquero <lekktu@gmail.com>
21058
21059 Implement dynamic loading of GnuTLS on Windows.
21060
21061 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
21062 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
21063 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
21064 Declare.
21065
21066 * gnutls.c (Qgnutls_dll): Define.
21067 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
21068 (gnutls_*): Declare function pointers.
21069 (init_gnutls_functions): New function to initialize function pointers.
21070 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
21071 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
21072 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
21073 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
21074 (emacs_gnutls_write, emacs_gnutls_read)
21075 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
21076 (Fgnutls_available_p): New function.
21077 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
21078 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
21079 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
21080
21081 * image.c: Include w32.h.
21082 (Vimage_type_cache): Delete.
21083 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
21084 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
21085 (w32_delayed_load): Move to w32.c.
21086
21087 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
21088
21089 * w32.c (QCloaded_from, Vlibrary_cache): Define.
21090 (w32_delayed_load): Move from image.c. When loading a library, record
21091 its filename in the :loaded-from property of the library id.
21092 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
21093 Initialize and staticpro them.
21094 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
21095
21096 * process.c: Include lisp.h before w32.h, not after.
21097 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
21098 instead of gnutls_record_check_pending.
21099
21100 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
21101
211022011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
21103
21104 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
21105 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
21106 as passed in.
21107
211082011-05-03 Jan Djärv <jan.h.d@swipnet.se>
21109
21110 * xterm.c (x_set_frame_alpha): Do not set property on anything
21111 else than FRAME_X_OUTER_WINDOW (Bug#8608).
21112
211132011-05-02 Juanma Barranquero <lekktu@gmail.com>
21114
21115 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
21116
211172011-05-02 Juanma Barranquero <lekktu@gmail.com>
21118
21119 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
21120 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
21121 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
21122 (gnutls_global_initialized, Qgnutls_bootprop_priority)
21123 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
21124 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
21125 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
21126 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
21127 (Qgnutls_bootprop_callbacks_verify): Make static.
21128
211292011-05-01 Andreas Schwab <schwab@linux-m68k.org>
21130
21131 * callproc.c: Indentation fixup.
21132
21133 * sysdep.c (wait_for_termination_1): Make static.
21134 (wait_for_termination, interruptible_wait_for_termination):
21135 Move after wait_for_termination_1.
21136
211372011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
21138
21139 * sysdep.c (interruptible_wait_for_termination): New function
21140 which is like wait_for_termination, but allows keyboard
21141 interruptions.
21142
21143 * callproc.c (Fcall_process): Add (:file "file") as an option for
21144 the STDOUT buffer.
21145 (Fcall_process_region): Ditto.
21146
211472011-04-30 Eli Zaretskii <eliz@gnu.org>
21148
21149 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
21150 rather than `XVECTOR (FOO)->size'.
21151
21152 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
21153 inttypes.h, as a gnulib replacement is used if it not available in
21154 system headers.
21155
211562011-04-21 Eli Zaretskii <eliz@gnu.org>
21157
21158 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
21159 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
21160 of MOST_POSITIVE_FIXNUM. (Bug#8528)
21161
21162 * coding.c (coding_alloc_by_realloc): Error out if destination
21163 will grow beyond MOST_POSITIVE_FIXNUM.
21164 (decode_coding_emacs_mule): Abort if there isn't enough place in
21165 charbuf for the composition carryover bytes. Reserve an extra
21166 space for up to 2 characters produced in a loop.
21167 (decode_coding_iso_2022): Abort if there isn't enough place in
21168 charbuf for the composition carryover bytes.
21169
211702011-04-21 Eli Zaretskii <eliz@gnu.org>
21171
21172 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
21173 aborting when %lld or %lll format is passed.
21174 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
21175 %llo or %llx format is passed. (Bug#8545)
21176
21177 * window.c (window_scroll_line_based): Use a marker instead of
21178 simple variables to record original value of point. (Bug#7952)
21179
21180 * doprnt.c (doprnt): Fix the case where a multibyte sequence
21181 produced by %s or %c overflows available buffer space. (Bug#8545)
21182
211832011-04-28 Paul Eggert <eggert@cs.ucla.edu>
21184
21185 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
21186 (SIZE_MAX): Move defn after all includes, as they might #define it.
21187
211882011-04-28 Juanma Barranquero <lekktu@gmail.com>
21189
21190 * w32.c (init_environment): Warn about defaulting HOME to C:\.
21191
211922011-04-28 Juanma Barranquero <lekktu@gmail.com>
21193
21194 * keyboard.c (Qdelayed_warnings_hook): Define.
21195 (command_loop_1): Run `delayed-warnings-hook'
21196 if Vdelayed_warnings_list is non-nil.
21197 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
21198 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
21199
212002011-04-28 Eli Zaretskii <eliz@gnu.org>
21201
21202 * doprnt.c (doprnt): Don't return value smaller than the buffer
21203 size if the message was truncated. (Bug#8545).
21204
212052011-04-28 Juanma Barranquero <lekktu@gmail.com>
21206
21207 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
21208 (Fx_window_property): #if-0 the whole functions, not just the bodies.
21209
212102011-04-27 Paul Eggert <eggert@cs.ucla.edu>
21211
21212 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
21213
212142011-04-27 Juanma Barranquero <lekktu@gmail.com>
21215
21216 * makefile.w32-in: Update dependencies.
21217
212182011-04-27 Eli Zaretskii <eliz@gnu.org>
21219
21220 Improve `doprnt' and its usage. (Bug#8545)
21221 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
21222 `format_end'. Remove support for %l as a conversion specifier.
21223 Don't use xrealloc. Improve diagnostics when the %l size modifier
21224 is used. Update the commentary.
21225
21226 * eval.c (verror): Simplify calculation of size_t.
21227
21228 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
21229 messages.
21230
212312011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
21232
21233 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
21234 change.
21235
212362011-04-27 Paul Eggert <eggert@cs.ucla.edu>
21237
21238 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
21239 This makes this file independent of the recent pseudovector change.
21240
212412011-04-26 Paul Eggert <eggert@cs.ucla.edu>
21242
21243 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
21244
21245 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
21246 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
21247 Remove unused local.
21248 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
21249
21250 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
21251 GCC 4.6.0 optimizes based on type-based alias analysis.
21252 For example, if b is of type struct buffer * and v of type struct
21253 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
21254 != &v->size, and therefore "v->size = 1; b->size = 2; return
21255 v->size;" must therefore return 1. This assumption is incorrect
21256 for Emacs, since it type-puns struct Lisp_Vector * with many other
21257 types. To fix this problem, this patch adds a new type struct
21258 vectorlike_header that documents the constraints on layout of vectors
21259 and pseudovectors, and helps optimizing compilers not get fooled
21260 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
21261 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
21262 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
21263 the size member.
21264 (XSETPVECTYPE): Rewrite in terms of new macro.
21265 (XSETPVECTYPESIZE): New macro, specifying both type and size.
21266 This is a bit clearer, and further avoids the possibility of
21267 undesirable aliasing.
21268 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
21269 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
21270 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
21271 since Lisp_Subr is a special case (no "next" field).
21272 (ASIZE): Now uses header.size rather than size.
21273 All previous uses of XVECTOR (foo)->size replaced to use this macro,
21274 to avoid the hassle of writing XVECTOR (foo)->header.size.
21275 (struct vectorlike_header): New type.
21276 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
21277 object, to help avoid aliasing.
21278 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
21279 (SUBRP): Likewise, since Lisp_Subr is a special case.
21280 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
21281 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
21282 (struct Lisp_Hash_Table): Combine first two members into a single
21283 struct vectorlike_header member. All uses of "size" and "next" members
21284 changed to be "header.size" and "header.next".
21285 * buffer.h (struct buffer): Likewise.
21286 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
21287 * frame.h (struct frame): Likewise.
21288 * process.h (struct Lisp_Process): Likewise.
21289 * termhooks.h (struct terminal): Likewise.
21290 * window.c (struct save_window_data, struct saved_window): Likewise.
21291 * window.h (struct window): Likewise.
21292 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
21293 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
21294 * buffer.c (init_buffer_once): Likewise.
21295 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
21296 special case.
21297 * process.c (Fformat_network_address): Use local var for size,
21298 for brevity.
21299
21300 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
21301
21302 Make the Lisp reader and string-to-float more consistent (Bug#8525)
21303 * data.c (atof): Remove decl; no longer used or needed.
21304 (digit_to_number): Move to lread.c.
21305 (Fstring_to_number): Use new string_to_number function, to be
21306 consistent with how the Lisp reader treats infinities and NaNs.
21307 Do not assume that floating-point numbers represent EMACS_INT
21308 without losing information; this is not true on most 64-bit hosts.
21309 Avoid double-rounding errors, by insisting on integers when
21310 parsing non-base-10 numbers, as the documentation specifies.
21311 * lisp.h (string_to_number): New decl, replacing ...
21312 (isfloat_string): Remove.
21313 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
21314 (read1): Do not accept +. and -. as integers; this
21315 appears to have been a coding error. Similarly, do not accept
21316 strings like +-1e0 as floating point numbers. Do not report
21317 overflow for integer overflows unless the base is not 10 which
21318 means we have no simple and reliable way to continue.
21319 Break out the floating-point parsing into a new
21320 function string_to_number, so that Fstring_to_number parses
21321 floating point numbers consistently with the Lisp reader.
21322 (digit_to_number): Move here from data.c. Make it static inline.
21323 (E_CHAR, EXP_INT): Remove, replacing with ...
21324 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
21325 (string_to_number): New function, replacing isfloat_string.
21326 This function checks for valid syntax and produces the resulting
21327 Lisp float number too. Rework it so that string-to-number
21328 no longer mishandles examples like "1.0e+". Use strtoumax,
21329 so that overflow for non-base-10 numbers is reported only when
21330 there's no portable and simple way to convert to floating point.
21331
21332 * textprop.c (set_text_properties_1): Rewrite for clarity,
21333 and to avoid GCC warning about integer overflow.
21334
21335 * intervals.h (struct interval): Use EMACS_INT for members
21336 where EMACS_UINT might cause problems. See
21337 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
21338 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
21339 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
21340 All uses changed.
21341 (offset_intervals): Tell GCC not to worry about length overflow
21342 when negating a negative length.
21343
21344 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
21345 (overrun_check_free): Likewise.
21346
21347 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
21348 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
21349 word size.
21350
21351 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
21352 (gnutls_make_error): Rename local to avoid shadowing.
21353 (gnutls_emacs_global_deinit): ifdef out; not used.
21354 (Fgnutls_boot): Use const for pointer to readonly storage.
21355 Comment out unused local. Fix pointer signedness problems.
21356
21357 * lread.c (openp): Don't stuff size_t into an 'int'.
21358 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
21359 about possible signed overflow.
21360
21361 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
21362 (GDK_KEY_g): Don't define if already defined.
21363 (xg_prepare_tooltip): Avoid pointer signedness problem.
21364 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
21365
21366 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
21367 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
21368
21369 * xfns.c (Fx_window_property): Simplify a bit,
21370 to make a bit faster and to avoid GCC 4.6.0 warning.
21371 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
21372
21373 * fns.c (internal_equal): Don't assume size_t fits in int.
21374
21375 * alloc.c (compact_small_strings): Tighten assertion a little.
21376
21377 Replace pEd with more-general pI, and fix some printf arg casts.
21378 * lisp.h (pI): New macro, generalizing old pEd macro to other
21379 conversion specifiers. For example, use "...%"pI"d..." rather
21380 than "...%"pEd"...".
21381 (pEd): Remove. All uses replaced with similar uses of pI.
21382 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
21383 * alloc.c (check_pure_size): Don't overflow by converting size to int.
21384 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
21385 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
21386 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
21387 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
21388 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
21389 64-bit hosts.
21390 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
21391 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
21392 * print.c (safe_debug_print, print_object): Likewise.
21393 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
21394 to int.
21395 Use pI instead of if-then-else-abort. Use %p to avoid casts,
21396 avoiding the 0 flag, which is not portable.
21397 * process.c (Fmake_network_process): Use pI to avoid cast.
21398 * region-cache.c (pp_cache): Likewise.
21399 * xdisp.c (decode_mode_spec): Likewise.
21400 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
21401 behavior on 64-bit hosts with printf arg.
21402 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
21403 (x_stop_queuing_selection_requests): Likewise.
21404 (x_get_window_property): Don't truncate byte count to an 'int'
21405 when tracing.
21406
21407 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
21408 here, since it parses constructs like leading '-' and spaces,
21409 which are not wanted; and it overflows with large numbers.
21410 Instead, simply match F[0-9]+, which is what is wanted anyway.
21411
21412 * alloc.c: Remove unportable assumptions about struct layout.
21413 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
21414 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
21415 (allocate_vectorlike, make_pure_vector): Use the new macros,
21416 plus offsetof, to remove unportable assumptions about struct layout.
21417 These assumptions hold on all porting targets that I know of, but
21418 they are not guaranteed, they're easy to remove, and removing them
21419 makes further changes easier.
21420
21421 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
21422 This doesn't fix a bug but makes the code clearer.
21423 (string_overrun_cookie): Now const. Use initializers that
21424 don't formally overflow signed char, to avoid warnings.
21425 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
21426 can cause Emacs to crash when string overrun checking is enabled.
21427 (allocate_buffer): Don't assume sizeof (struct buffer) is a
21428 multiple of sizeof (EMACS_INT); it need not be, if
21429 alignof(EMACS_INT) < sizeof (EMACS_INT).
21430 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
21431
214322011-04-26 Juanma Barranquero <lekktu@gmail.com>
21433
21434 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
21435
214362011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
21437
21438 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
21439 supposed to be handshaking. (Bug#8556)
21440 Reported by Paul Eggert <eggert@cs.ucla.edu>.
21441
214422011-04-26 Daniel Colascione <dan.colascione@gmail.com>
21443
21444 * lisp.h (Qdebug): List symbol.
21445 * eval.c (Qdebug): Restore global linkage.
21446 * keyboard.c (debug-on-event): New variable.
21447 (handle_user_signal): Break into debugger when debug-on-event
21448 matches the current signal symbol.
21449
214502011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
21451
21452 * alloc.c (check_sblock, check_string_bytes)
21453 (check_string_free_list): Convert to standard C.
21454
214552011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
21456
21457 * w32.c (emacs_gnutls_push): Fix typo.
21458
214592011-04-25 Eli Zaretskii <eliz@gnu.org>
21460
21461 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
21462 "cast to pointer from integer of different size".
21463
21464 Improve doprnt and its use in verror. (Bug#8545)
21465 * doprnt.c (doprnt): Document the set of format control sequences
21466 supported by the function. Use SAFE_ALLOCA instead of always
21467 using `alloca'.
21468
21469 * eval.c (verror): Don't limit the buffer size at size_max-1, that
21470 is one byte too soon. Don't use xrealloc; instead xfree and
21471 xmalloc anew.
21472
214732011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
21474
21475 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
21476 callbacks stage.
21477
21478 * gnutls.c: Renamed global_initialized to
21479 gnutls_global_initialized. Added internals for the
21480 :verify-hostname-error, :verify-error, and :verify-flags
21481 parameters of `gnutls-boot' and documented those parameters in the
21482 docstring. Start callback support.
21483 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
21484 unless a fatal error occurred. Call gnutls_alert_send_appropriate
21485 on error. Return error code.
21486 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
21487 (emacs_gnutls_read): Likewise.
21488 (Fgnutls_boot): Return handshake error code.
21489 (emacs_gnutls_handle_error): New function.
21490 (wsaerror_to_errno): Likewise.
21491
21492 * w32.h (emacs_gnutls_pull): Add prototype.
21493 (emacs_gnutls_push): Likewise.
21494
21495 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
21496 (emacs_gnutls_push): Likewise.
21497
214982011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
21499
21500 * process.c (wait_reading_process_output): Check if GnuTLS
21501 buffered some data internally if no FDs are set for TLS
21502 connections.
21503
21504 * makefile.w32-in (OBJ2): Add gnutls.$(O).
21505 (LIBS): Link to USER_LIBS.
21506 ($(BLD)/gnutls.$(0)): New target.
21507
215082011-04-24 Eli Zaretskii <eliz@gnu.org>
21509
21510 * xdisp.c (handle_single_display_spec): Rename the
21511 display_replaced_before_p argument into display_replaced_p, to
21512 make it consistent with the commentary. Fix typos in the
21513 commentary.
21514
21515 * textprop.c (syms_of_textprop): Remove dead code.
21516 (copy_text_properties): Delete obsolete commentary about an
21517 interface that was deleted long ago. Fix typos in the description
21518 of arguments.
21519
21520 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
21521 to changes in oldXMenu/XMenu.h from 2011-04-16.
21522 <menu_help_message, prev_menu_help_message>: Constify.
21523 (IT_menu_make_room): menu->help_text is now `const char **';
21524 adjust.
21525
21526 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
21527 to changes in oldXMenu/XMenu.h from 2011-04-16.
21528 (struct XMenu): Declare `help_text' `const char **'.
21529
21530 * xfaces.c <Qunspecified>: Make extern again.
21531
21532 * syntax.c: Include sys/types.h before including regex.h, as
21533 required by POSIX.
21534
21535 * doc.c (get_doc_string): Improve the format passed to `error'.
21536
21537 * doprnt.c (doprnt): Improve commentary.
21538
21539 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
21540
21541 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
21542 them with etags.
21543
21544 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
21545 changes in globals.h immediately force recompilation.
21546 (TAGS): Depend on $(CURDIR)/m/intel386.h and
21547 $(CURDIR)/s/ms-w32.h.
21548 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
21549
21550 * character.c (Fchar_direction): Function deleted.
21551 (syms_of_character): Don't defsubr it.
21552 <char-direction-table>: Deleted.
21553
215542011-04-23 Eli Zaretskii <eliz@gnu.org>
21555
21556 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
21557 * doprnt.c: Include limits.h.
21558 (SIZE_MAX): New macro.
21559 (doprnt): Return a size_t value. 2nd arg is now size_t.
21560 Many local variables are now size_t instead of int or unsigned.
21561 Improve overflow protection. Support `l' modifier for integer
21562 conversions. Support %l conversion. Don't assume an EMACS_INT
21563 argument for integer conversions and for %c.
21564
21565 * lisp.h (doprnt): Restore prototype.
21566
21567 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
21568 $(SRC)/character.h.
21569
21570 * Makefile.in (base_obj): Add back doprnt.o.
21571
21572 * deps.mk (doprnt.o): Add back prerequisites.
21573 (callint.o): Depend on character.h.
21574
21575 * eval.c (internal_lisp_condition_case): Include the handler
21576 representation in the error message.
21577 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
21578 when breaking from the loop.
21579
21580 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
21581
21582 * callint.c (Fcall_interactively): When displaying error message
21583 about invalid control letter, pass the character's codepoint, not
21584 a pointer to its multibyte form. Improve display of the character
21585 in octal and display also its hex code.
21586
21587 * character.c (char_string): Use %x to display the (unsigned)
21588 codepoint of an invalid character, to avoid displaying a bogus
21589 negative value.
21590
21591 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
21592 `error', not SYMBOL_NAME itself.
21593
21594 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
21595 character arguments to `error'.
21596
21597 * charset.c (check_iso_charset_parameter): Fix incorrect argument
21598 to `error' in error message about FINAL_CHAR argument. Make sure
21599 FINAL_CHAR is a character, and use %c when it is passed as
21600 argument to `error'.
21601
216022011-04-23 Eli Zaretskii <eliz@gnu.org>
21603
21604 * s/ms-w32.h (localtime): Redirect to sys_localtime.
21605
21606 * w32.c: Include <time.h>.
21607 (sys_localtime): New function.
21608
216092011-04-23 Chong Yidong <cyd@stupidchicken.com>
21610
21611 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
21612
21613 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
21614
216152011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
21616
21617 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
21618 zombies (Bug#8467).
21619
216202011-04-19 Eli Zaretskii <eliz@gnu.org>
21621
21622 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
21623 gl_state.e_property when gl_state.object is Qt.
21624
21625 * insdel.c (make_gap_larger): Remove limitation of buffer size
21626 to <= INT_MAX.
21627
216282011-04-18 Chong Yidong <cyd@stupidchicken.com>
21629
21630 * xdisp.c (lookup_glyphless_char_display)
21631 (produce_glyphless_glyph): Handle cons cell entry in
21632 glyphless-char-display.
21633 (Vglyphless_char_display): Document it.
21634
21635 * term.c (produce_glyphless_glyph): Handle cons cell entry in
21636 glyphless-char-display.
21637
216382011-04-17 Chong Yidong <cyd@stupidchicken.com>
21639
21640 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
21641
21642 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
21643
21644 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
21645 definition for no-X builds.
21646
216472011-04-16 Paul Eggert <eggert@cs.ucla.edu>
21648
21649 Static checks with GCC 4.6.0 and non-default toolkits.
21650
21651 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
21652
21653 * process.c (keyboard_bit_set): Define only if SIGIO.
21654 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
21655 (send_process): Repair possible setjmp clobbering.
21656
21657 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
21658
21659 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
21660
21661 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
21662
21663 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
21664 Define only if needed.
21665
21666 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
21667 by pacifying GCC about it. Maybe it's time to retire it?
21668 * xfaces.c (USG, __TIMEVAL__): Likewise.
21669
21670 * dispextern.h (struct redisplay_interface): Rename param
21671 to avoid shadowing.
21672 * termhooks.h (struct terminal): Likewise.
21673 * xterm.c (xembed_send_message): Likewise.
21674
21675 * insdel.c (make_gap_smaller): Define only if
21676 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
21677
21678 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
21679 it.
21680
21681 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
21682 so that we aren't warned about unused symbols.
21683
21684 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
21685
21686 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
21687
21688 * xfns.c (x_real_positions): Mark locals as initialized.
21689
21690 * xmenu.c (xmenu_show): Don't use uninitialized vars.
21691
21692 * xterm.c: Fix problems found by static analysis with other toolkits.
21693 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
21694 (x_dispatch_event): Declare static if USE_GTK, and
21695 define if USE_GTK || USE_X_TOOLKIT.
21696 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
21697 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
21698 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
21699 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
21700
21701 * xmenu.c (menu_help_callback): Pointer type fixes.
21702 Use const pointers when pointing at readonly data. Avoid pointer
21703 signedness clashes.
21704 (FALSE): Remove unused macro.
21705 (update_frame_menubar): Remove unused decl.
21706
21707 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
21708
21709 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
21710 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
21711 (single_menu_item): Rename local to avoid shadowing.
21712
21713 * keyboard.c (make_lispy_event): Remove unused local var.
21714
21715 * frame.c, frame.h (x_get_resource_string): Bring this back, but
21716 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
21717
21718 * bitmaps: Change bitmaps from unsigned char back to the X11
21719 compatible char. Avoid the old compiler warnings about
21720 out-of-range initializers by using, for example, '\xab' rather
21721 than 0xab.
21722
21723 * xgselect.c (xgselect_initialize): Check vs interface
21724 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
21725
21726 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
21727
21728 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
21729 to read-only memory.
21730
21731 * fns.c (vector): Remove; this old hack is no longer needed.
21732
21733 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
21734 Remove unused var.
21735 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
21736
21737 * xrdb.c (x_load_resources): Omit unused local.
21738
21739 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
21740 (x_window): Rename locals to avoid shadowing.
21741 (USG): Use the kludged USG macro, to pacify gcc.
21742
21743 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
21744 (x_term_init): Remove local to avoid shadowing.
21745
21746 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
21747
21748 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
21749 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
21750
217512011-04-16 Eli Zaretskii <eliz@gnu.org>
21752
21753 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
21754
21755 Fix regex.c, syntax.c and friends for buffers > 2GB.
21756 * syntax.h (struct gl_state_s): Declare character position members
21757 EMACS_INT.
21758
21759 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
21760
21761 * textprop.c (verify_interval_modification, interval_of):
21762 Declare arguments EMACS_INT.
21763
21764 * intervals.c (adjust_intervals_for_insertion): Declare arguments
21765 EMACS_INT.
21766
21767 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
21768
21769 * indent.c (Fvertical_motion): Local variable it_start is now
21770 EMACS_INT.
21771
21772 * regex.c (re_match, re_match_2, re_match_2_internal)
21773 (bcmp_translate, regcomp, regexec, print_double_string)
21774 (group_in_compile_stack, re_search, re_search_2, regex_compile)
21775 (re_compile_pattern, re_exec): Declare arguments and local
21776 variables `size_t' and `ssize_t' and return values `regoff_t', as
21777 appropriate.
21778 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
21779 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
21780 <compile_stack_type>: `size' and `avail' are now `size_t'.
21781
21782 * regex.h <regoff_t>: Use ssize_t, not int.
21783 (re_search, re_search_2, re_match, re_match_2): Arguments that
21784 specify buffer/string position and length are now ssize_t and
21785 size_t. Return type is regoff_t.
21786
217872011-04-16 Ben Key <bkey76@gmail.com>
21788
21789 * nsfont.m: Fixed bugs in ns_get_family and
21790 ns_descriptor_to_entity that were caused by using free to
21791 deallocate memory blocks that were allocated by xmalloc (via
21792 xstrdup). This caused Emacs to crash when compiled with
21793 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
21794 --enable-checking=xmallocoverrun). xfree is now used to
21795 deallocate these memory blocks.
21796
217972011-04-15 Paul Eggert <eggert@cs.ucla.edu>
21798
21799 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
21800
21801 emacs_write: Accept and return EMACS_INT for sizes.
21802 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
21803 et seq.
21804 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
21805 Accept and return EMACS_INT.
21806 (emacs_gnutls_write): Return the number of bytes written on
21807 partial writes.
21808 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
21809 (emacs_read, emacs_write): Remove check for negative size, as the
21810 Emacs source code has been audited now.
21811 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
21812 (emacs_read, emacs_write): Use it.
21813 * process.c (send_process): Adjust to the new signatures of
21814 emacs_write and emacs_gnutls_write. Do not attempt to store
21815 a byte offset into an 'int'; it might overflow.
21816 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
21817
21818 * sound.c: Don't assume sizes fit in 'int'.
21819 (struct sound_device.period_size, alsa_period_size):
21820 Return EMACS_INT, not int.
21821 (struct sound_device.write, vox_write, alsa_write):
21822 Accept EMACS_INT, not int.
21823 (wav_play, au_play): Use EMACS_INT to store sizes and to
21824 record read return values.
21825
218262011-04-15 Ben Key <bkey76@gmail.com>
21827
21828 * keyboard.c (Qundefined): Don't declare static since it is used
21829 in nsfns.m.
21830 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
21831 static since they are used in nsfont.m.
21832
218332011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
21834
21835 * process.c (Qprocessp): Don't declare static.
21836 * lisp.h (Qprocessp): Declare again.
21837
218382011-04-15 Juanma Barranquero <lekktu@gmail.com>
21839
21840 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
21841
218422011-04-14 Paul Eggert <eggert@cs.ucla.edu>
21843
21844 Improve C-level modularity by making more things 'static'.
21845
21846 Don't publish debugger-only interfaces to other modules.
21847 * lisp.h (safe_debug_print, debug_output_compilation_hack):
21848 (verify_bytepos, count_markers): Move decls to the only modules
21849 that need them.
21850 * region-cache.h (pp_cache): Likewise.
21851 * window.h (check_all_windows): Likewise.
21852 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
21853
21854 * sysdep.c (croak): Now static, if
21855 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
21856 * syssignal.h (croak): Declare only if not static.
21857
21858 * alloc.c (refill_memory_reserve): Now static if
21859 !defined REL_ALLOC || defined SYSTEM_MALLOC.
21860 * lisp.h (refill_memory_reserve): Declare only if not static.
21861
21862 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
21863 Define only if USE_LUCID.
21864
21865 * xrdb.c (x_customization_string, x_rm_string): Now static.
21866
21867 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
21868 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
21869
21870 * xdisp.c (draw_row_with_mouse_face): Now static.
21871 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
21872
21873 * window.h (check_all_windows): Mark externally visible.
21874
21875 * window.c (window_deletion_count): Now static.
21876
21877 * undo.c: Make symbols static if they're not exported.
21878 (last_undo_buffer, last_boundary_position, pending_boundary):
21879 Now static.
21880
21881 * textprop.c (interval_insert_behind_hooks): Now static.
21882 (interval_insert_in_front_hooks): Likewise.
21883
21884 * term.c: Make symbols static if they're not exported.
21885 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
21886 (max_frame_lines, tty_set_terminal_modes):
21887 (tty_reset_terminal_modes, tty_turn_off_highlight):
21888 (get_tty_terminal): Now static.
21889 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
21890 * termhooks.h (term_mouse_moveto): Do not declare if
21891 HAVE_WINDOW_SYSTEM.
21892 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
21893 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
21894
21895 * sysdep.c: Make symbols static if they're not exported.
21896 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
21897 Now static.
21898 (sigprocmask_set, full_mask): Remove; unused.
21899 (wait_debugging): Mark as visible.
21900 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
21901 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
21902
21903 * syntax.c (syntax_temp): Define only if !__GNUC__.
21904
21905 * sound.c (current_sound_device, current_sound): Now static.
21906
21907 * search.c (searchbufs, searchbuf_head): Now static.
21908
21909 * scroll.c (scroll_cost): Remove; unused.
21910 * dispextern.h (scroll_cost): Remove decl.
21911
21912 * region-cache.h (pp_cache): Mark as externally visible.
21913
21914 * process.c: Make symbols static if they're not exported.
21915 (process_tick, update_tick, create_process, chan_process):
21916 (Vprocess_alist, proc_buffered_char, datagram_access):
21917 (fd_callback_data, send_process_frame, process_sent_to): Now static.
21918 (deactivate_process): Mark defn as static, as well as decl.
21919 * lisp.h (create_process): Remove decl.
21920 * process.h (chan_process, Vprocess_alist): Remove decls.
21921
21922 * print.c: Make symbols static if they're not exported.
21923 (print_depth, new_backquote_output, being_printed, print_buffer):
21924 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
21925 (print_interval, print_number_index, initial_stderr_stream):
21926 Now static.
21927 * lisp.h (Fprinc): Remove decl.
21928 (debug_output_compilation_hack): Mark as externally visible.
21929
21930 * sysdep.c (croak): Move decl from here to syssignal.h.
21931 * syssignal.h (croak): Put it here, so the API can be checked when
21932 'croak' is called from dissociate_if_controlling_tty.
21933
21934 * minibuf.c: Make symbols static if they're not exported.
21935 (minibuf_save_list, choose_minibuf_frame): Now static.
21936 * lisp.h (choose_minibuf_frame): Remove decl.
21937
21938 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
21939
21940 * lread.c: Make symbols static if they're not exported.
21941 (read_objects, initial_obarray, oblookup_last_bucket_number):
21942 Now static.
21943 (make_symbol): Remove; unused.
21944 * lisp.h (initial_obarray, make_symbol): Remove decls.
21945
21946 * keyboard.c: Make symbols static if they're not exported.
21947 (single_kboard, recent_keys_index, total_keys, recent_keys):
21948 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
21949 (this_single_command_key_start, echoing, last_auto_save):
21950 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
21951 (command_loop, echo_now, keyboard_init_hook, help_char_p):
21952 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
21953 (Vlispy_mouse_stem, double_click_count):
21954 Now static.
21955 (force_auto_save_soon): Define only if SIGDANGER.
21956 (ignore_mouse_drag_p): Now static if
21957 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
21958 (print_help): Remove; unused.
21959 (stop_character, last_timer_event): Mark as externally visible.
21960 * keyboard.h (ignore_mouse_drag_p): Declare only if
21961 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
21962 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
21963 * lisp.h (echoing): Remove decl.
21964 (force_auto_save_soon): Declare only if SIGDANGER.
21965 * xdisp.c (redisplay_window): Simplify code, to make it more
21966 obvious that ignore_mouse_drag_p is not accessed if !defined
21967 USE_GTK && !defined HAVE_NS.
21968
21969 * intervals.c: Make symbols static if they're not exported.
21970 (merge_properties_sticky, merge_interval_right, delete_interval):
21971 Now static.
21972 * intervals.h (merge_interval_right, delete_interval): Remove decls.
21973
21974 * insdel.c: Make symbols static if they're not exported.
21975 However, leave prepare_to_modify_buffer alone. It's never
21976 called from outside this function, but that appears to be a bug.
21977 (combine_after_change_list, combine_after_change_buffer):
21978 (adjust_after_replace, signal_before_change): Now static.
21979 (adjust_after_replace_noundo): Remove; unused.
21980 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
21981 (signal_before_change): Remove decls.
21982
21983 * indent.c (val_compute_motion, val_vmotion): Now static.
21984
21985 * image.c: Make symbols static if they're not exported.
21986 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
21987 if USE_GTK.
21988 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
21989 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
21990
21991 * fringe.c (standard_bitmaps): Now static.
21992 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
21993
21994 * frame.c: Make symbols static if they're not exported.
21995 (x_report_frame_params, make_terminal_frame): Now static.
21996 (get_frame_param): Now static, unless HAVE_NS.
21997 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
21998 (x_get_resource_string): Remove; not used.
21999 * frame.h (make_terminal_frame, x_report_frame_params):
22000 (x_get_resource_string); Remove decls.
22001 (x_fullscreen_adjust): Declare only if WINDOWSNT.
22002 * lisp.h (get_frame_param): Declare only if HAVE_NS.
22003
22004 * font.c, fontset.c: Make symbols static if they're not exported.
22005 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
22006 (FACE_SUITABLE_FOR_CHAR_P): Use it.
22007 * font.c (font_close_object): Now static.
22008 * font.h (font_close_object): Remove.
22009 * fontset.c (FONTSET_OBJLIST): Remove.
22010 (free_realized_fontset) #if-0 the body, which does nothing.
22011 (face_suitable_for_char_p): #if-0, as it's never called.
22012 * fontset.h (face_suitable_for_char_p): Remove decl.
22013 * xfaces.c (face_at_string_position):
22014 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
22015 since 0 is always ASCII.
22016
22017 * fns.c (weak_hash_tables): Now static.
22018
22019 * fileio.c: Make symbols static if they're not exported.
22020 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
22021 (Vwrite_region_annotation_buffers): Now static.
22022
22023 * eval.c: Make symbols static if they're not exported.
22024 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
22025 * lisp.h (backtrace_list): Remove decl.
22026
22027 * emacs.c: Make symbols static if they're not exported.
22028 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
22029 (fatal_error_code, fatal_error_signal_hook, standard_args):
22030 Now static.
22031 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
22032 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
22033 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
22034 * lisp.h (fatal_error_signal_hook): Remove decl.
22035 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
22036
22037 * editfns.c: Move a (normally-unused) function to its only use.
22038 * editfns.c, lisp.h (get_operating_system_release): Remove.
22039 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
22040 worth the hassle of breaking this out.
22041
22042 * xterm.c: Make symbols static if they're not exported.
22043 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
22044 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
22045 (x_destroy_window, x_delete_display):
22046 Now static.
22047 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
22048 (x_mouse_leave): Remove; unused.
22049 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
22050 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
22051 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
22052 Remove decls.
22053 (x_mouse_leave): Declare only if WINDOWSNT.
22054 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
22055 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
22056 USE_X_TOOLKIT.
22057
22058 * ftxfont.c: Make symbols static if they're not exported.
22059 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
22060 HAVE_FREETYPE.
22061 * font.h (ftxfont_driver): Likewise.
22062
22063 * xfns.c: Make symbols static if they're not exported.
22064 (x_last_font_name, x_display_info_for_name):
22065 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
22066 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
22067 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
22068 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
22069 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
22070 (last_show_tip_args): Now static.
22071 (xic_defaut_fontset, xic_create_fontsetname): Define only if
22072 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
22073 (x_screen_planes): Remove; unused.
22074 * dispextern.h (x_screen_planes): Remove decl.
22075
22076 * dispnew.c: Make symbols static if they're not exported.
22077 * dispextern.h (redraw_garbaged_frames, scrolling):
22078 (increment_row_positions): Remove.
22079 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
22080 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
22081 Now static.
22082 (redraw_garbaged_frames): Remove; unused.
22083
22084 * xfaces.c: Make symbols static if they're not exported.
22085 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
22086 Remove decls.
22087 * xterm.h (defined_color): Remove decls.
22088 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
22089 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
22090 (menu_face_changed_default, defined_color, free_realized_face):
22091 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
22092 (ascii_face_of_lisp_face): Remove; unused.
22093
22094 * xdisp.c: Make symbols static if they're not exported.
22095 * dispextern.h (scratch_glyph_row, window_box_edges):
22096 (glyph_to_pixel_coords, set_cursor_from_row):
22097 (get_next_display_element, set_iterator_to_next):
22098 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
22099 (show_mouse_face): Remove decls
22100 * frame.h (message_buf_print): Likewise.
22101 * lisp.h (pop_message, set_message, check_point_in_composition):
22102 Likewise.
22103 * xterm.h (set_vertical_scroll_bar): Likewise.
22104 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
22105 (message_buf_print, scratch_glyph_row, displayed_buffer):
22106 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
22107 (get_next_display_element, show_mouse_face, window_box_edges):
22108 (frame_to_window_pixel_xy, check_point_in_composition):
22109 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
22110 (glyph_to_pixel_coords): Remove; unused.
22111
22112 * dired.c (file_name_completion): Now static.
22113
22114 * dbusbind.c (xd_in_read_queued_messages): Now static.
22115
22116 * lisp.h (circular_list_error, FOREACH): Remove; unused.
22117 * data.c (circular_list_error): Remove.
22118
22119 * commands.h (last_point_position, last_point_position_buffer):
22120 (last_point_position_window): Remove decls.
22121 * keyboard.c: Make these variables static.
22122
22123 * coding.h (coding, code_convert_region, encode_coding_gap):
22124 Remove decls.
22125 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
22126 (iso_code_class, detect_coding, code_convert_region): Now static.
22127 (encode_coding_gap): Remove; unused.
22128
22129 * chartab.c (chartab_chars, chartab_bits): Now static.
22130
22131 * charset.h (charset_iso_8859_1): Remove decl.
22132 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
22133 Now static.
22134
22135 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
22136 * ccl.c (Vccl_program_table): Now static.
22137 (check_ccl_update): Remove; unused.
22138
22139 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
22140 * category.h: ... from here.
22141 * category.c (check_category_table, set_category_set): Now static.
22142
22143 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
22144 * lisp.h: Remove these decls.
22145
22146 * buffer.c (buffer_count): Remove unused var.
22147
22148 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
22149 so that it's not optimized away.
22150 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
22151 * dispextern.h (bidi_dump_cached_states): Remove, since it's
22152 exported only to the debugger.
22153
22154 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
22155 * atimer.h (run_all_atimers): Remove; not exported.
22156
22157 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
22158 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
22159 was inaccessible from Lisp.
22160 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
22161 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
22162
22163 alloc.c: Import and export fewer symbols, and remove unused items.
22164 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
22165 is defined.
22166 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
22167 it's not optimized away by whole-program optimization.
22168 (message_enable_multibyte, free_misc): Remove.
22169 (catchlist, handlerlist, mark_backtrace):
22170 Declare only if BYTE_MARK_STACK.
22171 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
22172 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
22173 (message_enable_multibyte): Remove decl.
22174 (free_misc, interval_free_list, float_block, float_block_index):
22175 (n_float_blocks, float_free_list, cons_block, cons_block_index):
22176 (cons_free_list, last_marked_index):
22177 Now static.
22178 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
22179 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
22180 (mark_backtrace): Define only if BYTE_MARK_STACK.
22181 * xdisp.c (message_enable_multibyte): Now static.
22182
22183 Declare Lisp_Object Q* variables to be 'static' if not exported.
22184 This makes it easier for human readers (and static analyzers)
22185 to see whether these variables are used from other modules.
22186 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
22187 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
22188 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
22189 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
22190 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
22191 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
22192 * xmenu.c, xselect.c:
22193 Declare Q* vars static if they are not used in other modules.
22194 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
22195 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
22196 Remove decls of unexported vars.
22197 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
22198
22199 * lisp.h (DEFINE_FUNC): Make sname 'static'.
22200
22201 Make Emacs functions such as Fatom 'static' by default.
22202 This makes it easier for human readers (and static analyzers)
22203 to see whether these functions can be called from other modules.
22204 DEFUN now defines a static function. To make the function external
22205 so that it can be used in other C modules, use the new macro DEFUE.
22206 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
22207 (Finit_image_library):
22208 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
22209 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
22210 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
22211 Remove decls, since these functions are now static.
22212 (Funintern, Fget_internal_run_time): New decls, since these functions
22213 were already external.
22214
22215 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
22216 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
22217 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
22218 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
22219 * keyboard.c, keymap.c, lread.c:
22220 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
22221 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
22222 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
22223 Mark functions with DEFUE instead of DEFUN,
22224 if they are used in other modules.
22225 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
22226 decls for now-static functions.
22227 * buffer.h (Fdelete_overlay): Remove decl.
22228 * callproc.c (Fgetenv_internal): Mark as internal.
22229 * composite.c (Fremove_list_of_text_properties): Remove decl.
22230 (Fcomposition_get_gstring): New forward static decl.
22231 * composite.h (Fcomposite_get_gstring): Remove decl.
22232 * dired.c (Ffile_attributes): New forward static decl.
22233 * doc.c (Fdocumntation_property): New forward static decl.
22234 * eval.c (Ffetch_bytecode): New forward static decl.
22235 (Funintern): Remove extern decl; now in .h file where it belongs.
22236 * fileio.c (Fmake_symbolic_link): New forward static decl.
22237 * image.c (Finit_image_library): New forward static decl.
22238 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
22239 * intervals.h (Fprevious_property_change):
22240 (Fremove_list_of_text_properties): Remove decls.
22241 * keyboard.c (Fthis_command_keys): Remove decl.
22242 (Fcommand_execute): New forward static decl.
22243 * keymap.c (Flookup_key): New forward static decl.
22244 (Fcopy_keymap): Now static.
22245 * keymap.h (Flookup_key): Remove decl.
22246 * process.c (Fget_process): New forward static decl.
22247 (Fprocess_datagram_address): Mark as internal.
22248 * syntax.c (Fsyntax_table_p): New forward static decl.
22249 (skip_chars): Remove duplicate decl.
22250 * textprop.c (Fprevious_property_change): New forward static decl.
22251 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
22252 Now internal.
22253 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
22254 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
22255
22256 * editfns.c (Fformat): Remove unreachable code.
22257
222582011-04-14 Andreas Schwab <schwab@linux-m68k.org>
22259
22260 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
22261 change. (Bug#8496)
22262
222632011-04-13 Eli Zaretskii <eliz@gnu.org>
22264
22265 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
22266 when at ZV. (Bug#8487)
22267
222682011-04-12 Andreas Schwab <schwab@linux-m68k.org>
22269
22270 * charset.c (Fclear_charset_maps): Use xfree instead of free.
22271 (Bug#8437)
22272 * keyboard.c (parse_tool_bar_item): Likewise.
22273 * sound.c (sound_cleanup, alsa_close): Likewise.
22274 * termcap.c (tgetent): Likewise.
22275 * xfns.c (x_default_font_parameter): Likewise.
22276 * xsettings.c (read_and_apply_settings): Likewise.
22277
22278 * alloc.c (overrun_check_malloc, overrun_check_realloc)
22279 (overrun_check_free): Protoize.
22280
222812011-04-12 Paul Eggert <eggert@cs.ucla.edu>
22282
22283 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
22284 since callers should never pass a negative size.
22285 Change the signature to match that of plain 'read' and 'write'; see
22286 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
22287 * lisp.h: Update prototypes of emacs_write and emacs_read.
22288
222892011-04-11 Eli Zaretskii <eliz@gnu.org>
22290
22291 * xdisp.c (redisplay_window): Don't try to determine the character
22292 position of the scroll margin if the window start point w->startp
22293 is outside the buffer's accessible region. (Bug#8468)
22294
222952011-04-10 Eli Zaretskii <eliz@gnu.org>
22296
22297 Fix write-region and its subroutines for buffers > 2GB.
22298 * fileio.c (a_write, e_write): Modify declaration of arguments and
22299 local variables to support buffers larger than 2GB.
22300 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
22301
22302 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
22303 argument, local variables, and return value.
22304
22305 * lisp.h: Update prototypes of emacs_write and emacs_read.
22306
22307 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
22308
223092011-04-10 Paul Eggert <eggert@cs.ucla.edu>
22310
22311 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
22312
22313 Fix more problems found by GCC 4.6.0's static checks.
22314
22315 * xdisp.c (vmessage): Use a better test for character truncation.
22316
22317 * charset.c (load_charset_map): <, not <=, for optimization,
22318 and to avoid potential problems with integer overflow.
22319 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
22320 * casetab.c (set_identity, shuffle): Likewise.
22321 * editfns.c (Fformat): Likewise.
22322 * syntax.c (skip_chars): Likewise.
22323
22324 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
22325 This also lets GCC 4.6.0 generate slightly better loop code.
22326
22327 * callint.c (Fcall_interactively): <, not <=, for optimization.
22328 (Fcall_interactively): Count the number of arguments produced,
22329 not the number of arguments given. This is simpler and lets GCC
22330 4.6.0 generate slightly better code.
22331
22332 * ftfont.c: Distingish more carefully between FcChar8 and char.
22333 The previous code passed unsigned char * to a functions like
22334 strlen and xstrcasecmp that expect char *, which does not
22335 conform to the C standard.
22336 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
22337 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
22338 char * when the C standard requires it.
22339
22340 * keyboard.c (read_char): Remove unused var.
22341
22342 * eval.c: Port to Windows vsnprintf (Bug#8435).
22343 Include <limits.h>.
22344 (SIZE_MAX): Define if the headers do not.
22345 (verror): Do not give up if vsnprintf returns a negative count.
22346 Instead, grow the buffer. This ports to Windows vsnprintf, which
22347 does not conform to C99. Problem reported by Eli Zaretskii.
22348 Also, simplify the allocation scheme, by avoiding the need for
22349 calling realloc, and removing the ALLOCATED variable.
22350
22351 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
22352
22353 Remove invocations of doprnt, as Emacs now uses vsnprintf.
22354 But keep the doprint source code for now, as we might revamp it
22355 and use it again (Bug#8435).
22356 * lisp.h (doprnt): Remove.
22357 * Makefile.in (base_obj): Remove doprnt.o.
22358 * deps.mk (doprnt.o): Remove.
22359
22360 error: Print 32- and 64-bit integers portably (Bug#8435).
22361 Without this change, on typical 64-bit hosts error ("...%d...", N)
22362 was used to print both 32- and 64-bit integers N, which relied on
22363 undefined behavior.
22364 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
22365 * lisp.h (error, verror): Mark as printf-like functions.
22366 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
22367 Report overflow in size calculations when allocating printf buffer.
22368 Do not truncate output string at its first null byte.
22369 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
22370 Truncate the output at a character boundary, since vsnprintf does not
22371 do that.
22372 * charset.c (check_iso_charset_parameter): Convert internal
22373 character to string before calling 'error', since %c now has the
22374 printf meaning.
22375 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
22376 overflow when computing char to be passed to 'error'. Do not
22377 pass Lisp_Object to 'error'; pass the integer instead.
22378 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
22379 formatted with plain %d.
22380
22381 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
22382
22383 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
22384
22385 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
22386
22387 * xterm.c (x_catch_errors): Remove duplicate declaration.
22388
22389 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
22390
22391 * xdisp.c, lisp.h (message_nolog): Remove; unused.
22392
223932011-04-10 Jim Meyering <meyering@redhat.com>
22394
22395 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
22396 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
22397 return ssize_t not "int", and use size_t as the buffer length.
22398 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
22399 * gnutls.h: Update declarations.
22400 * process.c (read_process_output): Use ssize_t, to match.
22401 (send_process): Likewise.
22402
224032011-04-09 Chong Yidong <cyd@stupidchicken.com>
22404
22405 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
22406
224072011-04-09 Chong Yidong <cyd@stupidchicken.com>
22408
22409 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
22410 Use unsigned char, to match FcChar8 type definition.
22411
22412 * xterm.c (handle_one_xevent):
22413 * xmenu.c (create_and_show_popup_menu):
22414 * xselect.c (x_decline_selection_request)
22415 (x_reply_selection_request): Avoid type-punned deref of X events.
22416
224172011-04-09 Eli Zaretskii <eliz@gnu.org>
22418
22419 Fix some uses of `int' instead of EMACS_INT.
22420 * search.c (string_match_1, fast_string_match)
22421 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
22422 (scan_buffer, find_next_newline_no_quit)
22423 (find_before_next_newline, search_command, Freplace_match)
22424 (Fmatch_data): Make some `int' variables be EMACS_INT.
22425
22426 * xdisp.c (display_count_lines): 3rd argument and return value now
22427 EMACS_INT. All callers changed.
22428 (pint2hrstr): Last argument is now EMACS_INT.
22429
22430 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
22431 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
22432 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
22433 (decode_coding_utf_16, decode_coding_emacs_mule)
22434 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
22435 (decode_coding_ccl, decode_coding_charset)
22436 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
22437 (decode_coding_iso_2022, decode_coding_emacs_mule)
22438 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
22439 <char_offset, last_offset>: Declare EMACS_INT.
22440 (encode_coding_utf_8, encode_coding_utf_16)
22441 (encode_coding_emacs_mule, encode_invocation_designation)
22442 (encode_designation_at_bol, encode_coding_iso_2022)
22443 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
22444 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
22445 Declare EMACS_INT.
22446 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
22447 (encode_invocation_designation): Last argument P_NCHARS is now
22448 EMACS_INT.
22449 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
22450 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
22451
22452 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
22453 All users changed.
22454
22455 * ccl.c (Fccl_execute_on_string): Declare some variables
22456 EMACS_INT.
22457
224582011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
22459
22460 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
22461
224622011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
22463
22464 * process.c (Fformat_network_address): Doc fix.
22465
224662011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
22467
22468 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
22469
224702011-04-08 Chong Yidong <cyd@stupidchicken.com>
22471
22472 * keyboard.c (read_char): Call Lisp function help-form-show,
22473 instead of using internal_with_output_to_temp_buffer.
22474 (Qhelp_form_show): New var.
22475 (syms_of_keyboard): Use DEFSYM macro.
22476
22477 * print.c (internal_with_output_to_temp_buffer): Function deleted.
22478
22479 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
22480
224812011-04-06 Chong Yidong <cyd@stupidchicken.com>
22482
22483 * process.c (Flist_processes): Remove to Lisp.
22484 (list_processes_1): Delete.
22485
224862011-04-06 Eli Zaretskii <eliz@gnu.org>
22487
22488 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
22489
22490 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
22491
224922011-04-06 Paul Eggert <eggert@cs.ucla.edu>
22493
22494 Fix more problems found by GCC 4.6.0's static checks.
22495
22496 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
22497
22498 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
22499
22500 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
22501
22502 * xdisp.c (vmessage): Mark as a printf-like function.
22503
22504 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
22505
22506 * sound.c (sound_warning): Don't crash if arg contains a printf format.
22507
22508 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
22509 printf-like functions.
22510 (tiff_load): Add casts to remove these marks before passing them
22511 to system-supplied API.
22512
22513 * eval.c (Fsignal): Remove excess argument to 'fatal'.
22514
22515 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
22516 This avoids several warnings with gcc -Wstrict-overflow.
22517 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
22518 directly, rather than having caller test rule sign. This avoids
22519 some unnecessary tests.
22520 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
22521 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
22522 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
22523
22524 * xfont.c (xfont_text_extents): Remove var that was set but not used.
22525 (xfont_open): Avoid unnecessary tests.
22526
22527 * composite.c (composition_gstring_put_cache): Use unsigned integer.
22528
22529 * composite.h, composite.c (composition_gstring_put_cache):
22530 Use EMACS_INT, not int, for length.
22531
22532 * composite.h (COMPOSITION_DECODE_REFS): New macro,
22533 breaking out part of COMPOSITION_DECODE_RULE.
22534 (COMPOSITION_DECODE_RULE): Use it.
22535 * composite.c (get_composition_id): Remove unused local vars,
22536 by using the new macro.
22537
22538 * textprop.c (set_text_properties_1): Change while to do-while,
22539 since the condition is always true at first.
22540
22541 * intervals.c (graft_intervals_into_buffer): Mark var as used.
22542 (interval_deletion_adjustment): Return unsigned value.
22543 All uses changed.
22544
22545 * process.c (list_processes_1, create_pty, read_process_output):
22546 (exec_sentinel): Remove vars that were set but not used.
22547 (create_pty): Remove unnecessary "volatile"s.
22548 (Fnetwork_interface_info): Avoid possibility of int overflow.
22549 (read_process_output): Do adaptive read buffering even if carryover.
22550 (read_process_output): Simplify nbytes computation if buffered.
22551
22552 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
22553
22554 * syntax.c (scan_words): Remove var that was set but not used.
22555 (update_syntax_table): Use unsigned instead of int.
22556
22557 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
22558 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
22559 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
22560
22561 * print.c (print_error_message): Avoid int overflow.
22562
22563 * font.c (font_list_entities): Redo for clarity,
22564 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
22565
22566 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
22567 (font_score): Avoid potential overflow in diff calculation.
22568
22569 * fns.c (substring_both): Remove var that is set but not used.
22570 (sxhash): Redo loop for clarity and to avoid wraparound warning.
22571
22572 * eval.c (funcall_lambda): Rename local to avoid shadowing.
22573
22574 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
22575 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
22576 can always succeed if overflow has undefined behavior.
22577
22578 * search.c (boyer_moore, wordify): Remove vars set but not used.
22579 (wordify): Omit three unnecessary tests.
22580
22581 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
22582 All callers changed. This avoids the need for an unused var.
22583
22584 * casefiddle.c (casify_region): Remove var that is set but not used.
22585
22586 * dired.c (file_name_completion): Remove var that is set but not used.
22587
22588 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
22589
22590 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
22591 (Finsert_file_contents): Remove unnecessary code checking fd.
22592
22593 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
22594 Check for integer overflow on size calculations.
22595
22596 * buffer.c (Fprevious_overlay_change): Remove var that is set
22597 but not used.
22598
22599 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
22600 Remove vars that are set but not used.
22601 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
22602 (timer_check_2): Mark vars as initialized.
22603
22604 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
22605
22606 * image.c (lookup_image): Remove var that is set but not used.
22607 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
22608
22609 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
22610 that are set but not used.
22611
22612 * xfns.c (make_invisible_cursor): Don't return garbage
22613 if XCreateBitmapFromData fails (Bug#8410).
22614
22615 * xselect.c (x_get_local_selection, x_handle_property_notify):
22616 Remove vars that are set but not used.
22617
22618 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
22619 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
22620
22621 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
22622 Remove var that is set but not used.
22623 (scroll_bar_windows_size): Now size_t, not int.
22624 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
22625 Check for overflow.
22626
22627 * xfaces.c (realize_named_face): Remove vars that are set but not used.
22628 (map_tty_color) [!defined MSDOS]: Likewise.
22629
22630 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
22631
22632 * coding.c: Remove vars that are set but not used.
22633 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
22634 All callers changed.
22635 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
22636 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
22637 (decode_coding_charset): Remove vars that are set but not used.
22638
22639 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
22640 that is set but not used.
22641
22642 * print.c (print_object): Remove var that is set but not used.
22643
22644 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
22645 The gnulib version avoids calling malloc in the usual case,
22646 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
22647 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
22648 * filelock.c (current_lock_owner): Likewise.
22649 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
22650 * sysdep.c: Include allocator.h, careadlinkat.h.
22651 (emacs_no_realloc_allocator): New static constant.
22652 (emacs_readlink): New function.
22653 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
22654 ../lib/careadlinkat.h.
22655
226562011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
22657
22658 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
22659 first non-nil return value).
22660
226612011-04-03 Jan Djärv <jan.h.d@swipnet.se>
22662
22663 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
22664 if not defined (Bug#8403).
22665
226662011-04-02 Juanma Barranquero <lekktu@gmail.com>
22667
22668 * xdisp.c (display_count_lines): Remove parameter `start',
22669 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
22670 (get_char_face_and_encoding): Remove parameter `multibyte_p',
22671 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
22672 (fill_stretch_glyph_string): Remove parameters `row' and `area',
22673 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
22674 and thereabouts. All callers changed.
22675 (get_per_char_metric): Remove parameter `f', unused since
22676 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
22677
226782011-04-02 Jim Meyering <meyering@redhat.com>
22679
22680 do not dereference NULL upon failed strdup
22681 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
22682 (ns_get_family): Likewise.
22683
226842011-04-02 Juanma Barranquero <lekktu@gmail.com>
22685
22686 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
22687
226882011-04-02 Jan Djärv <jan.h.d@swipnet.se>
22689
22690 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
22691 later (Bug#8403).
22692
226932011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
22694
22695 Add lexical binding.
22696
22697 * window.c (Ftemp_output_buffer_show): New fun.
22698 (Fsave_window_excursion):
22699 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
22700
22701 * lread.c (lisp_file_lexically_bound_p): New function.
22702 (Fload): Bind Qlexical_binding.
22703 (readevalloop): Remove `evalfun' arg.
22704 Bind Qinternal_interpreter_environment.
22705 (Feval_buffer): Bind Qlexical_binding.
22706 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
22707 Mark as dynamic.
22708 (syms_of_lread): Declare `lexical-binding'.
22709
22710 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
22711
22712 * keyboard.c (eval_dyn): New fun.
22713 (menu_item_eval_property): Use it.
22714
22715 * image.c (parse_image_spec): Use Ffunctionp.
22716
22717 * fns.c (concat, mapcar1): Accept byte-code-functions.
22718
22719 * eval.c (Fsetq): Handle lexical vars.
22720 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
22721 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
22722 (FletX, Flet): Obey lexical binding.
22723 (Fcommandp): Handle closures.
22724 (Feval): New `lexical' arg.
22725 (eval_sub): New function extracted from Feval. Use it almost
22726 everywhere where Feval was used. Look up vars in lexical env.
22727 Handle closures.
22728 (Ffunctionp): Move from subr.el.
22729 (Ffuncall): Handle closures.
22730 (apply_lambda): Remove `eval_flags'.
22731 (funcall_lambda): Handle closures and new byte-code-functions.
22732 (Fspecial_variable_p): New function.
22733 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
22734 but without exporting it to Lisp.
22735
22736 * doc.c (Fdocumentation, store_function_docstring):
22737 * data.c (Finteractive_form): Handle closures.
22738
22739 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
22740 interactive spec.
22741
22742 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
22743 New byte-codes.
22744 (exec_byte_code): New function extracted from Fbyte_code to handle new
22745 calling convention for byte-code-functions. Add new byte-codes.
22746
22747 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
22748
22749 * alloc.c (Fmake_symbol): Init new `declared_special' field.
22750
227512011-03-31 Juanma Barranquero <lekktu@gmail.com>
22752
22753 * xdisp.c (redisplay_internal): Fix prototype.
22754
227552011-03-31 Eli Zaretskii <eliz@gnu.org>
22756
22757 * xdisp.c (SCROLL_LIMIT): New macro.
22758 (try_scrolling): Use it when setting scroll_limit.
22759 Limit scrolling to 100 screen lines.
22760 (redisplay_window): Even when falling back on "recentering",
22761 position point in the window according to scroll-conservatively,
22762 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
22763
22764 (try_scrolling): When point is above the window, allow searching
22765 as far as scroll_max, or one screenful, to compute vertical
22766 distance from PT to the scroll margin position. This prevents
22767 try_scrolling from unnecessarily failing when
22768 scroll-conservatively is set to a value slightly larger than the
22769 window height. Clean up the case of PT below the margin at bottom
22770 of window: scroll_max can no longer be INT_MAX. When aggressive
22771 scrolling is in use, don't let point enter the opposite scroll
22772 margin as result of the scroll.
22773 (syms_of_xdisp) <scroll-conservatively>: Document the
22774 threshold of 100 lines for never-recentering scrolling.
22775
227762011-03-31 Juanma Barranquero <lekktu@gmail.com>
22777
22778 * dispextern.h (move_it_by_lines):
22779 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
22780 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
22781 (message_log_check_duplicate): Remove parameters `prev_bol' and
22782 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
22783 (redisplay_internal): Remove parameter `preserve_echo_area',
22784 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
22785
22786 * indent.c (Fvertical_motion):
22787 * window.c (window_scroll_pixel_based, Frecenter):
22788 Don't pass `need_y_p' to `move_it_by_lines'.
22789
227902011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
22791
22792 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
22793 steal a few bits to be more compact.
22794 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
22795 Remove unneeded casts.
22796
22797 * bytecode.c (Fbyte_code): CAR and CDR can GC.
22798
227992011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
22800
22801 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
22802 binding" message (bug#7967).
22803
228042011-03-30 Paul Eggert <eggert@cs.ucla.edu>
22805
22806 Fix more problems found by GCC 4.6.0's static checks.
22807
22808 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
22809 Remove unused local var.
22810
22811 * editfns.c (Fmessage_box): Remove unused local var.
22812
22813 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
22814 (note_mode_line_or_margin_highlight, note_mouse_highlight):
22815 Omit unused local vars.
22816 * window.c (shrink_windows): Omit unused local var.
22817 * menu.c (digest_single_submenu): Omit unused local var.
22818 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
22819 Omit unused local var.
22820
22821 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
22822 Don't assume string length fits in int.
22823 (keyremap_step, read_key_sequence): Use size_t for sizes.
22824 (read_key_sequence): Don't check last_real_key_start redundantly.
22825
22826 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
22827 instead of alloca (Bug#8344).
22828
22829 * eval.c (Fbacktrace): Don't assume nargs fits in int.
22830 (Fbacktrace_frame): Don't assume nframes fits in int.
22831
22832 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
22833
22834 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
22835 concerns.
22836
22837 * term.c (produce_glyphless_glyph): Remove unnecessary test.
22838
22839 * cm.c (calccost): Turn while-do into do-while, for clarity.
22840
22841 * keyboard.c (syms_of_keyboard): Use the same style as later
22842 in this function when indexing through an array. This also
22843 works around GCC bug 48267.
22844
22845 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
22846
22847 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
22848
22849 * chartab.c (sub_char_table_ref_and_range): Redo for slight
22850 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
22851
22852 * keyboard.c, keyboard.h (num_input_events): Now size_t.
22853 This avoids undefined behavior on integer overflow, and is a bit
22854 more convenient anyway since it is compared to a size_t variable.
22855
22856 Variadic C functions now count arguments with size_t, not int.
22857 This avoids an unnecessary limitation on 64-bit machines, which
22858 caused (substring ...) to crash on large vectors (Bug#8344).
22859 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
22860 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
22861 All variadic functions and their callers changed accordingly.
22862 (struct gcpro.nvars): Now size_t, not int. All uses changed.
22863 * data.c (arith_driver, float_arith_driver): Likewise.
22864 * editfns.c (general_insert_function): Likewise.
22865 * eval.c (struct backtrace.nargs, interactive_p)
22866 (internal_condition_case_n, run_hook_with_args, apply_lambda)
22867 (funcall_lambda, mark_backtrace): Likewise.
22868 * fns.c (concat): Likewise.
22869 * frame.c (x_set_frame_parameters): Likewise.
22870 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
22871 0 if not found, not -1. All callers changed.
22872
22873 * alloc.c (garbage_collect): Don't assume stack size fits in int.
22874 (stack_copy_size): Now size_t, not int.
22875 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
22876
228772011-03-28 Juanma Barranquero <lekktu@gmail.com>
22878
22879 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
22880 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
22881 All callers changed.
22882
22883 * lisp.h (multibyte_char_to_unibyte):
22884 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
22885 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
22886 * character.h (CHAR_TO_BYTE8):
22887 * cmds.c (internal_self_insert):
22888 * editfns.c (general_insert_function):
22889 * keymap.c (push_key_description):
22890 * search.c (Freplace_match):
22891 * xdisp.c (message_dolog, set_message_1): All callers changed.
22892
228932011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
22894
22895 * keyboard.c (safe_run_hook_funcall): New function.
22896 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
22897 don't set the hook to nil, but remove the offending function instead.
22898 (Qcommand_hook_internal): Remove, unused.
22899 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
22900 Vcommand_hook_internal.
22901
22902 * eval.c (enum run_hooks_condition): Remove.
22903 (funcall_nil, funcall_not): New functions.
22904 (run_hook_with_args): Call each function through a `funcall' argument.
22905 Remove `cond' argument, now redundant.
22906 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
22907 (Frun_hook_with_args_until_failure): Adjust accordingly.
22908 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
22909
229102011-03-28 Juanma Barranquero <lekktu@gmail.com>
22911
22912 * dispextern.h (string_buffer_position): Remove declaration.
22913
22914 * print.c (strout): Remove parameter `multibyte', unused since
22915 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
22916
22917 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
22918 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
22919 All callers changed.
22920
22921 * w32.c (_wsa_errlist): Use braces for struct initializers.
22922
22923 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
22924 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
22925 All callers changed.
22926 (string_buffer_position): Likewise. Also, make static (it's never
22927 used outside xdisp.c).
22928 (cursor_row_p): Remove parameter `w', unused since
22929 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
22930 (decode_mode_spec): Remove parameter `precision', introduced during
22931 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
22932 All callers changed.
22933
229342011-03-27 Jan Djärv <jan.h.d@swipnet.se>
22935
22936 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
22937
229382011-03-27 Anders Lindgren <andlind@gmail.com>
22939
22940 * nsterm.m (ns_menu_bar_is_hidden): New variable.
22941 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
22942 (ns_update_auto_hide_menu_bar): New functions.
22943 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
22944 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
22945 ns_constrain_all_frames.
22946 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
22947 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
22948
229492011-03-27 Jan Djärv <jan.h.d@swipnet.se>
22950
22951 * nsmenu.m (runDialogAt): Remove argument to timer_check.
22952
229532011-03-27 Glenn Morris <rgm@gnu.org>
22954
22955 * syssignal.h: Replace RETSIGTYPE with void.
22956 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
22957 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
22958 Replace SIGTYPE with void everywhere.
22959 * s/usg5-4-common.h (SIGTYPE): Remove definition.
22960 * s/template.h (SIGTYPE): Remove commented out definition.
22961
229622011-03-26 Eli Zaretskii <eliz@gnu.org>
22963
22964 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
22965 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
22966
229672011-03-26 Juanma Barranquero <lekktu@gmail.com>
22968
22969 * w32.c (read_unc_volume): Use parameter `henum', instead of
22970 global variable `wget_enum_handle'.
22971
22972 * keymap.c (describe_vector): Remove parameters `indices' and
22973 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
22974 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
22975
22976 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
22977
22978 * keyboard.c (timer_check): Remove parameter `do_it_now',
22979 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
22980 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
22981 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
22982
22983 * keyboard.c (read_char):
22984 * w32menu.c (w32_menu_display_help):
22985 * xmenu.c (show_help_event, menu_help_callback):
22986 Adjust calls to `show_help_echo'.
22987
22988 * gtkutil.c (xg_maybe_add_timer):
22989 * keyboard.c (readable_events):
22990 * process.c (wait_reading_process_output):
22991 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
22992
22993 * insdel.c (adjust_markers_gap_motion):
22994 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
22995 (gap_left, gap_right): Don't call it.
22996
229972011-03-25 Chong Yidong <cyd@stupidchicken.com>
22998
22999 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
23000 incurred during fontification.
23001
230022011-03-25 Juanma Barranquero <lekktu@gmail.com>
23003
23004 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
23005 (DEFVAR_PER_BUFFER): Don't pass it.
23006
23007 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
23008 (scrolling_window): Don't pass it.
23009
230102011-03-25 Juanma Barranquero <lekktu@gmail.com>
23011
23012 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
23013
23014 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
23015 and `suffix'.
23016 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
23017 of variables specific to SELinux and computation of `encoded_absname'.
23018
23019 * image.c (XPutPixel): Remove unused variable `height'.
23020
23021 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
23022
23023 * unexw32.c (get_section_info): Remove unused variable `section'.
23024
23025 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
23026 (system_process_attributes): Remove unused variable `sess'.
23027 (sys_read): Remove unused variable `err'.
23028
23029 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
23030 (w32_wnd_proc): Remove unused variable `isdead'.
23031 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
23032 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
23033 (x_create_tip_frame): Remove unused variable `tem'.
23034
23035 * w32inevt.c (w32_console_read_socket):
23036 Remove unused variable `no_events'.
23037
23038 * w32term.c (x_draw_composite_glyph_string_foreground):
23039 Remove unused variable `width'.
23040
230412011-03-24 Juanma Barranquero <lekktu@gmail.com>
23042
23043 * w32term.c (x_set_glyph_string_clipping):
23044 Don't pass uninitialized region to CombineRgn.
23045
230462011-03-23 Juanma Barranquero <lekktu@gmail.com>
23047
23048 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
23049 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
23050 (Fx_close_connection): Remove unused variable `i'.
23051
23052 * w32font.c (w32font_draw): Return number of glyphs.
23053 (w32font_open_internal): Remove unused variable `i'.
23054 (w32font_driver): Add missing initializer.
23055
23056 * w32menu.c (utf8to16): Remove unused variable `utf16'.
23057 (fill_in_menu): Remove unused variable `items_added'.
23058
23059 * w32term.c (last_mouse_press_frame): Remove static global variable.
23060 (w32_clip_to_row): Remove unused variable `f'.
23061 (x_delete_terminal): Remove unused variable `i'.
23062
23063 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
23064 (NOTHING): Remove unused static global variable.
23065 (uniscribe_check_otf): Remove unused variable `table'.
23066 (uniscribe_font_driver): Add missing initializers.
23067
230682011-03-23 Julien Danjou <julien@danjou.info>
23069
23070 * term.c (Fsuspend_tty, Fresume_tty):
23071 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
23072 * window.c (temp_output_buffer_show):
23073 * insdel.c (signal_before_change):
23074 * frame.c (Fhandle_switch_frame):
23075 * fileio.c (Fdo_auto_save):
23076 * emacs.c (Fkill_emacs):
23077 * editfns.c (save_excursion_restore):
23078 * cmds.c (internal_self_insert):
23079 * callint.c (Fcall_interactively):
23080 * buffer.c (Fkill_all_local_variables):
23081 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
23082 Use Frun_hooks.
23083 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
23084 unconditionally since it does the check itself.
23085
230862011-03-23 Paul Eggert <eggert@cs.ucla.edu>
23087
23088 Fix more problems found by GCC 4.5.2's static checks.
23089
23090 * coding.c (encode_coding_raw_text): Avoid unnecessary test
23091 the first time through the loop, since we know p0 < p1 then.
23092 This also avoids a gcc -Wstrict-overflow warning.
23093
23094 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
23095 leading to a memory leak, possible in functions like
23096 load_charset_map_from_file that can allocate an unbounded number
23097 of objects (Bug#8318).
23098
23099 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
23100 that could (at least in theory) be that large.
23101
23102 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
23103 This is less likely to overflow, and avoids undefined behavior if
23104 overflow does occur. All callers changed. Use strtoul to scan
23105 for the unsigned long integer.
23106 (pint2hrstr): Simplify and tune code slightly.
23107 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
23108
23109 * scroll.c (do_scrolling): Work around GCC bug 48228.
23110 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
23111
23112 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
23113 This also avoids a warning with gcc -Wstrict-overflow.
23114 (validate_x_resource_name): Simplify count usage.
23115 This also avoids a warning with gcc -Wstrict-overflow.
23116
23117 * fileio.c (Fcopy_file): Report error if fchown or fchmod
23118 fail (Bug#8306).
23119
23120 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
23121
23122 * process.c (Fmake_network_process): Use socklen_t, not int,
23123 where POSIX says socklen_t is required in portable programs.
23124 This fixes a porting bug on hosts like 64-bit HP-UX, where
23125 socklen_t is wider than int (Bug#8277).
23126 (Fmake_network_process, server_accept_connection):
23127 (wait_reading_process_output, read_process_output):
23128 Likewise.
23129
23130 * process.c: Rename or move locals to avoid shadowing.
23131 (list_processes_1, Fmake_network_process):
23132 (read_process_output_error_handler, exec_sentinel_error_handler):
23133 Rename or move locals.
23134 (Fmake_network_process): Define label "retry_connect" only if needed.
23135 (Fnetwork_interface_info): Fix pointer signedness.
23136 (process_send_signal): Add cast to avoid pointer signedness problem.
23137 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
23138 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
23139
23140 Make tparam.h and terminfo.c consistent.
23141 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
23142 Include tparam.h instead, since it declares them.
23143 * cm.h (PC): Remove extern decl; tparam.h now does this.
23144 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
23145 * terminfo.c: Include tparam.h, to check interfaces.
23146 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
23147 (tparam): Adjust signature to match interface in tparam.h;
23148 this removes some undefined behavior. Check that outstring and len
23149 are zero, which they always are with Emacs.
23150 * tparam.h (PC, BC, UP): New extern decls.
23151
23152 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
23153 (xftfont_open): Rename locals to avoid shadowing.
23154
23155 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
23156 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
23157 (OTF_TAG_SYM): Omit macro if not needed.
23158 (ftfont_list): Remove unused local.
23159 (get_adstyle_property, ftfont_pattern_entity):
23160 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
23161 Rename locals to avoid shadowing.
23162
23163 * xfont.c (xfont_list_family): Mark var as initialized.
23164
23165 * xml.c (make_dom): Now static.
23166
23167 * composite.c (composition_compute_stop_pos): Rename local to
23168 avoid shadowing.
23169 (composition_reseat_it): Remove unused locals.
23170 (find_automatic_composition, composition_adjust_point): Likewise.
23171 (composition_update_it): Mark var as initialized.
23172 (find_automatic_composition): Mark vars as initialized,
23173 with a FIXME (Bug#8290).
23174
23175 character.h: Rename locals to avoid shadowing.
23176 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
23177 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
23178 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
23179 (BUF_DEC_POS): Be more systematic about renaming local temporaries
23180 to avoid shadowing.
23181
23182 * textprop.c (property_change_between_p): Remove; unused.
23183
23184 * intervals.c (interval_start_pos): Now static.
23185
23186 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
23187
23188 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
23189 Rename locals to avoid shadowing.
23190
23191 * sound.c (wav_play, au_play, Fplay_sound_internal):
23192 Fix pointer signedness.
23193 (alsa_choose_format): Remove unused local var.
23194 (wav_play): Initialize a variable to 0, to prevent undefined
23195 behavior (Bug#8278).
23196
23197 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
23198
23199 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
23200
23201 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
23202 clobbering (Bug#8298).
23203 * sysdep.c (sys_subshell): Likewise.
23204 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
23205
23206 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
23207 This should get cleaned up, so that child_setup has the
23208 same signature on all platforms.
23209
23210 * callproc.c (call_process_cleanup): Now static.
23211 (relocate_fd): Rename locals to avoid shadowing.
23212
232132011-03-22 Chong Yidong <cyd@stupidchicken.com>
23214
23215 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
23216 not to be necessary, and produces flickering.
23217
232182011-03-20 Glenn Morris <rgm@gnu.org>
23219
23220 * config.in: Remove file.
23221
232222011-03-20 Juanma Barranquero <lekktu@gmail.com>
23223
23224 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
23225 are now in src/globals.h.
23226 (syms_of_minibuf): Remove spurious & from previous change.
23227
232282011-03-20 Leo Liu <sdl.web@gmail.com>
23229
23230 * minibuf.c (completing-read-function): New variable.
23231 (completing-read-default): Rename from completing-read.
23232 (completing-read): Call completing-read-function.
23233
232342011-03-19 Juanma Barranquero <lekktu@gmail.com>
23235
23236 * xfaces.c (Fx_load_color_file):
23237 Read color file from absolute filename (bug#8250).
23238
232392011-03-19 Juanma Barranquero <lekktu@gmail.com>
23240
23241 * makefile.w32-in: Update dependencies.
23242
232432011-03-17 Eli Zaretskii <eliz@gnu.org>
23244
23245 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
23246
232472011-03-17 Paul Eggert <eggert@cs.ucla.edu>
23248
23249 Fix more problems found by GCC 4.5.2's static checks.
23250
23251 * process.c (make_serial_process_unwind, send_process_trap):
23252 (sigchld_handler): Now static.
23253
23254 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
23255 That way, the code declares only the vars that it needs.
23256 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
23257 * s/cygwin.h (PTY_ITERATION): Likewise.
23258 * s/darwin.h (PTY_ITERATION): Likewise.
23259 * s/gnu-linux.h (PTY_ITERATION): Likewise.
23260
23261 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
23262 * process.c (allocate_pty): Don't declare stb unless it's needed.
23263
23264 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
23265 (CONSTANTLIM): Remove; unused.
23266 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
23267 Define only if needed.
23268
23269 * unexelf.c (unexec): Name an expression,
23270 to avoid gcc -Wbad-function-cast warning.
23271 Use a different way to cause a compilation error if anyone uses
23272 n rather than nn, a way that does not involve shadowing.
23273 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
23274
23275 * deps.mk (unexalpha.o): Remove; unused.
23276
23277 New file unexec.h, the (simple) interface for unexec (Bug#8267).
23278 * unexec.h: New file.
23279 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
23280 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
23281 Depend on unexec.h.
23282 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
23283 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
23284 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
23285 Change as necessary to match prototype in unexec.h.
23286
23287 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
23288 shadowing.
23289 (back_comment, skip_chars): Mark vars as initialized.
23290
23291 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
23292 Rename locals to avoid shadowing.
23293
23294 * lread.c (read1): Rewrite so as not to use empty "else".
23295 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
23296
23297 * print.c (Fredirect_debugging_output): Fix pointer signedess.
23298
23299 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
23300 warning when compiling print.c.
23301
23302 * font.c (font_unparse_fcname): Abort in an "impossible" situation
23303 instead of using an uninitialized var.
23304 (font_sort_entities): Mark var as initialized.
23305
23306 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
23307
23308 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
23309 pointers to constants.
23310 (font_parse_fcname): Remove unused vars.
23311 (font_delete_unmatched): Now static.
23312 (font_get_spec): Remove; unused.
23313 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
23314 (font_update_drivers, Ffont_get_glyphs, font_add_log):
23315 Rename or move locals to avoid shadowing.
23316
23317 * fns.c (require_nesting_list, require_unwind): Now static.
23318 (Ffillarray): Rename locals to avoid shadowing.
23319
23320 * floatfns.c (domain_error2): Define only if needed.
23321 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
23322
23323 * alloc.c (mark_backtrace): Move decl from here ...
23324 * lisp.h: ... to here, so that it can be checked.
23325
23326 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
23327 (Fdefvar): Rewrite so as not to use empty "else".
23328 (lisp_indirect_variable): Name an expression,
23329 to avoid gcc -Wbad-function-cast warning.
23330 (Fdefvar): Rename locals to avoid shadowing.
23331
23332 * callint.c (quotify_arg, quotify_args): Now static.
23333 (Fcall_interactively): Rename locals to avoid shadowing.
23334 Use const pointer when appropriate.
23335
23336 * lisp.h (get_system_name, get_operating_system_release):
23337 Move decls here, to check interfaces.
23338 * process.c (get_operating_system_release): Move decl to lisp.h.
23339 * xrdb.c (get_system_name): Likewise.
23340 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
23341 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
23342 some of which prompt warnings from gcc -Wbad-function-cast.
23343 (Fformat_time_string, Fencode_time, Finsert_char):
23344 (Ftranslate_region_internal, Fformat):
23345 Rename or remove local vars to avoid shadowing.
23346 (Ftranslate_region_internal): Mark var as initialized.
23347
23348 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
23349 avoid shadowing.
23350
23351 * lisp.h (eassert): Check that the argument compiles, even if
23352 ENABLE_CHECKING is not defined.
23353
23354 * data.c (Findirect_variable): Name an expression, to avoid
23355 gcc -Wbad-function-cast warning.
23356 (default_value, arithcompare, arith_driver, arith_error): Now static.
23357 (store_symval_forwarding): Rename local to avoid shadowing.
23358 (Fmake_variable_buffer_local, Fmake_local_variable):
23359 Mark variables as initialized.
23360 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
23361
23362 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
23363 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
23364 Rename locals to avoid shadowing.
23365 (mark_stack): Move local variables into the #ifdef region where
23366 they're used.
23367 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
23368 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
23369 needed otherwise.
23370 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
23371 (GC_STRING_CHARS): Remove; not used.
23372 (Fmemory_limit): Cast sbrk's returned value to char *.
23373
23374 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
23375 avoids undefined behavior in theory.
23376
23377 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
23378
23379 Use functions, not macros, for up- and down-casing (Bug#8254).
23380 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
23381 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
23382 to use the following functions instead of these macros.
23383 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
23384 EMACS_INT, since callers assume the returned value fits in int.
23385 (upcase1): Likewise, for UPCASE_TABLE.
23386 (uppercasep, lowercasep, upcase): New static inline functions.
23387 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
23388 the race-condition problem in the old DOWNCASE.
23389
23390 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
23391 Rename locals to avoid shadowing.
23392 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
23393 (regex_compile, re_search_2, re_match_2_internal):
23394 Remove unused local vars.
23395 (FREE_VAR): Rewrite so as not to use empty "else",
23396 which gcc can warn about.
23397 (regex_compile, re_match_2_internal): Mark locals as initialized.
23398 (RETALLOC_IF): Define only if needed.
23399 (WORDCHAR_P): Likewise. This one is never needed, but is used
23400 only in a comment talking about a compiler bug, so put inside
23401 the #if 0 of that comment.
23402 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
23403 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
23404 Remove; unused.
23405
23406 * search.c (boyer_moore): Rename locals to avoid shadowing.
23407 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
23408 (PREV_CHAR_BOUNDARY): Likewise.
23409
23410 * search.c (simple_search): Remove unused var.
23411
23412 * dired.c (compile_pattern): Move decl from here ...
23413 * lisp.h: ... to here, so that it can be checked.
23414 (struct re_registers): New forward decl.
23415
23416 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
23417
23418 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
23419 All uses changed.
23420 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
23421 Rename locals to avoid shadowing.
23422 (Fvertical_motion): Mark locals as initialized.
23423
23424 * casefiddle.c (casify_object, casify_region): Now static.
23425 (casify_region): Mark local as initialized.
23426
23427 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
23428
23429 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
23430 New macros, so that the caller can use some names other than
23431 gcpro1, gcpro2, etc.
23432 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
23433 of the new macros.
23434 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
23435 argument, for consistency with GCPRO2_VAR, etc: it is now the
23436 prefix of the variable, not the variable itself. All uses
23437 changed.
23438 * dired.c (directory_files_internal, file_name_completion):
23439 Rename locals to avoid shadowing.
23440
23441 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
23442 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
23443 dired.c's scmp function, had undefined behavior.
23444 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
23445 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
23446 * buffer.h: ... to here, because these macros use current_buffer,
23447 and the new implementation with inline functions needs to have
23448 current_buffer in scope now, rather than later when the macros
23449 are used.
23450 (downcase, upcase1): New static inline functions.
23451 (DOWNCASE, UPCASE1): Reimplement using these functions.
23452 This avoids undefined behavior in expressions like
23453 DOWNCASE (x) == DOWNCASE (y), which previously suffered
23454 from race conditions in accessing the global variables
23455 case_temp1 and case_temp2.
23456 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
23457 * lisp.h (case_temp1, case_temp2): Remove their decls.
23458 * character.h (ASCII_CHAR_P): Move from here ...
23459 * lisp.h: ... to here, so that the inline functions mentioned
23460 above can use them.
23461
23462 * dired.c (directory_files_internal_unwind): Now static.
23463
23464 * fileio.c (file_name_as_directory, directory_file_name):
23465 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
23466 Now static.
23467 (file_name_as_directory): Use const pointers when appropriate.
23468 (Fexpand_file_name): Likewise. In particular, newdir might
23469 point at constant storage, so make it a const pointer.
23470 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
23471 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
23472 signedness issues.
23473 (Fset_file_times, Finsert_file_contents, auto_save_error):
23474 Rename locals to avoid shadowing.
23475
23476 * minibuf.c (choose_minibuf_frame_1): Now static.
23477 (Ftry_completion, Fall_completions): Rename or remove locals
23478 to avoid shadowing.
23479
23480 * marker.c (bytepos_to_charpos): Remove; unused.
23481
23482 * lisp.h (verify_bytepos, count_markers): New decls,
23483 so that gcc does not warn that these functions aren't declared.
23484
23485 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
23486 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
23487 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
23488 (copy_text): Remove unused local var.
23489
23490 * filelock.c (within_one_second): Now static.
23491 (lock_file_1): Rename local to avoid shadowing.
23492
23493 * buffer.c (fix_overlays_before): Mark locals as initialized.
23494 (fix_start_end_in_overlays): Likewise. This function should be
23495 simplified by using pointers-to-pointers, but that's a different
23496 matter.
23497 (switch_to_buffer_1): Now static.
23498 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
23499 (report_overlay_modification): Rename locals to avoid shadowing.
23500
23501 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
23502 Fix pointer signedness issue.
23503 (sys_subshell): Mark local as volatile if checking for lint,
23504 to suppress a gcc -Wclobbered warning that does not seem to be right.
23505 (MAXPATHLEN): Define only if needed.
23506
23507 * process.c (serial_open, serial_configure): Move decls from here ...
23508 * systty.h: ... to here, so that they can be checked.
23509
23510 * fns.c (get_random, seed_random): Move extern decls from here ...
23511 * lisp.h: ... to here, so that they can be checked.
23512
23513 * sysdep.c (reset_io): Now static.
23514 (wait_for_termination_signal): Remove; unused.
23515
23516 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
23517 (copy_keymap_item, append_key, push_text_char_description):
23518 Now static.
23519 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
23520 (DENSE_TABLE_SIZE): Remove; unused.
23521 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
23522 (describe_map_tree):
23523 Rename locals to avoid shadowing.
23524
23525 * keyboard.c: Declare functions static if they are not used elsewhere.
23526 (echo_char, echo_dash, cmd_error, top_level_2):
23527 (poll_for_input, handle_async_input): Now static.
23528 (read_char, kbd_buffer_get_event, make_lispy_position):
23529 (make_lispy_event, make_lispy_movement, apply_modifiers):
23530 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
23531 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
23532 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
23533 (read_key_sequence, read_char): Mark locals as initialized.
23534 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
23535
23536 * keyboard.h (make_ctrl_char): New decl.
23537 (mark_kboards): Move decl here ...
23538 * alloc.c (mark_kboards): ... from here.
23539
23540 * lisp.h (force_auto_save_soon): New decl.
23541
23542 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
23543 (DEFINE_DUMMY_FUNCTION): New macro.
23544 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
23545 Use it.
23546 (main): Add casts to avoid warnings
23547 if GCC considers string literals to be constants.
23548
23549 * lisp.h (fatal_error_signal): Add decl, since it's exported.
23550
23551 * dbusbind.c: Pointer signedness fixes.
23552 (xd_signature, xd_append_arg, xd_initialize):
23553 (Fdbus_call_method, Fdbus_call_method_asynchronously):
23554 (Fdbus_method_return_internal, Fdbus_method_error_internal):
23555 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
23556 (Fdbus_register_signal): Use SSDATA when the context wants char *.
23557
23558 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
23559 if GCC considers string literals to be constants.
23560 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
23561
235622011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
23563
23564 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
23565 (print_preprocess, print_object): New macro to fix last change.
23566
23567 * print.c (print_preprocess): Don't forget font objects.
23568
235692011-03-16 Juanma Barranquero <lekktu@gmail.com>
23570
23571 * emacs.c (USAGE3): Doc fixes.
23572
235732011-03-15 Andreas Schwab <schwab@linux-m68k.org>
23574
23575 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
23576 structure.
23577
235782011-03-14 Juanma Barranquero <lekktu@gmail.com>
23579
23580 * lisp.h (VWindow_system, Qfile_name_history):
23581 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
23582 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
23583 (w32_system_caret_x, w32_system_caret_y): Declare extern.
23584
23585 * w32select.c: Don't #include "keyboard.h".
23586 (run_protected): Add extern declaration for waiting_for_input.
23587
23588 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
23589 * w32console.c (detect_input_pending, read_input_pending)
23590 (encode_terminal_code):
23591 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
23592 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
23593 (w32_system_caret_y, Qfile_name_history):
23594 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
23595 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
23596 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
23597 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
23598 * w32proc.c (Qlocal, report_file_error):
23599 * w32term.c (Vwindow_system, updating_frame):
23600 * w32uniscribe.c (initialized, uniscribe_font_driver):
23601 Remove unneeded extern declarations.
23602
236032011-03-14 Chong Yidong <cyd@stupidchicken.com>
23604
23605 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
23606
236072011-03-13 Chong Yidong <cyd@stupidchicken.com>
23608
23609 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
23610 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
23611 These macros can no longer be used for assignment.
23612
23613 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
23614 Assign struct members directly, instead of using BUF_BEGV etc.
23615 (record_buffer_markers, fetch_buffer_markers): New functions for
23616 recording and fetching special buffer markers.
23617 (set_buffer_internal_1, set_buffer_temp): Use them.
23618
23619 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
23620
23621 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
23622
23623 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
23624 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
23625
23626 * xdisp.c (hscroll_window_tree):
23627 (reconsider_clip_changes): Use PT instead of BUF_PT.
23628
236292011-03-13 Eli Zaretskii <eliz@gnu.org>
23630
23631 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
23632 $(EMACS_ROOT)/lib/intprops.h.
23633
236342011-03-13 Paul Eggert <eggert@cs.ucla.edu>
23635
23636 Fix more problems found by GCC 4.5.2's static checks.
23637
23638 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
23639 to unsigned char * to avoid compiler diagnostic.
23640 (xg_free_frame_widgets): Make it clear that a local variable is
23641 needed only if USE_GTK_TOOLTIP.
23642 (gdk_window_get_screen): Make it clear that this macro is needed
23643 only if USE_GTK_TOOLTIP.
23644 (int_gtk_range_get_value): New function, which avoids a diagnostic
23645 from gcc -Wbad-function-cast.
23646 (xg_set_toolkit_scroll_bar_thumb): Use it.
23647 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
23648 diagnostic from gcc -Wbad-function-cast.
23649 (get_utf8_string, xg_get_file_with_chooser):
23650 Rename locals to avoid shadowing.
23651 (create_dialog): Move locals to avoid shadowing.
23652
23653 * xgselect.c (xg_select): Remove unused var.
23654
23655 * image.c (four_corners_best): Mark locals as initialized.
23656 (gif_load): Initialize transparent_p to zero (Bug#8238).
23657 Mark another local as initialized.
23658 (my_png_error, my_error_exit): Mark with NO_RETURN.
23659
23660 * image.c (clear_image_cache): Now static.
23661 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
23662 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
23663 (x_edge_detection): Remove unnecessary cast that
23664 gcc -Wbad-function-cast diagnoses.
23665 (gif_load): Fix pointer signedness.
23666 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
23667 (jpeg_load, gif_load): Rename locals to avoid shadowing.
23668
236692011-03-12 Paul Eggert <eggert@cs.ucla.edu>
23670
23671 Improve quality of tests for time stamp overflow.
23672 For example, without this patch (encode-time 0 0 0 1 1
23673 1152921504606846976) returns the obviously-bogus value (-948597
23674 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
23675 reports time overflow. See
23676 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
23677 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
23678 * editfns.c: Include limits.h and intprops.h.
23679 (TIME_T_MIN, TIME_T_MAX): New macros.
23680 (time_overflow): Move earlier, to before first use.
23681 (hi_time, lo_time): New functions, for an accurate test for
23682 out-of-range times.
23683 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
23684 (Fget_internal_run_time): Don't assume time_t fits in int.
23685 (make_time): Use list2 instead of Fcons twice.
23686 (Fdecode_time): More accurate test for out-of-range times.
23687 (check_tm_member): New function.
23688 (Fencode_time): Use it, to test for out-of-range times.
23689 (lisp_time_argument): Don't rely on undefined left-shift and
23690 right-shift behavior when checking for time stamp overflow.
23691
23692 * editfns.c (time_overflow): New function, refactoring common code.
23693 (Fformat_time_string, Fdecode_time, Fencode_time):
23694 (Fcurrent_time_string): Use it.
23695
23696 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
23697 * dired.c (make_time): Move to ...
23698 * editfns.c (make_time): ... here.
23699 * systime.h: Note the move.
23700
237012011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
23702
23703 * fringe.c (update_window_fringes): Remove unused variables.
23704
23705 * unexmacosx.c (copy_data_segment): Also copy __got section.
23706 (Bug#8223)
23707
237082011-03-12 Eli Zaretskii <eliz@gnu.org>
23709
23710 * termcap.c [MSDOS]: Include "msdos.h".
23711 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
23712 Constify `char *' arguments and their references according to
23713 prototypes in tparam.h.
23714
23715 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
23716
23717 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
23718 Adapt all references accordingly.
23719
23720 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
23721
237222011-03-11 Tom Tromey <tromey@redhat.com>
23723
23724 * buffer.c (syms_of_buffer): Remove obsolete comment.
23725
237262011-03-11 Eli Zaretskii <eliz@gnu.org>
23727
23728 * termhooks.h (encode_terminal_code): Declare prototype.
23729
23730 * msdos.c (encode_terminal_code): Don't declare prototype.
23731
23732 * term.c (encode_terminal_code): Now external again, used by
23733 w32console.c and msdos.c.
23734
23735 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
23736 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
23737
237382011-03-11 Paul Eggert <eggert@cs.ucla.edu>
23739
23740 Fix some minor problems found by GCC 4.5.2's static checks.
23741
23742 * fringe.c (update_window_fringes): Mark locals as initialized
23743 (Bug#8227).
23744 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
23745
23746 * alloc.c (mark_fringe_data): Move decl from here ...
23747 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
23748 to check its interface.
23749 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
23750
23751 * fontset.c (free_realized_fontset): Now static.
23752 (Fset_fontset_font): Rename local to avoid shadowing.
23753 (fontset_font): Mark local as initialized.
23754 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
23755
23756 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
23757
23758 * xselect.c (x_disown_buffer_selections): Remove; not used.
23759 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
23760 (x_own_selection, Fx_disown_selection_internal): Rename locals
23761 to avoid shadowing.
23762 (x_handle_dnd_message): Remove local to avoid shadowing.
23763
23764 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
23765 so that the caller can use some name other than gcpro1.
23766 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
23767 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
23768 (Fx_backspace_delete_keys_p):
23769 Use them to avoid shadowing, and rename vars to avoid shadowing.
23770 (x_decode_color, x_set_name, x_window): Now static.
23771 (Fx_create_frame): Add braces to silence GCC warning.
23772 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
23773 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
23774 Remove unused locals.
23775 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
23776 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
23777 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
23778 macros.
23779
23780 * xterm.h (x_mouse_leave): New decl.
23781
23782 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
23783 Remove unused functions.
23784 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
23785 (x_calc_absolute_position): Now static.
23786 (XTread_socket): Don't define label "out" unless it's used.
23787 Don't declare local "event" unless it's used.
23788 (x_iconify_frame, x_free_frame_resources): Don't declare locals
23789 unless they are used.
23790 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
23791 (x_fatal_error_signal): Remove; not used.
23792 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
23793 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
23794 (x_error_catcher, x_connection_closed, x_error_handler):
23795 (x_error_quitter, xembed_send_message, x_iconify_frame):
23796 (my_log_handler): Rename locals to avoid shadowing.
23797 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
23798 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
23799
23800 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
23801 Rename or move locals to avoid shadowing.
23802 (tty_defined_color, merge_face_heights): Now static.
23803 (free_realized_faces_for_fontset): Remove; not used.
23804 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
23805 does not deduce is never used uninitialized.
23806 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
23807 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
23808
23809 * terminal.c (store_terminal_param): Now static.
23810
23811 * xmenu.c (menu_highlight_callback): Now static.
23812 (set_frame_menubar): Remove unused local.
23813 (xmenu_show): Rename parameter to avoid shadowing.
23814 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
23815 since they might point to immutable storage.
23816 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
23817 since it's unused otherwise.
23818
23819 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
23820 Add a FIXME, since the code still doesn't look right. (Bug#8215)
23821 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
23822 avoids a gcc -Wuninitialized diagnostic.
23823 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
23824 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
23825 does not deduce are never used uninitialized.
23826
23827 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
23828
23829 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
23830 * window.c (window_loop, size_window):
23831 (run_window_configuration_change_hook, enlarge_window): Likewise.
23832
23833 * window.c (display_buffer): Now static.
23834 (size_window): Mark variables that gcc -Wuninitialized
23835 does not deduce are never used uninitialized.
23836 * window.h (check_all_windows): New decl, to forestall
23837 gcc -Wmissing-prototypes diagnostic.
23838 * dispextern.h (bidi_dump_cached_states): Likewise.
23839
23840 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
23841 shadowing.
23842 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
23843 Include <limits.h>.
23844 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
23845 and to avoid gcc -Wuninitialized warning.
23846 (load_charset_map): Mark variables that gcc -Wuninitialized
23847 does not deduce are never used uninitialized.
23848 (load_charset): Abort instead of using uninitialized var (Bug#8229).
23849
23850 * coding.c (coding_set_source, coding_set_destination):
23851 Use "else { /* comment */ }" rather than "else /* comment */;"
23852 for clarity, and to avoid gcc -Wempty-body warning.
23853 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
23854 a block, when the outer 'i' will do.
23855 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
23856 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
23857 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
23858 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
23859 (Fdecode_sjis_char, Fdefine_coding_system_internal):
23860 Rename locals to avoid shadowing.
23861 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
23862 * coding.c (emacs_mule_char, encode_invocation_designation):
23863 Now static, since they're not used elsewhere.
23864 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
23865 (decode_coding_object, encode_coding_object, detect_coding_system):
23866 (decode_coding_emacs_mule): Mark variables that gcc
23867 -Wuninitialized does not deduce are never used uninitialized.
23868 (detect_coding_iso_2022): Initialize a local variable that might
23869 be used uninitialized. Leave a FIXME because it's not clear that
23870 this initialization is needed. (Bug#8211)
23871 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
23872 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
23873 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
23874 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
23875 Remove unused macros.
23876
23877 * category.c (hash_get_category_set): Remove unused local var.
23878 (copy_category_table): Now static, since it's not used elsewhere.
23879 * character.c (string_count_byte8): Likewise.
23880
23881 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
23882 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
23883
23884 * chartab.c (copy_sub_char_table): Now static, since it's not used
23885 elsewhere.
23886 (sub_char_table_ref_and_range, char_table_ref_and_range):
23887 Rename locals to avoid shadowing.
23888 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
23889
23890 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
23891 (BIDI_BOB): Remove unused macro.
23892
23893 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
23894 deduce are never used uninitialized.
23895 * term.c (encode_terminal_code): Likewise.
23896
23897 * term.c (encode_terminal_code): Now static. Remove unused local.
23898
23899 * tparam.h: New file.
23900 * term.c, tparam.h: Include it.
23901 * deps.mk (term.o, tparam.o): Depend on tparam.h.
23902 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
23903 Move these decls to tparam.h, and make them agree with what
23904 is actually in tparam.c. The previous trick of using incompatible
23905 decls in different modules does not conform to the C standard.
23906 All callers of tparam changed to use tparam's actual API.
23907 * tparam.c (tparam1, tparam, tgoto):
23908 Use const pointers where appropriate.
23909
23910 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
23911 * cm.h (struct cm): Likewise.
23912 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
23913 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
23914 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
23915 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
23916 (turn_on_face, init_tty): Likewise.
23917 * termchar.h (struct tty_display_info): Likewise.
23918
23919 * term.c (term_mouse_position): Rename local to avoid shadowing.
23920
23921 * alloc.c (mark_ttys): Move decl from here ...
23922 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
23923
239242011-03-11 Andreas Schwab <schwab@linux-m68k.org>
23925
23926 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
23927
239282011-03-09 Juanma Barranquero <lekktu@gmail.com>
23929
23930 * search.c (compile_pattern_1): Remove argument regp, unused since
23931 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
23932 (compile_pattern): Don't pass it.
23933
239342011-03-08 Jan Djärv <jan.h.d@swipnet.se>
23935
23936 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
23937 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
23938 for ! HAVE_GTK3.
23939 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
23940
23941 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
23942
23943 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
23944 gdk_window_get_screen, gdk_window_get_geometry,
23945 gdk_x11_window_lookup_for_display and GDK_KEY_g.
23946 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
23947 (xg_get_pixbuf_from_pixmap): New function.
23948 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
23949 to Pixmap, take frame as parameter, remove GdkColormap parameter.
23950 Call xg_get_pixbuf_from_pixmap instead of
23951 gdk_pixbuf_get_from_drawable.
23952 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
23953 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
23954 (xg_check_special_colors): Use GtkStyleContext and its functions
23955 for HAVE_GTK3.
23956 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
23957 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
23958 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
23959 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
23960 Call gtk_widget_get_preferred_size.
23961 (xg_frame_resized): gdk_window_get_geometry only takes 5
23962 parameters.
23963 (xg_win_to_widget, xg_event_is_for_menubar):
23964 Call gdk_x11_window_lookup_for_display.
23965 (xg_set_widget_bg): New function.
23966 (delete_cb): New function.
23967 (xg_create_frame_widgets): Connect delete-event to delete_cb.
23968 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
23969 (xg_set_background_color): Call xg_set_widget_bg.
23970 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
23971 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
23972 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
23973 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
23974 if ! HAVE_GTK3.
23975 (update_frame_tool_bar): Call gtk_widget_hide.
23976 (xg_initialize): Use GDK_KEY_g.
23977
23978 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
23979 if ! HAVE_GTK3
23980 (x_session_initialize): Call gdk_x11_set_sm_client_id.
23981
23982 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
23983 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
23984 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
23985
239862011-03-08 Juanma Barranquero <lekktu@gmail.com>
23987
23988 * w32xfns.c (select_palette): Check success of RealizePalette against
23989 GDI_ERROR, not zero.
23990
23991See ChangeLog.11 for earlier changes.
23992
23993;; Local Variables:
23994;; coding: utf-8
23995;; End:
23996
23997 Copyright (C) 2011-2013 Free Software Foundation, Inc.
23998
23999 This file is part of GNU Emacs.
24000
24001 GNU Emacs is free software: you can redistribute it and/or modify
24002 it under the terms of the GNU General Public License as published by
24003 the Free Software Foundation, either version 3 of the License, or
24004 (at your option) any later version.
24005
24006 GNU Emacs is distributed in the hope that it will be useful,
24007 but WITHOUT ANY WARRANTY; without even the implied warranty of
24008 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24009 GNU General Public License for more details.
24010
24011 You should have received a copy of the GNU General Public License
24012 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.