X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/e0453b552e68fc2c05cb78cec6103511660c7531..acfa068f4a1a4652b784af1d7aaac92929399249:/src/ChangeLog diff --git a/src/ChangeLog b/src/ChangeLog index 49c1fa345b..f3b8b2108e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,144 +1,6022 @@ -2012-09-12 Jan Djärv +2012-09-21 YAMAMOTO Mitsuharu + + * unexmacosx.c: Define LC_DATA_IN_CODE if not defined. + (print_load_command_name): Add case LC_DATA_IN_CODE. + (dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data. + +2012-09-21 Glenn Morris + + * eval.c (Frun_hook_with_args_until_success) + (Frun_hook_with_args_until_failure): Doc fixes. (Bug#12393) + +2012-09-21 Andreas Schwab + + * fileio.c (Ffile_selinux_context): Only call freecon when + lgetfilecon succeeded. + (Fset_file_selinux_context): Likewise. (Bug#12444) + +2012-09-21 Eli Zaretskii + + * xdisp.c (try_window_reusing_current_matrix): Under bidi + reordering, locate the cursor by calling set_cursor_from_row; if + that fails, clear the desired glyph matrix before returning a + failure indication to the caller. Fixes leaving garbled display + when fast scrolling with a down-key. (Bug#12403) + (compute_stop_pos_backwards): Fix a typo that caused crashes while + scrolling through multibyte text. + +2012-09-20 Stefan Monnier + + * alloc.c (mark_object) : Mark prev/next_buffers *after* + calling mark_vectorlike since that's the one that marks the window. + (mark_discard_killed_buffers): Mark the final cdr. + * window.h (struct window): Move prev/next_buffers to the + non-standard fields. + * window.c (make_window): Initialize prev/next_buffers manually. + +2012-09-20 Paul Eggert + + Omit unused arg EXPECTED from socket hooks. + * keyboard.c (gobble_input, read_avail_input, tty_read_avail_input): + * nsterm.m (ns_term_init): + * termhooks.h (struct terminal.read_socket_hook): + * w32inevt.c (w32_console_read_socket): + * w32term.c (w32_read_socket): + * xterm.c (XTread_socket): + Omit unused arg EXPECTED. All callers changed. + (store_user_signal_events): Return void, not int, since callers no + longer care about the return value. All uses changed. + +2012-09-20 Juanma Barranquero + + * w32gui.h (XParseGeometry): Do not declare. + +2012-09-19 Paul Eggert + + * w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0. + Ignore 'expected'. See Eli Zaretskii in + (last line). + + * frame.c (read_integer): Remove. All uses replaced by strtol/strtoul. + (XParseGeometry): Now static. Substitute extremal values for + values that are out of range. + +2012-09-19 Jan Djärv + + * w32xfns.c (read_integer, XParseGeometry): Move to frame.c. + + * nsfns.m (XParseGeometry): Remove. + (Fx_create_frame): Call x_set_offset to correctly interpret + top_pos in geometry. + + * frame.c (read_integer, XParseGeometry): Moved from w32xfns.c. + (Fx_parse_geometry): If there is a space in string, call + Qns_parse_geometry, otherwise do as on other terms (Bug#12368). + +2012-09-17 Eli Zaretskii + + * search.c (scan_buffer): Use character positions in calls to + region_cache_forward and region_cache_backward, not byte + positions. (Bug#12196) + + * w32term.c (w32_read_socket): Set pending_signals to 1, like + xterm.c does. Reported by Daniel Colascione . + + * ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize + __malloc_extra_blocks to 32 instead of 64, like alloc.c did in + emacs_blocked_malloc, now deleted. + +2012-09-17 Paul Eggert + + Remove no-longer-needed Solaris 2.4 vfork bug workaround. + The workaround was for improving performance on Solaris 2.4, but + is getting in the way now. Emacs will still work if someone is + still running Solaris 2.4 in a museum somewhere; Sun dropped + support for Solaris 2.4 in 2003. + * callproc.c (Fcall_process) [HAVE_WORKING_VFORK]: + * process.c (create_process) [HAVE_WORKING_VFORK]: + Omit now-unnecessary workaround for the Solaris 2.4 vfork bug, + since Emacs no longer uses vfork on that platform. + +2012-09-17 Glenn Morris + + * emacs.c: Use COPYRIGHT. + +2012-09-16 Paul Eggert + + Remove configure's --without-sync-input option (Bug#12450). + When auditing signal-handling in preparation for cleaning it up, + I found that SYNC_INPUT has race conditions and would be a real + pain to fix. Since it's an undocumented and deprecated + configure-time option, now seems like a good time to remove it. + Also see . + * alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal) + (_free_internal) [!DOUG_LEA_MALLOC]: Remove decls. + (alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]: + (malloc_hysteresis): + (check_depth) [XMALLOC_OVERRUN_CHECK]: + (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): + (__malloc_hook, __realloc_hook, __free_hook, BYTES_USED) + (dont_register_blocks, bytes_used_when_reconsidered) + (bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc) + (emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc): + [!SYSTEM_MALLOC && !SYNC_INPUT]: + Remove. All uses removed. + (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different + implementation, one that depends on whether the new macro + XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT + is defined. + * atimer.c (run_timers, handle_alarm_signal): + * keyboard.c (pending_signal, poll_for_input_1, poll_for_input) + (handle_async_input, process_pending_signals) + (handle_input_available_signal, init_keyboard): + * nsterm.m (ns_read_socket): + * process.c (wait_reading_process_output): + * regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK): + * sysdep.c (emacs_sigaction_init) [SA_RESTART]: + (emacs_write): + * xterm.c (XTread_socket): + Assume SYNC_INPUT. + * conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef. + * eval.c (handling_signal): Remove. All uses removed. + * lisp.h (ELSE_PENDING_SIGNALS): Remove. + All uses replaced with the SYNC_INPUT version. + (reset_malloc_hooks, uninterrupt_malloc, handling_signal): + Remove decls. + * sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]: + Now static. + + * font.c (Ffont_shape_gstring): Remove unused local. + +2012-09-16 Glenn Morris + + * Makefile.in (clean): No longer run nextstep's clean. + + * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables. + (ns_frag): Remove. + (ns-app): Move here from ns.mk, and simplify. + (clean): Simplify nextstep entry. + * ns.mk: Remove file. + +2012-09-16 Kenichi Handa + + * font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may + not covert the last few charactes. + +2012-09-16 Kenichi Handa + + * font.c (Ffont_shape_gstring): Don't adjust grapheme cluster + here, but just check the validity of glyphs in the glyph-string. + +2012-09-16 Martin Rudalics + + * window.c (Fwindow_parameter, Fset_window_parameter): Accept + any window as argument (Bug#12452). + +2012-09-16 Jan Djärv + + * nsfns.m (Fx_open_connection): Move initialization of ns_*_types + to ns_term_init to avoid memory leak. + + * nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use + explicit retain/release. + (ns_term_init): Only allow one display. Initialize outerpool and + ns_*_types. + +2012-09-15 Paul Eggert + + Port _setjmp fix to POSIXish hosts as well as Microsoft. + * image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as + it's needed on POSIXish hosts that lack _setjmp. Attempt to solve + the Microsoft problem in a different way, by altering ../nt/config.nt. + +2012-09-15 Eli Zaretskii + + * w32xfns.c: + * w32uniscribe.c: + * w32term.c: + * w32select.c: + * w32reg.c: + * w32proc.c: + * w32menu.c: + * w32inevt.c: + * w32heap.c: + * w32font.c: + * w32fns.c: + * w32console.c: + * w32.c: + * w16select.c: Remove inclusion of setjmp.h, as it is now included + by lisp.h. This completes removal of setjmp.h inclusion + erroneously announced in the previous commit. (Bug#12446) + + * lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary + more accurate. + + * image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is + not defined as a macro. The latter happens on MS-Windows. + (Bug#12446) + +2012-09-15 Paul Eggert + + Port better to POSIX hosts lacking _setjmp (Bug#12446). + * lisp.h: Include here, since we use its symbols here. + Some instances of '#include ' removed, if the + only reason for the instance was because "lisp.h" was included. + (sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols. + Unless otherwise specified, replace all uses of jmp_buf, _setjmp, + and _longjmp with the new symbols. Emacs already uses _setjmp if + available, so this change affects only POSIXish hosts that have + sigsetjmp but not _setjmp, such as some versions of Solaris and + Unixware. (Also, POSIX-2008 marks _setjmp as obsolescent.) + * image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros. + (png_load_body) [HAVE_PNG]: + (PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]: + (PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]: + Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp, + since PNG requires jmp_buf. This is the only exception to the + general rule that we now use sys_setjmp and sys_longjmp. + This exception is OK since this code does not change the signal + mask or longjmp out of a signal handler. + +2012-09-14 Paul Eggert + + * alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]: + Include "syssignal.h", for 'main_thread'. + +2012-09-14 Dmitry Antipov + + Avoid out-of-range marker position (Bug#12426). + * insdel.c (replace_range, replace_range_2): Adjust + markers before overlays, as suggested by comments. + (insert_1_both, insert_from_buffer_1, adjust_after_replace): + Remove redundant check before calling offset_intervals. + +2012-09-14 Martin Rudalics + + * xdisp.c (Fformat_mode_line): Unconditionally save/restore + current buffer (Bug#12387). + +2012-09-14 Juanma Barranquero + + * makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies. + +2012-09-13 Paul Eggert + + Use a more backwards-compatible timer format (Bug#12430). + * keyboard.c (decode_timer): Get PSECS from the 8th (origin-0) + vector element, not from the 4th, since PSECS is now at the end. + (Fcurrent_idle_time): Doc fix. + +2012-09-13 Dmitry Antipov + + Function to mark objects and remove killed buffers at once. + * alloc.c (discard_killed_buffers): Rename to ... + (mark_discard_killed buffers) ... new name. Add marking + of remaining objects. Fix comment. Adjust users. + (mark_object): Do not touch frame buffer lists here. + * frame.c (delete_frame): Reset frame buffer lists here. + +2012-09-13 Paul Eggert + + Better workaround for GNOME bug when --enable-gcc-warnings. + * emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change. + Instead, disable -Wunused-local-typedefs. See Dmitry Antipov in + . + + Simplify SIGIO usage (Bug#12408). + The code that dealt with SIGIO was crufty and confusing, e.g., it + played tricks like "#undef SIGIO" but these tricks were not used + consistently. Simplify mostly by not #undeffing standard symbols, + e.g., use "defined USABLE_SIGIO" (our symbol, which we can define + or not as we please) rather than "defined SIGIO" (standard symbol + that we probably shouldn't #undef). + * conf_post.h [USG5_4]: Do not include here. + Modules that need it can include it. + [USG5_4 && emacs]: Likewise, do not include the streams stuff here. + * dispextern.h (ignore_sigio): New decl. + * emacs.c (shut_down_emacs): Invoke unrequest_sigio + unconditionally, since it's now a no-op if !USABLE_SIGIO. + * emacs.c (shut_down_emacs): + * keyboard.c (kbd_buffer_store_event_hold): + Use ignore_sigio rather than invoking 'signal' directly. + * keyboard.c (USABLE_FIONREAD && USG5_4): Include , + for FIONREAD. + (FIONREAD, SIGIO): Do not #undef. + (tty_read_avail_input): Use #error rather than a syntax error. + * process.c [USG5_4]: Include and , + for I_PIPE, used by SETUP_SLAVE_PTY. + (DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD. + * sysdep.c (croak): Remove; no longer needed. This bit of + temporary code, with Fred N. Fish's comment that it's temporary, + has been in Emacs since at least 1992! + (init_sigio, reset_sigio, request_sigio, unrequest_sigio): + Arrange for them to be no-ops in all cases when ! USABLE_SIGIO. + * syssignal.h (croak): Remove decl. + (SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile. + * systty.h [!NO_TERMIO]: Do not include ; no longer needed + now that we're termios-only. + (FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef. + * term.c (dissociate_if_controlling_tty): Use #error rather than + a run-time error. + + Work around GCC and GNOME bugs when --enable-gcc-warnings. + * emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify', + to work around GNOME bug 683906. + * image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber. + (struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp. + This works around GCC bug 54561. + +2012-09-12 Paul Eggert + + More fixes for 'volatile' and setjmp/longjmp. + * eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's. + * image.c (struct png_load_context) [HAVE_PNG]: New type. + (png_load_body) [HAVE_PNG]: + (jpeg_load_body) [HAVE_JPEG]: + New function, with most of the old parent function's body. + (png_load) [HAVE_PNG]: + (jpeg_load) [HAVE_JPEG]: + Invoke the new function, to avoid longjmp munging our locals. + (struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code. + (my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when + longjmp is passed 2, as the C standard doesn't guarantee this. + Instead, store the failure code into mgr->failure_code. + +2012-09-12 Stefan Monnier + + * keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p) + (Fdiscard_input, quit_throw_to_read_char, init_keyboard) + (syms_of_keyboard): Remove support for unread-command-char. + +2012-09-12 Eli Zaretskii + + * w32proc.c (sys_kill): If PID is our process ID and the signal is + SIGABRT, call emacs_abort. Avoids silently exiting upon assertion + violation. (Bug#12426) + +2012-09-12 Paul Eggert + + * image.c (jpeg_memory_src): Don't assume string len fits in unsigned. + +2012-09-12 Stefan Monnier + + * eval.c: Add `inhibit-debugger'. + (Qinhibit_debugger): New symbol. + (call_debugger): Bind it instead of Qdebug_on_error. + (maybe_call_debugger): Test Vinhibit_debugger. + (syms_of_eval): Define inhibit-debugger. + * xdisp.c (set_message): Don't bind Qinhibit_debug_on_message. + (syms_of_xdisp): Remove inhibit-debug-on-message. + +2012-09-11 Paul Eggert + + Avoid _setjmp/_longjmp problems with local nonvolatile variables. + If a nonvolatile local variable is written before a _longjmp to + the frame containing the variable, and is read after the _longjmp, + the value read is indeterminate. Some local variables of type + 'struct handler' and 'struct catchtag' are used in this way, so + mark each of their slots as volatile if the slot can be set before + _longjmp and read afterwards. + * lisp.h (struct handler): var and chosen_clause are now volatile. + (struct catchtag): val, next, and pdlcount are now volatile. + + * bidi.c (bidi_push_it, bidi_pop_it): + * fns.c (copy_hash_table): + * image.c (define_image_type): + * keyboard.c (kbd_buffer_store_event_hold): + * process.c (Fprocess_send_eof): + * xfaces.c (x_create_gc) [HAVE_NS]: + * xgselect.c (xg_select): + Prefer assignment to memcpy when either will do. + + * alloc.c (discard_killed_buffers): Tune and simplify a bit. + Use pointer-to-a-pointer to simplify and avoid a NILP check each + time an item is removed. No need to mark this function 'inline'; + the compiler knows better than we do. + +2012-09-11 Jan Djärv + + * nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize. + (updateFrameSize:): Add delay parameter to updateFrameSize, send it + to change_frame_size (Bug#12388). + (windowDidResize:): Pass YES to updateFrameSize. + + * nsterm.h: Add delay parameter to updateFrameSize. + +2012-09-11 Dmitry Antipov + + Discard killed buffers from deleted window and frame objects. + This reduces an amount of references to killed buffers and + helps GC to reclaim them faster. + * alloc.c (discard_killed_buffers): New function. + (mark_object): Use it for deleted windows and frames. + (mark_object): If symbol's value is set up for a killed buffer + or deleted frame, restore it's global binding. + * data.c (swap_in_global_binding): Add GC notice. + (swap_in_symval_forwarding): Use convenient set_blv_where. + * window.c (wset_next_buffers, wset_prev_buffers): Move ... + * window.h: ... to here. + +2012-09-11 Dmitry Antipov + + Convenient macro to check whether the buffer is live. + * buffer.h (BUFFER_LIVE_P): New macro. + * alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c: + * minibuf.c, print.c, process.c, window.c, xdisp.c: Use it. + +2012-09-11 YAMAMOTO Mitsuharu + + * xdisp.c (right_overwritten, right_overwriting): Also handle gstring + composition cases (Bug#12364). + + * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left + overhang of succeeding glyphs overlapping box cursor. + + * w32term.c (x_draw_glyph_string): Likewise. + +2012-09-11 Paul Eggert + + Simplify, document, and port floating-point (Bug#12381). + The porting part of this patch fixes bugs on non-IEEE platforms + with frexp, ldexp, logb. + * data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error): + Now static. + * floatfns.c: Simplify discussion of functions that Emacs doesn't + support, by removing commented-out code and briefly listing the + C89 functions excluded. The commented-out stuff was confusing + maintenance, e.g., we thought we needed cbrt but it was commented out. + (logb): Remove decl; no longer needed. + (isfinite): New macro, if not already supplied. + (isnan): Don't replace any existing macro. + (Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp + are present on all C89 platforms. + (Ffrexp): Do not special-case zero, as frexp does the right thing + for that case. + (Flogb): Do not use logb, as it doesn't have the desired meaning + on hosts that use non-base-2 floating point. Instead, stick with + frexp, which is C89 anyway. Do not pass an infinity or a NaN to + frexp, to avoid getting an unspecified result. + + * xdisp.c (Qinhibit_debug_on_message): Now static. + +2012-09-10 Jan Djärv + + * nsterm.m (ns_update_begin): Set clip path to whole view by using + NSBezierPath (Bug#12131). + +2012-09-10 Chong Yidong + + * fns.c (Fdelq, Fdelete): Doc fix. + +2012-09-10 Paul Eggert + + * lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL) + (XSETFLOAT, XSETMISC): Parenthesize macro bodies. + +2012-09-09 Stefan Monnier + + * lisp.h (make_lisp_ptr): New macro to replace XSET. + (XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC): + Use it. + +2012-09-09 Eli Zaretskii + + * fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the + left fringe if the window has a left margin. This avoids leaving + traces of the cursor because its leftmost pixel is not drawn over. + + * dispnew.c (update_window_line): When the left margin area of a + screen line is updated, set the redraw_fringe_bitmaps_p flag of + that screen line. (Bug#12277) + +2012-09-09 Paul Eggert + + Assume C89 or later for math functions (Bug#12381). + This simplifies the code, and makes it a bit smaller and faster, + and (most important) makes it easier to clean up signal handling + since we can stop worring about floating-point exceptions in + library code. That was a problem before C89, but the problem + went away many years ago on all practical Emacs targets. + * data.c, image.c, lread.c, print.c: + Don't include ; no longer needed. + * data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it + might be autoconfigured, as that never happens. + * data.c (fmod): + * doprnt.c (DBL_MAX_10_EXP): + * print.c (DBL_DIG): + Remove. C89 or later always defines these. + * floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN) + (in_float, float_error_arg, float_error_arg2, float_error_fn_name) + (arith_error, domain_error, domain_error2): + Remove all this pre-C89 cruft. Do not include as that's + no longer needed -- we simply return what C returns. All uses removed. + (IN_FLOAT, IN_FLOAT2): Remove. All uses replaced with + the wrapped code. + (FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2): + Remove. All uses expanded, as these macros are no longer used + more than once and are now more trouble than they're worth. + (Ftan): Use tan, not sin / cos. + (Flogb): Assume C89 frexp. + (fmod_float): Assume C89 fmod. + (matherr) [HAVE_MATHERR]: Remove; no longer needed. + (init_floatfns): Remove. All uses removed. + +2012-09-08 Jan Djärv + + * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back + compositeToPoint for OSX < 10.6 (Bug#12390). + +2012-09-08 Paul Eggert + + * floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)). + This produces more-accurate results. + +2012-09-08 Jan Djärv + + * nsterm.m (updateFrameSize): Call setFrame: on the view when size + changes (Bug#12088). + +2012-09-08 Chong Yidong + + * syntax.c (Fstring_to_syntax): Doc fix. + +2012-09-08 Jan Djärv + + * nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe + in the internal border. + (x_set_window_size): Remove static variables and their usage. + (ns_redraw_scroll_bars): Fix NSTRACE arg. + (ns_after_update_window_line, ns_draw_fringe_bitmap): Remove + fringe/internal border adjustment (Bug#11052). + (ns_draw_fringe_bitmap): Make code more like other terms (xterm.c). + (ns_draw_window_cursor): Remove fringe/internal border adjustment. + (ns_fix_rect_ibw): Remove. + (ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw. + (ns_dumpglyphs_box_or_relief): Ditto. + (ns_maybe_dumpglyphs_background): Remove fringe/internal border + adjustment. + (ns_dumpglyphs_image): Ditto. + (ns_dumpglyphs_stretch): Fix coding style. Remove fringe/internal + border adjustment. + (ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and + their usage. Add fringe_extended_p and its use as in other terms. + (ns_judge_scroll_bars): Code style fix. Call updateFrameSize if + scroll bar was removed. + (updateFrameSize): New function. + (windowDidResize): Move code to updateFrameSize and call it. + + * nsterm.h (EmacsView): Add updateFrameSize. + +2012-09-07 Chong Yidong + + * textprop.c (Fget_text_property): Minor doc fix (Bug#12323). + + * data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713). + +2012-09-07 Paul Eggert + + More signal-handler cleanup (Bug#12327). + * emacs.c (main): Convert three 'signal' calls to 'sigaction' calls. + Problem introduced when merging patches. Noted by Eli Zaretskii in + . + * floatfns.c: Comment fix. + * lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER. + SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right, + and anyway the declaration is harmless even if SIGDANGER is not defined. + * syssignal.h (SIGIO): Also #undef if (! defined FIONREAD || + defined BROKEN_FIONREAD). systty.h formerly did this, but other + source files not surprisingly expected syssignal.h to define, or + not define, SIGIO, and it's cleaner to do it that way, for consistency. + Include , for FIONREAD. + * systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job. + This eliminates a problem whereby other files mysteriously had + to include "syssignal.h" before including "systty.h" if they + wanted to use "#ifdef SIGIO". + +2012-09-07 Eli Zaretskii + + * w32proc.c (sigaction): New function, emulates Posix 'sigaction'. + + * w32.c (sigemptyset): Empty the set. + (sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions. + + * alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT. + +2012-09-07 Dmitry Antipov + + * alloc.c (mark_buffer): Revert unsafe marking optimization. + (mark_object): Likewise for frame objects. + +2012-09-07 Paul Eggert + + * syssignal.h (handle_on_main_thread): Always declare, + even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined. + This ports to platforms without HAVE_PTHREAD. + +2012-09-06 Paul Eggert + + Signal-handler cleanup (Bug#12327). + Emacs's signal handlers were written in the old 4.2BSD style with + sigblock and sigmask and so forth, and this led to some + inefficiencies and confusion. Rewrite these to use + pthread_sigmask etc. without copying signal sets around. Also, + get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and + 'signal', and instead use functions that do not attempt to take + over the system name space. This patch causes Emacs's text + segment to shrink by 0.7% on my platform, Fedora 17 x86-64. + * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c: + Do not include or "syssignal.h", as these + modules do not use signals. + * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c: + * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c: + Do not include , as "syssignal.h" does that for us now. + * atimer.c (sigmask_atimers): New function. + (block_atimers, unblock_atimers): New functions, + replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS. + All uses replaced. + * conf_post.h [SIGNAL_H_AHB]: Do not include ; + no longer needed here. + * emacs.c (main): Inspect existing signal handler with sigaction, + so that there's no need to block and unblock SIGHUP. + * sysdep.c (struct save_signal): New member 'action', replacing + old member 'handler'. + (save_signal_handlers, restore_signal_handlers): + Use sigaction instead of 'signal' to save and restore. + (get_set_sighandler, set_sighandler) [!WINDOWSNT]: + New function. All users of 'signal' modified to use set_sighandler + if they're writeonly, and to use sys_signal if they're read+write. + (emacs_sigaction_init, forwarded_signal): New functions. + (sys_signal): Remove. All uses replaced by calls to sigaction + and emacs_sigaction_init, or by direct calls to 'signal'. + (sys_sigmask) [!__GNUC__]: Remove; no longer needed. + (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove; + all uses replaced by pthread_sigmask etc. calls. + * syssignal.h: Include . + (emacs_sigaction_init, forwarded_signal): New decls. + (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t. + (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask. + (sigmask, sys_sigmask): Remove; no longer needed. + (sigpause): Remove. All uses replaced by its definiens, sigsuspend. + (sigblock, sigunblock, sigfree): + (sigsetmask) [!defined sigsetmask]: + Remove. All uses replaced by pthread_sigmask. + (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN) + no longer need to be replaced, and its typical old uses + are now done via emacs_sigaction_init and sigaction. + (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls. + (sys_sigdel): Remove; unused. + (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef. + +2012-09-06 Eli Zaretskii + + * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke + SIGCHLD handling on systems that don't have WNOHANG. (Bug#12327) + +2012-09-06 Dmitry Antipov + + Explicitly mark buffer_defaults and buffer_local_symbols. + * alloc.c (Fgarbage_collect): Mark buffer_defaults and + mark_local_symbols here. + (mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking + since special buffers aren't marked here any more. + (allocate_buffer): Chain new buffer with all_buffers here... + * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and + not here. + (Vbuffer_defaults, Vbuffer_local_symbols): Remove. + (syms_of_buffer): Remove staticpro of the above. + (init_buffer_once): Set names for buffer_defaults and + buffer_local_symbols. + +2012-09-06 Paul Eggert + + Use bool for booleans in font-related modules. + * font.c (font_intern_prop, font_style_to_value) + (font_style_symbolic, font_parse_xlfd, font_parse_fcname) + (generate_otf_features, font_check_otf_features, font_check_otf) + (font_match_p, font_list_entities, font_at): + * fontset.c (fontset_id_valid_p, reorder_font_vector + (fontset_find_font, Fset_fontset_font) + (face_suitable_for_char_p) [0]: + * ftfont.c (fc_initialized, ftfont_get_open_type_spec) + (ftfont_open, ftfont_text_extents, ftfont_check_otf): + (m17n_flt_initialized, ftfont_shape_by_flt): + * ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw): + * nsfont.m (nsfont_draw): + * w32font.c (w32font_draw): + * w32term.c (x_draw_glyphless_glyph_string_foreground): + Use bool for booleans. + * font.h: Adjust to above API changes. + (struct font, struct font_driver, struct font_driver_list): + Use bool for booleans. + (struct font): Remove useless member encoding_type. + All users removed. + * fontset.c, xftfont.c: Omit unnecessary static decls. + +2012-09-06 Dmitry Antipov + + * alloc.c (mark_object): Revert window marking code + since it's unsafe for the Fset_window_configuration. + +2012-09-05 Paul Eggert + + Fix race conditions with signal handlers and errno (Bug#12327). + Be more systematic about preserving errno whenever a signal + handler returns, even if it's not in the main thread. Do this by + renaming signal handlers to distinguish between signal delivery + and signal handling. All uses changed. + * atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler. + * data.c (deliver_arith_signal): Rename from arith_error. + * dispnew.c (deliver_window_change_signal): Rename from + window_change_signal. + * emacs.c (deliver_error_signal): Rename from fatal_error_signal. + (deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal. + * keyboard.c (deliver_input_available_signal): Rename from + input_available_signal. + (deliver_user_signal): Rename from handle_user_signal. + (deliver_interrupt_signal): Rename from interrupt_signal. + * process.c (deliver_pipe_signal): Rename from send_process_trap. + (deliver_child_signal): Rename from sigchld_handler. + * atimer.c (handle_alarm_signal): + * data.c (handle_arith_signal): + * dispnew.c (handle_window_change_signal): + * emacs.c (handle_fatal_signal, handle_danger_signal): + * keyboard.c (handle_input_available_signal): + * keyboard.c (handle_user_signal, handle_interrupt_signal): + * process.c (handle_pipe_signal, handle_child_signal): + New functions, with the actual signal-handling code taken from the + original respective signal handlers, sans the sporadic attempts to + preserve errno, since that's now done by handle_on_main_thread. + * atimer.c (alarm_signal_handler): Remove unnecessary decl. + * emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft. + * emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]: + Move to sysdep.c. + (main) [FORWARD_SIGNAL_TO_MAIN_THREAD]: + Move initialization of main_thread to sysdep.c's init_signals. + * process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for + our usage, and simplifies the mainline code. + (record_child_status_change): New static function, as a helper + for handle_child_signal, and with most of the old child handler's + contents. + (CAN_HANDLE_MULTIPLE_CHILDREN): New constant. + (handle_child_signal): Use the above. + * sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]: + Moved here from emacs.c. + (init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it; + code moved here from emacs.c's main function. + * sysdep.c, syssignal.h (handle_on_main_thread): New function, + replacing the old SIGNAL_THREAD_CHECK. All uses changed. This + lets callers save and restore errno properly. + +2012-09-05 Dmitry Antipov + + Remove redundant or unused things here and there. + * lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove. + * conf_post.h (RE_TRANSLATE): Use char_table_translate. + * editfns.c (Fcompare_buffer_substrings): Likewise. + * frame.h (struct terminal, struct font_driver_list): + Remove redundant declarations. + * window.h (Qleft, Qright): Likewise. + +2012-09-05 Dmitry Antipov + + Do not mark objects from deleted buffers, windows and frames. + * alloc.c (mark_buffer): Mark just the buffer if it is dead. + (mark_object): Likewise for windows and frames. + +2012-09-05 Dmitry Antipov + + * alloc.c (valid_lisp_object_p): Treat killed buffers, + buffer_defaults and buffer_local_symbols as valid objects. + Return special value to denote them. + +2012-09-05 Paul Eggert + + * fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean. + * fileio.c (auto_saving, auto_save_error_occurred, make_temp_name) + (Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file) + (file_name_absolute_p, Fsubstitute_in_file_name): + (check_executable, check_writable, Ffile_accessible_directory_p) + (Fset_file_selinux_context, Fdefault_file_modes) + (Finsert_file_contents, choose_write_coding_system) + (Fwrite_region, build_annotations, a_write, e_write) + (Fdo_auto_save): + * filelock.c (boot_time_initialized, get_boot_time) + (get_boot_time_1, lock_file_1, within_one_second): + * floatfns.c (in_float): + * fns.c (concat, internal_equal, Frequire, base64_encode_1) + (base64_decode_1, cmpfn_eql, cmpfn_user_defined) + (sweep_weak_table, sweep_weak_hash_tables, secure_hash): + * lisp.h (struct Lisp_Hash_Table.cmpfn): + * window.c (compare_window_configurations): + Use bool for booleans. + * fileio.c (auto_saving_dir_umask, auto_saving_mode_bits) + (Fdefault_file_modes): Now mode_t, not int, for modes. + (Fdo_auto_save): Set a boolean to 1 rather than using ++. + (internal_delete_file): Now returns void, not a (boolean) int, + since nobody was looking at the return value. + * lisp.h, window.h: Adjust to above API changes. + + * xdisp.c (set_message): Simplify and reindent last change. + +2012-09-05 Juanma Barranquero + + * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies. + +2012-09-04 Lars Ingebrigtsen + + * eval.c (call_debugger): Make the function non-static so that we + can call it from set_message. + + * xdisp.c (set_message): Implement the new variable `debug-on-message'. + (syms_of_xdisp): Defvar it and `inhibit-debug-on-message'. + +2012-09-04 Paul Eggert + + Give more-useful info on a fatal error (Bug#12328). + * alloc.c [ENABLE_CHECKING]: Do not include . + (die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead + of doing the work ourselves. + * emacs.c (fatal_error_signal): Let fatal_error_backtrace + do most of the work. + (fatal_error_backtrace): New function, taken from the guts + of the old fatal_error_signal, but with a new option to output + a backtrace. + (shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful + info about the signal than just its number. + * lisp.h (fatal_error_backtrace, emacs_backtrace): New decls. + * sysdep.c: Include + (emacs_backtrace): New function, taken partly from the previous + code of the 'die' function. + (emacs_abort): Call fatal_error_backtrace rather than abort. + +2012-09-04 Stefan Monnier + + * lread.c (readevalloop): Call internal-macroexpand-for-load to perform + eager (load-time) macro-expansion. + * lisp.mk (lisp): Add macroexp. + +2012-09-04 Paul Eggert + + Simplify redefinition of 'abort' (Bug#12316). + Do not try to redefine the 'abort' function. Instead, redo + the code so that it calls 'emacs_abort' rather than 'abort'. + This removes the need for the NO_ABORT configure-time macro + and makes it easier to change the abort code to do a backtrace. + * .gdbinit: Just stop at emacs_abort, not at w32_abort or abort. + * emacs.c (abort) [!DOS_NT && !NO_ABORT]: + Remove; sysdep.c's emacs_abort now takes its place. + * lisp.h (emacs_abort): New decl. All calls from Emacs code to + 'abort' changed to use 'emacs_abort'. + * msdos.c (dos_abort) [defined abort]: Remove; not used. + (abort) [!defined abort]: Rename to ... + (emacs_abort): ... new name. + * sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking + the place of the old 'abort' in emacs.c. + * w32.c, w32fns.c (abort): Do not #undef. + * w32.c (emacs_abort): Rename from w32_abort. + +2012-09-04 Eli Zaretskii + + * w32uniscribe.c (uniscribe_shape): Reverse the sign of + offsets[j].dv, since the y axis of the screen coordinates points + down, while the y axis of the font definition coordinates points + up. This fixes display of Arabic diacritics such as KASRA and + KASRATAN. (Bug#11860) + +2012-09-04 Paul Eggert + + Be more systematic about _setjmp vs setjmp. + * alloc.c (test_setjmp, mark_stack): + * image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]: + (PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]: + (png_load, my_error_exit, jpeg_load): + * process.c (send_process_trap, send_process): + Uniformly prefer _setjmp and _longjmp to setjmp and longjmp. + The underscored versions are up to 30x faster on some hosts. + Formerly, the code used setjmp+longjmp sometimes and + _setjmp+_longjmp at other times, with no particular reason to + prefer setjmp+longjmp. + +2012-09-03 Paul Eggert + + Fix minor problem found by static checking. + * buffer.c (Fdelete_all_overlays): Return nil. + +2012-09-03 Martin Rudalics + + * buffer.c (Fdelete_all_overlays): New function. + +2012-09-03 Chong Yidong + + * gtkutil.c: Add extern decl for Qxft. + +2012-09-02 Paul Eggert + + * emacs.c, eval.c: Use bool for boolean. + * emacs.c (initialized, inhibit_window_system, running_asynch_code): + (malloc_using_checking) [DOUG_LEA_MALLOC]: + (display_arg) [HAVE_X_WINDOWS || HAVE_NS]: + (noninteractive, no_site_lisp, fatal_error_in_progress, argmatch) + (main, decode_env_path, Fdaemon_initialized): + * eval.c (call_debugger, Finteractive_p, interactive_p): + (unwind_to_catch, Fsignal, wants_debugger, skip_debugger) + (maybe_call_debugger, Fbacktrace): + * process.c (read_process_output, exec_sentinel): + Use bool for booleans. + * emacs.c (shut_down_emacs): Omit unused boolean argument NO_X. + All callers changed. + * eval.c (interactive_p): Omit always-true boolean argument + EXCLUDE_SUBRS_P. All callers changed. + * dispextern.h, lisp.h: Reflect above API changes. + * firstfile.c (dummy): Use the address of 'main', whose signature + won't change, instead of the address of 'initialize', whose + signature just changed from int to bool. + * lisp.h (fatal_error_in_progress): New decl of boolean, moved here ... + * msdos.c (fatal_error_in_progress): ... from here. + * xdisp.c (redisplaying_p): Now a boolean. Set it to 1 instead + of incrementing it. + (redisplay_internal, unwind_redisplay): Simply clear + REDISPLAYING_P when unwinding, instead of saving its previous, + always-false value and then restoring it. + + Clean up some extern decls. + Mostly, this hoists extern decls out of .c files and into .h files. + That way, we're more likely to catch errors if the interfaces change. + * alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not + declare xg_mark_data. + * dispextern.h (x_frame_parm_handlers): + * font.h (Qxft): + * lisp.h (Qlexical_binding, Qinternal_interpreter_environment) + (Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold) + (Qultra_bold, Qoblique, Qitalic): + Move extern decl here from .c file. + * alloc.c (xg_mark_data) [USE_GTK]: + * doc.c (Qclosure): + * eval.c (Qlexical_binding): + * fns.c (time) [!HAVE_UNISTD_H]: + * gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light) + (Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic): + * image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]: + * lread.c (Qinternal_interpreter_environment): + * minibuf.c (Qbuffer): + * process.c (QCfamily, QCfilter): + * widget.c (free_frame_faces): + * xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]: + * xfont.c (x_clear_errors): + * xterm.c (x_frame_parm_handlers): + Remove now-redundant extern decls. + * keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]: + * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic): + Now static. + * xfaces.c: Remove unnecessary static decls. + * xterm.c (updating_frame): Remove decl of nonexistent object. + + * Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS) + when building globals.h, as the objects that are not built on + this host are not needed to compile C files on this host. + +2012-09-02 Jan Djärv + + * gtkutil.h: Remove prototype for x_wm_set_size_hint. + + * frame.h: Add missing prototype for x_wm_set_size_hint. + +2012-09-02 Paul Eggert + + * doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean. + * doc.c (read_bytecode_char, get_doc_string, reread_doc_file) + (Fdocumentation, Fdocumentation_property, Fsnarf_documentation) + (Fsubstitute_command_keys): + * editfns.c (region_limit, find_field, Fconstrain_to_field) + (save_excursion_save, save_excursion_restore) + (disassemble_lisp_time, decode_time_components, emacs_nmemftime) + (format_time_string, general_insert_function) + (make_buffer_string, make_buffer_string_both) + (Fsubst_char_in_region, Ftranslate_region_internal, Fformat): + * insdel.c (check_markers, gap_left, adjust_markers_for_insert) + (copy_text, insert_1, insert_1_both, insert_from_string) + (insert_from_string_before_markers, insert_from_string_1) + (insert_from_buffer, insert_from_buffer_1, replace_range) + (replace_range_2, del_range_1, del_range_byte, del_range_both) + (del_range_2, modify_region): + * intervals.c (intervals_equal, balance_possible_root_interval) + (adjust_intervals_for_insertion, merge_properties_sticky) + (graft_intervals_into_buffer, lookup_char_property) + (adjust_for_invis_intang, set_point_both) + (get_property_and_range, compare_string_intervals) + (set_intervals_multibyte_1, set_intervals_multibyte): + * keyboard.c (decode_timer): + Use bool for boolean. + * intervals.h, lisp.h, systime.h: Reflect above API changes. + * editfns.c (struct info): Use 1-bit unsigned bitfields for booleans. + +2012-09-02 Chong Yidong + + * keymap.c (push_key_description): Print M-TAB as C-M-i + (Bug#11758). + +2012-09-02 Juanma Barranquero + + * makefile.w32-in (CCL_H, W32FONT_H): New macros. + (ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O)) + ($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O)) + ($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O)) + ($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O)) + ($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O)) + ($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies. + +2012-09-01 Eli Zaretskii + + * w32uniscribe.c (uniscribe_shape): Handle correctly the case of + more than one grapheme cluster passed to the shaper: compute the + offset adjustment values separately for each cluster. (Bug#11860) + + * image.c: Restore mistakenly removed inclusion of w32.h. Without + it, GCC doesn't see prototypes of w32_delayed_load, and complains + about implicit conversions from integer to pointer. + +2012-09-01 Daniel Colascione + + * w32fns.c (x_display_info_for_name): Prevent crash if w32 window + system used too early. + +2012-09-01 Paul Eggert + + Better seed support for (random). + * emacs.c (main): Call init_random. + * fns.c (Frandom): Set the seed from a string argument, if given. + Remove long-obsolete Gentzel cruft. + * lisp.h, sysdep.c (seed_random): Now takes address and size, not long. + (init_random): New function. + +2012-09-01 Daniel Colascione + + * xterm.h: Add header guards. Declare x_menubar_window_to_frame. + Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible, + x_make_frame_invisible, x_iconify_frame, x_free_frame_resources, + x_wm_set_size_hint, x_query_colors, x_real_positions, + x_set_menu_bar_lines, x_char_width, x_char_height, x_sync, + x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar, + all of which have been moved to common code. + + * xfaces.c: Include TERM_HEADER instead of listing all possible + window-system headers. + + * w32xfns.c (x_sync): Correct definition of x_sync (a no-op here) + to match header. + + * w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of + directly accessing frame internals. + + * w32font.h: Include font.h. Define syms_of_w32font and + globals_of_w32font. + + * process.c: Include TERM_HEADER instead of listing all possible + window-system headers. + + * nsterm.h: Remove declarations now in frame.h. Define + FRAME_X_SCREEN, FRAME_X_VISUAL. + + * menu.c: Include TERM_HEADER instead of listing all possible + window-system headers. + + * keyboard.h: Declare ignore_mouse_drag_p whenever we have a + window system. + + * keyboard.c: Include TERM_HEADER instead of listing all possible + window-system headers. + + * image.c: Include TERM_HEADER instead of listing all possible + window-system headers. Declare Vlibrary_cache when compiling for + Windows. + + * gtkutil.h (xg_list_node_): Include xterm.h to pick up needed + window system declarations. + + * frame.h: Move common functions here: set_frame_menubar, + x_set_window_size, x_sync, x_get_focus_frame, + x_set_mouse_position, x_set_mouse_pixel_position, + x_make_frame_visible, x_make_frame_invisible, x_iconify_frame, + x_char_width, x_char_height, x_pixel_width, x_pixel_height, + x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines, + x_activate_menubar, x_real_positions, x_bitmap_icon, + x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources, + and x_query_colors. + + * frame.c: Include TERM_HEADER instead of listing all possible + window-system headers. + + * font.c: Include TERM_HEADER instead of listing all possible + window-system headers. + + * emacs.c: Include TERM_HEADER. + + * dispnew.c: Include TERM_HEADER instead of listing all possible + window-system headers. + + * ccl.h: Include character.h. + + * Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for + the current window system; include in list of objects to link into + Emacs. + +2012-08-31 Dmitry Antipov + + Remove mark_ttys function and fix tty_display_info initialization. + * lisp.h (mark_ttys): Remove prototype. + * alloc.c (Fgarbage_collect): Remove redundant (and the only) call + to mark_ttys because all possible values of 'top_frame' slot are + the frames which are reachable from Vframe_list. + * term.c (mark_ttys): Remove. + (init_tty): Safely initialize 'top_frame' slot with Qnil. + +2012-08-31 Dmitry Antipov + + Change struct frame bitfields from unsigned char to unsigned. + * frame.h (struct frame): Change type of 'display_preempted', + 'visible', 'iconified', 'has_minibuffer', 'wants_modeline', + 'auto_raise', 'auto_lower', 'no_split', 'explicit_name', + 'window_sizes_changed', 'mouse_moved' and 'pointer_invisible' + bitfields from unsigned char to unsigned. + +2012-08-31 Dmitry Antipov + + Remove unused member of struct x_output and struct w32_output. + * xterm.h (struct x_output): Remove unused field 'needs_exposure'. + * w32term.h (struct w32_output): Likewise. + +2012-08-30 Jan Djärv * gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it - does not become zero (Bug#12234). Backport from trunk. + does not become zero (Bug#12234). + +2012-08-30 Paul Eggert + + * dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow + for GCC 4.7.1 x86-64. + +2012-08-30 Glenn Morris + + * lread.c (init_lread): For out-of-tree builds, only add the + source directory's site-lisp dir to the load-path if it exists, + consistent with in-tree builds. (Bug#12302) + +2012-08-28 Jan Djärv + + * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize + button_values to NULL. Call setStykeMask so dialogs get a close button. + (windowShouldClose:): Set window_closed. + (dealloc): New member, free button_values. + (process_dialog:): Make member function. Remove window argument, + replace window with self. Count buttons and allocate and store values + in button_values. + (addButton:value:row:): value is int with the name tag. Call setTag + with tag. Remove return self, declare return value as void. + (addString:row:): Remove return self, declare return value as void. + (addSplit): Remove return self, declare return value as void. + (clicked:): Remove return self, declare return value as void. + Set dialog_return to button_values[seltag]. Code formatting change. + (initFromContents:isQuestion:): Adjust call to process_dialog. + Code formatting change. + (timeout_handler:): Set timer_fired to YES. + (runDialogAt:): Set timer_fired to NO. + Handle click on close button as quit. + + * nsterm.h (EmacsDialogPanel): Make timer_fired BOOL. + Add window_closed and button_values. Add void as return value for + add(Button|String|Split). addButton takes int instead of Lisp_Object. + Add process_dialog as new member. + +2012-08-28 Eli Zaretskii + + * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it + is not one of the heaps we manage. (Bug#12242) + +2012-08-28 Glenn Morris + + * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747) + +2012-08-28 Martin Rudalics + + * window.c (Fset_window_configuration): Remove handling of + auto-buffer-name window parameter. Install revision of reverted + fix. + +2012-08-28 Dmitry Antipov + + Do not allow to set major mode for a dead buffer. + * buffer.c (Fset_buffer_major_mode): Signal an error + if the buffer is dead. + (Fother_buffer, other_buffer_safely): Remove redundant + nested declaration. + +2012-08-28 Dmitry Antipov + + Always use set_buffer_if_live to restore original buffer at unwind. + * buffer.h (record_unwind_current_buffer): New function. + * bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c: + * keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c: + * undo.c, window.c: Adjust users. + * buffer.c (set_buffer_if_live): Fix comment. + +2012-08-28 Dmitry Antipov + + Fix usage of set_buffer_internal. + * buffer.h (set_buffer_internal): Make it BUFFER_INLINE. + * buffer.c (set_buffer_if_live): Use set_buffer_internal. + * coding.c (decode_coding): Omit redundant test. + * fileio.c (decide_coding_unwind): Likewise. + * fns.c (secure_hash): Likewise. + * insdel.c (modify_region): Likewise. + * keyboard.c (command_loop_1): Likewise. + * print.c (PRINTFINISH): Likewise. + * xdisp.c (run_window_scroll_functions): Use set_buffer_internal. + +2012-08-27 Paul Eggert + + * dispnew.c: Use bool for boolean. + (frame_garbaged, display_completed, delayed_size_change) + (fonts_changed_p, add_window_display_history) + (add_frame_display_history, verify_row_hash) + (adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p) + (row_equal_p, realloc_glyph_pool) + (allocate_matrices_for_frame_redisplay) + (showing_window_margins_p) + (adjust_frame_glyphs_for_frame_redisplay) + (build_frame_matrix_from_leaf_window, make_current) + (mirrored_line_dance, mirror_line_dance, update_frame) + (update_window_tree, update_single_window) + (check_current_matrix_flags, update_window, update_text_area) + (update_window_line, set_window_update_flags, scrolling_window) + (update_frame_1, scrolling, buffer_posn_from_coords) + (do_pending_window_change, change_frame_size) + (change_frame_size_1, sit_for): + Use bool for boolean. + (clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows, + and remove last int (actually boolean) argument, which was always 0. + All callers changed. + * dispextern.h, frame.h, lisp.h: Reflect above API changes. + * dispextern.h (struct composition_it): Use bool for boolean. + (struct glyph_matrix): Don't assume buffer sizes can fit in 'int'. + (struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf. + * dired.c (file_name_completion): + Use bool for boolean. (This was missed in an earlier change.) + +2012-08-27 Martin Rudalics + + * window.c (Fset_window_configuration): Revert first part of + last change. + +2012-08-27 Jan Djärv + + * nsterm.h (NSPanel): New class variable dialog_return. + + * nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize + dialog_return. + (windowShouldClose:): Use stop instead of stopModalWithCode. + (clicked:): Ditto, and also set dialog_return (Bug#12258). + (timeout_handler:): Use stop instead of abortModal. Send a dummy + event. + (runDialogAt:): Make ret Lisp_Object. Set it from dialog_return when + modal loop returns. + +2012-08-27 Paul Eggert + + * composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans. + * composite.c (find_composition, composition_gstring_p) + (composition_reseat_it, find_automatic_composition): + * data.c (let_shadows_buffer_binding_p) + (let_shadows_global_binding_p, set_internal, make_blv) + (Fmake_variable_buffer_local, Fmake_local_variable) + (Fmake_variable_frame_local, arithcompare, cons_to_unsigned) + (cons_to_signed, arith_driver): + * dbusbind.c (xd_in_read_queued_messages): + * dired.c (directory_files_internal, file_name_completion): + Use bool for booleans. + * dired.c (file_name_completion): + * process.h (fd_callback): + Omit int (actually boolean) argument. It wasn't being used. + All uses changed. + * composite.h, lisp.h: Reflect above API changes. + + * cmds.c, coding.c: Use bool for booleans. + * cmds.c (move_point, Fself_insert_command): + * coding.h (struct composition status, struct coding_system): + * coding.c (detect_coding_utf_8, encode_coding_utf_8) + (detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule) + (emacs_mule_char, decode_coding_emacs_mule) + (encode_coding_emacs_mule, detect_coding_iso_2022) + (decode_coding_iso_2022, encode_invocation_designation) + (encode_designation_at_bol, encode_coding_iso_2022) + (detect_coding_sjis, detect_coding_big5, decode_coding_sjis) + (decode_coding_big5, encode_coding_sjis, encode_coding_big5) + (detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text) + (encode_coding_raw_text, detect_coding_charset) + (decode_coding_charset, encode_coding_charset, detect_eol) + (detect_coding, get_translation_table, produce_chars) + (consume_chars, reused_workbuf_in_use) + (make_conversion_work_buffer, code_conversion_save) + (decode_coding_object, encode_coding_object) + (detect_coding_system, char_encodable_p) + (Funencodable_char_position, code_convert_region) + (code_convert_string, code_convert_string_norecord) + (Fset_coding_system_priority): + * fileio.c (Finsert_file_contents): + Use bool for booleans. + * coding.h, lisp.h: Reflect above API changes. + * coding.c: Remove unnecessary static function decls. + (detect_coding): Use unsigned, not signed, to copy an unsigned field. + (decode_coding, encode_coding, decode_coding_gap): Return 'void', + not a boolean 'int', since callers never look at the return value. + (ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'. + * coding.h (decoding_buffer_size, encoding_buffer_size) + (emacs_mule_string_char): Remove unused extern decls. + (struct iso_2022_spec, struct coding_system): + Use 'unsigned int : 1' for boolean fields, since there's more than one. + (struct emacs_mule_spec): Remove unused field 'full_support'. + All initializations removed. + * cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'. + +2012-08-27 Dmitry Antipov + + Fix spare memory change (Bug#12286). + * alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE. + (valid_lisp_object_p): Likewise. + +2012-08-27 Martin Rudalics + + * window.c (Fset_window_configuration): Record any window's old + buffer if it's replaced (see Bug#8789). If the new current + buffer doesn't appear in the selected window, go to its old + point (Bug#12208). + +2012-08-27 Dmitry Antipov + + Special MEM_TYPE_SPARE to denote reserved memory. + * alloc.c (enum mem_type): New memory type. + (refill_memory_reserve): Use new type for spare memory. + This prevents live_cons_p and live_string_p from incorrect + detection of uninitialized objects from spare memory as live. + +2012-08-26 Paul Eggert + + Spelling fixes. + * Makefile.in (.PHONY): versioclean -> versionclean. + + Remove unused external symbols. + * data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector): + * window.c (Qwindow_valid_p, decode_valid_window): + Now static, not extern. + * data.c (Qinterval): Remove; unused. + (syms_of_data): Do not define 'interval'. + * lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons): + * window.h (decode_valid_window): + Remove decls. + + * character.c, charset.c, chartab.c: Use bool for booleans. + * character.c (lisp_string_width, string_count_byte8) + (string_escape_byte8): + * charset.c (charset_map_loaded, load_charset_map, read_hex): + (load_charset_map_from_file, map_charset_chars) + (Fdefine_charset_internal, define_charset_internal) + (Fdeclare_equiv_charset, find_charsets_in_text) + (Ffind_charset_region, char_charset, Fiso_charset): + * chartab.c (sub_char_table_ref, sub_char_table_ref_and_range) + (sub_char_table_set, sub_char_table_set_range) + (char_table_set_range, optimize_sub_char_table) + (map_sub_char_table): + Use bool for boolean. + * character.c (str_to_unibyte): Omit last boolean argument; it was + always 0. All callers changed. + * character.h, charset.h: Adjust to match previous changes. + * character.h (char_printable_p): Remove decl of nonexistent function. + * charset.h (struct charset): Members code_linear_p, iso_chars_96, + ascii_compatible_p, supplementary_p, compact_codes_p, unified_p + are all boolean, so make them single-bit bitfields. + + * lisp.h (ASET): Remove attempt to detect side effects. + It was meant to be temporary and it often doesn't work, + because when IDX has side effects the behavior of IDX==IDX + is undefined. See Stefan Monnier in + . + +2012-08-26 Barry OReilly (tiny change) + + * lisp.h (functionp): New function (extracted from Ffunctionp). + (FUNCTIONP): Use it. + * eval.c (Ffunctionp): Use it. + +2012-08-25 Paul Eggert + + * xgselect.c (xg_select): Use auto storage for the GPollFD buffer + as that's faster and simpler than static storage. Don't bother + with the g_main_context_query overhead if g_main_context_pending + says no events are pending. + (gfds, gfds_size): Remove these static vars. + (xgselect_initialize): Remove; no longer needed. + All uses and decls removed. + + * emacs.c (fatal_error_signal_hook): Remove. + All uses removed. This leftover from old code was always 0. + + * casefiddle.c, casetab.c, category.c: Use bool for boolean. + * casefiddle.c (casify_object, casify_region): + * casetab.c (set_case_table): + * category.c, category.h (word_boundary_p): + * category.h (CHAR_HAS_CATEGORY): + Use bool for booleans, instead of int. + +2012-08-25 Eli Zaretskii + + * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h. + +2012-08-25 Paul Eggert + + On assertion failure, print backtrace if available. + * alloc.c [ENABLE_CHECKING]: Include . + (die) [ENABLE_CHECKING]: Print a backtrace if available. + * Makefile.in (LIB_EXECINFO): New macro. + (LIBES): Use it. + + * bytecode.c, callint.c, callproc.c: Use bool for boolean. + * bytecode.c (exec_byte_code): + * callint.c (check_mark, Fcall_interactively): + * callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1) + (getenv_internal, sync_process_alive, call_process_exited): + * lisp.h (USE_SAFE_ALLOCA): + Use bool for booleans, instead of int. + * lisp.h, process.h: Adjust prototypes to match above changes. + * callint.c (Fcall_interactively): Don't assume the mark's + offset fits in 'int'. + +2012-08-24 Paul Eggert + + * buffer.c, buffer.h: Use bool for boolean. + * buffer.c (reset_buffer_local_variables) + (buffer_lisp_local_variables, Fset_buffer_modified_p) + (Frestore_buffer_modified_p, Fset_buffer_multibyte): + (overlays_at, overlays_in, mouse_face_overlay_overlaps) + (overlay_touches_p, overlay_strings, Foverlay_put) + (report_overlay_modification, call_overlay_mod_hooks): + (mmap_enlarge, mmap_set_vars): + * buffer.h (buffer_has_overlays, uppercasep, lowercasep): + Use bool for booleans, instead of int. + * buffer.c (compact_buffer, mmap_free_1): Return void, not int, + since the 1-or-0 return value is always ignored anyway. + (mmap_initialized_p): + * buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int. + * buffer.h, lisp.h: Adjust prototypes to match above changes. + +2012-08-23 Paul Eggert + + * bidi.c: Use bool for boolean. + This is a bit more readable, and makes the text segment of bidi.o + 0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15). + Presumably it's faster too. + (bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level): + Now bool. + (bidi_cache_find_level_change, bidi_cache_iterator_state) + (bidi_unshelve_cache, bidi_init_it, bidi_count_bytes) + (bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init) + (bidi_explicit_dir_char, bidi_level_of_next_char) + (bidi_find_other_level_edge, bidi_move_to_visually_next): + Use bool for booleans, instead of int. + * dispextern.h (bidi_init_it, bidi_paragraph_init) + (bidi_unshelve_cache): Adjust decls to match code. + +2012-08-23 Martin Rudalics + + * keyboard.c (Fposn_at_x_y): Do not allow internal window as + argument. + +2012-08-23 Paul Eggert + + * atimer.c, atimer.h (turn_on_atimers): Use bool for boolean. + * atimer.h: Include . + +2012-08-22 Dan Nicolaescu + + * frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to + compile time tests instead of run time tests on systems that do + not use them. + (FRAME_MAC_P): Remove leftover from deleted code. + * frame.c (syms_of_frame): Remove leftover from deleted code. + +2012-08-22 Jan Djärv + + * nsterm.m (insertText:): Don't clear modifiers if code is space. + +2012-08-22 Paul Eggert + + * fontset.c (FONTSET_ADD): Return void, not Lisp_Object. + Otherwise, the compiler complains about (A?B:C) where B is void + and C is Lisp_Object. This fixes an incompatibility with Sun C 5.12. + (fontset_add): Return void, for FONTSET_ADD. + +2012-08-21 Paul Eggert + + * alloc.c: Use bool for booleans. + (gc_in_progress, abort_on_gc) + (setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]: + (dont_register_blocks) [GC_MALLOC_CHECK]: + (suppress_checking) [ENABLE_CHECKING]: Now bool, not int. + (check_string_bytes, make_specified_string, memory_full) + (live_string_p, live_cons_p, live_symbol_p, live_float_p) + (live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object) + (mark_stack, valid_pointer_p, make_pure_string) + (Fgarbage_collect, survives_gc_p, gc_sweep): + Use bool for booleans, instead of int. + (test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]: + Remove unused local. + * alloc.c (PURE_POINTER_P): + * lisp.h (STRING_MULTIBYTE): Document that it returns a boolean. + * editfns.c (Fformat): + * fileio.c (Fexpand_file_name, Fsubstitute_in_file_name) + (Fdo_auto_save): + * fns.c (sweep_weak_table): + * lisp.h (suppress_checking, push_message, survives_gc_p) + (make_pure_string, gc_in_progress, abort_on_gc): + * lread.c (readchar, read1): + * print.c (Fprin1_to_string): + * xdisp.c (push_message): + Use bool for booleans affected directly or indirectly by + alloc.c's changes. + + Make recently-introduced setters macros. + * fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii) + (set_fontset_base, set_fontset_frame, set_fontset_nofont_face) + (set_fontset_default, set_fontset_fallback): Rename from their + upper-case counterparts, and make them functions rather than macros. + This is more consistent with the other recently-introduced setters. + These don't need to be inline, since they're local. + +2012-08-21 Jan Djärv + + * nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in + the loop (Bug#12247). + +2012-08-21 Paul Eggert + + * lisp.h (vcopy): Use memcpy rather than our own loop. + This fixes a performance regression introduced by the recent + addition of vcopy. This means 'vcopy' will need to be modified + for a copying collector, but that's OK. Also, tighten the + checking in the assertion. + +2012-08-21 Eli Zaretskii + + * w32uniscribe.c (uniscribe_shape): Fix producing gstring + components for RTL text (Bug#11860). Adjust X-OFFSET of each + non-base glyph for the width of the base character, according to + what x_draw_composite_glyph_string_foreground expects. + Generate WADJUST value according to composition_gstring_width's + expectations, to produce correct width of the composed character. + Reverse the sign of the DU offset produced by ScriptPlace. + +2012-08-21 Paul Eggert + + * dbusbind.c (xd_remove_watch): Do not assume C99 comments. + +2012-08-21 Dmitry Antipov + + Avoid direct writes to contents member of struct Lisp_Vector. + * lisp.h (vcopy): New function to copy data into vector. + * dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET. + * fns.c (Ffillarray): Use ASET. + * keyboard.c (timer_check_2): Use AREF and ASET. + (append_tool_bar_item, Frecent_keys): Use vcopy. + * lread.c (read_vector): Use ASET. + * msdos.c (Frecent_doskeys): Use vcopy. + * xface.c (Finternal_copy_lisp_face): Use vcopy. + (Finternal_merge_in_global_face): Use ASET and vcopy. + * xfont.c (xfont_list_pattern): Likewise. + +2012-08-21 Martin Rudalics + + * window.c (Fwindow_point): For the selected window always return + the position of its buffer's point. + (Fset_window_point): For the selected window always go in its + buffer to the specified position. + +2012-08-21 Dmitry Antipov + + Setter macros for fontsets. + * fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII) + (SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE) + (SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros. + Adjust users. + +2012-08-20 Glenn Morris + + * Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): + Don't assume that `ln -f' works. + +2012-08-20 Eli Zaretskii + + * .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5 + and later about non-assignments with no effect. See discussion at + http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for + details. + +2012-08-20 Dmitry Antipov + + Inline setter functions for Lisp_Objects slots of struct specbinding. + * eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions. + Adjust users. + +2012-08-20 Martin Rudalics + + * window.c (select_window): Always make selected window's buffer + current. + +2012-08-20 Dmitry Antipov + + Use AREF and ASET for docstrings of category tables. + * category.h (CATEGORY_DOCSTRING): Use AREF. + (SET_CATEGORY_DOCSTRING): Use ASET. + * category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING. + +2012-08-20 Dmitry Antipov + + Inline setter functions for hash table members. + * lisp.h (set_hash_key, set_hash_value, set_hash_next) + (set_hash_hash, set_hash_index): Rename with _slot suffix. + (set_hash_key_and_value, set_hash_index, set_hash_next) + (set_hash_hash): New functions. + * charset.c, fns.c: Adjust users. + +2012-08-20 Dmitry Antipov + + Inline getter and setter functions for per-buffer values. + * buffer.h (per_buffer_default, set_per_buffer_default) + (per_buffer_value, set_per_buffer_value): New functions. + (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove. + * buffer.c, data.c: Adjust users. + +2012-08-20 Juanma Barranquero + + * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies. + +2012-08-19 Paul Eggert + + Rely on + to declare 'environ', + as gnulib does this if the system doesn't. + * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]: + Remove declaration. MS-Windows declares it on stdlib.h which is + included by conf_post.h. + * emacs.c (environ) [DOUG_LEA_MALLOC]: + * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl. + * vm-limit.c: Include , for 'environ'. + + * unexaix.c, unexcoff.c: Include "mem-limits.h". + (start_of_data): Remove decl; mem-limits.h provides it. + + * xdisp.c (handle_invisible_prop): Make it a bit faster + and avoid a gcc -Wmaybe-uninitialized diagnostic. + +2012-08-19 Chong Yidong + + * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string + ends (Bug#3874). + +2012-08-19 Andreas Schwab + + * .gdbinit: Use call instead of set when calling a function in the + inferior. + + * data.c (set_internal): Don't use set_blv_found. + (Fkill_local_variable): Likewise. + +2012-08-18 Alp Aker + + * nsfont.m (ns_ascii_average_width): Ensure the string + ascii_printable is initialized with a null-terminated character + array. Otherwise, it can contain undesired extra characters. + +2012-08-18 Paul Eggert + + port new setting code to Sun C 5.8 2005/10/13 + * chartab.c, lisp.h (char_table_set, char_table_set_range): + Return void, not Lisp_Object. Otherwise, the compiler + complains about (A?B:C) where B is void and C is Lisp_Object + when compiling CHAR_TABLE_SET, due to the recent change to + the API of sub_char_table_set_contents. + +2012-08-18 Chong Yidong + + * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE + for the string case (Bug#3874). + +2012-08-18 Paul Eggert + + * buffer.h (BSET): Remove (Bug#12215). + Replace all uses with calls to new setter functions. + (bset_bidi_paragraph_direction, bset_case_canon_table) + (bset_case_eqv_table, bset_directory, bset_display_count) + (bset_display_time, bset_downcase_table) + (bset_enable_multibyte_characters, bset_filename, bset_keymap) + (bset_last_selected_window, bset_local_var_alist) + (bset_mark_active, bset_point_before_scroll, bset_read_only) + (bset_truncate_lines, bset_undo_list, bset_upcase_table) + (bset_width_table): + * buffer.c (bset_abbrev_mode, bset_abbrev_table) + (bset_auto_fill_function, bset_auto_save_file_format) + (bset_auto_save_file_name, bset_backed_up, bset_begv_marker) + (bset_bidi_display_reordering, bset_buffer_file_coding_system) + (bset_cache_long_line_scans, bset_case_fold_search) + (bset_ctl_arrow, bset_cursor_in_non_selected_windows) + (bset_cursor_type, bset_display_table, bset_extra_line_spacing) + (bset_file_format, bset_file_truename, bset_fringe_cursor_alist) + (bset_fringe_indicator_alist, bset_fringes_outside_margins) + (bset_header_line_format, bset_indicate_buffer_boundaries) + (bset_indicate_empty_lines, bset_invisibility_spec) + (bset_left_fringe_width, bset_major_mode, bset_mark) + (bset_minor_modes, bset_mode_line_format, bset_mode_name) + (bset_name, bset_overwrite_mode, bset_pt_marker) + (bset_right_fringe_width, bset_save_length) + (bset_scroll_bar_width, bset_scroll_down_aggressively) + (bset_scroll_up_aggressively, bset_selective_display) + (bset_selective_display_ellipses, bset_vertical_scroll_bar_type) + (bset_word_wrap, bset_zv_marker): + * category.c (bset_category_table): + * syntax.c (bset_syntax_table): + New setter functions. + + * process.h (PSET): Remove (Bug#12215). + Replace all uses with calls to new setter functions. + Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. + (PROCESS_INLINE): New macro. + (pset_childp): New setter function. + (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function. + * process.c (PROCESS_INLINE): + Define to EXTERN_INLINE, so that the corresponding functions + are compiled into code. + (pset_buffer, pset_command, pset_decode_coding_system) + (pset_decoding_buf, pset_encode_coding_system) + (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name) + (pset_plist, pset_sentinel, pset_status, pset_tty_name) + (pset_type, pset_write_queue): New setter functions. + + * window.h (WSET): Remove (Bug#12215). + Replace all uses with calls to new setter functions. + Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. + (WINDOW_INLINE): New macro. + (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev) + (wset_redisplay_end_trigger, wset_top_line, wset_total_cols) + (wset_total_lines, wset_vertical_scroll_bar) + (wset_window_end_pos, wset_window_end_valid) + (wset_window_end_vpos): New setter functions. + * window.c (WINDOW_INLINE): + Define to EXTERN_INLINE, so that the corresponding functions + are compiled into code. + (wset_combination_limit, wset_dedicated, wset_display_table) + (wset_hchild, wset_left_fringe_width, wset_left_margin_cols) + (wset_new_normal, wset_new_total, wset_next_buffers) + (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm) + (wset_prev_buffers, wset_right_fringe_width) + (wset_right_margin_cols, wset_scroll_bar_width, wset_start) + (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type) + (wset_window_parameters): + * xdisp.c (wset_base_line_number, wset_base_line_pos) + (wset_column_number_displayed, wset_region_showing): + New setter functions. + + * termhooks.h (TSET): Remove (Bug#12215). + Replace all uses with calls to new setter functions. + Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. + (TERMHOOKS_INLINE): New macro. + (tset_charset_list, tset_selection_alist): New setter functions. + * terminal.c (TERMHOOKS_INLINE): + Define to EXTERN_INLINE, so that the corresponding functions + are compiled into code. + (tset_param_alist): New setter function. + +2012-08-17 Paul Eggert + + * keyboard.h (KSET): Remove (Bug#12215). + Replace all uses with calls to new setter functions. + Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. + (KEYBOARD_INLINE): New macro. + (kset_default_minibuffer_frame, kset_defining_kbd_macro) + (kset_input_decode_map, kset_last_command, kset_last_kbd_macro) + (kset_prefix_arg, kset_system_key_alist, kset_window_system): + New setter functions. + * keyboard.c (KEYBOARD_INLINE): + Define to EXTERN_INLINE, so that the corresponding functions + are compiled into code. + (kset_echo_string, kset_kbd_queue) + (kset_keyboard_translate_table, kset_last_prefix_arg) + (kset_last_repeatable_command, kset_local_function_key_map) + (kset_overriding_terminal_local_map, kset_real_last_command) + (kset_system_key_syms): New setter functions. + + * frame.h (FSET): Remove (Bug#12215). + Replace all uses with calls to new setter functions. + Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. + (FRAME_INLINE): New macro. + (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars) + (fset_current_tool_bar_string, fset_desired_tool_bar_string) + (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items) + (fset_menu_bar_vector, fset_menu_bar_window, fset_name) + (fset_param_alist, fset_root_window, fset_scroll_bars) + (fset_selected_window, fset_title, fset_tool_bar_items) + (fset_tool_bar_position, fset_tool_bar_window): New functions. + * frame.c (FRAME_INLINE): + Define to EXTERN_INLINE, so that the corresponding functions + are compiled into code. + (fset_buffer_predicate, fset_minibuffer_window): New setter functions. + + A few more naming-convention fixes for getters and setters. + * buffer.c (set_buffer_overlays_before): Move here from buffer.h, + and rename from buffer_overlays_set_before. + (set_buffer_overlays_after): Move here from buffer.h, and rename + from buffer_overlays_set_after. + * buffer.h (buffer_intervals): Rename from buffer_get_intervals. + All uses changed. + (set_buffer_intervals): Rename from buffer_set_intervals. + * intervals.c (set_interval_object): Move here from intervals.h, + and rename from interval_set_object. + (set_interval_left): Move here from intervals.h, and rename from + interval_set_left. + (set_interval_right): Move here from intervals.h, and rename from + interval_set_right. + (copy_interval_parent): Move here from intervals.h, and rename from + interval_copy_parent. + * intervals.h (set_interval_parent): Rename from interval_set_parent. + (set_interval_plist): Rename from interval_set_plist. + Return void, not Lisp_Object, since no caller uses the result. + * lisp.h (string_intervals): Rename from string_get_intervals. + (set_string_intervals): Rename from string_set_intervals. + + * lisp.h (set_char_table_extras): Rename from char_table_set_extras. + (set_char_table_contents): Rename from char_table_set_contents. + (set_sub_char_table_contents): Rename from sub_char_table_set_contents. + All uses changed. See the end of + . + + * lisp.h (CSET): Remove (Bug#12215). + (set_char_table_ascii, set_char_table_defalt, set_char_table_parent) + (set_char_table_purpose): New functions, + replacing CSET. All uses changed. For example, replace + "CSET (XCHAR_TABLE (char_table), parent, parent);" with + "set_char_table_parent (char_table, parent);". + The old version was confusing because it used the same name + 'parent' for two different things. + +2012-08-17 Dmitry Antipov + + Functions to get and set Lisp_Object fields of buffer-local variables. + * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value) + (set_blv_where, set_blv_defcell, set_blv_valcell): New functions. + (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove. + * data.c, eval.c, frame.c: Adjust users. + +2012-08-17 Chong Yidong + + * xfaces.c (merge_face_vectors): If the target font specfies a + font spec, make the font's attributes take precedence over + directly-specified attributes. + (merge_face_ref): Recognize :font. + +2012-08-17 Dmitry Antipov + + Do not use memcpy for copying intervals. + * intervals.c (reproduce_interval): New function. + (reproduce_tree, reproduce_tree_obj): Use it. + (reproduce_tree_obj): Remove prototype. + +2012-08-17 Paul Eggert + + * lisp.h (duration_to_sec_usec): Remove unused decl. + +2012-08-17 Alp Aker + + * nsfont.m (ns_ascii_average_width): Send initWithFormat selector + to an allocated instance of NSString, not to the class itself. + +2012-08-17 Juanma Barranquero + + * makefile.w32-in (C_CTYPE_H): New macro. + (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)): + ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)): + ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies. + +2012-08-16 Paul Eggert + + Use ASCII tests for character types. + * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c: + * xfns.c, xterm.c: + Don't include ; was not needed. + * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c: + * sysdep.c, xfaces.c: + Include instead of . + * nsterm.m: Include . + * charset.c (read_hex): + * doc.c (Fsnarf_documentation): + * fileio.c (IS_DRIVE) [WINDOWSNT]: + (DRIVE_LETTER) [DOS_NT]: + (Ffile_name_directory, Fexpand_file_name) + (Fsubstitute_in_file_name): + * font.c (font_parse_xlfd, font_parse_fcname): + * frame.c (x_set_font_backend): + * gtkutil.c (xg_get_font): + * image.c (xbm_scan, xpm_scan, pbm_scan_number): + * nsimage.m (hexchar): + * nsterm.m (ns_xlfd_to_fontname): + * sysdep.c (system_process_attributes): + * xfaces.c (hash_string_case_insensitive): + Use C-locale tests instead of locale-specific tests for character + types, since we want the ASCII interpretation here, not the + interpretation suitable for whatever happens to be the current locale. + +2012-08-16 Martin Rudalics + + Consistently check windows for validity/liveness + (Bug#11984, Bug#12025, Bug#12026). + * lisp.h (CHECK_VALID_WINDOW): New macro. + * window.c (decode_window): Rename to decode_live_window. + (decode_valid_window, Fwindow_valid_p): New functions. + (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p) + (Fframe_first_window, Fframe_selected_window, Fwindow_parent) + (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling) + (Fwindow_prev_sibling, Fwindow_combination_limit) + (Fset_window_combination_limit, Fwindow_use_time) + (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total) + (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column) + (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width) + (Fwindow_hscroll, Fset_window_hscroll) + (Fwindow_redisplay_end_trigger) + (Fset_window_redisplay_end_trigger, Fwindow_edges) + (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges) + (Fwindow_inside_edges, Fwindow_inside_pixel_edges) + (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start) + (Fwindow_end, Fset_window_point, Fset_window_start) + (Fpos_visible_in_window_p, Fwindow_line_height) + (Fwindow_dedicated_p, Fset_window_dedicated_p) + (Fwindow_prev_buffers, Fset_window_prev_buffers) + (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter) + (Fset_window_parameter, Fwindow_display_table) + (Fset_window_display_table, Fdelete_other_windows_internal) + (Fset_window_buffer, Fset_window_new_total) + (Fset_window_new_normal, Fdelete_window_internal) + (Fwindow_text_height, Fset_window_margins, Fwindow_margins) + (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars) + (Fwindow_scroll_bars): Check whether argument window is a valid or + live window. Update doc-strings. + (syms_of_window): New symbol Qwindow_valid_p. + * keyboard.c (Fposn_at_x_y): Check whether argument + frame_or_window denotes a valid window. + +2012-08-16 Dmitry Antipov + + Fix previous char table change. + * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents. + * chartab.c (optimize_sub_char_table): Likewise. + +2012-08-16 Chong Yidong + + * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228). + + * xfont.c (xfont_open): + * xftfont.c (xftfont_open): Set the font's max_width field. + + * nsfont.m (nsfont_open): Similar to the Xft backend, set + min_width to space_width and average_width to the average over + printable ASCII characters. + (ns_char_width): Code cleanup. + (ns_ascii_average_width): New utility function. + + * font.h (struct font): Update comments. + +2012-08-16 Dmitry Antipov + + Simple interface to set Lisp_Object fields of character tables. + * lisp.h (CSET): New macro. + (char_table_set_extras, char_table_set_contents) + (sub_char_table_set_contents): New function. + * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c: + * syntax.c: Adjust users. + +2012-08-16 Stefan Monnier + + * eval.c (eval_sub): Bind lexical-binding. + * lread.c (Qlexical_binding): Make non-static. + +2012-08-15 Jan Djärv + + * nsmenu.m (popupSession): Remove. + (pop_down_menu): Remove endModalSession. + (timeout_handler:): New method. + (runDialogAt:): Get next timeout. Start a NSTimer with that timeout. + Call runModalForWindow. Check timer_fired when it returns. + If not set, cancel timer and break out of loop. + Otherwise loop again, with a new timeout. + + * nsterm.m: Include fcntl.h if present. + (fd_entry, t_readfds, inNsSelect): Remove. + (select_writefds, select_valid, select_timeout, selfds) + (select_mutex, apploopnr): Add. + (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr. + Otherwise call kbd_buffer_store_event. + (ns_send_appdefined): Remove release of fd_entry. + (ns_read_socket): Always send appdefined. Remove inNsSelect check. + Increment and decrement apploopnr. + (ns_select): If no file descriptors, just do a NSTimer. + Otherwise copy read/write masks and start select thread (fd_handler). + Start main loop and wait for application defined event. + Inform select thread to stop selecting after main loop is exited. + (ns_term_init): Create selfds pipe and set non-blocking. + Initialize select_mutex. Start the select thread (fd_handler). + (fd_handler:): Loop forever, wait for info from the main thread + to either start or stop selecting. When select returns, send + and appdefined event. + (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set. + If not call kbd_buffer_store_event. + + * nsterm.h (EmacsApp): fd_handler takes id argument. + (EmacsDialogPanel): Add timer_fired and timeout_handler. + + * gtkutil.c (xg_mark_data): Use FRAME_X_P. + +2012-08-15 Eli Zaretskii + + * region-cache.c (move_cache_gap): Update gap_len using the actual + growth of the boundaries array. Do not change cache_len. + (Bug#12196) + +2012-08-15 Dmitry Antipov + + Generalize and cleanup font subsystem checks. + * font.h (FONT_DEBUG, font_assert): Remove. + * font.c, fontset.c, w32font.c, xfont.c, xftfont.c: + Change font_assert to eassert. Use eassert where appropriate. + +2012-08-15 Dmitry Antipov + + * gtkutil.c (xg_get_font): Use pango_units_to_double. + +2012-08-15 Chong Yidong + + * gtkutil.c (xg_get_font): Rename from xg_get_font_name. + When using the new font chooser, use gtk_font_chooser_get_font_desc to + extract the font descriptor instead of just the font name. + In that case, return a font spec instead of a string. + (x_last_font_name): Move to this file from xfns.c. + + * xfns.c (Fx_select_font): The return value can also be a font + spec. Move x_last_font_name management to gtkutil.c. + + * xfaces.c: Make font weight and style symbols non-static. + +2012-08-15 Stefan Monnier + + * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only + (bug#12117). + +2012-08-14 Stefan Monnier + + * alloc.c (Fgarbage_collect): Use plural form consistently. + +2012-08-14 Eli Zaretskii + + * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each + iteration through the command loop. Fixes a problem whereby mouse + movements are ignored until the first mouse click. + +2012-08-14 Paul Eggert + + Use bool, not int, for Lisp booleans. + This is more natural, and on my platform (GCC 4.7.1 x86-64) it + makes Emacs a bit smaller and presumably a bit faster. + * lisp.h: Include . + (struct Lisp_Boolfwd, defvar_bool): + * lread.c (defvar_bool): Use bool, not int, for Lisp booleans. + * regex.c [!emacs]: Include . + (false, true): Remove; does this for us now. + +2012-08-14 Chong Yidong + + * character.c (Fcharacterp): Doc fix (Bug#12076). + + * data.c (Findirect_variable): Doc fix (Bug#11040). + + * chartab.c (Fmap_char_table): Doc fix (Bug#12061). + + * editfns.c (Fformat): Doc fix (Bug#12059). + (Fsave_current_buffer): Doc fix (Bug#11542). + +2012-08-14 Barry OReilly (tiny change) + + * keyboard.c (access_keymap_keyremap): Accept anonymous functions + (bug#12022). + +2012-08-14 Martin Rudalics + + * frame.c (make_frame_without_minibuffer, make_minibuffer_frame) + (delete_frame, Fmake_frame_invisible, Ficonify_frame): + * minibuf.c (choose_minibuf_frame, read_minibuf): + * w32fns.c (x_create_tip_frame): + * xfns.c (x_create_tip_frame): Call set_window_buffer instead of + Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026). + +2012-08-14 Paul Eggert + + * intervals.c (offset_intervals): Remove obsolete comment. + +2012-08-14 Andreas Schwab + + * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP. + +2012-08-14 Gergely Risko + + * coding.c (decode_coding): Record buffer modification before + disabling undo_list (Bug#11773). + +2012-08-14 Dmitry Antipov + + Revert and cleanup some recent overlay changes. + * buffer.h (enum overlay_type): Remove. + (buffer_get_overlays, buffer_set_overlays): Likewise. + (buffer_set_overlays_before, buffer_set_overlays_after): + New function. Adjust users. + (unchain_both): Add eassert. + +2012-08-14 Dmitry Antipov + + * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate. + +2012-08-14 Paul Eggert + + * gtkutil.c (xg_mark_data): Don't assume C99. + +2012-08-13 Jan Djärv + + * gtkutil.c (xg_frame_tb_info): New struct. + (TB_INFO_KEY): New define. + (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present. + (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info. + (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info + if not present. + (update_frame_tool_bar): Return early if data in xg_frame_tb_info + is up to date. Otherwise store new data. + (free_frame_tool_bar): Free xg_frame_tb_info if present. + +2012-08-13 Dmitry Antipov + + Use KSET for write access to Lisp_Object members of struct kboard. + * keyboard.h (KSET): New macro. + * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c: + * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c: + * xterm.c: Adjust users. + +2012-08-13 Dmitry Antipov + + Use BSET for write access to Lisp_Object members of struct buffer. + * buffer.h (BSET): New macro. + * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c: + * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c: + * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c: + * window.c, xdisp.c, xfns.c: Adjust users. + +2012-08-11 BT Templeton (tiny change) + + * lread.c (syms_of_lread): Initialize Vlexical_binding. + +2012-08-11 Jan Djärv + + * nsterm.m (not_in_argv): New function. + (application:openFile, application:openTempFile:): + (application:openFileWithoutUI:, application:openFiles:): Open file + if not_in_argv returns non-zero (bug#12171). + + * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER) + (gtk_font_chooser_set_font, gtk_font_chooser_get_font): + Define for Gtk+ versions less than 3.2. + (xg_get_font_name): Use those functions/macros here. + Reported by Frans Oilinki . + +2012-08-11 YAMAMOTO Mitsuharu + + * unexmacosx.c (copy_data_segment): Copy initialized data in + statically linked libraries from input file rather than memory. + + * unexmacosx.c (print_load_command_name): Add cases LC_MAIN, + LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS. + (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data. + +2012-08-10 Glenn Morris + + * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h. + * lisp.h (IF_LINT, lint_assume): Move to conf_post.h. + +2012-08-10 Dmitry Antipov + + Fix last change to allow compilation with low optimization levels. + * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE. + Reported by Jan Djärv . + +2012-08-10 Dmitry Antipov + + Use common inline syntax in intervals.h. + * intervals.h (INTERVALS_INLINE): New macro. + Change all users from LISP_INLINE. + +2012-08-10 Dmitry Antipov + + Define Qnone once for all platforms. + * frame.c (Qnone): Define here. + (syms_of_frame): DEFSYM it. + * lisp.h (Qnone): New declaration. + * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c: + * xfns.c: Remove duplication. Adjust users. + +2012-08-10 Dmitry Antipov + + Remove unused macros from intervals.h. + * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove. + * intervals.c: Adjust comment. + +2012-08-10 Eli Zaretskii + + * w32fns.c : New static variable. + (globals_of_w32fns): Initialize it according to os_subtype. + (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of + testing os_subtype. + +2012-08-10 Joakim Hårsman (tiny change) + Eli Zaretskii + + Fix bug #10299 with Unicode characters sent by customized + keyboards created by MSKLC. + * w32fns.c (INIT_WINDOW_CLASS): New macro. + (w32_init_class): Use it to initialize the Emacs class with either + ANSI or Unicode API calls. + (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and + later. + (w32_wnd_proc): If the character code sent by WM_CHAR or + WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the + original message. Call DefWindowProcW on NT and later. + +2012-08-10 Glenn Morris + + * Makefile.in (config_h): Fix conf_post.h out-of-tree build location. + + * lisp.h (DIRECTORY_SEP): Let configure set it. + +2012-08-09 Dmitry Antipov + + Use TSET for write access to Lisp_Object slots of struct terminal. + * termhooks.h (TSET): New macro. + * coding.c, terminal.c, xselect.c: Adjust users. + +2012-08-08 Stefan Monnier + + * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing + the failing expression, include them in the error message. + * eval.c (internal_condition_case_n): Pass nargs and args to hfun. + * lisp.h (internal_condition_case_n): Update declaration. + +2012-08-08 Dmitry Antipov + + Inline functions to examine and change buffer overlays. + * buffer.c (unchain_both): New function. + * buffer.h (buffer_get_overlays, buffer_set_overlays): + (buffer_has_overlays): New function. + (enum overlay_type): New enum. + * alloc.c, buffer.c, editfns.c, fileio.c, indent.c: + * insdel.c, intervals.c, print.c, xdisp.c: Adjust users. + +2012-08-08 Dmitry Antipov + + Inline functions to examine and change buffer intervals. + * alloc.c (mark_interval_tree): Remove. + (MARK_INTERVAL_TREE): Simplify. + (UNMARK_BALANCE_INTERVALS): Remove. Adjust users. + * intervals.c (buffer_balance_intervals): New function. + (graft_intervals_into_buffer): Adjust indentation. + (set_intervals_multibyte): Simplify. + * buffer.h (BUF_INTERVALS): Remove. + (buffer_get_intervals, buffer_set_intervals): New function. + * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c: + * intervals.c, textprop.c: Adjust users. + +2012-08-08 Dmitry Antipov + + Inline functions to examine and change string intervals. + * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove. + (string_get_intervals, string_set_intervals): New function. + * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c: + * lread.c, print.c, textprop.c: Adjust users. + +2012-08-08 Glenn Morris + + * lisp.mk (lisp): Remove language/persian.elc. + +2012-08-08 Dmitry Antipov + + Cleanup intervals. + * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove. + (NULL_INTERVAL_P): Likewise. Adjust users. + (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P): + Adjust comment. Move under #if 0. + * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c: + * print.c, syntax.c, textprop.c, xdisp.c: Adjust users. + +2012-08-08 Dmitry Antipov + + Check total length of intervals with eassert. + * intervals.h (CHECK_TOTAL_LENGTH): Remove. + * intervals.c: Change all users to eassert. + +2012-08-07 Eli Zaretskii + + * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist): + Rename fields to match removal of FGET and WGET and disuse of + INTERNAL_FIELD in Lisp_Cons. + +2012-08-07 Dmitry Antipov + + Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things. + * lisp.h (struct Lisp_Symbol): Change xname to meaningful + name since all xname users are fixed long time ago. Do not + use INTERNAL_FIELD. + (set_symbol_name, set_symbol_function, set_symbol_plist): + (set_symbol_next, set_overlay_plist): New function. + (struct Lisp_Cons): Do not use INTERNAL_FIELD. + (struct Lisp_Overlay): Likewise. + (CVAR, MVAR, SVAR): Remove. + * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c: + * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m: + * xterm.c: Adjust users. + * .gdbinit: Change to use name field of struct Lisp_Symbol + where appropriate. + +2012-08-07 Dmitry Antipov + + Basic functions to set Lisp_Object and pointer slots of intervals. + * intervals.h (interval_set_parent, interval_set_object): + (interval_set_left, interval_set_right, interval_set_plist): + (interval_copy_parent): New function. + (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove. + (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE): + Adjust indentation. + (INTERVAL_SIZE): Remove. Adjust users. + * alloc.c, intervals.c, lread.c, textprop.c: Use new functions. + +2012-08-07 Dmitry Antipov + + Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process. + * process.h (PGET): Remove. + (struct Lisp_Process): Do not use INTERNAL_FIELD. + * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users. + +2012-08-07 Dmitry Antipov + + Drop WGET and revert read access to Lisp_Objects slots of struct window. + * window.h (WGET): Remove. + (struct window): Do not use INTERNAL_FIELD. + * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c: + * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c: + * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m: + * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c: + * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: + Adjust users. + +2012-08-07 Chong Yidong + + * window.c (Fwindow_edges, Fwindow_pixel_edges) + (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal) + (Fdelete_window_internal): Signal an error if the window is not on + a live frame (Bug#12025). + +2012-08-07 Dmitry Antipov + + Drop FGET and revert read access to Lisp_Objects slots of struct frame. + * frame.h (FGET): Remove. + (struct frame): Do not use INTERNAL_FIELD. + * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c: + * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m: + * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h: + * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users. + +2012-08-06 Juanma Barranquero + + * w32.c: Silence compiler warnings. + (map_w32_filename): Remove unused variable `is_fat'. + (chase_symlinks): Add parentheses around expression. + +2012-08-06 Glenn Morris + + * sysdep.c: Respect BROKEN_GETWD. + + * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT): + Let configure handle it. + (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it. + +2012-08-06 Dmitry Antipov + + Use GCALIGNMENT where appropriate. + * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size): + (union aligned_Lisp_Symbol, union aligned_Lisp_Misc): + (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT. + +2012-08-06 Eli Zaretskii + + * w32menu.c (set_frame_menubar, initialize_frame_menubar): + Don't use FRAME_MENU_BAR_ITEMS as an lvalue. + +2012-08-06 Stefan Monnier + + * buffer.h (struct buffer): Revert `indirections' to a simple int; + that should be sufficient for everyone. + +2012-08-06 Jan Djärv + + * keyboard.c (timer_check_2): Add break so timer_check returns next + timeout. + +2012-08-06 Dmitry Antipov + + Fix Windows build errors introduced after converting to WGET and WSET. + * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET. + Reported by Andy Moreton . + +2012-08-06 Jan Djärv + + * nsterm.m (ns_frame_rehighlight): Use FSET. + + * nsmenu.m (ns_update_menubar): Use FSET. + +2012-08-06 Dmitry Antipov + + Separate read and write access to Lisp_Object slots of Lisp_Process. + * process.h (PGET, PSET): New macros similar to AREF and ASET. + * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users. + +2012-08-06 Dmitry Antipov + + Separate read and write access to Lisp_Object slots of struct window. + * window.h (WGET, WSET): New macros similar to AREF and ASET. + * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c: + * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c: + * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m: + * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c: + * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: + Adjust users. + +2012-08-06 Dmitry Antipov + + Fix Windows build errors introduced after converting to FGET and FSET. + * w32term.c (x_frame_rehighlight, x_scroll_bar_create): + (w32_condemn_scroll_bars, w32_redeem_scroll_bar): + (w32_judge_scroll_bars): Change to use FSET. + Reported by Andy Moreton . + +2012-08-06 Dmitry Antipov + + Fix replacement typo. + * window.c (replace_window): Set root_window instead of + selected_window. This fixes a total window subsystem + malfunction reported by Bastien Guerry . + +2012-08-06 Glenn Morris + + * lisp.mk (lisp): Add language/persian.elc. + +2012-08-06 Dmitry Antipov + + Separate read and write access to Lisp_Object slots of struct frame. + * frame.h (FGET, FSET): New macros similar to AREF and ASET. + * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c: + * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m: + * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h: + * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users. + +2012-08-05 Andreas Schwab + + * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT. + +2012-08-05 Dmitry Antipov + + Generalize common compile-time constants. + * lisp.h (header_size, bool_header_size, word_size): Now here. + (struct Lisp_Vector): Add comment. + (struct Lisp_Bool_Vector): Move up to define handy constants. + (VECSIZE, PSEUDOVECSIZE): Simplify. + (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation. + * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c: + * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c: + * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c: + * xfont.c, xmenu.c: Use word_size where appropriate. + +2012-08-05 Lawrence Mitchell + + * search.c (Freplace_match): Treat \? in the replacement text + literally (Bug#8161). + +2012-08-05 Chong Yidong + + * term.c (Vsuspend_tty_functions, Vresume_tty_functions): + * frame.c (Vdelete_frame_functions): + * emacs.c (Vkill_emacs_hook): Doc fix. + +2012-08-04 Eli Zaretskii + + * xfns.c (x_set_menu_bar_lines): Fix compilation error in + --with-x-toolkit=no builds. + Reported by Carsten Mattner . + +2012-08-04 Chong Yidong + + * syntax.c (Fmodify_syntax_entry): Doc fix. + +2012-08-04 Eli Zaretskii + + Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959) + * w32.c (init_environment): Change the default values of many + environment variables in dflt_envvars[] to NULL, to avoid pushing + them into environment when they were not already defined. + Remove the code that deletes site-lisp subdirectories from the default + value of EMACSLOADPATH, as it is no longer needed. + (check_windows_init_file): Now external, not static. + Use Vload_path as is, without adding anything, as this function is now + called when Vload_path is already set up. + + * w32.h (check_windows_init_file): Add prototype. + + * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build + directory, ignore the /*/i386/ tail in Vinvocation_directory, for + compatibility with Posix platforms. + (main): Move the call to check_windows_init_file to here from + w32.c. + (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if + any, in the DEFALT argument into the root of the Emacs build or + installation tree, as appropriate. + + * callproc.c (init_callproc_1): Call decode_env_path instead of + doing its equivalent by hand. + (init_callproc): Replace DOS_NT condition with MSDOS, thus letting + the code that sets Vexec_path run on MS-Windows. + + * lread.c (init_lread): Add comments to #ifdef's. + + * msdos.c (dos_set_window_size, IT_update_begin) + (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR + instead of direct references. + +2012-08-04 Paul Eggert + + Export DEFAULT_REHASH_* to GDB. + * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE): + Now constants, not macros. + +2012-08-03 Paul Eggert + + Remove unnecessary casts involving pointers. + These casts are no longer needed now that we assume C89 or later, + since they involve casting to or from void *. + * alloc.c (make_pure_string, make_pure_c_string, pure_cons) + (make_pure_float, make_pure_vector): + * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): + * macros.c (Fstart_kbd_macro): + * menu.c (find_and_return_menu_selection): + * minibuf.c (read_minibuf_noninteractive): + * sysdep.c (closedir): + * xdisp.c (x_produce_glyphs): + * xfaces.c (compare_fonts_by_sort_order): + * xfns.c (x_real_positions, select_visual): + * xselect.c (x_stop_queuing_selection_requests) + (x_get_window_property, x_get_window_property_as_lisp_data): + * xterm.c (x_set_frame_alpha, x_find_modifier_meanings): + Remove unnecessary pointer casts. + * alloc.c (record_xmalloc): New function. + * lisp.h (record_xmalloc): New decl. + (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts + more like a function. This is because the pointer cast is not + needed. All uses changed. + * print.c (print_string, print_error_message): Avoid length recalc. + + Improve fix for macroexp crash with debugging (Bug#12118). + * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to + ARRAY_MARK_FLAG when checking subscripts, because ASET is + not supposed to be invoked from the garbage collector. + See Andreas Schwab in . + (gc_aset): New function, which is like ASET but can be + used in the garbage collector. + (set_hash_key, set_hash_value, set_hash_next, set_hash_hash) + (set_hash_index): Use it instead of ASET. + +2012-08-03 Eli Zaretskii + + Support symlinks on latest versions of MS-Windows. + * w32.c: Include winioctl.h and aclapi.h. + (is_symlink, chase_symlinks, enable_privilege, restore_privilege) + (revert_to_self): Forward declarations of static functions. + : + : New static flags. + (globals_of_w32): Initialize them to zero. + (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs. + (map_w32_filename): Improve commentary. Simplify switch. + (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system + headers (most versions of MinGW w32api don't). + (get_security_info, create_symbolic_link) + (get_file_security_desc_by_handle, is_symlink, chase_symlinks): + New functions. + (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks + in the argument file name. + (sys_access): Call unc_volume_file_attributes only if + GetFileAttributes fails with network-related error codes. + (sys_rename): Diagnose renaming of a symlink when the user doesn't + have the required privileges. + (get_file_security_desc_by_name): Rename from + get_file_security_desc. + (stat_worker): New function, with most of the guts of 'stat', and + with addition of handling of symlinks and support for 'lstat'. + If possible, get file's attributes and security information by + handle, not by name. Produce S_IFLNK bit for symlinks, when + called from 'lstat'. + (stat, lstat): New functions, call 'stat_worker'. + (symlink, readlink, careadlinkat): Rewritten to create and resolve + symlinks when the underlying filesystem supports them. + +2012-08-02 Paul Eggert + + Fix macroexp crash on Windows with debugging (Bug#12118). + * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when + checking subscripts; problem introduced with the recent + "ASET (a, i, v)" rather than "AREF (a, i) = v" patch. + (ARRAY_MARK_FLAG): Now a macro as well as a constant, + since it's used in non-static inline functions now. + + * xfaces.c (face_at_buffer_position, face_for_overlay_string): + Don't assume buffer size fits in 'int'. Remove unused local. + + Use C99-style 'extern inline' if available. + * buffer.h (BUFFER_INLINE): + * category.h (CATEGORY_INLINE): + * character.h (CHARACTER_INLINE): + * charset.h (CHARSET_INLINE): + * composite.h (COMPOSITE_INLINE): + * dispextern.h (DISPEXTERN_INLINE): + * lisp.h (LISP_INLINE): + * systime.h (SYSTIME_INLINE): + New macro, replacing 'static inline' in this header. + * buffer.h, category.h, character.h, charset.h, composite.h: + * dispextern.h, lisp.h, systime.h: + Use INLINE_HEADER_BEGIN, INLINE_HEADER_END. + * alloc.c (LISP_INLINE): + * buffer.c (BUFFER_INLINE): + * category.c (CATEGORY_INLINE): + * character.c (CHARACTER_INLINE): + * charset.c (CHARSET_INLINE): + * composite.c (COMPOSITE_INLINE): + * dispnew.c (DISPEXTERN_INLINE): + * sysdep.c (SYSTIME_INLINE): + Define to EXTERN_INLINE, so that the corresponding functions + are compiled into code. + * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN) + (INLINE_HEADER_END): New macros. + * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant, + since it's used in non-static inline functions now. + (VALMASK) [!USE_LSB_TAG]: Likewise. + +2012-08-02 Glenn Morris + + * s/: Remove empty directory. + + * s/ms-w32.h: Move to ../nt/inc. + * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H): + Update for new ms-w32.h location. + +2012-08-02 Paul Eggert + + Port to Solaris 8. + * syswait.h (WRETCODE): Remove, consistently with ../configure.ac. + +2012-08-02 Glenn Morris + + * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than + hard-coding the path separator. + +2012-08-01 Paul Eggert + + Use "ASET (a, i, v)" rather than "AREF (a, i) = v". + This how ASET and AREF are supposed to work, and makes + it easier to think about future improvements. See + . + * charset.h (set_charset_attr): New function. + All lvalue-style uses of CHARSET_DECODER etc. changed to use it. + * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style. + (aref_addr): New function. All uses of &AREF(...) changed. + (set_hash_key, set_hash_value, set_hash_next, set_hash_hash) + (set_hash_index): New functions. All lvalue-style uses of + HASH_KEY etc. changed. + * keyboard.c (set_prop): New function. All lvalue-style uses + of PROP changed. + +2012-08-01 Alp Aker + + * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar) + (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:) + (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114) + * nsfns.m (ns_set_name_as_filename): Likewise. + * nsmenu.m (ns_update_menubar): Likewise. + * nsselect.m (symbol_to_nsstring): Adjust to use SVAR. + +2012-08-01 Eli Zaretskii + + * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym): + Adapt to latest changes in field names of the corresponding Lisp + objects. + + * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code. + +2012-08-01 Glenn Morris + + * s/msdos.h: Remove file. + * conf_post.h [MSDOS]: New section, moved from s/msdos.h. + * Makefile.in (S_FILE): Remove. + (config_h): Remove S_FILE. + +2012-08-01 Juanma Barranquero + + * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP): + Remove; moved to nt/config.nt. + +2012-08-01 Dmitry Antipov + + Use INTERNAL_FIELD for conses and overlays. + * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD. + Remove obsolete comment. + (MVAR): New macro. + (struct Lisp_Overlay): Use INTERNAL_FIELD. + * alloc.c, buffer.c, buffer.h, fns.c: Adjust users. + +2012-08-01 Dmitry Antipov + + Use INTERNAL_FIELD for symbols. + * lisp.h (SVAR): New macro. Adjust users. + * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c: + * fns.c, keyboard.c, lread.c, xterm.c: Users changed. + +2012-08-01 Dmitry Antipov + + Use INTERNAL_FIELD for processes. + * process.h (PVAR): New macro. Adjust style. + (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD. + * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed. + +2012-08-01 Dmitry Antipov + + Use INTERNAL_FIELD for windows. + * window.h (WVAR): New macro. + (struct window): Change Lisp_Object members to INTERNAL_FIELD. + * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c: + * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c: + * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c: + * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c: + * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed. + +2012-08-01 Paul Eggert + + * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work. + +2012-08-01 Glenn Morris + + * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP): + Move to configure.ac. + +2012-08-01 Juanma Barranquero + + * makefile.w32-in (CONFIG_H): Update dependencies. + (CONF_POST_H): New macro. + + * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt. + +2012-07-31 Glenn Morris + + * Makefile.in (S_FILE): No longer set by configure. + + * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT + is available. + (alloca.h) [WINDOWSNT]: Don't include it on MS Windows. + + * process.h (NULL_DEVICE): + * emacs.c (SEPCHAR): + * editfns.c (USER_FULL_NAME): Let configure set them. + + * s/README, s/template.h: Remove files. + + * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT. + + * conf_post.h (AMPERSAND_FULL_NAME, subprocesses): + Move to configure.ac. + +2012-07-31 Eli Zaretskii + + * .gdbinit (xframe): Adapt to introduction of FVAR and the + resulting renaming of 'struct frame' members. + + * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR. + + * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING + after introduction of FVAR. + +2012-07-31 Jan Djärv + + * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id. + + * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect + instead of compositeToPoint. + (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel. + + * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes. + +2012-07-31 Dmitry Antipov + + Generalize INTERNAL_FIELD between buffers, keyboards and frames. + * lisp.h (INTERNAL_FIELD): New macro. + * buffer.h (BUFFER_INTERNAL_FIELD): Remove. + (BVAR): Change to use INTERNAL_FIELD. + * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise. + (KVAR): Change to use INTERNAL_FIELD. + * frame.h (FVAR): New macro. + (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields. + * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c: + * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c: + * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h: + * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed. + +2012-07-31 Dmitry Antipov + + Miscellaneous fixes for non-default X toolkits. + * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings. + * xterm.c (x_frame_of_widget): Remove redundant prototype. + Move under #ifdef USE_LUCID. + (x_create_toolkit_scroll_bar): Adjust scroll_bar_name + definition and usage to avoid warnings. + +2012-07-31 Jan Djärv + + * nsterm.m (openFiles): Fix previous checkin. + +2012-07-31 Paul Eggert + + * indent.c (compute_motion): Remove unused local. + +2012-07-31 Glenn Morris + + * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them. + + * conf_post.h [USG5_4]: + Move remaining contents of s/usg5-4-common.h here. + * s/usg5-4-common.h: Remove file. + + * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here. + * s/irix6-5.h: Remove file. + + * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here. + * s/darwin.h: Remove file. + + * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h. + * s/hpux10-20.h: Remove file, which is now empty. + +2012-07-30 Glenn Morris + + * conf_post.h: New, split from configure.ac's AH_BOTTOM. + * Makefile.in (config_h): Add conf_post.h. + * makefile.w32-in (CONFIG_H): Add conf_post.h. + +2012-07-30 Jan Djärv + + * nsterm.m (ns_do_open_file): New variable. + (ns_term_init): Set ns_do_open_file to YES after run returns. + (openFile, openTempFile, openFileWithoutUI, openFiles): + Open files only if ns_do_open_file. + +2012-07-30 Paul Eggert + + * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed. + This no-op macro hasn't been needed for many years. + * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise. + + Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB. + * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits. + * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for + gdb_make_enums_visible. + (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros. + (DIRECTORY_SEP): Now a constant, not a macro. + +2012-07-30 Eli Zaretskii + + * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to + w32_kbd_patch_key as the 2nd arg. (Bug#12082) + + * w32term.c : Renamed from + keyboard_codepage and now external. All users changed. + + * w32term.h: Add declaration of w32_keyboard_codepage. + + * w32inevt.c (w32_kbd_patch_key): Accept an additional argument -- + the codepage to translate keys to Unicode. If this argument is + -1, use the value returned by GetConsoleCP. All callers changed. + +2012-07-30 Paul Eggert + + Update .PHONY listings in makefiles. + * Makefile.in (.PHONY): Add all, mostlyclean, clean, + bootstrap-clean, distclean, maintainer-clean, versioclean, + extraclean, frc. + + * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t. + This is a bit clearer. Fix some commentary typos. + +2012-07-30 Glenn Morris + + * s/netbsd.h: Let configure include signal.h if needed. + Remove file, which is now empty. + + * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND): + Let configure set them. + * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND): + No more need to undefine. + +2012-07-30 Andreas Schwab + + * keymap.c (Fkey_description): Don't remove 0x80 bit from + non-single-byte char when adding meta modifier. (Bug#12090) + +2012-07-30 Dmitry Antipov + + Convert safe_call to use variable number of arguments. + * xdisp.c (safe_call): Convert to use varargs. Adjust users. + (safe_call2): Fix comment. + * lisp.h (safe_call): Adjust prototype. + * coding.c (encode_coding_object): Change to use safe_call2. + * xfaces.c (merge_face_heights): Change to use safe_call1. + +2012-07-30 Glenn Morris + + * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h + does that unconditionally. Remove file, which is now empty. + + * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h: + Remove empty files. + +2012-07-30 Paul Eggert + + Export to GDB most of lisp.h's remaining object-like macros. + * lisp.h (min, max): Move earlier, because they're used earlier now. + (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK) + (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0) + (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3) + (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE) + (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING) + (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT) + (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS) + (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA): + Now constants, for GDB. They need not be macros. + (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND): + Now constants, for GDB, as well as macros, for static initializers. + (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS): + Move to after the definition of struct Lisp_Char_Table, + since the former now needs that type defined. + (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS) + (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits) + (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA): + New enums, for gdb_make_enums_visible. + (GLYPH_MODE_LINE_FACE): Remove; unused. + * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro. + (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum + CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE, + enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled, + enum maxargs, enum MAX_ALLOCA. + (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove. + (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove; + no longer needed, now that they are done in lisp.h. + +2012-07-30 Dmitry Antipov + + Cleanup string bytes checking. + * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert + all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES. + (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES. + (check_sblock, compact_small_strings): Simplify. + +2012-07-29 Paul Eggert + + * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove. + These macros are confusing and no longer need to be defined, as + the enum values now suffice. All uses replaced with definiens. + (Lisp_Int1, Lisp_String): Define directly; this is clearer. + +2012-07-29 Juanma Barranquero + + * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O)) + ($(BLD)/w32console.$(O)): Update dependencies. + +2012-07-29 Dmitry Antipov + + Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check. + * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long + time. Adjust users. + (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list. + +2012-07-29 Jan Djärv + + * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before + setting sitelisp (Bug#12010). + +2012-07-29 Eli Zaretskii + + * w32heap.h (OS_9X): Rename from OS_WINDOWS_95. + + * w32heap.c (cache_system_info): + * w32.c (sys_rename): + * w32proc.c (find_child_console, sys_kill): All users changed. + +2012-07-29 Paul Eggert + + * alloc.c (Fgarbage_collect): Indent as per usual Emacs style. + +2012-07-29 Eli Zaretskii + + * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h. + +2012-07-29 Dmitry Antipov + + Cleanup statistics calculation in Fgarbage_collect. + * alloc.c (Fgarbage_collect): Rename t1 to meaningful start. + Fix zombies percentage calculation. Simplify elapsed time calculation. + +2012-07-29 Dmitry Antipov + + Generalize marker debugging code under MARKER_DEBUG and use eassert. + * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove. + (gap_left, gap_right, adjust_markers_for_delete, insert_1_both) + (insert_from_string_1, insert_from_gap, insert_from_buffer_1) + (replace_range, replace_range_2, del_range_2): Change to eassert. + * marker.c (byte_char_debug_check): Adjust style. + +2012-07-29 Paul Eggert + + Don't use the abbreviation "win" to refer to Windows (Bug#10421). + * regex.c (MAX_BUF_SIZE): Remove some incorrect and + long-ago-commented-out code that talks about "WIN32". + * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95. + All uses changed. + +2012-07-28 Paul Eggert + + Use Gnulib stdalign module (Bug#9772, Bug#9960). + * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc): + Simplify by using alignof. + (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values. + * lisp.h: Include . + (GCALIGNMENT): New macro and constant. + (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT). + (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN. + (stdalign): New macro, if not already defined. + +2012-07-28 Eli Zaretskii + + Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055) + * w32inevt.c: Include w32inevt.h. + (w32_read_console_input): New inline function, calls either + ReadConsoleInputA or ReadConsoleInputW, depending on the value of + w32_console_unicode_input. + (fill_queue): Call w32_read_console_input instead of ReadConsoleInput. + (w32_kbd_patch_key, key_event): Use the codepage returned by + GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo. + (key_event): use uChar.UnicodeChar only if + w32_console_unicode_input is non-zero. + + * w32console.c: Include w32heap.h. + : New global variable. + (initialize_w32_display): Set w32_console_unicode_input to 1 on NT + family of Windows, zero otherwise. + + * w32inevt.h: Declare w32_console_unicode_input. + + * xdisp.c (init_iterator): Don't reference tip_frame in a build + --without-x. (Bug#11742) + +2012-07-27 Paul Eggert + + Adjust GDB to reflect pvec_type changes (Bug#12036). + * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the + 2012-07-04 changes to pseudovector representation. + Problem reported by Eli Zaretskii in . + +2012-07-27 Michael Albinus + + * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session + bus address. + (xd_close_bus, Fdbus_init_bus): Handle reference counter properly. + +2012-07-27 Eli Zaretskii + + * alloc.c (listn): Fix the order the arguments are consed onto the + list. + + * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for + enumeration constants, as PURE and HEAP are too general, and clash + with other headers and sources, such as gmalloc.c and the + MS-Windows system headers. All users changed. + +2012-07-27 Dmitry Antipov + + Revert last save_excursion_save and save_excursion_restore changes. + * alloc.c, editfns.c, marker.c, lisp.h: Revert. + Lots of crashes reported by Chong Yidong . + +2012-07-27 Dmitry Antipov + + Fix recently-introduced typos in Windows port. + Reported by Martin Rudalics . + * w32.c (init_environment): Replace comma with semicolon. + * w32fns.c (syms_of_w32fns): Add missing parenthesis. + +2012-07-27 Paul Eggert + + Improve GDB symbol export (Bug#12036). + * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different + arms of an 'if', not using conditional expressions; otherwise GDB + complains about the types in the unevaluated arm when the argument + is an integer literal. + (xgetint): Simplify expression. + * alloc.c (gdb_make_enums_visible): New constant. This ports to + GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli + Zaretskii in . + * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer + needed now that we have gdb_make_enums_visible. + (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits) + (enum enum_USE_LSB_TAG): + New enum types, packaging up enums that need to be exported to GDB. + +2012-07-27 Dmitry Antipov + + Utility function to make a list from specified amount of objects. + * lisp.h (enum constype): New datatype. + (listn): New prototype. + * alloc.c (listn): New function. + (Fmemory_use_count, syms_of_alloc): Use it. + * buffer.c (syms_of_buffer): Likewise. + * callint.c (syms_of_callint): Likewise. + * charset.c (define_charset_internal): Likewise. + * coding.c (syms_of_coding): Likewise. + * keymap.c (syms_of_keymap): Likewise. + * search.c (syms_of_search): Likewise. + * syntax.c (syms_of_syntax): Likewise. + * w32.c (init_environment): Likewise. + * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise. + * xdisp.c (syms_of_xdisp): Likewise. + * xfns.c (syms_of_xfns): Likewise. + +2012-07-27 Dmitry Antipov + + Fast save_excursion_save and save_excursion_restore. + * lisp.h (struct Lisp_Excursion): New data type. + (PVEC_EXCURSION): New pseudovector type. + (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros + to deal with it. Adjust comments. + (init_marker, attach_marker): New prototype. + (unchain_marker): Adjust prototype. + * marker.c (attach_marker): Change to global. + (init_marker): New function. + * alloc.c (Fmake_marker, build_marker): Use it. + (build_marker): More easserts. + (mark_object): Handle struct Lisp_Excursion. + * editfns.c (save_excursion_save, save_excursion_restore): + Reimplement to use struct Lisp_Excursion. Add comments. + +2012-07-26 Paul Eggert + + Fix export of symbols to GDB (Bug#12036). + * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL) + (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from + emacs.c, as this is a more-suitable home. Had this been done earlier + the fix for 12036 would have avoided some of the problems noted in + by Eli Zaretskii, as the scope problems + would have been more obvious. + * emacs.c: Do not include ; no longer needed. + (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS) + (gdb_GCTYPEBITS, gdb_USE_LSB_TAG) + (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG): + Remove; now done in lisp.h. + * lisp.h (PUBLISH_TO_GDB): New macro. + (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type) + (DATA_SEG_BITS): Use it. + (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB. + (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB. + * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need + not be usable in #if. This simplifies things. + +2012-07-26 Juanma Barranquero + + * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies. + +2012-07-26 Paul Eggert + + Simplify export of symbols to GDB (Bug#12036). + * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix = + $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway). + (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr): + Adjust to changes in lisp.h and emacs.c, by using + CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead + of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits, + INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of + gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS + instead of gdb_valbits. + (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use + PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG + instead of gdb_array_mark_flag. + (xboolvector): Get size from $->size, not $->header.size. + Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants. + (xreload, hook-run, hookpost-run): Remove. + * emacs.c: Include . + (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits) + (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type): + Remove. + (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS) + (gdb_USE_LSB_TAG): New enum constants. + (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG): + Also define these as enum constants, so they're visible to GDB. + (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros. + (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these + as constants, so they're visible to GDB. + * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS) + (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR): + Now enum constants, not macros, so they're visible to GDB. + (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is + more convenient now. All uses changed. + (VALMASK) [USE_LSB_TAG]: Also define in this case. + * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change. + +2012-07-26 Dmitry Antipov + + Explicitly free restriction data that are not needed anymore. + * editfns.c (save_restriction_restore): Free restriction data. + +2012-07-26 Stefan Monnier + + * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp, + add argument, tune behavior, and adjust all callers. + +2012-07-25 Paul Eggert + + Use typedef for EMACS_INT, EMACS_UINT. + * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather + than macros. This simplifies debugging in the usual case, since + it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *' + and it allows expressions involving EMACS_INT casts. + * .gdbinit (xreload): Simplify by using EMACS_INT cast. + +2012-07-25 Jan Djärv + + * nsterm.m (ns_read_socket): Return early if there is a modal + window (Bug#12043). + +2012-07-25 Martin Rudalics + + * frame.c (Fredirect_frame_focus): In doc-string don't mention + that FOCUS-FRAME can be omitted. + +2012-07-25 Dmitry Antipov + + Adjust buffer text indirection counters at the end of Fkill_buffer. + * buffer.c (Fkill_buffer): Adjust indirection counters when the + buffer is definitely dead. This should really fix an issue reported + by Christoph Scholtes again. (Bug#12007). + (init_buffer_once): Initialize indirection counters of + buffer_defaults and buffer_local_symbols (for sanity and safety). + +2012-07-24 Eli Zaretskii + + * xdisp.c (init_iterator): Don't compute dimensions of truncation + and continuation glyphs on tooltip frames, leave them at zero. + Avoids continued lines in tooltips. (Bug#11832) + +2012-07-24 Dmitry Antipov + + Simplify copy_overlay. + * buffer.c (copy_overlay): Simplify. Use build_marker. + * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks. + +2012-07-23 Eli Zaretskii + + * print.c (print_object): Don't crash when a frame's name is nil + or invalid. (Bug#12025) + + * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as + it signals an error when a tooltip frame is being created. + +2012-07-23 Dmitry Antipov + + Cleanup miscellaneous objects allocation and initialization. + * alloc.c (allocate_misc): Change to static. Add argument to + specify the subtype. Adjust comment and users. + (build_overlay): New function. + * buffer.c (copy_overlays, Fmake_overlay): Use it. + * lisp.h (struct Lisp_Overlay): Remove obsolete comment. + (allocate_misc): Remove prototype. + (build_overlay): Add prototype. + +2012-07-23 Dmitry Antipov + + Swap buffer text indirection counters in Fbuffer_swap_text. + * buffer.c (Fbuffer_swap_text): Swap indirections too. + This avoids crash reported by Christoph Scholtes at + http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html. + +2012-07-22 Jan Djärv + + * nsmenu.m (Popdown_data): New struct. + (pop_down_menu): p->pointer is Popdown_data. Release the pool and + free Popdown_data. + (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu. + (initWithContentRect): Make imgView and contentView non-static + and autorelease them. Also autorelease img and matrix (Bug#12005). + (dealloc): Remove (Bug#12005). + +2012-07-22 Dmitry Antipov + + Adjust consing_since_gc when objects are explicitly freed. + * alloc.c (GC_DEFAULT_THRESHOLD): New macro. + (Fgarbage_collect): Use it. Change minimum to 1/10 of default. + (free_cons, free_misc): Subtract object size from consing_since_gc. + +2012-07-22 Dmitry Antipov + + Simplify and cleanup markers positioning code. + * marker.c (attach_marker): More useful eassert. + (live_buffer, set_marker_internal): New function. + (Fset_marker, set_marker_restricted): Use set_marker_internal. + (set_marker_both, set_marker_restricted_both): Use live_buffer. + +2012-07-22 Paul Eggert + + * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int, + as it's limited by the amount of memory, not by INT_MAX. + +2012-07-21 Eli Zaretskii + + * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore' + in special-event-map. See the discussion at + http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html + for the reasons. + + * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning + info.dwItemData. Fixes crashes on 64-bit Windows. + Suggested by Fabrice Popineau . + +2012-07-21 Jan Djärv + + * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134). + (conversationIdentifier): Return value is NSInteger. + * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA. + +2012-07-21 Chong Yidong + + * window.c (decode_any_window): Signal an error if the window is + on a dead frame (Bug#11984). + +2012-07-20 Dmitry Antipov + + Add indirection counting to speed up Fkill_buffer. + * buffer.h (struct buffer): New member. + * buffer.c (Fget_buffer_create): Set indirection counter to 0. + (Fmake_indirect_buffer): Set indirection counter to -1, increment + base buffer indirection counter. + (compact_buffer): If ENABLE_CHECKING, verify indirection counters. + (Fkill_buffer): Adjust indirection counters as needed, don't walk + through buffer list if indirection counter is 0. + +2012-07-20 Dmitry Antipov + + Extend the value returned by Fgarbage_collect with heap statistics. + * alloc.c (Qheap): New symbol. + (syms_of_alloc): DEFSYM it. + (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data. + (Fmemory_free): Remove. + (syms_of_alloc): Don't defsubr it. + * buffer.c (Fcompact_buffer): Remove. + (syms_of_buffer): Don't defsubr it. + +2012-07-20 Dmitry Antipov + + Make maybe_gc inline. + Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline). + * lisp.h (consing_since_gc, gc_relative_threshold) + (memory_full_cons_threshold): Revert declaration. + (maybe_gc): Remove prototype, define as inline. + * alloc.c: Remove old commented-out code. + (consing_since_gc, gc_relative_threshold) + (memory_full_cons_threshold): Revert to global. + (maybe_gc): Remove. + +2012-07-20 Dmitry Antipov + + Simple wrapper for make_unibyte_string, adjust font_open_by_name. + * lisp.h (build_unibyte_string): New function. + * dosfns.c, fileio.c, fns.c, ftfont.c, process.c: + * sysdep.c, w32fns.c, xfns.c: Use it. + * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg + of type Lisp_Object to avoid redundant calls to make_unibyte_string. + Adjust users accordingly. + * font.h (font_open_by_name): Adjust prototype. + +2012-07-20 Dmitry Antipov + + Cleanup calls to Fgarbage_collect. + * lisp.h (maybe_gc): New prototype. + (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold): + Remove declarations. + * alloc.c (maybe_gc): New function. + (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold): + Make them static. + * bytecode.c (MAYBE_GC): Use maybe_gc. + * eval.c (eval_sub, Ffuncall): Likewise. + * keyboard.c (read_char): Likewise. Adjust call to maybe_gc + to avoid dependency from auto-save feature. + +2012-07-19 Paul Eggert + + * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'. + (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from + 'for_each_per_buffer_object_at'. + All uses changed. It's better to use upper-case for macros that + cannot be implemented as functions, to give the reader a clue + that they're special. + +2012-07-19 Stefan Monnier + + * alloc.c (Fgarbage_collect): Tweak docstring. + +2012-07-19 Dmitry Antipov + + Tweak the value returned from Fgarbage_collect again. + * alloc.c (Fgarbage_collect): New return value, as confirmed in + http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html. + Adjust documentation. + (total_vector_bytes): Rename to total_vector_slots, adjust + accounting. + (total_free_vector_bytes): Rename to total_free_vector_slots, + adjust accounting. + (Qstring_bytes, Qvector_slots): New symbols. + (syms_of_alloc): DEFSYM them. + +2012-07-19 Dmitry Antipov + + Buffer compaction primitive which may be used from Lisp. + * buffer.c (compact_buffer, Fcompact_buffer): New function. + (syms_of_buffer): Register Fcompact_buffer. + * alloc.c (Fgarbage_collect): Use compact_buffer. + * buffer.h (compact_buffer): New prototype. + (struct buffer_text): New member. + +2012-07-19 Dmitry Antipov + + New macro to iterate over all buffers, miscellaneous cleanups. + * lisp.h (all_buffers): Remove declaration. + * buffer.h (all_buffers): Add declaration, with comment. + (for_each_buffer): New macro. + * alloc.c (Fgarbage_collect, mark_object): Use it. + * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte) + (init_buffer): Likewise. + * data.c (Fset_default): Likewise. + * coding.c (code_conversion_restore): Remove redundant check + for dead buffer. + * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment. + +2012-07-18 Andreas Schwab + + Fix bug that created negative-length intervals. + * intervals.c (merge_interval_right, merge_interval_left): + Do not zero out this interval if it is absorbed by its children, + as this interval's total length doesn't change in that case. See + . + +2012-07-18 Paul Eggert + + * alloc.c (Fmake_bool_vector): Fix off-by-8 bug + when invoking (make-bool-vector N t) and N is a positive + multiple of 8 -- the last 8 bits were mistakenly cleared. + + Remove some struct layout assumptions in bool vectors. + * alloc.c (bool_header_size): New constant. + (header_size, word_size): Move earlier, as they're now used earlier. + Use 'word_size' in a few more places, where it's appropriate. + (Fmake_bool_vector, sweep_vectors): Don't assume that there is no + padding before the data member of a bool vector. + (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather + than doing the check by hand with an abort (). + +2012-07-18 Stefan Monnier + + * eval.c (Fdefvar): Don't check constants since we only set the var if + it's not yet defined anyway (bug#11904). + + * lisp.h (last_undo_boundary): Declare new var. + * keyboard.c (command_loop_1): Set it. + * cmds.c (Fself_insert_command): Use it to only remove boundaries that + were auto-added by the command loop (bug#11774). + +2012-07-18 Andreas Schwab + + * w32font.c (Qsymbol): Remove local definition. + (syms_of_w32font): Don't DEFSYM it. + +2012-07-18 Dmitry Antipov + + Fix sweep_vectors to handle large bool vectors correctly. + * alloc.c (sweep_vectors): Account total_vector_bytes for + bool vectors larger than VBLOCK_BYTES_MAX. + +2012-07-18 Chong Yidong + + * frame.c (x_set_frame_parameters): Revert bogus change introduced + in 2012-05-25 commit by Paul Eggert (Bug#11738). + +2012-07-18 Dmitry Antipov + + Return more descriptive data from Fgarbage_collect. + Suggested by Stefan Monnier in + http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html. + * alloc.c (bounded_number): New function. + (total_buffers, total_vectors): New variable. + (total_string_size): Rename to total_string_bytes, adjust users. + (total_vector_size): Rename to total_vector_bytes, adjust users. + (sweep_vectors): Account total_vectors and total_vector_bytes. + (Fgarbage_collect): New return value. Adjust documentation. + (gc_sweep): Account total_buffers. + (Fmemory_free, Fmemory_use_counts): Use bounded_number. + (VECTOR_SIZE): Remove. + * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global. + (Qinterval, Qmisc): New symbols. + (syms_of_data): Initialize them. + * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat) + (Qcons, Qbuffer): New declarations. + +2012-07-17 Paul Eggert + + * alloc.c (Fmemory_free): Account for memory-free's own storage. + Round up, not down. Improve doc. + +2012-07-17 Dmitry Antipov + + Restore old code in allocate_string_data to avoid Faset breakage. + Reported by Julien Danjou in + http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html. + * alloc.c (allocate_string_data): Restore old code with minor + adjustments, fix comment to explain this subtle issue. + +2012-07-17 Eli Zaretskii + + Remove FILE_SYSTEM_CASE. + * s/msdos.h (FILE_SYSTEM_CASE): Don't define. + + * fileio.c (FILE_SYSTEM_CASE): Don't define. + (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE. + Fixes problems on MS-DOS with Vtemp_file_name_pattern when + call-process-region passes it through expand-file-name. + + * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE. + +2012-07-17 Andreas Schwab + + Fix crash when creating indirect buffer (Bug#11917) + * buffer.c (buffer_lisp_local_variables): Add argument CLONE. + Don't handle unbound variables specially if non-zero. + (Fbuffer_local_variables): Pass zero. + (clone_per_buffer_values): Pass non-zero. + +2012-07-17 Andreas Schwab + + * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT + to make the loop interruptible. + +2012-07-17 Andreas Schwab + + * gnutls.c (emacs_gnutls_handshake): Only retry if + GNUTLS_E_INTERRUPTED. + +2012-07-17 Dmitry Antipov + + Cleanup and convert miscellaneous checks to eassert. + * alloc.c (mark_interval): Fix comment, partially rephrase + old comment from intervals.h (see below). + * intervals.c (find_interval, adjust_intervals_for_insertion) + (delete_interval, adjust_intervals_for_deletion) + (graft_intervals_into_buffer, temp_set_point_both, copy_intervals): + Convert to eassert. + (adjust_intervals_for_insertion, make_new_interval): + Remove obsolete and unused code. + * intervals.h (struct interval): Remove obsolete comment. + * textprotp.c (erase_properties): Remove unused code. + (Fadd_text_properties, set_text_properties_1, Fremove_text_properties) + (Fremove_list_of_text_properties): Convert to eassert. + +2012-07-17 Chong Yidong + + * editfns.c (Finsert_char): Doc fix. + +2012-07-17 Dmitry Antipov + + Fix previous change to make Fmemory_free always accurate. + * alloc.c (make_interval): Update total_free_intervals. + (make_float): Likewise for total_free_floats. + (free_cons, Fcons): Likewise for total_free_conses. + (SETUP_ON_FREE_LIST, allocate_vector_from_block): + Likewise for total_free_vector_bytes. + (Fmake_symbol): Likewise for total_free_symbols. + (bytes_free): Remove. + +2012-07-17 Dmitry Antipov + + Simple free memory accounting feature. + * alloc.c (bytes_free, total_free_vector_bytes): New variable. + (sweep_vectors): Accumulate size of free vectors. + (Fgarbage_collect): Setup bytes_free. + (Fmemory_free): New function. + (syms_of_alloc): Register it. + +2012-07-17 Dmitry Antipov + + Cleanup overlays checking. + * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP. + * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to + eassert and OVERLAYP. + (sort_overlays): Change to use OVERLAYP. + +2012-07-16 René Kyllingstad (tiny change) + + * editfns.c (Finsert_char): Make it interactive, and make the + second arg optional. Copy interactive spec and docstring from + ucs-insert. + +2012-07-17 Paul Eggert + + * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913). + Unlike the other wrapped functions, fabs has an unspecified + effect on errno. + +2012-07-16 Jan Djärv + + * nsterm.m (keyDown): Interpret flags without left/right bits + as the left key (Bug#11670). + +2012-07-16 Dmitry Antipov + + Remove empty and useless init functions. + * lisp.h (init_character_once, init_fns, init_image) + (init_filelock, init_sound): Remove prototype. + * character.c (init_character_once): Remove. + * filelock.c (init_filelock): Likewise. + * fns.c (init_fns): Likewise. + * image.c (init_image): Likewise. + * sound.c (init_sound): Likewise. + * emacs.c (main): Adjust accordingly. + +2012-07-16 Dmitry Antipov + + * gtkutil.h: Tiny cleanups. + (use_old_gtk_file_dialog): Remove useless declaration. + (xg_uses_old_file_dialog): Add suggested const attribute. + +2012-07-15 Eli Zaretskii + + * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro. + (bidi_paragraph_init): Use it to limit search forward for a strong + directional character in abnormally large paragraphs full of + neutral or weak characters. (Bug#11943) + +2012-07-15 Stefano Facchini (tiny change) + + * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to + the toolbar (Bug#9451). + (xg_make_tool_item): Give the widget event box a transparent + background. + +2012-07-15 Dmitry Antipov + + Cleanup basic allocation variables and functions. + * alloc.c (ignore_warnings, init_intervals, init_float) + (init_cons, init_symbol, init_marker): Remove. + (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE. + (float_block_index): Initialize to FLOAT_BLOCK_SIZE. + (cons_block_index): Initialize to CONS_BLOCK_SIZE. + (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE. + (marker_block_index): Initialize to MARKER_BLOCK_SIZE. + (staticidx, init_alloc_once, init_strings, free_ablock): + Remove redundant initialization. + * fns.c (init_weak_hash_tables): Remove. + * lisp.h (init_weak_hash_tables): Remove prototype. + +2012-07-15 Dmitry Antipov + + Use zero_vector where appropriate. + * alloc.c (zero_vector): Define as Lisp_Object. Adjust users + accordingly. + * lisp.h (zero_vector): New declaration. + * font.c (null_vector): Remove. + (syms_of_font): Remove initialization and staticpro. + (font_list_entities, font_find_for_lface): Change to use zero_vector. + * keymap.c (Faccessible_keymaps): Likewise. + +2012-07-15 Leo Liu + + * fringe.c: Fix typo in comments. + +2012-07-14 Leo Liu + + * fringe.c: Add a new bitmap exclamation-mark. + +2012-07-14 Eli Zaretskii + + * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference. + + * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE) + (HAVE_MENUS): Don't define, defined by editing config.in with + msdos/sed2v2.inp. + (GMALLOC_INHIBIT_VALLOC): Don't define. + (MODE_LINE_BINARY_TEXT): Remove, not used anymore. + +2012-07-14 Juanma Barranquero + + * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt. + +2012-07-14 Glenn Morris + + * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h: + * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h: + Let configure set GC_SETJMP_WORKS, GC_MARK_STACK. + +2012-07-13 Glenn Morris + + * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it. + + * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it. + * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it. + +2012-07-13 Jan Djärv + + * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP. + (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE. + (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init) + (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA + where appropriate. + (ns_exec_path, ns_load_path, changeFont): Put () around assignment used + as boolean expression. + (x_set_window_size): Remove unused variable toolbar. + (ns_get_color_default, ns_mod_to_lisp): Remove. + (ns_mouse_position): Remove unused variables xchar and ychar. + (ns_compute_glyph_string_overhangs): Remove unused variable face. + (ns_set_vertical_scroll_bar): Remove unused variable count. + (ns_delete_terminal): Remove unused variable i. + (ns_term_init): Remove unused variables r, g and b. + (mouseDown): Remove unused variable window. + (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP. + (initFrameFromEmacs): Remove unused variable vbextra. + (mouseEntered): Remove unused variables p and dpyinfo. + (mouseExited): Remove unused variables p and r. + (ns_define_frame_cursor, ns_clear_frame_area) + (ns_draw_window_cursor, ns_initialize_display_info): Make static. + (menuDown): Assign [sender tag] to variable and cast the variable. + + * nsterm.h (menuDown): Add id as type to argument sender. + (ns_display_info_for_name): Add Lisp_Object argument. + (ns_term_init): Add Lisp_Object argument. + (ns_map_event_to_object): Add void argument. + (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct + prototype with arguments and only declare if __OBJC__. + (nxatoms_of_nsselect): Add void argument. + (ns_lisp_to_cursor_type): Add Lisp_Object argument. + (ns_alloc_autorelease_pool): Add void argument. + (ns_release_autorelease_pool): Add void* argument. + (ns_get_defaults_value): Add const char* argument. + + * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog) + (initFromContents): Use SSDATA where appropriate. + (ns_update_menubar): Add braces to ambigous if-else. + (initWithTitle): Put () around assignment in if statement. + (ns_menu_show): Remove unused variables window and keymap. + (update_frame_tool_bar): Remove unused variable selected_p. + (initWithContentRect): Remove unused variable this_cmd_name. + + * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where + appropriate. + (setXBMColor): Remove unused variable len. + (setPixmapData): Put () around assignment in loop statement. + + * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script) + (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA + where appropriate. + (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put () + around assignment in loop statement. + (nsfont_open): Remove unused variable i. + (nsfont_open): Remove unused variable len. + (nsfont_draw): Remove unused variable cs. + + * nsfns.m (x_set_icon_name, ns_set_name_internal) + (ns_set_name_as_filename, ns_implicitly_set_icon_type) + (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name) + (Fns_get_resource, Fns_set_resource, Fx_open_connection) + (Fns_font_name, Fns_perform_service) + (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript) + (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate. + (ns_set_name): Remove unused variable view. + (x_set_menu_bar_lines): Remove unused variable olines. + (x_set_tool_bar_lines): Remove unused variable root_window. + (Fns_list_colors): Put () around assignment in while statement. + (Fns_perform_service): Remove unused variable len. + (Fns_display_usable_bounds): Remove unused variable top. + (syms_of_nsfns): Remove unused variable i. + + * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to + memcpy (Bug#11907). + +2012-07-13 Kalle Kankare (tiny change) + + * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo + and free it with DestroyExceptionInfo (Bug#11558). + +2012-07-13 Juanma Barranquero + + * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt. + (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT): + Set here, not in nt/config.nt. + +2012-07-13 Eli Zaretskii + + * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow + cursor overflow into the last glyph on display line when the right + fringe is off. (Bug#11832) + +2012-07-13 Paul Eggert + + * xdisp.c (produce_special_glyphs): Now static. + * dispextern.h (produce_special_glyphs): Remove decl. + +2012-07-13 Glenn Morris + + * s/bsd-common.h, s/cygwin.h: Remove empty files. + * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h. + + * s/usg5-4-common.h (USG, USG5): + * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM): + * s/sol2-6.h (SOLARIS2): + * s/irix6-5.h (IRIX6_5): + * s/hpux10-20.h (USG, USG5, HPUX): + * s/gnu-linux.h (USG, GNU_LINUX): + * s/freebsd.h (BSD_SYSTEM): + * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS): + * s/cygwin.h (CYGWIN): + * s/bsd-common.h (BSD_SYSTEM, BSD4_2): + * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure. + +2012-07-13 BT Templeton (tiny change) + + * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853). + +2012-07-13 Glenn Morris + + * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it. -2012-08-24 Chong Yidong + * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE. - * Version 24.2 released. + * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION. + * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro. -2012-08-24 Eli Zaretskii +2012-07-12 Glenn Morris - * ralloc.c (free_bloc): Don't dereference a 'heap' structure if it - is not one of the heaps we manage. (Bug#12242) + * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure. -2012-08-14 Glenn Morris + * process.c (init_process_emacs): Rename from init_process. + The old name is also the name of a Mach system call. + * lisp.h, emacs.c: Update for this name change. + * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no + longer needed. - * eval.c (Fcalled_interactively_p): Doc fix. (Bug#11747) +2012-07-12 Eli Zaretskii -2012-08-14 Ulrich Mueller + * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in + memmove call that removes glyphs covered by the left truncation + glyph. Improve commentary. + (display_line): Fix display of continuation glyphs on GUI frames + when the right fringe is turned off and variable-size fonts are + used in the window. Move the code that appends a stretch glyph to + produce_special_glyphs, so that it could be used for truncation + and continuation glyphs alike. + (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch + glyph of a suitably computed width, to align the special glyphs at + the window margin. Code moved from display_line. (Bug#11832) - * systime.h (EMACS_TIME_CMP): Don't cast time_t values to long - (Bug#11712). +2012-07-12 Glenn Morris -2012-08-13 Eli Zaretskii + * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES. - * w32menu.c: Include w32heap.h. - (add_menu_item): If the call to AppendMenuW (via - unicode_append_menu) fails, disable Unicode menus only if we are - running on Windows 9X/Me. + * s/gnu-linux.h, s/hpux10-20.h: + Do not unconditionally define HAVE_XRMSETDATABASE. + + * s/gnu-linux.h (UNIX98_PTYS): Let configure set it. + +2012-07-12 Paul Eggert + + Fix typos that broke OS X build. + Reported by Randal L. Schwartz in + . + * nsterm.m (ns_timeout): Add missing local decl. + (ns_get_color): snprintf -> sprintf, to fix typo. + +2012-07-12 Glenn Morris + + * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h: + * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h: + * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h: + Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure. + + * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h: + Move PTY_OPEN to configure. + + * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h: + * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h: + * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure. + +2012-07-12 Dmitry Antipov + + Use empty_unibyte_string where applicable. + * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string. + * lread.c (read1): Likewise. + * xsettings.c (syms_of_xsettings): Likewise. + +2012-07-12 Glenn Morris + + * s/cygwin.h (G_SLICE_ALWAYS_MALLOC): + * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): + * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP): + * s/hpux10-20.h (RUN_TIME_REMAP): + * s/bsd-common.h (TABDLY): Move to configure. + + * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure. + + * s/bsd-common.h, s/darwin.h: Move TAB3 to configure. + + * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY) + (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them. + + * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them. + + * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h: + * s/template.h: Move NARROWPROTO to configure. + +2012-07-11 Glenn Morris + + * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX, + unused since 2011-01-17 change to systty.h. + + * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h: + * s/hpux10-20.h, s/template.h, s/usg5-4-common.h: + Move HAVE_PTYS and HAVE_SOCKETS to configure. + +2012-07-11 Paul Eggert + + * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914) + +2012-07-11 Glenn Morris + + * s/darwin.h, s/gnu-linux.h, s/template.h: + Move INTERRUPT_INPUT to configure. + +2012-07-11 Dmitry Antipov + + Minor adjustments to interning code. + * lisp.h (intern, intern_c_string): Redefine as static inline + wrappers for intern_1 and intern_c_string_1, respectively. + (intern_1, intern_c_string_1): Rename prototypes. + * lread.c (intern_1, intern_c_string_1, oblookup): + Simplify Vobarray checking. + * font.c (font_intern_prop): Likewise. Adjust comment. + * w32font.c (intern_font_name): Likewise. + +2012-07-11 Andreas Schwab + + * gnutls.c (Fgnutls_boot): Properly parse :keylist argument. + + * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead + of Fcar/Fcdr if possible. + * font.c (check_otf_features): Likewise. + * fontset.c (Fnew_fontset): Likewise. + * gnutls.c (Fgnutls_boot): Likewise. + * minibuf.c (read_minibuf): Likewise. + * msdos.c (IT_set_frame_parameters): Likewise. + * xmenu.c (Fx_popup_dialog): Likewise. + * w32menu.c (Fx_popup_dialog): Likewise. + +2012-07-11 Glenn Morris + + * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT, + since nothing has defined it on these platforms. + + * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h: + * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure. + + * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h: + * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h: + Move CLASH_DETECTION to configure. + + * s/gnu.h: Remove file, which is now empty. + + * s/gnu.h, s/gnu-linux.h: + Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure. + +2012-07-11 John Wiegley + + * alloc.c (mark_memory): Guard the "no_address_safety_analysis" + function attribute, so we only use it if it exists in the + compiler. + +2012-07-11 Dmitry Antipov + + Avoid call to strlen in fast_c_string_match_ignore_case. + * search.c (fast_c_string_match_ignore_case): Change to use + length argument. Adjust users accordingly. + * lisp.h (fast_c_string_match_ignore_case): Adjust prototype. + +2012-07-11 Paul Eggert + + Assume mkdir, rmdir. + * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove. + * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove. + + Assume rename. + * sysdep.c (rename) [!HAVE_RENAME]: Remove. + + Assume perror. + * s/hpux10-20.h (HAVE_PERROR): Remove. + * sysdep.c (perror) [HPUX && !HAVE_PERROR]: + Remove dummy definition, as this problem was obsolete long ago. + + Assume strerror. + * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove. + +2012-07-11 Dmitry Antipov + + Avoid calls to strlen in font processing functions. + * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname) + (font_open_by_name): Change to use length argument. + Adjust users accordingly. + * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd): + Adjust prototypes. + * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd): + Change to return ptrdiff_t. + (xfont_list_pattern, xfont_match): Use length returned by + xfont_decode_coding_xlfd. + * xfns.c (x_default_font_parameter): Omit useless xstrdup. + +2012-07-11 Glenn Morris + + * s/darwin.h, s/freebsd.h, s/netbsd.h: + Move DONT_REOPEN_PTY to configure. + + * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]: + * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it. + +2012-07-10 Paul Eggert + + Remove "#define unix" that is no longer needed (Bug#11905). + * s/aix4-2.h (unix): Remove; no longer needed. + + EMACS_TIME simplification (Bug#11875). + This replaces macros (which typically do not work in GDB) + with functions, typedefs and enums, making the code easier to debug. + The functional style also makes code easier to read and maintain. + * systime.h: Include on all hosts, not just if + WINDOWSNT, since 'struct timeval' is needed in general. + (EMACS_TIME): Now a typedef, not a macro. + (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants, + not macros. + (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P) + (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ) + (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT) + (EMACS_TIME_LE): Now functions, not macros. + (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS) + (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros, + which are not functions. All uses rewritten to use: + (make_emacs_time): New function. + (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME) + (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are + not functions. All uses rewritten to use the following, respectively: + (emacs_secs_addr, invalid_emacs_time, get_emacs_time) + (add_emacs_time, sub_emacs_time): New functions. + * atimer.c: Don't include , as "systime.h" does this. + * fileio.c (Fcopy_file): + * xterm.c (XTflash): Get the current time closer to when it's used. + * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies. + + * bytecode.c (targets): Suppress -Woverride-init warnings. + + Simplify by avoiding confusing use of strncpy etc. + * doc.c (Fsnarf_documentation): + * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name): + * frame.c (Fmake_terminal_frame): + * gtkutil.c (get_utf8_string): + * lread.c (openp): + * nsmenu.m (ns_update_menubar): + * regex.c (regerror): + Prefer memcpy to strncpy and strncat when either will do. + * fileio.c (Fsubstitute_in_file_name): + * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached) + (menu_separator_name_p): + * nsmenu.m (ns_update_menubar): + Prefer memcmp to strncmp when either will do. + * nsterm.m: Include . + (ns_get_color): + * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): + Prefer snprintf to strncpy. + * nsterm.m (ns_term_init): + * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy. + * nsterm.m (ns_term_init): + Avoid the need for strncpy, by using build_string or + make_unibyte_string directly. Use dtoastr, not snprintf. + * process.c (Fmake_network_process): Diagnose service names that + are too long, rather than silently truncating them or creating + non-null-terminated names. + (Fnetwork_interface_info): Likewise, for interface names. + * sysdep.c (system_process_attributes) [GNU_LINUX]: + Prefer sprintf to strncat. + * xdisp.c (debug_method_add) [GLYPH_DEBUG]: + Prefer vsnprintf to vsprintf + strncpy. + +2012-07-10 Glenn Morris + + * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]: + Clarify fallback case. + +2012-07-10 Dmitry Antipov + + Use XCAR and XCDR instead of Fcar and Fcdr where possible. + * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c, + * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c, + * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR + where argument type is known to be a Lisp_Cons. + +2012-07-10 Tom Tromey + + * bytecode.c (BYTE_CODE_THREADED): New macro. + (BYTE_CODES): New macro. Replaces all old byte-code defines. + (enum byte_code_op): New type. + (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros. + (exec_byte_code): Use them. Use token threading when applicable. + +2012-07-10 Dmitry Antipov + + Optimize pure C strings initialization. + * lisp.h (make_pure_string): Fix prototype. + (build_pure_c_string): New function, defined as static inline. This + provides a better opportunity to optimize away calls to strlen when + the function is called with compile-time constant argument. + * alloc.c (make_pure_c_string): Fix comment. Change to add nchars + argument, adjust users accordingly. Use build_pure_c_string where + appropriate. + * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c, + * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c, + * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate. + +2012-07-10 Dmitry Antipov + + Avoid calls to strlen in miscellaneous functions. + * buffer.c (init_buffer): Use precalculated len, adjust if needed. + * font.c (Ffont_xlfd_name): Likewise. Change to call make_string. + * lread.c (openp): Likewise. + +2012-07-10 Dmitry Antipov + + Avoid calls to strlen in path processing functions. + * fileio.c (file_name_as_directory): Add comment. Change to add + srclen argument and return the length of result. Adjust users + accordingly. + (directory_file_name): Fix comment. Change to add srclen argument, + swap 1st and 2nd arguments to obey the common convention. + Adjust users accordingly. + * filelock.c (fill_in_lock_file_name): Avoid calls to strlen. + +2012-07-10 Glenn Morris + + * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h: + Move PENDING_OUTPUT_COUNT definition to configure. + + * s/irix6-5.h (DATA_START, DATA_SEG_BITS): + * s/hpux10-20.h (DATA_SEG_BITS, DATA_START): + * s/gnu.h (DATA_START): Move definitions to configure. + + * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards. + We include usg5-4-common.h, which defines them both. + + * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses + O_RDONLY already includes it). + + Stop ns builds setting the EMACSLOADPATH environment variable. + * nsterm.m (ns_load_path): Rename from ns_init_paths. + Now it does not set EMACSLOADPATH, just returns the load-path string. + * nsterm.h: Update accordingly. + * lread.c [HAVE_NS]: Include nsterm.h. + (init_lread) [HAVE_NS]: Use ns_load_path. + * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths. + +2012-07-09 Glenn Morris + + * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here, + since the included bsd-common.h does so. + + Stop ns builds setting the EMACSPATH environment variable. + * nsterm.m (ns_exec_path): New function, split from ns_init_paths. + (ns_init_paths): Do not set EMACSPATH. + * nsterm.h (ns_exec_path): Add it. + * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]: + Use ns_exec_path. + + * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return. + +2012-07-09 Paul Eggert + + * process.c (wait_reading_process_output): 'waitchannels' was unset + when read_kbd || !NILP (wait_for_cell); fix this. + + Add GCC-style 'const' attribute to functions that can use it. + * character.h (char_resolve_modifier_mask): + * keyboard.h (make_ctrl_char): + * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe) + (init_character_once, next_almost_prime, init_fns, init_image) + (flush_pending_output, init_sound): + * mem-limits.h (start_of_data): + * menu.h (finish_menu_items): + Add ATTRIBUTE_CONST. + * emacs.c (DEFINE_DUMMY_FUNCTION): + Declare the dummy function with ATTRIBUTE_CONST. + * lisp.h (Fbyteorder, Fmax_char, Fidentity): + Add decls with ATTRIBUTE_CONST. + + Minor improvements to make_formatted_string. + * alloc.c (make_formatted_string): Prefer int to ptrdiff_t + where int is good enough, as vsprintf returns an int. + * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF. + +2012-07-09 Dmitry Antipov + + Use make_formatted_string to avoid double length calculation. + * lisp.h (make_formatted_string): New prototype. + * alloc.c (make_formatted_string): New function. + * buffer.c (Fgenerate_new_buffer_name): Use it. + * dbus.c (syms_of_dbusbind): Likewise. + * editfns.c (Fcurrent_time_zone): Likewise. + * filelock.c (get_boot_time): Likewise. + * frame.c (make_terminal_frame, set_term_frame_name) + (x_report_frame_params): Likewise. + * image.c (gs_load): Likewise. + * minibuf.c (get_minibuffer): Likewise. + * msdos.c (dos_set_window_size): Likewise. + * process.c (make_process): Likewise. + * xdisp.c (ensure_echo_area_buffers): Likewise. + * xsettings.c (apply_xft_settings): Likewise. + +2012-07-09 Glenn Morris + + Stop ns builds polluting the environment with EMACSDATA, EMACSDOC. + * nsterm.m (ns_etc_directory): New function, split from ns_init_paths. + (ns_init_paths): Do not set EMACSDATA, EMACSDOC. + * nsterm.h (ns_etc_directory): Add it. + * callproc.c [HAVE_NS]: Include nsterm.h. + (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory. + +2012-07-09 Dmitry Antipov + + Move marker debugging code under MARKER_DEBUG. + * marker.c (MARKER_DEBUG): Move marker debugging code under + #ifdef MARKER_DEBUG because byte_char_debug_check is too slow + for bootstrap with --enable-checking (~3x slowdown reported + by Juanma Barranquero ). + (verify_bytepos): Move under #ifdef MARKER_DEBUG. + +2012-07-08 Paul Eggert + + * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t. + See . + +2012-07-08 Eli Zaretskii + + * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph + has no font, use the frame's font. (Bug#11813) + (display_line): Add commentary about displaying truncation glyphs + on GUI frames. + (produce_special_glyphs): Move here from term.c. + + * term.c (produce_special_glyphs): Move to xdisp.c. + + * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c + section. + +2012-07-07 Andreas Schwab + + * xdisp.c (display_line): Avoid warning about implicit declaration + of FRAME_FONT. + + * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM. + + * lisp.h: Remove empty conditional. + +2012-07-07 Paul Eggert + + * lread.c (load_path_check): Now static. + + Fix some minor --with-ns problems found by static checking. + * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]: + (x_set_font) [!HAVE_X_WINDOWS]: + * image.c (xpm_load_image) [HAVE_NS]: + (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]: + (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]: + Remove unused local. + (Fx_parse_geometry) [HAVE_NS]: Don't return garbage. + (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label. + * image.c (x_create_bitmap_from_file) [HAVE_NS]: + (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]: + * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal): + * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]: + Fix pointer signedness problem. + * xfaces.c (FRAME_X_FONT_TABLE): + * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros. + +2012-07-07 Glenn Morris + + * lread.c (load_path_check): New function, split from init_lread. + (init_lread): Reorganize. Motivation: + If EMACSLOADPATH is set, check/warn about that rather than the + defaults, which we are not going to use. Hence we can remove + the turn_off_warning and WINDOWSNT || HAVE_NS tests. + Don't warn if site-lisp directories are missing. + If not installed, start from a blank load-path, since + PATH_LOADSEARCH refers to the eventual installation directories. + +2012-07-07 Eli Zaretskii + + Support truncation and continuation glyphs on GUI frames, when + fringes are disabled. (Bug#11832) + * xdisp.c (init_iterator): Get dimensions of truncation and + continuation glyphs even if on GUI frames. + Adjust it->last_visible_x on GUI frames when the left or right fringes, + or both, are absent. + (start_display, move_it_in_display_line_to): Handle the case of a + GUI frame without a fringe to display continuation or truncation + glyphs. + (insert_left_trunc_glyphs): Support GUI frames: make sure + truncation glyphs overwrite enough glyphs from the current line to + have sufficient space in pixels. + (display_line): Support truncation and continuation glyphs on GUI + frames. If some spare pixels are left on the line after inserting + the truncation glyphs, fill that space with a stretch glyph of a + suitably computed width. + + * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not + produce_glyphs, to support GUI sessions. + +2012-07-07 Paul Eggert + + * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781). + + * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797). + + Do not require float-time's arg to fit in time_t (Bug#11825). + This works better on hosts where time_t is unsigned, and where + float-time is applied to the (negative) difference between two times. + * editfns.c (decode_time_components): Last arg is now double *, + not int *, and means to store all the result as a double, without + worrying about whether the seconds part fits in time_t. + All callers changed. + (lisp_time_argument): Remove last int * arg, as it's no longer needed. + All callers changed. + (Ffloat_time): Do not fail merely because the specified time falls + outside of time_t range. + +2012-07-07 Glenn Morris + + * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV): + * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM): + * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively). + +2012-07-07 Juanma Barranquero + + * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)): + Update dependencies. + + * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp. + +2012-07-06 Paul Eggert + + Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786). + * dispextern.h, nsfns.m, nsterm.m: Include . + * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp. + * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp. + * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp. + * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove. + + * xfont.c (compare_font_names): Redo to omit the need for casts. + +2012-07-06 Andreas Schwab + + * xfns.c (Fx_change_window_property): Doc fix. + * w32fns.c (Fx_change_window_property): Doc fix. + + * w32fns.c (Fx_window_property): Accept the same arguments as the + X Windows version. Doc fix. + * xfns.c (Fx_window_property): Doc fix. (Bug#11870) + +2012-07-06 Juanma Barranquero + Eli Zaretskii + + * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt. + Windows-specific code from nt/config.nt moved here. + Obsolete settings removed. + +2012-07-06 Paul Eggert + + * process.c: Avoid unnecessary calls to gettime. + (wait_reading_process_output): Don't get the time of day + when gobbling data immediately and not waiting, as there's no need + for it in that case. This removes a FIXME. + +2012-07-06 Jan Djärv + + * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3 + is defined (Bug#11768). + +2012-07-06 Dmitry Antipov + + Fix marker debugging code. + * marker.c (byte_char_debug_check): Do not perform the check + if buffer is not multibyte. + (buf_charpos_to_bytepos, buf_bytepos_to_charpos): + Call byte_char_debug_check with correct arguments. + +2012-07-06 Dmitry Antipov + + Compile marker debugging code only if ENABLE_CHECKING is defined. + * marker.c (byte_char_debug_check, count_markers): + Use only if ENABLE_CHECKING is defined. + (byte_debug_flag): Remove. + (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos): + Always call byte_char_debug_check if ENABLE_CHECKING is defined. + +2012-07-06 Dmitry Antipov + + Avoid code repetition in marker-related functions. + * marker.c (attach_marker): New function. + (Fset_marker, set_marker_restricted, set_marker_both) + (set_marker_restricted_both): Use it. + (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at): + Consistently rename charno to charpos. + (marker_position): Add eassert. + (marker_byte_position): Convert to eassert. + +2012-07-06 Dmitry Antipov + + Simplify list operations in unchain_overlay and unchain_marker. + * buffer.c (unchain_overlay): Simplify. Add comment. + * marker.c (unchain_marker): Simplify. Fix comments. + +2012-07-06 Dmitry Antipov + + Introduce fast path for the widely used marker operation. + * alloc.c (build_marker): New function. + * lisp.h (build_marker): New prototype. + * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it. + * composite.c (autocmp_chars): Likewise. + * editfns.c (buildmark): Remove. + (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker) + (save_restriction_save): Use build_marker. + * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise. + * window.c (save_window_save): Likewise. + +2012-07-06 Dmitry Antipov + + Do not use Fdelete_overlay in delete_all_overlays + to avoid redundant calls to unchain_overlay. + * buffer.c (drop_overlay): New function. + (delete_all_overlays, Fdelete_overlay): Use it. + * minibuf.c (get_minibuffer): Fix comment. + +2012-07-06 Paul Eggert + + Port to OpenBSD 5.1 amd64. + * sysdep.c [BSD_SYSTEM]: Include before . + This is needed for OpenBSD, and should be harmless on all BSD systems. + Also, include , as it should be available on all + BSD_SYSTEM hosts given that we're already calling sysctl in that case. + (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but + use p_pid member, not kp_proc.pid. + +2012-07-06 Glenn Morris + + * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows. + +2012-07-05 Paul Eggert + + More xmalloc and related cleanup. + * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c: + * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c: + * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c: + * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c: + * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c: + * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c: + * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c: + * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c: + * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c: + * xterm.c: + Omit needless casts involving void * pointers and allocation. + Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))", + as the former is more robust if P's type is changed. + Prefer xzalloc to xmalloc + memset 0. + Simplify malloc-or-realloc to realloc. + Don't worry about xmalloc returning a null pointer. + Prefer xstrdup to xmalloc + strcpy. + * editfns.c (Fmessage_box): Grow message_text by at least 80 when + growing it. + * keyboard.c (apply_modifiers_uncached): Prefer local array to + alloca of a constant. + +2012-07-05 Eli Zaretskii + + * xdisp.c (display_line): Fix horizontal pixel coordinates when + hscroll is larger than the line width. Fixes long and futile + looping inside extend_face_to_end_of_line (on a TTY) producing + glyphs that are not needed and thrown away. + +2012-07-05 Dmitry Antipov + + * marker.c (set_marker_restricted_both): Simplify by using + clip_to_bounds. + +2012-07-05 Paul Eggert + + * editfns.c (region_limit): Simplify by using clip_to_bounds. + +2012-07-05 Jan Djärv + + * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is + not defined (Bug#11768). + (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768). + (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser) + (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new + followed by gtk_box_set_homogeneous (Bug#11768). + (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768). + (update_theme_scrollbar_width, xg_create_scroll_bar): + Use gtk_scrollbar_new (Bug#11768). + (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3. + (is_box_type): New function (Bug#11768). + (xg_tool_item_stale_p): Call is_box_type. + (xg_initialize): Get settings by calling gtk_settings_get_for_screen + with default display (Bug#11768). + +2012-07-05 Eli Zaretskii + + * xdisp.c (window_hscroll_limited): New function. + (pos_visible_p, init_iterator): Use it to avoid overflow of pixel + coordinates when window's hscroll is set to insanely large + values. (Bug#11857) + +2012-07-05 Juanma Barranquero + + * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo. + ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies. + +2012-07-05 Dmitry Antipov + + Cleanup xmalloc. + * lisp.h (xzalloc): New prototype. Omit needless casts. + * alloc.c (xzalloc): New function. Omit needless casts. + * charset.c: Omit needless casts. Convert all calls to + xmalloc with following memset to xzalloc. + * dispnew.c: Likewise. + * fringe.c: Likewise. + * image.c: Likewise. + * sound.c: Likewise. + * term.c: Likewise. + * w32fns.c: Likewise. + * w32font.c: Likewise. + * w32term.c: Likewise. + * xfaces.c: Likewise. + * xfns.c: Likewise. + * xterm.c: Likewise. + * atimer.c: Omit needless casts. + * buffer.c: Likewise. + * callproc.c: Likewise. + * ccl.c: Likewise. + * coding.c: Likewise. + * composite.c: Likewise. + * doc.c: Likewise. + * doprnt.c: Likewise. + * editfns.c: Likewise. + * emacs.c: Likewise. + * eval.c: Likewise. + * filelock.c: Likewise. + * fns.c: Likewise. + * gtkutil.c: Likewise. + * keyboard.c: Likewise. + * lisp.h: Likewise. + * lread.c: Likewise. + * minibuf.c: Likewise. + * msdos.c: Likewise. + * print.c: Likewise. + * process.c: Likewise. + * region-cache.c: Likewise. + * search.c: Likewise. + * sysdep.c: Likewise. + * termcap.c: Likewise. + * terminal.c: Likewise. + * tparam.c: Likewise. + * w16select.c: Likewise. + * w32.c: Likewise. + * w32reg.c: Likewise. + * w32select.c: Likewise. + * w32uniscribe.c: Likewise. + * widget.c: Likewise. + * xdisp.c: Likewise. + * xmenu.c: Likewise. + * xrdb.c: Likewise. + * xselect.c: Likewise. + +2012-07-05 Paul Eggert + + * fileio.c (time_error_value): Check the right error number. + Problem reported by Troels Nielsen in + . + +2012-07-04 Paul Eggert + + * window.c (set_window_hscroll): Revert the 100000 hscroll limit. + This should be fixed in a better way; see Eli Zaretskii in + . + (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll. + + * fileio.c (time_error_value): Rename from special_mtime. + The old name's problems were noted by Eli Zaretskii in + . + + * emacs.c (gdb_pvec_type): Change it back to enum pvec_type. + This variable's comment says Emacs needs at least one GDB-visible + symbol of type enum pvec_type, to work around GDB problems. + The symbol's value doesn't matter. + + * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';' + that causes compilation to fail on pre-C99 compilers. + +2012-07-04 Juanma Barranquero + + * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY) + (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete. + +2012-07-04 Dmitry Antipov + + * buffer.c (init_buffer_once): Fix initialization of + headers for buffer_defaults and buffer_local_symbols. + Reported by Juanma Barranquero . + +2012-07-04 Stefan Monnier + + Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE. + * lisp.h (enum pvec_type): Use fewer bits. + (PSEUDOVECTOR_SIZE_BITS): New constant. + (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it. + (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to + change in pvec_type. + (PSEUDOVECTOR_TYPEP): New macro. + (TYPED_PSEUDOVECTORP): Use it. + * fns.c (internal_equal): Adapt code to extract pvectype. + * emacs.c (gdb_pvec_type): Update type. + * alloc.c (PSEUDOVECTOR_NBYTES): New macro. + (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK). + (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE). + (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE. + (sweep_vectors): Use it. Use local var `total_bytes' instead of + abusing vector->header.next.nbytes. + (live_vector_p): Use PVEC_TYPE. + (mark_object): Adapt code to extract pvectype. Use switch. + +2012-07-04 Paul Eggert + + * doprnt.c (doprnt): Don't assume string length fits in 'int'. + Tighten new eassert a bit. + +2012-07-04 Dmitry Antipov + + Fix compilation with --enable-gcc-warnings and -O1 + optimization level. + * doprnt.c (doprnt): Change type of tem to int, initialize + to avoid compiler warning. Add eassert. + * search.c (simple_search): Initialize match_byte to avoid + compiler warning. Add eassert. + +2012-07-04 Paul Eggert + + Avoid weird behavior with large horizontal scrolls. + Without this change, for example, large hscroll values would + mess up Emacs's display on Fedora 15 x86, presumably due to + overflows in int calculations in the display code. + Also, if buffers had long lines, Emacs would freeze. + * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB. + (set_window_hscroll): New function, containing the old guts of + Fset_window_hscroll. Return the clipped value. + (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it. + This avoids the need to check against PTRDIFF_MAX. + + * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch. + +2012-07-04 Dmitry Antipov + + * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch. + +2012-07-04 Paul Eggert + + * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207) + Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later, + since GCC 4.4.6 issues a bogus warning for them. + + Fix bugs in file timestamp newness comparisons. + * fileio.c (Ffile_newer_than_file_p): + * lread.c (Fload): Use full timestamp resolution of files, + not just the 1-second resolution, so that files that are only + slightly newer still count as newer. + * fileio.c (Ffile_newer_than_file_p): Don't assume file + timestamps fit in 'int'; this fixes a Y2038 bug on most hosts. + +2012-07-03 Paul Eggert + + * fileio.c: Improve handling of file time marker. (Bug#11852) + (special_mtime): New function. + (Finsert_file_contents, Fverify_visited_file_modtime): + Use it to set special mtime values consistently. + +2012-07-03 Andreas Schwab + + * fileio.c (Finsert_file_contents): Properly handle st_mtime + marker for non-existing file. (Bug#11852) + +2012-07-03 Glenn Morris + + * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN + and did not make it into globals.h). + +2012-07-03 Tom Tromey + + * window.c (Fset_window_margins, Fset_window_fringes) + (Fset_window_scroll_bars, Fset_window_vscroll): No longer static. + * textprop.c (Fprevious_property_change): No longer static. + * syntax.c (Fsyntax_table_p): No longer static. + * process.c (Fget_process, Fprocess_datagram_address): No longer + static. + * keymap.c (Flookup_key, Fcopy_keymap): No longer static. + * keyboard.c (Fcommand_execute): No longer static. + Remove EXFUN. + * insdel.c (Fcombine_after_change_execute): No longer static. + * image.c (Finit_image_library): No longer static. + * fileio.c (Fmake_symbolic_link): No longer static. + * eval.c (Ffetch_bytecode): No longer static. + * editfns.c (Fuser_full_name): No longer static. + * doc.c (Fdocumentation_property, Fsnarf_documentation): + No longer static. + * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer + static. + * dired.c (Ffile_attributes): No longer static. + * composite.c (Fcomposition_get_gstring): No longer static. + * callproc.c (Fgetenv_internal): No longer static. + + * ccl.h: Remove EXFUNs. + * buffer.h: Remove EXFUNs. + * dispextern.h: Remove EXFUNs. + * intervals.h: Remove EXFUNs. + * fontset.h: Remove EXFUN. + * font.h: Remove EXFUNs. + * dosfns.c (system_process_attributes): Remove EXFUN. + * keymap.h: Remove EXFUNs. + * lisp.h: Remove EXFUNs. + * w32term.h: Remove EXFUNs. + * window.h: Remove EXFUNs. + * xsettings.h: Remove EXFUN. + * xterm.h: Remove EXFUN. + +2012-07-03 Glenn Morris + + * lisp.h (Frandom): Make it visible to C. + * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new + buffer for invisible buffers. (Bug#1229) + +2012-07-03 Dmitry Antipov + + Fix block vector allocation code to allow VECTOR_BLOCK_SIZE + values which aren't power of 2. + * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. + Verify it's value and the value of VECTOR_BLOCK_SIZE. Adjust users + accordingly. + +2012-07-03 Stefan Monnier + + * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better. + + * alloc.c (mark_object): Revert part of last patch to use `switch'. + +2012-07-03 Dmitry Antipov + + * alloc.c (allocate_vector_block): Remove redundant + calls to mallopt if DOUG_LEA_MALLOC is defined. + (allocate_vectorlike): If DOUG_LEA_MALLOC is defined, + avoid calls to mallopt if zero_vector is returned. + +2012-07-03 Dmitry Antipov + + * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES + is enabled, avoid dereferencing NULL current_sblock if + running undumped. + +2012-07-03 Dmitry Antipov + + Cleanup basic buffer management. + * buffer.h (struct buffer): Change layout to use generic vector + marking code. Fix some comments. Change type of 'clip_changed' + to bitfield. Remove unused #ifndef old. + (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove. + (GET_OVERLAYS_AT): Fix indentation. + (for_each_per_buffer_object_at): New macro. + * buffer.c (clone_per_buffer_values, reset_buffer_local_variables) + (Fbuffer_local_variables): Use it. + (init_buffer_once, syms_of_buffer): Remove unused #ifndef old. + * alloc.c (allocate_buffer): Adjust to match new layout of + struct buffer. Fix comment. + (mark_overlay): New function. + (mark_buffer): Use it. Use mark_vectorlike to mark normal + Lisp area of struct buffer. + (mark_object): Use it. Adjust marking of misc objects + and related comments. + +2012-07-02 Paul Eggert + + * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS" + wrapper that is not needed because the wrapped code is a no-op (zero + machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined. + This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64. + +2012-07-02 Dmitry Antipov + + * alloc.c (mark_buffer): Simplify. Remove prototype. + (mark_object): Add comment. Reorganize marking of vector-like + objects. Use CHECK_LIVE for all vector-like objects except buffers + and subroutines when GC_CHECK_MARKED_OBJECTS is defined. + Avoid redundant calls to mark_vectorlike for bool vectors. + +2012-06-30 Glenn Morris + + * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp. + + * epaths.in (PATH_SITELOADSEARCH): New. + * lread.c (init_lread): Use PATH_SITELOADSEARCH. + This is rather than relying on --enable-locallisppath elements + having "site-lisp" in their names. (Bug#10208#25, 11658) + +2012-06-30 Eli Zaretskii + + * w32proc.c (sys_select): Accept and ignore one more argument. + + * w32.c (emacs_gnutls_pull): Call select with one more argument. + + * sysselect.h [DOS_NT]: Don't include sys/select.h. + (pselect) [!MS_DOS]: Redirect to sys_select. + + * sysdep.c: Don't include dos.h and dosfns.h. + + * process.c (sys_select): + * msdos.c (sys_select): Accept one more argument and ignore it. + + * msdos.c (event_timestamp, sys_select): Use gnulib's gettime; + adapt data types and code to that. + + * dosfns.c: + * msdos.c (gettime, settime): Define away the prototypes in dos.h, + which clashes with the gnulib function of the same name. + +2012-06-30 Andreas Schwab + + * font.c (font_style_to_value, font_style_symbolic) + (font_prop_validate_style): Add type checks for values in + font_style_table. + + * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first + argument. + * character.c, charset.c, menu.c, process.c, window.c: Adjust all + uses. + +2012-06-29 Eli Zaretskii + + * xdisp.c (try_window_id): Undo last change. + + * w32.c (getwd): Adjust commentary about startup_dir. + (init_environment): Always call sys_access, even in non-MSVC + builds. Don't chdir to the directory of the Emacs executable. + This undoes code from 1997 which was justified by the need to + "avoid conflicts when removing and renaming directories". But its + downside was that every relative file name was being interpreted + relative to the directory of the Emacs executable, which can never + be TRT. In particular, it broke sys_access when called with + relative file names. + (sys_access): Map GetLastError to errno. + +2012-06-29 Dmitry Antipov + + * window.h (struct window): Change type of 'fringes_outside_margins' + to bitfield. Fix comment. Adjust users accordingly. + (struct window): Change type of 'window_end_bytepos' to ptrdiff_t. + Adjust comment. + * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos' + to ptrdiff_t. + +2012-06-29 Andreas Schwab + + * gnutls.c (emacs_gnutls_handshake): + Add QUIT to make the loop interruptible. + +2012-06-29 Glenn Morris + + * charset.c (init_charset): Make lack of etc/charsets fatal. + +2012-06-29 Dmitry Antipov + + * editfns.c (region_limit): Fix type mismatch. + +2012-06-29 Dmitry Antipov + + * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be + undefined. Convert from xassert to eassert. + * nsmenu.m: Convert from xassert to eassert. + * nsterm.m: Likewise. + +2012-06-28 Stefan Monnier + + * editfns.c (region_limit): Clip to narrowing (bug#11770). + +2012-06-28 Paul Eggert + + Avoid integer overflow on scroll-left and scroll-right. + * window.c (HSCROLL_MAX): New macro. + (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer + overflow when requested scroll falls outside ptrdiff_t range. + +2012-06-28 Dmitry Antipov + + * window.h (struct window): Change type of 'hscroll', + 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t, + 'last_modified' and 'last_overlay_modified' to EMACS_INT. + Adjust users accordingly. + * xdisp.c (try_cursor_movement): Replace type check with eassert. + * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll' + from EMACS_INT to ptrdiff_t. + (make_window): Omit redundant initialization. + +2012-06-28 Juanma Barranquero + + * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies. + +2012-06-28 Dmitry Antipov + + * window.h (struct window): Change type of 'use_time' and + 'sequence_number' from Lisp_Object to int. + * frame.c (make_frame): Adjust users accordingly. + * print.c (print_object): Likewise. + * window.c (select_window, Fwindow_use_time, make_parent_window) + (make_window): Likewise. + +2012-06-28 Dmitry Antipov + + * dispextern.h (GLYPH_DEBUG): Now defined in config.h if + enabled with --enable-checking=[all,glyphs] configure option. + Fix GLYPH_DEBUG usage assuming that it may be undefined, + adjust comments accordingly. + * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be + undefined, adjust comments accordingly. + * image.c: Likewise. + * scroll.c: Likewise. + * w32fns.c: Likewise. + * w32term.c: Likewise. + * xdisp.c: Likewise. + * xfaces.c: Likewise. + * xfns.c: Likewise. + * xterm.c: Likewise. + +2012-06-28 Dmitry Antipov + + Generalize run-time debugging checks. + * dispextern.h (XASSERTS): Remove. + * fontset.c (xassert): Remove. + Convert from xassert to eassert. + * alloc.c: Convert from xassert to eassert. + * bidi.c: Likewise. + * dispnew.c: Likewise. + * fns.c: Likewise. + * fringe.c: Likewise. + * ftfont.c: Likewise. + * gtkutil.c: Likewise. + * image.c: Likewise. + * keyboard.c: Likewise. + * menu.c: Likewise. + * process.c: Likewise. + * scroll.c: Likewise. + * sound.c: Likewise. + * term.c: Likewise. + * w32console.c: Likewise. + * w32fns.c: Likewise. + * w32term.c: Likewise. + * window.c: Likewise. + * xdisp.c: Likewise. + * xfaces.c: Likewise. + * xfns.c: Likewise. + * xselect.c: Likewise. + * xterm.c: Likewise. + +2012-06-27 Stefan Monnier + + * fns.c (maybe_resize_hash_table): Output message when growing the + purify-hashtable. + +2012-06-27 Dmitry Antipov + + * alloc.c (allocate_string_data): Remove dead code. + * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to + avoid GCC warning about unused macro. + +2012-06-27 Dmitry Antipov + + * alloc.c (allocate_string): Omit intervals initialization. + * alloc.c (make_uninit_multibyte_string): Initialize intervals + as in make_pure_string and make_pure_c_string. + +2012-06-27 Dmitry Antipov + + * alloc.c (allocate_string): Fix last change. + +2012-06-27 Dmitry Antipov + + * alloc.c (allocate_string): Remove two redundant calls + to memset, add explicit initialization where appropriate. + +2012-06-27 Glenn Morris + + * lisp.mk (lisp): Remove paths.elc. + +2012-06-27 Chong Yidong + + * doc.c (Fsubstitute_command_keys): Fix punctuation. + +2012-06-26 John Wiegley + + * unexmacosx.c (copy_data_segment): Add two section names used + on Mac OS X Lion: __mod_init_func and __mod_term_func. + + * alloc.c (mark_memory): Do not check with -faddress-sanitizer + when building with Clang. + +2012-06-26 Stefan Monnier + + * eval.c (Fapply): Allow calling it with a single argument. + +2012-06-26 Eli Zaretskii + + * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to + _stricmp and _strnicmp. + (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1. + +2012-06-26 Dmitry Antipov + + * alloc.c (allocate_window): Zero out non-Lisp part of newly + allocated window. + (allocate_process): Likewise for new process. + (allocate_terminal): Change to use offsetof. + (allocate_frame): Likewise. + * frame.c (make_frame): Omit redundant initialization. + * window.c (make_parent_window): Use memset. + (make_window): Omit redundant initialization. + * process.c (make_process): Omit redundant initialization. + * terminal.c (create_terminal): Likewise. + +2012-06-26 Dmitry Antipov + + * term.c (delete_tty): Remove redundant call to memset. + +2012-06-26 Dmitry Antipov + + * alloc.c: Remove build_string. + * lisp.h: Define build_string as static inline. This provides + a better opportunity to optimize away calls to strlen when the + function is called with compile-time constant argument. + * image.c (imagemagick_error): Convert to build_string. + * w32proc.c (sys_spawnve): Likewise. + * xterm.c (x_term_init): Likewise. + +2012-06-26 Paul Eggert + + Use sprintf return value instead of invoking strlen on result. + In the old days this wasn't portable, since some sprintf + implementations returned char *. But they died out years ago and + Emacs already assumes sprintf returns int. + Similarly for float_to_string. + This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64. + * ccl.c (ccl_driver): + * character.c (string_escape_byte8): + * data.c (Fnumber_to_string): + * doprnt.c (doprnt): + * print.c (print_object): + * xdisp.c (message_dolog): + * xfns.c (syms_of_xfns): + Use sprintf or float_to_string result to avoid need to call strlen. + * data.c (Fnumber_to_string): + Use make_unibyte_string, since the string must be ASCII. + * lisp.h, print.c (float_to_string): Now returns int length. + * term.c (produce_glyphless_glyph): + Use sprintf result rather than recomputing it. + + Clean out last vestiges of the old HAVE_CONFIG_H stuff. + * Makefile.in (ALL_CFLAGS): + * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H. + * gmalloc.c, regex.c: Include unconditionally. + +2012-06-25 Dmitry Antipov + + * dispextern.h (xstrcasecmp): Define to library function + strcasecmp if available. + * xfaces.c: Do not use xstrcasecmp if strcasecmp is available. + +2012-06-25 Andreas Schwab + + * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence): + Avoid comma operator. + * menu.c (push_submenu_start, push_submenu_end) + (push_left_right_boundary, push_menu_pane): Likewise. + * msdos.c (dos_rawgetc): Likewise. + +2012-06-25 Dmitry Antipov + + * xfns.c (xic_create_fontsetname): Remove redundant calls + to memset. + +2012-06-25 Paul Eggert + + * gtkutil.c (get_utf8_string): Remove redundant assignment. + sprintf already null-terminates its output. + + * xfns.c (x_window): Remove redundant cast. + +2012-06-25 Dmitry Antipov + + * xmenu.c (xmenu_show, xdialog_show): Explicit cast from + `const char *' to `char *' to avoid compiler warning. + +2012-06-24 Paul Eggert + + * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string + instead of truncating it to 63 (admittedly a generous limit). + + * process.c: Fix spelling and caps in comments. + +2012-06-24 Dan Nicolaescu + + * emacs.c (setpgrp): Remove definition, unused. + * sysdep.c (setpgrp): Remove definition, not used in this file. + +2012-06-24 Juanma Barranquero + + * makefile.w32-in: Update dependencies. + +2012-06-24 Eli Zaretskii + + * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h. + (SYSTIME_H): Add nt/inc/sys/time.h. + + * systime.h [WINDOWSNT]: Include sys/time.h. + + * s/ms-w32.h (struct timespec): Definition moved from + nt/inc/sys/time.h. Suggested by Paul Eggert . + +2012-06-24 Paul Eggert + + Switch from NO_RETURN to C11's _Noreturn (Bug#11750). + * buffer.h (buffer_slot_type_mismatch): + * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]: + * eval.c (unwind_to_catch): + * image.c (my_png_error, my_error_exit): + * keyboard.c (quit_throw_to_read_char, user_error) + (Fexit_recursive_edit, Fabort_recursive_edit): + * lisp.h (die, args_out_of_range, args_out_of_range_3) + (wrong_type_argument, buffer_overflow, __executable_start) + (memory_full, buffer_memory_full, string_overflow, Fthrow) + (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error) + (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs) + (fatal): + (child_setup) [!DOS_NT]: + * lread.c (end_of_file_error, invalid_syntax): + * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]: + * puresize.h (pure_write_error): + * search.c (matcher_overflow): + * sound.c (sound_perror, alsa_sound_perror): + * sysdep.c, syssignal.h (croak): + * term.c (maybe_fatal, vfatal): + * textprop.c (text_read_only): + * undo.c (user_error): + * unexmacosx.c (unexec_error): + * xterm.c (x_ins_del_lines, x_delete_glyphs): + Use _Noreturn rather than NO_RETURN. + No need for separate decl merely because of _Noreturn. + * sound.c (sound_warning, parse_sound): + Remove unnecessary forward decls. + +2012-06-24 Paul Eggert + + Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000). + * lisp.h (WAIT_READING_MAX): New macro. + * dispnew.c (Fsleep_for, sit_for): + * keyboard.c (kbd_buffer_get_event): + * process.c (Faccept_process_output): + Use it to avoid bogus compiler warnings with obsolescent GCC versions. + This improves on the previous patch, which introduced a bug + when time_t is unsigned and as wide as intmax_t. + See . + +2012-06-23 Eli Zaretskii + + * dispnew.c (sit_for, Fsleep_for): + * keyboard.c (kbd_buffer_get_event): + * process.c (Faccept_process_output): Avoid compiler warnings when + comparing a 32-bit time_t with a 64-bit INTMAX_MAX. + +2012-06-23 Juanma Barranquero + + * makefile.w32-in: Update dependencies. + + * w32.c (ltime): Add return type and declare static. + (w32_get_internal_run_time): Remove usused variable `time_100ns'. + +2012-06-23 Paul Eggert + + * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos. + Privately reported by Herbert J. Skuhra. + (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST. + All uses changed. + (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time, + not make_lisp_timeval, when the argument is of type EMACS_TIME. + +2012-06-23 Eli Zaretskii + + * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in + last argument of make_unibyte_string. + + * keyboard.c (kbd_buffer_get_event): Include the codepage and the + language ID in the event parameters. + + * w32term.c (w32_read_socket): Put the new keyboard codepage into + event.code, not the obscure "character set ID". + +2012-06-23 Chong Yidong + + * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select. + +2012-06-23 Eli Zaretskii + + Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu. + * w32.c (fdutimens): New function. + + * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type. + + * s/ms-w32.h (pselect): Redirect to sys_select. + + * sysselect.h [WINDOWSNT]: Don't include sys/select.h. + + * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko + in the logic of incrementing and decrementing the value of + use_relocatable_buffers. + +2012-06-23 Paul Eggert + + * sysdep.c [__FreeBSD__]: Fix recently-introduced typos. + Privately reported by Herbert J. Skuhra. + [__FreeBSD__]: Remove "*/" typo after "#include". + (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function. + (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro. + (TIMEVAL, system_process_attributes) [__FreeBSD__]: + Don't assume EMACS_TIME and struct timeval are the same type. + +2012-06-22 Paul Eggert + + Support higher-resolution time stamps (Bug#9000). + The time stamps are only nanosecond-resolution at the C level, + since that's the best that any real-world system supports now. + But they are picosecond-resolution at the Lisp level, as that's + easy, and leaves room for future OS improvements. + + * Makefile.in (LIB_CLOCK_GETTIME): New macro. + (LIBES): Use it. + + * alloc.c (Fgarbage_collect): Port to higher-res time stamps. + Don't get current time unless it's needed. + + * atimer.c: Include unconditionally, since gnulib + now provides it if it's absent. + (start_atimer): Port to higher-res time stamps. + Check for time stamp overflow. Don't get current time more + often than is needed. + + * buffer.h (struct buffer): Buffer modtime now has high resolution. + Include systime.h, not time.h. + (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros. + + * dired.c: Include stat-time.h. + (Ffile-attributes): File times now have higher resolution. + + * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h. + (struct image): Timestamp now has higher resolution. + + * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always + has at least microseconds now. All uses removed. + (update_frame, update_single_window, update_window, update_frame_1) + (Fsleep_for, sit_for): Port to higher-resolution time stamps. + (duration_to_sec_usec): Remove; no longer needed. + + * editfns.c (time_overflow): Now extern. + (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument) + (float-time, Fformat_time_string, Fcurrent_time_string) + (Fcurrent_time_zone): Accept and generate higher-resolution + time stamps. + (make_time_tail, make_lisp_time, dissassemble_lisp_time) + (decode_time_components, lisp_seconds_argument): New functions. + (make_time): Now static. + (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec. + Report an error if the time is invalid, rather than having the caller + do that. + + * fileio.c: Include + (Fcopy_file): Copy higher-resolution time stamps. + Prefer to set the time stamp via a file descriptor if that works. + (Fset_file_times, Finsert_file_contents, Fwrite_region) + (Fverify_visited_file_modtime, Fclear_visited_file_modtime) + (Fvisited_file_modtime, Fset_visited_file_modtime): + Support higher-resolution time stamps. + + * fns.c (Frandom): Use nanoseconds, not microseconds, for seed. + + * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps. + + * image.c (prepare_image_for_display, clear_image_cache) + (lookup_image): Port to higer-resolution time stamps. + + * keyboard.c (start_polling, bind_polling_period): + Check for time stamp overflow. + (read_char, kbd_buffer_get_event, timer_start_idle) + (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check) + (Fcurrent_idle_time, init_keyboard, set_waiting_for_input): + Port to higher-resolution time stamps. Do not assume time_t is signed. + (decode_timer): New function. Timers are now vectors of length 9, + not 8, to accommodate the picosecond component. + (timer_check_2): Use it. + + * nsterm.m (select_timeout, timeval_subtract): Remove. + (ns_timeout): Use Emacs's facilities for time stamp arithmetic, + as they're a bit more accurate and handle overflow better. + (ns_select): Change prototype to be compatible with pselect. + (ns_select, ns_term_shutdown): Port to ns-resolution time stamps. + * nsterm.h (ns_select): Adjust prototype. + + * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes + us-resolution time stamps. + (sys_select): Use the new EMACS_TIME_SIGN macro instead. + + * lread.c (read_filtered_event): Port to ns-resolution time stamps. + + * lisp.h (time_overflow): New decl. + (wait_reading_process_output): First arg is now intmax_t, not int, + to accommodate larger waits. + + * process.h (struct Lisp_Process.read_output_delay): + Now counts nanoseconds, not microseconds. + * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about + EMACS_HAS_USECS. + (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output) + (wait_reading_process_output): + Port to ns-resolution time stamps. + (Faccept_process_output, wait_reading_process_output): + Check for time stamp overflow. Do not assume time_t is signed. + (select_wrapper): Remove; we now use pselect. + (Fprocess_attributes): Now generates ns-resolution time stamps. + + * sysdep.c: Include utimens.h. Don't include utime.h + or worry about struct utimbuf; gnulib does that for us now. + (gettimeofday): Remove; gnulib provides a substitute. + (make_timeval): New function. + (set_file_times): Now sets ns-resolution time stamps. + New arg FD; all uses changed. + (time_from_jiffies, ltime_from_jiffies, get_up_time) + (system_process_attributes): + Now returns ns-resolution time stamp. All uses changed. + Check for time stamp overflow. + + * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib + provides a substitute now. + + * systime.h: Include timespec.h rather than sys/time.h and time.h, + since it guarantees struct timespec. + (EMACS_TIME): Now struct timespec, so that we can support + ns-resolution time stamps. + (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros. + (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now. + (EMACS_USECS): Remove. + (EMACS_SET_USECS): The underlying time stamp now has ns resolution, + so multiply the arg by 1000 before storing it. + (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS): + New macros. + (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): + Port to ns-resolution time stamps. + (EMACS_TIME_NEG_P): Remove; replaced by.... + (EMACS_TIME_SIGN): New macro. + (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P) + (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros. + (set_file_times, make_time, lisp_time_argument): Adjust signature. + (make_timeval, make_lisp_time, decode_time_components): New decls. + (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in + that it mishandled time_t overflow. You can't compare by subtracting! + (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE) + (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp. + + * term.c: Include . + (timeval_to_Time): New function, for proper overflow wraparound. + (term_mouse_position, term_mouse_click): Use it. + + * undo.c (record_first_change): Support higher-resolution time stamps + in the undo buffer. + (Fprimitive_undo): Use them when restoring time stamps. + + * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull) + (w32_get_internal_run_time): + Port to higher-resolution Emacs time stamps. + (ltime): Now accepts single 64-bit integer, as that's more convenient + for callers. + + * xdisp.c (start_hourglass): Port to ns-resolution time stamps. + + * xgselect.c, xgselect.h (xg_select): Add sigmask argument, + for compatibility with pselect. Support ns-resolution time stamps. + + * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps. + + * xselect.c (wait_for_property_change, x_get_foreign_selection): + Check for time stamp overflow, and support ns-resolution time stamps. + + * xterm.c: Don't include sys/time.h; gnulib does that for us now. + Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set. + (timeval_subtract): Remove; no longer needed. + (XTflash, XTring_bell, x_wait_for_event): + Port to ns-resolution time stamps. Don't assume time_t is signed. + +2012-06-22 Chong Yidong + + * xdisp.c (x_consider_frame_title): Revert last change. + +2012-06-22 Eli Zaretskii + + * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled + with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER + aborts in staticpro during startup. (Without -DBYTE_CODE_METER, + staticidx goes up to 1597 out of 1600 = 0x640.) + +2012-06-20 Paul Eggert + + * fileio.c (Fdefault_file_modes): Block input while fiddling with umask. + Otherwise, the umask might be mistakenly 0 while handling input signals. + +2012-06-19 Stefan Monnier + + * minibuf.c (Fread_string): Bind minibuffer-completion-table. + +2012-06-19 Dmitry Antipov + + * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c: + * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c: + * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct + access to `contents' member of Lisp_Vector objects with AREF and ASET + where appropriate. + +2012-06-19 Chong Yidong + + * frame.c (delete_frame): When selecting a frame on a different + text terminal, do not alter the terminal's top-frame. + + * xdisp.c (format_mode_line_unwind_data): Record the target + frame's selected window and its terminal's top-frame. + (unwind_format_mode_line): Restore them. + (x_consider_frame_title, display_mode_line, Fformat_mode_line): + Callers changed. + (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM, + since tty frames can be explicitly named. + (prepare_menu_bars): Likewise. + + * term.c (Ftty_top_frame): New function. + +2012-06-18 Paul Eggert - * makefile.w32-in ($(BLD)/w32menu.$(O)): Depend on w32heap.h. + Port byte-code-meter to modern targets. + * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume + !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with + CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in + . + (METER_1, METER_2): Simplify. + +2012-06-18 Stefan Monnier + + * data.c (Fdefalias): Return `symbol' (bug#11686). + +2012-06-18 Martin Rudalics + + * buffer.c (Fkill_buffer): Don't throw an error when the buffer + gets killed during executing of this function (Bug#11665). + Try to always return Qt when the buffer has been actually killed. + (Vkill_buffer_query_functions): In doc-string say that functions + run by this hook should not change the current buffer. + +2012-06-18 Paul Eggert + + Fix recently-introduced process.c problems found by static checking. + * process.c (write_queue_push, write_queue_pop, send_process): + Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets. + (write_queue_pop): Fix pointer signedness problem. + (send_process): Remove unused local. + +2012-06-17 Chong Yidong + + * xdisp.c (redisplay_internal): No need to redisplay terminal + frames that are not on top. + +2012-06-17 Troels Nielsen + + * process.c (make_process): Initialize write_queue. + (write_queue_push, write_queue_pop): New functions. + (send_process): Use them to maintain correct ordering of process + writes (Bug#10815). + +2012-06-17 Paul Eggert + + * lisp.h (eassert): Assume C89 or later. + This removes the need for CHECK. + (CHECK): Remove. Its comments about always evaluating its + argument were confusing, as 'eassert' typically does not evaluate + its argument. + + * coding.c (produce_chars): Use ptrdiff_t, not int. + + * xterm.c (x_draw_underwave): Check for integer overflow. + This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64. + +2012-06-17 Jan Djärv + + * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't + referenced (Bug#11583). + +2012-06-16 Aurelien Aptel + + Implement wave-style variant of underlining. + * dispextern.h (face_underline_type): New enum. + (face): Add field for underline type. + * nsterm.m (ns_draw_underwave): New function. + (ns_draw_text_decoration): Use it. + * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave): + New functions. + (x_draw_glyph_string): Use them. + * xfaces.c (Qline, Qwave): New Lisp objects. + (check_lface_attrs, merge_face_ref) + (Finternal_set_lisp_face_attribute, realize_x_face): + Handle wave-style underline face attributes. + * xterm.c (x_draw_underwave): New function. + (x_draw_glyph_string): Use it. + +2012-06-16 Juanma Barranquero + + * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O)) + ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O)) + ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O)) + ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O)) + ($(BLD)/w32select.$(O)): Update dependencies. + +2012-06-16 Andreas Schwab + + * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline. + (BUF_FETCH_MULTIBYTE_CHAR): Likewise. + * character.c (_fetch_multibyte_char_p): Remove. + * alloc.c: Include "character.h" before "buffer.h". + * bidi.c: Likewise. + * buffer.c: Likewise. + * bytecode.c: Likewise. + * callint.c: Likewise. + * callproc.c: Likewise. + * casefiddle.c: Likewise. + * casetab.c: Likewise. + * category.c: Likewise. + * cmds.c: Likewise. + * coding.c: Likewise. + * composite.c: Likewise. + * dired.c: Likewise. + * dispnew.c: Likewise. + * doc.c: Likewise. + * dosfns.c: Likewise. + * editfns.c: Likewise. + * emacs.c: Likewise. + * fileio.c: Likewise. + * filelock.c: Likewise. + * font.c: Likewise. + * fontset.c: Likewise. + * fringe.c: Likewise. + * indent.c: Likewise. + * insdel.c: Likewise. + * intervals.c: Likewise. + * keyboard.c: Likewise. + * keymap.c: Likewise. + * lread.c: Likewise. + * macros.c: Likewise. + * marker.c: Likewise. + * minibuf.c: Likewise. + * nsfns.m: Likewise. + * nsmenu.m: Likewise. + * print.c: Likewise. + * process.c: Likewise. + * regex.c: Likewise. + * region-cache.c: Likewise. + * search.c: Likewise. + * syntax.c: Likewise. + * term.c: Likewise. + * textprop.c: Likewise. + * undo.c: Likewise. + * unexsol.c: Likewise. + * w16select.c: Likewise. + * w32fns.c: Likewise. + * w32menu.c: Likewise. + * window.c: Likewise. + * xdisp.c: Likewise. + * xfns.c: Likewise. + * xmenu.c: Likewise. + * xml.c: Likewise. + * xselect.c: Likewise. + +2012-06-16 Eli Zaretskii + + * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end. + If all the glyphs of the glyph row came from strings, and we have no + cursor positioning clues, put the cursor on the first glyph of the + row. + (handle_face_prop): Use chunk-relative overlay string index when + indexing into it->string_overlays array. (Bug#11653) + (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not + the rightmost. (Bug#11720) + +2012-06-16 Andreas Schwab + + * category.h (CHAR_HAS_CATEGORY): Define as inline. + (CATEGORY_MEMBER): Enforce 1/0 value. + * category.c (_temp_category_set): Remove. + +2012-06-16 Eli Zaretskii * window.c (Fdelete_other_windows_internal) (Fdelete_window_internal): Don't access frame's mouse highlight info of the initial frame. (Bug#11677) -2012-08-12 Jan Djärv +2012-06-14 Paul Eggert + + * .gdbinit (xgetint): Fix recently-introduced paren typo. + Assume USE_2_TAGS_FOR_INTS. + (xreload): Adjust $tagmask width to match recent lisp.h change. + + Simplify lisp.h in minor ways that should not affect code. + * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined. + (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P) + (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number): + Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined. + (INTTYPEBITS): New macro, for clarity. + (INTMASK, MOST_POSITIVE_FIXNUM): Use it. + (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P): + Simplify now that USE_LSB_TAG is always defined. + (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast. + (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler. + +2012-06-13 Juanma Barranquero + + * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies. + +2012-06-13 Glenn Morris + + * s/bsd-common.h (BSD4_3): + * s/usg5-4-common.h (USG5_4): No longer define; unused. + +2012-06-13 Andreas Schwab + + * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct + instead of union. + (XLI, XIL): Define. + (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG): + Use them. + * emacs.c (gdb_use_struct): Rename from gdb_use_union. + * .gdbinit: Check gdb_use_struct instead of gdb_use_union. + * alloc.c (widen_to_Lisp_Object): Remove. + (mark_memory): Use XIL instead of widen_to_Lisp_Object. + * frame.c (delete_frame): Remove outdated comment. + * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking + USE_LISP_UNION_TYPE. + (Fw32_unregister_hot_key): Likewise. + (Fw32_toggle_lock_key): Likewise. + * w32menu.c (add_menu_item): Likewise. + (w32_menu_display_help): Use XIL instead of checking + USE_LISP_UNION_TYPE. + * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE. + (init_heap): Likewise. + * w32term.c (w32_read_socket): Update comment. + +2012-06-13 Glenn Morris + + * s/usg5-4-common.h, src/s/unixware.h: + Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04). + + * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04). + +2012-06-13 Paul Eggert + + USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604) + * alloc.c (make_number) [!defined make_number]: + Remove, as lisp.h always defines this now. + (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now. + (roundup_size): Verify that it is a power of 2. + * data.c (Fmake_variable_buffer_local, Fmake_local_variable): + * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO. + * lisp.h (USE_LSB_TAG): Allow the builder to compile with + -DUSE_LSB_TAG=0, to override the automatically-selected default. + USE_LSB_TAG now is always defined to be either 0 or 1. + All uses changed. + (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the + code works fine either way, and efficiency is not a concern here, + as the union type is for debugging, not for production. + (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]: + Use an inline function on all platforms when using the union type, + since this is simpler and 'static inline' can be used portably + within Emacs now. + (LISP_INITIALLY_ZERO): New macro. + (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove. + (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize. + +2012-06-12 Glenn Morris + + * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files. + + * s/gnu-linux.h (HAVE_PROCFS): Move to configure. + + * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h: + Move BROKEN_SIGIO to configure. + + * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h: + Move NO_TERMIO to configure. + +2012-06-12 Chong Yidong + + * image.c (imagemagick_load_image): Use MagickFlattenImage if + MagickMergeImageLayers is undefined. Use pixel pusher loop if + MagickExportImagePixels is undefined. + +2012-06-12 Paul Eggert + + * image.c (imagemagick_load_image): Remove unused label. + +2012-06-11 Glenn Morris + + * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h: + * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h: + * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h: + * s/usg5-4-common.h: Move SYSTEM_TYPE to configure. + +2012-06-11 Stefan Monnier + + * alloc.c (make_byte_code): New function. + (Fmake_byte_code): Use it. Don't purify here. + * lread.c (read1): Use it as well to avoid extra allocation. + +2012-06-11 Chong Yidong + + * image.c (imagemagick_load_image): Implement transparency. + +2012-06-10 Andreas Schwab + + * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly + account for preceding backslashes. (Bug#11663) + +2012-06-09 Chong Yidong + + * term.c: Support italics in capable terminals (Bug#9652). + (no_color_bit): Replace unused NC_BLINK with NC_ITALIC. + (turn_on_face): Output using TS_enter_italic_mode if available. + Don't handle unused blinking and alt-charset cases. + (turn_off_face): Handle italic case; discard unused tty_blinking_p + and tty_alt_charset_p cases. + (tty_capable_p, init_tty): Support italics. + + * termchar.h (struct tty_display_info): Add field for italics. + Remove unused blink field. + + * xfaces.c (tty_supports_face_attributes_p, realize_tty_face): + Handle slant. + + * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC. + (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and + tty_alt_charset_p. Add tty_italic_p. + +2012-06-09 Michael Albinus + + * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and + dbus_type_is_basic if available. + (xd_extract_signed, xd_extract_unsigned): Rename from + extract_signed and extract_unsigned, respectively. Adapt callers. + +2012-06-09 Chong Yidong + + * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066). + + * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive + case (Bug#9752). + +2012-06-08 Paul Eggert + + * xdisp.c (vmessage): Treat frame message as multibyte. + Without this change, (let ((§ 1)) (make-variable-buffer-local '§)) + would generate the diagnostic "Making \302\247 buffer-local while + let-bound!". + +2012-06-08 Eli Zaretskii + + * dispnew.c (showing_window_margins_p): Undo last change, which + was done due to an inadvertent commit. + (adjust_frame_glyphs_for_frame_redisplay): Do call + showing_window_margins_p. + +2012-06-08 Stefan Monnier + + * eval.c (Fmake_var_non_special): New primitive. + (syms_of_eval): Defsubr it. + * lread.c (syms_of_lread): Mark `values' as lexically scoped. + +2012-06-08 Juanma Barranquero + + * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused + function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org). + +2012-06-08 Eli Zaretskii + + * alloc.c (allocate_vectorlike): Fix last change. + +2012-06-08 Dmitry Antipov + + Block-based vector allocation of small vectors. + * lisp.h (struct vectorlike_header): New field `nbytes', + adjust comment accordingly. + * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK' + to denote vector blocks. Adjust users (live_vector_p, + mark_maybe_pointer, valid_lisp_object_p) accordingly. + (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG. + (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES), + (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX), + (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST), + (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros. + (roundup_size): New constant. + (struct vector_block): New data type. + (vector_blocks, vector_free_lists, zero_vector): New variables. + (all_vectors): Rename to `large_vectors'. + (allocate_vector_from_block, init_vectors, allocate_vector_from_block) + (sweep_vectors): New functions. + (allocate_vectorlike): Return `zero_vector' as the only vector of + 0 items. Allocate new vector from block if vector size is less than + or equal to VBLOCK_BYTES_MAX. + (Fgarbage_collect): Move all vector sweeping code to sweep_vectors. + (init_alloc_once): Add call to init_vectors. + +2012-06-08 Stefan Monnier + + * eval.c (Fmacroexpand): Stop if the macro returns the same form. + +2012-06-07 Paul Eggert - * nsterm.m (ns_read_socket): Return early if there is a modal - window (Bug#12043). + * doprnt.c (doprnt): Truncate multibyte char correctly. + Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP) + would mishandle a string argument "Xc" if X was a multibyte + character of length 2: it would truncate after X's first byte + rather than including all of X. - * nsmenu.m (Popdown_data): New struct. - (pop_down_menu): p->pointer is Popdown_data. Release the pool and - free Popdown_data. - (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu. - (initWithContentRect): Make imgView and contentView non-static - and autorelease them. Also autorelease img and matrix (Bug#12005). - (dealloc): Remove (Bug#12005). +2012-06-06 Chong Yidong - * nsterm.m (keyDown:): Interpret flags without left/right bits - as the left key (Bug#11670). + * buffer.c (word_wrap): Doc fix. - * nsmenu.m (ns_update_menubar): Add braces to ambigous if-else. +2012-06-04 Paul Eggert -2012-08-08 YAMAMOTO Mitsuharu + * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall. - * unexmacosx.c (copy_data_segment): Copy initialized data in - statically linked libraries from input file rather than memory. +2012-06-03 Glenn Morris -2012-08-07 YAMAMOTO Mitsuharu + * xdisp.c (tool-bar-style): Doc fix. - * unexmacosx.c (print_load_command_name): Add cases LC_MAIN, - LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS. - (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data. +2012-06-03 Ulrich Müller -2012-07-19 Chong Yidong + * Makefile.in (PAXCTL): Define. + (temacs$(EXEEXT)): Disable memory randomization for the temacs + binary via PaX flags if the paxctl utility is available. + (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): + Restore PaX flags to their default. (Bug#11398) - * window.c (Fwindow_absolute_pixel_edges) - (Fdelete_other_windows_internal): Signal an error if the window is - on a dead frame (Bug#11984). +2012-06-03 Chong Yidong -2012-07-14 Eli Zaretskii + * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte + buffer (Bug#11226). - Remove FILE_SYSTEM_CASE. - * s/msdos.h (FILE_SYSTEM_CASE): Don't define. +2012-06-03 Chong Yidong - * fileio.c (FILE_SYSTEM_CASE): Don't define. - (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE. - Fixes problems on MS-DOS with Vtemp_file_name_pattern when - call-process-region passes it through expand-file-name. + * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value. + (note_mode_line_or_margin_highlight): If there is no help echo, + use mode-line-default-help-echo. Handle the case where the mouse + position is past the end of the mode line string. - * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE. + * buffer.c (buffer_local_value_1): New function, split from + Fbuffer_local_value; can return Qunbound. + (Fbuffer_local_value): Use it. + (Vmode_line_format): Docstring tweaks. -2012-07-12 Andreas Schwab +2012-06-02 Paul Eggert - Fix crash when creating indirect buffer (Bug#11917) - * buffer.c (buffer_lisp_local_variables): Add argument CLONE. - Don't handle unbound variables specially if non-zero. - (Fbuffer_local_variables): Pass zero. - (clone_per_buffer_values): Pass non-zero. + * sysdep.c (system_process_attributes): Improve comment. -2012-06-28 Andreas Schwab +2012-06-02 Stefan Monnier - * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT - to make the loop interruptible. + * keyboard.c: Export real-this-command to Elisp. + (syms_of_keyboard): Rename real_this_command to Vreal_this_command + and DEFVAR it. Update all users. -2012-06-26 Andreas Schwab +2012-06-02 Paul Eggert - * gnutls.c (emacs_gnutls_handshake): Only retry if - GNUTLS_E_INTERRUPTED. + * minibuf.c (Fassoc_string): Remove duplicate declaration. -2012-06-23 Eli Zaretskii + * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]: + Convert pctcpu and pctmem to Lisp float properly. + Let the compiler fold better, as 100.0/0x8000 is exact. - * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko - in the logic of incrementing and decrementing the value of - use_relocatable_buffers. +2012-06-02 Andreas Schwab -2012-06-21 Glenn Morris + * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of + cons_block. - * charset.c (init_charset): Make lack of etc/charsets fatal. +2012-06-01 Paul Eggert -2012-06-11 Jan Djärv + * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change. - * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't - referenced (Bug#11583). +2012-06-01 Dmitry Antipov -2012-06-01 Chong Yidong + For a 'struct window', replace some Lisp_Object fields to + bitfields where appropriate, remove unused fields. + * window.h (struct window): Remove unused 'last_mark_x' and + 'last_mark_y' fields. Rename 'mini_p' field to 'mini', + change it's type from Lisp_Object to bitfield. + Change type of 'force_start', 'optional_new_start', + 'last_had_star', 'update_mode_line' and 'start_at_line_beg' + fields from Lisp_Object to bitfield. Adjust users accordingly. - * Version 24.1 released. +2012-05-31 Paul Eggert -2012-05-30 Eli Zaretskii + Pacify gcc -Wdouble-precision when using Xaw. + * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb) + [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]: + Use 'float' consistently, rather than 'float' in most places + and 'double' in a couple of places. + +2012-05-31 Eli Zaretskii * xdisp.c (handle_stop): Detect whether we have overlay strings loaded by testing it->current.overlay_string_index to be non-negative, instead of checking whether n_overlay_strings is positive. (Bug#11587) -2012-05-30 Chong Yidong +2012-05-31 Chong Yidong * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169). * doc.c (Fsubstitute_command_keys): Doc fix. -2012-05-29 Eli Zaretskii +2012-05-31 Eli Zaretskii * search.c (search_buffer): Remove calls to r_alloc_inhibit_buffer_relocation, as it is now called by maybe_unify_char, which was the cause of relocation of buffer text in bug#11519. -2012-05-23 Eli Zaretskii +2012-05-31 Eli Zaretskii * charset.c (maybe_unify_char): Inhibit relocation of buffer text for the duration of call to load_charset, to avoid problems with @@ -149,12 +6027,115 @@ decrement the inhibition flag, instead of just setting or resetting it. -2012-05-24 Ken Brown +2012-05-31 Paul Eggert + + Remove obsolete '#define static' cruft. + * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef. + This #undef was "temporary" in 2000; it is no longer needed + now that '#define static' has gone away. + * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height) + (gray_bitmap_bits): Remove; no longer needed. + All uses replaced with definiens. + * xterm.c: Include "bitmaps/gray.xbm". + +2012-05-30 Paul Eggert + + Clean up __executable_start, monstartup when --enable-profiling. + The following changes affect the code only when profiling. + * dispnew.c (__executable_start): Rename from safe_bcopy. + Define only on platforms that need it. + * emacs.c: Include when profiling. + (_mcleanup): Remove decl, since does it now. + (__executable_start): Remove decl, since lisp.h does it now. + (safe_bcopy): Remove decl; no longer has that name. + (main): Coalesce #if into single bit of code, for simplicity. + Cast pointers to uintptr_t, since standard libraries want integers + and not pointers. + * lisp.h (__executable_start): New decl. + +2012-05-31 Glenn Morris + + * image.c (Fimagemagick_types): Doc fix. + +2012-05-30 Jim Meyering + + * callproc.c (Fcall_process_region): Include directory component + in mkstemp error message (Bug#11586). + +2012-05-30 Paul Eggert + + * alloc.c, lisp.h (make_pure_vector): Now static. + +2012-05-30 Stefan Monnier + + * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function): + Move to byte-run.el. + (Fautoload): Do the hash-doc more carefully. + * data.c (Fdefalias): Purify definition, except for keymaps. + (Qdefun): Move from eval.c. + * lisp.h (Qdefun): Remove. + * lread.c (read1): Tiny simplification. + +2012-05-29 Troels Nielsen + + Do not create empty overlays with the evaporate property (Bug#9642). + * buffer.c (Fmove_overlay): Reinstate the earlier fix for + Bug#9642, but explicitly check that the buffer the overlay would + be moved to is live and rearrange lines to make sure that errors + will not put the overlay in an inconsistent state. + (Fdelete_overlay): Cosmetics. + +2012-05-28 Eli Zaretskii + + * w32term.c (my_bring_window_to_top): New function. + (x_raise_frame): Use handle returned by DeferWindowPos, which + could be different from the original one. + Call my_bring_window_to_top instead of my_set_foreground_window. + (Bug#11513) + + * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP + by calling BringWindowToTop. + + * w32term.h (WM_EMACS_BRINGTOTOP): New message. + (WM_EMACS_END): Increase by one. + +2012-05-28 Paul Eggert + + * bidi.c (bidi_mirror_char): Put eassert before conversion to int. + This avoids undefined behavior that might cause the eassert + to not catch an out-of-range value. + +2012-05-28 Juanma Barranquero + + * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)): + Update dependencies. + +2012-05-27 Eli Zaretskii + + * bidi.c (bidi_mirror_char): Fix last change. + +2012-05-27 Andreas Schwab + + * unexmacosx.c (copy_data_segment): Truncate after 16 characters + when referring to sectname field in printf format. + +2012-05-27 Paul Eggert + + * lisp.h [REL_ALLOC]: Omit duplicate prototypes. + Only r_alloc_inhibit_buffer_relocation needed to be added; + the others were already declared. + + * bidi.c (bidi_mirror_char): Don't possibly truncate the integer + before checking whether it's out of range. Put the check inside + eassert. See + . + +2012-05-27 Ken Brown * callproc.c (Fcall_process): Restore a line that was accidentally commented out in the 2011-02-13 change (bug#11547). -2012-05-23 Eli Zaretskii +2012-05-27 Eli Zaretskii * lisp.h [REL_ALLOC]: Add prototypes for external functions defined on ralloc.c. @@ -169,13 +6150,9 @@ text while re_search_2 is doing its job, because re_search_2 is passed C pointers to buffer text. (Bug#11519) -2012-05-21 Eli Zaretskii - * msdos.c (internal_terminal_init) : Update value to 24. -2012-05-19 Eli Zaretskii - * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator state after an additional call to move_it_in_display_line_to, keep the values of it->max_ascent and it->max_descent found for the @@ -184,11 +6161,991 @@ was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb. (Bug#11464) -2012-05-15 Eli Zaretskii +2012-05-26 Paul Eggert + + Fix coding-related core dumps with gcc -ftrapv. + The code was computing A - B, where A and B are pointers, and B is + random garbage. This can lead to core dumps on platforms that + have special pointer registers, and it also leads to core dumps on + x86-64 when compiled with gcc -ftrapv. The fix is to compute + A - B only when B is initialized properly. + * coding.c (coding_set_source, coding_set_destination): Return void. + (coding_change_source, coding_change_destinations): New functions, + with the old behaviors of coding_set_source and coding_set_destination. + All callers that need an offset changed to use these new functions. + +2012-05-26 Glenn Morris + + * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791) + +2012-05-26 Eli Zaretskii + + Extend mouse support on W32 text-mode console. + * xdisp.c (draw_row_with_mouse_face): + Call tty_draw_row_with_mouse_face for WINDOWSNT as well. + + * w32console.c: Include window.h. + (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face): + New functions. + (initialize_w32_display): Initialize mouse-highlight data. + + * w32inevt.c: Include termchar.h and window.h. + (do_mouse_event): Support mouse-autoselect-window. When the mouse + moves, call note_mouse_highlight. If help_echo changed, call + gen_help_event to produce help-echo message in the echo area. + Call clear_mouse_face if mouse_face_hidden is set in the mouse + highlight info. + +2012-05-26 Paul Eggert + + * lread.c (read1): Simplify slightly to avoid an overflow warning + with GCC 4.7.0 on x86-64. + +2012-05-26 Eli Zaretskii + + * bidi.c (bidi_mirror_char): Revert last change: an int is + definitely wide enough here. + +2012-05-25 Paul Eggert + + Fix integer width and related bugs (Bug#9874). + * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp): + (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE) + (string_bytes, check_sblock, allocate_string_data): + (compact_small_strings, Fmake_bool_vector, make_string) + (make_unibyte_string, make_multibyte_string) + (make_string_from_bytes, make_specified_string) + (allocate_vectorlike, Fmake_vector, find_string_data_in_pure) + (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy) + (mark_vectorlike): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (allocate_pseudovector): + Use int, not EMACS_INT, where int is wide enough. + (inhibit_garbage_collection, Fgarbage_collect): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where + int might not be wide enough. + (bidi_cache_search, bidi_cache_find, bidi_init_it) + (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char) + (bidi_at_paragraph_end, bidi_find_paragraph_start) + (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak) + (bidi_level_of_next_char, bidi_move_to_visually_next): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * buffer.c (copy_overlays, Fgenerate_new_buffer_name) + (Fkill_buffer, Fset_buffer_major_mode) + (advance_to_char_boundary, Fbuffer_swap_text) + (Fset_buffer_multibyte, overlays_at, overlays_in) + (overlay_touches_p, struct sortvec, record_overlay_string) + (overlay_strings, recenter_overlay_lists) + (adjust_overlays_for_insert, adjust_overlays_for_delete) + (fix_start_end_in_overlays, fix_overlays_before, modify_overlay) + (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change) + (Foverlay_recenter, last_overlay_modification_hooks_used) + (report_overlay_modification, evaporate_overlays, enlarge_buffer_text): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (validate_region): Omit unnecessary test for b <= e, + since that's guaranteed by the previous test. + (adjust_overlays_for_delete): Avoid pos + length overflow. + (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist) + (report_overlay_modification): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): + Omit pointer cast, which isn't needed anyway, and doesn't work + after the EMACS_INT -> ptrdiff_t change. + (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow. + * buffer.h: Adjust decls to match defn changes elsewhere. + (struct buffer_text, struct buffer): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + Use EMACS_INT, not int, where int might not be wide enough. + * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t, + not int, to avoid needless 32-bit limit on 64-bit hosts. + (exec_byte_code): Use tighter memory-full test, one that checks + for alloca overflow. Don't compute the address of the object just + before an array, as that's not portable. Use EMACS_INT, not + ptrdiff_t or int, where ptrdiff_t or int might not be wide enough. + * callint.c (Fcall_interactively): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * callproc.c (call_process_kill, Fcall_process): + Don't assume pid_t fits into an Emacs fixnum. + (call_process_cleanup, Fcall_process, child_setup): + Don't assume pid_t fits into int. + (call_process_cleanup, Fcall_process, delete_temp_file) + (Fcall_process_region): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (Fcall_process): Simplify handling of volatile integers. + Use int, not EMACS_INT, where int will do. + * casefiddle.c (casify_object, casify_region, operate_on_word) + (Fupcase_word, Fdowncase_word, Fcapitalize_word): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (casify_object): Avoid integer overflow when overallocating buffer. + * casetab.c (set_identity, shuffle): Prefer int to unsigned when + either works. Use lint_assume to convince GCC 4.6.1 that it's OK. + * category.c (Fchar_category_set): Don't assume fixnum fits in int. + * category.h (CATEGORYP): Don't assume arg is nonnegative. + * ccl.c (GET_CCL_INT): Remove; no longer needed, since the + integers are now checked earlier. All uses replaced with XINT. + (ccl_driver): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + For CCL_MapSingle, check that content and value are in int range. + (ccl_driver, Fregister_code_conversion_map): + Check that Vcode_version_map_vector is a vector. + (resolve_symbol_ccl_program): Check that vector header is in range. + Always copy the vector, so that we can check its contents reliably + now rather than having to recheck each instruction as it's being + executed. Check that vector words fit in 'int'. + (ccl_get_compiled_code, Fregister_ccl_program) + (Fregister_code_conversion_map): Use ptrdiff_t, not int, for + program indexes, to avoid needless 32-bit limit on 64-bit hosts. + (Fccl_execute, Fccl_execute_on_string): Check that initial reg + contents are in range. + (Fccl_execute_on_string): Check that status is in range. + * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int. + * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers): + Accept and return EMACS_INT, not int, because callers can pass values + out of 'int' range. + (c_string_width, strwidth, lisp_string_width, chars_in_text) + (multibyte_chars_in_text, parse_str_as_multibyte) + (str_as_multibyte, count_size_as_multibyte, str_to_multibyte) + (str_as_unibyte, str_to_unibyte, string_count_byte8) + (string_escape_byte8, Fget_byte): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to + avoid mishandling large integers. + * character.h: Adjust decls to match defn changes elsewhere. + * charset.c (load_charset_map_from_file, find_charsets_in_text) + (Ffind_charset_region): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (load_charset_map_from_file): Redo idx calculation to avoid overflow. + (load_charset_map_from_vector, Fdefine_charset_internal): + Don't assume fixnum fits in int. + (load_charset_map_from_vector, Fmap_charset_chars): + Remove now-unnecessary CHECK_NATNUMs. + (Fdefine_charset_internal): Check ranges here, more carefully. + Don't rely on undefined behavior with signed left shift overflow. + Don't assume unsigned int fits into fixnum, or that fixnum fits + into unsigned int. Don't require max_code to be a valid fixnum; + that's not true for gb10830 4-byte on a 32-bit host. Allow + invalid_code to be a cons, for the same reason. Require code_offset + to be a character. Avoid int overflow if max_char is close + to INT_MAX. + (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned; + this is intended anyway and avoids some undefined behavior. + (load_charset_map): Pass unsigned, not int, as 2nd arg of + INDEX_TO_CODE_POINT, as that's what it expects. + (Funify_charset, encode_char): Don't stuff unsigned vals into int vars. + * charset.h (DECODE_CHAR): Return int, not unsigned; + this is what was intended anyway, and it avoids undefined behavior. + (CHARSET_OFFSET): Remove unused macro, instead of fixing its + integer-overflow issues. + (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts. + Formerly, it returned EMACS_INT on 64-bit hosts in the common case + where the argument is EMACS_INT, and this behavior is not intended. + * chartab.c (Fmake_char_table, Fset_char_table_range) + (uniprop_get_decoder, uniprop_get_encoder): + Don't assume fixnum fits in int. + * cmds.c (move_point): New function, that does the gist of + Fforward_char and Fbackward_char, but does so while checking + for integer overflow more accurately. + (Fforward_char, Fbackward_char): Use it. + (Fforward_line, Fend_of_line, internal_self_insert) + (internal_self_insert): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + Fix a FIXME, by checking for integer overflow when calculating + target_clm and actual_clm. + * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR) + (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P) + (ASSURE_DESTINATION, coding_alloc_by_realloc) + (coding_alloc_by_making_gap, alloc_destination) + (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16) + (encode_coding_utf_16, detect_coding_emacs_mule) + (decode_coding_emacs_mule, encode_coding_emacs_mule) + (detect_coding_iso_2022, decode_coding_iso_2022) + (encode_invocation_designation, encode_designation_at_bol) + (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5) + (decode_coding_sjis, decode_coding_big5, encode_coding_sjis) + (encode_coding_big5, detect_coding_ccl, decode_coding_ccl) + (encode_coding_ccl, encode_coding_raw_text) + (detect_coding_charset, decode_coding_charset) + (encode_coding_charset, detect_eol, decode_eol, produce_chars) + (produce_composition, produce_charset, produce_annotation) + (decode_coding, handle_composition_annotation) + (handle_charset_annotation, consume_chars, decode_coding_gap) + (decode_coding_object, encode_coding_object, detect_coding_system) + (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region) + (code_convert_region, code_convert_string) + (Fdefine_coding_system_internal) + (coding_set_source, coding_set_destination): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (setup_iso_safe_charsets, consume_chars, Funencodable_char_position) + (Fdefine_coding_system_internal): + Don't assume fixnums fit in int. + (decode_coding_gap, decode_coding_object, encode_coding_object) + (Fread_coding_system, Fdetect_coding_region) + (Funencodable_char_position, Fcheck_coding_systems_region) + (get_translation, handle_composition_annotation, consume_chars): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (consume_chars): Rewrite to not calculate an address outside buffer. + (Ffind_operation_coding_system): NATNUMP can eval its arg twice. + Don't access memory outside of the args array. + (Fdefine_coding_system_internal): Check for charset-id overflow. + (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned + result of ENCODE_CHAR. + * coding.h: Adjust decls to match defn changes elsewhere. + (struct coding_system): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * composite.c (get_composition_id, find_composition) + (run_composition_function, update_compositions) + (compose_text, composition_gstring_put_cache) + (composition_gstring_p, composition_gstring_width) + (fill_gstring_header, fill_gstring_body, autocmp_chars) + (composition_compute_stop_pos, composition_reseat_it) + (composition_update_it, struct position_record) + (find_automatic_composition, composition_adjust_point) + (Fcomposition_get_gstring, Ffind_composition_internal): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (update_compositions): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * composite.h: Adjust decls to match defn changes elsewhere. + (struct composition): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p): + Do not attempt to compute the address of the object just before a + buffer; this is not portable. + (Faref, Faset): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Faset): Use int, not EMACS_INT, where int is wide enough. + (Fstring_to_number): Don't assume fixnums fit in int. + (Frem): Don't assume arg is nonnegative. + * dbusbind.c (xd_append_arg): Check for integers out of range. + (Fdbus_call_method): Don't overflow the timeout int. + (extract_signed, extract_unsigned): New functions. + (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned. + (xd_get_connection_references): Return ptrdiff_t, not int. + All uses changed. + (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal) + (xd_read_message_1): + Use int, not unsigned, where the dbus API uses int. + (Fdbus_message_internal): Don't overflow mtype. + (syms_of_dbusbind): Allocate right-sized buffer for integers. + * dired.c (directory_files_internal, file_name_completion, scmp) + (file_name_completion_stat): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (file_name_completion): Don't overflow matchcount. + (file_name_completion_stat): Use SAFE_ALLOCA, not alloca. + * dispextern.h: Adjust decls to match defn changes elsewhere. + (struct text_pos, struct glyph, struct bidi_saved_info) + (struct bidi_string_data, struct bidi_it, struct composition_it) + (struct it): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (struct display_pos, struct composition_it, struct it): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * dispnew.c (increment_matrix_positions) + (increment_row_positions, mode_line_string) + (marginal_area_string): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (duration_to_sec_usec): New function, to check for overflow better. + (Fsleep_for, sit_for): Use it. + * doc.c (get_doc_string, store_function_docstring): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (get_doc_string, Fsnarf_documentation): + Use int, not EMACS_INT, where int is wide enough. + (get_doc_string): + Use SAFE_ALLOCA, not alloca. + Check for overflow when converting EMACS_INT to off_t. + * doprnt.c (doprnt): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid): + Don't assume uid_t fits into fixnum. + (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field) + (Ffield_string, Ffield_string_no_properties, Ffield_beginning) + (Ffield_end, Fconstrain_to_field, Fline_beginning_position) + (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before) + (general_insert_function) + (Finsert_char, make_buffer_string, make_buffer_string_both) + (update_buffer_properties, Fbuffer_substring) + (Fbuffer_substring_no_properties, Fcompare_buffer_substrings) + (Fsubst_char_in_region, check_translation) + (Ftranslate_region_internal, save_restriction_restore, Fformat) + (transpose_markers, Ftranspose_regions): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (clip_to_bounds): Move to lisp.h as an inline function). + (Fconstrain_to_field): Don't assume integers are nonnegative. + (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer): + (Fsubst_char_in_region, Fsave_restriction): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (Femacs_pid): Don't assume pid_t fits into fixnum. + (lo_time): Use int, not EMACS_INT, when int suffices. + (lisp_time_argument): Check for usec out of range. + (Fencode_time): Don't assume fixnum fits in int. + (Fuser_login_name, Fuser_full_name): Signal an error + if a uid argument is out of range, rather than relying on + undefined behavior. + (Fformat_time_string): Remove now-unnecessary check. + lisp_time_argument checks for out-of-range usec now. + Use ptrdiff_t, not size_t, where ptrdiff_t will do. + * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT. + (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT. + (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT. + (init_cmdargs, Fdump_emacs): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (Fkill_emacs): Don't assume fixnum fits in int; instead, take just + the bottom (typically) 32 bits of the fixnum. + * eval.c (specpdl_size, call_debugger): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (when_entered_debugger, Fbacktrace_debug): + Don't assume fixnum can fit in int. + (Fdefvaralias, Fdefvar): Do not attempt to compute the address of + the object just before a buffer; this is not portable. + (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda) + (grow_specpdl, unbind_to): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum. + (grow_specpdl): Simplify allocation by using xpalloc. + (Fprog1, Fprog2): Don't assume list length fits in int. Simplify. + * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file) + (Finsert_file_contents, Fwrite_region, Fdo_auto_save): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents) + (a_write, e_write): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Fcopy_file, non_regular_nbytes, read_non_regular) + (Finsert_file_contents): + Use int, not EMACS_INT, where int is wide enough. + (READ_BUF_SIZE): Verify that it fits in int. + (Finsert_file_contents): Check that counts are in proper range, + rather than assuming fixnums fit into ptrdiff_t etc. + Don't assume fixnums fit into int. + * floatfns.c (Fexpt): Avoid undefined signed * signed overflow. + * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat) + (string_char_byte_cache_charpos, string_char_byte_cache_bytepos) + (string_char_to_byte, string_byte_to_char) + (string_make_multibyte, string_to_multibyte) + (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte) + (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties) + (substring_both, Fdelete, internal_equal, Ffillarray) + (Fclear_string, mapcar1) + (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1) + (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1) + (larger_vector, make_hash_table, maybe_resize_hash_table) + (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table) + (Fmaphash, secure_hash): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (concat): Check for string index and length overflow. + (Fmapconcat): Don't assume fixnums fit into ptrdiff_t. + (Frequire): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (larger_vector): New API (vec, incr_min, size_max) replaces old + one (vec, new_size, init). This catches size overflow. + INIT was removed because it was always Qnil. + All callers changed. + (INDEX_SIZE_BOUND): New macro, which calculates more precisely + the upper bound on a hash table index size. + (make_hash_table, maybe_resize_hash_table): Use it. + (secure_hash): Computer start_byte and end_byte only after + they're known to be in ptrdiff_t range. + * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring) + (Ffont_get_glyphs, Ffont_at): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (font_style_to_value, font_prop_validate_style, font_expand_wildcards) + (Flist_fonts, Fopen_font): + Don't assume fixnum can fit in int. + (check_gstring): Don't assume index can fit in int. + (font_match_p): Check that fixnum is a character, not a nonnegative + fixnum, since the later code needs to stuff it into an int. + (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca. + (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid + conversion overflow issues. + (Fopen_font): Check for integer out of range. + (Ffont_get_glyphs): Don't assume index can fit in int. + * font.h: Adjust decls to match defn changes elsewhere. + * fontset.c (reorder_font_vector): Redo score calculation to avoid + integer overflow. + (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not + printmax_t, where ptrdiff_t is wide enough. + (Finternal_char_font): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * frame.c (Fset_mouse_position, Fset_mouse_pixel_position) + (Fset_frame_height, Fset_frame_width, Fset_frame_size) + (Fset_frame_position, x_set_frame_parameters) + (x_set_line_spacing, x_set_border_width) + (x_set_internal_border_width, x_set_alpha, x_figure_window_size): + Check that fixnums are in proper range for system types. + (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Fmodify_frame_parameters): Don't assume fixnum fits in int. + Use SAFE_ALLOCA_LISP, not alloca. + * frame.h (struct frame): Use intptr_t, not EMACS_INT, where + intptr_t is wide enough. + * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap) + (Fdefine_fringe_bitmap): Don't assume fixnum fits in int. + (Ffringe_bitmaps_at_pos): Don't assume index fits in int. + Check for fixnum out of range. + * ftfont.c (ftfont_list): Don't assume index fits in int. + Check that fixnums are in proper range for system types. + (ftfont_shape_by_flt): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot): + Check that fixnums are in proper range for system types. + * gnutls.h: Adjust decls to match defn changes elsewhere. + * gtkutil.c (xg_dialog_run): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (update_frame_tool_bar): + Check that fixnums are in proper range for system types. + * image.c (parse_image_spec): Redo count calculation to avoid overflow. + (lookup_image): Check that fixnums are in range for system types. + * indent.c (last_known_column, last_known_column_point): + (current_column_bol_cache): + (skip_invisible, current_column, check_display_width): + (check_display_width, scan_for_column, current_column_1) + (Findent_to, Fcurrent_indentation, position_indentation) + (indented_beyond_p, Fmove_to_column, compute_motion): + (Fcompute_motion, Fvertical_motion): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (last_known_column_modified): Use EMACS_INT, not int. + (check_display_width): + (Fcompute_motion): + Check that fixnums and floats are in proper range for system types. + (compute_motion): Don't assume index or fixnum fits in int. + (compute_motion, Fcompute_motion): + Use int, not EMACS_INT, when it is wide enough. + (vmotion): Omit local var start_hpos that is always 0; that way + we don't need to worry about overflow in expressions involving it. + * indent.h: Adjust decls to match defn changes elsewhere. + (struct position): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + Use int, not EMACS_INT, where int is wide enough. + Remove unused members ovstring_chars_done and tab_offset; + all uses removed. + * insdel.c (move_gap, move_gap_both, gap_left, gap_right) + (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point) + (adjust_markers_for_replace, make_gap_larger, make_gap_smaller) + (make_gap, copy_text, insert, insert_and_inherit) + (insert_before_markers, insert_before_markers_and_inherit) + (insert_1, count_combining_before, count_combining_after) + (insert_1_both, insert_from_string) + (insert_from_string_before_markers, insert_from_string_1) + (insert_from_gap, insert_from_buffer, insert_from_buffer_1) + (adjust_after_replace, adjust_after_insert, replace_range) + (replace_range_2, del_range, del_range_1, del_range_byte) + (del_range_both, del_range_2, modify_region) + (prepare_to_modify_buffer, signal_before_change) + (signal_after_change, Fcombine_after_change_execute): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * intervals.c (traverse_intervals, rotate_right, rotate_left) + (balance_an_interval, split_interval_right, split_interval_left) + (find_interval, next_interval, update_interval) + (adjust_intervals_for_insertion, delete_node, delete_interval) + (interval_deletion_adjustment, adjust_intervals_for_deletion) + (static_offset_intervals, offset_intervals) + (merge_interval_right, merge_interval_left, make_new_interval) + (graft_intervals_into_buffer, temp_set_point_both) + (temp_set_point, set_point, adjust_for_invis_intang) + (set_point_both, move_if_not_intangible, get_property_and_range) + (get_local_map, copy_intervals, copy_intervals_to_string) + (compare_string_intervals, set_intervals_multibyte_1): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * intervals.h: Adjust decls to match defn changes elsewhere. + (struct interval): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * keyboard.c (this_command_key_count, this_single_command_key_start) + (before_command_key_count, before_command_echo_length, echo_now) + (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse) + (command_loop_1, safe_run_hooks, read_char, timer_check_2) + (menu_item_eval_property, read_key_sequence, Fread_key_sequence) + (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (last_non_minibuf_size, last_point_position, echo_truncate) + (command_loop_1, adjust_point_for_property, read_char, gen_help_event) + (make_lispy_position, make_lispy_event, parse_modifiers_uncached) + (parse_modifiers, modify_event_symbol, Fexecute_extended_command) + (stuff_buffered_input): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (last_auto_save, command_loop_1, read_char): + Use EMACS_INT, not int, to avoid integer overflow. + (record_char): Avoid overflow in total_keys computation. + (parse_modifiers_uncached): Redo index calculation to avoid overflow. + * keyboard.h: Adjust decls to match defn changes elsewhere. + * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1) + (Fkey_description, Fdescribe_vector, Flookup_key): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (click_position): New function, to check that positions are in range. + (Fcurrent_active_maps): + (describe_command): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Faccessible_keymaps, Fkey_description): + (preferred_sequence_p): + Don't assume fixnum can fit into int. + (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca. + Check for integer overflow in size calculations. + (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to + avoid mishandling large integers. + * lisp.h: Adjust decls to match defn changes elsewhere. + (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String) + (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table) + (struct Lisp_Marker): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (clip_to_bounds): Now an inline function, moved here from editfns.c. + (GLYPH_CODE_P): Check for overflow in system types, subsuming the + need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves. + All callers changed. + (GLYPH_CODE_CHAR, GLYPH_CODE_FACE): + Assume the arg has valid form, since it always does. + (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide + unsigned integer system type. + (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros. + (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum. + (duration_to_sec_usec): New decl. + * lread.c (read_from_string_index, read_from_string_index_byte) + (read_from_string_limit, readchar, unreadchar, openp) + (read_internal_start, read1, oblookup): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Fload, readevalloop, Feval_buffer, Feval_region): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (openp): Check for out-of-range argument to 'access'. + (read1): Use int, not EMACS_INT, where int is wide enough. + Don't assume fixnum fits into int. + Fix off-by-one error that can read outside a buffer. + (read_filtered_event): Use duration_to_sec_usec + to do proper overflow checking on durations. + * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow + in size calculation. + (Fexecute_kbd_macro): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * marker.c (cached_charpos, cached_bytepos, CONSIDER) + (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos) + (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted) + (set_marker_both, set_marker_restricted_both, marker_position) + (marker_byte_position, Fbuffer_has_markers_at): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int. + * menu.c (ensure_menu_items): Rename from grow_menu_items. + It now merely ensures that the menu is large enough, without + necessarily growing it, as this avoids some integer overflow issues. + All callers changed. + (keymap_panes, parse_single_submenu, Fx_popup_menu): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int. + Use SAFE_ALLOCA_LISP, not alloca. + (find_and_return_menu_selection): Avoid unnecessary casts of pointers + to EMACS_INT. Check that fixnums are in proper range for system types. + * minibuf.c (minibuf_prompt_width, string_to_object) + (Fminibuffer_contents, Fminibuffer_contents_no_properties) + (Fminibuffer_completion_contents, Ftry_completion, Fall_completions): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (get_minibuffer, read_minibuf_unwind): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil; + this simplifies overflow checking. All callers changed. + (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions) + (Ftest_completion): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long. + (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame): + Check that fixnums are in proper range for system types. + (Fx_create_frame, Fx_show_tip): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * nsfont.m (ns_findfonts, nsfont_list_family): + Don't assume fixnum fits in long. + * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is + wide enough. + * nsselect.m (ns_get_local_selection, clean_local_selection_data): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte) + (PRINTDECLARE, PRINTPREPARE): + (strout, print_string): + (print, print_preprocess, print_check_string_charset_prop) + (print_object): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (PRINTDECLARE): + (temp_output_buffer_setup, Fprin1_to_string, print_object): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough. + (printchar, strout): Use xpalloc to catch size calculation overflow. + (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion. + (print_error_message): Use SAFE_ALLOCA, not alloca. + (print_object): Use int, not EMACS_INT, where int is wide enough. + (print_depth, new_backquote_output, print_number_index): + Use ptrdiff_t, not int, where int might not be wide enough. + * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT. + (Fset_process_window_size, Fformat_network_address) + (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process) + (sigchld_handler): + Check that fixnums are in proper range for system types. + (Fsignal_process): Simplify by avoiding a goto. + Check for process-ids out of pid_t range rather than relying on + undefined behavior. + (process_tick, update_tick): Use EMACS_INT, not int. + (Fformat_network_address, read_process_output, send_process) + (Fprocess_send_region, status_notify): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Fformat_network_address, Fmake_serial_process, Fmake_network_process) + (wait_reading_process_output, read_process_output, exec_sentinel): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (conv_lisp_to_sockaddr): Don't assume fixnums fit into int. + (Faccept_process_output): Use duration_to_sec_usec to do proper + overflow checking on durations. + (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal): + Don't assume pid_t fits in int. + * process.h (struct Lisp_Process): Members tick and update_tick + are now of type EMACS_INT, not int. + * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts + configured --with-wide-int. + * scroll.c (calculate_scrolling, calculate_direct_scrolling) + (line_ins_del): Use int, not EMACS_INT, where int is wide enough. + * search.c (looking_at_1, string_match_1): + (fast_string_match, fast_c_string_match_ignore_case) + (fast_string_match_ignore_case, fast_looking_at, scan_buffer) + (scan_newline, find_before_next_newline, search_command) + (trivial_regexp_p, search_buffer, simple_search, boyer_moore) + (set_search_regs, wordify): + (Freplace_match): + (Fmatch_data): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (string_match_1, search_buffer, set_search_regs): + (Fmatch_data): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (wordify): Check for overflow in size calculation. + (Freplace_match): Avoid potential buffer overflow in search_regs.start. + (Fset_match_data): Don't assume fixnum fits in ptrdiff_t. + Check that fixnums are in proper range for system types. + * sound.c (struct sound_device) + (wav_play, au_play, vox_write, alsa_period_size, alsa_write): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Fplay_sound_internal): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * syntax.c (struct lisp_parse_state, find_start_modiff) + (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward): + (Fparse_partial_sexp): + Don't assume fixnums can fit in int. + (struct lisp_parse_state, find_start_pos, find_start_value) + (find_start_value_byte, find_start_begv) + (update_syntax_table, char_quoted, dec_bytepos) + (find_defun_start, prev_char_comend_first, back_comment): + (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment) + (scan_lists, Fbackward_prefix_chars, scan_sexps_forward): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Finternal_describe_syntax_value): Check that match_lisp is a + character, not an integer, since the code stuffs it into int. + (scan_words, scan_sexps_forward): + Check that fixnums are in proper range for system types. + (Fforward_word): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (scan_sexps_forward): + Use CHARACTERP, not INTEGERP, since the value must fit into int. + (Fparse_partial_sexp): Fix doc; element 8 is not ignored. + * syntax.h: Adjust decls to match defn changes elsewhere. + (struct gl_state_s): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not + MOST_POSITIVE_FIXNUM. + * sysdep.c (wait_for_termination_1, wait_for_termination) + (interruptible_wait_for_termination, mkdir): + Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit. + (emacs_read, emacs_write): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT, + and double all fit in int. + * term.c (set_tty_color_mode): + Check that fixnums are in proper range for system types. + * termhooks.h (struct input_event): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * textprop.c (validate_interval_range, interval_of) + (Fadd_text_properties, set_text_properties_1) + (Fremove_text_properties, Fremove_list_of_text_properties) + (Ftext_property_any, Ftext_property_not_all) + (copy_text_properties, text_property_list, extend_property_ranges) + (verify_interval_modification): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Fnext_single_char_property_change) + (Fprevious_single_char_property_change): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (copy_text_properties): + Check for integer overflow in index calculation. + * undo.c (last_boundary_position, record_point, record_insert) + (record_delete, record_marker_adjustment, record_change) + (record_property_change): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int. + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip) + (Fx_hide_tip, Fx_file_dialog): + * w32menu.c (set_frame_menubar): + Use ptrdiff_t, not int, for consistency with rest of code. + * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos) + (select_window, Fdelete_other_windows_internal) + (window_scroll_pixel_based, window_scroll_line_based) + (Frecenter, Fset_window_configuration): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (Fset_window_hscroll, run_window_configuration_change_hook) + (set_window_buffer, temp_output_buffer_show, scroll_command) + (Fscroll_other_window, Frecenter): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right): + Don't assume fixnum fits in int. + (Fset_window_scroll_bars): + Check that fixnums are in proper range for system types. + * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead) + (string_pos, c_string_pos, number_of_chars, init_iterator) + (in_ellipses_for_invisible_text_p, init_from_display_pos) + (compute_stop_pos, next_overlay_change, compute_display_string_pos) + (compute_display_string_end, handle_face_prop) + (face_before_or_after_it_pos, handle_invisible_prop) + (handle_display_prop, handle_display_spec, handle_single_display_spec) + (display_prop_intangible_p, string_buffer_position_lim) + (string_buffer_position, handle_composition_prop, load_overlay_strings) + (get_overlay_strings_1, get_overlay_strings) + (iterate_out_of_display_property, forward_to_next_line_start) + (back_to_previous_visible_line_start, reseat, reseat_to_string) + (get_next_display_element, set_iterator_to_next) + (get_visually_first_element, compute_stop_pos_backwards) + (handle_stop_backwards, next_element_from_buffer) + (move_it_in_display_line_to, move_it_in_display_line) + (move_it_to, move_it_vertically_backward, move_it_by_lines) + (add_to_log, message_dolog, message_log_check_duplicate) + (message2, message2_nolog, message3, message3_nolog + (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1) + (current_message_1, truncate_echo_area, truncate_message_1) + (set_message, set_message_1, store_mode_line_noprop) + (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos) + (text_outside_line_unchanged_p, check_point_in_composition) + (reconsider_clip_changes) + (redisplay_internal, set_cursor_from_row, try_scrolling) + (try_cursor_movement, set_vertical_scroll_bar, redisplay_window) + (redisplay_window, find_last_unchanged_at_beg_row) + (find_first_unchanged_at_end_row, row_containing_pos, try_window_id) + (trailing_whitespace_p, find_row_edges, display_line) + (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction) + (display_mode_element, store_mode_line_string) + (pint2str, pint2hrstr, decode_mode_spec) + (display_count_lines, display_string, draw_glyphs) + (x_produce_glyphs, x_insert_glyphs) + (rows_from_pos_range, mouse_face_from_buffer_pos) + (fast_find_string_pos, mouse_face_from_string_pos) + (note_mode_line_or_margin_highlight, note_mouse_highlight): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (safe_call, init_from_display_pos, handle_fontified_prop) + (handle_single_display_spec, load_overlay_strings) + (with_echo_area_buffer, setup_echo_area_for_printing) + (display_echo_area, echo_area_display) + (x_consider_frame_title, prepare_menu_bars, update_menu_bar) + (update_tool_bar, hscroll_window_tree, redisplay_internal) + (redisplay_window, dump_glyph_row, display_mode_line) + (Fformat_mode_line, decode_mode_spec, on_hot_spot_p): + (handle_display_spec, display_prop_string_p): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (handle_single_display_spec, build_desired_tool_bar_string) + (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix) + (get_specified_cursor_type): + Check that fixnums are in proper range for system types. + (struct overlay_entry, resize_mini_window, Fdump_glyph_row) + (Flookup_image_map): + Don't assume fixnums fit in int. + (compare_overlay_entries): + Avoid mishandling comparisons due to subtraction overflow. + (load_overlay_strings): Use SAFE_NALLOCA, not alloca. + (last_escape_glyph_face_id, last_glyphless_glyph_face_id): + (handle_tool_bar_click): + Use int, not unsigned, since we prefer signed and the signedness + doesn't matter here. + (get_next_display_element, next_element_from_display_vector): + Use int, not EMACS_INT, when int is wide enough. + (start_hourglass): Use duration_to_sec_usec to do proper + overflow checking on durations. + * xfaces.c (Fbitmap_spec_p): + Check that fixnums are in proper range for system types. + (compare_fonts_by_sort_order): + Avoid mishandling comparisons due to subtraction overflow. + (Fx_family_fonts, realize_basic_faces): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (Fx_family_fonts): + Don't assume fixnum fits in int. + Use SAFE_ALLOCA_LISP, not alloca. + (merge_face_heights): Remove unnecessary cast to EMACS_INT. + (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID. + (face_at_buffer_position, face_for_overlay_string) + (face_at_string_position): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + (merge_faces): Use int, not EMACS_INT, where int is wide enough. + * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify) + (Fx_show_tip): + Check that fixnums are in proper range for system types. + (Fx_create_frame, x_create_tip_frame, Fx_show_tip) + (Fx_hide_tip, Fx_file_dialog, Fx_select_font): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (Fx_change_window_property): Don't assume fixnums fit in int. + * xfont.c (xfont_chars_supported): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * xmenu.c (Fx_popup_dialog, set_frame_menubar) + (create_and_show_popup_menu, create_and_show_dialog, xmenu_show): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * xml.c (parse_region): + * xrdb.c (magic_file_p): + Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough. + * xselect.c (TRACE1): Don't assume pid_t promotes to int. + (x_get_local_selection, x_reply_selection_request) + (x_handle_selection_request, wait_for_property_change): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + (selection_data_to_lisp_data): Use short, not EMACS_INT, where + short is wide enough. + (x_send_client_event): Don't assume fixnum fits in int. + * xterm.c (x_x_to_emacs_modifiers): + Don't assume EMACS_INT overflows nicely into int. + (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values + may come from Lisp. + (handle_one_xevent): NATNUMP can eval its arg twice. + (x_connection_closed): + Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts. + * xterm.h: Adjust decls to match defn changes elsewhere. + (struct scroll_bar): Use struct vectorlike_header + rather than rolling our own approximation. + (SCROLL_BAR_VEC_SIZE): Remove; not used. + +2012-05-25 Glenn Morris + + * lisp.mk (lisp): Update for more files being compiled now. + +2012-05-25 Stefan Monnier + + * lread.c: Remove `read_pure' which makes no difference. + (read_pure): Remove var. + (unreadpure): Remove function. + (readevalloop): Don't call read_list with -1 flag. + (read1, read_vector): Don't test read_pure any more. + (read_list): Simplify. + + * fileio.c, character.h: Minor style tweaks. + +2012-05-24 Dmitry Antipov + + * window.h (clip_changed): Remove useless declaration. + +2012-05-22 Juanma Barranquero + + * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu. + (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h. + +2012-05-22 Paul Eggert + + Remove src/m/*. + This directory predates autoconf and is no longer needed nowadays. + Move its few remaining bits of functionality to where they're needed. + * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h: + * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h: + * m/template.h: Remove. + * Makefile.in (M_FILE): Remove. All uses removed. + * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): + * lisp.h (USE_LSB_TAG): + * mem-limits.h (EXCEEDS_LISP_PTR): + Use VAL_MAX, not VALBITS, in #if. + * lisp.h (EMACS_INT_MAX): New macro, useful in #if. + (EMACS_UINT): Define unconditionally now. + (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG) + (BITS_PER_EMACS_INT): New constants, replacing + what used to be in config.h, but not useful in #if. + (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't + define them any more. + (VAL_MAX): New macro. + (VALMASK): Use it. + * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not + BITS_PER_EMACS_INT, in #if. + * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY) + (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed. + * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]: + * s/ms-w32.h (DATA_START): + Move here from removed file m/intel386.h. + * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this. + * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this. + +2012-05-21 Paul Eggert + + Assume C89 or later. + * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void. + * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc) + (xrealloc): + * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts. + * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL): + * textprop.c, tparam.c (NULL): Remove. + * ralloc.c, vm-limit.c (POINTER): Assume void * works. + * regex.c (SIGN_EXTEND_CHAR): Assume signed char works. + * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes. + * unexelf.c (ElfBitsW): Assume c89 preprocessor or better. + * xterm.c (input_signal_count): Assume volatile works. + +2012-05-21 Ken Brown + + * xgselect.c (xg_select): Fix first argument in call to 'select' + (bug#11508). + +2012-05-20 Ken Brown + + * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock) + [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase. + +2012-05-19 Ken Brown + + * xfns.c (x_in_use): Remove `static' qualifier. + * xterm.h (x_in_use): Declare. + * xgselect.c: Include xterm.h. + (xg_select): Test `x_in_use' instead of `inhibit_window_system' + and `display_arg' (bug#9754). + +2012-05-19 Paul Eggert + + * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed. - * xdisp.c (pos_visible_p): Fix last change. (Bug#11464) + * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed. + * s/ms-w32.h (HAVE_FTIME): Remove; not needed. -2012-05-13 Eli Zaretskii +2012-05-18 Eli Zaretskii + + Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows. + + * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font. + (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c. + + * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken + reference to image_cache->refcount. + (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE. + +2012-05-17 Juri Linkov + + * search.c (Fword_search_regexp, Fword_search_backward) + (Fword_search_forward, Fword_search_backward_lax) + (Fword_search_forward_lax): Move functions to isearch.el + (bug#10145, bug#11381). + +2012-05-16 Paul Eggert + + * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754). + +2012-05-15 Stefan Monnier + + * lread.c (init_obarray): Declare Qt and Qnil as special. + +2012-05-14 Glenn Morris + + * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec"). + Put "libexec" before "bin", for the sake of init_callproc_1. + +2012-05-14 Paul Eggert + + * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local. + + * unexaix.c: Port to more-recent AIX compilers. + (report_error, report_error_1, make_hdr, copy_sym) + (mark_x, adjust_lnnoptrs, unrelocate_symbols): + Make arguments const char *, not char *, to avoid violations of C + standard and to fix some AIX warnings reported by Gilles Pion. + +2012-05-14 Eli Zaretskii * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we already have overlays loaded. @@ -208,22 +7165,95 @@ stopped at the last line of window, which happens to be scanned backwards by the bidi iteration. (Bug#11464) -2012-05-11 Eli Zaretskii +2012-05-14 Eli Zaretskii * xdisp.c (handle_single_display_spec): Return 1 for left-margin and right-margin display specs even if the spec is invalid or we - are on a TTY, and thus unable to display on the fringes. That's - because the text with the property will not be displayed anyway, + are on a TTY, and thus unable to display on the fringes. + That's because the text with the property will not be displayed anyway, so we need to signal to the caller that this is a "replacing" display spec. This fixes display when the spec is invalid or we are on a TTY. -2012-05-09 Paul Eggert +2012-05-14 Paul Eggert * unexaix.c (make_hdr): Fix typo in prototype. This bug broke the build on AIX. Problem reported by Gilles Pion. -2012-05-05 Eli Zaretskii +2012-05-14 Michael Albinus + + * keyboard.c (kbd_buffer_get_event): Read special events also in + batch mode. (Bug#11415) + +2012-05-12 Glenn Morris + + * ns.mk: Update for ns_appbindir no longer having trailing "/". + +2012-05-12 Eli Zaretskii + + * lisp.mk (lisp): Add newcomment.elc. + +2012-05-12 Glenn Morris + + * Makefile.in (MKDIR_P): New, set by configure. + * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P. + +2012-05-11 Paul Eggert + + Remove unused function hourglass_started. + * dispextern.h (hourglass_started): + * w32fns.c (hourglass_started): + * xdisp.c (hourglass_started): Remove. + +2012-05-10 Juanma Barranquero + + * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)): + Update dependencies. + +2012-05-10 Paul Eggert + + * xgselect.c (xg_select): Put maxfds+1 into a var. + This is slightly clearer, and pacifies Ubuntu 12.04 gcc. + + * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA. + +2012-05-10 Dave Abrahams + + * filelock.c (syms_of_filelock): New boolean create-lockfiles. + (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227) + +2012-05-09 Michael Albinus + + * dbusbind.c (xd_registered_buses): New internal Lisp object. + Rename all occurences of Vdbus_registered_buses to xd_registered_buses. + (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses. + Initialize xd_registered_buses. + +2012-05-09 Paul Eggert + + Untag more efficiently if USE_LSB_TAG. + This is based on a proposal by YAMAMOTO Mitsuharu in + . + For an admittedly artificial (nth 8000 longlist) benchmark on + Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks + Emacs's overall text size by 1%. + * lisp.h (XUNTAG): New macro. + (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW) + (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR) + (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it. + * eval.c (Fautoload): + * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT): + * frame.h (XFRAME): Use XUNTAG. + + Port recent dbusbind.c changes to 32-bit --with-wide-int. + * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal): + Remove unportable assumptions about print widths of types like + dbus_uint32_t. + (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to + intptr_t when converting between pointer and integer, to avoid GCC + warnings about wrong width. + +2012-05-09 Eli Zaretskii * w32proc.c (new_child): Force Windows to reserve only 64KB of stack for each reader_thread, instead of defaulting to 8MB @@ -231,22 +7261,124 @@ subprocesses on Windows 7, see the discussion in this thread: http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html. -2012-05-02 Jim Meyering +2012-05-07 Jérémy Compostella + + Fix up display of the *Minibuf-0* buffer in the mini window. + * keyboard.c (read_char): Don't clear the echo area if there's no + message to clear. + * xdisp.c (redisplay_internal): Redisplay the mini window (with the + contents of *Minibuf-0*) if there's no message displayed in its stead. + +2012-05-07 Michael Albinus + + * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in + batch mode. + +2012-05-06 Chong Yidong + + * lisp.mk (lisp): Update. + +2012-05-05 Jim Meyering * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372). -2012-04-29 Eli Zaretskii +2012-05-04 Stefan Monnier + + * data.c (PUT_ERROR): New macro. + (syms_of_data): Use it. Add new error type `user-error'. + * undo.c (user_error): New function. + (Fprimitive_undo): Use it. + * print.c (print_error_message): Adjust print style for `user-error'. + * keyboard.c (user_error): New function. + (Fexit_recursive_edit, Fabort_recursive_edit): Use it. + +2012-05-03 Paul Eggert + + Do not limit current-time-string to years 1000..9999. + * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove. + (Fcurrent_time_string): Support any year that is supported by the + underlying localtime representation. Don't use asctime, as it + has undefined behavior for years outside the range -999..9999. + +2012-05-02 Paul Eggert + + Fix race conditions involving setenv, gmtime, localtime, asctime. + Without this fix, interrupts could mess up code that uses these + nonreentrant functions, since setting TZ invalidates existing + tm_zone or tzname values, and since most of these functions return + pointers to static storage. + * editfns.c (format_time_string, Fdecode_time, Fencode_time) + (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule): + Grow the critical sections to include not just invoking + localtime/gmtime, but also accessing these functions' results + including their tm_zone values if any, and any related TZ setting. + (format_time_string): Last arg is now struct tm *, not struct tm **, + so that the struct tm is saved in the critical section. + All callers changed. Simplify allocation of initial buffer, partly + motivated by the fact that memory allocation needs to be outside + the critical section. + +2012-05-02 Dmitry Antipov + + * intervals.c (adjust_intervals_for_insertion): Initialize `newi' + with RESET_INTERVAL. + + * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): + Remove duplicated buffer name initialization. + +2012-05-02 Jim Meyering + + * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373). + + * xfns.c (x_window): Use xstrdup (Bug#11375). + +2012-05-02 Eli Zaretskii * xdisp.c (pos_visible_p): If already at a newline from the display string before the 'while' loop, don't walk back the glyphs from it3.glyph_row. Solves assertion violation when the display string begins with a newline (egg.el). (Bug#11367) -2012-04-24 Chong Yidong +2012-05-01 Stefan Monnier + + * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings): + Move to simple.el. + +2012-05-01 Glenn Morris + + * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in + s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h), + and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10). + All were removed before 23.1. + + * dispnew.c: Remove HAVE_LIBNCURSES test; + it is always true on relevant platforms. + + * Makefile.in (LD_SWITCH_X_SITE_RPATH): + Rename from LD_SWITCH_X_SITE_AUX_RPATH. + + * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used. + +2012-04-30 Andreas Schwab + + * .gdbinit (xpr): Remove checks for no longer existing misc types. + (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal): + Remove. + +2012-04-28 Paul Eggert + + Do not avoid creating empty evaporating overlays (Bug#9642). + * buffer.c (Fmove_overlay): Revert the change of 2012-04-23. + That is, do not delete an evaporating overlay if it becomes + empty after its bounds are adjusted to fit within its buffer. + This fix caused other problems, and I'm reverting it until we get + to the bottom of them. + +2012-04-27 Chong Yidong * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315). -2012-04-23 Eli Zaretskii +2012-04-27 Eli Zaretskii * xdisp.c (pos_visible_p): If the window start position is beyond ZV, start the display from buffer beginning. Prevents assertion @@ -255,47 +7387,372 @@ * window.c (window_scroll_pixel_based): Likewise. -2012-04-23 Chong Yidong +2012-04-27 Chong Yidong * keymap.c (where_is_internal): Doc fix (Bug#10872). -2012-04-20 Glenn Morris +2012-04-27 Glenn Morris * fileio.c (Fcopy_file, Fset_file_selinux_context): Ignore ENOTSUP failures from setfilecon functions. (Bug#11245) -2012-04-20 Eli Zaretskii +2012-04-27 Eli Zaretskii - * dispnew.c (swap_glyph_pointers, copy_row_except_pointers): Don't - overrun array limits of glyph row's used[] array. (Bug#11288) + * dispnew.c (swap_glyph_pointers, copy_row_except_pointers): + Don't overrun array limits of glyph row's used[] array. (Bug#11288) + +2012-04-26 Eli Zaretskii + + * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded + display element, check also the underlying string or buffer + character. (Bug#11341) + + * w32menu.c: Include w32heap.h. + (add_menu_item): If the call to AppendMenuW (via + unicode_append_menu) fails, disable Unicode menus only if we are + running on Windows 9X/Me. + +2012-04-24 Andreas Schwab + + * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS. + (xgetint): Add missing shift for LSB tags. + +2012-04-24 Martin Rudalics + + * keyboard.c (read_char): Don't wipe echo area for select window + events: These might get delayed via `mouse-autoselect-window' + (Bug#11304). + +2012-04-24 Juanma Barranquero + + * gnutls.c (init_gnutls_functions): Protect against (unlikely) + manipulation of :loaded-from data. + +2012-04-23 Juanma Barranquero + + * gnutls.c (init_gnutls_functions): The value of :loaded-from is + now a cons (bug#11311). + +2012-04-23 Paul Eggert + + Do not create empty overlays with the evaporate property (Bug#9642). + * buffer.c (Fmove_overlay): Delete an evaporating overlay + if it becomes empty after its bounds are adjusted to fit within + its buffer. Without this fix, in a nonempty buffer (let ((o + (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1)) + yields an empty overlay that has the evaporate property, which is + not supposed to happen. + + Fix minor GTK3 problems found by static checking. + * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed) + (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed) + (struct _EmacsFixedClass, emacs_fixed_get_type): + Move decls here from emacsgtkfixed.h, since they needn't be public. + (emacs_fixed_get_type): Now static. + (emacs_fixed_class_init): Omit unused local. + (emacs_fixed_child_type): Remove; unused. + * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed) + (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed) + (struct _EmacsFixedClass): Move to emacsgtkfixed.c. + (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS) + (EMACS_FIXED_GET_CLASS): Remove; unused. + * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local. + + * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO. + Problem reported by Juanma Barranquero for Windows -Wunused-function. + +2012-04-22 Paul Eggert + + Modernize and clean up gmalloc.c to assume C89 (Bug#9119). + * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t) + (__malloc_size_t, __malloc_ptrdiff_t): + Remove. All uses removed, replaced by the definiens if needed, + since we can assume C89 or better now. + Include , for PTRDIFF_MAX, uintptr_t. + (protect_malloc_state, align, get_contiguous_space) + (malloc_atfork_handler_prepare, malloc_atfork_handler_parent) + (malloc_atfork_handler_child, malloc_enable_thread) + (malloc_initialize_1, __malloc_initialize, morecore_nolock) + (_malloc_internal_nolock, _malloc_internal, malloc, _malloc) + (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree) + (special_realloc, _realloc_internal_nolock, _realloc_internal) + (realloc, calloc, __default_morecore, memalign, valloc, checkhdr) + (freehook, mallochook, reallochook, mabort, mcheck, mprobe): + Define using prototypes, not old style. + (align, _malloc_internal_nolock, _free_internal_nolock, memalign): + Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long. + (align): Don't assume that signed integer overflow wraps around. + Omit unused local var. + (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock) + (_free_internal_nolock, memalign, mallochook, reallochook): + Omit no-longer-needed casts. + (valloc): Use getpagesize, not __getpagesize. + (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit. + (struct hdr): The 'magic' member is now size_t, not unsigned long. + + * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed. + +2012-04-22 Michael Albinus + + Move functions from C to Lisp. Make non-blocking method calls + the default. Implement further D-Bus standard interfaces. + + * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare. + (QCdbus_request_name_allow_replacement) + (QCdbus_request_name_replace_existing) + (QCdbus_request_name_do_not_queue) + (QCdbus_request_name_reply_primary_owner) + (QCdbus_request_name_reply_in_queue) + (QCdbus_request_name_reply_exists) + (QCdbus_request_name_reply_already_owner): Move to dbus.el. + (QCdbus_registered_serial, QCdbus_registered_method) + (QCdbus_registered_signal): New Lisp objects. + (XD_DEBUG_MESSAGE): Use sizeof. + (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING) + (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT) + (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH) + (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros. + (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL. + (xd_signature, xd_append_arg): Allow float for integer types. + (xd_get_connection_references): New function. + (xd_get_connection_address): Rename from xd_initialize. + Return cached address. + (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS. + (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp + level. + (Fdbus_init_bus): New optional arg PRIVATE. Cache address. + Return number of refcounts. + (Fdbus_get_unique_name): Make stronger parameter check. + (Fdbus_message_internal): New defun. + (Fdbus_call_method, Fdbus_call_method_asynchronously) + (Fdbus_method_return_internal, Fdbus_method_error_internal) + (Fdbus_send_signal, Fdbus_register_service) + (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el. + (xd_read_message_1): Obey new structure of Vdbus_registered_objects. + (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses. + (Vdbus_compiled_version, Vdbus_runtime_version) + (Vdbus_message_type_invalid, Vdbus_message_type_method_call) + (Vdbus_message_type_method_return, Vdbus_message_type_error) + (Vdbus_message_type_signal): New defvars. + (Vdbus_registered_buses, Vdbus_registered_objects_table): + Adapt docstring. + +2012-04-22 Paul Eggert + + Fix GC_MALLOC_CHECK debugging output on 64-bit hosts. + * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]: + Do not assume ptrdiff_t is the same width as 'int'. + + * alloc.c: Handle unusual debugging option combinations. + (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK, + since the two debugging options are incompatible. + (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS + is defined. + (mem_init, mem_insert, mem_insert_fixup): + Define if GC_MARK_STACK || GC_MALLOC_CHECK. + (NEED_MEM_INSERT): Remove; no longer needed. + +2012-04-22 Leo Liu + + * sysdep.c (list_system_processes): Support Darwin (Bug#5725). + +2012-04-22 Paul Eggert + + * sysdep.c [__FreeBSD__]: Minor cleanups. + (list_system_processes, system_process_attributes) [__FreeBSD__]: + Use Emacs indenting style more consistently. Avoid some casts. + Use 'double' consistently rather than mixing 'float' and 'double'. + +2012-04-21 Eduard Wiebe + + * sysdep.c (list_system_processes, system_process_attributes): + Add implementation for FreeBSD (Bug#5243). + +2012-04-21 Andreas Schwab + + * lisp.mk (lisp): Update. + +2012-04-20 Paul Eggert + + * keyboard.c (process_pending_signals): Define only if SYNC_INPUT. + It is never used otherwise. + +2012-04-20 Stefan Monnier + + * print.c (print_preprocess): Only check print_depth if print-circle + is nil. + (print_object): Check for cycles even when print-circle is nil and + print-gensym is t, but only check print_depth if print-circle is nil. 2012-04-20 Chong Yidong * process.c (wait_reading_process_output): If EIO occurs on a pty, set the status to "failed" and ensure that sentinel is run. -2012-04-18 Glenn Morris +2012-04-20 Glenn Morris * process.c (Fset_process_inherit_coding_system_flag) (Fset_process_query_on_exit_flag): Doc fix (mention return value). (Fmake_network_process, Fmake_serial_process): Doc fix. -2012-04-17 Eli Zaretskii +2012-04-20 Eli Zaretskii * xdisp.c (string_buffer_position_lim): Limit starting position to BEGV. (set_cursor_from_row): If called for a mode-line or header-line row, return zero immediately. (try_cursor_movement): If inside continuation line, don't back up - farther than the first row after the header line, if any. Don't - consider the header-line row as "partially visible", even if + farther than the first row after the header line, if any. + Don't consider the header-line row as "partially visible", even if MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261) -2012-04-13 Atsuo Ohki (tiny change) +2012-04-20 Atsuo Ohki (tiny change) + + * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n" + (bug#11238). + +2012-04-20 Teodor Zlatanov +2012-04-18 Paul Eggert + + configure: new option --enable-gcc-warnings (Bug#11207) + * Makefile.in (C_WARNINGS_SWITCH): Remove. + (WARN_CFLAGS, WERROR_CFLAGS): New macros. + (ALL_CFLAGS): Use new macros rather than old. + * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904. + * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore + -Wunused-but-set-variable, -Wunused-function, -Wunused-macros, + -Wunused-result, -Wunused-variable. This should go away once + the Emacs and Gnulib regex code is merged. + (xmalloc, xrealloc): Now static. + +2012-04-17 Paul Eggert + + * dired.c (Fsystem_groups): Remove unused local. + +2012-04-17 Glenn Morris + + * dired.c (Fsystem_users): Doc fix. + +2012-04-17 Dmitry Antipov - * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n" (bug#11238). + * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900) + (syms_of_dired): Add them. -2012-04-10 Teodor Zlatanov +2012-04-16 Paul Eggert + + Fix minor alloc.c problems found by static checking. + * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]: + New extern decls, to avoid calling undeclared functions. + (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT) + && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined + GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used. + (NEED_MEM_INSERT): New macro. + (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused. + Remove one incorrect comment and fix another. + + Fix minor ralloc.c problems found by static checking. + See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html + * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE) + (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused. + (r_alloc_sbrk): Now static. + + Improve ralloc.c interface checking. + See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html + * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc) + (r_alloc_free) [REL_ALLOC]: Move decls from here ... + * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable) + [REL_ALLOC]: ... to here, to check interface. + * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]: + Remove decls. This fixes an "It stinks!". + + * alloc.c (which_symbols): Fix alignment issue / type clash. + +2012-04-15 Andreas Schwab + + * lisp.h (struct Lisp_Symbol): Remove explicit padding. + (struct Lisp_Misc_Any): Likewise. + (struct Lisp_Free): Likewise. + * alloc.c (union aligned_Lisp_Symbol): Define. + (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union + aligned_Lisp_Symbol instead of struct Lisp_Symbol. + (union aligned_Lisp_Misc): Define. + (MARKER_BLOCK_SIZE, struct marker_block): Use union + aligned_Lisp_Misc instead of union Lisp_Misc. + (Fmake_symbol, allocate_misc, gc_sweep): Adjust. + +2012-04-14 Paul Eggert + + Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926). + * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS. + * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h: + * s/netbsd.h, s/sol2-6.h: + Remove definition of GC_MARK_STACK, since the default now works. + * s/aix4-2.h, s/hpux10-20.h, s/unixware.h: + Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's + no longer the default. + * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default. + +2012-04-14 Atsuo Ohki (tiny change) + + * lread.c (lisp_file_lexically_bound_p): + Fix hang at ";-*-\n" (bug#11238). + +2012-04-14 Eli Zaretskii + + * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row + "unchanged" if its end.pos is beyond ZV. (Bug#11199) + +2012-04-14 Jan Djärv + + * nsterm.m (constrainFrameRect): Always constrain when there is only + one screen (Bug#10962). + +2012-04-13 Ken Brown + + * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor. + +2012-04-13 Reuben Thomas + + * indent.c (Fmove_to_column): Change interactive spec (Bug#739). + +2012-04-11 Daniel Colascione + + * s/cygwin.h: The vfork the #define in cygwin.h was protecting + against is gone. It's better to use vfork now so that when Cygwin + gains a new, working vfork, we use it automatically (bug#10398). + +2012-04-11 Stefan Monnier + + * window.c (save_window_save): Obey window-point-insertion-type. + +2012-04-11 Glenn Morris + + * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM. + +2012-04-11 Stefan Monnier + + * alloc.c (lisp_align_malloc): Remove unneeded prototype. + +2012-04-10 Jason S. Cornez (tiny change) + + * keyboard.c: Override inhibit-quit after the third C-g (bug#6585). + (force_quit_count): New var. + (handle_interrupt): Use it. + +2012-04-10 Juanma Barranquero + + * w32.c (w32_delayed_load): Record the full path of the library + being loaded (bug#10424). + +2012-04-09 Glenn Morris + + * doc.c (Fsnarf_documentation): Check variables, functions are bound, + not just in the obarray, before snarfing them. (Bug#11036) + + * Makefile.in ($(leimdir)/leim-list.el): + Pass EMACS rather than BUILT_EMACS. + +2012-04-09 Teodor Zlatanov * process.c (make_process): * process.h: Add integer `gnutls_handshakes_tried' member to @@ -310,15 +7767,99 @@ `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake attempts per process (connection). +2012-04-09 Chong Yidong + + * eval.c (Fuser_variable_p, user_variable_p_eh) + (lisp_indirect_variable): Functions deleted. + (Fdefvar): Caller changed. + + * callint.c (Finteractive, Fcall_interactively): + * minibuf.c (Fread_variable): Callers changed. + 2012-04-09 Eli Zaretskii - * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row - "unchanged" if its end.pos is beyond ZV. (Bug#11199) + * xdisp.c (set_cursor_from_row): If the display string appears in + the buffer at position that is closer to point than the position + after the display string, display the cursor on the first glyph of + the display string. Fixes cursor display when a 'display' text + property immediately follows invisible text. (Bug#11094) -2012-04-09 Jan Djärv +2012-04-09 Paul Eggert - * nsterm.m (constrainFrameRect): Always constrain when there is only - one screen (Bug#10962). + composite.c: use 'double' consistently + * composite.c (get_composition_id): Use 'double' consistently + instead of converting 'float' to 'double' and vice versa; this is + easier to understand and avoids a GCC warning. + +2012-04-09 Glenn Morris + + * Makefile.in: Generate leim-list with bootstrap-emacs, in + preparation for dumping it with emacs. (Bug#4789) + (leimdir): New variable. + ($(leimdir)/leim-list.el): New rule. + (emacs$(EXEEXT)): Depend on leim-list.el. + + * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821) + (Fget_buffer_create): Don't call Qucs_set_table_for_input. + (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input. + +2012-04-08 Andreas Schwab + + * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure + proper alignment. + +2012-04-07 Juanma Barranquero + + * xml.c (init_libxml2_functions) [WINDOWSNT]: + Remove unused local variable. + +2012-04-07 Paul Eggert + + Avoid unnecessary pointer scanning in garbage collection (Bug#10780). + * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro. + (mark_memory): Mark Lisp_Objects only if pointers might hide in + objects, as mark_maybe_pointer will catch them otherwise. + (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed. + * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise. + +2012-04-07 Paul Eggert + + Fix typo that broke non-Windows builds. + * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'. + +2012-04-07 Eli Zaretskii + + Support building on MS-Windows with libxml2. + + * makefile.w32-in (OBJ2): Add xml.$(O). + (GLOBAL_SOURCES): Add xml.c. + ($(BLD)/xml.$(O)): New dependency list. + + * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros. + (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement) + (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion) + [!WINDOWSNT]: New macros. + (init_libxml2_functions, libxml2_loaded_p): New functions. + (parse_region): Call fn_xmlCheckVersion instead of using the macro + LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros. + (xml_cleanup_parser): New function, export for fn_xmlCleanupParser. + Calls xmlCleanupParser only if libxml2 was loaded (or statically + linked in). + (Flibxml_parse_html_region, Flibxml_parse_xml_region): + Call init_libxml2_functions before calling libxml2 functions. + (syms_of_xml) : DEFSYM it. + + * emacs.c: Don't include libxml/parser.h. + (shut_down_emacs): Call xml_cleanup_parser, instead of calling + xmlCleanupParser directly. + + * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser. + +2012-04-07 Eli Zaretskii + + * indent.c (Fvertical_motion): If there is a display string at + point, use it.vpos to compute how many lines to backtrack after + move_it_to point. (Bug#11133) 2012-04-06 Eli Zaretskii @@ -1691,7 +9232,7 @@ * xfns.c (unwind_create_frame): Fix comment. (Fx_create_frame, x_create_tip_frame): Move terminal->reference_count++ just before making the frame - official. Move initialization of image_cache_refcount and + official. Move initialization of image_cache_refcount and dpyinfo_refcount before calling init_frame_faces (Bug#9943). 2011-11-05 Eli Zaretskii @@ -4500,7 +12041,7 @@ (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6. * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods - cString and lossyCString on OSX >= 10.4 + cString and lossyCString on OSX >= 10.4. * nsmenu.m (fillWithWidgetValue): Don't use deprecated method sizeToFit on OSX >= 10.2. @@ -4773,7 +12314,7 @@ * Makefile.in (SETTINGS_LIBS): Fix typo. -2011-07-01 Kazuhiro Ito (tiny patch) +2011-07-01 Kazuhiro Ito (tiny change) * coding.c (Fencode_coding_string): Record the last coding system used, as the function doc string says (bug#8738). @@ -7464,7 +15005,7 @@ * xfaces.c : Make extern again. * syntax.c: Include sys/types.h before including regex.h, as - required by Posix. + required by POSIX. * doc.c (get_doc_string): Improve the format passed to `error'. @@ -9928,7 +17469,7 @@ See ChangeLog.11 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 2011-2012 Free Software Foundation, Inc. + Copyright (C) 2011-2012 Free Software Foundation, Inc. This file is part of GNU Emacs.