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