--- freem/src/service.c 2025/03/24 01:54:09 1.9
+++ freem/src/service.c 2025/04/09 19:52:02 1.13
@@ -1,5 +1,5 @@
/*
- * $Id: service.c,v 1.9 2025/03/24 01:54:09 snw Exp $
+ * $Id: service.c,v 1.13 2025/04/09 19:52:02 snw Exp $
* terminal and sequential I/O handling,
* file and global locking
*
@@ -25,6 +25,18 @@
* along with FreeM. If not, see .
*
* $Log: service.c,v $
+ * Revision 1.13 2025/04/09 19:52:02 snw
+ * Eliminate as many warnings as possible while building with -Wall
+ *
+ * Revision 1.12 2025/03/24 04:05:36 snw
+ * Replace crlf with frm_crlf to avoid symbol conflict with readline on OS/2
+ *
+ * Revision 1.11 2025/03/24 02:00:30 snw
+ * Work around some OS/2 incompatibilities in service.c
+ *
+ * Revision 1.10 2025/03/24 01:55:46 snw
+ * Work around some OS/2 incompatibilities in service.c
+ *
* Revision 1.9 2025/03/24 01:54:09 snw
* Work around some OS/2 incompatibilities in set_break and set_zbreak
*
@@ -85,6 +97,10 @@ int scosgr (short att, short bwflag);
# if !defined(MSDOS)
# include
# endif
+# if defined(__OS2__)
+# include
+# define termio termios
+# endif
# endif
#else
# include
@@ -987,7 +1003,9 @@ end:
void writeHOME (char *text)
{
+#if !defined(__OS2__)
struct winsize terminal_window;
+#endif
static char initflag = TRUE; /* initialisation flag */
static char esc = 0; /* esc processing flag */
static char dcs = 0; /* device control processing flag */
@@ -1048,13 +1066,18 @@ void writeHOME (char *text)
* and the 'hardcopy function'
*/
if (initflag) {
-
+
+#if !defined(__OS2__)
/* TODO: why are we casting to void here? */
(void) ioctl(STDOUT_FILENO, TIOCGWINSZ, &terminal_window);
n_lines = terminal_window.ws_row;
n_columns = terminal_window.ws_col;
-
+#else
+ n_lines = 25;
+ n_columns = 80;
+#endif
+
screen = (struct vtstyp *) calloc (1, sizeof (struct vtstyp));
ris (screen);
@@ -2741,13 +2764,15 @@ void part_ref (struct vtstyp *scr, short
short l;
short max;
unsigned char exa;
+#if !defined(LINUX) && defined(COLOR)
unsigned char exc;
+#endif
short i;
unsigned char *linea;
unsigned char *linex;
unsigned char *linec;
unsigned char ch;
- unsigned char tmp[1300];
+ char tmp[1300]; /* was unsigned char tmp... (snw 4-9-2025) */
/* build up alternate screen */
/* reset SGR,TBM;white on black,go HOME; 25 Lines */
@@ -2817,7 +2842,10 @@ void part_ref (struct vtstyp *scr, short
}
exa = ~linea[0]; /* dummy value to trigger argument codes on 1st char */
+
+#if !defined(LINUX) && defined(COLOR)
exc = ~linec[0]; /* dummy value to trigger argument codes on 1st char */
+#endif
for (l = 0; l <= max; l++) {
@@ -3302,7 +3330,7 @@ void write_m (char *text)
ypos[io]++;
- if (crlf[io]) xpos[io] = 0;
+ if (frm_crlf[io]) xpos[io] = 0;
continue;
@@ -3395,9 +3423,7 @@ void read_m (char *stuff, long read_time
static char term_key[256] = {EOL, EOL};
static short int escptr;
static short int single;
- static short int timoflag; /* timeout flag */
- static long int timex;
- static short int timexms;
+ static short int timoflag; /* timeout flag */
static short int i;
static int ch;
@@ -3419,10 +3445,7 @@ void read_m (char *stuff, long read_time
stuff[0] = EOL;
if (length < 1) single = length = 1;
-
- timex = 0L;
- timexms = 0;
-
+
if (io == HOME) opnfile[HOME] = stdin;
if (io == HOME && !frm_filter) {
@@ -4133,7 +4156,7 @@ void read_m (char *stuff, long read_time
if (single) break;
- if (ch == LF && crlf[io]) {
+ if (ch == LF && frm_crlf[io]) {
i--;
continue;
}