package/minicom: fix static linking with ncurses
authorFabrice Fontaine <fontaine.fabrice@gmail.com>
Wed, 26 Feb 2020 12:49:19 +0000 (13:49 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Wed, 26 Feb 2020 14:54:15 +0000 (15:54 +0100)
Fixes:
 - http://autobuild.buildroot.org/results/d3edbab1f2cd0f7b790e2559dc8d489497ae02f3

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/minicom/0001-fix-static-linking-with-ncurses.patch [new file with mode: 0644]

diff --git a/package/minicom/0001-fix-static-linking-with-ncurses.patch b/package/minicom/0001-fix-static-linking-with-ncurses.patch
new file mode 100644 (file)
index 0000000..56c442e
--- /dev/null
@@ -0,0 +1,745 @@
+From c13180cb2bead49addb00f33f4999200cbbd801f Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Wed, 26 Feb 2020 10:16:14 +0100
+Subject: [PATCH] fix static linking with ncurses
+
+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@gmail.com>
+[Upstream status: sent to minicom-devel@lists.alioth.debian.org]
+---
+ 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
+