1. 14 Aug, 2013 4 commits
  2. 13 Aug, 2013 2 commits
    • Dmitry Antipov's avatar
      * window.h (struct window): Convert left_margin_cols and · eeaf9bf3
      Dmitry Antipov authored
      right_margin_cols from Lisp_Objects to integers.  Adjust comment.
      (WINDOW_LEFT_MARGIN_COLS, WINDOW_RIGHT_MARGIN_COLS)
      (WINDOW_LEFT_MARGIN_WIDTH, WINDOW_RIGHT_MARGIN_WIDTH):
      Adjust users.
      * dispnew.c (margin_glyphs_to_reserve): Convert 3rd arg to int.
      Adjust comment.
      (showing_window_margins_p, update_window_line, update_frame_1):
      * fringe.c (draw_fringe_bitmap_1):
      * xdisp.c (window_box_width): Adjust users.
      * window.c (wset_left_margin_cols, wset_right_margin_cols): Remove.
      (adjust_window_margins, set_window_buffer, Fsplit_window_internal):
      Use direct assignment.
      (Fset_window_configuration, save_window_save, Fwindow_margins):
      Convert Lisp_Object to integer and back where appropriate.
      (Fset_window_margins): Adjust user.  Return t if any margin
      was actually changed, and mention this in docstring.
      eeaf9bf3
    • Dmitry Antipov's avatar
      * nsfns.m (x_set_cursor_type): · 9cda66e4
      Dmitry Antipov authored
      * w32fns.c (x_set_cursor_type):
      * xfns.m (x_set_cursor_type): Do not set cursor_type_changed here...
      * xdisp.c (set_frame_cursor_types): ...but in common code.
      9cda66e4
  3. 12 Aug, 2013 1 commit
    • Dmitry Antipov's avatar
      Avoid looping over all frame windows to freeze and unfreeze. · d2e113bc
      Dmitry Antipov authored
      * window.h (struct window): Drop frozen_window_start_p.
      (freeze_window_starts): Drop prototype.
      * frame.h (struct frame): New frozen_window_starts flag.
      (FRAME_WINDOWS_FROZEN): New macro.
      * window.c (freeze_window_start, freeze_window_starts):
      Remove.
      (select_window, replace_window): Adjust users.
      * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN.
      (window_frozen_p): New function.
      (redisplay_window): Use it.
      d2e113bc
  4. 11 Aug, 2013 1 commit
    • Paul Eggert's avatar
      Omit some unnecessary casts. · 7d652d97
      Paul Eggert authored
      Many of these go back to the old pre-C89 days, when they may have
      been needed, but we've been assuming C89 or later for a while now.
      * alloc.c (live_string_p, live_cons_p, live_symbol_p)
      (live_float_p, live_misc_p, live_vector_p):
      * buffer.c (compare_overlays, cmp_for_strings, mmap_find)
      (mmap_alloc, alloc_buffer_text, enlarge_buffer_text)
      (defvar_per_buffer):
      * callint.c (Fcall_interactively):
      * doc.c (Fsubstitute_command_keys):
      * filelock.c (get_boot_time):
      * frame.c (xrdb_get_resource):
      * gtkutil.c (hierarchy_ch_cb, qttip_cb, style_changed_cb)
      (delete_cb, xg_dialog_response_cb, xg_maybe_add_timer)
      (xg_get_file_name_from_selector, menuitem_destroy_callback)
      (menuitem_highlight_callback, menu_destroy_callback)
      (xg_update_menu_item, xg_modify_menubar_widgets, menubar_map_cb)
      (xg_tool_bar_callback, xg_get_tool_bar_widgets)
      (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
      (xg_tool_bar_help_callback, tb_size_cb):
      * image.c (xpm_alloc_color, png_read_from_memory)
      (png_read_from_file, png_load_body, our_memory_skip_input_data)
      (jpeg_memory_src, jpeg_file_src, imagemagick_load_image)
      (syms_of_image):
      * keymap.c (describe_map):
      * nsfns.m (Fns_display_monitor_attributes_list):
      * nsmenu.m (process_dialog:):
      * nsterm.m (hold_event):
      * process.c (wait_reading_process_output):
      * regex.c (REGEX_REALLOCATE, re_set_registers, re_exec, regexec):
      * scroll.c (do_direct_scrolling, scrolling_1):
      * termcap.c (tgetent):
      * window.c (check_window_containing, add_window_to_list)
      (freeze_window_starts):
      * xdisp.c (compare_overlay_entries, vmessage):
      * xfns.c (x_window, x_get_monitor_attributes_xinerama)
      (x_get_monitor_attributes_xrandr)
      (Fx_display_monitor_attributes_list, x_display_info_for_name)
      (Fx_open_connection, file_dialog_cb, file_dialog_unmap_cb):
      * xfont.c (xfont_match, xfont_open):
      * xmenu.c (x_menu_wait_for_event, menu_highlight_callback)
      (menubar_selection_callback, menu_position_func)
      (popup_selection_callback, create_and_show_popup_menu)
      (dialog_selection_callback, create_and_show_dialog):
      * xrdb.c (x_get_string_resource):
      (main) [TESTRM]:
      * xsmfns.c (x_session_check_input):
      * xterm.c (x_draw_glyphless_glyph_string_foreground)
      (xm_scroll_callback, xg_scroll_callback, xg_end_scroll_callback)
      (xaw_jump_callback, xaw_scroll_callback):
      Omit unnecessary casts.
      7d652d97
  5. 09 Aug, 2013 2 commits
    • Eli Zaretskii's avatar
      Fix bug #15064 with assertion violation due to mouse face. · 14ba0822
      Eli Zaretskii authored
       src/xdisp.c (draw_glyphs): Don't compare row pointers, compare row
       vertical positions instead.  This avoids calling MATRIX_ROW with
       row numbers that are possibly beyond valid limits.
      14ba0822
    • Dmitry Antipov's avatar
      Use xstrdup and build_unibyte_string where applicable. · 309f24d1
      Dmitry Antipov authored
      * alloc.c (xstrdup): Tiny cleanup.  Add eassert.
      * xfns.c (x_window):
      * xrdb.c (x_get_customization_string):
      * xterm.c (xim_initialize):
      * w32fns.c (w32_window): Use xstrdup.
      (w32_display_monitor_attributes_list):
      * emacs.c (init_cmdargs):
      * keyboard.c (PUSH_C_STR):
      * nsfont.m (nsfont_open):
      * sysdep.c (system_process_attributes):
      * w32.c (system_process_attributes):
      * xdisp.c (message1, message1_nolog): Use build_unibyte_string.
      309f24d1
  6. 08 Aug, 2013 2 commits
    • Dmitry Antipov's avatar
      Redesign redisplay interface to drop global variable updated_window. · 65620264
      Dmitry Antipov authored
      Always pass currently updated window as a parameter to update routines.
      * dispextern.h (updated_window): Remove declaration.
      (struct redisplay_interface): Pass window parameter to
      write_glyphs, insert_glyphs, clear_end_of_line, cursor_to
      and after_update_window_hook.
      (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line, x_cursor_to):
      Adjust prototypes.
      * dispnew.c (updated_window): Remove.
      (redraw_overlapped_rows, update_marginal_area, update_text_area)
      (update_window_line): Adjust to match redisplay interface changes.
      * nsterm.m (ns_update_window_begin, ns_update_window_end)
      (ns_scroll_run, ns_after_update_window_line):
      * w32term.c (x_update_window_begin, x_update_window_end)
      (x_after_update_window_line, x_scroll_run):
      * xterm.c (x_update_window_begin, x_update_window_end)
      (x_after_update_window_line, x_scroll_run):
      * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
      Likewise.  Adjust comments where appropriate.
      (x_cursor_to): Simplify because this is always called during window
      update (but install debugging check anyway).
      (expose_window): Check must_be_updated_p flag to see whether this
      function is called during window update.
      65620264
    • Dmitry Antipov's avatar
      Do not reset window modification event counters excessively. · 628fdc56
      Dmitry Antipov authored
      These leftovers and poor man's tricky methods to catch extra
      redisplay's attention are no longer needed.
      * frame.c (set_menu_bar_lines_1):
      * minibuf.c (read_minibuf_unwind):
      * window.c (Fset_window_start, set_window_buffer, window_resize_apply)
      (grow_mini_window, shrink_mini_window, window_scroll_pixel_based)
      (window_scroll_line_based, Fset_window_configuration):
      * xdisp.c (redisplay_window): Do not reset last_modified and
      last_overlay_modified counters.
      628fdc56
  7. 07 Aug, 2013 3 commits
    • Eli Zaretskii's avatar
      03eb60c1
    • Eli Zaretskii's avatar
      Fix bug #14616 with unnecessary redrawing of TTY frames. · 0ee18172
      Eli Zaretskii authored
       src/xdisp.c (prepare_menu_bars): Don't call x_consider_frame_title
       for TTY frames that are not the top frame on their console.
      0ee18172
    • Dmitry Antipov's avatar
      Be more careful if selected window shows the buffer other than current, · 170da1ec
      Dmitry Antipov authored
      use window_outdated only if this is not so.  This change should also
      address some weird issues discussed in Bug#13012.
      * window.h (window_outdated): New prototype.
      * window.c (window_outdated): Now here.  Convert from static and
      always assume window's buffer.
      (Fwindow_end, Fwindow_line_height): Use it.
      * xdisp.c (reconsider_clip_changes): Remove prototype, drop 2nd arg
      and always assume window's buffer.
      (redisplay_window): Adjust user.
      (redisplay_internal): Call to reconsider_clip_change once and
      check whether mode line should be updated only if selected window
      shows current buffer.
      (run_window_scroll_functions): Use eassert for debugging check.
      (Fmove_point_visually, note_mouse_highlight): Use window_outdated.
      170da1ec
  8. 03 Aug, 2013 2 commits
    • Dmitry Antipov's avatar
      Do not use global Lisp_Object in composition macros. · 75c59fb3
      Dmitry Antipov authored
      * composite.h (composition_temp): Remove declaration.
      (COMPOSITION_METHOD, COMPOSITION_VALID_P): Replace with...
      (composition_method, composition_valid_p): ...inline functions.
      * composite.c (composition_temp): Remove.
      (run_composition_function, update_compositions)
      (composition_compute_stop_pos, composition_adjust_point)
      (Ffind_composition_internal):
      * coding.c (handle_composition_annotation):
      * xdisp.c (handle_composition_prop, check_point_in_composition):
      Related users changed.
      75c59fb3
    • Dmitry Antipov's avatar
      Drop FRAME_PTR typedef. · a10c8269
      Dmitry Antipov authored
      * composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
      * ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
      * menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
      * nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
      * w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
      * w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
      * xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
      All related users changed.
      a10c8269
  9. 24 Jul, 2013 1 commit
  10. 16 Jul, 2013 2 commits
    • Paul Eggert's avatar
      New unwind-protect flavors to better type-check C callbacks. · 27e498e6
      Paul Eggert authored
      This also lessens the need to write wrappers for callbacks,
      and the need for make_save_pointer.
      * alloca.c (free_save_value):
      * atimer.c (run_all_atimers):
      Now extern.
      * alloc.c (safe_alloca_unwind):
      * atimer.c (unwind_stop_other_atimers):
      * keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
      * menu.c (cleanup_popup_menu) [HAVE_NS]:
      * minibuf.c (choose_minibuf_frame_1):
      * process.c (make_serial_process_unwind):
      * xdisp.h (pop_message_unwind):
      * xselect.c (queue_selection_requests_unwind):
      Remove no-longer-needed wrapper.  All uses replaced by the wrappee.
      * alloca.c (record_xmalloc):
      Prefer record_unwind_protect_ptr to record_unwind_protect with
      make_save_pointer.
      * alloca.c (Fgarbage_collect):
      Prefer record_unwind_protect_void to passing a dummy.
      * buffer.c (restore_buffer):
      * window.c (restore_window_configuration):
      * xfns.c, w32fns.c (do_unwind_create_frame)
      New wrapper.  All record-unwind uses of wrappee changed.
      * buffer.c (set_buffer_if_live):
      * callproc.c (call_process_cleanup, delete_temp_file):
      * coding.c (code_conversion_restore):
      * dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
      * editfns.c (save_excursion_restore)
      (subst_char_in_region_unwind, subst_char_in_region_unwind_1)
      (save_restriction_restore):
      * eval.c (restore_stack_limits, un_autoload):
      * fns.c (require_unwind):
      * keyboard.c (recursive_edit_unwind, tracking_off):
      * lread.c (record_load_unwind, load_warn_old_style_backquotes):
      * macros.c (pop_kbd_macro, restore_menu_items):
      * nsfns.m (unwind_create_frame):
      * print.c (print_unwind):
      * process.c (start_process_unwind):
      * search.c (unwind_set_match_data):
      * window.c (select_window_norecord, select_frame_norecord):
      * xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
      (fast_set_selected_frame):
      * xfns.c, w32fns.c (unwind_create_tip_frame):
      Return void, not a dummy Lisp_Object.  All uses changed.
      * buffer.h (set_buffer_if_live): Move decl here from lisp.h.
      * callproc.c (call_process_kill):
      * fileio.c (restore_point_unwind, decide_coding_unwind)
      (build_annotations_unwind):
      * insdel.c (Fcombine_after_change_execute_1):
      * keyboard.c (read_char_help_form_unwind):
      * menu.c (unuse_menu_items):
      * minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
      * sound.c (sound_cleanup):
      * xdisp.c (unwind_redisplay):
      * xfns.c (clean_up_dialog):
      * xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
      Accept no args and return void, instead of accepting and returning
      a dummy Lisp_Object.  All uses changed.
      * cygw32.c (fchdir_unwind):
      * fileio.c (close_file_unwind):
      * keyboard.c (restore_kboard_configuration):
      * lread.c (readevalllop_1):
      * process.c (wait_reading_process_output_unwind):
      Accept int and return void, rather than accepting an Emacs integer
      and returning a dummy object.  In some cases this fixes an
      unlikely bug when the corresponding int is outside Emacs integer
      range.  All uses changed.
      * dired.c (directory_files_internal_unwind):
      * fileio.c (do_auto_save_unwind):
      * gtkutil.c (pop_down_dialog):
      * insdel.c (reset_var_on_error):
      * lread.c (load_unwind):
      * xfns.c (clean_up_file_dialog):
      * xmenu.c, nsmenu.m (pop_down_menu):
      * xmenu.c (cleanup_widget_value_tree):
      * xselect.c (wait_for_property_change_unwind):
      Accept pointer and return void, rather than accepting an Emacs
      save value encapsulating the pointer and returning a dummy object.
      All uses changed.
      * editfns.c (Fformat): Update the saved pointer directly via
      set_unwind_protect_ptr rather than indirectly via make_save_pointer.
      * eval.c (specpdl_func): Remove.  All uses replaced by definiens.
      (unwind_body): New function.
      (record_unwind_protect): First arg is now a function returning void,
      not a dummy Lisp_Object.
      (record_unwind_protect_ptr, record_unwind_protect_int)
      (record_unwind_protect_void): New functions.
      (unbind_to): Support SPECPDL_UNWIND_PTR etc.
      * fileio.c (struct auto_save_unwind): New type.
      (do_auto_save_unwind): Use it.
      (do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
      * insdel.c (struct rvoe_arg): New type.
      (reset_var_on_error): Use it.
      * lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
      New constants.
      (specbinding_func): Remove; there are now several such functions.
      (union specbinding): New members unwind_ptr, unwind_int, unwind_void.
      (set_unwind_protect_ptr): New function.
      * xselect.c: Remove unnecessary forward decls, to simplify maintenance.
      27e498e6
    • Paul Eggert's avatar
      Prefer list1 (X) to Fcons (X, Qnil) when building lists. · 6c6f1994
      Paul Eggert authored
      This makes the code easier to read and the executable a bit smaller.
      Do not replace all calls to Fcons that happen to create lists,
      just calls that are intended to create lists.  For example, when
      creating an alist that maps FOO to nil, use list1 (Fcons (FOO, Qnil))
      rather than list1 (list1 (FOO)) or Fcons (Fcons (FOO, Qnil), Qnil).
      Similarly for list2 through list5.
      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
      * bytecode.c (exec_byte_code):
      * callint.c (quotify_arg, Fcall_interactively):
      * callproc.c (Fcall_process, create_temp_file):
      * charset.c (load_charset_map_from_file)
      (Fdefine_charset_internal, init_charset):
      * coding.c (get_translation_table, detect_coding_system)
      (Fcheck_coding_systems_region)
      (Fset_terminal_coding_system_internal)
      (Fdefine_coding_system_internal, Fdefine_coding_system_alias):
      * composite.c (update_compositions, Ffind_composition_internal):
      * dired.c (directory_files_internal, file_name_completion)
      (Fsystem_users):
      * dispnew.c (Fopen_termscript, bitch_at_user, init_display):
      * doc.c (Fsnarf_documentation):
      * editfns.c (Fmessage_box):
      * emacs.c (main):
      * eval.c (do_debug_on_call, signal_error, maybe_call_debugger)
      (Feval, eval_sub, Ffuncall, apply_lambda):
      * fileio.c (make_temp_name, Fcopy_file, Faccess_file)
      (Fset_file_selinux_context, Fset_file_acl, Fset_file_modes)
      (Fset_file_times, Finsert_file_contents)
      (Fchoose_write_coding_system, Fwrite_region):
      * fns.c (Flax_plist_put, Fyes_or_no_p, syms_of_fns):
      * font.c (font_registry_charsets, font_parse_fcname)
      (font_prepare_cache, font_update_drivers, Flist_fonts):
      * fontset.c (Fset_fontset_font, Ffontset_info, syms_of_fontset):
      * frame.c (make_frame, Fmake_terminal_frame)
      (x_set_frame_parameters, x_report_frame_params)
      (x_default_parameter, Fx_parse_geometry):
      * ftfont.c (syms_of_ftfont):
      * image.c (gif_load):
      * keyboard.c (command_loop_1):
      * keymap.c (Fmake_keymap, Fmake_sparse_keymap, access_keymap_1)
      (Fcopy_keymap, append_key, Fcurrent_active_maps)
      (Fminor_mode_key_binding, accessible_keymaps_1)
      (Faccessible_keymaps, Fwhere_is_internal):
      * lread.c (read_emacs_mule_char):
      * menu.c (find_and_return_menu_selection):
      * minibuf.c (get_minibuffer):
      * nsfns.m (Fns_perform_service):
      * nsfont.m (ns_script_to_charset):
      * nsmenu.m (ns_popup_dialog):
      * nsselect.m (ns_get_local_selection, ns_string_from_pasteboard)
      (Fx_own_selection_internal):
      * nsterm.m (append2):
      * print.c (Fredirect_debugging_output)
      (print_prune_string_charset):
      * process.c (Fdelete_process, Fprocess_contact)
      (Fformat_network_address, set_socket_option)
      (read_and_dispose_of_process_output, write_queue_push)
      (send_process, exec_sentinel):
      * sound.c (Fplay_sound_internal):
      * textprop.c (validate_plist, add_properties)
      (Fput_text_property, Fadd_face_text_property)
      (copy_text_properties, text_property_list, syms_of_textprop):
      * unexaix.c (report_error):
      * unexcoff.c (report_error):
      * unexsol.c (unexec):
      * xdisp.c (redisplay_tool_bar, store_mode_line_string)
      (Fformat_mode_line, syms_of_xdisp):
      * xfaces.c (set_font_frame_param)
      (Finternal_lisp_face_attribute_values)
      (Finternal_merge_in_global_face, syms_of_xfaces):
      * xfns.c (x_default_scroll_bar_color_parameter)
      (x_default_font_parameter, x_create_tip_frame):
      * xfont.c (xfont_supported_scripts):
      * xmenu.c (Fx_popup_dialog, xmenu_show, xdialog_show)
      (menu_help_callback, xmenu_show):
      * xml.c (make_dom):
      * xterm.c (set_wm_state):
      Prefer list1 (FOO) to Fcons (FOO, Qnil) when creating a list,
      and similarly for list2 through list5.
      6c6f1994
  11. 10 Jul, 2013 1 commit
    • Paul Eggert's avatar
      Port to C89. · 29abe551
      Paul Eggert authored
      * lib-src/ebrowse.c (USAGE): Remove macro with too-long string literal ...
      (usage_message): ... and replace it with this new static constant
      containing multiple literals.  All uses changed.
      * lib-src/emacsclient.c (print_help_and_exit):
      Rewrite to avoid string literals longer than the C89 limits.
      (start_daemon_and_retry_set_socket):
      Rewrite to avoid non-constant array initializer.
      * lib-src/make-docfile.c (enum global_type): Omit trailing comma.
      * src/bytecode.c (BYTE_CODE_THREADED): Do not define if __STRICT_ANSI__.
      (B__dummy__): New dummy symbol, to pacify C89.
      * src/dbusbind.c (XD_DEBUG_MESSAGE): Omit debugging on C89 hosts, since
      they can't grok varargs macros.
      * src/dispnew.c (add_window_display_history)
      (add_frame_display_history):
      * src/print.c (print_object):
      * src/xdisp.c (debug_method_add):
      Use %p printf format only for void pointers.
      * src/emacs.c (usage_message): New constant, replacing ...
      (USAGE1, USAGE2, USAGE3): Remove; they were too long for C89.
      (main): Adjust to usage reorg.
      * src/fns.c (syms_of_fns):
      * src/profiler.c (syms_of_profiler):
      Don't use non-constant struct initializers.
      * src/gnutls.h (gnutls_initstage_t):
      * src/lisp.h (enum Lisp_Fwd_Type):
      * src/lread.c (lisp_file_lexically_bound_p):
      * src/xsettings.c (anonymous enum):
      Remove trailing comma.
      * src/xsettings.c (apply_xft_settings): Use %f, not %lf; %lf is a C99ism.
      * src/lisp.h (ENUM_BF): Use unsigned if pedantic.
      (DEFUN_FUNCTION_INIT): New macro, that falls back on a cast if pre-C99.
      (DEFUN): Use it.
      * src/regex.c (const_re_char): New type, to pacify strict C89.
      All uses of 'const re_char' replaced to use it.
      * src/regex.h (_Restrict_): Rename from __restrict, to avoid clash
      with glibc when strict C89.  This change is imported from gnulib.
      All uses changed.
      (_Restrict_arr_): Rename from __restrict_arr, similarly.
      * src/sysdep.c (time_from_jiffies) [!HAVE_LONG_LONG_INT]:
      Omit GNU_LINUX implementation, since it requires long long.
      * src/xterm.c (x_draw_underwave):
      Do not assume the traditional order of struct's members.
      (x_term_init): Rewrite to avoid the need for non-constant structure
      initializers.
      29abe551
  12. 06 Jul, 2013 1 commit
    • Eli Zaretskii's avatar
      Fix bug #14771 with scroll-step = 1 and non-nil line-spacing. · fdda0220
      Eli Zaretskii authored
       src/xdisp.c (default_line_pixel_height): New function.
       (pos_visible_p, move_it_vertically_backward, try_scrolling)
       (try_cursor_movement, redisplay_window, try_window)
       (try_window_id): Use it instead of FRAME_LINE_HEIGHT.  (Bug#14771)
       src/window.c (window_scroll_pixel_based): use
       default_line_pixel_height.
       src/dispextern.h (default_line_pixel_height): Add prototype.
       src/frame.c (x_set_line_spacing): Accept a float value for
       line-spacing parameter, per the documentation.
      fdda0220
  13. 05 Jul, 2013 1 commit
    • Paul Eggert's avatar
      Remove duplicate #include directives. · 47ba6d43
      Paul Eggert authored
      * alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
      * xfaces.c:
      Don't include stdio.h twice.
      * buffer.c [USE_MMAP_FOR_BUFFERS]:
      Don't include sys/types.h or stdio.h twice.
      * fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
      * lread.c: Don't include coding.h twice.
      * nsfont.m: Don't include frame.h twice.
      * process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
      * ralloc.c: Don't include <unistd.h> twice.
      * xdisp.c: Don't include font.h twice.
      * xterm.c: Don't include fontset.h twice.
      * xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
      47ba6d43
  14. 02 Jul, 2013 1 commit
    • Eli Zaretskii's avatar
      Fix bug #2749 with overflow-newline-into-fringe in visual-line-mode. · bcffb5ca
      Eli Zaretskii authored
       src/xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
       word-wrap, so that overflow-newline-into-fringe would work in
       visual-line-mode.
       (move_it_in_display_line_to): When the last scanned display
       element fits exactly on the display line, and
       overflow-newline-into-fringe is non-nil, but wrap_it is valid,
       don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
       wrap point and return MOVE_LINE_CONTINUED.  Fixes problems with
       finding buffer position that corresponds to pixel coordinates,
       e.g. in buffer_posn_from_coords.
      bcffb5ca
  15. 30 Jun, 2013 3 commits
    • Michal Nazarewicz's avatar
      Add `remember-notes' function to store random notes across Emacs · ef099a94
      Michal Nazarewicz authored
      restarts.
      * remember.el (remember-data-file): Add :set callback to affect
      notes buffer (if any).
      (remember-notes): New command.
      (remember-notes-buffer-name, bury-remember-notes-on-kill):
      New defcustoms for the `remember-notes' function.
      (remember-notes-save-and-bury-buffer): New command.
      (remember-notes-mode-map): New variable.
      (remember-mode): New minor mode.
      (remember-notes--kill-buffer-query): New function.
      * lisp/startup.el (initial-buffer-choice): Add notes to custom type.
      * src/buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
      before checking whether buffer is modified.  This lets
      `kill-buffer-query-functions' cancel killing of the buffer or save
      its content before `kill-buffer' asks user the "Buffer %s
      modified; kill anyway?" question.
      
      * remember.el (remember-append-to-file):
      Don't mix `find-buffer-visiting' and `get-file-buffer'.
      
      * lisp/files.el (find-file-noselect): Simplify conditional expression.
      ef099a94
    • Paul Eggert's avatar
      Spelling fixes. · adc5dbce
      Paul Eggert authored
      adc5dbce
    • Eli Zaretskii's avatar
      Don't call sit-for in right-char and left-char for visual cursor motion. · 0ba54312
      Eli Zaretskii authored
       src/xdisp.c (Fmove_point_visually): Invalidate the cursor position
       when moving point by using the current glyph matrix.  This avoids
       the need to force redisplay when this function is called in a
       loop.
      
       lisp/bindings.el (right-char, left-char): Don't call sit-for, this is
       no longer needed.  Use arithmetic comparison only for numerical
       arguments.
      0ba54312
  16. 29 Jun, 2013 2 commits
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 9c90cc06
      Paul Eggert authored
      * coding.c (encode_inhibit_flag, inhibit_flag): New functions.
      Redo the latter's body to sidestep GCC parenthesization warnings.
      (setup_coding_system, detect_coding, detect_coding_system): Use them.
      * coding.c (detect_coding, detect_coding_system):
      * coding.h (struct undecided_spec):
      Use bool for boolean.
      * image.c (QCmax_width, QCmax_height): Now static.
      * xdisp.c (Fmove_point_visually): Remove unused local.
      9c90cc06
    • Eli Zaretskii's avatar
      Implement visual-order cursor motion. · 4c672a0f
      Eli Zaretskii authored
       src/xdisp.c (Fmove_point_visually): New function.
      
       lisp/bindings.el (visual-order-cursor-movement): New defcustom.
       (right-char, left-char): Provide visual-order cursor motion by
       calling move-point-visually.  Update the doc strings.
      
       doc/emacs/basic.texi (Moving Point): Document visual-order-cursor-movement
       and its effect on right-char and left-char.
      
       doc/lispref/display.texi (Bidirectional Display): Document move-point-visually.
      
       etc/NEWS: Document the new feature.
      4c672a0f
  17. 15 Jun, 2013 1 commit
    • Eli Zaretskii's avatar
      Fix bug #14567 with jumpy scrolling of tall images. · 9583ec36
      Eli Zaretskii authored
       src/xdisp.c (Fline_pixel_height): New function, required for solving
       bug #14567.
      
       lisp/simple.el (line-move-partial): Don't jump to the next screen
       line as soon as it becomes visible.  Instead, continue enlarging
       the vscroll until the portion of a tall screen line that's left on
       display is about the height of the frame's default font.
      9583ec36
  18. 10 Jun, 2013 1 commit
  19. 09 Jun, 2013 2 commits
  20. 08 Jun, 2013 1 commit
    • Eli Zaretskii's avatar
      Fix bug #14575 with window-specific overlays with display props. · 5bf97bfc
      Eli Zaretskii authored
       src/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.
       src/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.
       src/dispextern.h (struct bidi_it): New member w, the window being
       displayed.
       (compute_display_string_pos): Adjust prototype.
      5bf97bfc
  21. 06 Jun, 2013 1 commit
    • Eli Zaretskii's avatar
      Improve the fix for bug #14558. · 9ef6111b
      Eli Zaretskii authored
       src/xdisp.c (note_mouse_highlight): When mouse-highlight is off,
       still need to set the mouse pointer shape and activate help-echo.
      9ef6111b
  22. 05 Jun, 2013 1 commit
    • Eli Zaretskii's avatar
      Fix bug #14558 with turning off mouse-highlight during highlight. · 817ebfcf
      Eli Zaretskii authored
       src/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.
      817ebfcf
  23. 03 Jun, 2013 1 commit
    • Stefan Monnier's avatar
      Merge the specpdl and backtrace stacks. Make the structure of the · 2f592f95
      Stefan Monnier authored
      specpdl entries more obvious via a tagged union of structs.
      * src/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.
      * src/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.
      * src/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.
      * src/xdisp.c (redisplay_internal): Use record_in_backtrace.
      * src/alloc.c (Fgarbage_collect): Use record_in_backtrace.
      Use mark_specpdl.
      * src/profiler.c (record_backtrace): Use get_backtrace.
      (handle_profiler_signal): Use backtrace_top_function.
      * src/.gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
      accessor functions.
      2f592f95
  24. 27 May, 2013 1 commit
  25. 21 May, 2013 1 commit
  26. 16 May, 2013 1 commit