SMOLNET PORTAL home about changes
iiomenu.c: fixed tab width calculation - iomenu - interactive terminal-based selection menu	Err	bitreich.org	70
hgit clone git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu	URL:git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu	bitreich.org	70
1Log	/scm/iomenu/log.gph	bitreich.org	70
1Files	/scm/iomenu/files.gph	bitreich.org	70
1Refs	/scm/iomenu/refs.gph	bitreich.org	70
1Tags	/scm/iomenu/tag	bitreich.org	70
1README	/scm/iomenu/file/README.gph	bitreich.org	70
1LICENSE	/scm/iomenu/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 4b996da3d1d470de301037c3de2cf45d03325c48	/scm/iomenu/commit/4b996da3d1d470de301037c3de2cf45d03325c48.gph	bitreich.org	70
1parent 695c25f7dc0613e9aa3e9057b333ec22c0e580f9	/scm/iomenu/commit/695c25f7dc0613e9aa3e9057b333ec22c0e580f9.gph	bitreich.org	70
hAuthor: Josuah Demangeon <josuah.demangeon@gandi.net>	URL:mailto:josuah.demangeon@gandi.net	bitreich.org	70
iDate:   Mon,  4 Sep 2017 10:23:14 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iiomenu.c: fixed tab width calculation	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M iomenu.c                            |      23 ++++++++++++-----------	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 12 insertions(+), 11 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/iomenu.c b/iomenu.c	/scm/iomenu/file/iomenu.c.gph	bitreich.org	70
i@@ -116,13 +116,13 @@ reset_terminal(void)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static size_t	Err	bitreich.org	70
i-str_width(char *s)	Err	bitreich.org	70
i+width(char *s)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         int width = 0;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         while (*s) {	Err	bitreich.org	70
i                 if (*s++ == '\t')	Err	bitreich.org	70
i-                        width += (width + 7) % 8;	Err	bitreich.org	70
i+                        width += 8 - (width % 8);	Err	bitreich.org	70
i                 else	Err	bitreich.org	70
i                         width++;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i@@ -137,7 +137,7 @@ prev_page(int pos, int cols)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         pos -= pos > 0 ? 1 : 0;	Err	bitreich.org	70
i         for (col = 0; pos > 0; pos--)	Err	bitreich.org	70
i-                if ((col += str_width(matchv[pos]) + 2) > cols)	Err	bitreich.org	70
i+                if ((col += width(matchv[pos]) + 2) > cols)	Err	bitreich.org	70
i                         return pos + 1;	Err	bitreich.org	70
i         return pos;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i@@ -148,7 +148,7 @@ next_page(int pos, int cols)	Err	bitreich.org	70
i         int col;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         for (col = 0; pos < matchc; pos++)	Err	bitreich.org	70
i-                if ((col += str_width(matchv[pos]) + 2) > cols)	Err	bitreich.org	70
i+                if ((col += width(matchv[pos]) + 2) > cols)	Err	bitreich.org	70
i                         return pos;	Err	bitreich.org	70
i         return pos;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i@@ -169,12 +169,14 @@ move(signed int sign)	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i move_page(signed int sign)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        int i = current - current % rows + rows * sign;	Err	bitreich.org	70
i+        int i;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        if (!opt['l'])	Err	bitreich.org	70
i+        if (opt['l'] <= 0)	Err	bitreich.org	70
i                 return;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        if (0 > i || i > matchc)	Err	bitreich.org	70
i+        i = current - current % rows + rows * sign;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        if (!(0 < i && i < matchc))	Err	bitreich.org	70
i                 return;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         current = i - 1;	Err	bitreich.org	70
i@@ -232,6 +234,8 @@ print_lines(void)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         while (printed++ < rows)	Err	bitreich.org	70
i                 fputs("\n\033[K", stderr);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        fprintf(stderr, "\033[%dA\r\033[K", rows);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i@@ -273,7 +277,6 @@ print_screen(void)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (opt['l'] > 0) {	Err	bitreich.org	70
i                 print_lines();	Err	bitreich.org	70
i-                fprintf(stderr, "\033[%dA\r", rows);	Err	bitreich.org	70
i         } else {	Err	bitreich.org	70
i                 print_segments();	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i@@ -432,14 +435,12 @@ top:	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         case CSI('6'):  /* page down */	Err	bitreich.org	70
i                 if (fgetc(stdin) != '~') break;	Err	bitreich.org	70
i-                /* FALLTHROUGH */	Err	bitreich.org	70
i         case CTL('V'):	Err	bitreich.org	70
i                 move_page(+1);	Err	bitreich.org	70
i                 break;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         case CTL('I'):  /* tab */	Err	bitreich.org	70
i-                if (linec > 0)	Err	bitreich.org	70
i-                        strcpy(input, matchv[current]);	Err	bitreich.org	70
i+                if (linec > 0) strcpy(input, matchv[current]);	Err	bitreich.org	70
i                 filter();	Err	bitreich.org	70
i                 break;	Err	bitreich.org	70
i 	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/iomenu/commit/4b996da3d1d470d...
Content-Typetext/plain; charset=utf-8