2007-01-22  Behdad Esfahbod  <[email protected]>

       Released vte-0.15.2.

       * NEWS: Updated.

       * configure.in: Bumped version to 0.15.2.

       * src/Makefile.am: Bumped libtool version to 10:9:1.

2007-01-22  Chris Wilson <[email protected]>

       Bug 399137 - continuation.

       * src/vteaccess.c: (vte_terminal_accessible_text_modified):
               Classic bug:
                       clen = cp - old
               rather than the more correct
                       clen = cp - current

2007-01-22  Chris Wilson <[email protected]>

       * src/vteapp.c: (char_size_changed), (char_size_realized), (main):
               Don't try to perform gdk operations on unrealized windows.

2007-01-22  Chris Wilson <[email protected]>

       * src/pty.c: (_vte_pty_run_on_pty):
               Print out the argument vector for VTE_DEBUG_MISC.

2007-01-22  Chris Wilson <[email protected]>

       * src/pty.c: (_vte_pty_run_on_pty):
               Protect against g_strv_length(NULL)

2007-01-22  Chris Wilson <[email protected]>

       Bug 399137 - continuation.

       * src/vteaccess.c: (vte_terminal_accessible_text_modified):
               After walking back along the UTF-8 string, remember to update
               the string lengths that are used to detect insertions and
               deletions!

2007-01-22  Chris Wilson <[email protected]>

       If the caret is at the end of the buffer, then it set past the
       end of the offset array - do not use this as a lookup!

       * src/vteaccess.c: (vte_terminal_accessible_text_modified):
               If the caret points to past the last character, set the
               offset to the string's NUL terminator.

2007-01-22  Chris Wilson <[email protected]>

       * configure.in:
               Earlier configure.in update introduced a trailing ']', pair
               it with its '['


2007-01-22  Chris Wilson <[email protected]>

       Bug 132316 – terminal widget's context menu posting isn't exposed as an AtkAction

       Original patch by <[email protected]>

       * src/vteaccess.c: (vte_terminal_accessible_free_private_data),
       (vte_terminal_accessible_component_init),
       (vte_terminal_accessible_do_action),
       (vte_terminal_accessible_get_n_actions),
       (vte_terminal_accessible_action_get_description),
       (vte_terminal_accessible_action_get_name),
       (vte_terminal_accessible_action_get_keybinding),
       (vte_terminal_accessible_action_set_description),
       (vte_terminal_accessible_action_init),
       (vte_terminal_accessible_get_type):
               Remove grab_focus and defer to the parent's implementation.
               Add an AtkAction iface.

2007-01-22  Chris Wilson <[email protected]>

       Bug 156161 – AccessibleText_getTextAtOffset returns wrong values in gnome-terminal

       The code for ATK_TEXT_BOUNDARY_WORD_START and
       ATK_TEXT_BOUNDARY_WORD_END is the same.

       Patch by <[email protected]>

       * src/vteaccess.c: (vte_terminal_accessible_get_text_somewhere):
               Actually provide an implementation for
               ATK_TEXT_BOUNDARY_WORD_END.

2007-01-22  Chris Wilson <[email protected]>

       Bug 399137 – UTF-8 problem in VteAccess

       * src/vteaccess.c: (emit_text_changed_insert),
       (emit_text_changed_delete):
               use g_utf8_pointer_to_offset() instead of open coding
       (vte_terminal_accessible_update_private_data_if_needed):
               add the number of UTF-8 characters to the debug output.
       (vte_terminal_accessible_text_modified):
               iterate backwards over the UTF-8 string using
               g_utf8_prev_char() and convert the caret into a byte offset
               before it as such.

2007-01-22  Chris Wilson <[email protected]>

       Bug 123591 – vte_terminal_fork_command succeeds even when it does not

       * python/vte.defs:
       * python/vte.override:
       * src/reaper.c: (vte_reaper_child_watch_cb):
       * src/vte-private.h:
       * src/vte.c: (vte_terminal_catch_child_exited),
       (_vte_terminal_fork_basic), (vte_terminal_forkpty):
       * src/vte.h:
       * src/vteapp.c:
               s/pid_t/GPid/ portable variant, no API/ABI implications
       * src/pty.c: (vte_pty_child_setup), (_vte_pty_run_on_pty),
       (_vte_pty_fork_on_pty_name), (_vte_pty_fork_on_pty_fd),
       (_vte_pty_open_unix98), (_vte_pty_pipe_open), (n_read), (n_write),
       (_vte_pty_start_helper), (_vte_pty_open_with_helper),
       (_vte_pty_open), (main):
               Replace custom fork() and pipe based syncrohonisation scheme
               with g_spawn_async_with_pipes() as it actually handles all
               failure modes correctly, and gives us overtures of portability.


2007-01-22  Chris Wilson <[email protected]>

       Hack'n'slash my way through doing a bit of weeding.

       Fixed:
       - Bug 345514 – -no-undefined doesn't work with latest libtool
       - Bug 162003 – vte configure.in X checking can fail
                    – though this may cause other regressions!
       - Bug 314669 – Please specialize AC_PATH_XTRA

       * configure.in:
               Export LIBTOOL_EXPORT_OPTIONS for -no-undefined on windos.
               Add to rather than override X_CFLAGS, X_LIBS
               AC_PATH_XTRA - Find X11 using XFlush() rather than XtMalloc().
               Print configuration details.
       * src/Makefile.am:
               Conditional compilation of backends.

