X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/d5d5a6173b3bd4c68354b6dceab58ac8e25a0deb..db69b0cde386ed1e4cc928f5beb916107ee9fc88:/src/ChangeLog diff --git a/src/ChangeLog b/src/ChangeLog index d1e2fea4ed..91d5069d55 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,7 +1,320 @@ -2011-03-11 Paul Eggert +2011-03-15 Paul Eggert + + 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): 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. + +2011-03-14 Paul Eggert + + * buffer.c (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-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-11 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