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