2007-01-22  Chris Wilson <[email protected]>

       Bug 389538 – crash in Terminal: nothing

       * src/vteaccess.c: (vte_terminal_accessible_get_text):
               Guard against negative length strings.

2007-01-22  Chris Wilson <[email protected]>

       Bug 161479 – Scroll wheel generates Release events

        vte sends release events on scroll but xterm doesn't which breaks
        mc among others.

        Patch by Benedikt Meurer.

       * src/vte.c: (vte_terminal_scroll):
               Remove the offending release event.

2007-01-20  Chris Wilson <[email protected]>

       <kmaraas> ickle: sparse complains about dubious 1 bit bitfields
               if you use gboolean instead of guint
       <kmaraas> so s/gboolean/guint at line 166 and 174
       <mariano> unless that changes the API, of course...
       <kmaraas> it doesn't
       <mariano> gboolean a:1 is not very correct anyways
       <kmaraas> ickle: we've done the same change in other modules
       <ickle> if I do it quick, behdad might not even notice ;)

       * src/vte.h:
               Convert signed single bit field to unsigned. The code
               was setting it to 1 anyhow (and not -1 as the type indicated).

2007-01-20  Chris Wilson <[email protected]>

       Bug 398602 – Build Failure

       * src/vte.c: (vte_terminal_expose):
               Fixup typo. [Grrr. Must get git-svn back into sync]

2006-11-19 Rich Burridge <[email protected]>

       * src/vteaccess.c:
       Fixed bug #397724 - Orca incorrect echo's certain input in
       gnome-terminal when key echo is set to off (on Ubuntu Feisty).

2007-01-20  Chris Wilson <[email protected]>

       * src/vte.c: (vte_terminal_expose):
               Also if the entire terminal is invalidated,
               do not add more GTK+ exposes to it.

2007-01-20  Chris Wilson <[email protected]>

       Track when we have invalidated the entire terminal and skip adding
       new regions when possible.

       * src/vte-private.h:
       * src/vte.c: (update_regions), (_vte_invalidate_cells),
       (_vte_invalidate_all), (vte_terminal_size_allocate),
       (reset_update_regions):

2007-01-20  Chris Wilson <[email protected]>

       Bug 398244 – Gnome-terminal opens a huge sized window

       * src/vte.c: (vte_terminal_ensure_font),
       (vte_terminal_set_font_full), (vte_terminal_size_request),
       (vte_terminal_realize), (vte_terminal_get_char_width),
       (vte_terminal_get_char_height), (vte_terminal_get_char_descent),
       (vte_terminal_get_char_ascent):
               Ensure the font metrics are calculated before use.

2007-01-19  Chris Wilson <[email protected]>

       * src/vte.c: (vte_terminal_process_incoming):
               Do not invalidate the old cursor position if it was not
               visible.

2007-01-19  Chris Wilson <[email protected]>

       * src/vte.c: (process_timeout):
               Make sure ->process_timeout is set to VTE_INVALID_SOURCE on
               all paths that remove the timeout.

2007-01-19  Chris Wilson  <[email protected]>

       Add <> to mark boundaries of process_timeout().

       * src/vte.c: (vte_terminal_class_init), (process_timeout):

2007-01-19  Chris Wilson  <[email protected]>

       Add {},[] to mark boundaries of update_timeout() and notice that
       the display limited update_timeout was not dying.

       * src/vte.c: (vte_terminal_class_init), (update_repeat_timeout),
       (update_timeout):

2007-01-19  Chris Wilson <[email protected]>

       * src/vte.c: (vte_terminal_realize), (remove_process_timeout):
               Small cleanup:
                - protect remove_process_timeout against an invalid source.
                - move static prototypes into common block.
                - gdk_window_show() is done in map not realize.

2007-01-19  Chris Wilson <[email protected]>

       * src/vte-private.h:
       * src/vte.c: (vte_terminal_process_incoming):
               Introduce a bit of slack in the bbox check to allow
               for a small of amount of cursor motion e.g. due to line
               scrolling. This turns the long sequence of
               '(?!?!??? ... ????!)'
               during a hexdump into the better behaved
               '.(?!?!?!??!)-+=.(?!?!??!)-+=........'. Although it is
               puzzling why we now how have a block of IO and then two quick
               display upates...

2007-01-19  Chris Wilson <[email protected]>

       * src/vte.c: (process_timeout), (update_repeat_timeout),
       (update_timeout):
               Repeat _vte_terminal_process_incoming until we have drained
               the incoming buffers or we can handle no more. Fixes a
               problem where the display wouldn't update if we hadn't
               processed enough data (e.g. on startup, displaying the first
               prompt). This bug corresponds with the sequence
               '*-+=..()?!(?!?!?!)-+=' below, which now reads
               '*-+=..()(?!?!?!)-+='

2007-01-19  Chris Wilson <[email protected]>

       * src/vte.c: (_vte_invalidate_cursor_once):
               "%ld" for cursor indices.

2007-01-19  Chris Wilson <[email protected]>

       * src/vte.c: (_vte_invalidate_cells),
       (_vte_invalidate_cursor_once):
               Cursor indices are long.

