- 09 Jan, 2012 4 commits
-
-
Johan Bockgård authored
* xdisp.c (fill_composite_glyph_string): Always set s->face, to avoid a crash (bug#9496).
-
Chong Yidong authored
-
Chong Yidong authored
* xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
-
Eli Zaretskii authored
* 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.
-
- 10 Sep, 2011 1 commit
-
-
YAMAMOTO Mitsuharu authored
* xdisp.c (expose_window): Save original value of phys_cursor_on_p and turn window cursor on if cleared (Bug#9415).
-
- 07 Jul, 2011 1 commit
-
-
Kenichi Handa authored
-
- 25 May, 2011 2 commits
-
-
YAMAMOTO Mitsuharu authored
* 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.
-
Kenichi Handa authored
-
- 09 May, 2011 1 commit
-
-
Eli Zaretskii authored
Backport revisions 2011-04-24T05:30:24Z!eggert@cs.ucla.edu..2011-04-25T19:40:22Z!eggert@cs.ucla.edu (inclusive) from trunk (bug#8623) The next log entry shows the actual changes by Paul Eggert. Fix a problem with aliasing and vector headers. 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 vector_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. src/lisp.h (XVECTOR_SIZE): New convenience macro. All previous uses of XVECTOR (foo)->size replaced to use this macro, to avoid the hassle of writing XVECTOR (foo)->header.size. src/lisp.h: Say "vectorlike header" rather than "vector header. (struct vectorlike_header): Rename from struct vector_header. (XVECTORLIKE_HEADER_SIZE): Renamed from XVECTOR_HEADER_SIZE. All uses changed. (XVECTOR_HEADER_SIZE): New macro, for use in XSETPSEUDOVECTOR. (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 and XVECTOR_HEADER_SIZE. (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE, since Lisp_Subr is a special case (no "next" field). (ASIZE): Rewrite in terms of XVECTOR_SIZE. (struct vector_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. src/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 vector_header member. All uses of "size" and "next" members changed to be "header.size" and "header.next". src/buffer.h (struct buffer): Likewise. src/font.h (struct font_spec, struct font_entity, struct font): Likewise. src/frame.h (struct frame): Likewise. src/process.h (struct Lisp_Process): Likewise. src/termhooks.h (struct terminal): Likewise. src/window.c (struct save_window_data, struct saved_window): Likewise. src/window.h (struct window): Likewise. src/alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector): Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems. src/buffer.c (init_buffer_once): Likewise. src/lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a special case. src/process.c (Fformat_network_address): Use local var for size, for brevity. src/fns.c (vector): Remove; this old hack is no longer needed. src/bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
-
- 13 Apr, 2011 1 commit
-
-
Chong Yidong authored
-
- 19 Mar, 2011 1 commit
-
-
Chong Yidong authored
* 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.
-
- 13 Feb, 2011 1 commit
-
-
Eli Zaretskii authored
xdisp.c (redisplay_internal): Resynchronize `w' if the selected window is changed inside calls to do_pending_window_change.
-
- 24 Jan, 2011 1 commit
-
-
Stefan Monnier authored
the buffer's point-max. Fixes: debbugs:7876
-
- 02 Jan, 2011 1 commit
-
-
Glenn Morris authored
-
- 25 Dec, 2010 1 commit
-
-
Eli Zaretskii authored
src/xdisp.c (Fformat_mode_line): Doc fix: no need to state that only the basic faces are supported. doc/lispref/modes.texi (Emulating Mode Line): Fix last change. etc/NEWS: Remove the entry about format-mode-line accepting only basic faces.
-
- 17 Dec, 2010 1 commit
-
-
Eli Zaretskii authored
xdisp.c (Fformat_mode_line): Fix last change.
-
- 16 Dec, 2010 1 commit
-
-
Chong Yidong authored
-
- 11 Dec, 2010 1 commit
-
-
Eli Zaretskii authored
xdisp.c (string_pos_nchars_ahead, c_string_pos) (face_before_or_after_it_pos, next_element_from_string) (next_element_from_c_string, produce_stretch_glyph): Remove unused calculations of maximum string length before calling string_char_and_length and STRING_CHAR_AND_LENGTH. (string_char_and_length): Update commentary: MAXLEN is no longer needed.
-
- 06 Dec, 2010 1 commit
-
-
Chong Yidong authored
* src/dispextern.h (struct it): New member overlay_strings_charpos. * src/xdisp.c (next_overlay_string, load_overlay_strings): Record the charpos where we computed n_overlay_strings. (next_overlay_string): Load overlay strings at recorded position, which may not be the same as the iterator's charpos (Bug#7016).
-
- 05 Dec, 2010 1 commit
-
-
Chong Yidong authored
* src/xdisp.c (try_scrolling): Avoid infloop if the first line is obscured due to a vscroll (Bug#7537).
-
- 04 Nov, 2010 1 commit
-
-
Chong Yidong authored
-
- 31 Aug, 2010 1 commit
-
-
Kenichi Handa authored
-
- 25 Jun, 2010 1 commit
-
-
Chong Yidong authored
* xdisp.c (next_element_from_image): Ensure that after-strings are read the next time we hit handle_stop (Bug#1336).
-
- 27 May, 2010 1 commit
-
-
Chong Yidong authored
still valid before setting it (Bug#6177).
-
- 05 Apr, 2010 1 commit
-
-
Chong Yidong authored
* xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for terminal frames (Bug#5837).
-
- 30 Mar, 2010 1 commit
-
-
Jan Djärv authored
-
- 29 Mar, 2010 1 commit
-
-
Chong Yidong authored
Patch from Adrian Robert, see http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01391.html * xdisp.c (x_consider_frame_title, update_window_cursor): Remove HAVE_NS conditionals. (prepare_menu_bars)[HAVE_NS]: Call ns_set_doc_edited. * nsfns.m (x_implicitly_set_name): If frame-title-format is t, use filename for the title. (ns_set_doc_edited): Do nothing if the selected window is a minibuffer window. * nsterm.h: Add prototypes for ns_set_name_as_filename and ns_set_doc_edited. * nsterm.m: Remove unneeded prototype.
-
- 24 Mar, 2010 1 commit
-
-
Chong Yidong authored
-
- 26 Feb, 2010 1 commit
-
-
Kenichi Handa authored
-
- 25 Feb, 2010 1 commit
-
-
Kenichi Handa authored
-
- 23 Jan, 2010 1 commit
-
-
YAMAMOTO Mitsuharu authored
-
- 16 Jan, 2010 1 commit
-
-
Eli Zaretskii authored
-
- 15 Jan, 2010 1 commit
-
-
Kenichi Handa authored
-
- 13 Jan, 2010 2 commits
-
-
Glenn Morris authored
-
Kenichi Handa authored
-
- 09 Jan, 2010 2 commits
-
-
Chong Yidong authored
-
YAMAMOTO Mitsuharu authored
They are placed above the internal border. This supersedes special treatment of native tool bars in the display code. This fixes wrong display position of native menu bars and bogus mouse highlighting of native tool bars, both of which can be found when internal border width is large. Also it fixes wrong flashed part on visible bell with native menu bars. * frame.h (FRAME_TOP_MARGIN_HEIGHT): New macro. (FRAME_LINE_TO_PIXEL_Y, FRAME_PIXEL_Y_TO_LINE): Take account of pseudo windows above internal border. * window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P): New macros. (WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y): Take account of pseudo windows above internal border. * xdisp.c (get_glyph_string_clip_rects, init_glyph_string): Don't treat tool bar windows specially. * xfns.c (x_set_tool_bar_lines): Take account of menu bar height. * xterm.c (x_after_update_window_line): Don't treat tool bar windows specially. (XTflash): Take account of menu bar height. * w32term.c (x_after_update_window_line): Don't treat tool bar windows specially.
-
- 15 Dec, 2009 2 commits
-
-
Chong Yidong authored
-
Chong Yidong authored
calling file-remote-p. Reported by Jim Meyering.
-
- 05 Dec, 2009 1 commit
-
-
Chong Yidong authored
if push failed. (handle_line_prefix): Set avoid_cursor_p here. Check return value of push_display_prop (Bug#5000).
-