sacc

sacc - sacc(omys), simple console gopher client (config)
git clone git://git.codemadness.org/sacc
Log | Files | Refs | LICENSE

commit d9488c74f50b137dc91851437ffa4cbaf64c1d00
parent e6daee96e9c73d29f6e51e8400d66a3511d36526
Author: Julian Schweinsberg <pazz0@0xfa.de>
Date:   Mon, 31 Mar 2025 17:55:39 +0200

Some sort of maintenance of ui_rogue

- Add Rainer Holzner's fix, regarding Ctrl+D in uiprompt, to ui_rogue
- Change tparm to tiparm
- Add something important to the ui_rogue_readme

Diffstat:
Mui_rogue.c | 122++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mui_rogue_readme | 1+
2 files changed, 62 insertions(+), 61 deletions(-)

diff --git a/ui_rogue.c b/ui_rogue.c @@ -651,10 +651,10 @@ dla(struct rect *rects, size_t l, uint32_t prng) { void rendermapchar(size_t i, size_t j) { if (map[i][j].tile->flags & Standout) - putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(enter_standout_mode)); putchar(map[i][j].tile->c); if (map[i][j].tile->flags & Standout) - putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(exit_standout_mode)); } void @@ -687,7 +687,7 @@ rendermap(void) for (i = oy; i < min(MAPHEIGHT, oy + (lines - 2)); i++) { if (i != oy) - putp(tparm(cursor_down, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_down)); rendermapline(i); } } @@ -970,7 +970,7 @@ uisetup(void) if (termset != OK) /* setupterm call exits on error */ termset = setupterm(NULL, 1, NULL); - putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(clear_screen)); fflush(stdout); } @@ -982,8 +982,8 @@ uicleanup(void) if (termset != OK) return; - putp(tparm(change_scroll_region, 0, lines-1, 0, 0, 0, 0, 0, 0, 0)); - putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(change_scroll_region, 0, lines-1)); + putp(tiparm(clear_screen)); fflush(stdout); } @@ -995,10 +995,10 @@ uiprompt(char *fmt, ...) size_t n; ssize_t r; - putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(save_cursor)); - putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0)); - putp(tparm(clr_eol, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, lines-1, 0)); + putp(tiparm(clr_eol)); va_start(ap, fmt); vsnprintf(bufout, sizeof(bufout), fmt, ap); @@ -1006,9 +1006,9 @@ uiprompt(char *fmt, ...) n = mbsprint(bufout, columns); - putp(tparm(clr_eol, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(clr_eol)); - putp(tparm(cursor_address, lines-1, n, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, lines-1, n)); tsacc.c_lflag |= (ECHO|ICANON); tcsetattr(0, TCSANOW, &tsacc); @@ -1019,10 +1019,10 @@ uiprompt(char *fmt, ...) tsacc.c_lflag &= ~(ECHO|ICANON); tcsetattr(0, TCSANOW, &tsacc); - putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(restore_cursor)); fflush(stdout); - if (r == -1) { + if (r == -1 || feof(stdin)) { clearerr(stdin); clear(&input); } else if (input[r - 1] == '\n') { @@ -1036,35 +1036,35 @@ void displaybar(char *s) { size_t n; - putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(save_cursor)); - putp(tparm(cursor_address, lines-2, 0, 0, 0, 0, 0, 0, 0, 0)); - putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, lines-2, 0)); + putp(tiparm(enter_standout_mode)); n = mbsprint(s, columns); for (n = columns - n; n; n--) putchar(' '); - putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(exit_standout_mode)); - putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(restore_cursor)); fflush(stdout); } void vdisplayinfoline(char *fmt, va_list ap) { - putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(save_cursor)); - putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, lines-1, 0)); vsnprintf(bufout, sizeof(bufout), fmt, ap); mbsprint(bufout, columns); - putp(tparm(clr_eol, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(clr_eol)); - putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(restore_cursor)); fflush(stdout); } @@ -1074,9 +1074,9 @@ uistatus(char *fmt, ...) va_list ap; size_t n; - putp(tparm(save_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(save_cursor)); - putp(tparm(cursor_address, lines-1, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, lines-1, 0)); va_start(ap, fmt); n = vsnprintf(bufout, sizeof(bufout), fmt, ap); @@ -1089,9 +1089,9 @@ uistatus(char *fmt, ...) mbsprint(bufout, columns); - putp(tparm(clr_eol, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(clr_eol)); - putp(tparm(restore_cursor, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(restore_cursor)); fflush(stdout); mygetchar(); @@ -1118,25 +1118,25 @@ menudraw(void) { size_t i, n; - putp(tparm(change_scroll_region, 1, lines-1, 0, 0, 0, 0, 0, 0, 0)); - putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(change_scroll_region, 1, lines-1)); + putp(tiparm(clear_screen)); - putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(enter_standout_mode)); puts(menutitle); - putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(exit_standout_mode)); if (menuselected - menuoffset >= lines - 1) menuoffset = menuselected - (lines - 1) + 1; for (i = menuoffset, n = 0; i < menunitems && n < lines - 1; i++, n++) { if (i != menuoffset) - putp(tparm(cursor_down, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_down)); if (i == menuselected) - putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(enter_standout_mode)); mbsprint(menuitems[i]->username, columns); if (i == menuselected) - putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); - putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(exit_standout_mode)); + putp(tiparm(column_address, 0)); } fflush(stdout); } @@ -1159,36 +1159,36 @@ showmenu(char *title, Item **item, size_t l) switch (mygetchar()) { case 'j': if (menuselected + 1 < menunitems) { - putp(tparm(cursor_address, 1 + menuselected - menuoffset, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, 1 + menuselected - menuoffset, 0)); mbsprint(menuitems[menuselected]->username, columns); menuselected++; - putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(column_address, 0)); if (menuselected - menuoffset >= lines - 1) { menuoffset++; - putp(tparm(scroll_forward, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(scroll_forward)); } else { - putp(tparm(cursor_down, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_down)); } - putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(enter_standout_mode)); mbsprint(menuitems[menuselected]->username, columns); - putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(exit_standout_mode)); } break; case 'k': if (menuselected > 0) { - putp(tparm(cursor_address, 1 + menuselected - menuoffset, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, 1 + menuselected - menuoffset, 0)); mbsprint(menuitems[menuselected]->username, columns); menuselected--; - putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(column_address, 0)); if (menuselected < menuoffset) { menuoffset = menuselected; - putp(tparm(scroll_reverse, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(scroll_reverse)); } else { - putp(tparm(cursor_up, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_up)); } - putp(tparm(enter_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(enter_standout_mode)); mbsprint(menuitems[menuselected]->username, columns); - putp(tparm(exit_standout_mode, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(exit_standout_mode)); } break; case ' ': @@ -1259,14 +1259,14 @@ describe(size_t x, size_t y, int verbose) void dungeondraw(void) { - putp(tparm(change_scroll_region, 0, lines-3, 0, 0, 0, 0, 0, 0, 0)); - putp(tparm(clear_screen, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(change_scroll_region, 0, lines-3)); + putp(tiparm(clear_screen)); rendermap(); - putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, py - oy, px - ox)); putchar('@'); - putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, py - oy, px - ox)); if (curentry->entry != curentry) { displaybar(curentry->username); @@ -1305,14 +1305,14 @@ move(ssize_t dx, ssize_t dy) nox = x - columns / 2; if (ox != nox) { - putp(tparm(cursor_address, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, 0, 0)); rendermap(); } else { - putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, py - oy, px - ox)); rendermapchar(py, px); } } else if (dy) { - putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, py - oy, px - ox)); rendermapchar(py, px); if (y < maplines / 2 || MAPHEIGHT <= maplines) { @@ -1324,18 +1324,18 @@ move(ssize_t dx, ssize_t dy) } if (noy < oy) { - putp(tparm(cursor_address, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, 0, 0)); for (i = (ssize_t)oy - 1; i >= (ssize_t)noy; i--) { - putp(tparm(scroll_reverse, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(scroll_reverse)); rendermapline(i); - putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(column_address, 0)); } } else if (noy > oy) { - putp(tparm(cursor_address, lines-3, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, lines-3, 0)); for (i = oy + 1; i <= noy; i++) { - putp(tparm(scroll_forward, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(scroll_forward)); rendermapline(i + maplines - 1); - putp(tparm(column_address, 0, 0, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(column_address, 0)); } } oy = noy; @@ -1343,9 +1343,9 @@ move(ssize_t dx, ssize_t dy) py = y; px = x; - putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, py - oy, px - ox)); putchar('@'); - putp(tparm(cursor_address, py - oy, px - ox, 0, 0, 0, 0, 0, 0, 0)); + putp(tiparm(cursor_address, py - oy, px - ox)); describe(px, py, 0); } diff --git a/ui_rogue_readme b/ui_rogue_readme @@ -17,6 +17,7 @@ space: interact (in dungeon), select (in menu) ESC or q: exit (in dungeon), close menu # Map explanation +@: That's you! E or ?: bookshelf/book (gopher type '0') L or >: elevator/staircase down/staircase up (gopher type '1' on the current server) O or 0: portal machine/portal (gopher type '1' on another server)