- mvwaddch(editw, TABLINE, spacing * i + 2, UI_ULCORNER_CHAR);
- mvwaddch(editw, TABLINE, spacing * i + 3, UI_LBOXLINE_CHAR);
- mvwaddstr(editw, TABLINE, spacing * i + 4, tab_names[i]);
- mvwaddch(editw, TABLINE, spacing * i + 11, UI_RBOXLINE_CHAR);
- mvwaddch(editw, TABLINE, spacing * i + 12, UI_URCORNER_CHAR);
+ int width = mbswidth(gettext(tab_names[i]), 0) + 5;
+
+ if(sum + width + 1> EDITW_COLS) {
+ statusline_msg(_("Tab name too wide for screen"));
+ break;
+ }
+
+ mvwaddch(editw, TABLINE+1, sum, UI_TEE_CHAR);
+ mvwaddch(editw, TABLINE+1, sum + width - 2, UI_TEE_CHAR);
+
+ mvwaddch(editw, TABLINE, sum, UI_ULCORNER_CHAR);
+ mvwaddch(editw, TABLINE, sum + 1, UI_LBOXLINE_CHAR);
+ mvwaddstr(editw, TABLINE, sum + 2, gettext(tab_names[i]));
+ mvwaddch(editw, TABLINE, sum + width - 3, UI_RBOXLINE_CHAR);
+ mvwaddch(editw, TABLINE, sum + width - 2, UI_URCORNER_CHAR);
+
+ if(i == tab) {
+ mvwaddch(editw, TABLINE+1, sum, UI_LRCORNER_CHAR);
+ for(j = 0; j < width - 3; j++)
+ mvwaddstr(editw, TABLINE+1, sum + j + 1, " ");
+ mvwaddch(editw, TABLINE+1, sum + width - 2, UI_LLCORNER_CHAR);
+ }
+ sum += width;