diff --git a/src/ChangeLog b/src/ChangeLog index 599297136..1ff6e84dc 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2001-05-24 Pavel Roskin + + * widget.c (update_input) [HAVE_SLANG]: Work around a bug in + SLang 1.x - set charset to alternative when printing spaces. + 2001-05-22 Pavel Roskin * ext.c (exec_extension): Use g_free() on the result of diff --git a/src/widget.c b/src/widget.c index 44ebec87d..c4ba7a366 100644 --- a/src/widget.c +++ b/src/widget.c @@ -840,9 +840,24 @@ update_input (WInput *in, int clear_first) attrset (in->color); +#ifdef HAVE_SLANG + /* + * acs() and noacs() here are a workaround for what seems to be + * a bug in SLang 1.x (up to 1.4.4, but not in 0.99.38). Without + * them, the first dialog box to appear may have part of its + * frame displayed in ASCII characters instead of line drawing + * characters. Subshell support and color terminal are needed for + * the bug to show up. + */ + acs (); + SLsmg_fill_region (in->widget.y, in->widget.x, + 1, in->field_len - has_history, ' '); + noacs (); +#else widget_move (&in->widget, 0, 0); for (i = 0; i < in->field_len - has_history; i++) addch (' '); +#endif widget_move (&in->widget, 0, 0); for (i = 0, j = in->first_shown; i < in->field_len - has_history && in->buffer [j]; i++){