]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Don't forget to flush the bidi cache when the user enables or
authorSimon Tatham <anakin@pobox.com>
Fri, 15 Oct 2004 11:14:42 +0000 (11:14 +0000)
committerSimon Tatham <anakin@pobox.com>
Fri, 15 Oct 2004 11:14:42 +0000 (11:14 +0000)
disables bidi or shaping, otherwise they'll have to do a manual
screen refresh to see any difference.

[originally from svn r4632]

terminal.c

index 1c10bf0fe6ea085c4cdb5522b2c7bf3d400b009b..0de47f9153e4774483f84b4ac7e2fdc6334f2fb6 100644 (file)
@@ -1134,6 +1134,22 @@ void term_reconfig(Terminal *term, Config *cfg)
        if (term->cfg.wordness[i] != cfg->wordness[i])
            reset_charclass = 1;
 
+    /*
+     * If the bidi or shaping settings have changed, flush the bidi
+     * cache completely.
+     */
+    if (term->cfg.arabicshaping != cfg->arabicshaping ||
+       term->cfg.bidi != cfg->bidi) {
+       for (i = 0; i < term->bidi_cache_size; i++) {
+           sfree(term->pre_bidi_cache[i].chars);
+           sfree(term->post_bidi_cache[i].chars);
+           term->pre_bidi_cache[i].width = -1;
+           term->pre_bidi_cache[i].chars = NULL;
+           term->post_bidi_cache[i].width = -1;
+           term->post_bidi_cache[i].chars = NULL;
+       }
+    }
+
     term->cfg = *cfg;                 /* STRUCTURE COPY */
 
     if (reset_wrap)