From: Kenichi Handa Date: Tue, 13 Nov 2012 14:24:26 +0000 (+0900) Subject: merge trunk X-Git-Tag: emacs-24.3.90~173^2~9^2~146 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0cdbf84521791935fdfeabf2e84f585cc64db325;p=emacs.git merge trunk --- 0cdbf84521791935fdfeabf2e84f585cc64db325 diff --cc src/ChangeLog index efe5e59cb73,bdddcc11cdb..e67518d63ba --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,8 -1,343 +1,348 @@@ +2012-11-13 Kenichi Handa + + * font.c (font_unparse_xlfd): Exclude special characters from the + generating XLFD name. + + 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_here): ...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.