1. 09 Jun, 2011 1 commit
    • Eli Zaretskii's avatar
      Add code to initialize bidi iterator for displaying strings. · bb269206
      Eli Zaretskii authored
      For now, ifdef'ed away.  Some more testing.
      
       src/bidi.c (bidi_level_of_next_char): Allow the sentinel "position"
       to pass the test for valid cached positions.
       src/xdisp.c (init_iterator): Call bidi_init_it only of a valid
       buffer position was specified.  Initialize paragraph_embedding to L2R.
       (reseat_to_string): Initialize the bidi iterator (for now ifdef'ed out).
       (display_string): If we need to ignore text properties of
       LISP_STRING, set IT->stop_charpos to IT->end_charpos.  (The
       original value of -1 will not work with bidi.)
       src/dispextern.h (struct bidi_string_data): New member lstring.
      bb269206
  2. 08 Jun, 2011 1 commit
    • Eli Zaretskii's avatar
      Started work on string reordering. Just compiled, not yet tested. · 87e67904
      Eli Zaretskii authored
       src/bidi.c (bidi_paragraph_info): Delete unused struct.
       (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
       (bidi_cache_start): New variable.
       (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
       to zero.
       (bidi_cache_fetch_state, bidi_cache_search)
       (bidi_cache_find_level_change, bidi_cache_iterator_state)
       (bidi_cache_find, bidi_peek_at_next_level)
       (bidi_level_of_next_char, bidi_find_other_level_edge)
       (bidi_move_to_visually_next): Compare cache index with
       bidi_cache_start rather than with zero.
       (bidi_fetch_char): Accept new argument STRING; all callers
       changed.  Support iteration over a string.
       (bidi_paragraph_init, bidi_resolve_explicit_1)
       (bidi_resolve_explicit, bidi_resolve_weak)
       (bidi_level_of_next_char, bidi_move_to_visually_next): Support
       iteration over a string.
       (bidi_set_sor_type, bidi_resolve_explicit_1)
       (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
       can now be zero (for strings); special values 0 and -1 were
       changed to -1 and -2, respectively.
       (bidi_char_at_pos): New function.
       (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
       Call it instead of FETCH_MULTIBYTE_CHAR.
       (bidi_move_to_visually_next): Abort if charpos or bytepos were not
       initialized to valid values.
       (bidi_init_it): Don't initialize charpos and bytepos with invalid
       values.
       src/xdisp.c (compute_display_string_pos)
       (compute_display_string_end): Accept additional argument STRING.
       (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
       (reseat_to_string): Initialize bidi_it->string.s and
       bidi_it->string.schars.
       src/dispextern.h (struct bidi_string_data): New structure.
       (struct bidi_it): New member `string'.  Make flag members be 1-bit
       fields, and put them last in the struct.
       (compute_display_string_pos, compute_display_string_end): Update
       prototypes.
      87e67904
  3. 04 Jun, 2011 1 commit
  4. 03 Jun, 2011 1 commit
  5. 21 May, 2011 1 commit
    • Eli Zaretskii's avatar
      Discovery of replacing display properties now uses the same code · fc6f18ce
      Eli Zaretskii authored
      as the display engine.  Tested OK with display properties whose
      value is a list.
      
       src/dispextern.h (struct bidi_it): New member frame_window_p.
       (bidi_init_it, compute_display_string_pos): Update prototypes.
       src/bidi.c (bidi_fetch_char): Accept additional argument
       FRAME_WINDOW_P and pass it to compute_display_string_pos.  All
       callers changed.
       (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
       it to initialize the frame_window_p member of struct bidi_it.
       src/xdisp.c (handle_display_spec): New function, refactored from the
       last portion of handle_display_prop.
       (compute_display_string_pos): Accept additional argument
       FRAME_WINDOW_P.  Call handle_display_spec to determine whether the
       value of a `display' property is a "replacing spec".
       (handle_single_display_spec): Accept 2 additional arguments BUFPOS
       and FRAME_WINDOW_P.  If IT is NULL, don't set up the iterator from
       the display property, but just return a value indicating whether
       the display property will replace the characters it covers.
       (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
       frame_window_p members of struct bidi_it.
      fc6f18ce
  6. 14 May, 2011 2 commits
    • Eli Zaretskii's avatar
      Text covered by `display' overlays is correctly reordered. · 7b600102
      Eli Zaretskii authored
      Cursor positioning is not yet right near the overlay.
      
       src/xdisp.c (compute_display_string_pos): Non-trivial implementation.
       (compute_display_string_end): New function.
       src/dispextern.h (compute_display_string_end): Declare prototype.
       src/bidi.c (bidi_resolve_explicit_1): Use ZV for disp_pos.
       (bidi_fetch_char): Implement support for runs of characters
       covered by display strings.
      7b600102
    • Eli Zaretskii's avatar
      Refactoring with bidi_fetch_char tested and debugged. · 102ebb00
      Eli Zaretskii authored
       src/bidi.c (bidi_fetch_char): Accept also character position
       corresponding to BYTEPOS.  All callers changed.
       (bidi_cache_iterator_state, bidi_resolve_explicit_1)
       (bidi_resolve_explicit, bidi_resolve_weak)
       (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
       bidi_it->nchars is non-positive.
       (bidi_level_of_next_char): Don't try to lookup the cache for the
       next/previous character if nothing is cached there yet, or if we
       were just reseat()'ed to a new position.
       (bidi_paragraph_init, bidi_resolve_explicit_1)
       (bidi_level_of_next_char): Fix arguments in the calls to
       bidi_fetch_char.
      102ebb00
  7. 10 May, 2011 1 commit
    • Eli Zaretskii's avatar
      Started work on reordering display strings. Refactor FETCH_CHAR. · 182ce2d2
      Eli Zaretskii authored
      Only compiled, not tested.
      
       src/xdisp.c (compute_display_string_pos): New function.
       (reseat_1): Initialize bidi_it.disp_pos.
       src/bidi.c (bidi_copy_it): Use offsetof.
       (bidi_fetch_char, bidi_fetch_char_advance): New functions.
       (bidi_cache_search, bidi_cache_iterator_state)
       (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
       (bidi_level_of_next_char, bidi_move_to_visually_next): Support
       character positions inside a run of characters covered by a
       display string.
       (bidi_paragraph_init, bidi_resolve_explicit_1)
       (bidi_level_of_next_char): Call bidi_fetch_char and
       bidi_fetch_char_advance instead of FETCH_CHAR and
       FETCH_CHAR_ADVANCE.
       (bidi_init_it): Initialize new members.
       (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
       definitions.
       (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
       instead of using explicit *_CHAR codes.
       (bidi_resolve_explicit, bidi_resolve_weak): Use
       FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
       bidirectional text is supported only in multibyte buffers.
       src/dispextern.h (struct bidi_it): New members nchars and disp_pos.
       ch_len is now EMACS_INT.
       (compute_display_string_pos): Declare prototype.
      182ce2d2
  8. 19 Apr, 2011 1 commit
    • Paul Eggert's avatar
      Replace pEd with more-general pI, and fix some printf arg casts. · c2982e87
      Paul Eggert authored
      * lisp.h (pI): New macro, generalizing old pEd macro to other
      conversion specifiers.  For example, use "...%"pI"d..." rather
      than "...%"pEd"...".
      (pEd): Remove.  All uses replaced with similar uses of pI.
      * src/m/amdx86-64.h, src/m/ia64.h, src/m/ibms390x.h: Likewise.
      * alloc.c (check_pure_size): Don't overflow by converting size to int.
      * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
      * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
      * dbusbind.c (xd_append_arg): Use pI to avoid cast.
      (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
      * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
      64-bit hosts.
      (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
      * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
      * print.c (safe_debug_print, print_object): Likewise.
      (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
      to int.
      Use pI instead of if-then-else-abort.  Use %p to avoid casts.
      * process.c (Fmake_network_process): Use pI to avoid cast.
      * region-cache.c (pp_cache): Likewise.
      * xdisp.c (decode_mode_spec): Likewise.
      * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
      behavior on 64-bit hosts with printf arg.
      * xselect.c (x_queue_event): Use %p to avoid casts.
      (x_stop_queuing_selection_requests): Likewise.
      (x_get_window_property): Don't truncate byte count to an 'int'
      when tracing.
      c2982e87
  9. 11 Apr, 2011 1 commit
  10. 08 Mar, 2011 2 commits
  11. 23 Feb, 2011 1 commit
  12. 25 Jan, 2011 1 commit
  13. 15 Jan, 2011 1 commit
  14. 01 Oct, 2010 1 commit
    • Dan Nicolaescu's avatar
      Do not include stdlib.h and string.h, config.h does it. · 4cacd822
      Dan Nicolaescu authored
      * src/xfont.c:
      * src/w32term.c:
      * src/w32reg.c:
      * src/w32inevt.c:
      * src/w32heap.c:
      * src/w32console.c:
      * src/w16select.c:
      * src/unexsol.c:
      * src/term.c:
      * src/sound.c:
      * src/scroll.c (m):
      * src/gtkutil.c:
      * src/font.c:
      * src/filelock.c:
      * src/fileio.c:
      * src/dosfns.c:
      * src/dbusbind.c:
      * src/bidi.c:
      * src/callproc.c:
      * src/process.c:
      * src/msdos.c:
      * src/charset.c: Do not include stdlib.h and string.h, config.h does it.
      
      * configure.in: Include stdlib.h and string.h unconditionally.
      4cacd822
  15. 24 Sep, 2010 1 commit
  16. 18 Sep, 2010 1 commit
    • Eli Zaretskii's avatar
      Fix bug #7038 with cursor motion in paragraphs w/o strong characters. · bea4f10c
      Eli Zaretskii authored
       xdisp.c (Fcurrent_bidi_paragraph_direction): Call
       bidi_paragraph_init with NO_DEFAULT_P non-zero.
       bidi.c (bidi_paragraph_init): Accept an additional argument
       NO_DEFAULT_P; all callers changed.  If NO_DEFAULT_P is non-zero,
       search back until a paragraph with a strong directional character
       is found, and use that to determine paragraph's base direction.
       dispextern.h (bidi_paragraph_init): Update prototype.
      bea4f10c
  17. 18 Aug, 2010 1 commit
  18. 14 Aug, 2010 1 commit
  19. 06 Aug, 2010 1 commit
    • Jan D's avatar
      Fix missing prototypes for HAVE_NS (caused crash) and vrious warnings. · 3d608a86
      Jan D authored
      * configure.in: Check for util.h.
      
      * src/bidi.c (bidi_dump_cached_states): Fix fprintf warning.
      
      * src/emacs.c: Include src/nsterm.h if HAVE_NS.
      
      * src/image.c (xpm_scan, xpm_make_color_table_v)
      (xpm_put_color_table_v, xpm_get_color_table_v)
      (xpm_make_color_table_h, xpm_put_color_table_h)
      (xpm_get_color_table_h, xpm_str_to_color_key, xpm_load_image)
      (xpm_load): Convert to ANSI C prototypes.
      
      * src/lisp.h (fmod_float): Declare.
      
      * src/menu.h (x_set_menu_bar_line): Declare.
      (free_menubar_widget_value_tree et.al): Add HAVE_NS for these functions.
      
      * src/window.c: Include menu.h.
      
      * src/nsfns.m (have_menus_p, ns_display_info_for_name)
      (x_set_cursor_type, ns_appkit_version_str)
      (ns_appkit_version_int, ns_do_applescript)
      (x_set_scroll_bar_default_width, x_sync, compute_tip_xy)
      (syms_of_nsfns): Convert to ANSI C prototypes.
      
      * src/nsfont.m (ns_fallback_entity, syms_of_nsfont): Convert to ANSI C
      prototypes.
      
      * src/nsimage.m (ns_load_image): Move NSTRACE after declarations.
      
      * src/nsmenu.m (popup_activated, name_is_separator)
      (syms_of_nsmenu): Convert to ANSI C prototypes.
      (runMenuAt): Prototypes and move declarations before code.
      
      * src/nsterm.h : Include sysselect.h.
      (x_sync, x_get_focus_frame, x_set_mouse_position)
      (x_set_mouse_pixel_position, x_make_frame_visible)
      (x_make_frame_invisible, x_iconify_frame, x_char_width, x_char_height)
      (x_pixel_width, x_pixel_height, x_set_frame_alpha, x_set_tool_bar_lines)
      (x_activate_menubar, free_frame_menubar, ns_init_paths, ns_select)
      (syms_of_nsterm, syms_of_nsfns, syms_of_nsmenu, syms_of_nsselect):
      Declare
      
      * src/process.c: Check HAVE_UTIL_H. Include src/nsterm.h if HAVE_NS.
      
      * src/nsterm.m (ns_init_paths, ns_alloc_autorelease_pool)
      (ns_ring_bell, ns_defined_color, hide_hourglass)
      (x_display_pixel_height, x_display_pixel_width, syms_of_nsterm):
      Convert to ANSI C prototypes.
      (x_set_window_size, ns_draw_fringe_bitmap, judge): Move declarations
      before code.
      
      * src/sysdep.c: Check HAVE_TERM_H
      
      * src/term.c: Check HAVE_SYS_IOCTL_H.
      
      * src/unexmacosx.c (print_region_list, print_regions)
      (build_region_list, find_emacs_zone_regions)
      (unexec_regions_merge, read_load_commands, dump_it)
      (unexec_init_emacs_zone): Convert to ANSI C prototypes.
      
      * src/xfaces.c (x_create_gc, x_free_gc): Convert to ANSI C prototypes.
      3d608a86
  20. 08 Jul, 2010 1 commit
    • Dan Nicolaescu's avatar
      Clean up include guards. · 295d0d8f
      Dan Nicolaescu authored
      * src/tparam.c: Remove include guards for config.h, string.h and code
      that assumes #ifndef emacs.
      * src/termcap.c:
      * src/unexalpha.c:
      * src/sysdep.c:
      * src/filemode.c:
      * src/filelock.c:
      * src/bidi.c: Likewise.
      295d0d8f
  21. 04 Jul, 2010 1 commit
    • Dan Nicolaescu's avatar
      Convert (most) functions in src to standard C. · 971de7fb
      Dan Nicolaescu authored
      * src/alloc.c: Convert function definitions to standard C.
      * src/atimer.c:
      * src/bidi.c:
      * src/bytecode.c:
      * src/callint.c:
      * src/callproc.c:
      * src/casefiddle.c:
      * src/casetab.c:
      * src/category.c:
      * src/ccl.c:
      * src/character.c:
      * src/charset.c:
      * src/chartab.c:
      * src/cmds.c:
      * src/coding.c:
      * src/composite.c:
      * src/data.c:
      * src/dbusbind.c:
      * src/dired.c:
      * src/dispnew.c:
      * src/doc.c:
      * src/doprnt.c:
      * src/ecrt0.c:
      * src/editfns.c:
      * src/fileio.c:
      * src/filelock.c:
      * src/filemode.c:
      * src/fns.c:
      * src/font.c:
      * src/fontset.c:
      * src/frame.c:
      * src/fringe.c:
      * src/ftfont.c:
      * src/ftxfont.c:
      * src/gtkutil.c:
      * src/indent.c:
      * src/insdel.c:
      * src/intervals.c:
      * src/keymap.c:
      * src/lread.c:
      * src/macros.c:
      * src/marker.c:
      * src/md5.c:
      * src/menu.c:
      * src/minibuf.c:
      * src/prefix-args.c:
      * src/print.c:
      * src/ralloc.c:
      * src/regex.c:
      * src/region-cache.c:
      * src/scroll.c:
      * src/search.c:
      * src/sound.c:
      * src/strftime.c:
      * src/syntax.c:
      * src/sysdep.c:
      * src/termcap.c:
      * src/terminal.c:
      * src/terminfo.c:
      * src/textprop.c:
      * src/tparam.c:
      * src/undo.c:
      * src/unexelf.c:
      * src/window.c:
      * src/xfaces.c:
      * src/xfns.c:
      * src/xfont.c:
      * src/xftfont.c:
      * src/xgselect.c:
      * src/xmenu.c:
      * src/xrdb.c:
      * src/xselect.c:
      * src/xsettings.c:
      * src/xsmfns.c:
      * src/xterm.c: Likewise.
      971de7fb
  22. 13 Jun, 2010 1 commit
  23. 12 Jun, 2010 2 commits
    • Eli Zaretskii's avatar
      Use BidiMirroring.txt for mirroring characters in bidi context. · cbc4fd20
      Eli Zaretskii authored
       admin/unidata/bidimirror.awk: New file.
       admin/unidata/BidiMirroring.txt: New file from
       http://www.unicode.org/Public/6.0.0/ucd/BidiMirroring-6.0.0d1.txt.
       admin/unidata/Makefile.in: (../../src/bidimirror.h): New target.
       (all): Depend on ../../src/biditype.h and ../../src/bidimirror.h.
       admin/unidata/makefile.w32-in (../../src/bidimirror.h): New target.
       (all): Depend on ../../src/biditype.h and ../../src/bidimirror.h.
       src/makefile.w32-in ($(BLD)/bidi.$(O)): Depend on biditype.h and
       bidimirror.h.
       src/deps.mk (bidi.o): Depend on biditype.h and bidimirror.h.
       src/bidi.c (bidi_initialize): Initialize bidi_mirror_table.
       (bidi_mirror_char): Use bidi_mirror_table.
      cbc4fd20
    • Eli Zaretskii's avatar
      Derive bidi type table from UnicodeData.txt. · 317fbf33
      Eli Zaretskii authored
       src/bidi.c (bidi_initialize): Remove explicit initialization of
       bidi_type_table; include biditype.h instead.  Don't support
       entries whose second codepoint is zero.
       src/biditype.h: New file.
       admin/unidata/biditype.awk: New file.
       admin/unidata/Makefile.in (../../src/biditype.h): New target.
       admin/unidata/makefile.w32-in (../../src/biditype.h): New target.
      317fbf33
  24. 30 May, 2010 1 commit
  25. 19 May, 2010 2 commits
    • Eli Zaretskii's avatar
      Completed initial debugging and testing of reimplemented cursor motion. · 0416466c
      Eli Zaretskii authored
       .gdbinit (prowlims): Display row->minpos and row->maxpos.
       Display truncated_on_left_p and truncated_on_right_p flags.
       Formatting fixes.
       (pmtxrows): Display the ordinal number of each row.  Don't display
       rows beyond the last one.
       xdisp.c (RECORD_MAX_MIN_POS): New macro.
       (display_line): Use it to record the minimum and maximum buffer
       positions for glyphs in the row being assembled.  If word wrap is
       in effect, restore minimum and maximum positions seen up to the
       wrap point, when iterator returns to it.
       (find_row_edges): Fix logic; eol_pos should be tested before the
       rest.
       (try_window_reusing_current_matrix): Give up if in bidi-reordered
       row and cursor not already at point.  Restore original pre-bidi
       code for unidirectional buffers.
       bidi.c (bidi_cache_shrink, bidi_cache_iterator_state): Fix
       reallocation of the cache.  (Bug#6210)
       (bidi_cache_iterator_state): Don't zero out new_paragraph (it is
       not copied by bidi_copy_it).
      0416466c
    • Eli Zaretskii's avatar
      Fix bug #6210. · ead6f8f5
      Eli Zaretskii authored
       bidi.c (bidi_cache_shrink, bidi_cache_iterator_state): Fix
       reallocation of the cache.
      ead6f8f5
  26. 15 May, 2010 2 commits
    • Eli Zaretskii's avatar
      Avoid crashes when stepping with right-arrow through "^L^L". · 2e9abc3d
      Eli Zaretskii authored
       bidi.c (bidi_paragraph_init): Remove redundant assertion that we are at
       the beginning of a line after call to bidi_find_paragraph_start.
      2e9abc3d
    • Eli Zaretskii's avatar
      Implement bidi-sensitive movement with arrow keys. · d20e1419
      Eli Zaretskii authored
       src/bidi.c (bidi_paragraph_init): Don't leave alone garbage values
       of bidi_it->paragraph_dir.  Call bidi_initialize if needed.
       src/xdisp.c (Fcurrent_bidi_paragraph_direction): New function.
       (syms_of_xdisp): Defsubr it.
       src/cmds.c (Fforward_char, Fbackward_char): Doc fix.
       src/subr.el (right-arrow-command, left-arrow-command): New functions.
       src/bindings.el (global-map): Bind them to right and left arrow keys.
       etc/NEWS: Mention current-bidi-paragraph-direction
      d20e1419
  27. 14 May, 2010 2 commits
  28. 21 Apr, 2010 1 commit
    • Eli Zaretskii's avatar
      Fix bug #5992. · 372b7a95
      Eli Zaretskii authored
       bidi.c (bidi_find_paragraph_start, bidi_at_paragraph_end): Don't
       use buffer-local values of paragraph-start and paragraph-separate.
       <paragraph_start_re, paragraph_separate_re>: Rename from
       fallback_paragraph_start_re and fallback_paragraph_separate_re.
      372b7a95
  29. 20 Apr, 2010 2 commits
    • Stefan Monnier's avatar
      * buffer.h (struct buffer): Remove unused var `direction_reversed'. · b4bf28b7
      Stefan Monnier authored
      * buffer.c (init_buffer_once, syms_of_buffer): Remove its initialization.
      
      * bidi.c (bidi_initialize): Simplify fallback_paragraph_*_re init.
      b4bf28b7
    • Stefan Monnier's avatar
      Make variable forwarding explicit rather the using special values. · ce5b453a
      Stefan Monnier authored
      Basically, this makes the structure of buffer-local values and object
      forwarding explicit in the type of Lisp_Symbols rather than use
      special Lisp_Objects for that.  This tends to lead to slightly more
      verbose code, but is more C-like, simpler, and makes it easier to make
      sure we handled all cases, among other things by letting the compiler
      help us check it.
      * lisp.h (enum Lisp_Misc_Type, union Lisp_Misc):
      Removing forwarding objects.
      (enum Lisp_Fwd_Type, enum symbol_redirect, union Lisp_Fwd): New types.
      (struct Lisp_Symbol): Make the various forms of variable-forwarding
      explicit rather than hiding them inside Lisp_Object "values".
      (XFWDTYPE): New macro.
      (XINTFWD, XBOOLFWD, XOBJFWD, XKBOARD_OBJFWD): Redefine.
      (XBUFFER_LOCAL_VALUE): Remove.
      (SYMBOL_VAL, SYMBOL_ALIAS, SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL)
      (SET_SYMBOL_ALIAS, SET_SYMBOL_BLV, SET_SYMBOL_FWD): New macros.
      (SYMBOL_VALUE, SET_SYMBOL_VALUE): Remove.
      (struct Lisp_Intfwd, struct Lisp_Boolfwd, struct Lisp_Objfwd)
      (struct Lisp_Buffer_Objfwd, struct Lisp_Kboard_Objfwd):
      Remove the Lisp_Misc_* header.
      (struct Lisp_Buffer_Local_Value): Redefine.
      (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): New macros.
      (struct Lisp_Misc_Any): Add filler to get the right size.
      (struct Lisp_Free): Use struct Lisp_Misc_Any rather than struct
      Lisp_Intfwd.
      (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
      (DEFVAR_KBOARD): Allocate a forwarding object.
      * data.c (do_blv_forwarding, store_blv_forwarding): New macros.
      (let_shadows_global_binding_p): New function.
      (union Lisp_Val_Fwd): New type.
      (make_blv): New function.
      (swap_in_symval_forwarding, indirect_variable, do_symval_forwarding)
      (store_symval_forwarding, swap_in_global_binding, Fboundp)
      (swap_in_symval_forwarding, find_symbol_value, Fset)
      (let_shadows_buffer_binding_p, set_internal, default_value)
      (Fset_default, Fmake_variable_buffer_local, Fmake_local_variable)
      (Fkill_local_variable, Fmake_variable_frame_local)
      (Flocal_variable_p, Flocal_variable_if_set_p)
      (Fvariable_binding_locus):
      * xdisp.c (select_frame_for_redisplay):
      * lread.c (Fintern, Funintern, init_obarray, defvar_int)
      (defvar_bool, defvar_lisp_nopro, defvar_lisp, defvar_kboard):
      * frame.c (store_frame_param):
      * eval.c (Fdefvaralias, Fuser_variable_p, specbind, unbind_to):
      * bytecode.c (Fbyte_code) <varref, varset>: Adapt to the new symbol
      value structure.
      * buffer.c (PER_BUFFER_SYMBOL): Move from buffer.h.
      (clone_per_buffer_values): Only adjust markers into the current buffer.
      (reset_buffer_local_variables): PER_BUFFER_IDX is never -2.
      (Fbuffer_local_value, set_buffer_internal_1)
      (swap_out_buffer_local_variables):
      Adapt to the new symbol value structure.
      (DEFVAR_PER_BUFFER): Allocate a Lisp_Buffer_Objfwd object.
      (defvar_per_buffer): Take a new arg for the fwd object.
      (buffer_lisp_local_variables): Return a proper alist (different fix
      for bug#4138).
      * alloc.c (Fmake_symbol): Use SET_SYMBOL_VAL.
      (Fgarbage_collect): Don't handle buffer_defaults specially.
      (mark_object): Handle new symbol value structure rather than the old
      special Lisp_Misc_* objects.
      (gc_sweep) <symbols>: Free also the buffer-local-value objects.
      * term.c (set_tty_color_mode):
      * bidi.c (bidi_initialize): Don't access the ->value field directly.
      * buffer.h (PER_BUFFER_VAR_OFFSET): Don't bother with
      a buffer_local_flags.
      * print.c (print_object): Get rid of impossible forwarding objects.
      ce5b453a
  30. 19 Apr, 2010 2 commits
  31. 17 Apr, 2010 1 commit
  32. 08 Apr, 2010 1 commit