1. 04 Oct, 2013 1 commit
  2. 03 Oct, 2013 1 commit
  3. 29 Sep, 2013 1 commit
  4. 28 Sep, 2013 1 commit
  5. 24 Sep, 2013 2 commits
    • Dmitry Antipov's avatar
      Use union for the payload of struct Lisp_Vector. · d6d9cbc1
      Dmitry Antipov authored
      This helps to avoid a few glitches dictated by C's aliasing rules.
      * lisp.h (struct Lisp_Vector): Use union for next and
      contents member.  Adjust comment.  Change related users.
      * alloc.c (next_in_free_list, set_next_in_free_list): Remove.
      Related users changed.
      * buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c:
      * composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c:
      * lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c:
      * xfaces.c, xfont.c, xmenu.c: Related users changed.
      d6d9cbc1
    • Paul Eggert's avatar
      Some minor cleanups of recently-added bool vector code. · 7be68de5
      Paul Eggert authored
      * conf_post.h (assume): Always return void.  Use lint version
      only if GCC and MSC versions don't apply.
      * conf_post.h (assume):
      * data.c (USC_MSC_POPCOUNT, count_trailing_zero_bits):
      Depend on _MSC_VER, not __MSC_VER, for consistency with
      the rest of Emacs.
      * data.c (bool_vector_spare_mask, popcount_size_t_generic)
      (popcount_size_t_msc, popcount_size_t_gcc, popcount_size_t)
      (bool_vector_binop_driver, count_trailing_zero_bits)
      (size_t_to_host_endian): Now static, not static inline;
      the latter isn't needed with modern compilers and doesn't
      work with older compilers anyway.
      7be68de5
  6. 23 Sep, 2013 3 commits
    • Dmitry Antipov's avatar
      * xdisp.c (noninteractive_need_newline, message_log_need_newline) · e08813d0
      Dmitry Antipov authored
      (overlay_arrow_seen, message_enable_multibyte, line_number_displayed)
      (display_last_displayed_message_p, message_buf_print)
      (message_cleared_p, help_echo_showing_p, hourglass_shown_p):
      Use bool for boolean.
      * dispextern.h (help_echo_showing_p, hourglass_shown_p):
      * lisp.h (noninteractive_need_newline): Adjust declaration.
      e08813d0
    • Eli Zaretskii's avatar
      Fix last commit. · b519df23
      Eli Zaretskii authored
       src/xdisp.c (note_mouse_highlight): Adapt calculation of last argument to
       mouse_face_from_string_pos to the previous change.
      
      Fixes: debbugs:15437
      b519df23
    • Eli Zaretskii's avatar
      Fix bug #15437 with mouse highlight on overlay strings. · f03eddbf
      Eli Zaretskii authored
       src/xdisp.c (mouse_face_from_string_pos): Fix off-by-one error in
       computing the end column of mouse-highlight that comes from
       display or overlay strings.
      f03eddbf
  7. 22 Sep, 2013 1 commit
  8. 18 Sep, 2013 1 commit
    • Dmitry Antipov's avatar
      * frame.c (x_mouse_grabbed): New function. · 7a0c745a
      Dmitry Antipov authored
      * dispextern.h (x_mouse_grabbed): Add prototype.
      (last_mouse_frame): Remove declaration.
      * xterm.h (struct x_display_info):
      * w32term.h (struct w32_display_info):
      * nsterm.h (struct ns_display_info): New member
      last_mouse_frame, going to replace...
      * xdisp.c (last_mouse_frame): ...global variable.
      (note_tool_bar_highlight):
      * w32term.c (w32_mouse_position, w32_read_socket):
      * xterm.c (XTmouse_position, handle_one_xevent):
      Use x_mouse_grabbed.
      * nsterm.m (ns_mouse_position, mouseDown): Adjust user.
      7a0c745a
  9. 17 Sep, 2013 1 commit
    • Glenn Morris's avatar
      Add a major-mode for the *Messages* buffer · 90582f05
      Glenn Morris authored
      Ref: http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00135.html
      
      * lisp/simple.el (messages-buffer-mode): New major mode.
      (messages-buffer): New function.
      
      * lisp/startup.el (normal-top-level): Switch mode of *Messages* buffer.
      
      * src/xdisp.c (message_dolog): If we create *Messages*,
      switch it to messages-buffer-mode.
      
      * lisp/emacs-lisp/ert.el (ert--force-message-log-buffer-truncation)
      (ert-run-test): Use `message-buffer' function.
      (ert--force-message-log-buffer-truncation): Ignore read-only.
      
      * lisp/help.el (view-echo-area-messages): Use `message-buffer' function.
      
      * lisp/mail/emacsbug.el (report-emacs-bug): Use `message-buffer' function.
      
      * lisp/gnus/gnus-util.el (gnus-message-with-timestamp-1):
      Use `message-buffer' function if available.  Ignore read-only.
      
      * etc/NEWS: Mention this.
      90582f05
  10. 13 Sep, 2013 1 commit
    • Dmitry Antipov's avatar
      Unify FRAME_window_system_DISPLAY_INFO macros between all ports. · aad3612f
      Dmitry Antipov authored
      All of them are replaced with FRAME_DISPLAY_INFO, defined in
      each port to reference the port-specific window system data.
      * msdos.h (FRAME_X_DISPLAY_INFO): Remove.
      (FRAME_DISPLAY_INFO): Define.
      * w32term.h (FRAME_W32_DISPLAY_INFO, FRAME_X_DISPLAY_INFO): Remove.
      (FRAME_DISPLAY_INFO): Define.  Adjust users.
      * xterm.h (FRAME_X_DISPLAY_INFO): Remove.
      (FRAME_DISPLAY_INFO): Define.  Adjust users.
      * frame.h (FRAME_RES_X, FRAME_RES_Y): Unify.
      * font.c, frame.c, gtkutil.c, image.c, menu.c, msdos.c, nsfns.m:
      * nsfont.m, nsterm.m, w32fns.c, w32font.c, w32menu.c, w32term.c:
      * w32xfns.c, widget.c, xdisp.c, xfaces.c, xfns.c, xfont.c, xmenu.c:
      * xselect.c, xterm.c: All related users changed.
      aad3612f
  11. 11 Sep, 2013 2 commits
    • Paul Eggert's avatar
      * xdisp.c (Ftool_bar_lines_needed): Declare as 'const' if ifdeffed out, · f5dacaae
      Paul Eggert authored
      avoiding a GCC warning.
      f5dacaae
    • Dmitry Antipov's avatar
      Ifdef away frame tool bar code when it is not really used. · 742516e0
      Dmitry Antipov authored
      * frame.h (struct frame) [HAVE_WINDOW_SYSTEM && !USE_GTK && !HAVE_NS]:
      Move tool_bar_window, desired_tool_bar_string, current_tool_bar_string
      and minimize_tool_bar_window_p under the above.
      (fset_current_tool_bar_string, fset_desired_tool_bar_string)
      (fset_tool_bar_window): Likewise.
      * dispnew.c (clear_current_matrices, clear_desired_matrices)
      (adjust_frame_glyphs_for_window_redisplay, free_glyphs, update_frame)
      (change_frame_size_1):
      * window.c (window_from_coordinates, Frecenter): Adjust users.
      * window.h (WINDOW_TOOL_BAR_P): Define to zero when frame tool bar
      code is not really used.
      * xdisp.c (build_desired_tool_bar_string, display_tool_bar_line)
      (tool_bar_lines_needed, MAX_FRAME_TOOL_BAR_HEIGHT, tool_bar_item_info)
      (get_tool_bar_item, handle_tool_bar_click, note_tool_bar_highlight)
      [!USE_GTK && !HAVE_NS]: Define as such.
      (Ftool_bar_lines_needed, redisplay_tool_bar, show_mouse_face)
      (note_mouse_highlight, expose_frame):
      * xfns.c (x_set_tool_bar_lines):
      * xterm.c (handle_one_xevent): Adjust users.
      742516e0
  12. 09 Sep, 2013 2 commits
    • Dmitry Antipov's avatar
      Review and drop old frame resize hack. · 0750a308
      Dmitry Antipov authored
      * frame.h (struct frame): Remove force_flush_display_p.
      * dispnew.c (update_frame): Adjust user and don't call
      flush_frame here.  The comment has said that there was an issues
      with redisplaying fringes, but I don't see any differences with
      and without this hack.  Hopefully we can continue without it.
      * xdisp.c (clear_garbaged_frames): Adjust user and do not clear
      current frame matrices twice if resized_p is set.
      0750a308
    • Dmitry Antipov's avatar
      Cleanup frame flushing. · fd462129
      Dmitry Antipov authored
      * dispextern.h (struct redisplay_interface): Drop
      flush_display_optional because flush_display is enough
      for X and flushing via RIF is just a no-op for others.
      * frame.h (flush_frame): New function.
      * dispnew.c (update_frame):
      * minibuf.c (read_minibuf):
      * xdisp.c (echo_area_display, redisplay_preserve_echo_area):
      Use it.
      * keyboard.c (detect_input_pending_run_timers): Do not flush
      all frames but selected one in redisplay_preserve_echo_area.
      * nsterm.m (ns_flush): Remove no-op.
      (ns_redisplay_interface): Adjust user.
      * w32term.h (x_flush): Remove no-op.
      (w32_redisplay_interface): Adjust user.
      * xterm.c (x_flush): Simplify because we do not flush all
      frames at once any more.  Adjust comment.
      (x_redisplay_interface): Adjust user.
      fd462129
  13. 06 Sep, 2013 3 commits
    • Dmitry Antipov's avatar
      * lisp.h (last_glyphless_glyph_frame, last_glyphless_glyph_face_id) · 77394d40
      Dmitry Antipov authored
      (last_glyphless_glyph_merged_face_id): Remove declarations.
      * dispextern.h (merge_glyphless_glyph_face): Add prototype.
      * xdisp.c (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
      (last_glyphless_glyph_merged_face_id): Now static.
      (merge_escape_glyph_face): New function, refactored from...
      (get_next_display_element): ...here.
      (merge_glyphless_glyph_face): New function, refactored from...
      (produce_glyphless_glyph): ...here...
      * term.c (produce_glyphless_glyph): ...and here.
      77394d40
    • Dmitry Antipov's avatar
      Attempt to make redisplay more selective when changing cursor type. · 7f6c6450
      Dmitry Antipov authored
      * frame.h (struct frame): New bitfield cursor_type_changed.
      * xdisp.c (cursor_type_changed): Remove.
      (try_cursor_movement, redisplay_window, try_window_id)
      (set_frame_cursor_types, try_window_reusing_current_matrix):
      Adjust to use per-frame bitfield.
      (redisplay_internal): Look for cursor type change on each visible
      frame and consider all frames if cursor type has been changed on
      the frame other than selected.  If cursor type has been changed on
      selected frame only, do not use fast update.
      7f6c6450
    • Dmitry Antipov's avatar
      Attempt to make redisplay more selective when changing fonts. · bd0443bb
      Dmitry Antipov authored
      * frame.h (struct frame): New bitfield fonts_changed.
      * dispextern.h (fonts_changed_p, adjust_glyphs): Remove declaration.
      (adjust_frame_glyphs): Add prototype.
      * dispnew.c (fonts_changed_p): Remove.
      (adjust_glyphs): Remove becase we do not
      adjust matrices on all frames at once any more.
      (adjust_frame_glyphs): Block and unblock input here.
      (adjust_glyph_matrix): Use fonts_changed.
      (change_frame_size_1): Use adjust_frame_glyphs.
      * font.c (font_open_entity): Use fonts_changed.
      * frame.c (set_menu_bar_lines, Fmake_terminal_frame):
      * w32fns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
      * window.c (Fdelete_other_windows_internal, Fwindow_resize_apply)
      (Fsplit_window_internal, Fdelete_window_internal, grow_mini_window)
      (shrink_mini_window, Fresize_mini_window_internal)
      (window_scroll_pixel_based, Fset_window_configuration)
      (apply_window_adjustment, Fset_window_vscroll):
      * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_show_tip):
      Use adjust_frame_glyphs.
      * xdisp.c (redisplay_tool_bar, redisplay_window, try_window)
      (try_window_reusing_current_matrix, try_window_id, display_line)
      (IT_EXPAND_MATRIX_WIDTH): Use fonts_changed.
      (redisplay_internal): Consider fonts_changed and adjust frame
      matrices for each frame only if the frame is visible.  If font
      has been changed on some frame during full redisplay, retry
      only visible frames where the font has been actually changed.
      bd0443bb
  14. 05 Sep, 2013 3 commits
    • Dmitry Antipov's avatar
      Cache current header and mode line height for each window. · b9695828
      Dmitry Antipov authored
      * window.h (struct window): New fields mode_line_height
      and header_line_height.
      * window.c (make_window): Initialize them.
      * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
      (CURRENT_HEADER_LINE_HEIGHT): Use them.  Adjust comment.
      (current_mode_line_height, current_header_line_height):
      Remove declaration.
      * xdisp.c (current_mode_line_height, current_header_line_height):
      Remove.
      (pos_visible_p, init_xdisp): Adjust user.
      (redisplay_window): Invalidate mode_line_height and
      header_line_height if current and desired matrices do not agree.
      b9695828
    • Dmitry Antipov's avatar
      * fontset.c, window.c, xdisp.c (toplevel): Use TERM_HEADER. · 66738305
      Dmitry Antipov authored
      * xfaces.c (toplevel) [HAVE_X_WINDOWS]: Do not include xterm.h twice.
      66738305
    • Dmitry Antipov's avatar
      Make --without-x compatible with --enable-gcc-warnings. · 257b3b03
      Dmitry Antipov authored
      * configure.ac: If both --without-x and --enable-gcc-warnings are
      specified, use -Wno-unused-variable, -Wno-unused-but-set-variable
      and -Wno-unused-but-set-parameter.
      * src/font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
      * src/font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
      members under HAVE_WINDOW_SYSTEM.
      * src/keyboard.c (make_lispy_focus_out): Likewise.
      (record_menu_key): Move under HAVE_MENUS.
      * src/xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
      THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
      (syms_of_xdisp): Adjust user.
      (window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
      (start_hourglass, cancel_hourglass):
      * src/xfaces.c (toplevel): Likewise with PT_PER_INCH,
      clear_font_table_count, CLEAR_FONT_TABLE_COUNT
      and CLEAR_FONT_TABLE_NFONTS.
      (set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
      Declare only if HAVE_WINDOW_SYSTEM.
      (lface_same_font_attributes_p, clear_face_gcs): Define only
      if HAVE_WINDOW_SYSTEM.
      257b3b03
  15. 01 Sep, 2013 1 commit
  16. 28 Aug, 2013 2 commits
    • Dmitry Antipov's avatar
      Prefer enum glyph_row_area to int where appropriate. · c3c4768d
      Dmitry Antipov authored
      * dispextern.h (enum glyph_row_area): Add ANY_AREA member.
      Fix comment.
      (window_box, window_box_width, window_box_left, window_box_left_offset)
      (window_box_right, window_box_right_offset): Adjust prototypes.
      * xdisp.c (window_box, window_box_width, window_box_left)
      (window_box_left_offset, window_box_right, window_box_right_offset):
      Use enum glyph_row_area.  Adjust users and tweak comment where needed.
      (window_box_edges): Likewise.  Lost 2nd arg since it is always ANY_AREA.
      * nsterm.m (ns_clip_to_row):
      * w32term.c (w32_clip_to_row):
      * xterm.c (x_clip_to_row): Likewise.
      c3c4768d
    • Dmitry Antipov's avatar
      Redesign redisplay interface to drop global output_cursor. · f60e429a
      Dmitry Antipov authored
      * dispextern.h (struct redisplay_interface): Remove cursor_to member.
      (toplevel): Remove declaration of output_cursor.
      (set_output_cursor, x_cursor_to): Remove prototype.
      * window.h (struct window): New member output_cursor.
      (output_cursor_to): New function to replace RIF member.
      * dispnew.c (redraw_overlapped_rows, update_marginal_area)
      (update_text_area, set_window_cursor_after_update): Use it.
      * xdisp.c (output_cursor, set_output_cursor, x_cursor_to): Remove.
      (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
      * nsterm.m (ns_update_window_begin, ns_update_window_end):
      * w32term.c (x_update_window_begin, x_update_window_end):
      * xterm.c (x_update_window_begin, x_update_window_end):
      Adjust to use per-window output cursor.
      f60e429a
  17. 27 Aug, 2013 2 commits
    • Paul Eggert's avatar
      Simplify EMACS_TIME-related code. · 43aac990
      Paul Eggert authored
      This portability layer is no longer needed, since Emacs has been
      using struct timespec as a portability layer for some time.
      Merge from gnulib, incorporating:
      2013-08-27 timespec: new convenience constants and function
      * src/atimer.h, src/buffer.h, src/dispextern.h, src/xgselect.h:
      Include <time.h> rather than "systime.h"; that's all that's needed now.
      * src/dispnew.c: Include <timespec.h> rather than "systime.h";
      that's all that's needed now.
      * src/systime.h (EMACS_TIME): Remove.  All uses changed to struct timespec.
      (EMACS_TIME_RESOLUTION): Remove.  All uses changed to
      TIMESPEC_RESOLUTION.
      (LOG10_EMACS_TIME_RESOLUTION): Remove.  All uses changed to
      LOG10_TIMESPEC_RESOLUTION.
      (EMACS_SECS, emacs_secs_addr): Remove.  All uses changed to tv_sec.
      (EMACS_NSECS): Remove.  All uses changed to tv_nsec.
      (make_emacs_time): Remove.  All used changed to make_timespec.
      (invalid_timespec): Rename from invalid_emacs_time.  All uses changed.
      (current_timespec): Rename from current_emacs_time.  All uses changed.
      (add_emacs_time): Remove.  All uses changed to timespec_add.
      (sub_emacs_time): Remove.  All uses change dot timespec_sub.
      (EMACS_TIME_SIGN): Remove.  All uses changed to timespec_sign.
      (timespec_valid_p): Rename from EMACS_TIME_VALID_P.  All uses changed.
      (EMACS_TIME_FROM_DOUBLE): Remove.  All uses changed to dtotimespec.
      (EMACS_TIME_TO_DOUBLE): Remove.  All uses changed to timespectod.
      (current_timespec): Rename from current_emacs_time.  All uses changed.
      (EMACS_TIME_EQ, EMACS_TIME_LT, EMACS_TIME_LE): Remove.  All uses
      changed to timespec_cmp.
      * src/xgselect.c: Include <timespec.h>, since our .h files don't.
      43aac990
    • Dmitry Antipov's avatar
      * lisp.h (Mouse_HLInfo): Move from here... · 9fed9729
      Dmitry Antipov authored
      * dispextern.h (Mouse_HLInfo): ...to here and offload lisp.h.
      (reset_mouse_highlight): New function.
      * msdos.c (dos_set_window_size, IT_update_begin)
      (internal_terminal_init):
      * nsterm.m (ns_update_window_end, x_free_frame_resources)
      (ns_initialize_display_info):
      * w32console.c (initialize_w32_display):
      * w32term.c (x_update_window_end, x_free_frame_resources)
      (w32_initialize_display_info):
      * xterm.c (x_update_window_end, x_free_frame_resources, x_term_init):
      * window.c (Fdelete_other_windows_internal):
      * xdisp.c (clear_mouse_face, cancel_mouse_face): Use it.
      * termchar.h (toplevel):
      * xterm.h (toplevel): Include dispextern.h.
      9fed9729
  18. 26 Aug, 2013 3 commits
  19. 24 Aug, 2013 2 commits
  20. 23 Aug, 2013 3 commits
    • Eli Zaretskii's avatar
      Fix bug #15155 with ignoring face remapping for strings from prefix properties. · 6c6014d4
      Eli Zaretskii authored
       src/xdisp.c (handle_face_prop): If the default face was remapped use
       the remapped face for strings from prefix properties.
      6c6014d4
    • Dmitry Antipov's avatar
      Minor cleanup for redisplay interface and few related functions. · 9997ec56
      Dmitry Antipov authored
      * frame.h (enum text_cursor_kinds): Move from here...
      * dispextern.h (enum text_cursor_kinds): ...to here.
      (toplevel): Drop unnecessary declarations.
      (struct redisplay_interface): Use bool and enum text_cursor_kinds
      in update_window_end_hook and draw_window_cursor functions.
      (display_and_set_cursor, x_update_cursor): Adjust prototypes.
      * nsterm.m (ns_update_window_end, ns_draw_window_cursor):
      * w32term.c (x_update_window_end,w32_draw_window_cursor):
      * xterm.c (x_update_window_end, x_draw_window_cursor):
      * xdisp.c (display_and_set_cursor, update_window_cursor)
      (update_cursor_in_window_tree, x_update_cursor): Use bool and
      enum text_cursor_kinds where appropriate.
      9997ec56
    • Dmitry Antipov's avatar
      Redesign redisplay interface to drop updated_row and updated_area. · 7f780da6
      Dmitry Antipov authored
      * dispextern.h (updated_row, updated_area): Remove declaration.
      (struct redisplay_interface): Pass glyph row and row area parameters
      to write_glyphs, insert_glyphs and clear_end_of_line functions.
      (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
      Adjust prototypes.
      * dispnew.c (updated_row, updated_area): Remove.
      (redraw_overlapped_rows, update_window_line): Adjust user.
      (update_marginal_area, update_text_area): Likewise.  Pass updated row
      as a parameter.  Prefer enum glyph_row_area to int where appropriate.
      * xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
      Adjust users.
      7f780da6
  21. 15 Aug, 2013 3 commits
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 691a357f
      Paul Eggert authored
      * frame.c (delete_frame):
      * xdisp.c (next_element_from_display_vector):
      Avoid uninitialized local.
      * image.c (imagemagick_compute_animated_image): Port to C89.
      Prefer usual GNU indentation style for loops.
      Be more careful about bizarrely large sizes, by using ptrdiff_t
      instead of int.
      691a357f
    • Eli Zaretskii's avatar
      Fix bug #15099 with 'box' face attribute in display tables. · 05426239
      Eli Zaretskii authored
       src/xdisp.c (next_element_from_display_vector): Support 'box' face attribute
       in the face definitions of a display vector.
      05426239
    • Eli Zaretskii's avatar
      Fix bug #15090 with redisplay under linum-mode and visual-line-mode. · d39a3da6
      Eli Zaretskii authored
       src/xdisp.c (compute_window_start_on_continuation_line): When
       WORD_WRAP is in effect, use move_it_to instead of move_it_by_lines
       to make sure we end up setting the window start at the leftmost
       visible character of the display line.  This avoids funky
       horizontal shifting because the window start is not kept on the
       same position.
      d39a3da6
  22. 14 Aug, 2013 1 commit