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