no error in simple horizontal session - iomenu - interactive terminal-based selection menu
(HTM) git clone git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
(DIR) commit e58594b7646d9c29a192174f194359b039001909
(DIR) parent 8be6c99abe504ab6090d28a65d19c0c83bb36e75
(HTM) Author: Josuah Demangeonā ā µ <mail@josuah.net>
Date: Sat, 18 Mar 2017 11:42:27 +0100
no error in simple horizontal session
Diffstat:
M iomenu.c | 20 ++++----------------
1 file changed, 4 insertions(+), 16 deletions(-)
---
(DIR) diff --git a/iomenu.c b/iomenu.c
@@ -194,21 +194,8 @@ print_column(size_t pos, size_t col, size_t cols)
{
fputs(pos == current ? "\033[30;47m " : " ", stderr);
- for (size_t i = 0; col < cols ;) {
- int len = mblen(linev[pos]->text + i, BUFSIZ - i);
-
- if (len < 0) {
- i++;
- continue;
- } else if (len == 0) {
- break;
- }
-
- col += linev[pos]->text[i] = '\t' ? pos + 1 % 8 : 1;
-
- for (; len > 0; len--, i++)
- fputc(linev[pos]->text[i], stderr);
- }
+ for (size_t i = 0; col + i < cols && linev[pos]->text[i]; i++)
+ fputc(linev[pos]->text[i], stderr);
fputs(pos == current ? " \033[m" : " ", stderr);
@@ -221,7 +208,7 @@ print_columns(size_t cols)
{
size_t col = 20;
- for (size_t i = offset; col < cols; i++)
+ for (size_t i = offset; col < cols && i < linec; i++)
col = print_column(i, col, cols);
}
@@ -254,6 +241,7 @@ print_screen(int tty_fd)
print_lines(count, w.ws_col);
fprintf(stderr, "\033[%ldA", count);
} else {
+ fputs("\033[20C", stderr);
print_columns(w.ws_col);
}