chiark / gitweb /
*** empty log message ***
[sympathy.git] / apps / sympathy.c
index a8dba28e16512e46bbe93e69b680bc8d95a6a852..e93c9302398df284a2cbbcee273c7abe6ac5678d 100644 (file)
@@ -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)
     {