X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/8a621d5317e94977bb3e5e5ab2800b810d0297ee..4f4050696105381b5893f594d719569817a861a3:/src/ChangeLog diff --git a/src/ChangeLog b/src/ChangeLog dissimilarity index 94% index 65a49bae1d..68138e46b6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,24193 +1,1920 @@ -2013-06-01 Paul Eggert - - * process.c (handle_child_signal): Also use WCONTINUED. - This is so that list-processes doesn't mistakenly list the process - as stopped, when the process has actually been continued and is - now running. - -2013-05-31 Paul Eggert - - Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474). - * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is - not already configured. - - * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447). - -2013-05-29 Eli Zaretskii - - * Makefile.in (mostlyclean): Remove *.res files. - -2013-05-29 Stefan Monnier - - * fileio.c (Finsert_file_contents): Preserve undo info when reverting - a buffer (bug#8447). - -2013-05-27 Eli Zaretskii - - * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a - display vector, and we backtrack, handle the case that the - previous character position is also displayed from a display - vector or covered by a display string or image. (Bug#14476) - -2013-05-25 Jan Djärv - - * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. - (struct MonitorInfo, free_monitors): Remove. - (x_make_monitor_attribute_list): Call make_monitor_attribute_list. - (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list. - (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, - Qframes, Qsource. - - * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. - (struct MonitorInfo, free_monitors): Remove. - (ns_screen_name): Make static. - (ns_make_monitor_attribute_list): Call make_monitor_attribute_list. - (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, - Qframes, Qsource. - - * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare. - (struct MonitorInfo): New struct. - (free_monitors, make_monitor_attribute_list): Declare. - - * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): - New Lisp_Object:s. - (free_monitors, make_monitor_attribute_list): New functions. - (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes, - Qsource. - -2013-05-25 Xue Fuqiao - - * callproc.c (call_process): Refine the doc string. (Bug#14045) - -2013-05-23 Stefan Monnier - - * keyboard.c: Apply keyboard decoding only to events that come directly - from the tty, not from unread-command-events (bug#14368). - (read_event_from_main_queue): New function, extracted from read_char). - (read_decoded_char): Remove. - (read_decoded_event_from_main_queue): New function to replace it. - (read_char): Use it. - (read_key_sequence): Use read_char rather than read_decoded_char. - - * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403). - -2013-05-22 Barry OReilly (tiny change) - - * casetab.c (init_casetab_once): Fix last change (bug#14424). - -2013-05-22 Kenichi Handa - - The following changes are to fix the setting of - buffer-file-coding-system on, for instance, C-x RET c unix RET - _FILE_OF_DOS_EOL_TYPE_ RET. - - * coding.h (struct coding_system): New member detected_utf8_chars. - - * coding.c (detect_coding_utf_8): Count characters and check EOL - format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if - BOM is there. - (setup_coding_system): Do not initialize coding->head_ascii. - (check_ascii): Do not set coding->eol_seen but update it. Do not - call adjust_coding_eol_type here. - (detect_coding): Fix detection of BOM for utf-8 and utf-16. - If the eol-type of CODING is already specified, adjust the eol type - of the found coding-system. - (decode_coding_gap): Cancel previous change. Utilize the - character numbers counted by detect_coding_utf_8. Fix detection - of BOM for utf-8. - -2013-05-21 Barry OReilly (tiny change) - - * search.c (looking_at_1): Only set last_thing_searched if the match - changed the match-data (bug#14281). - -2013-05-21 Dmitry Antipov - - * xdisp.c (reseat_at_previous_visible_line_start): - Already declared in dispextern.h, so remove it here. - (move_it_vertically_backward): Likewise. - -2013-05-20 YAMAMOTO Mitsuharu - - * xfns.c (check_x_display_info): Don't use XINT for terminal object. - (Fx_display_pixel_width, Fx_display_pixel_height) - (Fx_display_mm_width, Fx_display_mm_height): - Mention `display-monitor-attributes-list' in docstrings. - - * nsfns.m (ns_get_screen): Remove function. All uses removed. - (check_ns_display_info): Sync with check_x_display_info in xfns.c. - (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version) - (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height) - (Fx_display_backing_store, Fx_display_visual_class) - (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p) - (Fx_display_grayscale_p, Fx_display_pixel_width) - (Fx_display_pixel_height, Fx_display_planes) - (Fx_display_color_cells): Sync args and docstrings with xfns.c. - (Fx_display_screens): Don't confuse X11 screens with NS screens. - (Fx_display_mm_width, Fx_display_mm_height) - (Fx_display_pixel_width, Fx_display_pixel_width): Return width or - height for all physical monitors as in X11. - - * nsterm.m (x_display_pixel_width, x_display_pixel_height): - Return pixel width or height for all physical monitors as in X11. - -2013-05-18 Paul Eggert - - Port --enable-gcc-warnings to clang. - * bytecode.c (exec_byte_code): - * regex.c: - Redo diagnostic pragmas to pacify clang, too. - * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable. - * editfns.c (Fencode_time): - * fileio.c (file_accessible_directory_p): - * font.c (font_unparse_xlfd): - Use '&"string"[index]' instead of '"string" + (index)'. - * undo.c (user_error): Remove; unused. - -2013-05-16 Eli Zaretskii - - * insdel.c (insert_1_both): Document the arguments, instead of - referring to insert_1, which no longer exists. - - * xdisp.c (message_dolog): If the *Messages* buffer is shown in - some window, increment windows_or_buffers_changed, so that - *Messages* display in that window is updated. (Bug#14408) - - * w32.c: Include epaths.h. - (init_environment): Use cmdproxy.exe without leading directories. - Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that - case. - (gettimeofday): Adjust signature and return value to Posix - expectations. - - * unexw32.c (open_output_file): Delete the existing emacs.exe - before creating it, to break the hard link to the versioned - executable. - - * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK) - (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK) - (FIRSTFILE_OBJ): New variables. - (W32_RES): Rename to EMACSRES. All users changed. - (base_obj): Use $(CM_OBJ). - (ALLOBJS): Use $(FIRSTFILE_OBJ). - (emacs$(EXEEXT)): Depend on $(ADDSECTION). - (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move - $(W32_RES_LINK) before $(LIBES). - (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt. - -2013-05-15 Stefan Monnier - - * makefile.w32-in (DOC): Use just "DOC". - - * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more. - - * process.c: Export default filters and sentinels to Elisp. - (Qinternal_default_process_sentinel, Qinternal_default_process_filter): - New constants. - (pset_filter, pset_sentinel, make_process, Fset_process_filter) - (Fset_process_sentinel, Fformat_network_address): - Default to them instead of nil. - (server_accept_connection): Sentinels can't be nil any more. - (read_and_dispose_of_process_output): New function, extracted from - read_process_output. - (read_process_output): Use it; filters can't be nil. - (Finternal_default_process_filter): New function, extracted from - read_process_output. - (exec_sentinel_unwind): Remove function. - (exec_sentinel): Don't zilch sentinel while running. - (status_notify): Sentinels can't be nil. - (Finternal_default_process_sentinel): New function extracted from - status_notify. - (setup_process_coding_systems): Default filter is not nil any more. - (syms_of_process): Export new Elisp functions and initialize - new constants. - * lisp.h (make_lisp_proc): New function. - -2013-05-15 Stefan Monnier - - * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart. - -2013-05-14 Eli Zaretskii - - * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT - unless we know that the window w is a leaf window. - Another attempt at solving bug#14062. - -2013-05-14 Jan Djärv - - * nsfont.m (ns_spec_to_descriptor): Retain and autorelease - fdesc (Bug#14375). - -2013-05-12 Paul Eggert - - * image.c (gif_load): Check that subimages fit (Bug#14345). - -2013-05-09 Stefan Monnier - - * lread.c (skip_dyn_eof): New function. - (read1): Use it to skip the end of a file in response to #@00. - - * doc.c (get_doc_string): Slightly relax the sanity checking. - -2013-05-09 Jan Djärv - - * nsfns.m: Include IOGraphicsLib.h if Cocoa. - (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare. - (MonitorInfo): New struct. - (free_monitors, ns_screen_name, ns_make_monitor_attribute_list) - (Fns_display_monitor_attributes_list): New functions. - (display-usable-bounds): Remove. - (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and - Qsource. - -2013-05-09 Paul Eggert - - * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION. - (GTK_CHECK_VERSION): New macro, if not already defined. - All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc. - replaced by GTK_CHECK_VERSION. - -2013-05-08 Paul Eggert - - * xterm.h (GTK_PREREQ): New macro. - All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed - to use this macro instead, for consistency and clarity. - -2013-05-08 Eli Zaretskii - - * xdisp.c (row_for_charpos_p): New function, with code of - cursor_row_p, but accepts an additional argument CHARPOS instead - of using a hardcoded PT. - (cursor_row_p): Call row_for_charpos_p with 2nd argument PT. - (row_containing_pos): Call row_for_charpos_p instead of partially - doing the same. Fixes cursor positioning under longlines-mode - when longlines-show-effect includes more than one newline, when - moving the cursor vertically up. - -2013-05-08 Juanma Barranquero - - * makefile.w32-in (ACL_H): New macro. - ($(BLD)/fileio.$(O)): Update dependencies. - -2013-05-07 Paul Eggert - - Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) - * Makefile.in (LIB_ACL): New macro. - (LIBACL_LIBS): Remove. - (LIBES): Use LIB_ACL, not LIBACL_LIBS. - * fileio.c: Include . - Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL. - (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by - !acl_errno_valid. - (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling - it ourselves. - - * unexelf.c: Don't assume ElfW (Half) fits in int. - (entry_address, find_section, unexec): Use ptrdiff_t, not int, - when dealing with ElfW (Half) values, since they can exceed 2**31 - on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes. - (entry_address): Omit unused NUM arg. All uses changed. - -2013-05-07 Juri Linkov - - * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n' - to the string converted from number with `Fnumber_to_string'. - (Bug#14254) - -2013-05-07 Paul Eggert - - * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4. - This fixes a problem introduced by my previous change. - -2013-05-07 Glenn Morris - - * lread.c (readchar): Don't read from a dead buffer. (Bug#14280) - -2013-05-07 Jan Djärv - - * xfns.c: Move misplaced ifndef USE_GTK from previous checkin. - -2013-05-07 Paul Eggert - - Static checking by GCC 4.8.0. - * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors) - (x_get_monitor_for_frame, x_make_monitor_attribute_list) - (x_get_monitor_attributes_fallback) - (x_get_monitor_attributes_xinerama) - (x_get_monitor_attributes_xrandr, x_get_monitor_attributes): - Define only if USE_GTK. - (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR. - (x_get_monitor_attributes_fallback): Omit unused locals. - (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list): - Use double, not float, to avoid mixed-mode floating point arithmetic. - -2013-05-07 YAMAMOTO Mitsuharu - Jan Djärv - - * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS) - (XINERAMA_CFLAGS): New macros. - (ALL_CFLAGS, LIBES): Use them. - - * xfns.c: Include if HAVE_XRANDR, and - include if HAVE_XINERAMA. - (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables. - (syms_of_xfns): DEFSYM them. - (struct MonitorInfo): New struct. - (x_get_net_workarea, free_monitors, x_get_monitor_for_frame) - (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback) - (x_get_monitor_attributes_xrandr, x_get_monitor_attributes) - (x_get_monitor_attributes_xinerama): New functions. - (Fx_display_monitor_attributes_list): New primitive. - (syms_of_xfns): Defsubr it. - - * xterm.h (x_display_info): Add Xatom_net_workarea and - Xatom_net_current_desktop. - - * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea - and dpyinfo->Xatom_net_current_desktop. - -2013-05-06 Eli Zaretskii - - * xdisp.c (pos_visible_p): Use the special code for finding the - beginning of a display property or overlay for any "replacing" - display property, not just for display strings. This solves - incorrect reporting of position by posn-at-point. (Bug#14241) - -2013-05-06 Paul Eggert - - * unexelf.c: Fix some 32-bit integer problems, notably when debugging. - Include , , , . - Verify that ElfW (Half) fits in int. - (fatal): Use same signature as lisp.h. - (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can - configure and build with -DUNEXELF_DEBUG without worrying about - other modules that use DEBUG. - (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints - possibly-wide integers now uses it instead of plain fprintf. - (entry_address): New function, which avoids problems with 32-bit - overflow on 64-bit hosts. - (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it. - (round_up): Don't assume the remainder fits in int. - (find_section): Use bool for boolean. Simplify debug code. - (unexec): Don't assume file sizes fit in int or size_t. - Omit unnecessary trailing newline in 'fatal' format. - Use strerror rather than outputting decimal error number. - Remove unused code when emacs is not defined; - this file relies on Emacs now. - Don't assume e_phnum and e_shnum are positive. - - * regex.c: Fix problems when DEBUG is defined. - (extract_number, extract_number_and_incr): Define regardless of - whether DEBUG is defined; that's simpler and makes the code less - likely to go stale in the normal case when DEBUG is not defined. - Return int rather than taking an int * arg. All callers changed. - (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4): - Remove, replacing with ... - (DEBUG_PRINT): New macro. All callers changed. - (DEBUG_COMPILES_ARGUMENTS): New macro. - (print_fastmap, print_partial_compiled_pattern) [DEBUG]: - (print_compiled_pattern, print_double_string) [DEBUG]: - Use prototype rather than old-style definition. - (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]: - (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]: - (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]: - (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]: - Don't assume ptrdiff_t, size_t, and long are the same width as int. - (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t. - This matters only when DEBUG is defined. - -2013-05-05 Eli Zaretskii - - * xdisp.c (set_iterator_to_next): Set the - ignore_overlay_strings_at_pos_p flag only if we are _really_ - iterating over an overlay string, as indicated by the - current.overlay_string_index member. (Bug#14306) - -2013-05-05 Jan Djärv - - * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle - to where it is used, to avoid autorelease issues (Bug#14050). - -2013-05-05 Paul Eggert - - `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273). - * fileio.c (syms_of_fileio): Implement this. - * filelock.c (create_lock_file): If symbolic links don't work, so - we use a regular file as a lock file, do not fsync the lock file; - it's not needed. - -2013-05-04 Stefan Monnier - - * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp. - (syms_of_minibuf): Adjust accodingly. - * lread.c (Fread): - * callint.c (Fcall_interactively): Adjust calls accordingly. - -2013-05-04 Eli Zaretskii - - * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that - w->contents is a buffer before computing everything else. - Use parentheses to disambiguate last part of the condition. - - * w32fns.c (w32_wnd_proc): Remove temporary code used to trap - assertion violations. (Bug#14062) - -2013-05-01 David Reitter - - * nsfns.m (ns_tooltip): Initialize. - -2013-04-28 Eli Zaretskii - - * coding.c (decode_coding_gap): Don't remove the character before - a newline unless it's a CR character. (Bug#14287) - -2013-04-28 Dan Nicolaescu - - * dispextern.h (struct face): Move enum face_underline_type - earlier so that bitfields can be in the same word. - -2013-04-28 Jan Djärv - - * nsfns.m (handlePanelKeys): New function. - (EmacsOpenPanel:performKeyEquivalent:) - (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle - arrows/function/control and copy/paste keys (Bug#14296). - -2013-04-27 Juri Linkov - - * callint.c (Fcall_interactively): Call `Qread_number' for - interactive code letter `n' instead of using duplicate code. - (Bug#14254) - -2013-04-27 Paul Eggert - - * systime.h (make_timeval): Declare as 'const'. - -2013-04-27 Kenichi Handa - - * font.c (font_open_entity): Always open a font of manageable - size. - -2013-04-26 Paul Eggert - - Port better to AIX (Bug#14258). - * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too, - to pacify AIX xlc. - -2013-04-24 Kenichi Handa - - * coding.c (decode_coding_iso_2022): When an invalid escape - sequence is encountered, reset the invocation and designation - status to the safest one. - -2013-04-22 Paul Eggert - - * Makefile.in (bootstrap-clean): Remove stamp-h1 too. - Without this fix, "make distclean" leaves stamp-h1 behind. - -2013-04-20 Erik Charlebois - - * w32fns.c (w32_fullscreen_rect): New function to compute the - window rectangle for the given fullscreen mode. - (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no - longer tunes the window size. This keeps the window's edges flush - with the screen and allows the taskbar to hide itself in fullboth. - - * w32term.c (w32fullscreen_hook): 'fullboth' now shows without - window decorations and uses the entire screen. - - * w32term.h (w32_fullscreen_rect) Add prototype. - (struct w32_output): Replace normal_width, normal_height, - normal_top, and normal_left members with a single normal_placement - struct. - (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP): - Remove macros. - (FRAME_NORMAL_PLACEMENT): New macro. - -2013-04-16 Juanma Barranquero - - * minibuf.c (Ftest_completion): Silence compiler warning. - -2013-04-15 Eli Zaretskii - - * w32fns.c (w32_wnd_proc): Add more assertions to investigate - bug#14062. - - * frame.h (WINDOW_FRAME): Protect macro and its argument with - parentheses. - - * dispextern.h (CURRENT_MODE_LINE_HEIGHT) - (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P) - (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with - parentheses where appropriate. - -2013-04-14 Paul Eggert - - * keyboard.c (timer_start_idle): Remove no-longer-used local. - -2013-04-14 Eli Zaretskii - - * buffer.c (syms_of_buffer) - : - Mention in the doc string that setting these variables takes - effect only after a call to set-window-buffer. (Bug#14200) - -2013-04-13 Eli Zaretskii - - * indent.c (Fvertical_motion): Don't consider display strings on - overlay strings as display strings on the buffer position we - started from. This prevents vertical cursor motion from jumping - more than one line when there's an overlay string with a display - property at end of line. - Reported by Karl Chen in - http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html. - -2013-04-12 Stefan Monnier - - * window.c (select_window): `record_buffer' even if window is - already selected (bug#14191). - -2013-04-11 Eli Zaretskii - - * window.c (Fwindow_end): Test more flags, including the buffer's - last_overlay_modified flag, to determine whether the window's - display is really up-to-date. Prevents the function from - returning a stale value. (Bug#14170) - (Fwindow_line_height): Fix the test for up-to-date-ness of the - current matrix. - -2013-04-10 Eli Zaretskii - - * frame.c (do_switch_frame): Mark the TTY frame we switch to as - garbaged only if it is not already the top frame on its TTY. - This prevents flickering due to constant redrawing of TTY frames when - there are GUI frames open in the same session. (Bug#13864) - -2013-04-10 Stefan Monnier - - * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead - of marking the idle timers directly. - -2013-04-09 Stefan Monnier - - * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash - tables (bug#14054). - -2013-04-08 Stefan Monnier - - * window.c (select_window): Don't record_buffer while the invariant is - temporarily broken (bug#14161). - - * fns.c (Fdelq): Don't assume !NILP => CONSP. - -2013-04-07 Eli Zaretskii - - * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT. - -2013-04-07 Romain Francoise - - Ignore additional platform-specific ACL errors (Bug#13702). - * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib. - (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it. - -2013-03-31 Jan Djärv - - * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking - f->output_data.ns. - -2013-04-07 Paul Eggert - - Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783). - This bug was introduced by my 2013-02-25 change that simplified - data_start configuration. Without this change, on GNU/Linux - an Emacs configured with --enable-profiling fails immediately - due to a profiler signal. - * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link - with these flags. On platforms where special flags are needed - when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS. - (ALL_CFLAGS): Remove $(PROFILING_CFLAGS). - (.c.o, .m.o): Compile with $(PROFILING_CFLAGS). - -2013-04-07 Dmitry Antipov - - Get rid of some platform-specific functions examining window - system and its capabilities. This is a partial rework of the - 2013-04-05 change. - * lisp.h (have_menus_p): Remove prototype. This function is - replaced with platform-independent window_system_available. - (check_window_system): Move to... - * frame.h (decode_window_system_frame, window_system_available): - ...here, add new prototypes. - * frame.c (window_system_available, decode_window_system_frame): - New functions. - (check_window_system): Platform-independent now. - * xterm.h (x_in_use): Remove declaration. - (check_x_frame): - * w32term.h (check_x_frame): - * nsterm.h (check_x_frame): Remove prototypes. This function - is replaced with platform-independent decode_window_system_frame. - * msdos.c (have_menus_p): Remove. - * nsfns.m (check_window_system, have_menus_p, check_ns_frame): - Remove platform-specific functions. Use check_window_system, - decode_window_system_frame and check_ns_display_info where - appropriate. Minor style and comment tweaks. - * w32fns.c (w32_in_use, check_window_system, have_menus_p) - (check_x_frame): Likewise. - * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame): - Likewise. - * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m: - * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c: - * xmenu.c, xselect.c: All related users changed. - -2013-04-03 Kenichi Handa - - The following changes is to optimize the code for reading UTF-8 - files. - - * coding.c (check_ascii): Rename from detect_ascii. Return value - changed. Check EOL format. Do not call adjust_coding_eol_type - here. - (check_utf_8): New function. - (adjust_coding_eol_type): Do nothing if already adjusted. - (detect_coding): Compare the return value of check_ascii with - coding->src_bytes. Call adjust_coding_eol_type if necessary. - (decode_coding_gap): Optimize for valid UTF-8. - -2013-03-21 Kenichi Handa - - * coding.c (syms_of_coding): Cancel previous change. - - * insdel.c (insert_from_gap): Fix previous change. - -2013-04-05 Dmitry Antipov - - Consistently use platform-specific function to detect window system. - * lisp.h (check_window_system): New prototype. This function is - going to replace check_x, check_w32 and check_ns. - (have_menus_p): Mention msdos.c in comment. - * fontset.c (check_window_system_func): Remove. Adjust all users. - * fontset.h (check_window_system_func): Remove prototype. - * nsterm.h (check_ns): - * xterm.h (check_x): - * w32term.h (check_w32): Likewise. - * menu.c (Fx_popup_menu): Use check_window_system. - * msdos.c (check_window_system): Define for MS-DOS. - * nsfns.m (check_window_system): Define for NS. Adjust all users. - * w32fns.c (check_window_system): Likewise for MS-Windows. - * xfns.c (check_window_system): Likewise for X. - * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c: - * xfaces.c, xmenu.c: Use check_window_system where appropriate. - -2013-04-02 Paul Eggert - - Prefer < to > in range checks such as 0 <= i && i < N. - This makes it easier to visualize quantities on a number line. - This patch doesn't apply to all such range checks, - only to the range checks affected by the 2013-03-24 change. - This patch reverts most of the 2013-03-24 change. - * alloc.c (xpalloc, Fgarbage_collect): - * ccl.c (ccl_driver, resolve_symbol_ccl_program): - * character.c (string_escape_byte8): - * charset.c (read_hex): - * data.c (cons_to_unsigned): - * dispnew.c (update_frame_1): - * doc.c (Fsubstitute_command_keys): - * doprnt.c (doprnt): - * editfns.c (hi_time, decode_time_components): - * fileio.c (file_offset): - * fns.c (larger_vector, make_hash_table, Fmake_hash_table): - * font.c (font_intern_prop): - * frame.c (x_set_alpha): - * gtkutil.c (get_utf8_string): - * indent.c (check_display_width): - * keymap.c (Fkey_description): - * lisp.h (FIXNUM_OVERFLOW_P, vcopy): - * lread.c (read1): - * minibuf.c (read_minibuf_noninteractive): - * process.c (wait_reading_process_output): - * search.c (Freplace_match): - * window.c (get_phys_cursor_glyph): - * xdisp.c (redisplay_internal): - * xsmfns.c (smc_save_yourself_CB): - Prefer < to > for range checks. - * dispnew.c (sit_for): Don't mishandle NaNs. - This fixes a bug introduced in the 2013-03-24 change. - * editfns.c (decode_time_components): Don't hoist comparison. - This fixes another bug introduced in the 2013-03-24 change. - -2013-03-31 Dmitry Antipov - - * frame.h (struct frame): Drop scroll_bottom_vpos - member becaue all real users are dead long ago. - (FRAME_SCROLL_BOTTOM_VPOS): Remove. - * xdisp.c (redisplay_internal): Adjust user. - -2013-03-30 Darren Ho (tiny change) - - * nsmenu.m (showAtX:Y:for:): setLevel to - NSPopUpMenuWindowLevel (Bug#13998). - -2013-03-30 Jan Djärv - - * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open) - (ns_check_pending_open_menu): Declare. - - * nsmenu.m (ns_update_menubar): Correct NSTRACE. - (x_activate_menubar): Update the menu with title that matches - ns_get_pending_menu_title, and call - ns_check_pending_openmenu (Bug#12698). - (menuWillOpen:): New method. - (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698). - - * nsterm.m (menu_will_open_state, menu_mouse_point) - (menu_pending_title): New varaibles. - (ns_get_pending_menu_title, ns_check_menu_open) - (ns_check_pending_open_menu): New functions. - -2013-03-29 Dmitry Antipov - - * indent.c (current_column_bol_cache): Remove leftover which is not - used in Fmove_to_column any more. - (current_column, scan_for_column): Adjust users. - * keyboard.c (last_point_position_buffer, last_point_position_window): - Remove leftovers which are not used for recording undo any more. - (command_loop_1, syms_of_keyboard): Adjust users. - * xdisp.c (last_max_ascent): Remove leftover which is not used in - redisplay_window any more. - (move_it_to): Adjust user. - -2013-03-29 Juanma Barranquero - - * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)): - Update dependencies. - -2013-03-28 Stefan Monnier - - * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER) - (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid - forward references. - -2013-03-28 Dmitry Antipov - - * window.h (struct window): Replace hchild, vchild and buffer slots - with the only contents slot. This is possible because each valid - window may have either the child window (in vertical or horizontal - combination) or buffer to display (for the leaf window). Using that, - a lof of operations to traverse and/or change window hierarchies may - be simplified. New member horizontal is used to distinguish between - horizontal and vertical combinations of internal windows. - (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P) - (WINDOW_VERTICAL_COMBINATION_P): New macros. - (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes. - * window.c (wset_hchild, wset_vchild): Remove. Adjust all users. - Use contents slot, not buffer, where appropriate. - (wset_combination): New function. - (wset_buffer): Add eassert. - (Fframe_first_window): Simplify the loop reaching first window. - (Fwindow_buffer): Use WINDOW_LEAF_P. - (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P. - (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P. - (unshow_buffer): Convert initial debugging check to eassert. - (replace_window, recombine_windows, Fdelete_other_windows_internal) - (make_parent_window, window_resize_check, window_resize_apply) - (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal) - (Fset_window_configuration, delete_all_child_windows, save_window_save): - Adjust to match struct window changes. - (window_loop): Check for broken markers in CHECK_ALL_WINDOWS. - (mark_window_cursors_off, count_windows, get_leaf_windows) - (foreach_window_1): Simplify the loop. - * alloc.c (mark_object): Do not check for the leaf window because - internal windows has no glyph matrices anyway. - * dispnew.c (clear_window_matrices, showing_window_margins_p) - (allocate_matrices_for_window_redisplay, fake_current_matrices) - (allocate_matrices_for_frame_redisplay, free_window_matrices) - (build_frame_matrix_from_window_tree, mirror_make_current) - (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers) - (update_window_tree, set_window_update_flags): Simplify the loop. - (sync_window_with_frame_matrix_rows): Enforce live window. - Use contents slot, not buffer, where appropriate. - * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P - and WINDOW_HORIZONTAL_COMBINATION_P. - (make_frame_visible_1): Simplify the loop. - Use contents slot, not buffer, where appropriate. - * xdisp.c (hscroll_window_tree, mark_window_display_accurate) - (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree) - (expose_window_tree): Likewise. - Use contents slot, not buffer, where appropriate. - * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW - to avoid deleted windows. Use contents slot instead of buffer. - * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c: - * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c: - * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c: - * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate. - -2013-03-28 Eli Zaretskii - - * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help - identify the reasons for assertion violations in bug#14062 and - similar ones. - (Fx_show_tip): Fix compilation error under - "--enable-check-lisp-object-type". (Bug#14073) - - * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN. - Reported by . - -2013-03-28 Dmitry Antipov - - * xdisp.c (with_echo_area_buffer_unwind_data): Save window - start marker... - (unwind_with_echo_area_buffer): ...to restore it here. - This is needed to ensure that... - (redisplay_window): ...both window markers are valid here, - which is verified by eassert. - * editfns.c (save_excursion_save): Do not assume that - selected_window always displays the buffer. - * buffer.c (Fbuffer_swap_text): Adjust window start markers. - Fix comment. - -2013-03-27 Stefan Monnier - - * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for - the upcase table. - -2013-03-27 rzl24ozi (tiny changes) - - * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function. - -2013-03-27 Eli Zaretskii - - * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype, - since MinGW's w32api headers do. This avoids compiler warnings. - - * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define - if already defined. - -2013-03-26 Eli Zaretskii - - * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64. - -2013-03-26 Jan Djärv - - * gtkutil.c (style_changed_cb): Check if frame is live and an - X frame (Bug#14038). - -2013-03-26 Eli Zaretskii - - * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]: - Define only for _WIN32_WINNT less than 0x0500. - (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for - MinGW64. - Move inclusion of time.h before sys/time.h, so that MinGW64 could - see its own definitions of 'struct timeval' and 'struct timezone'. - - Fix incompatibilities between MinGW.org and MinGW64 headers. - * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined. - - * w32.c (REPARSE_DATA_BUFFER): Guard with - MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined. - -2013-03-25 Jan Djärv - - * xterm.c: Include X11/XKBlib.h - (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041). - -2013-03-24 Andreas Schwab - - * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are - written backwards. - * blockinput.h (input_blocked_p): Likewise. - * bytecode.c (exec_byte_code): Likewise. - * callproc.c (call_process_kill, call_process_cleanup) - (Fcall_process): Likewise. - * ccl.c (ccl_driver, resolve_symbol_ccl_program) - (Fccl_execute_on_string): Likewise. - * character.c (string_escape_byte8): Likewise. - * charset.c (read_hex): Likewise. - * cm.c (calccost): Likewise. - * data.c (cons_to_unsigned): Likewise. - * dired.c (directory_files_internal, file_name_completion): - Likewise. - * dispnew.c (scrolling_window, update_frame_1, Fsleep_for) - (sit_for): Likewise. - * doc.c (Fsubstitute_command_keys): Likewise. - * doprnt.c (doprnt): Likewise. - * editfns.c (hi_time, decode_time_components, Fformat): Likewise. - * emacsgtkfixed.c: Likewise. - * fileio.c (file_offset, Fwrite_region): Likewise. - * floatfns.c (Fexpt, fmod_float): Likewise. - * fns.c (larger_vector, make_hash_table, Fmake_hash_table): - Likewise. - * font.c (font_intern_prop): Likewise. - * frame.c (x_set_alpha): Likewise. - * gtkutil.c (get_utf8_string): Likewise. - * indent.c (check_display_width): Likewise. - * intervals.c (create_root_interval, rotate_right, rotate_left) - (split_interval_right, split_interval_left) - (adjust_intervals_for_insertion, delete_node) - (interval_deletion_adjustment, adjust_intervals_for_deletion) - (merge_interval_right, merge_interval_left, copy_intervals) - (set_intervals_multibyte_1): Likewise. - * keyboard.c (gobble_input, append_tool_bar_item): Likewise. - * keymap.c (Fkey_description): Likewise. - * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise. - * lread.c (openp, read_integer, read1, string_to_number): - Likewise. - * menu.c (ensure_menu_items): Likewise. - * minibuf.c (read_minibuf_noninteractive): Likewise. - * print.c (printchar, strout): Likewise. - * process.c (create_process, Faccept_process_output) - (wait_reading_process_output, read_process_output, send_process) - (wait_reading_process_output): Likewise. - * profiler.c (make_log, handle_profiler_signal): Likewise. - * regex.c (re_exec): Likewise. - * regex.h: Likewise. - * search.c (looking_at_1, Freplace_match): Likewise. - * sysdep.c (get_child_status, procfs_ttyname) - (procfs_get_total_memory): Likewise. - * systime.h (EMACS_TIME_VALID_P): Likewise. - * term.c (dissociate_if_controlling_tty): Likewise. - * window.c (get_phys_cursor_glyph): Likewise. - * xdisp.c (init_iterator, redisplay_internal, redisplay_window) - (try_window_reusing_current_matrix, try_window_id, pint2hrstr): - Likewise. - * xfns.c (Fx_window_property): Likewise. - * xmenu.c (set_frame_menubar): Likewise. - * xselect.c (x_get_window_property, x_handle_dnd_message): - Likewise. - * xsmfns.c (smc_save_yourself_CB): Likewise. - * xterm.c (x_scroll_bar_set_handle): Likewise. - -2013-03-24 Dmitry Antipov - - * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument - to be optional or nil. Adjust comment and convert it to docstring. - * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message. - * frame.c (display_x_get_resource, Fx_get_resource): Break long line. - -2013-03-24 Paul Eggert - - Static checking by GCC 4.8-20130319. - * image.c (gif_load): Assume pass < 3 to pacify GCC. - * process.c (Fset_process_datagram_address) - (Fmake_network_process): Check get_lisp_to_sockaddr_size return value. - * xdisp.c (get_char_face_and_encoding): - (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized. - (get_glyph_face_and_encoding): Prepare face before possibly using it. - (get_per_char_metric): Don't use CHAR2B if it might not be initialized. - -2013-03-24 Ken Brown - - * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to - fix compilation on 64-bit Cygwin, where underscores are not - automatically prepended. - - * w32term.c (w32_initialize): Silence compiler warning. - -2013-03-23 Eli Zaretskii - - * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH, - FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static - variables, to save and restore frame dimensions. - Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position - after returning from a 'fullscreen' configuration. - use SendMessage instead of PostMessage to send the SC_RESTORE message, - to avoid races between the main thread and the input thread. - - * w32term.h (struct w32_output): New members normal_width, - normal_height, normal_top, normal_left, and prev_fsmode. - (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP) - (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these - members of a frame. - - * w32term.c (w32fullscreen_hook): Record last value of the frame's - 'fullscreen' parameter. Always record previous width and height - of the frame, except when switching out of maximized modes, so - that they could be restored correctly, instead of resetting to the - default frame dimensions. Send SC_RESTORE command to the frame, - unless we are going to send SC_MAXIMIZE, to restore the frame - resize hints in the mouse pointer shown by the window manager. - (Bug#14032) - - * frame.c (get_frame_param): Now extern for WINDOWSNT as well. - - * lisp.h (get_frame_param): Adjust conditions for prototype - declaration. - -2013-03-22 Ken Brown - - * unexcw.c: Drop unneeded inclusion of w32common.h. - (report_sheap_usage): Declare. - (read_exe_header): Add magic numbers for x86_64. - (fixup_executable): Fix printf format specifier for unsigned long - argument. - -2013-03-22 Dmitry Antipov - - * frame.h (struct frame): Put menu_bar_window under #ifdef - because this member is not needed when X toolkit is in use. - (fset_menu_bar_window): - * dispnew.c (clear_current_matrices, clear_desired_matrices) - (free_glyphs, update_frame): - * xdisp.c (expose_frame): Likewise. - (display_menu_bar): Likewise. Remove redundant eassert. - * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X - toolkit is in use. - -2013-03-21 Paul Eggert - - Use functions and constants to manipulate Lisp_Save_Value objects. - This replaces code that used macros and strings and token-pasting. - The change makes the C source a bit easier to follow, - and shrinks the Emacs executable a bit. - * alloc.c: Verify some properties of Lisp_Save_Value's representation. - (make_save_value): Change 1st arg from string to enum. All callers - changed. - (INTX): Remove. - (mark_object): Use if, not #if, for GC_MARK_STACK. - * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER) - (XSAVE_OBJECT): Now functions, not macros. - (STRING_BYTES_BOUND): Now just a macro, not a constant too; - the constant was never used. - (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT) - (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ) - (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ) - (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY): - New constants. - (struct Lisp_Save_Value): Replace members area, type0, type1, type2, - type3 with a single member save_type. All uses changed. - (save_type, set_save_pointer, set_save_integer): New functions. - * print.c (PRINTX): Remove. - - * alloc.c: Remove redundant static declarations. - -2013-03-20 Dmitry Antipov - - * window.h (struct window): Convert left_col, top_line, total_lines - and total_cols from Lisp_Objects to integers. Adjust comments. - (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines): - Remove. - (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL) - (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion. - * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c: - Adjust users where appropriate. - -2013-03-20 Dmitry Antipov - - * frame.h (struct frame): Drop resx and resy because the same data is - available from window system-specific output context. Adjust users. - (default_pixels_per_inch_x, default_pixels_per_inch_y): - New functions to provide defaults when no window system available. - (FRAME_RES_X, FRAME_RES_Y): New macros. - (NUMVAL): Move from xdisp.c. - * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface) - (Ffont_face_attributes, Fopen_font): - * image.c (gs_load): - * w32font.c (fill_in_logfont): - * xdisp.c (calc_pixel_width_or_height): - * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them. - * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment. - -2013-03-20 Kenichi Handa - - * coding.c (syms_of_coding): Initialize disable_ascii_optimization - to 1 (temporary workaround until a bug related to ASCII - optimization is fixed). - -2013-03-19 Dmitry Antipov - - * window.c (Fwindow_combination_limit, Fset_window_combination_limit): - Signal error if window is not internal. Adjust docstring. - (delete_all_child_windows): Use combination_limit to save the buffer. - (Fset_window_configuration): Adjust accordingly. - * print.c (syms_of_print): Initialize debugging output not here... - (init_print_once): ...but in a new function here. - * lisp.h (init_print_once): Add prototype. - * emacs.c (main): Add call to init_print_once. Adjust comments. - -2013-03-18 Dmitry Antipov - - * window.c (window_resize_check, window_resize_apply) - (window_from_coordinates, recombine_windows, set_window_buffer) - (make_parent_window, Fwindow_resize_apply, resize_frame_windows) - (Fsplit_window_internal, Fdelete_window_internal) - (freeze_window_starts): Use bool for booleans. - * window.h (window_frame_coordinates, resize_frame_windows) - (freeze_window_starts, set_window_buffer): Adjust prototypes. - -2013-03-17 Stefan Monnier - - * dispnew.c (bitch_at_user): Use `user-error'. - -2013-03-17 Ken Brown - - * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it - as return type of image_background. (Bug#13981) - * image.c (RGB_PIXEL_COLOR): Move to dispextern.h. - -2013-03-16 Jan Djärv - - * nsterm.m (updateFrameSize:): Change resize increments if needed. - (ns_select): Don't return with result uninitialized. - - * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename - and getDirectory. - - * nsfns.m (ns_filename_from_panel, ns_directory_from_panel): - New functions. - (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose - directories. If filename is nil, get directory name (Bug#13932). - Use getFilename and getDirectory. - (getFilename, getDirectory): New methods for EmacsSavePanel and - EmacsOpenPanel. - (ok:): In EmacsOpenPanel, if we can't choose directories, just return. - -2013-03-15 Paul Eggert - - * coding.c (decode_coding_gap): Fix typo caught by static checking. - -2013-03-15 Kenichi Handa - - * insdel.c (insert_from_gap): New arg text_at_gap_tail. - (adjust_after_replace): Make it back to static. Delete the third - arg text_at_gap_tail. Cancel the code for handling it. - - * coding.h (struct coding_system): New member eol_seen. - - * coding.c (detect_ascii): New function. - (detect_coding): Set coding->head_ascii and coding->eol_seen only - when the source bytes are actually scanned. On detecting for - coding_category_utf_8_auto, call detect_ascii instead of scanning - source bytes directly. - (produce_chars): Call insert_from_gap with the new arg 0. - (encode_coding): Likewise. - (decode_coding_gap): Control ASCII optimization by the variable - disable_ascii_optimization instead of #ifndef .. #endif. - Deccode EOL format according to coding->eol_seen. - (syms_of_coding): Declare disable-ascii-optimization as a Lisp - variable. - - * lisp.h (adjust_after_replace): Cancel externing it. - (insert_from_gap): Adjust prototype. - -2013-03-15 Eli Zaretskii - - * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and - FULLSCREEN_MAXIMIZED. (Bug#13935) - -2013-03-15 Dmitry Antipov - - * region-cache.c (find_cache_boundary, move_cache_gap) - (insert_cache_boundary, delete_cache_boundaries, set_cache_region): - Simplify debugging check and convert to eassert. Adjust comment. - (pp_cache): Put under ENABLE_CHECKING. - -2013-03-14 Eli Zaretskii - - * w32term.c (w32_read_socket) : Remove old - and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE - and WM_ACTIVATEAPP. - (w32fullscreen_hook): If the frame is visible, reset - f->want_fullscreen flag after changing the frame size. If the - frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT. - (Bug#13953) - -2013-03-13 Daniel Colascione - - * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds - too so that these builds can use Cygwin's file conversion - functions. (We've been building and linking cygw32.o all along - and just not using it.) - -2013-03-13 Paul Eggert - - File synchronization fixes (Bug#13944). - * Makefile.in (LIB_FDATASYNC): New macro. - (LIBES): Use it. - * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed. - * fileio.c (Fwrite_region, write_region_inhibit_fsync): - Don't worry about HAVE_FSYNC, since a substitute fsync is - available if the system lacks one. - (Fwrite_regin): Retry fsync if interrupted. - -2013-03-13 Eli Zaretskii - - * w32term.c (w32_read_socket): If the Emacs frame is being - activated, call w32fullscreen_hook, to make sure the new frame - dimensions are in effect. (Bug#13937) - -2013-03-13 Dmitry Antipov - - * xdisp.c (init_iterator): Simplify because both character and byte - positions are either specified or -1. Add eassert. Adjust comment. - * window.c (Fscroll_other_window): Use SET_PT_BOTH because both - character and byte positions can be obtained from marker. - -2013-03-13 Paul Eggert - - Static checking by Sun C 5.12. - * alloc.c (buffer_memory_full) [REL_ALLOC]: - * bytecode.c (exec_byte_code): - * dispnew.c (init_display): - * eval.c (error): - * fileio.c (Fsubstitute_in_file_name): - * keyboard.c (Fevent_convert_list): - * keymap.c (Fsingle_key_description): - * term.c (maybe_fatal, fatal): - * xfns.c (Fx_display_backing_store, Fx_display_visual_class): - * xsmfns.c (Fhandle_save_session): - Omit unreachable code. - * keymap.c (map_keymap_char_table_item): Cast void * to - a function pointer type; the C Standard requires this. - - * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out. - Include unconditionally, as that works elsewhere and - is simpler here. Include if DARWIN_OS || - __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin - and FreeBSD now. - -2013-03-11 Paul Eggert - - * insdel.c (adjust_after_replace): Use bool for boolean. - -2013-03-11 Stefan Monnier - - * keyboard.c: Move keyboard decoding to read_key_sequence. - (decode_keyboard_code): Remove. - (tty_read_avail_input): Don't try to decode input. - (read_decoded_char): New function. - (read_key_sequence): Use it. - -2013-03-10 Daniel Colascione - - * w32term.h (GUISTR, GUI_ENCODE_FILE, GUI_ENCODE_SYSTEM, GUI_FN) - (GUI_SDATA, guichar_t): Macros to abstract out differences between - NTGUI_UNICODE and !NTGUI_UNICODE builds, some moved out of - w32fns.c. - - * w32term.c (construct_drag_n_drop): Use the above macros to make - drag-and-drop work for non-ASCII filenames in cygw32 builds. - - * w32fns.c (x_set_name, x_set_title): Use the above macros to - properly display non-ASCII frame titles in cygw32 builds. - - * w32fns.c (Fw32_shell_execute): Use the above macros to properly - call ShellExecute in cygw32 builds. - - * w32fn.c (Fx_file_dialog): Use the above macros to simplify the - common file dialog code. - - * w32fns.c (Ffile_system_info): Remove from cygw32 builds, which - can just use du like other systems. - - * coding.c (from_unicode_buffer): Declare. - * coding.c (from_unicode_buffer): Implement. - -2013-03-10 Stefan Monnier - - * lread.c: Minor cleanup. - (FROM_FILE_P): New macro. - (skip_dyn_bytes, unreadchar, read1): Use it. - (read_list): Consolidate duplicated code. - - * bytecode.c (struct byte_stack): Remove `constants' when unused. - -2013-03-10 Eli Zaretskii - - * xdisp.c (display_tool_bar_line, redisplay_tool_bar) - (redisplay_internal, set_cursor_from_row, try_window) - (try_window_id, dump_glyph_row, extend_face_to_end_of_line) - (display_line, notice_overwritten_cursor) - (mouse_face_from_buffer_pos, note_mouse_highlight): - Use MATRIX_ROW_DISPLAYS_TEXT_P. - (note_mouse_highlight): Use MATRIX_ROW_GLYPH_START. - (mouse_face_from_string_pos, fast_find_string_pos): - Use MATRIX_ROW_VPOS. - - * xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P. - - * w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P. - - * xdisp.c (try_cursor_movement): Use MATRIX_ROW and - MATRIX_MODE_LINE_ROW. - - * dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW. - -2013-03-10 handa - - * lisp.h (adjust_after_replace): Extern it. - - * coding.c (detect_coding): Cound the heading ASCII bytes in the - case of detection for coding_category_utf_8_auto. - (decode_coding_gap) [not CODING_DISABLE_ASCII_OPTIMIZATION]: - Skip decoding if all bytes are ASCII. - - * insdel.c (adjust_after_replace): Make it public. New arg - text_at_gap_tail. - (adjust_after_insert): Call adjust_after_replace with the new arg - value 0. - -2013-03-09 Stefan Monnier - - * keyboard.h (EVENT_START, EVENT_END, POSN_WINDOW, POSN_POSN) - (POSN_WINDOW_POSN, POSN_TIMESTAMP): Be careful since events may come - from Elisp via unread-command-events. - - * keyboard.c (access_keymap_keyremap): Accept nil return value from - functions to mean "no change". - -2013-03-08 Paul Eggert - - region-cache.c, scroll.c, search.c: Use bool for booleans. - * lisp.h (compile_pattern): - * scroll.c (do_scrolling, do_direct_scrolling): - * search.c (struct regexp_cache, compile_pattern_1) - (compile_pattern, string_match_1, search_command) - (trivial_regexp_p, search_buffer, Freplace_match, match_limit) - (search_regs_saved, Fregexp_quote): - Use bool for boolean. - * region-cache.c (region_cache_forward, region_cache_backward): - Fix comments to match code: these functions return int, not boolean. - -2013-03-08 Dmitry Antipov - - * search.c (find_newline): Accept start and end byte positions - as arguments and allow -1 if not known. - (find_newline_no_quit): Likewise for start position. - * lisp.h (find_newline, find_newline_no_quit): Adjust prototype. - * bidi.c (bidi_find_paragraph_start): Pass byte position to - find_newline_no_quit, thus eliminating CHAR_TO_BYTE. - * editfns.c (Fconstrain_to_field): Break long line. - Adjust call to find_newline. - * indent.c (vmotion): Adjust calls to find_newline_no_quit. - Use DEC_BOTH to start next search from the previous buffer - position, where appropriate. - * xdisp.c (back_to_previous_line_start, forward_to_next_line_start) - (get_visually_first_element, move_it_vertically_backward): Likewise. - Obtain byte position from the display iterator, where appropriate. - -2013-03-08 Paul Eggert - - print.c, process.c: Use bool for booleans. - * lisp.h (wait_reading_process_output): - * print.c (print_output_debug_flag, PRINTDECLARE, printchar) - (strout, debug_output_compilation_hack, float_to_string, print) - (print_object): - * process.c (kbd_is_on_hold, inhibit_sentinels, process_output_skip) - (decode_status, status_message, create_process, create_pty) - (Fmake_network_process, Fnetwork_interface_info) - (wait_reading_process_output, read_process_output) - (write_queue_push, write_queue_pop, process_send_signal) - (handle_child_signal, keyboard_bit_set, kbd_on_hold_p): - * process.h (struct Lisp_Process, inhibit_sentinels, kbd_on_hold_p): - Use bool for booleans. - * process.c (Fnetwork_interface_list): Remove unused local. - (connect_counter): Now EMACS_INT, not int. - -2013-03-08 Dmitry Antipov - - * bidi.c (bidi_fetch_char): Swap first and second arguments - to match other functions accepting character and byte positions. - Adjust comment. - (bidi_resolve_explicit_1, bidi_level_of_next_char): Adjust users. - (bidi_paragraph_init): Likewise. Use DEC_BOTH which is faster - when you need just to move to the previous buffer position. - * xdisp.c (Fcurrent_bidi_paragraph_direction): Use DEC_BOTH. - -2013-03-07 Eli Zaretskii - - * .gdbinit (prowlims): Display the enabled_p flag of the row. - -2013-03-07 Dmitry Antipov - - Avoid character to byte conversions in motion subroutines. - * indent.h (compute_motion, vmotion): Add byte position argument. - * indent.c (compute_motion): Use it and avoid CHAR_TO_BYTE. - Add eassert. - (Fcompute_motion): Break long line. Adjust call to compute_motion. - Use list5 for return value. - (vmotion): Use byte position argument and avoid call to CHAR_TO_BYTE. - Adjust comments, style and calls to compute_motion. - (Fvertical_motion): Adjust call to vmotion. - * window.c (Fdelete_other_windows_internal): Record window start - byte position and adjust call to vmotion. - (window_scroll_line_based): Likewise with call to compute_motion. - Use SET_PT_BOTH. - (Frecenter): Adjust calls to vmotion. - -2013-03-07 Dmitry Antipov - - * lisp.h (list2i, list3i): New functions. - (list4i): Move from window.c and make LISP_INLINE. - * editfns.c (make_lisp_time): - * fns.c (Flocale_info): - * keyboard.c (parse_modifiers): - * xterm.c (x_ewmh_activate_frame): Use list2i. - * instel.c (signal_after_change): - * nsfns.m (Fx_server_version, Fxw_color_values): - * w32fns.c (Fxw_color_values, Fx_server_version): - * xfns.c (Fxw_color_values, Fx_server_version): Use list3i. - * fileio.c (Fvisited_file_modtime): - * nsfns.m (Fns_display_usable_bounds): - * w32.c (ltime): Use list4i. - -2013-03-06 Eli Zaretskii - - * search.c (find_newline_no_quit): Rename from find_next_newline. - Add commentary. - - * lisp.h (find_newline_no_quit): Rename prototype. - - * xdisp.c (back_to_previous_line_start) - (forward_to_next_line_start, get_visually_first_element) - (move_it_vertically_backward): Callers of find_newline_no_quit changed. - * indent.c (vmotion): Callers of find_newline_no_quit changed. - * bidi.c (bidi_find_paragraph_start): Callers of - find_newline_no_quit changed. - - * msdos.c: Change encoding to cp850. (Bug#13879) - (fr_keyboard, it_keyboard, dk_keyboard): Update keyboard layouts. - -2013-03-06 Dmitry Antipov - - Coding system support cleanup and minor refactoring. - * coding.h (enum coding_result_code): Remove - CODING_RESULT_INCONSISTENT_EOL and CODING_RESULT_INSUFFICIENT_MEM. - (toplevel): Remove unused CODING_MODE_INHIBIT_INCONSISTENT_EOL. - (CODING_MODE_LAST_BLOCK, CODING_MODE_SELECTIVE_DISPLAY) - (CODING_MODE_DIRECTION, CODING_MODE_FIXED_DESTINATION) - (CODING_MODE_SAFE_ENCODING): Rearrange bit values. - (decode_coding_region, encode_coding_region, decode_coding_string): - Remove unused compatibility macros. - * coding.c (Qinconsistent_eol, Qinsufficient_memory): Remove. - (record_conversion_result): Adjust user. - (syms_of_coding): Likewise. - (ALLOC_CONVERSION_WORK_AREA): Use SAFE_ALLOCA. - (decode_coding, encode_coding): Add USE_SAFE_ALLOCA and SAFE_FREE. - (decode_coding_object): Simplify since xrealloc never returns NULL. - Add eassert. - -2013-03-06 Paul Eggert - - Fix a build failure on OpenBSD 4.x and MirBSD (Bug#13881). - * sysdep.c (list_system_processes) - [BSD_SYSTEM && !DARWIN_OS && !__FreeBSD__]: - Make it a stub in this case; otherwise the build might fail, - and this code hasn't been tested on such hosts anyway. - Problem reported by Nelson H. F. Beebe in - - and analyzed by Jérémie Courrèges-Anglas in - . - -2013-03-06 Dmitry Antipov - - * lisp.h (find_next_newline_no_quit): Rename to find_next_newline. - * xdisp.c (back_to_previous_line_start, forward_to_next_line_start) - (get_visually_first_element, move_it_vertically_backward): Ajust users. - * bidi.c (bidi_find_paragraph_start): Likewise. - * indent.c (vmotion): Likewise. - -2013-03-05 Paul Eggert - - FILE's lock is now always .#FILE and may be a regular file (Bug#13807). - * filelock.c: Include . - (MAX_LFINFO): New top-level constant. - (lock_info_type): Remove members pid, boot_time. Add members at, - dot, colon. Change user member to be the entire buffer, not a - pointer. This allows us to handle the case where a foreign - pid or boot time exceeds the local range. All uses changed. - (LINKS_MIGHT_NOT_WORK): New constant. - (FREE_LOCK_INFO): Remove, as the pieces no longer need freeing. - (defined_WINDOWSNT): Remove. - (MAKE_LOCK_NAME, file_in_lock_file_name): - Always use .#FILE (not .#-FILE) for the file lock, - even if it is a regular file. - (rename_lock_file): New function. - (create_lock_file): Use it. - (create_lock_file, read_lock_data): - Prefer a symbolic link for the lock file, falling back on a - regular file if symlinks don't work. Do not try to create - symlinks on MS-Windows, due to security hassles. Stick with - POSIXish functions (open, read, write, close, fchmod, readlink, symlink, - link, rename, unlink, mkstemp) when creating locks, as a GNUish - host may be using a Windowsish file system, and cannot use - MS-Windows-only system calls. Fall back on mktemp if mkstemp - doesn't work. Don't fail merely because of a symlink-contents - length limit in the current file system; fall back on regular - files. Increase the symlink contents length limit to 8 KiB, this - should be big enough for any real use and doesn't crunch the - stack. - (create_lock_file, lock_file_1, read_lock_data): - Simplify allocation of lock file buffers now that they fit in 8 KiB. - (lock_file_1): Return error number, not bool. All callers changed. - (ELOOP): New macro, if not already defined. - (read_lock_data): Return size of lock file contents, not Lisp object. - All callers changed. Handle a race condition if some other process - replaces a regular-file lock with a symlink lock or vice versa, - while we're trying to read the lock. - (current_lock_owner): Parse contents more carefully, to help avoid - confusing a regular-file lock with some other application's use - of the file. Check for lock file contents being too long, or - not parsing correctly. - (current_lock_owner, lock_file): - Allow foreign pid and boot times that exceed the local range. - (current_lock_owner, lock_if_free, lock_file): - Simplify allocation of lock file contents. - * w32.c (sys_rename_replace): New function, containing most of - the contents of the old sys_rename. - (sys_rename): Use it. - (fchmod): New dummy function. - * w32.h (sys_rename_replace, fchmod): New decls. - -2013-03-05 Eli Zaretskii - - * bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or - bidi_count_bytes, as the callers now arrange for bidi_it->charpos - to be in sync with bidi_it->bytepos. Suggested by Dmitry Antipov - . - -2013-03-05 Dmitry Antipov - - * composite.c (get_composition_id, fill_gstring_header): - Use make_uninit_vector where appropriate. - * font.c (Ffont_get_glyphs, build_style_table): Likewise. - * xselect.c (clean_local_selection_data): Likewise. - -2013-03-04 Paul Eggert - - Fix misuse of ImageMagick that caused core dump (Bug#13846). - * image.c (imagemagick_load_image): Calculate height and width - after flattening the image, not before. - -2013-03-04 Dmitry Antipov - - * font.c (Ffont_get_glyphs): Use convenient LGLYPH_NEW. - * ftfont.c (ftfont_shape_by_flt): Likewise. - * w32uniscribe.c (uniscribe_shape): Likewise. - -2013-03-02 Paul Eggert - - The lock for FILE is now .#FILE or .#-FILE (Bug#13807). - The old approach, which fell back on DIR/.#FILE.0 through - DIR/.#FILE.9, had race conditions that could not be easily fixed. - If DIR/.#FILE is a non-symlink file, Emacs now does not create a - lock file for DIR/FILE; that is, DIR/FILE is no longer partly - protected by a lock if DIR/.#FILE is a non-symlink file ("partly" - because the locking mechanism was never reliable in that case). - This patch fixes this and other bugs discovered by a code - inspection that was prompted by - . - Also, this patch switches to .#-FILE (not .#FILE) on MS-Windows, - to avoid interoperability problems between the MS-Windows and - non-MS-Windows implementations. MS-Windows and non-MS-Windows - instances of Emacs now ignore each others' locks. - * filelock.c (defined_WINDOWSNT): New constant. - (MAKE_LOCK_NAME, fill_in_lock_file_name): - Don't create DIR/.#FILE.0 through DIR/.#FILE.9. Instead, create - DIR/.#FILE symlinks on non-MS-Windows hosts, and DIR/.#-FILE - regular files on MS-Windows hosts. - (MAKE_LOCK_NAME, unlock_file, Ffile_locked_p): - Use SAFE_ALLOCA to avoid problems with long file names. - (MAX_LFINFO): Now a local constant, not a global macro. - (IS_LOCK_FILE): Remove. - (lock_file_1): Don't inspect errno if symlink call succeeds; - that's not portable. - (lock_file): Document that this function can return if lock - creation fails. - (lock_file): Don't access freed storage. - -2013-03-02 Andreas Schwab - - * lisp.h (XPNTR) [!USE_LSB_TAG]: Remove extra paren. (Bug#13734) - -2013-03-02 Paul Eggert - - * textprop.c: Use bool for booleans. - (validate_interval_range, Fadd_text_properties) - (Fremove_text_properties): Prefer bool to int when either works. - -2013-03-02 Eli Zaretskii - - * textprop.c (Fadd_text_properties, Fremove_text_properties): - If the interval tree changes as a side effect of calling - modify_region, re-do processing starting from the call to - validate_interval_range. (Bug#13743) - -2013-02-28 Eli Zaretskii - - * w32.c (sys_open): Don't reset the flags for FD in fd_info[]. - (Bug#13546). - -2013-02-27 Eli Zaretskii - - * filelock.c (create_lock_file) [WINDOWSNT]: Use _sopen with - _SH_DENYRW flag, instead of emacs_open, to deny any other process - access to the lock file until it is written and closed. - (Bug#13807) - -2013-02-27 Paul Eggert - - * callint.c (Qcall_interactively): - * macros.c (Qexecute_kbd_macro): - Now static. - -2013-02-26 Bastien Guerry - - * window.c (Frecenter): Tiny docstring enhancement. - -2013-02-26 Paul Eggert - - Minor textprop integer cleanup. - * intervals.h, textprop.c (add_text_properties_from_list): - Return void, not int, since nobody uses the return value. - * textprop.c (validate_plist, add_properties, remove_properties) - (Fadd_text_properties): - Don't assume list length fits in int. - (interval_has_all_properties, interval_has_some_properties) - (interval_has_some_properties_list, add_properties, remove_properties) - (Fadd_text_properties, Fremove_text_properties) - (Fremove_list_of_text_properties, text_property_stickiness): - Use bool for booleans. - (Fadd_text_properties, Fremove_text_properties): - (Fremove_list_of_text_properties): - Reindent do-while as per GNU style. - -2013-02-25 Eli Zaretskii - - Implement CLASH_DETECTION for MS-Windows. - - * filelock.c [WINDOWSNT]: Include w32.h. - (MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime - function of that name. Up-case the macro arguments. - (IS_LOCK_FILE): New macro. - (fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK. - (create_lock_file): New function, with body extracted from - lock_file_1. - [WINDOWSNT]: Implement lock files by writing a regular file with - the lock information as its contents. - (read_lock_data): New function, on Posix platforms just calls - emacs_readlinkat. - [WINDOWSNT]: Read the lock info from the file. - (current_lock_owner): Call read_lock_data instead of calling - emacs_readlinkat directly. - (lock_file) [WINDOWSNT]: Run the file name through - dostounix_filename. - - * w32proc.c (sys_kill): Support the case of SIG = 0, in which case - just check if the process by that PID exists. - - * w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is - also present, as doing so will fail to error out if the file - already exists. - - * makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h. - - * textprop.c (Fadd_text_properties, Fremove_text_properties) - (Fremove_list_of_text_properties): Skip all of the intervals in - the region between START and END that already have resp. don't - have the requested properties, not just the first one. - Add assertions that the loop afterwards always modifies the - properties. (Bug#13743) - -2013-02-25 Stefan Monnier - - * callint.c (Fcall_interactively): Use the right lexical environment - for `interactive' specs (bug#13811). - * eval.c (Feval): Accept a lexical environment. - -2013-02-25 Paul Eggert - - Simplify data_start configuration (Bug#13783). - This is a followon simplification to the fix for Bug#13650. - * Makefile.in (LD_FIRSTFLAG, LIB_GCC, CRT_DIR, LIB_STANDARD) - (START_FILES): Remove. All uses removed. - (otherobj): Remove $(VMLIMIT_OBJ), as it's now first. - (ALLOBJS): Move here from autodeps.mk, and with VMLIMITS_OBJ first. - (buildobj.h): Use it. - ($(ALLOBJS)): Depend on globals.h. - (temacs$(EXEEXT)): Use $(ALLOBJS). - * autodeps.mk (ALLOBJS): Move to Makefile.in. - * deps.mk (vm-limit.o): - * makefile.w32-in ($(BLD)/vm-limit.$(O)): - Do not depend on mem-limits.h. - * emacs.c (__do_global_ctors, __do_global_ctors_aux) - (__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__) - [__GNUC__ && !ORDINARY_LINK]: Remove. - * mem-limits.h, pre-crt0.c: Remove. - * unexaix.c, unexcoff.c: Don't include mem-limits.h. - * unexcoff.c (etext): New decl. - (make_hdr): Use DATA_START instead of start_of_data. - * vm-limit.c: Move most of mem-limits.h's contents here. - (data_start): New decl. It's OK if this is approximate, - so simplify-away some unnecessary exactness. - (POINTER): Remove; all uses removed. - (data_space_start): Now char *, to avoid casts. - (exceeds_lisp_ptr): New function, replacing the old - EXCEEDS_LISP_PTR macro. All uses changed. - (check_memory_limits): Simplify and remove casts. - (start_of_data) [!CANNOT_DUMP || !SYSTEM_MALLOC]: Remove. - (memory_warnings): Use data_start instead of start_of_data. - -2013-02-24 Andreas Schwab - - * xdisp.c (set_message): Only check for debug-on-message if STRING - is a string. (Bug#13797) - -2013-02-24 Paul Eggert - - Fix regression introduced by July 10 filelock.c patch. - * filelock.c (fill_in_lock_file_name): Fix crash caused by the - 2012-07-10 patch to this file. Reported by Eli Zaretskii in - - and diagnosed by Andreas Schwab in - . - -2013-02-22 Paul Eggert - - Assume C89 or better. - * ralloc.c (SIZE, POINTER, NIL): - * vm-limit.c (POINTER): - Remove, replacing all uses with C89 equivalents. These old - symbols were present only for porting to pre-C89 platforms. - -2013-02-22 Claudio Bley - - * w32.c (emacs_gnutls_pull): Don't call 'select', and don't loop. - This avoids warning messages reported as part of Bug#13546. - -2013-02-21 Ken Brown - - * sheap.c (report_sheap_usage): Fix arguments of message1_no_log. - -2013-02-20 Stefan Monnier - - * sheap.c (report_sheap_usage): Prefer message1_nolog. - - * keyboard.c (Qcommand_execute): New var. - (command_loop_1, read_char): Use it. - (Fcommand_execute): Remove, replace by an Elisp implementation. - (syms_of_keyboard): Adjust accordingly. - -2013-02-19 Daniel Colascione - - * sheap.c (report_sheap_usage): Use message, not message1, so - that we don't try to create a buffer while we're in the middle - of dumping Emacs. Explain why. - -2013-02-20 Dmitry Antipov - - * search.c (find_newline): Return byte position in bytepos. - Adjust comment. - (find_next_newline_no_quit, find_before_next_newline): - Add bytepos argument. - * lisp.h (find_newline, find_next_newline_no_quit) - (find_before_next_newline): Adjust prototypes. - * bidi.c (bidi_find_paragraph_start): - * editfns.c (Fconstrain_to_field, Fline_end_position): - * indent.c (compute_motion, vmotion): - * xdisp.c (back_to_previous_line_start, forward_to_next_line_start): - (get_visually_first_element, move_it_vertically_backward): - Adjust users and avoid calls to CHAR_TO_BYTE where appropriate. - -2013-02-19 Eli Zaretskii - - * w32proc.c (new_child): Avoid leaking handles if the subprocess - resources were not orderly released. - -2013-02-17 Eli Zaretskii - - * xdisp.c (x_draw_vertical_border): For a window that is neither - the leftmost nor the rightmost, redraw both the left and the right - vertical borders. (Bug#13723) - -2013-02-17 Stefan Monnier - - * xml.c (init_libxml2_functions): - * sound.c (sound_warning): - * sheap.c (report_sheap_usage): - * process.c (wait_reading_process_output): - * msdos.c (XMenuActivate): - * macros.c (Fstart_kbd_macro, Fend_kbd_macro): - * keyboard.c (top_level_1): - * editfns.c (Fmessage, Fmessage_box): - * callint.c (Fcall_interactively): - * fns.c (Fyes_or_no_p): Prefer `message1' over `message'. - -2013-02-17 Jan Djärv - - * xterm.c (syms_of_xterm): Move scroll-bar-adjust-thumb-portion ... - * frame.c (syms_of_frame): ... to here. - -2013-02-16 Eli Zaretskii - - * w32.c (sys_chown): Remove unused function. - - * w32term.c : Declare 'volatile' - unconditionally. (Bug#9066) - - * w32.c (set_errno): Reset h_errno and don't set it to any other - value. Set errno instead. - (check_errno): Reset h_errno. - (sys_socket, socket_to_fd, sys_bind, sys_connect) - (sys_gethostname, sys_getservbyname, sys_getpeername) - (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname) - (sys_accept, sys_recvfrom, sys_sendto, fcntl, sys_read): Don't set - h_errno. - (sys_gethostbyname): Set h_errno only errors detected. - -2013-02-15 Paul Eggert - - * process.c (h_errno) [!HAVE_H_ERRNO]: Remove unused decl. - -2013-02-15 Eli Zaretskii - - * keyboard.c (read_char): Fix calculation of auto-save time out - when auto-save-timeout is less than 4. (Bug#13720) - - * w32proc.c (new_child): Free up to 2 slots of dead processes at a - time. Improve diagnostics in DebPrint. (Bug#13546) - - * w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname) - (sys_gethostbyname, sys_getservbyname, sys_getpeername) - (sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname) - (sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure, - make sure errno is set to an appropriate value. (Bug#13546) - (socket_to_fd): Add assertion against indexing fd_info[] with a - value that is out of bounds. - (sys_accept): If fd is negative, do not set up the child_process - structure for reading. - -2013-02-15 Dmitry Antipov - - * composite.c (fill_gstring_header): Remove useless prototype. - Break long line. - * lisp.h (message_dolog, compile_pattern): Adjust prototype. - * print.c (PRINTDECLARE, print_object): - * search.c (compile_pattern, fast_looking_at, search_buffer): - (simple_search, boyer_moore, Freplace_match): - * xdisp.c (c_string_pos, number_of_chars, message_dolog): - (get_overlay_arrow_glyph_row, display_mode_element): - (decode_mode_spec_coding, message3): - * xfaces.c (face_at_string_position): Use bool for booleans. - Adjust comments. - -2013-02-15 Paul Eggert - - Fix AIX port (Bug#13650). - * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]: - Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set, - was #undeffed earlier, so it cannot be used as a macro here. - Use the constant and not the macro. - -2013-02-15 Eli Zaretskii - - * w32proc.c (new_child): If no vacant slots are found in - child_procs[], make another pass looking for slots whose process - has exited or died. (Bug#13546) - - * w32.c (sys_pipe): When failing due to file descriptors above - MAXDESC, set errno to EMFILE. - (_sys_read_ahead): Update cp->status when failing to read serial - communications input, so that the status doesn't stay at - STATUS_READ_IN_PROGRESS. (Bug#13546) - -2013-02-14 Jan Djärv - - * gtkutil.c (tb_size_cb): New function. - (xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512). - -2013-02-14 Stefan Monnier - - * keyboard.c (active_maps): Fcurrent_active_maps expects a position, not - an event. - -2013-02-13 Stefan Monnier - - * keyboard.c (syms_of_keyboard): Further tweaks of docstring. - -2013-02-13 Dmitry Antipov - - * font.c (font_range): Add pos_byte argument. Adjust comment - and break long line. - * font.h (font_range): Adjust prototype. - * composite.c (autocmp_chars): Pass byte position to font_range. - Break long line. Remove useless prototype and format comment. - -2013-02-13 Glenn Morris - - * keyboard.c (input-decode-map, key-translation-map): Doc fixes. - -2013-02-13 Paul Eggert - - Improve AIX port some more (Bug#13650). - With this, it should be as good as it was in 23.3, though it's - still pretty bad: the dumped emacs does not run. See Mark Fleishman in - http://lists.gnu.org/archive/html/help-gnu-emacs/2011-04/msg00287.html - * unexaix.c (start_of_text): Remove. - (_data, _text): Declare as char[], not int, as AIX manual suggests. - (bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr) - (orig_load_scnptr, orig_data_scnptr): - Now off_t, not long, since they are file offsets. - (make_hdr): Use _data, not start_of_data (). - This is the key part of the fix. - (make_hdr, unrelocate_symbols): Use off_t for file offsets. - (unrelocate_symbols): Cast pointers to intptr_t, not to ulong. - - * pre-crt0.c (data_start): Initialize to 1. - This ports to compilers that optimize the external declaration - 'int x = 0;' as if it were 'int x;' to shrink the executable. - - Improve AIX port (Bug#13650). - This doesn't fix the bug, but it makes progress: Emacs builds now. - * unexaix.c: Include inttypes.h, stdarg.h. - (report_error, report_error_1): Mark as _Noreturn. - (report_error): Don't report the wrong errno. - (report_error_1): Now varargs. All callers changed. - (make_hdr): Use uintptr_t, not unsigned, when converting pointers - to unsigned. Don't use ADDR_CORRECT, as it no longer exists. - (write_ptr): Use %p to print address rather than %lx and a cast - to unsigned long. Grow buffer a bit, to be safer. - -2013-02-13 Eli Zaretskii - - * bidi.c (bidi_resolve_neutral): After finding the next - non-neutral character, accept NEUTRAL_ON type as well, because - directional control characters, such as LRE and RLE, have their - type converted to that by bidi_resolve_weak. This avoids aborts - when LRE/RLE follows a run of neutrals. - (bidi_move_to_visually_next): Assert that return value of - bidi_peek_at_next_level is non-negative. Negative values will - cause an infloop. - -2013-02-13 Paul Eggert - - Minor getenv-related fixes. - * callproc.c (Fcall_process_region) [!DOS_NT]: - Avoid unnecessary duplicate call to getenv. - * callproc.c (init_callproc): - * dispnew.c (init_display): - * sysdep.c (sys_subshell): - Omit unnecessary cast of getenv or egetenv. - -2013-02-13 Juanma Barranquero - - * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/sysdep.$(O)): - Update dependencies. - -2013-02-12 Eli Zaretskii - - * xdisp.c (redisplay_internal): Don't set w->region_showing to the - marker's position. - (display_line): Set w->region_showing to the value of - it->region_beg_charpos, not to -1. This fixes redisplay - optimization when cursor is moved up after M->. (Bug#13623) - (Bug#13626) - (try_scrolling): Scroll text up more if point is too close to ZV - and inside the scroll margin. This makes sure point is moved - outside the scroll margin in these cases. - - * window.h (struct window): region_showing can no longer be - negative. - -2013-02-11 Paul Eggert - - Tune by using memchr and memrchr. - * doc.c (Fsnarf_documentation): - * fileio.c (Fsubstitute_in_file_name): - * search.c (find_newline, scan_newline): - * xdisp.c (pos_visible_p, display_count_lines): - Use memchr and memrchr rather than scanning byte-by-byte. - * search.c (find_newline): Rename from scan_buffer. - Omit first arg TARGET, as it's always '\n'. All callers changed. - - Clean up read_key_sequence a tiny bit more. - * keyboard.c (read_char_x_menu_prompt) [HAVE_MENUS]: - (read_key_sequence): Remove unused locals. - -2013-02-11 Stefan Monnier - - Clean up read_key_sequence a bit; reread active keymaps after first event. - * keyboard.c (read_char, read_char_x_menu_prompt) - (read_char_minibuf_menu_prompt): - Replace nmaps+maps with a single `map' arg. - (follow_key): Operate on a single map. - (active_maps): New function. - (test_undefined): Also return true for nil bindings. - (read_key_sequence): Use active_maps to replace the arrays of keymaps with - a single (composed) keymap. Remember `first_event' to choose the right - set of active keymaps. Recompute the set of keymaps after receiving - the first event. Remove GOBBLE_FIRST_EVENT. - (syms_of_keyboard): Remove inhibit_local_menu_bar_menus. - * keyboard.h (read_char): Update declaration. - * lread.c (read_filtered_event): Adjust call to read_char. - -2013-02-11 Eli Zaretskii - - * xdisp.c (move_it_vertically_backward, move_it_by_lines): - Don't use the limitation on backwards movement when lines are truncated - in the window. (Bug#13675) - -2013-02-11 Dmitry Antipov - - * marker.c (set_marker_internal): If desired position is passed - as a marker, avoid call to buf_charpos_to_bytepos. - * window.c (Fset_window_point): Omit redundant type checking. - (Fset_window_start): Likewise. Format comment. - (window_scroll_pixel_based): Use set_marker_restricted_both - with character and byte positions obtained from an iterator. - (Fset_window_configuration): Use set_marker_restricted_both. - * xdisp.c (message_dolog): Likewise. - -2013-02-10 Eli Zaretskii - - * xdisp.c (move_it_vertically_backward, move_it_by_lines): - When text lines are longer than window's screen lines, don't move back - too far. This speeds up some redisplay operations. (Bug#13675) - -2013-02-10 Dmitry Antipov - - * syntax.c (scan_sexps_forward): Fix byte position calculation - Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change. - -2013-02-10 Paul Eggert - - * fileio.c (Fexpand_file_name): Omit confusing pointer comparison - that was not needed. - -2013-02-09 Paul Eggert - - Minor hashing refactoring. - * fns.c (SXHASH_REDUCE): Move to lisp.h. - (sxhash_float): Return EMACS_UINT, for consistency with the other - hash functions. - * lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a - non-static inline function and therefore can't use static vars. - (SXHASH_REDUCE): Move here from fns.c, and make it inline. - * profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent - with the other hash functions. - -2013-02-09 Eli Zaretskii - - * callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the - XXXXXX part of the temporary file pattern is not downcased even - when w32-downcase-file-names is non-nil. (Bug#13661) - - * xdisp.c (decode_mode_spec): Remove handling of %t. - - * msdos.c (careadlinkatcwd): Remove. - -2013-02-08 Stefan Monnier - - * lread.c (skip_dyn_bytes): New function (bug#12598). - (read1): Use it. Use getc instead of READCHAR to read bytes. - (load_each_byte): Remove. Update users. - -2013-02-08 Dmitry Antipov - - * search.c (scan_buffer): Calculate end byte position just once. - (scan_newline): Do not recalculate start_byte. - (search_command): Use eassert. - * syntax.c (struct lisp_parse_state): New member location_byte. - (scan_sexps_forward): Record from_byte and avoid redundant - character to byte position calculation ... - (Fparse_partial_sexp): ... here. Break too long line. - -2013-02-08 Dmitry Antipov - - * lisp.h (make_uninit_vector): New function. - * alloc.c (Fvector, Fmake_byte_code): - * ccl.c (Fregister_ccl_program): - * charset.c (Fdefine_charset_internal, define_charset_internal): - * coding.c (make_subsidiaries, Fdefine_coding_system_internal): - * composite.c (syms_of_composite): - * font.c (Fquery_font, Ffont_info, syms_of_font): - * fontset.c (FONT_DEF_NEW, Fset_fontset_font): - * ftfont.c (ftfont_shape_by_flt): - * indent.c (recompute_width_table): - * nsselect.m (clean_local_selection_data): - * syntax.c (init_syntax_once): - * w32unsubscribe.c (uniscribe_shape): - * window.c (Fcurrent_window_configuration): - * xfaces.c (Fx_family_fonts): - * xselect.c (selection_data_to_lisp_data): Use it. - -2013-02-07 Dmitry Antipov - - * coding.c (Fdefine_coding_system_internal): Use AREF where - argument is known to be a vector. - * fns.c (Flocale_info): Likewise for ASET. - * xselect.c (selection_data_to_lisp_data): Likewise for ASET. - * w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF. - -2013-02-05 Jan Djärv - - * nsmenu.m (update_frame_tool_bar): Check for negative tool bar - height. - - * nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7. - (EmacsView): Add fs_is_native, fsIsNative, isFullscreen and - updateCollectionBehaviour. - - * nsterm.m (NEW_STYLE_FS): Remove. - (ns_last_use_native_fullscreen): New variable. - (x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen. - (x_set_window_size): Do not take title bar and tool bar into account - if isFullscreen returns YES. - (ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen. - (check_native_fs): New function. - (ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS. - (ns_term_init): Remove NEW_STYLE_FS. - (updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar - and tool bar if isFullscreen returns NO. - (windowDidResize:): Replace NEW_STYLE_FS with fsIsNative. - (initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS - with HAVE_NATIVE_FS. - (window:willUseFullScreenPresentationOptions:): New method. - (windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative. - Hide toolbar if not enabled (Bug#13444). - (windowDidExitFullScreen:): Call updateCollectionBehaviour. - Restore tool bar if enabled, hide it otherwise (Bug#13444). - (fsIsNative, isFullscreen, updateCollectionBehaviour): New methods. - (toggleFullScreen:): If fs_is_native, call toggleFullScreen on - window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0. - Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring - FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs. - (syms_of_nsterm): Add ns-use-native-fullscreen. - -2013-02-04 Paul Eggert - - * fileio.c (Qchoose_write_coding_system): Now static. - -2013-02-04 Eli Zaretskii - - * xdisp.c (window_buffer_changed): region_showing can be negative, - which still means region is being displayed. - (redisplay_internal): Resurrect code that forced redisplay of the - whole window when showing region and the mark has changed. - Record the new mark position to allow redisplay optimizations. - (display_line): If it->region_beg_charpos is non-zero, set the - window's region_showing member to -1. (Bug#13623) (Bug#13626) - - * window.h (struct window) : Declare ptrdiff_t, - not bitfield of 1 bit. - -2013-02-03 Daniel Colascione - - * emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that - daemon mode works on cygw32 when Emacs is installed and not just - during development. - -2013-02-02 Paul Eggert - - Avoid file time stamp bug on MS-Windows (Bug#13149). - * fileio.c (Fwrite_region): Don't use the heuristic on empty files, - as FAT32 doesn't update time stamps when truncating them. - Also, check that a file time stamp is not a multiple of 100 ns; - this should catch all instances of the problem on MS-Windows, - as its native file system resolution is 100 ns or worse, and - checking for a non-multiple of 100 ns should impose only a small - overhead on systems with ns resolution. - -2013-02-02 Eli Zaretskii - - Avoid encoding file names on MS-Windows when they need to be run - through dostounix_filename. - * w32.c (normalize_filename): Accept an additional argument - MULTIBYTE; if non-zero, traverse the file name by bytes and don't - downcase it even if w32-downcase-file-names is non-nil. - (dostounix_filename): Accept an additional argument MULTIBYTE and - pass it to normalize_filename. - (emacs_root_dir): Adjust. - - * msdos.h (dostounix_filename): Adjust prototype. - - * w32.h (dostounix_filename): Adjust prototype. - - * msdos.c (dostounix_filename): Accept an additional argument and - ignore it. - (init_environment): Adjust callers of dostounix_filename. - - * fileio.c (Ffile_name_directory, file_name_as_directory) - (directory_file_name, Fexpand_file_name) - (Fsubstitute_in_file_name): [DOS_NT] Adjust call to - dostounix_filename. - [WINDOWSNT]: Downcase file names if w32-downcase-file-names is - non-nil. - (Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment - variables, as egetenv is case-insensitive for DOS_NT. - - * dired.c (file_name_completion): Don't call Fdirectory_file_name - with an encoded file name. - - * w32proc.c (Fw32_short_file_name, Fw32_long_file_name): - Adjust calls to dostounix_filename. - - * w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename. - - * unexw32.c (unexec): Adjust call to dostounix_filename. - - * termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename. - - * emacs.c (decode_env_path) [DOS_NT]: Adjust call to - dostounix_filename. - - * callproc.c (Fcall_process) [MSDOS]: Adjust call to - dostounix_filename. - - * callproc.c (Fcall_process): Make sure program name in PATH and - new_argv[0] is encoded, if needed. Otherwise, un-encoded string - is passed to exec/spawnve, which fails unless the file-name - encoding is UTF-8. - - * w32proc.c (sys_spawnve): Make sure escape_char is initialized, - even if w32-quote-process-args is nil. - -2013-02-01 Paul Eggert - - Fix timestamp bug when write-region appends nothing (Bug#13149). - * fileio.c (Fwrite_region): When neither O_EXCL nor O_TRUNC is used, - the file's time stamp doesn't change if Emacs happens to write nothing - to the file, and on a buggy file system this could cause Emacs to - incorrectly infer that the file system doesn't have the bug. - Avoid this problem by inhibiting the inference in this case. - -2013-02-01 Dmitry Antipov - - * window.h (struct window): Convert base_line_number, base_line_pos - and column_number_displayed members from Lisp_Object to ptrdiff_t. - Convert region_showing member from Lisp_Object to bitfield. - Remove sequence_number member. Adjust comments. - * window.c (sequence_number): Remove. - (make_window): Initialize column_number_displayed. - * print.c (print_object): Follow the printed representation of - frames and print window pointer to distinguish between windows. - (adjust_window_count): Invalidate base_line_pos. Adjust comment. - * xdisp.c (wset_base_line_number, wset_base_line_pos) - (wset_column_number_displayed, wset_region_showing): Remove. - (window_buffer_changed, mode_line_update_needed, redisplay_internal) - (try_scrolling, try_cursor_movement, redisplay_window) - (try_window_reusing_current_matrix, try_window_id, display_line) - (display_mode_lines, decode_mode_spec): Adjust users. - * .gdbinit (pwinx): Do not print sequence_number. - -2013-02-01 Paul Eggert - - Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539). - * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove. - * dired.c: Include . - (open_directory): New function, which uses open and fdopendir - rather than opendir. DOS_NT platforms still use opendir, though. - (directory_files_internal, file_name_completion): Use it. - (file_attributes): New function, with most of the old Ffile_attributes. - (directory_files_internal, Ffile_attributes): Use it. - (file_attributes, file_name_completion_stat): First arg is now fd, - not dir name. All uses changed. Use fstatat rather than lstat + - stat. - (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p. - * fileio.c: Include , . - (emacs_readlinkat): New function, with much of the old - Ffile_symlink_p, but with an fd argument for speed. - It uses readlinkat rather than careadlinkatcwd, so that it - need not assume the working directory. - (Ffile_symlink_p): Use it. - * filelock.c (current_lock_owner): Use emacs_readlinkat - rather than emacs_readlink. - * lisp.h (emacs_readlinkat): New decl. - (READLINK_BUFSIZE, emacs_readlink): Remove. - * sysdep.c: Do not include , . - (emacs_norealloc_allocator, emacs_readlink): Remove. - This stuff is moved to fileio.c. - * w32.c (fstatat, readlinkat): New functions. - (careadlinkat): Don't check that fd == AT_FDCWD. - (careadlinkatcwd): Remove; no longer needed. - -2013-01-31 Glenn Morris - - * fileio.c (choose_write_coding_system): Make it callable from Lisp. - (Fwrite_region): Update for new choose_write_coding_system args. - Move the last piece of choose_write_coding_system here. (Bug#13522) - (syms_of_fileio): Add choose-write-coding-system. - -2013-01-30 Eli Zaretskii - - * w32.c (sys_open): Zero out the flags for the new file descriptor. - (sys_close): Zero out the flags for the file descriptor before - closing it. (Bug#13546) - - * w32.c (parse_root, get_volume_info, readdir, read_unc_volume) - (logon_network_drive, stat_worker, symlink, chase_symlinks): - Use CharNextExA and CharPrevExA to iterate over file names encoded in - DBCS. (Bug#13553) - - * w32.c (w32_get_long_filename, init_environment, readlink): - Support file names encoded in DBCS codepages. - (readlink): Use the current file-name-coding-system, not the ANSI - codepage, to decode and handle targets of symlinks. - -2013-01-28 Eli Zaretskii - - * w32.c (opendir): Now accepts a 'const char *'. - -2013-01-28 Dmitry Antipov - - Remove obsolete redisplay code. See the discussion at - http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00576.html. - * dispnew.c (preemption_period, preemption_next_check): Remove. - (Vredisplay_preemption_period): Likewise. - (update_frame, update_single_window, update_window, update_frame_1): - Adjust users. Always assume that PERIODIC_PREEMPTION_CHECKING is not - used, following the 2012-06-22 change. - -2013-01-25 Eli Zaretskii - - * w32notify.c (Fw32notify_add_watch): Doc fix. (Bug#13540) - -2013-01-25 Dmitry Antipov - - * font.c (num_fonts): Remove the leftover from old - debugging code. Adjust comment style here and there. - * insdel.c (insert_1): Remove. - * lisp.h (insert_1): Remove prototype. - * xdisp.c (message_dolog): Adjust users to call insert_1_both. - -2013-01-25 Eli Zaretskii - - * w32.c (max_filename_mbslen): New function. - (normalize_filename, readdir): Use it to detect locales where ANSI - encoding of file names uses a double-byte character set (DBCS). - If a DBCS encoding is used, advance by characters using - CharNextExA, instead of incrementing a 'char *' pointer. - Use _mbslwr instead of _strlwr. (Bug#13515) - - * w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial - request of memory reservation to 1.7GB. (Bug#13065) - -2013-01-25 Andreas Schwab - - * coding.c (detect_coding_iso_2022): Move back mis-reordered code - at check_extra_latin label. (Bug#13505) - -2013-01-24 Dmitry Antipov - - * nsfont.m (ns_escape_name, ns_unescape_name, ns_registry_to_script): - Avoid redundant calls to strlen. - -2013-01-24 Dmitry Antipov - - Drop async_visible and async_iconified fields of struct frame. - This is possible because async input is gone; for details, see - http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00734.html. - * frame.h (struct frame): Remove async_visible and async_iconified - members, convert garbaged to unsigned bitfield. Adjust comments. - (FRAME_SAMPLE_VISIBILITY): Remove. Adjust all users. - (SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros. - * frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c: - Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED, - FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate. - * w32term.c: Ditto. - (w32_read_socket): Save iconified state to generate DEICONIFY_EVENT - properly. Likewise for obscured. - * xterm.c: Ditto. - (handle_one_xevent): Save visible state to generate ICONIFY_EVENT - properly. - * nsterm.m: Ditto. - (windowDidDeminiaturize): Generate DEICONIFY_EVENT. - -2013-01-24 Dmitry Antipov - - * insdel.c (prepare_to_modify_buffer): Revert last change as suggested - in http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00555.html. - -2013-01-23 Stefan Monnier - - * xdisp.c (message2, message2_nolog): Remove functions. - (message3, message3_nolog): Extract nbytes and multibyteness directly - from the string. Change all callers. - (message3_nolog): Don't set message_enable_multibyte since set_message - will reset it anyway. - (message1, message1_nolog): Use message3. - (vmessage): Use a stack allocated buffer rather than f->message_buf. - (with_echo_area_buffer): Remove last two arguments. Update all callers. - (set_message): Drop all but the second arg, which has to be a string. - (set_message_1): Simplify now that we know that a1 is NULL and the - second arg is a string. - * frame.h (struct frame): Remove `message_buf' field. - Use glyphs_initialized_p instead. - (FRAME_MESSAGE_BUF): Remove macro. - * w16select.c (Fw16_set_clipboard_data): Prefer message3 to message2. - * lisp.h (message2, message2_nolog): Remove declarations. - (message3, message3_nolog): Update declarations. - * keyboard.c (read_char_minibuf_menu_text) - (read_char_minibuf_menu_width): Remove vars. - (read_char_minibuf_menu_prompt): Rewrite the menu's construction so as - to correctly handle multibyte strings. - * frame.c (delete_frame): Don't free message_buf any more. - * editfns.c (message_text, message_length): Remove vars. - (Fmessage_box): Don't copy the Lisp string's bytes any longer. - * fileio.c (auto_save_error): Use message3 instead of message2. - * dispnew.c (adjust_frame_message_buffer): Remove function. - -2013-01-23 Eli Zaretskii - - * w32term.c (w32fullscreen_hook): Account correctly for the screen - real estate used for the tool bar and the menu bar. - -2013-01-23 Dmitry Antipov - - * insdel.c (prepare_to_modify_buffer): Force redisplay if - hidden buffer is prepared to modification (Bug#13164). - -2013-01-22 Dmitry Antipov - - * window.h (struct window): Change window_end_valid member from - Lisp_Object to a bitfield. Adjust comments. - (wset_window_end_valid): Remove. - * window.c (adjust_window_count): Clear window_end_valid. - (Fwindow_end): Adjust user. Remove ancient #if 0 code. - (Fwindow_line_height, set_window_buffer, Frecenter) - (Fsplit_window_internal, Fdelete_other_windows_internal) - (Fset_window_fringes, Fset_window_scroll_bars): Adjust users. - * dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise. - * xdisp.c (check_window_end, reconsider_clip_changes) - (redisplay_internal, mark_window_display_accurate_1, redisplay_window) - (try_window, try_window_reusing_current_matrix, note_mouse_highlight) - (find_first_unchanged_at_end_row, try_window_id): Likewise. - -2013-01-22 Dmitry Antipov - - * xdisp.c (mark_window_display_accurate): Simplify the loop - assuming that the only one of vchild, hchild or buffer window - slots is non-nil. Call mark_window_display_accurate_1 for - the leaf windows only. - (mark_window_display_accurate_1): Always assume leaf window. - Adjust comment. - -2013-01-22 Paul Eggert - - * emacs.c (Qkill_emacs_hook): Now static. - - * fileio.c (Finsert_file_contents): Simplify. - Remove unnecessary assignments and tests. - -2013-01-21 Eli Zaretskii - - * w32.c (acl_set_file): Don't test for errors unless - set_file_security returns FALSE. Avoids spurious errors when - saving files. - -2013-01-21 Dmitry Antipov - - * fileio.c (Finsert_file_contents): Revert code introduced at - 2013-01-18 in favor of the simpler and generally better fix. - Save stack space by removing 'buffer' and reusing 'read_buf' - where appropriate. - -2013-01-19 Paul Eggert - - * lisp.h (eabs): Define unconditionally (Bug#13419). - The old "#if !defined (eabs)" was an unnecessary revenant of back - when this macro was called "abs". Document 'eabs' better. - -2013-01-19 Glenn Morris - - * fns.c (Frandom): Doc fix. - -2013-01-19 Eli Zaretskii - - * editfns.c (get_pos_property): Use SAFE_ALLOCA_LISP, to avoid - segfault when there are lots of overlays. - - * buffer.c (sort_overlays): Use SAFE_NALLOCA, to avoid segfault - when there are lots of overlays. - See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00421.html - for the details and a way to reproduce. - -2013-01-19 Paul Eggert - - * fileio.c: Use O_APPEND to append. - This corresponds better to the natural interpretation of "append", - and avoids the need to open the output file twice, or to invoke - lseek when APPEND is neither nil nor a number. - This relies on POSIX 1003.1-1988 or later, which is OK nowadays. - (Fwrite_region): Simplify. Use O_APPEND instead of opening the - file possibly twice, and lseeking to its end; this avoids the - need to lseek on non-regular files. Do not use O_EXCL and O_TRUNC - at the same time: the combination is never needed and apparently - it doesn't work with DOS_NT. - - Fix size bug on DOS_NT introduced by CIFS workaround (Bug#13149). - * fileio.c (Fwrite_region): Use O_BINARY in checking code, too. - - Allow floating-point file offsets. - Problem reported by Vitalie Spinu in - . - * fileio.c (emacs_lseek): Remove. - (file_offset): New function. - (Finsert_file_contents, Fwrite_region): Use it. - -2013-01-19 Chong Yidong - - * emacs.c (Fkill_emacs): Set waiting_for_input to 0 to avoid - aborting on Fsignal (Bug#13289). - -2013-01-19 Eli Zaretskii - - * w32.c (acl_set_file): Treat ERROR_ACCESS_DENIED from - set_file_security as failure due to insufficient privileges. - Reported by Fabrice Popineau . - (fstat): Return owner and group like 'stat' and 'lstat' do. - -2013-01-19 Paul Eggert - - Work around bug in CIFS and vboxsf file systems (Bug#13149). - The bug was observed on Ubuntu operating inside a virtual machine, - editing files mounted via CIFS or vboxsf from the MS Windows 7 host. - The workaround introduces a race condition on non-buggy hosts, - but it's an unlikely race and anyway there's a nearly identical - nearby race that can't be fixed. - * fileio.c (valid_timestamp_file_system, timestamp_file_system): - New static vars. - (Fwrite_region): Test for file system time stamp bug. - (init_fileio): New function. - * lisp.h (init_fileio): Declare it. - * emacs.c (main): Call it. - - * fileio.c (Finsert_file_contents): Simplify new diagnostic - and make it more consistent with other stat-failure diagnostics. - -2013-01-18 Dmitry Antipov - - Fix crash when inserting data from non-regular files. - See http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00406.html - for the error description produced by valgrind. - * fileio.c (read_non_regular): Rename to read_contents. - Free Lisp_Save_Value object used to pass parameters. - (read_non_regular_quit): Rename to read_contents_quit. - (Finsert_file_contents): Redesign internal file reading loop to adjust - gap and end positions after each read and so help make_gap to work - properly. Do not signal an I/O error too early and so do not leave - not yet decoded characters in a buffer, which was the reason of - redisplay crash. Use list2 to build return value. Adjust comments. - -2013-01-17 Paul Eggert - - Close a race when statting and reading files (Bug#13149). - * fileio.c (Finsert_file_contents): Use open+fstat, not stat+open. - This avoids a race if the file is renamed between stat and open. - This race is not the problem originally noted in Bug#13149; - see and later messages in the thread. - -2013-01-17 Dmitry Antipov - - * lisp.h (toplevel): Add comment about using Lisp_Save_Value - objects, related functions and macros. - (make_save_value): Adjust prototype. - (make_save_pointer): New prototype. - (SAFE_NALLOCA): Fix indentation. Use make_save_pointer. - (SAFE_ALLOCA_LISP): Adjust make_save_value usage. - * alloc.c (format_save_value): Rename to make_save_value. - (make_save_pointer): New function. - (record_xmalloc): Use make_save_pointer. - * dired.c, editfns.c, fileio.c, font.c, gtkutil.c, lread.c: - * nsmenu.m, nsterm.m, xfns.c, xmenu.c, xselect.c, keymap.c: - Change users of make_save_value to make_save_pointer. - Likewise for format_save_value and make_save_value. - -2013-01-17 Dmitry Antipov - - * buffer.h (NARROWED, BUF_NARROWED): Drop unused macros. - (DECODE_POSITION, BUFFER_CHECK_INDIRECTION): Fix indentation. - * buffer.c (toplevel, syms_of_buffer): Drop old commented-out - debugging stubs. - -2013-01-15 Paul Eggert - - * alloc.c (free_save_value): Now static. - -2013-01-15 Dmitry Antipov - - * keymap.c (map_keymap_internal): Use format_save_value. - (map_keymap_char_table_item): Adjust accordingly. - * fileio.c (non_regular_fd, non_regular_inserted) - (non_regular_nbytes): Remove. - (Finsert_file_contents): Convert trytry to ptrdiff_t. - Use format_save_value to pass parameters to read_non_regular. - (read_non_regular): Use XSAVE_ macros to extract parameters. - Adjust comment. - * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use - format_save_value. - (pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user. - -2013-01-15 Dmitry Antipov - - * lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow - extraction from any Lisp_Save_Value slot. Add type checking. - * alloc.c, dired.c, editfns.c, fileio.c, ftfont.c, gtkutil.c: - * keymap.c, lread.c, nsterm.h, nsmenu.c, xfns.c, xmenu.c: - * xselect.c: All users changed. - -2013-01-15 Dmitry Antipov - - Some convenient bits to deal with Lisp_Save_Values. - * lisp.h (XSAVE_OBJECT): New macro to extract saved objects. - (allocate_misc): Remove prototype. - (format_save_value): New prototype. - * alloc.c (allocate_misc): Revert back to static. - (format_save_value): New function to build Lisp_Save_Value - object with the specified internal structure. - (make_save_value): Reimplement using format_save_value. - * editfns.c (save_excursion_save): Use format_save_value. - (save_excursion_restore): Use XSAVE_OBJECT. - -2013-01-14 Paul Eggert - - Avoid needless casts with XSAVE_POINTER. - * alloc.c (mark_object) [GC_MARK_STACK]: - * dired.c (directory_files_internal_unwind): - * fileio.c (do_auto_save_unwind): - * gtkutil.c (pop_down_dialog): - * keymap.c (map_keymap_char_table_item): - * lread.c (load_unwind): - * nsmenu.m (pop_down_menu): - * print.c (print_object) [GC_MARK_STACK]: - * xfns.c (clean_up_file_dialog): - * xmenu.c (cleanup_widget_value_tree): - Omit casts between XSAVE_POINTER and a pointer type. - -2013-01-14 Dmitry Antipov - - Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE. - * eval.c (eval_sub): Protect `form' from being GCed before its - car and cdr becomes protected with the backtrace entry. - -2013-01-14 Dmitry Antipov - - Make Lisp_Save_Value more versatile storage for up to four objects. - * lisp.h (toplevel): Enumeration to describe types of saved objects. - (struct Lisp_Save_Value): New layout. Adjust comments. - (XSAVE_POINTER): New macro. - (XSAVE_INTEGER): Likewise. - (allocate_misc): Add prototype. - (free_misc): Likewise. - * alloc.c (allocate_misc): Now global. - (free_misc): Likewise. Adjust comment. - (make_save_value): Use new Lisp_Save_Value layout. Adjust comment. - (free_save_value): Likewise. - (mark_object): Likewise. - * editfns.c (save_excursion_save): Pack everything within - Lisp_Save_Value and so avoid xmalloc. - (save_excursion_restore): Adjust to match new layout. Use free_misc - because we do not allocate extra memory any more. Add eassert. - * print.c (print_object): New code to print Lisp_Save_Value. Do not - rely on valid_lisp_object_p if !GC_MARK_STACK. Adjust comments. - * dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c, - * lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c: - Use XSAVE_POINTER and XSAVE_INTEGER where appropriate. - -2013-01-13 Jan Djärv - - * nsfont.m (LCD_SMOOTHING_MARGIN): New define. - (nsfont_draw): Remove disabling of LCD smoothing. - (ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix - Bug#11484 with LCD smoothing on. - -2013-01-13 Paul Eggert - - Fix SIGDANGER handlers, for AIX (Bug#13408). - * sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]: - Move handlers here from emacs.c; they were out of place. - -2013-01-11 Jan Djärv - - * xterm.c (syms_of_xterm): Adjust documentation for - scroll-bar-adjust-thumb-portion. - -2012-12-31 Adam Sjøgren (tiny change) - - * xterm.c (scroll-bar-adjust-thumb-portion): New variable to - determine whether scroll bar thumb size should be adjusted or - not. Use variable for MOTIF. - - * gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for - GTK. - -2013-01-13 Jan Djärv - - * nsterm.m (keyDown:): Set processingCompose to NO if an emacs key - event is generated. - (doCommandBySelector:): Set processingCompose to NO. - - * nsfont.m (ns_findfonts): Add block/unblock_input calls. - Remove check for fkeys count > zero, block/unblock fixes the real bug. - (nsfont_list_family): Add block/unblock_input calls. - (nsfont_open): Move block_input earlier. Add unblock_input before early - return. - (nsfont_draw): Add block/unblock_input calls. - -2013-01-12 Dmitry Antipov - - * indent.c (Fvertical_motion): Remove now-incorrect GCPROs - for old_charpos and old_bytepos. - -2013-01-12 Paul Eggert - - Fix bug with set-time-zone-rule and LOCALTIME_CACHE (Bug#13415). - * editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]: - Clear tzvalbuf_in_environ if this workaround is in effect. - Problem and fix reported by Kazuhiro Ito. - -2013-01-11 Aaron S. Hawley - - * insdel.c (Fcombine_after_change_execute, syms_of_insdel): - Fix ambiguous doc string cross-reference(s). - - * keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous - doc string cross-reference(s). - - * window.c (Fwindow_point, syms_of_window): Fix ambiguous doc - string cross-reference(s). - -2013-01-11 Dmitry Antipov - - Avoid unnecessary byte position calculation for the gap movement. - Since all users of move_gap do CHAR_TO_BYTE for other purposes - anyway, all of them should use move_gap_both instead. - * lisp.h (move_gap): Remove prototype. - * insdel.c (move_gap): Remove. - (move_gap_both): Add eassert. - * editfns.c (Ftranspose_regions): Tweak to use move_gap_both. - * xml.c (parse_region): Likewise. - -2013-01-11 Paul Eggert - - emacsclient -t should not suspend Emacs server (Bug#13387) - * lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal): - New functions. - * term.c (init_tty): Use them instead of rolling our own code. - * sysdep.c (tcsetpgrp_without_stopping): Likewise. Here, this - switches from 'signal' to 'pthread_sigmask', which is safer in - multithreaded applications. - * term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY, - which has already arranged for that. - (dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY. - This is the main part of the bug fix. - -2013-01-10 Rainer Orth (tiny change) - - * gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around - x_last_font_name (Bug#13403). - -2013-01-10 Dmitry Antipov - - Omit buffer_slot_type_mismatch and use generic predicates to enforce - the type of per-buffer values where appropriate. - * lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to - predicate, which is how it's really used now. Adjust comment. - * buffer.h (buffer_slot_type_mismatch): Remove prototype. - * buffer.c (buffer_slot_type_mismatch): Remove. - (DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to - predicate. Adjust comment. - (syms_of_buffer): Use Qsymbolp for major-mode. Use Qintegerp for - fill-column, left-margin, tab-width, buffer-saved-size, - left-margin-width, right-margin-width, left-fringe-width, - right-fringe-width, scroll-bar-width and buffer-display-count. - Use Qstringp for default-directory, buffer-file-name, - buffer-file-truename and buffer-auto-save-file-name. Use Qfloatp for - scroll-up-aggressively and scroll-down-aggressively. Use Qnumberp for - line-spacing. - * data.c (store_symval_forwarding): Adjust to call the predicate. - -2013-01-09 Juanma Barranquero - - * w32.c (get_name_and_id, acl_set_file): - * w32term.c (w32fullscreen_hook): Remove unused local variables. - -2013-01-09 Dmitry Antipov - - * lisp.h (make_gap_1): New prototype. - * buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special - gap size values. - * editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common - naming convention. - (syms_of_editfns): Adjust defsubr. Drop commented-out obsolete code. - * insdel.c (make_gap_larger): Use GAP_BYTES_DFL. Adjust comment. - (make_gap_smaller): Use GAP_BYTES_MIN. Adjust comment. - (make_gap_1): New function to adjust the gap of any buffer. - * coding.c (coding_alloc_by_making_gap): Use it. - * buffer.c (compact_buffer): Likewise. Use BUF_Z_BYTE, BUF_GAP_SIZE, - GAP_BYTES_DFL and GAP_BYTES_MIN. Adjust comment. - -2013-01-08 Juri Linkov - - * xfaces.c (tty_supports_face_attributes_p): Return 0 for the case - of (supports :underline (:style wave)). (Bug#13000) - -2013-01-08 Aaron S. Hawley - - * undo.c (Fprimitive_undo): Move to simple.el. - (syms_of_undo): Remove declarations for Sprimitive_undo. - -2013-01-08 Stefan Monnier - - * keyboard.c (echo_add_key): Rename from echo_add_char. - -2013-01-06 Chong Yidong - - * keyboard.c (echo_add_char): New function, factored out from - echo_char. Don't add a space if the previous echo string was - empty (Bug#13255). - (echo_char): Use it. - (read_key_sequence): When echoing mock input, ensure that the - trailing dash is properly added. - -2013-01-05 Eli Zaretskii - - * xdisp.c (dump_glyph): Align glyph data better. Use "pD" instead - of a non-portable "t" to print ptrdiff_t values. Allow up to 9 - digits for buffer positions, before misalignment starts. - Display "0" for integer "object" field. - (dump_glyph_row): Adapt the header line to changes in dump_glyph. - Display the newline glyph more unambiguously. - -2013-01-04 YAMAMOTO Mitsuharu - - * nsterm.m (ns_draw_underwave): - * w32term.c (w32_draw_underwave): - * xterm.c (x_draw_underwave): Make underwave look more triangular - and also degrade gracefully for small fonts. (Bug#13000) - - * nsterm.m (ns_draw_text_decoration): - * w32term.c (x_draw_glyph_string): - * xterm.c (x_draw_glyph_string): Don't use previous underline - thickness and position if previous underline type is underwave. - -2013-01-04 Stefan Monnier - - * fileio.c (Ffile_acl): Undocument return format. - -2013-01-02 Glenn Morris - - * keymap.c (Fkey_description): Doc fix. (Bug#13323) - -2013-01-02 Paul Eggert - - Simplify via eabs. - * dired.c (file_name_completion): - * doc.c (get_doc_string): - * floatfns.c (round2): - * font.c (font_score, font_delete_unmatched): - * fringe.c (compute_fringe_widths): - * lread.c (read_list): - * minibuf.c (Ftry_completion): - * term.c (tty_ins_del_lines): - * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1): - Use eabs (x) rather than open-coding it as (x < 0 ? -x : x). - -2012-12-31 Eli Zaretskii - - * w32.c (unsetenv): Set up the string passed to _putenv - correctly. - See http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00863.html - for the bug this caused. - -2012-12-30 Paul Eggert - - * coding.c (Qmac): Now static. - -2012-12-30 Jan Djärv - - * gtkutil.c (TOOLBAR_TOP_WIDGET): New macro. - (xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of - handlebox_widget. Set toolbar_in_hbox to false/true, set - toolbar_is_packed to true. - (xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET. - (update_frame_tool_bar): Check toolbar_is_packed for packing. - Show all on TOOLBAR_TOP_WIDGET. - (free_frame_tool_bar): Check toolbar_is_packed. Use widget returned - by TOOLBAR_TOP_WIDGET. - (xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET. - Check toolbar_is_packed. - (xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on - HAVE_GTK_TEAROFF_MENU_ITEM_NEW. - (xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return - false. - (create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW. - (xg_update_menubar): Update title only if - HAVE_GTK_TEAROFF_MENU_ITEM_NEW. - (xg_update_submenu): Skip tearoff only if - HAVE_GTK_TEAROFF_MENU_ITEM_NEW. - (xg_initialize): Initialize xg_detached_menus only if - HAVE_GTK_TEAROFF_MENU_ITEM_NEW. - - * xterm.h (struct x_output): Surround handlebox_widget with - #ifdef HAVE_GTK_HANDLE_BOX_NEW. toolbar_is_packed is new, - toolbar_in_hbox is bool. - -2012-12-30 Andreas Schwab - - * src/Makefile.in (TEMACS_LDFLAGS2): Remove. - (LIBS_GNUSTEP): Define. - (LIBES): Add $(LIBS_GNUSTEP). - (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2). - -2012-12-30 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Don't confuse a truncation or - continuation glyph on a TTY with an indication of an empty line. - (Bug#13277) - -2012-12-29 Eli Zaretskii - - * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if - file's SELinux context or ACLs successfully set, nil otherwise. - (Bug#13298) - (Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails. - - * w32proc.c (reader_thread): Avoid passing NULL handles to - SetEvent and WaitForSingleObject. - -2012-12-28 Paul Eggert - - Port EXTERNALLY_VISIBLE to Clang 3.2. - * conf_post.h (__has_attribute): New macro. - (EXTERNALLY_VISIBLE): Use it. This ports to Clang 3.2. - -2012-12-27 Glenn Morris - - * cygw32.c (Fcygwin_convert_file_name_to_windows) - (Fcygwin_convert_file_name_from_windows): Doc fixes. - -2012-12-27 Eli Zaretskii - - * fileio.c (file_name_as_directory, directory_file_name): - Accept an additional argument MULTIBYTE to indicate whether the input C - came from a multibyte or a unibyte Lisp string; all callers - adjusted. Don't assume the input string is always multibyte. - (Bug#13262) - (Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly: - don't ENCODE_FILE them, and return a unibyte string if the input - was unibyte. - (Fexpand_file_name): Don't mix unibyte with multibyte strings, and - don't assume the input strings will always be multibyte. If the - input strings are multibyte, decode strings obtained from C - library functions. - -2012-12-26 Dmitry Antipov - - * lisp.h (toplevel): Add two notices to the comment about - defining a new Lisp data type. - * print.c (print_object): If Lisp_Save_Value object's pointer - is the address of a memory area containing Lisp_Objects, try - to print them. - * alloc.c (valid_lisp_object_p): Adjust comment. - -2012-12-26 Dmitry Antipov - - * keyboard.c (record_asynch_buffer_change): Initialize an event - only if it's really needed. - * frame.h (enum output_method): Remove output_mac member since - it's a leftover from the deleted code. - * frame.c (Fframep): Adjust user here ... - * terminal.c (Fterminal_live_p): ... and here. - * coding.c (Qmac): Now here because it's only used to denote - end-of-line encoding type. - (syms_of_coding): DEFSYM it. - * frame.h (Qmac): Remove duplicated declaration. - -2012-12-26 Paul Eggert - - * window.c (select_window_1): Now static, since it's used only here. - -2012-12-25 Eli Zaretskii - - * window.c (window_body_cols): Subtract display margins from the - window body width on TTYs as well. See - http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html - for the original report. - -2012-12-25 Dmitry Antipov - - * xdisp.c (redisplay_window): Remove inner local variable - because the outer shadowed one has the same meaning. - * xterm.h (struct x_output): Remove toolbar_detached member since it's - set but never used. - * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback) - (xg_create_tool_bar): Adjust users. - -2012-12-24 Dmitry Antipov - - * buffer.h (BUF_COMPACT): New macro to follow the common style. - * buffer.c (Fget_buffer_create): Use it to set compact field of - struct buffer_text to avoid accessing an uninitialized value - when compact_buffer is called for the first time. - (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF. - (Fset_buffer_modified_p): Use buffer_window_count to check - whether the buffer is displayed in some window. - * xdisp.c (message_dolog): Likewise. - -2012-12-23 Eli Zaretskii - - * w32.c (acl_set_file): If setting the file security descriptor - fails, and the new DACL is identical to the existing one, silently - return success. This fixes problems for users backing up their - own files without having the necessary privileges for setting - security descriptors. - - * w32proc.c (reader_thread): Do not index fd_info[] with negative - values. - (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR - after WaitForSingleObject returns normally. This expedites reader - thread shutdown when delete_child triggers it. - (reap_subprocess): More accurate commentary for why we call - delete_child only when cp->fd is negative. - - * w32.c (sys_close): Do not call delete_child on a subprocess - whose handle is not yet closed. Instead, set its file descriptor - to a negative value, so that reap_subprocess will call - delete_child on that subprocess when its SIGCHLD arrives. - This avoids closing handles used for communications between sys_select - and reader_thread, which doesn't give sys_select a chance to - notice that the process exited and invoke the SIGCHLD handler for - it. - -2012-12-23 Jan Djärv - - * nsfns.m (Fns_do_applescript): Run event loop until script has - been executed (Bug#12969). - (ns_run_ascript): Chech as_script for nil, set to nil after - executing script. - -2012-12-22 Martin Rudalics - - * window.c (Fselect_window): Reword doc-string (Bug#13248). - -2012-12-22 Eli Zaretskii - - * w32term.c (w32fullscreen_hook): New function. - (w32_create_terminal): Plug it into the terminal's fullscreen_hook. - -2012-12-21 Eli Zaretskii - - * fileio.c (Finsert_file_contents): Doc fix. - - * w32proc.c (new_child, delete_child, find_child_pid): For a - subprocess, consider its slot being in use as long as its process - handle (procinfo.hProcess) is not NULL. This avoids reusing the - slot when a new process is started immediately after killing - another one, without waiting enough time for the first process to - be reaped and resources allocated for it be orderly freed. - (Bug#13086) - Suggested by Fabrice Popineau . - -2012-12-21 Chong Yidong - - * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231). - - * fns.c (Fcompare_strings): Doc fix (Bug#13081). - -2012-12-21 Eli Zaretskii - - * w32.c (get_name_and_id): Always pass NULL as the first argument - of lookup_account_sid. Avoids crashes with UNC file names that - refer to DFS domains, not to specific machine names. (Bug#12621) - Remove now unused argument FNAME; all callers changed. - (get_file_owner_and_group): Remove now unused argument FNAME; all - callers changed. - -2012-12-21 Chong Yidong - - * editfns.c (Finsert_char): Since read-char-by-name now signals an - error for invalid chars, don't check for a nil return value. - -2012-12-20 Dmitry Antipov - - Avoid calls to CHAR_TO_BYTE if byte position is known. - * editfns.c (make_buffer_string_both): Use move_gap_both. - (Fbuffer_string): Use make_buffer_string_both. - * marker.c (buf_charpos_to_bytepos): Convert to eassert. - Adjust comment. - (buf_bytepos_to_charpos): Likewise. - (charpos_to_bytepos): Remove. - * fileio.c (Finsert_file_contents): Use move_gap_both. - * search.c (Freplace_match): Likewise. - * process.c (process_send_region): Likewise. Use convenient - names for byte positions. - * lisp.h (charpos_to_bytepos): Remove prototype. - * indent.c (scan_for_column): Use CHAR_TO_BYTE. - * insdel.c (move_gap): Likewise. - -2012-12-20 Paul Eggert - - * xdisp.c (redisplay_internal): Remove now-unused local. - -2012-12-20 Stefan Monnier - - * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove. - (redisplay_internal): Don't bother selecting the frame to get the - proper value of frame-local variables (bug#13225). - -2012-12-20 Dmitry Antipov - - * textprop.c (set_text_properties_1): Do not allow NULL interval. - Rename 4th argument since it may be buffer or string. Adjust comment. - * intervals.c (graft_intervals_info_buffer): Find an interval here. - -2012-12-19 Dmitry Antipov - - * coding.c (Fdetect_coding_region): Do not check start and end with - CHECK_NUMBER_COERCE_MARKER since validate_region does that itself. - (code_convert_region): Likewise. - -2012-12-18 Eli Zaretskii - - * w32.c (acl_get_file, acl_set_file): Run the file name through - map_w32_filename, and resolve any symlinks in the file name, like - Posix platforms do. - (acl_set_file): Call revert_to_self, if any privileges were - enabled. - -2012-12-17 Juanma Barranquero - - * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O)) - ($(BLD)/w32.$(O)): Update dependencies. - -2012-12-17 Stefan Monnier - - * xdisp.c (select_frame_for_redisplay): Use select_window_1 to - propagate redisplay's scrolling (if any) to the right window. - (redisplay_internal): Use ensure_selected_frame. - (display_mode_lines): Complete last fix. - * window.c (select_window_1): New func, extracted from select_window. - (select_window): Use it. - * window.h (select_window_1): Declare. - -2012-12-17 Eli Zaretskii - - Emulate Posix ACL APIs on MS-Windows. - * w32.c: Include sddl.h and sys/acl.h. - (SDDL_REVISION_1): Define if not already defined. - (g_b_init_get_security_descriptor_dacl) - (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd) - (g_b_init_is_valid_security_descriptor) - (g_b_init_set_file_security): New static flags. - (globals_of_w32): Initialize them to zero. - (SetFileSecurity_Name): New string constant. - (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc) - (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc) - (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc) - (IsValidSecurityDescriptor_Proc): New typedefs. - (get_file_security, get_security_descriptor_owner) - (get_security_descriptor_group): Set errno to ENOTSUP. - (set_file_security, get_security_descriptor_dacl) - (is_valid_security_descriptor, convert_sd_to_sddl) - (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text) - (acl_free, acl_get_file, acl_set_file): New functions. - - * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs. - -2012-12-17 Paul Eggert - - Don't reraise SIGCHLD, as that can now lose (Bug#13192). - With the 2012-12-03 fix for Bug#12980 in place, an old workaround - for some of that bug's symptoms can now cause Emacs to abort. - Remove the workaround. - * process.c (wait_reading_process_output): Don't reraise SIGCHLD. - The bug that caused SIGCHLD to get lost has been fixed, and the - workaround for it can now cause Emacs to abort. - -2012-12-16 Paul Eggert - - * sysdep.c (emacs_abort): Bump backtrace size to 40. - Companion to the 2012-09-30 patch. Suggested by Eli Zaretskii in - . - -2012-12-16 Romain Francoise - - * fileio.c (Ffile_acl, Fset_file_acl): New functions. - (Fcopy_file): Change last arg to `preserve_extended_attributes' - and copy ACL entries of file in addition to SELinux context if set. - (syms_of_fileio): Add `file-acl' and `set-file-acl'. - - * Makefile.in (LIBACL_LIBS): New macro. - (LIBES): Use it. - -2012-12-15 Paul Eggert - - * fileio.c (internal_delete_file): Use bool for boolean. - -2012-12-15 Eli Zaretskii - - Fix bug #13079 on MS-Windows with temp files not being deleted. - * w32.h (_child_process): New members input_file and - pending_deletion. - (register_child): First argument is now pid_t. - (record_infile, record_pending_deletion): New prototypes. - - * w32proc.c (new_child): Initialize input_file and - pending_deletion members of the child. - (delete_child): Delete the child's temporary input file, if any, - that is pending deletion. - (register_child): First argument is now pid_t. - (record_infile, record_pending_deletion): New functions. - (reap_subprocess): Fix a typo in DebPrint string. - (sys_spawnve, sys_kill): Use pid_t for PID arguments. - - * fileio.c (internal_delete_file): Return an int again: non-zero - if delete-file succeeds, zero otherwise. - - * lisp.h (internal_delete_file): Adjust prototype. - - * callproc.c (Fcall_process): Don't overwrite infile with result - of DECODE_FILE. - [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an - asynchronous subprocess, record the name of the input file name, - if any. - (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to - delete the file, record it as pending deletion when the subprocess - exits. - -2012-12-14 Eli Zaretskii - - * editfns.c [HAVE_PWD_H]: Include grp.h. - - * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h. - -2012-12-14 Paul Eggert - - Fix permissions bugs with setgid directories etc. (Bug#13125) - * dired.c (Ffile_attributes): Return t as the 9th attribute, - to mark it as a placeholder. The old value was often wrong. - The only user of this attribute has been changed to use - file-ownership-preserved-p instead, with its new group arg. - * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions. - -2012-12-14 Stefan Monnier - - * xdisp.c (select_frame_for_redisplay, display_mode_lines): - Keep selected_window and selected_frame in sync. - -2012-12-14 Eli Zaretskii - - * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not - try to get accurate owner and group information from NT file - security APIs. This is to make most callers of 'stat' and - 'lstat', which don't need that information, much faster. - - * dired.c (Ffile_attributes) [WINDOWSNT]: - Set w32_stat_get_owner_group to a non-zero value, to request accurate - owner and group information from 'lstat'. - -2012-12-13 Paul Eggert - - * fileio.c (Finsert_file_contents): Don't put tail into head area, - as that confuses set-auto-coding, so insist on the head-read - returning the full 1024 bytes. Let lseek compute the tail offset; - less work for us. Do not ignore I/O errors when reading the tail. - - * xdisp.c: Minor style fixes. - (init_iterator): Hoist assignment out of if-expression. - (markpos_of_region): Callers now test for sign, not for -1. - -2012-12-13 Dmitry Antipov - - Minor redisplay optimization when the region length is zero. - * xdisp.c (markpos_of_region): New function. - (init_iterator): Do not highlight the region of zero length. - (redisplay_window): Check whether the region is of non-zero length. - (try_cursor_movement): Allow if the region length is zero. - (try_window_reusing_current_matrix, try_window_id): Likewise. - -2012-12-13 Eli Zaretskii - - * search.c (search_buffer): Check the inverse translations of each - character in pattern when the buffer being searched is unibyte. - (Bug#13084) - -2012-12-13 Paul Eggert - - * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent - files, fixing a regression from 24.2. - (Fverify_visited_file_modtime): Don't read uninitialized st.st_size. - -2012-12-13 Paul Eggert - - * fileio.c (Fcopy_file): Make fstat failure as serious as open failure. - fstat shouldn't fail, and if it does fail copy-file should not proceed. - Remove unnecessary S_ISLNK test, as (contra the comments) this - function can't copy symlinks. Improve quality of error message - when attempting to copy files that are neither regular files nor - directories. - -2012-12-12 Dmitry Antipov - - * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds. - * gtkutil.c (xg_set_toolkit_scroll_bar_thumb): - * window.c (Frecenter): - * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs): - * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise. - -2012-12-12 Daniel Colascione - - * unexcw.c (fixup_executable): Use posix_fallocate to ensure that - the dumped Emacs is not a sparse file, greatly improving Cygwin - "make bootstrap" performance. - -2012-12-11 Michael Albinus - - * inotify.c (inotify_callback): Generate an Emacs event for every - incoming inotify event. - -2012-12-11 Eli Zaretskii - - * xdisp.c (handle_face_prop): Fix logic of computing - it->start_of_box_run_p. - (append_space_for_newline): If the glyph row is R2L, reset the - iterator's end_of_box_run_p flag before prepending the space glyph. - (extend_face_to_end_of_line): If the glyph row is R2L, reset the - iterator's start_of_box_run_p flag before prepending the stretch. - (append_glyph, produce_image_glyph, append_composite_glyph) - (append_stretch_glyph, append_glyphless_glyph): Reverse the - left_box_line_p and right_box_line_p flags of the glyph for R2L - glyph rows. (Bug#13011) - -2012-12-11 Dmitry Antipov - - * buffer.c (Fset_buffer_multibyte): Do not force redisplay - if changed buffer is not shown in a window. - * insdel.c (prepare_to_modify_buffer): Likewise. - * window.c (replace_buffer_in_windows_safely): Do nothing - if buffer is not shown in a window. - (Fforce_window_update): Likewise if string or buffer argument - is passed. - -2012-12-11 Eli Zaretskii - - * inotify.c (Finotify_add_watch): Rename decoded_file_name to - encoded_file_name, which is what it is. - -2012-12-11 Dmitry Antipov - - Consistently use marker_position and marker_byte_position. - * fringe.c (Ffringe_bitmaps_at_pos): - * indent.c (Fvertical_motion): - * insdel.c (prepare_to_modify_buffer): - * keyboard.c (make_lispy_position): - * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer) - (window_scroll_pixel_based, displayed_window_lines) - (Fset_window_configuration): - * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data) - (mark_window_display_accurate_1, redisplay_window, decode_mode_spec): - Replace direct access to marker fields with calls - to marker_position and/or marker_byte_position. - -2012-12-11 Juanma Barranquero - - * makefile.w32-in (SIG2STR_H): New macro. - (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O)) - ($(BLD)/w32notify.$(O)): Update dependencies. - -2012-12-10 Daniel Colascione - - * w32term.c, keyboard.c: Fix build break in cygw32 by omitting - Windows file notification functionality unless WINDOWSNT. - - * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused - declarations. - - * w32fns.c (cache_system_info): Initialize the global hinst - variable here so various initialization calls DTRT. - - * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables. - (hinst): Remove unneeded extern declaration. - (_start): Remove initialization of above variables; remove - initialization of hinst, as cache_system_info now does that. - - * emacs.c (main): Call cache_system_info early in startup; we - previously weren't calling it in Cygwin builds. - - * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK): - Teach the autoconf build system how to compile a Windows resource file - and link it to Emacs. - -2012-12-10 Dmitry Antipov - - Per-buffer window counters. - * buffer.h (struct buffer): New member window_count. - (buffer_window_count): New function. - * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): - Initialize window_count. - (Fkill_buffer): Verify window_count for the buffer being killed. - (modify_overlay): Do not force redisplay if buffer is not shown - in any window. - (init_buffer_once): Initialize window_count for buffer_defaults - and buffer_local_symbols. - * window.h (buffer_shared): Remove declaration. - (wset_buffer): Convert from inline ... - * window.c (wset_buffer): ... to an ordinary function. - (adjust_window_count): New function. - (make_parent_window): Use it. - * xdisp.c (buffer_shared): Remove. - (redisplay_internal, redisplay_window): Adjust users. - (buffer_shared_and_changed): Use per-buffer window counter. - -2012-12-10 Eli Zaretskii - - Support for filesystem notifications on MS-Windows. - * w32proc.c (sys_select): If drain_message_queue returns non-zero, - and this is a TTY frame, signal the caller that keyboard input is - available. - - * w32xfns.c (drain_message_queue): Now returns an int: an - indication whether any WM_EMACS_FILENOTIFY messages were found in - the queue. - - * w32inevt.c (handle_file_notifications): New function. - (w32_console_read_socket): Call it to process file notifications. - - * w32console.c (initialize_w32_display): Record the main thread ID - in dwMainThreadId. - - * deps.mk (inotify.o): New dependency list. - - * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o. - - * w32term.h (WM_EMACS_FILENOTIFY): New custom message. - (WM_EMACS_END): Bump value by 1. - (notification_buffer_in_use, file_notifications) - (notifications_size, notifications_desc): Declare. - (w32_get_watch_object, lispy_file_action, globals_of_w32notify): - Add prototypes. - - * w32term.c (lispy_file_action, queue_notifications): New functions. - (syms_of_w32term) - : New symbols. - (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message. - - * w32notify.c: New file, implements file event notifications for - MS-Windows. - - * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message - by posting it to the w32_read_socket queue. - - * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT. - - * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O). - (GLOBAL_SOURCES): Add w32notify.c - ($(BLD)/w32notify.$(O)): New set of dependencies. - - * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype. - - * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]: - Handle FILE_NOTIFY_EVENT. - (syms_of_keyboard) [HAVE_NTGUI] : New symbol. - (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to - w32notify-handle-event by default. - - * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and - syms_of_w32notify. - -2012-12-10 Rüdiger Sonderfeld - - Support for filesystem notifications on GNU/Linux via inotify. - * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT. - - * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype. - - * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable. - (syms_of_keyboard): DEFSYM it. - (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT. - (make_lispy_event): Support FILE_NOTIFY_EVENT by generating - Qfile_inotify events. - (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in - special-event-map to inotify-handle-event. - - * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify. - - * Makefile.in (base_obj): Add inotify.o. - - * inotify.c: New file. - -2012-12-10 Jan Djärv - - * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103). - -2012-12-10 Fabrice Popineau - - * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to - DWORD_PTR, for compatibility with 64-bit builds. - - * w32.c (_PROCESS_MEMORY_COUNTERS_EX): - (GetProcessWorkingSetSize_Proc, get_process_working_set_size) - (system_process_attributes): Use SIZE_T rather than DWORD, for - compatibility with 64-bit builds. - -2012-12-10 Christopher Schmidt - - * lread.c (Vload_source_file_function): Doc fix (Bug#11647). - -2012-12-10 Eli Zaretskii - - * indent.c (Fvertical_motion): If a display string will be - displayed on the left or the right margin, don't consider it as a - factor in cursor positioning. (Bug#13108) - -2012-12-10 Martin Rudalics - - * editfns.c (Fcompare_buffer_substrings): Reword doc-string. - -2012-12-10 Paul Eggert - - * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int, - for string length. - -2012-12-08 Eli Zaretskii - - * w32.c (unsetenv): Return 0 if the input string is too long. - -2012-12-08 Paul Eggert - - Use putenv+unsetenv instead of modifying environ directly (Bug#13070). - * alloc.c (xputenv): New function. - * dbusbind.c (Fdbus_init_bus): - * emacs.c (main): - * xterm.c (x_term_init): - Use xputenv instead of setenv or putenv, to detect memory exhaustion. - * editfns.c (initial_tz): Move static var decl up. - (tzvalbuf_in_environ): New static var. - (init_editfns): Initialize these two static vars. - (Fencode_time): Don't assume arbitrary limit on EMACS_INT width. - Save old TZ value on stack, if it's small. - (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly; - instead, use xputenv+unsetenv to set and restore TZ. - (environbuf): Remove static var. All uses removed. - (Fset_time_zone_rule): Do not save TZ and environ; - no longer needed here. - (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]: - Move to inside set_time_zone_rule; they don't need file scope any more. - (set_time_zone_rule): Maintain the TZ=value string separately. - (syms_of_editfns): Don't initialize initial_tz; - init_editfns now does it. - * emacs.c (dump_tz) [HAVE_TZSET]: Now const. - * lisp.h (xputenv): New decl. - -2012-12-08 Fabrice Popineau - - * w32fns.c (emacs_abort): Don't do arithmetics on void pointers. - -2012-12-08 Eli Zaretskii - - * w32.c (unsetenv, sys_putenv): New functions. - -2012-12-08 Chong Yidong - - * editfns.c (Finsert_char): Make the error message more - informative (Bug#12992). - -2012-12-08 Paul Eggert - - Simplify get_lim_data. - * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods. - Remove USG and vlimit methods; no longer used these days. - Add #error catchall just in case. - - Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026). - Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN, - SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these. - * process.c [subprocesses]: Include , . - (deleted_pid_list, Fdelete_process, create_process) - (record_child_status_change, handle_child_signal, deliver_child_signal) - (init_process_emacs, syms_of_process): - Assume SIGCHLD is defined. - (parse_signal): Remove. All uses removed. - (abbr_to_signal): New static function. - (Fsignal_process): Use it to convert signal names to ints. - * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than - kill (getpgrp (), ...). - (emacs_sigaction_init): Assume SIGCHLD is defined. - (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL, - SIGPIPE, and SIGQUIT are defined. Do not worry about SIGCLD any more. - * syssignal.h (EMACS_KILLPG): Remove. - All uses replaced by 'kill' with a negative pid. - (SIGCHLD): Remove definition, as we now assume SIGCHLD. - * w32proc.c (sys_kill): Support negative pids compatibly with POSIX. - -2012-12-07 Paul Eggert - - * sysdep.c (get_child_status): Abort on internal error (Bug#13086). - This will cause a production Emacs to dump core instead of - infinite-looping. - -2012-12-07 Dmitry Antipov - - * frame.c (make_frame): Do not set window's buffer to t. - * window.c (Fsplit_window_internal): Likewise. Previously it was - used to indicate that the window is being set up. Now we use - set_window_buffer for all new windows, so the condition in ... - (Fset_window_buffer): ... is always true and can be removed. - -2012-12-07 Dmitry Antipov - - Convenient macro to check whether the buffer is hidden. - * buffer.h (BUFFER_HIDDEN_P): New macro. - * frame.c (make_frame): Use it. Adjust comment. - * buffer.c (candidate_buffer): New function. - (Fother_buffer, other_buffer_safely): Use it. - -2012-12-06 Eli Zaretskii - - * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG - if the child process is still running. Instead, exit the wait - loop and return zero. (Bug#13086) - -2012-12-06 Dmitry Antipov - - * frame.h (x_char_width, x_char_height): Remove prototypes. - * w32term.h (x_char_width, x_char_height): Likewise. - * xfns.c (x_char_width, x_char_height): Remove. - * w32fns.c (x_char_width, x_char_height): Likewise. - * nsfns.c (x_char_width, x_char_height): Likewise. - * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for - all window frames. - (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT. - * keyboard.c (command_loop_1): Remove prototype. - (command_loop_2, top_level_1): Add static to match prototype. - -2012-12-06 Paul Eggert - - Fix a recently-introduced delete-process race condition. - * callproc.c, process.h (record_kill_process): - New function, containing part of the old call_process_kill. - (call_process_kill): Use it. - This does not change call_process_kill's behavior. - * process.c (Fdelete_process): Use record_kill_process to fix a - race condition that could cause Emacs to lose track of a child. - -2012-12-06 Dmitry Antipov - - Avoid code duplication between prev_frame and next_frame. - * frame.c (candidate_frame): New function. Add comment. - (prev_frame, next_frame): Use it. Adjust comment. - -2012-12-06 Eli Zaretskii - - * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp - fails, signal an error instead of continuing with an empty - string. (Bug#13079) - Encode expanded temp file pattern before passing it to mkstemp or - mktemp. - - * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]: - Encode the file name before passing it to dostounix_filename, in - case it will downcase it (under w32-downcase-file-names). - (Bug#12933) - -2012-12-05 Paul Eggert - - Minor call-process cleanups. - * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS - at the same time as other platforms, to simplify analysis. - No need for fd0_volatile since we have synch_process_fd. - Avoid needless emacs_close; arg is always negative. - -2012-12-04 Andreas Schwab - - * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous - processes. - -2012-12-04 Dmitry Antipov - - * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state - member. Adjust users. Convert mouse_face_past_end, mouse_face_defer - and mouse_face_hidden members to a bitfields. - * frame.h (struct frame): Remove set-but-not-used space_width member. - (FRAME_SPACE_WIDTH): Remove. - * nsterm.m, w32term.c, xterm.c: Adjust users. - * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so - member. Adjust users. Convert term_initted, delete_in_insert_mode, - costs_set, insert_mode, standout_mode, cursor_hidden and flow_control - members to a bitfields. - -2012-12-03 Paul Eggert - - Don't let call-process be a zombie factory (Bug#12980). - Fixing this bug required some cleanup of the signal-handling code. - As a side effect, this change also fixes a longstanding rare race - condition whereby Emacs could mistakenly kill unrelated processes, - and it fixes a bug where a second C-g does not kill a recalcitrant - synchronous process in GNU/Linux and similar platforms. - The patch should also fix the last vestiges of Bug#9488, - a bug which has mostly been fixed on the trunk by other changes. - * callproc.c, process.h (synch_process_alive, synch_process_death) - (synch_process_termsig, sync_process_retcode): - Remove. All uses removed, to simplify analysis and so that - less consing is done inside critical sections. - * callproc.c (call_process_exited): Remove. All uses replaced - with !synch_process_pid. - * callproc.c (synch_process_pid, synch_process_fd): New static vars. - These take the role of what used to be in unwind-protect arg. - All uses changed. - (block_child_signal, unblock_child_signal): - New functions, to avoid races that could kill innocent-victim processes. - (call_process_kill, call_process_cleanup, Fcall_process): Use them. - (call_process_kill): Record killed processes as deleted, so that - zombies do not clutter up the system. Do this inside a critical - section, to avoid a race that would allow the clutter. - (call_process_cleanup): Fix code so that the second C-g works again - on common platforms such as GNU/Linux. - (Fcall_process): Create the child process in a critical section, - to fix a race condition. If creating an asynchronous process, - record it as deleted so that zombies do not clutter up the system. - Do unwind-protect for WINDOWSNT too, as that's simpler in the - light of these changes. Omit unnecessary call to emacs_close - before failure, as the unwind-protect code does that. - * callproc.c (call_process_cleanup): - * w32proc.c (waitpid): Simplify now that synch_process_alive is gone. - * process.c (record_deleted_pid): New function, containing - code refactored out of Fdelete_process. - (Fdelete_process): Use it. - (process_status_retrieved): Remove. All callers changed to use - child_status_change. - (record_child_status_change): Remove, folding its contents into ... - (handle_child_signal): ... this signal handler. Now, this - function is purely a handler for SIGCHLD, and is not called after - a synchronous waitpid returns; the synchronous code is moved to - wait_for_termination. There is no need to worry about reaping - more than one child now. - * sysdep.c (get_child_status, child_status_changed): New functions. - (wait_for_termination): Now takes int * status and bool - interruptible arguments, too. Do not record child status change; - that's now the caller's responsibility. All callers changed. - Reimplement in terms of get_child_status. - (wait_for_termination_1, interruptible_wait_for_termination): - Remove. All callers changed to use wait_for_termination. - * syswait.h: Include , for bool. - (record_child_status_change, interruptible_wait_for_termination): - Remove decls. - (record_deleted_pid, child_status_changed): New decls. - (wait_for_termination): Adjust to API changes noted above. - - * bytecode.c, lisp.h (Qbytecode): Remove. - No longer needed after 2012-11-20 interactive-p changes. - -2012-12-03 Eli Zaretskii - - * xdisp.c (redisplay_window): If the cursor is visible, but inside - the scroll margin, move point outside the margin. (Bug#13055) - -2012-12-03 Jan Djärv - - * gtkutil.c (my_log_handler): New function. - (xg_set_geometry): Set log handler to my_log_handler (Bug#11177). - -2012-12-03 Dmitry Antipov - - * lisp.h (modify_region): Rename to... - (modify_region_1): ...new prototype. - * textprop.c (modify_region): Now static. Adjust users. - * insdel.c (modify_region): Rename to... - (modify_region_1): ...new function to work with current buffer. - Adjust comment and users. Use true and false for booleans. - -2012-12-03 Dmitry Antipov - - * alloc.c (free_save_value): New function. - (safe_alloca_unwind): Use it. - * lisp.h (free_save_value): New prototype. - * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value. - Add comment. - (save_excursion_restore): Adjust to match saved data structure. - Use free_save_value to offload some work from GC. Drop obsolete - #if 0 code. - -2012-12-03 Chong Yidong - - * fileio.c (Vauto_save_list_file_name): Doc fix. - -2012-12-03 Fabrice Popineau - - * w32fns.c: Remove prototype of atof. - (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit - builds. - (file_dialog_callback): Make it UINT_PTR. - - * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility - with 64-bit builds. - - * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED) - (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already - defined. - -2012-12-03 Glenn Morris - - * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding. - -2012-12-02 Paul Eggert - - Fix xpalloc confusion after memory is exhausted. - * alloc.c (xpalloc): Comment fix. - * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory - and signals an error, do not clear charset_table_size, as - charset_table is still valid. - * doprnt.c (evxprintf): Clear *BUF after freeing it. - - Use execve to avoid need to munge environ (Bug#13054). - * callproc.c (Fcall_process): - * process.c (create_process): - Don't save and restore environ; no longer needed. - * callproc.c (child_setup): - Use execve, not execvp, to preserve environ. - -2012-12-01 Paul Eggert - - * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500). - -2012-12-01 YAMAMOTO Mitsuharu - - * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief - display for sliced images (Bug#10500). - - * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise. - -2012-11-30 Juanma Barranquero - - * doc.c (Fdocumentation): Re-add handling of function-documentation, - accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034). - -2012-11-29 Dmitry Antipov - - * xdisp.c (window_outdated): Remove eassert since it hits - some suspicious corner cases (see Bug#13007 and Bug#13012). - (mode_line_update_needed): New function. - (redisplay_internal, redisplay_window): Use it. - (ensure_selected_frame): New function. - (redisplay_internal, unwind_redisplay): Use it. - (redisplay_internal): Move comment about buffer_shared... - (buffer_shared_and_changed): ...near to its real use. - -2012-11-29 Paul Eggert - - * callproc.c (Fcall_process): Don't misreport vfork failure. - -2012-11-28 Paul Eggert - - * callproc.c (Fcall_process): Fix vfork portability problems. - Do not assume that fd[0], count, filefd, and save_environ survive - vfork. Fix bug whereby wrong errno value could be reported for - pipe failure. Some minor cleanups, too, as follows. Move buf and - bufsize to the context where they're needed. Change new_argv to - be of type char **, as this is more convenient and avoids casts. - (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX): - Now local constants, not macros. - -2012-11-18 Kenichi Handa - - * font.c (font_unparse_xlfd): Fix previous change. Keep "const" - for the variable "f". - -2012-11-13 Kenichi Handa - - * font.c (font_unparse_xlfd): Exclude special characters from the - generating XLFD name. - -2012-11-27 Paul Eggert - - Assume POSIX 1003.1-1988 or later for grp.h, pwd.h. - * dired.c (stat_uname, stat_gname): - * fileio.c (Fexpand_file_name): Remove no-longer-needed casts. - - Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968). - * dired.c (directory_files_internal, file_name_completion): - Assume EAGAIN and EINTR are defined. - - * fileio.c (Fcopy_file): Assume EISDIR is defined. - * gmalloc.c (ENOMEM, EINVAL): Assume they're defined. - * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined. - * lread.c (readbyte_from_file): Assume EINTR is defined. - * process.c (wait_reading_process_output, send_process) [subprocesses]: - Assume EIO and EAGAIN are defined. - * unexcoff.c (write_segment): Assume EFAULT is defined. - -2012-11-27 Eli Zaretskii - - * fontset.c (Finternal_char_font): Return nil on non-GUI frames. - (Bug#11964) - - * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse - highlighting on the frame was cleared. Prevents assertion - violations when repeatedly clicking on the "Top" link of the - "bread-crumbs" in Info buffers. - -2012-11-25 Paul Eggert - - * sysdep.c (sys_subshell): Don't assume pid_t fits in int. - -2012-11-24 Ken Brown - - * keyboard.c (HAVE_MOUSE): - * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE - were always defined. - -2012-11-24 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not - between bpos_covered and bpos_max. This fixes cursor display when - several display strings follow each other. - - * .gdbinit (pgx): If the glyph's object is a string, display the - pointer to string data, rather than the value of the string object - itself (which barfs under CHECK_LISP_OBJECT_TYPE). - - * indent.c (Fvertical_motion): If the starting position is covered - by a display string, return to one position before that, to avoid - overshooting it inside move_it_to. (Bug#12930) - -2012-11-23 Dmitry Antipov - - * frame.h (struct frame): Remove display_preempted member - since all users are dead long ago. - * nsterm.h (struct x_output): Use the only dummy member. - * w32menu.c (pending_menu_activation): Remove since not - really used. - (set_frame_menubar): Adjust user. - * w32term.h (struct x_output): Drop outdated #if 0 code. - (struct w32_output): Use bitfields for explicit_parent, - asked_for_visible and menubar_active members. - Drop unused pending_menu_activation member. - * xterm.h (struct x_output): Drop outdated #if 0 code. - Use bitfields for explicit_parent, asked_for_visible, - has_been_visible and net_wm_state_hidden_seen members. - -2012-11-23 Eli Zaretskii - - * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead - of a literal "/". (Bug#12955) - (gl-stamp): Invoke fc.exe directly, not through cmd. - -2012-11-23 Paul Eggert - - Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958). - * dired.c: Assume HAVE_DIRENT_H. - (NAMLEN): Remove, replacing with ... - (dirent_namelen): New function. All uses changed. Use the GNU macro - _D_EXACT_NAMELEN if available, as it's faster than strlen. - (DIRENTRY): Remove, replacing all uses with 'struct dirent'. - (DIRENTRY_NONEMPTY): Remove. All callers now assume it's nonzero. - * makefile.w32-in (DIR_H): Remove. All uses replaced with - $(NT_INC)/dirent.h. - ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h. - * ndir.h: Rename to ../nt/inc/dirent.h. - * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove. - Do not include ; no longer needed. - * w32.c: Include rather than "ndir.h". - -2012-11-23 Chong Yidong - - * xftfont.c (xftfont_open): Remove duplicate assignment. - -2012-11-22 Dmitry Antipov - - * alloc.c (Fgarbage_collect): Unblock input after clearing - gc_in_progress to avoid note_mouse_highlight glitch with GC. - * frame.h (FRAME_MOUSE_UPDATE): New macro. - * msdos.c (IT_frame_up_to_date): Use it here... - * w32term.c (w32_frame_up_to_date): ...here... - * xterm.c (XTframe_up_to_date): ...and here... - * nsterm.m (ns_frame_up_to_date): ...but not here. - * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member. - Adjust users. - * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight): - Do not check whether GC is in progress. - -2012-11-22 Dmitry Antipov - - * xdisp.c (window_buffer_changed): New function. - (update_menu_bar, update_tool_bar): Use it to - simplify large 'if' statements. - (redisplay_internal): Generalize commonly used - 'tail' and 'frame' local variables. - -2012-11-22 Eli Zaretskii - - * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts - with Windows system header. - -2012-11-21 Paul Eggert - - Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945). - * alloc.c: Assume unistd.h exists. - * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd. - * sysdep.c (get_current_dir_name): Assume getcwd exists. - (getwd) [USG]: Remove; no longer needed. - (sys_subshell) [DOS_NT]: Use getcwd, not getwd. - * w32.c (getcwd): Rename from getwd, and switch to getcwd's API. - * w32.h (getcwd): Remove decl. - -2012-11-21 Stefan Monnier - - * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind. - Make it set selected_window as well. - (update_tool_bar): Use it. - -2012-11-21 Ken Brown - - * emacs.c (main): Set the G_SLICE environment variable for all - Cygwin builds, not just GTK builds. See - https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html. - -2012-11-21 Eli Zaretskii - - * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED) - (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]: - Define for the MSVC compiler. - - * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon. - - * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory) - (Fexpand_file_name) [DOS_NT]: Pass encoded file name to - dostounix_filename. Prevents crashes down the road, because - dostounix_filename assumes it gets a unibyte string. - Reported by Michel de Ruiter , see - http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html - -2012-11-20 Stefan Monnier - - Conflate Qnil and Qunbound for `symbol-function'. - * alloc.c (Fmake_symbol): Initialize `function' to Qnil. - * lread.c (init_obarray): Set `function' fields to Qnil. - * eval.c (Fcommandp): Ignore Qunbound. - (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand): - * data.c (Ffset, Ffboundp, indirect_function, Findirect_function): - Test NILP rather than Qunbound. - (Ffmakunbound): Set to Qnil. - (Fsymbol_function): Never signal an error. - (Finteractive_form): Ignore Qunbound. - -2012-11-20 Paul Eggert - - * eval.c (interactive_p): Remove no-longer-used decl. - -2012-11-20 Dmitry Antipov - - * xdisp.c (buffer_shared): Adjust comment. - (buffer_shared_and_changed): New function. - (prepare_menu_bars, redisplay_internal): Use it to - decide whether all windows or frames should be updated. - (window_outdated): New function. - (text_outside_line_unchanged_p, redisplay_window): Use it. - (redisplay_internal): Likewise. Fix indentation. - -2012-11-20 Stefan Monnier - - * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove. - (syms_of_eval): Remove corresponding defsubr. - * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function. - -2012-11-19 Daniel Colascione - - * w32fns.c (Fx_file_dialog): - (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to - cygwin_convert_file_name*. - - * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32): - Rename cygwin_convert_path* to cygwin_convert_file_name*. - -2012-11-18 Paul Eggert - - * nsterm.m (ns_select): Send SIGIO only to self, not to process group. - -2012-11-18 Eli Zaretskii - - * w32select.c: Include w32common.h before w32term.h, so that - windows.h gets included before w32term.h uses some of its - features, see below. - - * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]: - New typedefs. - (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]: - New prototypes. - (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878) - -2012-11-18 Jan Djärv - - * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834). - (ns_select): Return at once if events are held (Bug#12834). - -2012-11-18 enami tsugutomo - - * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64. - Needed following 2012-10-20 change. (Bug#12902) - -2012-11-18 Juanma Barranquero - - * w32proc.c (waitpid): Remove unused label get_result. - -2012-11-17 Juanma Barranquero - - * makefile.w32-in (SYSWAIT_H): New macro. - ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O)) - ($(BLD)/sysdep.$(O)): Update dependencies. - -2012-11-17 Paul Eggert - - Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881). - * callproc.c (relocate_fd): Assume F_DUPFD. - * emacs.c, term.c (O_RDWR): Remove. - * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than - O_NDELAY, since O_NONBLOCK is the standard name for this flag. - * nsterm.m: Assume exists. - * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process) - (create_pty, Fmake_network_process, server_accept_connection) - (wait_reading_process_output, init_process_emacs): - Assume O_NONBLOCK. - (wait_reading_process_output): Put in a special case for WINDOWSNT - to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK. - It's not clear this is needed, but it's a more-conservative change. - (create_process): Assume FD_CLOEXEC. - (create_process, create_pty): Assume O_NOCTTY. - * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL. - (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY. - Omit if not DOS_NT, since F_GETFL is not defined there. - (serial_open): Assume O_NONBLOCK and O_NOCTTY. - * term.c: Include , for flags like O_NOCTTY. - (O_NOCTTY): Remove. - (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that - lack it, since gnulib guarantees this. - * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY. - -2012-11-17 Eli Zaretskii - - * w32.c (faccessat): Pretend that directories have the execute bit - set. Emacs expects that, e.g., in files.el:cd-absolute. - - * w32proc.c (create_child): Don't clip the PID of the child - process to fit into an Emacs integer, as this is no longer a - restriction. - (waitpid): Rename from sys_wait. Emulate a Posix 'waitpid' by - reaping only the process specified by PID argument, if that is - positive. Use PID instead of dead_child to know which process to - reap. Wait for the child to die only if WNOHANG is not in - OPTIONS. - (sys_select): Don't set dead_child. - - * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion, - as it is no longer needed. - - * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions, - no longer needed. - (record_child_status_change): Remove the setting of - record_at_most_one_child for the !WNOHANG case. - -2012-11-17 Paul Eggert - - Fix problems in ns port found by static checking. - * nsterm.m: Include , for pthread_mutex_lock etc. - (hold_event, setPosition:portion:whole:): Send SIGIO only to self, - not to process group. - (ns_select): Use emacs_write, not write, as that's more robust - in the presence of signals. - (fd_handler:): Check for read errors. - -2012-11-16 Glenn Morris - - * editfns.c (Fmessage): Mention message-log-max. (Bug#12849) - -2012-11-16 Stefan Monnier - - * eval.c (Finteractive_p): Revert lexbind-merge mishap. - -2012-11-16 Eli Zaretskii - - * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread - use the same value of thread handle. - (start_timer_thread): If the timer thread exited (due to error), - clean up by closing the two handles it used. Duplicate the caller - thread's handle here, so it gets duplicated only once, when - launching the timer thread. Set priority of the timer thread, not - the caller thread. - (getitimer): Don't duplicate the caller thread's handle here. - (Bug#12832) - -2012-11-16 Jan Djärv - - * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is - called (Bug#12834). - -2012-11-16 Paul Eggert - - Remove no-longer-used pty_max_bytes variable. - * process.c (pty_max_bytes): Remove; unused. - (send_process): Do not set it. - -2012-11-15 Juanma Barranquero - - * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)): - Update dependencies. - -2012-11-15 Paul Eggert - - * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'. - This follows up on the 2012-09-29 patch that removed indirection - for the 'function' field. Reported by Sergey Vinokurov in - . - -2012-11-14 Eli Zaretskii - - * w32.c (faccessat): Rename from sys_faccessat. (No need to use a - different name, as the MS runtime does not have such a function, - and probably never will.) All callers changed. Ignore DIRFD - value if PATH is an absolute file name, to match Posix spec - better. If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve - symlinks. - -2012-11-14 Dmitry Antipov - - * xdisp.c (echo_area_display, redisplay_internal): - Omit redundant check whether frame_garbaged is set. - -2012-11-14 Paul Eggert - - Use faccessat, not access, when checking file permissions (Bug#12632). - This fixes a bug that has been present in Emacs since its creation. - It was reported by Chris Torek in 1983 even before GNU Emacs existed, - which must set some sort of record. (Torek's bug report was against - a predecessor of GNU Emacs, but GNU Emacs happened to have the - same common flaw.) See Torek's Usenet posting - "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858 - Posted: Fri Apr 8 14:18:56 1983. - * Makefile.in (LIB_EACCESS): New macro. - (LIBES): Use it. - * callproc.c (init_callproc): - * charset.c (init_charset): - * fileio.c (check_existing, check_executable, check_writable) - (Ffile_readable_p): - * lread.c (openp, load_path_check): - * process.c (allocate_pty): - * xrdb.c (file_p): - Use effective UID when checking permissions, not real UID. - * callproc.c (init_callproc): - * charset.c (init_charset): - * lread.c (load_path_check, init_lread): - Test whether directories are accessible, not merely whether they exist. - * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro. - * fileio.c (check_existing, check_executable, check_writable) - (Ffile_readable_p): - Use symbolic names instead of integers for the flags, as they're - portable now. - (check_writable): New arg AMODE. All uses changed. - Set errno on failure. - (Ffile_readable_p): Use faccessat, not stat + open + close. - (Ffile_writable_p): No need to call check_existing + check_writable. - Just call check_writable and then look at errno. This saves a syscall. - dir should never be nil; replace an unnecessary runtime check - with an eassert. When checking the parent directory of a nonexistent - file, check that the directory is searchable as well as writable, as - we can't create files in unsearchable directories. - (file_directory_p): New function, which uses 'stat' on most platforms - but faccessat with D_OK (for efficiency) if WINDOWSNT. - (Ffile_directory_p, Fset_file_times): Use it. - (file_accessible_directory_p): New function, which uses a single - syscall for efficiency. - (Ffile_accessible_directory_p): Use it. - * xrdb.c (file_p): Use file_directory_p. - * lisp.h (file_directory_p, file_accessible_directory_p): New decls. - * lread.c (openp): When opening a file, use fstat rather than - stat, as that avoids a permissions race. When not opening a file, - use file_directory_p rather than stat. - (dir_warning): First arg is now a usage string, not a format. - Use errno. All uses changed. - * nsterm.m (ns_term_init): Remove unnecessary call to file-readable - that merely introduced a race. - * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK' - changed to '#if O_NONBLOCK', to accommodate gnulib O_* style, - and similarly for the other O_* flags. - * w32.c (sys_faccessat): Rename from sys_access and switch to - faccessat's API. All uses changed. - * xrdb.c: Do not include ; no longer needed. - (magic_db): Rename from magic_file_p. - (magic_db, search_magic_path): Return an XrmDatabase rather than a - char *, so that we don't have to test for file existence - separately from opening the file for reading. This removes a race - fixes a permission-checking problem, and simplifies the code. - All uses changed. - (file_p): Remove; no longer needed. - -2012-11-13 Dmitry Antipov - - Omit glyphs initialization at startup. - * dispnew.c (glyphs_initialized_initially_p): Remove. - (adjust_frame_glyphs_initially): Likewise. Adjust users. - (Fredraw_frame): Move actual code from here... - (redraw_frame): ...to here. Add eassert. Adjust comment. - (Fredraw_display): Use redraw_frame. - * xdisp.c (clear_garbaged_frames): Likewise. - -2012-11-13 Eli Zaretskii - - * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument - passed to pint2str and pint2hrstr to be at most the size of the - frame's decode_mode_spec_buffer. This avoids crashes with very - large values of FIELD_WIDTH argument to decode_mode_spec. - (Bug#12867) - -2012-11-13 Paul Eggert - - Fix a race with verify-visited-file-modtime (Bug#12863). - Since at least 1991 Emacs has ignored an mtime difference of no - more than one second, but my guess is that this was to work around - file system bugs that were fixed long ago. Since the race is - causing problems now, let's remove that code. - * fileio.c (Fverify_visited_file_modtime): Do not accept a file - whose time stamp is off by no more than a second. Insist that the - file time stamps match exactly. - -2012-11-12 Dmitry Antipov - - * frame.h (struct frame): Convert external_tool_bar member to - 1-bit unsigned bitfield. - * termhooks.h (struct terminal): Remove mouse_moved member since - all users are long dead. Adjust comment on mouse_position_hook. - -2012-11-12 Dmitry Antipov - - Simplify by using FOR_EACH_FRAME here and there. - * frame.c (next_frame, prev_frame, other_visible_frames) - (delete_frame, visible-frame-list): Use FOR_EACH_FRAME. - * w32term.c (x_window_to_scroll_bar): Likewise. - * window.c (window_list): Likewise. - * xdisp.c (x_consider_frame_title): Likewise. - * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise. - * xfns.c (x_window_to_frame, x_any_window_to_frame) - (x_menubar_window_to_frame, x_top_window_to_frame): Likewise. - * xmenu.c (menubar_id_to_frame): Likewise. - * xselect.c (frame_for_x_selection): Likewise. - * xterm.c (x_frame_of_widget, x_window_to_scroll_bar) - (x_window_to_menu_bar): Likewise. - * w32fns.c (x_window_to_frame): Likewise. Adjust comment. - -2012-11-12 Paul Eggert - - * data.c (Qdefalias_fset_function): Now static. - - Another tweak to vectorlike_header change. - * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST): - Remove, and replace all uses with ... - (next_in_free_list, set_next_in_free_list): - New functions, which respect C's aliasing rules better. - -2012-11-11 Paul Eggert - - * window.c (list4i): Rename from 'quad'. All uses changed. - Needed because defines 'quad' on Solaris 10. - -2012-11-11 Juanma Barranquero - - * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence - warning about mixing declarations and code in ISO C90. - -2012-11-10 Martin Rudalics - - * window.c (Fsplit_window_internal): Set combination limit of - new parent window to t iff Vwindow_combination_limit is t; - fixing a regression introduced with the change from 2012-09-22. - (Fset_window_combination_limit): Fix doc-string. - -2012-11-10 Eli Zaretskii - - * xdisp.c (try_scrolling): Fix correction of aggressive-scroll - amount when the scroll margins are too large. When scrolling - backwards in the buffer, give up if cannot reach point or the - scroll margin within a reasonable number of screen lines. - Fixes point position in window under scroll-up/down-aggressively when - point is positioned many lines beyond the window top/bottom. - (Bug#12811) - - * ralloc.c (relinquish): If real_morecore fails to return memory - to the system, don't crash; instead, leave the last heap - unchanged and return. (Bug#12774) - -2012-11-09 Stefan Monnier - - * lisp.h (AUTOLOADP): New macro. - * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead. - * data.c (Ffset): Remove special ad-advice-info handling. - (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function. - (Fsubr_arity): CSE. - (Finteractive_form): Simplify. - (Fquo): Don't insist on having at least 2 arguments. - (Qdefalias_fset_function): New var. - -2012-11-09 Jan Djärv - - * image.c (xpm_make_color_table_h): Change to hashtest_equal. - - * nsfont.m (Qcondensed, Qexpanded): New variables. - (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting. - (syms_of_nsfont): Defsym Qcondensed, Qexpanded. - -2012-11-09 Dmitry Antipov - - Fix recently introduced crash on MS-Windows (Bug#12839). - * w32term.h (struct scroll_bar): Use convenient header. - (SCROLL_BAR_VEC_SIZE): Remove. - * w32term.c (x_scroll_bar_create): Use VECSIZE. - -2012-11-09 Dmitry Antipov - - Tweak last vectorlike_header change. - * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent - vectorlike object on the free list. This is introduced to avoid - some (but not all) pointer casting and aliasing problems, see - http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html. - * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike - objects. - (xvectype, xvecsize): Use them to examine Lisp_Object values. - -2012-11-09 Jan Djärv - - * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has - been removed, so remove them here also. - -2012-11-09 Stefan Monnier - - * doc.c (Fdocumentation): Handle new property - dynamic-docstring-function to replace the old ad-advice-info. - -2012-11-09 Paul Eggert - - * fns.c (Qeql, hashtest_eq): Now static. - -2012-11-08 Stefan Monnier - - * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int. - * fns.c (hashfn_eq, hashfn_eql, sxhash): - * profiler.c (hashfn_profiler): Don't use XUINT on non-integers. - * buffer.c (compare_overlays): Use XLI rather than XHASH. - -2012-11-08 Paul Eggert - - Use same hash function for hashfn_profiler as for hash_string etc. - * fns.c (SXHASH_COMBINE): Remove. All uses replaced by sxhash_combine. - * lisp.h (sxhash_combine): New inline function, with the contents - of the old SXHASH_COMBINE. - * profiler.c (hashfn_profiler): Use it, instead of having a - special hash function containing a comparison that always yields 1. - -2012-11-08 Stefan Monnier - - * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic) - (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed) - (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded): - Remove unused vars. - -2012-11-08 Jan Djärv - - * image.c (xpm_make_color_table_h): Fix compiler error because - make_hash_table changed. - -2012-11-08 Thomas Kappler (tiny change) - - * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541). - -2012-11-08 Stefan Monnier - - Use ad-hoc comparison function for the profiler's hash-tables. - * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars. - (make_log): Use them. - (handle_profiler_signal): Don't inhibit quit any longer since we don't - call Fequal any more. - (Ffunction_equal): New function. - (cmpfn_profiler, hashfn_profiler): New functions. - (syms_of_profiler): Initialize them. - * lisp.h (struct hash_table_test): New struct. - (struct Lisp_Hash_Table): Use it. - * alloc.c (mark_object): Mark hash_table_test fields of hash tables. - * fns.c (make_hash_table): Take a struct to describe the test. - (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql) - (hashfn_equal, hashfn_user_defined): Adjust to new calling convention. - (hash_lookup, hash_remove_from_table): Move assertion checking of - hashfn result here. Check hash-equality before calling cmpfn. - (Fmake_hash_table): Adjust call to make_hash_table. - (hashtest_eq, hashtest_eql, hashtest_equal): New structs. - (syms_of_fns): Initialize them. - * emacs.c (main): Move syms_of_fns earlier. - * xterm.c (syms_of_xterm): - * category.c (hash_get_category_set): Adjust call to make_hash_table. - * print.c (print_object): Adjust to new hash-table struct. - * composite.c (composition_gstring_put_cache): Adjust to new hashfn. - -2012-11-08 Eli Zaretskii - - * w32fns.c (modifier_set): Fix handling of Scroll Lock when the - value of w32-scroll-lock-modifier is neither nil nor one of the - known key modifiers. (Bug#12806) - -2012-11-08 Dmitry Antipov - - Shrink struct vectorlike_header to the only size field. - * lisp.h (enum pvec_type): Avoid explicit enum member values. - Adjust comment. - (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and - PVEC_TYPE_MASK to arrange new bitfield in the vector header. - (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members. - (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype - information from the vector header. Adjust comment. - (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR) - (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header - layout. - (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout. - (struct vectorlike_header): Remove next member. Adjust comment. - (struct Lisp_Subr): Add convenient header. Adjust comment. - (allocate_pseudovector): Adjust prototype. - * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string) - (sweep_string, lisp_malloc): Remove useless prototypes. - (enum mem_type): Adjust comment. - (NEXT_IN_FREE_LIST): New macro. - (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage. - (Fmake_bool_vector): Likewise. - (struct large_vector): New type to represent allocation unit for - the vectors with the memory footprint more than VBLOOCK_BYTES_MAX. - (large_vectors): Change type to struct large_vector. - (allocate_vector_from_block): Simplify. - (PSEUDOVECTOR_NBYTES): Replace with... - (vector_nbytes): ...new function. Adjust users. - (sweep_vectors): Adjust processing of large vectors. - (allocate_vectorlike): Likewise. - (allocate_pseudovector): Change type of 3rd arg to enum pvec_type. - Add easserts. Adjust XSETPVECTYPESIZE usage. - (allocate_buffer): Use BUFFER_PVEC_INIT. - (live_vector_p): Adjust to match large vector. - * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT. - * buffer.h (struct buffer): Add next member. - (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT): - New macros. - (FOR_EACH_BUFFER): Adjust to match struct buffer change. - * fns.c (internal_equal): Adjust to match enum pvec_type change. - (copy_hash_table): Adjust to match vector header change. - * lread.c (defsubr): Use XSETPVECTYPE. - * .gdbinit (xpr, xbacktrace): Adjust to match vector header change. - (xvectype): Likewise. Print PVEC_NORMAL_VECTOR for regular vectors. - (xvecsize): New command. - -2012-11-08 Dmitry Antipov - - * keyboard.c (event_to_kboard): Do not dereference - frame_or_window field of SELECTION_REQUEST_EVENT - and SELECTION_CLEAR_EVENT events (Bug#12814). - * xterm.h (struct selection_input_event): Adjust comment. - -2012-11-07 Eli Zaretskii - - * w32fns.c (modifier_set): Don't report modifiers from toggle key, - such as Scroll Lock, if the respective keys are treated as - function keys, not as modifiers. This avoids destroying non-ASCII - keyboard input when Scroll Lock is toggled ON. (Bug#12806) - -2012-11-07 Dmitry Antipov - - * xfns.c (Fx_wm_set_size_hint): Use check_x_frame. Adjust docstring. - -2012-11-06 Paul Eggert - - Restore some duplicate definitions (Bug#12814). - This undoes part of the 2012-11-03 changes. Some people build - with plain -g rather than with -g3, and they need the duplicate - definitions for .gdbinit to work; see . - * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): - Define as macros, as well as as enums or as constants. - -2012-11-06 Jan Djärv - - * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask - to keypad keys (Bug#12816). - -2012-11-06 Paul Eggert - - Minor adjustments of recently-changed frame functions. - * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already - known to be a frame (we're in the FRAMEP branch). - * lisp.h (Qframep): Remove decl. frame.h declares this. - * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t, - since they're meant for Lisp fixnum values. - -2012-11-06 Dmitry Antipov - - * window.c (Fwindow_combination_limit): Revert to the only - required argument and adjust docstring as suggested in - http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html - by Martin Rudalics . - -2012-11-06 Dmitry Antipov - - Widely used frame validity and checking functions. - * frame.h (decode_live_frame, decode_any_frame): Add prototypes. - * frame.c (decode_live_frame, decode_any_frame): New functions. - (delete_frame, Fredirect_frame_focus, Fframe_parameters) - (Fframe_parameter, Fframe_char_height, Fframe_char_width) - (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width) - (Fframe_pointer_visible_p): Use decode_any_frame. - (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame) - (Fraise_frame, Flower_frame, Fmodify_frame_parameters) - (Fset_frame_height, Fset_frame_width): Use decode_live_frame. - (Fframe_focus): Likewise. Allow zero number of arguments. - Adjust docstring. - (frame_buffer_list, frame_buffer_predicate): Remove. - * lisp.h (frame_buffer_predicate): Remove prototype. - * buffer.c (Fother_buffer): Use decode_any_frame. - * xdisp.c (Ftool_bar_lines_needed): Likewise. - * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise. - * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font) - (Fclose_font, Ffont_info): Use decode_live_frame. - * fontset.c (check_fontset_name): Likewise. - * terminal.c (Fframe_terminal): Likewise. - * w32fns.c (check_x_frame): Likewise. - * window.c (Fminibuffer_window, Fwindow_at) - (Fcurrent_window_configuration): Likewise. - (Frun_window_configuration_change_hook, Fwindow_resize_apply): - Likewise. Allow zero number of arguments. Adjust docstring. - * dispnew.c (Fredraw_frame): Likewise. - * xfaces.c (frame_or_selected_frame): Remove. - (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font) - (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p) - (Fframe_face_alist): Use decode_live_frame. - * xfns.c (check_x_frame): Likewise. - -2012-11-06 Dmitry Antipov - - * window.c (quad): New function. - (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges) - (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges) - (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p) - (Fwindow_line_height): Use it. - (Fwindow_fringes): Use list3. - (Fwindow_scroll_bars): Use list4. - (Fwindow_frame, Fwindow_top_child, Fwindow_left_child) - (Fwindow_combination_limit): Allow zero number of arguments. - -2012-11-05 Eli Zaretskii - - * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h. - - * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin. - (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use - file descriptor 2 for standard error. (Bug#12805) - -2012-11-05 Chong Yidong - - * process.c (wait_reading_process_output): Revert previous change. - -2012-11-05 Paul Eggert - - Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800). - This removes code that has been obsolete since around 1990. - * callproc.c (Fcall_process): - * emacs.c (main): - * process.c (create_process): - * term.c (dissociate_if_controlling_tty): - Assume setsid exists. - * callproc.c (child_setup): Assume setpgid exists and behaves as - per POSIX.1-1988 or later. - * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove. - * emacs.c (shut_down_emacs): - * sysdep.c (sys_suspend, init_foreground_group): - Assume getpgrp behaves as per POSIX.1-1998 or later. - * msdos.c (setpgrp): Remove. - (tcgetpgrp, setpgid, setsid): New functions. - * systty.h (EMACS_GETPGRP): Remove. All callers now use getpgrp. - * term.c (no_controlling_tty): Remove; unused. - * w32proc.c (setpgrp): Remove. - (setsid, tcgetpgrp): New functions. - - Simplify by assuming __fpending. - * dispnew.c: Include , not . - (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT. - Do not assume that __fpending's result fits in int. - -2012-11-04 Paul Eggert - - Remove EMACS_OUTQSIZE+sleep hack. - * dispnew.c (update_frame_1): Remove hack for terminals slower - than 2400 bps, which throttled Emacs by having it sleep. - This code hasn't worked since at least 2007, when the multi-tty stuff - was added, and anyway those old terminals are long dead. - * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even - without the dispnew.c change, as dispnew.c doesn't include systty.h. - - Fix data-loss with --version (Bug#9574). - * emacs.c (close_output_streams): Use strerror, not emacs_strerror, - as we can't assume that emacs_strerror is initialized, and strerror - is good enough here. - (main): Invoke atexit earlier, to catch earlier instances of - sending data to stdout and exiting, e.g., "emacs --version >/dev/full". - -2012-11-04 Michael Marchionna - - * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680). - (keyDown): Remap keypad keys to X11 virtual key codes. - -2012-11-03 Paul Eggert - - Fix data-loss with --batch (Bug#9574). - * emacs.c: Include . - (close_output_streams): New function. - (main): Pass it to atexit, so that Emacs closes stdout and stderr - and handles errors appropriately. - (Fkill_emacs): Don't worry about flushing, as close_output_stream - does that now. - - Fix a race condition that causes Emacs to mess up glib (Bug#8855). - The symptom is a diagnostic "GLib-WARNING **: In call to - g_spawn_sync(), exit status of a child process was requested but - SIGCHLD action was set to SIG_IGN and ECHILD was received by - waitpid(), so exit status can't be returned." The diagnostic - is partly wrong, as the SIGCHLD action is not set to SIG_IGN. - The real bug is a race condition between Emacs and glib: Emacs - does a waitpid (-1, ...) and reaps glib's subprocess by mistake, - so that glib can't find it. Work around the bug by invoking - waitpid only on subprocesses that Emacs itself creates. - * process.c (create_process, record_child_status_change): - Don't use special value -1 in pid field, as the caller now must - know the pid rather than having the callee infer it. - The inference was sometimes incorrect anyway, due to another race. - (create_process): Set new 'alive' member if child is created. - (process_status_retrieved): New function. - (record_child_status_change): Use it. - Accept negative 1st argument, which means to wait for the - processes that Emacs already knows about. Move special-case code - for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of - processes that have already been waited for, by testing and - clearing new 'alive' member. - (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change - now does this internally. - (handle_child_signal): Let record_child_status_change do all - the work, since we do not want to reap all exited child processes, - only the child processes that Emacs itself created. - * process.h (Lisp_Process): New boolean member 'alive'. - - Omit duplicate definitions no longer needed with gcc -g3. - * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG) - (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM): - Define only as macros. There's no longer any need to also define - these symbols as enums or as constants, since we now assume - gcc -g3 when debugging. - -2012-11-03 Eli Zaretskii - - * lisp.mk: Adjust comments to the fact that term/internal is now - loaded from loadup.el. - - * msdos.c (msdos_abort): Rename from emacs_abort, and make static. - (msdos_fatal_signal): New function. - (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to - its argument list. - - * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline" - for GCC versions before 4. - (emacs_raise): Define to call msdos_fatal_signal. - - * xdisp.c (init_from_display_pos): Fix initialization of the bidi - iterator when starting in the middle of a display or overlay - string. (Bug#12745) - -2012-11-03 Chong Yidong - - * process.c (wait_reading_process_output): Clean up the last - change. - -2012-11-03 Jim Paris (tiny change) - - * process.c (wait_reading_process_output): Avoid a race condition - with SIGIO delivery (Bug#11536). - -2012-11-03 Chong Yidong - - * buffer.c (cursor_type): Untabify docstring. - -2012-11-03 Dmitry Antipov - - * frame.h (struct frame): Drop can_have_scroll_bars member - which is meaningless for a long time. Adjust comments. - (FRAME_CAN_HAVE_SCROLL_BARS): Remove. - * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users. - -2012-11-03 Dmitry Antipov - - * window.c (decode_next_window_args): Update window arg after - calling decode_live_window and so fix crash reported at - http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html - by Juanma Barranquero . - (Fwindow_body_width, Fwindow_body_height): Simplify a bit. - * font.c (Ffont_at): Likewise. - -2012-11-01 Jan Djärv - - * widget.c (resize_cb): New function. - (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733). - (EmacsFrameResize): Check if all is up to date before changing frame - size. - -2012-11-02 Eli Zaretskii - - Implement backtrace output for fatal errors on MS-Windows. - * w32fns.c (CaptureStackBackTrace_proc): New typedef. - (BACKTRACE_LIMIT_MAX): New macro. - (w32_backtrace): New function. - (emacs_abort): Use w32_backtrace when the user chooses not to - attach a debugger. Update the text of the abort dialog. - -2012-11-02 Dmitry Antipov - - Window-related stuff cleanup here and there. - * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p): - Use decode_any_window. - * fringe.c (Ffringe_bitmaps_at_pos): Likewise. - * xdisp.c (Fformat_mode_line): Likewise. - * font.c (Ffont_at): Use decode_live_window. - * indent.c (Fcompute_motion, Fvertical_motion): Likewise. - * window.c (decode_next_window_args): Likewise. - (decode_any_window): Remove static. - * window.h (decode_any_window): Add prototype. - * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here... - * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P, - respectively. - -2012-11-02 Dmitry Antipov - - Remove pad from struct input_event. - * termhooks.h (struct input_event): Remove padding field. - Adjust comment. - * keyboard.c (event_to_kboard): Simplify because frame_or_window - member is never cons for a long time. Adjust comment. - (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and - SELECTION_CLEAR_EVENT has no Lisp_Objects to mark. Add comment. - * xterm.c (handle_one_xevent): Do not initialize frame_or_window - field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT. - -2012-11-01 Eli Zaretskii - - * w32proc.c (getpgrp, setpgid): New functions. (Bug#12776) - -2012-10-31 Paul Eggert - - Fix crash when using Emacs as commit editor for git (Bug#12697). - * callproc.c (setpgrp): Remove macro, as we now use setpgid - and it is configured in conf_post.h. - (Fcall_process): Don't invoke both setsid and setpgid; the former - is enough, if it exists. - * callproc.c (Fcall_process, child_setup): - * process.c (create_process): Use setpgid. - * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes - for the real thing. - * dispnew.c (init_display): Initialize the foreground group - if we are running a tty display. - * emacs.c (main): Do not worry about setpgrp; init_display does it now. - * lisp.h (init_foreground_group): New decl. - * sysdep.c (inherited_pgroup): New static var. - (init_foreground_group, tcsetpgrp_without_stopping) - (narrow_foreground_group, widen_foreground_group): New functions. - (init_sys_modes): Narrow foreground group. - (reset_sys_modes): Widen foreground group. - -2012-10-31 Michael Albinus - - * dbusbind.c: Fix cut'n'waste error. Use HAVE_DBUS_VALIDATE_INTERFACE. - -2012-10-31 Martin Rudalics - - * minibuf.c (read_minibuf): Restore current buffer since - choose_minibuf_frame calling Fset_frame_selected_window may - change it (Bug#12766). - -2012-10-30 Jan Djärv - - * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733). - -2012-10-30 Kenichi Handa - - * font.c (Ffont_at): If WINDOW is specified and it is not - displaying the current buffer, signal an error. - -2012-10-29 Daniel Colascione - - * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode): - In preparation for fixing bug#12739, move these functions from - here... - - * coding.h, coding.c: ... to here, and compile them only when - WINDOWSNT or CYGWIN. Moving these functions out of cygw32 proper - lets us write cygw32-agnostic code for the HAVE_NTGUI case. - -2012-10-28 Eli Zaretskii - - * w32proc.c (TIMER_TICKS_PER_SEC): New macro. - (timer_loop, getitimer, setitimer): Use it instead of - CLOCKS_PER_SEC, which is no longer pertinent, since we don't use - 'clock'. - (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a - literal 10000. - -2012-10-28 Jan Djärv - - * nsterm.m (NO_APPDEFINED_DATA): New define. - (last_appdefined_event_data): New variable - (last_appdefined_event): Remove. - (ns_select): Initialize t from last_appdefined_event_data instead - of [last_appdefined_event data1]. - (sendEvent:): Save [theEvent data1] to last_appdefined_event_data, - remove last_appdefined_event (Bug#12698). - -2012-10-28 Stefan Monnier - - * frame.c (x_set_font): Catch internal error. - -2012-10-27 Eli Zaretskii - - Avoid overflow in w32 implementation of interval timers. - When possible, for ITIMER_PROF count only times the main thread - actually executes. - * w32proc.c : 'expire' and 'reload' are now - 'volatile ULONGLONG' types. All the other data which was - previously clock_t is now ULONGLONG. 'terminate' is 'volatile int'. - (GetThreadTimes_Proc): New typedef. - (w32_get_timer_time): New function, returns a suitable time value - for the timer. - (timer_loop): Enter critical section when accessing ULONGLONG - values of the itimer_data struct, as these accesses are no longer - atomic. Call 'w32_get_timer_time' instead of 'clock'. - Remove unused variable. - (init_timers): Initialize s_pfn_Get_Thread_Times. - (start_timer_thread): Don't assign itimer->caller_thread here. - (getitimer): Assign itimer->caller_thread here. - (setitimer): Always call getitimer to get the value of ticks_now. - (sys_spawnve): Avoid compiler warning about format mismatch. - -2012-10-26 Eli Zaretskii - - * w32fns.c (w32_wnd_proc) : Don't enable tracking of - mouse movement events if the menu bar is active. This avoids - producing a busy "hour-glass" cursor by Windows if the mouse - pointer is positioned over a tooltip shown for some menu item. - -2012-10-25 Paul Eggert - - Don't assume process IDs fit in int. - * emacs.c (shut_down_emacs) [!DOS_NT]: - * sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]: - * term.c (dissociate_if_controlling_tty) [!DOS_NT]: - Use pid_t, not int, to store process IDs, as 'int' - is not wide enough on a few platforms (e.g., AIX and IRIX). - -2012-10-23 Kenichi Handa - - The following change is to make face-font-rescale-alist work - correctly for non-ASCII fonts. - - * font.c (font_open_entity): Don't handle Vface_font_rescale_alist. - (font_open_for_lface): Handle Vface_font_rescale_alist. - -2012-10-23 Chong Yidong - - * xfaces.c (Vfont_list_limit): Move unused variable to faces.el. - -2012-10-21 Jan Djärv - - * nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement - for screen font. - (nsfont_draw): Turn off LCD-smoothing (Bug#11484). - - * xterm.c (x_focus_changed): Check if daemonp when sending focus in - event (Bug#12681). - -2012-10-21 Glenn Morris - - * lisp.mk (lisp): Add cp51932.el and eucjp-ms.el. - -2012-10-20 Paul Eggert - - Port to OpenBSD 5.1. - * frame.c (Fmouse_position, Fmouse_pixel_position): - * xdisp.c (produce_stretch_glyph): - Declare local vars only when they're needed. - This is clearer and avoids a warning on OpenBSD about unused vars. - * frame.h (FRAME_WINDOW_P): Always evaluate its argument. - This is safer, and avoids OpenBSD warnings about unused vars. - * keyboard.c (record_menu_key): Remove unnecessary decl. - (poll_timer): Define only if POLL_FOR_INPUT is defined. - * unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined, - as our definition clashes with OpenBSD's. - * xfaces.c (load_face_colors, check_lface_attrs) - (get_lface_attributes_no_remap, get_lface_attributes) - (lface_fully_specified_p, x_supports_face_attributes_p) - (tty_supports_face_attributes_p, face_fontset, realize_face) - (realize_x_face, realize_tty_face): - Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not - merely Lisp_Object *. This is more informative and avoids - a warning on OpenBSD about accessing beyond an object's size. - -2012-10-20 Chong Yidong - - * lread.c (Fload): Doc fix (Bug#12592). - -2012-10-19 Kazuhiro Ito (tiny change) - - * font.c (Ffont_at): Fix previous change. - -2012-10-19 Eli Zaretskii - - * puresize.h (BASE_PURESIZE): Bump the base value to 1700000. - See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html - for the reasons. - - * alloc.c (NSTATICS): Decrease to 0x800. - -2012-10-19 Stefan Monnier - - * fns.c (Fnreverse): Include the problem element when signaling an - error (bug#12677). - -2012-10-18 Jan Djärv - - * nsterm.m (ns_select): Check writefds before call to - FD_ISSET (Bug#12668). - -2012-10-18 Daniel Colascione - - * alloc.c (NSTATICS): Increase from 0x650 to 0x1000 - (staticpro): If we run out of staticpro slots, die with an - informative error instead of just calling emacs_abort. - -2012-10-18 Martin Rudalics - - Fix two flaws reported by Dmitry Antipov. - * window.c (Ftemp_output_buffer_show): Remove. - (Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window. - (syms_of_window): Remove defsubr for Stemp_output_buffer_show. - -2012-10-17 Eli Zaretskii - - * makefile.w32-in ($(BLD)/w32.$(O)): - ($(BLD)/vm-limit.$(O)): - ($(BLD)/term.$(O)): - ($(BLD)/unexw32.$(O)): - ($(BLD)/fileio.$(O)): - ($(BLD)/dispnew.$(O)): Update dependencies. - - * w32term.h (w32_initialize_display_info, initialize_w32_display): - Add prototypes. - - * w32proc.c: Include ctype.h. - - * w32.h (init_environment, check_windows_init_file) - (syms_of_ntproc, syms_of_ntterm, dostounix_filename) - (unixtodos_filename, init_winsock, srandom, random, sys_pipe) - (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd) - (sys_link): Add prototypes. - - * w32.c: Include w32select.h. - (sys_access, e_malloc, sys_select): Add prototypes. - (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval. - - * vm-limit.c [WINDOWSNT]: Include w32heap.h. - - * unexw32.c: Include lisp.h and w32.h. - - * term.c [WINDOWSNT]: Include w32term.h. - - * process.c [WINDOWSNT]: Add prototype of sys_select. - - * fileio.c [WINDOWSNT]: Include w32.h. - - * dispnew.c [WINDOWSNT]: Include w32.h. - - * cygw32.c (Fcygwin_convert_path_to_windows) - (Fcygwin_convert_path_from_windows): Use EQ to compare 2 - Lisp_Object values. (Bug#12661) - - * w32fns.c (w32_msg_pump): Use XIL instead of casting an integer - to Lisp_Object. (Bug#12661) - -2012-10-17 Kenichi Handa - - * xdisp.c (reseat_1): Make the information stored in it->cmp_it - invalidate. - -2012-10-17 Dmitry Antipov - - * buffer.c (Fkill_buffer): When unchaining the marker, - reset its buffer pointer to NULL (Bug#12652). - -2012-10-17 Dmitry Antipov - - Do not verify indirection counters of killed buffers (Bug#12579). - * buffer.h (BUFFER_CHECK_INDIRECTION): New macro. - * buffer.c (compact_buffer, set_buffer_internal_1): Use it. - -2012-10-16 Dmitry Antipov - - * alloc.c (Fmake_byte_code): Fix typo in comment. - * print.c (print_interval): Define as static to match prototype. - * indent.c (disptab_matches_widthtab, recompute_width_table): - Convert to eassert. - -2012-10-16 Dmitry Antipov - - * editfns.c (get_system_name): Remove. - * lisp.h (get_system_name): Remove prototype. - * xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes. - (get_environ_db): Use Vsystem_name. Avoid call to strlen. - -2012-10-15 Daniel Colascione - - * dbusbind.c: Add comment explaining reason for previous change. - -2012-10-15 Martin Rudalics - - * window.c (Fwindow_end): Rewrite check whether cached position - can be used (Bug#12600). - (resize_frame_windows, grow_mini_window, shrink_mini_window): - Set windows_or_buffers_changed. - -2012-10-15 Daniel Colascione - - * dbusbind.c: Fix cygw32 build break when compiling with dbus - enabled by undefining the symbol "interface", which the platform - headers define to something incompatible. - -2012-10-14 Daniel Colascione - - * image.c (init_tiff_functions, init_imagemagick_functions) - (init_svg_functions): Fix cygw32 build break by using these - functions only when WINDOWSNT _and_ HAVE_NTGUI. - -2012-10-14 Jan Djärv - - * nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422). - -2012-10-13 Jan Djärv - - * gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612). - -2012-10-13 HANATAKA, Shinya (tiny change) - - * coding.c (detect_coding): Set coding->id before calling - this->detector. - -2012-10-13 Andreas Schwab - - * fileio.c: Formatting fixes. - -2012-10-13 Paul Eggert - - Fix some stat-related races. - * fileio.c (Fwrite_region): Avoid race condition if a file is - removed or renamed by some other process immediately after Emacs - writes it but before Emacs stats it. Do not assume that stat (or - fstat) succeeds. - * image.c (slurp_file): Resolve the file name with fopen + fstat - rather than stat + fopen. - (pbm_read_file) [0]: Remove unused code with stat race. - * process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]: - Remove ineffective code with stat race. - -2012-10-12 Stefan Monnier - - * doc.c (get_doc_string): Don't signal an error if the file is missing. - -2012-10-12 Jan Djärv - - * nsterm.m (hold_event_q): New static variable. - (EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if - ! q_event_ptr. - (hold_event): New function. - (ns_read_socket): If hold_event_q have events, store them and - return (Bug#12384). - (setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr - is zero (Bug#12384). - -2012-10-12 Juanma Barranquero - - * makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies. - -2012-10-12 Eli Zaretskii - - * makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h. - - * fileio.c (check_existing): New function. - (make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it - instead of calling 'stat', when what's needed is to check whether - a file exists. This avoids expensive system calls on MS-Windows. - (Bug#12587) - - * w32.c (init_environment): Call 'check_existing' instead of 'stat'. - - * lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to - determine whether a file exists and is not a directory. - - * lisp.h (check_existing): Add prototype. - -2012-10-12 Jan Djärv - - * nsfont.m (nsfont_open): Remove font cache, it is not GC correct. - -2012-10-12 Glenn Morris - - * buffer.c (Fset_buffer): Doc fix. (Bug#12624) - -2012-10-11 Stefan Monnier - - * buffer.c (Fkill_buffer): Null out the overlay list(s) as well. - - * eval.c (Fautoload): Remember previous autoload status in load-history. - -2012-10-11 Paul Eggert - - lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans. - * lread.c (load_each_byte, new_backquote_flag, readchar) - (read_filtered_event, lisp_file_lexically_bound_p) - (safe_to_load_version, Fload, complete_filename_p, openp) - (build_load_history, readevalloop, read_escape, read1) - (string_to_number, read_vector, read_list): - * macros.c (Fstart_kbd_macro): - * marker.c (CONSIDER): - * menu.c (parse_single_submenu, digest_single_submenu) - (find_and_return_menu_selection, Fx_popup_menu): - * minibuf.c (read_minibuf_noninteractive, read_minibuf) - (Ftry_completion): - * nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:): - (ns_menu_show): - * xmenu.c (set_frame_menubar, create_and_show_popup_menu) - (xmenu_show, xdialog_show): - Use bool for booleans. - * lread.c (safe_to_load_version): Rename from safe_to_load_p, - as it's not a predicate. All uses changed. Omit unnecessary - buffer termination. - -2012-10-11 Dmitry Antipov - - * editfns.c (save_excursion_save): Use nil if mark points to nowhere. - (save_excursion_restore): Do not restore mark if it was not saved. - -2012-10-11 Paul Eggert - - * marker.c (cached_modiff): EMACS_INT, not int. - - * w32select.c (waiting_for_input): Declare by including "keyboard.h" - instead of having a wrong decl. - * nsmenu.m (waiting_for_input): Remove wrong decl. - -2012-10-10 Paul Eggert - - keyboard.c, keymap.c: Use bool for booleans. - * dispnew.c (sit_for): Distinguish between 3-way display_option - and boolean do_display. - * keyboard.c (single_kboard, this_command_key_count_reset) - (waiting_for_input, echoing, immediate_quit, input_pending) - (interrupt_input, interrupts_deferred, pop_kboard) - (temporarily_switch_to_single_kboard, ignore_mouse_drag_p) - (command_loop_1, adjust_point_for_property) - (safe_run_hooks_error, input_polling_used, read_char): - (help_char_p, readable_events, kbd_buffer_events_waiting) - (kbd_buffer_get_event, timer_check_2, make_lispy_event) - (lucid_event_type_list_p, get_input_pending): - (gobble_input, menu_separator_name_p, menu_bar_item) - (parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt) - (read_char_minibuf_menu_prompt, access_keymap_keyremap) - (keyremap_step, test_undefined, read_key_sequence) - (detect_input_pending, detect_input_pending_ignore_squeezables) - (detect_input_pending_run_timers, requeued_events_pending_p) - (quit_throw_to_read_char, Fset_input_interrupt_mode): - * keymap.c (get_keymap, keymap_parent, keymap_memberp) - (access_keymap_1, access_keymap, map_keymap, get_keyelt) - (Fdefine_key, Flookup_key, struct accessible_keymaps_data) - (accessible_keymaps_1, Fkey_description, push_key_description): - (shadow_lookup, struct where_is_internal_data) - (where_is_internal, Fwhere_is_internal, where_is_internal_1) - (Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt) - (describe_map, describe_vector): - * menu.c (single_menu_item): - * nsmenu.m (ns_update_menubar): - * process.c (wait_reading_process_output): - * search.c (scan_buffer, scan_newline): - Use bool for boolean. - * keyboard.c (timers_run, swallow_events) - (detect_input_pending_run_timers): - * process.c (wait_reading_process_output): - Use unsigned for counter where wraparound-on-overflow is desired, - since unsigned is guaranteed to have that behavior and signed is not. - (read_char): Use ptrdiff_t for string length. - (get_input_pending): Remove first argument, since it was always - the same pointer-to-int (now pointer-to-boolean) &input_pending, - and behave as if it had that value. Return new value of - input_pending. All callers changed. - * keyboard.h (struct kboard): Use unsigned : 1 for boolean member - immediate_echo. Use ptrdiff_t for echo_after_prompt, since it's - a string length. - * keymap.c (push_key_description): Omit last arg, which was always 1. - All callers changed. - - * regex.c (immediate_quit) [emacs]: Remove duplicate decl. - -2012-10-10 Juanma Barranquero - - * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O)) - ($(BLD)/term.$(O)): Update dependencies. - -2012-10-10 Dmitry Antipov - - * alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR. - * lisp.h (enum pvec_type): Adjust comments and omit explicit - initializer for PVEC_NORMAL_VECTOR. - -2012-10-10 Paul Eggert - - Clean out old termopts cruft. - * termopts.h (flow_control, meta_key): Remove unused decls. - * dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c: - Don't include termopts.h. - -2012-10-10 Dmitry Antipov - - * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers. - -2012-10-10 Paul Eggert - - * commands.h (immediate_quit): Remove duplicate decl. - -2012-10-09 Jan Djärv - - * nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles - caching. - (nsfont_open): Remove setting of Vfonts_in_cache. - (syms_of_nsfont): Remove initialization of Vfonts_in_cache. - -2012-10-09 Eli Zaretskii - - * w32fns.c (w32_last_error): Change the return value to DWORD, to - match what GetLastError returns. Explain why the function is - needed. - - * frame.c (delete_frame): Rename local variable 'tooltip_frame' to - 'is_tooltip_frame', to avoid confusion with its global namesake. - -2012-10-08 Daniel Colascione - - * xdisp.c (start_hourglass): Call w32_note_current_window when - HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32 - build that caused Emacs to display the hourglass cursor forever. - - * w32fns.c (Fx_display_color_cells): Instead of using NCOLORS, - which is broken under remote desktop, calculate the number of - colors available for a display based on the display's number of - planes and number of bits per pixel per plane. (bug#10397). - -2012-10-08 Jan Djärv - - * nsfont.m (Vfonts_in_cache): New variable. - (nsfont_open): Use unsignedLongLongValue for cache in case wide ints - are used. Add cached fonts to Vfonts_in_cache. - (syms_of_nsfont): Initialize and staticpro Vfonts_in_cache. - -2012-10-08 Juanma Barranquero - - * makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now - in nt/config.nt. - (FONT_H): Define after FRAME_H. - ($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)): - Update dependencies. - - * w32term.c: Remove leftover declaration of keyboard_codepage. - -2012-10-08 Eli Zaretskii - - * makefile.w32-in (FONT_H): Add $(FRAME_H). - (W32TERM_H): Add $(ATIMER_H) and $(FRAME_H). - ($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies. - (GLOBAL_SOURCES): Add cygw32.c. - ($(BLD)/unexw32.$(O)): - ($(BLD)/w32.$(O)): - ($(BLD)/w32console.$(O)): - ($(BLD)/w32fns.$(O)): - ($(BLD)/w32heap.$(O)): - ($(BLD)/w32menu.$(O)): - ($(BLD)/w32proc.$(O)): Add w32common.h. - - * w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now - 'const char *'. - (x_to_w32_color): Don't modify the argument, modify a copy instead. - -2012-10-08 Daniel Colascione - - * w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY) - (WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close - accidental message numbering hole. Change other messages to - match. - - * w32select.h (HAVE_W32SELECT): Remove. - - * w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include - w32common.h instead of w32heap.h. - - * w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size) - (get_allocation_unit, get_processor_type, get_w32_major_version) - (get_w32_minor_version, sysinfo_cache, osinfo_cache) - (w32_major_version, w32_minor_version, w32_build_number, OS_9X) - (OS_NT, os_subtype, cache_system_info): Move declarations to - w32common. - - * w32heap.c: Include w32common.h. - (sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version) - (w32_minor_version, w32_build_number, w32_subtype): - Remove duplicate definitions. - - * w32fns.c: Include w32common.h; include w32heap.h only in - WINDOWSNT. - - (Fx_file_dialog): Clarify comment on GetOpenFileName structure. - Use `report_file_error' instead of `error' in order to better - inform users of what went wrong. Increase NTGUI_UNICODE file - dialog box file name length to 32k, the maximum allowed by the NT - kernel. - - * w32common.h: New file. - (ROUND_UP, ROUND_DOWN, get_page_size) - (get_allocation_unit, get_processor_type, get_w32_major_version) - (get_w32_minor_version, sysinfo_cache, osinfo_cache) - (w32_major_version, w32_minor_version, w32_build_number, OS_9X) - (OS_NT, os_subtype, cache_system_info): Move here. - - * unexw32.c, unexcw.c: Include w32common.h. - - * emacs.c (main): Use (defined (WINDOWSNT) || defined - HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether - to call syms_of_w32select. - - * cygw32.h: Remove obsolete EXFUN declarations. - - * cygw32.c (Qutf_16_le): Rename to Qutf_16le. - - * Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal - of w32inevt.o from SOME_MACHINE_OBJECTS. - -2012-10-08 Daniel Colascione - - * image.c: Permanent fix for JPEG compilation issue --- limit - jpeglib `boolean' redefinition to Cygwin builds. - -2012-10-08 Eli Zaretskii - - * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used. - - * emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on - Cygwin. - -2012-10-08 Daniel Colascione - - * xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c, - w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c, - w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h, - w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h, - keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c, - emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h, - Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the - operating system. defined(HAVE_NTGUI) && !defined(WINDOWSNT) is - now a supported configuration. - - * Makefile.in: consolidate image variables into LIBIMAGE; add - W32_OBJ and W32_LIBS. Compile new files. - - * conf_post.h: - (_DebPrint) declare tracing facility for W32 debugging. We need - to unify tracing later. - - (NTGUI_UNICODE) Define when compiling for Cygwin to allow the - unconditional use of W32 Unicode functions. Cygwin runs only on - 100% Unicode operating systems. - - * cygw32.c: New file. Define Cygwin-specific facilities. - (Fcygwin_convert_path_to_windows) - (Fcygwin_convert_path_from_windows): New user functions for - accessing Cygwin path-munging routines. - - * cygw32.h: New file. - (WCSDATA, to_unicode, from_unicode): Define facilities for storing - UTF-16LE strings temporarily inside non-Lisp-visible string - objects. - - (w32_strerror): Just what it says on the tin. - - * emacs.c: Make the NS fork-then-exec code for daemon-launching - also run for Cygwin; both systems have the same problem with using - GUI facilities in a forked child. Also call syms_of_cygw32, - syms_of_w32select in correct places. - - (DAEMON_MUST_EXEC): new macro defined to signal that a platform - needs fork-then-exec for daemon launching. - - * font.h: Include frame.h. - - * image.c: Use the image library cache machinery only when we're - compiling for native WINDOWSNT; Cygwin can use shared libraries - like any other Unixlike system. - - * keyboard.c: Clarify a comment regarding the input loop. - - * menu.c: When NTGUI_UNICODE is defined, use Unicode menu - functions directly instead of trying to detect at runtime that our - host operating system supports them. We make this change for two - reasons: Cygwin lacks support for the multibyte character - conversion functions used by the legacy menu code, and Cygwin - never needs to rely on non-Unicode APIs. - - * unexw32.c (hinst): Declare extern. - - * w32.c: Change header order; - (w32_strerror): Move to w32fns.c because we need it for - non-WINDOWSNT builds. - - * w32.h: Add #error macro to make sure we don't include w32.h for - Cygwin builds. Remove w32select declarations. - - * w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to - w32fns.c. w32console.c is WINDOWSNT-only. - - * w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more - NTGUI_UNICODE tweaks. (See above.) Change _snprintf to the more - POSIXy alternative. - (faked_key, sysinfo_cache, osinfo_cahce, syspage_mask) - (w32_major_version, w32_minor_version, w32_build_number) - (os_subtype, sound_type): Define here - (w32_defined_color): Make color parameter const for consistency - with other _defined_color functions. - (w32_createwindow): Unconditionally call w32_init_class instead of - doing so only when hprevinst is non-NULL. Plumbing hprevinst - through the code is complex and unnecessary because class - registration is practically free. - (w32_name_of_message): New EMACSDEBUG-only function. - (Fset_message_beep): Move here - (Fx_open_connection): Require that the display name for Windows be - "w32" for consistency, emacsclient disambiguation, and maybe, one - day, multi-window-system support. - (file_dialog_callback): NTGUI_UNICODE changes; encode and decode - Cygwin files for W32 GUI facilities, since these clearly don't - expect Cygwin names. - (_DebPrint): Define. - (w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs) - (w32_kbd_patch_key, w32_sys_ring_bell): Move here. - (Ssystem_move_file_to_trash): Define only for native WINDOWSNT. - (w32_last_error): Remove. - - * w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds. - - * w32heap.c (syspage_mask): Declare here. - (cache_system_info): Remove. - - * w32inevt.c (faked_key): Define globally, not statically. - (w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key) - (w32_console_toggle_lock_key): Move to w32fns.c. - - * w32menu.c: Include setjmp.h. NTGUI_UNICODE changes throughout. - - * w32proc.c (_DebPrint): Move to w32fns.c. - * w32select.c: Include string.h, stdio.h for Cygwin. - * w32select.h: New File. - - * w32term.c: Include io.h for non-CYGWIN builds; needed for - get_osfhandle. - (w32_message_fd): New variable. Under Cygwin, holds the file - descriptor the system used to tell us about pending thread - messages. - - (w32_init_term): Remove incorrect calls to fcntl and init_sigio - that prevented compilation under non-WINDOWSNT systems. - - (w32_initialize): Open /dev/windows and assign it to - w32_message_fd. Provide w32 feature. - - * w32term.h: Include frame.h, atimer.h. Declare various frame functions. - (WM_EMACS_INPUT_READY): add. - (prepend_msg, w32_message_fd): Declare globally. - - * w32xfns.c: - (keyboard_handle): Use only when WINDOWSNT. - (notify_msg_ready): New function. Posts a message to the main - thread's message queue under CYGWIN, which wakes up the main - thread from select(2) by making the /dev/windows file descriptor - ready. Under WINDOWSNT, it sets an event the same way the old - code did. - - (post, prepend_msg): Actually call notify_msg_ready instead of - setting the input event directly. - -2012-10-07 Eli Zaretskii - - * ralloc.c (relinquish): If a heap is ready to be relinquished, - but it still has blocs in it, don't return it to the system, - instead of aborting. (Bug#12402) - -2012-10-07 Jan Djärv - - * nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506). - - * nsterm.m (ns_update_auto_hide_menu_bar): Remove defintion of - MAC_OS_X_VERSION_10_6. - (syms_of_nsterm): Remove comment about Panther and above for - ns-antialias-text. - * nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove. - (EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4. - (struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3. - - * nsselect.m (ns_string_from_pasteboard): Remove check for >= - MAC_OS_X_VERSION_10_4. - - * nsmenu.m (fillWithWidgetValue:): Remove code for < - MAC_OS_X_VERSION_10_2. - - * nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger. - - * nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4. - (ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4. - - * nsterm.m (ns_in_resize): Remove (Bug#12479). - (ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove. - (ns_clear_frame, sendEvent, windowDidResize, drawRect:): - Remove ns_in_resize check. - (ns_clear_frame_area): Remove resize handle code. - - * nsfns.m (ns_in_resize): Remove. - (x_set_icon_name, ns_set_name, ns_set_name_as_filename): - Remove ns_in_resize check. - -2012-10-07 Paul Eggert - - Improve sys_siglist detection. - * sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's - defined as a macro, as is done in Solaris. - (sys_siglist_entries): New macro. - (save_strsignal): Use it. - * syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify - GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection. - -2012-10-06 Jan Djärv - - * nsfns.m (Fx_create_frame): Call x_default_parameter with - fullscreen/Fullscreen. - - * nsterm.h (EmacsView): Rename tbar_height to tibar_height. - tobar_height is new. - - * nsterm.m (x_make_frame_visible): Check for fullscreen. - (ns_fullscreen_hook): Activate old style fullscreen with a timer. - (ns_term_init): Set activateIgnoringOtherApps if old style fullscreen. - (windowDidResize:): Check for correct window if old style fullscreen. - Capitalize word in comment. Remove incorrect comment. - (initFrameFromEmacs:): tbar_height renamed tibar_height. - (windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix - error in drawing background. - (toggleFullScreen:): Remove comment. Rearrange calls. - Set toolbar values to zero, save old height in tobar_height. - Restore tool bar height when leaving fullscreen. - (canBecomeMainWindow): New function. - -2012-10-06 Paul Eggert - - * keyboard.c (read_char): Remove unnecessary 'volatile's and label. - -2012-10-05 Eli Zaretskii - - * w32proc.c (stop_timer_thread): Fix declaration of 'err'. - - * w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so - that time stamps of directories could also be changed. - Don't request the too broad GENERIC_WRITE, only the more restrictive - FILE_WRITE_ATTRIBUTES access rights. - - * fileio.c (Fset_file_times): Special-case ignoring errors for - directories only on MSDOS, not on MS-Windows. - -2012-10-05 Ikumi Keita (tiny change) - - * minibuf.c (Fcompleting_read): Doc fix. (Bug#12555) - -2012-10-04 Eli Zaretskii - - * w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to - see whether CreateFile failed. - -2012-10-04 Paul Eggert - - * profiler.c (handle_profiler_signal): Inhibit pending signals too, - to avoid similar races. - * keyboard.c (pending_signals): Now bool, not int. - - Port timers to OpenBSD, plus check for timer failures. - OpenBSD problem reported by Han Boetes. - * profiler.c (setup_cpu_timer): Check for failure of timer_settime - and/or setitimer. - (Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER. - * syssignal.h (HAVE_ITIMERSPEC): New macro. This is for platforms - like OpenBSD, which has timer_settime but does not declare it. - OpenBSD does not define SIGEV_SIGNAL, so use that when deciding - whether to use itimerspec-related primitives. All uses of - HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC. - -2012-10-02 Paul Eggert - - * profiler.c (handle_profiler_signal): Fix a malloc race - that caused Emacs to hang on Fedora 17 when profiling Lisp. - -2012-10-02 Jan Djärv - - * nsterm.m (windowDidEnterFullScreen): Remove fprintf. - -2012-10-02 Eli Zaretskii - - * w32proc.c (sys_wait): Declare 'signame' 'const char *', to be - consistent with the change in return value of 'safe_strsignal'. - -2012-10-02 Paul Eggert - - Prefer plain 'static' to 'static inline' (Bug#12541). - * bidi.c (bidi_get_type, bidi_check_type, bidi_get_category) - (bidi_set_sor_type, bidi_push_embedding_level) - (bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it) - (bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state) - (bidi_cache_search, bidi_cache_ensure_space) - (bidi_cache_iterator_state, bidi_cache_find) - (bidi_peek_at_next_level, bidi_set_paragraph_end) - (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char) - (bidi_explicit_dir_char, bidi_resolve_neutral_1): - Now 'static', not 'static inline'. - - Count overruns when profiling; change units to ns. - * profiler.c (handle_profiler_signal): Count sampling intervals, not ms. - Give extra weight to samples after overruns, to attempt to count - the time more accurately. - (setup_cpu_timer): Change sampling interval units from ms to ns, since - the underlying primitives nominally do ns. - (Fprofiler_cpu_start): Document the change. Mention that - the sampling intervals are only approximate. - -2012-10-02 Stefan Monnier - - * frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP. - - * coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special - case for the special 0 coding-system. - - * buffer.c (Fset_buffer_multibyte): Signal an error instead of widening. - (Fmake_overlay): Remove redundant tests. - (fix_start_end_in_overlays): Remove redundant recentering. - -2012-10-02 Juanma Barranquero - - * makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)): - Update dependencies. - -2012-10-01 Paul Eggert - - Fix a malloc race condition involving strsignal. - A signal can arrive in the middle of a malloc, and Emacs's signal - handler can invoke strsignal, which can invoke malloc, which is - not portable. This race condition bug makes Emacs hang on GNU/Linux. - Fix it by altering the signal handler so that it does not invoke - strsignal. - * emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal. - * process.c (status_message): Use const pointer, in case strsignal - is #defined to safe_strsignal. - * sysdep.c (sys_siglist, init_signals): Always define and - initialize a substitute sys_siglist if the system does not define - one, even if HAVE_STRSIGNAL. - (safe_strsignal): Rename from strsignal. Always define, - using sys_siglist. Return a const pointer. - * syssignal.h (safe_strsignal): New decl. - (strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal. - -2012-10-01 Eli Zaretskii - - * w32proc.c (timer_loop): Fix code that waits for timer - expiration, to avoid high CPU usage. - -2012-10-01 Stefan Monnier - - * fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table) - (sweep_weak_table): Remove redundant prototypes. - -2012-10-01 Fabrice Popineau - - * emacs.c: Move the inclusion of TERM_HEADER after including - windows.h on WINDOWSNT. This avoids compilation problems with - MSVC. - -2012-10-01 Eli Zaretskii - - * unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET) - (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses. - (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *', - as the previous version used 'void *'. - - * ralloc.c (ROUNDUP): Fix last change. - (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type - 'size_t'. - - * w32proc.c : New static flag. - (init_timers): Initialize it to zero, after creating the critical - sections used by the timer threads. - (term_timers): Set to 1 before deleting the critical sections. - (getitimer, setitimer): If disable_itimers is non-zero, return an - error indication without doing anything. Reported by Fabrice - Popineau as part of bug#12544. - (alarm) [HAVE_SETITIMER]: Be more conformant to the expected - return results. - [!HAVE_SETITIMER]: Behave as the previous version that didn't - support timers. - - * emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to - term_ntproc after all the other bookkeeping, to get timers working - as long as possible. - -2012-10-01 Paul Eggert - - * xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100. - Suggested by Juri Linkov in - . - - Prefer plain 'static' to 'static inline' (Bug#12541). - With static functions, modern compilers inline pretty well by - themselves; advice from programmers often hurts as much as it helps. - On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'), - this change shrinks the text size of the Emacs executable by 1.1% - without affecting CPU significantly in my benchmark. - * alloc.c (mem_find, 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_maybe_pointer, bounded_number): - * 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, set_buffer_overlays_before) - (set_buffer_overlays_after): - * category.c (bset_category_table): - * charset.c (read_hex): - * coding.c (produce_composition, produce_charset) - (handle_composition_annotation, handle_charset_annotation) - (char_encodable_p): - * dispnew.c (swap_glyph_pointers, copy_row_except_pointers) - (assign_row, set_frame_matrix_frame, make_current) - (add_row_entry): - * eval.c (set_specpdl_symbol, set_specpdl_old_value): - * fns.c (maybe_resize_hash_table): - * frame.c (fset_buffer_predicate, fset_minibuffer_window): - * gmalloc.c (register_heapinfo): - * image.c (lookup_image_type): - * intervals.c (set_interval_object, set_interval_left) - (set_interval_right, copy_interval_parent, rotate_right) - (rotate_left, balance_possible_root_interval): - * keyboard.c (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, clear_event, set_prop): - * lread.c (digit_to_number): - * marker.c (attach_marker, live_buffer, set_marker_internal): - * nsterm.m (ns_compute_glyph_string_overhangs): - * process.c (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): - * syntax.c (bset_syntax_table, dec_bytepos): - * terminal.c (tset_param_alist): - * textprop.c (interval_has_some_properties) - (interval_has_some_properties_list): - * window.c (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_normal_cols, wset_normal_lines, wset_parent, wset_pointm) - (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) - (window_box_edges, run_window_scroll_functions) - (append_glyph_string_lists, prepend_glyph_string_lists) - (append_glyph_string, set_glyph_string_background_width) - (append_glyph, append_composite_glyph) - (take_vertical_position_into_account): - * xfaces.c (x_create_gc, x_free_gc, merge_face_vectors) - (face_attr_equal_p, lface_equal_p, hash_string_case_insensitive) - (lface_hash, lface_same_font_attributes_p, lookup_face): - * xml.c (libxml2_loaded_p): - * xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc) - (x_set_glyph_string_clipping, x_clear_glyph_string_rect): - Now 'static', not 'static inline'. - - * bidi.c: Tune. - (bidi_copy_it): Do the whole copy with a single memcpy. - (bidi_char_at_pos): Merge the two STRING_CHAR calls into one. - - Revert the FOLLOW-SYMLINKS change for file-attributes. - Doing it right would require several changes to Tramp, and there's - not enough time to get that tested before the freeze today. - * dired.c (directory_files_internal, Ffile_attributes): - Undo last change. - - * frame.c (x_report_frame_params): Port better to wider ints. - Do not assume that EMACS_UINT is the same width as uprintmax_t, - or that pointers can be printed in 15 decimal digits. - Avoid GCC warnings if EMACS_UINT is wider than a pointer. - -2012-09-30 Fabrice Popineau - - Support x64 build on MS-Windows. - * w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64. - (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for - compatibility with x64. - (x_get_focus_frame): Add prototype. - - * w32term.c (w32_draw_underwave): Don't use GCC extensions for - defining an XRectangle structure. - - * w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer - arithmetics for compatibility with x64. - - * w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for - compatibility with x64. - - * w32heap.h: Adjust prototypes and declarations. - - * w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap) - (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of - DWORD, long, and unsigned long, for compatibility with x64. - (allocate_heap) [_WIN64]: Reserve 32GB of memory. - (sbrk): Argument is now of type ptrdiff_t. - - * w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being - less than 0x0500. - (w32_msg_pump): Use WPARAM type for 'result'. - - * w32.c (init_environment, get_emacs_configuration): Support AMD64 - architecture. - (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for - compatibility with x64. - - * vm-limit.c (lim_data): Now size_t. - (check_memory_limits): Adjust prototypes of real_morecore and - __morecore to receive argument of type ptrdiff_t. Use size_t for - five_percent and data_size. - - * unexw32.c: Use DWORD_PTR instead of DWORD for file-scope - variables, for compatibility with x64. - (rva_to_section, offset_to_section, relocate_offset) - (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET) - (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info) - (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD - for compatibility with x64. - - * sysdep.c (STDERR_FILENO): Define if not already defined. - - * ralloc.c (real_morecore): Argument type is now ptrdiff_t. - (__morecore): Argument type is now ptrdiff_t. - (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'. - (relinquish): Use ptrdiff_t type for 'excess'. - (r_alloc_sbrk): Argument type is now ptrdiff_t. - - * makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE. - (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE) - instead of a literal number. - - * gmalloc.c [WINDOWSNT]: Include w32heap.h. - (min): Define only if not already defined. - - * frame.c (x_report_frame_params): Use EMACS_UINT for the return - value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows - hosts. - - * image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since - 'bitmaps' is a pointer. - - * dispextern.h (x_bitmap_pixmap): Adjust prototype. - - * alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__. - -2012-09-30 Paul Eggert - - file-attributes has a new optional arg FOLLOW-SYMLINKS. - * dired.c (directory_files_internal, Ffile_attributes): - New arg follow_symlinks. All uses changed. - -2012-09-30 Stefan Monnier - - * .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change. - -2012-09-30 Eli Zaretskii - - Support atimers and CPU profiler via profile.c on MS-Windows. - * w32proc.c (sig_mask, crit_sig): New static variables. - (sys_signal): Support SIGALRM and SIGPROF. - (sigemptyset, sigaddset, sigfillset, sigprocmask) - (pthread_sigmask, setpgrp): Move here from w32.c. sigaddset, - sigfillset, and sigprocmask are no longer no-ops. - (sigismember): New function. - (struct itimer_data): New definition. - (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real) - (crit_prof): New static variables. - (MAX_SINGLE_SLEEP): New definition. - (timer_loop, stop_timer_thread, term_timers, init_timers) - (start_timer_thread, getitimer, setitimer): New functions. - (alarm): No longer a no-op, calls setitimer. - - * w32.c (term_ntproc): Call term_timers. - (init_ntproc): Make sure all signals are unblocked at startup, to - erase any traces of dumping. Call init_timers. - - * w32fns.c (hourglass_timer, HOURGLASS_ID): Remove. - Windows-specific code to display the hourglass mouse pointer is no - longer used. - (w32_wnd_proc): Remove code that handled the WM_TIMER message due - to hourglass timer expiration. - (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY): - Remove, no longer used. - (w32_note_current_window, show_hourglass, hide_hourglass): - New functions, in support of hourglass cursor display similar to other - window systems. - (syms_of_w32fns): Don't initialize hourglass_timer. - - * xdisp.c (start_hourglass, cancel_hourglass): Now used on - WINDOWSNT as well. - (start_hourglass) [WINDOWSNT]: Call w32_note_current_window. - - * w32.h (init_timers, term_timers): Add prototypes. - -2012-09-30 Kenichi Handa - - * coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention - to the buffer relocation which may be caused by ccl_driver. - -2012-09-30 Jan Djärv - - * xfns.c (Fx_file_dialog): Update comment. - - * w32fns.c (Fx_file_dialog): Update comment. - - * nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P. - Initialize panel name field if OSX >= 10.6. - - * fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS. - - * nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen. - - * nsterm.m (NEW_STYLE_FS): New define. - (ns_fullscreen_hook, windowWillEnterFullScreen) - (windowDidEnterFullScreen, windowWillExitFullScreen) - (windowDidExitFullScreen, toggleFullScreen, handleFS) - (setFSValue): New functions. - (EmacsFSWindow): New implementation. - (canBecomeKeyWindow): New function for EmacsFSWindow. - (ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook. - (dealloc): Release nonfs_window if in fullscreen. - (updateFrameSize:): Call windowDidMove to update top/left. - (windowWillResize:toSize:): Check if frame is still maximized. - (initFrameFromEmacs:): Initialize fs_state, fs_before_fs, - next_maximized, maximized_width, maximized_height and nonfs_window. - Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and - tbar_height. - (windowWillUseStandardFrame:defaultFrame:): Update frame parameter - fullscreen. Set maximized_width/height. Act on next_maximized. - - * nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New. - (EmacsView): Add variables for fullscreen. - (handleFS, setFSValue, toggleFullScreen): New in EmacsView. - (EmacsFSWindow): New interface for fullscreen. - -2012-09-30 Juanma Barranquero - - * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies. - -2012-09-30 Chong Yidong - - * fns.c (Frandom): Doc fix. - -2012-09-30 Martin Rudalics - - * window.c (Vwindow_combination_limit): New default value. - (Qwindow_size): New symbol replacing Qtemp_buffer_resize. - -2012-09-30 Paul Eggert - - * syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING. - Suggested by Eli Zaretskii in - . - -2012-09-30 Eli Zaretskii - - * profiler.c (Fprofiler_cpu_stop): Use timer_settime only if - HAVE_TIMER_SETTIME is defined. - -2012-09-30 Paul Eggert - - Profiler improvements: more-accurate timers, overflow checks. - * profiler.c: Don't include stdio.h, limits.h, sys/time.h, - signal.h, setjmp.h. Include systime.h instead. - (saturated_add): New function. - (record_backtrace, current_sample_interval): Use EMACS_INT, not size_t. - (record_backtrace, handle_profiler_signal): Saturate on fixnum overflow. - (profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]: - New static vars. - (enum profiler_cpu_running): New enum. - (profiler_cpu_running): Now of that enum type, not bool. - All uses changed to store the new value. - (handle_profiler_signal): Rename from sigprof_handler_1, - for consistency with other handlers. Do not check whether - cpu_log is a hash-table if garbage collecting, since it - doesn't matter in that case. - (deliver_profiler_signal): Rename from sigprof_handler, - for consistency with other handlers. - (setup_cpu_timer): New function, with much of what used to be in - Fprofiler_cpu_start. Check for out-of-range argument. - Prefer timer_settime if available, and prefer - thread cputime clocks, then process cputime clocks, then - monotonic clocks, to the old realtime clock. Use make_timeval - to round more-correctly when falling back to setitimer. - (Fprofiler_cpu_start): Use it. - (Fprofiler_cpu_stop): Prefer timer_settime if available. - Don't assume that passing NULL as the 2nd argument of setitimer - is the same as passing a pointer to all-zero storage. - Ignore SIGPROF afterwards. - (malloc_probe): Saturate at MOST_POSITIVE_FIXNUM. - * sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in - non-fatal signal handlers. Ignore SIGPROF on startup. - * syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not - in profiler.c, since sysdep.c now uses it. - - * sysdep.c (handle_fatal_signal): Bump backtrace size to 40. - Suggested by Eli Zaretskii in - . - -2012-09-29 Juanma Barranquero - - * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies. - -2012-09-29 Stefan Monnier - - * lisp.h (struct backtrace): Remove indirection for `function' field. - * xdisp.c (redisplay_internal): - * profiler.c (record_backtrace, sigprof_handler_1): - * alloc.c (Fgarbage_collect): - * eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace) - (Fbacktrace_frame): Adjust accordingly. - -2012-09-28 Glenn Morris - - * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success) - (Frun_hook_with_args_until_failure): Doc fixes. - -2012-09-28 Eli Zaretskii - - * xdisp.c (syms_of_xdisp) : Rename from - Qautomatic_redisplay and change the symbol name. All users changed. - -2012-09-28 Tomohiro Matsuyama - - * profiler.c (sigprof_handler): Fix race condition. - -2012-09-28 Glenn Morris - - * lread.c (lisp_file_lexically_bound_p): Handle #! lines. (Bug#12528) - -2012-09-27 Paul Eggert - - Check more robustly for timer_settime. - * Makefile.in (LIB_TIMER_TIME): New macro. - (LIBES): Add it. - * atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer): - Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to - call timer_settime. - -2012-09-26 Tomohiro Matsuyama - - * profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO. - -2012-09-26 Juanma Barranquero - - * makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies. - -2012-09-26 Paul Eggert - - * character.h (MAYBE_UNIFY_CHAR): Remove. - * charset.c, charset.h (maybe_unify_char): Now static. - * charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR. - Since this stuff is now private to charset.c, there's no need for - a public macro and no need to inline by hand. - -2012-09-26 Tomohiro Matsuyama - Stefan Monnier - Juanma Barranquero - - * profiler.c: New file. - * Makefile.in (base_obj): Add profiler.o. - * makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c. - ($(BLD)/profiler.$(O)): New target. - * emacs.c (main): Call syms_of_profiler. - * alloc.c (Qautomatic_gc): New constant. - (MALLOC_PROBE): New macro. - (xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it. - (total_bytes_of_live_objects): New function. - (Fgarbage_collect): Use it. Record itself in backtrace_list. - Call malloc_probe for the memory profiler. - (syms_of_alloc): Define Qautomatic_gc. - * eval.c (eval_sub, Ffuncall): Reorder assignments to avoid - race condition. - (struct backtrace): Move definition... - * lisp.h (struct backtrace): ..here. - (Qautomatic_gc, profiler_memory_running): Declare vars. - (malloc_probe, syms_of_profiler): Declare functions. - * xdisp.c (Qautomatic_redisplay): New constant. - (redisplay_internal): Record itself in backtrace_list. - (syms_of_xdisp): Define Qautomatic_redisplay. - -2012-09-25 Eli Zaretskii -2012-09-25 Juanma Barranquero - - * makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies. - -2012-09-25 Paul Eggert - - Prefer POSIX timers if available. - They avoid a race if the timer is too close to the current time. - * atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars. - (set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available. - (init_atimer) [SIGEV_SIGNAL]: Initialize them. - -2012-09-25 Eli Zaretskii - - * coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of - CHAR_STRING_ADVANCE. - (STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of - STRING_CHAR_ADVANCE. - -2012-09-25 Juanma Barranquero - - Move Vlibrary_cache to emacs.c and reset before dumping. - - * lisp.h (reset_image_types): Declare. - [WINDOWSNT] (Vlibrary_cache): Declare. - - * image.c (reset_image_types): New function. - - * emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c. - (syms_of_emacs) [WINDOWSNT] : Initialize and staticpro. - (Fdump_emacs): Reset Vlibrary_cache and image_types. - - * w32.c (Vlibrary_cache): Do not define; moved to emacs.c - (globals_of_w32) : Do not initialize. - - * w32.h (Vlibrary_cache): Do not declare. - -2012-09-25 Eli Zaretskii - - * w32proc.c (sys_signal): Handle all signals defined by the - MS-Windows runtime, not just SIGCHLD. Actually install the signal - handlers for signals supported by Windows. Don't override - term_ntproc as the handler for SIGABRT. - (sigaction): Rewrite to call sys_signal instead of duplicating its - code. - (sys_kill): Improve commentary. - - * w32.c (term_ntproc): Accept (and ignore) one argument, for - consistency with a signature of a signal handler. All callers - changed. - (init_ntproc): Accept an argument DUMPING. If dumping, don't - install term_ntproc as a signal handler for SIGABRT, as that - should be done by the dumped Emacs. - - * w32.h (init_ntproc, term_ntproc): Adjust prototypes. - - * w32select.c (term_w32select): Protect against repeated - invocation by setting clipboard_owner to NULL after calling - DestroyWindow. - - * emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc - and term_ntproc to their modified signatures. - - * character.c (char_string, string_char): Remove calls to - MAYBE_UNIFY_CHAR. See the discussion starting at - http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00433.html - for the details. - -2012-09-25 Chong Yidong - - * xdisp.c (mode_line_inverse_video): Delete obsolete variable. - -2012-09-24 Stefan Monnier - - * bytecode.c (exec_byte_code): Signal an error instead of aborting, - when encountering an unknown bytecode. - -2012-09-24 Paul Eggert - - image.c, indent.c: Use bool for booleans. - * dispextern.h (struct image_type): Members valid_p, load, init - now return bool, not int. All uses changed. - * image.c: Omit unnecessary static decls. - (x_create_bitmap_mask, x_build_heuristic_mask): - Return void, not int, since callers don't care about the return value. - (x_create_bitmap_mask, define_image_type, valid_image_p) - (struct image_keyword, parse_image_spec, image_spec_value) - (check_image_size, image_background) - (image_background_transparent, x_clear_image_1) - (postprocess_image, lookup_image, x_check_image_size) - (x_create_x_image_and_pixmap, xbm_image_p) - (Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data) - (xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color) - (init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p) - (xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color) - (x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load) - (png_image_p, init_png_functions, png_load_body, png_load) - (jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load) - (tiff_image_p, init_tiff_functions, tiff_load, gif_image_p) - (init_gif_functions, gif_load, imagemagick_image_p) - (imagemagick_load_image, imagemagick_load, svg_image_p) - (init_svg_functions, svg_load, svg_load_image, gs_image_p) - (gs_load): - * nsimage.m (ns_load_image): - * nsterm.m (ns_defined_color): - * xfaces.c (tty_lookup_color, tty_defined_color, defined_color): - * xfns.c (x_defined_color): - * xterm.c (x_alloc_lighter_color_for_widget) - (x_alloc_nearest_color_1, x_alloc_nearest_color) - (x_alloc_lighter_color): - * indent.c (disptab_matches_widthtab, current_column) - (scan_for_column, string_display_width, indented_beyond_p) - (compute_motion, vmotion, Fvertical_motion): - Use bool for booleans. - -2012-09-24 Chong Yidong - - * chartab.c (Fset_char_table_default): Obsolete function removed. - -2012-09-23 Paul Eggert - - Move pid_t related decls out of lisp.h. - * lisp.h, syswait.h (record_child_status_change, wait_for_termination) - (interruptible_wait_for_termination): - Move these decls from lisp.h to syswait.h, since they use pid_t. - Needed on FreeBSD; see Herbert J. Skuhra in - . - * callproc.c: Include syswait.h. - - gnutls.c, gtkutil.c: Use bool for boolean. - * gnutls.c (gnutls_global_initialized, init_gnutls_functions) - (emacs_gnutls_handle_error): - * gtkutil.c (xg_check_special_colors, xg_prepare_tooltip) - (xg_hide_tooltip, xg_create_frame_widgets) - (create_dialog, xg_uses_old_file_dialog) - (xg_get_file_with_chooser, xg_get_file_with_selection) - (xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget) - (xg_item_label_same_p, xg_update_menubar) - (xg_modify_menubar_widgets, xg_event_is_for_menubar) - (xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb) - (xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item) - (is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes) - (update_frame_tool_bar, free_frame_tool_bar): - * gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint): - * nsmenu.m (ns_update_menubar): - * nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar): - * xfns.c (Fx_show_tip) [USE_GTK]: - Use bool for boolean. - * gtkutil.c (xg_update_frame_menubar): - * xmenu.c (update_frame_menubar): - Return void, not int, since caller ignores return value. - * gtkutil.c (xg_change_toolbar_position): - Return void, not 1. - -2012-09-23 Juanma Barranquero - - * makefile.w32-in (BLOCKINPUT_H): Remove. - (SYSSIGNAL_H): New macro. - ($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O)) - ($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O)) - ($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O)) - ($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O)) - ($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O)) - ($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O)) - ($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O)) - ($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O)) - ($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O)) - ($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O)) - ($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O)) - ($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O)) - ($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O)) - ($(BLD)/w32xfns.$(O)): Update dependencies. - -2012-09-23 Eli Zaretskii - - * .gdbinit: Set breakpoint on terminate_due_to_signal, not on - fatal_error_backtrace. - - * w32proc.c (sys_kill): Undo last change: don't do anything when - invoked to deliver SIGABRT to our own process. This is now - handled by emacs_raise. - -2012-09-23 Juanma Barranquero - - * w32term.c (w32_read_socket): Remove leftover reference to - interrupt_input_pending. - -2012-09-23 Paul Eggert - - Do not use SA_NODEFER. - Problem reported by Dani Moncayo in - . - * alloc.c (die): - * sysdep.c (emacs_abort): Do not reset signal handler. - * emacs.c (terminate_due_to_signal): Reset signal handler here. - * sysdep.c (init_signals): Do not use SA_NODEFER. It wasn't - wanted even on POSIXish hosts, and it doesn't work on Windows. - -2012-09-23 Jan Djärv - - * xterm.c (x_term_init): Call fixup_locale before and after calling - gtk_init (Bug#12392). - -2012-09-23 Chong Yidong - - * w32.c (w32_delayed_load): Remove LIBRARIES argument; always use - Vdynamic_library_alist. - - * gnutls.c (init_gnutls_functions): Caller changed; remove arg. - (Fgnutls_available_p): Caller changed. - - * xml.c (init_libxml2_functions, Flibxml_parse_html_region) - (Flibxml_parse_xml_region): Likewise. - - * dispextern.h (struct image_type): Remove arg from init function. - - * image.c (Finit_image_library, lookup_image_type) - (define_image_type): Remove now-unneeded second arg. - (init_xpm_functions, init_png_functions, init_jpeg_functions) - (init_tiff_functions, init_gif_functions, init_svg_functions): - Arglist and w32_delayed_load calling convention changed. - (gs_type): Remove init_gs_functions; there is no such function. - (valid_image_p, make_image): Fix caller to lookup_image_type. - -2012-09-23 Paul Eggert - - Simplify and avoid signal-handling races (Bug#12471). - * alloc.c (die): - * sysdep.c (emacs_abort) [HAVE_NTGUI]: - Avoid recursive loop if there's a fatal error in the function itself. - * atimer.c (pending_atimers): - * blockinput.h: Don't include "atimer.h"; no longer needed. - (interrupt_input_pending): Remove. All uses removed. - pending_signals now counts both atimers and ordinary interrupts. - This is less racy than having three separate pending-signal flags. - (block_input, unblock_input, totally_unblock_input, unblock_input_to) - (input_blocked_p): - Rename from their upper-case counterparts BLOCK_INPUT, - UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO, - INPUT_BLOCKED_P, and turn into functions. All uses changed. - This makes it easier to access volatile variables more accurately. - (BLOCK_INPUT_RESIGNAL): Remove. All uses replaced by unblock_input (). - (input_blocked_p): Prefer this to 'interrupt_input_blocked', as - that's more reliable if the code is buggy and sets - interrupt_input_blocked to a negative value. All uses changed. - * atimer.c (deliver_alarm_signal): - Remove. No need to deliver this to the parent; any thread can - handle this signal now. All uses replaced by underlying handler. - * atimer.c (turn_on_atimers): - * dispnew.c (handle_window_change_signal): - * emacs.c (handle_danger_signal): - * keyboard.c (kbd_buffer_get_event): - Don't reestablish signal handler; not needed with sigaction. - * blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT) - (UNBLOCK_INPUT_TO): - Rework to avoid unnecessary accesses to volatile variables. - (UNBLOCK_INPUT_TO): Now a function. - (totally_unblock_input, unblock_input): New decls. - * data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c - (init_data): Remove. Necessary stuff now done in init_signal. - * emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions. - * emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c. - (fatal_error_code): Remove; no longer needed. - (terminate_due_to_signal): Rename from fatal_error_backtrace, since - it doesn't always backtrace. All uses changed. No need to reset - signal to default, since sigaction and/or die does that for us now. - Use emacs_raise (FOO), not kill (getpid (), FOO). - (main): Check more-accurately whether we're dumping. - Move fatal-error setup to sysdep.c - * floatfns.c: Do not include "syssignal.h"; no longer needed. - * gtkutil.c (xg_get_file_name, xg_get_font): - Remove no-longer-needed signal-mask manipulation. - * keyboard.c, process.c (POLL_FOR_INPUT): - Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined. - * keyboard.c (read_avail_input): Remove. - All uses replaced by gobble_input. - (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code. - (kbd_buffer_store_event_hold, gobble_input): - (record_asynch_buffer_change) [USABLE_SIGIO]: - (store_user_signal_events): - No need to mess with signal mask. - (gobble_input): If blocking input and there are terminals, simply - set pending_signals to 1 and return. All hooks changed to not - worry about whether input is blocked. - (process_pending_signals): Clear pending_signals before processing - them, in case a signal comes in while we're processing. - By convention callers now test pending_signals before calling us. - (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input): - New functions, to support changes to blockinput.h. - (handle_input_available_signal): Now extern. - (reinvoke_input_signal): Remove. All uses replaced by - handle_async_input. - (quit_count): Now volatile, since a signal handler uses it. - (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg. - All callers changed. Block SIGINT only if not already blocked. - Clear sigmask reliably, even if Fsignal returns, which it can. - Omit unnecessary accesses to volatile var. - (quit_throw_to_read_char): No need to restore sigmask. - * keyboard.c (gobble_input, handle_user_signal): - * process.c (wait_reading_process_output): - Call signal-handling code rather than killing ourselves. - * lisp.h: Include , for... - (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication. - (pending_signals): Now volatile. - (syms_of_data): Now const if IEEE floating point. - (handle_input_available_signal) [USABLE_SIGIO]: - (terminate_due_to_signal, record_child_status_change): New decls. - * process.c (create_process): Avoid disaster if memory is exhausted - while we're processing a vfork, by tightening the critical section - around the vfork. - (send_process_frame, process_sent_to, handle_pipe_signal) - (deliver_pipe_signal): Remove. No longer needed, as Emacs now - ignores SIGPIPE. - (send_process): No need for setjmp/longjmp any more, since the - SIGPIPE stuff is now gone. Instead, report an error if errno - is EPIPE. - (record_child_status_change): Now extern. PID and W are now args. - Return void, not bool. All callers changed. - * sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]: - Remove. All uses removed. This bug should be fixed now in a - different way. - (wait_for_termination_1): Use waitpid rather than sigsuspend, - and record the child status change directly. This avoids the - need to futz with the signal mask. - (process_fatal_action): Move here from emacs.c. - (emacs_sigaction_flags): New function, containing - much of what used to be in emacs_sigaction_init. - (emacs_sigaction_init): Use it. Block nonfatal system signals that are - caught by emacs, to make races less likely. - (deliver_process_signal): Rename from handle_on_main_thread. - All uses changed. - (BACKTRACE_LIMIT_MAX): Now at top level. - (thread_backtrace_buffer, threadback_backtrace_pointers): - New static vars. - (deliver_thread_signal, deliver_fatal_thread_signal): - New functions, for more-accurate delivery of thread-specific signals. - (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c. - (deliver_arith_signal): Handle in this thread, not - in the main thread, since it's triggered by this thread. - (maybe_fatal_sig): New function. - (init_signals): New arg DUMPING so that we can be more accurate - about whether we're dumping. Caller changed. - Treat thread-specific signals differently from process-general signals. - Block all signals while handling fatal error; that's safer. - xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal - on IEEE hosts. - When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored. - Ignore SIGPIPE unless batch. - (emacs_backtrace): Output backtrace for the appropriate thread, - which is not necessarily the main thread. - * syssignal.h: Include . - (emacs_raise): New macro. - * xterm.c (x_connection_signal): Remove; no longer needed - now that we use sigaction. - (x_connection_closed): No need to mess with sigmask now. - (x_initialize): No need to reset SIGPIPE handler here, since - init_signals does this for us now. - -2012-09-23 Jan Djärv - - * nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into, - background rect may be larger (Bug#12245). - -2012-09-23 Chong Yidong - - * keyboard.c (timer_check): Avoid quitting during Fcopy_sequence. - -2012-09-22 Paul Eggert - - * .gdbinit: Just stop at fatal_error_backtrace. - See Stefan Monnier's request in - . - Remove no-longer-used query of system type. - -2012-09-22 Chong Yidong - - * search.c (Freplace_match): Doc fix (Bug#12325). - - * minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391). - - * editfns.c (Fline_beginning_position): Doc fix (Bug#12416). - (Fline_end_position): Doc fix. - - * cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414). - -2012-09-22 Chong Yidong - - * dispextern.h (struct image_type): Add new slot, storing a type - initialization function. - - * image.c (define_image_type): Call the image initializer function - if it is defined. Arguments and return value changed. - (valid_image_p, make_image): Callers changed. - (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type) - (gif_type, imagemagick_type, svg_type, gs_type): - Add initialization functions. - (Finit_image_library): Call lookup_image_type. - (CHECK_LIB_AVAILABLE): Macro deleted. - (lookup_image_type): Call define_image_type here, rather than via - Finit_image_library, and without using CHECK_LIB_AVAILABLE. - (syms_of_image): Move define_image_type calls for xbm_type and - pbm_type to lookup_image_type. - -2012-09-22 Eli Zaretskii - - * keyboard.c (timer_check_2): Move calculation of 'timers' and - 'idle_timers' from here ... - (timer_check): ... to here. Use Fcopy_sequence to copy the timer - lists, to avoid infloops when the timer does something stupid, - like reinvoke itself with the same or smaller time-out. - (Bug#12447) - -2012-09-22 Martin Rudalics - - * window.c (Fsplit_window_internal): Handle only Qt value of - Vwindow_combination_limit separately. - (Qtemp_buffer_resize): New symbol. - (Vwindow_combination_limit): New default value. - Rewrite doc-string. - -2012-09-22 Eli Zaretskii - - * xdisp.c (next_overlay_string): Initialize it->end_charpos for - the new overlay string. (Bug#10159) - -2012-09-22 Paul Eggert - - * emacs.c (shut_down_emacs): Don't assume stderr is buffered, - or that fprintf is async-signal-safe. POSIX doesn't require - either assumption. - -2012-09-22 Chong Yidong - - * buffer.c (Fset_buffer_modified_p): Handle indirect buffers - (Bug#8207). - -2012-09-22 Kenichi Handa - - * composite.c (composition_reseat_it): Handle the case that a - grapheme cluster is not covered by a single font (Bug#12352). - -2012-09-21 Chong Yidong - - * image.c (define_image_type): Avoid adding duplicate types to - image_types (Bug#12463). Suggested by Jörg Walter. - -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): Move 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-17 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 its 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). - -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. - - * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE. - - * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION. - * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro. - -2012-07-12 Glenn Morris - - * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure. - - * 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. - -2012-07-12 Eli Zaretskii - - * 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) - -2012-07-12 Glenn Morris - - * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES. - - * 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. - * dbusbind.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 its 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 - - 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-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 - - * 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. - -2012-06-06 Chong Yidong - - * buffer.c (word_wrap): Doc fix. - -2012-06-04 Paul Eggert - - * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall. - -2012-06-03 Glenn Morris - - * xdisp.c (tool-bar-style): Doc fix. - -2012-06-03 Ulrich Müller - - * 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) - -2012-06-03 Chong Yidong - - * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte - buffer (Bug#11226). - -2012-06-03 Chong Yidong - - * 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. - - * 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-06-02 Paul Eggert - - * sysdep.c (system_process_attributes): Improve comment. - -2012-06-02 Stefan Monnier - - * 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-02 Paul Eggert - - * minibuf.c (Fassoc_string): Remove duplicate declaration. - - * 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. - -2012-06-02 Andreas Schwab - - * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of - cons_block. - -2012-06-01 Paul Eggert - - * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change. - -2012-06-01 Dmitry Antipov - - 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 its 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. - -2012-05-31 Paul Eggert - - 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-31 Chong Yidong - - * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169). - - * doc.c (Fsubstitute_command_keys): Doc fix. - -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-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 - callers of maybe_unify_char that access buffer text through C - pointers. - - * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and - decrement the inhibition flag, instead of just setting or - resetting it. - -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-27 Eli Zaretskii - - * lisp.h [REL_ALLOC]: Add prototypes for external functions - defined on ralloc.c. - - * buffer.c [REL_ALLOC]: Remove prototypes of - r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free, - they are now on lisp.h. - - * ralloc.c (r_alloc_inhibit_buffer_relocation): New function. - - * search.c (search_buffer): Use it to inhibit relocation of buffer - text while re_search_2 is doing its job, because re_search_2 is - passed C pointers to buffer text. (Bug#11519) - - * msdos.c (internal_terminal_init) : - Update value to 24. - - * 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 - entire line. - (pos_visible_p): Revert the comparison against bottom_y to what it - was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb. - (Bug#11464) - -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. - - * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed. - * s/ms-w32.h (HAVE_FTIME): Remove; not needed. - -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. - (handle_single_display_spec): Before returning without displaying - fringe bitmap, synchronize the bidi iterator with the main display - iterator, by calling iterate_out_of_display_property. - (iterate_out_of_display_property): Detect buffer iteration by - testing that it->string is a Lisp string. - (get_next_display_element): When the current object is exhausted, - and there's something on it->stack, call set_iterator_to_next to - proceed with what's on the stack, instead of returning zero. - (set_iterator_to_next): If called at the end of a Lisp string, - proceed to consider_string_end without incrementing string - position. Don't increment display vector index past the end of - the display vector. (Bug#11417) - (pos_visible_p): Don't report a position visible when move_it_to - stopped at the last line of window, which happens to be scanned - backwards by the bidi iteration. (Bug#11464) - -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, - 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-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-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 occurrences 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 - determined by the linker. This avoids failures in creating - subprocesses on Windows 7, see the discussion in this thread: - http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html. - -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-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-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-27 Eli Zaretskii - - * xdisp.c (pos_visible_p): If the window start position is beyond - ZV, start the display from buffer beginning. Prevents assertion - violation in init_iterator when the minibuffer window is scrolled - via the scroll bar. - - * window.c (window_scroll_pixel_based): Likewise. - -2012-04-27 Chong Yidong - - * keymap.c (where_is_internal): Doc fix (Bug#10872). - -2012-04-27 Glenn Morris - - * fileio.c (Fcopy_file, Fset_file_selinux_context): - Ignore ENOTSUP failures from setfilecon functions. (Bug#11245) - -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) - -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-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-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 - MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261) - -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 - - * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900) - (syms_of_dired): Add them. - -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 - process struct. - - * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit. - Add convenience `GNUTLS_LOG2i' macro. - - * gnutls.c (gnutls_log_function2i): Convenience log function. - (emacs_gnutls_read): Use new log functions, - `gnutls_handshakes_tried' process member, and - `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 (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 Paul Eggert - - 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 - - * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR): - * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments - about subtle differences between FETCH_CHAR* and STRING_CHAR* - macros related to unification of CJK characters. For the details, - see the discussion following the message here: - http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14. - -2012-04-04 Chong Yidong - - * keyboard.c (Vdelayed_warnings_list): Doc fix. - -2012-04-01 Eli Zaretskii - - * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA - instead of alloca. (Bug#11138) - -2012-04-01 Andreas Schwab - - * w32menu.c (is_simple_dialog): Properly check lisp types. - (Bug#11141) - -2012-03-31 Eli Zaretskii - - * xdisp.c (move_it_by_lines): When DVPOS is positive, and the - position we get to after a call to move_it_to fails the - IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position - only if we wind up in a string from display property. (Bug#11063) - - * window.c (Fdelete_other_windows_internal): Invalidate the row - and column information about mouse highlight, so that redisplay - restores it after reallocating the glyph matrices. (Bug#7464) - - * xdisp.c (set_cursor_from_row): If `cursor' property on a display - string comes from a `display' text property, use the buffer - position of that property as if we actually saw that position in - the row's glyphs. - (move_it_by_lines): Remove the assertion that - "it->current_x == 0 && it->hpos == 0" which can be legitimately - violated when there's a before-string at the beginning of a line. - (Bug#11063) - -2012-03-30 Eli Zaretskii - - * xdisp.c (append_space_for_newline): If the default face was - remapped, use the remapped face for the appended newline. - (extend_face_to_end_of_line): Use the remapped default face for - extending the face to the end of the line. - (display_line): Call extend_face_to_end_of_line when the default - face was remapped. (Bug#11068) - -2012-03-29 Eli Zaretskii - - * s/ms-w32.h: Discourage from defining HAVE_GETCWD. - -2012-03-28 Stefan Monnier - - * keyboard.c (safe_run_hooks_error): Don't unquote strings. - -2012-03-27 Glenn Morris - - * search.c (Fword_search_backward_lax, Fword_search_forward_lax): - Doc fixes. - -2012-03-26 Kenichi Handa - - * dispextern.h (struct glyph): Fix previous change. Change the - bit length of glyphless.ch to 25 (Bug#11082). - -2012-03-26 Chong Yidong - - * keyboard.c (Vselection_inhibit_update_commands): New variable. - (command_loop_1): Use it; inhibit selection update for - handle-select-window too (Bug#8996). - -2012-03-25 Fabrice Popineau - - * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code. - -2012-03-25 Kenichi Handa - - * dispextern.h (struct glyph): Change the bit length of - glyphless.ch to 22 to make the member glyphless fit in 32 bits. - -2012-03-24 Eli Zaretskii - - * s/ms-w32.h (tzname): Include time.h before redirecting to - _tzname. Fixes the MSVC build. (Bug#9960) - -2012-03-24 Andreas Schwab - - * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6 - characters. - - * xterm.c (XTread_socket): Only modify handling_signal if - !SYNC_INPUT. (Bug#11080) - -2012-03-23 Eli Zaretskii - - * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of - FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes - when fetching a multibyte character consumes more bytes than - CHAR_BYTES returns, due to unification of CJK characters in - string_char. (Bug#11073) - -2012-03-23 Troels Nielsen (tiny change) - - * process.c (wait_reading_process_output): Handle pty disconnect - by refraining from sending oneself a SIGCHLD (bug#10933). - -2012-03-22 Chong Yidong - - * dispextern.h (struct it): New member string_from_prefix_prop_p. - - * xdisp.c (push_prefix_prop): Rename from push_display_prop. - Mark string as coming from a prefix property. - (handle_face_prop): Use default face for prefix strings (Bug#4281). - (pop_it, reseat_1): Save and restore string_from_prefix_prop_p. - -2012-03-21 Chong Yidong - - * xfaces.c (Vface_remapping_alist): Doc fix. - -2012-03-20 Eli Zaretskii - - * w32proc.c (Fw32_set_console_codepage) - (Fw32_set_console_output_codepage, Fw32_get_codepage_charset): - Doc fixes. - -2012-03-20 Chong Yidong - - * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc - to reflect default non-nil value of redisplay-dont-pause. - -2012-03-19 Kenichi Handa - - * ftfont.c (ftfont_drive_otf): Mask bits of character code to make - it fit in a valid range (Bug#11003). - -2012-03-18 Eli Zaretskii - - * xdisp.c (cursor_row_p): Even if the glyph row ends in a string - that is not from display property, accept the row as a "cursor - row" if one of the string's character has a non-nil `cursor' - property. Fixes cursor positioning when there are newlines in - overlay strings, e.g. in icomplete.el. (Bug#11035) - -2012-03-12 Paul Eggert - - * buffer.c (compare_overlays): Don't assume args differ (Bug#6830). - -2012-03-12 Chong Yidong - - * eval.c (inhibit_lisp_code): Rename from - inhibit_window_configuration_change_hook; move from window.c. - - * xfns.c (unwind_create_frame_1, Fx_create_frame): - * window.c (run_window_configuration_change_hook) - (syms_of_window): Callers changed. - -2012-03-11 Chong Yidong - - * keymap.c (Fkey_description): Doc fix (Bug#9700). - - * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452). - -2012-03-10 Chong Yidong - - * frame.c (other_visible_frames): Don't assume the selected frame - is visible (Bug#10955). - -2012-03-09 Stefan Monnier - - * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830). - -2012-03-08 Jan Djärv - - * gtkutil.c (x_wm_set_size_hint): Use one row in call to - FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than - zero (Bug#10954). - -2012-03-03 Glenn Morris - - * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes. - -2012-03-02 Eli Zaretskii - - * xdisp.c (try_window_reusing_current_matrix): Don't move cursor - position past the first glyph_row that ends at ZV. (Bug#10902) - (redisplay_window, next_element_from_string): Fix typos in - comments. - (redisplay_window): Pass to move_it_vertically the margin in - pixels, not in screen lines. - -2012-03-02 Glenn Morris - - * buffer.c (buffer-list-update-hook): Doc fix. - -2012-02-29 Eli Zaretskii - - * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call - push_it before setting up the iterator for the first overlay - string, even if we have an empty string loaded. - (next_overlay_string): If there's an empty string on the iterator - stack, pop the stack. (Bug#10903) - -2012-02-25 Paul Eggert - - Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780). - Suggested by Stefan Monnier in - . - * alloc.c (widen_to_Lisp_Object): New static function. - (mark_memory): Also mark Lisp_Objects by fetching pointer words - and widening them to Lisp_Objects. This would work even if - USE_LSB_TAG is defined and wide integers are used, which might - happen in a future version of Emacs. - -2012-02-25 Chong Yidong - - * fileio.c (Ffile_selinux_context, Fset_file_selinux_context): - Doc fix. - - * xselect.c (Fx_selection_exists_p): Doc fix. - (x_clipboard_manager_save_all): Print an informative message - before saving to clipboard manager. - -2012-02-24 Chong Yidong - - * keyboard.c (process_special_events): Handle all X selection - requests in kbd_buffer, not just the next one (Bug#8869). - -2012-02-23 Chong Yidong - - * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook - call when setting menu-bar-lines and tool-bar-lines parameters. - (unwind_create_frame_1): New helper function. - - * window.c (inhibit_window_configuration_change_hook): New var. - (run_window_configuration_change_hook): Obey it. - (syms_of_window): Initialize it. - -2012-02-22 Chong Yidong - - * xterm.c (x_draw_image_relief): Add missing type check for - Vtool_bar_button_margin (Bug#10743). - -2012-02-21 Chong Yidong - - * fileio.c (Vfile_name_handler_alist): Doc fix. - - * buffer.c (Fget_file_buffer): Protect against invalid file - handler return value. - -2012-02-20 Paul Eggert - - * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long' - when computing $valmask. - - Fix crash due to non-contiguous EMACS_INT (Bug#10780). - * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it. - (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0. - It's useless in that case, and it can cause problems on hosts - that allocate halves of EMACS_INT values separately. - Reported by Dan Horák. Diagnosed by Andreas Schwab in - . - * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where - UINTPTR_MAX >> VALBITS == 0. This is required by the above change; - it avoids undefined behavior on hosts where shifting right by more - than the word width has undefined behavior. - -2012-02-19 Chong Yidong - - * fileio.c (Ffile_name_directory, Ffile_name_nondirectory) - (Funhandled_file_name_directory, Ffile_name_as_directory) - (Fdirectory_file_name, Fexpand_file_name) - (Fsubstitute_in_file_name): Protect against invalid file handler - return values (Bug#10845). - -2012-02-18 Eli Zaretskii - - * .gdbinit (pitx): Fix incorrect references to fields of the - iterator stack. - -2012-02-17 Chong Yidong - - * syntax.c (Fscan_lists): Doc fix (Bug#10833). - -2012-02-15 Paul Eggert - - * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see - . - -2012-02-15 Chong Yidong - - * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is - marked as special. Also, starting docstrings with * is obsolete. - -2012-02-13 Andreas Schwab - - * gnutls.c (emacs_gnutls_write): Fix last change. - -2012-02-13 Lars Ingebrigtsen - - * gnutls.c (emacs_gnutls_write): Set errno appropriately for - send_process. - -2012-02-13 Stefan Monnier - - * keymap.c (Fsingle_key_description): Handle char ranges. - -2012-02-12 Chong Yidong - - * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here, - as that creates a dangerous corner case. - - * window.c (Fdelete_window_internal): Invalidate the mouse - highlight (Bug#9904). - -2012-02-12 Glenn Morris - - * xselect.c (Fx_own_selection_internal) - (Fx_get_selection_internal, Fx_disown_selection_internal) - (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes. - * nsselect.m (Fx_own_selection_internal) - (Fx_disown_selection_internal, Fx_selection_exists_p) - (Fx_selection_owner_p, Fx_get_selection_internal): - Sync docs and argument specs with the xselect.c versions. - -2012-02-11 Lars Ingebrigtsen - - * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails. - -2012-02-11 Eli Zaretskii - - * w32select.c (Fx_selection_exists_p): Sync doc string and - argument list with xselect.c. (Bug#10783) - - * w16select.c (Fx_selection_exists_p): Sync doc string and - argument list with xselect.c. (Bug#10783) - -2012-02-10 Glenn Morris - - * fns.c (Fsecure_hash): Doc fix. - -2012-02-09 Kenichi Handa - - * coding.c (produce_chars): Fix updating of src_end (Bug#10701). - -2012-02-07 Chong Yidong - - * buffer.c (Fbuffer_local_variables) - (buffer_lisp_local_variables): Handle unbound vars correctly; - don't let Qunbound leak into Lisp. - -2012-02-07 Glenn Morris - - * image.c (Fimagemagick_types): Doc fix. - - * image.c (imagemagick-render-type): Change it from a lisp object - to an integer. Move the doc here from the lisp manual. - Treat all values not equal to 0 the same. - -2012-02-06 Chong Yidong - - * doc.c (store_function_docstring): Avoid applying docstring of - alias to base function (Bug#2603). - -2012-02-04 Andreas Schwab - - * .gdbinit (pp1, pv1): Remove redundant defines. - (pr): Use pp. - -2012-02-04 Chong Yidong - - * nsterm.m: Declare a global (Bug#10694). - -2012-02-04 Eli Zaretskii - - * w32.c (get_emacs_configuration_options): - Include --enable-checking, if specified, in the return value. - -2012-02-04 Martin Rudalics - - * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols - after rounding frame sizes. (Bug#9723) - -2012-02-04 Eli Zaretskii - - * keyboard.c (adjust_point_for_property): Don't position point - before BEGV. (Bug#10696) - -2012-02-03 Paul Eggert - - Handle overflow when computing char display width (Bug#9496). - * character.c (char_width): Return EMACS_INT, not int. - (char_width, c_string_width): Check for overflow when - computing the width; this is possible now that individual - characters can have unbounded width. Problem introduced - by merge from Emacs 23 on 2012-01-19. - -2012-02-02 Michael Albinus - - * dbusbind.c (Fdbus_register_method): Mention the return value - :ignore in the docstring. - -2012-02-02 Glenn Morris - - * callproc.c (Fcall_process, Fcall_process_region): Doc fix. - - * nsterm.m (syms_of_nsterm) : - Unconditionally set to t. (Bug#10673) - * nsterm.m (syms_of_nsterm) : - * w32term.c (syms_of_w32term) : - * xterm.c (syms_of_xterm) : Doc fix. - -2012-02-02 Kenichi Handa - - (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is - 0, do not call append_composite_glyph. - -2012-02-02 Kenichi Handa - - * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to - NULL (Bug#6988). - (x_produce_glyphs): If the component of a composition is a null - string, set it->pixel_width to 1 to avoid zero-width glyph. - -2012-02-01 Eli Zaretskii - - * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its - first 2 arguments are identical. This makes inserting large - output from a subprocess an order of magnitude faster on - MS-Windows, where all sbrk'ed memory is always contiguous. - -2012-01-31 Glenn Morris - - * nsterm.m (syms_of_nsterm) : - * w32term.c (syms_of_w32term) : - * xterm.c (syms_of_xterm) : Sync docs. - -2012-01-29 Glenn Morris - - * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS). - -2012-01-28 Samuel Thibault (tiny change) - - * s/gnu.h: Define POSIX_SIGNALS (Bug#10552). - -2012-01-28 Chong Yidong - - * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550). - -2012-01-26 Chong Yidong - - * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503). - - * search.c (Fsearch_forward, Fsearch_backward): Document negative - repeat counts (Bug#10507). - -2012-01-26 Glenn Morris - - * lread.c (syms_of_lread): Doc fix. - -2012-01-25 HIROSHI OOTA (tiny change) - - * coding.c (encode_designation_at_bol): Change return value to - EMACS_INT. - -2012-01-25 Chong Yidong - - * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p. - -2012-01-21 Chong Yidong - - * floatfns.c (Fcopysign): Make the second argument non-optional, - since nil is not allowed anyway. - -2012-01-21 Andreas Schwab - - * process.c (read_process_output): Use p instead of XPROCESS (proc). - (send_process): Likewise. - -2012-01-19 Martin Rudalics - - * window.c (save_window_save, Fcurrent_window_configuration) - (Vwindow_persistent_parameters): Do not use Qstate. - Rewrite doc-strings. - -2012-01-19 Kenichi Handa - - * character.c (char_width): New function. - (Fchar_width, c_string_width, lisp_string_width): - Use char_width (Bug#9496). - -2012-01-16 Martin Rudalics - - * window.c (Vwindow_persistent_parameters): New variable. - (Fset_window_configuration, save_window_save): Handle persistent - window parameters. - -2012-01-14 Eli Zaretskii - - * w32fns.c (signal_user_input): Don't do a QUIT, to avoid - thrashing the stack of the thread. (Bug#9087) - -2012-01-12 Paul Eggert - - * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses. - -2012-01-11 Eli Zaretskii - - * xdisp.c (rows_from_pos_range): Handle the case where the - highlight ends on a newline. (Bug#10464) - (mouse_face_from_buffer_pos): Fix off-by-one error in calculating - he end column for display of highlight that ends on a newline - before a R2L line. - -2012-01-11 Glenn Morris - - * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs - from load-path also when installation-directory is nil. (Bug#10208) - -2012-01-10 Glenn Morris - - * emacs.c (syms_of_emacs) : Doc fix. - - * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC): - Update template values to be closer to their typical values these days. - -2012-01-09 Eli Zaretskii - - * xdisp.c (rows_from_pos_range): Accept additional argument - DISP_STRING, and accept any glyph in a row whose object is that - string as eligible for mouse highlight. Fixes mouse highlight of - display strings from overlays. (Bug#10464) - -2012-01-07 Paul Eggert - - emacs: fix an auto-save permissions race condition (Bug#10400) - * fileio.c (auto_saving_dir_umask): New static var. - (Fmake_directory_internal): Use it. - (do_auto_save_make_dir): Set it, instead of invoking chmod after - creating the directory. The old code temporarily assigns - too-generous permissions to the directory. - (do_auto_save_eh): Clear it. - (Fdo_auto_save): Catch all errors, not just file errors, so - that the var is always cleared. - -2012-01-07 Eli Zaretskii - - * search.c (scan_buffer): Pass character positions to - know_region_cache, not byte positions. (Bug#6540) - -2012-01-07 LynX <_LynX@bk.ru> (tiny change) - - * w32.c (sys_rename): Report EXDEV when rename of a directory - fails because the target is on another logical disk. (Bug#10284) - -2012-01-07 David Benjamin (tiny change) - - * xterm.c (x_embed_request_focus): New function. - - * xterm.h: Add prototype. - - * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977). - -2012-01-05 Glenn Morris - - * emacs.c (emacs_copyright): Update short copyright year to 2012. - -2012-01-01 Eli Zaretskii - - * gnutls.c (init_gnutls_functions): Load gnutls_check_version. - Load gnutls_transport_set_lowat only if GnuTLS version is below - 2.11.1. - (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for - GnuTLS versions below 2.11.1. - -2011-12-31 Antoine Levitt - - * xdisp.c (syms_of_xdisp) : Add warning - to the doc string advising against its use for altering the way - windows are scrolled. - -2011-12-28 Kenichi Handa - - * coding.c (Fdefine_coding_system_internal): Make an utf-8 base - coding-system ASCII compatible only when it does not produce BOM - on encoding (Bug#10383). - -2011-12-26 Jan Djärv - - * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus - can scroll. - (create_and_show_popup_menu): Always use menu_position_func for - Gtk3 (Bug#10361). - -2011-12-24 Andreas Schwab - - * callint.c (Fcall_interactively): Don't truncate prompt string. - -2011-12-23 Eli Zaretskii - - * xdisp.c (handle_invisible_prop): Handle correctly an invisible - property that ends at ZV, so that the bidi iteration could be - resumed from there (after widening). (Bug#10360) - -2011-12-22 Jan Djärv - - * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc. - -2011-12-21 Jan Djärv - - * nsterm.m (x_free_frame_resources): - Release f->output_data.ns->miniimage. - (ns_index_color): Fix indentation. Do not retain - color_table->colors[i]. - - * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree - before returning. - - * nsfns.m (x_set_background_color): Assign return value from - ns_index_color to face-background instead of NSColor*. - (ns_implicitly_set_icon_type): Fix indentation. - Change assignment in for loop to comparison. - - * emacs.c (ns_pool): New variable. - (main): Assign ns_pool. - (Fkill_emacs): Call ns_release_autorelease_pool. - - * nsfont.m (ns_spec_to_descriptor): Fix indentation, - autorelease fdesc, release fdAttrs and tdict. - (ns_get_covering_families): Release charset. - (ns_findfonts): Release NSFontDescriptor created with new. - (ns_uni_to_glyphs): Fix indentation. - (setString): Release attrStr before assigning new value. - -2011-12-18 Jan Djärv - - * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5 - and NS_IMPL_COCOA. - (trackingNotification): Surround with ifdef NS_IMPL_COCOA. - (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA. - -2011-12-18 David Reitter - - * nsterm.m (ns_term_init): Subscribe for notifications - NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification - to method trackingNotification in EmacsMenu. - - * nsmenu.m (trackingMenu): New variable. - (trackingNotification): New method (from Aquamacs). - (menuNeedsUpdate): Expand comment and return if trackingMenu is 0, - from Aquamacs (Bug#7030). - -2011-12-18 Jan Djärv - - * nsselect.m (CUT_BUFFER_SUPPORT): Remove define. - (symbol_to_nsstring): Fix indentation. - (ns_symbol_to_pb): New function. - (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal. - (Fns_rotate_cut_buffers_internal): Remove. - (Fns_store_selection_internal): Rename from - Fns_store_cut_buffer_internal. - (ns_get_foreign_selection, Fx_own_selection_internal) - (Fx_disown_selection_internal, Fx_selection_exists_p) - (Fns_get_selection_internal, Fns_store_selection_internal): - Use ns_symbol_to_pb and check if return value is nil. - (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr - Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal - renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal - renamed to Sns_store_selection_internal. - (ns_handle_selection_request): Move code to Fx_own_selection_internal - and remove this function. - (ns_handle_selection_clear): Remove, never used. - (Fx_own_selection_internal): Move code from ns_handle_selection_request - here. - -2011-12-17 Ken Brown - - * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or - GID is unknown (Bug#10257). - -2011-12-17 Paul Eggert - - * s/gnu-linux.h: Fix mark_memory typo (Bug#10286). - (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory, - which caused a build failure on GNU/Linux IA-64. This problem was - introduced by my 2011-10-07 patch. - -2011-12-15 Juri Linkov - - * image.c (imagemagick_error): New function. (Bug#10112) - (imagemagick_load_image): Comment out `MagickSetResolution' call. - Use `imagemagick_error' where ImageMagick functions return - `MagickFalse'. - (Fimagemagick_types): Add `Fnreverse' to return the list in the - proper order. - -2011-12-15 YAMAMOTO Mitsuharu - - * xftfont.c (xftfont_draw): Use the font metrics of s->font to - fill background (Bug#8992). - -2011-12-13 Martin Rudalics - - * window.c (Vwindow_combination_resize) - (Vwindow_combination_limit): Use t instead of non-nil in - doc-strings. - (Vrecenter_redisplay): Add first sentence of doc-string on - separate line. - (Frecenter): Fix doc-string typo. - -2011-12-11 Kenichi Handa - - * coding.c (Funencodable_char_position): Pay attention to the - buffer text relocation (Bug#9389). - -2011-12-10 Jan Djärv - - * xterm.c (x_term_init): Move call to gdk_window_add_filter before - gtk_init (Bug#10100). - -2011-12-10 Eli Zaretskii - - * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if - IT->string is nil. (Bug#10263) - -2011-12-10 Jan Djärv - - * nsterm.h (x_free_frame_resources): Declare. - - * nsfns.m (ns_get_defaults_value): New function (Bug#10103). - (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value. - - * nsterm.h (ns_get_defaults_value): Declare. - - * nsterm.m (ns_default): Call ns_get_defaults_value. - -2011-12-09 Eli Zaretskii - - * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero. - (Bug#10170) - -2011-12-09 YAMAMOTO Mitsuharu - - * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case - that where the value of an _OBJC_* symbol points to is in the .bss - section (Bug#10240). - -2011-12-08 Kazuhiro Ito (tiny change) - - * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end) - after the loop to call ccl_driver at least once (Bug#8619). - -2011-12-08 Kenichi Handa - - * ftfont.c (get_adstyle_property): Fix previous change - (Bug#10233). - -2011-12-07 Juanma Barranquero - - * w32.c (init_environment): If no_site_lisp, remove site-lisp - dirs from the default value of EMACSLOADPATH (bug#10208). - -2011-12-07 Glenn Morris - - * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in - installation and source directories as well. (Bug#10208) - -2011-12-06 Chong Yidong - - * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228). - -2011-12-06 Glenn Morris - - * process.c (start_process_unwind): Treat any pid <= 0, except -2, - as an error, not just -1. (Bug#10217) - -2011-12-05 Chong Yidong - - * keyboard.c (process_special_events): New function. - (swallow_events, Finput_pending_p): Use it (Bug#10195). - -2011-12-05 Paul Eggert - - * coding.c (encode_designation_at_bol): Don't use uninitialized - local variable (Bug#9318). - -2011-12-05 Kenichi Handa - - * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF, - return Qnil (Bug#8046, Bug#10193). - -2011-12-05 Kenichi Handa - - * coding.c (encode_designation_at_bol): New args charbuf_end and - dst. Return the number of produced bytes. Callers changed. - (coding_set_source): Return how many bytes coding->source was - relocated. - (coding_set_destination): Return how many bytes - coding->destination was relocated. - (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET) - (CODING_CHAR_CHARSET_P): Adjust for the avove changes. - -2011-12-05 Kazuhiro Ito (tiny change) - - * coding.c (CODING_CHAR_CHARSET_P): New macro. - (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above - macro (Bug#9318). - -2011-12-05 Andreas Schwab - - The following changes are to fix Bug#9318. - - * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros. - (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER) - (encode_coding_iso_2022, encode_coding_sjis) - (encode_coding_big5, encode_coding_charset): Use the above macros. - -2011-12-05 Juanma Barranquero - - * lisp.h (process_quit_flag): Fix external declaration. - -2011-12-04 Stefan Monnier - - Don't macro-inline non-performance-critical code. - * eval.c (process_quit_flag): New function. - * lisp.h (QUIT): Use it. - -2011-12-04 Jan Djärv - - * nsfns.m (get_geometry_from_preferences): New function. - (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103). - -2011-12-04 Andreas Schwab - - * emacs.c (Qkill_emacs): Define. - (syms_of_emacs): Initialize it. - * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set - Qquit_flag to `kill-emacs' instead. - (quit_throw_to_read_char): Add parameter `from_signal'. - All callers changed. Call Fkill_emacs if requested and safe. - * lisp.h (QUIT): Call Fkill_emacs if requested. - -2011-12-03 Jan Djärv - - * widget.c (update_wm_hints): Return if wmshell is null. - (widget_update_wm_size_hints): New function. - - * widget.h (widget_update_wm_size_hints): Declare. - - * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call - widget_update_wm_size_hints (Bug#10104). - -2011-12-03 Eli Zaretskii - - * xdisp.c (handle_invisible_prop): If the invisible text ends just - before a newline, prepare the bidi iterator for consuming the - newline, and keep the current paragraph direction. (Bug#10183) - (redisplay_window): Don't let `margin' become negative. (Bug#10192) - -2011-12-02 Juri Linkov - - * search.c (Fword_search_regexp): New Lisp function created from - `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'. - (Fword_search_backward, Fword_search_forward) - (Fword_search_backward_lax, Fword_search_forward_lax): - Use `Fword_search_regexp' instead of `wordify'. Doc fix. - (syms_of_search): Define `Sword_search_regexp'. (Bug#10145) - -2011-12-01 Stefan Monnier - - * fileio.c (Finsert_file_contents): Move after-change-function call - to before the "handled:" label, since all "goto handled" appear in - cases where the *-change-functions have already been properly called - (bug#10117). - -2011-12-01 Andreas Schwab - - * keyboard.c (interrupt_signal): Don't call kill-emacs when - waiting for input. (Bug#10169) - -2011-11-30 Eli Zaretskii - - * dispnew.c (adjust_glyph_matrix): Remove the assertion that - verifies glyph row's hash code--we have just reallocated the - glyphs, so their contents can be complete garbage. (Bug#10164) - -2011-11-30 Juanma Barranquero - - * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check. - -2011-11-30 Eli Zaretskii - - * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's - attributes are tested _before_ calling verify_row_hash, to protect - against GCC re-ordering of the tests. (Bug#10164) - -2011-11-29 Jan Djärv - - * xterm.h (struct x_output): net_wm_state_hidden_seen is new. - - * xterm.c (handle_one_xevent): Only set async_visible and friends - if net_wm_state_hidden_seen is non-zero (Bug#10002) - (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if - _NET_WM_STATE_HIDDEN is in NET_WM_STATE. - -2011-11-28 Paul Eggert - - Remove GCPRO-related macros that exist only to avoid shadowing locals. - * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR) - (GCPRO6_VAR, UNGCPRO_VAR): Remove. See - . - All uses changed to use GCPRO1 etc. - (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO): - Revert to old implementation (i.e., before 2011-03-11). - -2011-11-28 YAMAMOTO Mitsuharu - - * dispnew.c (scrolling_window): Truncate overlaps in copy destination - of scroll runs so as to avoid assigning disabled bogus rows and - unnecessary graphics copy operations. - -2011-11-27 Eli Zaretskii - - * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define. - (snprintf) [_MSC_VER]: Redirect to _snprintf. - (strtoll) [_MSC_VER]: Redirect to _strtoi64. - (malloc, free, realloc, calloc): Redirect to e_* only when - compiling Emacs. - - * lisp.h (GCTYPEBITS): Move before first use. - (ALIGN_GCTYPEBITS) [_MSC_VER]: Define. - (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in - this macro definition. - - * s/ms-w32.h (tzname): Redirect to _tzname for all values of - _MSC_VER. - -2011-11-27 Jan Djärv - - * gtkutil.c (xg_create_frame_widgets): - Call gtk_window_set_has_resize_grip (FALSE) if that function is - present with Gtk+ 2.0. - -2011-11-26 Paul Eggert - - * fileio.c (Finsert_file_contents): Undo previous change; see - . - -2011-11-26 Paul Eggert - - Rename locals to avoid shadowing. - * fileio.c (Finsert_file_contents): - Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing. - * process.c (wait_reading_process_output): - Rename inner 'proc' to 'p' to avoid shadowing. - Indent for consistency with usual Emacs style. - -2011-11-25 Eli Zaretskii - - * xdisp.c (redisplay_window): If cursor row is not fully visible - after recentering, and scroll-conservatively is set to a large - number, scroll window by a few more lines to make the cursor fully - visible and out of scroll-margin. (Bug#10105) - (start_display): Don't move to the next line if the display should - start at a newline that is part of a display vector or an overlay - string. (Bug#10119) - -2011-11-24 Juri Linkov - - * image.c (imagemagick_load_image): Move `MagickSetResolution' down - after the `MagickPingImage' call. (Bug#10112) - -2011-11-23 Chong Yidong - - * window.c (Fcoordinates_in_window_p): Accept only live windows. - -2011-11-23 Martin Rudalics - - * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before - making another buffer current. (Bug#10114) - -2011-11-23 Glenn Morris - - * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526) - -2011-11-23 Chong Yidong - - * xdisp.c (compute_stop_pos): Check validity of end_charpos before - using it (Bug#5984). - -2011-11-22 Eli Zaretskii - - * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode- - and header-lines, as they don't have one computed for them. - (Bug#10098) - - * .gdbinit (prow): Make displayed values more self-explaining. - Add row's hash code. - -2011-11-21 Lars Magne Ingebrigtsen - - * process.c (wait_reading_process_output): Fix asynchrounous - GnuTLS socket handling on some versions of the GnuTLS library. - (wait_reading_process_output): Add comment and URL. - -2011-11-21 Jan Djärv - - * xterm.c (x_clear_frame): Reinstate the XClearWindow call. - -2011-11-21 Chong Yidong - - * window.c (Fnext_window, Fprevious_window): Doc fix. - -2011-11-20 Stefan Monnier - - * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup. - -2011-11-20 Juanma Barranquero - - * nsfont.m (syms_of_nsfont) : Fix typo. - -2011-11-20 Martin Rudalics - - * window.c (Fset_window_combination_limit): Rename argument - STATUS to LIMIT. - (Vwindow_combination_limit): Remove "status" from doc-string. - -2011-11-20 Andreas Schwab - - * m/ibms390.h: Remove. - * m/ibms390x.h: Don't include "ibms390.h". - -2011-11-20 Stefan Monnier - - * fileio.c (Finsert_file_contents): Add missing gcpro1 variable. - Suggested by Dmitry Antipov . - -2011-11-20 Juanma Barranquero - - * casetab.c (Fset_case_table): - * charset.c (Fcharset_after): Fix typos. - -2011-11-20 Paul Eggert - - Standardize on VIRT_ADDR_VARIES behavior (Bug#10042). - Otherwise, valgrind does not work on some platforms. - Problem reported by Andreas Schwab in - . - * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES - is set, removing the need for VIRT_ADDRESS_VARIES. - (PURE_P): Use a more-efficient implementation that needs just one - comparison, not two: on x86-64 with GCC 4.6.2, this cut down the - number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge) - to 4 (xorl, subq, cmpq, setbe). - * alloc.c (pure): Always extern now, since that's the - VIRT_ADDR_VARIES behavior. - (PURE_POINTER_P): Use a single comparison, not two, for - consistency with the new puresize.h. - * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed. - * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h: - Remove VIRT_ADDR_VARIES no longer needed. - -2011-11-19 Eli Zaretskii - - * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph) - (erase_phys_cursor, update_window_cursor, show_mouse_face) - (cursor_in_mouse_face_p): If the cursor position is out of bounds, - behave as if the cursor position were at the window margin. - - * window.c (get_phys_cursor_glyph): If the window is hscrolled, - and the cursor position is out of bounds, behave as if the cursor - position were at the window margin. (Bug#10075) - -2011-11-18 Chong Yidong - - * window.c (Fwindow_combination_limit): Make first argument - non-optional, since it is meaningless for live windows like the - selected window. - -2011-11-18 Dmitry Antipov - - * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs. - -2011-11-18 Stefan Monnier - - * intervals.c: Fix grafting over the whole buffer (bug#10071). - (graft_intervals_into_buffer): Simplify. - -2011-11-18 Eli Zaretskii - - * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the - hash values of the two rows. - (copy_row_except_pointers): Preserve the used[] arrays and the - hash values of the two rows. (Bug#10035) - (add_row_entry): Add xassert to verify that ROW's hash code is valid. - - * xdisp.c (row_hash): New function, body extracted from - compute_line_metrics. - (compute_line_metrics): Call row_hash, instead of computing the - hash code inline. - - * dispnew.c (verify_row_hash): Call row_hash for computing the - hash code of a row, instead of duplicating code from xdisp.c. - - * dispextern.h (row_hash): Add prototype. - -2011-11-18 Tassilo Horn - - * frame.c (delete_frame): Don't delete the terminal when the last - X frame is closed if emacs is built with GTK toolkit. - -2011-11-17 Juanma Barranquero - - * window.c (syms_of_window) : Fix typo. - -2011-11-17 Martin Rudalics - - * window.c (Vwindow_splits): Rename to - Vwindow_combination_resize. Suggested by Juri Linkov. - (Fsplit_window_internal): Use Vwindow_combination_resize instead - of Vwindow_splits. - -2011-11-16 Juanma Barranquero - - * nsfns.m (Fns_font_name): - * window.c (syms_of_window) : Fix typos. - -2011-11-16 Martin Rudalics - - * window.h (window): Rename slot "nest" to "combination_limit". - * window.c (Fwindow_nest): Rename to Fwindow_combination_limit. - (Fset_window_nest): Rename to Fset_window_combination_limit. - (Vwindow_nest): Rename to Vwindow_combination_limit. - (recombine_windows, make_parent_window, make_window) - (Fsplit_window_internal, saved_window) - (Fset_window_configuration, save_window_save): Rename all - occurrences of window_nest to window_combination_limit. - -2011-11-15 Juanma Barranquero - - * image.c (imagemagick_load_image): Fix typo. - -2011-11-14 Eli Zaretskii - - * xdisp.c (display_line): Move the call to - highlight_trailing_whitespace before the call to - compute_line_metrics, since the latter needs to see the final - faces of all the glyphs to compute ROW's hash value. - Fixes assertion violations in row_equal_p. (Bug#10035) - -2011-11-14 Juanma Barranquero - - * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0, - just return (bug#10044). - -2011-11-12 Eli Zaretskii - - * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs - with user-defined heap size. Bump the default size of the temacs - heap to 27MB, to avoid memory warning when running temacs. - ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value. - - * dispnew.c (scrolling_window): Fix incorrect indices in accessing - current_matrix and desired_matrix. (Bug#9990) - (verify_row_hash) [XASSERTS]: New function. - (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify - that the hash value of glyph rows is correct. - -2011-11-12 Martin Rudalics - - * window.h (window): Remove splits slot. - * window.c (Fwindow_splits, Fset_window_splits): Remove. - (Fdelete_other_windows_internal, make_parent_window) - (make_window, Fsplit_window_internal, Fdelete_window_internal) - (Fset_window_configuration, save_window_save): Don't deal with - split status of windows. - (saved_window): Remove splits slot. - (Vwindow_splits): Rewrite doc-string. - -2011-11-11 Jan Djärv - - * xfns.c (unwind_create_frame): - * nsfns.m (unwind_create_frame): - * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in - Vframe_list (Bug#9999). - -2011-11-11 Dmitry Antipov - - * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext. - -2011-11-11 Kenichi Handa - - * callproc.c (Fcall_process): Set the member dst_multibyte of - process_coding. - -2011-11-11 Johan Bockgård - - * xdisp.c (fill_composite_glyph_string): Always set s->face, to - avoid a crash (bug#9496). - -2011-11-09 Chong Yidong - - * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges) - (Fwindow_inside_absolute_pixel_edges): Only allow live windows. - -2011-11-08 Paul Eggert - - * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926). - -2011-11-08 Paul Eggert - - Avoid some portability problems by eschewing 'extern inline' functions. - The trivial performance wins aren't worth the portability hassles; see - - et seq. - * dispextern.h (window_box, window_box_height, window_text_bottom_y) - (window_box_width, window_box_left, window_box_left_offset) - (window_box_right, window_box_right_offset): Undo previous change, - by removing the "extern"s. - * intervals.c (adjust_intervals_for_insertion) - (adjust_intervals_for_deletion): Undo previous change, - making these static again. - (offset_intervals, temp_set_point_both, temp_set_point) - (copy_intervals_to_string): No longer inline. - * xdisp.c (window_text_bottom_y, window_box_width) - (window_box_height, window_box_left_offset) - (window_box_right_offset, window_box_left, window_box_right) - (window_box): No longer inline. - -2011-11-08 Chong Yidong - - * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix. - (Fwindow_body_height, Fwindow_body_width): Move from Lisp. - Signal an error if not a live window. - (Fwindow_total_width, Fwindow_total_height): Move from Lisp. - (Fwindow_total_size, Fwindow_body_size): Move to Lisp. - -2011-11-07 Juanma Barranquero - - * lisp.h (syms_of_abbrev): Remove declaration. - Reported by CHENG Gao . - -2011-11-07 Eli Zaretskii - - * w32.c (check_windows_init_file): Don't look for term/w32-win.el - if Vpurify_flag is non-nil. Fixes a crash when running w32 build - of temacs in GUI mode. - -2011-11-07 Martin Rudalics - - * window.h: Declare delete_all_child_windows instead of - delete_all_subwindows. - * window.c (Fwindow_nest, Fset_window_nest) - (Fset_window_new_total, Fset_window_new_normal) - (Fwindow_resize_apply): Don't use term subwindow in doc-strings. - (delete_all_subwindows): Rename to delete_all_child_windows. - (Fdelete_other_windows_internal, Fset_window_configuration): - Call delete_all_child_windows instead of delete_all_subwindows. - * frame.c (delete_frame): Call delete_all_child_windows instead - of delete_all_subwindows. - -2011-11-07 Paul Eggert - - * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926). - This is also needed for porting to any host where GC_MARK_STACK is - not GC_MAKE_GCPROS_NOOPS. - (which_symbols): Use it. - -2011-11-07 Kenichi Handa - - * coding.c (coding_set_destination): Check coding->src_pos only - when coding->src_object is a buffer (bug#9910). - - * process.c (send_process): Set the member src_multibyte of coding - to 0 (bug#9911) when sending a unibyte text. - - * callproc.c (Fcall_process): Set the member src_multibyte of - process_coding to 0 (bug#9912). - -2011-11-06 YAMAMOTO Mitsuharu - - * xmenu.c (cleanup_widget_value_tree): New function. - (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of - calling free_menubar_widget_value_tree directly (Bug#9830). - -2011-11-06 Paul Eggert - - Fix some portability problems with 'inline'. - * dispextern.h (window_box, window_box_height, window_text_bottom_y) - (window_box_width, window_box_left, window_box_left_offset) - (window_box_right, window_box_right_offset): Declare extern. - Otherwise, these inline functions do not conform to C99 and - are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in - . - * intervals.c (adjust_intervals_for_insertion) - (adjust_intervals_for_deletion): Now extern, because otherwise the - extern inline functions 'offset_intervals' couldn't refer to it. - (static_offset_intervals): Remove. - (offset_intervals): Rewrite using the old contents of - static_offset_intervals. The old version didn't conform to C99 - because an extern inline function contained a reference to an - identifier with static linkage. - -2011-11-06 Andreas Schwab - - * keyboard.c (interrupt_signal): Don't call kill-emacs while in - GC. - -2011-11-06 Eli Zaretskii - - * xdisp.c (init_iterator, reseat_to_string): Don't set the - iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963) - (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil, - return Qleft_to_right. - -2011-11-06 Chong Yidong - - * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window) - (Fminibuffer_window, Fwindow_buffer, Fwindow_splits) - (Fset_window_splits, Fwindow_nest, Fset_window_nest) - (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size) - (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line) - (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars) - (Fwindow_vscroll): Doc fix. - (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default - argument, since it makes no sense to pass a live window and for - consistency with window-child. - -2011-11-05 Christoph Scholtes - - * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to - support MSVC. - -2011-11-05 Jason Rumney - - * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts. - (add_font_entity_to_list): Filter out non-Japanese Shift-JIS - fonts (Bug#6029). - (add_font_entity_to_list): Fix logic errors in mixed boolean and - bitwise arithmetic preventing use of unicode-sip and non-truetype - opentype fonts. - -2011-11-05 Eli Zaretskii - - * s/ms-w32.h (fstat, stat, utime): Move redirections to - "emacs"-only part. - - * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange - initialization code to keep similarity to xfns.c after changes - from 2011-11-05. - -2011-11-05 Jan Djärv - - * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG. - (unwind_create_frame): New function (Bug#9943). - (Fx_create_frame): Restructure code to be more similar to the one in - xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943). - Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943). - Move terminal->reference_count++ just before making the frame official - (Bug#9943). - - * nsterm.m (x_free_frame_resources): New function. - (x_destroy_window): Move code to x_free_frame_resources. - - * 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 - dpyinfo_refcount before calling init_frame_faces (Bug#9943). - -2011-11-05 Eli Zaretskii - - Support MSVC build with newer versions of Visual Studio. - * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as - Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on - nt/gmake.defs. - - * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields, - which are not supported by MSVC. - (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay) - (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in - bitfields. - (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated - types in bitfields. - (DEFUN) [_MSC_VER]: Define in a different way for MSVC. - - * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version. - -2011-11-05 Fabrice Popineau (tiny change) - - Support MSVC build with newer versions of Visual Studio. - * w32.c: Don't include w32api.h for MSVC. - (init_environment) [_MSC_VER]: Call sys_access, not _access. - - * s/ms-w32.h [_MSC_VER]: Typedefs for MSVC. - [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h. - (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins. - (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the - e_* cousins. - (alloca) [_MSC_VER]: Define to _alloca. - - * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC. - - * regex.c [_MSC_VER]: A separate definition for MSVC. - -2011-11-04 Eli Zaretskii - - * xdisp.c (note_mouse_highlight): If either of - previous/next-single-property-change returns nil, treat that as - the beginning or the end of the buffer. (Bug#9955) - -2011-11-04 Jan Djärv - - * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or - label is not null (Bug#9951). - (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl - may be NULL. - -2011-11-04 Eli Zaretskii - - * window.c (Fwindow_body_size): Mention in the doc string that the - return value is in frame's canonical units. (Bug#9949) - -2011-11-03 Eli Zaretskii - - * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947) - - * w32fns.c (unwind_create_frame): If needed, free the glyph - matrices of the partially constructed frame. (Bug#9943) - * xfns.c (unwind_create_frame): Likewise. - -2011-11-01 Eli Zaretskii - - * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment. - Don't stop backward scan on the continuation glyph, even though - its CHARPOS is positive. - (mouse_face_from_buffer_pos, note_mouse_highlight): - Rename cover_string to disp_string. - -2011-11-01 Martin Rudalics - - * window.c (temp_output_buffer_show): Don't use - Vtemp_buffer_show_specifiers. - (Vtemp_buffer_show_specifiers): Remove unused variable. - -2011-10-30 Eli Zaretskii - - * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented - past the beginning of the current glyph matrix. - -2011-10-30 Adam Sjøgren (tiny change) - - * xterm.c: Include X11/Xproto.h if HAVE_GTK3. - (x_error_handler): Ignore BadMatch for X_SetInputFocus for - HAVE_GTK3 (Bug#9869). - - * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize - type to GDK_NOTHING so valgrind does not complain (Bug#9901). - - * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893). - - * xterm.c: Declare x_handle_net_wm_state to return int. - (handle_one_xevent): Check if we are iconified but don't have - _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893). - (get_current_wm_state): Return non-zero if not hidden, - check for _NET_WM_STATE_HIDDEN (Bug#9893). - (do_ewmh_fullscreen): Ignore return value from get_current_wm_state. - (x_handle_net_wm_state): Return what get_current_wm_state returns. - (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden. - -2011-10-29 Paul Eggert - - * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE, - so that this new function doesn't get optimized away by a - whole-program optimizer. Make the 2nd arg EMACS_INT, not int. - -2011-10-29 Andreas Schwab - - * frame.h (MOUSE_HL_INFO): Remove excess parens. - -2011-10-29 Eli Zaretskii - - Fix the `xbytecode' command. - * .gdbinit (xprintbytestr): New command. - (xwhichsymbols): Rename from `which'; all callers changed. - (xbytecode): Print the byte-code string as well. - -2011-10-29 Kim Storm - - * alloc.c (which_symbols): New function. - -2011-10-29 Andreas Schwab - - * minibuf.c (read_minibuf_noninteractive): Allow reading empty - line. (Bug#9903) - -2011-10-29 Glenn Morris - - * process.c (wait_reading_process_output): Revert 2009-08-30 change. - Not clear what it was for, and it causes various bugs. (Bug#9839) - -2011-10-28 Eli Zaretskii - - * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a - possible random value that matches one of those tested as - condition to clear the mouse face. - -2011-10-28 Chong Yidong - - * xdisp.c (note_mouse_highlight): Fix use of uninitialized var. - -2011-10-28 Dan Nicolaescu - - * window.c (make_window): Initialize phys_cursor_on_p. - -2011-10-28 Stefan Monnier - - * lisp.h (struct Lisp_Symbol): Update comments. - -2011-10-28 Juanma Barranquero - - * w32font.c (w32_load_unicows_or_gdi32): Add missing return. - -2011-10-28 Eli Zaretskii - - Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem - for helping to debug this. - - * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w) - (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w) - (g_b_init_get_glyph_outline_w): New static variables. - (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc) - (GetGlyphOutlineW_Proc): New typedefs. - (w32_load_unicows_or_gdi32, get_outline_metrics_w) - (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font): - New functions. - (w32font_open_internal, compute_metrics): - Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w - instead of calling the "wide" APIs directly. - - * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font. - - * w32.h (syms_of_w32font): Add prototype. - -2011-10-27 Juanma Barranquero - - * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end) - (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window) - (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings. - (Fmove_to_window_line): Doc fix. - -2011-10-27 Chong Yidong - - * process.c (make_process): Set gnutls_state to NULL. - - * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is - non-NULL, regardless of GNUTLS_INITSTAGE. - (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal - an error. Set process slots as soon as we allocate them. - - * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros. - -2011-10-27 Chong Yidong - - * gnutls.c (emacs_gnutls_deinit): New function. - Deallocate credentials structures as well as calling gnutls_deinit. - (Fgnutls_deinit, Fgnutls_boot): Use it. - - * process.c (make_process): Initialize GnuTLS credentials to NULL. - (deactivate_process): Call emacs_gnutls_deinit. - -2011-10-27 Juanma Barranquero - - * image.c (x_create_x_image_and_pixmap): - * w32.c (sys_rename, w32_delayed_load): - * w32font.c (fill_in_logfont): - * w32reg.c (x_get_string_resource): Silence compiler warnings. - -2011-10-26 Juanma Barranquero - - * w32fns.c (w32_default_color_map): New function, - extracted from Fw32_default_color_map. - (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785) - -2011-10-25 Paul Eggert - - * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2). - -2011-10-25 Stefan Monnier - - * keyboard.c (test_undefined): New function (bug#9751). - (read_key_sequence): Use it to detect when a key is bound to `undefined'. - -2011-10-25 Enami Tsugutomo - - * sysdep.c (init_sys_modes): Fix the check for the controlling - terminal (Bug#6649). - -2011-10-20 Eli Zaretskii - - * dispextern.h (struct bidi_it): New member next_en_type. - - * bidi.c (bidi_line_init): Initialize the next_en_type member. - (bidi_resolve_explicit_1): When next_en_pos is valid for the - current character, check also for next_en_type being WEAK_EN. - (bidi_resolve_weak): Don't enter the expensive loop if the current - position is before next_en_pos. Record the bidi type of the first - non-ET, non-BN character we find, in addition to its position. - (bidi_level_of_next_char): Invalidate next_en_type when - next_en_pos is over-stepped. - -2011-10-20 Paul Eggert - - Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794) - * editfns.c: Rewrite current-time-zone so that it invokes - the equivalent of (format-time-string "%Z") to get the time zone name. - This fixes a bug when the time zone name contains characters that - need converting from the system time locale to Emacs internal format. - This fixes a shortcoming that I introduced in my 1999-10-19 patch: - that patch fixed format-time-string to do the conversion, but - I forgot to fix current-time-zone. - (format_time_string): New function, containing most of - what Fformat_time_string used to contain. - (Fformat_time_string): Rewrite in terms of format_time_string. - This doesn't change this function's behavior. - (current-time-zone): Rewrite to use format_time_string. - This fixes the bug reported by Michael Schierl in - . - Jason Rumney's 2007-06-07 change worked around this bug, but - didn't fix it. - * systime.h (tzname, timezone): Remove no-longer-used declarations. - -2011-10-19 Eli Zaretskii - - * xdisp.c (start_display): If the character at POS is displayed - via a display vector, reset IT->current.dpvec_index to zero. - (try_window_reusing_current_matrix): If a line ends in a display - vector or the next line starts in a display vector, continue - redrawing the window even though the character position of - start_row was reached. - (Bug#9771, part 2) - -2011-10-18 Chong Yidong - - * xdisp.c (get_next_display_element): Handle U+2010 and U+2011 - with nobreak-char-display too. - -2011-10-18 Eli Zaretskii - - Fix part 3 of bug#9771. - * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1. - (bidi_resolve_neutral): Don't enter the expensive loop looking for - non-neutral characters if the current character is a paragraph - separator (a.k.a. Newline). This avoids running the same - expensive loop twice, once when we consume the preceding newline - and the other time when the line actually needs to be displayed. - Avoid the loop when we see neutrals on the base embedding level - following a character whose directionality is the same as the - paragraph's. This avoids running the expensive loop when a line - ends in a long sequence of neutrals, like control characters. - Add assertion against STRONG_AL type. Slightly rearrange code - that determines the type of a neutral given the first non-neutral - that follows it. - (bidi_level_of_next_char): Set next_en_pos to zero when - invalidating its info. - -2011-10-17 Eli Zaretskii - - * xdisp.c (push_display_prop): Determine whether to record string - or buffer position by IT->string, not by IT->method. Allow - GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4) - (move_it_vertically_backward): Don't look for character position - immediately after the newline when in a continuation line. - (Bug#9771, part 1) - -2011-10-15 Martin Rudalics - - * window.c (coordinates_in_window): Rewrite and delabelize - vertical border check. (Bug#5357) (Bug#9618) - -2011-10-14 Stefan Monnier - - * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained - errors in XSetWindowBorder (bug#9310). - -2011-10-13 Dmitry Antipov - - * editfns.c (Fset_time_zone_rule): Replace free with xfree to - avoid crash when xmalloc overrun checking is enabled. - -2011-10-13 Eli Zaretskii - - * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize - itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect - cursor motion with and arrow keys. - - * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as - some callers set that themselves. - -2011-10-12 Eli Zaretskii - - * xdisp.c (find_row_edges): Handle the case where ROW comes from a - display string and the previous row comes from the same string and - is empty. (Bug#9739) (Bug#9738) - -2011-10-12 Stefan Monnier - - * doc.c (get_doc_string): Encode file name (bug#9735). - -2011-10-12 Eli Zaretskii - - * bidi.c (bidi_level_of_next_char): - * xdisp.c (get_visually_first_element): Remove old incorrect - comments regarding the Unicode Line Separator character. - - * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR. - -2011-10-12 Dmitry Antipov - - * alloc.c (Fgc_status): Do not access beyond zombies array - boundary if nzombies > MAX_ZOMBIES. - * alloc.c (dump_zombies): Add missing format specifier. - -2011-10-12 Paul Eggert - - * xdisp.c (set_cursor_from_row): Simplify conditionals, - to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow. - - * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff. - Some packages use them to denote characters with modifiers. - -2011-10-11 Andreas Schwab - - * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR) - (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid - matching a pp-number. Rename parameter var to var1. - -2011-10-11 Stefan Monnier - - * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709). - -2011-10-08 Glenn Morris - - * callint.c (Fcall_interactively): Give a more explicit error for the - 'c' case with a non-character input. (Bug#8479) - -2011-10-08 Eli Zaretskii - - * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left - lines. - (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L - lines that are hscrolled on the left. - - * dispnew.c (buffer_posn_from_coords): Account for a possible - presence of header-line. (Bug#4426) - -2011-10-07 Stefan Monnier - - * buffer.c (syms_of_buffer) : - Don't advertise functionality which we discourage or doesn't work. - -2011-10-07 Paul Eggert - - * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__ - or sizeof. __alignof__ gives the wrong answer on Fedora x86-64 - with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int; - this makes Emacs dump core during garbage collection on rare - occasions. sizeof is obviously inferior to offsetof here, so - stick with offsetof. - (GC_POINTER_ALIGNMENT): New macro. - (mark_memory): Omit 3rd (offset) arg; caller changed. - Don't assume EMACS_INT alignment is the same as pointer alignment. - -2011-10-03 Stefan Monnier - - * keyboard.c (read_key_sequence_remapped): New var. - (read_key_sequence): Compute remapping in the right buffer. - (command_loop_1): Use read_key_sequence's remapping directly. - -2011-10-02 Stefan Monnier - - * dired.c (file_name_completion): Don't expand file name. - (Ffile_name_completion, Ffile_name_all_completions): Expand file name - before checking file name handler. - - * minibuf.c (Finternal_complete_buffer): Only show internal buffers if - they've been requested explicitly (bug#9591). - -2011-10-01 Andreas Schwab - - * keymap.c (Fsingle_key_description): Use make_specified_string - instead of build_string to build string from push_key_description. - (Bug#5193) - -2011-09-30 Paul Eggert - - * buffer.h (struct buffer): Use time_t, not int, for a time stamp. - This fixes a Y2038 bug on 64-bit hosts. - * buffer.c (reset_buffer): - * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved) - (Fclear_buffer_auto_save_failure): - Use 0, not -1, to represent an unset failure time, since time_t - might not be signed. - - Remove dependency on glibc malloc internals. - * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): - Move back here from lisp.h, but with their new implementations. - (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT) - (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here. - * charset.c (charset_table_init): New static var. - (syms_of_charset): Use it instead of xmalloc. This removes a - dependency on glibc malloc internals. See Eli Zaretskii's comment in - . - * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): - Move back to alloc.c. - (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT) - (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c. - -2011-09-30 Jan Djärv - - * nsterm.m (windowDidResize): Call x_set_window_size only when - ns_in_resize is true. Otherwise set pixelwidth/height and - call change_frame_size (Bug#9628). - -2011-09-30 Paul Eggert - - Port --enable-checking=all to Fedora 14 x86-64. - * charset.c (syms_of_charset): Also account for glibc malloc's - internal overhead when calculating the initial malloc maximum. - - Port --enable-checking=all to Fedora 14 x86. - * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): - Move to lisp.h. - (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc) - (overrun_check_realloc, overrun_check_free): - Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t). - That way, xmalloc returns a properly-aligned pointer even if - XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened - to align OK on typical 64-bit hosts, but not on Fedora 14 x86. - * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD - into account when calculating the initial malloc maximum. - * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE): - Move here from alloc.c, so that charset.c can use it too. - Properly align; the old code wasn't right for common 32-bit hosts - when configured with --enable-checking=all. - (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT) - (XMALLOC_OVERRUN_SIZE_SIZE): New macros. - -2011-09-29 Eli Zaretskii - - * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined, - use EDOM. - -2011-09-28 Eli Zaretskii - - * xdisp.c (compute_display_string_end): If there's no display - string at CHARPOS, return -1. - - * bidi.c (bidi_fetch_char): When compute_display_string_end - returns a negative value, treat the character as a normal - character not covered by a display string. (Bug#9624) - -2011-09-28 Juanma Barranquero - - * lread.c (Fread_from_string): Fix typo in docstring. - -2011-09-27 Eli Zaretskii - - * xdisp.c (handle_invisible_prop): If invisible text ends on a - newline, reseat the iterator instead of bidi-iterating there one - character at a time. (Bug#9610) - (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past - TO_CHARPOS if the bidi iterator is at base embedding level. - -2011-09-27 Andreas Schwab - - * lread.c (readevalloop): Use correct code for NBSP. - (read1): Likewise. (Bug#9608) - -2011-09-25 Michael Albinus - - * dbusbind.c (Fdbus_register_signal): When service is not - registered, use nil in Vdbus_registered_objects_table. (Bug#9581) - -2011-09-25 Glenn Morris - - * buffer.c (truncate-lines): Doc fix. - -2011-09-24 Chong Yidong - - * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers) - (Fset_window_next_buffers): Doc fix. - -2011-09-24 Glenn Morris - - * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715) - -2011-09-24 Paul Eggert - - Fix minor problems found by static checking. - * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int. - * indent.c (Fvertical_motion): Fix == vs = typo. - -2011-09-24 Eli Zaretskii - - * dispnew.c (syms_of_display) : - Default value is now t. Doc fix. - - * indent.c (Fvertical_motion): Compute and apply the overshoot - logic when moving up, not only when moving down. Fix the - confusing name and values of the it_overshoot_expected variable; - logic changes accordingly. (Bug#9254) (Bug#9549) - - * xdisp.c (pos_visible_p): Produce correct pixel coordinates when - CHARPOS is covered by a display string which includes newlines. - (move_it_vertically_backward): Avoid inflooping when START_CHARPOS - is covered by a display string with embedded newlines. - -2011-09-24 Michael Albinus - - * dbusbind.c (Fdbus_register_signal): Add match rule to - Vdbus_registered_objects_table. (Bug#9581) - (Fdbus_register_method, Vdbus_registered_objects_table): - Fix docstring. - -2011-09-24 Jim Meyering - - do not ignore write error for any output size - The previous change was incomplete. - While it makes emacs --batch detect the vast majority of stdout - write failures, errors were still ignored whenever the output size is - k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096, - $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \ - && echo FAIL: ignored write error - FAIL: ignored write error - $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \ - && echo FAIL: ignored write error - FAIL: ignored write error - * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574) - -2011-09-23 Andreas Schwab - - * emacs.c (Fkill_emacs): In noninteractive mode exit - non-successfully if a write error occurred on stdout. (Bug#9574) - -2011-09-21 Eli Zaretskii - - * xdisp.c (pop_it): Allow it->object that is a cons cell to pass - the xassert test. - - * dispextern.h (struct it): Update the comment documenting what - can it->OBJECT be. - -2011-09-20 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): If the row ends in a newline from - a display string, extend search for cursor position to end of row. - (find_row_edges): If the row ends in a newline from a display - string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549) - Handle the case of a display string with multiple newlines. - (Fcurrent_bidi_paragraph_direction): Fix search for previous - non-empty line. Fixes confusing cursor motion with arrow keys at - the beginning of a line that starts with whitespace. - -2011-09-19 Lars Magne Ingebrigtsen - - * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is - (bug#9493). - -2011-09-18 Chong Yidong - - * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as - boolean (Bug#9154). - -2011-09-18 Eli Zaretskii - - * xdisp.c (display_line): Record maximum and minimum buffer - positions even if no glyphs were produced (e.g., by a zero-width - stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record - buffer positions that will be removed from the glyph row because - they don't fit. - (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the - column is beyond frame width: don't subtract 1 "pixel" when - computing width of the stretch. - (reseat_at_next_visible_line_start): Undo the change made on - 2011-09-17 that saved paragraph information and restored it after - the call to `reseat'. (Bug#9545) - -2011-09-18 YAMAMOTO Mitsuharu - - * xdisp.c (expose_window): Save original value of phys_cursor_on_p - and turn window cursor on if cleared (Bug#9415). - -2011-09-18 Andreas Schwab - - * search.c (boyer_moore): Take unibyte characters from pattern - literally. (Bug#9458) - -2011-09-18 Eli Zaretskii - - * xdisp.c (reseat_at_next_visible_line_start): Fix last change. - -2011-09-18 Paul Eggert - - Fix minor problem found by static checking. - * xdisp.c (reseat_at_next_visible_line_start): Mark locals as - initialized, to pacify gcc -Wuninitialized. - - * fileio.c: Report proper errno when syscall falls. - (Finsert_file_contents): Save and restore errno, - so that report_file_error outputs the correct diagnostic. - (Fwrite_region) [CLASH_DETECTION]: Likewise. - -2011-09-18 Eli Zaretskii - - * .gdbinit (pgx): Fix references to fields of `struct glyph'. - -2011-09-17 Eli Zaretskii - - * xdisp.c (produce_stretch_glyph): Another fix for changes made on - 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530) - -2011-09-17 Eli Zaretskii - - * xdisp.c (reseat_at_next_visible_line_start): Keep information - about the current paragraph and restore it after the call to reseat. - - * bidi.c (MAX_PARAGRAPH_SEARCH): New macro. - (bidi_find_paragraph_start): Search back for paragraph beginning - at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE. - (bidi_move_to_visually_next): Only trigger paragraph-related - computations when the last character is a newline or at EOB, not - just any NEUTRAL_B. (Bug#9470) - - * xdisp.c (set_cursor_from_row): Don't invoke special treatment of - truncated lines if point is covered by a display string. (Bug#9524) - -2011-09-16 Paul Eggert - - * xselect.c: Relax test for outgoing X longs (Bug#9498). - (cons_to_x_long): New function. - (lisp_data_to_selection_data): Use it. Correct the test for - short-versus-long data; it was negated. Break out of vector - loop, for efficiency, when a long datum is discovered. - -2011-09-16 Stefan Monnier - - * eval.c (Fquote): Document its non-consing behavior (bug#9482). - -2011-09-16 Eli Zaretskii - - * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see - GCC PR/17406) by declaring this function with external scope. - -2011-09-15 Paul Eggert - - * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514). - Don't mishandle (length (format "%%")) and (format "%4000s%%" ""). - -2011-09-15 Andreas Schwab - - * editfns.c (Fformat): Correctly handle text properties on "%%". - -2011-09-15 Eli Zaretskii - - * xterm.c (x_draw_composite_glyph_string_foreground): - * w32term.c (x_draw_composite_glyph_string_foreground): - * term.c (encode_terminal_code): - * composite.c (composition_update_it, get_composition_id): - * xdisp.c (get_next_display_element) - (fill_composite_glyph_string): Add comments about special meaning - of TAB characters in a composition. - -2011-09-15 Paul Eggert - - * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514). - This occurs when processing a multibyte format. - Problem reported by Wolfgang Jenker. - -2011-09-15 Johan Bockgård - - * xdisp.c (try_cursor_movement): Only check for exact match if - cursor hpos found by set_cursor_from_row is valid. (Bug#9495) - -2011-09-14 Paul Eggert - - Remove unused external symbols. - * dispextern.h (calc_pixel_width_or_height): Remove decl. - * xdisp.c (calc_pixel_width_or_height): Now static. - * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove. - * indent.c (check_display_width): - * w32term.c: Fix comment to match code. - * xterm.c, xterm.h (x_catching_errors): Remove. - -2011-09-14 Paul Eggert - - * xselect.c: Use signed conversions more consistently (Bug#9498). - (selection_data_to_lisp_data): Assume incoming selection data are - signed integers, not unsigned. This is to be consistent with - outgoing selection data, which was modified to use signed integers - in as part of the fix to Bug#9196 in response to Jan D.'s comment - in that X11 - expects long, not unsigned long. - -2011-09-14 Eli Zaretskii - - * xdisp.c (try_window_reusing_current_matrix): Fix incorrect - computation of loop end. Reported by Johan Bockgård - . - -2011-09-13 Chong Yidong - - * frame.c (Fother_visible_frames_p): Function deleted. - -2011-09-12 Eli Zaretskii - - * indent.c (compute_motion): Process display vector front to back - rather than the other way around. (Bug#2496) - -2011-09-12 Stefan Monnier - - * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0. - -2011-09-11 Chong Yidong - - * minibuf.c (Fread_from_minibuffer): Doc fix. - -2011-09-11 Eli Zaretskii - - * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from - 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475) - -2011-09-11 Lars Magne Ingebrigtsen - - * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a - value for non-existent files. - -2011-09-11 Eli Zaretskii - - * fileio.c (Finsert_file_contents): If the file cannot be opened, - set its "size" to -1. This will set the modtime_size field of - the corresponding buffer to -1, which is what - verify-visited-file-modtime expects for files that do not exist. - (Bug#9139) - -2011-09-11 Paul Eggert - - * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls - here ... - * lisp.h: ... from here. push_key_description is no longer - defined in keyboard.c, so its declaration should not be in - lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE - logically belongs with push_key_description. - -2011-09-10 Paul Eggert - - * buffer.h: Include instead of . - Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386. - Problem reported by Herbert J. Skuhra. - -2011-09-10 Lars Magne Ingebrigtsen - - * xml.c (parse_region): Make the parsing work for - non-comment-starting XML files again (bug#9144). - -2011-09-10 Andreas Schwab - - * image.c (gif_load): Fix calculation of bottom and right corner. - (Bug#9468) - -2011-09-10 Eli Zaretskii - - * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish - redisplay in small windows. - -2011-09-09 Eli Zaretskii - - * frame.c (x_report_frame_params): Cast to avoid compiler warnings. - -2011-09-08 Martin Rudalics - - * window.c (Fset_window_prev_buffers, Fset_window_next_buffers): - Operate on live windows only. - -2011-09-08 Juanma Barranquero - - * emacs.c (my_heap_start): #ifdef to avoid warnings when unused. - -2011-09-07 Eli Zaretskii - - * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it - only under bidi iteration. - -2011-09-07 Jan Djärv - - * gtkutil.c (xg_make_tool_item): Insert comment about eventbox. - -2011-09-06 Paul Eggert - - isnan: Fix porting problem to Solaris 10 with bundled gcc. - Without this fix, the command to link temacs failed due to an - undefined symbol __builtin_isnan. This is because - /usr/include/iso/math_c99.h #defines isnan(x) to - __builtin_isnan(x), but the bundled gcc, which identifies itself - as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have - a __builtin_isnan. - * floatfns.c (isnan): #undef, and then #define to a clone of - what's in data.c. - (Fisnan): Always define, since it's always available now. - (syms_of_floatfns): Always define isnan at the Lisp level. - -2011-09-06 Paul Eggert - - * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169). - -2011-09-06 Paul Eggert - - * fileio.c: Fix bugs with large file offsets (Bug#9428). - The previous code assumed that file offsets (off_t values) fit in - EMACS_INT variables, which is not true on typical 32-bit hosts. - The code messed up by falsely reporting buffer overflow in cases - such as (insert-file-contents "big" nil 1 2) into an empty buffer - when "big" contains more than 2**29 bytes, even though this - inserts just one byte and does not overflow the buffer. - (Finsert_file_contents): Store file offsets as off_t - values, not as EMACS_INT values. Check for overflow when - converting between EMACS_INT and off_t. When checking for - buffer overflow or for overlap, take the offsets into account. - Don't use EMACS_INT for small values where int suffices. - When checking for overlap, fix a typo: ZV was used where - ZV_BYTE was intended. - (Fwrite_region): Don't assume off_t fits into 'long'. - * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT. - -2011-09-05 Michael Albinus - - * dbusbind.c (xd_signature_cat): Rename from signature_cat. - -2011-09-04 Paul Eggert - - sprintf-related integer and memory overflow issues (Bug#9412). - - * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values. - (esprintf, exprintf, evxprintf): New functions. - * keyboard.c (command_loop_level): Now EMACS_INT, not int. - (cmd_error): Kbd macro iterations count is now EMACS_INT, not int. - (modify_event_symbol): Do not assume that the length of - name_alist_or_stem is safe to alloca and fits in int. - (Fexecute_extended_command): Likewise for function name and binding. - (Frecursion_depth): Wrap around reliably on integer overflow. - * keymap.c (push_key_description): First arg is now EMACS_INT, not int, - since some callers pass EMACS_INT values. - (Fsingle_key_description): Don't crash if symbol name contains more - than MAX_ALLOCA bytes. - * minibuf.c (minibuf_level): Now EMACS_INT, not int. - (get_minibuffer): Arg is now EMACS_INT, not int. - * lisp.h (get_minibuffer, push_key_description): Reflect API changes. - (esprintf, exprintf, evxprintf): New decls. - * window.h (command_loop_level, minibuf_level): Reflect API changes. - - * dbusbind.c (signature_cat): New function. - (xd_signature, Fdbus_register_signal): - Do not overrun buffer; instead, report string overflow. - - * dispnew.c (add_window_display_history): Don't overrun buffer. - Truncate instead; this is OK since it's just a log. - - * editfns.c (Fcurrent_time_zone): Don't overrun buffer - even if the time zone offset is outlandishly large. - Don't mishandle offset == INT_MIN. - - * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer - when creating daemon; the previous buffer-overflow check was incorrect. - - * eval.c (verror): Simplify by rewriting in terms of evxprintf, - which has the guts of the old verror function. - - * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name; - use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues. - - * font.c: Include , for DBL_MAX_10_EXP. - (font_unparse_xlfd): Don't blindly alloca long strings. - Don't assume XINT result fits in int, or that XFLOAT_DATA * 10 - fits in int, when using sprintf. Use single snprintf to count - length of string rather than counting it via multiple sprintfs; - that's simpler and more reliable. - (font_unparse_fcname): Use it to avoid sprintf buffer overrun. - (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not - sprintf, in case result does not fit in int. - - * fontset.c (num_auto_fontsets): Now printmax_t, not int. - (fontset_from_font): Print it. - - * frame.c (tty_frame_count): Now printmax_t, not int. - (make_terminal_frame, set_term_frame_name): Print it. - (x_report_frame_params): In X, window IDs are unsigned long, - not signed long, so print them as unsigned. - (validate_x_resource_name): Check for implausibly long names, - and don't assume name length fits in 'int'. - (x_get_resource_string): Don't blindly alloca invocation name; - use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does - not fit in int. - - * gtkutil.c: Include , for DBL_MAX_10_EXP. - (xg_check_special_colors, xg_set_geometry): - Make sprintf buffers a bit bigger, to avoid potential buffer overrun. - - * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA. - Use esprintf, not sprintf, in case result does not fit in int. - - * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int. - (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating - it as a large positive number. - (Fexecute_kbd_macro): Don't assume repeat count fits in int. - * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int. - - * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf, - in case result does not fit in int. - - * print.c (float_to_string): Detect width overflow more reliably. - (print_object): Make sprintf buffer a bit bigger, to avoid potential - buffer overrun. Don't assume list length fits in 'int'. Treat - print length of 0 as 0, not as infinity; to be consistent with other - uses of print length in this function. Don't overflow print length - index. Don't assume hash table size fits in 'long', or that - vectorlike size fits in 'unsigned long'. - - * process.c (make_process): Use printmax_t, not int, to format - process-name gensyms. - - * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function. - - * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger - to avoid potential buffer overrun. - - * xfaces.c (x_update_menu_appearance): Don't overrun buffer - if X resource line is longer than 512 bytes. - - * xfns.c (x_window): Make sprintf buffer a bit bigger - to avoid potential buffer overrun. - - * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer. - - * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF. - -2011-09-04 Paul Eggert - - Integer overflow fixes for scrolling, etc. - Without these, Emacs silently mishandles large integers sometimes. - For example, "C-u 4294967297 M-x recenter" was treated as if - it were "C-u 1 M-x recenter" on a typical 64-bit host. - - * xdisp.c (try_window_id): Check Emacs fixnum range before - converting to 'int'. - - * window.c (window_scroll_line_based, Frecenter): - Check that an Emacs fixnum is in range before assigning it to 'int'. - (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for - values converted from Emacs fixnums. - (Frecenter): Don't wrap around a line count if it is out of 'int' - range; instead, treat it as an extreme value. - (Fset_window_configuration, compare_window_configurations): - Use ptrdiff_t, not int, for index that might exceed 2 GiB. - - * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes - that can exceed INT_MAX. Check that EMACS_INT value is in range - before assigning it to the (possibly-narrower) index. - (match_limit): Don't assume that a fixnum can fit in 'int'. - - * print.c (print_object): Use ptrdiff_t, not int, for index that can - exceed INT_MAX. - - * indent.c (position_indentation): Now takes ptrdiff_t, not int. - (Fvertical_motion): Don't wrap around LINES values that don't fit - in 'int'. Instead, treat them as extreme values. This is good - enough for windows, which can't have more than INT_MAX lines anyway. - -2011-09-03 Lars Magne Ingebrigtsen - - * Require libxml/parser.h to avoid compilation warning. - - * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown. - - * xml.c (parse_region): Don't call xmlCleanupParser after parsing, - since this reportedly can destroy thread storage. - -2011-08-30 Chong Yidong - - * syntax.c (find_defun_start): Update all cache variables if - exiting early (Bug#9401). - -2011-08-30 Eli Zaretskii - - * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings. - - * xdisp.c (produce_stretch_glyph): No longer static, compiled also - when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY - frames. Call tty_append_glyph in the TTY case. (Bug#9402) - - * term.c (tty_append_glyph): New function. - (produce_stretch_glyph): Static function and its prototype deleted. - - * dispextern.h (produce_stretch_glyph, tty_append_glyph): - Add prototypes. - -2011-08-29 Paul Eggert - - * image.c (parse_image_spec): Check for nonnegative, not for positive, - when checking :margin (Bug#9390). - (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR): - Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, - so that the name doesn't mislead. All uses changed. - -2011-08-28 Johan Bockgård - - * term.c (init_tty) [HAVE_GPM]: Move mouse settings after - set_tty_hooks. - -2011-08-27 Eli Zaretskii - - * xdisp.c (move_it_to): Don't bail out early when reaching - position beyond to_charpos, if we are scanning backwards. - (move_it_vertically_backward): When DY == 0, make sure we get to - the first character in the line after the newline. - -2011-08-27 Paul Eggert - - * ccl.c: Improve and simplify overflow checking (Bug#9196). - (ccl_driver): Do not generate an out-of-range pointer. - (Fccl_execute_on_string): Remove unnecessary check for - integer overflow, noted by Stefan Monnier in - . - Remove a FIXME that didn't need fixing. - Simplify the newly-introduced buffer reallocation code. - -2011-08-27 Juanma Barranquero - - * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h. - -2011-08-26 Paul Eggert - - Integer and memory overflow issues (Bug#9196). - - * doc.c (get_doc_string): Rework so that - get_doc_string_buffer_size is the actual buffer size, rather than - being 1 less than the actual buffer size; this makes xpalloc more - convenient. - - * image.c (x_allocate_bitmap_record, cache_image): - * xselect.c (Fx_register_dnd_atom): - Simplify previous changes by using xpalloc. - - * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT, - since either will do and ptrdiff_t is convenient with xpalloc. - - * charset.c (charset_table_size) - (struct charset_sort_data.priority): Now ptrdiff_t. - (charset_compare): Don't overflow if priorities differ greatly. - (Fsort_charsets): Don't assume list length fits in int. - Check for size-calculation overflow when allocating sort data. - (syms_of_charset): Allocate an initial charset table that is - just under 64 KiB, to avoid problems with glibc malloc and mmap. - - * cmds.c (internal_self_insert): Check for size-calculation overflow. - - * composite.h (struct composition.glyph_len): Now int, not unsigned. - The actual value is always <= INT_MAX, and leaving it unsigned made - overflow checking harder. - - * dispextern.h (struct glyph_matrix.rows_allocated) - (struct face_cache.size): Now ptrdiff_t, for convenience in use - with xpalloc. The values are still always <= INT_MAX. - - * indent.c (compute_motion): Adjust to region_cache_forward sig change. - - * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls. - (SAFE_NALLOCA): New macro. - - * region-cache.c (struct boundary.pos, find_cache_boundary) - (move_cache_gap, insert_cache_boundary, delete_cache_boundaries) - (set_cache_region, invalidate_region_cache) - (revalidate_region_cache, know_region_cache, region_cache_forward) - (region_cache_backward, pp_cache): - Use ptrdiff_t, not EMACS_INT, since either will do. This is needed - so that ptrdiff_t * can be passed to xpalloc. - (struct region_cache): Similarly, for gap_start, gap_len, cache_len, - beg_unchanged, end_unchanged, buffer_beg, buffer_end members. - (pp_cache): Don't assume cache_len fits in int. - * region-cache.h: Adjust extern decls to match. - - * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not - EMACS_INT, since either will do, for xpalloc. - - * alloc.c: Include verify.h, and check that int fits in ptrdiff_t. - (xnmalloc, xnrealloc, xpalloc): New functions. - - * bidi.c (bidi_shelve_header_size): New constant. - (bidi_cache_ensure_space, bidi_shelve_cache): Use it. - (bidi_cache_ensure_space): Avoid integer overflow when allocating. - - * bidi.c (bidi_cache_shrink): - * buffer.c (overlays_at, overlays_in, record_overlay_string) - (overlay_strings): - Don't update size of array until after memory allocation succeeds, - because xmalloc/xrealloc may not return. - (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help - now that we have proper integer overflow checking. - (record_overlay_string, overlay_strings): Catch overflows when - calculating size of overlay_str_buf. - - * callproc.c (Fcall_process): Check for size overflow when - calculating size of args2. - (child_setup): Avoid overflow by using size_t rather than ptrdiff_t. - Normally we prefer signed values, but sticking with ptrdiff_t would - require adding more-complicated checks. - - * ccl.c (Fccl_execute_on_string): Check for memory overflow. - Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do. - Redo buffer-overflow calculations to avoid integer overflow. - Add a FIXME comment where memory seems to be over-allocated. - - * character.c (Fstring): Check for size-calculation overflow. - - * coding.c (produce_chars): Redo buffer-overflow calculations to avoid - unnecessary integer overflow. Check for size overflow. - (encode_coding_object): Don't update size until xmalloc succeeds. - - * composite.c (get_composition_id): Check for overflow in glyph - length calculations. - - Integer and memory overflow fixes for display code. - * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int. - * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool) - (scrolling_window): Check for overflow in size calculations. - (line_draw_cost, realloc_glyph_pool, add_row_entry): - Don't assume glyph table len fits in int. - (struct row_entry.bucket, row_entry_pool_size, row_entry_idx) - (row_table_size): Now ptrdiff_t, not int. - (scrolling_window): Avoid overflow in size calculations. - Don't update size until allocation succeeds. - * fns.c (concat): Check for overflow in size calculations. - (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT. - * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros. - (NEXT_ALMOST_PRIME_LIMIT): New constant. - - * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int. - (get_doc_string): Check for size calculation overflow. - Don't update size until allocation succeeds. - (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not - EMACS_INT, where ptrdiff_t will do. - (Fsubstitute_command_keys): Check for string overflow. - - * editfns.c (set_time_zone_rule): Don't assume environment length - fits in int. - (message_length): Now ptrdiff_t, not int. - (Fmessage_box): Don't update size until allocation succeeds. - Don't assume message length fits in int. - (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do. - - * emacs.c (main): Do not reallocate argv, since there is a null at - the end that can be overwritten, and this way there's no need to - worry about size-calculation overflow. - (sort_args): Check for size-calculation overflow. - - * eval.c (init_eval_once, grow_specpdl): Don't update size until - alloc succeeds. - (call_debugger, grow_specpdl): Redo calculations to avoid overflow. - - * frame.c (set_menu_bar_lines, x_set_frame_parameters) - (x_set_scroll_bar_width, x_figure_window_size): - Check for integer overflow. - (x_set_alpha): Do not assume XINT fits in int. - - * frame.h (struct frame): Use int, not EMACS_INT, where int works. - This is for the members text_lines, text_cols, total_lines, total_cols, - where the system imposes an 'int' limit. - - * fringe.c (Fdefine_fringe_bitmap): - Don't update size until alloc works. - - * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring) - (ftfont_shape_by_flt): Check for integer overflow in size calculations. - - * gtkutil.c (get_utf8_string, xg_store_widget_in_map): - Check for size-calculation overflow. - (get_utf8_string): Use ptrdiff_t, not size_t, where either will - do, as we prefer signed integers. - (id_to_widget.max_size, id_to_widget.used) - (xg_store_widget_in_map, xg_remove_widget_from_map) - (xg_get_widget_from_map, xg_get_scroll_id_for_window) - (xg_remove_scroll_bar, xg_update_scrollbar_pos): - Use and return ptrdiff_t, not int. - (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int. - * gtkutil.h: Change prototypes to match the above. - - * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these - are duplicate now that they've been promoted to lisp.h. - (x_allocate_bitmap_record, x_alloc_image_color) - (make_image_cache, cache_image, xpm_load): - Don't update size until alloc is done. - (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors) - (x_detect_edges): - Check for size calculation overflow. - (ct_colors_allocated_max): New constant. - (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid - overflow. - - * keyboard.c (read_char, menu_bar_items, tool_bar_items) - (read_char_x_menu_prompt, read_char_minibuf_menu_width) - (read_char_minibuf_menu_prompt, follow_key, read_key_sequence): - Use ptrdiff_t, not int, to count maps. - (read_char_minibuf_menu_prompt): Check for overflow in size - calculations. Don't update size until allocation succeeds. - Redo calculations to avoid overflow. - * keyboard.h: Change prototypes to match the above. - - * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int, - to count maps. - (current_minor_maps): Check for size calculation overflow. - * keymap.h: Change prototypes to match the above. - - * lread.c (read1, init_obarray): Don't update size until alloc done. - - * macros.c (Fstart_kbd_macro): Don't update size until alloc done. - (store_kbd_macro_char): Reorder multiplicands to avoid overflow. - - * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail): - Now ptrdiff_t, not int. - * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes. - (ns_draw_fringe_bitmap): Rewrite to avoid overflow. - - * process.c (Fnetwork_interface_list): Check for overflow - in size calculation. - - * region-cache.c (move_cache_gap): Check for size calculation overflow. - - * scroll.c (do_line_insertion_deletion_costs): Check for size calc - overflow. Don't bother calling xmalloc when xrealloc will do. - - * search.c (Freplace_match): Check for size calculation overflow. - (Fset_match_data): Don't assume list lengths fit in 'int'. - - * sysdep.c (system_process_attributes): Use ptrdiff_t, not int, - for command line length. Do not attempt to address one before the - beginning of an array, as that's not portable. - - * term.c (max_frame_lines): Remove; unused. - (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t, - not int. - (encode_terminal_code, calculate_costs): Check for size - calculation overflow. - (encode_terminal_code): Use ptrdiff_t, not int, to record glyph - table lengths and related sizes. Don't update size until alloc - done. Redo calculations to avoid overflow. - (calculate_costs): Don't bother calling xmalloc when xrealloc will do. - - * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of - subtracting pointers. - (gobble_line): Check for overflow more carefully. Don't update size - until alloc done. - - * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes. - Don't update size until alloc done. - Redo size calculations to avoid overflow. - Check for size calculation overflow. - (main) [DEBUG]: Fix typo in invoking tparam1. - - * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title): - Use ptrdiff_t, not int, for sizes. - (store_mode_line_noprop_char): Don't update size until alloc done. - - * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face): - Use ptrdiff_t, not int, for sizes. - (Finternal_make_lisp_face, cache_face): - Check for size calculation overflow. - (cache_face): Treat size calculation overflows as if they were - memory exhaustion (the usual treatment), rather than aborting. - - * xfns.c (x_encode_text, x_set_name_internal) - (Fx_change_window_property): Use ptrdiff_t, not int, to count - sizes, since they can exceed INT_MAX in size. Check for size - calculation overflow. - - * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc. - (xg_select): Check for size calculation overflow. - Don't update size until alloc done. - - * xrdb.c (get_environ_db): Don't assume path length fits in int, - as sprintf is limited to int lengths. - - * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX) - (X_LONG_MIN): New macros. - Use them to make the following changes clearer. - (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer. - This change doesn't affect the value now, but it may help remind - future maintainers not to raise the value too much later. - (SELECTION_QUANTUM): Remove, replacing with ... - (selection_quantum): ... new function, which avoids overflow. - All uses changed. - (struct selection_data.size): Now ptrdiff_t, not int, to avoid - assumption that selection length fits in 'int'. - (x_reply_selection_request, x_handle_selection_request) - (x_get_window_property, receive_incremental_selection) - (x_get_window_property_as_lisp_data, selection_data_to_lisp_data) - (lisp_data_to_selection_data, clean_local_selection_data): - Use ptrdiff_t, not int, to record length of selection. - (x_reply_selection_request, x_get_window_property) - (receive_incremental_selection, x_property_data_to_lisp): - Redo calculations to avoid overflow. - (x_reply_selection_request): When sending hint, ceiling it at - X_LONG_MAX rather than relying on wraparound overflow to send - something. - (x_get_window_property, receive_incremental_selection) - (lisp_data_to_selection_data, x_property_data_to_lisp): - Check for size-calculation overflow. - (x_get_window_property, receive_incremental_selection) - (lisp_data_to_selection_data, Fx_register_dnd_atom): - Don't store size until memory allocation succeeds. - (x_get_window_property): Plug memory leak on memory exhaustion. - Don't double-block input; malloc is safe here. Don't assume 2**34 - - 4 fits in unsigned long. Add an xassert to check - XGetWindowProperty overflow. Be more careful about overflow - calculations, and distinguish size from memory overflow better. - (receive_incremental_selection): When tracing, don't assume - unsigned int is less than INT_MAX. - (x_selection_data_to_lisp_data): Remove unnecessary (and in theory - harmful) conversions of unsigned short to int. - (lisp_data_to_selection_data): Don't assume that integers - in the range -65535 through -1 fit in an X unsigned short. - Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into - result parameters unless successful. Rely on cons_to_unsigned - to report problems with elements; the old code wasn't right anyway. - (x_check_property_data): Check for int overflow; we cannot use - a wider type due to X limits. - (x_handle_dnd_message): Use unsigned int, to avoid int overflow. - - * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow. - - * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent) - (x_term_init): Check for size calculation overflow. - (x_color_cells): Don't store size until memory allocation succeeds. - (handle_one_xevent): Use ptrdiff_t, not int, for byte counts. - Don't assume alloca size is less than MAX_ALLOCA. - (x_term_init): Don't assume length fits in int (sprintf is limited - to int size). - - Use ptrdiff_t for composition IDs. - * character.c (lisp_string_width): - * composite.c (composition_table_size, n_compositions) - (get_composition_id, composition_gstring_from_id): - * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id): - * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): - * window.c (Frecenter): - Use ptrdiff_t, not int, for composition IDs. - * composite.c (get_composition_id): Check for integer overflow. - * composite.h: Adjust prototypes to match the above changes. - - Use ptrdiff_t for hash table indexes. - * category.c (hash_get_category_set): - * ccl.c (ccl_driver): - * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID): - * coding.c (coding_system_charset_list, detect_coding_system): - * coding.h (struct coding_system.id): - * composite.c (get_composition_id, gstring_lookup_cache): - * fns.c (hash_lookup, hash_put, Fgethash, Fputhash): - * image.c (xpm_get_color_table_h): - * lisp.h (hash_lookup, hash_put): - * minibuf.c (Ftest_completion): - Use ptrdiff_t for hash table indexes, not int (which is too - narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on - 32-bit --with-wide-int hosts). - - * charset.c (Fdefine_charset_internal): Check for integer overflow. - Add a FIXME comment about memory leaks. - (syms_of_charset): Don't assume xmalloc returns. - - Don't assume that stated character widths fit in int. - * character.c (Fchar_width, c_string_width, lisp_string_width): - * character.h (CHAR_WIDTH): - * indent.c (MULTIBYTE_BYTES_WIDTH): - Use sanitize_char_width to avoid undefined and/or bad behavior - with outlandish widths. - * character.h (sanitize_tab_width): Rename from sanitize_width, - now that we have two such functions. All uses changed. - (sanitize_char_width): New inline function. - - Don't assume that tab-width fits in int. - * character.h (sanitize_width): New inline function. - (SANE_TAB_WIDTH): New macro. - (ASCII_CHAR_WIDTH): Use it. - * indent.c (sane_tab_width): Remove. All uses replaced by - SANE_TAB_WIDTH (current_buffer). - * xdisp.c (init_iterator): Use SANE_TAB_WIDTH. - - * fileio.c: Integer overflow issues with file modes. - (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int. - - * charset.c (read_hex): New arg OVERFLOW. All uses changed. - Remove unreachable code. - (read_hex, load_charset_map_from_file): Check for integer overflow. - - * xterm.c: Don't go over XClientMessageEvent limit. - (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed. - (x_send_scroll_bar_event): Likewise. Check that the size does not - exceed limits imposed by XClientMessageEvent, as well as the usual - ptrdiff_t and size_t limits. - - * keyboard.c: Overflow, signedness and related fixes. - (make_lispy_movement): Use same integer type in forward decl - that is used in the definition. - (read_key_sequence, keyremap_step): - Change bufsize argument back to int, undoing my 2011-03-30 change. - We prefer signed types, and int is wide enough here. - (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less - than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow - larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string - length, not size_t. Use ptrdiff_t for index, not int. - (keyremap_step, read_key_sequence): Redo bufsize check to avoid - possibility of integer overflow. - - Overflow, signedness and related fixes for images. - - * dispextern.h (struct it.stack[0].u.image.image_id) - (struct_it.image_id, struct image.id, struct image_cache.size) - (struct image_cache.used, struct image_cache.ref_count): - * gtkutil.c (update_frame_tool_bar): - * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p) - (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image) - (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image): - * nsmenu.m (update_frame_tool_bar): - * xdisp.c (calc_pixel_width_or_height): - * xfns.c (image_cache_refcount): - Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits - on typical 64-bit hosts. - - * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros. - (x_bitmap_pixmap, x_create_x_image_and_pixmap): - Omit unnecessary casts to int. - (parse_image_spec): Check that integers fall into 'int' range - when the callers expect that. - (image_ascent): Redo ascent calculation to avoid int overflow. - (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages. - (lookup_image): Remove unnecessary tests. - (xbm_image_p): Locals are now of int, not EMACS_INT, - since parse_image_check makes sure they fit into int. - (png_load, gif_load, svg_load_image): - Prefer int to unsigned where either will do. - (tiff_handler): New function, combining the cores of the - old tiff_error_handler and tiff_warning_handler. - This function is rewritten to use vsnprintf and thereby avoid - stack buffer overflows. It uses only the features of vsnprintf - that are common to both POSIX and native Microsoft. - (tiff_error_handler, tiff_warning_handler): Use it. - (tiff_load, gif_load, imagemagick_load_image): - Don't assume :index value fits in 'int'. - (gif_load): Omit unnecessary cast to double, and avoid double-rounding. - (imagemagick_load_image): Check that crop parameters fit into - the integer types that MagickCropImage accepts. Don't assume - Vimagemagick_render_type has a nonnegative value. Don't assume - size_t fits in 'long'. - (gs_load): Use printmax_t to print the widest integers possible. - Check for integer overflow when computing image height and width. - -2011-08-26 Eli Zaretskii - - * xdisp.c (redisplay_window): Don't force window start if point - will be invisible in the resulting window. (Bug#9324) - -2011-08-25 Eli Zaretskii - - * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when - the display spec is of the form `(space ...)'. - (handle_display_spec): Return the value returned by - handle_single_display_spec, not just 1 or zero. - (handle_single_display_spec): If the display spec is of the form - `(space ...)', and specifies display in the text area, return 2 - rather than 1. - (try_cursor_movement): Check for the need to scroll more - accurately, and prefer exact match for point under bidi. - Don't advance `row' beyond the last row of the window. - - * dispextern.h (struct bidi_it): Rename the disp_prop_p member - into disp_prop; all users changed. - - * bidi.c (bidi_fetch_char): If compute_display_string_pos returns - DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character - for the text covered by the display property. - -2011-08-25 Chong Yidong - - * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer. - Change return value to nil. - (Frecord_buffer): Delete unused function. - -2011-08-24 Eli Zaretskii - - * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte - buffers, return left-to-right. - (set_cursor_from_row): Consider candidate row a win if its glyph - represents a newline and point is on that newline. Fixes cursor - positioning on the newline at EOL of R2L text within L2R - paragraph, and vice versa. - (try_cursor_movement): Check continued rows, in addition to - continuation rows. Fixes unwarranted scroll when point enters a - continued line of R2L text within an L2R paragraph, or vice versa. - (cursor_row_p): Consider the case of point being equal to - MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving - from the end of a short line to the beginning of a continued line - of R2L text within L2R paragraph. - (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for - composed characters. - - * bidi.c (bidi_check_type): Use xassert. - (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p - members. - -2011-08-23 Eli Zaretskii - - * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of - a character. - -2011-08-23 Chong Yidong - - * nsfont.m (ns_otf_to_script): Fix typo. - -2011-08-22 Kenichi Handa - - * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a - extra slot even if the purpose is char-code-property-table. - -2011-08-23 Eli Zaretskii - - * xdisp.c (redisplay_window): When computing centering_position, - account for the height of the header line. (Bug#8874) - - * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos - instead of CHAR_TO_BYTE. Fixes a crash when a completion - candidate is selected by the mouse, and that candidate has a - composed character under the mouse. - - * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel - coordinates reported by pos-visible-in-window-p for a composed - character in column zero. - -2011-08-23 Stefan Monnier - - * cmds.c (Fself_insert_command): Mention post-self-insert-hook. - -2011-08-22 Eli Zaretskii - - * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition, - consider it a hit if to_charpos is anywhere in the range of the - composed buffer positions. - -2011-08-22 Chong Yidong - - * image.c (gif_load): Don't assume that each subimage has the same - dimensions as the base image. Handle disposal method that is - "undefined" by the gif spec (Bug#9335). - -2011-08-20 Chong Yidong - - * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329). - (Fcondition_case): Document `debug' symbol in error handler. - -2011-08-19 Eli Zaretskii - - * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of - face ID by FACE_FROM_ID, and avoid a crash when mouse is moved - from an Org mode buffer to a Speedbar frame. - - * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from - a composition, take its buffer position from IT->cmp_it.charpos. - Fixes cursor positioning at the beginning of a line that begins - with a composed character. - -2011-08-18 Eli Zaretskii - - * bidi.c (bidi_get_type): If bidi_type_table reports zero as the - character bidirectional type, use STRONG_L instead. Fixes crashes - in a buffer produced by `describe-categories'. - - * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p - members before the level stack, so they would be saved and - restored when copying iterator state. Fixes incorrect reordering - around TABs covered by display properties. - -2011-08-18 Andreas Schwab - - * process.c (Fnetwork_interface_list): Correctly determine buffer size. - -2011-08-17 Chong Yidong - - * eval.c (internal_condition_case, internal_condition_case_1) - (internal_condition_case_2, internal_condition_case_n): - Remove unnecessary aborts (Bug#9081). - -2011-08-17 Eli Zaretskii - - * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file - has no `load' handler, try opening the file locally. (Bug#9311) - -2011-08-16 Ken Brown - - * gmalloc.c: Expand comment. - -2011-08-16 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Don't accept a previous candidate - if it fails the cursor_row_p test. Fixes cursor positioning at ZV. - -2011-08-16 Ken Brown - - Fix memory allocation problems in Cygwin build (Bug#9273). - - * unexcw.c ( __malloc_initialized): Declare external variable. - (fixup_executable): Force the dumped emacs to reinitialize malloc. - - * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo): - New variables. - (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the - dumped emacs. - (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage - in the static heap. - [CYGWIN] (special_realloc): New function. - (_realloc_internal_nolock) [CYGWIN]: Use the new function on - requests to realloc storage in the static heap. - -2011-08-15 Paul Eggert - - * bidi.c (bidi_initialize): Remove unused local. - -2011-08-15 Eli Zaretskii - - * bidimirror.h: - * biditype.h: Remove file. - * makefile.w32-in ($(BLD)/bidi.$(O)): - * deps.mk (bidi.o): Remove biditype.h and bidimirror.h. - - * dispextern.h: Fix a typo in the comment to bidi_type_t. - - * chartab.c: Improve commentary for the uniprop_table API. - - * bidi.c (bidi_paragraph_init): Support zero value of - bidi_ignore_explicit_marks_for_paragraph_level. - (bidi_initialize): Use uniprop_table instead of including - biditype.h and bidimirror.h. - - * xdisp.c (move_it_in_display_line_to): Don't reset pixel - coordinates of the iterator when restoring from ppos_it. - (Bug#9296) - -2011-08-14 Kenichi Handa - - * process.c (create_process): Call setup_process_coding_systems - after the pid of the process is set to -1 (Bug#8162). - -2011-08-14 Eli Zaretskii - - * xdisp.c (move_it_in_display_line_to): Don't invoke - IT_RESET_X_ASCENT_DESCENT when iterator position was restored from - ppos_it. Fixes vertical cursor motion when line beginning is - covered by an image. (Bug#9296) - -2011-08-14 Jan Djärv - - * nsterm.h (ns_run_ascript): Declare. - (NSAPP_DATA2_RUNASSCRIPT): Define. - - * nsfns.m (as_script, as_result, as_status): New static variables. - (ns_run_ascript): New function. - (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined - event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start - the event loop. Get status from as_status (Bug#7276). - - * nsterm.m (sendEvent): If event is NSApplicationDefined and - data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit - the event loop (Bug#7276). - -2011-08-14 Andreas Schwab - - * gnutls.c (QCgnutls_bootprop_priority) - (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist) - (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks) - (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname) - (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags) - (QCgnutls_bootprop_verify_hostname_error) - (QCgnutls_bootprop_callbacks_verify): Rename from - Qgnutls_bootprop_..., all uses changed. - - * xfaces.c (QCignore_defface): Rename from Qignore_defface, all - uses changed. - -2011-08-14 Paul Eggert - - * xfaces.c (Qframe_set_background_mode): Now static. - * dispextern.h (Qframe_set_background_mode): Remove decl. - - * process.c (Fnetwork_interface_info): Declare local only if needed. - -2011-08-13 Jan Djärv - - * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477). - (Fnetwork_interface_list): Allocate in increments of bytes instead - of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting - bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct - sockaddr. - (struct ifflag_def): notrailers is smart on OSX. - (Fnetwork_interface_info): Handle case when ifr_flags is negative. - Get hardware address with getifaddrs if available. - -2011-08-12 Eli Zaretskii - - * xdisp.c (iterate_out_of_display_property): xassert that - IT->position is set to within IT->object's boundaries. Break from - the loop as soon as EOB is reached; avoids infloops in redisplay - when IT->position is set up wrongly due to some bug. - Set IT->current to match the bidi iterator unconditionally. - (push_display_prop): Allow GET_FROM_STRING as IT->method on - entry. Force push_it to save on the stack the current - buffer/string position, to be restored by pop_it. Fix flags in - the iterator structure wrt the object coming from a display - property, as `line-prefix' and `wrap-prefix' are not ``replacing'' - properties. (Bug#9284) - -2011-08-09 Andreas Schwab - - * fontset.c (fontset_get_font_group): Add proper type checks. - (Bug#9172) - -2011-08-09 YAMAMOTO Mitsuharu - - * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS - and LC_VERSION_MIN_MACOSX. - (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function. - (dump_it) [LC_FUNCTION_STARTS]: Use it. - -2011-08-08 Eli Zaretskii - - * xdisp.c (forward_to_next_line_start): Allow to use the - no-display-properties-and-no-overlays under bidi display. - Set disp_pos in the bidi iterator to avoid searches for display - properties and overlays. - -2011-08-08 Chong Yidong - - * editfns.c (Fset_time_zone_rule): Document relationship with the - setenv function. - - * ftfont.c (ftfont_pattern_entity): Copy the extras argument to - the font entity extracted from the cache (Bug#8109). - -2011-08-07 Chong Yidong - - * composite.c (autocmp_chars): Don't reset point. That is done by - restore_point_unwind (Bug#5984). - -2011-08-07 Juri Linkov - - * editfns.c (Fformat_time_string): Doc fix, add tag `usage:' - to show the arg `TIME' instead of `TIMEVAL'. - -2011-08-06 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Fix cursor positioning when a - display property strides EOL and includes a newline, as in - longlines-mode. (Bug#9254) - (move_it_in_display_line_to): Fix vertical-motion in a buffer with - word-wrap under bidirectional display. (Bug#9224) - - * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE - is non-zero, even if the data buffer is NULL. Fixes a crash in - vertical-motion with longlines-mode. (Bug#9254) - -2011-08-05 Eli Zaretskii - - * bidi.c : Now static. - (bidi_initialize): Initialize bidi_cache_total_alloc. - - * xdisp.c (display_line): Release buffer allocated for shelved bidi - cache. (Bug#9221) - - * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total - amount allocated this far in `bidi_cache_total_alloc'. - (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if - non-zero, only free the data buffer without restoring the cache - contents. All callers changed. - - * dispextern.h (bidi_unshelve_cache): Update prototype. - - * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to) - (move_it_in_display_line, move_it_to) - (move_it_vertically_backward, move_it_by_lines): Replace the call - to xfree to an equivalent call to bidi_unshelve_cache. - (move_it_in_display_line_to): Fix logic of returning - MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224) - -2011-08-05 Eli Zaretskii - - * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that - came from a string character with a `cursor' property. (Bug#9229) - -2011-08-04 Jan Djärv - - * Makefile.in (LIB_PTHREAD): New variable. - (LIBES): Add LIB_PTHREAD (Bug#9216). - - * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h: - Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216). - -2011-08-04 Andreas Schwab - - * regex.c (re_iswctype): Remove some redundant boolean conversions. - -2011-08-04 Jan Djärv - - * xterm.c (x_find_topmost_parent): New function. - (x_set_frame_alpha): Find topmost parent window with - x_find_topmost_parent and set the property there also (bug#9181). - (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify. - -2011-08-04 Paul Eggert - - * callproc.c (Fcall_process): Avoid vfork clobbering - the local vars buffer, coding_systems, current_dir. - -2011-08-03 Stefan Monnier - - * keymap.c (Fmake_composed_keymap): Move to subr.el. - -2011-08-03 Paul Eggert - - * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE - so that it is not optimized away. - - * xdisp.c (compute_display_string_pos): Remove unused local. - -2011-08-02 Eli Zaretskii - - Fix slow cursor motion and scrolling in large buffers with - selective display, like Org Mode buffers. (Bug#9218) - - * dispextern.h (struct bidi_it): New member disp_prop_p. - - * xdisp.c: Remove one-slot cache of display string positions. - (compute_display_string_pos): Accept an additional argument - DISP_PROP_P; callers changed. Scan at most 5K characters forward - for a display string or property. If found, set DISP_PROP_P - non-zero. - - * bidi.c (bidi_fetch_char): Accept an additional argument - DISP_PROP_P, and pass it to compute_display_string_pos. - Only handle text covered by a display string if DISP_PROP_P is returned - non-zero. All callers of bidi_fetch_char changed. - -2011-08-02 Stefan Monnier - - * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE. - -2010-12-03 Don March - - * keymap.c (Fdefine_key): Fix non-prefix key error message when - last character M-[char] is translated to ESC [char] (bug#7541). - -2011-08-02 Kenichi Handa - - * lisp.h (uniprop_table): Extern it. - - * chartab.c (uniprop_table): Make it non-static. - -2011-08-01 Eli Zaretskii - - * xdisp.c (forward_to_next_line_start): Accept additional argument - BIDI_IT_PREV, and store into it the state of the bidi iterator had - on the newline. - (reseat_at_next_visible_line_start): Use the bidi iterator state - returned by forward_to_next_line_start to restore the state of - it->bidi_it after backing up to previous newline. (Bug#9212) - -2011-07-30 Andreas Schwab - - * regex.c (re_comp): Protoize. - (re_exec): Fix return type. - (regexec): Fix type of `ret'. (Bug#9203) - -2011-07-28 Paul Eggert - - * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189). - This is needed if max-image-size is a floating-point number. - -2011-07-28 Andreas Schwab - - * print.c (print_object): Print empty symbol as ##. - - * lread.c (read1): Read ## as empty symbol. - -2011-07-28 Alp Aker - - * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when - setting frame foreground color (Bug#9175). - (x_set_background_color): Likewise. - - * nsmenu.m (-setText): Size tooltip dimensions precisely to - contents (Bug#9176). - (EmacsTooltip -init): Remove bezels and add shadows to - tooltip windows. - - * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe - or scroll bar (Bug#8470). - - * nsfont.m (nsfont_open): Remove assignment to voffset and - unnecessary vars hshink, expand, hd, full_height, min_height. - (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913). - - * nsterm.h (nsfont_info): Remove voffset field. - -2011-07-28 Alp Aker - - Implement strike-through and overline on NextStep (Bug#8863). - - * nsfont.m (nsfont_open): Use underline position provided by font, - instead of hard-coded value of 2. - (nsfont_draw): Call ns_draw_text_decoration instead. - - * nsterm.h: Add declaration for ns_draw_text_decoration. - - * nsterm.m (ns_draw_text_decoration): New function for drawing - underline, overline, and strike-through. - (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to - ns_draw_text_decoration. Change treatment of cursor drawing to - accommodate underlining, etc. - -2011-07-28 Eli Zaretskii - - * buffer.c (init_buffer_once): Set bidi-display-reordering to t by - default. - -2011-07-28 Paul Eggert - - * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race. - Without this fix, if a signal arrives just after memory fills up, - 'malloc' might be invoked reentrantly. - - * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1. - In other words, assume that every image size is allowed, on non-X - hosts. This assumption is probably wrong, but it lets Emacs compile. - -2011-07-28 Andreas Schwab - - * regex.c (re_iswctype): Convert return values to boolean. - -2011-07-28 Eli Zaretskii - - * xdisp.c (compute_display_string_pos): Don't use cached display - string position if the buffer had its restriction changed. - (Bug#9184) - -2011-07-28 Paul Eggert - - * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering. - -2011-07-28 Paul Eggert - - Integer signedness and overflow and related fixes. (Bug#9079) - - * bidi.c: Integer size and overflow fixes. - (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx) - (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search) - (bidi_cache_find_level_change, bidi_cache_ensure_space) - (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack) - (bidi_find_other_level_edge): - Use ptrdiff_t instead of EMACS_INT where either will do. - This works better on 32-bit hosts configured --with-wide-int. - (bidi_cache_ensure_space): Check for size-calculation overflow. - Use % rather than repeated addition, for better worst-case speed. - Don't set bidi_cache_size until after xrealloc returns, because it - might not return. - (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow. - (bidi_cache_ensure_space): Also check that the bidi cache size - does not exceed that of the largest Lisp string or buffer. See Eli - Zaretskii in . - - * alloc.c (__malloc_size_t): Remove. - All uses replaced by size_t. See Andreas Schwab's note - . - - * image.c: Improve checking for integer overflow. - (check_image_size): Assume that f is nonnull, since - it is always nonnull in practice. This is one less thing to - worry about when checking for integer overflow later. - (x_check_image_size): New function, which checks for integer - overflow issues inside X. - (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it. - This removes the need for a memory_full check. - (xbm_image_p): Rewrite to avoid integer multiplication overflow. - (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size. - (xbm_read_bitmap_data): Change locals back to 'int', since - their values must fit in 'int'. - (xpm_load_image, png_load, tiff_load): - Invoke x_create_x_image_and_pixmap earlier, - to avoid much needless work if the image is too large. - (tiff_load): Treat overly large images as if - x_create_x_image_and_pixmap failed, not as malloc failures. - (gs_load): Use x_check_image_size. - - * gtkutil.c: Omit integer casts. - (xg_get_pixbuf_from_pixmap): Remove unnecessary cast. - (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast. - - * image.c (png_load): Don't assume height * row_bytes fits in 'int'. - - * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug. - Without this fix, (bitmap-spec-p '(34359738368 1 "x")) - would wrongly return t on a 64-bit host. - - * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros. - The plain *_OVERFLOW macros run afoul of GCC bug 49705 - - and therefore cause GCC to emit a bogus diagnostic in some cases. - - * image.c: Integer signedness and overflow and related fixes. - This is not an exhaustive set of fixes, but it's time to - record what I've got. - (lookup_pixel_color, check_image_size): Remove redundant decls. - (check_image_size): Don't assume that arbitrary EMACS_INT values - fit in 'int', or that arbitrary 'double' values fit in 'int'. - (x_alloc_image_color, x_create_x_image_and_pixmap, png_load) - (tiff_load, imagemagick_load_image): - Check for overflow in size calculations. - (x_create_x_image_and_pixmap): Remove unnecessary test for - xmalloc returning NULL; that can't happen. - (xbm_read_bitmap_data): Don't assume sizes fit into 'int'. - (xpm_color_bucket): Use better integer hashing function. - (xpm_cache_color): Don't possibly over-allocate memory. - (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory) - (gif_memory_source): - Use ptrdiff_t, not int or size_t, to record sizes. - (png_load): Don't assume values greater than 2**31 fit in 'int'. - (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when - either works, as we prefer signed integers. - (tiff_read_from_memory, tiff_write_from_memory): - Return tsize_t, not size_t, since that's what the TIFF API wants. - (tiff_read_from_memory): Don't fail simply because the read would - go past EOF; instead, return a short read. - (tiff_load): Omit no-longer-needed casts. - (Fimagemagick_types): Don't assume size fits into 'int'. - - Improve hashing quality when configured --with-wide-int. - * fns.c (hash_string): New function, taken from sxhash_string. - Do not discard information about ASCII character case; this - discarding is no longer needed. - (sxhash-string): Use it. Change sig to match it. Caller changed. - * lisp.h: Declare it. - * lread.c (hash_string): Remove, since we now use fns.c's version. - The fns.c version returns a wider integer if --with-wide-int is - specified, so this should help the quality of the hashing a bit. - - * emacs.c: Integer overflow minor fix. - (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed. - Define only if GNU_LINUX. - (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX. - - * dispnew.c: Integer signedness and overflow fixes. - Remove unnecessary forward decls, that were a maintenance hassle. - (history_tick): Now uprintmax_t, so it's more likely to avoid overflow. - All uses changed. - (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer) - (scrolling_window): Use ptrdiff_t, not int, for byte count. - (prepare_desired_row, line_draw_cost): - Use int, not unsigned, where either works. - (save_current_matrix, restore_current_matrix): - Use ptrdiff_t, not size_t, where either works. - (init_display): Check for overflow more accurately, and without - relying on undefined behavior. - - * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide): - Remove, replacing with the new symbols in lisp.h. All uses changed. - * fileio.c (make_temp_name): - * filelock.c (lock_file_1, lock_file): - * xdisp.c (message_dolog): - Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts. - Use pMd etc. instead. - * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros, - replacing the pWIDE etc. symbols removed from editfns.c. - - * keyboard.h (num_input_events): Now uintmax_t. - This is (very slightly) less likely to mess up due to wraparound. - All uses changed. - - * buffer.c: Integer signedness fixes. - (alloc_buffer_text, enlarge_buffer_text): - Use ptrdiff_t rather than size_t when either will do, as we prefer - signed integers. - - * alloc.c: Integer signedness and overflow fixes. - Do not impose an arbitrary 32-bit limit on malloc sizes when debugging. - (__malloc_size_t): Default to size_t, not to int. - (pure_size, pure_bytes_used_before_overflow, stack_copy_size) - (Fgarbage_collect, mark_object_loop_halt, mark_object): - Prefer ptrdiff_t to size_t when either would do, as we prefer - signed integers. - (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro. - (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer): - Now const. Initialize with values that are in range even if char - is signed. - (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ... - (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed. - These functions do the right thing with sizes > 2**32. - (check_depth): Now ptrdiff_t, not int. - (overrun_check_malloc, overrun_check_realloc, overrun_check_free): - Adjust to new way of storing sizes. Check for size overflow bugs - in rest of code. - (STRING_BYTES_MAX): Adjust to new overheads. The old code was - slightly wrong anyway, as it missed one instance of - XMALLOC_OVERRUN_CHECK_OVERHEAD. - (refill_memory_reserve): Omit needless cast to size_t. - (mark_object_loop_halt): Mark as externally visible. - - * xselect.c: Integer signedness and overflow fixes. - (Fx_register_dnd_atom, x_handle_dnd_message): - Use ptrdiff_t, not size_t, since we prefer signed. - (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow. - * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for - x_dnd_atoms_size and x_dnd_atoms_length. - - * doprnt.c: Prefer signed to unsigned when either works. - * eval.c (verror): - * doprnt.c (doprnt): - * lisp.h (doprnt): - * xdisp.c (vmessage): - Use ptrdiff_t, not size_t, when using or implementing doprnt, - since the sizes cannot exceed ptrdiff_t bounds anyway, and we - prefer signed arithmetic to avoid comparison confusion. - * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow, - but is a bit tricky. - - Assume freestanding C89 headers, string.h, stdlib.h. - * data.c, doprnt.c, floatfns.c, print.c: - Include float.h unconditionally. - * gmalloc.c: Assume C89-at-least behavior for preprocessor, - limits.h, stddef.h, string.h. Use memset instead of 'flood'. - * regex.c: Likewise for stddef.h, string.h. - (ISASCII): Remove; can assume it returns 1 now. All uses removed. - * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef. - * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H) - (STDC_HEADERS): Remove obsolete defines. - * sysdep.c: Include limits.h unconditionally. - - Assume support for memcmp, memcpy, memmove, memset. - * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset): - * regex.c (memcmp, memcpy): - Remove; we assume C89 now. - - * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now. - (__malloc_safe_bcopy): Remove; no longer needed. - - * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes. - Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally - well either way, and we prefer signed to unsigned. - -2011-07-27 Lars Magne Ingebrigtsen - - * gnutls.c (emacs_gnutls_read): Don't message anything if the peer - closes the connection while we're reading (bug#9182). - -2011-07-25 Jan Djärv - - * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons - are specified (Bug#9168). - -2011-07-25 Paul Eggert - - * bidi.c (bidi_dump_cached_states): Fix printf format mismatch. - Found by GCC static checking and --with-wide-int on a 32-bit host. - -2011-07-25 Eli Zaretskii - - * xdisp.c (compute_display_string_pos): Fix logic of caching - previous display string position. Initialize cached_prev_pos to - -1. Fixes slow-down at the beginning of a buffer. - -2011-07-24 Eli Zaretskii - - * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil' - for attrs[LFACE_FONTSET_INDEX]. - -2011-07-23 Paul Eggert - - * xml.c (parse_region): Remove unused local - that was recently introduced. - -2011-07-23 Eli Zaretskii - - * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in - 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca. - - * xdisp.c (move_it_in_display_line_to): Record the best matching - position for TO_CHARPOS while scanning the line, and restore it on - exit if none of the characters scanned was an exact match. - Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay - when exact match is impossible due to invisible text, and the - lines are truncated. - -2011-07-23 Jan Djärv - - * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask - for OSX >= 10.7. - -2011-07-22 Eli Zaretskii - - Fix a significant slow-down of cursor motion with C-n, C-p, - C-f/C-b, and C-v/M-v that couldn't keep up with keyboard - auto-repeat under bidi redisplay in fontified buffers. - * xdisp.c (compute_stop_pos_backwards): New function. - (next_element_from_buffer): Call compute_stop_pos_backwards to - find a suitable prev_stop when we find ourselves before - base_level_stop. - (reseat): Don't look for prev_stop, as that could mean a very long - run. - - : Cache for last found display string - position. - (compute_display_string_pos): Return the cached position if asked - about the same buffer in the same area of character positions, and - the buffer wasn't changed since the time the display string - position was cached. - -2011-07-22 Eli Zaretskii - - * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object - is an integer, which is important for empty lines. (Bug#9149) - -2011-07-22 Chong Yidong - - * frame.c (Fmodify_frame_parameters): In tty case, update the - default face if necessary (Bug#4238). - -2011-07-21 Chong Yidong - - * editfns.c (Fstring_to_char): No need to explain what a character - is in the docstring (Bug#6576). - -2011-07-20 Lars Magne Ingebrigtsen - - * xml.c (parse_region): Make sure we always return a tree. - -2011-07-20 HAMANO Kiyoto - - * xml.c (parse_region): If a document contains only comments, - return that, too. - -2011-07-20 Lars Magne Ingebrigtsen - - * xml.c (make_dom): Return comments, too. - -2011-07-19 Paul Eggert - - Port to OpenBSD. - See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html - and the surrounding thread. - * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar - rather than fgets, and retry after EINTR. Otherwise, 'emacs - --batch -f byte-compile-file' fails on OpenBSD if an inactivity - timer goes off. - * s/openbsd.h (BROKEN_SIGIO): Define. - * unexelf.c (unexec) [__OpenBSD__]: - Don't update the .mdebug section of the Alpha COFF symbol table. - -2011-07-19 Lars Magne Ingebrigtsen - - * lread.c (syms_of_lread): Clarify when `lexical-binding' is used - (bug#8460). - -2011-07-18 Paul Eggert - - * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask. - This fixes some race conditions on the permissions of any newly - created file. - - * alloc.c (valid_pointer_p): Use pipe, not open. - This fixes some permissions issues when debugging. - - * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002) - If fchown fails to set both uid and gid, try to set just gid, - as that is sometimes allowed. Adjust the file's mode to eliminate - setuid or setgid bits that are inappropriate if fchown fails. - -2011-07-18 Stefan Monnier - - * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ - to compare Lisp_Objects. - * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to - global_gnutls_log_level, don't mistake it for a Lisp_Object. - (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses. - -2011-07-17 Andreas Schwab - - * lread.c (read_integer): Unread even EOF character. - (read1): Likewise. Properly record start position of symbol. - - * lread.c (read1): Read `#:' as empty uninterned symbol if no - symbol character follows. - -2011-07-17 Paul Eggert - - * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002) - This works around a problem with the previous change to Fcopy_file. - Recent glibc declares fchown with __attribute__((warn_unused_result)), - and without this change, GCC might complain about discarding - fchown's return value. - -2011-07-16 Juanma Barranquero - - * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059). - -2011-07-16 Paul Eggert - - * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002) - -2011-07-16 Lars Magne Ingebrigtsen - - * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since - it's used from the C level. - - * process.c: Use the same condition for POLL_FOR_INPUT in both - keyboard.c and process.c (bug#1858). - -2011-07-09 Lawrence Mitchell - - * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable. - (Fgnutls_boot): Use it. - -2011-07-15 Andreas Schwab - - * doc.c (Fsubstitute_command_keys): Revert last change. - -2011-07-15 Lars Magne Ingebrigtsen - - * doc.c (Fsubstitute_command_keys): Clarify that \= really only - quotes the next character, and doesn't affect other longer - sequences (bug#8935). - - * lread.c (syms_of_lread): Clarify that is isn't only - `eval-buffer' and `eval-defun' that's affected by - `lexical-binding' (bug#8460). - -2011-07-15 Eli Zaretskii - - * xdisp.c (move_it_in_display_line_to): Fix vertical motion with - bidi redisplay when a line includes both an image and is truncated. - -2011-07-14 Paul Eggert - - Fix minor problems found by static checking. - * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t. - (elsz): Now a signed constant, not a size_t var. We prefer signed - types to unsigned, to avoid integer comparison confusion. Without - this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains - "cannot optimize loop, the loop counter may overflow", a symptom - of the confusion. - * indent.c (Fvertical_motion): Mark locals as initialized. - * xdisp.c (reseat_to_string): Fix pointer signedness issue. - -2011-07-14 Lars Magne Ingebrigtsen - - * search.c (Fre_search_backward): Mention `case-fold-search' in - all the re_search_* functions (bug#8138). - - * keyboard.c (Fopen_dribble_file): Document when the file is - closed (bug#8056). - -2011-07-14 Eli Zaretskii - - * bidi.c (bidi_dump_cached_states): Fix format of displaying - bidi_cache_idx. - - Support bidi reordering of display and overlay strings. - * xdisp.c (compute_display_string_pos) - (compute_display_string_end): Accept additional argument STRING. - (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL. - (reseat_to_string): Initialize bidi_it->string.s and - bidi_it->string.schars. - (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to - NULL (avoids a crash in bidi_paragraph_init). - Initialize itb.string.lstring. - (init_iterator): Call bidi_init_it only of a valid - buffer position was specified. Initialize paragraph_embedding to - L2R. - (reseat_to_string): Initialize the bidi iterator. - (display_string): If we need to ignore text properties of - LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The - original value of -1 will not work with bidi.) - (compute_display_string_pos): First arg is now struct - `text_pos *'; all callers changed. Support display properties on - Lisp strings. - (compute_display_string_end): Support display properties on Lisp - strings. - (init_iterator, reseat_1, reseat_to_string): Initialize the - string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS - when iterating on a string not from display properties). - (compute_display_string_pos, compute_display_string_end): - Fix calculation of the object to scan. Fixes an error when using - arrow keys. - (next_element_from_buffer): Don't abort when IT_CHARPOS is before - base_level_stop; instead, set base_level_stop to BEGV. - Fixes crashes in vertical-motion. - (next_element_from_buffer): Improve commentary for when - the iterator is before prev_stop. - (init_iterator): Initialize bidi_p from the default value of - bidi-display-reordering, not from buffer-local value. Use the - buffer-local value only if initializing for buffer iteration. - (handle_invisible_prop): Support invisible properties on strings - that are being bidi-reordered. - (set_iterator_to_next): Support bidi reordering of C strings and - Lisp strings. - (next_element_from_string): Support bidi reordering of Lisp - strings. - (handle_stop_backwards): Support Lisp strings as well. - (display_string): Support display of R2L glyph rows. - Use IT_STRING_CHARPOS when displaying from a Lisp string. - (init_iterator): Don't initialize it->bidi_p for strings - here. - (reseat_to_string): Initialize it->bidi_p for strings here. - (next_element_from_string, next_element_from_c_string) - (next_element_from_buffer): Add xassert's for correspondence - between IT's object being iterated and it->bidi_it.string - structure. - (face_before_or_after_it_pos): Support bidi iteration. - (next_element_from_c_string): Handle the case of the first string - character that is not the first one in the visual order. - (get_visually_first_element): New function, refactored from common - parts of next_element_from_buffer, next_element_from_string, and - next_element_from_c_string. - (tool_bar_lines_needed, redisplay_tool_bar) - (display_menu_bar): Force left-to-right direction. Add a FIXME - comment for making that be controlled by a user option. - (push_it, pop_it): Save and restore the state of the - bidi iterator. Save and restore the bidi_p flag. - (pop_it): Iterate out of display property for string iteration as - well. - (iterate_out_of_display_property): Support iteration over strings. - (handle_single_display_spec): Set up it->bidi_it for iteration - over a display string, and call bidi_init_it. - (handle_single_display_spec, next_overlay_string) - (get_overlay_strings_1, push_display_prop): Set up the bidi - iterator for displaying display or overlay strings. - (forward_to_next_line_start): Don't use the shortcut if - bidi-iterating. - (back_to_previous_visible_line_start): If handle_display_prop - pushed the iterator stack, restore the internal state of the bidi - iterator by calling bidi_pop_it same number of times. - (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero, - and we are bidi-iterating, don't decrement the iterator position; - instead, set the first_elt flag in the bidi iterator, to produce - the same effect. - (reseat_1): Remove redundant setting of string_from_display_prop_p. - (push_display_prop): xassert that we are iterating a buffer. - (push_it, pop_it): Save and restore paragraph_embedding member. - (handle_single_display_spec, next_overlay_string) - (get_overlay_strings_1, reseat_1, reseat_to_string) - (push_display_prop): Set up the `unibyte' member of bidi_it.string - correctly. Don't assume unibyte strings are not bidi-reordered. - (compute_display_string_pos) - (compute_display_string_end): Fix handling the case of C string. - (push_it, pop_it): Save and restore from_disp_prop_p. - (handle_single_display_spec, push_display_prop): Set the - from_disp_prop_p flag. - (get_overlay_strings_1): Reset the from_disp_prop_p flag. - (pop_it): Call iterate_out_of_display_property only if we are - popping after iteration over a string that came from a display - property. Fix a typo in popping stretch info. Add an assertion - for verifying that the iterator position is in sync with the bidi - iterator. - (handle_single_display_spec, get_overlay_strings_1) - (push_display_prop): Fix initialization of paragraph direction for - string when that of the parent object is not yet determined. - (reseat_1): Call bidi_init_it to resync the bidi - iterator with IT's position. (Bug#7616) - (find_row_edges): If ROW->start.pos gives position - smaller than min_pos, use it as ROW->minpos. (Bug#7616) - (handle_stop, back_to_previous_visible_line_start, reseat_1): - Reset the from_disp_prop_p flag. - (SAVE_IT, RESTORE_IT): New macros. - (pos_visible_p, face_before_or_after_it_pos) - (back_to_previous_visible_line_start) - (move_it_in_display_line_to, move_it_in_display_line) - (move_it_to, move_it_vertically_backward, move_it_by_lines) - (try_scrolling, redisplay_window, display_line): Use them when - saving a temporary copy of the iterator and restoring it back. - (back_to_previous_visible_line_start, reseat_1) - (init_iterator): Empty the bidi cache "stack". - (move_it_in_display_line_to): If iterator ended up at - EOL, but we never saw any buffer positions smaller than - to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor - motion in bidi-reordered lines. - (move_it_in_display_line_to): Record prev_method and prev_pos - immediately before the call to set_iterator_to_next. Fixes cursor - motion in bidi-reordered lines with stretch glyphs and strings - displayed in margins. (Bug#8133) (Bug#8867) - Return MOVE_POS_MATCH_OR_ZV only if iterator position is past - TO_CHARPOS. - (pos_visible_p): Support positions in bidi-reordered lines. - Save and restore bidi cache. - - * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int. - (bidi_paragraph_info): Delete unused struct. - (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT. - (bidi_cache_start): New variable. - (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not - to zero. - (bidi_cache_fetch_state, bidi_cache_search) - (bidi_cache_find_level_change, bidi_cache_iterator_state) - (bidi_cache_find, bidi_peek_at_next_level) - (bidi_level_of_next_char, bidi_find_other_level_edge) - (bidi_move_to_visually_next): Compare cache index with - bidi_cache_start rather than with zero. - (bidi_fetch_char): Accept new argument STRING; all callers - changed. Support iteration over a string. Support strings with - display properties. Support unibyte strings. Fix the type of - `len' according to what STRING_CHAR_AND_LENGTH expects. - (bidi_paragraph_init, bidi_resolve_explicit_1) - (bidi_resolve_explicit, bidi_resolve_weak) - (bidi_level_of_next_char, bidi_move_to_visually_next): - Support iteration over a string. - (bidi_set_sor_type, bidi_resolve_explicit_1) - (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit - can now be zero (for strings); special values 0 and -1 were - changed to -1 and -2, respectively. - (bidi_char_at_pos): New function. - (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak): - Call it instead of FETCH_MULTIBYTE_CHAR. - (bidi_move_to_visually_next): Abort if charpos or bytepos were not - initialized to valid values. - (bidi_init_it): Don't initialize charpos and bytepos with invalid - values. - (bidi_level_of_next_char): Allow the sentinel "position" to pass - the test for valid cached positions. Fix the logic for looking up - the sentinel state in the cache. GCPRO the Lisp string we are - iterating. - (bidi_push_it, bidi_pop_it): New functions. - (bidi_initialize): Initialize the bidi cache start stack pointer. - (bidi_cache_ensure_space): New function, refactored from part of - bidi_cache_iterator_state. Don't assume the required size is just - one BIDI_CACHE_CHUNK away. - (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE. - (bidi_count_bytes, bidi_char_at_pos): New functions. - (bidi_cache_search): Don't assume bidi_cache_last_idx is - always valid if bidi_cache_idx is valid. - (bidi_cache_find_level_change): xassert that bidi_cache_last_idx - is valid if it's going to be used. - (bidi_shelve_cache, bidi_unshelve_cache): New functions. - (bidi_cache_fetch_state, bidi_cache_search) - (bidi_cache_find_level_change, bidi_cache_ensure_space) - (bidi_cache_iterator_state, bidi_cache_find) - (bidi_find_other_level_edge, bidi_cache_start_stack): - All variables related to cache indices are now EMACS_INT. - - * dispextern.h (struct bidi_string_data): New structure. - (struct bidi_it): New member `string'. Make flag members be 1-bit - fields, and put them last in the struct. - (compute_display_string_pos, compute_display_string_end): - Update prototypes. - (bidi_push_it, bidi_pop_it): Add prototypes. - (struct iterator_stack_entry): New members bidi_p, - paragraph_embedding, and from_disp_prop_p. - (struct it): Member bidi_p is now a bit field 1 bit wide. - (bidi_shelve_cache, bidi_unshelve_cache): - Declare prototypes. - - * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector) - (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors - and vector-like objects. - - * dispnew.c (buffer_posn_from_coords): Save and restore the bidi - cache around display iteration. - - * window.c (Fwindow_end, window_scroll_pixel_based) - (displayed_window_lines, Frecenter): Save and restore the bidi - cache around display iteration. - -2011-07-14 Lars Magne Ingebrigtsen - - * editfns.c (Fdelete_region): Clarify the use of the named - parameters (bug#6788). - -2011-07-14 Martin Rudalics - - * indent.c (Fvertical_motion): Set and restore w->pointm when - saving and restoring the window's buffer (Bug#9006). - -2011-07-13 Lars Magne Ingebrigtsen - - * editfns.c (Fstring_to_char): Clarify just what is returned - (bug#6576). Text by Eli Zaretskii. - -2011-07-13 Juanma Barranquero - - * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059). - -2011-07-13 Eli Zaretskii - - * buffer.c (mmap_find): Fix a typo. - -2011-07-13 Johan Bockgård - - Fix execution of x selection hooks. - * xselect.c (Qx_lost_selection_functions) - (Qx_sent_selection_functions): New vars. - (syms_of_xselect): DEFSYM them. - (x_handle_selection_request): Pass Qx_sent_selection_functions - rather than Vx_sent_selection_functions to Frun_hook_with_args. - (x_handle_selection_clear,x_clear_frame_selections): - Pass Qx_lost_selection_functions rather than - Vx_lost_selection_functions to Frun_hook_with_args. - -2011-07-13 Paul Eggert - - * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking. - The old code sometimes used this field without initializing it. - - * alloc.c (gc_sweep): Don't read past end of array. - In theory, the old code could also have corrupted Emacs internals, - though it'd be very unlikely. - -2011-07-12 Andreas Schwab - - * character.c (Fcharacterp): Don't advertise optional ignored - argument. (Bug#4026) - -2011-07-12 Lars Magne Ingebrigtsen - - * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier - key" (bug#4257). - - * window.c (Fset_window_start): Doc fix (bug#4199). - (Fset_window_hscroll): Ditto. - -2011-07-12 Paul Eggert - - Fix minor new problems caught by GCC 4.6.1. - * term.c (init_tty): Remove unused local. - * xsettings.c (store_monospaced_changed): Define this function only - if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's - not used otherwise. - -2011-07-12 Chong Yidong - - * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300). - -2011-07-11 Lars Magne Ingebrigtsen - - * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows - are the mini-buffer and the echo area (bug#3320). - - * term.c (init_tty): Remove support for supdup, c10 and perq - terminals, which are no longer supported (bug#1482). - -2011-07-10 Johan Bockgård - - * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check. - -2011-07-10 Jan Djärv - - * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event - for non-popups (Bug#3642). - -2011-07-10 Andreas Schwab - - * alloc.c (reset_malloc_hooks): Protoize. - * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge) - (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise. - * cm.c (losecursor): Likewise. - * data.c (fmod): Likewise. - * dispnew.c (swap_glyphs_in_rows): Likewise. - * emacs.c (memory_warning_signal): Likewise. - * floatfns.c (float_error): Likewise. - * font.c (check_gstring, check_otf_features, otf_tag_symbol) - (otf_open, font_otf_capability, generate_otf_features) - (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor): - Likewise. - * image.c (pbm_read_file): Likewise. - * indent.c (string_display_width): Likewise. - * intervals.c (check_for_interval, search_for_interval) - (inc_interval_count, count_intervals, root_interval) - (adjust_intervals_for_insertion, make_new_interval): Likewise. - * lread.c (defalias): Likewise. - * ralloc.c (r_alloc_check): Likewise. - * regex.c (set_image_of_range_1, set_image_of_range) - (regex_grow_registers): Likewise. - * sysdep.c (strerror): Likewise. - * termcap.c (valid_filename_p, tprint, main): Likewise. - * tparam.c (main): Likewise. - * unexhp9k800.c (run_time_remap, save_data_space) - (update_file_ptrs, read_header, write_header, calculate_checksum) - (copy_file, copy_rest, display_header): Likewise. - * widget.c (mark_shell_size_user_specified, create_frame_gcs): - Likewise. - * xdisp.c (check_it): Likewise. - * xfaces.c (register_color, unregister_color, unregister_colors): - Likewise. - * xfns.c (print_fontset_result): Likewise. - * xrdb.c (member, fatal, main): Likewise. - -2011-07-10 Paul Eggert - - Fix minor problems found by static checking (Bug#9031). - * chartab.c (char_table_set_range, map_sub_char_table): - Remove unused locals. - (uniprop_table): Now static. - * composite.c (_work_char): Remove unused static var. - -2011-07-09 Juanma Barranquero - - * chartab.c (uniprop_table_uncompress): Remove unused local variable. - -2011-07-09 Jan Djärv - - * gtkutil.c (qttip_cb): Remove code without function. - -2011-07-09 Eli Zaretskii - - * w32.c (pthread_sigmask): New stub. - -2011-07-08 Paul Eggert - - Use pthread_sigmask, not sigprocmask (Bug#9010). - sigprocmask is portable only for single-threaded applications, and - Emacs can be multi-threaded when it uses GTK. - * Makefile.in (LIB_PTHREAD_SIGMASK): New macro. - (LIBES): Use it. - * callproc.c (Fcall_process): - * process.c (create_process): - * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask): - Use pthread_sigmask, not sigprocmask. - -2011-07-08 Jan Djärv - - * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget. - (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was - wrong (Bug#8591). - -2011-07-08 Jan Djärv - - * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment. - Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591). - (xg_hide_tooltip): Fix comment. - - * nsterm.m (initFrameFromEmacs): Don't use ns_return_types - in registerServicesMenuSendTypes. - (validRequestorForSendType): Don't check ns_return_types. - - * nsfns.m (Fx_open_connection): Put NSStringPboardType into - ns_return_type. - -2011-07-08 Jason Rumney - - * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than - SH_SHOW for hidden windows (Bug#5482). - - * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using - frame struct members of non-existent frames (Bug#6284). - -2011-07-08 Jan Djärv - - * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and - variable firstTime not needed on OSX >= 10.6. - (setPosition): setFloatValue:knobProportion: is deprecated on OSX - >= 10.5. Use setKnobProportion, setDoubleValue. - - * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4) - (MAC_OS_X_VERSION_10_5): Define if not defined. - (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6. - (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6. - (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. - - * nsmenu.m (fillWithWidgetValue): Don't use deprecated method - sizeToFit on OSX >= 10.2. - - * nsimage.m (allocInitFromFile): Don't use deprecated method - bestRepresentationForDevice on OSX >= 10.6. - - * nsfns.m (check_ns_display_info): Cast to long and use %ld in error - to avoid warning. - - * emacs.c: Declare unexec_init_emacs_zone. - - * nsgui.h: Fix compiler warning about gnulib redefining verify. - - * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842). - - * nsmenu.m (ns_update_menubar): Remove useless setDelegate call - on svcsMenu (Bug#8842). - - * nsfns.m (Fx_open_connection): Remove NSStringPboardType from - ns_return_types. - (Fns_list_services): Just return Qnil on 10.6, code not working there. - - * nsterm.m (QUTF8_STRING): Declare. - (initFrameFromEmacs): Call registerServicesMenuSendTypes. - (validRequestorForSendType): Return type is (id). - Change indexOfObjectIdenticalTo to indexOfObject. - Check if we have local selection before returning self (Bug#8842). - (writeSelectionToPasteboard): Put local selection into paste board - if we have a local selection (Bug#8842). - (syms_of_nsterm): DEFSYM QUTF8_STRING. - - * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m. - (ns_get_local_selection): Declare. - -2011-07-07 Lars Magne Ingebrigtsen - - * keymap.c (describe_map_tree): Don't insert a double newline at - the end of the buffer (bug#1169) and return whether we inserted - something. - - * callint.c (Fcall_interactively): Change "reading args" to - "providing args" to try to clarify what it does (bug#1010). - -2011-07-07 Kenichi Handa - - * composite.c (composition_compute_stop_pos): Ignore a static - composition starting before CHARPOS (Bug#8915). - - * xdisp.c (handle_composition_prop): Likewise. - -2011-07-07 Eli Zaretskii - - * term.c (produce_glyphs) : Allow IT_GLYPHLESS in it->what. - (Bug#9015) - -2011-07-07 Kenichi Handa - - * character.h (unicode_category_t): New enum type. - - * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types. - (Qchar_code_property_table): New variable. - (UNIPROP_TABLE_P, UNIPROP_GET_DECODER) - (UNIPROP_COMPRESSED_FORM_P): New macros. - (char_table_ascii): Uncompress the compressed values. - (sub_char_table_ref): New arg is_uniprop. Callers changed. - Uncompress the compressed values. - (sub_char_table_ref_and_range): Likewise. - (char_table_ref_and_range): Uncompress the compressed values. - (sub_char_table_set): New arg is_uniprop. Callers changed. - Uncompress the compressed values. - (sub_char_table_set_range): Args changed. Callers changed. - (char_table_set_range): Adjuted for the above change. - (map_sub_char_table): Delete args default_val and parent. Add arg - top. Give decoded values to a Lisp function. - (map_char_table): Adjust for the above change. Give decoded - values to a Lisp function. Gcpro more variables. - (uniprop_table_uncompress) - (uniprop_decode_value_run_length): New functions. - (uniprop_decoder, uniprop_decoder_count): New variables. - (uniprop_get_decoder, uniprop_encode_value_character) - (uniprop_encode_value_run_length, uniprop_encode_value_numeric): - New functions. - (uniprop_encoder, uniprop_encoder_count): New variables. - (uniprop_get_encoder, uniprop_table) - (Funicode_property_table_internal, Fget_unicode_property_internal) - (Fput_unicode_property_internal): New functions. - (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr - Sunicode_property_table_internal, Sget_unicode_property_internal, - and Sput_unicode_property_internal. Defvar_lisp - char-code-property-alist. - - * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of - Vunicode_category_table. - - * font.c (font_range): Adjust for the change of - Vunicode_category_table. - -2011-07-07 Dan Nicolaescu - - * m/iris4d.h: Remove file, move contents ... - * s/irix6-5.h: ... here. - -2011-07-06 Paul Eggert - - Remove unportable assumption about struct layout (Bug#8884). - * alloc.c (mark_buffer): - * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables) - (clone_per_buffer_values): Don't assume that - sizeof (struct buffer) is a multiple of sizeof (Lisp_Object). - This isn't true in general, and it's particularly not true - if Emacs is configured with --with-wide-int. - * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): - New macros, used in the buffer.c change. - -2011-07-05 Jan Djärv - - * xsettings.c: Use both GConf and GSettings if both are available. - (store_config_changed_event): Add comment. - (dpyinfo_valid, store_font_name_changed, map_tool_bar_style) - (store_tool_bar_style_changed): New functions. - (store_monospaced_changed): Add comment. Call dpyinfo_valid. - (struct xsettings): Move font inside HAVE_XFT. - (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines. - (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT. - Move inside HAVE_XFT. - (something_changed_gsettingsCB): Rename from something_changedCB. - Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME - also. - (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines. - (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT. - (something_changed_gconfCB): Rename from something_changedCB. - Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also. - (parse_settings): Move check for font inside HAVE_XFT. - (read_settings, apply_xft_settings): Add comment. - (read_and_apply_settings): Add comment. Call map_tool_bar_style and - store_tool_bar_style_changed. Move check for font inside HAVE_XFT and - call store_font_name_changed. - (xft_settings_event): Add comment. - (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE - and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT. - (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE - and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT. - (xsettings_initialize): Call init_gsettings last. - (xsettings_get_system_font, xsettings_get_system_normal_font): - Add comment. - -2011-07-05 Paul Eggert - - Random fixes. E.g., (random) never returned negative values. - * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the - subseconds part to the entropy, as that's a bit more random. - Prefer signed to unsigned, since the signedness doesn't matter and - in general we prefer signed. When given a limit, use a - denominator equal to INTMASK + 1, not to VALMASK + 1, because the - latter isn't right if USE_2_TAGS_FOR_INTS. - * sysdep.c (get_random): Return a value in the range 0..INTMASK, - not 0..VALMASK. Don't discard "excess" bits that random () returns. - -2011-07-04 Stefan Monnier - - * textprop.c (text_property_stickiness): - Obey Vtext_property_default_nonsticky. - (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky. - * w32fns.c (syms_of_w32fns): - * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default. - -2011-07-04 Paul Eggert - - * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR. - This is more efficient than Ffile_directory_p and avoids a minor race. - -2011-07-04 Lars Magne Ingebrigtsen - - * buffer.c (Foverlay_put): Say what the return value is - (bug#7835). - - * fileio.c (barf_or_query_if_file_exists): Check first if the file - is a directory before asking whether to use the file name - (bug#7564). - (barf_or_query_if_file_exists): Make the "File is a directory" - error be more correct. - - * fns.c (Frequire): Remove the mention of the .gz files, since - that's installation-specific, but keep the mention of - `get-load-suffixes'. - -2011-07-04 Paul Eggert - - * editfns.c (Fformat_time_string): Don't assume strlen fits in int. - Report string overflow if the output is too long. - -2011-07-04 Juanma Barranquero - - * gnutls.c (Fgnutls_boot): Don't mention :verify-error. - (syms_of_gnutls): Remove duplicate DEFSYM for - Qgnutls_bootprop_verify_hostname_error, an error for - Qgnutls_bootprop_verify_error (which is no longer used). - - * eval.c (find_handler_clause): Remove parameters `sig' and `data', - unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed. - Also (re)move comments that are misplaced or no longer relevant. - -2011-07-03 Lars Magne Ingebrigtsen - - * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813). - -2011-07-03 Chong Yidong - - * xfaces.c (Finternal_merge_in_global_face): Modify the foreground - and background color parameters if they have been changed. - -2011-07-03 Lars Magne Ingebrigtsen - - * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659). - -2011-07-03 Paul Eggert - - * xsettings.c (SYSTEM_FONT): Define only when used. - No need to define when HAVE_GSETTINGS || !HAVE_XFT. - - * keymap.c (access_keymap_1): Now static. - -2011-07-02 Chong Yidong - - * keyboard.c (command_loop_1): If a down-mouse event is unbound, - leave any prefix arg for the up event (Bug#1586). - -2011-07-02 Lars Magne Ingebrigtsen - - * lread.c (syms_of_lread): Mention single symbols defined by - `defvar' or `defconst' (bug#7154). - - * fns.c (Frequire): Mention .el.gz files (bug#7314). - (Frequire): Mention get-load-suffixes. - -2011-07-02 Martin Rudalics - - * window.h (window): Remove clone_number slot. - * window.c (Fwindow_clone_number, Fset_window_clone_number): - Remove. - (make_parent_window, make_window, saved_window) - (Fset_window_configuration, save_window_save): Don't deal with - clone numbers. - * buffer.c (Qclone_number): Remove declaration. - (sort_overlays, overlay_strings): Don't deal with clone numbers. - -2011-07-02 Stefan Monnier - - Add multiple inheritance to keymaps. - * keymap.c (Fmake_composed_keymap): New function. - (Fset_keymap_parent): Simplify. - (fix_submap_inheritance): Remove. - (access_keymap_1): New function extracted from access_keymap to handle - embedded parents and handle lists of maps. - (access_keymap): Use it. - (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap) - (Fcopy_keymap): Handle embedded parents. - (Fcommand_remapping, define_as_prefix): Simplify. - (Fkey_binding): Simplify. - (syms_of_keymap): Move minibuffer-local-completion-map, - minibuffer-local-filename-completion-map, - minibuffer-local-must-match-map, and - minibuffer-local-filename-must-match-map to Elisp. - (syms_of_keymap): Defsubr make-composed-keymap. - * keyboard.c (menu_bar_items): Use map_keymap_canonical. - (parse_menu_item): Trivial simplification. - -2011-07-01 Glenn Morris - - * Makefile.in (SETTINGS_LIBS): Fix typo. - -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). - -2011-07-01 Jan Djärv - - * xsettings.c (store_monospaced_changed): Take new font as arg and - check for change against current_mono_font. - (EMACS_TYPE_SETTINGS): Remove this and related defines. - (emacs_settings_constructor, emacs_settings_get_property) - (emacs_settings_set_property, emacs_settings_class_init) - (emacs_settings_init, gsettings_obj): Remove. - (something_changedCB): New function for HAVE_GSETTINGS. - (something_changedCB): HAVE_GCONF: Call store_monospaced_changed - with value as argument. - (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling - g_settings_new (Bug#8967). Do not create gsettings_obj. - Remove calls to g_settings_bind. Connect something_changedCB to - "changed". - - * xgselect.c: Add defined (HAVE_GSETTINGS). - (xgselect_initialize): Ditto. - - * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h - (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for - xg_select. - -2011-07-01 Paul Eggert - - * eval.c (struct backtrace): Simplify and port the data structure. - Do not assume that "int nargs : BITS_PER_INT - 2;" produces a - signed bit field, as this assumption is not portable and it makes - Emacs crash when compiled with Sun C 5.8 on sparc. Do not use - "char debug_on_exit : 1" as this is not portable either; instead, - use the portable "unsigned int debug_on_exit : 1". Remove unused - member evalargs. Remove obsolete comments about cc bombing out. - -2011-06-30 Jan Djärv - - * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS. - Let HAVE_GSETTINGS override HAVE_GCONF. - (store_monospaced_changed): New function. - (EMACS_SETTINGS): A new type derived from GObject to handle - GSettings notifications. - (emacs_settings_constructor, emacs_settings_get_property) - (emacs_settings_set_property, emacs_settings_class_init): - New functions. - (gsettings_client, gsettings_obj): New variables. - (GSETTINGS_SCHEMA): New define. - (something_changedCB): Call store_monospaced_changed. - (init_gsettings): New function. - (xsettings_initialize): Call init_gsettings. - (syms_of_xsettings): Initialize gsettings_client, gsettings_obj - to NULL. - - * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from - GCONF_CFLAGS/LIBS. - -2011-06-29 Martin Rudalics - - * window.c (resize_root_window, grow_mini_window) - (shrink_mini_window): Rename Qresize_root_window to - Qwindow_resize_root_window and Qresize_root_window_vertically to - Qwindow_resize_root_window_vertically. - -2011-06-28 Paul Eggert - - * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var. - -2011-06-27 Juanma Barranquero - - * makefile.w32-in: Redesign dependencies so they reflect more - clearly which files are directly included by each source file, - and not through other includes. - -2011-06-27 Martin Rudalics - - * buffer.c (Qclone_number): Declare static and DEFSYM it. - (sort_overlays, overlay_strings): When an overlay's clone number - matches the window's clone number process the overlay even if - the overlay's window property doesn't match the current window. - - * window.c (Fwindow_vchild): Rename to Fwindow_top_child. - (Fwindow_hchild): Rename to Fwindow_left_child. - (Fwindow_next): Rename to Fwindow_next_sibling. - (Fwindow_prev): Rename to Fwindow_prev_sibling. - (resize_window_check): Rename to window_resize_check. - (resize_window_apply): Rename to window_resize_apply. - (Fresize_window_apply): Rename to Fwindow_resize_apply. - (Fdelete_other_windows_internal, resize_frame_windows) - (Fsplit_window_internal, Fdelete_window_internal) - (grow_mini_window, shrink_mini_window) - (Fresize_mini_window_internal): Fix callers accordingly. - -2011-06-26 Jan Djärv - - * emacsgtkfixed.h: State that this is only used with Gtk+3. - (emacs_fixed_set_min_size): Remove. - (emacs_fixed_new): Take frame as argument. - - * emacsgtkfixed.c: State that this is only used with Gtk+3. - (_EmacsFixedPrivate): Remove minwidth/height. - Add struct frame *f. - (emacs_fixed_init): Initialize priv->f. - (get_parent_class, emacs_fixed_set_min_size): Remove. - (emacs_fixed_new): Set priv->f to argument. - (emacs_fixed_get_preferred_width) - (emacs_fixed_get_preferred_height): Use min_width/height from - frames size_hint to set minimum and natural (Bug#8919). - (XSetWMSizeHints, XSetWMNormalHints): Override these functions - and use min_width/height from frames size_hint to set - min_width/height (Bug#8919). - - * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new. - (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size. - Fix indentation. - -2011-06-26 Eli Zaretskii - - * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling - bidi_at_paragraph_end, since fast_looking_at doesn't like to be - called at ZV. - -2011-06-26 Chong Yidong - - * process.c (wait_reading_process_output): Bypass select if - waiting for a cell while ignoring keyboard input, and input is - pending. Suggested by Jan Djärv (Bug#8869). - -2011-06-25 Paul Eggert - - Use gnulib's dup2 module instead of rolling our own. - * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this. - -2011-06-25 YAMAMOTO Mitsuharu - - * dispnew.c (scrolling_window): Before scrolling, turn off a - mouse-highlight in the window being scrolled. - -2011-06-24 Juanma Barranquero - - Move DEFSYM to lisp.h and use everywhere. - - * character.h (DEFSYM): Move declaration... - * lisp.h (DEFSYM): ...here. - - * gnutls.c: - * minibuf.c: - * w32menu.c: - * w32proc.c: - * w32select.c: Don't include character.h. - - * alloc.c (syms_of_alloc): - * buffer.c (syms_of_buffer): - * bytecode.c (syms_of_bytecode): - * callint.c (syms_of_callint): - * casefiddle.c (syms_of_casefiddle): - * casetab.c (init_casetab_once): - * category.c (init_category_once, syms_of_category): - * ccl.c (syms_of_ccl): - * cmds.c (syms_of_cmds): - * composite.c (syms_of_composite): - * dbusbind.c (syms_of_dbusbind): - * dired.c (syms_of_dired): - * dispnew.c (syms_of_display): - * doc.c (syms_of_doc): - * editfns.c (syms_of_editfns): - * emacs.c (syms_of_emacs): - * eval.c (syms_of_eval): - * fileio.c (syms_of_fileio): - * fns.c (syms_of_fns): - * frame.c (syms_of_frame): - * fringe.c (syms_of_fringe): - * insdel.c (syms_of_insdel): - * keymap.c (syms_of_keymap): - * lread.c (init_obarray, syms_of_lread): - * macros.c (syms_of_macros): - * msdos.c (syms_of_msdos): - * print.c (syms_of_print): - * process.c (syms_of_process): - * search.c (syms_of_search): - * sound.c (syms_of_sound): - * syntax.c (init_syntax_once, syms_of_syntax): - * terminal.c (syms_of_terminal): - * textprop.c (syms_of_textprop): - * undo.c (syms_of_undo): - * w32.c (globals_of_w32): - * window.c (syms_of_window): - * xdisp.c (syms_of_xdisp): - * xfaces.c (syms_of_xfaces): - * xfns.c (syms_of_xfns): - * xmenu.c (syms_of_xmenu): - * xsettings.c (syms_of_xsettings): - * xterm.c (syms_of_xterm): Use DEFSYM. - -2011-06-24 Teodor Zlatanov - - * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h. - -2011-06-23 Paul Eggert - - Integer and buffer overflow fixes (Bug#8873). - - * print.c (printchar, strout): Check for string overflow. - (PRINTPREPARE, printchar, strout): - Don't set size unless allocation succeeds. - - * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int, - for sizes. Check for string overflow more accurately. - Simplify newline removal at end; this suppresses a GCC 4.6.0 warning. - - * macros.c: Integer and buffer overflow fixes. - * keyboard.h (struct keyboard.kbd_macro_bufsize): - * macros.c (Fstart_kbd_macro, store_kbd_macro_char): - Use ptrdiff_t, not int, for sizes. - Don't increment bufsize until after realloc succeeds. - Check for size-calculation overflow. - (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result. - - * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling. - - * lread.c: Integer overflow fixes. - (read_integer): Radix is now EMACS_INT, not int, - to improve quality of diagnostics for out-of-range radices. - Calculate buffer size correctly for out-of-range radices. - (read1): Check for integer overflow in radices, and in - read-circle numbers. - (read_escape): Avoid int overflow. - (Fload, openp, read_buffer_size, read1) - (substitute_object_recurse, read_vector, read_list, map_obarray): - Use ptrdiff_t, not int, for sizes. - (read1): Use EMACS_INT, not int, for sizes. - Check for size overflow. - - * image.c (cache_image): Check for size arithmetic overflow. - - * lread.c: Integer overflow issues. - (saved_doc_string_size, saved_doc_string_length) - (prev_saved_doc_string_size, prev_saved_doc_string_length): - Now ptrdiff_t, not int. - (read1): Don't assume doc string length fits in int. Check for - out-of-range doc string lengths. - (read_list): Don't assume file position fits in int. - (read_escape): Check for hex character overflow. - -2011-06-22 Leo Liu - - * minibuf.c (Fcompleting_read_default, Vcompleting_read_function): - Move to minibuffer.el. - -2011-06-22 Paul Eggert - - Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking. - The following patches are for when GLYPH_DEBUG && !XASSERT. - * dispextern.h (trace_redisplay_p, dump_glyph_string): - * dispnew.c (flush_stdout): - * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph): - Mark as externally visible. - * dispnew.c (check_window_matrix_pointers): Now static. - * dispnew.c (window_to_frame_vpos): - * xfns.c (unwind_create_frame): - * xterm.c (x_check_font): Remove unused local. - * scroll.c (CHECK_BOUNDS): - * xfaces.c (cache_fache): Rename local to avoid shadowing. - * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static. - * xdisp.c (check_window_end): Now a no-op if !XASSERTS. - (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos) - (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos): - Now static. - (debug_method_add): Use va_list and vsprintf rather than relying - on undefined behavior with wrong number of arguments. - (dump_glyph, dump_glyph_row, Fdump_glyph_matrix): - Don't assume ptrdiff_t and EMACS_INT are the same width as int. - In this code, it's OK to assume C99 behavior for ptrdiff_t formats - since we're not interested in debugging glyphs with old libraries. - * xfaces.c (cache_face): Move debugging code earlier; this pacifies - GCC 4.6.0's static checking. - -2011-06-22 Paul Eggert - - Integer overflow and signedness fixes (Bug#8873). - A few related buffer overrun fixes, too. - - * font.c (font_score): Use EMACS_INT, not int, to store XINT value. - - * dispextern.h (struct face.stipple): - * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap) - (x_bitmap_mask, x_allocate_bitmap_record) - (x_create_bitmap_from_data, x_create_bitmap_from_file) - (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask) - (x_create_bitmap_from_xpm_data): - * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last): - * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size) - (.bitmaps_last): - * xfaces.c (load_pixmap): - * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap): - * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size) - (.bitmaps_last, struct x_output.icon_bitmap): - Use ptrdiff_t, not int, for bitmap indexes. - (x_allocate_bitmap_record): Check for size overflow. - * dispextern.h, lisp.h: Adjust to API changes elsewhere. - - Use ptrdiff_t, not int, for overlay counts. - * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT): - * editfns.c (overlays_around, get_pos_property): - * textprop.c (get_char_property_and_overlay): - * xdisp.c (next_overlay_change, note_mouse_highlight): - * xfaces.c (face_at_buffer_position): - * buffer.c (OVERLAY_COUNT_MAX): New macro. - (overlays_at, overlays_in, sort_overlays, Foverlays_at) - (Fnext_overlay_change, Fprevious_overlay_change) - (mouse_face_overlay_overlaps, Foverlays_in): - Use ptrdiff_t, not int, for sizes. - (overlays_at, overlays_in): Check for size-calculation overflow. - - * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int. - - * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen. - (x_session_initialize): Do not assume string length fits in int. - - * xsettings.c (apply_xft_settings): Fix potential buffer overrun. - This is unlikely, but can occur if DPI is outlandish. - - * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font): - * xselect.c (Fx_get_atom_name): Avoid need for strlen. - - * xrdb.c: Don't assume strlen fits in int; avoid some strlens. - * xrdb.c (magic_file_p, search_magic_path): - Omit last arg SUFFIX; it was always 0. All callers changed. - (magic_file_p): Use ptrdiff_t, not int. Check for size overflow. - - * xfont.c (xfont_match): Avoid need for strlen. - - * xfns.c: Don't assume strlen fits in int. - (xic_create_fontsetname, x_window): Use ptrdiff_t, not int. - - * xdisp.c (message_log_check_duplicate): Return intmax_t, - not unsigned long, as we prefer signed integers. All callers changed. - Detect integer overflow in repeat count. - (message_dolog): Don't assume print length fits in 39 bytes. - (display_mode_element): Don't assume strlen fits in int. - - * termcap.c: Don't assume sizes fit in int and never overflow. - (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes. - (gobble_line): Check for size-calculation overflow. - - * minibuf.c (Fread_buffer): - * lread.c (intern, intern_c_string): - * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]: - Don't assume string length fits in int. - - * keyboard.c (parse_tool_bar_item): - * gtkutil.c (style_changed_cb): Avoid need for strlen. - - * font.c: Don't assume string length fits in int. - (font_parse_xlfd, font_parse_fcname, font_unparse_fcname): - Use ptrdiff_t, not int. - (font_intern_prop): Don't assume string length fits in int. - Don't assume integer property fits in fixnum. - * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int. - - * filelock.c: Fix some buffer overrun and integer overflow issues. - (get_boot_time): Don't assume gzip command string fits in 100 bytes. - Reformulate so as not to need the command string. - Invoke gzip -cd rather than gunzip, as it's more portable. - (lock_info_type, lock_file_1, lock_file): - Don't assume pid_t and time_t fit in unsigned long. - (LOCK_PID_MAX): Remove; we now use more-reliable bounds. - (current_lock_owner): Prefer signed type for sizes. - Use memcpy, not strncpy, where memcpy is what is really wanted. - Don't assume (via atoi) that time_t and pid_t fit in int. - Check for time_t and/or pid_t out of range, e.g., via a network share. - Don't alloca where an auto var works fine. - - * fileio.c: Fix some integer overflow issues. - (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name): - Don't assume string length fits in int. - (directory_file_name): Don't assume string length fits in long. - (make_temp_name): Don't assume pid fits in int, or that its print - length is less than 20. - - * data.c (Fsubr_name): Rewrite to avoid a strlen call. - - * coding.c (make_subsidiaries): Don't assume string length fits in int. - - * callproc.c (child_setup): Rewrite to avoid two strlen calls. - - * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT. - We prefer signed integers, even for size calculations. - - * emacs.c: Don't assume string length fits in 'int'. - (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int. - (main): Don't invoke strlen when not needed. - - * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string. - (XD_DEBUG_MESSAGE): Don't waste a byte. - - * callproc.c (getenv_internal_1, getenv_internal) - (Fgetenv_internal): - * buffer.c (init_buffer): Don't assume string length fits in 'int'. - - * lread.c (invalid_syntax): Omit length argument. - All uses changed. This doesn't fix a bug, but it simplifies the - code away from its former Hollerith-constant appearance, and it's - one less 'int' to worry about when looking at integer-overflow issues. - (string_to_number): Simplify 2011-04-26 change by invoking xsignal1. - - * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr). - This didn't break anything, but it didn't help either. - It's confusing to put a bogus integer in a place where the actual - value does not matter. - (LIST_END_P): Remove unused macro and its bogus comment. - (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT. - - * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT. - This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE, - implementation. - (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT. - We prefer signed types, and the value cannot exceed the EMACS_INT - range anyway (because otherwise the length would not be representable). - (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t, - not EMACS_UINT and EMACS_INT, when converting pointer to integer. - This avoids a GCC warning when WIDE_EMACS_INT. - - * indent.c (sane_tab_width): New function. - (current_column, scan_for_column, Findent_to, position_indentation) - (compute_motion): Use it. This is just for clarity. - (Fcompute_motion): Don't assume hscroll and tab offset fit in int. - - * image.c (xbm_image_p): Don't assume stated width, height fit in int. - - * lisp.h (lint_assume): New macro. - * composite.c (composition_gstring_put_cache): - * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0. - - * editfns.c, insdel.c: - Omit unnecessary forward decls, to simplify future changes. - - * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths. - - * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'. - - * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'. - Use much-faster test for byte-length change. - Don't assume string byte-length fits in 'int'. - Check that character arg fits in 'int'. - (mapcar1): Declare byte as byte, for clarity. - - * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication. - - * fns.c (concat): Catch string overflow earlier. - Do not rely on integer wraparound. - - * dispextern.h (struct it.overlay_strings_charpos) - (struct it.selective): Now EMACS_INT, not int. - * xdisp.c (forward_to_next_line_start) - (back_to_previous_visible_line_start) - (reseat_at_next_visible_line_start, next_element_from_buffer): - Don't arbitrarily truncate the value of 'selective' to int. - - * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0. - - * composite.c: Don't truncate sizes to 'int'. - (composition_gstring_p, composition_reseat_it) - (composition_adjust_point): Use EMACS_INT, not int. - (get_composition_id, composition_gstring_put_cache): Use EMACS_INT, - not EMACS_UINT, for indexes. - - * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT. - - * buffer.c: Include . - (struct sortvec.priority, struct sortstr.priority): - Now EMACS_INT, not int. - (compare_overlays, cmp_for_strings): Avoid subtraction overflow. - (struct sortstr.size, record_overlay_string) - (struct sortstrlist.size, struct sortlist.used): - Don't truncate size to int. - (record_overlay_string): Check for size-calculation overflow. - (init_buffer_once): Check at compile-time, not run-time. - -2011-06-22 Jim Meyering - - Don't leak an XBM-image-sized buffer - * image.c (xbm_load): Free the image buffer after using it. - -2011-06-21 Paul Eggert - - Port to Sun C. - * composite.c (find_automatic_composition): Omit needless 'return 0;' - that Sun C diagnosed. - * fns.c (secure_hash): Fix pointer signedness issue. - * intervals.c (static_offset_intervals): New function. - (offset_intervals): Use it. - -2011-06-21 Leo Liu - - * deps.mk (fns.o): - * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and - sha512.h. - - * fns.c (secure_hash): Rename from crypto_hash_function and change - the first arg to accept symbols. - (Fsecure_hash): New primitive. - (syms_of_fns): New symbols. - -2011-06-20 Deniz Dogan - - * process.c (Fset_process_buffer): Clarify return value in - docstring. - -2011-06-18 Chong Yidong - - * dispnew.c (add_window_display_history): Use BVAR. - - * xdisp.c (debug_method_add): Use BVAR. - (check_window_end, dump_glyph_matrix, dump_glyph) - (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C. - - * xfaces.c (check_lface_attrs, check_lface, dump_realized_face): - Likewise. - - * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache - check till after the cache is created in init_frame_faces. - -2011-06-17 Stefan Monnier - - * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup. - -2011-06-16 Paul Eggert - - * lisp.h: Include , for INT_MAX, LONG_MAX, LLONG_MAX. - Without this, prin1 mishandles Lisp_Misc_Save_Value printing on - hosts with pre-C99 libraries, because pD is wrongly defined to "t". - - Improve buffer-overflow checking (Bug#8873). - * fileio.c (Finsert_file_contents): - * insdel.c (insert_from_buffer_1, replace_range, replace_range_2): - Remove the old (too-loose) buffer overflow checks. - They weren't needed, since make_gap checks for buffer overflow. - * insdel.c (make_gap_larger): Catch buffer overflows that were missed. - The old code merely checked for Emacs fixnum overflow, and relied - on undefined (wraparound) behavior. The new code avoids undefined - behavior, and also checks for ptrdiff_t and/or size_t overflow. - - * editfns.c (Finsert_char): Don't dump core with very negative counts. - Tune. Don't use wider integers than needed. Don't use alloca. - Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test. - - * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing. - - * insdel.c, lisp.h (buffer_overflow): New function. - (insert_from_buffer_1, replace_range, replace_range_2): - * insdel.c (make_gap_larger): - * editfns.c (Finsert_char): - * fileio.c (Finsert_file_contents): Use it, to normalize wording. - - * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed. - -2011-06-15 Paul Eggert - - Integer overflow and signedness fixes (Bug#8873, Bug#8828). - - * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772. - (GET_CCL_RANGE, IN_INT_RANGE): Use it. - - * fileio.c: Don't assume EMACS_INT fits in off_t. - (emacs_lseek): New static function. - (Finsert_file_contents, Fwrite_region): Use it. - Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate. - - * fns.c (Fload_average): Don't assume 100 * load average fits in int. - - * fns.c: Don't overflow int when computing a list length. - * fns.c (QUIT_COUNT_HEURISTIC): New constant. - (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted - truncation on 64-bit hosts. Check for QUIT every - QUIT_COUNT_HEURISTIC entries rather than every other entry; that's - faster and is responsive enough. - (Flength): Report an error instead of overflowing an integer. - (Fsafe_length): Return a float if the value is not representable - as a fixnum. This shouldn't happen except in contrived situations. - (Fnthcdr, Fsort): Don't assume list length fits in int. - (Fcopy_sequence): Don't assume vector length fits in int. - - * alloc.c: Check that resized vectors' lengths fit in fixnums. - (header_size, word_size): New constants. - (allocate_vectorlike): Don't check size overflow here. - (allocate_vector): Check it here instead, since this is the only - caller of allocate_vectorlike that could cause overflow. - Check that the new vector's length is representable as a fixnum. - - * fns.c (next_almost_prime): Don't return a multiple of 3 or 5. - The previous code was bogus. For example, next_almost_prime (32) - returned 39, which is undesirable as it is a multiple of 3; and - next_almost_prime (24) returned 25, which is a multiple of 5 so - why was the code bothering to check for multiples of 7? - - * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length. - - * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now. - - Variadic C functions now count arguments with ptrdiff_t. - This partly undoes my 2011-03-30 change, which replaced int with size_t. - Back then I didn't know that the Emacs coding style prefers signed int. - Also, in the meantime I found a few more instances where arguments - were being counted with int, which may truncate counts on 64-bit - machines, or EMACS_INT, which may be unnecessarily wide. - * lisp.h (struct Lisp_Subr.function.aMANY) - (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): - Arg counts are now ptrdiff_t, not size_t. - All variadic functions and their callers changed accordingly. - (struct gcpro.nvars): Now size_t, not size_t. All uses changed. - * bytecode.c (exec_byte_code): Check maxdepth for overflow, - to avoid potential buffer overrun. Don't assume arg counts fit in 'int'. - * callint.c (Fcall_interactively): Check arg count for overflow, - to avoid potential buffer overrun. Use signed char, not 'int', - for 'varies' array, so that we needn't bother to check its size - calculation for overflow. - * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args. - * eval.c (apply_lambda): - * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length. - (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed. - (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args. - - * callint.c (Fcall_interactively): Don't use index var as event count. - - * vm-limit.c (check_memory_limits): Fix incorrect extern function decls. - * mem-limits.h (SIZE): Remove; no longer used. - - * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works. - - Remove unnecessary casts. - * xterm.c (x_term_init): - * xfns.c (x_set_border_pixel): - * widget.c (create_frame_gcs): Remove casts to unsigned long etc. - These aren't needed now that we assume ANSI C. - - * sound.c (Fplay_sound_internal): Remove cast to unsigned long. - It's more likely to cause problems (due to unsigned overflow) - than to cure them. - - * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts. - - * unexelf.c (unexec): Don't assume BSS addr fits in unsigned. - - * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned. - - * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX. - - * lisp.h (CHAR_TABLE_SET): Omit now-redundant test. - - * lread.c (Fload): Don't compare a possibly-garbage time_t value. - - GLYPH_CODE_FACE returns EMACS_INT, not int. - * dispextern.h (merge_faces): - * xfaces.c (merge_faces): - * xdisp.c (get_next_display_element, next_element_from_display_vector): - Don't assume EMACS_INT fits in int. - - * character.h (CHAR_VALID_P): Remove unused parameter. - * fontset.c, lisp.h, xdisp.c: All uses changed. - - * editfns.c (Ftranslate_region_internal): Omit redundant test. - - * fns.c (concat): Minor tuning based on overflow analysis. - This doesn't fix any bugs. Use int to hold character, instead - of constantly refetching from Emacs object. Use XFASTINT, not - XINT, for value known to be a character. Don't bother comparing - a single byte to 0400, as it's always less. - - * floatfns.c (Fexpt): - * fileio.c (make_temp_name): Omit unnecessary cast to unsigned. - - * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT - for characters. - - * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives. - - * data.c (Faset): If ARRAY is a string, check that NEWELT is a char. - Without this fix, on a 64-bit host (aset S 0 4294967386) would - incorrectly succeed when S was a string, because 4294967386 was - truncated before it was used. - - * chartab.c (Fchar_table_range): Use CHARACTERP to check range. - Otherwise, an out-of-range integer could cause undefined behavior - on a 64-bit host. - - * composite.c: Use int, not EMACS_INT, for characters. - (fill_gstring_body, composition_compute_stop_pos): Use int, not - EMACS_INT, for values that are known to be in character range. - This doesn't fix any bugs but is the usual style inside Emacs and - may generate better code on 32-bit machines. - - Make sure a 64-bit char is never passed to ENCODE_CHAR. - This is for reasons similar to the recent CHAR_STRING fix. - * charset.c (Fencode_char): Check that character arg is actually - a character. Pass an int to ENCODE_CHAR. - * charset.h (ENCODE_CHAR): Verify that the character argument is no - wider than 'int', as a compile-time check to prevent future regressions - in this area. - - * character.c (char_string): Remove unnecessary casts. - - Make sure a 64-bit char is never passed to CHAR_STRING. - Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform, - by silently ignoring the top 32 bits, allowing some values - that were far too large to be valid characters. - * character.h: Include . - (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character - arguments are no wider than unsigned, as a compile-time check - to prevent future regressions in this area. - * data.c (Faset): - * editfns.c (Fchar_to_string, general_insert_function, Finsert_char) - (Fsubst_char_in_region): - * fns.c (concat): - * xdisp.c (decode_mode_spec_coding): - Adjust to CHAR_STRING's new requirement. - * editfns.c (Finsert_char, Fsubst_char_in_region): - * fns.c (concat): Check that character args are actually - characters. Without this test, these functions did the wrong - thing with wildly out-of-range values on 64-bit hosts. - - Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts. - These casts should not be needed on 32-bit hosts, either. - * keyboard.c (read_char): - * lread.c (Fload): Remove casts to unsigned. - - * lisp.h (UNSIGNED_CMP): New macro. - This fixes comparison bugs on 64-bit hosts. - (ASCII_CHAR_P): Use it. - * casefiddle.c (casify_object): - * character.h (ASCII_BYTE_P, CHAR_VALID_P) - (SINGLE_BYTE_CHAR_P, CHAR_STRING): - * composite.h (COMPOSITION_ENCODE_RULE_VALID): - * dispextern.h (FACE_FROM_ID): - * keyboard.c (read_char): Use UNSIGNED_CMP. - - * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t, - not to EMACS_INT, to avoid GCC warning. - - * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals. - - * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast. - The cast incorrectly truncated 64-bit byte offsets to 32 bits, and - isn't needed on 32-bit machines. - - * buffer.c (Fgenerate_new_buffer_name): - Use EMACS_INT for count, not int. - (advance_to_char_boundary): Return EMACS_INT, not int. - - * data.c (Qcompiled_function): Now static. - - * window.c (window_body_lines): Now static. - - * image.c (gif_load): Rename local to avoid shadowing. - - * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow. - (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member. - * alloc.c (make_save_value): Integer argument is now of type - ptrdiff_t, not int. - (mark_object): Use ptrdiff_t, not int. - * lisp.h (pD): New macro. - * print.c (print_object): Use it. - - * alloc.c: Use EMACS_INT, not int, to count objects. - (total_conses, total_markers, total_symbols, total_vector_size) - (total_free_conses, total_free_markers, total_free_symbols) - (total_free_floats, total_floats, total_free_intervals) - (total_intervals, total_strings, total_free_strings): - Now EMACS_INT, not int. All uses changed. - (Fgarbage_collect): Compute overall total using a double, so that - integer overflow is less likely to be a problem. Check for overflow - when converting back to an integer. - (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks) - (n_vectors, n_symbol_blocks, n_marker_blocks): Remove. - These were 'int' variables that could overflow on 64-bit hosts; - they were never used, so remove them instead of repairing them. - (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'. - (inhibit_garbage_collection): Set gc_cons_threshold to max value. - Previously, this ceilinged at INT_MAX, but that doesn't work on - 64-bit machines. - (allocate_pseudovector): Don't use EMACS_INT when int would do. - - * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int. - (allocate_vectorlike): Check for ptrdiff_t overflow. - (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT - when a (possibly-narrower) signed value would do just as well. - We prefer using signed arithmetic, to avoid comparison confusion. - - * alloc.c: Catch some string size overflows that we were missing. - (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0, - for convenience in STRING_BYTES_MAX. - (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h. - The definition here is exact; the one in lisp.h was approximate. - (allocate_string_data): Check for string overflow. This catches - some instances we weren't catching before. Also, it catches - size_t overflow on (unusual) hosts where SIZE_MAX <= min - (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits - and ptrdiff_t and EMACS_INT are both 64 bits. - - * character.c, coding.c, doprnt.c, editfns.c, eval.c: - All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND. - * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX. - - * character.c (string_escape_byte8): Fix nbytes/nchars typo. - - * alloc.c (Fmake_string): Check for out-of-range init. - -2011-06-15 Stefan Monnier - - * eval.c (Fdefvaralias): Also mark the target as variable-special-p. - -2011-06-14 Jan Djärv - - * xfns.c (x_set_scroll_bar_default_width): Remove argument to - xg_get_default_scrollbar_width. - - * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3. - (int_gtk_range_get_value): Move to the scroll bar part of the file. - (style_changed_cb): Call update_theme_scrollbar_width and call - x_set_scroll_bar_default_width and xg_frame_set_char_size for - all frames (Bug#8505). - (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505). - Call gtk_window_set_resizable if HAVE_GTK3. - (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width - and height if HAVE_GTK3 (Bug#8505). - (scroll_bar_width_for_theme): New variable. - (update_theme_scrollbar_width): New function. - (xg_get_default_scrollbar_width): Move code to - update_theme_scrollbar_width, just return scroll_bar_width_for_theme. - (xg_initialize): Call update_theme_scrollbar_width. - - * gtkutil.h (xg_get_default_scrollbar_width): Remove argument. - - * emacsgtkfixed.c, emacsgtkfixed.h: New files. - -2011-06-12 Martin Rudalics - - * frame.c (make_frame): Call other_buffer_safely instead of - other_buffer. - - * window.c (temp_output_buffer_show): Call display_buffer with - second argument Vtemp_buffer_show_specifiers and reset latter - immediately after the call. - (Vtemp_buffer_show_specifiers): New variable. - (auto_window_vscroll_p, next_screen_context_lines) - (Vscroll_preserve_screen_position): Remove leading asterisks from - doc-strings. - -2011-06-12 Paul Eggert - - Fix minor problems found by GCC 4.6.0 static checking. - * buffer.c (Qclone_number): Remove for now, as it's unused. - (record_buffer, Funrecord_buffer): Rename local to avoid shadowing. - (record_buffer): Remove unused local. - * frame.c (other_visible_frames, frame_buffer_list): Now static. - (set_frame_buffer_list): Remove; unused. - * frame.h (other_visible_frames): Remove decl. - * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF. - * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls. - (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only - if HAVE_GPM. - * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF. - * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): - Define only if HAVE_GPM. - * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static. - (update_hints_inhibit): Remove; never set. All uses removed. - * widgetprv.h (emacsFrameClassRec): Remove decl. - * window.c (delete_deletable_window): Now returns void, since it - wasn't returning anything. - (compare_window_configurations): Remove unused locals. - * xfns.c (x_set_scroll_bar_default_width): Remove unused locals. - * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF. - (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers - the same widths as pointers. This follows up on the 2011-05-06 patch. - * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID. - * xterm.h: Likewise. - (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF. - -2011-06-12 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - (LISP_H): Add lib/intprops.h. - -2011-06-11 Chong Yidong - - * image.c (gif_load): Add animation frame delay to the metadata. - (syms_of_image): Use DEFSYM. New symbol `delay'. - -2011-06-11 Martin Rudalics - - * window.c (delete_deletable_window): Re-add. - (Fset_window_configuration): Rewrite to handle dead buffers and - consequently deletable windows. - (window_tree, Fwindow_tree): Remove. Supply functionality in - window.el. - (compare_window_configurations): Simplify code. - -2011-06-11 Andreas Schwab - - * image.c (imagemagick_load_image): Fix type mismatch. - (Fimagemagick_types): Likewise. - - * window.h (replace_buffer_in_windows): Declare. - -2011-06-11 Martin Rudalics - - * buffer.c: New Lisp objects Qbuffer_list_update_hook and - Qclone_number. Remove external declaration of Qdelete_window. - (Fbuffer_list): Rewrite doc-string. Minor restructuring of - code. - (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer): - Run Qbuffer_list_update_hook if allowed. - (Fother_buffer): Rewrite doc-string. Major rewrite for new - buffer list implementation. - (other_buffer_safely): New function. - (Fkill_buffer): Replace call to replace_buffer_in_all_windows by - calls to replace_buffer_in_windows and - replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook - if allowed. - (record_buffer): Inhibit quitting and rewrite using quittable - functions. Run Qbuffer_list_update_hook if allowed. - (Frecord_buffer, Funrecord_buffer): New functions. - (switch_to_buffer_1, Fswitch_to_buffer): Remove. - Move switch-to-buffer to window.el. - (bury-buffer): Move to window.el. - (Vbuffer_list_update_hook): New variable. - - * lisp.h (other_buffer_safely): Add prototype in buffer.c - section. - - * window.h (resize_frame_windows): Move up in code. - (Fwindow_frame): Remove EXFUN. - (replace_buffer_in_all_windows): Remove prototype. - (replace_buffer_in_windows_safely): Add prototype. - - * window.c: Declare Qdelete_window static again. Move down - declaration of select_count. - (Fnext_window, Fprevious_window): Rewrite doc-strings. - (Fother_window): Move to window.el. - (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER - cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case. - (Fdelete_windows_on, Freplace_buffer_in_windows): Move to - window.el. - (replace_buffer_in_windows): Implement by calling - Qreplace_buffer_in_windows. - (replace_buffer_in_all_windows): Remove with some functionality - moved into replace_buffer_in_windows_safely. - (replace_buffer_in_windows_safely): New function. - (select_window_norecord, select_frame_norecord): Move in front - of run_window_configuration_change_hook. Remove now obsolete - declarations. - (Fset_window_buffer): Rewrite doc-string. - Call Qrecord_window_buffer. - (keys_of_window): Move binding for other-window to window.el. - -2011-06-11 Chong Yidong - - * dispextern.h (struct image): Replace data member, whose int_val - and ptr_val fields were not used by anything, with a single - lisp_val object. - - * image.c (Fimage_metadata, make_image, mark_image, tiff_load) - (gif_clear_image, gif_load, imagemagick_load_image) - (gs_clear_image, gs_load): Callers changed. - -2011-06-10 Paul Eggert - - * buffer.h: Include , for time_t. - Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra. - - Fix minor problems found by static checking. - - * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't. - - Make identifiers static if they are not used in other modules. - * data.c (Qcompiled_function, Qframe, Qvector): - * image.c (QimageMagick, Qsvg): - * minibuf.c (Qmetadata): - * window.c (resize_window_check, resize_root_window): Now static. - * window.h (resize_window_check, resize_root_window): Remove decls. - - * window.c (window_deletion_count, delete_deletable_window): - Remove; unused. - (window_body_lines): Now static. - (Fdelete_other_windows_internal): Mark vars as initialized. - Make sure 'resize_failed' is initialized. - (run_window_configuration_change_hook): Rename local to avoid shadowing. - (resize_window_apply): Remove unused local. - * window.h (delete_deletable_window): Remove decl. - - * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing. - (imagemagick_load_image): Fix pointer signedness problem by changing - last arg from unsigned char * to char *. All uses changed. - Also, fix a local for similar reasons. - Remove unused locals. Remove locals to avoid shadowing. - (fn_rsvg_handle_free): Remove; unused. - (svg_load, svg_load_image): Fix pointer signedness problem. - (imagemagick_load_image): Don't use garbage pointer image_wand. - - * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals. - -2011-06-10 Chong Yidong - - * image.c (gif_load): Fix omitted cast error introduced by - 2011-06-06 change. - -2011-06-10 Martin Rudalics - - * window.h (resize_proportionally, orig_total_lines) - (orig_top_line): Remove from window structure. - (set_window_height, set_window_width, change_window_heights) - (Fdelete_window): Remove prototypes. - (resize_frame_windows): Remove duplicate declaration. - -2011-06-10 Eli Zaretskii - - * window.h (resize_frame_windows, resize_window_check) - (delete_deletable_window, resize_root_window) - (resize_frame_windows): Declare prototypes. - - * window.c (resize_window_apply): Make definition be "static" to - match the prototype. - -2011-06-10 Martin Rudalics - - * window.c: Remove declarations of Qwindow_size_fixed, - window_min_size_1, window_min_size_2, window_min_size, - size_window, window_fixed_size_p, enlarge_window, delete_window. - Remove static from declaration of Qdelete_window, it's - temporarily needed by Fbury_buffer. - (replace_window): Don't assign orig_top_line and - orig_total_lines. - (Fdelete_window, delete_window): Remove. Window deletion is - handled by window.el. - (window_loop): Remove DELETE_OTHER_WINDOWS case. - Replace Fdelete_window calls with calls to Qdelete_window. - (Fdelete_other_windows): Remove. Deleting other windows is - handled by window.el. - (window_fixed_size_p): Remove. Fixed-sizeness of windows is - handled in window.el. - (window_min_size_2, window_min_size_1, window_min_size): Remove. - Window minimum sizes are handled in window.el. - (shrink_windows, size_window, set_window_height) - (set_window_width, change_window_heights, window_height) - (window_width, CURBEG, CURSIZE, enlarge_window) - (adjust_window_trailing_edge, Fadjust_window_trailing_edge) - (Fenlarge_window, Fshrink_window): Remove. Window resizing is - handled in window.el. - (make_dummy_parent): Rename to make_parent_window and give it a - second argument horflag. - (make_window): Don't set resize_proportionally any more. - (Fsplit_window): Remove. Windows are split in window.el. - (save_restore_action, save_restore_orig_size) - (shrink_window_lowest_first, save_restore_orig_size): Remove. - Resize mini windows in window.el. - (grow_mini_window, shrink_mini_window): Implement by calling - Qresize_root_window_vertically, resize_window_check and - resize_window_apply. - (saved_window, Fset_window_configuration, save_window_save): - Do not handle orig_top_line, orig_total_lines, and - resize_proportionally. - (window_min_height, window_min_width): Move to window.el. - (keys_of_window): Move bindings for delete-other-windows, - split-window, delete-window and enlarge-window to window.el. - - * buffer.c: Temporarily extern Qdelete_window. - (Fbury_buffer): Temporarily call Qdelete_window instead of - Fdelete_window (Fbury_buffer will move to window.el soon). - - * frame.c (set_menu_bar_lines_1): Remove code handling - orig_top_line and orig_total_lines. - - * dispnew.c (adjust_frame_glyphs_initially): Don't use - set_window_height but set heights directly. - (change_frame_size_1): Use resize_frame_windows. - - * xdisp.c (init_xdisp): Don't use set_window_height but set - heights directly. - - * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines): - Use resize_frame_windows instead of change_window_heights and run - run_window_configuration_change_hook. - - * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows - instead of change_window_heights and run - run_window_configuration_change_hook. - -2011-06-09 Martin Rudalics - - * window.c (replace_window): Rename second argument REPLACEMENT to - NEW. New third argument SETFLAG. Rewrite. - (delete_window, make_dummy_parent): Call replace_window with - third argument 1. - (window_list_1): Move down in code. - (run_window_configuration_change_hook): Move set_buffer part - before select_frame_norecord part in order to unwind correctly. - Rename count1 to count. - (recombine_windows, delete_deletable_window, resize_root_window) - (Fdelete_other_windows_internal) - (Frun_window_configuration_change_hook, make_parent_window) - (resize_window_check, resize_window_apply, Fresize_window_apply) - (resize_frame_windows, Fsplit_window_internal) - (Fdelete_window_internal, Fresize_mini_window_internal): - New functions. - (syms_of_window): New variables Vwindow_splits and Vwindow_nest. - -2011-06-08 Martin Rudalics - - * window.h (window): Add some new members to window structure - - normal_lines, normal_cols, new_total, new_normal, clone_number, - splits, nest, prev_buffers, next_buffers. - (WINDOW_TOTAL_SIZE): Move here from window.c. - (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here. - - * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p): - Remove. - (make_dummy_parent): Set new members of windows structure. - (make_window): Move down in code. Handle new members of window - structure. - (Fwindow_clone_number, Fwindow_splits, Fset_window_splits) - (Fwindow_nest, Fset_window_nest, Fwindow_new_total) - (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers) - (Fset_window_prev_buffers, Fwindow_next_buffers) - (Fset_window_next_buffers, Fset_window_clone_number): - New functions. - (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start) - (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p): - Doc-string fixes. - (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter): - Argument WINDOW can be now internal window too. - (Fwindow_use_time): Move up in code. - (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES. - Rewrite doc-string. - (Fset_window_configuration, saved_window) - (Fcurrent_window_configuration, save_window_save): Handle new - members of window structure. - (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH) - (MIN_SAFE_WINDOW_HEIGHT): Move to window.h. - (syms_of_window): New Lisp objects Qrecord_window_buffer, - Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows, - Qget_mru_window, Qresize_root_window, - Qresize_root_window_vertically, Qsafe, Qabove, Qbelow, - Qauto_buffer_name; staticpro them. - -2011-06-07 Martin Rudalics - - * window.c (Fwindow_total_size, Fwindow_left_column) - (Fwindow_top_line, window_body_lines, Fwindow_body_size) - (Fwindow_list_1): New functions. - (window_box_text_cols): Replace with window_body_cols. - (Fwindow_width, Fscroll_left, Fscroll_right): - Use window_body_cols instead of window_box_text_cols. - (delete_window, Fset_window_configuration): - Call delete_all_subwindows with window as argument. - (delete_all_subwindows): Take a window as argument and not a - structure. Rewrite. - (window_loop): Remove handling of GET_LRU_WINDOW and - GET_LARGEST_WINDOW. - (Fget_lru_window, Fget_largest_window): Move to window.el. - - * window.h: Extern window_body_cols instead of - window_box_text_cols. delete_all_subwindows now takes a - Lisp_Object as argument. - - * indent.c (compute_motion, Fcompute_motion): - Use window_body_cols instead of window_box_text_cols. - - * frame.c (delete_frame): Call delete_all_subwindows with root - window as argument. - -2011-06-07 Daniel Colascione - - * fns.c (Fputhash): Document return value. - -2011-06-06 Chong Yidong - - * image.c (gif_load): Implement gif89a spec "no disposal" method. - -2011-06-06 Paul Eggert - - Cons<->int and similar integer overflow fixes (Bug#8794). - - Check for overflow when converting integer to cons and back. - * charset.c (Fdefine_charset_internal, Fdecode_char): - Use cons_to_unsigned to catch overflow. - (Fencode_char): Use INTEGER_TO_CONS. - * composite.h (LGLYPH_CODE): Use cons_to_unsigned. - (LGLYPH_SET_CODE): Use INTEGER_TO_CONS. - * data.c (long_to_cons, cons_to_long): Remove. - (cons_to_unsigned, cons_to_signed): New functions. - These signal an error for invalid or out-of-range values. - * dired.c (Ffile_attributes): Use INTEGER_TO_CONS. - * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER. - * font.c (Ffont_variation_glyphs): - * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS. - * lisp.h: Include . - (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros. - (cons_to_signed, cons_to_unsigned): New decls. - (long_to_cons, cons_to_long): Remove decls. - * undo.c (record_first_change): Use INTEGER_TO_CONS. - (Fprimitive_undo): Use CONS_TO_INTEGER. - * xfns.c (Fx_window_property): Likewise. - * xselect.c: Include . - (x_own_selection, selection_data_to_lisp_data): - Use INTEGER_TO_CONS. - (x_handle_selection_request, x_handle_selection_clear) - (x_get_foreign_selection, Fx_disown_selection_internal) - (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER. - (lisp_data_to_selection_data): Use cons_to_unsigned. - (x_fill_property_data): Use cons_to_signed. - Report values out of range. - - Check for buffer and string overflow more precisely. - * buffer.h (BUF_BYTES_MAX): New macro. - * lisp.h (STRING_BYTES_MAX): New macro. - * alloc.c (Fmake_string): - * character.c (string_escape_byte8): - * coding.c (coding_alloc_by_realloc): - * doprnt.c (doprnt): - * editfns.c (Fformat): - * eval.c (verror): - Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM, - since they may not be the same number. - * editfns.c (Finsert_char): - * fileio.c (Finsert_file_contents): - Likewise for BUF_BYTES_MAX. - - * image.c: Use ptrdiff_t, not int, for sizes. - (slurp_file): Switch from int to ptrdiff_t. - All uses changed. - (slurp_file): Check that file size fits in both size_t (for - malloc) and ptrdiff_t (for sanity and safety). - - * fileio.c (Fverify_visited_file_modtime): Avoid time overflow - if b->modtime has its maximal value. - - * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits. - - Don't assume time_t can fit into int. - * buffer.h (struct buffer.modtime): Now time_t, not int. - * fileio.c (Fvisited_file_modtime): No need for time_t cast now. - * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value. - - Minor fixes for signed vs unsigned integers. - * character.h (MAYBE_UNIFY_CHAR): - * charset.c (maybe_unify_char): - * keyboard.c (read_char, reorder_modifiers): - XINT -> XFASTINT, since the integer must be nonnegative. - * ftfont.c (ftfont_spec_pattern): - * keymap.c (access_keymap, silly_event_symbol_error): - XUINT -> XFASTINT, since the integer must be nonnegative. - (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT, - since it makes no difference and we prefer signed. - * keyboard.c (record_char): Use XUINT when all the neighbors do. - (access_keymap): NATNUMP -> INTEGERP, since the integer must be - nonnegative. - -2011-06-06 Stefan Monnier - - * window.h (Fwindow_frame): Declare. - -2011-06-06 Paul Eggert - - * alloc.c: Simplify handling of large-request failures (Bug#8800). - (SPARE_MEMORY): Always define. - (LARGE_REQUEST): Remove. - (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST. - -2011-06-06 Martin Rudalics - - * lisp.h: Move EXFUNS for Fframe_root_window, - Fframe_first_window and Fset_frame_selected_window to window.h. - - * window.h: Move EXFUNS for Fframe_root_window, - Fframe_first_window and Fset_frame_selected_window here from - lisp.h. - - * frame.c (Fwindow_frame, Fframe_first_window) - (Fframe_root_window, Fframe_selected_window) - (Fset_frame_selected_window): Move to window.c. - (Factive_minibuffer_window): Move to minibuf.c. - (Fother_visible_frames_p): New function. - - * minibuf.c (Factive_minibuffer_window): Move here from frame.c. - - * window.c (decode_window, decode_any_window): Move up in code. - (Fwindowp, Fwindow_live_p): Rewrite doc-strings. - (inhibit_frame_unsplittable): Remove unused variable. - (Fwindow_buffer): Move up and rewrite doc-string. - (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next) - (Fwindow_prev): New functions. - (Fwindow_frame): Move here from frame.c. Accept any window as - argument. - (Fframe_root_window, Fframe_first_window) - (Fframe_selected_window): Move here from frame.c. Accept frame - or arbitrary window as argument. Update doc-strings. - (Fminibuffer_window): Move up in code. - (Fwindow_minibuffer_p): Move up in code and simplify. - (Fset_frame_selected_window): Move here from frame.c. - Marginal rewrite. - (Fselected_window, select_window, Fselect_window): Move up in - code. Minor doc-string fixes. - -2011-06-06 Paul Eggert - - * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800). - Do not assume that spare memory exists; that assumption is valid - only if SYSTEM_MALLOC. - (LARGE_REQUEST): New macro, so that the issue of large requests - is separated from the issue of spare memory. - -2011-06-05 Andreas Schwab - - * editfns.c (Fformat): Correctly handle zero flag with hexadecimal - format. (Bug#8806) - - * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning. - - * xfns.c (x_set_scroll_bar_default_width): Move declarations - before statements. - -2011-06-05 Jan Djärv - - * gtkutil.c (xg_get_default_scrollbar_width): New function. - - * gtkutil.h: Declare xg_get_default_scrollbar_width. - - * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get - min width by calling x_set_scroll_bar_default_width (Bug#8505). - -2011-06-05 Juanma Barranquero - - * xdisp.c (single_display_spec_intangible_p): Remove declaration. - -2011-06-04 Chong Yidong - - * xselect.c (x_clipboard_manager_save): Remove redundant arg. - (x_clipboard_manager_save): Add return value. - (x_clipboard_manager_error_1, x_clipboard_manager_error_2): - New error handlers. - (x_clipboard_manager_save_frame, x_clipboard_manager_save_all): - Obey Vx_select_enable_clipboard_manager. Catch errors in - x_clipboard_manager_save (Bug#8779). - (Vx_select_enable_clipboard_manager): New variable. - (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790). - -2011-06-04 Dan Nicolaescu - - * emacs.c (main): Warn when starting a GTK emacs in daemon mode. - -2011-06-04 YAMAMOTO Mitsuharu - - * fringe.c (update_window_fringes): Don't update overlay arrow bitmap - in the current matrix if keep_current_p is non-zero. - -2011-06-04 Eli Zaretskii - - * bidi.c (bidi_level_of_next_char): Fix last change. - -2011-06-03 Eli Zaretskii - - Support bidi reordering of text covered by display properties. - - * bidi.c (bidi_copy_it): Use offsetof instead of emulating it. - (bidi_fetch_char, bidi_fetch_char_advance): New functions. - (bidi_cache_search, bidi_cache_iterator_state) - (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak) - (bidi_level_of_next_char, bidi_move_to_visually_next): - Support character positions inside a run of characters covered by a - display string. - (bidi_paragraph_init, bidi_resolve_explicit_1) - (bidi_level_of_next_char): Call bidi_fetch_char and - bidi_fetch_char_advance instead of FETCH_CHAR and - FETCH_CHAR_ADVANCE. - (bidi_init_it): Initialize new members. - (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro - definitions. - (bidi_explicit_dir_char): Lookup character type in bidi_type_table, - instead of using explicit *_CHAR codes. - (bidi_resolve_explicit, bidi_resolve_weak): - Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of - bidirectional text is supported only in multibyte buffers. - (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use - it to initialize the frame_window_p member of struct bidi_it. - (bidi_cache_iterator_state, bidi_resolve_explicit_1) - (bidi_resolve_explicit, bidi_resolve_weak) - (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if - bidi_it->nchars is non-positive. - (bidi_level_of_next_char): Don't try to lookup the cache for the - next/previous character if nothing is cached there yet, or if we - were just reseat()'ed to a new position. - - * xdisp.c (set_cursor_from_row): Set start and stop points - according to the row's direction when priming the loop that looks - for the glyph on which to display cursor. - (single_display_spec_intangible_p): Function deleted. - (display_prop_intangible_p): Reimplement to call - handle_display_spec instead of single_display_spec_intangible_p. - Accept 3 additional arguments needed by handle_display_spec. - This fixes incorrect cursor motion across display property with complex - values: lists, `(when COND...)' forms, etc. - (single_display_spec_string_p): Support property values that are - lists with the argument STRING its top-level element. - (display_prop_string_p): Fix the condition for processing a - property that is a list to be consistent with handle_display_spec. - (handle_display_spec): New function, refactored from the - last portion of handle_display_prop. - (compute_display_string_pos): Accept additional argument - FRAME_WINDOW_P. Call handle_display_spec to determine whether the - value of a `display' property is a "replacing spec". - (handle_single_display_spec): Accept 2 additional arguments BUFPOS - and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from - the display property, but just return a value indicating whether - the display property will replace the characters it covers. - (Fcurrent_bidi_paragraph_direction): Initialize the nchars and - frame_window_p members of struct bidi_it. - (compute_display_string_pos, compute_display_string_end): - New functions. - (push_it): Accept second argument POSITION, where pop_it should - jump to continue iteration. - (reseat_1): Initialize bidi_it.disp_pos. - - * keyboard.c (adjust_point_for_property): Adjust the call to - display_prop_intangible_p to its new signature. - - * dispextern.h (struct bidi_it): New member frame_window_p. - (bidi_init_it): Update prototypes. - (display_prop_intangible_p): Update prototype. - (compute_display_string_pos, compute_display_string_end): - Declare prototypes. - (struct bidi_it): New members nchars and disp_pos. ch_len is now - EMACS_INT. - -2011-06-02 Paul Eggert - - Malloc failure behavior now depends on size of allocation. - * alloc.c (buffer_memory_full, memory_full): New arg NBYTES. - * lisp.h: Change signatures accordingly. - * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c: - All callers changed. (Bug#8762) - - * gnutls.c: Use Emacs's memory allocators. - Without this change, the gnutls library would invoke malloc etc. - directly, which causes problems on non-SYNC_INPUT hosts, and which - runs afoul of improving memory_full behavior. (Bug#8761) - (fn_gnutls_global_set_mem_functions): New macro or function pointer. - (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc, - xfree instead of the default malloc, realloc, free. - (Fgnutls_boot): No need to check for memory allocation failure, - since xmalloc does that for us. - - Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771) - * category.c (hash_get_category_set): - * ccl.c (ccl_driver): - * charset.c (Fdefine_charset_internal): - * charset.h (struct charset.hash_index): - * composite.c (get_composition_id, gstring_lookup_cache) - (composition_gstring_put_cache): - * composite.h (struct composition.hash_index): - * dispextern.h (struct image.hash): - * fns.c (next_almost_prime, larger_vector, cmpfn_eql) - (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql) - (hashfn_equal, hashfn_user_defined, make_hash_table) - (maybe_resize_hash_table, hash_lookup, hash_put) - (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE) - (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector) - (Fsxhash, Fgethash, Fputhash, Fmaphash): - * image.c (make_image, search_image_cache, lookup_image) - (xpm_put_color_table_h): - * lisp.h (struct Lisp_Hash_Table): - * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion): - * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT' - for hashes and hash indexes, instead of 'unsigned' and 'int'. - * alloc.c (allocate_vectorlike): - Check for overflow in vector size calculations. - * ccl.c (ccl_driver): - Check for overflow when converting EMACS_INT to int. - * fns.c, image.c: Remove unnecessary static decls that would otherwise - need to be updated by these changes. - * fns.c (make_hash_table, maybe_resize_hash_table): - Check for integer overflow with large hash tables. - (make_hash_table, maybe_resize_hash_table, Fmake_hash_table): - Prefer the faster XFLOAT_DATA to XFLOATINT where either will do. - (SXHASH_REDUCE): New macro. - (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector): - Use it instead of discarding useful hash info with large hash values. - (sxhash_float): New function. - (sxhash): Use it. No more need for "& INTMASK" due to above changes. - * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc. - (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK): - Rewrite to use FIXNUM_BITS, as this simplifies things. - (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put): - Adjust signatures to match updated version of code. - (consing_since_gc): Now EMACS_INT, since a single hash table can - use more than INT_MAX bytes. - -2011-06-01 Dan Nicolaescu - - Make it possible to build with GCC-4.6+ -O2 -flto. - - * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE. - -2011-06-01 Stefan Monnier - - * minibuf.c (get_minibuffer, read_minibuf_unwind): - Call minibuffer-inactive-mode. - -2011-05-31 Juanma Barranquero - - * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)): - Update dependencies. - -2011-05-31 Dan Nicolaescu - - * data.c (init_data): Remove code for UTS, this system is not - supported anymore. - -2011-05-31 Dan Nicolaescu - - Don't force ./temacs to start in terminal mode. - - * frame.c (make_initial_frame): Initialize faces in all cases, not - only when CANNOT_DUMP is defined. - * dispnew.c (init_display): Remove CANNOT_DUMP condition. - -2011-05-31 Dan Nicolaescu - - * dispnew.c (add_window_display_history): Use const for the string - pointer. Remove declaration, not needed. - -2011-05-31 Paul Eggert - - Use 'inline', not 'INLINE'. - - * alloc.c, fontset.c (INLINE): Remove. - * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c: - * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c: - * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline. - * gmalloc.c (register_heapinfo): Use inline unconditionally. - * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__. - -2011-05-31 Dan Nicolaescu - - Make it possible to run ./temacs. - - * callproc.c (set_initial_environment): Remove CANNOT_DUMP code, - syms_of_callproc does the same thing. Remove test for - "initialized", do it in the caller. - * emacs.c (main): Avoid calling set_initial_environment when dumping. - -2011-05-31 Stefan Monnier - - * minibuf.c (Finternal_complete_buffer): Return `category' metadata. - (read_minibuf): Use get_minibuffer. - (syms_of_minibuf): Use DEFSYM. - (Qmetadata): New var. - * data.c (Qbuffer): Don't make it static. - (syms_of_data): Use DEFSYM. - -2011-05-31 Paul Eggert - - * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751) - (CCL_CODE_MIN): New macro. - -2011-05-30 Paul Eggert - - * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests. - - * eval.c (Qdebug): Now static. - * lisp.h (Qdebug): Remove decl. This reverts a part of the - 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of - 2011-04-14T06:48:41Z!eggert@cs.ucla.edu. - -2011-05-29 Chong Yidong - - * image.c: Various fixes to ImageMagick code comments. - (Fimagemagick_types): Doc fix. - -2011-05-29 Paul Eggert - - Minor fixes prompted by GCC 4.6.0 warnings. - - * xselect.c (converted_selections, conversion_fail_tag): Now static. - - * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h". - (x_clipboard_manager_save_all): Move extern decl to ... - * xterm.h: ... here, so that it can be checked for consistency. - -2011-05-29 Chong Yidong - - * xselect.c (x_clipboard_manager_save_frame) - (x_clipboard_manager_save_all): New functions. - (Fx_clipboard_manager_save): Lisp function deleted. - - * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all. - * frame.c (delete_frame): Call x_clipboard_manager_save_frame. - - * xterm.h: Update prototype. - -2011-05-28 William Xu - - * nsterm.m (ns_term_shutdown): Synchronize user defaults before - exiting (Bug#8239). - -2011-05-28 Jim Meyering - - Avoid a sign-extension bug in crypto_hash_function. - * fns.c (to_uchar): Define. - (crypto_hash_function): Use it to convert some newly-signed - variables to unsigned, to avoid sign-extension bugs. For example, - without this change, (md5 "truc") would evaluate to - 45723a2aff78ff4fff7fff1114760e62 rather than the expected - 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in - https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html. - -2011-05-27 Paul Eggert - - Integer overflow fixes. - - * dbusbind.c: Serial number integer overflow fixes. - (CHECK_DBUS_SERIAL_GET_SERIAL): New macro. - (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float - to hold a serial number that is too large for a fixnum. - (Fdbus_method_return_internal, Fdbus_method_error_internal): - Check for serial numbers out of range. Decode any serial number - that was so large that it became a float. (Bug#8722) - - * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg. - (Fdbus_call_method, Fdbus_call_method_asynchronously): - Use XFASTINT rather than XUINT when numbers are nonnegative. - (xd_append_arg, Fdbus_method_return_internal): - (Fdbus_method_error_internal): Likewise. Also, for unsigned - arguments, check that Lisp number is nonnegative, rather than - silently wrapping negative numbers around. (Bug#8722) - (xd_read_message_1): Don't assume dbus_uint32_t can fit in int. - (Bug#8722) - - * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT. - - * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'. - - ccl: Add integer overflow checks. - * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT): - (IN_INT_RANGE): New macros. - (ccl_driver): Use them to check for integer overflow when - decoding a CCL program. Many of the new checks are whether XINT (x) - fits in int; it doesn't always, on 64-bit hosts. The new version - doesn't catch all possible integer overflows, but it's an - improvement. (Bug#8719) - - * alloc.c (make_event_array): Use XINT, not XUINT. - There's no need for unsigned here. - - * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t - This follows up to the 2011-05-06 change that substituted uintptr_t - for EMACS_INT. This case wasn't caught back then. - - Rework Fformat to avoid integer overflow issues. - * editfns.c: Include unconditionally, as it's everywhere - now (part of C89). Include . - (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed. - (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns. - (Fformat): Avoid the prepass trying to compute sizes; it was only - approximate and thus did not catch overflow reliably. Instead, walk - through the format just once, formatting and computing sizes as we go, - checking for integer overflow at every step, and allocating a larger - buffer as needed. Keep track separately whether the format is - multibyte. Keep only the most-recently calculated precision, rather - than them all. Record whether each argument has been converted to - string. Use EMACS_INT, not int, for byte and char and arg counts. - Support field widths and precisions larger than INT_MAX. Avoid - sprintf's undefined behavior with conversion specifications such as %#d - and %.0c. Fix bug with strchr succeeding on '\0' when looking for - flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when - formatting out-of-range floating point numbers with int - formats. (Bug#8668) - - * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN. - - * data.c: Avoid integer truncation in expressions involving floats. - * data.c: Include . - (arith_driver): When there's an integer overflow in an expression - involving floating point, convert the integers to floating point - so that the resulting value does not suffer from catastrophic - integer truncation. For example, on a 64-bit host (* 4 - most-negative-fixnum 0.5) should yield about -4.6e+18, not zero. - Do not rely on undefined behavior after integer overflow. - - merge count_size_as_multibyte, parse_str_to_multibyte - * character.c, character.h (count_size_as_multibyte): - Rename from parse_str_to_multibyte; all uses changed. - Check for integer overflow. - * insdel.c, lisp.h (count_size_as_multibyte): Remove, - since it's now a duplicate of the other. This is more of - a character than a buffer op, so better that it's in character.c. - * fns.c, print.c: Adjust to above changes. - -2011-05-27 Stefan Monnier - - * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup. - -2011-05-27 Paul Eggert - - * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings. - (x_handle_selection_request, frame_for_x_selection): Remove unused vars. - (x_clipboard_manager_save): Now static. - (Fx_clipboard_manager_save): Rename local to avoid shadowing. - - * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings. - (crypto_hash_function): Now static. - Fix pointer signedness problems. Avoid unnecessary initializations. - -2011-05-27 Chong Yidong - - * termhooks.h (Vselection_alist): Make it terminal-local. - - * terminal.c (create_terminal): Initialize it. - - * xselect.c: Support for clipboard managers. - (Vselection_alist): Move to termhooks.h as terminal-local var. - (LOCAL_SELECTION): New macro. - (x_atom_to_symbol): Handle x_display_info_for_display fail case. - (symbol_to_x_atom): Remove gratuitous arg. - (x_handle_selection_request, lisp_data_to_selection_data) - (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed. - (x_own_selection, x_get_local_selection, x_convert_selection): - New arg, specifying work frame. Use terminal-local Vselection_alist. - (some_frame_on_display): Delete unused function. - (Fx_own_selection_internal, Fx_get_selection_internal) - (Fx_disown_selection_internal, Fx_selection_owner_p) - (Fx_selection_exists_p): New optional frame arg. - (frame_for_x_selection, Fx_clipboard_manager_save): New functions. - (x_handle_selection_clear): Don't treat other terminals with the - same keyboard specially. Use the terminal-local Vselection_alist. - (x_clear_frame_selections): Use Frun_hook_with_args. - - * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms. - - * xterm.h: Add support for those atoms. - -2011-05-26 Chong Yidong - - * xselect.c: ICCCM-compliant handling of MULTIPLE targets. - (converted_selections, conversion_fail_tag): New global variables. - (x_selection_request_lisp_error): Free the above. - (x_get_local_selection): Remove unnecessary code. - (x_reply_selection_request): Args changed; handle arbitrary array - of converted selections stored in converted_selections. - Separate the XChangeProperty and SelectionNotify steps. - (x_handle_selection_request): Rewrite to handle MULTIPLE target. - (x_convert_selection): New function. - (x_handle_selection_event): Simplify. - (x_get_foreign_selection): Don't ignore incoming requests while - waiting for an answer; this will fail when we implement - SAVE_TARGETS, and seems unnecessary anyway. - (selection_data_to_lisp_data): Recognize ATOM_PAIR type. - (Vx_sent_selection_functions): Doc fix. - -2011-05-26 Leo Liu - - * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699) - -2011-05-25 YAMAMOTO Mitsuharu - - * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p. - - * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row - for fringe update if it has periodic bitmap. - (row_equal_p): Also compare left_fringe_offset, right_fringe_offset, - and fringe_bitmap_periodic_p. - - * fringe.c (get_fringe_bitmap_data): New function. - (draw_fringe_bitmap_1, update_window_fringes): Use it. - (update_window_fringes): Record periodicity of fringe bitmap in glyph - row. Mark glyph row for fringe update if periodicity changed. - - * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row - for fringe update unless it has periodic bitmap. - -2011-05-25 Kenichi Handa - - * xdisp.c (get_next_display_element): Set correct it->face_id for - a static composition. - -2011-05-24 Leo Liu - - * deps.mk (fns.o): - * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h. - - * fns.c (crypto_hash_function, Fsha1): New function. - (Fmd5): Use crypto_hash_function. - (syms_of_fns): Add Ssha1. - -2011-05-22 Paul Eggert - - * gnutls.c: Remove unused macros. - (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function): - (fn_gnutls_transport_set_push_function) [!WINDOWSNT]: - Remove macros that are defined and never used. - Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14). - -2011-05-22 Chong Yidong - - * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS. - (Fx_get_selection_internal): Minor cleanup. - (Fx_own_selection_internal): Rename arguments for consistency with - select.el. - -2011-05-22 Paul Eggert - - * xselect.c (QSAVE_TARGETS): New static var, to fix build failure. - -2011-05-22 Chong Yidong - - * xselect.c (syms_of_xselect): Include character.h; use DEFSYM. - -2011-05-21 YAMAMOTO Mitsuharu - - * dispnew.c (scrolling_window): Don't exclude the case that the - last enabled row in the desired matrix touches the bottom boundary. - -2011-05-21 Glenn Morris - - * Makefile.in ($(etc)/DOC): Make second command line even shorter. - (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion, - and add some more files. - -2011-05-20 Eli Zaretskii - - * callproc.c (Fcall_process) [MSDOS]: Fix arguments to - report_file_error introduced by the change from 2011-05-07. - -2011-05-20 Paul Eggert - - * systime.h (Time): Define only if emacs is defined. - This is to allow ../lib-src/profile.c to be compiled on FreeBSD, - where the include path doesn't have X11/X.h by default. See - . - -2011-05-20 Kenichi Handa - - * composite.c (find_automatic_composition): Fix previous change. - -2011-05-20 Glenn Morris - - * lisp.mk: New file, split from Makefile.in. - * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@. - (shortlisp): Remove. - ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp. - -2011-05-19 Glenn Morris - - * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT) - (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT) - (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove. - (lisp): Set the order to that of loadup.el. - (shortlisp): Make it a copy of $lisp. - (SOME_MACHINE_LISP): Remove. - ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too. - Use just $shortlisp, not $SOME_MACHINE_LISP too. - -2011-05-18 Kenichi Handa - - * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency. - (BACKWARD_CHAR): Wrap the arg STOP by parenthesis. - (find_automatic_composition): Mostly rewrite for efficiency. - -2011-05-18 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - -2011-05-18 Christoph Scholtes - - * menu.c: Include limits.h (fixes the MS-Windows build broken by - 2011-06-18T18:49:19Z!cyd@stupidchicken.com). - -2011-05-18 Paul Eggert - - Fix some integer overflow issues, such as string length overflow. - - * insdel.c (count_size_as_multibyte): Check for string overflow. - - * character.c (lisp_string_width): Check for string overflow. - Use EMACS_INT, not int, for string indexes and lengths; in - particular, 2nd arg is now EMACS_INT, not int. Do not crash if - the resulting string length overflows an EMACS_INT; instead, - report a string overflow if no precision given. When checking for - precision exhaustion, use a check that cannot possibly have - integer overflow. (Bug#8675) - * character.h (lisp_string_width): Adjust to new signature. - - * alloc.c (string_overflow): New function. - (Fmake_string): Use it. This doesn't change behavior, but saves - a few bytes and will simplify future changes. - * character.c (string_escape_byte8): Likewise. - * lisp.h (string_overflow): New decl. - - Fixups, following up to the user-interface timestamp change. - * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time - for UI timestamps, instead of unsigned long. - * msdos.c (mouse_get_pos): Likewise. - * w32inevt.c (movement_time, w32_console_mouse_position): Likewise. - * w32gui.h (Time): Define by including "systime.h" rather than by - declaring it ourselves. (Bug#8664) - - * dispextern.h (struct image): Don't assume time_t <= unsigned long. - * image.c (clear_image_cache): Likewise. - - * term.c (term_mouse_position): Don't assume time_t wraparound. - - Be more systematic about user-interface timestamps. - Before, the code sometimes used 'Time', sometimes 'unsigned long', - and sometimes 'EMACS_UINT', to represent these timestamps. - This change causes it to use 'Time' uniformly, as that's what X uses. - This makes the code easier to follow, and makes it easier to catch - integer overflow bugs such as Bug#8664. - * frame.c (Fmouse_position, Fmouse_pixel_position): - Use Time, not unsigned long, for user-interface timestamps. - * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise. - (button_down_time, make_lispy_position, make_lispy_movement): Likewise. - * keyboard.h (last_event_timestamp): Likewise. - * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise. - * menu.h (xmenu_show): Likewise. - * term.c (term_mouse_position): Likewise. - * termhooks.h (struct input_event.timestamp): Likewise. - (struct terminal.mouse_position_hook): Likewise. - * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise. - * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise. - * systime.h (Time): New decl. Pull it in from if - HAVE_X_WINDOWS, otherwise define it as unsigned long, which is - what it was before. - * menu.h, termhooks.h: Include "systime.h", for Time. - - * keyboard.c (make_lispy_event): Fix problem in integer overflow. - Don't assume that the difference between two unsigned long values - can fit into an integer. At this point, we know button_down_time - <= event->timestamp, so the difference must be nonnegative, so - there's no need to cast the result if double-click-time is - nonnegative, as it should be; check that it's nonnegative, just in - case. This bug is triggered when events are more than 2**31 ms - apart (about 25 days). (Bug#8664) - - * xselect.c (last_event_timestamp): Remove duplicate decl. - (x_own_selection): Remove needless cast to unsigned long. - - * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes - that always fit in int. Use a sentinel instead of a counter, to - avoid a temp and to allay GCC's concerns about possible int overflow. - * frame.h (struct frame): Use int for menu_bar_items_used - instead of EMACS_INT, since it always fits in int. - - * menu.c (grow_menu_items): Check for int overflow. - - * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils. - - * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers. - Before, the code was not consistent. These values cannot exceed - 2**31 - 1 so there's no need to make them unsigned. - (x_x_to_emacs_modifiers): Accept int and return EMACS_INT. - (x_emacs_to_x_modifiers): Accept EMACS_INT and return int. - (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers - as modifiers. - * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change. - - * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT. - (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT. - Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)), - presumably because the widths might not match. - - * window.c (size_window): Avoid needless test at loop start. - -2011-05-18 Courtney Bane (tiny change) - - * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687). - -2011-05-12 Drew Adams - - * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655). - -2011-05-12 YAMAMOTO Mitsuharu - - * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and - `width' to `bar_area_x' and `bar_area_width', respectively. - (x_scroll_run): Take account of fringe background extension. - - * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]: - Rename local vars `left' and `width' to `bar_area_x' and - `bar_area_width', respectively. - (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe - background extension. - -2011-05-10 Jim Meyering - - * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the". - -2011-05-10 Juanma Barranquero - - * image.c (Finit_image_library): Return t for built-in image types, - like pbm and xbm. (Bug#8640) - -2011-05-09 Andreas Schwab - - * w32menu.c (set_frame_menubar): Fix submenu allocation. - -2011-05-07 Eli Zaretskii - - * w32console.c (Fset_screen_color): Doc fix. - (Fget_screen_color): New function. - (syms_of_ntterm): Defsubr it. - - * callproc.c (call_process_cleanup) [MSDOS]: Don't close and - unlink the temporary file if Fcall_process didn't create it in the - first place. - (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the - child process will be redirected to a file specified with `:file'. - Don't try to re-open tempfile in that case, and set fd[0] to -1 as - cue to call_process_cleanup not to close that handle. - -2011-05-07 Ben Key - - * makefile.w32-in: The bootstrap-temacs rule now makes use of - one of two shell specific rules, either bootstrap-temacs-CMD or - bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical - to the previous implementation of the bootstrap-temacs rule. - The bootstrap-temacs-CMD rule is similar to the previous - implementation of the bootstrap-temacs rule except that it - makes use of the ESC_CFLAGS variable instead of the CFLAGS - variable. - - These changes, along with some changes to nt/configure.bat, - nt/gmake.defs, and nt/nmake.defs, are required to extend my - earlier fix to add support for --cflags and --ldflags options - that include quotes so that it works whether make uses cmd or - sh as the shell. - -2011-05-06 Michael Albinus - - * dbusbind.c (QCdbus_type_unix_fd): Declare static. - (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it - is a constant. - (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or - a string. Handle both cases. - (Fdbus_call_method_asynchronously, Fdbus_register_signal) - (Fdbus_register_method): Use Qinvalid_function. - -2011-05-06 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - (LISP_H): Add inttypes.h and stdin.h. - (PROCESS_H): Add unistd.h. - -2011-05-06 Eli Zaretskii - - * lread.c: Include limits.h (fixes the MS-Windows build broken by - 2011-05-06T07:13:19Z!eggert@cs.ucla.edu). - -2011-05-06 Paul Eggert - - * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local. - - * term.c (vfatal): Remove stray call to va_end. - It's not needed and the C Standard doesn't allow it here anyway. - - Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux. - * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545) - - * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM - bytes. - - * term.c: Don't include , as does that. - - * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering. - - * process.c (Fformat_network_address): Fix typo: args2 -> *args2. - - * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times). - - * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601). - - * charset.h (struct charset.code_space): Now has 15 elements, not 16. - * charset.c (Fdefine_charset_internal): Don't initialize - charset.code_space[15]. The value was garbage, on hosts with - 32-bit int (Bug#8600). - - * lread.c (read_integer): Be more consistent with string-to-number. - Use string_to_number to do the actual conversion; this avoids - rounding errors and fixes some other screwups. Without this fix, - for example, #x1fffffffffffffff was misread as -2305843009213693952. - (digit_to_number): Move earlier, for benefit of read_integer. - Return -1 if the digit is out of range for the base, -2 if it is - not a digit in any supported base. (Bug#8602) - - * doprnt.c (doprnt): Support arbitrary pI values, such as "I64". - - * dispnew.c (scrolling_window): Return 1 if we scrolled, - to match comment at start of function. This also removes a - GCC warning about overflow in a 32+64-bit port. - - * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify. - - * dbusbind.c: Do not use XPNTR on a value that may be an integer. - Reported by Stefan Monnier in - . - (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): - Use SYMBOLP-guarded XSYMBOL, not XPNTR. - - * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t. - (EMACS_UINTPTR): Likewise, with uintptr_t. - - * lisp.h: Prefer 64-bit EMACS_INT if available. - (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit - on 32-bit hosts that have 64-bit int, so that they can access - large files. - However, temporarily disable this change unless the temporary - symbol WIDE_EMACS_INT is defined. - - * lread.c, process.c: Do not include ; lisp.h does it now. - - Prefer intptr_t/uintptr_t for integers the same widths as pointers. - This removes an assumption that EMACS_INT and long are the same - width as pointers. The assumption is true for Emacs porting targets - now, but we want to make other targets possible. - * lisp.h: Include , for INTPTR_MAX, UINTPTR_MAX. - (EMACS_INTPTR, EMACS_UINTPTR): New macros. - In the rest of the code, change types of integers that hold casted - pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically - replacing EMACS_INT, long, EMACS_UINT, and unsigned long. - (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed. - (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here. - No need to cast type when ORing. - (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR. - * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast. - * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to - assume EMACS_INT is the same width as char *. - * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb): - (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item): - Remove no-longer-needed casts. - (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback): - (xg_tool_bar_help_callback, xg_make_tool_item): - Use EMACS_INTPTR to hold an integer - that will be cast to void *; this can avoid a GCC warning - if EMACS_INT is not the same width as void *. - * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast. - * xdisp.c (display_echo_area_1, resize_mini_window_1): - (current_message_1, set_message_1): - Use a local to convert to proper width without a cast. - * xmenu.c (dialog_selection_callback): Likewise. - - * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long. - Also, don't assume VALBITS / RAND_BITS is less than 5, - and don't rely on undefined behavior when shifting a 1 left into - the sign bit. - * lisp.h (get_random): Change signature to match. - - * lread.c (hash_string): Use size_t, not int, for hash computation. - Normally we prefer signed values; but hashing is special, because - it's better to use unsigned division on hash table sizes so that - the remainder is nonnegative. Also, size_t is the natural width - for hashing into memory. The previous code used 'int', which doesn't - retain enough info to hash well into very large tables. - (oblookup, oblookup_last_bucket_number, Funintern): Likewise. - - * dbusbind.c: Don't possibly lose pointer info when converting. - (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): - Use XPNTR rather than XHASH, so that the high-order bits of - the pointer aren't lost when converting through void *. - - * eval.c (Fautoload): Don't double-shift a pointer. - - * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long. - -2011-05-06 Juanma Barranquero - - * gnutls.c (DEF_GNUTLS_FN): - * image.c (DEF_IMGLIB_FN): Make function pointers static. - -2011-05-05 Andreas Schwab - - * lread.c (lisp_file_lexically_bound_p): Stop scanning at end - marker. (Bug#8610) - -2011-05-05 Eli Zaretskii - - * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]: - New version that can reserve upto 2GB of heap space. - -2011-05-05 Chong Yidong - - * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534). - -2011-05-05 Teodor Zlatanov - - * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to - `gnutls_certificate_set_x509_key_file'. - -2011-05-05 Juanma Barranquero - - * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)): - Update dependencies. - -2011-05-04 Juanma Barranquero - - * gnutls.h (emacs_gnutls_write, emacs_gnutls_read): - * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): - Remove unused parameter `fildes'. - * process.c (read_process_output, send_process): Don't pass it. - -2011-05-04 Juanma Barranquero - - Fix previous change: the library cache is defined in w32.c. - * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop. - (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI". - -2011-05-04 Juanma Barranquero - - Implement dynamic loading of GnuTLS on Windows. - - * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro. - (emacs_gnutls_write, emacs_gnutls_read): Mark as extern. - (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno): - Declare. - - * gnutls.c (Qgnutls_dll): Define. - (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros. - (gnutls_*): Declare function pointers. - (init_gnutls_functions): New function to initialize function pointers. - (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit) - (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers. - (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno): - Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno. - (emacs_gnutls_write, emacs_gnutls_read) - (emacs_gnutls_handle_error, Fgnutls_error_fatalp) - (Fgnutls_available_p): New function. - (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers. - (syms_of_gnutls) : Initialize and staticpro it. - (syms_of_gnutls) : defsubr it. - - * image.c: Include w32.h. - (Vimage_type_cache): Delete. - (syms_of_image) : Don't initialize and staticpro it. - (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead. - (w32_delayed_load): Move to w32.c. - - * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare. - - * w32.c (QCloaded_from, Vlibrary_cache): Define. - (w32_delayed_load): Move from image.c. When loading a library, record - its filename in the :loaded-from property of the library id. - (globals_of_w32) : - Initialize and staticpro them. - (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions. - - * process.c: Include lisp.h before w32.h, not after. - (wait_reading_process_output): Call emacs_gnutls_record_check_pending - instead of gnutls_record_check_pending. - - * callproc.c, emacs.c: Include lisp.h before w32.h, not after. - -2011-05-04 Teodor Zlatanov - - * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options - instead of :keyfiles. Give GnuTLS the keylist and the CRL lists - as passed in. - -2011-05-03 Jan Djärv - - * xterm.c (x_set_frame_alpha): Do not set property on anything - else than FRAME_X_OUTER_WINDOW (Bug#8608). - -2011-05-02 Juanma Barranquero - - * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596) - -2011-05-02 Juanma Barranquero - - * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon) - (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again) - (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake) - (gnutls_global_initialized, Qgnutls_bootprop_priority) - (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles) - (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel) - (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags) - (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error) - (Qgnutls_bootprop_callbacks_verify): Make static. - -2011-05-01 Andreas Schwab - - * callproc.c: Indentation fixup. - - * sysdep.c (wait_for_termination_1): Make static. - (wait_for_termination, interruptible_wait_for_termination): - Move after wait_for_termination_1. - -2011-05-01 Lars Magne Ingebrigtsen - - * sysdep.c (interruptible_wait_for_termination): New function - which is like wait_for_termination, but allows keyboard - interruptions. - - * callproc.c (Fcall_process): Add (:file "file") as an option for - the STDOUT buffer. - (Fcall_process_region): Ditto. - -2011-04-30 Eli Zaretskii - - * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)' - rather than `XVECTOR (FOO)->size'. - - * process.c: Remove HAVE_INTTYPES_H condition from inclusion of - inttypes.h, as a gnulib replacement is used if it not available in - system headers. - -2011-04-21 Eli Zaretskii - - Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files. - * fileio.c (Finsert_file_contents): Don't limit file size to 1/4 - of MOST_POSITIVE_FIXNUM. (Bug#8528) - - * coding.c (coding_alloc_by_realloc): Error out if destination - will grow beyond MOST_POSITIVE_FIXNUM. - (decode_coding_emacs_mule): Abort if there isn't enough place in - charbuf for the composition carryover bytes. Reserve an extra - space for up to 2 characters produced in a loop. - (decode_coding_iso_2022): Abort if there isn't enough place in - charbuf for the composition carryover bytes. - -2011-04-21 Eli Zaretskii - - * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of - aborting when %lld or %lll format is passed. - [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when - %llo or %llx format is passed. (Bug#8545) - - * window.c (window_scroll_line_based): Use a marker instead of - simple variables to record original value of point. (Bug#7952) - - * doprnt.c (doprnt): Fix the case where a multibyte sequence - produced by %s or %c overflows available buffer space. (Bug#8545) - -2011-04-28 Paul Eggert - - * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545). - (SIZE_MAX): Move defn after all includes, as they might #define it. - -2011-04-28 Juanma Barranquero - - * w32.c (init_environment): Warn about defaulting HOME to C:\. - -2011-04-28 Juanma Barranquero - - * keyboard.c (Qdelayed_warnings_hook): Define. - (command_loop_1): Run `delayed-warnings-hook' - if Vdelayed_warnings_list is non-nil. - (syms_of_keyboard) : DEFSYM it. - (syms_of_keyboard) : DEFVAR_LISP it. - -2011-04-28 Eli Zaretskii - - * doprnt.c (doprnt): Don't return value smaller than the buffer - size if the message was truncated. (Bug#8545). - -2011-04-28 Juanma Barranquero - - * w32fns.c (Fx_change_window_property, Fx_delete_window_property) - (Fx_window_property): #if-0 the whole functions, not just the bodies. - -2011-04-27 Paul Eggert - - * doprnt.c (doprnt): Support "ll" length modifier, for long long. - -2011-04-27 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - -2011-04-27 Eli Zaretskii - - Improve `doprnt' and its usage. (Bug#8545) - * doprnt.c (doprnt): Make sure `format' is never accessed beyond - `format_end'. Remove support for %l as a conversion specifier. - Don't use xrealloc. Improve diagnostics when the %l size modifier - is used. Update the commentary. - - * eval.c (verror): Simplify calculation of size_t. - - * coding.c (Ffind_operation_coding_system): Fix diagnostic error - messages. - -2011-04-27 Yoshiaki Kasahara (tiny change) - - * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing - change. - -2011-04-27 Paul Eggert - - * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF. - This makes this file independent of the recent pseudovector change. - -2011-04-26 Paul Eggert - - * keyboard.c (handle_user_signal): Fix pointer signedness problem. - - * gnutls.c (emacs_gnutls_handle_error): Remove unused local. - (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *. - Remove unused local. - (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0. - - * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546) - GCC 4.6.0 optimizes based on type-based alias analysis. - For example, if b is of type struct buffer * and v of type struct - Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size - != &v->size, and therefore "v->size = 1; b->size = 2; return - v->size;" must therefore return 1. This assumption is incorrect - for Emacs, since it type-puns struct Lisp_Vector * with many other - types. To fix this problem, this patch adds a new type struct - vectorlike_header that documents the constraints on layout of vectors - and pseudovectors, and helps optimizing compilers not get fooled - by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE - XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons. - * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of - the size member. - (XSETPVECTYPE): Rewrite in terms of new macro. - (XSETPVECTYPESIZE): New macro, specifying both type and size. - This is a bit clearer, and further avoids the possibility of - undesirable aliasing. - (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size. - (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR. - (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE, - since Lisp_Subr is a special case (no "next" field). - (ASIZE): Now uses header.size rather than size. - All previous uses of XVECTOR (foo)->size replaced to use this macro, - to avoid the hassle of writing XVECTOR (foo)->header.size. - (struct vectorlike_header): New type. - (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the - object, to help avoid aliasing. - (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP. - (SUBRP): Likewise, since Lisp_Subr is a special case. - * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table): - (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector): - (struct Lisp_Hash_Table): Combine first two members into a single - struct vectorlike_header member. All uses of "size" and "next" members - changed to be "header.size" and "header.next". - * buffer.h (struct buffer): Likewise. - * font.h (struct font_spec, struct font_entity, struct font): Likewise. - * frame.h (struct frame): Likewise. - * process.h (struct Lisp_Process): Likewise. - * termhooks.h (struct terminal): Likewise. - * window.c (struct save_window_data, struct saved_window): Likewise. - * window.h (struct window): Likewise. - * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector): - Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems. - * buffer.c (init_buffer_once): Likewise. - * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a - special case. - * process.c (Fformat_network_address): Use local var for size, - for brevity. - - * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR. - - Make the Lisp reader and string-to-float more consistent (Bug#8525) - * data.c (atof): Remove decl; no longer used or needed. - (digit_to_number): Move to lread.c. - (Fstring_to_number): Use new string_to_number function, to be - consistent with how the Lisp reader treats infinities and NaNs. - Do not assume that floating-point numbers represent EMACS_INT - without losing information; this is not true on most 64-bit hosts. - Avoid double-rounding errors, by insisting on integers when - parsing non-base-10 numbers, as the documentation specifies. - * lisp.h (string_to_number): New decl, replacing ... - (isfloat_string): Remove. - * lread.c: Include , for uintmax_t and strtoumax. - (read1): Do not accept +. and -. as integers; this - appears to have been a coding error. Similarly, do not accept - strings like +-1e0 as floating point numbers. Do not report - overflow for integer overflows unless the base is not 10 which - means we have no simple and reliable way to continue. - Break out the floating-point parsing into a new - function string_to_number, so that Fstring_to_number parses - floating point numbers consistently with the Lisp reader. - (digit_to_number): Move here from data.c. Make it static inline. - (E_CHAR, EXP_INT): Remove, replacing with ... - (E_EXP): New macro, to solve the "1.0e+" problem mentioned below. - (string_to_number): New function, replacing isfloat_string. - This function checks for valid syntax and produces the resulting - Lisp float number too. Rework it so that string-to-number - no longer mishandles examples like "1.0e+". Use strtoumax, - so that overflow for non-base-10 numbers is reported only when - there's no portable and simple way to convert to floating point. - - * textprop.c (set_text_properties_1): Rewrite for clarity, - and to avoid GCC warning about integer overflow. - - * intervals.h (struct interval): Use EMACS_INT for members - where EMACS_UINT might cause problems. See - . - (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed. - * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT. - All uses changed. - (offset_intervals): Tell GCC not to worry about length overflow - when negating a negative length. - - * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static. - (overrun_check_free): Likewise. - - * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check - in the common case where SDATA_DATA_OFFSET is a multiple of Emacs - word size. - - * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10. - (gnutls_make_error): Rename local to avoid shadowing. - (gnutls_emacs_global_deinit): ifdef out; not used. - (Fgnutls_boot): Use const for pointer to readonly storage. - Comment out unused local. Fix pointer signedness problems. - - * lread.c (openp): Don't stuff size_t into an 'int'. - Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning - about possible signed overflow. - - * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10. - (GDK_KEY_g): Don't define if already defined. - (xg_prepare_tooltip): Avoid pointer signedness problem. - (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts. - - * process.c (Fnetwork_interface_info): Avoid left-shift undefined - behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts. - - * xfns.c (Fx_window_property): Simplify a bit, - to make a bit faster and to avoid GCC 4.6.0 warning. - * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise. - - * fns.c (internal_equal): Don't assume size_t fits in int. - - * alloc.c (compact_small_strings): Tighten assertion a little. - - Replace pEd with more-general pI, and fix some printf arg casts. - * lisp.h (pI): New macro, generalizing old pEd macro to other - conversion specifiers. For example, use "...%"pI"d..." rather - than "...%"pEd"...". - (pEd): Remove. All uses replaced with similar uses of pI. - * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise. - * alloc.c (check_pure_size): Don't overflow by converting size to int. - * bidi.c (bidi_dump_cached_states): Use pI to avoid cast. - * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort. - * dbusbind.c (xd_append_arg): Use pI to avoid cast. - (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise. - * font.c (font_unparse_xlfd): Avoid potential buffer overrun on - 64-bit hosts. - (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts. - * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts. - * print.c (safe_debug_print, print_object): Likewise. - (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT - to int. - Use pI instead of if-then-else-abort. Use %p to avoid casts, - avoiding the 0 flag, which is not portable. - * process.c (Fmake_network_process): Use pI to avoid cast. - * region-cache.c (pp_cache): Likewise. - * xdisp.c (decode_mode_spec): Likewise. - * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined - behavior on 64-bit hosts with printf arg. - * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag. - (x_stop_queuing_selection_requests): Likewise. - (x_get_window_property): Don't truncate byte count to an 'int' - when tracing. - - * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right - here, since it parses constructs like leading '-' and spaces, - which are not wanted; and it overflows with large numbers. - Instead, simply match F[0-9]+, which is what is wanted anyway. - - * alloc.c: Remove unportable assumptions about struct layout. - (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros. - (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data): - (allocate_vectorlike, make_pure_vector): Use the new macros, - plus offsetof, to remove unportable assumptions about struct layout. - These assumptions hold on all porting targets that I know of, but - they are not guaranteed, they're easy to remove, and removing them - makes further changes easier. - - * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks". - This doesn't fix a bug but makes the code clearer. - (string_overrun_cookie): Now const. Use initializers that - don't formally overflow signed char, to avoid warnings. - (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that - can cause Emacs to crash when string overrun checking is enabled. - (allocate_buffer): Don't assume sizeof (struct buffer) is a - multiple of sizeof (EMACS_INT); it need not be, if - alignof(EMACS_INT) < sizeof (EMACS_INT). - (check_sblock, check_string_bytes, check_string_free_list): Protoize. - -2011-04-26 Juanma Barranquero - - * keyboard.c (QCrtl): Rename from Qrtl. All uses changed. - -2011-04-26 Teodor Zlatanov - - * gnutls.c (emacs_gnutls_handshake): Return an error if we're not - supposed to be handshaking. (Bug#8556) - Reported by Paul Eggert . - -2011-04-26 Daniel Colascione - - * lisp.h (Qdebug): List symbol. - * eval.c (Qdebug): Restore global linkage. - * keyboard.c (debug-on-event): New variable. - (handle_user_signal): Break into debugger when debug-on-event - matches the current signal symbol. - -2011-04-25 Dan Nicolaescu - - * alloc.c (check_sblock, check_string_bytes) - (check_string_free_list): Convert to standard C. - -2011-04-25 Teodor Zlatanov - - * w32.c (emacs_gnutls_push): Fix typo. - -2011-04-25 Eli Zaretskii - - * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about - "cast to pointer from integer of different size". - - Improve doprnt and its use in verror. (Bug#8545) - * doprnt.c (doprnt): Document the set of format control sequences - supported by the function. Use SAFE_ALLOCA instead of always - using `alloca'. - - * eval.c (verror): Don't limit the buffer size at size_max-1, that - is one byte too soon. Don't use xrealloc; instead xfree and - xmalloc anew. - -2011-04-24 Teodor Zlatanov - - * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the - callbacks stage. - - * gnutls.c: Renamed global_initialized to - gnutls_global_initialized. Added internals for the - :verify-hostname-error, :verify-error, and :verify-flags - parameters of `gnutls-boot' and documented those parameters in the - docstring. Start callback support. - (emacs_gnutls_handshake): Add Woe32 support. Retry handshake - unless a fatal error occurred. Call gnutls_alert_send_appropriate - on error. Return error code. - (emacs_gnutls_write): Call emacs_gnutls_handle_error. - (emacs_gnutls_read): Likewise. - (Fgnutls_boot): Return handshake error code. - (emacs_gnutls_handle_error): New function. - (wsaerror_to_errno): Likewise. - - * w32.h (emacs_gnutls_pull): Add prototype. - (emacs_gnutls_push): Likewise. - - * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32. - (emacs_gnutls_push): Likewise. - -2011-04-24 Claudio Bley (tiny change) - - * process.c (wait_reading_process_output): Check if GnuTLS - buffered some data internally if no FDs are set for TLS - connections. - - * makefile.w32-in (OBJ2): Add gnutls.$(O). - (LIBS): Link to USER_LIBS. - ($(BLD)/gnutls.$(0)): New target. - -2011-04-24 Eli Zaretskii - - * xdisp.c (handle_single_display_spec): Rename the - display_replaced_before_p argument into display_replaced_p, to - make it consistent with the commentary. Fix typos in the - commentary. - - * textprop.c (syms_of_textprop): Remove dead code. - (copy_text_properties): Delete obsolete commentary about an - interface that was deleted long ago. Fix typos in the description - of arguments. - - * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list - to changes in oldXMenu/XMenu.h from 2011-04-16. - : Constify. - (IT_menu_make_room): menu->help_text is now `const char **'; - adjust. - - * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes - to changes in oldXMenu/XMenu.h from 2011-04-16. - (struct XMenu): Declare `help_text' `const char **'. - - * xfaces.c : Make extern again. - - * syntax.c: Include sys/types.h before including regex.h, as - required by POSIX. - - * doc.c (get_doc_string): Improve the format passed to `error'. - - * doprnt.c (doprnt): Improve commentary. - - * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal. - - * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan - them with etags. - - * makefile.w32-in (globals.h): Add a dummy recipe, to make any - changes in globals.h immediately force recompilation. - (TAGS): Depend on $(CURDIR)/m/intel386.h and - $(CURDIR)/s/ms-w32.h. - (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h. - - * character.c (Fchar_direction): Function deleted. - (syms_of_character): Don't defsubr it. - : Deleted. - -2011-04-23 Eli Zaretskii - - Fix doprnt so it could be used again safely in `verror'. (Bug#8435) - * doprnt.c: Include limits.h. - (SIZE_MAX): New macro. - (doprnt): Return a size_t value. 2nd arg is now size_t. - Many local variables are now size_t instead of int or unsigned. - Improve overflow protection. Support `l' modifier for integer - conversions. Support %l conversion. Don't assume an EMACS_INT - argument for integer conversions and for %c. - - * lisp.h (doprnt): Restore prototype. - - * makefile.w32-in ($(BLD)/callint.$(O)): Depend on - $(SRC)/character.h. - - * Makefile.in (base_obj): Add back doprnt.o. - - * deps.mk (doprnt.o): Add back prerequisites. - (callint.o): Depend on character.h. - - * eval.c (internal_lisp_condition_case): Include the handler - representation in the error message. - (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug - when breaking from the loop. - - * xdisp.c (vmessage): Call doprnt instead of vsnprintf. - - * callint.c (Fcall_interactively): When displaying error message - about invalid control letter, pass the character's codepoint, not - a pointer to its multibyte form. Improve display of the character - in octal and display also its hex code. - - * character.c (char_string): Use %x to display the (unsigned) - codepoint of an invalid character, to avoid displaying a bogus - negative value. - - * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to - `error', not SYMBOL_NAME itself. - - * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for - character arguments to `error'. - - * charset.c (check_iso_charset_parameter): Fix incorrect argument - to `error' in error message about FINAL_CHAR argument. Make sure - FINAL_CHAR is a character, and use %c when it is passed as - argument to `error'. - -2011-04-23 Eli Zaretskii - - * s/ms-w32.h (localtime): Redirect to sys_localtime. - - * w32.c: Include . - (sys_localtime): New function. - -2011-04-23 Chong Yidong - - * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451). - - * buffer.c (syms_of_buffer): Doc fix (Bug#6902). - -2011-04-23 Samuel Thibault (tiny change) - - * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on - zombies (Bug#8467). - -2011-04-19 Eli Zaretskii - - * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of - gl_state.e_property when gl_state.object is Qt. - - * insdel.c (make_gap_larger): Remove limitation of buffer size - to <= INT_MAX. - -2011-04-18 Chong Yidong - - * xdisp.c (lookup_glyphless_char_display) - (produce_glyphless_glyph): Handle cons cell entry in - glyphless-char-display. - (Vglyphless_char_display): Document it. - - * term.c (produce_glyphless_glyph): Handle cons cell entry in - glyphless-char-display. - -2011-04-17 Chong Yidong - - * xdisp.c (get_next_display_element): Remove unnecessary ifdefs. - - * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions. - - * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing - definition for no-X builds. - -2011-04-16 Paul Eggert - - Static checks with GCC 4.6.0 and non-default toolkits. - - * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl. - - * process.c (keyboard_bit_set): Define only if SIGIO. - (send_process_trap): Mark it with NO_RETURN if it doesn't return. - (send_process): Repair possible setjmp clobbering. - - * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'. - - * eval.c: Include , for vsnprintf on non-GNU/Linux hosts. - - * data.c (arith_error): Mark with NO_RETURN if it doesn't return. - - * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED): - Define only if needed. - - * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier - by pacifying GCC about it. Maybe it's time to retire it? - * xfaces.c (USG, __TIMEVAL__): Likewise. - - * dispextern.h (struct redisplay_interface): Rename param - to avoid shadowing. - * termhooks.h (struct terminal): Likewise. - * xterm.c (xembed_send_message): Likewise. - - * insdel.c (make_gap_smaller): Define only if - USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC. - - * keyboard.c (read_char): Make a var volatile so longjmp won't clobber - it. - - * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used, - so that we aren't warned about unused symbols. - - * xfns.c (Fx_file_dialog): Rename local to avoid shadowing. - - * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512). - - * xfns.c (x_real_positions): Mark locals as initialized. - - * xmenu.c (xmenu_show): Don't use uninitialized vars. - - * xterm.c: Fix problems found by static analysis with other toolkits. - (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT. - (x_dispatch_event): Declare static if USE_GTK, and - define if USE_GTK || USE_X_TOOLKIT. - (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK. - * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT. - * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only - if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK. - - * xmenu.c (menu_help_callback): Pointer type fixes. - Use const pointers when pointing at readonly data. Avoid pointer - signedness clashes. - (FALSE): Remove unused macro. - (update_frame_menubar): Remove unused decl. - - * xfns.c (Fx_hide_tip): Move locals to avoid shadowing. - - * menu.c (push_submenu_start, push_submenu_end): Do not define unless - USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI. - (single_menu_item): Rename local to avoid shadowing. - - * keyboard.c (make_lispy_event): Remove unused local var. - - * frame.c, frame.h (x_get_resource_string): Bring this back, but - only if HAVE_X_WINDOWS && !USE_X_TOOLKIT. - - * bitmaps: Change bitmaps from unsigned char back to the X11 - compatible char. Avoid the old compiler warnings about - out-of-range initializers by using, for example, '\xab' rather - than 0xab. - - * xgselect.c (xgselect_initialize): Check vs interface - even if ! (defined (USE_GTK) || defined (HAVE_GCONF)). - - * xmenu.c (xmenu_show): Rename parm to avoid shadowing. - - * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers - to read-only memory. - - * fns.c (vector): Remove; this old hack is no longer needed. - - * xsmfns.c (create_client_leader_window): Rename shadowing arg. - Remove unused var. - (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define. - - * xrdb.c (x_load_resources): Omit unused local. - - * xfns.c (free_frame_menubar, atof): Remove duplicate decls. - (x_window): Rename locals to avoid shadowing. - (USG): Use the kludged USG macro, to pacify gcc. - - * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused. - (x_term_init): Remove local to avoid shadowing. - - * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl. - - * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if - USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then. - -2011-04-16 Eli Zaretskii - - * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'. - - Fix regex.c, syntax.c and friends for buffers > 2GB. - * syntax.h (struct gl_state_s): Declare character position members - EMACS_INT. - - * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT. - - * textprop.c (verify_interval_modification, interval_of): - Declare arguments EMACS_INT. - - * intervals.c (adjust_intervals_for_insertion): Declare arguments - EMACS_INT. - - * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'. - - * indent.c (Fvertical_motion): Local variable it_start is now - EMACS_INT. - - * regex.c (re_match, re_match_2, re_match_2_internal) - (bcmp_translate, regcomp, regexec, print_double_string) - (group_in_compile_stack, re_search, re_search_2, regex_compile) - (re_compile_pattern, re_exec): Declare arguments and local - variables `size_t' and `ssize_t' and return values `regoff_t', as - appropriate. - (POP_FAILURE_REG_OR_COUNT) : Declare `long'. - (CHECK_INFINITE_LOOP) : Declare `ssize_t'. - : `size' and `avail' are now `size_t'. - - * regex.h : Use ssize_t, not int. - (re_search, re_search_2, re_match, re_match_2): Arguments that - specify buffer/string position and length are now ssize_t and - size_t. Return type is regoff_t. - -2011-04-16 Ben Key - - * nsfont.m: Fixed bugs in ns_get_family and - ns_descriptor_to_entity that were caused by using free to - deallocate memory blocks that were allocated by xmalloc (via - xstrdup). This caused Emacs to crash when compiled with - XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with - --enable-checking=xmallocoverrun). xfree is now used to - deallocate these memory blocks. - -2011-04-15 Paul Eggert - - * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT. - - emacs_write: Accept and return EMACS_INT for sizes. - See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html - et seq. - * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write): - Accept and return EMACS_INT. - (emacs_gnutls_write): Return the number of bytes written on - partial writes. - * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise. - (emacs_read, emacs_write): Remove check for negative size, as the - Emacs source code has been audited now. - * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs. - (emacs_read, emacs_write): Use it. - * process.c (send_process): Adjust to the new signatures of - emacs_write and emacs_gnutls_write. Do not attempt to store - a byte offset into an 'int'; it might overflow. - See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html - - * sound.c: Don't assume sizes fit in 'int'. - (struct sound_device.period_size, alsa_period_size): - Return EMACS_INT, not int. - (struct sound_device.write, vox_write, alsa_write): - Accept EMACS_INT, not int. - (wav_play, au_play): Use EMACS_INT to store sizes and to - record read return values. - -2011-04-15 Ben Key - - * keyboard.c (Qundefined): Don't declare static since it is used - in nsfns.m. - * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare - static since they are used in nsfont.m. - -2011-04-15 Stefan Monnier - - * process.c (Qprocessp): Don't declare static. - * lisp.h (Qprocessp): Declare again. - -2011-04-15 Juanma Barranquero - - * font.c (Qopentype): Don't make static (used from w32uniscribe.c). - -2011-04-14 Paul Eggert - - Improve C-level modularity by making more things 'static'. - - Don't publish debugger-only interfaces to other modules. - * lisp.h (safe_debug_print, debug_output_compilation_hack): - (verify_bytepos, count_markers): Move decls to the only modules - that need them. - * region-cache.h (pp_cache): Likewise. - * window.h (check_all_windows): Likewise. - * marker.c, print.c, region-cache.c, window.c: Decls moved here. - - * sysdep.c (croak): Now static, if - defined TIOCNOTTY || defined USG5 || defined CYGWIN. - * syssignal.h (croak): Declare only if not static. - - * alloc.c (refill_memory_reserve): Now static if - !defined REL_ALLOC || defined SYSTEM_MALLOC. - * lisp.h (refill_memory_reserve): Declare only if not static. - - * xsettings.c, xsettings.h (xsettings_get_system_normal_font): - Define only if USE_LUCID. - - * xrdb.c (x_customization_string, x_rm_string): Now static. - - * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF. - * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF. - - * xdisp.c (draw_row_with_mouse_face): Now static. - * dispextern.h (draw_row_with_mouse_fave): Remove decl. - - * window.h (check_all_windows): Mark externally visible. - - * window.c (window_deletion_count): Now static. - - * undo.c: Make symbols static if they're not exported. - (last_undo_buffer, last_boundary_position, pending_boundary): - Now static. - - * textprop.c (interval_insert_behind_hooks): Now static. - (interval_insert_in_front_hooks): Likewise. - - * term.c: Make symbols static if they're not exported. - (tty_turn_off_highlight, get_tty_terminal, max_frame_cols): - (max_frame_lines, tty_set_terminal_modes): - (tty_reset_terminal_modes, tty_turn_off_highlight): - (get_tty_terminal): Now static. - (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM. - * termhooks.h (term_mouse_moveto): Do not declare if - HAVE_WINDOW_SYSTEM. - * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes): - (tty_turn_off_highlight, get_tty_terminal): Remove decls. - - * sysdep.c: Make symbols static if they're not exported. - (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner): - Now static. - (sigprocmask_set, full_mask): Remove; unused. - (wait_debugging): Mark as visible. - * syssignal.h (SIGFULLMASK, full_mask): Remove decls. - * systty.h (emacs_get_tty, emacs_set_tty): Remove decls. - - * syntax.c (syntax_temp): Define only if !__GNUC__. - - * sound.c (current_sound_device, current_sound): Now static. - - * search.c (searchbufs, searchbuf_head): Now static. - - * scroll.c (scroll_cost): Remove; unused. - * dispextern.h (scroll_cost): Remove decl. - - * region-cache.h (pp_cache): Mark as externally visible. - - * process.c: Make symbols static if they're not exported. - (process_tick, update_tick, create_process, chan_process): - (Vprocess_alist, proc_buffered_char, datagram_access): - (fd_callback_data, send_process_frame, process_sent_to): Now static. - (deactivate_process): Mark defn as static, as well as decl. - * lisp.h (create_process): Remove decl. - * process.h (chan_process, Vprocess_alist): Remove decls. - - * print.c: Make symbols static if they're not exported. - (print_depth, new_backquote_output, being_printed, print_buffer): - (print_buffer_size, print_buffer_pos, print_buffer_pos_byte): - (print_interval, print_number_index, initial_stderr_stream): - Now static. - * lisp.h (Fprinc): Remove decl. - (debug_output_compilation_hack): Mark as externally visible. - - * sysdep.c (croak): Move decl from here to syssignal.h. - * syssignal.h (croak): Put it here, so the API can be checked when - 'croak' is called from dissociate_if_controlling_tty. - - * minibuf.c: Make symbols static if they're not exported. - (minibuf_save_list, choose_minibuf_frame): Now static. - * lisp.h (choose_minibuf_frame): Remove decl. - - * lisp.h (verify_bytepos, count_markers): Mark as externally visible. - - * lread.c: Make symbols static if they're not exported. - (read_objects, initial_obarray, oblookup_last_bucket_number): - Now static. - (make_symbol): Remove; unused. - * lisp.h (initial_obarray, make_symbol): Remove decls. - - * keyboard.c: Make symbols static if they're not exported. - (single_kboard, recent_keys_index, total_keys, recent_keys): - (this_command_key_count_reset, raw_keybuf, raw_keybuf_count): - (this_single_command_key_start, echoing, last_auto_save): - (read_key_sequence_cmd, dribble, recursive_edit_unwind): - (command_loop, echo_now, keyboard_init_hook, help_char_p): - (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer): - (Vlispy_mouse_stem, double_click_count): - Now static. - (force_auto_save_soon): Define only if SIGDANGER. - (ignore_mouse_drag_p): Now static if - !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS. - (print_help): Remove; unused. - (stop_character, last_timer_event): Mark as externally visible. - * keyboard.h (ignore_mouse_drag_p): Declare only if - defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS. - (echo_now, help_char_p, quit_throw_to_read_char): Remove decls. - * lisp.h (echoing): Remove decl. - (force_auto_save_soon): Declare only if SIGDANGER. - * xdisp.c (redisplay_window): Simplify code, to make it more - obvious that ignore_mouse_drag_p is not accessed if !defined - USE_GTK && !defined HAVE_NS. - - * intervals.c: Make symbols static if they're not exported. - (merge_properties_sticky, merge_interval_right, delete_interval): - Now static. - * intervals.h (merge_interval_right, delete_interval): Remove decls. - - * insdel.c: Make symbols static if they're not exported. - However, leave prepare_to_modify_buffer alone. It's never - called from outside this function, but that appears to be a bug. - (combine_after_change_list, combine_after_change_buffer): - (adjust_after_replace, signal_before_change): Now static. - (adjust_after_replace_noundo): Remove; unused. - * lisp.h (adjust_after_replace, adjust_after_replace_noundo): - (signal_before_change): Remove decls. - - * indent.c (val_compute_motion, val_vmotion): Now static. - - * image.c: Make symbols static if they're not exported. - * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare - if USE_GTK. - * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK. - (xpm_color_cache, ct_table, ct_colors_allocated): Now static. - - * fringe.c (standard_bitmaps): Now static. - (max_used_fringe_bitmap): Now static, unless HAVE_NS. - - * frame.c: Make symbols static if they're not exported. - (x_report_frame_params, make_terminal_frame): Now static. - (get_frame_param): Now static, unless HAVE_NS. - (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM. - (x_get_resource_string): Remove; not used. - * frame.h (make_terminal_frame, x_report_frame_params): - (x_get_resource_string); Remove decls. - (x_fullscreen_adjust): Declare only if WINDOWSNT. - * lisp.h (get_frame_param): Declare only if HAVE_NS. - - * font.c, fontset.c: Make symbols static if they're not exported. - * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro. - (FACE_SUITABLE_FOR_CHAR_P): Use it. - * font.c (font_close_object): Now static. - * font.h (font_close_object): Remove. - * fontset.c (FONTSET_OBJLIST): Remove. - (free_realized_fontset) #if-0 the body, which does nothing. - (face_suitable_for_char_p): #if-0, as it's never called. - * fontset.h (face_suitable_for_char_p): Remove decl. - * xfaces.c (face_at_string_position): - Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P, - since 0 is always ASCII. - - * fns.c (weak_hash_tables): Now static. - - * fileio.c: Make symbols static if they're not exported. - (auto_saving, auto_save_mode_bits, auto_save_error_occurred): - (Vwrite_region_annotation_buffers): Now static. - - * eval.c: Make symbols static if they're not exported. - (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static. - * lisp.h (backtrace_list): Remove decl. - - * emacs.c: Make symbols static if they're not exported. - (malloc_state_ptr, malloc_using_checking, syms_of_emacs): - (fatal_error_code, fatal_error_signal_hook, standard_args): - Now static. - (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL. - (DEFINE_DUMMY_FUNCTION): Mark function as externally visible. - (__CTOR_LIST__, __DTOR_LIST__): Now externally visible. - * lisp.h (fatal_error_signal_hook): Remove decl. - (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL. - - * editfns.c: Move a (normally-unused) function to its only use. - * editfns.c, lisp.h (get_operating_system_release): Remove. - * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not - worth the hassle of breaking this out. - - * xterm.c: Make symbols static if they're not exported. - (x_raise_frame, x_lower_frame, x_wm_set_window_state): - (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error): - (x_destroy_window, x_delete_display): - Now static. - (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT). - (x_mouse_leave): Remove; unused. - * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame): - (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap): - (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes): - Remove decls. - (x_mouse_leave): Declare only if WINDOWSNT. - (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT. - (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS && - USE_X_TOOLKIT. - - * ftxfont.c: Make symbols static if they're not exported. - (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined - HAVE_FREETYPE. - * font.h (ftxfont_driver): Likewise. - - * xfns.c: Make symbols static if they're not exported. - (x_last_font_name, x_display_info_for_name): - (x_set_foreground_color, x_set_background_color, x_set_mouse_color): - (x_set_cursor_color, x_set_border_pixel, x_set_border_color): - (x_set_cursor_type, x_set_icon_type, x_set_icon_name): - (x_set_scroll_bar_foreground, x_set_scroll_bar_background): - (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer): - (last_show_tip_args): Now static. - (xic_defaut_fontset, xic_create_fontsetname): Define only if - defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT - (x_screen_planes): Remove; unused. - * dispextern.h (x_screen_planes): Remove decl. - - * dispnew.c: Make symbols static if they're not exported. - * dispextern.h (redraw_garbaged_frames, scrolling): - (increment_row_positions): Remove. - * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling): - (delayed_size_change, glyph_matrix_count, glyph_pool_count): - Now static. - (redraw_garbaged_frames): Remove; unused. - - * xfaces.c: Make symbols static if they're not exported. - * dispextern.h (ascii_face_of_lisp_face, free_realized_face): - Remove decls. - * xterm.h (defined_color): Remove decls. - (x_free_dpy_colors): Declare only if USE_X_TOOLKIT. - * xfaces.c (tty_suppress_bold_inverse_default_colors_p): - (menu_face_changed_default, defined_color, free_realized_face): - (x_free_dpy_colors): Define only if USE_X_TOOLKIT. - (ascii_face_of_lisp_face): Remove; unused. - - * xdisp.c: Make symbols static if they're not exported. - * dispextern.h (scratch_glyph_row, window_box_edges): - (glyph_to_pixel_coords, set_cursor_from_row): - (get_next_display_element, set_iterator_to_next): - (highlight_trailing_whitespace, frame_to_window_pixel_xy): - (show_mouse_face): Remove decls - * frame.h (message_buf_print): Likewise. - * lisp.h (pop_message, set_message, check_point_in_composition): - Likewise. - * xterm.h (set_vertical_scroll_bar): Likewise. - * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed): - (message_buf_print, scratch_glyph_row, displayed_buffer): - (set_iterator_to_next, pop_message, set_message, set_cursor_from_row): - (get_next_display_element, show_mouse_face, window_box_edges): - (frame_to_window_pixel_xy, check_point_in_composition): - (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static. - (glyph_to_pixel_coords): Remove; unused. - - * dired.c (file_name_completion): Now static. - - * dbusbind.c (xd_in_read_queued_messages): Now static. - - * lisp.h (circular_list_error, FOREACH): Remove; unused. - * data.c (circular_list_error): Remove. - - * commands.h (last_point_position, last_point_position_buffer): - (last_point_position_window): Remove decls. - * keyboard.c: Make these variables static. - - * coding.h (coding, code_convert_region, encode_coding_gap): - Remove decls. - * coding.c (Vsjis_coding_system, Vbig5_coding_system): - (iso_code_class, detect_coding, code_convert_region): Now static. - (encode_coding_gap): Remove; unused. - - * chartab.c (chartab_chars, chartab_bits): Now static. - - * charset.h (charset_iso_8859_1): Remove decl. - * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump): - Now static. - - * ccl.h (check_ccl_update, Vccl_program_table): Remove decls. - * ccl.c (Vccl_program_table): Now static. - (check_ccl_update): Remove; unused. - - * category.c (SET_CATEGORY_SET, set_category_set): Move here. - * category.h: ... from here. - * category.c (check_category_table, set_category_set): Now static. - - * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static. - * lisp.h: Remove these decls. - - * buffer.c (buffer_count): Remove unused var. - - * bidi.c (bidi_dump_cached_states): Mark as externally visible, - so that it's not optimized away. - (bidi_ignore_explicit_marks_for_paragraph_level): Likewise. - * dispextern.h (bidi_dump_cached_states): Remove, since it's - exported only to the debugger. - - * atimer.c (alarm_signal_handler, run_all_atimers): Now static. - * atimer.h (run_all_atimers): Remove; not exported. - - font.c: Make copy_font_spec and merge_font_spec ordinary C functions. - * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it - was inaccessible from Lisp. - (merge_font_spec): Likewise, renaming from Fmerge_font_spec. - * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses. - - alloc.c: Import and export fewer symbols, and remove unused items. - * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING - is defined. - (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that - it's not optimized away by whole-program optimization. - (message_enable_multibyte, free_misc): Remove. - (catchlist, handlerlist, mark_backtrace): - Declare only if BYTE_MARK_STACK. - (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo. - * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined. - (message_enable_multibyte): Remove decl. - (free_misc, interval_free_list, float_block, float_block_index): - (n_float_blocks, float_free_list, cons_block, cons_block_index): - (cons_free_list, last_marked_index): - Now static. - (suppress_checking, die): Define only if ENABLE_CHECKING is defined. - * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK. - (mark_backtrace): Define only if BYTE_MARK_STACK. - * xdisp.c (message_enable_multibyte): Now static. - - Declare Lisp_Object Q* variables to be 'static' if not exported. - This makes it easier for human readers (and static analyzers) - to see whether these variables are used from other modules. - * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c: - * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c: - * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c: - * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c: - * lread.c, macros.c, minibuf.c, print.c, process.c, search.c: - * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c: - * xmenu.c, xselect.c: - Declare Q* vars static if they are not used in other modules. - * ccl.h, character.h, charset.h, coding.h, composite.h, font.h: - * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h: - Remove decls of unexported vars. - * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro. - - * lisp.h (DEFINE_FUNC): Make sname 'static'. - - Make Emacs functions such as Fatom 'static' by default. - This makes it easier for human readers (and static analyzers) - to see whether these functions can be called from other modules. - DEFUN now defines a static function. To make the function external - so that it can be used in other C modules, use the new macro DEFUE. - * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p): - (Finit_image_library): - (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer): - (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute): - (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes): - Remove decls, since these functions are now static. - (Funintern, Fget_internal_run_time): New decls, since these functions - were already external. - - * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c: - * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c: - * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c: - * fns.c, font.c, fontset.c, frame.c, image.c, indent.c: - * keyboard.c, keymap.c, lread.c: - * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c: - * syntax.c, term.c, terminal.c, textprop.c, undo.c: - * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c: - Mark functions with DEFUE instead of DEFUN, - if they are used in other modules. - * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward - decls for now-static functions. - * buffer.h (Fdelete_overlay): Remove decl. - * callproc.c (Fgetenv_internal): Mark as internal. - * composite.c (Fremove_list_of_text_properties): Remove decl. - (Fcomposition_get_gstring): New forward static decl. - * composite.h (Fcomposite_get_gstring): Remove decl. - * dired.c (Ffile_attributes): New forward static decl. - * doc.c (Fdocumntation_property): New forward static decl. - * eval.c (Ffetch_bytecode): New forward static decl. - (Funintern): Remove extern decl; now in .h file where it belongs. - * fileio.c (Fmake_symbolic_link): New forward static decl. - * image.c (Finit_image_library): New forward static decl. - * insdel.c (Fcombine_after_change_execute): Make forward decl static. - * intervals.h (Fprevious_property_change): - (Fremove_list_of_text_properties): Remove decls. - * keyboard.c (Fthis_command_keys): Remove decl. - (Fcommand_execute): New forward static decl. - * keymap.c (Flookup_key): New forward static decl. - (Fcopy_keymap): Now static. - * keymap.h (Flookup_key): Remove decl. - * process.c (Fget_process): New forward static decl. - (Fprocess_datagram_address): Mark as internal. - * syntax.c (Fsyntax_table_p): New forward static decl. - (skip_chars): Remove duplicate decl. - * textprop.c (Fprevious_property_change): New forward static decl. - * window.c (Fset_window_fringes, Fset_window_scroll_bars): - Now internal. - (Fset_window_margins, Fset_window_vscroll): New forward static decls. - * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls. - - * editfns.c (Fformat): Remove unreachable code. - -2011-04-14 Andreas Schwab - - * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13 - change. (Bug#8496) - -2011-04-13 Eli Zaretskii - - * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init - when at ZV. (Bug#8487) - -2011-04-12 Andreas Schwab - - * charset.c (Fclear_charset_maps): Use xfree instead of free. - (Bug#8437) - * keyboard.c (parse_tool_bar_item): Likewise. - * sound.c (sound_cleanup, alsa_close): Likewise. - * termcap.c (tgetent): Likewise. - * xfns.c (x_default_font_parameter): Likewise. - * xsettings.c (read_and_apply_settings): Likewise. - - * alloc.c (overrun_check_malloc, overrun_check_realloc) - (overrun_check_free): Protoize. - -2011-04-12 Paul Eggert - - * sysdep.c (emacs_read, emacs_write): Check for negative sizes - since callers should never pass a negative size. - Change the signature to match that of plain 'read' and 'write'; see - . - * lisp.h: Update prototypes of emacs_write and emacs_read. - -2011-04-11 Eli Zaretskii - - * xdisp.c (redisplay_window): Don't try to determine the character - position of the scroll margin if the window start point w->startp - is outside the buffer's accessible region. (Bug#8468) - -2011-04-10 Eli Zaretskii - - Fix write-region and its subroutines for buffers > 2GB. - * fileio.c (a_write, e_write): Modify declaration of arguments and - local variables to support buffers larger than 2GB. - (Fcopy_file): Use EMACS_INT for return value of emacs_read. - - * sysdep.c (emacs_write, emacs_read): Use ssize_t for last - argument, local variables, and return value. - - * lisp.h: Update prototypes of emacs_write and emacs_read. - - * sound.c (vox_write): Use ssize_t for return value of emacs_write. - -2011-04-10 Paul Eggert - - * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack. - - Fix more problems found by GCC 4.6.0's static checks. - - * xdisp.c (vmessage): Use a better test for character truncation. - - * charset.c (load_charset_map): <, not <=, for optimization, - and to avoid potential problems with integer overflow. - * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise. - * casetab.c (set_identity, shuffle): Likewise. - * editfns.c (Fformat): Likewise. - * syntax.c (skip_chars): Likewise. - - * xmenu.c (set_frame_menubar): Allocate smaller local vectors. - This also lets GCC 4.6.0 generate slightly better loop code. - - * callint.c (Fcall_interactively): <, not <=, for optimization. - (Fcall_interactively): Count the number of arguments produced, - not the number of arguments given. This is simpler and lets GCC - 4.6.0 generate slightly better code. - - * ftfont.c: Distingish more carefully between FcChar8 and char. - The previous code passed unsigned char * to a functions like - strlen and xstrcasecmp that expect char *, which does not - conform to the C standard. - (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for - arguments to FcPatternGetString, and explicitly cast FcChar8 * to - char * when the C standard requires it. - - * keyboard.c (read_char): Remove unused var. - - * eval.c: Port to Windows vsnprintf (Bug#8435). - Include . - (SIZE_MAX): Define if the headers do not. - (verror): Do not give up if vsnprintf returns a negative count. - Instead, grow the buffer. This ports to Windows vsnprintf, which - does not conform to C99. Problem reported by Eli Zaretskii. - Also, simplify the allocation scheme, by avoiding the need for - calling realloc, and removing the ALLOCATED variable. - - * eval.c (verror): Initial buffer size is 4000 (not 200) bytes. - - Remove invocations of doprnt, as Emacs now uses vsnprintf. - But keep the doprint source code for now, as we might revamp it - and use it again (Bug#8435). - * lisp.h (doprnt): Remove. - * Makefile.in (base_obj): Remove doprnt.o. - * deps.mk (doprnt.o): Remove. - - error: Print 32- and 64-bit integers portably (Bug#8435). - Without this change, on typical 64-bit hosts error ("...%d...", N) - was used to print both 32- and 64-bit integers N, which relied on - undefined behavior. - * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro. - * lisp.h (error, verror): Mark as printf-like functions. - * eval.c (verror): Use vsnprintf, not doprnt, to do the real work. - Report overflow in size calculations when allocating printf buffer. - Do not truncate output string at its first null byte. - * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work. - Truncate the output at a character boundary, since vsnprintf does not - do that. - * charset.c (check_iso_charset_parameter): Convert internal - character to string before calling 'error', since %c now has the - printf meaning. - * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int - overflow when computing char to be passed to 'error'. Do not - pass Lisp_Object to 'error'; pass the integer instead. - * nsfns.m (Fns_do_applescript): Use int, not long, since it's - formatted with plain %d. - - * eval.c (internal_lisp_condition_case): Don't pass spurious arg. - - * keyboard.c (access_keymap_keyremap): Print func name, not garbage. - - * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int. - - * xterm.c (x_catch_errors): Remove duplicate declaration. - - * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too. - - * xdisp.c, lisp.h (message_nolog): Remove; unused. - -2011-04-10 Jim Meyering - - use ssize_t and size_t for read- and write-like emacs_gnutls_* functions - * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like: - return ssize_t not "int", and use size_t as the buffer length. - (emacs_gnutls_write): Likewise, and make the buffer pointer "const". - * gnutls.h: Update declarations. - * process.c (read_process_output): Use ssize_t, to match. - (send_process): Likewise. - -2011-04-09 Chong Yidong - - * image.c (Fimagemagick_types): Doc fix, and comment cleanup. - -2011-04-09 Chong Yidong - - * ftfont.c (get_adstyle_property, ftfont_pattern_entity): - Use unsigned char, to match FcChar8 type definition. - - * xterm.c (handle_one_xevent): - * xmenu.c (create_and_show_popup_menu): - * xselect.c (x_decline_selection_request) - (x_reply_selection_request): Avoid type-punned deref of X events. - -2011-04-09 Eli Zaretskii - - Fix some uses of `int' instead of EMACS_INT. - * search.c (string_match_1, fast_string_match) - (fast_c_string_match_ignore_case, fast_string_match_ignore_case) - (scan_buffer, find_next_newline_no_quit) - (find_before_next_newline, search_command, Freplace_match) - (Fmatch_data): Make some `int' variables be EMACS_INT. - - * xdisp.c (display_count_lines): 3rd argument and return value now - EMACS_INT. All callers changed. - (pint2hrstr): Last argument is now EMACS_INT. - - * coding.c (detect_coding_utf_8, detect_coding_emacs_mule) - (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5) - (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8) - (decode_coding_utf_16, decode_coding_emacs_mule) - (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5) - (decode_coding_ccl, decode_coding_charset) - : Declare EMACS_INT. - (decode_coding_iso_2022, decode_coding_emacs_mule) - (decode_coding_sjis, decode_coding_big5, decode_coding_charset) - : Declare EMACS_INT. - (encode_coding_utf_8, encode_coding_utf_16) - (encode_coding_emacs_mule, encode_invocation_designation) - (encode_designation_at_bol, encode_coding_iso_2022) - (encode_coding_sjis, encode_coding_big5, encode_coding_ccl) - (encode_coding_raw_text, encode_coding_charset) : - Declare EMACS_INT. - (ASSURE_DESTINATION): Declare more_bytes EMACS_INT. - (encode_invocation_designation): Last argument P_NCHARS is now - EMACS_INT. - (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT. - (produce_chars): from_nchars and to_nchars are now EMACS_INT. - - * coding.h (struct coding_system) : Declare EMACS_INT. - All users changed. - - * ccl.c (Fccl_execute_on_string): Declare some variables - EMACS_INT. - -2011-04-08 Samuel Thibault (tiny change) - - * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450). - -2011-03-19 Christoph Scholtes - - * process.c (Fformat_network_address): Doc fix. - -2011-04-08 T.V. Raman (tiny change) - - * xml.c (parse_region): Avoid creating spurious whitespace nodes. - -2011-04-08 Chong Yidong - - * keyboard.c (read_char): Call Lisp function help-form-show, - instead of using internal_with_output_to_temp_buffer. - (Qhelp_form_show): New var. - (syms_of_keyboard): Use DEFSYM macro. - - * print.c (internal_with_output_to_temp_buffer): Function deleted. - - * lisp.h (internal_with_output_to_temp_buffer): Remove prototype. - -2011-04-06 Chong Yidong - - * process.c (Flist_processes): Remove to Lisp. - (list_processes_1): Delete. - -2011-04-06 Eli Zaretskii - - * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements. - - * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs. - -2011-04-06 Paul Eggert - - Fix more problems found by GCC 4.6.0's static checks. - - * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats. - - * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats. - - * lisp.h (message, message_nolog, fatal): Mark as printf-like. - - * xdisp.c (vmessage): Mark as a printf-like function. - - * term.c (vfatal, maybe_fatal): Mark as printf-like functions. - - * sound.c (sound_warning): Don't crash if arg contains a printf format. - - * image.c (tiff_error_handler, tiff_warning_handler): Mark as - printf-like functions. - (tiff_load): Add casts to remove these marks before passing them - to system-supplied API. - - * eval.c (Fsignal): Remove excess argument to 'fatal'. - - * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int. - This avoids several warnings with gcc -Wstrict-overflow. - (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code - directly, rather than having caller test rule sign. This avoids - some unnecessary tests. - * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro. - (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This - affects only one use, in DECODE_COMPOSITION_RULE, which is changed. - - * xfont.c (xfont_text_extents): Remove var that was set but not used. - (xfont_open): Avoid unnecessary tests. - - * composite.c (composition_gstring_put_cache): Use unsigned integer. - - * composite.h, composite.c (composition_gstring_put_cache): - Use EMACS_INT, not int, for length. - - * composite.h (COMPOSITION_DECODE_REFS): New macro, - breaking out part of COMPOSITION_DECODE_RULE. - (COMPOSITION_DECODE_RULE): Use it. - * composite.c (get_composition_id): Remove unused local vars, - by using the new macro. - - * textprop.c (set_text_properties_1): Change while to do-while, - since the condition is always true at first. - - * intervals.c (graft_intervals_into_buffer): Mark var as used. - (interval_deletion_adjustment): Return unsigned value. - All uses changed. - - * process.c (list_processes_1, create_pty, read_process_output): - (exec_sentinel): Remove vars that were set but not used. - (create_pty): Remove unnecessary "volatile"s. - (Fnetwork_interface_info): Avoid possibility of int overflow. - (read_process_output): Do adaptive read buffering even if carryover. - (read_process_output): Simplify nbytes computation if buffered. - - * bytecode.c (exec_byte_code): Rename local to avoid shadowing. - - * syntax.c (scan_words): Remove var that was set but not used. - (update_syntax_table): Use unsigned instead of int. - - * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs. - (lisp_file_lexically_bound_p, read1): Use unsigned instead of int. - (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop. - - * print.c (print_error_message): Avoid int overflow. - - * font.c (font_list_entities): Redo for clarity, - so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX. - - * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars. - (font_score): Avoid potential overflow in diff calculation. - - * fns.c (substring_both): Remove var that is set but not used. - (sxhash): Redo loop for clarity and to avoid wraparound warning. - - * eval.c (funcall_lambda): Rename local to avoid shadowing. - - * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int. - Otherwise, GCC 4.6.0 optimizes the loop check away since the check - can always succeed if overflow has undefined behavior. - - * search.c (boyer_moore, wordify): Remove vars set but not used. - (wordify): Omit three unnecessary tests. - - * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column. - All callers changed. This avoids the need for an unused var. - - * casefiddle.c (casify_region): Remove var that is set but not used. - - * dired.c (file_name_completion): Remove var that is set but not used. - - * fileio.c (Finsert_file_contents): Make EOF condition clearer. - - * fileio.c (Finsert_file_contents): Avoid signed integer overflow. - (Finsert_file_contents): Remove unnecessary code checking fd. - - * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes. - Check for integer overflow on size calculations. - - * buffer.c (Fprevious_overlay_change): Remove var that is set - but not used. - - * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt): - Remove vars that are set but not used. - (timer_check_2): Don't assume timer-list and idle-timer-list are lists. - (timer_check_2): Mark vars as initialized. - - * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized. - - * image.c (lookup_image): Remove var that is set but not used. - (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable. - - * fontset.c (Finternal_char_font, Ffontset_info): Remove vars - that are set but not used. - - * xfns.c (make_invisible_cursor): Don't return garbage - if XCreateBitmapFromData fails (Bug#8410). - - * xselect.c (x_get_local_selection, x_handle_property_notify): - Remove vars that are set but not used. - - * xfns.c (x_create_tip_frame): Remove var that is set but not used. - (make_invisible_cursor): Initialize a possibly-uninitialized variable. - - * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]: - Remove var that is set but not used. - (scroll_bar_windows_size): Now size_t, not int. - (x_send_scroll_bar_event): Use size_t, not int, for sizes. - Check for overflow. - - * xfaces.c (realize_named_face): Remove vars that are set but not used. - (map_tty_color) [!defined MSDOS]: Likewise. - - * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning. - - * coding.c: Remove vars that are set but not used. - (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused. - All callers changed. - (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule): - (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5): - (decode_coding_charset): Remove vars that are set but not used. - - * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var - that is set but not used. - - * print.c (print_object): Remove var that is set but not used. - - Replace 2 copies of readlink code with 1 gnulib version (Bug#8401). - The gnulib version avoids calling malloc in the usual case, - and on 64-bit hosts doesn't have some arbitrary 32-bit limits. - * fileio.c (Ffile_symlink_p): Use emacs_readlink. - * filelock.c (current_lock_owner): Likewise. - * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function. - * sysdep.c: Include allocator.h, careadlinkat.h. - (emacs_no_realloc_allocator): New static constant. - (emacs_readlink): New function. - * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on - ../lib/careadlinkat.h. - -2011-04-04 Stefan Monnier - - * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the - first non-nil return value). - -2011-04-03 Jan Djärv - - * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6 - if not defined (Bug#8403). - -2011-04-02 Juanma Barranquero - - * xdisp.c (display_count_lines): Remove parameter `start', - unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed. - (get_char_face_and_encoding): Remove parameter `multibyte_p', - unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed. - (fill_stretch_glyph_string): Remove parameters `row' and `area', - unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk - and thereabouts. All callers changed. - (get_per_char_metric): Remove parameter `f', unused since - 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed. - -2011-04-02 Jim Meyering - - do not dereference NULL upon failed strdup - * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup. - (ns_get_family): Likewise. - -2011-04-02 Juanma Barranquero - - * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment. - -2011-04-02 Jan Djärv - - * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or - later (Bug#8403). - -2011-04-01 Stefan Monnier - - Add lexical binding. - - * window.c (Ftemp_output_buffer_show): New fun. - (Fsave_window_excursion): - * print.c (Fwith_output_to_temp_buffer): Move to subr.el. - - * lread.c (lisp_file_lexically_bound_p): New function. - (Fload): Bind Qlexical_binding. - (readevalloop): Remove `evalfun' arg. - Bind Qinternal_interpreter_environment. - (Feval_buffer): Bind Qlexical_binding. - (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard): - Mark as dynamic. - (syms_of_lread): Declare `lexical-binding'. - - * lisp.h (struct Lisp_Symbol): New field `declared_special'. - - * keyboard.c (eval_dyn): New fun. - (menu_item_eval_property): Use it. - - * image.c (parse_image_spec): Use Ffunctionp. - - * fns.c (concat, mapcar1): Accept byte-code-functions. - - * eval.c (Fsetq): Handle lexical vars. - (Fdefun, Fdefmacro, Ffunction): Make closures when needed. - (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic. - (FletX, Flet): Obey lexical binding. - (Fcommandp): Handle closures. - (Feval): New `lexical' arg. - (eval_sub): New function extracted from Feval. Use it almost - everywhere where Feval was used. Look up vars in lexical env. - Handle closures. - (Ffunctionp): Move from subr.el. - (Ffuncall): Handle closures. - (apply_lambda): Remove `eval_flags'. - (funcall_lambda): Handle closures and new byte-code-functions. - (Fspecial_variable_p): New function. - (syms_of_eval): Initialize the Vinternal_interpreter_environment var, - but without exporting it to Lisp. - - * doc.c (Fdocumentation, store_function_docstring): - * data.c (Finteractive_form): Handle closures. - - * callint.c (Fcall_interactively): Preserve lexical-binding mode for - interactive spec. - - * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN): - New byte-codes. - (exec_byte_code): New function extracted from Fbyte_code to handle new - calling convention for byte-code-functions. Add new byte-codes. - - * buffer.c (defvar_per_buffer): Set new `declared_special' field. - - * alloc.c (Fmake_symbol): Init new `declared_special' field. - -2011-03-31 Juanma Barranquero - - * xdisp.c (redisplay_internal): Fix prototype. - -2011-03-31 Eli Zaretskii - - * xdisp.c (SCROLL_LIMIT): New macro. - (try_scrolling): Use it when setting scroll_limit. - Limit scrolling to 100 screen lines. - (redisplay_window): Even when falling back on "recentering", - position point in the window according to scroll-conservatively, - scroll-margin, and scroll-*-aggressively variables. (Bug#6671) - - (try_scrolling): When point is above the window, allow searching - as far as scroll_max, or one screenful, to compute vertical - distance from PT to the scroll margin position. This prevents - try_scrolling from unnecessarily failing when - scroll-conservatively is set to a value slightly larger than the - window height. Clean up the case of PT below the margin at bottom - of window: scroll_max can no longer be INT_MAX. When aggressive - scrolling is in use, don't let point enter the opposite scroll - margin as result of the scroll. - (syms_of_xdisp) : Document the - threshold of 100 lines for never-recentering scrolling. - -2011-03-31 Juanma Barranquero - - * dispextern.h (move_it_by_lines): - * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused - since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed. - (message_log_check_duplicate): Remove parameters `prev_bol' and - `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed. - (redisplay_internal): Remove parameter `preserve_echo_area', - unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed. - - * indent.c (Fvertical_motion): - * window.c (window_scroll_pixel_based, Frecenter): - Don't pass `need_y_p' to `move_it_by_lines'. - -2011-03-30 Stefan Monnier - - * eval.c (struct backtrace): Don't cheat with negative numbers, but do - steal a few bits to be more compact. - (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace): - Remove unneeded casts. - - * bytecode.c (Fbyte_code): CAR and CDR can GC. - -2011-03-30 Zachary Kanfer (tiny change) - - * keyboard.c (Fexecute_extended_command): Do log the "suggest key - binding" message (bug#7967). - -2011-03-30 Paul Eggert - - Fix more problems found by GCC 4.6.0's static checks. - - * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]: - Remove unused local var. - - * editfns.c (Fmessage_box): Remove unused local var. - - * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs): - (note_mode_line_or_margin_highlight, note_mouse_highlight): - Omit unused local vars. - * window.c (shrink_windows): Omit unused local var. - * menu.c (digest_single_submenu): Omit unused local var. - * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]: - Omit unused local var. - - * keyboard.c (parse_modifiers_uncached, parse_modifiers): - Don't assume string length fits in int. - (keyremap_step, read_key_sequence): Use size_t for sizes. - (read_key_sequence): Don't check last_real_key_start redundantly. - - * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA - instead of alloca (Bug#8344). - - * eval.c (Fbacktrace): Don't assume nargs fits in int. - (Fbacktrace_frame): Don't assume nframes fits in int. - - * syntax.c (scan_sexps_forward): Avoid pointer wraparound. - - * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow - concerns. - - * term.c (produce_glyphless_glyph): Remove unnecessary test. - - * cm.c (calccost): Turn while-do into do-while, for clarity. - - * keyboard.c (syms_of_keyboard): Use the same style as later - in this function when indexing through an array. This also - works around GCC bug 48267. - - * image.c (tiff_load): Fix off-by-one image count (Bug#8336). - - * xselect.c (x_check_property_data): Return correct size (Bug#8335). - - * chartab.c (sub_char_table_ref_and_range): Redo for slight - efficiency gain, and to bypass a gcc -Wstrict-overflow warning. - - * keyboard.c, keyboard.h (num_input_events): Now size_t. - This avoids undefined behavior on integer overflow, and is a bit - more convenient anyway since it is compared to a size_t variable. - - Variadic C functions now count arguments with size_t, not int. - This avoids an unnecessary limitation on 64-bit machines, which - caused (substring ...) to crash on large vectors (Bug#8344). - * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int. - (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise. - All variadic functions and their callers changed accordingly. - (struct gcpro.nvars): Now size_t, not int. All uses changed. - * data.c (arith_driver, float_arith_driver): Likewise. - * editfns.c (general_insert_function): Likewise. - * eval.c (struct backtrace.nargs, interactive_p) - (internal_condition_case_n, run_hook_with_args, apply_lambda) - (funcall_lambda, mark_backtrace): Likewise. - * fns.c (concat): Likewise. - * frame.c (x_set_frame_parameters): Likewise. - * fns.c (get_key_arg): Now accepts and returns size_t, and returns - 0 if not found, not -1. All callers changed. - - * alloc.c (garbage_collect): Don't assume stack size fits in int. - (stack_copy_size): Now size_t, not int. - (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0. - -2011-03-28 Juanma Barranquero - - * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end', - unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org. - All callers changed. - - * lisp.h (multibyte_char_to_unibyte): - * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl', - unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org. - * character.h (CHAR_TO_BYTE8): - * cmds.c (internal_self_insert): - * editfns.c (general_insert_function): - * keymap.c (push_key_description): - * search.c (Freplace_match): - * xdisp.c (message_dolog, set_message_1): All callers changed. - -2011-03-28 Stefan Monnier - - * keyboard.c (safe_run_hook_funcall): New function. - (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error, - don't set the hook to nil, but remove the offending function instead. - (Qcommand_hook_internal): Remove, unused. - (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define - Vcommand_hook_internal. - - * eval.c (enum run_hooks_condition): Remove. - (funcall_nil, funcall_not): New functions. - (run_hook_with_args): Call each function through a `funcall' argument. - Remove `cond' argument, now redundant. - (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success) - (Frun_hook_with_args_until_failure): Adjust accordingly. - (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions. - -2011-03-28 Juanma Barranquero - - * dispextern.h (string_buffer_position): Remove declaration. - - * print.c (strout): Remove parameter `multibyte', unused since - 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed. - - * search.c (boyer_moore): Remove parameters `len', `pos' and `lim', - never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org. - All callers changed. - - * w32.c (_wsa_errlist): Use braces for struct initializers. - - * xdisp.c (string_buffer_position_lim): Remove parameter `w', - never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org. - All callers changed. - (string_buffer_position): Likewise. Also, make static (it's never - used outside xdisp.c). - (cursor_row_p): Remove parameter `w', unused since - 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed. - (decode_mode_spec): Remove parameter `precision', introduced during - Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used. - All callers changed. - -2011-03-27 Jan Djärv - - * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar. - -2011-03-27 Anders Lindgren - - * nsterm.m (ns_menu_bar_is_hidden): New variable. - (ns_constrain_all_frames, ns_menu_bar_should_be_hidden) - (ns_update_auto_hide_menu_bar): New functions. - (ns_update_begin): Call ns_update_auto_hide_menu_bar. - (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and - ns_constrain_all_frames. - (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden. - (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil. - -2011-03-27 Jan Djärv - - * nsmenu.m (runDialogAt): Remove argument to timer_check. - -2011-03-27 Glenn Morris - - * syssignal.h: Replace RETSIGTYPE with void. - * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c: - * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c: - Replace SIGTYPE with void everywhere. - * s/usg5-4-common.h (SIGTYPE): Remove definition. - * s/template.h (SIGTYPE): Remove commented out definition. - -2011-03-26 Eli Zaretskii - - * xdisp.c (redisplay_window): Don't check buffer's clip_changed - flag as a prerequisite for invoking try_scrolling. (Bug#6671) - -2011-03-26 Juanma Barranquero - - * w32.c (read_unc_volume): Use parameter `henum', instead of - global variable `wget_enum_handle'. - - * keymap.c (describe_vector): Remove parameters `indices' and - `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org. - (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'. - - * keyboard.h (timer_check, show_help_echo): Remove unused parameters. - - * keyboard.c (timer_check): Remove parameter `do_it_now', - unused since 1996-04-12T06:01:29Z!rms@gnu.org. - (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo', - unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca. - - * keyboard.c (read_char): - * w32menu.c (w32_menu_display_help): - * xmenu.c (show_help_event, menu_help_callback): - Adjust calls to `show_help_echo'. - - * gtkutil.c (xg_maybe_add_timer): - * keyboard.c (readable_events): - * process.c (wait_reading_process_output): - * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'. - - * insdel.c (adjust_markers_gap_motion): - Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org. - (gap_left, gap_right): Don't call it. - -2011-03-25 Chong Yidong - - * xdisp.c (handle_fontified_prop): Discard changes to clip_changed - incurred during fontification. - -2011-03-25 Juanma Barranquero - - * buffer.c (defvar_per_buffer): Remove unused parameter `doc'. - (DEFVAR_PER_BUFFER): Don't pass it. - - * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'. - (scrolling_window): Don't pass it. - -2011-03-25 Juanma Barranquero - - * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef. - - * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len' - and `suffix'. - (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration - of variables specific to SELinux and computation of `encoded_absname'. - - * image.c (XPutPixel): Remove unused variable `height'. - - * keyboard.c (make_lispy_event): Remove unused variable `hpos'. - - * unexw32.c (get_section_info): Remove unused variable `section'. - - * w32.c (stat): Remove unused variables `drive_root' and `devtype'. - (system_process_attributes): Remove unused variable `sess'. - (sys_read): Remove unused variable `err'. - - * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef. - (w32_wnd_proc): Remove unused variable `isdead'. - (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef. - (Fx_server_max_request_size): Remove unused variable `dpyinfo'. - (x_create_tip_frame): Remove unused variable `tem'. - - * w32inevt.c (w32_console_read_socket): - Remove unused variable `no_events'. - - * w32term.c (x_draw_composite_glyph_string_foreground): - Remove unused variable `width'. - -2011-03-24 Juanma Barranquero - - * w32term.c (x_set_glyph_string_clipping): - Don't pass uninitialized region to CombineRgn. - -2011-03-23 Juanma Barranquero - - * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'. - (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer. - (Fx_close_connection): Remove unused variable `i'. - - * w32font.c (w32font_draw): Return number of glyphs. - (w32font_open_internal): Remove unused variable `i'. - (w32font_driver): Add missing initializer. - - * w32menu.c (utf8to16): Remove unused variable `utf16'. - (fill_in_menu): Remove unused variable `items_added'. - - * w32term.c (last_mouse_press_frame): Remove static global variable. - (w32_clip_to_row): Remove unused variable `f'. - (x_delete_terminal): Remove unused variable `i'. - - * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'. - (NOTHING): Remove unused static global variable. - (uniscribe_check_otf): Remove unused variable `table'. - (uniscribe_font_driver): Add missing initializers. - -2011-03-23 Julien Danjou - - * term.c (Fsuspend_tty, Fresume_tty): - * minibuf.c (read_minibuf, run_exit_minibuf_hook): - * window.c (temp_output_buffer_show): - * insdel.c (signal_before_change): - * frame.c (Fhandle_switch_frame): - * fileio.c (Fdo_auto_save): - * emacs.c (Fkill_emacs): - * editfns.c (save_excursion_restore): - * cmds.c (internal_self_insert): - * callint.c (Fcall_interactively): - * buffer.c (Fkill_all_local_variables): - * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1): - Use Frun_hooks. - (command_loop_1): Use Frun_hooks. Call safe_run_hooks - unconditionally since it does the check itself. - -2011-03-23 Paul Eggert - - Fix more problems found by GCC 4.5.2's static checks. - - * coding.c (encode_coding_raw_text): Avoid unnecessary test - the first time through the loop, since we know p0 < p1 then. - This also avoids a gcc -Wstrict-overflow warning. - - * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow - leading to a memory leak, possible in functions like - load_charset_map_from_file that can allocate an unbounded number - of objects (Bug#8318). - - * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes - that could (at least in theory) be that large. - - * xdisp.c (message_log_check_duplicate): Return unsigned long, not int. - This is less likely to overflow, and avoids undefined behavior if - overflow does occur. All callers changed. Use strtoul to scan - for the unsigned long integer. - (pint2hrstr): Simplify and tune code slightly. - This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow. - - * scroll.c (do_scrolling): Work around GCC bug 48228. - See . - - * frame.c (Fmodify_frame_parameters): Simplify loop counter. - This also avoids a warning with gcc -Wstrict-overflow. - (validate_x_resource_name): Simplify count usage. - This also avoids a warning with gcc -Wstrict-overflow. - - * fileio.c (Fcopy_file): Report error if fchown or fchmod - fail (Bug#8306). - - * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303). - - * process.c (Fmake_network_process): Use socklen_t, not int, - where POSIX says socklen_t is required in portable programs. - This fixes a porting bug on hosts like 64-bit HP-UX, where - socklen_t is wider than int (Bug#8277). - (Fmake_network_process, server_accept_connection): - (wait_reading_process_output, read_process_output): - Likewise. - - * process.c: Rename or move locals to avoid shadowing. - (list_processes_1, Fmake_network_process): - (read_process_output_error_handler, exec_sentinel_error_handler): - Rename or move locals. - (Fmake_network_process): Define label "retry_connect" only if needed. - (Fnetwork_interface_info): Fix pointer signedness. - (process_send_signal): Add cast to avoid pointer signedness problem. - (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros. - (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298). - - Make tparam.h and terminfo.c consistent. - * cm.c (tputs, tgoto, BC, UP): Remove extern decls. - Include tparam.h instead, since it declares them. - * cm.h (PC): Remove extern decl; tparam.h now does this. - * deps.mk (cm.o, terminfo.o): Depend on tparam.h. - * terminfo.c: Include tparam.h, to check interfaces. - (tparm): Make 1st arg a const pointer in decl. Put it at top level. - (tparam): Adjust signature to match interface in tparam.h; - this removes some undefined behavior. Check that outstring and len - are zero, which they always are with Emacs. - * tparam.h (PC, BC, UP): New extern decls. - - * xftfont.c (xftfont_shape): Now static, and defined only if needed. - (xftfont_open): Rename locals to avoid shadowing. - - * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness. - (ftfont_otf_capability, ftfont_shape): Omit decls if not needed. - (OTF_TAG_SYM): Omit macro if not needed. - (ftfont_list): Remove unused local. - (get_adstyle_property, ftfont_pattern_entity): - (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point): - Rename locals to avoid shadowing. - - * xfont.c (xfont_list_family): Mark var as initialized. - - * xml.c (make_dom): Now static. - - * composite.c (composition_compute_stop_pos): Rename local to - avoid shadowing. - (composition_reseat_it): Remove unused locals. - (find_automatic_composition, composition_adjust_point): Likewise. - (composition_update_it): Mark var as initialized. - (find_automatic_composition): Mark vars as initialized, - with a FIXME (Bug#8290). - - character.h: Rename locals to avoid shadowing. - * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE): - (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE): - (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS): - (BUF_DEC_POS): Be more systematic about renaming local temporaries - to avoid shadowing. - - * textprop.c (property_change_between_p): Remove; unused. - - * intervals.c (interval_start_pos): Now static. - - * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else". - - * atimer.c (start_atimer, append_atimer_lists, set_alarm): - Rename locals to avoid shadowing. - - * sound.c (wav_play, au_play, Fplay_sound_internal): - Fix pointer signedness. - (alsa_choose_format): Remove unused local var. - (wav_play): Initialize a variable to 0, to prevent undefined - behavior (Bug#8278). - - * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing. - - * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes. - - * callproc.c (Fcall_process): Use 'volatile' to avoid vfork - clobbering (Bug#8298). - * sysdep.c (sys_subshell): Likewise. - Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out. - - * lisp.h (child_setup): Now NO_RETURN unless DOS_NT. - This should get cleaned up, so that child_setup has the - same signature on all platforms. - - * callproc.c (call_process_cleanup): Now static. - (relocate_fd): Rename locals to avoid shadowing. - -2011-03-22 Chong Yidong - - * xterm.c (x_clear_frame): Remove XClearWindow call. This appears - not to be necessary, and produces flickering. - -2011-03-20 Glenn Morris - - * config.in: Remove file. - -2011-03-20 Juanma Barranquero - - * minibuf.c (Vcompleting_read_function): Don't declare, global variables - are now in src/globals.h. - (syms_of_minibuf): Remove spurious & from previous change. - -2011-03-20 Leo Liu - - * minibuf.c (completing-read-function): New variable. - (completing-read-default): Rename from completing-read. - (completing-read): Call completing-read-function. - -2011-03-19 Juanma Barranquero - - * xfaces.c (Fx_load_color_file): - Read color file from absolute filename (bug#8250). - -2011-03-19 Juanma Barranquero - - * makefile.w32-in: Update dependencies. - -2011-03-17 Eli Zaretskii - - * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h. - -2011-03-17 Paul Eggert - - Fix more problems found by GCC 4.5.2's static checks. - - * process.c (make_serial_process_unwind, send_process_trap): - (sigchld_handler): Now static. - - * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars. - That way, the code declares only the vars that it needs. - * s/aix4-2.h (PTY_ITERATION): Declare iteration vars. - * s/cygwin.h (PTY_ITERATION): Likewise. - * s/darwin.h (PTY_ITERATION): Likewise. - * s/gnu-linux.h (PTY_ITERATION): Likewise. - - * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling. - * process.c (allocate_pty): Don't declare stb unless it's needed. - - * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else". - (CONSTANTLIM): Remove; unused. - (METER_CODE, Bscan_buffer, Bread_char, Bset_mark): - Define only if needed. - - * unexelf.c (unexec): Name an expression, - to avoid gcc -Wbad-function-cast warning. - Use a different way to cause a compilation error if anyone uses - n rather than nn, a way that does not involve shadowing. - (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused. - - * deps.mk (unexalpha.o): Remove; unused. - - New file unexec.h, the (simple) interface for unexec (Bug#8267). - * unexec.h: New file. - * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o): - (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o): - Depend on unexec.h. - * emacs.c [!defined CANNOT_DUMP]: Include unexec.h. - * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c: - * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h. - Change as necessary to match prototype in unexec.h. - - * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid - shadowing. - (back_comment, skip_chars): Mark vars as initialized. - - * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS): - Rename locals to avoid shadowing. - - * lread.c (read1): Rewrite so as not to use empty "else". - (Fload, readevalloop, read1): Rename locals to avoid shadowing. - - * print.c (Fredirect_debugging_output): Fix pointer signedess. - - * lisp.h (debug_output_compilation_hack): Add decl here, to avoid - warning when compiling print.c. - - * font.c (font_unparse_fcname): Abort in an "impossible" situation - instead of using an uninitialized var. - (font_sort_entities): Mark var as initialized. - - * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing. - - * font.c (font_unparse_xlfd): Don't mix pointers to variables with - pointers to constants. - (font_parse_fcname): Remove unused vars. - (font_delete_unmatched): Now static. - (font_get_spec): Remove; unused. - (font_style_to_value, font_prop_validate_style, font_unparse_fcname): - (font_update_drivers, Ffont_get_glyphs, font_add_log): - Rename or move locals to avoid shadowing. - - * fns.c (require_nesting_list, require_unwind): Now static. - (Ffillarray): Rename locals to avoid shadowing. - - * floatfns.c (domain_error2): Define only if needed. - (Ffrexp, Fldexp): Rename locals to avoid shadowing. - - * alloc.c (mark_backtrace): Move decl from here ... - * lisp.h: ... to here, so that it can be checked. - - * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static. - (Fdefvar): Rewrite so as not to use empty "else". - (lisp_indirect_variable): Name an expression, - to avoid gcc -Wbad-function-cast warning. - (Fdefvar): Rename locals to avoid shadowing. - - * callint.c (quotify_arg, quotify_args): Now static. - (Fcall_interactively): Rename locals to avoid shadowing. - Use const pointer when appropriate. - - * lisp.h (get_system_name, get_operating_system_release): - Move decls here, to check interfaces. - * process.c (get_operating_system_release): Move decl to lisp.h. - * xrdb.c (get_system_name): Likewise. - * editfns.c (init_editfns, Fuser_login_name, Fuser_uid): - (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts, - some of which prompt warnings from gcc -Wbad-function-cast. - (Fformat_time_string, Fencode_time, Finsert_char): - (Ftranslate_region_internal, Fformat): - Rename or remove local vars to avoid shadowing. - (Ftranslate_region_internal): Mark var as initialized. - - * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to - avoid shadowing. - - * lisp.h (eassert): Check that the argument compiles, even if - ENABLE_CHECKING is not defined. - - * data.c (Findirect_variable): Name an expression, to avoid - gcc -Wbad-function-cast warning. - (default_value, arithcompare, arith_driver, arith_error): Now static. - (store_symval_forwarding): Rename local to avoid shadowing. - (Fmake_variable_buffer_local, Fmake_local_variable): - Mark variables as initialized. - (do_blv_forwarding, do_symval_forwarding): Remove; unused. - - * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST. - (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect): - Rename locals to avoid shadowing. - (mark_stack): Move local variables into the #ifdef region where - they're used. - (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if - ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not - needed otherwise. - (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS. - (GC_STRING_CHARS): Remove; not used. - (Fmemory_limit): Cast sbrk's returned value to char *. - - * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this - avoids undefined behavior in theory. - - * regex.c (IF_LINT): Add defn, for benefit of ../lib-src. - - Use functions, not macros, for up- and down-casing (Bug#8254). - * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP): - (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed - to use the following functions instead of these macros. - (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not - EMACS_INT, since callers assume the returned value fits in int. - (upcase1): Likewise, for UPCASE_TABLE. - (uppercasep, lowercasep, upcase): New static inline functions. - * editfns.c (Fchar_equal): Remove no-longer-needed workaround for - the race-condition problem in the old DOWNCASE. - - * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT): - Rename locals to avoid shadowing. - (regex_compile, re_match_2_internal): Move locals to avoid shadowing. - (regex_compile, re_search_2, re_match_2_internal): - Remove unused local vars. - (FREE_VAR): Rewrite so as not to use empty "else", - which gcc can warn about. - (regex_compile, re_match_2_internal): Mark locals as initialized. - (RETALLOC_IF): Define only if needed. - (WORDCHAR_P): Likewise. This one is never needed, but is used - only in a comment talking about a compiler bug, so put inside - the #if 0 of that comment. - (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK): - (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING): - Remove; unused. - - * search.c (boyer_moore): Rename locals to avoid shadowing. - * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE): - (PREV_CHAR_BOUNDARY): Likewise. - - * search.c (simple_search): Remove unused var. - - * dired.c (compile_pattern): Move decl from here ... - * lisp.h: ... to here, so that it can be checked. - (struct re_registers): New forward decl. - - * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing. - - * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width. - All uses changed. - (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion): - Rename locals to avoid shadowing. - (Fvertical_motion): Mark locals as initialized. - - * casefiddle.c (casify_object, casify_region): Now static. - (casify_region): Mark local as initialized. - - * cmds.c (internal_self_insert): Rename local to avoid shadowing. - - * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR): - New macros, so that the caller can use some names other than - gcpro1, gcpro2, etc. - (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms - of the new macros. - (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second - argument, for consistency with GCPRO2_VAR, etc: it is now the - prefix of the variable, not the variable itself. All uses - changed. - * dired.c (directory_files_internal, file_name_completion): - Rename locals to avoid shadowing. - - Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254). - An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in - dired.c's scmp function, had undefined behavior. - * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP): - (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ... - * buffer.h: ... to here, because these macros use current_buffer, - and the new implementation with inline functions needs to have - current_buffer in scope now, rather than later when the macros - are used. - (downcase, upcase1): New static inline functions. - (DOWNCASE, UPCASE1): Reimplement using these functions. - This avoids undefined behavior in expressions like - DOWNCASE (x) == DOWNCASE (y), which previously suffered - from race conditions in accessing the global variables - case_temp1 and case_temp2. - * casetab.c (case_temp1, case_temp2): Remove; no longer needed. - * lisp.h (case_temp1, case_temp2): Remove their decls. - * character.h (ASCII_CHAR_P): Move from here ... - * lisp.h: ... to here, so that the inline functions mentioned - above can use them. - - * dired.c (directory_files_internal_unwind): Now static. - - * fileio.c (file_name_as_directory, directory_file_name): - (barf_or_query_if_file_exists, auto_save_error, auto_save_1): - Now static. - (file_name_as_directory): Use const pointers when appropriate. - (Fexpand_file_name): Likewise. In particular, newdir might - point at constant storage, so make it a const pointer. - (Fmake_directory_internal, Fread_file_name): Remove unused vars. - (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer - signedness issues. - (Fset_file_times, Finsert_file_contents, auto_save_error): - Rename locals to avoid shadowing. - - * minibuf.c (choose_minibuf_frame_1): Now static. - (Ftry_completion, Fall_completions): Rename or remove locals - to avoid shadowing. - - * marker.c (bytepos_to_charpos): Remove; unused. - - * lisp.h (verify_bytepos, count_markers): New decls, - so that gcc does not warn that these functions aren't declared. - - * insdel.c (check_markers, make_gap_larger, make_gap_smaller): - (reset_var_on_error, Fcombine_after_change_execute_1): Now static. - (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic. - (copy_text): Remove unused local var. - - * filelock.c (within_one_second): Now static. - (lock_file_1): Rename local to avoid shadowing. - - * buffer.c (fix_overlays_before): Mark locals as initialized. - (fix_start_end_in_overlays): Likewise. This function should be - simplified by using pointers-to-pointers, but that's a different - matter. - (switch_to_buffer_1): Now static. - (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte): - (report_overlay_modification): Rename locals to avoid shadowing. - - * sysdep.c (system_process_attributes): Rename vars to avoid shadowing. - Fix pointer signedness issue. - (sys_subshell): Mark local as volatile if checking for lint, - to suppress a gcc -Wclobbered warning that does not seem to be right. - (MAXPATHLEN): Define only if needed. - - * process.c (serial_open, serial_configure): Move decls from here ... - * systty.h: ... to here, so that they can be checked. - - * fns.c (get_random, seed_random): Move extern decls from here ... - * lisp.h: ... to here, so that they can be checked. - - * sysdep.c (reset_io): Now static. - (wait_for_termination_signal): Remove; unused. - - * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal): - (copy_keymap_item, append_key, push_text_char_description): - Now static. - (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily. - (DENSE_TABLE_SIZE): Remove; unused. - (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal): - (describe_map_tree): - Rename locals to avoid shadowing. - - * keyboard.c: Declare functions static if they are not used elsewhere. - (echo_char, echo_dash, cmd_error, top_level_2): - (poll_for_input, handle_async_input): Now static. - (read_char, kbd_buffer_get_event, make_lispy_position): - (make_lispy_event, make_lispy_movement, apply_modifiers): - (decode_keyboard_code, tty_read_avail_input, menu_bar_items): - (parse_tool_bar_item, read_key_sequence, Fread_key_sequence): - (Fread_key_sequence_vector): Rename locals to avoid shadowing. - (read_key_sequence, read_char): Mark locals as initialized. - (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN. - - * keyboard.h (make_ctrl_char): New decl. - (mark_kboards): Move decl here ... - * alloc.c (mark_kboards): ... from here. - - * lisp.h (force_auto_save_soon): New decl. - - * emacs.c (init_cmdargs): Rename local to avoid shadowing. - (DEFINE_DUMMY_FUNCTION): New macro. - (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main): - Use it. - (main): Add casts to avoid warnings - if GCC considers string literals to be constants. - - * lisp.h (fatal_error_signal): Add decl, since it's exported. - - * dbusbind.c: Pointer signedness fixes. - (xd_signature, xd_append_arg, xd_initialize): - (Fdbus_call_method, Fdbus_call_method_asynchronously): - (Fdbus_method_return_internal, Fdbus_method_error_internal): - (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service): - (Fdbus_register_signal): Use SSDATA when the context wants char *. - - * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning - if GCC considers string literals to be constants. - (Fdbus_register_service, Fdbus_register_method): Remove unused vars. - -2011-03-16 Stefan Monnier - - * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro. - (print_preprocess, print_object): New macro to fix last change. - - * print.c (print_preprocess): Don't forget font objects. - -2011-03-16 Juanma Barranquero - - * emacs.c (USAGE3): Doc fixes. - -2011-03-15 Andreas Schwab - - * coding.c (detect_coding_iso_2022): Reorganize code to clarify - structure. - -2011-03-14 Juanma Barranquero - - * lisp.h (VWindow_system, Qfile_name_history): - * keyboard.h (lispy_function_keys) [WINDOWSNT]: - * w32term.h (w32_system_caret_hwnd, w32_system_caret_height) - (w32_system_caret_x, w32_system_caret_y): Declare extern. - - * w32select.c: Don't #include "keyboard.h". - (run_protected): Add extern declaration for waiting_for_input. - - * w32.c (Qlocal, noninteractive1, inhibit_window_system): - * w32console.c (detect_input_pending, read_input_pending) - (encode_terminal_code): - * w32fns.c (quit_char, lispy_function_keys, Qtooltip) - (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x) - (w32_system_caret_y, Qfile_name_history): - * w32font.c (w32font_driver, QCantialias, QCotf, QClang): - * w32inevt.c (reinvoke_input_signal, lispy_function_keys): - * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map) - (Qoverriding_terminal_local_map, Qmenu_bar_update_hook): - * w32proc.c (Qlocal, report_file_error): - * w32term.c (Vwindow_system, updating_frame): - * w32uniscribe.c (initialized, uniscribe_font_driver): - Remove unneeded extern declarations. - -2011-03-14 Chong Yidong - - * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions. - -2011-03-13 Chong Yidong - - * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT) - (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219). - These macros can no longer be used for assignment. - - * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): - Assign struct members directly, instead of using BUF_BEGV etc. - (record_buffer_markers, fetch_buffer_markers): New functions for - recording and fetching special buffer markers. - (set_buffer_internal_1, set_buffer_temp): Use them. - - * lread.c (unreadchar): Use SET_BUF_PT_BOTH. - - * insdel.c (adjust_point): Use SET_BUF_PT_BOTH. - - * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH. - (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH. - - * xdisp.c (hscroll_window_tree): - (reconsider_clip_changes): Use PT instead of BUF_PT. - -2011-03-13 Eli Zaretskii - - * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on - $(EMACS_ROOT)/lib/intprops.h. - -2011-03-13 Paul Eggert - - Fix more problems found by GCC 4.5.2's static checks. - - * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char * - to unsigned char * to avoid compiler diagnostic. - (xg_free_frame_widgets): Make it clear that a local variable is - needed only if USE_GTK_TOOLTIP. - (gdk_window_get_screen): Make it clear that this macro is needed - only if USE_GTK_TOOLTIP. - (int_gtk_range_get_value): New function, which avoids a diagnostic - from gcc -Wbad-function-cast. - (xg_set_toolkit_scroll_bar_thumb): Use it. - (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid - diagnostic from gcc -Wbad-function-cast. - (get_utf8_string, xg_get_file_with_chooser): - Rename locals to avoid shadowing. - (create_dialog): Move locals to avoid shadowing. - - * xgselect.c (xg_select): Remove unused var. - - * image.c (four_corners_best): Mark locals as initialized. - (gif_load): Initialize transparent_p to zero (Bug#8238). - Mark another local as initialized. - (my_png_error, my_error_exit): Mark with NO_RETURN. - - * image.c (clear_image_cache): Now static. - (DIM, HAVE_STDLIB_H_1): Remove unused macros. - (xpm_load): Redo to avoid "discards qualifiers" gcc warning. - (x_edge_detection): Remove unnecessary cast that - gcc -Wbad-function-cast diagnoses. - (gif_load): Fix pointer signedness. - (clear_image_cache, xbm_read_bitmap_data, x_detect_edges): - (jpeg_load, gif_load): Rename locals to avoid shadowing. - -2011-03-12 Paul Eggert - - Improve quality of tests for time stamp overflow. - For example, without this patch (encode-time 0 0 0 1 1 - 1152921504606846976) returns the obviously-bogus value (-948597 - 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly - reports time overflow. See - . - * deps.mk (editfns.o): Depend on ../lib/intprops.h. - * editfns.c: Include limits.h and intprops.h. - (TIME_T_MIN, TIME_T_MAX): New macros. - (time_overflow): Move earlier, to before first use. - (hi_time, lo_time): New functions, for an accurate test for - out-of-range times. - (Fcurrent_time, Fget_internal_run_time, make_time): Use them. - (Fget_internal_run_time): Don't assume time_t fits in int. - (make_time): Use list2 instead of Fcons twice. - (Fdecode_time): More accurate test for out-of-range times. - (check_tm_member): New function. - (Fencode_time): Use it, to test for out-of-range times. - (lisp_time_argument): Don't rely on undefined left-shift and - right-shift behavior when checking for time stamp overflow. - - * editfns.c (time_overflow): New function, refactoring common code. - (Fformat_time_string, Fdecode_time, Fencode_time): - (Fcurrent_time_string): Use it. - - Move 'make_time' to be next to its inverse 'lisp_time_argument'. - * dired.c (make_time): Move to ... - * editfns.c (make_time): ... here. - * systime.h: Note the move. - -2011-03-12 YAMAMOTO Mitsuharu - - * fringe.c (update_window_fringes): Remove unused variables. - - * unexmacosx.c (copy_data_segment): Also copy __got section. - (Bug#8223) - -2011-03-12 Eli Zaretskii - - * termcap.c [MSDOS]: Include "msdos.h". - (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent): - Constify `char *' arguments and their references according to - prototypes in tparam.h. - - * deps.mk (termcap.o): Depend on tparam.h and msdos.h. - - * msdos.c (XMenuAddPane): 3rd argument is `const char *' now. - Adapt all references accordingly. - - * msdos.h (XMenuAddPane): 3rd argument is `const char *' now. - -2011-03-11 Tom Tromey - - * buffer.c (syms_of_buffer): Remove obsolete comment. - -2011-03-11 Eli Zaretskii - - * termhooks.h (encode_terminal_code): Declare prototype. - - * msdos.c (encode_terminal_code): Don't declare prototype. - - * term.c (encode_terminal_code): Now external again, used by - w32console.c and msdos.c. - - * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)): - Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu. - -2011-03-11 Paul Eggert - - Fix some minor problems found by GCC 4.5.2's static checks. - - * fringe.c (update_window_fringes): Mark locals as initialized - (Bug#8227). - (destroy_fringe_bitmap, init_fringe_bitmap): Now static. - - * alloc.c (mark_fringe_data): Move decl from here ... - * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here, - to check its interface. - (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM. - - * fontset.c (free_realized_fontset): Now static. - (Fset_fontset_font): Rename local to avoid shadowing. - (fontset_font): Mark local as initialized. - (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused. - - * xrdb.c: Include "xterm.h", to check x_load_resources's interface. - - * xselect.c (x_disown_buffer_selections): Remove; not used. - (TRACE3) [!defined TRACE_SELECTION]: Remove; not used. - (x_own_selection, Fx_disown_selection_internal): Rename locals - to avoid shadowing. - (x_handle_dnd_message): Remove local to avoid shadowing. - - * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros, - so that the caller can use some name other than gcpro1. - (GCPRO1, UNGCPRO): Reimplement in terms of the new macros. - * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip): - (Fx_backspace_delete_keys_p): - Use them to avoid shadowing, and rename vars to avoid shadowing. - (x_decode_color, x_set_name, x_window): Now static. - (Fx_create_frame): Add braces to silence GCC warning. - (Fx_file_dialog, Fx_select_font): Fix pointer signedness. - (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame): - Remove unused locals. - (Fx_create_frame, x_create_tip_frame, Fx_show_tip): - (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing. - Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR - macros. - - * xterm.h (x_mouse_leave): New decl. - - * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame): - Remove unused functions. - (x_shift_glyphs_for_insert, XTflash, XTring_bell): - (x_calc_absolute_position): Now static. - (XTread_socket): Don't define label "out" unless it's used. - Don't declare local "event" unless it's used. - (x_iconify_frame, x_free_frame_resources): Don't declare locals - unless they are used. - (XEMBED_VERSION, xembed_set_info): Don't define unless needed. - (x_fatal_error_signal): Remove; not used. - (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position): - (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor): - (x_error_catcher, x_connection_closed, x_error_handler): - (x_error_quitter, xembed_send_message, x_iconify_frame): - (my_log_handler): Rename locals to avoid shadowing. - (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN. - (x_connection_closed): Tell GCC not to suggest NO_RETURN. - - * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font): - Rename or move locals to avoid shadowing. - (tty_defined_color, merge_face_heights): Now static. - (free_realized_faces_for_fontset): Remove; not used. - (Fx_list_fonts): Mark variable that gcc -Wuninitialized - does not deduce is never used uninitialized. - (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used. - (LFACEP): Define only if XASSERTS, as it's not needed otherwise. - - * terminal.c (store_terminal_param): Now static. - - * xmenu.c (menu_highlight_callback): Now static. - (set_frame_menubar): Remove unused local. - (xmenu_show): Rename parameter to avoid shadowing. - (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const" - since they might point to immutable storage. - (next_menubar_widget_id): Declare only if USE_X_TOOLKIT, - since it's unused otherwise. - - * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff. - Add a FIXME, since the code still doesn't look right. (Bug#8215) - (Fcurrent_bidi_paragraph_direction): Simplify slightly; this - avoids a gcc -Wuninitialized diagnostic. - (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs): - (note_mouse_highlight): Mark variables that gcc -Wuninitialized - does not deduce are never used uninitialized. - - * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c. - - * xdisp.c (redisplay_window): Rename local to avoid shadowing. - * window.c (window_loop, size_window): - (run_window_configuration_change_hook, enlarge_window): Likewise. - - * window.c (display_buffer): Now static. - (size_window): Mark variables that gcc -Wuninitialized - does not deduce are never used uninitialized. - * window.h (check_all_windows): New decl, to forestall - gcc -Wmissing-prototypes diagnostic. - * dispextern.h (bidi_dump_cached_states): Likewise. - - * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid - shadowing. - * charset.c (map_charset_for_dump, Fchar_charset): Likewise. - Include . - (Fsort_charsets): Redo min/max calculation to shorten the code a bit - and to avoid gcc -Wuninitialized warning. - (load_charset_map): Mark variables that gcc -Wuninitialized - does not deduce are never used uninitialized. - (load_charset): Abort instead of using uninitialized var (Bug#8229). - - * coding.c (coding_set_source, coding_set_destination): - Use "else { /* comment */ }" rather than "else /* comment */;" - for clarity, and to avoid gcc -Wempty-body warning. - (Fdefine_coding_system_internal): Don't redeclare 'i' inside - a block, when the outer 'i' will do. - (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule): - (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022): - (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5): - (decode_coding_raw_text, decode_coding_charset, get_translation_table): - (Fdecode_sjis_char, Fdefine_coding_system_internal): - Rename locals to avoid shadowing. - * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise. - * coding.c (emacs_mule_char, encode_invocation_designation): - Now static, since they're not used elsewhere. - (decode_coding_iso_2022): Add "default: abort ();" as a safety check. - (decode_coding_object, encode_coding_object, detect_coding_system): - (decode_coding_emacs_mule): Mark variables that gcc - -Wuninitialized does not deduce are never used uninitialized. - (detect_coding_iso_2022): Initialize a local variable that might - be used uninitialized. Leave a FIXME because it's not clear that - this initialization is needed. (Bug#8211) - (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT): - (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P): - (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER): - (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R): - Remove unused macros. - - * category.c (hash_get_category_set): Remove unused local var. - (copy_category_table): Now static, since it's not used elsewhere. - * character.c (string_count_byte8): Likewise. - - * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string): - (Fregister_code_conversion_map): Rename locals to avoid shadowing. - - * chartab.c (copy_sub_char_table): Now static, since it's not used - elsewhere. - (sub_char_table_ref_and_range, char_table_ref_and_range): - Rename locals to avoid shadowing. - (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros. - - * bidi.c (bidi_check_type): Now static, since it's not used elsewhere. - (BIDI_BOB): Remove unused macro. - - * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not - deduce are never used uninitialized. - * term.c (encode_terminal_code): Likewise. - - * term.c (encode_terminal_code): Now static. Remove unused local. - - * tparam.h: New file. - * term.c, tparam.h: Include it. - * deps.mk (term.o, tparam.o): Depend on tparam.h. - * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr): - Move these decls to tparam.h, and make them agree with what - is actually in tparam.c. The previous trick of using incompatible - decls in different modules does not conform to the C standard. - All callers of tparam changed to use tparam's actual API. - * tparam.c (tparam1, tparam, tgoto): - Use const pointers where appropriate. - - * cm.c (calccost, cmgoto): Use const pointers where appropriate. - * cm.h (struct cm): Likewise. - * dispextern.h (do_line_insertion_deletion_costs): Likewise. - * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise. - * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table): - (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph): - (turn_on_face, init_tty): Likewise. - * termchar.h (struct tty_display_info): Likewise. - - * term.c (term_mouse_position): Rename local to avoid shadowing. - - * alloc.c (mark_ttys): Move decl from here ... - * lisp.h (mark_ttys): ... to here, so that it's checked against defn. - -2011-03-11 Andreas Schwab - - * .gdbinit (pwinx, xbuffer): Fix access to buffer name. - -2011-03-09 Juanma Barranquero - - * search.c (compile_pattern_1): Remove argument regp, unused since - revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig. - (compile_pattern): Don't pass it. - -2011-03-08 Jan Djärv - - * xterm.h (DEFAULT_GDK_DISPLAY): New define. - (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines - for ! HAVE_GTK3. - (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID. - - * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size. - - * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define - gdk_window_get_screen, gdk_window_get_geometry, - gdk_x11_window_lookup_for_display and GDK_KEY_g. - (xg_set_screen): Use DEFAULT_GDK_DISPLAY. - (xg_get_pixbuf_from_pixmap): New function. - (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap - to Pixmap, take frame as parameter, remove GdkColormap parameter. - Call xg_get_pixbuf_from_pixmap instead of - gdk_pixbuf_get_from_drawable. - (xg_get_image_for_pixmap): Do not make GdkPixmaps, call - xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead. - (xg_check_special_colors): Use GtkStyleContext and its functions - for HAVE_GTK3. - (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen. - (xg_prepare_tooltip, create_dialog, menubar_map_cb) - (xg_update_frame_menubar, xg_tool_bar_detach_callback) - (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes): - Call gtk_widget_get_preferred_size. - (xg_frame_resized): gdk_window_get_geometry only takes 5 - parameters. - (xg_win_to_widget, xg_event_is_for_menubar): - Call gdk_x11_window_lookup_for_display. - (xg_set_widget_bg): New function. - (delete_cb): New function. - (xg_create_frame_widgets): Connect delete-event to delete_cb. - Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3 - (xg_set_background_color): Call xg_set_widget_bg. - (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask. - (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3. - Only call gtk_range_set_update_policy if ! HAVE_GTK3. - (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback - if ! HAVE_GTK3. - (update_frame_tool_bar): Call gtk_widget_hide. - (xg_initialize): Use GDK_KEY_g. - - * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id - if ! HAVE_GTK3 - (x_session_initialize): Call gdk_x11_set_sm_client_id. - - * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3. - (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS. - Load ~/emacs.d/gtkrc only for ! HAVE_GTK3. - -2011-03-08 Juanma Barranquero - - * w32xfns.c (select_palette): Check success of RealizePalette against - GDI_ERROR, not zero. - -See ChangeLog.11 for earlier changes. - -;; Local Variables: -;; coding: utf-8 -;; End: - - Copyright (C) 2011-2013 Free Software Foundation, Inc. - - This file is part of GNU Emacs. - - GNU Emacs is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - GNU Emacs is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU Emacs. If not, see . +2013-06-19 Juanma Barranquero + + * sound.c (string_default): Move to !WINDOWSNT section. + (Fplay_sound_internal) [WINDOWSNT]: Remove i_result to avoid warning. + +2013-06-19 Paul Eggert + + * sound.c: Integer cleanups. + Remove unnecessary forward decls. + (struct sound_device): The 'file' member is now a Lisp_Object, not + a char *, so that we needn't invoke alloca on a huge size. + (Fplay_sound_internal): Adjust to this. + (string_default): New function. + (vox_open, vox_init, alsa_open, alsa_configure, alsa_init): + Use it to adjust to the struct sound_device change. + (parse_sound, wav_init, au_init, alsa_init): Use bool for booleans. + (be2hs) [0]: Remove. + + * syntax.c (skip_chars): Don't use uninitialized storage + when searching a multibyte buffer for characters that are not in a + unibyte string that contains non-ASCII characters. + +2013-06-18 Jan Djärv + + * process.c: Include xgselect.h if HAVE_GLIB. Include glib.h + if HAVE_GLIB && ! WINDOWSNT (Bug#14654). + +2013-06-18 Paul Eggert + + * conf_post.h: Add comments for INLINE, EXTERN_INLINE, etc. + +2013-06-18 Kenichi Handa + + * font.c (Ffont_spec): Signal an error for an invalid font name + (Bug#14648). + +2013-06-18 Paul Eggert + + Porting fixes for merged specpdl and backtrace stacks (Bug#14643). + In particular this ports to 32-bit sparc Sun cc. + * eval.c (init_eval_once, grow_specpdl): Allocate a specbinding + array with a dummy element at specpdl[-1], so that its address can + be taken portably. + (unbind_to): Do not copy the binding; not needed, now that we + copy old_value in the one place where the copy is needed. + * fileio.c (Fwrite_region): Use ptrdiff_t, not int, for specpdl count. + * lisp.h (BITS_PER_PTRDIFF_T): Remove; no longer needed. + (union specbinding): Rename from struct specbinding. Redo layout + to avoid the need for 'ptrdiff_t nargs : BITS_PER_PTRDIFF_T - 1;', + which is not portable. With Sun C 5.12 32-bit sparc, the + declaration causes nargs to be an unsigned bitfield, a behavior + that the C standard allows; but Emacs wants nargs to be signed. + The overall type is now a union of structures rather than a + structure of union of structures, and the 'kind' member is now a + bitfield, so that the overall type doesn't grow. All uses changed. + * process.c (Fmake_serial_process): Remove unnecessary initialization. + +2013-06-17 Paul Eggert + + * frame.c (x_report_frame_params): Cast parent_desc to uintptr_t. + Needed if HAVE_NTGUI. Reported by Juanma Barranquero. + + * nsfont.m (ns_registry_to_script): Parenthesize while expression. + +2013-06-17 Eli Zaretskii + + * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT + unless we know that the window w's frame is a frame object. + Another attempt at solving bug#14062 and bug#14630. + +2013-06-17 Lars Magne Ingebrigtsen + + * textprop.c (property_set_type): New enum. + (add_properties): Allow appending/prepending text properties. + (add_text_properties_1): Factored out of Fadd_text_properties. + (Fadd_text_properties): Moved all the code into + add_text_properties_1. + (Fadd_face_text_property): New function that calls + add_text_properties_1. + +2013-06-17 Paul Eggert + + Move functions from lisp.h to individual modules when possible. + From a suggestion by Andreas Schwab in . + * alloc.c (XFLOAT_INIT, set_symbol_name): + * buffer.c (CHECK_OVERLAY): + * chartab.c (CHECK_CHAR_TABLE, set_char_table_ascii) + (set_char_table_parent): + * coding.c (CHECK_NATNUM_CAR, CHECK_NATNUM_CDR): + * data.c (BOOLFWDP, INTFWDP, KBOARD_OBJFWDP, OBJFWDP, XBOOLFWD) + (XKBOARD_OBJFWD, XINTFWD, XOBJFWD, CHECK_SUBR, set_blv_found) + (blv_value, set_blv_value, set_blv_where, set_blv_defcell) + (set_blv_valcell): + * emacs.c (setlocale) [!HAVE_SETLOCALE]: + * eval.c (specpdl_symbol, specpdl_old_value, specpdl_where) + (specpdl_arg, specpdl_func, backtrace_function, backtrace_nargs) + (backtrace_args, backtrace_debug_on_exit): + * floatfns.c (CHECK_FLOAT): + * fns.c (CHECK_HASH_TABLE, CHECK_LIST_END) + (set_hash_key_and_value, set_hash_next, set_hash_next_slot) + (set_hash_hash, set_hash_hash_slot, set_hash_index) + (set_hash_index_slot): + * keymap.c (CHECK_VECTOR_OR_CHAR_TABLE): + * marker.c (CHECK_MARKER): + * textprop.c (CHECK_STRING_OR_BUFFER): + * window.c (CHECK_WINDOW_CONFIGURATION): + Move here from lisp.h, and make these functions static rather than + extern inline. + * buffer.c (Qoverlayp): + * data.c (Qsubrp): + * fns.c (Qhash_table_p): + * window.c (Qwindow_configuration_p): + Now static. + * lisp.h: Remove the abovementioned defns and decls. + + Use functions, not macros, for XINT etc. (Bug#11935). + In lisp.h, prefer functions to function-like macros, and + constants to object-like macros, when either will do. This: + . simplifies use, as there's no more need to worry about + arguments' side effects being evaluated multiple times. + . makes the code easier to debug on some platforms. + However, when using gcc -O0, keep using function-like macros + for a few critical operations, for performance reasons. + This sort of thing isn't needed with gcc -Og, but -Og + is a GCC 4.8 feature and isn't widely-enough available yet. + * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: + Remove enum lsb_bits; no longer needed. + (allocate_misc, free_misc): Don't use XMISCTYPE as an lvalue. + * buffer.c (Qoverlap): + * data.c (Qsubrp): + * fns.c (Qhash_table_p): + Now extern, so lisp.h can use these symbols. + * dispextern.h: Include character.h, for MAX_CHAR etc. + (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE) + (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE) + (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P) + (GLYPH_CODE_P): Move here from lisp.h. + (GLYPH_CHAR, GLYPH_FACE, GLYPH_CODE_CHAR, GLYPH_CODE_FACE) + (GLYPH_CHAR_VALID_P, GLYPH_CODE_P): Now functions, not macros. + (GLYPH_MODE_LINE_FACE): Now enums, not macros. + * eval.c (Fautoload): Cast XUNTAG output to intptr_t, since + XUNTAG now returns void *. + * lisp.h (lisp_h_XLI, lisp_h_XIL, lisp_h_CHECK_LIST_CONS) + (lisp_h_CHECK_NUMBER CHECK_SYMBOL, lisp_h_CHECK_TYPE) + (lisp_h_CONSP, lisp_h_EQ, lisp_h_FLOATP, lisp_h_INTEGERP) + (lisp_h_MARKERP, lisp_h_MISCP, lisp_h_NILP) + (lisp_h_SET_SYMBOL_VAL, lisp_h_SYMBOL_CONSTANT_P) + (lisp_h_SYMBOL_VAL, lisp_h_SYMBOLP, lisp_h_VECTORLIKEP) + (lisp_h_XCAR, lisp_h_XCDR, lisp_h_XCONS, lisp_h_XHASH) + (lisp_h_XPNTR, lisp_h_XSYMBOL): + New macros, renamed from their sans-lisp_h_ counterparts. + (XLI, XIL, CHECK_LIST_CONS, CHECK_NUMBER CHECK_SYMBOL) + (CHECK_TYPE, CONSP, EQ, FLOATP, INTEGERP, MARKERP) + (MISCP, NILP, SET_SYMBOL_VAL, SYMBOL_CONSTANT_P, SYMBOL_VAL, SYMBOLP) + (VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, XPNTR, XSYMBOL): + If compiling via GCC without optimization, define these as macros + in addition to inline functions. + To disable this, compile with -DINLINING=0. + (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): New macros. + (check_cons_list) [!GC_CHECK_CONS_LIST]: Likewise. + (make_number, XFASTINT, XINT, XTYPE, XUNTAG): Likewise, but + hand-optimize only in the USE_LSB_TAG case, as GNUish hosts do that. + (INTMASK, VALMASK): Now macros, since static values cannot be + accessed from extern inline functions. + (VALMASK): Also a constant, for benefit of old GDB. + (LISP_INT_TAG_P): Remove; no longer needed as the only caller + is INTEGERP, which can fold it in. + (XLI, XIL, XHASH, XTYPE,XINT, XFASTINT, XUINT) + (make_number, XPNTR, XUNTAG, EQ, XCONS, XVECTOR, XSTRING, XSYMBOL) + (XFLOAT, XPROCESS, XWINDOW, XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE) + (XSUB_CHAR_TABLE, XBOOL_VECTOR, make_lisp_ptr, CHECK_TYPE) + (CHECK_STRING_OR_BUFFER, XCAR, XCDR, XSETCAR, XSETCDR, CAR, CDR) + (CAR_SAFE, CDR_SAFE, STRING_MULTIBYTE, SDATA, SSDATA, SREF, SSET) + (SCHARS, STRING_BYTES, SBYTES, STRING_SET_CHARS, STRING_COPYIN, AREF) + (ASIZE, ASET, CHAR_TABLE_REF_ASCII, CHAR_TABLE_REF) + (CHAR_TABLE_SET, CHAR_TABLE_EXTRA_SLOTS, SYMBOL_VAL, SYMBOL_ALIAS) + (SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL, SET_SYMBOL_ALIAS) + (SET_SYMBOL_BLV, SET_SYMBOL_FWD, SYMBOL_NAME, SYMBOL_INTERNED_P) + (SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P, SYMBOL_CONSTANT_P) + (XHASH_TABLE, HASH_TABLE_P, CHECK_HASH_TABLE, HASH_KEY, HASH_VALUE) + (HASH_NEXT, HASH_HASH, HASH_INDEX, HASH_TABLE_SIZE) + (XMISC, XMISCANY, XMARKER, XOVERLAY, XSAVE_VALUE, XFWDTYPE) + (XINTFWD, XBOOLFWD, XOBJFWD, XBUFFER_OBJFWD, XKBOARD_OBJFWD) + (XFLOAT_DATA, XFLOAT_INIT, NILP, NUMBERP, NATNUMP) + (RANGED_INTEGERP, CONSP, FLOATP, MISCP, STRINGP, SYMBOLP) + (INTEGERP, VECTORLIKEP, VECTORP, OVERLAYP) + (MARKERP, SAVE_VALUEP, AUTOLOADP, INTFWDP, BOOLFWDP, OBJFWDP) + (BUFFER_OBJFWDP, KBOARD_OBJFWDP, PSEUDOVECTOR_TYPEP) + (PSEUDOVECTORP, WINDOW_CONFIGURATIONP, PROCESSP, WINDOWP) + (TERMINALP, SUBRP, COMPILEDP, BUFFERP, CHAR_TABLE_P) + (SUB_CHAR_TABLE_P, BOOL_VECTOR_P, FRAMEP, IMAGEP, ARRAYP) + (CHECK_LIST, CHECK_LIST_CONS, CHECK_LIST_END, CHECK_STRING) + (CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE) + (CHECK_VECTOR, CHECK_VECTOR_OR_STRING, CHECK_ARRAY) + (CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER, CHECK_WINDOW) + (CHECK_WINDOW_CONFIGURATION, CHECK_PROCESS, CHECK_SUBR) + (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, XFLOATINT) + (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT, CHECK_OVERLAY) + (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR, CHECK_NATNUM_CAR) + (CHECK_NATNUM_CDR, FUNCTIONP, SPECPDL_INDEX, LOADHIST_ATTACH) + Now functions. + (check_cons_list) [!GC_CHECK_CONS_LIST]: New empty function. + (LISP_MAKE_RVALUE, TYPEMASK): Remove; no longer needed. + (VALMASK): Define in one place rather than in two, merging the + USE_LSB_TAG parts; this is simpler. + (aref_addr, gc_aset, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM) + (max, min, struct Lisp_String, UNSIGNED_CMP, ASCII_CHAR_P): + Move up, to avoid use before definition. + Also include "globals.h" earlier, for the same reason. + (make_natnum): New function. + (XUNTAG): Now returns void *, not intptr_t, as this means fewer casts. + (union Lisp_Fwd, BOOLFWDP, BOOL_VECTOR_P, BUFFER_OBJFWDP, BUFFERP) + (CHAR_TABLE_P, CHAR_TABLE_REF_ASCII, CONSP, FLOATP, INTEGERP, INTFWDP) + (KBOARD_OBJFWDP, MARKERP, MISCP, NILP, OBJFWDP, OVERLAYP, PROCESSP) + (PSEUDOVECTORP, SAVE_VALUEP, STRINGP, SUB_CHAR_TABLE_P, SUBRP, SYMBOLP) + (VECTORLIKEP, WINDOWP, Qoverlayp, char_table_ref, char_table_set) + (char_table_translate, Qarrayp, Qbufferp, Qbuffer_or_string_p) + (Qchar_table_p, Qconsp, Qfloatp, Qintegerp, Qlambda, Qlistp, Qmarkerp) + (Qnil, Qnumberp, Qsubrp, Qstringp, Qsymbolp, Qvectorp) + (Qvector_or_char_table_p, Qwholenump, Ffboundp, wrong_type_argument) + (initialized, Qhash_table_p, extract_float, Qprocessp, Qwindowp) + (Qwindow_configuration_p, Qimage): New forward declarations. + (XSETFASTINT): Simplify by rewriting in terms of make_natnum. + (STRING_COPYIN): Remove; unused. + (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Remove these macros, replacing with ... + (xcar_addr, xcdr_addr): New functions. All uses changed. + (IEEE_FLOATING_POINT): Now a constant, not a macro. + (GLYPH, GLYPH_CHAR, GLYPH_FACE, SET_GLYPH_CHAR, SET_GLYPH_FACE) + (SET_GLYPH, GLYPH_CODE_CHAR, GLYPH_CODE_FACE) + (SET_GLYPH_FROM_GLYPH_CODE, GLYPH_MODE_LINE_FACE, GLYPH_CHAR_VALID_P) + (GLYPH_CODE_P): Move to dispextern.h, to avoid define-before-use. + (TYPE_RANGED_INTEGERP): Simplify. + (Qsubrp, Qhash_table_p, Qoverlayp): New extern decls. + (setlocale, fixup_locale, synchronize_system_messages_locale) + (synchronize_system_time_locale) [!HAVE_SETLOCALE]: + Now empty functions, not macros. + (functionp): Return bool, not int. + * window.c (Qwindow_configuration_p): Now extern, + so window.h can use it. + * window.h (Qwindowp): Move decl back to lisp.h. + +2013-06-15 Eli Zaretskii + + * xdisp.c (Fline_pixel_height): New function, required for solving + bug #14567. + +2013-06-15 Paul Eggert + + * fns.c (Fcopy_sequence): Simplify XTYPE calculation. + +2013-06-13 Stefan Monnier + + * lread.c (syms_of_lread): + * fns.c (Fprovide): Adjust to new format of after-load-alist. + +2013-06-13 Kelly Dean (tiny change) + + * fileio.c (Fdo_auto_save): Trap errors in auto-save-hook. (Bug#14479) + +2013-06-12 Xue Fuqiao + + * fileio.c (expand_file_name): Doc fix. + +2013-06-11 Paul Eggert + + Tickle glib by waiting for Emacs itself, not for process 0 (Bug#14569). + * process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]: + Wait for self, not for 0. This can't hurt on GNU or similar + system, and may help with Cygwin. + + * keyboard.c: Don't use PROP (...) as an lvalue. + (parse_tool_bar_item) [!USE_GTK && !HAVE_NS]: + Use set_prop (A, B), not PROP (A) = B. + +2013-06-10 Eli Zaretskii + + * xdisp.c (get_it_property): Use it->window instead of generating + a Lisp object from it->w. + +2013-06-09 Eli Zaretskii + + * xdisp.c (get_it_property): If it->object is a buffer, pass to + get-char-property the window that is being rendered, instead of + the buffer, to support window-specific overlays. (Bug#14575) + (compute_display_string_pos): When W is NULL, use the current + buffer as the object to pass to get-char-property. + (Fcurrent_bidi_paragraph_direction): Assign NULL to the window + pointer member of the bidi iterator, since no window is pertinent + to this function. + +2013-06-08 Eli Zaretskii + + * bidi.c (bidi_fetch_char): Accept additional argument, the window + being displayed, and pass it to compute_display_string_pos. + (bidi_level_of_next_char, bidi_resolve_explicit_1) + (bidi_paragraph_init): All callers changed. + + * xdisp.c (init_from_display_pos, init_iterator) + (handle_single_display_spec, next_overlay_string) + (get_overlay_strings_1, reseat_1, reseat_to_string) + (push_prefix_prop, Fcurrent_bidi_paragraph_direction): + Set bidi_it.w member from it->w. + (compute_display_string_pos): Accept additional argument, the + window being displayed, and pass it to Fget_char_property. + (Bug#14575) + + * dispextern.h (struct bidi_it): New member w, the window being + displayed. + (compute_display_string_pos): Adjust prototype. + +2013-06-08 Jan Djärv + + * xgselect.c: Remove unneeded include xterm.h. + + * process.c (wait_reading_process_output): Check for NS before GLIB. + GLIB may be linked in due to rsvg, but ns_select must be called. + + * xgselect.c (xg_select): Remove call to window_system_available + and g_main_context_pending at the top, so Gdk events (i.e. file + notify) are processed when Emacs is started with -nw. + +2013-06-07 Eli Zaretskii + + * Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files. + (ctagsfiles3): New variable, includes only *.m files. + (TAGS): Use an explicit language name in the regular expressions, + to avoid transformation of '/SOMETHING' by MSYS to + 'c:\MSYS\SOMETHING'. + +2013-06-07 Richard Copley (tiny change) + + * epaths.in: Fix commentary to PATH_SITELOADSEARCH. + +2013-06-06 Eli Zaretskii + + * xdisp.c (note_mouse_highlight): When mouse-highlight is off, + still need to set the mouse pointer shape and activate help-echo. + (Bug#14558) + +2013-06-06 Paul Eggert + + A few porting etc. fixes for the new file monitor code. + See the thread containing + . + * gfilenotify.c (dir_monitor_callback, Fgfile_add_watch) + (Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer. + (dir_monitor_callback, Fgfile_rm_watch): + Use assq_no_quit instead of Fassoc, for speed. + (dir_monitor_callback, Fgfile_rm_watch): + eassert that the monitor is a fixnum. + (dir_monitor_callback): No need for CDR_SAFE. + Simplify building of lisp with alternative tails. + (Fgfile_add_watch, Fgfile_rm_watch): + Do not assume glib functions set errno reliably on failure. + (Fgfile_add_watch): Check that the monitor survives the XIL trick, + and signal an error otherwise. + (Fgfile_rm_watch): Prefer CONSP to !NILP. + Use Fdelq instead of Fdelete, for speed. + +2013-06-05 Eli Zaretskii + + * xdisp.c (handle_tool_bar_click): When mouse-highlight is off, + don't insist on being invoked on a highlighted tool-bar button. + Avoids losing tool-bar functionality when mouse-highlight is nil. + (note_tool_bar_highlight, note_mode_line_or_margin_highlight): + Don't highlight when mouse-highlight is nil. + (note_mouse_highlight): When mouse-highlight is nil, don't return + right away; instead, run tool-bar and mode-line highlight + subroutine, clear any existing highlight, and revert the mouse + pointer to its default shape. (Bug#14558) + +2013-06-05 Stefan Monnier + + * lisp.mk (lisp): Add prog-mode.el. + +2013-06-05 Paul Eggert + + Chain glib's SIGCHLD handler from Emacs's (Bug#14474). + * process.c (dummy_handler): New function. + (lib_child_handler): New static var. + (handle_child_signal): Invoke it. + (catch_child_signal): If a library has set up a signal handler, + save it into lib_child_handler. + (init_process_emacs): If using glib and not on Windows, tickle glib's + child-handling code so that it initializes its private SIGCHLD handler. + * syssignal.h (SA_SIGINFO): Default to 0. + * xterm.c (x_term_init): Remove D-bus hack that I installed on May + 31; it should no longer be needed now. + +2013-06-05 Michael Albinus + + * emacs.c (main) [HAVE_GFILENOTIFY]: Call globals_of_gfilenotify. + + * gfilenotify.c (globals_of_gfilenotify): New function. + (syms_of_gfilenotify): Move global initialization there. + + * lisp.h (globals_of_gfilenotify) [HAVE_GFILENOTIFY]: Add prototype. + +2013-06-05 Stefan Monnier + + * keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings): + * keyboard.c (menu_bar_items, tool_bar_items): + * doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does + not override local keymaps any more. + +2013-06-04 Eli Zaretskii + + * window.c (Fpos_visible_in_window_p): Doc fix. (Bug#14540) + +2013-06-03 Eli Zaretskii + + * w32console.c (initialize_w32_display): Return the dimensions of + the console window via 2 additional arguments, not via the current + frame. This avoids crashes due to overrunning the bounds of + frame's decode_mode_spec_buffer, which is not resized following + the change of the frame dimensions from the initial 10x10. + + * w32term.h (w32_initialize_display_info): Adjust prototype. + + * term.c (init_tty): Take dimensions of the frame from the values + returned by initialize_w32_display. + + * Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables. + (ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS). + (LIBES): Add $(GFILENOTIFY_LIBS). + + * w32inevt.c (handle_file_notifications): Add dummy implementation + for !HAVE_W32NOTIFY. + + * w32term.c: Wrap code with HAVE_W32NOTIFY. + +2013-06-03 Jan Djärv + + * xgselect.c: Replace #if defined ... with #ifdef HAVE_GLIB. + + * process.c (wait_reading_process_output): Call xg_select if HAVE_GLIB. + + * Makefile.in (XGSELOBJ): New, xgselect.o if GLib is used, or empty. + +2013-06-03 Paul Eggert + + Fix minor problems found by static checking. + * data.c (pure_write_error): + Use xsignal2, not Fsignal, as Fsignal might return. + * eval.c (set_backtrace_debug_on_exit): Now static. + (backtrace_p, backtrace_top, backtrace_next, record_in_backtrace): + No longer inline. EXTERN_INLINE is needed only for functions + defined in .h files. Reindent function header as per GNU style. + (backtrace_p, backtrace_top, backtrace_next): + Mark EXTERNALLY_VISIBLE so they don't get optimized away by the + compiler or linker. Add extern decls to pacify gcc -Wall. + * frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): + Now static. + * frame.c (free_monitors): Define only on platforms that need it. + * nsterm.m (ns_term_init): + * process.c (catch_child_signal): + Don't worry about whether SIGCHLD is defined, as SIGCHLD is + defined on all porting targets these days. + * process.c, process.h (catch_child_signal): + Make it extern only if NS_IMPL_GNUSTEP is defined. + +2013-06-03 Eli Zaretskii + + * w32.c (gettimeofday): Make the signature identical to prototype + in nt/inc/sys/time.h. + +2013-06-03 Stefan Monnier + + * eval.c (backtrace_p, backtrace_top, backtrace_next): Export them to + .gdbinit. + + * keyboard.c (safe_run_hooks_error): Improve error message. + + * data.c (pure_write_error): Add `object' argument. + * puresize.h (CHECK_IMPURE): Use it. + +2013-06-03 Michael Albinus + + * Makefile.in (NOTIFY_OBJ): New variable. + (base_obj): Replace inotify.o by $(NOTIFY_OBJ). + + * emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code. + Call syms_of_gfilenotify. + + * gfilenotify.c: New file. + + * keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify + and Qfile_w32notify. + (top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY, + HAVE_W32NOTIFY and USE_FILE_NOTIFY. + + * lisp.h: Declare syms_of_gfilenotify. + + * termhooks.h (e): Wrap enum by USE_FILE_NOTIFY. + +2013-06-03 Stefan Monnier + + Merge the specpdl and backtrace stacks. Make the structure of the + specpdl entries more obvious via a tagged union of structs. + * lisp.h (BITS_PER_PTRDIFF_T): New constant. + (enum specbind_tag): New enum. + (struct specbinding): Make it a tagged union of structs. + Add a case for backtrace records. + (specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg) + (specpdl_func, backtrace_function, backtrace_nargs, backtrace_args) + (backtrace_debug_on_exit): New accessors. + (struct backtrace): Remove. + (struct catchtag): Remove backlist field. + * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p): + Move to eval.c. + (Flocal_variable_p): Speed up the common case where the binding is + already loaded. + * eval.c (backtrace_list): Remove. + (set_specpdl_symbol, set_specpdl_old_value): Remove. + (set_backtrace_args, set_backtrace_nargs) + (set_backtrace_debug_on_exit, backtrace_p, backtrace_top) + (backtrace_next): New functions. + (Fdefvaralias, Fdefvar): Adjust to new specpdl format. + (unwind_to_catch, internal_lisp_condition_case) + (internal_condition_case, internal_condition_case_1) + (internal_condition_case_2, internal_condition_case_n): Don't bother + with backtrace_list any more. + (Fsignal): Adjust to new backtrace format. + (grow_specpdl): Move up. + (record_in_backtrace): New function. + (eval_sub, Ffuncall): Use it. + (apply_lambda): Adjust to new backtrace format. + (let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from + data.c. + (specbind): Adjust to new specpdl format. Simplify. + (record_unwind_protect, unbind_to): Adjust to new specpdl format. + (Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new + backtrace format. + (mark_backtrace): Remove. + (mark_specpdl, get_backtrace, backtrace_top_function): New functions. + * xdisp.c (redisplay_internal): Use record_in_backtrace. + * alloc.c (Fgarbage_collect): Use record_in_backtrace. + Use mark_specpdl. + * profiler.c (record_backtrace): Use get_backtrace. + (handle_profiler_signal): Use backtrace_top_function. + * .gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace + accessor functions. + +2013-06-02 Jan Djärv + + * process.h (catch_child_signal): Declare. + + * process.c (catch_child_signal): New function. + (init_process_emacs): Call it. + + * nsterm.m: Include process.h if NS_IMPL_GNUSTEP. + (ns_menu_bar_is_hidden, menu_will_open_state): Define only if + NS_IMPL_COCOA. + (x_set_cursor_type): Remove declaration. + (ns_update_begin): Only use r and bp if NS_IMPL_COCOA. + (ns_update_end, ns_focus, ns_unfocus): Remove GNUStep specific code. + (x_set_window_size): Remove 3 pixels from toolbar if NS_IMPL_GNUSTEP. + (ns_get_color): Use F suffix on float. + (ns_color_to_lisp, ns_query_color): Use EmacsCGFloat. + (ns_get_rgb_color): Remove. + (x_set_frame_alpha): Move view inside NS_IMPL_COCOA. + (note_mouse_movement): x and y are CGFloat. + (ns_draw_fringe_bitmap): Remove unused rowY. + Change #if to COCOA && >= 10_6. + (ns_draw_window_cursor): Remove unused overspill. + (ns_draw_underwave): width and x are EamcsCGFloat. + (ns_draw_box): thickness is CGFloat. + (ns_dumpglyphs_image): Change #if to COCOA && >= 10_6. + (ns_send_appdefined): When NS_IMPL_GNUSTEP, redirect to main thread + if not in main thread. + (ns_get_pending_menu_title, ns_check_menu_open) + (ns_check_pending_open_menu): Put inside #if COCOA && >= 10_5. + (ns_term_init): Call catch_child_signal if NS_IMPL_GNUSTEP && SIGCHLD. + (sendFromMainThread:): New method. + (changeFont:): size is CGFloat. + (keyDown:): Check for Delete when NS_IMPL_GNUSTEP. + Disable warning about permanent text. + (characterIndexForPoint:): Adjust return type depending on GNUStep + version. + (mouseDown:): delta is CGFloat. + (updateFrameSize): Remove unised variable f. + (initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA. + Cast float to EmacsCGFloat. + (windowWillUseStandardFrame:defaultFrame:): Set maximized_height + also to -1 when restoring. + (windowDidExitFullScreen:): Put call to updateCollectionBehaviour + inside NS_IMPL_COCOA. + (toggleFullScreen:): Put call to toggleFullScreen inside + NS_IMPL_COCOA. Cast float to EmacsCGFloat. + (setPosition:portion:whole:): por is CGFloat. + (getMouseMotionPart:window:x:y:): Add F suffix to float. + (mouseDown:): Use CGFloat. + (mouseDragged:): Remove unised variable edge. + (EmacsDocument): Implement for NS_IMPL_GNUSTEP. + + * nsterm.h (EmacsCGFloat): Typedef for OSX and GNUStep when the size + of CGFloat differs. + (EmacsApp): New variable nextappdefined. Declare sendFromMainThread + when NS_IMPL_GNUSTEP. + (EmacsDocument): Declare when NS_IMPL_GNUSTEP. + (EmacsView): Remove unlockFocusNeedsFlush, add windowDidMove. + (EmacsToolbar): Add clearAll. Add tag argument to + addDisplayItemWithImage. + (EmacsSavePanel, EmacsOpenPanel): Remove getFilename and getDirectory. + + * nsselect.m (ns_get_local_selection): Remove unused variable type. + + * nsmenu.m (ns_update_menubar): Make static. + (x_activate_menubar): Surround with ifdef NS_IMPL_COCOA + (fillWithWidgetValue:): Add cast to SEL for setAction. + (addSubmenuWithTitle:forFrame:): Add cast to SEL for action. + (update_frame_tool_bar): Update code for GNUStep. + (clearAll): New method. + (addDisplayItemWithImage:idx:tag:helpText:enabled:): Handle new tag + argument. Call insertItemWithItemIdentifier when NS_IMPL_GNUSTEP. + Move identifierToItem setObject and activeIdentifiers addObject before + call to insertItemWithItemIdentifier. + (validateVisibleItems): Fix indentation. + (toolbarAllowedItemIdentifiers:): Return activeIdentifiers. + (initWithContentRect:styleMask:backing:defer:): Add ClosableWindow and + UtilityWindow to aStyle, remove call to setStyleMask. + + * nsimage.m (setXBMColor:, getPixelAtX:Y:): Use EmacsCGFloat. + + * nsfont.m (ns_attribute_fvalue, ns_spec_to_descriptor) + (ns_charset_covers, ns_get_covering_families, nsfont_open): + Use F suffix on floats. + (ns_char_width): Returns CGFloat. + (ns_ascii_average_width): w is CGFloat instead of float. + (nsfont_draw): cbuf and c are unsigned. Cast to char* in call to + DPSxshow. + (ns_glyph_metrics): CGFloat instead of float. + + * nsfns.m (x_set_foreground_color, x_set_background_color): + Use EmacsCGFloat. + (ns_implicitly_set_icon_type, Fx_create_frame): Make static, + remove unused variables. + (Fns_read_file_name): Keep track if panel is for save. + Use ns_filename_from_panel/ns_directory_from_panel. + (Fns_list_services): delegate only used for COCOA. + (Fns_convert_utf8_nfd_to_nfc): Remove warning for GNUStep. + Just return the input if GNUStep. + (x_screen_planes): Remove. + (Fxw_color_values): Use EmacsCGFloat + (Fns_display_monitor_attributes_list): Only get screen number for + Cocoa. + (getDirectory, getFilename): Removed from EmacsOpenPanel and + EmacsSavePanel. + (EmacsOpenPanel:ok:): Use ns_filename_from_panel and + ns_directory_from_panel. + +2013-06-01 Paul Eggert + + * process.c (handle_child_signal): Also use WCONTINUED. + This is so that list-processes doesn't mistakenly list the process + as stopped, when the process has actually been continued and is + now running. + +2013-05-31 Paul Eggert + + Don't let D-bus autolaunch mess up SIGCHLD handling (Bug#14474). + * xterm.c (x_term_init): Inhibit D-Bus autolaunch if D-Bus is + not already configured. + + * fileio.c (Finsert_file_contents): Remove unused local (Bug#8447). + +2013-05-29 Eli Zaretskii + + * Makefile.in (mostlyclean): Remove *.res files. + +2013-05-29 Stefan Monnier + + * fileio.c (Finsert_file_contents): Preserve undo info when reverting + a buffer (bug#8447). + +2013-05-27 Eli Zaretskii + + * xdisp.c (pos_visible_p): When CHARPOS is displayed frrom a + display vector, and we backtrack, handle the case that the + previous character position is also displayed from a display + vector or covered by a display string or image. (Bug#14476) + +2013-05-25 Jan Djärv + + * xfns.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. + (struct MonitorInfo, free_monitors): Remove. + (x_make_monitor_attribute_list): Call make_monitor_attribute_list. + (Fx_display_monitor_attributes_list): Call make_monitor_attribute_list. + (syms_of_xfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, + Qframes, Qsource. + + * nsfns.m (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Remove. + (struct MonitorInfo, free_monitors): Remove. + (ns_screen_name): Make static. + (ns_make_monitor_attribute_list): Call make_monitor_attribute_list. + (syms_of_nsfns): Remove DEFSYM for Qgeometry, Qworkarea, Qmm_size, + Qframes, Qsource. + + * frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare. + (struct MonitorInfo): New struct. + (free_monitors, make_monitor_attribute_list): Declare. + + * frame.c (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): + New Lisp_Object:s. + (free_monitors, make_monitor_attribute_list): New functions. + (syms_of_frame): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes, + Qsource. + +2013-05-25 Xue Fuqiao + + * callproc.c (call_process): Refine the doc string. (Bug#14045) + +2013-05-23 Stefan Monnier + + * keyboard.c: Apply keyboard decoding only to events that come directly + from the tty, not from unread-command-events (bug#14368). + (read_event_from_main_queue): New function, extracted from read_char). + (read_decoded_char): Remove. + (read_decoded_event_from_main_queue): New function to replace it. + (read_char): Use it. + (read_key_sequence): Use read_char rather than read_decoded_char. + + * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403). + +2013-05-22 Barry OReilly (tiny change) + + * casetab.c (init_casetab_once): Fix last change (bug#14424). + +2013-05-22 Kenichi Handa + + The following changes are to fix the setting of + buffer-file-coding-system on, for instance, C-x RET c unix RET + _FILE_OF_DOS_EOL_TYPE_ RET. + + * coding.h (struct coding_system): New member detected_utf8_chars. + + * coding.c (detect_coding_utf_8): Count characters and check EOL + format. Include CATEGORY_MASK_UTF_8_AUTO in detect_info->found if + BOM is there. + (setup_coding_system): Do not initialize coding->head_ascii. + (check_ascii): Do not set coding->eol_seen but update it. Do not + call adjust_coding_eol_type here. + (detect_coding): Fix detection of BOM for utf-8 and utf-16. + If the eol-type of CODING is already specified, adjust the eol type + of the found coding-system. + (decode_coding_gap): Cancel previous change. Utilize the + character numbers counted by detect_coding_utf_8. Fix detection + of BOM for utf-8. + +2013-05-21 Barry OReilly (tiny change) + + * search.c (looking_at_1): Only set last_thing_searched if the match + changed the match-data (bug#14281). + +2013-05-21 Dmitry Antipov + + * xdisp.c (reseat_at_previous_visible_line_start): + Already declared in dispextern.h, so remove it here. + (move_it_vertically_backward): Likewise. + +2013-05-20 YAMAMOTO Mitsuharu + + * xfns.c (check_x_display_info): Don't use XINT for terminal object. + (Fx_display_pixel_width, Fx_display_pixel_height) + (Fx_display_mm_width, Fx_display_mm_height): + Mention `display-monitor-attributes-list' in docstrings. + + * nsfns.m (ns_get_screen): Remove function. All uses removed. + (check_ns_display_info): Sync with check_x_display_info in xfns.c. + (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version) + (Fx_display_screens, Fx_display_mm_width, Fx_display_mm_height) + (Fx_display_backing_store, Fx_display_visual_class) + (Fx_display_save_under, Fx_close_connection, Fxw_display_color_p) + (Fx_display_grayscale_p, Fx_display_pixel_width) + (Fx_display_pixel_height, Fx_display_planes) + (Fx_display_color_cells): Sync args and docstrings with xfns.c. + (Fx_display_screens): Don't confuse X11 screens with NS screens. + (Fx_display_mm_width, Fx_display_mm_height) + (Fx_display_pixel_width, Fx_display_pixel_width): Return width or + height for all physical monitors as in X11. + + * nsterm.m (x_display_pixel_width, x_display_pixel_height): + Return pixel width or height for all physical monitors as in X11. + +2013-05-18 Paul Eggert + + Port --enable-gcc-warnings to clang. + * bytecode.c (exec_byte_code): + * regex.c: + Redo diagnostic pragmas to pacify clang, too. + * dbusbind.c (xd_retrieve_arg): Do not use uninitialized variable. + * editfns.c (Fencode_time): + * fileio.c (file_accessible_directory_p): + * font.c (font_unparse_xlfd): + Use '&"string"[index]' instead of '"string" + (index)'. + * undo.c (user_error): Remove; unused. + +2013-05-16 Eli Zaretskii + + * insdel.c (insert_1_both): Document the arguments, instead of + referring to insert_1, which no longer exists. + + * xdisp.c (message_dolog): If the *Messages* buffer is shown in + some window, increment windows_or_buffers_changed, so that + *Messages* display in that window is updated. (Bug#14408) + + * w32.c: Include epaths.h. + (init_environment): Use cmdproxy.exe without leading directories. + Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that + case. + (gettimeofday): Adjust signature and return value to Posix + expectations. + + * unexw32.c (open_output_file): Delete the existing emacs.exe + before creating it, to break the hard link to the versioned + executable. + + * Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK) + (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK) + (FIRSTFILE_OBJ): New variables. + (W32_RES): Rename to EMACSRES. All users changed. + (base_obj): Use $(CM_OBJ). + (ALLOBJS): Use $(FIRSTFILE_OBJ). + (emacs$(EXEEXT)): Depend on $(ADDSECTION). + (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move + $(W32_RES_LINK) before $(LIBES). + (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt. + +2013-05-15 Stefan Monnier + + * makefile.w32-in (DOC): Use just "DOC". + + * Makefile.in (bootstrap-clean): DOC-* doesn't exist any more. + + * process.c: Export default filters and sentinels to Elisp. + (Qinternal_default_process_sentinel, Qinternal_default_process_filter): + New constants. + (pset_filter, pset_sentinel, make_process, Fset_process_filter) + (Fset_process_sentinel, Fformat_network_address): + Default to them instead of nil. + (server_accept_connection): Sentinels can't be nil any more. + (read_and_dispose_of_process_output): New function, extracted from + read_process_output. + (read_process_output): Use it; filters can't be nil. + (Finternal_default_process_filter): New function, extracted from + read_process_output. + (exec_sentinel_unwind): Remove function. + (exec_sentinel): Don't zilch sentinel while running. + (status_notify): Sentinels can't be nil. + (Finternal_default_process_sentinel): New function extracted from + status_notify. + (setup_process_coding_systems): Default filter is not nil any more. + (syms_of_process): Export new Elisp functions and initialize + new constants. + * lisp.h (make_lisp_proc): New function. + +2013-05-15 Stefan Monnier + + * regex.c (regex_compile) [\=, \>, \<]: Don't forget to set laststart. + +2013-05-14 Eli Zaretskii + + * w32fns.c (w32_wnd_proc): Don't call WINDOW_HEADER_LINE_HEIGHT + unless we know that the window w is a leaf window. + Another attempt at solving bug#14062. + +2013-05-14 Jan Djärv + + * nsfont.m (ns_spec_to_descriptor): Retain and autorelease + fdesc (Bug#14375). + +2013-05-12 Paul Eggert + + * image.c (gif_load): Check that subimages fit (Bug#14345). + +2013-05-09 Stefan Monnier + + * lread.c (skip_dyn_eof): New function. + (read1): Use it to skip the end of a file in response to #@00. + + * doc.c (get_doc_string): Slightly relax the sanity checking. + +2013-05-09 Jan Djärv + + * nsfns.m: Include IOGraphicsLib.h if Cocoa. + (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): Declare. + (MonitorInfo): New struct. + (free_monitors, ns_screen_name, ns_make_monitor_attribute_list) + (Fns_display_monitor_attributes_list): New functions. + (display-usable-bounds): Remove. + (syms_of_nsfns): DEFSYM Qgeometry, Qworkarea, Qmm_size, Qframes and + Qsource. + +2013-05-09 Paul Eggert + + * xterm.h (GTK_PREREQ): Remove, replacing with GTK_CHECK_VERSION. + (GTK_CHECK_VERSION): New macro, if not already defined. + All uses of GTK_PREREQ, GTK_MAJOR_VERSION, etc. + replaced by GTK_CHECK_VERSION. + +2013-05-08 Paul Eggert + + * xterm.h (GTK_PREREQ): New macro. + All simple uses of GTK_MAJOR_VERSION and GTK_MINOR_VERSION changed + to use this macro instead, for consistency and clarity. + +2013-05-08 Eli Zaretskii + + * xdisp.c (row_for_charpos_p): New function, with code of + cursor_row_p, but accepts an additional argument CHARPOS instead + of using a hardcoded PT. + (cursor_row_p): Call row_for_charpos_p with 2nd argument PT. + (row_containing_pos): Call row_for_charpos_p instead of partially + doing the same. Fixes cursor positioning under longlines-mode + when longlines-show-effect includes more than one newline, when + moving the cursor vertically up. + +2013-05-08 Juanma Barranquero + + * makefile.w32-in (ACL_H): New macro. + ($(BLD)/fileio.$(O)): Update dependencies. + +2013-05-07 Paul Eggert + + Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) + * Makefile.in (LIB_ACL): New macro. + (LIBACL_LIBS): Remove. + (LIBES): Use LIB_ACL, not LIBACL_LIBS. + * fileio.c: Include . + Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL. + (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by + !acl_errno_valid. + (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling + it ourselves. + + * unexelf.c: Don't assume ElfW (Half) fits in int. + (entry_address, find_section, unexec): Use ptrdiff_t, not int, + when dealing with ElfW (Half) values, since they can exceed 2**31 + on 64-bit OpenBSD hosts. Problem reported privately by Han Boetes. + (entry_address): Omit unused NUM arg. All uses changed. + +2013-05-07 Juri Linkov + + * callint.c (Fcall_interactively): Set `visargs[i]' for code 'n' + to the string converted from number with `Fnumber_to_string'. + (Bug#14254) + +2013-05-07 Paul Eggert + + * xfns.c (x_get_net_workarea): Define only if !GTK || GTK<3.4. + This fixes a problem introduced by my previous change. + +2013-05-07 Glenn Morris + + * lread.c (readchar): Don't read from a dead buffer. (Bug#14280) + +2013-05-07 Jan Djärv + + * xfns.c: Move misplaced ifndef USE_GTK from previous checkin. + +2013-05-07 Paul Eggert + + Static checking by GCC 4.8.0. + * xfns.c (x_get_net_workarea, struct MonitorInfo, free_monitors) + (x_get_monitor_for_frame, x_make_monitor_attribute_list) + (x_get_monitor_attributes_fallback) + (x_get_monitor_attributes_xinerama) + (x_get_monitor_attributes_xrandr, x_get_monitor_attributes): + Define only if USE_GTK. + (free_monitors): Define only if HAVE_XINERAMA || HAVE_XRANDR. + (x_get_monitor_attributes_fallback): Omit unused locals. + (x_get_monitor_attributes_xinerama, Fx_display_monitor_attributes_list): + Use double, not float, to avoid mixed-mode floating point arithmetic. + +2013-05-07 YAMAMOTO Mitsuharu + Jan Djärv + + * Makefile.in (XRANDR_LIBS, XRANDR_CFLAGS, XINERAMA_LIBS) + (XINERAMA_CFLAGS): New macros. + (ALL_CFLAGS, LIBES): Use them. + + * xfns.c: Include if HAVE_XRANDR, and + include if HAVE_XINERAMA. + (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource): New variables. + (syms_of_xfns): DEFSYM them. + (struct MonitorInfo): New struct. + (x_get_net_workarea, free_monitors, x_get_monitor_for_frame) + (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback) + (x_get_monitor_attributes_xrandr, x_get_monitor_attributes) + (x_get_monitor_attributes_xinerama): New functions. + (Fx_display_monitor_attributes_list): New primitive. + (syms_of_xfns): Defsubr it. + + * xterm.h (x_display_info): Add Xatom_net_workarea and + Xatom_net_current_desktop. + + * xterm.c (x_term_init): Initialize dpyinfo->Xatom_net_workarea + and dpyinfo->Xatom_net_current_desktop. + +2013-05-06 Eli Zaretskii + + * xdisp.c (pos_visible_p): Use the special code for finding the + beginning of a display property or overlay for any "replacing" + display property, not just for display strings. This solves + incorrect reporting of position by posn-at-point. (Bug#14241) + +2013-05-06 Paul Eggert + + * unexelf.c: Fix some 32-bit integer problems, notably when debugging. + Include , , , . + Verify that ElfW (Half) fits in int. + (fatal): Use same signature as lisp.h. + (UNEXELF_DEBUG): New macro, replacing DEBUG, so that people can + configure and build with -DUNEXELF_DEBUG without worrying about + other modules that use DEBUG. + (DEBUG_LOG) [UNEXELF_DEBUG]: New macro. All debug code that prints + possibly-wide integers now uses it instead of plain fprintf. + (entry_address): New function, which avoids problems with 32-bit + overflow on 64-bit hosts. + (OLD_SECTION_H, NEW_SECTION_H, NEW_PROGRAM_H): Use it. + (round_up): Don't assume the remainder fits in int. + (find_section): Use bool for boolean. Simplify debug code. + (unexec): Don't assume file sizes fit in int or size_t. + Omit unnecessary trailing newline in 'fatal' format. + Use strerror rather than outputting decimal error number. + Remove unused code when emacs is not defined; + this file relies on Emacs now. + Don't assume e_phnum and e_shnum are positive. + + * regex.c: Fix problems when DEBUG is defined. + (extract_number, extract_number_and_incr): Define regardless of + whether DEBUG is defined; that's simpler and makes the code less + likely to go stale in the normal case when DEBUG is not defined. + Return int rather than taking an int * arg. All callers changed. + (DEBUG_PRINT1, DEBUG_PRINT2, DEBUG_PRINT3, DEBUG_PRINT4): + Remove, replacing with ... + (DEBUG_PRINT): New macro. All callers changed. + (DEBUG_COMPILES_ARGUMENTS): New macro. + (print_fastmap, print_partial_compiled_pattern) [DEBUG]: + (print_compiled_pattern, print_double_string) [DEBUG]: + Use prototype rather than old-style definition. + (print_partial_compiled_pattern, print_compiled_pattern) [DEBUG]: + (ENSURE_FAIL_STACK, PUSH_FAILURE_REG) [DEBUG]: + (POP_FAILURE_REG_OR_COUNT, PUSH_FAILURE_POINT) [DEBUG]: + (POP_FAILURE_POINT, re_match_2_internal) [DEBUG]: + Don't assume ptrdiff_t, size_t, and long are the same width as int. + (POINTER_TO_OFFSET): Return ptrdiff_t, not regoff_t. + This matters only when DEBUG is defined. + +2013-05-05 Eli Zaretskii + + * xdisp.c (set_iterator_to_next): Set the + ignore_overlay_strings_at_pos_p flag only if we are _really_ + iterating over an overlay string, as indicated by the + current.overlay_string_index member. (Bug#14306) + +2013-05-05 Jan Djärv + + * nsmenu.m (ns_update_menubar): Move initialization of submenuTitle + to where it is used, to avoid autorelease issues (Bug#14050). + +2013-05-05 Paul Eggert + + `write-region-inhibit-fsync' defaults to noninteractive (Bug#14273). + * fileio.c (syms_of_fileio): Implement this. + * filelock.c (create_lock_file): If symbolic links don't work, so + we use a regular file as a lock file, do not fsync the lock file; + it's not needed. + +2013-05-04 Stefan Monnier + + * minibuf.c (Fread_minibuffer, Feval_minibuffer): Move to Elisp. + (syms_of_minibuf): Adjust accodingly. + * lread.c (Fread): + * callint.c (Fcall_interactively): Adjust calls accordingly. + +2013-05-04 Eli Zaretskii + + * dispextern.h (WINDOW_WANTS_HEADER_LINE_P): Verify that + w->contents is a buffer before computing everything else. + Use parentheses to disambiguate last part of the condition. + + * w32fns.c (w32_wnd_proc): Remove temporary code used to trap + assertion violations. (Bug#14062) + +2013-05-01 David Reitter + + * nsfns.m (ns_tooltip): Initialize. + +2013-04-28 Eli Zaretskii + + * coding.c (decode_coding_gap): Don't remove the character before + a newline unless it's a CR character. (Bug#14287) + +2013-04-28 Dan Nicolaescu + + * dispextern.h (struct face): Move enum face_underline_type + earlier so that bitfields can be in the same word. + +2013-04-28 Jan Djärv + + * nsfns.m (handlePanelKeys): New function. + (EmacsOpenPanel:performKeyEquivalent:) + (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle + arrows/function/control and copy/paste keys (Bug#14296). + +2013-04-27 Juri Linkov + + * callint.c (Fcall_interactively): Call `Qread_number' for + interactive code letter `n' instead of using duplicate code. + (Bug#14254) + +2013-04-27 Paul Eggert + + * systime.h (make_timeval): Declare as 'const'. + +2013-04-27 Kenichi Handa + + * font.c (font_open_entity): Always open a font of manageable + size. + +2013-04-26 Paul Eggert + + Port better to AIX (Bug#14258). + * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too, + to pacify AIX xlc. + +2013-04-24 Kenichi Handa + + * coding.c (decode_coding_iso_2022): When an invalid escape + sequence is encountered, reset the invocation and designation + status to the safest one. + +2013-04-22 Paul Eggert + + * Makefile.in (bootstrap-clean): Remove stamp-h1 too. + Without this fix, "make distclean" leaves stamp-h1 behind. + +2013-04-20 Erik Charlebois + + * w32fns.c (w32_fullscreen_rect): New function to compute the + window rectangle for the given fullscreen mode. + (w32_wnd_proc): When in a fullscreen mode, WM_WINDOWPOSCHANGING no + longer tunes the window size. This keeps the window's edges flush + with the screen and allows the taskbar to hide itself in fullboth. + + * w32term.c (w32fullscreen_hook): 'fullboth' now shows without + window decorations and uses the entire screen. + + * w32term.h (w32_fullscreen_rect) Add prototype. + (struct w32_output): Replace normal_width, normal_height, + normal_top, and normal_left members with a single normal_placement + struct. + (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP): + Remove macros. + (FRAME_NORMAL_PLACEMENT): New macro. + +2013-04-16 Juanma Barranquero + + * minibuf.c (Ftest_completion): Silence compiler warning. + +2013-04-15 Eli Zaretskii + + * w32fns.c (w32_wnd_proc): Add more assertions to investigate + bug#14062. + + * frame.h (WINDOW_FRAME): Protect macro and its argument with + parentheses. + + * dispextern.h (CURRENT_MODE_LINE_HEIGHT) + (CURRENT_HEADER_LINE_HEIGHT, WINDOW_WANTS_MODELINE_P) + (WINDOW_WANTS_HEADER_LINE_P): Protect macro arguments with + parentheses where appropriate. + +2013-04-14 Paul Eggert + + * keyboard.c (timer_start_idle): Remove no-longer-used local. + +2013-04-14 Eli Zaretskii + + * buffer.c (syms_of_buffer) + : + Mention in the doc string that setting these variables takes + effect only after a call to set-window-buffer. (Bug#14200) + +2013-04-13 Eli Zaretskii + + * indent.c (Fvertical_motion): Don't consider display strings on + overlay strings as display strings on the buffer position we + started from. This prevents vertical cursor motion from jumping + more than one line when there's an overlay string with a display + property at end of line. + Reported by Karl Chen in + http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html. + +2013-04-12 Stefan Monnier + + * window.c (select_window): `record_buffer' even if window is + already selected (bug#14191). + +2013-04-11 Eli Zaretskii + + * window.c (Fwindow_end): Test more flags, including the buffer's + last_overlay_modified flag, to determine whether the window's + display is really up-to-date. Prevents the function from + returning a stale value. (Bug#14170) + (Fwindow_line_height): Fix the test for up-to-date-ness of the + current matrix. + +2013-04-10 Eli Zaretskii + + * frame.c (do_switch_frame): Mark the TTY frame we switch to as + garbaged only if it is not already the top frame on its TTY. + This prevents flickering due to constant redrawing of TTY frames when + there are GUI frames open in the same session. (Bug#13864) + +2013-04-10 Stefan Monnier + + * keyboard.c (timer_start_idle): Call internal-timer-start-idle instead + of marking the idle timers directly. + +2013-04-09 Stefan Monnier + + * minibuf.c (Ftest_completion): Ignore non-string/symbol keys in hash + tables (bug#14054). + +2013-04-08 Stefan Monnier + + * window.c (select_window): Don't record_buffer while the invariant is + temporarily broken (bug#14161). + + * fns.c (Fdelq): Don't assume !NILP => CONSP. + +2013-04-07 Eli Zaretskii + + * fileio.c (ACL_NOT_WELL_SUPPORTED): Define macro for WINDOWSNT. + +2013-04-07 Romain Francoise + + Ignore additional platform-specific ACL errors (Bug#13702). + * fileio.c (ACL_NOT_WELL_SUPPORTED): New macro copied from gnulib. + (Fcopy_file, Fset_file_acl) [HAVE_POSIX_ACL]: Use it. + +2013-03-31 Jan Djärv + + * nsterm.m (ns_mouse_position): Use NS_FRAME_P instead of checking + f->output_data.ns. + +2013-04-07 Paul Eggert + + Fix --enable-profiling bug introduced by 2013-02-25 change (Bug#13783). + This bug was introduced by my 2013-02-25 change that simplified + data_start configuration. Without this change, on GNU/Linux + an Emacs configured with --enable-profiling fails immediately + due to a profiler signal. + * Makefile.in: Compile with $(PROFILING_CFLAGS), but do not link + with these flags. On platforms where special flags are needed + when linking temacs, the flags are now in LD_SWITCH_SYSTEM_TEMACS. + (ALL_CFLAGS): Remove $(PROFILING_CFLAGS). + (.c.o, .m.o): Compile with $(PROFILING_CFLAGS). + +2013-04-07 Dmitry Antipov + + Get rid of some platform-specific functions examining window + system and its capabilities. This is a partial rework of the + 2013-04-05 change. + * lisp.h (have_menus_p): Remove prototype. This function is + replaced with platform-independent window_system_available. + (check_window_system): Move to... + * frame.h (decode_window_system_frame, window_system_available): + ...here, add new prototypes. + * frame.c (window_system_available, decode_window_system_frame): + New functions. + (check_window_system): Platform-independent now. + * xterm.h (x_in_use): Remove declaration. + (check_x_frame): + * w32term.h (check_x_frame): + * nsterm.h (check_x_frame): Remove prototypes. This function + is replaced with platform-independent decode_window_system_frame. + * msdos.c (have_menus_p): Remove. + * nsfns.m (check_window_system, have_menus_p, check_ns_frame): + Remove platform-specific functions. Use check_window_system, + decode_window_system_frame and check_ns_display_info where + appropriate. Minor style and comment tweaks. + * w32fns.c (w32_in_use, check_window_system, have_menus_p) + (check_x_frame): Likewise. + * xfns.c (x_in_use, check_window_system, have_menus_p, check_x_frame): + Likewise. + * fileio.c, fns.c, font.c, fontset.c, image.c, menu.c, nsmenu.m: + * nsselect.m, nsterm.m, w32font.c, w32menu.c, xfaces.c, xgselect.c: + * xmenu.c, xselect.c: All related users changed. + +2013-04-03 Kenichi Handa + + The following changes is to optimize the code for reading UTF-8 + files. + + * coding.c (check_ascii): Rename from detect_ascii. Return value + changed. Check EOL format. Do not call adjust_coding_eol_type + here. + (check_utf_8): New function. + (adjust_coding_eol_type): Do nothing if already adjusted. + (detect_coding): Compare the return value of check_ascii with + coding->src_bytes. Call adjust_coding_eol_type if necessary. + (decode_coding_gap): Optimize for valid UTF-8. + +2013-03-21 Kenichi Handa + + * coding.c (syms_of_coding): Cancel previous change. + + * insdel.c (insert_from_gap): Fix previous change. + +2013-04-05 Dmitry Antipov + + Consistently use platform-specific function to detect window system. + * lisp.h (check_window_system): New prototype. This function is + going to replace check_x, check_w32 and check_ns. + (have_menus_p): Mention msdos.c in comment. + * fontset.c (check_window_system_func): Remove. Adjust all users. + * fontset.h (check_window_system_func): Remove prototype. + * nsterm.h (check_ns): + * xterm.h (check_x): + * w32term.h (check_w32): Likewise. + * menu.c (Fx_popup_menu): Use check_window_system. + * msdos.c (check_window_system): Define for MS-DOS. + * nsfns.m (check_window_system): Define for NS. Adjust all users. + * w32fns.c (check_window_system): Likewise for MS-Windows. + * xfns.c (check_window_system): Likewise for X. + * font.c, frame.c, nsmenu.m, nsselect.m, nsterm.m, w32menu.c: + * xfaces.c, xmenu.c: Use check_window_system where appropriate. + +2013-04-02 Paul Eggert + + Prefer < to > in range checks such as 0 <= i && i < N. + This makes it easier to visualize quantities on a number line. + This patch doesn't apply to all such range checks, + only to the range checks affected by the 2013-03-24 change. + This patch reverts most of the 2013-03-24 change. + * alloc.c (xpalloc, Fgarbage_collect): + * ccl.c (ccl_driver, resolve_symbol_ccl_program): + * character.c (string_escape_byte8): + * charset.c (read_hex): + * data.c (cons_to_unsigned): + * dispnew.c (update_frame_1): + * doc.c (Fsubstitute_command_keys): + * doprnt.c (doprnt): + * editfns.c (hi_time, decode_time_components): + * fileio.c (file_offset): + * fns.c (larger_vector, make_hash_table, Fmake_hash_table): + * font.c (font_intern_prop): + * frame.c (x_set_alpha): + * gtkutil.c (get_utf8_string): + * indent.c (check_display_width): + * keymap.c (Fkey_description): + * lisp.h (FIXNUM_OVERFLOW_P, vcopy): + * lread.c (read1): + * minibuf.c (read_minibuf_noninteractive): + * process.c (wait_reading_process_output): + * search.c (Freplace_match): + * window.c (get_phys_cursor_glyph): + * xdisp.c (redisplay_internal): + * xsmfns.c (smc_save_yourself_CB): + Prefer < to > for range checks. + * dispnew.c (sit_for): Don't mishandle NaNs. + This fixes a bug introduced in the 2013-03-24 change. + * editfns.c (decode_time_components): Don't hoist comparison. + This fixes another bug introduced in the 2013-03-24 change. + +2013-03-31 Dmitry Antipov + + * frame.h (struct frame): Drop scroll_bottom_vpos + member becaue all real users are dead long ago. + (FRAME_SCROLL_BOTTOM_VPOS): Remove. + * xdisp.c (redisplay_internal): Adjust user. + +2013-03-30 Darren Ho (tiny change) + + * nsmenu.m (showAtX:Y:for:): setLevel to + NSPopUpMenuWindowLevel (Bug#13998). + +2013-03-30 Jan Djärv + + * nsterm.h (ns_get_pending_menu_title, ns_check_menu_open) + (ns_check_pending_open_menu): Declare. + + * nsmenu.m (ns_update_menubar): Correct NSTRACE. + (x_activate_menubar): Update the menu with title that matches + ns_get_pending_menu_title, and call + ns_check_pending_openmenu (Bug#12698). + (menuWillOpen:): New method. + (menuNeedsUpdate:): Add check for ! COCOA || OSX < 10.5 (Bug#12698). + + * nsterm.m (menu_will_open_state, menu_mouse_point) + (menu_pending_title): New varaibles. + (ns_get_pending_menu_title, ns_check_menu_open) + (ns_check_pending_open_menu): New functions. + +2013-03-29 Dmitry Antipov + + * indent.c (current_column_bol_cache): Remove leftover which is not + used in Fmove_to_column any more. + (current_column, scan_for_column): Adjust users. + * keyboard.c (last_point_position_buffer, last_point_position_window): + Remove leftovers which are not used for recording undo any more. + (command_loop_1, syms_of_keyboard): Adjust users. + * xdisp.c (last_max_ascent): Remove leftover which is not used in + redisplay_window any more. + (move_it_to): Adjust user. + +2013-03-29 Juanma Barranquero + + * makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/filelock.$(O)): + Update dependencies. + +2013-03-28 Stefan Monnier + + * lisp.h (save_type, XSAVE_POINTER, set_save_pointer, XSAVE_INTEGER) + (set_save_integer, XSAVE_OBJECT, XSAVE_VALUE): Move to avoid + forward references. + +2013-03-28 Dmitry Antipov + + * window.h (struct window): Replace hchild, vchild and buffer slots + with the only contents slot. This is possible because each valid + window may have either the child window (in vertical or horizontal + combination) or buffer to display (for the leaf window). Using that, + a lof of operations to traverse and/or change window hierarchies may + be simplified. New member horizontal is used to distinguish between + horizontal and vertical combinations of internal windows. + (WINDOW_LEAF_P, WINDOW_HORIZONTAL_COMBINATION_P) + (WINDOW_VERTICAL_COMBINATION_P): New macros. + (WINDOW_VALID_P, WINDOW_LIVE_P): Adjust to match struct window changes. + * window.c (wset_hchild, wset_vchild): Remove. Adjust all users. + Use contents slot, not buffer, where appropriate. + (wset_combination): New function. + (wset_buffer): Add eassert. + (Fframe_first_window): Simplify the loop reaching first window. + (Fwindow_buffer): Use WINDOW_LEAF_P. + (Fwindow_top_child): Use WINDOW_VERTICAL_COMBINATION_P. + (Fwindow_left_child): Use WINDOW_HORIZONTAL_COMBINATION_P. + (unshow_buffer): Convert initial debugging check to eassert. + (replace_window, recombine_windows, Fdelete_other_windows_internal) + (make_parent_window, window_resize_check, window_resize_apply) + (resize_frame_windows, Fsplit_window_internal, Fdelete_window_internal) + (Fset_window_configuration, delete_all_child_windows, save_window_save): + Adjust to match struct window changes. + (window_loop): Check for broken markers in CHECK_ALL_WINDOWS. + (mark_window_cursors_off, count_windows, get_leaf_windows) + (foreach_window_1): Simplify the loop. + * alloc.c (mark_object): Do not check for the leaf window because + internal windows has no glyph matrices anyway. + * dispnew.c (clear_window_matrices, showing_window_margins_p) + (allocate_matrices_for_window_redisplay, fake_current_matrices) + (allocate_matrices_for_frame_redisplay, free_window_matrices) + (build_frame_matrix_from_window_tree, mirror_make_current) + (frame_row_to_window, mirror_line_dance, check_window_matrix_pointers) + (update_window_tree, set_window_update_flags): Simplify the loop. + (sync_window_with_frame_matrix_rows): Enforce live window. + Use contents slot, not buffer, where appropriate. + * frame.c (set_menu_bar_lines_1): Use WINDOW_VERTICAL_COMBINATION_P + and WINDOW_HORIZONTAL_COMBINATION_P. + (make_frame_visible_1): Simplify the loop. + Use contents slot, not buffer, where appropriate. + * xdisp.c (hscroll_window_tree, mark_window_display_accurate) + (redisplay_windows, redisplay_mode_lines, update_cursor_in_window_tree) + (expose_window_tree): Likewise. + Use contents slot, not buffer, where appropriate. + * textprop.c (get_char_property_and_overlay): Add CHECK_LIVE_WINDOW + to avoid deleted windows. Use contents slot instead of buffer. + * buffer.c, dispextern.h, editfns.c, fileio.c, font.c, fringe.c: + * indent.c, insdel.c, keyboard.c, keymap.c, minibuf.c, msdos.c: + * nsfns.m, nsmenu.m, nsterm.m, print.c, w32fns.c, w32menu.c, xfaces.c: + * xfns.c, xmenu.c: Use contents slot, not buffer, where appropriate. + +2013-03-28 Eli Zaretskii + + * w32fns.c (w32_wnd_proc) [ENABLE_CHECKING]: Add code to help + identify the reasons for assertion violations in bug#14062 and + similar ones. + (Fx_show_tip): Fix compilation error under + "--enable-check-lisp-object-type". (Bug#14073) + + * image.c (g_error_free) [WINDOWSNT]: Add DEF_IMGLIB_FN. + Reported by . + +2013-03-28 Dmitry Antipov + + * xdisp.c (with_echo_area_buffer_unwind_data): Save window + start marker... + (unwind_with_echo_area_buffer): ...to restore it here. + This is needed to ensure that... + (redisplay_window): ...both window markers are valid here, + which is verified by eassert. + * editfns.c (save_excursion_save): Do not assume that + selected_window always displays the buffer. + * buffer.c (Fbuffer_swap_text): Adjust window start markers. + Fix comment. + +2013-03-27 Stefan Monnier + + * casetab.c (init_casetab_once): Don't abuse the ascii eqv table for + the upcase table. + +2013-03-27 rzl24ozi (tiny changes) + + * image.c [WINDOWSNT]: Fix calls to DEF_IMGLIB_FN for SVG function. + +2013-03-27 Eli Zaretskii + + * w32proc.c (IsValidLocale) [__GNUC__]: Don't declare prototype, + since MinGW's w32api headers do. This avoids compiler warnings. + + * w32.c (FSCTL_GET_REPARSE_POINT) [_MSC_VER || _W64]: Don't define + if already defined. + +2013-03-26 Eli Zaretskii + + * w32.c (_REPARSE_DATA_BUFFER): Condition by _MSVC and _W64. + +2013-03-26 Jan Djärv + + * gtkutil.c (style_changed_cb): Check if frame is live and an + X frame (Bug#14038). + +2013-03-26 Eli Zaretskii + + * w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]: + Define only for _WIN32_WINNT less than 0x0500. + (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT) [!_W64]: Don't define for + MinGW64. + Move inclusion of time.h before sys/time.h, so that MinGW64 could + see its own definitions of 'struct timeval' and 'struct timezone'. + + Fix incompatibilities between MinGW.org and MinGW64 headers. + * w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined. + + * w32.c (REPARSE_DATA_BUFFER): Guard with + MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined. + +2013-03-25 Jan Djärv + + * xterm.c: Include X11/XKBlib.h + (XTring_bell): Use XkbBell if HAVE_XKB (Bug#14041). + +2013-03-24 Andreas Schwab + + * alloc.c (xpalloc, Fgarbage_collect): Reorder conditions that are + written backwards. + * blockinput.h (input_blocked_p): Likewise. + * bytecode.c (exec_byte_code): Likewise. + * callproc.c (call_process_kill, call_process_cleanup) + (Fcall_process): Likewise. + * ccl.c (ccl_driver, resolve_symbol_ccl_program) + (Fccl_execute_on_string): Likewise. + * character.c (string_escape_byte8): Likewise. + * charset.c (read_hex): Likewise. + * cm.c (calccost): Likewise. + * data.c (cons_to_unsigned): Likewise. + * dired.c (directory_files_internal, file_name_completion): + Likewise. + * dispnew.c (scrolling_window, update_frame_1, Fsleep_for) + (sit_for): Likewise. + * doc.c (Fsubstitute_command_keys): Likewise. + * doprnt.c (doprnt): Likewise. + * editfns.c (hi_time, decode_time_components, Fformat): Likewise. + * emacsgtkfixed.c: Likewise. + * fileio.c (file_offset, Fwrite_region): Likewise. + * floatfns.c (Fexpt, fmod_float): Likewise. + * fns.c (larger_vector, make_hash_table, Fmake_hash_table): + Likewise. + * font.c (font_intern_prop): Likewise. + * frame.c (x_set_alpha): Likewise. + * gtkutil.c (get_utf8_string): Likewise. + * indent.c (check_display_width): Likewise. + * intervals.c (create_root_interval, rotate_right, rotate_left) + (split_interval_right, split_interval_left) + (adjust_intervals_for_insertion, delete_node) + (interval_deletion_adjustment, adjust_intervals_for_deletion) + (merge_interval_right, merge_interval_left, copy_intervals) + (set_intervals_multibyte_1): Likewise. + * keyboard.c (gobble_input, append_tool_bar_item): Likewise. + * keymap.c (Fkey_description): Likewise. + * lisp.h (FIXNUM_OVERFLOW_P, vcopy): Likewise. + * lread.c (openp, read_integer, read1, string_to_number): + Likewise. + * menu.c (ensure_menu_items): Likewise. + * minibuf.c (read_minibuf_noninteractive): Likewise. + * print.c (printchar, strout): Likewise. + * process.c (create_process, Faccept_process_output) + (wait_reading_process_output, read_process_output, send_process) + (wait_reading_process_output): Likewise. + * profiler.c (make_log, handle_profiler_signal): Likewise. + * regex.c (re_exec): Likewise. + * regex.h: Likewise. + * search.c (looking_at_1, Freplace_match): Likewise. + * sysdep.c (get_child_status, procfs_ttyname) + (procfs_get_total_memory): Likewise. + * systime.h (EMACS_TIME_VALID_P): Likewise. + * term.c (dissociate_if_controlling_tty): Likewise. + * window.c (get_phys_cursor_glyph): Likewise. + * xdisp.c (init_iterator, redisplay_internal, redisplay_window) + (try_window_reusing_current_matrix, try_window_id, pint2hrstr): + Likewise. + * xfns.c (Fx_window_property): Likewise. + * xmenu.c (set_frame_menubar): Likewise. + * xselect.c (x_get_window_property, x_handle_dnd_message): + Likewise. + * xsmfns.c (smc_save_yourself_CB): Likewise. + * xterm.c (x_scroll_bar_set_handle): Likewise. + +2013-03-24 Dmitry Antipov + + * xfaces.c (Finternal_face_x_get_resource): Allow 3rd (frame) argument + to be optional or nil. Adjust comment and convert it to docstring. + * xselect.c (Fx_send_client_event): Rename to Fx_send_client_message. + * frame.c (display_x_get_resource, Fx_get_resource): Break long line. + +2013-03-24 Paul Eggert + + Static checking by GCC 4.8-20130319. + * image.c (gif_load): Assume pass < 3 to pacify GCC. + * process.c (Fset_process_datagram_address) + (Fmake_network_process): Check get_lisp_to_sockaddr_size return value. + * xdisp.c (get_char_face_and_encoding): + (get_glyph_face_and_encoding): Ensure that *CHAR2B is initialized. + (get_glyph_face_and_encoding): Prepare face before possibly using it. + (get_per_char_metric): Don't use CHAR2B if it might not be initialized. + +2013-03-24 Ken Brown + + * w32fns.c (emacs_abort) [CYGWIN]: Define `_open' as a macro to + fix compilation on 64-bit Cygwin, where underscores are not + automatically prepended. + + * w32term.c (w32_initialize): Silence compiler warning. + +2013-03-23 Eli Zaretskii + + * w32term.c (w32fullscreen_hook): Use FRAME_NORMAL_WIDTH, + FRAME_NORMAL_HEIGHT, and FRAME_PREV_FSMODE, instead of static + variables, to save and restore frame dimensions. + Use FRAME_NORMAL_LEFT and FRAME_NORMAL_TOP to restore frame position + after returning from a 'fullscreen' configuration. + use SendMessage instead of PostMessage to send the SC_RESTORE message, + to avoid races between the main thread and the input thread. + + * w32term.h (struct w32_output): New members normal_width, + normal_height, normal_top, normal_left, and prev_fsmode. + (FRAME_NORMAL_WIDTH, FRAME_NORMAL_HEIGHT, FRAME_NORMAL_TOP) + (FRAME_NORMAL_LEFT, FRAME_PREV_FSMODE): New macros to access these + members of a frame. + + * w32term.c (w32fullscreen_hook): Record last value of the frame's + 'fullscreen' parameter. Always record previous width and height + of the frame, except when switching out of maximized modes, so + that they could be restored correctly, instead of resetting to the + default frame dimensions. Send SC_RESTORE command to the frame, + unless we are going to send SC_MAXIMIZE, to restore the frame + resize hints in the mouse pointer shown by the window manager. + (Bug#14032) + + * frame.c (get_frame_param): Now extern for WINDOWSNT as well. + + * lisp.h (get_frame_param): Adjust conditions for prototype + declaration. + +2013-03-22 Ken Brown + + * unexcw.c: Drop unneeded inclusion of w32common.h. + (report_sheap_usage): Declare. + (read_exe_header): Add magic numbers for x86_64. + (fixup_executable): Fix printf format specifier for unsigned long + argument. + +2013-03-22 Dmitry Antipov + + * frame.h (struct frame): Put menu_bar_window under #ifdef + because this member is not needed when X toolkit is in use. + (fset_menu_bar_window): + * dispnew.c (clear_current_matrices, clear_desired_matrices) + (free_glyphs, update_frame): + * xdisp.c (expose_frame): Likewise. + (display_menu_bar): Likewise. Remove redundant eassert. + * window.h (WINDOW_MENU_BAR_P): Always define to 0 if X + toolkit is in use. + +2013-03-21 Paul Eggert + + Use functions and constants to manipulate Lisp_Save_Value objects. + This replaces code that used macros and strings and token-pasting. + The change makes the C source a bit easier to follow, + and shrinks the Emacs executable a bit. + * alloc.c: Verify some properties of Lisp_Save_Value's representation. + (make_save_value): Change 1st arg from string to enum. All callers + changed. + (INTX): Remove. + (mark_object): Use if, not #if, for GC_MARK_STACK. + * lisp.h (SAVE_VALUEP, XSAVE_VALUE, XSAVE_POINTER, XSAVE_INTEGER) + (XSAVE_OBJECT): Now functions, not macros. + (STRING_BYTES_BOUND): Now just a macro, not a constant too; + the constant was never used. + (SAVE_SLOT_BITS, SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, SAVE_TYPE_INT_INT) + (SAVE_TYPE_INT_INT_INT, SAVE_TYPE_OBJ_OBJ, SAVE_TYPE_OBJ_OBJ_OBJ) + (SAVE_TYPE_OBJ_OBJ_OBJ_OBJ, SAVE_TYPE_PTR_INT, SAVE_TYPE_PTR_OBJ) + (SAVE_TYPE_PTR_PTR, SAVE_TYPE_PTR_PTR_OBJ, SAVE_TYPE_MEMORY): + New constants. + (struct Lisp_Save_Value): Replace members area, type0, type1, type2, + type3 with a single member save_type. All uses changed. + (save_type, set_save_pointer, set_save_integer): New functions. + * print.c (PRINTX): Remove. + + * alloc.c: Remove redundant static declarations. + +2013-03-20 Dmitry Antipov + + * window.h (struct window): Convert left_col, top_line, total_lines + and total_cols from Lisp_Objects to integers. Adjust comments. + (wset_left_col, wset_top_line, wset_total_cols, wset_total_lines): + Remove. + (WINDOW_TOTAL_COLS, WINDOW_TOTAL_LINES, WINDOW_LEFT_EDGE_COL) + (WINDOW_TOP_EDGE_LINE): Drop Lisp_Object to integer conversion. + * dispnew.c, frame.c, w32fns.c, window.c, xdisp.c, xfns.c: + Adjust users where appropriate. + +2013-03-20 Dmitry Antipov + + * frame.h (struct frame): Drop resx and resy because the same data is + available from window system-specific output context. Adjust users. + (default_pixels_per_inch_x, default_pixels_per_inch_y): + New functions to provide defaults when no window system available. + (FRAME_RES_X, FRAME_RES_Y): New macros. + (NUMVAL): Move from xdisp.c. + * font.c (font_pixel_size, font_find_for_lface, font_open_for_lface) + (Ffont_face_attributes, Fopen_font): + * image.c (gs_load): + * w32font.c (fill_in_logfont): + * xdisp.c (calc_pixel_width_or_height): + * xfaces.c (Fx_family_fonts, set_lface_from_font): Use them. + * xsettings.c (apply_xft_settings): Drop frame loop and adjust comment. + +2013-03-20 Kenichi Handa + + * coding.c (syms_of_coding): Initialize disable_ascii_optimization + to 1 (temporary workaround until a bug related to ASCII + optimization is fixed). + +2013-03-19 Dmitry Antipov + + * window.c (Fwindow_combination_limit, Fset_window_combination_limit): + Signal error if window is not internal. Adjust docstring. + (delete_all_child_windows): Use combination_limit to save the buffer. + (Fset_window_configuration): Adjust accordingly. + * print.c (syms_of_print): Initialize debugging output not here... + (init_print_once): ...but in a new function here. + * lisp.h (init_print_once): Add prototype. + * emacs.c (main): Add call to init_print_once. Adjust comments. + +2013-03-18 Dmitry Antipov + + * window.c (window_resize_check, window_resize_apply) + (window_from_coordinates, recombine_windows, set_window_buffer) + (make_parent_window, Fwindow_resize_apply, resize_frame_windows) + (Fsplit_window_internal, Fdelete_window_internal) + (freeze_window_starts): Use bool for booleans. + * window.h (window_frame_coordinates, resize_frame_windows) + (freeze_window_starts, set_window_buffer): Adjust prototypes. + +2013-03-17 Stefan Monnier + + * dispnew.c (bitch_at_user): Use `user-error'. + +2013-03-17 Ken Brown + + * dispextern.h (RGB_PIXEL_COLOR): Move here from image.c. Use it + as return type of image_background. (Bug#13981) + * image.c (RGB_PIXEL_COLOR): Move to dispextern.h. + +2013-03-16 Jan Djärv + + * nsterm.m (updateFrameSize:): Change resize increments if needed. + (ns_select): Don't return with result uninitialized. + + * nsterm.h (EmacsSavePanel, EmacsOpenPanel): Add getFilename + and getDirectory. + + * nsfns.m (ns_filename_from_panel, ns_directory_from_panel): + New functions. + (Fns_read_file_name): ret is BOOL. If ! dir_only_p, don't choose + directories. If filename is nil, get directory name (Bug#13932). + Use getFilename and getDirectory. + (getFilename, getDirectory): New methods for EmacsSavePanel and + EmacsOpenPanel. + (ok:): In EmacsOpenPanel, if we can't choose directories, just return. + +2013-03-15 Paul Eggert + + * coding.c (decode_coding_gap): Fix typo caught by static checking. + +2013-03-15 Kenichi Handa + + * insdel.c (insert_from_gap): New arg text_at_gap_tail. + (adjust_after_replace): Make it back to static. Delete the third + arg text_at_gap_tail. Cancel the code for handling it. + + * coding.h (struct coding_system): New member eol_seen. + + * coding.c (detect_ascii): New function. + (detect_coding): Set coding->head_ascii and coding->eol_seen only + when the source bytes are actually scanned. On detecting for + coding_category_utf_8_auto, call detect_ascii instead of scanning + source bytes directly. + (produce_chars): Call insert_from_gap with the new arg 0. + (encode_coding): Likewise. + (decode_coding_gap): Control ASCII optimization by the variable + disable_ascii_optimization instead of #ifndef .. #endif. + Deccode EOL format according to coding->eol_seen. + (syms_of_coding): Declare disable-ascii-optimization as a Lisp + variable. + + * lisp.h (adjust_after_replace): Cancel externing it. + (insert_from_gap): Adjust prototype. + +2013-03-15 Eli Zaretskii + + * w32term.c (w32fullscreen_hook): Swap FULLSCREEN_BOTH and + FULLSCREEN_MAXIMIZED. (Bug#13935) + +2013-03-15 Dmitry Antipov + + * region-cache.c (find_cache_boundary, move_cache_gap) + (insert_cache_boundary, delete_cache_boundaries, set_cache_region): + Simplify debugging check and convert to eassert. Adjust comment. + (pp_cache): Put under ENABLE_CHECKING. + +2013-03-14 Eli Zaretskii + + * w32term.c (w32_read_socket) : Remove old + and incorrect code. Treat WM_WINDOWPOSCHANGED like WM_ACTIVATE + and WM_ACTIVATEAPP. + (w32fullscreen_hook): If the frame is visible, reset + f->want_fullscreen flag after changing the frame size. If the + frame is not visible, set f->want_fullscreen to FULLSCREEN_WAIT. + (Bug#13953) + +2013-03-13 Daniel Colascione + + * emacs.c (main): Call syms_of_cygw32 on CYGWIN non-NTGUI builds + too so that these builds can use Cygwin's file conversion + functions. (We've been building and linking cygw32.o all along + and just not using it.) + +2013-03-13 Paul Eggert + + File synchronization fixes (Bug#13944). + * Makefile.in (LIB_FDATASYNC): New macro. + (LIBES): Use it. + * conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed. + * fileio.c (Fwrite_region, write_region_inhibit_fsync): + Don't worry about HAVE_FSYNC, since a substitute fsync is + available if the system lacks one. + (Fwrite_regin): Retry fsync if interrupted. + +2013-03-13 Eli Zaretskii + + * w32term.c (w32_read_socket): If the Emacs frame is being + activated, call w32fullscreen_hook, to make sure the new frame + dimensions are in effect. (Bug#13937) + +2013-03-13 Dmitry Antipov + + * xdisp.c (init_iterator): Simplify because both character and byte + positions are either specified or -1. Add eassert. Adjust comment. + * window.c (Fscroll_other_window): Use SET_PT_BOTH because both + character and byte positions can be obtained from marker. + +2013-03-13 Paul Eggert + + Static checking by Sun C 5.12. + * alloc.c (buffer_memory_full) [REL_ALLOC]: + * bytecode.c (exec_byte_code): + * dispnew.c (init_display): + * eval.c (error): + * fileio.c (Fsubstitute_in_file_name): + * keyboard.c (Fevent_convert_list): + * keymap.c (Fsingle_key_description): + * term.c (maybe_fatal, fatal): + * xfns.c (Fx_display_backing_store, Fx_display_visual_class): + * xsmfns.c (Fhandle_save_session): + Omit unreachable code. + * keymap.c (map_keymap_char_table_item): Cast void * to + a function pointer type; the C Standard requires this. + + * sysdep.c: Remove a use of BSD_SYSTEM, which I'm trying to phase out. + Include unconditionally, as that works elsewhere and + is simpler here. Include if DARWIN_OS || + __FreeBSD__, not if BSD_SYSTEM, since it's needed only for Darwin + and FreeBSD now. + +See ChangeLog.12 for earlier changes. + +;; Local Variables: +;; coding: utf-8 +;; End: + + Copyright (C) 2011-2013 Free Software Foundation, Inc. + + This file is part of GNU Emacs. + + GNU Emacs is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + GNU Emacs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Emacs. If not, see .