ed6c299c630607e88f29f21dcfc59a42824fdfc2
[vte.git] / ChangeLog
1 2008-11-30  Christian Persch  <chpe@gnome.org>
2
3         Bug 540951 – The gnome-pty-helper is spawn when its not needed
4         
5         * src/pty.c: (_vte_pty_open): Don't use the pty helper when we don't
6         need to update any of utmp, wtmp, lastlog. Patch by Alex Cornejo.
7
8 2008-11-30  Christian Persch  <chpe@gnome.org>
9
10         Bug 465036 – gnome-pty-helper locks /var/run/utmp
11
12         * gnome-pty-helper/gnome-utmp.c: (update_utmp): Close the utmp
13         database after updating it. Patch by Kevin W. Rudd.
14
15 2008-11-29  Behdad Esfahbod  <behdad@gnome.org>
16
17         Bug 127870 – terminal garbled and needs 'reset' after cat'ing file
18
19         * src/iso2022.c (_vte_iso2022_state_new): Initialize all four maps
20         (G0, G1, G2, G3) in USASCII mode, like xterm does.
21
22 2008-11-29  Christian Persch  <chpe@gnome.org>
23
24         * python/vtemodule.c: (initvte): Register the constants too!
25
26 2008-11-29  Christian Persch  <chpe@gnome.org>
27
28         * src/debug.c: (_vte_debug_init):
29         * src/debug.h:
30         * src/vte.c: (vte_terminal_size_request),
31         (vte_terminal_size_allocate): Add a specific debug flag for widget
32         size-request/size-allocation.
33
34 2008-11-29  Christian Persch  <chpe@gnome.org>
35
36         * src/vteapp.c: (main): Add options to use a GtkScrolledWindow as the
37         terminal's container, and to set its vertical scrollbar policy, to
38         allow testing VteTerminal in a scrolled window.
39
40 2008-11-29  Behdad Esfahbod  <behdad@gnome.org>
41
42         Bug 317236 – vte resynchrones too late on invalid UTF-8
43
44         * src/vteconv.c (_vte_conv_utf8_utf8): In our UTF-8 to UTF-8 converter
45         differentiate between an incomplete sequence and an ill sequence at
46         the end of the buffer.  Also cleanup some minor inaccuracies (return
47         value).
48
49 2008-11-29  Behdad Esfahbod  <behdad@gnome.org>
50
51         Bug 107031 – device-control-string error
52
53         * src/table.c (_vte_table_addi):
54         * src/vte.c (vte_terminal_handle_sequence):
55         * src/vteseq.c (vte_sequence_handler_decset_internal):
56         Replace some g_warning's with vte debug output.
57
58 2008-11-29  Behdad Esfahbod  <behdad@gnome.org>
59
60         Bug 521420 – vte closes connection to child before all output is read
61         Patch from Thomas Leonard
62
63         * src/reaper.c (vte_reaper_add_child): Install child watch at low
64         priority instead of high.
65
66 2008-11-29  Behdad Esfahbod  <behdad@gnome.org>
67
68         * configure.in: Require glib >= 2.18.0 as earlier glib versions
69         had a totally bogus g_unichar_iswide_cjk().
70
71         * perf/vim.sh: Don't use builting time command.
72
73 2008-11-29  Behdad Esfahbod  <behdad@gnome.org>
74
75         * src/vte.c (vte_terminal_emit_char_size_changed),
76         (_vte_terminal_emit_status_line_changed), (vte_terminal_init),
77         (vte_terminal_background_update):
78         Remove C++-style comment markers.
79
80 2008-11-29  Behdad Esfahbod  <behdad@gnome.org>
81
82         Bug 514632 – Problem with cursor in emacs in gnome-terminal
83
84         * src/vte-private.h:
85         * src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor),
86         (_vte_terminal_insert_char):
87         * src/vteseq.c (vte_sequence_handler_ch),
88         (vte_sequence_handler_cm), (vte_sequence_handler_le),
89         (vte_sequence_handler_cursor_character_absolute):
90         Break "smart tabs" into multiple empty cells when cursor moves
91         into them or inserting character there.
92
93 2008-11-28  Behdad Esfahbod  <behdad@gnome.org>
94
95         * src/debug.c (_vte_debug_init):
96         * src/debug.h:
97         * src/vtepangocairo.c (font_info_cache_ascii),
98         (font_info_allocate), (font_info_free),
99         (font_info_find_for_context), (font_info_get_unichar_info):
100         Port vtepangocairo profiling and lifecycle logging to vtedebug
101         facilities under debug domain "pangocairo".
102
103 2008-11-28  Behdad Esfahbod  <behdad@gnome.org>
104
105         * src/debug.c (_vte_debug_init): Rename debug env var from
106         VTE_DEBUG_FLAGS to VTE_DEBUG.
107
108 2008-11-28  Behdad Esfahbod  <behdad@gnome.org>
109
110         * src/debug.c (_vte_debug_init):
111         * src/debug.h:
112         Make _vte_debug_on() inline.
113
114 2008-11-28  Christian Persch  <chpe@gnome.org>
115
116         * src/vte.c: Remove backward compat define for gtk 2.0, since we
117         already depend on a much higher version.
118
119 2008-11-28  Christian Persch  <chpe@gnome.org>
120
121         * src/debug.c: (_vte_debug_on): Revert behaviour change of
122         _vte_debug_on() from last commit.
123
124 2008-11-28  Behdad Esfahbod  <behdad@gnome.org>
125
126         Bug 459553 – gnome-terminal cannot shows circled digits with the
127         correct width on ja_JP.PCK
128         Patch from Takao Fujiwara
129
130         * src/iso2022.c (_vte_iso2022_ambiguous_width): Recognize Shift_JIS
131         as East Asian locale for width considerations.
132
133 2008-11-28  Christian Persch  <chpe@gnome.org>
134
135         * src/debug.c: (_vte_debug_init), (_vte_debug_on):
136         * src/debug.h:
137         * src/interpret.c: (main):
138         * src/pty.c: (main):
139         * src/reaper.c: (main):
140         * src/trie.c: (main):
141         * src/vte.c: (vte_terminal_new), (vte_terminal_class_init): Use
142         g_parse_debug_string to parse the debug flags.
143
144 2008-11-28  Christian Persch  <chpe@gnome.org>
145
146         * src/vteregex.c: (compare_matches), (_vte_regex_compile),
147         (_vte_regex_free), (_vte_regex_exec): Remove the unused GNU regex
148         code too.
149
150 2008-11-28  Christian Persch  <chpe@gnome.org>
151
152         * src/vteregex.c: (_vte_regex_compile), (_vte_regex_free),
153         (_vte_regex_exec): Remove unused PCRE code. If you want PCRE regexes,
154         use the new APIs that take GRegex.
155
156 2008-11-28  Christian Persch  <chpe@gnome.org>
157
158         Bug 562385 – gnome-pty-helper goes to 100% cpu usage
159
160         * gnome-pty-helper/gnome-pty-helper.c: (pass_fd), (pty_free),
161         (main): Make sure data structures are correctly aligned and of the
162         right size. 
163
164 2008-11-27  Behdad Esfahbod  <behdad@gnome.org>
165
166         * configure.in:
167         * src/Makefile.am:
168         More cleanup.
169
170 2008-11-27  Behdad Esfahbod  <behdad@gnome.org>
171
172         * src/Makefile.am:
173         Run some of the utilities in "make check", and build the others.
174
175         * src/nativeecho.c:
176         * src/utf8echo.c:
177         Remove more useless trivial utilities.
178
179 2008-11-27  Behdad Esfahbod  <behdad@gnome.org>
180
181         * src/Makefile.am:
182         * src/iso8859mode.c:
183         * src/utf8mode.c:
184         Remove useless trivial utilities.
185
186 2008-11-27  Behdad Esfahbod  <behdad@gnome.org>
187
188         * src/Makefile.am: Update EXTRA_DIST.
189
190 2008-11-27  Behdad Esfahbod  <behdad@gnome.org>
191
192         * HACKING: Update :P.
193
194 2008-11-26  Behdad Esfahbod  <behdad@gnome.org>
195
196         * src/vteseq.c (_vte_sequence_get_handler): Safely handle input of
197         length 1.
198
199 2008-11-26  Behdad Esfahbod  <behdad@gnome.org>
200
201         * src/Makefile.am:
202         * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
203         * src/vteseq-2.gperf:
204         * src/vteseq-n.c (vteseq_n_lookup):
205         * src/vteseq-n.gperf:
206         Don't use switch in gperf-generated code.  This increases .data by 1k
207         but decreases .text by 6k AND the lookup code is MUCH faster.  It used
208         to do tens of compares before.
209
210 2008-11-26  Behdad Esfahbod  <behdad@gnome.org>
211
212         * src/Makefile.am:
213         * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
214         * src/vteseq-n.c (vteseq_n_lookup):
215         * src/vteseq.c (_vte_sequence_get_handler):
216         Revert previous commit, fix NULL dereference that it was trying to
217         fix, and make lookup functions inline.
218
219 2008-11-26  Chris Wilson  <chris@chris-wilson.co.uk>
220
221         * src/Makefile.am:
222         * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
223         * src/vteseq-n.c (vteseq_n_lookup):
224         * src/vteseq.c (_vte_sequence_get_handler):
225         Manually modify (and record those modifications in the Makefile)
226         the autogenerated gperf source code so that we return the sequence
227         handler directly from the lookup function, or NULL on failure.
228         So is this pain worth it?
229
230 2008-11-26  Behdad Esfahbod  <behdad@gnome.org>
231
232         * src/vtepangocairo.c (font_info_get_unichar_info):
233         Free internal layout resources.
234
235 2008-11-26  Behdad Esfahbod  <behdad@gnome.org>
236
237         Bug 562332 – cleanup font infos on exit?
238
239         * src/vtepangocairo.c
240         (cleanup_delayed_font_info_destroys_predicate),
241         (cleanup_delayed_font_info_destroys), (ensure_quit_handler),
242         (font_info_register), (font_info_reference),
243         (font_info_destroy_delayed), (font_info_destroy):
244         Use gtk_quit_add() to complete delayed font_info destroys.
245
246 2008-11-26  Christian Persch  <chpe@gnome.org>
247
248         Bug 562338 – don't need to connect to bunch of xft settings
249
250         * src/vte-private.h:
251         * src/vte.c: (vte_terminal_style_changed), (add_cursor_timeout),
252         (vte_terminal_init), (vte_terminal_size_allocate),
253         (vte_terminal_finalize), (vte_terminal_realize): Don't listen to
254         changes on the gtk-xft-* GtkSettings properties. Just calling
255         vte_terminal_set_font_full in the style-set handler works fine.
256
257 2008-11-26  Christian Persch  <chpe@gnome.org>
258
259         Bug 488960 – gnome-terminal on Solaris 10 does not clean up utmpx on
260         exit (intermittent)
261
262         * gnome-pty-helper/gnome-pty-helper.c: (main):
263         * gnome-pty-helper/gnome-pty.h:
264         * src/pty.c: (_vte_pty_close): Add new GNOME_PTY_SYNCH operation to
265         gnome-pty-helper. Patch from Behdad.
266
267 2008-11-26  Christian Persch  <chpe@gnome.org>
268
269         * src/vte.c: (vte_terminal_style_changed),
270         (vte_terminal_ensure_font), (vte_terminal_set_font_full),
271         (vte_terminal_set_font_from_string_full_internal),
272         (vte_terminal_set_font_from_string_full),
273         (vte_terminal_reset_rowdata), (vte_terminal_set_property): Add
274         vte_terminal_set_font_*full_internal so we don't use deprecated
275         symbols internally.
276
277 2008-11-26  Christian Persch  <chpe@gnome.org>
278
279         * src/vte.c: (vte_terminal_sync_settings),
280         (vte_terminal_screen_changed): Remove gtk 2.12 version checks, since
281         we already depend on 2.12.
282
283 2008-11-26  Christian Persch  <chpe@gnome.org>
284
285         Bug 561366 – remove antialias setting for 1.0
286         
287         * src/vte.c: (vte_terminal_set_font_full),
288         (vte_terminal_get_property), (vte_terminal_class_init):
289         * src/vte.h: Deprecate the font antialias setting, and remove the
290         (existing only on trunk) font-antialias property already.
291
292 2008-11-25  Behdad Esfahbod  <behdad@gnome.org>
293
294         * src/Makefile.am:
295         * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
296         * src/vteseq-2.gperf:
297         * src/vteseq-n.c (vteseq_n_hash), (vteseq_n_lookup):
298         * src/vteseq-n.gperf:
299         * src/vteseq.c (_vte_sequence_get_handler):
300         Cleanup gperf stuff.
301
302 2008-11-24  Behdad Esfahbod  <behdad@gnome.org>
303
304         Bug 562187 – Add make rules for calling gperf
305
306         * src/Makefile.am: Add a "gperf" target to be run manually.
307
308         * src/vteseq-2.gperf:
309         * src/vteseq-n.gperf:
310         Add comment about "make gperf".
311
312         * src/vteseq-2.c:
313         * src/vteseq-n.c:
314         Regenerate using newer gperf.
315
316 2008-11-24  Behdad Esfahbod  <behdad@gnome.org>
317
318         Bug 416518 – Do something about uniwidths
319
320         * src/iso2022.c (_vte_iso2022_is_ambiguous):
321         Call into glib to determine ambiguous-width chars.
322
323         * src/genwidths.py:
324         * src/uniwidths:
325         Remove.
326
327 2008-11-24  Behdad Esfahbod  <behdad@gnome.org>
328
329         Bug 500191 – Remove vteseq-table.h?
330
331         * src/Makefile.am:
332         * src/vteseq-gen.c:
333         * src/vteseq-table.h:
334         Remove the old table implementation.  We use gperf-generated tables
335         now.
336
337 2008-11-24  Behdad Esfahbod  <behdad@gnome.org>
338
339         Bug 514457 – Use g_strv_length()
340
341         * src/vte.c (_vte_terminal_fork_basic): Do it.
342
343 2008-11-24  Behdad Esfahbod  <behdad@gnome.org>
344
345         * src/vtepangocairo.c (font_info_create_for_widget): No need to check
346         widget font desc here as vte.c does that for us already.
347
348 2008-11-24  Behdad Esfahbod  <behdad@gnome.org>
349
350         * src/vtepangocairo.c (font_info_destroy): Modify GTK_CHECK_VERSION
351         handling to make my vim syntax highlighter happy.
352
353 2008-11-23  Behdad Esfahbod  <behdad@gnome.org>
354
355         * src/vte.c (vte_terminal_ensure_cursor): Refactor duplicate code.
356
357 2008-11-22  Christian Persch  <chpe@gnome.org>
358
359         * src/vte.h: Move all the deprecated stuff into one place.
360
361 2008-11-22  Christian Persch  <chpe@gnome.org>
362
363         Bug 542561 – Doesn't build when disabling gnome-pty-helper
364
365         * src/pty.c: Always include sys/socket.h. Patch by Loïc Minier.
366
367 2008-11-22  Christian Persch  <chpe@gnome.org>
368
369         * src/vteapp.c: (main): Fix --blink; the flag is inverted.
370
371 2008-11-22  Christian Persch  <chpe@gnome.org>
372
373         * src/vteapp.c: (main): Use vte_terminal_set_cursor_blink_mode instead
374         of the deprecated set_cursor_blinks here.
375
376 2008-11-22  Christian Persch  <chpe@gnome.org>
377
378         Bug 560766 – Deprecate and remove vte_terminal_get_using_xft()
379
380         * src/vte.c: (vte_terminal_get_using_xft):
381         * src/vte.h:
382         * src/vtedraw.c: (_vte_draw_text):
383         * src/vtedraw.h:
384         * src/vtepangocairo.c: Deprecate vte_terminal_get_using_xft() as preparation for
385         bug #560766. Remove the internal vtedraw method already.
386
387 2008-11-22  Christian Persch  <chpe@gnome.org>
388
389         Bug 536894 – Confusing use of "free" as variable-name in ring
390         functions
391
392         * src/ring.c: (_vte_ring_new), (_vte_ring_new_with_delta),
393         (_vte_ring_remove):
394         * src/ring.h: Don't shadow global declarations. Patch by dmacks at 
395         netspace.org. 
396
397 2008-11-22  Christian Persch  <chpe@gnome.org>
398
399         * python/vte.override: Fix missing-prototypes warnings.
400
401 2008-11-22  Christian Persch  <chpe@gnome.org>
402
403         * src/vtepangocairo.c: No need to include gi18n-lib.h here.
404
405 2008-11-22  Christian Persch  <chpe@gnome.org>
406
407         * configure.in:
408         * vte-uninstalled.pc.in:
409         * vte.pc.in: Clean up the pkgs declared for use in the .pc files.
410
411 2008-11-22  Christian Persch  <chpe@gnome.org>
412
413         * configure.in: Depend on gtk 2.12. Bug #398862.
414
415 2008-11-22  Christian Persch  <chpe@gnome.org>
416
417         * src/table.c: (print_array): Fix the build (broken since r1622).
418
419 2008-11-22  Christian Persch  <chpe@gnome.org>
420
421         * src/reaper.c: Don't include gtk.h here, it's unneeded.
422
423 2008-11-22  Christian Persch  <chpe@gnome.org>
424
425         * src/iso2022.c: (main): Make iso2022 programme build again; it was
426         broken since r1612.
427
428 2008-11-22  Christian Persch  <chpe@gnome.org>
429
430         * src/Makefile.am: Separate CFLAGS and CPPFLAGS.
431
432 2008-11-22  Christian Persch  <chpe@gnome.org>
433
434         * src/Makefile.am: Don't add LDFLAGS to *_LDADD, that's wrong and
435         broken.
436
437 2008-11-22  Christian Persch  <chpe@gnome.org>
438
439         * configure.in:
440         * src/Makefile.am:
441         * vte-uninstalled.pc.in:
442         * vte.pc.in: Remove more configure cruft: OTHERCFLAGS, OTHERLIBS,
443         X_CFLAGS and X_LIBS.
444
445 2008-11-21  Christian Persch  <chpe@gnome.org>
446
447         * src/vtepangocairo.c: (font_info_destroy_delayed),
448         (font_info_destroy): Use gdk_threads_add_timeout_seconds() for
449         complete threadsafety.
450
451 2008-11-21  Chris Wilson  <chris@chris-wilson.co.uk>
452
453         * vte.pc.in: Remove FT2_LIBS and FT2_CFLAGS
454
455 2008-11-21  Chris Wilson  <chris@chris-wilson.co.uk>
456
457         * src/iso2022.c (_vte_iso2022_is_ambiguous): Break out of interval
458         search as early as possible. Exploit the strict ordering of the 
459         ambiguous/unambiguous ranges to break out of the for loop as soon
460         as the character is less than a range start. (As the arrays only
461         contain 2/3 elements, it is not worth adding the overhead of calling
462         bsearch()).
463
464 2008-11-21  Chris Wilson  <chris@chris-wilson.co.uk>
465
466         * src/iso2022.c (process_cdata): Copy the gunichars directly to the
467         array from the incoming chunk.
468
469 2008-11-20  Chris Wilson  <chris@chris-wilson.co.uk>
470
471         * src/Makefile.am: Remove FT2_FLAGS
472
473 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
474
475         * src/vtepangocairo.c (font_info_destroy_delayed): Remove obsolete
476         check.
477
478 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
479
480         Bug 561713 – crash on font cache cleanup
481
482         * src/vtepangocairo.c (font_info_reference), (font_info_destroy):
483         Remove destroy timeout when resurrecting a font info.
484
485 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
486
487         * src/vtepangocairo.c (font_info_cache_ascii),
488         (font_info_allocate), (font_info_free),
489         (font_info_find_for_context):
490         Make profiling messages print the info pointer.
491
492 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
493
494         * configure.in:  Remove more cruft.
495
496 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
497
498         Bug 560819 – Remove obsolete backends
499
500         * configure.in:
501         * src/Makefile.am:
502         * src/vtebg.c (vte_bg_get_pixmap):
503         * src/vtebg.h:
504         * src/vtedraw.c:
505         * src/vtefc.c:
506         * src/vtefc.h:
507         * src/vteft2.c:
508         * src/vteft2.h:
509         * src/vtegl.c:
510         * src/vtegl.h:
511         * src/vteglyph.c:
512         * src/vteglyph.h:
513         * src/vterdb.c:
514         * src/vterdb.h:
515         * src/vtergb.c:
516         * src/vtergb.h:
517         * src/vtexft.c:
518         * src/vtexft.h:
519         Remove all backends except for pangocairo.  Saves so much code.
520
521 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
522
523         Bug 560819 – Remove obsolete backends
524
525         * src/Makefile.am:
526         * src/vtedraw.c:
527         * src/vtepango.c:
528         * src/vtepango.h:
529         Remove pango backend.
530
531 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
532
533         Bug 560819 – Remove obsolete backends
534
535         * configure.in:
536         * src/Makefile.am:
537         * src/vtedraw.c:
538         * src/vtepangox.c:
539         * src/vtepangox.h:
540         Remove pangox backend.
541
542 2008-11-20  Behdad Esfahbod  <behdad@gnome.org>
543
544         Bug 560818 – pangocairo backend doesn't share font cache across
545         widgets
546
547         * src/vtepangocairo.c (font_info_cache_ascii),
548         (font_info_allocate), (font_info_free), (font_info_register),
549         (font_info_unregister), (font_info_reference),
550         (font_info_destroy_delayed), (font_info_destroy), (context_hash),
551         (context_equal), (font_info_find_for_context),
552         (font_info_create_for_context), (font_info_create_for_screen),
553         (font_info_get_unichar_info): Cache font info and use it for multiple
554         widgets.
555
556 2008-11-19  Behdad Esfahbod  <behdad@gnome.org>
557
558         * src/vtepangocairo.c (font_info_create_for_screen),
559         (font_info_destroy): Remove unused PangoCoverage.
560
561 2008-11-19  Behdad Esfahbod  <behdad@gnome.org>
562
563         * src/vtepangocairo.c (font_info_find_unichar_info),
564         (font_info_cache_ascii), (font_info_measure_font),
565         (font_info_get_unichar_info): Cache ASCII characters when building
566         font.
567
568 2008-11-18  Christian Persch  <chpe@gnome.org>
569
570         Remove glib usage from gnome-pty-helper. Bug #560977.
571
572         * gnome-pty-helper/Makefile.am: Remove GLIB CFLAGS/LIBS.
573         * gnome-pty-helper/configure.in: Remove glib check, and do some auto*
574         modernisation.
575         * gnome-pty-helper/gnome-pty-helper.c: (open_ptys), (exit_handler),
576         (main): Use alloca instead of g_alloca, and use int instead of
577         gboolean.
578
579 2008-11-18  Behdad Esfahbod  <behdad@gnome.org>
580
581         * src/vtepangocairo.c (font_info_create_for_screen),
582         (font_info_destroy): Remove copy of font desc and antialias from font
583         info object as they were not used.
584
585 2008-11-18  Behdad Esfahbod  <behdad@gnome.org>
586
587         Bug 561185 – pangocairo backend sets antialias incorrectly
588
589         * src/vtepangocairo.c (font_info_create_for_screen): Handle
590         FORCE_ENABLE correctly.
591
592 2008-11-16  Behdad Esfahbod  <behdad@gnome.org>
593
594         Bug 560817 – pagocairo backend doesn't have correct opacity support   
595
596         * src/vtepangocairo.c (_vte_pangocairo_clear),
597         (_vte_pangocairo_draw_text), (_vte_pangocairo_draw_rectangle),
598         (_vte_pangocairo_fill_rectangle): Fix opacity support by using
599         SOURCE operator.
600
601 2008-11-16  Behdad Esfahbod  <behdad@gnome.org>
602
603         Bug 560991 – Unsetting background doesn't work
604
605         * src/vte.c (vte_terminal_set_background_image): Correctly unset
606         background if image==NULL.
607
608 2008-11-14 Christian Persch <chpe@gnome.org>
609
610         * src/vteskel.c: Fix missing prototype warning.
611
612 2008-11-14  Behdad Esfahbod  <behdad@gnome.org>
613
614         Bug 395599 – Add pangocairo backend
615
616         * configure.in:
617         Require pango >= 1.22.0
618
619         * src/Makefile.am:
620         * src/vtedraw.c:
621         * src/vtepangocairo.c:
622         * src/vtepangocairo.h:
623         Add a pangocairo drawing backend.  Use it by default.  This is as fast
624         as the xft backend.  Doesn't share font caches across widgets yet.
625         Also, the transparent background stuff doesn't match xft backend's
626         yet.
627
628 2008-11-14  Behdad Esfahbod  <behdad@gnome.org>
629
630         * src/vte.c (vte_terminal_ensure_font):
631         * src/vtedraw.c (_vte_draw_new), (_vte_draw_free),
632         (_vte_draw_set_background_opacity),
633         (_vte_draw_set_background_color), (_vte_draw_set_text_font),
634         (_vte_draw_get_text_metrics), (_vte_draw_get_char_width),
635         (_vte_draw_char), (_vte_draw_draw_rectangle),
636         (_vte_draw_set_scroll):
637         * src/vtedraw.h:
638         * src/vteft2.c (_vte_ft2_destroy), (_vte_ft2_start),
639         (_vte_ft2_end), (_vte_ft2_set_background_image), (_vte_ft2_clear),
640         (_vte_ft2_set_text_font), (_vte_ft2_get_text_metrics),
641         (_vte_ft2_get_char_width), (_vte_ft2_draw_text),
642         (_vte_ft2_draw_has_char), (_vte_ft2_draw_rectangle),
643         (_vte_ft2_fill_rectangle):
644         * src/vtegl.c (_vte_gl_destroy), (_vte_gl_get_visual),
645         (_vte_gl_start), (_vte_gl_end), (_vte_gl_set_background_image),
646         (_vte_gl_clear), (_vte_gl_set_text_font),
647         (_vte_gl_get_text_metrics), (_vte_gl_get_char_width),
648         (_vte_gl_draw_text), (_vte_gl_draw_has_char), (_vte_gl_rectangle):
649         * src/vtepango.c (_vte_pango_set_text_font),
650         (_vte_pango_get_text_metrics):
651         * src/vtepangox.c (_vte_pangox_create), (_vte_pangox_destroy),
652         (_vte_pangox_start), (_vte_pangox_end),
653         (_vte_pangox_set_background_image), (_vte_pangox_clip),
654         (_vte_pangox_clear), (_vte_pangox_set_text_font),
655         (_vte_pangox_get_text_metrics), (_vte_pangox_get_using_fontconfig),
656         (_vte_pangox_draw_text), (_vte_pangox_draw_has_char),
657         (_vte_pangox_draw_rectangle), (_vte_pangox_fill_rectangle):
658         * src/vtepangox.h:
659         * src/vteskel.c (_vte_skel_clear), (_vte_skel_get_text_metrics),
660         (_vte_skel_draw_text), (_vte_skel_fill_rectangle):
661         * src/vtexft.c (_vte_xft_set_text_font),
662         (_vte_xft_get_text_metrics), (_vte_xft_draw_text):
663         Remove unneeded draw methods.
664
665 2008-11-14  Behdad Esfahbod  <behdad@gnome.org>
666
667         * src/vtedraw.c (_vte_draw_get_char_width): Minor fix.
668
669         * src/vtepangox.c (_vte_pango_x_create), (_vte_pango_x_start),
670         (_vte_pango_x_clear): Cleanup here too.
671
672 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
673
674         * configure.in:
675         * src/vte-private.h:
676         Undo previous change instead of cleanly fix it for now.
677
678 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
679
680         * configure.in:
681         * src/vte-private.h:
682         Why do we let people configure random things?
683
684 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
685
686         * src/vte.c (vte_terminal_background_update):
687         * src/vtedraw.c (_vte_draw_update_requires_clear), (_vte_draw_new),
688         (_vte_draw_set_background_opacity),
689         (_vte_draw_set_background_color), (_vte_draw_set_background_image),
690         (_vte_draw_char), (_vte_draw_set_scroll):
691         * src/vtedraw.h:
692         * src/vteft2.c (_vte_ft2_set_background_image), (_vte_ft2_clear),
693         (_vte_ft2_get_char_width):
694         * src/vtegl.c (_vte_gl_create), (_vte_gl_clear),
695         (_vte_gl_get_char_width), (_vte_gl_draw_text):
696         * src/vtepango.c (_vte_pango_create), (_vte_pango_start),
697         (_vte_pango_set_background_image), (_vte_pango_clear):
698         * src/vtexft.c (_vte_xft_create), (_vte_xft_set_background_image),
699         (_vte_xft_clear), (_vte_xft_get_char_width):
700         Simplify backends by relying more on defaults.
701
702 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
703
704         * src/vtedraw.c (_vte_draw_init_user), (_vte_draw_init_default):
705         Accept draw impl if impl->check is NULL.
706
707 2008-11-13  Behdad Esfahbod  <behdad@gnome.org>
708
709         * src/vtedraw.h:
710         * src/vtedraw.c (_vte_draw_new), (_vte_draw_get_visual),
711         (_vte_draw_get_colormap), (_vte_draw_start), (_vte_draw_end),
712         (_vte_draw_set_background_color), (_vte_draw_set_background_image),
713         (_vte_draw_requires_repaint), (_vte_draw_clip), (_vte_draw_clear),
714         (_vte_draw_set_text_font), (_vte_draw_get_text_width),
715         (_vte_draw_get_text_height), (_vte_draw_get_text_ascent),
716         (_vte_draw_get_char_width), (_vte_draw_get_using_fontconfig),
717         (_vte_draw_text), (_vte_draw_char), (_vte_draw_has_char),
718         (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle),
719         (_vte_draw_set_scroll):
720         Use sensical defaults instead of g_return_if_fail'ing when backend
721         functions are not implemented.
722
723 2008-10-31  Chris Wilson  <chris@chris-wilson.co.uk>
724
725         Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
726
727         * src/vte.c (vte_terminal_deselect_all):
728         Preserve the copy of the selection until it is replace by a new
729         selection, so that we can perform asynchronous copies from the
730         clipboard.
731
732 2008-10-23  Chris Wilson  <chris@chris-wilson.co.uk>
733
734         Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
735
736         * src/vte.c (vte_terminal_deselect_all),
737         (vte_terminal_extend_selection):
738         After the user modifies the selection, copy it to PRIMARY and store
739         it on the terminal. This ensures that after a screen redraw, we
740         compare the contents of the selected region with the current
741         selection, instead of stale data.
742
743 2008-10-23  Christian Persch  <chpe@gnome.org>
744
745         * configure.in:
746         * src/Makefile.am: Use glib-genmarshal --internal directly instead
747         of checking the glib version, since we now depend on a glib version
748         that provides this.
749
750 2008-10-23  Christian Persch  <chpe@gnome.org>
751
752         Bug 556398 – maybe deprecate vte_terminal_get_char_ascent/descent
753
754         * src/vte.[ch]: Deprecate vte_terminal_get_char_ascent/descent.
755
756 2008-10-23  Christian Persch  <chpe@gnome.org>
757
758         Bug 339819 – LibVTE terminals in GLADE
759
760         A glade/*:
761         * Makefile.am
762         * configure.in: Add glade catalogue.
763
764 2008-10-23  Christian Persch  <chpe@gnome.org>
765
766         Bug 399364 – Implement properties
767
768         * src/vte.c: Add gobject properties.
769
770 2008-10-19  Christian Persch  <chpe@gnome.org>
771
772         Bug 556328 – Document set-scroll-adjustment parameters
773
774         * src/vte.c: Document the set-scroll-adjustments signal.
775
776 2008-10-15  Behdad Esfahbod  <behdad@gnome.org>
777
778         * doc/reference/Makefile.am:
779         * doc/reference/check-doc-coverage.sh:
780         * doc/reference/check.docs:
781         Update doc coverage test from cairo.
782
783 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
784
785         * src/vte.c (vte_terminal_set_cursor_shape):
786         Invalidate cursor upon shape change.
787
788 2008-10-15  Christian Persch  <chpe@gnome.org>
789
790         * python/vte.defs: Add new API to the binding.
791
792 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
793
794         * src/vte-private.h:
795         * src/vte.c (vte_terminal_draw_line), (vte_terminal_paint_cursor):
796         Remove VTE_CURSOR_OUTLINE in favor of VTE_LINE_WIDTH.
797
798 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
799
800         * src/vte.c (vte_terminal_paint_cursor):
801         Supposedly handle reverse video during cursor drawing.
802
803 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
804
805         * src/vte.c (vte_terminal_paint_im_preedit_string),
806         (vte_terminal_paint):
807         Move IM preedit string drawing into its own function for code
808         clarity.
809
810 2008-10-14  Behdad Esfahbod  <behdad@gnome.org>
811
812         Bug 549835 – Feature Request: Configurable cursor appearance
813
814         * src/vte.h:
815         New public api:
816
817                 VteTerminalCursorShape
818                 vte_terminal_set_cursor_shape
819                 vte_terminal_get_cursor_shape
820
821         * src/vte-private.h:
822         * src/vte.c (_vte_terminal_insert_char), (vte_terminal_init),
823         (vte_terminal_paint_cursor), (vte_terminal_paint),
824         (vte_terminal_set_cursor_shape), (vte_terminal_get_cursor_shape):
825         Implement new API.  Also clean up cursor drawing in general.
826
827         * doc/reference/Makefile.am:
828         * doc/reference/tmpl/reaper.sgml:
829         * doc/reference/tmpl/vte-unused.sgml:
830         * doc/reference/tmpl/vte.sgml:
831         * doc/reference/vte-sections.txt:
832         Doc new symbols.  Also add some missing docs.
833
834 2008-10-13  Christian Persch  <chpe@gnome.org>
835
836         * src/vte.c: Add gobject property infrastructure.
837
838 2008-10-13  Christian Persch  <chpe@gnome.org>
839
840         * src/Makefile.am: Fix missing prototypes compiler warning in
841         marshal.c.
842
843 2008-10-06  Christian Persch  <chpe@gnome.org>
844
845         * src/vteconv.c: (_vte_conv_open): Fix compiler warning.
846
847 2008-10-06  Christian Persch  <chpe@gnome.org>
848
849         Bug 509204 – child-exited signal does not provide exit code
850
851         * python/vte.defs: Add the new function to the bindings.
852
853 2008-10-06  Christian Persch  <chpe@gnome.org>
854
855         Bug 539130 – building g-t fails due to GtkType etc. deprecation
856
857         * src/vte.h: Deprecate useless macros.
858
859 2008-10-06  Christian Persch  <chpe@gnome.org>
860
861         Bug 509204 – child-exited signal does not provide exit code
862
863         * src/vte-private.h:
864         * src/vte.h:
865         * src/vte.c: Add function to get the child's exit status.
866
867 2008-10-06  Christian Persch  <chpe@gnome.org>
868
869         * configure.in: Bump version to 0.17.5.
870
871 2008-09-08  Christian Persch  <chpe@gnome.org>
872
873         Release 0.17.3.
874
875         * NEWS:
876         * configure.in: Updated.
877
878 2008-09-07  Christian Persch  <chpe@gnome.org>
879
880         * python/vte.defs: Update python bindings.
881
882 2008-08-20  Sébastien Granjoux  <seb.sfo@free.fr>
883
884         Bug 538344 – Anjuta hangs when program is executed in terminal
885
886         * src/vte.c: Ensure the output channel exists when we need to write.
887
888 2008-08-20  Christian Persch  <chpe@gnome.org>
889
890         * src/vte.c: (vte_terminal_match_check_internal_gregex): Plug a mem
891         leak.
892
893 2008-08-15  Chris Wilson  <chris@chris-wilson.co.uk>
894
895         * src/vte.c (vte_terminal_set_pty):
896         fcntl(2) specifies that the flags argument is a long. Make it so.
897
898 2008-08-13  Behdad Esfahbod  <behdad@gnome.org>
899
900         * src/vte-private.h:
901         * src/vte.c (vte_terminal_match_check_internal_vte),
902         (vte_terminal_ensure_cursor), (vte_terminal_set_colors),
903         (_vte_terminal_insert_char), (vte_terminal_feed),
904         (vte_terminal_key_press), (vte_terminal_match_hilite_update),
905         (vte_terminal_extend_selection):
906         * src/vteseq.c (vte_terminal_find_charcell),
907         (vte_sequence_handler_set_title_internal),
908         (vte_sequence_handler_decset_internal), (vte_sequence_handler_cb),
909         (vte_sequence_handler_cd), (vte_sequence_handler_ce),
910         (vte_sequence_handler_ec), (vte_sequence_handler_ta),
911         (vte_sequence_handler_set_mode),
912         (vte_sequence_handler_window_manipulation):
913         Fix all "signed vs unsigned comparison" warnings.
914
915 2008-08-13  Behdad Esfahbod  <behdad@gnome.org>
916
917         * src/vte.c (regex_match_clear_cursor),
918         (vte_terminal_set_cursor_from_regex_match):
919         Fix uninitialized cursor warning.  Setting to NULL sounds
920         right to me.  ChPe?
921
922 2008-08-13  Behdad Esfahbod  <behdad@gnome.org>
923
924         * src/vte.c: Remove useless "inline" decorators.  Gcc has been
925         rightfully complaining.
926
927 2008-08-13  Behdad Esfahbod  <behdad@gnome.org>
928
929         Bug 546940 – Crash when selecting text
930
931         * src/vte.c (vte_terminal_extend_selection): Fix crash with 64-bit
932         systems.  Note to self:
933
934                 unsigned int len = 0;
935                 long i = len - 1;
936                 assert (i < 0);
937
938         fails on 64-bit systems.
939
940 2008-08-05  Behdad Esfahbod  <behdad@gnome.org>
941
942         Released vte-0.17.1.
943
944         * NEWS: Updated.
945
946         * configure.in: Bumped version to 0.17.1.
947         Bumped libtool version to 12:0:3.
948
949 2008-08-05  Behdad Esfahbod  <behdad@gnome.org>
950
951         Bug 546366 – hard to select last tab char on a line
952
953         * src/vte.c (vte_terminal_extend_selection):
954         * src/vteseq.c (vte_sequence_handler_ta):
955         Handle fragment cells.
956
957 2008-08-05  Behdad Esfahbod  <behdad@gnome.org>
958
959         Bug 545924 – tab characters not handled correctly after ncurses clear 
960         Patch from Patryk Zawadzki
961
962         * src/vteseq.c (vte_sequence_handler_ta): Ignore empty cells at end of
963         line.
964
965 2008-07-14  Behdad Esfahbod  <behdad@gnome.org>
966
967         Bug 542795 – VTE_CJK_WIDTH don't work
968
969         * src/iso2022.c (_vte_iso2022_ambiguous_width): Fix VTE_CJK_WIDTH env
970         handling.
971
972 2008-06-27  Christian Persch  <chpe@gnome.org>
973
974         Bug 399744 – Hide more font-aa implementation details
975
976         * src/vtexft.c: Disable antialiasing if using the default antialias
977         setting and the XRender extension is not available.
978
979 2008-06-27  Christian Persch  <chpe@gnome.org>
980
981         Bug 510903 – use gtk-cursor-blink setting
982
983         * doc/reference/tmpl/vte.sgml:
984         * doc/reference/vte-sections.txt:
985         * src/vte-private.h:
986         * src/vte.c:
987         * src/vte.h: Make the cursor blinking follow the gtk setting by
988         default, with a possible override.
989
990 2008-06-26  Christian Persch  <chpe@gnome.org>
991
992         * src/vte.h: Remove the enum type declarations that are now in
993         vtetypebuiltins.h.
994
995 2008-06-26  Christian Persch  <chpe@gnome.org>
996
997         * Makefile.am:
998         * autogen.sh: Fix the build from svn and make dist when using
999         intltool 0.40.0. Tarball builds still only require 0.35.0.
1000
1001 2008-06-26  Christian Persch  <chpe@gnome.org>
1002
1003         * src/vteversion.h.in: Disallow direct inclusion of the new
1004         vteversion.h file.
1005
1006 2008-06-26  Christian Persch  <chpe@gnome.org>
1007
1008         * configure.in:
1009         * src/Makefile.am:
1010         * src/vte.c:
1011         * src/vte.h:
1012         * src/vtetypebuiltins.c.template:
1013         * src/vtetypebuiltins.h.template: Use glib-mkenums to generate the
1014         enum types; makes it easier to add more enum types.
1015
1016 2008-06-26  Christian Persch  <chpe@gnome.org>
1017
1018         Bug 539130 – building g-t fails due to GtkType etc. deprecation
1019
1020         * src/reaper.h:
1021         * src/vte.c:
1022         * src/vteaccess.[ch]: 
1023         * src/vtebg.h: Also remove the deprecated GtkType macros from here.
1024
1025 2008-06-25  Christian Persch  <chpe@gnome.org>
1026
1027         Bug 540182 – crash in geany with vte trunk
1028
1029         * src/vte.c: Make sure that match_attributes always exist even if
1030         there haven't been any matches added.
1031
1032 2008-06-23  Christian Persch  <chpe@gnome.org>
1033
1034         Bug 535552 – vte_terminal_set_allow_bold doesn't queue redraw
1035
1036         * src/vte.c: Invalidate all when changing the allow-bold property.
1037
1038 2008-06-23  Christian Persch  <chpe@gnome.org>
1039
1040         Bug 535469 – support named cursors on matches
1041
1042         * src/vte-private.h
1043         * src/vte.c
1044         * src/vte.h: Implement named cursors on matches.
1045
1046 2008-06-23  Christian Persch  <chpe@gnome.org>
1047
1048         Bug 418918 – Switch to GRegex
1049
1050         * src/vte-private.h
1051         * src/vte.c
1052         * src/vte.h: Implement GRegex matching, to be used alternatively
1053         to the old vteregex matching.
1054
1055 2008-06-23  Christian Persch  <chpe@gnome.org>
1056
1057         Bug 535467 – implement set-scroll-adjustments signal
1058
1059         * src/vte.c: Add set-scroll-adjustments signal, needed to allow
1060         adding a VteTerminal into a GtkScrolledWindow.
1061
1062 2008-06-23  Christian Persch  <chpe@gnome.org>
1063
1064         Bug 535468 – need version check macros
1065
1066         * configure.in
1067         * doc/reference/tmpl/vteversion.sgml
1068         * doc/reference/vte-sections.txt
1069         * doc/reference/vte.types
1070         * src/Makefile.am
1071         * src/vte.h
1072         A src/vteversion.h.in: Add version check macro.
1073
1074 2008-06-21  Kjartan Maraas  <kmaraas@gnome.org>
1075
1076         * src/vte.h: Don't use GTK_CHECK* macros.
1077
1078 2008-06-04  Christian Persch  <chpe@gnome.org>
1079
1080         Bug 515972 – Bold black is black in vte's default palette
1081
1082         * src/vte.c: (vte_terminal_set_colors): Correctly set the value of
1083         'bold black' in the palette. Patch by Santtu Lakkala.
1084
1085 2008-06-04  Behdad Esfahbod  <behdad@gnome.org>
1086
1087         Released vte-0.16.14.
1088
1089         * NEWS: Updated.
1090
1091         * configure.in: Bumped version to 0.16.14.
1092         Bumped libtool version to 11:18:2.
1093
1094 2008-06-04  Behdad Esfahbod  <behdad@gnome.org>
1095
1096         Bug 536632 – vte build failure in ring.c:210: error: expected
1097         expression before 'do'
1098
1099         * src/debug.h:
1100         * src/ring.c:
1101         * src/ring.h:
1102         With latest glib (after bug #519026), g_error is expanding to
1103         "do {...} while(0)" instead of "{...}".  This breaks build in
1104         debugging mode.  Use g_critical instead.  Also add some
1105         G_STMT_START/END to some macros.
1106
1107 2008-05-29  Chris Wilson  <chris@chris-wilson.co.uk>
1108
1109         * src/pty.c (merge_environ): Replace previous commit with the
1110         better patch by Christian Persch.
1111
1112 2008-05-29  Chris Wilson  <chris@chris-wilson.co.uk>
1113
1114         * src/pty.c (merge_environ): Fix bug in patch to use g_listenv()
1115         as it only returns the variable name and we need to use g_getenv()
1116         to retrieve its value.
1117
1118 2008-05-27  Behdad Esfahbod  <behdad@gnome.org>
1119
1120         * src/iso2022.c (_vte_iso2022_ambiguous_width): Oops.  Fix thinko
1121         in last commit.
1122
1123 2008-05-27  Behdad Esfahbod  <behdad@gnome.org>
1124
1125         Bug 535022 – ambiguous width in utf8 locale
1126
1127         * src/iso2022.c (_vte_iso2022_ambiguous_width): Recognize
1128         env var settings VTE_CJK_WIDTH=narrow and VTE_CJK_WIDTH=wide.
1129         Any other value means "auto" based on locale, as it was doing
1130         previously.
1131
1132 2008-05-21  Chris Wilson  <chris@chris-wilson.co.uk>
1133
1134         * src/pty.c (merge_environ): Silence compiler warning about using
1135         environ as a local variable name.
1136
1137 2008-05-21  Richard Hult  <richard@imendio.com>
1138
1139         Bug 534148 – Use g_listenv() instead of environ
1140
1141         * src/pty.c: (merge_environ): Use g_listenv() instead of
1142         non-portable environ extern.
1143
1144 2008-05-19  Kjartan Maraas  <kmaraas@gnome.org>
1145
1146         * configure.in: automake doesn't like to substitute more
1147         than one variable at a time.
1148         * src/vtedraw.c: (_vte_draw_get_using_fontconfig):
1149         * src/vtetc.c: (_vte_termcap_find_boolean):
1150         Fix two compiler warnings.
1151
1152 2008-05-09  Chris Wilson  <chris@chris-wilson.co.uk>
1153
1154         * src/vtedraw.c (_vte_draw_text):
1155             Add the text to draw to the debug output.
1156
1157 2008-05-09  Chris Wilson  <chris@chris-wilson.co.uk>
1158
1159         Fix "GLib-CRITICAL **: g_io_add_watch_full: assertion
1160                                `channel != NULL' failed"
1161
1162         * src/debug.c (_vte_debug_parse_string):
1163         * src/debug.h:
1164         * src/vte-private.h:
1165         * src/vte.c (vte_terminal_emit_adjustment_changed),
1166         (_vte_terminal_adjust_adjustments_full),
1167         (vte_terminal_scroll_lines), (vte_terminal_maybe_scroll_to_bottom),
1168         (_vte_terminal_insert_char), (vte_terminal_catch_child_exited),
1169         (mark_input_source_invalid), (_vte_terminal_connect_pty_read),
1170         (mark_output_source_invalid), (_vte_terminal_connect_pty_write),
1171         (_vte_terminal_disconnect_pty_read),
1172         (_vte_terminal_disconnect_pty_write), (_vte_terminal_fork_basic),
1173         (vte_terminal_eof), (_vte_terminal_enable_input_source),
1174         (vte_terminal_io_read), (vte_terminal_handle_scroll),
1175         (vte_terminal_finalize), (vte_terminal_class_init),
1176         (vte_terminal_set_pty), (process_timeout), (update_repeat_timeout),
1177         (update_timeout):
1178         It was possible for _vte_terminal_enable_input_source() to be called
1179         after the input closed with G_IO_HUP. The minimal change would just
1180         have been to add a guard to check the pty_master was still valid
1181         before reattaching the source. Instead I removed the redundant
1182         duplication of the input and output channels and added lots of
1183         debugging.
1184
1185 2008-05-08  Chris Wilson  <chris@chris-wilson.co.uk>
1186
1187         Bug 516869 – vte displays nothing on GTK+/DirectFB
1188
1189         Original patch by Jérémy Bobbio.
1190
1191         * src/vte.c (vte_terminal_class_init), (update_regions),
1192         (update_repeat_timeout), (update_timeout):
1193         gdk_window_process_all_updates() is ineffective on the gtk+-directfb
1194         and gtk+-quartz backends, so in order to process updates immediately
1195         one must call gdk_window_process_updates() on the desired GdkWindows
1196         instead.
1197
1198 2008-03-10  Behdad Esfahbod  <behdad@gnome.org>
1199
1200         Released vte-0.16.13.
1201
1202         * NEWS: Updated.
1203
1204         * configure.in: Bumped version to 0.16.13.
1205         Bumped libtool version to 11:17:2.
1206
1207 2008-02-20  Behdad Esfahbod  <behdad@gnome.org>
1208
1209         Bug 517709 – VTE's pty.c makes 4096 getrlimit calls when it only needs
1210         one
1211
1212         * src/pty.c (_vte_pty_start_helper): Only close fds 0, 1, and 2.
1213         gnome-pty-helper closes all fds anyway.
1214
1215 2008-02-08  Behdad Esfahbod  <behdad@gnome.org>
1216
1217         * src/vte.c:
1218         * src/vteapp.c:
1219         * src/vtergb.c:
1220         Remove unneeded #include <fontconfig/fontconfig.h>
1221
1222 2008-01-09  Behdad Esfahbod  <behdad@gnome.org>
1223
1224         Bug 449131 – Wrong gettext domain
1225
1226         * src/pty.c:
1227         * src/reaper.c (vte_reaper_class_init):
1228         * src/trie.c:
1229         * src/vtebg.c (vte_bg_class_init):
1230         * src/vteglyph.c:
1231         Oops.  Fix all remaining ones too.
1232
1233 2008-01-07  Behdad Esfahbod  <behdad@gnome.org>
1234
1235         Released vte-0.16.12.
1236
1237         * NEWS: Updated.
1238
1239         * configure.in: Bumped version to 0.16.12.
1240         Bumped libtool version to 11:16:2.
1241 .
1242 2007-12-21  Chris Wilson  <chris@chris-wilson.co.uk>
1243
1244         Bug 503164 – Drawing problems for VTE with gtk+-quartz
1245
1246         * src/vte.c (vte_terminal_realize):
1247         Continuing the saga, remove the fiddling with visibility state
1248         during realize.
1249
1250 2007-12-18  Behdad Esfahbod  <behdad@gnome.org>
1251
1252         Bug 449131 – Wrong gettext domain
1253
1254         * src/vte.c (vte_terminal_class_init): Use GETTEXT_DOMAIN in
1255         bind_textdomain_codeset().
1256
1257 2007-12-17  Behdad Esfahbod  <behdad@gnome.org>
1258
1259         Released vte-0.16.11.
1260
1261         * NEWS: Updated.
1262
1263         * configure.in: Bumped version to 0.16.11.
1264         Bumped libtool version to 11:15:2.
1265 .
1266 2007-12-17  Chris Wilson  <chris@chris-wilson.co.uk>
1267
1268         Bug 503164 – Drawing problems for VTE with gtk+-quartz
1269
1270         * src/vte.c (vte_terminal_init):
1271         GdkQuartz does not generate GdkVisibilityNotify events and
1272         so the terminal was never marked as unobscured, causing all
1273         redraws to be discarded. Resolve this by initially setting the
1274         terminal to be unobscured.
1275
1276 2007-12-10  Behdad Esfahbod  <behdad@gnome.org>
1277
1278         Bug 319687 – Pasting of text containing characters not in the
1279         terminal's encoding silently fails
1280
1281         * src/vteconv.c (_vte_conv_open): Try to open converter with
1282         transliteration.  Supported by GNU iconv and GLibc.
1283
1284 2007-12-03  Behdad Esfahbod  <behdad@gnome.org>
1285
1286         Released vte-0.16.10.
1287
1288         * NEWS: Updated.
1289
1290         * configure.in: Bumped version to 0.16.10.
1291         Bumped libtool version to 11:14:2.
1292 .
1293 2007-12-03  Chris Wilson  <chris@chris-wilson.co.uk>
1294
1295         Bug 497246 – Kill vte_iso2022_fragment_input
1296
1297         * src/iso2022.c (process_block), (_vte_iso2022_process):
1298         Avoid the temporary allocation of the GArray holding the fragments
1299         by processing each fragment as it is decyphered. This array is
1300         allocated and grown for every single input chunk and is currently the
1301         most frequent allocation made by vte.
1302
1303 2007-12-03  Chris Wilson  <chris@chris-wilson.co.uk>
1304
1305         * src/keymap.c: Make is_cursor_key static.
1306
1307 2007-11-28  Behdad Esfahbod  <behdad@gnome.org>
1308
1309         Bug 412435 – Invalid variable name in Makefile.am
1310
1311         * Makefile.am:
1312         * configure.in:
1313         * vte.spec.in:
1314         Remove spec file and old convenience cvs make targets.
1315
1316 2007-11-28  Behdad Esfahbod  <behdad@gnome.org>
1317
1318         Bug 416561 – Rendering issue in VtePango
1319
1320         * src/vtepango.c (_vte_pango_draw_rectangle):
1321         * src/vtepangox.c (_vte_pango_x_draw_rectangle):
1322         gdk_draw_rectangle has slightly different semantics when
1323         filling vs outlining.  Fix for that.
1324
1325 2007-11-28  Behdad Esfahbod  <behdad@gnome.org>
1326
1327         Bug 416558 – Rendering errors in VteFT2
1328
1329         * src/vteft2.c (_vte_ft2_create): Disable Gtk+ double-buffering.
1330
1331 2007-11-28  Behdad Esfahbod  <behdad@gnome.org>
1332
1333         Bug 403217 – Outdated README
1334
1335         * README: Rewrite.
1336
1337 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
1338
1339         Bug 118967 – single line scrolling with "Ctrl+Shift+ArrowUp/ArrowDown"
1340         Patch from Mauricio and Mariano Suárez-Alvarez
1341
1342         * src/vte.c (vte_terminal_scroll_lines),
1343         (vte_terminal_scroll_pages), (vte_terminal_key_press):
1344         Implement single-line scroll.
1345
1346 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
1347
1348         Bug 353610 – Don't convert tab characters upon copying
1349
1350         * src/vte-private.h:
1351         * src/vteseq.c (vte_sequence_handler_ta):
1352         Smart tab handling to try to preserve tab character upong copying.
1353         Also makes such smart tabs all-or-none selectable.
1354
1355 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
1356
1357         Bug 499892 – strikethrough line is too high
1358
1359         * src/vte-private.h:
1360         * src/vte.c (vte_terminal_apply_metrics), (vte_terminal_init),
1361         (vte_terminal_draw_cells): Adjust underline/strikethrough thickness
1362         and position based on pangofc's heuristics.
1363
1364 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
1365
1366         * src/vtedraw.c (_vte_draw_init_user): Make VTE_BACKEND=list list
1367         available backends to stderr.
1368
1369 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
1370
1371         Bug 499891 – vte with opacity set, shows invisible chars
1372
1373         * src/vte.c (vte_terminal_draw_rows): Don't draw invisible chars.
1374
1375 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
1376
1377         Bug 499896 – Alternate charset isn't an attribute, though we treat it
1378         as one.
1379
1380         * src/vte-private.h:
1381         * src/vte.c (_vte_terminal_set_default_attributes),
1382         (_vte_terminal_insert_char), (vte_terminal_reset):
1383         * src/vteseq.c (vte_sequence_handler_ae),
1384         (vte_sequence_handler_as):
1385         Move cell.attr.alternate to screen->alternate_charset.
1386
1387 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
1388
1389         Bug 499893 – cell.attr.protect is unused
1390
1391         * src/vte-private.h:
1392         * src/vte.c (_vte_terminal_set_default_attributes):
1393         * src/vteseq.c (vte_sequence_handler_mp):
1394         Comment out cell.attr.protect which is unused.
1395
1396 2007-11-27  Behdad Esfahbod  <behdad@gnome.org>
1397
1398         * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once):
1399         Minor optimization, if one can call it that.
1400
1401 2007-11-26  Behdad Esfahbod  <behdad@gnome.org>
1402
1403         * src/vte.c: Fix doc syntax.
1404
1405 2007-11-26  Behdad Esfahbod  <behdad@gnome.org>
1406
1407         Revert previous change.  For reason, see bug.
1408         Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
1409         trailing spaces
1410
1411         * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
1412         Don't trim space characters, just the empty space after lines,
1413         like we used to.
1414
1415 2007-11-26  Behdad Esfahbod  <behdad@gnome.org>
1416
1417         Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
1418         trailing spaces
1419
1420         * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
1421         Trim trailing space characters if asked to.
1422
1423 2007-11-23  Behdad Esfahbod  <behdad@gnome.org>
1424
1425         * doc/reference/Makefile.am:
1426         * doc/reference/check.docs:
1427         Add script to check doc coverage is 100% on "make check".
1428
1429 2007-11-23  Behdad Esfahbod  <behdad@gnome.org>
1430
1431         Bug 499287 – Fix doc coverage regression
1432
1433         * doc/reference/tmpl/vte.sgml:
1434         * doc/reference/vte-sections.txt:
1435         Document undocumented symbols.
1436
1437 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
1438
1439         * src/vte.c (vte_terminal_io_read), (vte_terminal_init),
1440         (process_timeout), (update_repeat_timeout), (update_timeout):
1441             Tweak to read across chunk boundaries whilst still maintaining
1442             fairness between multiple terminals and refresh rate targets.
1443
1444 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
1445
1446         * src/ring.c (_vte_ring_insert_preserve):
1447             Use stack allocation to hold small numbers of temporary
1448             gpointers.
1449
1450 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
1451
1452         * src/vte-private.h:
1453         * src/vte.c (_vte_free_row_data), (vte_terminal_reset_rowdata),
1454         (vte_terminal_finalize), (vte_terminal_reset):
1455             Export _vte_row_data_free.
1456
1457         * src/vteseq.c (vte_remove_line_internal):
1458             Cache the removed VteRowData - fixes the continual reallocation
1459             of row data during the vim scrolling benchmark.
1460
1461 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
1462
1463         * src/vte.c (release_chunk), (prune_chunks),
1464         (remove_from_active_list), (process_timeout),
1465         (update_repeat_timeout):
1466             Delay pruning the chunks freelist until we finished processing
1467             all the incoming data. We were discarding the freelist far too
1468             early and reduced the efficacy of the cache.
1469
1470 2007-11-16  Chris Wilson  <chris@chris-wilson.co.uk>
1471
1472         * src/vterdb.h:
1473         * src/vterdb.c (_vte_rdb_get), (_vte_rdb_search), (_vte_rdb_quark),
1474         (_vte_rdb_get_rgba), (_vte_rdb_get_hintstyle), (_vte_rdb_release):
1475             Remove redundant queries and cache the XRequest on the root
1476             window (saves a few round-trips during terminal construction).
1477             Add a new function to free the cache.
1478
1479         * src/vtefc.c (_vte_fc_defaults_from_rdb):
1480             Release the cache after retrieving settings.
1481
1482 2007-11-15  Chris Wilson  <chris@chris-wilson.co.uk>
1483
1484         * src/vte.c (vte_terminal_focus_out):
1485             Similar for the leave notify, disable the match updating after
1486             hiding the cursor after the loss of focus.
1487             However, do we really want to disable the hilighting whilst the
1488             pointer may still be within the terminal?
1489
1490 2007-11-15  Chris Wilson  <chris@chris-wilson.co.uk>
1491
1492         * src/vte.c (vte_terminal_enter):
1493             Don't automatically reshow the hilight on receiving an enter
1494             event, but wait for the motion notify to update the cursor
1495             co-ordinates, otherwise we may hilight something quite distant
1496             from the cursor.
1497
1498 2007-11-15  Chris Wilson  <chris@chris-wilson.co.uk>
1499
1500         * src/vte.c (vte_terminal_leave):
1501             Mark the cursor as invisible on leaving the terminal as this
1502             stops the hilight matcher running whilst the cursor is absent.
1503
1504 2007-11-06  Behdad Esfahbod  <behdad@gnome.org>
1505
1506         * src/vte.c (vte_terminal_set_font_from_string_full): Allow NULL
1507         font argument.  Can be used to set antialias without setting font.
1508
1509         * src/vteapp.c (main): Fix antialias handling which was borked when
1510         moving to GOption.
1511
1512 2007-11-06  Behdad Esfahbod  <behdad@gnome.org>
1513
1514         Bug 142640 – FcConfigSubstitute in place of _vte_fc_defaults_from_gtk
1515         to get antialias and hinting value
1516
1517         * src/vtefc.c (_vte_fc_defaults_from_gtk),
1518         (_vte_fc_defaults_from_rdb): Replace _vte_fc_defaults_from_gtk() with
1519         gtk_default_substitute() from Gtk+-2.6.  It's essentially the same
1520         thing, but not overriding elements of the pattern already present.
1521         Also remove a couple redundant calls.
1522
1523 2007-10-11  Chris Wilson  <chris@chris-wilson.co.uk>
1524
1525         Bug 439384 – gnome-terminal on feisty crashes when giving wrong locale environment
1526
1527         * src/vte.c (vte_terminal_set_encoding):
1528             Fallback to using UTF-8 as the locale encoding. This prevents
1529             subsequent crashes but may display gibberish in the output.
1530
1531 2007-10-05  Chris Wilson  <chris@chris-wilson.co.uk>
1532
1533         Bug 483642 – vte_terminal_feed crash when 8190 characters passed
1534
1535         * src/vte.c (vte_terminal_feed):
1536             Break the feed data into chunks.
1537
1538 2007-09-30  Chris Wilson  <chris@chris-wilson.co.uk>
1539
1540         * src/vtexft.c (_vte_xft_set_background_image):
1541                 Skip retrieving the VteBg if the source is VTE_BG_SOURCE_NONE
1542                 as we neither need it to listen for changes to the background
1543                 nor require it to load the pixmap (which is a no-op).
1544
1545 2007-09-30  Chris Wilson  <chris@chris-wilson.co.uk>
1546
1547         * src/vtexft.c (_vte_xft_destroy):
1548                 Ensure the GdkPixmap is destroyed along with the VteXft
1549                 context.
1550
1551 2007-09-26  Chris Wilson  <chris@chris-wilson.co.uk>
1552
1553         Bug 480735 – Underlining whitespace not reliable
1554
1555         Original patch by Steven Skovran.
1556
1557         I really must remember to run vttest more often. (And to work within
1558         git-svn.)
1559
1560         * src/vte.c (vte_terminal_draw_rows):
1561             Do not skip spaces.
1562
1563 2007-09-26  Chris Wilson  <chris@chris-wilson.co.uk>
1564
1565         Bug 480735 – Underlining whitespace not reliable
1566
1567         Original one-liner by Steven Skovran.
1568
1569         * src/vte.c (vte_terminal_draw_rows):
1570             Do not try to over zealously skip whitespace. The goal is
1571             to maintain the current run whilst avoiding adding spaces to
1572             the glyph sequence - so check the cell fully for attribute
1573             breaks and simply do not add it to the glyphs if it contains a
1574             space.
1575
1576 2007-09-17  Behdad Esfahbod  <behdad@gnome.org>
1577
1578         Released vte-0.16.9.
1579
1580         * NEWS: Updated.
1581
1582         * configure.in: Bumped version to 0.16.9.
1583         Bumped libtool version to 11:13:2.
1584
1585 2007-09-05  Behdad Esfahbod  <behdad@gnome.org>
1586
1587         * perf/vim.sh: Wait for keypress when done, so one can do
1588         "vte -c ./vim.sh" and not lose the final numbers.
1589
1590         * src/vtepango.c (_vte_pango_destroy), (_vte_pango_start),
1591         (_vte_pango_end), (_vte_pango_set_background_color),
1592         (_vte_pango_set_background_image), (_vte_pango_clear),
1593         (_vte_pango_set_text_font), (_vte_pango_get_using_fontconfig),
1594         (_vte_pango_draw_text), (_vte_pango_draw_has_char),
1595         (_vte_pango_draw_rectangle), (_vte_pango_fill_rectangle),
1596         (_vte_pango_set_scroll):  General cleanup.  Also implement
1597         _vte_pango_draw_has_char() using
1598         pango_layout_get_unknown_glyphs_count() when available.
1599
1600 2007-09-02  Behdad Esfahbod  <behdad@gnome.org>
1601
1602         Bug 469862 – Handling of wrapped links in gnome-terminal is broken
1603
1604         * src/vteseq.c (vte_sequence_handler_ce): Reset soft_wrapped.
1605
1606 2007-09-01  Chris Wilson  <chris@chris-wilson.co.uk>
1607
1608         cf Bug 469862 – Handling of wrapped links in gnome-terminal is broken
1609
1610         * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
1611             Revert the last character is in last column check as that
1612             behaviour is required to handle terminal resizing where the
1613             screen contents are not reconstructed (e.g. bash).
1614
1615 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1616
1617         Bug 471901 – troubles with pad
1618
1619         * src/vte-private.h:
1620         * src/vte.c (_vte_invalidate_cells), (vte_terminal_draw_rows),
1621         (vte_terminal_paint): Don't abuse VTE_PAD_WIDTH.
1622
1623 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1624
1625         Bug 469862 – Handling of wrapped links in gnome-terminal is broken
1626
1627         * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
1628             Check that the last character is in the last column before
1629             adding a newline for autowrapped lines.
1630
1631 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1632
1633         * MAINTAINERS: Add myself to the list, as Behdad had suggested some
1634         time ago.
1635
1636 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1637
1638         Bug 153265 – Handle Sun Cut, Copy, Paste keys
1639         Patch by Brian Cameron.
1640
1641         * doc/reference/tmpl/vte.sgml:
1642         * src/vte.c (vte_terminal_class_init),
1643         (vte_terminal_real_copy_clipboard), (vte_terminal_copy_clipboard),
1644         (vte_terminal_real_paste_clipboard),
1645         (vte_terminal_paste_clipboard):
1646         * src/vte.h:
1647             Add key bindings for the special function keys.
1648
1649 2007-08-30  Chris Wilson  <chris@chris-wilson.co.uk>
1650
1651         * src/vte.c (vte_terminal_draw_rows): Bad manipulation of patches
1652         whilst attempting to apply the fix for Bug 434230 - net result was
1653         that the correct code was being circumvented.
1654
1655 2007-08-29  Chris Wilson  <chris@chris-wilson.co.uk>
1656
1657         Bug 471484 – vteapp resize weirdness
1658
1659         * src/vteapp.c (main): Distinguish between setting the geometry and
1660         disabling the use of geometry hints. A regression when converting to
1661         GOption based arguments.
1662
1663 2007-08-27  Behdad Esfahbod  <behdad@gnome.org>
1664
1665         Bug 470690 – Typo at src/vtexft.c "appropiate" should be "appropriate"
1666
1667         * src/vtexft.c (_vte_xft_open_font_for_char): Fix typo.
1668
1669 2007-08-07  Behdad Esfahbod  <behdad@gnome.org>
1670
1671         * MAINTAINERS: Add Userid field, remove Guilherme.
1672
1673 2007-08-03  Chris Wilson  <chris@chris-wilson.co.uk>
1674
1675         Bug 434230 – Spaces are not underlined
1676         Original patch by Santtu Lakkala.
1677
1678         * src/vte.c (vte_terminal_draw_rows): Only skip cells if we do not
1679         need to draw on top.
1680
1681 2007-08-03  Chris Wilson  <chris@chris-wilson.co.uk>
1682
1683         Bug 450069 – vte crash on removing a terminal tab
1684
1685         * src/vte.c (vte_terminal_emit_eof), (vte_terminal_queue_eof),
1686         (vte_terminal_eof): Move the EOF emission to an idle handler so that
1687         the source is inactive whilst the VteTerminal is finalized.
1688
1689 2007-07-30  Behdad Esfahbod  <behdad@gnome.org>
1690
1691         Released vte-0.16.8.
1692
1693         Quick followup release with no code changes, to fix missing
1694         documentation index in the tarball.
1695
1696         * NEWS: Updated.
1697
1698         * configure.in: Bumped version to 0.16.8.
1699         Bumped libtool version to 11:12:2.
1700
1701 2007-07-27  Behdad Esfahbod  <behdad@gnome.org>
1702
1703         Released vte-0.16.7.
1704
1705         * NEWS: Updated.
1706
1707         * configure.in: Bumped version to 0.16.7.
1708         Bumped libtool version to 11:11:2.
1709
1710 2007-07-27  Behdad Esfahbod  <behdad@gnome.org>
1711
1712         Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
1713         Patch by James Bowes
1714
1715         * src/keymap.c (_vte_keymap_map), (is_cursor_key),
1716         (_vte_keymap_key_add_key_modifiers):
1717         * src/keymap.h:
1718         * src/vte.c (vte_terminal_key_press):
1719         Only switch to CSI for some cursor keys when in cursor app mode.
1720
1721 2007-06-25  Chris Wilson  <chris@chris-wilson.co.uk>
1722
1723         Bug 448259 – Mapping for Ctrl-_
1724         Patch by Andrey Melnikov.
1725
1726         * src/keymap.c: Add mapping for Ctrl-Minus.
1727
1728 2007-06-25  Chris Wilson  <chris@chris-wilson.co.uk>
1729
1730         Bug 449809 – use python-config to get python includes
1731         Patch by Sebastien Bacher.
1732
1733         * acinclude.m4: prefer python-config where available.
1734
1735 2007-06-25  Chris Wilson  <chris@chris-wilson.co.uk>
1736
1737         Bug 450745 – VTE's response to CSI 2 1 t incorrectly formatted
1738         Patch by Dale Sedivec.
1739
1740         * src/vteseq.c (vte_sequence_handler_window_manipulation): Restore
1741         the missing 'L'.
1742
1743 2007-06-21  Christian Persch  <chpe@gnome.org>
1744
1745         * configure.in:
1746         * src/Makefile.am: Move libtool versioning to configure so you just
1747         have to update one file for releasing. See bug #396265 comment 17.
1748
1749 2007-06-18  Behdad Esfahbod  <behdad@gnome.org>
1750
1751         Released vte-0.16.6.
1752
1753         * NEWS: Updated.
1754
1755         * configure.in: Bumped version to 0.16.6.
1756
1757         * src/Makefile.am: Bumped libtool version to 11:10:2.
1758
1759 2007-06-12  Chris Wilson  <chris@chris-wilson.co.uk>
1760
1761         * src/vte.c (vte_terminal_set_size): Call gtk_widget_queue_resize()
1762         after updating row/column count.
1763
1764 2007-06-11  Behdad Esfahbod  <behdad@gnome.org>
1765
1766         Bug 372743 – vte_terminal_set_colors doesn't work as advertised
1767
1768         * src/vte.c (vte_terminal_set_colors): Allow 24-color palettes.
1769
1770 2007-06-09  Behdad Esfahbod  <behdad@gnome.org>
1771
1772         Bug 445620 – Some characters shows different in different locales.
1773         Patch from Zealot
1774
1775         * src/iso2022.c (_vte_iso2022_state_set_codeset): Update ambiguous
1776         width.
1777
1778 2007-06-04  Behdad Esfahbod  <behdad@gnome.org>
1779
1780         Released vte-0.16.5.
1781
1782         * NEWS: Updated.
1783
1784         * configure.in: Bumped version to 0.16.5.
1785
1786         * src/Makefile.am: Bumped libtool version to 11:9:2.
1787
1788 2007-05-30  Chris Wilson  <chris@chris-wilson.co.uk>
1789
1790         fcrozat pointed out 'some strange "underline" line where cursor is
1791         located and blinking'.
1792
1793         Also reported in bug 442688.
1794
1795         * src/vte.c (vte_terminal_draw_rows):
1796             Continuation of the previous commit: catch a couple more locations
1797             where we need to skip past the end of the line. The problem in
1798             this case was we tried to use some uninitialised variables whilst
1799             trying to draw the cell attributes.
1800
1801 2007-05-28  Behdad Esfahbod  <behdad@gnome.org>
1802
1803         Released vte-0.16.4.
1804
1805         * NEWS: Updated.
1806
1807         * configure.in: Bumped version to 0.16.4.
1808
1809         * src/Makefile.am: Bumped libtool version to 11:8:2.
1810
1811 2007-05-28  Chris Wilson  <chris@chris-wilson.co.uk>
1812
1813         uws noted on IRC that 'vte trunk does strange thingies with colors'
1814
1815         * src/vte.c (vte_terminal_draw_rows):
1816             When reaching the end-of-row be careful not to reset the
1817             current text attributes (color, underlining, etc).
1818
1819 2007-05-25  Chris Wilson  <chris@chris-wilson.co.uk>
1820
1821         * src/vte.c (vte_terminal_expand_region),
1822         (vte_terminal_paint_area):
1823             Only add the borders to the clear area.
1824
1825 2007-05-23  Chris Wilson  <chris@chris-wilson.co.uk>
1826
1827         Bug 429278 – Cursor drawn strangely in joe
1828
1829         * src/vte.c (vte_terminal_expand_region),
1830         (vte_terminal_paint_area):
1831             Ensure the expanded regions are cell aligned.
1832
1833 2007-05-23  Chris Wilson  <chris@chris-wilson.co.uk>
1834
1835         cf Bug 439247 – scrolling vim in full screen is painfully slow and takes up 100% of the cpu
1836
1837         * src/vte.c (vte_terminal_draw_rows):
1838             Fix up the unwanted break of Glyph runs at the end-of-lines.
1839
1840 2007-05-23  Chris Wilson  <chris@chris-wilson.co.uk>
1841
1842         Bug 440475 – Display glitch with transparent backgroud
1843
1844         * src/vte.c (vte_terminal_paint_area):
1845             Apply the band-aid fix to clear the area that's about to be
1846             repainted. The full solution will to be ensure that the regions
1847             after expansion are cell-aligned.
1848
1849 2007-05-22  Chris Wilson  <chris@chris-wilson.co.uk>
1850
1851         Bug 375112 – ctrl-key combinations yielding just key
1852         Original patch by <samo@altern.org> and refactored by Loïc Minier.
1853
1854         * src/vte.c (vte_translate_national_ctrlkeys),
1855         (vte_terminal_key_press):
1856             When cooking a string to pass through to the client obtain the
1857             "raw" keyval.
1858
1859 2007-05-22  Chris Wilson  <chris@chris-wilson.co.uk>
1860
1861         Bug 440377 – gnome-terminal cannot refresh terminal when accessibility enabled
1862         Original patch by Li Yuan.
1863
1864         * src/vteaccess.c (vte_terminal_accessible_focus_in),
1865         (vte_terminal_accessible_focus_out),
1866         (vte_terminal_accessible_visibility_notify):
1867             Return FALSE rather than void...
1868
1869 2007-05-17  Chris Wilson  <chris@chris-wilson.co.uk>
1870
1871         * perf/scroll.vim:
1872         * perf/vim.sh:
1873             Measure full screen scrolling performance.
1874
1875 2007-05-15  Chris Wilson  <chris@chris-wilson.co.uk>
1876
1877         kmaraas reported an issue on IRC where the scrollback was not being
1878         updated correctly in the first tab when the terminal was resized via
1879         a second tab.
1880
1881         * src/vte.c (vte_terminal_size_allocate): Check whether we need to
1882         recompute the visible lines due to a change in layout geometry.
1883
1884 2007-04-27  Chris Wilson  <chris@chris-wilson.co.uk>
1885
1886         Bug 433776 – gnome-terminal crashes when open preedit area
1887         Take 2.
1888
1889         * src/vte.c (vte_terminal_paint): The preedit_cursor is returned by
1890         the input modules in characters not in bytes as assumed by the
1891         validation.
1892
1893 2007-04-27  Chris Wilson  <chris@chris-wilson.co.uk>
1894
1895         Bug 433776 – gnome-terminal crashes when open preedit area
1896
1897         * src/vte.c (vte_terminal_paint): Use the validated cursor index.
1898
1899 2007-04-27  Behdad Esfahbod  <behdad@gnome.org>
1900
1901         Released vte-0.16.3.
1902
1903         * NEWS: Updated.
1904
1905         * configure.in: Bumped version to 0.16.3.
1906
1907         * src/Makefile.am: Bumped libtool version to 11:7:2.
1908
1909 2007-04-24  Chris Wilson  <chris@chris-wilson.co.uk>
1910
1911         Bug 429189 – Vte-WARNING's
1912
1913         * src/vtexft.c (_vte_xft_open_font_for_char):
1914                 Convert the warning into a DEBUG.
1915
1916 2007-04-24  Chris Wilson  <chris@chris-wilson.co.uk>
1917
1918         Bug 415044 – Use --enable-debug rather than --enable-debugging
1919
1920         As noted on Bug 414716, the convention is to use --enable-debug
1921         to enable extra debugging code.
1922
1923         * configure.in:
1924                 s/debugging/debug/
1925
1926 2007-04-24  Chris Wilson  <chris@chris-wilson.co.uk>
1927
1928         Bug 414716 – Refresh issue after changing workspaces
1929
1930         * src/vte.c (vte_terminal_hierarchy_changed):
1931                 Do not respond to toplevel mapping events.
1932
1933 2007-04-23  Behdad Esfahbod  <behdad@gnome.org>
1934
1935         Released vte-0.16.2.
1936
1937         * NEWS: Updated.
1938
1939         * configure.in: Bumped version to 0.16.2.
1940
1941         * src/Makefile.am: Bumped libtool version to 11:6:2.
1942
1943 2007-04-23  Chris Wilson <chris@chris-wilson.co.uk>
1944
1945         Bug 431799 – Regex highlighting is broken
1946
1947         * src/vte.c (vte_terminal_emit_contents_changed),
1948         (vte_terminal_match_hilite_update), (process_timeout),
1949         (update_repeat_timeout), (update_timeout):
1950                 Always emit any pending updates before redrawing. This
1951                 ensures for example that the match contents are updated
1952                 after a simple scroll event.
1953
1954 2007-04-20  Chris Wilson  <chris@chris-wilson.co.uk>
1955
1956         * src/vtexft.c (_vte_xft_start), (_vte_xft_clip):
1957                 Optimise away the use of a clip mask for the common case
1958                 of redrawing the whole terminal.
1959
1960 2007-04-17  Behdad Esfahbod  <behdad@gnome.org>
1961
1962         * src/iso2022.c (_vte_iso2022_ambiguous_width): Consider
1963         ambiguous-width chars if VTE_CJK_WIDTH env var is set and we are
1964         under a CJK locale.
1965
1966 2007-03-12  Behdad Esfahbod  <behdad@gnome.org>
1967
1968         Released vte-0.16.1.
1969
1970         * NEWS: Updated.
1971
1972         * configure.in: Bumped version to 0.16.1.
1973
1974         * src/Makefile.am: Bumped libtool version to 11:5:2.
1975
1976 2007-04-06  Chris Wilson  <chris@chris-wilson.co.uk>
1977
1978         Bug 426870 – vte often passes NUL to functions requiring valid unichar
1979
1980         * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
1981         (vte_terminal_paint):
1982                 Consistently guard against cell->c == '\0' before calling
1983                 _vte_draw_get_char_width.
1984
1985 2007-04-06  Chris Wilson  <chris@chris-wilson.co.uk>
1986
1987         Bug 419644 – Links do not get highlighted anymore
1988         Also see Bug 404757 – URL matching doesn't work with PCRE
1989
1990         * configure.in:
1991                 Kill --with-pcre as it changes the semantics of the API
1992                 and only causes confusion.
1993
1994 2007-04-05  Chris Wilson  <chris@chris-wilson.co.uk>
1995
1996         Bug 426541 – crash on IRM escape code
1997
1998         * src/vte.c (vte_terminal_ensure_cursor),
1999         (_vte_terminal_insert_char):
2000                 Mishandled insertion - we always extended the row for
2001                 inserts even though the row would automagically extend
2002                 for the inserted cells. This lead to referencing
2003                 uninitialised cells at the end of the row during painting.
2004         * src/vte.c (vte_terminal_draw_rows):
2005                 Retrieve the cell before inspecting it.
2006
2007 2007-04-04  Chris Wilson  <chris@chris-wilson.co.uk>
2008
2009         Bug 424184 – Make scroll wheel send Page Up/Down when it makes sense
2010
2011         Original patch by Shaun McCance and refined by Baris Cicek.
2012
2013         * src/vte.c (vte_terminal_scroll):
2014                 Send cursor keypress instead of trying to scroll the
2015                 alternate screen in vain.
2016
2017 2007-04-03  Chris Wilson  <chris@chris-wilson.co.uk>
2018
2019         Bug 425767 – vte_terminal_set_color_highlight should test for
2020         NULL before _vte_debug_print
2021
2022         * src/vte.c (vte_terminal_set_color_cursor),
2023         (vte_terminal_set_color_highlight):
2024                 Differentiate between set/unset paths.
2025
2026 2007-03-25  Chris Wilson <chris@chris-wilson.co.uk>
2027
2028         Bug 422385 – vte appears at the top of the root window even when
2029         packed at the bottom of it
2030
2031         Patch by Dodji Seketeli.
2032
2033         * src/vte.c (vte_terminal_size_allocate), (vte_terminal_realize):
2034                 Honour the allocated position when realizing the widget.
2035
2036 2007-03-22  Chris Wilson  <chris@chris-wilson.co.uk>
2037
2038         * src/vtexft.c (_vte_xft_draw_text):
2039                 Insert spaces into the Xft glyph stream to avoid the
2040                 overhead of restarting a glyph sequence for every word.
2041
2042 2007-03-21  Chris Wilson  <chris@chris-wilson.co.uk>
2043
2044         Bug 420935 – glyph can be cropped with not fitting in a cell
2045
2046         * src/vte.c (vte_terminal_paint):
2047                 Don't redraw the invisible cursor 
2048                 - avoids nasty artifacts like clipping extra wide glyphs.
2049
2050 2007-03-19  Chris Wilson  <chris@chris-wilson.co.uk>
2051
2052         * src/vte.c (vte_terminal_scroll_pages):
2053                 Leave 'contents-change' to the scroll handler.
2054
2055 2007-03-19  Chris Wilson  <chris@chris-wilson.co.uk>
2056
2057         * src/vte.c (vte_terminal_extend_selection),
2058         (vte_terminal_draw_rows):
2059                 Accidentally inverted an is-empty? check during the 
2060                 elimination of the empty bitfield.
2061
2062 2007-03-19  Chris Wilson  <chris@chris-wilson.co.uk>
2063
2064         Bug 420067 – Does not handle expose events whilst processing
2065         unseen incoming data
2066
2067         * src/vte.c (vte_terminal_expose):
2068                 Handle the expose immediately if we are only processing
2069                 incoming data (ie no redraws pending).
2070
2071 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2072
2073         * src/vteseq.c (vte_sequence_handler_cursor_character_absolute):
2074                 Remove a chunk of code that was tried as a mutt band-aid
2075                 long ago and was completely wrong.
2076
2077 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2078
2079         Bug 415381 – Improve performance of vte_terminal_insert_char()
2080
2081         The bulk of the work to remove redundant reads and conditionals
2082         from the code. In particular, gcc was emitting bit-by-bit copies
2083         for transferring the bitfield since we modified a member immediately
2084         afterwards - overcome this by using an explicit memcpy of the
2085         bitfields.
2086
2087         * src/vte-private.h:
2088         * src/vte.c (vte_g_array_fill), (vte_terminal_ensure_cursor),
2089         (_vte_terminal_insert_char), (vte_terminal_process_incoming),
2090         (vte_terminal_send):
2091         * src/vteseq.c (vte_sequence_handler_ic):
2092
2093 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2094
2095         cf Bug 415381 – Improve performance of vte_terminal_insert_char()
2096
2097         * src/vte-private.h: Use a simple boolean rather than counter for
2098         text changed style flags.
2099         * src/vte.c: And update users.
2100         * src/vteseq.c:
2101
2102 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2103
2104         cf Bug 415381 – Improve performance of vte_terminal_insert_char()
2105
2106         * src/vte-private.h: Embed bitfield into struct
2107         * src/vte.c:  And update users.
2108         * src/vteseq.c:
2109
2110 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2111
2112         Need to trigger update timeout rather than process timeout
2113         otherwise the background is not updated.
2114
2115         * src/vte.c (vte_terminal_queue_adjustment_changed),
2116         (vte_terminal_queue_adjustment_value_changed):
2117
2118 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2119
2120         * src/vtexft.c (_vte_xft_create), (_vte_xft_destroy),
2121         (_vte_xft_start), (_vte_xft_end), (_vte_xft_clip),
2122         (_vte_xft_clear): Avoid some allocations.
2123
2124 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2125
2126         Bug 418073 – Opacity ignored for vtexft
2127
2128         * src/vte.c:
2129         * src/vtedraw.c (_vte_draw_requires_clear):
2130         * src/vtedraw.h:
2131         * src/vteft2.c (_vte_ft2_set_background_image):
2132         * src/vtegl.c (_vte_gl_create), (_vte_gl_set_background_image):
2133         * src/vtepango.c (_vte_pango_set_background_image):
2134         * src/vtepangox.c (_vte_pango_x_set_background_image):
2135         * src/vtexft.c (_vte_xft_set_background_color),
2136         (_vte_xft_set_background_image):
2137                 Flood fill the backing pixmap if we need to change it's
2138                 opacity as well.
2139
2140 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2141
2142         Bug 418910 – Asymmetric scrolling with mouse wheel
2143
2144         * configure.in:
2145         * src/vte.c: Round-up the delta before applying to ensure consistency
2146         between up and down.
2147
2148 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2149
2150         * src/vte.c (vte_terminal_catch_child_exited), (vte_terminal_eof),
2151         (vte_terminal_process_incoming): Refactor some common code.
2152
2153 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2154
2155         Bug 416634 – Rendering glitch as autowrapped chars are outside invalidated bbox
2156
2157         * src/vte.c (_vte_terminal_insert_char),
2158         (vte_terminal_process_incoming): Correctly update bbox after
2159         autowrapping.
2160
2161 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2162
2163         Bug 416635 – Rendering glitch: double draw of line below exposed region
2164
2165         * src/vte.c (vte_terminal_expand_region),
2166         (vte_terminal_paint_area): Kill a couple of off-by-ones.
2167
2168 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2169
2170         Bug 418588 – Invalid read when drawing preedit cursor
2171
2172         * src/vte.c (vte_terminal_paint):
2173                 No need to read what is drawn and furthermore isn't allocated.
2174
2175 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2176
2177         Bug 417652 – Scrolling bug exposed by nvi
2178
2179         * src/vte.c (vte_terminal_insert_rows), (_vte_terminal_ensure_row),
2180         (vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta):
2181                 Ensure the rows before updating the insert delta and refactor
2182                 the common code.
2183
2184 2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
2185
2186         Bug 417301 – Terminal widgets don't respond to DPI changes
2187
2188         * src/vte.c (vte_terminal_fc_settings_changed): Force a font reload
2189         after XFT settings have changed.
2190
2191 2007-03-12  Behdad Esfahbod  <behdad@gnome.org>
2192
2193         Released vte-0.16.0.
2194
2195         * NEWS: Updated.
2196
2197         * configure.in: Bumped version to 0.16.0.
2198
2199         * src/Makefile.am: Bumped libtool version to 11:4:2.
2200
2201 2007-03-06  Chris Wilson  <chris@chris-wilson.co.uk>
2202
2203         * src/vteseq.c (vte_sequence_handler_cm), (vte_sequence_handler_sf):
2204                 More work to match mutt's behaviour under xterm.
2205
2206 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2207
2208         * src/vte.c (vte_terminal_io_read):
2209                 Use the process estimate to load balance between multiple
2210                 active terminals.
2211
2212 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2213
2214         * src/vteseq.c (vte_sequence_handler_cm),
2215         (vte_sequence_handler_dc), (vte_sequence_handler_sf),
2216         (vte_sequence_handler_cursor_character_absolute):
2217                 Tweak the fill of painted cells to match mutt's behaviour
2218                 under xterm.
2219
2220 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2221
2222         Bug 414716 – gnome-terminal-2.17.92: terminal window dies...
2223
2224         * src/vte.c (vte_terminal_map_toplevel),
2225         (vte_terminal_hierarchy_changed):
2226                 Force the visibility state to unobscured after the toplevel is
2227                 remapped.
2228
2229 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2230
2231         * src/vte.c (vte_terminal_size_allocate):
2232                 Note to self: Never try to optimize away the redraw.
2233
2234 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2235
2236         * src/vte.c (_vte_terminal_insert_char):
2237         * src/vtedraw.c (_vte_draw_text), (_vte_draw_char),
2238         (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle):
2239                 Touch up whitespace in debug output.
2240
2241 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2242
2243         * src/vte.c (_vte_invalidate_cells), (vte_terminal_set_visibility),
2244         (vte_terminal_paint_area), (vte_terminal_expose):
2245                 Make sure the invalidated_all flag is cleared in the expose
2246                 event if we handle it immediately.
2247
2248 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2249
2250         * src/vteseq.c (vte_sequence_handler_ce),
2251         (vte_sequence_handler_clear_current_line):
2252                 Fixup invalidation to end-of-line.
2253
2254 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2255
2256         cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
2257
2258         * src/vte.c (vte_terminal_draw_rows), (vte_terminal_expand_region):
2259                 Include the window padding when painting the cell backgrounds.
2260
2261 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2262
2263         Bug 414586 – Terminal screen blinks when menu is opened for the first time
2264
2265         Avoid resetting the window background colour when the style is reset.
2266         Avoid clearing the window if we are using a simple color and double
2267         bufferring (i.e when we know we are using a pre-cleared pixmap).
2268
2269         * src/vte-private.h:
2270         * src/vte.c (vte_terminal_init), (vte_terminal_size_allocate),
2271         (vte_terminal_unrealize), (vte_terminal_realize),
2272         (vte_terminal_paint_area), (vte_terminal_expose),
2273         (vte_terminal_class_init), (vte_terminal_background_update):
2274         * src/vtedraw.c (_vte_draw_has_background_image):
2275         * src/vtedraw.h:
2276         * src/vteft2.c (_vte_ft2_set_background_image):
2277         * src/vtegl.c (_vte_gl_set_background_image):
2278         * src/vtepango.c (_vte_pango_set_background_image):
2279         * src/vtepangox.c (_vte_pango_x_set_background_image):
2280         * src/vtexft.c (_vte_xft_set_background_image):
2281
2282 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2283
2284         Bug 414586 – Terminal screen blinks when menu is opened for the first time
2285
2286         * src/vte.c (_vte_invalidate_cells), (_vte_invalidate_all),
2287         (vte_terminal_expose), (add_update_timeout):
2288                 Juggle the handling of external exposes/invalidates to avoid
2289                 delays in refreshing the display when we are idle.
2290
2291 2007-03-05  Chris Wilson  <chris@chris-wilson.co.uk>
2292
2293         cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
2294
2295         * src/vte.c (_vte_invalidate_cells), (vte_terminal_init),
2296         (vte_terminal_expand_region), (vte_terminal_paint_area):
2297                 After enlarging the expand region make sure the dirty area
2298                 includes the border for edge cells.
2299
2300 2007-03-04  Chris Wilson  <chris@chris-wilson.co.uk>
2301
2302         cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
2303
2304         Distinguish between internal update requests and external. If we
2305         need to update due to a user action (such as adjusting the background
2306         or color palette) do not impose a futher delay.
2307
2308         Tidy the color palette modification code to not trigger invalidates if
2309         we do not actually modify the palette.
2310
2311         * src/vte-private.h:
2312         * src/vte.c (vte_terminal_set_color_internal),
2313         (vte_terminal_set_color_bold), (vte_terminal_set_color_dim),
2314         (vte_terminal_set_color_foreground),
2315         (vte_terminal_set_color_background),
2316         (vte_terminal_set_color_cursor),
2317         (vte_terminal_set_color_highlight), (vte_terminal_set_colors),
2318         (root_pixmap_changed_cb), (vte_terminal_set_background_saturation),
2319         (vte_terminal_set_background_tint_color), (add_update_timeout):
2320         * src/vteseq.c (vte_sequence_handler_ce),
2321         (vte_sequence_handler_clear_current_line),
2322         (vte_sequence_handler_clear_above_current):
2323
2324 2007-03-02  Chris Wilson  <chris@chris-wilson.co.uk>
2325
2326         Bug 413068 – new line added to tab when opened
2327
2328         * src/vte.c (vte_terminal_size_allocate):
2329                 Replace the ill-conceived attempt (delta could not be
2330                 negative, so insert_delta or scroll_delta would not become
2331                 negative either) by only considering changes wrt to the number
2332                 of visible lines.
2333
2334 2007-03-02  Chris Wilson  <chris@chris-wilson.co.uk>
2335
2336         Bug 413068 – new line added to tab when opened
2337
2338         * src/vte.c (_vte_terminal_insert_char):
2339                 Improve debug output.
2340         * src/vte.c (vte_terminal_size_allocate):
2341                 Be careful that we don't force insert_delta or scroll_delta
2342                 to become negative.
2343
2344 2007-03-01  Behdad Esfahbod  <behdad@gnome.org>
2345
2346         Released vte-0.15.6.
2347
2348         * NEWS: Updated.
2349
2350         * configure.in: Bumped version to 0.15.6.
2351
2352         * src/Makefile.am: Bumped libtool version to 11:3:2.
2353
2354 2007-03-01  Chris Wilson  <chris@chris-wilson.co.uk>
2355
2356         * src/vte.c (vte_terminal_draw_cells), (vte_terminal_draw_rows),
2357         (vte_terminal_paint):
2358                 Tweak the clear widths to include the pixel widening due to
2359                 psuedo-bold.
2360
2361 2007-03-01  Chris Wilson  <chris@chris-wilson.co.uk>
2362
2363         * src/vte-private.h:
2364         * src/vte.c (_vte_terminal_ensure_row),
2365         (vte_terminal_ensure_cursor), (_vte_terminal_insert_char):
2366         * src/vteseq.c (vte_sequence_handler_ta):
2367                 Be more careful when filling in gaps.
2368
2369 2007-03-01  Chris Wilson  <chris@chris-wilson.co.uk>
2370
2371         Fix X11 headers / libraries detection on bi-arch systems.
2372         Patch by Frederic Crozat.
2373
2374         * configure.in:
2375                 Check for x_includes before ac_x_includes, and similary for
2376                 ac_x_libraries.
2377
2378 2007-03-01  Chris Wilson  <chris@chris-wilson.co.uk>
2379
2380         Bug 410534 – Slow content scrolling, takes 100% of CPU.
2381
2382         * src/vtexft.c:
2383                 Further reduce the cap to 80 after more testing on the
2384                 broken fglrx driver.
2385
2386 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2387
2388         Bug 413068 – new line added to tab when opened
2389
2390         * src/vte.c (vte_terminal_ensure_font), (vte_terminal_realize):
2391                 Beware when no font is set before the first request...
2392                 Make sure that at least the default font is set.
2393
2394 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2395
2396         Bug 413262 – Incorrectly coloured tabs
2397
2398         * src/vte-private.h:
2399         * src/vte.c (vte_terminal_ensure_cursor),
2400         (_vte_terminal_ensure_cursor), (_vte_terminal_insert_char),
2401         (_vte_terminal_feed_chunks), (vte_terminal_set_scrollback_lines):
2402         * src/vteseq.c (vte_sequence_handler_ta),
2403         (vte_sequence_handler_request_terminal_parameters),
2404         (vte_sequence_handler_return_terminal_status),
2405         (vte_sequence_handler_send_primary_device_attributes):
2406                 Fill the tab in the current color, else it will be filled at
2407                 the time of writing the next character.
2408
2409 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2410
2411         Bug 413102 – Incorrect highlighting in vim
2412
2413         * src/vte-private.h:
2414         * src/vte.c (_vte_terminal_ensure_row),
2415         (_vte_terminal_insert_char):
2416         * src/vteseq.c(vte_sequence_handler_cb),
2417         (vte_sequence_handler_ce), (vte_sequence_handler_cr),
2418         (vte_sequence_handler_ec), (vte_sequence_handler_sf):
2419                 Paint the row background when scrolling, this more closely
2420                 matches xterm's behaviour.
2421
2422 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2423
2424         Bug 413158 – Cursor trails
2425
2426         * src/vte.c (_vte_invalidate_cell):
2427                 _vte_invalidate_cell() can be called to invalidate any visible
2428                 cell so issue the invalidate even for blank cells.
2429
2430 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2431
2432         * src/vte.c (_vte_terminal_insert_char):
2433                 Correct the OBO in the number of columns ensured.
2434
2435 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2436
2437         Bug 413078 – Crash during opening a new tab whilst scrolling
2438         
2439         During input processing it was possible to both remove the timeout and
2440         then add a new one. The currently running timeout would believe that
2441         it was to continue since the terminal was still active, and so *two*
2442         timeouts would be scheduled. Occasionally the second timeout would be
2443         called after the first had finished all the work, resulting in the
2444         second timeout trying to access a NULL active_terminal list.
2445
2446         * src/vte.c (add_update_timeout), (remove_from_active_list),
2447         (vte_terminal_add_process_timeout), (need_processing),
2448         (process_timeout), (update_repeat_timeout), (update_timeout):
2449                 Watch for recursive g_source_remove() from within timeouts.
2450
2451 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2452
2453         Bug 410534 – Slow content scrolling, takes 100% of CPU.
2454
2455         Submitting long glyph runs was causing a dramatic (10x) slow down
2456         in the fglrx xserver.
2457
2458         * src/vtedraw.h:
2459         * src/vtexft.c(_vte_xft_draw_text):
2460                 Cap the max glyph run length to 300.
2461
2462 2007-02-28  Chris Wilson  <chris@chris-wilson.co.uk>
2463
2464         Bug 412717 – Crash when opening a new tab with window maximized
2465
2466         * src/vte.c (vte_terminal_size_allocate):
2467                 We didn't carefully check the values we were clamping the
2468                 cursor to and ended up setting it to -1...  Don't do that!
2469
2470 2007-02-27  Chris Wilson  <chris@chris-wilson.co.uk>
2471
2472         * src/vteaccess.c (vte_terminal_accessible_text_scrolled):
2473                 Consistently guard against the snapshot being NULL.
2474
2475 2007-02-27  Behdad Esfahbod  <behdad@gnome.org>
2476
2477         Released vte-0.15.5.
2478
2479         * NEWS: Updated.
2480
2481         * configure.in: Bumped version to 0.15.5.
2482
2483         * src/Makefile.am: Bumped libtool version to 11:2:2.
2484
2485 2007-02-27  Chris Wilson  <chris@chris-wilson.co.uk>
2486
2487         Bug 412562 – Crash in vte_terminal_match_hilite_update
2488
2489         * src/vte.c (vte_terminal_match_check_internal),
2490         (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
2491         (vte_terminal_paste_cb), (vte_terminal_match_hilite_update),
2492         (vte_terminal_copy_cb):
2493                 Fixup a few 64bit-isms, notably format strings and an
2494                 undesired unsigned integer promotion causing this crash.
2495
2496 2007-02-27  Chris Wilson  <chris@chris-wilson.co.uk>
2497
2498         Bug 410986 – Fails to build with -z defs
2499
2500         If you link the vtemodule.so to libpython, then programs importing
2501         vte will have the symbols twice in memory: one set from python and
2502         the other from libpython.
2503
2504         * configure.in:
2505         * python/Makefile.am:
2506                 Remove PYTHON_LIBS from linking vtemodule.so.
2507                 Convert unresolved symbol errors into warnings so that
2508                 building with -Wl,-z,defs continues to work. This is a 
2509                 *hack* as it hides real errors if you are updating
2510                 vte.{def,override}.
2511                 
2512 2007-02-27  Chris Wilson  <chris@chris-wilson.co.uk>
2513
2514         * src/vtexft.c  (_vte_xft_open_font_for_char),
2515         (_vte_xft_font_for_char), (_vte_xft_compute_char_width),
2516         (_vte_xft_char_width), (_vte_xft_start), (_vte_xft_get_char_width),
2517         (_vte_xft_draw_text):
2518                 Avoid some computations whilst drawing text.
2519
2520 2007-02-26  Behdad Esfahbod  <behdad@gnome.org>
2521
2522         Released vte-0.15.4.
2523
2524         * NEWS: Updated.
2525
2526         * configure.in: Bumped version to 0.15.4.
2527
2528         * src/Makefile.am: Bumped libtool version to 11:1:2.
2529
2530 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2531
2532         Bug 410986 – Fails to build with -z defs
2533
2534         The forgotten half - the python module also fails to link.
2535
2536         * acinclude.m4:
2537         * python/Makefile.am:
2538                 Add PYTHON_LIBS pointing to the customary location and
2539                 remember to include them when compiling vtemodule.so.
2540
2541 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2542
2543         Bug 412361 – Yet another mouse selection regression...
2544         Part 2.
2545
2546         * src/vte.c: (vte_terminal_queue_adjustment_value_changed),
2547         (_vte_terminal_adjust_adjustments_full),
2548         (vte_terminal_scroll_pages), (vte_terminal_autoscroll),
2549         (vte_terminal_size_allocate), (vte_terminal_scroll):
2550                 We implicitly used a bit of sanity checking when setting the
2551                 adjustment value. Ensure the value really is within the
2552                 adjustment range before updating scroll_delta.
2553
2554 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2555
2556         Bug 412361 – Yet another mouse selection regression...
2557         Part 1.
2558
2559         * src/vte.c: (vte_terminal_draw_rows):
2560                 Restore drawing of the selection below the text.
2561
2562 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2563
2564         * src/vte.c: (vte_terminal_class_init), (time_process_incoming),
2565         (process_timeout), (update_repeat_timeout), (update_timeout):
2566                 Update max number of processable bytes each time we call
2567                 vte_terminal_process_incoming().
2568
2569 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2570
2571         * src/vte.c: (vte_terminal_emit_adjustment_changed),
2572         (_vte_terminal_adjust_adjustments_full):
2573                 Refactor the common code.
2574
2575 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2576
2577         Push a couple of NULL checks to the callers so to be able to move them
2578         outside of the inner-most loops.
2579
2580         * src/vte.c: (_vte_row_data_find_charcell), (_vte_invalidate_cell),
2581         (_vte_terminal_adjust_adjustments),
2582         (vte_terminal_get_text_range_maybe_wrapped), (find_start_column),
2583         (find_end_column), (vte_terminal_draw_rows):
2584
2585 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2586
2587         Some applications, such as cat, dump as much data to the terminal as
2588         possible. In these scenarios it is likely that we will read data from
2589         the child much faster than we can process it and the refresh will
2590         stutter.
2591
2592         The ideal solution would be to speed up the data processing so that
2593         this overrun was impossible. However, the approach taken here is to
2594         estimate how much data we can actually process in our time slice and
2595         to stop reading once we have sufficient data.
2596
2597         * src/vte-private.h:
2598         * src/vte.c: (_vte_invalidate_all),
2599         (vte_terminal_emit_contents_changed),
2600         (vte_terminal_match_contents_clear),
2601         (vte_terminal_match_contents_refresh),
2602         (vte_terminal_emit_adjustment_changed),
2603         (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
2604         (vte_terminal_catch_child_exited), (vte_terminal_eof),
2605         (vte_terminal_process_incoming), (vte_terminal_io_read),
2606         (vte_terminal_handle_scroll), (vte_terminal_init),
2607         (vte_terminal_size_allocate), (need_processing), (process_timeout),
2608         (update_repeat_timeout), (update_timeout):
2609         * src/vteseq.c: (vte_sequence_handler_decset_internal):
2610
2611 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2612
2613         Bug 411000 – Orca repeats old text in gnome-terminal
2614
2615         The deferred handling of the window scrolling had the unfortunate
2616         side-effect of postponing the accessibility 'text-scrolled' signal
2617         until after the 'text-inserted' signal. This caused vteaccess to
2618         determine that the whole window had been modified and cause orca to
2619         reread the entire screen.
2620
2621         * src/vte-private.h:
2622         * src/vte.c: (vte_terminal_emit_contents_changed),
2623         (_vte_terminal_queue_contents_changed),
2624         (vte_terminal_emit_cursor_moved),
2625         (vte_terminal_queue_cursor_moved), (vte_terminal_scroll_pages),
2626         (vte_terminal_eof), (vte_terminal_emit_pending_text_signals),
2627         (vte_terminal_process_incoming), (vte_terminal_handle_scroll),
2628         (vte_terminal_size_allocate), (vte_terminal_unrealize),
2629         (vte_terminal_emit_pending_signals):
2630         * src/vteaccess.c: (emit_text_caret_moved),
2631         (emit_text_changed_insert), (emit_text_changed_delete):
2632         * src/vteseq.c: (vte_sequence_handler_decset_internal):
2633                 Restore the order of the ally signals. However, Bug 372777
2634                 remains unresolved.
2635
2636 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2637
2638         * src/vte.c: (vte_terminal_io_read):
2639                 Eeek, correctly compute the buffer length when we no longer
2640                 aim to fill it.
2641
2642 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2643
2644         Use a separate debug flag for the ally interface.
2645
2646         * src/debug.c: (_vte_debug_parse_string):
2647         * src/debug.h:
2648         * src/vteaccess.c:
2649         (vte_terminal_accessible_update_private_data_if_needed),
2650         (vte_terminal_accessible_invalidate_cursor),
2651         (vte_terminal_accessible_finalize),
2652         (vte_terminal_accessible_get_text),
2653         (vte_terminal_accessible_get_text_somewhere),
2654         (vte_terminal_accessible_text_init),
2655         (vte_terminal_accessible_component_init),
2656         (vte_terminal_accessible_action_init),
2657         (vte_terminal_accessible_factory_new):
2658
2659 2007-02-26  Chris Wilson  <chris@chris-wilson.co.uk>
2660
2661         * src/vte-private.h:
2662         * src/vte.c: (vte_terminal_io_read):
2663                 And finally clamp the maximum number of bytes transferred in
2664                 a single chunk.
2665
2666 2007-02-24  Chris Wilson  <chris@chris-wilson.co.uk>
2667
2668         * src/vte.c:
2669                 Hint that the compiler should inline
2670                 vte_terminal_determine_colors().
2671
2672 2007-02-24  Chris Wilson  <chris@chris-wilson.co.uk>
2673
2674         cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
2675         cf Bug 410463 – Poor interactive performance with multiple terminals
2676
2677         * src/vte.c: (vte_terminal_io_read):
2678                 Do not loop whilst reading in a backlog of child data - should
2679                 help prevent monopolisation of vte by a single child and make
2680                 vte more responsive to user input on slower computers.
2681
2682 2007-02-24  Chris Wilson  <chris@chris-wilson.co.uk>
2683
2684         Bug 159078 – slow highlight
2685
2686         Do not update the match hilite during a selection-drag.
2687         Record unsuccesful regex matches, so we can quickly determine whether
2688         the cursor is still inside the blank region.
2689
2690         * src/vte-private.h:
2691         * src/vte.c: (vte_terminal_match_check_internal),
2692         (rowcol_inside_match), (vte_terminal_match_check),
2693         (_vte_terminal_set_pointer_visible),
2694         (vte_terminal_match_hilite_clear),
2695         (vte_terminal_match_hilite_show), (vte_terminal_match_hilite_hide),
2696         (vte_terminal_match_hilite_update), (vte_terminal_match_hilite),
2697         (vte_terminal_motion_notify), (vte_terminal_button_press),
2698         (vte_terminal_focus_in), (vte_terminal_focus_out),
2699         (vte_terminal_enter), (vte_terminal_leave), (vte_terminal_init),
2700         (vte_terminal_unrealize), (vte_terminal_draw_rows),
2701         (vte_terminal_paint):
2702
2703 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2704
2705         A couple of compiler warnings and avoid unnecessary arithmetic.
2706
2707         * src/vte.c: (_vte_terminal_set_default_attributes),
2708         (find_start_column), (find_end_column),
2709         (vte_terminal_start_selection), (vte_terminal_extend_selection),
2710         (vte_terminal_draw_rows), (vte_terminal_paint):
2711         * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_for_char),
2712         (_vte_xft_char_width), (_vte_xft_unlock_fonts), (_vte_xft_start),
2713         (_vte_xft_clip), (_vte_xft_set_text_font), (_vte_xft_draw_text):
2714
2715 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2716
2717         Bug 411276 – SVN trunk compilation error
2718         Part 2.
2719
2720         * configure.in:
2721                 Check that the header file defines FcStrFree before checking
2722                 for the availability of the function. Complete hack, but
2723                 appears to work.
2724
2725 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2726
2727         Bug 411276 – SVN trunk compilation error
2728
2729         * configure.in:
2730                 Ubuntu Edgy appears to have a broken fontconfig-dev package
2731                 where the function is exported from the library but is missing
2732                 the corresponding prototypes.
2733                 So we reorder the determination of the compilation flags
2734                 before checking for available functions in the hope that the
2735                 tests will then match the results at compile time.
2736
2737 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2738
2739         * src/vte.c: (vte_terminal_io_read):
2740                 Prevent a deadlock on recursively grabbing the gdk_mutex.
2741
2742 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2743
2744         Heuristic to avoid a read when it's likely to just return EAGAIN.
2745
2746         * src/vte-private.h:
2747         * src/vte.c: (vte_terminal_io_read), (process_timeout),
2748         (update_repeat_timeout), (update_timeout):
2749
2750 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2751
2752         Add a new debug flag to monitor draw operations.
2753         Don't issue individual glyphs for is_local_graphic() in the middle of
2754         a run.
2755
2756         * src/debug.c: (_vte_debug_parse_string):
2757         * src/debug.h:
2758         * src/vte.c: (vte_terminal_unichar_is_local_graphic),
2759         (vte_terminal_draw_rows), (vte_terminal_paint):
2760         * src/vtedraw.c: (_vte_draw_init_user), (_vte_draw_init_default),
2761         (_vte_draw_new), (_vte_draw_free), (_vte_draw_get_visual),
2762         (_vte_draw_get_colormap), (_vte_draw_start), (_vte_draw_end),
2763         (_vte_draw_set_background_color), (_vte_draw_set_background_image),
2764         (_vte_draw_requires_repaint), (_vte_draw_clip), (_vte_draw_clear),
2765         (_vte_draw_set_text_font), (_vte_draw_get_text_width),
2766         (_vte_draw_get_text_height), (_vte_draw_get_text_ascent),
2767         (_vte_draw_get_char_width), (_vte_draw_get_using_fontconfig),
2768         (_vte_draw_text), (_vte_draw_char), (_vte_draw_has_char),
2769         (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle),
2770         (_vte_draw_set_scroll):
2771         * src/vtedraw.h:
2772         * src/vteft2.c: (_vte_ft2_draw_has_char):
2773         * src/vtegl.c: (_vte_gl_draw_has_char):
2774         * src/vtepango.c: (_vte_pango_draw_has_char):
2775         * src/vtepangox.c: (_vte_pango_x_draw_has_char):
2776         * src/vteskel.c: (_vte_skel_draw_has_char):
2777         * src/vtexft.c: (_vte_xft_draw_has_char):
2778
2779 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2780
2781         * src/vte.c: (vte_terminal_draw_rows):
2782                 Don't break a glyph run for a graphic, issue the draw
2783                 and continue.
2784
2785 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2786
2787         Cache the font metrics on the vte_xft_font, avoids having to remeasure
2788         when opening a new terminal.
2789
2790         * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_set_text_font):
2791
2792 2007-02-23  Chris Wilson  <chris@chris-wilson.co.uk>
2793
2794         Share XftFonts between terminal backends and preserve faces from the
2795         previous draw - helps prevents font cache thrashing inside libXft.
2796
2797         * src/vtexft.c: (_vte_xft_font_hash), (_vte_xft_font_equal),
2798         (_vte_xft_font_open), (_vte_xft_font_close),
2799         (_vte_xft_font_for_char), (_vte_xft_unlock_fonts),
2800         (_vte_xft_destroy), (_vte_xft_start), (_vte_xft_end),
2801         (ptr_array_zeroed_new), (_vte_xft_set_text_font),
2802         (_vte_xft_get_char_width), (_vte_xft_draw_text),
2803         (_vte_xft_draw_char):
2804
2805 2007-02-22  Chris Wilson  <chris@chris-wilson.co.uk>
2806
2807         Bug 410986 – Fails to build with -z defs
2808         Patch by Loïc Minier.
2809
2810         * src/Makefile.am:
2811                 Add FreeType to the libs.
2812
2813 2007-02-22  Chris Wilson  <chris@chris-wilson.co.uk>
2814
2815         * src/vte.c: (vte_terminal_send):
2816                 Return in the face of error as we appear to hit this in the
2817                 wild.
2818
2819 2007-02-22  Chris Wilson  <chris@chris-wilson.co.uk>
2820
2821         Bug 410819 – slider not correctly positioned after calling less
2822
2823         * src/vte.c: (_vte_terminal_adjust_adjustments),
2824         (_vte_terminal_adjust_adjustments_full),
2825         (vte_terminal_maybe_scroll_to_top), (vte_terminal_size_allocate),
2826         (vte_terminal_set_scrollback_lines):
2827         * src/vteseq.c: (vte_sequence_handler_decset_internal):
2828                 Fixup a lot of issues with changing the number of scrollback
2829                 lines, such as missing value_changed signals for the
2830                 scrollbar and a couple of missing CLAMPs.
2831
2832 2007-02-22  Chris Wilson  <chris@chris-wilson.co.uk>
2833
2834         After adjusting the current profile, the last line gets chomped.
2835
2836         * src/vte.c: (vte_terminal_set_scrollback_lines):
2837
2838 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2839
2840         cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
2841
2842         * src/vte.c: (vte_terminal_scroll),
2843         (vte_terminal_set_scrollback_lines):
2844                 Operate on scroll delta directly as adjustment->value updates
2845                 are not instantaneous and we may have several scroll events
2846                 before the next update.
2847
2848 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2849
2850         Bug 410463 – Poor interactive performance with multiple terminals
2851
2852         * src/vte.c: (vte_terminal_io_read), (process_timeout),
2853         (update_repeat_timeout):
2854                 When multiple terminals are active, poll the IO sources
2855                 from within the process/display timeout (akin to 
2856                 interrupt mitigation).
2857                 Return to normal interrupts when we only have a single active
2858                 terminal - so we don't sacrifice high performance.
2859
2860 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2861
2862         A small bit of callgrinding, avoid the modulus inside
2863         vte_terminal_ensure_cursor() by caching the last row_data.
2864
2865         * src/iso2022.c: (process_cdata):
2866         * src/ring.c: (_vte_ring_new), (_vte_ring_insert),
2867         (_vte_ring_insert_preserve), (_vte_ring_remove):
2868         * src/ring.h:
2869         * src/table.c: (_vte_table_match):
2870         * src/vte.c: (_vte_terminal_ensure_cursor),
2871         (_vte_terminal_insert_char), (vte_terminal_process_incoming):
2872
2873 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2874
2875         Callgrind strikes again...
2876         Inserting a char is a rare operation (especially in the scrolling
2877         benchmark!) so only read the old cell during an insert. This wins
2878         about 5% during a hexdump.
2879
2880         * src/iso2022.c: (_vte_iso2022_find_nextctl),
2881         (_vte_iso2022_fragment_input), (process_cdata):
2882         * src/vte.c: (_vte_terminal_insert_char):
2883         * src/vteseq.c: (vte_sequence_handler_sf):
2884
2885 2007-02-21  Chris Wilson  <chris@chris-wilson.co.uk>
2886
2887         RedHat Bug 113195: First line displayed incorrectly if prompt changes background color
2888
2889         e.g. PS1='\e[46m[\u@\h:\w]\e[m \e[45m'
2890         The issue is when we insert a char on a new row and the background is
2891         not the default, we fill the entire row with the *current* colour.
2892         This behaviour is incorrect, and the fix is to fill to the end of the
2893         line on a carriage return.
2894
2895         * src/vte-private.h:
2896         * src/vte.c: (_vte_terminal_ensure_cursor),
2897         (_vte_terminal_insert_char), (vte_terminal_process_incoming),
2898         (vte_terminal_send):
2899         * src/vteseq.c: (vte_sequence_handler_ce),
2900         (vte_sequence_handler_cr), (vte_sequence_handler_cs),
2901         (vte_sequence_handler_cS),
2902         (vte_sequence_handler_cursor_lower_left),
2903         (vte_sequence_handler_dc), (vte_sequence_handler_ic),
2904         (vte_sequence_handler_sf):
2905
2906 2007-02-20  Chris Wilson  <chris@chris-wilson.co.uk>
2907
2908          RedHat Bug 123845: gnome-terminal not parsing cursor position escape sequence properly
2909
2910         * src/caps.c:
2911         * src/vteseq.c: (vte_sequence_handler_cm):
2912                 Add 'ESC [ Pn H' to cursor-position and provide default
2913                 values.
2914
2915 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2916
2917         Bug 409055 – Terminal stays blank
2918
2919         Due to GTK+ coallescing of XExposeEvents it was possible for our
2920         GdkExposeEvent to arrive before the GdkVisibilityEvent associated with
2921         the mapping of our toplevel and so we discarded the event as we
2922         believed we were still unviewable.
2923
2924         * src/vte.c: (_vte_invalidate_cells), (vte_terminal_expose),
2925         (reset_update_regions):
2926                 Assume that all GdkExposeEvents have been checked for
2927                 suitability before delivery. We know this true for locally
2928                 generated expose events which are extensively checked during
2929                 invalidation, and we presume that X will not generate expose
2930                 events on unmapped or otherwise unviewable windows.
2931
2932 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2933
2934         * src/vte.c: (_vte_terminal_adjust_adjustments),
2935         (_vte_terminal_adjust_adjustments_full):
2936                 Dead code elimination.
2937
2938 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2939
2940         * perf/random.sh:
2941                 A simple script to dump a fixed amount of random data to the
2942                 terminal.
2943
2944 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2945
2946         A few more trivial incremental improvements.
2947
2948         * src/Makefile.am:
2949         * src/iso2022.c: (_vte_iso2022_map_get):
2950                 Switch to a VteTree.
2951         * src/vte.c: (_vte_terminal_update_insert_delta),
2952         (_vte_terminal_insert_char):
2953                 No need to ensure the cursor when scrolling, only before
2954                 insertions.
2955         * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
2956         (_vte_xft_font_for_char), (_vte_xft_end):
2957                 Lock the face over the entire expose.
2958
2959 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2960
2961         Improve handling of parallel 'cat /dev/urandom' - notably a crasher
2962         in the table matcher, repeated g_getenv processing and wasted time
2963         in g_tree_lookup.
2964
2965         * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
2966         (_vte_iso2022_map_init), (_vte_iso2022_map_get),
2967         (process_8_bit_sequence), (process_cdata),
2968         (_vte_iso2022_process_single), (_vte_iso2022_process):
2969         * src/table.c: (_vte_table_match):
2970         * src/vte-private.h:
2971
2972 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2973
2974         * src/vte.c: (update_timeout):
2975                 In conjunction with the previous fix, since the terminal
2976                 can be removed from the active list by
2977                 vte_terminal_process_incoming() we need to be careful whilst
2978                 iterating along the active list.
2979
2980 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2981
2982         <fcrozat> ickle: hi.. our kernel hacker just found a nice reproducible
2983                 crash in vte :)
2984         <ickle> oh, joy
2985         <fcrozat> very easy to reproduce
2986                 cat /dev/urandom
2987                 wait 2 or 3S
2988                 then press Ctrl-Shift-T to open a new tab
2989                 => crash
2990
2991         * src/vte.c: (process_timeout), (update_repeat_timeout):
2992                 vte_terminal_process_incoming() can trigger a terminal reset
2993                 which will remove the terminal from the active list, and then
2994                 we attempt to remove it again after handling the incoming
2995                 data. The fix is simple - don't delete the link if the the
2996                 terminal is no longer active.
2997
2998 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
2999
3000         As noticed on bug 409055, we do not receive a visibility-notify
3001         event when we switch workspaces (or even when the window is iconified).
3002         The workaround for this is to watch for our toplevel being unmapped
3003         and set the fully-obscured flag.
3004
3005         * src/vte.c: (vte_terminal_configure_toplevel),
3006         (vte_terminal_unmap_toplevel), (vte_terminal_hierarchy_changed),
3007         (vte_terminal_set_visibility), (vte_terminal_visibility_notify):
3008
3009 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
3010
3011         * src/vte.c: (visibility_state_str),
3012         (vte_terminal_visibility_notify), (vte_terminal_init),
3013         (vte_terminal_realize):
3014                 Add the visibility state to the debug output.
3015
3016 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
3017
3018         * configure.in:
3019                 Add the configuration details to config.log as well.
3020
3021 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
3022
3023         Bug 409241 – gnome-terminal crashed with SIGSEGV in vte_terminal_draw_graphic()
3024
3025         * src/vte.c: (vte_terminal_paint):
3026                 Lookup fore/back colours before attempting to draw the graphic
3027                 character behind the unfocused cursor.
3028
3029 2007-02-19  Chris Wilson  <chris@chris-wilson.co.uk>
3030
3031         * src/vte.c: (vte_terminal_visibility_notify):
3032                 Add VTE_DEBUG_EVENT info.
3033
3034 2007-02-16  Chris Wilson  <chris@chris-wilson.co.uk>
3035
3036         Bug 407945 – "GNOME" Terminal" regression after "vte" update when using "csh"
3037
3038         When passing multiple versions of the same environment
3039         variable to execve (i.e g_spawn) the result is undefined.
3040         So we solve the ambiguity by using the application passed env to
3041         override values from the current environment.
3042         
3043         * src/pty.c: (collect_variables), (merge_environ),
3044         (_vte_pty_run_on_pty):
3045
3046 2007-02-16  Chris Wilson  <chris@chris-wilson.co.uk>
3047
3048         Bug 408536 – trouble compiling vte 0.15.3
3049
3050         * configure.in:
3051         * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
3052                 Check for availability of FcStrFree() - only used for
3053                 debugging purposes so we can live without it.
3054
3055 2007-02-15  Chris Wilson  <chris@chris-wilson.co.uk>
3056
3057         Guard against a missing default number of rows or columns
3058         inside the termcap.
3059
3060         * src/vte-private.h:
3061         * src/vte.c: (vte_terminal_set_emulation), (vte_terminal_init):
3062
3063 2007-02-15  Chris Wilson  <chris@chris-wilson.co.uk>
3064
3065         Bug 408040 – vte automagic hyperlinks
3066         Patch by Gilles Dartiguelongue.
3067
3068         * src/vteapp.c:
3069                 Correct the typo in the nntp protocol matcher.
3070
3071 2007-02-14  Chris Wilson  <chris@chris-wilson.co.uk>
3072
3073         Bug 407839 – Use of environ breaks build on Solaris
3074         Original patch by Damien Carbery.
3075
3076         * src/pty.c:
3077                 extern char **environ - glibc was 'conveniently' declaring
3078                 it for us...
3079
3080 2007-02-13  Chris Wilson  <chris@chris-wilson.co.uk>
3081
3082         uws reported that scrolling inside screen with a status line was
3083         broken. Indeed any scrolling inside an alternative screen was broken,
3084         e.g. plain vim would not always update the topmost line. The issue was
3085         the interaction with the deferred value-changed signal emission and
3086         failing to correctly maintain the current scroll_delta. The fix is
3087         that we always now apply changes to the scroll_delta and swap
3088         scroll_delta with adjustment->value before the deferred signal
3089         emission to correctly trigger the handle_scroll().
3090
3091         * src/vte-private.h:
3092         * src/vte.c: (_vte_invalidate_cells),
3093         (vte_terminal_emit_adjustment_changed),
3094         (vte_terminal_queue_adjustment_value_changed),
3095         (_vte_terminal_adjust_adjustments),
3096         (_vte_terminal_adjust_adjustments_full),
3097         (vte_terminal_maybe_scroll_to_bottom),
3098         (vte_terminal_process_incoming), (vte_terminal_extend_selection),
3099         (vte_terminal_handle_scroll), (vte_terminal_set_scrollback_lines):
3100         * src/vteseq.c: (vte_sequence_handler_sf):
3101
3102 2007-02-13  Chris Wilson  <chris@chris-wilson.co.uk>
3103
3104         Bug 407358 – regression in mouse selection
3105
3106         * src/vte.c: (vte_terminal_motion_notify):
3107                 When outside the terminal we used an uninitialised variable to
3108                 determine the mouse tracking mode.
3109
3110 2007-02-12  Behdad Esfahbod  <behdad@gnome.org>
3111
3112         Released vte-0.15.3.
3113
3114         * NEWS: Updated.
3115
3116         * configure.in: Bumped version to 0.15.3.
3117
3118         * src/Makefile.am: Bumped libtool version to 11:0:2.
3119
3120 2007-02-12  Chris Wilson  <chris@chris-wilson.co.uk>
3121
3122         * src/vte.c: (vte_terminal_extend_selection),
3123         (vte_terminal_motion_notify):
3124                 Restore autoscroll behaviour.
3125
3126 2007-02-12  Chris Wilson  <chris@chris-wilson.co.uk>
3127
3128         * src/vte.c: (vte_terminal_start_selection):
3129                 Invalidate the selected region when starting in
3130                 select-word or select-line mode.
3131
3132 2007-02-12  Chris Wilson  <chris@chris-wilson.co.uk>
3133
3134         Restore double-click to select word behaviour, broken by r1671 as
3135         the second click occurs in the same place as the first (obviously!).
3136
3137         * src/vte.c: (vte_terminal_extend_selection),
3138         (vte_terminal_autoscroll), (vte_terminal_motion_notify),
3139         (vte_terminal_button_press):
3140
3141 2007-02-12  Chris Wilson  <chris@chris-wilson.co.uk>
3142
3143         Bug 407091 – vte_terminal_fork_command() env argument changed semantic in 0.15.2
3144         Original patch by Michael Vogt.
3145
3146         * src/pty.c: (_vte_pty_run_on_pty):
3147                 Copy the current environment into the child's.
3148
3149 2007-02-11  Chris Wilson  <chris@chris-wilson.co.uk>
3150
3151         Bug 323393 – Hyper-sensitive selection
3152
3153         * src/vte.c: (vte_terminal_extend_selection):
3154                 Don't start (or update) the selection until you
3155                 move off the current cell (character).
3156
3157 2007-02-11  Chris Wilson  <chris@chris-wilson.co.uk>
3158
3159         Bug 406763 – Selecting double-wide characters
3160
3161         * src/vte.c: (start_column), (end_column),
3162         (vte_terminal_start_selection), (vte_terminal_extend_selection),
3163         (vte_terminal_draw_rows):
3164                 Extend selection to include fragment cells i.e. double-wide
3165                 characters.
3166
3167 2007-02-10  Chris Wilson  <chris@chris-wilson.co.uk>
3168
3169         Have a separate adjust_adjustments for when we know that the page
3170         size and step lengths may have changed.
3171
3172         * src/vte.c: (_vte_terminal_adjust_adjustments),
3173         (_vte_terminal_adjust_adjustments_full),
3174         (vte_terminal_set_scrollback_lines), (vte_terminal_reset):
3175
3176 2007-02-10  Chris Wilson  <chris@chris-wilson.co.uk>
3177
3178         * src/vte.c: (_vte_terminal_adjust_adjustments),
3179         (vte_terminal_size_allocate), (vte_terminal_set_scrollback_lines):
3180                 Prevent the display of garbage after resizing and switching
3181                 between alternate screens.
3182                 However, instead of displaying garbage after the cursor, we
3183                 lose some data above the current scroll delta, should we have
3184                 a full history.  Bizarre.
3185
3186 2007-02-09  Chris Wilson  <chris@chris-wilson.co.uk>
3187
3188         * src/vte.c: (_vte_terminal_adjust_adjustments):
3189                 Do not allow to scroll past the last line after reducing
3190                 scrollback lines.
3191         * src/vtexft.c: (_vte_xft_set_text_font):
3192                 Ensure a fallback height is set.
3193
3194 2007-02-09  Chris Wilson  <chris@chris-wilson.co.uk>
3195
3196         * src/vte.c: (vte_terminal_get_text_range_maybe_wrapped):
3197                 Reuse VteRowData whilst in the row.
3198
3199 2007-02-09  Chris Wilson  <chris@chris-wilson.co.uk>
3200
3201         Rework to reduce number of times mutex is taken and shorten the hold.
3202
3203         * src/vte.c: (vte_terminal_queue_adjustment_changed),
3204         (vte_terminal_queue_adjustment_value_changed),
3205         (vte_terminal_io_read), (vte_terminal_paint),
3206         (vte_terminal_add_process_timeout), (vte_terminal_is_processing),
3207         (vte_terminal_start_processing):
3208
3209 2007-02-09  Chris Wilson  <chris@chris-wilson.co.uk>
3210
3211         A number of small bug fixes...
3212         - do not override the user setting of scrollback lines with the
3213         terminal size.
3214         - only set the current screen rather than both and so reset the
3215         scrollback lines when we switch between normal and alternate.
3216         - do not invalidate inside set_scrollback lines as setting does not
3217         actually modify the on-screen contents.
3218         - push the scroll-adjustment to the post-processing emission.
3219         - queue timeouts on value change (should be a no-op)
3220         - reorder emission so that scrolling occurs before invalidating the
3221         window (ie so that the scroll happens this cycle, not next).
3222
3223         Still unsolved: the clamping of the cursor when switching between
3224         alternate screens.
3225
3226         * src/vte-private.h:
3227         * src/vte.c: (vte_terminal_emit_adjustment_changed),
3228         (vte_terminal_queue_adjustment_changed),
3229         (vte_terminal_queue_adjustment_value_changed),
3230         (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
3231         (vte_terminal_maybe_scroll_to_top),
3232         (vte_terminal_maybe_scroll_to_bottom),
3233         (_vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta),
3234         (vte_terminal_process_incoming), (vte_terminal_extend_selection),
3235         (vte_terminal_autoscroll), (vte_terminal_handle_scroll),
3236         (vte_terminal_size_allocate), (vte_terminal_scroll),
3237         (vte_terminal_background_update),
3238         (vte_terminal_queue_background_update),
3239         (vte_terminal_set_scrollback_lines), (vte_terminal_reset),
3240         (add_process_timeout), (vte_terminal_add_process_timeout),
3241         (vte_terminal_start_processing), (update_repeat_timeout),
3242         (update_timeout):
3243         * src/vteseq.c: (vte_sequence_handler_scroll_up_or_down),
3244         (vte_sequence_handler_decset_internal), (vte_sequence_handler_al),
3245         (vte_sequence_handler_dl), (vte_sequence_handler_sf),
3246         (vte_sequence_handler_sr), (vte_sequence_handler_clear_screen),
3247         (vte_sequence_handler_cursor_character_absolute),
3248         (vte_sequence_handler_insert_lines),
3249         (vte_sequence_handler_delete_lines),
3250         (vte_sequence_handler_screen_alignment_test):
3251
3252 2007-02-08  Chris Wilson  <chris@chris-wilson.co.uk>
3253
3254         * src/vteapp.c: (main): whitespace
3255
3256 2007-02-08  Chris Wilson  <chris@chris-wilson.co.uk>
3257
3258         Bug 363597 – Scrollback in profile dialog doesn't work
3259
3260         * src/vte-private.h:
3261         * src/vte.c: (vte_terminal_init),
3262                 Only use SCROLLBACK_MIN during initialisation, so rename it
3263                 to SCROLLBACK_INIT.
3264         (vte_terminal_set_scrollback_lines):
3265                 Remove MAX(lines, SCROLLBACK_MIN) and update code comments
3266                 to reduce confusion.
3267
3268 2007-02-08  Mariano Suárez-Alvarez  <mariano@gnome.org>
3269
3270         * src/vteapp.c(main): do something useful with --geometry.
3271
3272 2007-02-08  Chris Wilson  <chris@chris-wilson.co.uk>
3273
3274         Use gtk_widget_get_(screen|display) which will itself return a default
3275         if not currently attached.
3276
3277         * src/vtedraw.c: (_vte_draw_get_colormap):
3278         * src/vtefc.c: (_vte_fc_defaults_from_gtk):
3279         * src/vtegl.c: (_vte_gl_check), (_vte_gl_create),
3280         (_vte_gl_destroy), (_vte_gl_start), (_vte_gl_end), (_vte_gl_clear),
3281         (_vte_gl_draw_text), (_vte_gl_rectangle):
3282         * src/vterdb.c: (_vte_rdb_get):
3283         * src/vteseq.c: (vte_sequence_handler_window_manipulation):
3284
3285 2007-02-08  Chris Wilson  <chris@chris-wilson.co.uk>
3286
3287         Some more callgrinding - kill a little bit of overhead.
3288
3289         * src/iso2022.c: (_vte_iso2022_sequence_length),
3290         (_vte_iso2022_fragment_input), (process_control):
3291         * src/matcher.c: (_vte_matcher_free_params_array):
3292         * src/vteconv.c: (_vte_conv):
3293
3294 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
3295
3296         Actually return whether or not we found the char in
3297         _vte_xft_font_for_char - saves having to double check afterwards!
3298
3299         * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_set_text_font),
3300         (_vte_xft_draw_text):
3301
3302 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
3303
3304         As spotted perusing roxterm, we fail to redraw after changing the text
3305         colour.
3306
3307         * src/vte.c: (vte_terminal_set_color_internal):
3308                 Remember to invalidate all!
3309
3310 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
3311
3312         * src/vte.c: (vte_terminal_match_check_internal):
3313                 Scan for newlines before and after the current row
3314                 to find the entire line in case of soft-wrapping.
3315
3316 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
3317
3318         Bug 345344 – Pattern matching is inefficient
3319         Bug 324246 – Performance degredation with large numbers of highlighted addresses/URLs
3320
3321         * src/vte.c: (vte_terminal_match_check_internal):
3322                 Trim the searched string down to the row containing the
3323                 pointer. During a mutt session this drops the time consumed by
3324                 regexec from ~30% to ~2%.
3325                 Note: multi-line regexes are now unsupported!
3326
3327 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
3328
3329         * src/vteseq.c: (_vte_sequence_get_handler):
3330                 Avoid the strlen when possible.
3331
3332 2007-02-07  Chris Wilson  <chris@chris-wilson.co.uk>
3333
3334         Some cleanups and a bug...
3335
3336         vte_terminal_match_hilite() compared the current cell to the last
3337         mouse position without a floor().
3338
3339         * src/vte.c: (vte_terminal_process_incoming),
3340         (vte_terminal_match_hilite), (vte_terminal_select_all),
3341         (vte_terminal_select_none), (vte_terminal_motion_notify),
3342         (vte_terminal_button_press):
3343
3344 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3345
3346         Bug 86119 – "select all" feature
3347         Original patch by Simone Gotti.
3348
3349         * src/vte.c: (vte_terminal_select_all), (vte_terminal_select_none):
3350         * src/vte.h:
3351                 Add 2 new API entry points to select the entire contents
3352                 and clear the current selection.
3353
3354 2007-02-06  Chris Wilson <chris@chris-wilson.co.uk>
3355
3356         Bug 342059 – ASCII escape sequences don't work as expected
3357         Correction by Mariano Suárez-Alvarez.
3358
3359         * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
3360                 OBO on the parameter.
3361
3362 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3363
3364         Bug 342059 – ASCII escape sequences don't work as expected
3365         Patch by Mariano Suárez-Alvarez.
3366
3367         * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
3368                 Provide a default value.
3369
3370 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3371
3372         And finally as noted on bug 324246#c8 hide the hilite when the mouse
3373         leaves the terminal (show again when it enters and let motion-notify
3374         correct it later).
3375
3376         * src/vte.c: (vte_terminal_enter), (vte_terminal_leave),
3377         (vte_terminal_realize), (vte_terminal_class_init):
3378
3379 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3380
3381         As noted on bug 324246#c8, hide the hilite when the focus disappears.
3382         On focus restore the match for the last mouse coordinates and let
3383         motion-notify take care of the rest.
3384
3385         * src/vte.c: (vte_terminal_match_hilite_update),
3386         (vte_terminal_match_hilite), (vte_terminal_focus_in):
3387
3388 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3389
3390         Convert the exposed rectangles to cells and remerge them.
3391
3392         * src/vte.c: (vte_terminal_expand_region),
3393         (vte_terminal_paint_area), (vte_terminal_paint):
3394
3395 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3396
3397         As noted on Bug 401052#c13, vte fails to completely clear the cell's
3398         previous contents.
3399
3400         * src/vte.c: (_vte_invalidate_cells):
3401                 Grow the invalidate region by a single pixel to accomodate
3402                 antialiased pseudo-bold characters.
3403
3404 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3405
3406         Move status_line_changed to post-processing emission.
3407
3408         * src/vte-private.h:
3409         * src/vte.c: (_vte_terminal_insert_char), (vte_terminal_reset),
3410         (vte_terminal_emit_pending_signals):
3411         * src/vteseq.c: (vte_sequence_handler_ts):
3412
3413 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3414
3415         Clamp down on needless invalidates during selection.
3416
3417         As commented on in Bug 401052#c10
3418
3419         * src/vte.c: (_vte_invalidate_region), (vte_terminal_deselect_all),
3420         (vte_terminal_match_hilite_clear), (vte_terminal_start_selection),
3421         (vte_terminal_extend_selection):
3422
3423 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3424
3425         * src/vte.c: (vte_terminal_draw_rows):
3426                 Don't needlessly break the text run on a space if we are
3427                 not drawing cell attributes.
3428
3429 2007-02-06  Chris Wilson  <chris@chris-wilson.co.uk>
3430
3431         * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht):
3432                 One more G_UNLIKELY
3433         * src/vte.c: (vte_terminal_match_hilite),
3434         (vte_terminal_motion_notify):
3435                 Avoid expensive hiliting if the pointer is not in the window.
3436         * src/vteregex.c: (_vte_regex_exec):
3437                 Prefer g_new(x,n) over g_malloc(sizeof(x)*n)
3438
3439 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3440
3441         Bug 404757 – URL matching doesn't work with PCRE
3442
3443         * configure.in:
3444                 mention the inconsistency in the help string and default to no.
3445
3446 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3447
3448         * src/vte.c: (vte_terminal_draw_rows):
3449                 Don't draw cell attributes across spaces.
3450
3451 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3452
3453         * src/vte.c: (_vte_terminal_insert_char):
3454                 A couple more G_LIKELYs.
3455
3456 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3457
3458         Bug 403028 – decset mode 12 = blinking cursor
3459
3460         * src/vteseq.c: (vte_sequence_handler_decset_internal):
3461                 Following convention, disallow the application's control
3462                 over the blinking cursor in favour of the user's setting.
3463
3464 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3465
3466         Some more small callgrind tweaks - well into the law of diminishing
3467         returns.
3468
3469         * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht),
3470         (_vte_iso2022_is_ambiguous), (process_8_bit_sequence),
3471         (process_cdata), (_vte_iso2022_unichar_width):
3472         * src/matcher.c: (_vte_matcher_free_params_array):
3473         * src/vte.c: (vte_terminal_process_incoming):
3474
3475 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3476
3477         Beware the trivial change. Handle reuse of GValueArray correctly.
3478
3479         * src/matcher.c: (_vte_matcher_match):
3480         * src/table.c: (_vte_table_match):
3481         * src/trie.c: (_vte_trie_match):
3482         * src/vte.c: (vte_terminal_process_incoming):
3483
3484 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3485
3486         * src/table.c: (_vte_table_match):
3487                 And kill the leak as vte_table_match erroneously cleared
3488                 its output arguments.
3489
3490 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3491
3492         The continual reallocation of GValueArray is the last trivially
3493         avoidable g_realloc.
3494
3495         * src/interpret.c: (main):
3496         * src/matcher.c: (_vte_matcher_create), (_vte_matcher_destroy),
3497         (_vte_matcher_match), (_vte_matcher_free_params_array):
3498         * src/matcher.h:
3499         * src/table.c: (_vte_table_extract_string):
3500         * src/trie.c: (_vte_trie_matchx), (_vte_trie_match), (main):
3501         * src/vte.c: (vte_terminal_process_incoming):
3502
3503 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3504
3505         * src/ring.c: (_vte_ring_insert):
3506                 Missed an important compiler warning.
3507
3508 2007-02-05  Chris Wilson  <chris@chris-wilson.co.uk>
3509
3510         cf Bug 342338 – suffers from memory fragmentation
3511
3512         Reuse the last VteRowData instead of immediately freeing it. Avoids
3513         recreating and *regrowing* a new GArray on the heap.
3514
3515         In the simple scrolling benchmarks this can boost performance by as
3516         much as 10%!
3517
3518         * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
3519         (_vte_ring_remove), (_vte_ring_append):
3520         * src/ring.h:
3521         * src/vte-private.h:
3522         * src/vte.c: (_vte_reset_row_data), (_vte_terminal_ensure_cursor),
3523         (_vte_terminal_insert_char), (vte_terminal_reset_rowdata):
3524         * src/vteseq.c: (vte_insert_line_internal),
3525         (vte_sequence_handler_scroll_up_or_down),
3526         (vte_sequence_handler_cd), (vte_sequence_handler_sf),
3527         (vte_sequence_handler_clear_screen),
3528         (vte_sequence_handler_screen_alignment_test):
3529
3530 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3531
3532         A few more compiler warnings.
3533
3534         * src/buffer.c: (_vte_buffer_peek_gstring):
3535         * src/iso2022.c: (process_control):
3536         * src/vteft2.c: (_vte_ft2_set_text_font):
3537         * src/vteseq.c: (vte_sequence_handler_set_title_internal):
3538         * src/vtetc.c: (_vte_termcap_parse_file):
3539
3540 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3541
3542         Bug 106618 – CJK 'fixed width' font and 's p a c e d o u t' issue
3543
3544         * src/vtedraw.h:
3545         * src/vteglyph.c: (_vte_glyph_cache_set_font_description):
3546         * src/vtepango.c: (_vte_pango_set_text_font):
3547         * src/vtepangox.c: (_vte_pango_x_set_text_font):
3548         * src/vtexft.c: (_vte_xft_set_text_font):
3549                 Detect a change in font between wide-chars and recheck for a
3550                 fixed-width estimate.
3551
3552 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3553
3554         Micro-opts.
3555
3556         * src/table.c: (_vte_table_match):
3557                 No need set to NULL.
3558         * src/vte.c: (_vte_terminal_ensure_cursor):
3559                 If we have added some rows, the last is the current.
3560
3561 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3562
3563         Move window/icon title changed to the post-processing emission - helps
3564         with the artificial benchmark of replaying a recorded jhbuild script.
3565
3566         * src/vte-private.h:
3567         * src/vte.c: (vte_terminal_finalize),
3568         (vte_terminal_emit_icon_title_changed),
3569         (vte_terminal_emit_window_title_changed),
3570         (vte_terminal_emit_pending_signals):
3571         * src/vteseq.c: (vte_sequence_handler_set_title_internal):
3572
3573 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3574
3575         Broke clear-to-end-of-line by lowering the number of cells appended,
3576         instead of the number of cells invalidated.
3577
3578         * src/vte.c: (vte_terminal_draw_rows):
3579         * src/vteseq.c: (vte_sequence_handler_ce):
3580
3581 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3582
3583         cf Bug 83285 – Treacle-slow scrolling in gnome-terminal on unaccelerated X server
3584
3585         Another chunk of performance improvements - the majority focusing on
3586         reducing the amount of work down per interrupt (input data from
3587         child).
3588
3589         To handle reads without addition copies VTE_INPUT_CHUNK_SIZE chunks
3590         are allocated on demand and filled from read with no further copy -
3591         previously the read was into a local buffer and then immediately
3592         copied into a _vte_buffer.
3593         _vte_iso2022_process() is then adjusted to use a ptr+length, rather
3594         than a _vte_buffer and is called for every input chunk (taking special
3595         care over the boundary cases).
3596
3597         * src/interpret.c: (main):
3598         * src/iso2022.c: (_vte_iso2022_fragment_input),
3599         (process_8_bit_sequence), (process_cdata), (_vte_iso2022_process):
3600         * src/iso2022.h:
3601         * src/vte-private.h:
3602         * src/vte.c: (get_chunk), (release_chunk), (prune_chunks),
3603         (_vte_incoming_chunks_release), (_vte_incoming_chunks_length),
3604         (_vte_incoming_chunks_count), (_vte_incoming_chunks_reverse),
3605         (vte_terminal_match_check_internal), (_vte_terminal_ensure_cursor),
3606         (vte_terminal_set_colors), (_vte_terminal_insert_char),
3607         (vte_terminal_catch_child_exited), (vte_terminal_eof),
3608         (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
3609         (vte_terminal_io_read), (vte_terminal_feed), (vte_terminal_send),
3610         (vte_terminal_init), (vte_terminal_finalize), (vte_terminal_reset),
3611         (remove_from_active_list), (need_processing), (update_regions),
3612         (update_repeat_timeout):
3613         * src/vte.h:
3614         * src/vteseq.c: (vte_sequence_handler_cb),
3615         (vte_sequence_handler_ce), (vte_sequence_handler_ec):
3616
3617 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3618
3619         Store whether the codeset is ambiguous in a state variable,
3620         rather than recomputing the ambiguous width every processing loop.
3621
3622         * src/iso2022.c: (_vte_iso2022_is_ambiguous),
3623         (_vte_iso2022_state_new), (_vte_iso2022_find_nextctl):
3624
3625 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3626
3627         * src/vtexft.c: (_vte_xft_create), (_vte_xft_destroy):
3628                 Remove zero-initialisers after g_slice_new0().
3629         * src/vtexft.c :(_vte_xft_set_text_font):
3630                 Print out the width range.
3631
3632 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3633
3634         * configure.in:
3635                 Missing space between -Wflags.
3636
3637 2007-02-04  Chris Wilson  <chris@chris-wilson.co.uk>
3638
3639         Eliminate the temporary g_sliced parameter list,
3640         in favour of an on-stack list.
3641
3642         * src/table.c: (_vte_table_arginfo_head_init),
3643         (_vte_table_arginfo_alloc), (_vte_table_arginfo_head_revert),
3644         (_vte_table_arginfo_head_reverse),
3645         (_vte_table_arginfo_head_finalize), (_vte_table_addi),
3646         (_vte_table_matchi), (_vte_table_extract_string),
3647         (_vte_table_match):
3648
3649 2007-02-02  Chris Wilson  <chris@chris-wilson.co.uk>
3650
3651         * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
3652                 Dump the chosen fonts to VTE_DEBUG_MISC.
3653         * src/vteft2.c: (_vte_ft2_set_text_font):
3654                 Print out the font metrics ala vtexft.c
3655
3656 2007-02-02  Chris Wilson  <chris@chris-wilson.co.uk>
3657
3658         Bug 322241 – Please switch to pkg-config to check for freetype
3659
3660         * configure.in:
3661                 Prefer to use the freetype2.pc if available.
3662
3663 2007-02-02  Chris Wilson  <chris@chris-wilson.co.uk>
3664
3665         Bug 322240 – Usage of pkg-config privates header
3666
3667         * vte.pc.in:
3668                 Move @FT2_LIBS@ to Libs.private.
3669
3670 2007-02-01  Chris Wilson  <chris@chris-wilson.co.uk>
3671
3672         cf Bug 403275 – crash in Terminal: I was typing reset on th...
3673
3674         Not the crash, just a freeze found whilst trying to reproduce the
3675         bug on trunk.
3676
3677         * src/vte.c: (remove_from_active_list):
3678                 Don't remove the terminal from the active list if it still
3679                 has pending redraws.
3680         
3681         * src/vte.c: (process_timeout), (update_timeout):
3682                 Reorder the loop to remove the terminal from the active list
3683                 if it no longer needs processing.
3684
3685 2007-02-01  Chris Wilson  <chris@chris-wilson.co.uk>
3686
3687         * perf/scroll.vim:
3688                 Extract the bits the test needs out of debian.vim.
3689
3690 2007-02-01  Chris Wilson  <chris@chris-wilson.co.uk>
3691
3692         As spotted on bug 399617c8, we convert an array of unichars to a
3693         string and then iterate over the string interpreting bytes as
3694         unichars.
3695
3696         * src/table.c: (_vte_table_extract_numbers):
3697                 Dispense with the temporary string and process the unichar
3698                 array directly.
3699
3700 2007-02-01  Chris Wilson <chris@chris-wilson.co.uk>
3701
3702         Bug 403159 – XftDrawSetClipRectangles() silently fails on ppc->i386
3703
3704         * src/vtexft.c: (_vte_xft_clip):
3705                 Precompute clip offsets.
3706
3707 2007-02-01  Chris Wilson  <chris@chris-wilson.co.uk>
3708
3709         Bug 382245 – __PyGtk_API multiply defined in python module
3710
3711         * configure.in:
3712                 Add -fno-common to MAYBE_WARN in order to catch future
3713                 errors of this type.
3714         * python/vte.override:
3715                 Define PYGTK_NO_IMPORT.
3716
3717 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3718
3719         Bug 155687 – Scroll region \E[NN;MMr should set cursor to home
3720
3721         Patch originally by Michele Baldessari.
3722
3723         * src/vteseq.c: (vte_sequence_handler_cs):
3724                 Move the cursor to (0,0) rather than clamping the cursor to 
3725                 be inside the scroll region.
3726
3727 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3728
3729         In a few places the contents of a GValue were being used without
3730         checking that they were of the expected type.
3731
3732         cf Bug 117945 which mentions stack corruption inside
3733         vte_sequence_handler_delete_lines() - one of the corrected instances.
3734
3735         * src/vteseq.c: (vte_sequence_handler_al),
3736         (vte_sequence_handler_cs), (vte_sequence_handler_cS),
3737         (vte_sequence_handler_dl),
3738         (vte_sequence_handler_character_attributes),
3739         (vte_sequence_handler_insert_lines),
3740         (vte_sequence_handler_delete_lines),
3741         (vte_sequence_handler_device_status_report),
3742         (vte_sequence_handler_dec_device_status_report):
3743                 Check that the GValue holds a long before dereference.
3744
3745 2007-01-31  Chris Wilson <chris@chris-wilson.co.uk>
3746
3747         Back to the old-style io loop as _vte_buffer_append() is too slow - on
3748         a slow system the read can fill before the data is copied (even more
3749         apparent under valgrind).
3750
3751         * src/vte-private.h:
3752         * src/vte.c: (vte_terminal_io_read):
3753
3754 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3755
3756         Use the display stashed inside the font and not the default display!
3757
3758         * src/vtexft.c: (_vte_xft_char_exists), (_vte_xft_text_extents),
3759         (_vte_xft_font_open), (_vte_xft_font_close),
3760         (_vte_xft_font_for_char), (_vte_xft_draw_text):
3761
3762 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3763
3764         A mixed bag of cleanups.
3765
3766         * configure.in:
3767         * src/pty.c: (_vte_pty_set_utf8):
3768                 Test for existence of tc[sg]etattr.
3769         * src/vte-private.h:
3770         * src/vte.c: (vte_terminal_emit_adjustment_changed),
3771         (vte_terminal_queue_adjustment_changed),
3772         (vte_terminal_set_color_internal), (vte_terminal_handle_sequence),
3773         (_vte_terminal_enable_input_source), (vte_terminal_io_read),
3774         (vte_terminal_init), (vte_terminal_unrealize),
3775         (vte_terminal_finalize), (vte_terminal_background_update),
3776         (vte_terminal_queue_background_update),
3777         (vte_terminal_emit_pending_signals), (process_timeout),
3778         (update_repeat_timeout), (update_timeout):
3779                 Move idle signal emission to display handlers.
3780         * src/vtedraw.h:
3781                 Add '&' to the single width characters.
3782         * src/vteseq.c: (_vte_sequence_get_handler):
3783         * src/vteseq.h:
3784                 Drop the extraneous GQuark parameter.
3785         * src/vtexft.c: (_vte_xft_set_text_font):
3786                 Avoid use of strlen for a compile-time fixed length string.
3787
3788 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3789
3790         Bug 147784 – cursor unvisible under mouse highlight
3791
3792         Original patch by Chris Health
3793
3794         * src/vte.c: (vte_terminal_paint):
3795                 Reverse cursor color if it is in the selected region and draw
3796                 it as an outline.
3797
3798 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3799
3800         Bug 368894 – crash in Terminal: I started gnome-terminal...
3801
3802         * src/vtebg.c: (vte_bg_cache_search), (vte_bg_get_pixmap),
3803         (vte_bg_get_pixbuf):
3804                 When retrieving a cached pixmap check that the visual
3805                 matches the current request.
3806
3807 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3808
3809         Use gdk_error_trap_{push,pop} around raw Xft calls - about a
3810         path outside of vte_draw_{begin,end}.
3811
3812         * src/vtexft.c: (_vte_xft_set_text_font):
3813
3814 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3815
3816         Use gdk_error_trap_{push,pop} around raw X11 and Xft calls.
3817         cf Bug 368894.
3818
3819         * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_start),
3820         (_vte_xft_end):
3821
3822 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3823
3824         Use gperf to calculate a more optimal vte_sequence_get_handler().
3825         This reduces vte_sequence_get_handler() from ~13% of the runtime
3826         during 'seq 1 1e6' to ~.5% (cumulative).
3827
3828         * src/Makefile.am:
3829         * src/vteseq-2.c: (vteseq_2_hash), (vteseq_2_lookup):
3830         * src/vteseq-2.gperf:
3831         * src/vteseq-n.c: (vteseq_n_hash), (vteseq_n_lookup):
3832         * src/vteseq-n.gperf:
3833         * src/vteseq.c: (_vte_sequence_get_handler):
3834
3835 2007-01-31  Chris Wilson  <chris@chris-wilson.co.uk>
3836
3837         Rudimentary vim scrolling benchmark.
3838
3839         * perf/Makefile.am:
3840         * perf/UTF-8-demo.txt:
3841         * perf/scroll.vim:
3842         * perf/vim.sh:
3843
3844 2007-01-30  Chris Wilson  <chris@chris-wilson.co.uk>
3845
3846         Bug 402329 – Rendering problem with underlines and cursor
3847
3848         * src/vte.c: (vte_terminal_paint):
3849                 Check hilite state when redrawing character under cursor.
3850
3851 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3852
3853         * src/vte-private.h:
3854         * src/vte.c: (vte_terminal_io_read):
3855                 Clean up the read IO loop.
3856
3857 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3858
3859         NULL return from pcre_study() does not necessarily mean an error
3860         occurred.
3861
3862         * src/vteregex.c: (_vte_regex_compile), (_vte_regex_exec):
3863
3864 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3865
3866         * src/vte.c: (_vte_terminal_set_pointer_visible),
3867         (_vte_terminal_fudge_pango_colors):
3868                 Kill a couple more compiler warnings.
3869
3870 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3871
3872         Bug 336105 – gnome-terminal crashes when termcap not found
3873
3874         * src/matcher.c: (_vte_matcher_init):
3875         * src/vte-private.h:
3876         * src/vte.c: (vte_terminal_set_default_tabstops),
3877         (vte_terminal_key_press), (vte_terminal_set_emulation),
3878         (_vte_terminal_inline_error_message), (vte_terminal_set_termcap),
3879         (vte_terminal_init), (vte_terminal_finalize),
3880         (vte_terminal_draw_cells):
3881                 Detect and issue an inline warning when we fail
3882                 to load a termcap.
3883
3884 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3885
3886         Tighten the invalidated cells.
3887
3888         * src/vte.c: (_vte_terminal_select_text):
3889         * src/vteseq.c: (vte_sequence_handler_cb):
3890
3891 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3892
3893         More compiler warnings.
3894
3895         * src/vtepangox.c: (_vte_pango_x_set_text_font),
3896         (_vte_pango_x_draw_text):
3897         * src/vteregex.c: (_vte_regex_exec):
3898
3899 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3900
3901         Detect availability of PCRE.
3902
3903         * configure.in:
3904         * src/Makefile.am:
3905
3906 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3907
3908         Improve handling of multi-row clears.
3909
3910         * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows),
3911         (vte_terminal_paint):
3912
3913 2007-01-29  Chris Wilson <chris@chris-wilson.co.uk>
3914
3915         Add debugging flags for printing out cells contents and attributes as
3916         they are rendered.
3917
3918         * src/debug.c: (_vte_debug_parse_string):
3919         * src/debug.h:
3920         * src/vte.c: (vte_terminal_draw_cells):
3921
3922 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3923
3924         * src/vte.c: (vte_terminal_draw_rows):
3925                 Don't issue glyph items for blank cells.
3926
3927 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3928
3929         * configure.in:
3930                 Add -Wshadow to MAYBE_WARN
3931         * src/ring.c: (_vte_ring_remove):
3932         * src/table.c: (_vte_table_matchi):
3933         * src/vtedraw.c: (_vte_draw_clip):
3934         * src/vteskel.c:
3935                 Clean up some compiler warnings.
3936
3937 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3938
3939         * src/vteskel.c:
3940                 Add the NULL clip func to the skeleton function table.
3941
3942 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3943
3944         Update match hilite before showing the pointer as the choice of
3945         cursor depends on whether the pointer is above a matched region.
3946
3947         * src/vte.c: (vte_terminal_motion_notify),
3948         (vte_terminal_button_press), (vte_terminal_button_release):
3949
3950 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3951
3952         Only update the matched region if we move the pointer outside of the
3953         currently matched region.
3954         And only invalidate the cells underneath the matched region.
3955
3956         * src/vte.c: (_vte_invalidate_region),
3957         (vte_terminal_match_hilite_clear), (cursor_inside_match),
3958         (vte_terminal_match_hilite), (vte_terminal_draw_rows):
3959
3960 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3961
3962         * src/table.c: (_vte_table_free):
3963                 Fix a memleak.
3964
3965 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3966
3967         ==26147== 2,895 (352 direct, 2,543 indirect) bytes in 22 blocks are definitely lost in loss record 107 of 170
3968         ==26147==    at 0x4021380: malloc (vg_replace_malloc.c:149)
3969         ==26147==    by 0x4E85965: g_malloc (gmem.c:131)
3970         ==26147==    by 0x4E95537: g_slice_alloc (gslice.c:777)
3971         ==26147==    by 0x4E7C255: g_list_prepend (glist.c:95)
3972         ==26147==    by 0x428B887: vte_terminal_feed (vte.c:10991)
3973         ==26147==    by 0x429DD20: vte_terminal_io_read (vte.c:3214)
3974         ==26147==    by 0x4EA7A8C: g_io_unix_dispatch (giounix.c:162)
3975         ==26147==    by 0x4E7E481: g_main_context_dispatch (gmain.c:2045)
3976         ==26147==    by 0x4E8145E: g_main_context_iterate (gmain.c:2677)
3977         ==26147==    by 0x4E81808: g_main_loop_run (gmain.c:2881)
3978         ==26147==    by 0x45BA503: gtk_main (gtkmain.c:1148)
3979         ==26147==    by 0x805F7A3: main (terminal.c:1773)
3980
3981         * src/vte.c: (remove_from_active_list), (process_timeout),
3982         (update_repeat_timeout):
3983                 g_list_delete_link() is the one that actually frees the link.
3984                 s/g_list_remove_link/g_list_delete_link/.
3985
3986 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
3987
3988         ==26147== Conditional jump or move depends on uninitialised value(s)
3989         ==26147==    at 0x42AB9F7: _vte_rdb_search (vterdb.c:95)
3990         ==26147==    by 0x42ABB40: _vte_rdb_quark (vterdb.c:201)
3991         ==26147==    by 0x42ABB9F: _vte_rdb_get_hintstyle (vterdb.c:241)
3992         ==26147==    by 0x42A7952: _vte_fc_patterns_from_pango_font_desc (vtefc.c:302)
3993         ==26147==    by 0x42B4E9B: _vte_xft_set_text_font (vtexft.c:103)
3994         ==26147==    by 0x42A6BE5: _vte_draw_set_text_font (vtedraw.c:258)
3995         ==26147==    by 0x428C62B: vte_terminal_ensure_font (vte.c:5963)
3996         ==26147==    by 0x4290295: vte_terminal_size_request (vte.c:6613)
3997         ==26147==    by 0x4E25228: g_cclosure_marshal_VOID__BOXED (gmarshal.c:566)
3998         ==26147==    by 0x4E17038: g_type_class_meta_marshal (gclosure.c:567)
3999         ==26147==    by 0x4E188FC: g_closure_invoke (gclosure.c:490)
4000         ==26147==    by 0x4E29779: signal_emit_unlocked_R (gsignal.c:2370)
4001         ==26147== 
4002
4003         * src/vterdb.c: (_vte_rdb_get):
4004                 Check the result of the get_property_string before using the
4005                 returned values.
4006
4007 2007-01-29  Chris Wilson  <chris@chris-wilson.co.uk>
4008
4009         * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows):
4010                 Merge draw_cells() with the background clear, as generating
4011                 items for many rows and then splitting again in draw cells is
4012                 simply inefficient.
4013
4014 2007-01-28  Chris Wilson  <chris@chris-wilson.co.uk>
4015
4016         Bug 401215 – Multi-pass renderering
4017
4018         * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_clear_cells),
4019         (vte_terminal_draw_cells_with_attributes),
4020         (vte_terminal_draw_rows), (vte_terminal_paint):
4021                 Break the draw_rows() loop into two passes - first clear the
4022                 background and second render the text.
4023                 Add another function based on draw_cells() that just clears the
4024                 background and make clearing the background optional in
4025                 draw_cells() - updating callers accordingly.
4026                 Adventurous souls are required to clean up draw_rows().
4027
4028 2007-01-27  Chris Wilson  <chris@chris-wilson.co.uk>
4029
4030         Fix compilation *with* debugging enabled.
4031         Grrr.
4032
4033         * src/keymap.c: (_vte_keysym_print):
4034
4035 2007-01-27  Chris Wilson  <chris@chris-wilson.co.uk>
4036
4037         Fix compilation without debugging enabled.
4038
4039         * src/keymap.c: (_vte_keysym_print), (_vte_keymap_map):
4040         * src/vte.c: (display_control_sequence):
4041         * src/vteapp.c: (main):
4042
4043 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4044
4045         * src/debug.h:
4046                 Provide a safe fallback for non-C99 compilers (well actually
4047                 anything that isn't a recent gcc at the moment).
4048
4049 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4050
4051         Bug 157267 – _vte_terminal_fudge_pango_colors() breaks Japanese input style
4052
4053         Patch by ynakai@redhat.com.
4054
4055         * src/vte.c: (_vte_terminal_fudge_pango_colors):
4056                 Check the attributes for each cell rather than assuming the
4057                 pango attributes (and cell attributes) are the same for the
4058                 whole string.
4059
4060 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4061
4062         * src/vteseq.c: (vte_sequence_handler_vb):
4063                 Iterating over all queued exposures and drawing on top of the
4064                 flash does not sense. Simply flush the draw.
4065
4066 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4067
4068         s/_VTE_DEBUG_ON/_VTE_DEBUG_IF/ and don't include
4069         the code block inside the macro.
4070
4071         * src/debug.h:
4072         * src/iso2022.c: (process_control), (_vte_iso2022_process):
4073         * src/keymap.c: (_vte_keymap_map):
4074         * src/matcher.c: (_vte_matcher_init):
4075         * src/pty.c: (_vte_pty_run_on_pty):
4076         * src/table.c: (_vte_table_addi), (_vte_table_matchi),
4077         (_vte_table_extract_numbers), (_vte_table_match):
4078         * src/trie.c: (_vte_trie_addx):
4079         * src/vte.c: (vte_terminal_match_check_internal),
4080         (vte_terminal_match_check), (vte_terminal_handle_sequence),
4081         (vte_terminal_catch_child_exited), (vte_terminal_process_incoming),
4082         (vte_terminal_io_write), (vte_terminal_send),
4083         (vte_terminal_key_press), (vte_terminal_copy_cb),
4084         (vte_terminal_set_font_full), (vte_terminal_realize),
4085         (vte_terminal_paint), (vte_terminal_scroll):
4086         * src/vteapp.c: (main):
4087         * src/vtebg.c: (vte_bg_root_pixmap):
4088
4089 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4090
4091         Bug 400834 – Use a global display/process timeout
4092
4093         Currently each terminal uses it own display timeout. Given that
4094         typical usage is several active terminals, there is an immediate
4095         advantage (context switches, fairness, smoothness) to using a single
4096         common timeout.
4097
4098         * src/debug.c: (_vte_debug_parse_string):
4099         * src/debug.h:
4100                 Add VTE_DEBUG_TIMEOUT
4101         * src/vte-private.h:
4102         * src/vte.c: (update_regions), (_vte_invalidate_cells),
4103         (_vte_invalidate_all), (vte_terminal_init),
4104         (vte_terminal_class_init), (add_update_timeout),
4105         (remove_from_active_list), (remove_update_timeout),
4106         (add_process_timeout), (vte_terminal_stop_processing),
4107         (vte_terminal_is_processing), (process_timeout),
4108         (update_repeat_timeout), (update_timeout):
4109                 Modify to use a global timeout rather than individual
4110                 private timeouts.
4111
4112 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4113
4114         Unable to set background scrolling mode from cmdline due to variable
4115         name confusion.
4116
4117         * src/vteapp.c: (main):
4118                 --scroll should set scroll=TRUE rather than cursor=TRUE!
4119
4120 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4121
4122         Bug 401082 – double-draw issue
4123
4124         The main cause of this bug was not expanding the cleared area to cover
4125         all the cells affected by the draw and forgetting to offset the clear
4126         by VTE_PAD_WIDTH.
4127
4128         To counter the performance hit due to the expanded repaint area, each
4129         backend is presented with the opportunity to apply a clip to the
4130         exposed region before painting.
4131
4132         This also fixes bug 333157,
4133
4134         * src/vte.c: (_vte_invalidate_cells), (vte_terminal_paint_area),
4135         (vte_terminal_paint):
4136         * src/vtedraw.c: (_vte_draw_clip):
4137         * src/vtedraw.h:
4138         * src/vteft2.c: (_vte_ft2_end), (_vte_ft2_clip):
4139         * src/vtegl.c:
4140         * src/vtepango.c: (_vte_pango_clip):
4141         * src/vtepangox.c: (_vte_pango_x_clip):
4142         * src/vtexft.c: (_vte_xft_clip), (_vte_xft_draw_text):
4143
4144 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4145
4146         * src/vte.c: (vte_terminal_match_hilite):
4147         * src/vteseq.c: (vte_sequence_handler_ce),
4148         (vte_sequence_handler_dc), (vte_sequence_handler_ec):
4149                 Tighten the _vte_invalidate_cells() to only those that
4150                 we potentially modify.
4151
4152 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4153
4154         * src/vtexft.c: (_vte_xft_set_text_font):
4155                 Remove the additional pixel inter-character spacing.
4156                 Compactness over clarity ;)
4157
4158 2007-01-26  Chris Wilson  <chris@chris-wilson.co.uk>
4159
4160         Apply a one pixel fudge to the Xft character position and width.
4161         This greatly improves text appearance and hides the misrendering of
4162         pseudo-bold characters.
4163         cf bugs 317691, 333157.
4164
4165         * src/vte.c: (vte_terminal_paint):
4166                 Increase the cursor size to fit around the cell.
4167         * src/vtexft.c: (_vte_xft_set_text_font), (_vte_xft_draw_text):
4168                 Fudge the Xft font positioning.
4169
4170 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
4171
4172         Bug 318307 – Cursor colour changes to foreground when unfocused
4173
4174         Whilst setting the colour, tweak the position of the rectangle, and
4175         extended the invalidate region to account for the OBO nature of bold
4176         font.
4177
4178         * src/vte.c: (_vte_invalidate_cells):
4179                 Include the padding to accomodate cell effects.
4180         * src/vte.c: (vte_terminal_paint):
4181                 Use the cursor color for the rectangle when unfocused.
4182
4183 2007-01-26  Behdad Esfahbod  <behdad@gnome.org>
4184
4185         * src/vte.c (vte_terminal_visibility_notify): Correctly handle
4186         visibility events: set invalidated_all to FALSE, and invalidate_all
4187         if fully unobscured.
4188
4189 2007-01-26  Behdad Esfahbod  <behdad@gnome.org>
4190
4191         * src/vte.c (vte_terminal_visibility_notify): Make sure we redraw
4192         after becoming unobscured.  There still is a bug that I've not found,
4193         but after obscuring the widget and coming back, a first redraw
4194         happens, but no update after that.
4195
4196 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
4197
4198         * src/vte.c: (vte_terminal_draw_area):
4199                 Occasionally we generate an exposed area which is computed
4200                 as 0x0 cells. Discard early, before we spend an infinity
4201                 drawing nothing.
4202
4203 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
4204
4205         Janitorial work - near elimination of #ifdef VTE_DEBUG from within
4206         functions, trimming a thousand lines of code.
4207
4208         We introduce a _vte_debug_print macro to cover the more common
4209         occurrence of printing a message at a certain debug level.
4210         And a _VTE_DEBUG_ON for a conditional code block.
4211
4212         src/debug.h     |   11 
4213         src/iso2022.c   |  201 ++-------
4214         src/keymap.c    |   41 -
4215         src/matcher.c   |   24 -
4216         src/pty.c       |  134 +-----
4217         src/reaper.c    |   21 
4218         src/ring.c      |   78 +--
4219         src/table.c     |   11 
4220         src/trie.c      |   19 
4221         src/vte.c       | 1187 ++++++++++---------------------------------------
4222         src/vteaccess.c |  198 +++------
4223         src/vteapp.c    |   21 
4224         src/vtebg.c     |   43 --
4225         src/vteconv.c   |   60 +-
4226         src/vteconv.h   |   12 
4227         src/vtedraw.c   |    6 
4228         src/vtefc.c     |    4 
4229         src/vteft2.c    |    5 
4230         src/vteglyph.c  |   27 -
4231         src/vtepango.c  |   11 
4232         src/vtepangox.c |    7 
4233         src/vteregex.c  |    2 
4234         src/vteseq.c    |  385 +++++-------------
4235         src/vtexft.c    |   26 -
4236         24 files changed, 789 insertions(+), 1745 deletions(-)
4237
4238         * src/debug.h:
4239         * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
4240         (_vte_iso2022_state_new), (_vte_iso2022_state_set_codeset),
4241         (process_8_bit_sequence), (process_cdata), (process_control),
4242         (_vte_iso2022_process):
4243         * src/keymap.c: (_vte_keymap_map):
4244         * src/matcher.c: (_vte_matcher_init), (_vte_matcher_create),
4245         (_vte_matcher_destroy):
4246         * src/pty.c: (vte_pty_child_setup), (_vte_pty_run_on_pty),
4247         (_vte_pty_set_size), (_vte_pty_get_size), (_vte_pty_ptsname),
4248         (_vte_pty_open_unix98), (_vte_pty_open_with_helper),
4249         (_vte_pty_open):
4250         * src/reaper.c: (vte_reaper_emit_signal),
4251         (vte_reaper_child_watch_cb), (vte_reaper_init),
4252         (vte_reaper_finalize):
4253         * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
4254         (_vte_ring_remove):
4255         * src/table.c: (_vte_table_addi):
4256         * src/trie.c: (char_class_string_extract), (_vte_trie_addx),
4257         (_vte_trie_add):
4258         * src/vte.c: (update_regions), (_vte_invalidate_cells),
4259         (_vte_invalidate_all), (_vte_invalidate_cell),
4260         (_vte_invalidate_cursor_once),
4261         (vte_terminal_emit_selection_changed), (vte_terminal_emit_commit),
4262         (vte_terminal_emit_emulation_changed),
4263         (vte_terminal_emit_encoding_changed),
4264         (vte_terminal_emit_child_exited),
4265         (_vte_terminal_emit_contents_changed),
4266         (vte_terminal_emit_cursor_moved), (vte_terminal_emit_eof),
4267         (vte_terminal_emit_char_size_changed),
4268         (_vte_terminal_emit_status_line_changed),
4269         (vte_terminal_emit_increase_font_size),
4270         (vte_terminal_emit_decrease_font_size),
4271         (_vte_terminal_emit_text_inserted),
4272         (_vte_terminal_emit_text_deleted),
4273         (vte_terminal_emit_text_modified),
4274         (vte_terminal_emit_text_scrolled), (vte_terminal_deselect_all),
4275         (vte_terminal_match_check_internal), (vte_terminal_match_check),
4276         (vte_terminal_emit_adjustment_changed),
4277         (vte_terminal_queue_adjustment_changed),
4278         (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
4279         (vte_terminal_maybe_scroll_to_bottom), (vte_terminal_set_encoding),
4280         (_vte_terminal_set_pointer_visible), (vte_terminal_new),
4281         (vte_terminal_generate_bold), (_vte_terminal_insert_char),
4282         (vte_terminal_handle_sequence), (vte_terminal_catch_child_exited),
4283         (vte_terminal_fork_command),
4284         (vte_terminal_emit_pending_text_signals),
4285         (vte_terminal_process_incoming), (vte_terminal_io_read),
4286         (vte_terminal_io_write), (vte_terminal_send),
4287         (vte_terminal_im_commit), (vte_terminal_im_preedit_start),
4288         (vte_terminal_im_preedit_end), (vte_terminal_im_preedit_changed),
4289         (vte_terminal_configure_toplevel),
4290         (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
4291         (vte_terminal_key_press), (vte_terminal_paste_cb),
4292         (vte_terminal_match_hilite_clear), (vte_terminal_match_hilite),
4293         (vte_terminal_clear_cb), (vte_terminal_copy_cb),
4294         (vte_terminal_copy), (vte_terminal_paste),
4295         (vte_terminal_start_selection), (vte_terminal_extend_selection),
4296         (vte_terminal_autoscroll), (vte_terminal_motion_notify),
4297         (vte_terminal_button_press), (vte_terminal_button_release),
4298         (vte_terminal_focus_in), (vte_terminal_focus_out),
4299         (vte_terminal_set_font_full), (vte_terminal_set_size),
4300         (vte_terminal_handle_scroll), (vte_terminal_set_emulation),
4301         (vte_terminal_set_termcap), (vte_terminal_reset_rowdata),
4302         (vte_terminal_fc_settings_changed), (vte_terminal_init),
4303         (vte_terminal_size_request), (vte_terminal_size_allocate),
4304         (vte_terminal_unrealize), (vte_terminal_finalize),
4305         (vte_terminal_realize), (vte_terminal_draw_cells),
4306         (_vte_terminal_map_pango_color), (vte_terminal_draw_area),
4307         (vte_terminal_paint), (vte_terminal_expose), (vte_terminal_scroll),
4308         (vte_terminal_class_init), (vte_terminal_copy_clipboard),
4309         (vte_terminal_paste_clipboard), (vte_terminal_copy_primary),
4310         (vte_terminal_paste_primary), (vte_terminal_background_update),
4311         (vte_terminal_queue_background_update),
4312         (vte_terminal_set_background_saturation),
4313         (vte_terminal_set_background_tint_color),
4314         (vte_terminal_set_background_transparent),
4315         (vte_terminal_set_background_image),
4316         (vte_terminal_set_background_image_file),
4317         (vte_terminal_set_word_chars), (process_timeout),
4318         (update_repeat_timeout), (update_timeout):
4319         * src/vteaccess.c: (xy_from_offset), (emit_text_caret_moved),
4320         (emit_text_changed_insert), (emit_text_changed_delete),
4321         (vte_terminal_accessible_update_private_data_if_needed),
4322         (vte_terminal_accessible_text_modified),
4323         (vte_terminal_accessible_text_scrolled),
4324         (vte_terminal_accessible_invalidate_cursor),
4325         (vte_terminal_accessible_finalize),
4326         (vte_terminal_accessible_get_text),
4327         (vte_terminal_accessible_get_text_somewhere),
4328         (vte_terminal_accessible_get_run_attributes),
4329         (vte_terminal_accessible_text_init),
4330         (vte_terminal_accessible_component_init),
4331         (vte_terminal_accessible_action_init),
4332         (vte_terminal_accessible_factory_new):
4333         * src/vteapp.c: (destroy_and_quit_eof), (destroy_and_quit_exited),
4334         (take_xconsole_ownership), (main):
4335         * src/vtebg.c: (vte_bg_root_pixmap), (vte_bg_set_root_pixmap),
4336         (_vte_bg_resize_pixbuf):
4337         * src/vteconv.c: (_vte_conv_utf8_utf8), (_vte_conv_open),
4338         (_vte_conv), (_vte_conv_cu), (_vte_conv_uu), (_vte_conv_uc):
4339         * src/vteconv.h:
4340         * src/vtedraw.c: (_vte_draw_new):
4341         * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description):
4342         * src/vteft2.c: (_vte_ft2_draw_text):
4343         * src/vteglyph.c: (_vte_glyph_cache_free),
4344         (_vte_glyph_cache_set_font_description):
4345         * src/vtepango.c: (_vte_pango_set_text_font),
4346         (_vte_pango_draw_text):
4347         * src/vtepangox.c: (_vte_pango_x_set_text_font):
4348         * src/vteregex.c: (_vte_regex_exec):
4349         * src/vteseq.c: (vte_terminal_emit_deiconify_window),
4350         (vte_terminal_emit_iconify_window),
4351         (vte_terminal_emit_icon_title_changed),
4352         (vte_terminal_emit_window_title_changed),
4353         (vte_terminal_emit_raise_window), (vte_terminal_emit_lower_window),
4354         (vte_terminal_emit_maximize_window),
4355         (vte_terminal_emit_refresh_window),
4356         (vte_terminal_emit_restore_window),
4357         (vte_terminal_emit_move_window), (vte_terminal_emit_resize_window),
4358         (vte_sequence_handler_set_title_internal),
4359         (vte_sequence_handler_decset_internal), (vte_sequence_handler_bt),
4360         (vte_sequence_handler_application_keypad),
4361         (vte_sequence_handler_normal_keypad),
4362         (vte_sequence_handler_reset_mode), (vte_sequence_handler_decset),
4363         (vte_sequence_handler_decreset),
4364         (vte_sequence_handler_erase_in_display),
4365         (vte_sequence_handler_erase_in_line),
4366         (vte_sequence_handler_restore_mode),
4367         (vte_sequence_handler_save_mode),
4368         (vte_sequence_handler_window_manipulation):
4369         * src/vtexft.c: (_vte_xft_set_text_font):
4370
4371 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
4372
4373         Bug 317449 – The cursor disappears when clicking on windows above gnome-terminal
4374
4375         Enter a command that causes partial obscuration of the terminal,
4376         though it must cover the cursor. Close the new window, observe the
4377         pointer disappears.
4378
4379         The issue is that we hide the pointer whilst typing and show it after
4380         receiving a mouse movement. However in this case we steal the pointer
4381         away from the terminal without any mouse events and the cursor remains
4382         invisible.
4383
4384         * src/vte.c: (vte_terminal_focus_in):
4385                 Ensure the mouse pointer is visible on focus-in.
4386
4387 2007-01-26  Chris Wilson <chris@chris-wilson.co.uk>
4388
4389         Spend half an hour a day killing warnings...
4390
4391         * configure.in:
4392                 Remove -Wswitch-enum from MAYBE_WARN. I am that lazy.
4393         * src/buffer.c:
4394         * src/iso2022.c: (_vte_iso2022_is_ambiguous),
4395         (_vte_iso2022_ambiguous_width), (_vte_iso2022_map_get),
4396         (_vte_iso2022_find_nextctl), (_vte_iso2022_sequence_length),
4397         (_vte_iso2022_fragment_input), (process_8_bit_sequence),
4398         (process_cdata), (_vte_iso2022_process_single), (process_control),
4399         (_vte_iso2022_process):
4400         * src/keymap.c: (_vte_keymap_map):
4401         * src/table.c:
4402         * src/trie.c: (char_class_none_extract),
4403         (char_class_digit_extract), (char_class_multi_extract),
4404         (char_class_any_extract), (unichar_snlen), (unichar_sncmp),
4405         (char_class_string_extract), (_vte_trie_addx), (_vte_trie_add),
4406         (_vte_trie_matchx), (_vte_trie_match), (_vte_trie_printx),
4407         (_vte_trie_print), (convert_mbstowcs), (main):
4408         * src/vte-private.h:
4409         * src/vte.c: (vte_terminal_find_charcell),
4410         (_vte_row_data_find_charcell), (vte_terminal_emit_commit),
4411         (vte_terminal_match_clear_all), (vte_terminal_match_remove),
4412         (vte_terminal_match_add), (vte_terminal_match_set_cursor),
4413         (vte_terminal_match_check_internal), (vte_terminal_set_colors),
4414         (vte_terminal_emit_pending_text_signals),
4415         (vte_terminal_is_word_char), (vte_terminal_finalize),
4416         (vte_terminal_realize), (_vte_terminal_map_pango_color),
4417         (_vte_terminal_apply_pango_attr),
4418         (_vte_terminal_translate_pango_cells),
4419         (vte_terminal_set_scrollback_lines):
4420         * src/vteseq.c: (vte_sequence_handler_decset_internal):
4421                 Fixup compiler warnings, mostly of the type mixing signed and
4422                 unsigned compares and pointers.
4423
4424 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4425
4426         * src/vte.c: (mark_input_source_invalid),
4427         (_vte_terminal_connect_pty_read), (mark_output_source_invalid),
4428         (_vte_terminal_connect_pty_write):
4429                 Use the GDestroyNotify to mark the source as invalid.
4430         * src/vte.c: (vte_terminal_ensure_font):
4431                 Protect ensure fonts against the VteDraw being destroyed.
4432         * src/vte.c: (vte_terminal_realize):
4433                 Reorder code to setup the style before the fonts.
4434         * src/vte.c: (vte_terminal_class_init):
4435                 The ->show() handler was redundant.
4436
4437 2007-01-25  Behdad Esfahbod  <behdad@gnome.org>
4438
4439         * src/vte.c (_vte_terminal_set_default_attributes),
4440         (_vte_invalidate_cells), (_vte_invalidate_all),
4441         (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
4442         (vte_terminal_visibility_notify), (vte_terminal_handle_scroll):
4443         Replace most of checks for terminal->pvt->visibility_state ==
4444         GDK_VISIBILITY_FULLY_OBSCURED by terminal->pvt->invalidated_all, and
4445         adapt.
4446
4447 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4448
4449         Bug 400759 – update problem with vte trunk
4450
4451         Otherwise known as the I can't count bug.
4452
4453         The number of rows and columns to paint were not properly taking
4454         account of the discrete nature of the cells ie although the floor(x)
4455         moved the start to the left by one, the extra cell was not being added
4456         to the width.
4457
4458         Also since the howmany() macro is pulled from <sys/param.h>, it can
4459         not be guarranteed to exist on all platforms. So in that case, provide
4460         a local copy.
4461
4462         * src/vte.c: (vte_terminal_draw_area):
4463                 Calculate the width as the distance between the explicity
4464                 calculated start and end cells.
4465
4466 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4467
4468         Bug 400671 – crash in Terminal: detaching of tabs
4469
4470         The fontdirty flag needed to be set on unrealize to ensure the fonts
4471         get set on the VteDraw should the terminal be realized again (e.g
4472         drag'n'dropping).
4473
4474         * src/vte.c: (vte_terminal_unrealize):
4475                 Set the fontdirty flag to TRUE.
4476         * src/vtexft.c: (_vte_xft_set_text_font),
4477         (_vte_xft_get_char_width), (_vte_xft_draw_text),
4478         (_vte_xft_draw_char):
4479                 Add safe guards to avoid dereferencing a NULL font as it
4480                 is possible for _vte_xft_font_open() to fail.
4481
4482 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4483
4484         Bug 399137 – UTF-8 problem in VteAccess
4485
4486         Improve the UTF-8 string handling within vteaccess.c
4487         A long and fraught history to this apparently simple change.
4488         Many thanks to Joanmarie Diggs and Rich Burridge for testing the
4489         patches and ensuring they caused no regressions in the ally interface.
4490
4491         * src/vteaccess.c: (emit_text_changed_insert),
4492         (emit_text_changed_delete):
4493                 Use g_utf8_pointer_to_offset() rather than open coding.
4494         * src/vteaccess.c: (vte_terminal_accessible_text_modified):
4495                 Convert the caret into a byte offset before performing the
4496                 ASCII character lookup.
4497                 Iterate backwards over the string using a g_utf8_prev_char,
4498                 and g_utf8_get_char.
4499
4500 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4501
4502         Bug 400493 – Mouse selection seriously broken
4503
4504         The rendering of non-text attributes, e.g highlight, backgrounds,
4505         underlines, was broken by the change to multi-row run of glyphs. This
4506         was most apparent when selecting regions with a mouse.
4507
4508         * src/vte.c: (_vte_invalidate_cursor_once),
4509         (vte_terminal_extend_selection),
4510         (vte_terminal_draw_rows), (vte_terminal_draw_area),
4511         (vte_terminal_paint):
4512                 Some janitorial work (a memleak, whitespace, improving debug
4513                 messages, comments).
4514         * src/vte.c: (vte_terminal_draw_cells):
4515                 Loop over cells and draw attributes for groups of cells on
4516                 each row.
4517
4518 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4519
4520         Bug 400438 – _vte_invalidate_all triggered on GDK_VISIBILITY_UNOBSCURED
4521
4522         * src/vte.c: (vte_terminal_visibility_notify):
4523                 Only force an _vte_invalidate_all if we can trivially detect
4524                 that we have switch from fully obscured to fully unobscured.
4525                 Otherwise, we will just handle the GDK expose in the normal
4526                 manner.
4527         * src/vte.c: (vte_terminal_expose):
4528                 Check the event area to see if we can use _vte_invalidate_all,
4529                 has a slight benefit of discarding further exposed area
4530                 processing.
4531                 
4532
4533 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4534
4535         GDK tries to coalesce multiple expose events into a single event.
4536         This is passed to the application as a large region containing
4537         multiple rectangles. The unfortunate effect of this is having
4538         broken the invalidated region into 2 small components for vim,
4539         the expose event was still operating on a single region covering
4540         both. The reason the effect was invisible to the eye is due to the
4541         double buffer - GDK generated a backing pixmap for the exposed event
4542         and only copied from the pixmap to the window exactly the pixels
4543         exposed. So we regenerated draw commands for the entire area, and
4544         only saved on the later blit.
4545
4546         The improvement to this is only issue draw commands for the individual
4547         rectangles rather than the region as a whole.
4548
4549         * src/vte.c: (vte_terminal_draw_area), (vte_terminal_paint),
4550         (vte_terminal_expose):
4551                 Paint the exposed rectangles not the event clipbox!
4552
4553 2007-01-25  Chris Wilson <chris@chris-wilson.co.uk>
4554
4555         Print out the painted area for VTE_DEBUG_UPDATES.
4556
4557         * src/vte.c: (vte_terminal_paint):
4558
4559 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4560
4561         cf Bug 400072 – Handling of ; in control sequences
4562
4563         Moral of the story: wait until the morning.
4564         Revert r1512, the mistaken attempt at parsing '\e[;30m'.
4565
4566         * src/table.c: (_vte_table_addi), (_vte_table_matchi),
4567         (_vte_table_match):
4568
4569 2007-01-24  Chris Wilson <chris@chris-wilson.co.uk>
4570
4571         cf Bug 399617 – Avoid memory allocations during an expose event.
4572
4573         Currently we cannot generate long glyph runs due to the text
4574         painting being broken up into single rows and setting a low
4575         max run cap. The benefit of longer runs is the backends can
4576         do more caching within a run and potentially generate fewer
4577         render calls and/or less network traffic.
4578
4579         In the simple test case, this increased the performance of a
4580         remote hexdump by 10%.
4581
4582         * src/vte.c: (vte_terminal_draw_rows), (vte_terminal_paint):
4583                 Scan entired exposed area for glyph runs.