[PATCH] fix static linking with ncurses
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Wed Mar 11 06:29:15 GMT 2020
Hi Fabrice,
thanks for the patch, however, I think it's better to just remove the
definition of LINES and COLS so that there's just one copy of those
symbols. I've change it accordingly.
Thanks,
Adam
On Wed Feb 26, 2020 at 13:46:25 +0100, Fabrice Fontaine wrote:
> Prefix LINES and COLS with MINICOM_ to avoid the following build failure
> when building statically with ncurses:
>
> /home/giuliobenetti/autobuild/run/instance-1/output-1/per-package/minicom/host/bin/arm-linux-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -static -W -Wall -Wextra -std=gnu99 -fno-common -Wno-format-truncation -static -o minicom minicom.o vt100.o config.o help.o updown.o util.o dial.o window.o wkeys.o ipc.o windiv.o sysdep1.o sysdep1_s.o sysdep2.o rwconf.o main.o file.o getsdir.o wildmat.o common.o ../lib/libport.a -lncurses
> /home/giuliobenetti/autobuild/run/instance-1/output-1/per-package/minicom/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/giuliobenetti/autobuild/run/instance-1/output-1/per-package/minicom/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libncurses.a(lib_setup.o):(.bss+0x100): multiple definition of `COLS'; window.o:(.bss+0x38): first defined here
> /home/giuliobenetti/autobuild/run/instance-1/output-1/per-package/minicom/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/giuliobenetti/autobuild/run/instance-1/output-1/per-package/minicom/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libncurses.a(lib_setup.o):(.bss+0x104): multiple definition of `LINES'; window.o:(.bss+0x3c): first defined here
> collect2: error: ld returned 1 exit status
> Makefile:448: recipe for target 'minicom' failed
>
> Fixes:
> - http://autobuild.buildroot.org/results/d3edbab1f2cd0f7b790e2559dc8d489497ae02f3
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> ---
> src/config.c | 8 ++--
> src/dial.c | 10 ++---
> src/file.c | 8 ++--
> src/help.c | 4 +-
> src/main.c | 68 ++++++++++++++++-----------------
> src/minicom.c | 2 +-
> src/vt100.c | 2 +-
> src/windiv.c | 8 ++--
> src/window.c | 102 +++++++++++++++++++++++++-------------------------
> src/window.h | 2 +-
> 10 files changed, 107 insertions(+), 107 deletions(-)
>
> diff --git a/src/config.c b/src/config.c
> index 87901f0..3c26f9f 100644
> --- a/src/config.c
> +++ b/src/config.c
> @@ -1078,7 +1078,7 @@ static void doscrkeyb(void)
> } else {
> psets(P_STATLINE, N_("enabled"));
> /* See if it fits on screen */
> - if (LINES > 24)
> + if (MINICOM_LINES > 24)
> tempst = 0;
> }
> mc_wlocate(w, mbswidth(status_line) + 1, 2);
> @@ -1140,7 +1140,7 @@ static void doscrkeyb(void)
>
> if (st) {
> mc_wclose(st,0);
> - st = mc_wopen(0, LINES - 1, COLS - 1, LINES - 1, BNONE,
> + st = mc_wopen(0, MINICOM_LINES - 1, MINICOM_COLS - 1, MINICOM_LINES - 1, BNONE,
> XA_NORMAL, sfcolor, sbcolor, 1, 0, 1);
> show_status();
> }
> @@ -1159,7 +1159,7 @@ static void doscrkeyb(void)
>
> if (st) {
> mc_wclose(st,0);
> - st = mc_wopen(0, LINES - 1, COLS - 1, LINES - 1, BNONE,
> + st = mc_wopen(0, MINICOM_LINES - 1, MINICOM_COLS - 1, MINICOM_LINES - 1, BNONE,
> XA_NORMAL, sfcolor, sbcolor, 1, 0, 0);
> show_status();
> }
> @@ -1326,7 +1326,7 @@ int dotermmenu(void)
> } else {
> psets(P_STATLINE, N_("enabled"));
> /* See if it fits on screen */
> - if (LINES > 24 || use_status)
> + if (MINICOM_LINES > 24 || use_status)
> tempst = 0;
> }
> mc_wlocate(w, mbswidth(status_line) + 1, 3);
> diff --git a/src/dial.c b/src/dial.c
> index 5076b32..5ef7ac3 100644
> --- a/src/dial.c
> +++ b/src/dial.c
> @@ -1575,7 +1575,7 @@ void dialdir(void)
> *move_exit = N_(" Move entry up/down, Escape to exit");
> unsigned int tagmvlen = 0;
> size_t i;
> - int position_dialing_directory = ((COLS / 2) + 32 - DIALOPTS * DIAL_WIDTH) / 2;
> + int position_dialing_directory = ((MINICOM_COLS / 2) + 32 - DIALOPTS * DIAL_WIDTH) / 2;
>
> dprev = -1;
> dname[0] = 0;
> @@ -1586,11 +1586,11 @@ void dialdir(void)
> /* Alright, draw the dialing directory! */
>
> dirflush = 0;
> - x1 = (COLS / 2) - 37;
> - x2 = (COLS / 2) + 37;
> - dsub = mc_wopen(x1 - 1, LINES - 3, x2 + 1, LINES - 3, BNONE,
> + x1 = (MINICOM_COLS / 2) - 37;
> + x2 = (MINICOM_COLS / 2) + 37;
> + dsub = mc_wopen(x1 - 1, MINICOM_LINES - 3, x2 + 1, MINICOM_LINES - 3, BNONE,
> XA_REVERSE | stdattr, mfcolor, mbcolor, 0, 0, 1);
> - w = mc_wopen(x1, 2, x2, LINES - 6, BSINGLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
> + w = mc_wopen(x1, 2, x2, MINICOM_LINES - 6, BSINGLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
> mc_wcursor(w, CNONE);
> mc_wtitle(w, TMID, _("Dialing Directory"));
> mc_wputs(w,
> diff --git a/src/file.c b/src/file.c
> index be26afd..7c208a7 100644
> --- a/src/file.c
> +++ b/src/file.c
> @@ -491,11 +491,11 @@ static void init_filedir(void)
> int x1, x2;
>
> dirflush = 0;
> - x1 = (COLS / 2) - 37;
> - x2 = (COLS / 2) + 37;
> - dsub = mc_wopen(x1 - 1, LINES - 3, x2 + 1, LINES - 3, BNONE,
> + x1 = (MINICOM_COLS / 2) - 37;
> + x2 = (MINICOM_COLS / 2) + 37;
> + dsub = mc_wopen(x1 - 1, MINICOM_LINES - 3, x2 + 1, MINICOM_LINES - 3, BNONE,
> stdattr, mfcolor, mbcolor, 0, 0, 1);
> - main_w = mc_wopen(x1, 2, x2, LINES - 6, BSINGLE, stdattr, mfcolor,
> + main_w = mc_wopen(x1, 2, x2, MINICOM_LINES - 6, BSINGLE, stdattr, mfcolor,
> mbcolor, 0, 0, 1);
>
> if (ret_buf == NULL) {
> diff --git a/src/help.c b/src/help.c
> index 70cf8c6..3036d0a 100644
> --- a/src/help.c
> +++ b/src/help.c
> @@ -34,8 +34,8 @@ int help(void)
> const char *s;
> char buf[40];
>
> - x1 = (COLS / 2) - 34;
> - x2 = (COLS / 2) + 32;
> + x1 = (MINICOM_COLS / 2) - 34;
> + x2 = (MINICOM_COLS / 2) + 32;
> w = mc_wopen(x1, 2, x2, 18, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
>
> s = _("Minicom Command Summary");
> diff --git a/src/main.c b/src/main.c
> index 85bd4a5..8f8e8f7 100644
> --- a/src/main.c
> +++ b/src/main.c
> @@ -485,17 +485,17 @@ void init_emul(int type, int do_init)
> }
>
> /* See if we have space for a fixed status line */
> - maxy = LINES - 1;
> - if ((use_status || LINES > 24) &&
> + maxy = MINICOM_LINES - 1;
> + if ((use_status || MINICOM_LINES > 24) &&
> P_STATLINE[0] == 'e') {
> if (use_status) {
> - ypos = LINES;
> - maxy = LINES - 1;
> + ypos = MINICOM_LINES;
> + maxy = MINICOM_LINES - 1;
> } else {
> - ypos = LINES - 1;
> - maxy = LINES - 2;
> + ypos = MINICOM_LINES - 1;
> + maxy = MINICOM_LINES - 2;
> }
> - st = mc_wopen(0, ypos, COLS - 1, ypos, BNONE,
> + st = mc_wopen(0, ypos, MINICOM_COLS - 1, ypos, BNONE,
> st_attr, sfcolor, sbcolor, 1, 0, 1);
> mc_wredraw(st, 1);
> }
> @@ -508,7 +508,7 @@ void init_emul(int type, int do_init)
> num_hist_lines = 5000;
>
> /* Open a new main window, and define the configured history buffer size. */
> - us = mc_wopen(0, 0, COLS - 1, maxy,
> + us = mc_wopen(0, 0, MINICOM_COLS - 1, maxy,
> BNONE, XA_NORMAL, tfcolor, tbcolor, 1, num_hist_lines, 0);
>
> if (x >= 0) {
> @@ -520,8 +520,8 @@ void init_emul(int type, int do_init)
> us->wrap = wrapln;
>
> terminal = type;
> - lines = LINES - (st != NULL);
> - cols = COLS;
> + lines = MINICOM_LINES - (st != NULL);
> + cols = MINICOM_COLS;
>
> /* Install and reset the terminal emulator. */
> if (do_init) {
> @@ -583,10 +583,10 @@ static void show_status_fmt(const char *fmt)
> if (!st)
> return;
>
> - char buf[COLS];
> + char buf[MINICOM_COLS];
> int bufi = 0;
> int l = strlen(fmt);
> - for (int i = 0; i < l && bufi < COLS; ++i)
> + for (int i = 0; i < l && bufi < MINICOM_COLS; ++i)
> {
> if (fmt[i] == '%' && i + 1 < l)
> {
> @@ -596,70 +596,70 @@ static void show_status_fmt(const char *fmt)
> switch (func)
> {
> case '%':
> - bufi += snprintf(buf + bufi, COLS - bufi, "%%");
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "%%");
> break;
> case 'H':
> - bufi += snprintf(buf + bufi, COLS - bufi, "%sZ", esc_key());
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "%sZ", esc_key());
> break;
> case 'V':
> - bufi += snprintf(buf + bufi, COLS - bufi, "%s", VERSION);
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "%s", VERSION);
> break;
> case 'b':
> #ifdef USE_SOCKET
> if (portfd_is_socket == Socket_type_unix)
> - bufi += snprintf(buf + bufi, COLS - bufi, "unix-socket");
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "unix-socket");
> else if (portfd_is_socket == Socket_type_tcp)
> - bufi += snprintf(buf + bufi, COLS - bufi, "TCP");
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "TCP");
> else
> #endif /* USE_SOCKET */
> {
> if (P_SHOWSPD[0] == 'l')
> - bufi += snprintf(buf + bufi, COLS - bufi, "%6ld", linespd);
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "%6ld", linespd);
> else
> - bufi += snprintf(buf + bufi, COLS - bufi, "%s", P_BAUDRATE);
> - bufi += snprintf(buf + bufi, COLS - bufi, " %s%s%s", P_BITS, P_PARITY, P_STOPB);
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "%s", P_BAUDRATE);
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, " %s%s%s", P_BITS, P_PARITY, P_STOPB);
> }
> break;
> case 'T':
> switch (terminal)
> {
> case VT100:
> - bufi += snprintf(buf + bufi, COLS - bufi, "VT102");
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "VT102");
> break;
> case ANSI:
> - bufi += snprintf(buf + bufi, COLS - bufi, "ANSI");
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "ANSI");
> break;
> }
>
> break;
> case 'C':
> - bufi += snprintf(buf + bufi, COLS - bufi, cursormode == NORMAL ? "NOR" : "APP");
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, cursormode == NORMAL ? "NOR" : "APP");
> break;
>
> case 't':
> if (online < 0)
> - bufi += snprintf(buf + bufi, COLS - bufi, "%s",
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "%s",
> P_HASDCD[0] == 'Y' ? _("Offline") : _("OFFLINE"));
> else
> - bufi += snprintf(buf + bufi, COLS - bufi, "%s %ld:%ld",
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "%s %ld:%ld",
> P_HASDCD[0] == 'Y' ? _("Online") : _("ONLINE"),
> online / 3600, (online / 60) % 60);
> break;
>
> case 'D':
> {
> - char b[COLS - bufi];
> - bufi += snprintf(buf + bufi, COLS - bufi, "%s",
> + char b[MINICOM_COLS - bufi];
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "%s",
> shortened_devpath(b, sizeof(b), dial_tty));
> }
> break;
>
> case '$':
> - bufi += snprintf(buf + bufi, COLS - bufi, "%s", status_message);
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "%s", status_message);
> break;
>
> default:
> - bufi += snprintf(buf + bufi, COLS - bufi, "?%c", func);
> + bufi += snprintf(buf + bufi, MINICOM_COLS - bufi, "?%c", func);
> break;
> }
> }
> @@ -670,9 +670,9 @@ static void show_status_fmt(const char *fmt)
> }
> }
>
> - if (bufi < COLS - 1)
> - memset(buf + bufi, ' ', COLS - bufi);
> - buf[COLS - 1] = 0;
> + if (bufi < MINICOM_COLS - 1)
> + memset(buf + bufi, ' ', MINICOM_COLS - bufi);
> + buf[MINICOM_COLS - 1] = 0;
>
> if (size_changed || !current_status_line || strcmp(buf, current_status_line))
> {
> @@ -681,7 +681,7 @@ static void show_status_fmt(const char *fmt)
> mc_wprintf(st, "%s", buf);
> mc_wredraw(st, 1);
> ret_csr();
> - current_status_line = realloc(current_status_line, COLS);
> + current_status_line = realloc(current_status_line, MINICOM_COLS);
> assert(current_status_line);
> strcpy(current_status_line, buf);
> }
> @@ -814,7 +814,7 @@ static void showtemp(void)
> if (st)
> return;
>
> - st = mc_wopen(0, LINES - 1, COLS - 1, LINES - 1,
> + st = mc_wopen(0, MINICOM_LINES - 1, MINICOM_COLS - 1, MINICOM_LINES - 1,
> BNONE, st_attr, sfcolor, sbcolor, 1, 0, 1);
> show_status();
> tempst = 1;
> diff --git a/src/minicom.c b/src/minicom.c
> index cfdb763..d876cb2 100644
> --- a/src/minicom.c
> +++ b/src/minicom.c
> @@ -1502,7 +1502,7 @@ int main(int argc, char **argv)
> if (win_init(tfcolor, tbcolor, XA_NORMAL) < 0)
> leave("");
>
> - if (COLS < 40 || LINES < 10)
> + if (MINICOM_COLS < 40 || MINICOM_LINES < 10)
> leave(_("Sorry. Your screen is too small.\n"));
>
> if (dosetup) {
> diff --git a/src/vt100.c b/src/vt100.c
> index 82e395e..2f03549 100644
> --- a/src/vt100.c
> +++ b/src/vt100.c
> @@ -739,7 +739,7 @@ static void dec_mode(int on_off)
>
> if (on_off)
> {
> - us_alternate = mc_wopen(0, 0, COLS - 1, us->y2, BNONE, XA_NORMAL,
> + us_alternate = mc_wopen(0, 0, MINICOM_COLS - 1, us->y2, BNONE, XA_NORMAL,
> tfcolor, tbcolor, 1, 0, 0);
> vt_win = us_alternate;
> }
> diff --git a/src/windiv.c b/src/windiv.c
> index 2644dff..fb4d73c 100644
> --- a/src/windiv.c
> +++ b/src/windiv.c
> @@ -48,8 +48,8 @@ static WIN *vmc_tell(const char *fmt, va_list va)
>
> vsnprintf(buf, sizeof(buf), fmt, va);
>
> - w = mc_wopen((COLS / 2) - 2 - mbswidth(buf) / 2, 8,
> - (COLS / 2) + 2 + mbswidth(buf) / 2, 10,
> + w = mc_wopen((MINICOM_COLS / 2) - 2 - mbswidth(buf) / 2, 8,
> + (MINICOM_COLS / 2) + 2 + mbswidth(buf) / 2, 10,
> BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
> mc_wcursor(w, CNONE);
> mc_wlocate(w, 2, 1);
> @@ -104,7 +104,7 @@ int ask(const char *what, const char **s)
> size = mbswidth(what) / 2 + 2;
> offs = size - 5*num;
> }
> - w = mc_wopen((COLS / 2) - size , 8, (COLS / 2) + 1 + size, 9,
> + w = mc_wopen((MINICOM_COLS / 2) - size , 8, (MINICOM_COLS / 2) + 1 + size, 9,
> BSINGLE, stdattr, mfcolor, mbcolor, 0, 0, 1);
>
> dirflush = 0;
> @@ -167,7 +167,7 @@ char *input(char *s, char *buf, size_t bufsize)
> {
> WIN *w;
>
> - w = mc_wopen((COLS / 2) - 20, 11, (COLS / 2) + 20, 12,
> + w = mc_wopen((MINICOM_COLS / 2) - 20, 11, (MINICOM_COLS / 2) + 20, 12,
> BDOUBLE, stdattr, mfcolor, mbcolor, 1, 0, 1);
> mc_wputs(w, s);
> mc_wlocate(w, 0, 1);
> diff --git a/src/window.c b/src/window.c
> index c6cf0f1..66f2978 100644
> --- a/src/window.c
> +++ b/src/window.c
> @@ -104,7 +104,7 @@ static int sflag = 0;
>
> int useattr = 1;
> int dirflush = 1;
> -int LINES, COLS;
> +int MINICOM_LINES, MINICOM_COLS;
> int usecolor = 0;
> WIN *stdwin;
> /*
> @@ -266,12 +266,12 @@ static void _gotoxy(int x, int y)
> int tmp;
>
> /* Sanity check. */
> - if (x >= COLS || y > LINES || (x == curx && y == cury))
> + if (x >= MINICOM_COLS || y > MINICOM_LINES || (x == curx && y == cury))
> return;
>
> if (use_status) {
> /* Leaving status line? */
> - if (cury == LINES && y < cury) {
> + if (cury == MINICOM_LINES && y < cury) {
> outstr(FS);
> /* Re-set attributes. */
> tmp = curattr;
> @@ -282,7 +282,7 @@ static void _gotoxy(int x, int y)
> return;
> }
> /* Writing on status line? */
> - else if (y == LINES) {
> + else if (y == MINICOM_LINES) {
> /* From normal screen? */
> if (cury < y) {
> outstr(tgoto(TS, x, x));
> @@ -298,11 +298,11 @@ static void _gotoxy(int x, int y)
> }
> #else
> /* Sanity check. */
> - if (x >= COLS || y >= LINES || (x == curx && y == cury)) {
> + if (x >= MINICOM_COLS || y >= MINICOM_LINES || (x == curx && y == cury)) {
> # if 0
> - if (x >= COLS || y >= LINES)
> + if (x >= MINICOM_COLS || y >= MINICOM_LINES)
> fprintf(stderr, "OOPS: (x, y) == (%d, %d)\n",
> - COLS, LINES);
> + MINICOM_COLS, MINICOM_LINES);
> # endif
> return;
> }
> @@ -345,7 +345,7 @@ static void _write(wchar_t c, int doit, int x, int y, char attr, char color)
> * last line, last character. After scrolling, this "invisible"
> * character is automatically restored.
> */
> - if (_has_am && y >= LINES - 1 && x >= COLS - 1) {
> + if (_has_am && y >= MINICOM_LINES - 1 && x >= MINICOM_COLS - 1) {
> doit = 0;
> sflag = 1;
> oldc.value = c;
> @@ -353,9 +353,9 @@ static void _write(wchar_t c, int doit, int x, int y, char attr, char color)
> oldc.color = color;
> }
> #ifdef ST_LINE
> - if (x < COLS && y <= LINES)
> + if (x < MINICOM_COLS && y <= MINICOM_LINES)
> #else
> - if (x < COLS && y < LINES)
> + if (x < MINICOM_COLS && y < MINICOM_LINES)
> #endif
> {
> if (doit != 0) {
> @@ -380,7 +380,7 @@ static void _write(wchar_t c, int doit, int x, int y, char attr, char color)
> curx++;
> }
> if (doit >= 0) {
> - e = &gmap[x + y * COLS];
> + e = &gmap[x + y * MINICOM_COLS];
> e->value = c;
> e->attr = attr;
> e->color = color;
> @@ -428,7 +428,7 @@ void mc_wresize(WIN *win, int lines, int cols)
> for (x = 0; x < cols; x++) {
> n = &newmap[y + x * cols];
> if (x < win->xs && y < win->ys) {
> - e = &oldmap[y + x * COLS];
> + e = &oldmap[y + x * MINICOM_COLS];
> n->value = e->value;
> n->color = e->color;
> n->attr = e->attr;
> @@ -446,8 +446,8 @@ void mc_wresize(WIN *win, int lines, int cols)
> free(oldmap);
> if (win == stdwin) {
> gmap = newmap;
> - LINES = lines;
> - COLS = cols;
> + MINICOM_LINES = lines;
> + MINICOM_COLS = cols;
> } else
> win->map = newmap;
> }
> @@ -485,10 +485,10 @@ WIN *mc_wopen(int x1, int y1, int x2, int y2, int border, int attr,
> if (y1 < offs)
> y1 = offs;
> #if 0
> - if (x2 >= COLS - offs)
> - x2 = COLS - offs - 1;
> - if (y2 >= LINES - offs)
> - y2 = LINES - offs - 1;
> + if (x2 >= MINICOM_COLS - offs)
> + x2 = MINICOM_COLS - offs - 1;
> + if (y2 >= MINICOM_LINES - offs)
> + y2 = MINICOM_LINES - offs - 1;
> #endif
>
> w->xs = x2 - x1 + 1;
> @@ -531,7 +531,7 @@ WIN *mc_wopen(int x1, int y1, int x2, int y2, int border, int attr,
> bytes = (x2 - x1 + 1) * sizeof(ELM);
> /* Loop */
> for (y = y1; y <= y2; y++) {
> - memcpy(e, gmap + COLS * y + x1, bytes);
> + memcpy(e, gmap + MINICOM_COLS * y + x1, bytes);
> e += (x2 - x1 + 1);
> }
>
> @@ -649,7 +649,7 @@ void mc_wleave(void)
> ocursor = _curstype;
>
> setcbreak(0); /* Normal */
> - _gotoxy(0, LINES - 1);
> + _gotoxy(0, MINICOM_LINES - 1);
> _setattr(XA_NORMAL, COLATTR(WHITE, BLACK));
> _cursor(CNORMAL);
> if (CL != NULL)
> @@ -688,8 +688,8 @@ void mc_wreturn(void)
> _cursor(ocursor);
>
> e = gmap;
> - for (y = 0; y <LINES; y++) {
> - for(x = 0; x < COLS; x++) {
> + for (y = 0; y <MINICOM_LINES; y++) {
> + for(x = 0; x < MINICOM_COLS; x++) {
> _write(e->value, -1, x, y, e->attr, e->color);
> e++;
> }
> @@ -750,7 +750,7 @@ static int _wclreol(WIN *w)
>
> y = w->cury + w->y1;
>
> - if (w->direct && (w->x2 == COLS - 1) && CE) {
> + if (w->direct && (w->x2 == MINICOM_COLS - 1) && CE) {
> _gotoxy(w->curx + w->x1, y);
> _setattr(w->attr, w->color);
> outstr(CE);
> @@ -779,12 +779,12 @@ void mc_wscroll(WIN *win, int dir)
> * This improves performance on slow screens (eg ATARI ST) dramatically.
> */
> if (win->direct && SF != NULL &&
> - (dir == S_UP || SR != NULL) && (LINES == win->sy2 - win->sy1 + 1)) {
> + (dir == S_UP || SR != NULL) && (MINICOM_LINES == win->sy2 - win->sy1 + 1)) {
> doit = 0;
> phys_scr = 1;
> _setattr(win->attr, win->color);
> if (dir == S_UP) {
> - _gotoxy(0, LINES - 1);
> + _gotoxy(0, MINICOM_LINES - 1);
> outstr(SF);
> } else {
> _gotoxy(0, 0);
> @@ -795,7 +795,7 @@ void mc_wscroll(WIN *win, int dir)
> * If the window is as wide as the physical screen, we can
> * scroll it with insert/delete line (or set scroll region - vt100!)
> */
> - else if (win->direct && win->xs == COLS &&
> + else if (win->direct && win->xs == MINICOM_COLS &&
> ((CS != NULL && SF != NULL && SR != NULL)
> || (Dl != NULL && Al != NULL))) {
> doit = 0;
> @@ -806,7 +806,7 @@ void mc_wscroll(WIN *win, int dir)
> * big as the physical screen, we don't _have_ to
> * initialize it.
> */
> - if (win->sy2 == LINES - 1 && win->sy1 == 0)
> + if (win->sy2 == MINICOM_LINES - 1 && win->sy1 == 0)
> fs = 1;
> if (!fs) {
> outstr(tgoto(CS, win->sy2, win->sy1));
> @@ -820,7 +820,7 @@ void mc_wscroll(WIN *win, int dir)
> outstr(SR);
> }
> if (!fs) {
> - outstr(tgoto(CS, LINES - 1, 0));
> + outstr(tgoto(CS, MINICOM_LINES - 1, 0));
> cury = 0;
> }
> _gotoxy(0, win->sy2);
> @@ -843,9 +843,9 @@ void mc_wscroll(WIN *win, int dir)
> * to the lower right. After scrolling we have to restore
> * the non-visible character that is now visible.
> */
> - if (sflag && win->sy2 == (LINES - 1) && win->sy1 != win->sy2) {
> + if (sflag && win->sy2 == (MINICOM_LINES - 1) && win->sy1 != win->sy2) {
> if (dir == S_UP) {
> - _write(oldc.value, 1, COLS - 1, LINES - 2,
> + _write(oldc.value, 1, MINICOM_COLS - 1, MINICOM_LINES - 2,
> oldc.attr, oldc.color);
> }
> sflag = 0;
> @@ -858,7 +858,7 @@ void mc_wscroll(WIN *win, int dir)
> win->sy2 == win->y2 && win->sy1 == win->y1) {
>
> /* Calculate screen buffer */
> - e = gmap + win->y1 * COLS + win->x1;
> + e = gmap + win->y1 * MINICOM_COLS + win->x1;
>
> /* Calculate history buffer */
> f = win->histbuf + (win->xs * win->histline);
> @@ -903,7 +903,7 @@ void mc_wscroll(WIN *win, int dir)
> /* Now scroll the memory image. */
> if (dir == S_UP) {
> for (y = win->sy1 + 1; y <= win->sy2; y++) {
> - e = gmap + y * COLS + win->x1;
> + e = gmap + y * MINICOM_COLS + win->x1;
> for (x = win->x1; x <= win->x2; x++) {
> _write(e->value, win->direct && doit, x, y - 1, e->attr, e->color);
> e++;
> @@ -915,7 +915,7 @@ void mc_wscroll(WIN *win, int dir)
> _wclreol(win);
> } else {
> for (y = win->sy2 - 1; y >= win->sy1; y--) {
> - e = gmap + y * COLS + win->x1;
> + e = gmap + y * MINICOM_COLS + win->x1;
> for (x = win->x1; x <= win->x2; x++) {
> _write(e->value, win->direct && doit, x, y + 1, e->attr, e->color);
> e++;
> @@ -1195,7 +1195,7 @@ void mc_wcurbar(WIN *w, int y, int attr)
>
> y += w->y1;
>
> - e = gmap + y * COLS + w->x1;
> + e = gmap + y * MINICOM_COLS + w->x1;
>
> /* If we can't do reverse, just put a '>' in front of
> * the line. We only support XA_NORMAL & XA_REVERSE.
> @@ -1447,7 +1447,7 @@ void mc_winclr(WIN *w)
> /* contains them for cosmetic purposes or as separators. */
> for (m = w->y2; m >= w->y1; m--) {
> /* Start of this line in the global map. */
> - e = gmap + m * COLS + w->x1;
> + e = gmap + m * MINICOM_COLS + w->x1;
>
> /* Quick check to see if line is empty. */
> for (i = 0; i < w->xs; i++)
> @@ -1461,7 +1461,7 @@ void mc_winclr(WIN *w)
> /* Copy window into history buffer line-by-line. */
> for (y = w->y1; y <= m; y++) {
> /* Start of this line in the global map. */
> - e = gmap + y * COLS + w->x1;
> + e = gmap + y * MINICOM_COLS + w->x1;
>
> /* Now copy this line. */
> f = w->histbuf + (w->xs * w->histline); /* History buffer */
> @@ -1475,7 +1475,7 @@ void mc_winclr(WIN *w)
> _setattr(w->attr, w->color);
> w->curx = 0;
>
> - if (CL && w->y1 == 0 && w->y2 == LINES-1 && w->x1 == 0 && w->x2 == COLS-1) {
> + if (CL && w->y1 == 0 && w->y2 == MINICOM_LINES-1 && w->x1 == 0 && w->x2 == MINICOM_COLS-1) {
> w->direct = 0;
> curx = 0;
> cury = 0;
> @@ -1567,7 +1567,7 @@ void mc_winschar2(WIN *w, wchar_t c, int move)
> }
>
> odir = w->direct;
> - if (w->xs == COLS && IC != NULL) {
> + if (w->xs == MINICOM_COLS && IC != NULL) {
> /* We can use the insert character capability. */
> if (w->direct)
> outstr(IC);
> @@ -1589,7 +1589,7 @@ void mc_winschar2(WIN *w, wchar_t c, int move)
> buf = malloc(sizeof(ELM) * len);
> if (!buf)
> return; /* Umm... */
> - memcpy(buf, gmap + COLS * y + x, sizeof(ELM) * len);
> + memcpy(buf, gmap + MINICOM_COLS * y + x, sizeof(ELM) * len);
>
> /* Now, put the new character on screen. */
> mc_wputc(w, c);
> @@ -1625,14 +1625,14 @@ void mc_wdelchar(WIN *w)
> x = w->x1 + w->curx;
> y = w->y1 + w->cury;
>
> - if (w->direct && w->xs == COLS && DC != NULL) {
> + if (w->direct && w->xs == MINICOM_COLS && DC != NULL) {
> /*_gotoxy(x - 1, y);*/
> _gotoxy(x, y);
> outstr(DC);
> doit = 0;
> }
>
> - e = gmap + y * COLS + x + 1;
> + e = gmap + y * MINICOM_COLS + x + 1;
>
> for (; x < w->x2; x++) {
> _write(e->value, doit && w->direct, x, y, e->attr, e->color);
> @@ -1906,16 +1906,16 @@ int win_init(int fg, int bg, int attr)
> fprintf(stderr, _("No cursor motion capability (cm)\n"));
> return -1;
> }
> - LINES = COLS = 0;
> - getrowcols(&LINES, &COLS);
> + MINICOM_LINES = MINICOM_COLS = 0;
> + getrowcols(&MINICOM_LINES, &MINICOM_COLS);
> #ifdef BBS
> - LINES = lines;
> + MINICOM_LINES = lines;
> #endif
> - if (LINES == 0 && (LINES = tgetnum("li")) <= 0) {
> + if (MINICOM_LINES == 0 && (MINICOM_LINES = tgetnum("li")) <= 0) {
> fprintf(stderr, _("Number of terminal lines unknown\n"));
> return -1;
> }
> - if (COLS == 0 && (COLS = tgetnum("co")) <= 0) {
> + if (MINICOM_COLS == 0 && (MINICOM_COLS = tgetnum("co")) <= 0) {
> fprintf(stderr, _("Number of terminal columns unknown\n"));
> return -1;
> }
> @@ -2053,7 +2053,7 @@ int win_init(int fg, int bg, int attr)
>
>
> /* Memory for global map */
> - if ((gmap = malloc(sizeof(ELM) * (LINES + 1) * COLS)) == NULL) {
> + if ((gmap = malloc(sizeof(ELM) * (MINICOM_LINES + 1) * MINICOM_COLS)) == NULL) {
> fprintf(stderr, _("Not enough memory\n"));
> return -1;
> };
> @@ -2068,10 +2068,10 @@ int win_init(int fg, int bg, int attr)
> stdwin->doscroll = 1;
> stdwin->x1 = 0;
> stdwin->sy1 = stdwin->y1 = 0;
> - stdwin->x2 = COLS - 1;
> - stdwin->sy2 = stdwin->y2 = LINES - 1;
> - stdwin->xs = COLS;
> - stdwin->ys = LINES;
> + stdwin->x2 = MINICOM_COLS - 1;
> + stdwin->sy2 = stdwin->y2 = MINICOM_LINES - 1;
> + stdwin->xs = MINICOM_COLS;
> + stdwin->ys = MINICOM_LINES;
> stdwin->attr = attr;
> stdwin->color = COLATTR(fg, bg);
> stdwin->direct = 1;
> diff --git a/src/window.h b/src/window.h
> index 1b8eb12..97f3bdd 100644
> --- a/src/window.h
> +++ b/src/window.h
> @@ -62,7 +62,7 @@ typedef struct _win {
> * Stdwin is the whole screen
> */
> extern WIN *stdwin; /* Whole screen */
> -extern int LINES, COLS; /* Size of screen */
> +extern int MINICOM_LINES, MINICOM_COLS; /* Size of screen */
> extern int usecolor; /* Use ansi color escape sequences */
> extern int useattr; /* Use attributes (reverse, bold etc. ) */
> extern int dirflush; /* Direct flush after write */
> --
> 2.25.0
>
>
> --
> minicom-devel mailing list <minicom-devel at alioth-lists.debian.net>
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/minicom-devel
More information about the minicom-devel
mailing list