2007-01-19  Chris Wilson <[email protected]>

       * src/vte-private.h:
       * src/vte.c: (_vte_invalidate_cell):
               Cursor indices are long.
       * src/vte.c: (_vte_terminal_expose):
               Prepend the GTK+ generated expose if we already have an
               display update pending.

2007-01-19  Chris Wilson <[email protected]>

       Add a new debug flag to visualize the work flow.
       VTE_DEBUG_FLAGS=work generates output like:
       Debugging work flow (top input to bottom output):
         .  _vte_terminal_process_incoming
         (  start _vte_terminal_process_incoming
         ?  _vte_invalidate_cells (call)
         !  _vte_invalidate_cells (dirty)
         *  _vte_invalidate_all
         )  end _vte_terminal_process_incoming
         -  gdk_window_process_all_updates
         +  vte_terminal_expose
         =  vte_terminal_paint
       *?!**+=*-+=..()?!(?!?!?!)-+=?!-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.().(?!?!?!)-+=.().(?!?!?!)-+=.().().(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!)-+=.............................................................................................................................................................................................................................................................................(?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????!??!)-+=.......................................................................

       Which tells me I have two bugs to track:
               1. the initial '..()' is a missing invalidate.
               2. '(?!?!????????????????????!??!)' is not very efficient.

       * src/debug.c: (_vte_debug_parse_string):
       * src/debug.h:
       * src/vte.c: (update_regions), (_vte_invalidate_cells),
       (_vte_invalidate_all), (vte_terminal_process_incoming),
       (vte_terminal_io_read), (vte_terminal_paint),
       (vte_terminal_expose), (vte_terminal_class_init):
               Add VTE_DEBUG_WORK

2007-01-19  Chris Wilson <[email protected]>

       Bug 398150 – cursor leaves trail behind in vim

       * src/vte-private.h:
       * src/vte.c: (_vte_invalidate_cell),
       (vte_terminal_process_incoming):
       * src/vteseq.c: (vte_sequence_handler_decset_internal):
               Invalidate the old cursor position if we detect the cursor
               moved during the sequence or if the cursor changed state.

2007-01-19  Chris Wilson <[email protected]>

       * src/Makefile.am:
               Missing $(X_CFLAGS)

2007-01-19  Chris Wilson <[email protected]>

       Bug 398243 – Crash

       * src/vtebg.c: (vte_bg_cache_prune_int):
               Use the return from g_list_delete_link to maintain the list
               head.

2007-01-18  Chris Wilson <[email protected]>

       * src/vte.c: (_vte_invalidate_cells):
               Check that the start of the invalid region is on screen.

2007-01-18  Chris Wilson <[email protected]>

       Bug 398116 – lags behind when widget not visible

       * src/vte.c: (vte_terminal_handle_scroll):
               During the spring clean, I converted a few GTK_WIDGET_REALIZED()
               checks to GTK_WIDGET_DRAWABLE()+visibility check.
               Unfortunately, it broke keeping the scroll delta in sync with
               the insert delta. Sync the pair, then perform the check before
               making updates on the visible area.

2007-01-18  Chris Wilson <[email protected]>

       Bug 398083 – background not painted correctly when starting up

       * src/vte.c: (_vte_invalidate_all):
               Compute drawable area in window co-ordinates and not widget
               co-ordinates.

2007-01-18  Chris Wilson <[email protected]>

       * src/vte.c: (vte_terminal_expose):
               Small bit of logic inversion that would have tried to paint
               on unmapped and invisible widgets.

2007-01-18  Chris Wilson <[email protected]>
       And the corresponding overrides. [The downsides of losing track of
       which machine you are working on.]

       * python/vte.override:
               Add (get_text_include_trailing_spaces)

2007-01-18  Chris Wilson <[email protected]>

       Add missing export of vte_terminal_get_text_include_trailing_spaces,
       needed for building a simple testcase for Bug 397724.
       vte.defs needs a bit of love...

       * python/vte.defs:
               Add (get_text_include_trailing_spaces)

2007-01-18  Chris Wilson <[email protected]>

       * src/vterdb.c: (_vte_rdb_search), (_vte_rdb_boolean):
               Fix a couple of compiler warnings.

2007-01-18  Chris Wilson <[email protected]>

       * src/vte.c: (vte_terminal_process_incoming):
               Delete some dead code.

2007-01-18  Chris Wilson <[email protected]>

       * configure.in:
               Restore --enable-debugging.

2007-01-18  Chris Wilson  <[email protected]>

       Copy Behdad's MAYBE_WARN comprehensive set of warnings from Cairo,
       and fixup the immediate compilation failures.

       * configure.in:
               Iterate over a list of warnings and check that they are valid
               for the compiler.

       * src/debug.c: (_vte_debug_on):
               Kill fflush() [redundant with g_printerr].

2007-01-18  Behdad Esfahbod  <[email protected]>

       * configure.in: Don't call AC_CANONICAL_HOST.  Libtool calls it
       already.

       * src/Makefile.am: Don't build extra, test, programs by default.
       Speeds build up.

2007-01-18  Behdad Esfahbod  <[email protected]>

       * src/ring.c (_vte_ring_insert_preserve):
       * src/vte.c (vte_terminal_paint):
       Fix loop-optimization warnings.

2007-01-18  Behdad Esfahbod  <[email protected]>

       * src/ssfe.c (cleanupexit), (barf):
       * src/vtebg.c (vte_bg_cache_prune_int):
       * src/vtetc.c (main):
       Fix more warnings.

