diff options
Diffstat (limited to 'apps/sympathy.c')
-rw-r--r-- | apps/sympathy.c | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/apps/sympathy.c b/apps/sympathy.c index a8dba28..e93c930 100644 --- a/apps/sympathy.c +++ b/apps/sympathy.c @@ -11,6 +11,9 @@ static char rcsid[] = /* * $Log$ + * Revision 1.17 2008/02/27 09:42:21 james + * *** empty log message *** + * * Revision 1.16 2008/02/27 01:31:38 james * *** empty log message *** * @@ -245,7 +248,7 @@ main (int argc, char *argv[]) int c; extern char *optarg; extern int optind, opterr, optopt; - int width = VT102_COLS_80; + CRT_Pos size={VT102_COLS_80,VT102_ROWS}; int oflags[128]; char *oargs[128]; @@ -262,7 +265,7 @@ main (int argc, char *argv[]) memset (oflags, 0, sizeof (oflags)); memset (oargs, 0, sizeof (oargs)); - while ((c = getopt (argc, argv, "w:utscr:lKHd:pb:fL:Fk:n:")) != EOF) + while ((c = getopt (argc, argv, "vw:utscr:lKHd:pb:fL:Fk:n:")) != EOF) { switch (c) { @@ -310,11 +313,16 @@ main (int argc, char *argv[]) sum += (oflags['s'] || oflags['c']) ? 1 : 0; sum += oflags['r']; sum += oflags['l']; + sum += oflags['v']; if (sum != 1) - fatal_moan ("specifiy exactly one of ( -c and or -s ), -t, -r and -l"); + fatal_moan ("specifiy exactly one of ( -c and or -s ), -t, -r, -l and -v"); } + if (oflags['v']) { + fprintf("Version: %s\n",libsympathy_version()); + return 0; + } if (oflags['l']) return list_sockets (); @@ -420,9 +428,22 @@ main (int argc, char *argv[]) if (oflags['w']) { - width = safe_atoi (oargs['w']); - if ((width > VT102_MAX_COLS) || (width < 1)) + char buf[128],*ptr; + strcpy(buf,oargs['w']); + ptr=index(buf,'x'); + if (ptr) { + *ptr=0; + ptr++; + size.y=safe_atoi(ptr); + } + size.x=safe_atoi(buf); + + if ((size.x > VT102_MAX_COLS) || (size.x < 1)) fatal_moan ("-w requires a width between 1 and %d\n", VT102_MAX_COLS); + + if ((size.y > VT102_ROWS) || (size.y < 1)) + fatal_moan ("-w requires a height between 1 and %d\n", VT102_MAX_COLS); + } if (oflags['s'] && !oflags['F']) @@ -443,7 +464,7 @@ main (int argc, char *argv[]) if (oflags['p']) { - tty = ptty_open (NULL, NULL, width); + tty = ptty_open (NULL, NULL, &size); if (!tty) fatal_moan ("unable to open a ptty"); } @@ -500,7 +521,7 @@ main (int argc, char *argv[]) } } - mainloop (tty, server_socket, client_socket, ansi, log, history, width); + mainloop (tty, server_socket, client_socket, ansi, log, history, &size); if (ansi) { |