AmendHub

Download:

jcs

/

subtext

/

amendments

/

651

ansi: Minor fixes


jcs made amendment 651 1 day ago
--- ansi.c Sat Dec 6 14:56:58 2025 +++ ansi.c Tue Sep 22 16:10:45 2026 @@ -50,7 +50,7 @@ ansi_reset(struct session *s) char * ansi(struct session *s, ...) { - char ansi_tmp[10]; + char ansi_tmp[20]; char *ansi_out; va_list ap; short attr, val, val2, n; @@ -109,67 +109,61 @@ ansi(struct session *s, ...) /* these require N args */ case ANSI_DOWN_N: + val = va_arg(ap, short); if (s->vt100) { - snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dB", - va_arg(ap, short)); + snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dB", val); len = strlcat(ansi_out, ansi_tmp, sizeof(ansi_buf[0])); } else if (s->vt52) { - val = va_arg(ap, short); for (n = 0; n < val; n++) len = strlcat(ansi_out, "\33B", sizeof(ansi_buf[0])); } break; case ANSI_FORWARD_N: + val = va_arg(ap, short); if (s->vt100) { - snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dC", - va_arg(ap, short)); + snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dC", val); len = strlcat(ansi_out, ansi_tmp, sizeof(ansi_buf[0])); } else if (s->vt52) { - val = va_arg(ap, short); for (n = 0; n < val; n++) len = strlcat(ansi_out, "\33C", sizeof(ansi_buf[0])); } break; case ANSI_BACK_N: + val = va_arg(ap, short); if (s->vt100) { - snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dD", - va_arg(ap, short)); + snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dD", val); len = strlcat(ansi_out, ansi_tmp, sizeof(ansi_buf[0])); } else if (s->vt52) { - val = va_arg(ap, short); for (n = 0; n < val; n++) len = strlcat(ansi_out, "\33D", sizeof(ansi_buf[0])); } break; case ANSI_UP_N: + val = va_arg(ap, short); if (s->vt100) { - snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dF", - va_arg(ap, short)); + snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dF", val); len = strlcat(ansi_out, ansi_tmp, sizeof(ansi_buf[0])); } else if (s->vt52) { - val = va_arg(ap, short); for (n = 0; n < val; n++) len = strlcat(ansi_out, "\33A", sizeof(ansi_buf[0])); } break; case ANSI_INSERT_LINES_N: + val = va_arg(ap, short); if (s->vt100) { - snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dL", - va_arg(ap, short)); + snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dL", val); len = strlcat(ansi_out, ansi_tmp, sizeof(ansi_buf[0])); } else if (s->vt52) { - val = va_arg(ap, short); for (n = 0; n < val; n++) len = strlcat(ansi_out, "\33L", sizeof(ansi_buf[0])); } break; case ANSI_DELETE_LINES_N: + val = va_arg(ap, short); if (s->vt100) { - snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dM", - va_arg(ap, short)); + snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%dM", val); len = strlcat(ansi_out, ansi_tmp, sizeof(ansi_buf[0])); } else if (s->vt52) { - val = va_arg(ap, short); for (n = 0; n < val; n++) len = strlcat(ansi_out, "\33M", sizeof(ansi_buf[0])); } @@ -196,16 +190,17 @@ ansi(struct session *s, ...) case ANSI_CURSOR_LINE_COL: val = va_arg(ap, short); val2 = va_arg(ap, short); - if (s->vt100) + if (s->vt100) { /* line, column */ snprintf(ansi_tmp, sizeof(ansi_tmp), "\33[%d;%dH", val, val2); - else if (s->vt52) + len = strlcat(ansi_out, ansi_tmp, sizeof(ansi_buf[0])); + } else if (s->vt52) { /* column, line as chr(col)+31,chr(line)+31 */ snprintf(ansi_tmp, sizeof(ansi_tmp), "\33Y%c%c", val2 + 31, val + 31); - len = strlcat(ansi_out, ansi_tmp, sizeof(ansi_buf[0])); + len = strlcat(ansi_out, ansi_tmp, sizeof(ansi_buf[0])); + } break; - case ANSI_SAVE_CURSOR: if (s->vt100) len = strlcat(ansi_out, "\33[s", sizeof(ansi_buf[0])); @@ -218,7 +213,6 @@ ansi(struct session *s, ...) else if (s->vt52) len = strlcat(ansi_out, "\338", sizeof(ansi_buf[0])); break; - default: panic("ansi: Unknown ANSI attribute %d", attr); }