2007-01-18  Behdad Esfahbod  <[email protected]>

       * src/table.c (main):
       * src/trie.c (_vte_trie_addx), (main):
       * src/utf8echo.c (main):
       Fix int vs long int mismatches in printf args.

2007-01-18  Behdad Esfahbod  <[email protected]>

       * src/iso2022.c (_vte_iso2022_find_nextctl):
       * src/reaper.c (vte_reaper_finalize):
       * src/vte.c (_vte_terminal_insert_char), (vte_terminal_key_press),
       (vte_terminal_init), (vte_terminal_size_allocate):
       * src/vteapp.c (main):
       * src/vtedraw.c (_vte_draw_init_default):
       * src/vteglyph.c (_vte_glyph_cache_free):
       * src/vtergb.c (_vte_rgb_copy):
       * src/vtexft.c (_vte_xft_font_for_char):
       Remove unused variables.

2007-01-18  Chris Wilson  <[email protected]>

       Bug 161342 revisited. Reset the box to +-inf and not the current
       cursor otherwise you just reproduce the slow behaviour (an overly
       large invalidation area).

       * src/vte.c: (vte_terminal_process_incoming):
               Reset bbox to +-inf.

2007-01-17  Chris Wilson  <[email protected]>

       Second breakage: VTE_INVALID_SOURCE !=0 and calling
       vte_terminal_set_scrollback_lines with lines == ->scrollback_lines
       is not a nop.

       * src/vte.c: (vte_terminal_background_update),
       (vte_terminal_queue_background_update):
               VTE_INVALID_SOURCE != 0
       (vte_terminal_set_scrollback_lines):
               reset the rowdata everytime.

2007-01-17  Chris Wilson  <[email protected]>

       Bug 397414 - port vteapp to GOption

       * src/vteapp.c: (main):
               Translation of getopt switch to GOptionEntry[].
               Missing help for --geometry.

2007-01-17  Chris Wilson  <[email protected]>

       First breakage spotted: the realized flag is set too late in
       the realize handler. Note to self: not everybody uses a black
       background.

       * src/vte.c: (vte_terminal_realize):
               Restore GTK_WIDGET_SET_FLAGS(REALIZED)

