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. :)