1. 09 Jan, 2012 4 commits
  2. 10 Sep, 2011 1 commit
  3. 07 Jul, 2011 1 commit
  4. 25 May, 2011 2 commits
  5. 09 May, 2011 1 commit
    • Eli Zaretskii's avatar
      Backport revisions... · 14fe7b53
      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
       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.
       All uses changed.
       (XVECTOR_HEADER_SIZE): New macro, for use in XSETPSEUDOVECTOR.
       (XSETTYPED_PVECTYPE): New macro, specifying the name of the size
       (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.
       (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.
  6. 13 Apr, 2011 1 commit
  7. 19 Mar, 2011 1 commit
    • Chong Yidong's avatar
      Backport fix for Bug#8219 from trunk. · 20f56955
      Chong Yidong authored
      (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.
  8. 13 Feb, 2011 1 commit
  9. 24 Jan, 2011 1 commit
  10. 02 Jan, 2011 1 commit
  11. 25 Dec, 2010 1 commit
    • Eli Zaretskii's avatar
      More fallout from fixing bug #7587. · 2e4ab211
      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.
  12. 17 Dec, 2010 1 commit
  13. 16 Dec, 2010 1 commit
  14. 11 Dec, 2010 1 commit
    • Eli Zaretskii's avatar
      Code cleanup in xdisp.c regarding string_char_and_length. · f0559026
      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
  15. 06 Dec, 2010 1 commit
    • Chong Yidong's avatar
      Fix crash with invisible text and overlays (Bug#7016). · d8b2a962
      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).
  16. 05 Dec, 2010 1 commit
  17. 04 Nov, 2010 1 commit
  18. 31 Aug, 2010 1 commit
  19. 25 Jun, 2010 1 commit
  20. 27 May, 2010 1 commit
  21. 05 Apr, 2010 1 commit
  22. 30 Mar, 2010 1 commit
  23. 29 Mar, 2010 1 commit
    • Chong Yidong's avatar
      Clean up unneeded ns_set_icon_type calls. · 9ae6e189
      Chong Yidong authored
      Patch from Adrian Robert, see
      * 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
      * nsterm.m: Remove unneeded prototype.
  24. 24 Mar, 2010 1 commit
  25. 26 Feb, 2010 1 commit
  26. 25 Feb, 2010 1 commit
  27. 23 Jan, 2010 1 commit
  28. 16 Jan, 2010 1 commit
  29. 15 Jan, 2010 1 commit
  30. 13 Jan, 2010 2 commits
  31. 09 Jan, 2010 2 commits
    • Chong Yidong's avatar
    • YAMAMOTO Mitsuharu's avatar
      Make line<->pixel_y conversion macros aware of native menu/tool bars. · 4b00d3b1
      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
      (XTflash): Take account of menu bar height.
      * w32term.c (x_after_update_window_line): Don't treat tool bar windows
  32. 15 Dec, 2009 2 commits
  33. 05 Dec, 2009 1 commit