2007-01-17  Chris Wilson  <[email protected]>

       Bug 395373 - Allow the user to specify backend priorities.

       * src/vtedraw.c: (_vte_draw_init_user), (_vte_draw_init_default),
       (_vte_draw_new):
               Scan $ENV{VTE_BACKEND} for the user's preferred backend
               and failover to the first working backend.
               Discard checking VTE_USE_*

       * src/vtedraw.h:
       * src/vteft2.c:
       * src/vteft2.h:
       * src/vtegl.c:
       * src/vtegl.h:
       * src/vtepango.c:
       * src/vtepango.h:
       * src/vtepangox.c:
       * src/vtepangox.h:
       * src/vteskel.c: (_vte_skel_check), (_vte_skel_create),
       (_vte_skel_destroy), (_vte_skel_start):
       * src/vteskel.h:
       * src/vtexft.c:
       * src/vtexft.h:
               Remove the environment variable field, drop the "Vte" prefix
               from the backend names and make the exported structure const.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/iso2022.c: (_vte_iso2022_is_ambiguous):
       * src/vte-private.h:
       * src/vte.c: (_vte_terminal_set_default_attributes),
       (vte_terminal_set_default_tabstops), (vte_terminal_set_encoding),
       (vte_terminal_set_opacity), (vte_terminal_set_default_colors),
       (vte_terminal_emit_pending_text_signals),
       (vte_terminal_feed_child_using_modes),
       (vte_terminal_hierarchy_changed),
       (vte_terminal_send_mouse_button_internal),
       (vte_terminal_maybe_send_mouse_drag), (vte_terminal_set_font),
       (vte_terminal_set_font_from_string), (vte_terminal_set_size),
       (vte_terminal_handle_scroll), (vte_terminal_set_scroll_adjustment),
       (vte_terminal_set_emulation), (vte_terminal_set_termcap),
       (vte_terminal_init), (vte_terminal_size_allocate),
       (vte_terminal_unrealize), (vte_terminal_finalize),
       (vte_terminal_realize), (vte_terminal_determine_colors),
       (vte_terminal_background_update),
       (vte_terminal_queue_background_update),
       (vte_terminal_set_background_transparent),
       (vte_terminal_set_cursor_blinks),
       (vte_terminal_set_scrollback_lines), (vte_terminal_reset),
       (vte_terminal_set_pty):
       * src/vteseq.c: (vte_sequence_handler_st),
       (vte_sequence_handler_vb),
       (vte_sequence_handler_device_status_report),
       (vte_sequence_handler_dec_device_status_report),
       (vte_sequence_handler_window_manipulation):
               Janitorial work to improve code readability and small
               micro-optimisations, such as use the length returned by
               g_snprintf rather then calling strlen on the result or just
               using a constant string.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/ring.h:
               Make the debug checks conditional on VTE_DEBUG.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/matcher.c: (_vte_matcher_add), (_vte_matcher_create),
       (_vte_matcher_destroy), (_vte_matcher_new), (_vte_matcher_match),
       (_vte_matcher_print):
       * src/matcher.h:
       * src/table.c: (_vte_table_new):
       * src/table.h:
       * src/trie.c: (_vte_trie_new):
       * src/trie.h:
               _vte_match_match() is called extremely frequently, and the
               switch shows up on the profiles. Replace the switch with a
               function pointer obtained by introducing function tables for
               the matcher implementations.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/vte-private.h:
       * src/vte.c: (vte_terminal_set_font_full), (vte_terminal_realize):
               Don't load a font until the terminal is realized.
               Saves decoding 2 or 3 fonts before g-t is mapped.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/vteseq.c: (vte_g_array_fill):
               Micro-optimise the loop.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/vteft2.c: (_vte_ft2_create), (_vte_ft2_start),
       (_vte_ft2_end), (update_bbox), (_vte_ft2_set_text_font),
       (_vte_ft2_draw_text):
       * src/vtergb.c: (_vte_rgb_buffer_new), (_vte_rgb_buffer_resize),
       (_vte_rgb_draw_color_rgb), (_vte_rgb_copy):
       * src/vtergb.h:
               Reuse converted glyphs within a run.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/vteconv.c: (_vte_conv_utf8_strlen), (_vte_conv):
               Micro-optimise the loops.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/vteglyph.c: (_vte_glyph_free), (_vte_cached_glyph_free),
       (_vte_glyph_cache_new), (_vte_glyph_cache_free),
       (_vte_glyph_cache_set_font_description),
       (_vte_glyph_cache_has_char), (_vte_glyph_remap_char),
       (_vte_glyph_get_uncached), (_vte_glyph_get), (_vte_glyph_draw):
       * src/vteglyph.h:
               Avoid the double glyph lookup in _vte_glyph_get and
               replace the tree with a hash.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/iso2022.c: (_vte_iso2022_state_new),
       (_vte_iso2022_state_free), (_vte_iso2022_state_set_codeset):
       * src/trie.c: (_vte_trie_add), (convert_mbstowcs):
       * src/utf8echo.c: (main):
       * src/vte.c: (vte_terminal_set_encoding), (vte_terminal_send),
       (vte_terminal_init), (vte_terminal_finalize),
       (vte_terminal_set_word_chars):
       * src/vteconv.c: (_vte_conv_open), (_vte_conv_close), (_vte_conv):
       * src/vteconv.h:
       * src/vteseq.c: (vte_sequence_handler_set_title_internal):
               s/(VteConv)-1/VTE_INVALID_CONV/

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/vte.c: (_vte_new_row_data), (_vte_new_row_data_sized),
       (_vte_terminal_find_row_data), (_vte_row_data_find_charcell),
       (vte_line_is_wrappable), (vte_terminal_extend_selection),
       (vte_terminal_draw_row):
               Refactor vte_find_row_data to simplify and improve
               some logic.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/vte.c: (vte_g_array_fill), (vte_terminal_emit_commit),
       (_vte_terminal_ensure_cursor), (_vte_terminal_insert_char),
       (_vte_terminal_fork_basic), (vte_terminal_process_incoming),
       (vte_terminal_key_press), (vte_terminal_visibility_notify),
       (vte_terminal_apply_metrics), (vte_terminal_paint),
       (vte_terminal_expose):
               Callgrind driven rewrite of critical loops.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/vte-private.h:
       * src/vte.c: (_vte_terminal_connect_pty_write),
       (_vte_terminal_disconnect_pty_write), (vte_terminal_io_read),
       (vte_terminal_feed), (vte_terminal_feed_child_binary),
       (vte_terminal_init), (vte_terminal_unrealize),
       (add_process_timeout), (add_update_timeout),
       (remove_process_timeout), (vte_terminal_stop_processing),
       (vte_terminal_is_processing), (vte_terminal_start_processing),
       (process_timeout), (update_repeat_timeout), (update_timeout):
               The rate-limiting step is the display update - we do not need
               to process input faster than we are displaying it. So use the
               update display timeout to process new input (and dirty some
               more pixels).


