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