2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/interpret.c: (main):
       * src/iso2022.c: (_vte_iso2022_fragment_input),
       (_vte_iso2022_process), (main):
       * src/vte.c: (vte_terminal_match_contents_refresh),
       (vte_terminal_process_incoming), (vte_terminal_init),
       (vte_terminal_set_word_chars):
       * src/vteaccess.c:
       (vte_terminal_accessible_update_private_data_if_needed):
       * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
       * src/vtefc.h:
       * src/vteglyph.c: (_vte_glyph_cache_new), (_vte_glyph_cache_free),
       (_vte_glyph_cache_set_font_description):
       * src/vteglyph.h:
       * src/vteregex.c: (_vte_regex_sort_matches):
       * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
       (_vte_xft_font_for_char):
               s/g_array_new(TRUE, TRUE/g_array_new(FALSE, FALSE/
               All uses of GArray respect their lengths and do not
               zero-termination or untouched members to be cleared.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/iso2022.c: (_vte_iso2022_state_free):
       * src/matcher.c: (_vte_matcher_free_params_array):
       * src/ring.c: (_vte_ring_free):
       * src/table.c: (_vte_table_free):
       * src/trie.c: (_vte_trie_match):
       * src/vte.c: (_vte_terminal_match_contents_clear),
       (_vte_terminal_fork_basic),
       (vte_terminal_get_text_range_maybe_wrapped), (vte_terminal_copy),
       (vte_terminal_finalize), (vte_terminal_draw_cells_with_attributes):
       * src/vteaccess.c: (vte_terminal_accessible_free_private_data):
       * src/vtebg.c: (vte_bg_root_pixmap), (vte_bg_cache_item_free):
       * src/vteconv.c: (_vte_conv_close):
       * src/vtedraw.c: (_vte_draw_free):
       * src/vteft2.c: (_vte_ft2_destroy):
       * src/vtegl.c: (_vte_gl_destroy):
       * src/vteglyph.c: (_vte_glyph_cache_free):
       * src/vtepango.c: (_vte_pango_destroy):
       * src/vtepangox.c: (_vte_pango_x_destroy):
       * src/vtergb.c: (_vte_rgb_buffer_new), (_vte_rgb_buffer_free):
       * src/vteseq.c: (vte_sequence_handler_se),
       (vte_sequence_handler_so):
       * src/vteskel.c: (_vte_skel_destroy):
       * src/vtexft.c: (_vte_xft_font_close), (_vte_xft_destroy):
               Do not zero memory in destructors, as glib will zero all
               freed memory if G_DEBUG=gc-friendly.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/reaper.c: (vte_reaper_add_child), (vte_reaper_init),
       (vte_reaper_constructor), (vte_reaper_finalize),
       (vte_reaper_class_init), (vte_reaper_get), (main):
       * src/vte.c: (G_DEFINE_TYPE_WITH_CODE), (_vte_terminal_fork_basic),
       (vte_terminal_key_press), (vte_terminal_init), (vte_terminal_show),
       (vte_terminal_finalize), (vte_terminal_get_accessible),
       (vte_terminal_class_init):
       * src/vteaccess.c: (vte_terminal_initialize),
       (vte_terminal_accessible_finalize),
       (vte_terminal_accessible_class_init),
       (vte_terminal_accessible_get_type),
       (vte_terminal_accessible_factory_init),
       (vte_terminal_accessible_factory_new):
       * src/vtebg.c: (vte_bg_native_new), (vte_bg_finalize),
       (vte_bg_class_init), (vte_bg_init), (vte_bg_get_for_screen),
       (vte_bg_cache_item_free), (vte_bg_cache_prune_int),
       (_vte_bg_resize_pixbuf), (vte_bg_set_root_pixmap),
       (vte_bg_cache_add), (vte_bg_cache_search), (vte_bg_get_pixmap),
       (vte_bg_get_pixbuf):
               Use GObject boiler-plate code (G_DEFINE_TYPE),
               as opposed to open coding.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/vte-private.h:
       * src/vte.c: (vte_free_row_data), (vte_g_array_fill),
       (vte_terminal_find_charcell), (vte_terminal_preedit_width),
       (vte_terminal_preedit_length), (_vte_invalidate_cursor_once),
       (vte_invalidate_cursor_periodic), (vte_terminal_deselect_all),
       (vte_terminal_set_default_tabstops),
       (vte_terminal_match_contents_refresh), (vte_terminal_cursor_new),
       (vte_terminal_match_check_internal),
       (vte_terminal_emit_adjustment_changed),
       (vte_terminal_queue_adjustment_changed),
       (vte_terminal_scroll_pages), (vte_terminal_maybe_scroll_to_top),
       (vte_terminal_maybe_scroll_to_bottom),
       (_vte_terminal_set_pointer_visible), (vte_terminal_new),
       (vte_terminal_set_color_internal), (vte_terminal_set_color_bold),
       (vte_terminal_set_color_dim), (vte_terminal_set_color_foreground),
       (vte_terminal_set_color_background),
       (vte_terminal_set_color_cursor),
       (vte_terminal_set_color_highlight), (vte_terminal_handle_sequence),
       (vte_terminal_catch_child_exited),
       (_vte_terminal_connect_pty_read),
       (_vte_terminal_connect_pty_write), (_vte_terminal_fork_basic),
       (vte_terminal_eof), (vte_terminal_im_reset),
       (vte_terminal_process_incoming), (vte_terminal_io_read),
       (vte_terminal_io_write), (vte_terminal_send),
       (vte_terminal_im_commit), (vte_terminal_im_preedit_start),
       (vte_terminal_im_preedit_end), (vte_terminal_im_preedit_changed),
       (vte_terminal_configure_toplevel),
       (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
       (add_cursor_timeout), (vte_terminal_key_press), (vte_same_class),
       (vte_line_is_wrappable), (vte_terminal_paste_cb),
       (vte_terminal_send_mouse_button_internal),
       (vte_terminal_maybe_send_mouse_drag), (vte_terminal_clear_cb),
       (vte_terminal_copy_cb),
       (vte_terminal_get_text_range_maybe_wrapped),
       (vte_terminal_clipboard_get), (vte_terminal_copy),
       (vte_terminal_paste), (vte_terminal_autoscroll),
       (vte_terminal_start_autoscroll), (vte_terminal_motion_notify),
       (vte_terminal_button_press), (vte_terminal_button_release),
       (vte_terminal_focus_in), (vte_terminal_focus_out),
       (vte_terminal_visibility_notify), (vte_terminal_apply_metrics),
       (vte_terminal_set_font_full), (vte_terminal_refresh_size),
       (vte_terminal_handle_scroll), (vte_terminal_set_scroll_adjustment),
       (vte_terminal_connect_xft_settings),
       (vte_terminal_disconnect_xft_settings),
       (_vte_terminal_codeset_changed_cb), (vte_terminal_init),
       (vte_terminal_size_request), (vte_terminal_size_allocate),
       (vte_terminal_show), (root_pixmap_changed_cb),
       (vte_terminal_unrealize), (vte_terminal_finalize),
       (vte_terminal_realize), (vte_terminal_determine_colors),
       (vte_terminal_paint), (vte_terminal_expose), (vte_terminal_scroll),
       (vte_terminal_get_accessible), (vte_terminal_im_append_menuitems),
       (vte_terminal_background_update),
       (vte_terminal_queue_background_update),
       (vte_terminal_set_background_image),
       (vte_terminal_set_background_image_file),
       (vte_terminal_set_cursor_blinks), (vte_terminal_reset),
       (vte_terminal_set_pty):
       * src/vteaccess.c: (vte_terminal_initialize),
       (vte_terminal_accessible_finalize):
       * src/vtedraw.c: (_vte_draw_new), (_vte_draw_free),
       (_vte_draw_start), (_vte_draw_end):
       * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description),
       (_vte_fc_defaults_from_gtk), (_vte_fc_connect_settings_changes),
       (_vte_fc_disconnect_settings_changes):
       * src/vteft2.c: (_vte_ft2_destroy),
       (_vte_ft2_set_background_image), (_vte_ft2_clear):
       * src/vtegl.c: (_vte_gl_destroy), (_vte_gl_set_background_image),
       (_vte_gl_clear):
       * src/vtepango.c: (_vte_pango_destroy), (_vte_pango_start),
       (_vte_pango_end), (_vte_pango_set_background_image),
       (_vte_pango_set_text_font):
       * src/vtepangox.c: (_vte_pango_x_destroy), (_vte_pango_x_start),
       (_vte_pango_x_end), (_vte_pango_x_set_background_image),
       (_vte_pango_x_set_text_font):
       * src/vterdb.c: (_vte_rdb_get):
       * src/vteseq.c: (vte_sequence_handler_scroll_up_or_down),
       (vte_sequence_handler_set_title_internal), (vte_terminal_beep),
       (vte_sequence_handler_do), (vte_sequence_handler_sf),
       (vte_sequence_handler_sr), (vte_sequence_handler_vb),
       (vte_sequence_handler_window_manipulation):
       * src/vteskel.c: (_vte_skel_destroy):
       * src/vtetree.c: (_vte_tree_new), (_vte_tree_destroy):
       * src/vtexft.c: (_vte_xft_set_background_image), (_vte_xft_clear):
               Remove superfluous checks and run-time checked type casts.

2007-01-17  Chris Wilson  <[email protected]>

       As part of Bug 397439.

       * src/debug.c:
       * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
       (_vte_iso2022_state_new), (_vte_iso2022_state_set_codeset),
       (process_8_bit_sequence), (process_cdata), (process_control),
       (_vte_iso2022_process):
       * src/keymap.c: (_vte_keymap_map):
       * src/matcher.c: (_vte_matcher_init), (_vte_matcher_create),
       (_vte_matcher_destroy):
       * src/pty.c: (_vte_pty_run_on_pty), (_vte_pty_fork_on_pty_name),
       (_vte_pty_fork_on_pty_fd), (_vte_pty_set_size),
       (_vte_pty_get_size), (_vte_pty_ptsname), (_vte_pty_open_unix98),
       (_vte_pty_open_with_helper), (_vte_pty_open), (main):
       * src/reaper.c: (vte_reaper_emit_signal),
       (vte_reaper_child_watch_cb), (vte_reaper_init),
       (vte_reaper_finalize):
       * src/reflect.c: (text_changed_insert), (text_changed_delete):
       * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
       (_vte_ring_remove), (scrolled_off), (main):
       * src/slowcat.c: (main):
       * src/table.c: (_vte_table_printi), (_vte_table_print):
       * src/trie.c: (char_class_string_extract):
       * src/vte.c: (_vte_invalidate_cursor_once),
       (vte_terminal_emit_selection_changed), (vte_terminal_emit_commit),
       (vte_terminal_emit_emulation_changed),
       (vte_terminal_emit_encoding_changed),
       (vte_terminal_emit_child_exited),
       (_vte_terminal_emit_contents_changed),
       (vte_terminal_emit_cursor_moved), (vte_terminal_emit_eof),
       (vte_terminal_emit_char_size_changed),
       (_vte_terminal_emit_status_line_changed),
       (vte_terminal_emit_increase_font_size),
       (vte_terminal_emit_decrease_font_size),
       (_vte_terminal_emit_text_inserted),
       (_vte_terminal_emit_text_deleted),
       (vte_terminal_emit_text_modified),
       (vte_terminal_emit_text_scrolled), (vte_terminal_deselect_all),
       (vte_terminal_match_check_internal), (vte_terminal_match_check),
       (vte_terminal_emit_adjustment_changed),
       (vte_terminal_queue_adjustment_changed),
       (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
       (vte_terminal_maybe_scroll_to_bottom), (vte_terminal_set_encoding),
       (_vte_terminal_set_pointer_visible), (vte_terminal_new),
       (vte_terminal_generate_bold), (_vte_terminal_insert_char),
       (display_control_sequence), (vte_terminal_fork_command),
       (vte_terminal_emit_pending_text_signals),
       (vte_terminal_process_incoming), (vte_terminal_io_write),
       (vte_terminal_send), (vte_terminal_im_commit),
       (vte_terminal_im_preedit_start), (vte_terminal_im_preedit_end),
       (vte_terminal_im_preedit_changed),
       (vte_terminal_configure_toplevel),
       (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
       (vte_terminal_key_press), (vte_terminal_paste_cb),
       (vte_terminal_match_hilite_clear), (vte_terminal_match_hilite),
       (vte_terminal_clear_cb), (vte_terminal_copy_cb),
       (vte_terminal_copy), (vte_terminal_paste),
       (vte_terminal_start_selection), (vte_terminal_extend_selection),
       (vte_terminal_autoscroll), (vte_terminal_motion_notify),
       (vte_terminal_button_press), (vte_terminal_button_release),
       (vte_terminal_focus_in), (vte_terminal_focus_out),
       (vte_terminal_set_font_full), (vte_terminal_set_size),
       (vte_terminal_handle_scroll), (vte_terminal_set_emulation),
       (vte_terminal_set_termcap), (vte_terminal_reset_rowdata),
       (vte_terminal_fc_settings_changed), (vte_terminal_init),
       (vte_terminal_size_request), (vte_terminal_size_allocate),
       (vte_terminal_show), (vte_terminal_unrealize),
       (vte_terminal_finalize), (vte_terminal_realize),
       (vte_terminal_draw_cells), (_vte_terminal_map_pango_color),
       (vte_terminal_paint), (vte_terminal_scroll),
       (vte_terminal_class_init), (vte_terminal_get_type),
       (vte_terminal_copy_clipboard), (vte_terminal_paste_clipboard),
       (vte_terminal_copy_primary), (vte_terminal_paste_primary),
       (vte_terminal_background_update),
       (vte_terminal_queue_background_update),
       (vte_terminal_set_background_saturation),
       (vte_terminal_set_background_tint_color),
       (vte_terminal_set_background_transparent),
       (vte_terminal_set_background_image),
       (vte_terminal_set_background_image_file),
       (vte_terminal_set_word_chars):
       * src/vteaccess.c: (emit_text_caret_moved),
       (emit_text_changed_insert), (emit_text_changed_delete),
       (vte_terminal_accessible_update_private_data_if_needed),
       (vte_terminal_accessible_invalidate_cursor),
       (vte_terminal_accessible_finalize),
       (vte_terminal_accessible_get_text),
       (vte_terminal_accessible_get_text_somewhere),
       (vte_terminal_accessible_text_init),
       (vte_terminal_accessible_component_init),
       (vte_terminal_accessible_factory_new):
       * src/vteapp.c: (main):
       * src/vtebg.c: (vte_bg_root_pixmap), (_vte_bg_resize_pixbuf):
       * src/vtedraw.c: (_vte_draw_new):
       * src/vtepango.c: (_vte_pango_set_text_font):
       * src/vtepangox.c: (_vte_pango_x_set_text_font):
       * src/vteseq.c: (vte_terminal_emit_deiconify_window),
       (vte_terminal_emit_iconify_window),
       (vte_terminal_emit_icon_title_changed),
       (vte_terminal_emit_window_title_changed),
       (vte_terminal_emit_raise_window), (vte_terminal_emit_lower_window),
       (vte_terminal_emit_maximize_window),
       (vte_terminal_emit_refresh_window),
       (vte_terminal_emit_restore_window),
       (vte_terminal_emit_move_window), (vte_terminal_emit_resize_window),
       (vte_sequence_handler_set_title_internal),
       (vte_sequence_handler_decset_internal), (vte_sequence_handler_bt),
       (vte_sequence_handler_application_keypad),
       (vte_sequence_handler_normal_keypad),
       (vte_sequence_handler_window_manipulation):
       * src/vtetc.c: (main):
       * src/vtexft.c: (_vte_xft_set_text_font):
               s/fprintf(stderr,/g_printerr(/

2007-01-17  Chris Wilson  <[email protected]>

       Only invalidate groups of inserted chars and not the whole bbox.
       This speeds up applications like vim which maintain a status line
       at the bottom of the screen. Fixes bug 161342.

       * src/vte-private.h:
       * src/vte.c: (update_regions), (_vte_invalidate_cells),
       (_vte_invalidate_all), (_vte_terminal_scroll_region),
       (vte_terminal_process_incoming), (reset_update_regions),
       (remove_update_timeout), (update_repeat_timeout), (update_timeout):

2007-01-15  Behdad Esfahbod  <[email protected]>

       Bug 387171 – vte fails to install on FreeBSD due to missing header
       Patch from Roy Marples

       * src/vteseq.c: #include <limits.h>

2007-01-15  Behdad Esfahbod  <[email protected]>

       Bug 396831 – Unable to compile without X
       Patch from Chris Wilson

       * src/vtebg.c (_vte_bg_display_sync), (vte_bg_root_pixmap): Add stubs.

2007-01-09  Ryan Lortie  <[email protected]>

       Bug 394890 – Segfault when running vte or gnome-terminal

       * src/vtetc.c (_vte_termcap_find_string): change 'int' to 'gssize' to
       match previous fixup.  Hopefully that does it. :)