Index: /trunk/Ohana/src/kapa/Makefile
===================================================================
--- /trunk/Ohana/src/kapa/Makefile	(revision 5611)
+++ /trunk/Ohana/src/kapa/Makefile	(revision 5612)
@@ -72,5 +72,5 @@
 $(SDIR)/CreateWindow.$(ARCH).o      	  $(SDIR)/SetNormalHints.$(ARCH).o     \
 $(SDIR)/DefineLayout.$(ARCH).o      	  $(SDIR)/SetUpDisplay.$(ARCH).o       \
-$(SDIR)/SetUpWindow.$(ARCH).o        						\
+$(SDIR)/SetUpWindow.$(ARCH).o        	  $(SDIR)/args.$(ARCH).o               \
 $(SDIR)/GetColor.$(ARCH).o          	  $(SDIR)/SetWMHints.$(ARCH).o         \
 $(SDIR)/LoadFont.$(ARCH).o          	  $(SDIR)/TopWindow.$(ARCH).o          \
Index: /trunk/Ohana/src/kapa/event/EventLoop.c
===================================================================
--- /trunk/Ohana/src/kapa/event/EventLoop.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/event/EventLoop.c	(revision 5612)
@@ -20,5 +20,5 @@
   Display        *display;
   
-  Refresh (1);
+  if (USE_XWINDOW) Refresh (1);
 
   status = TRUE;
@@ -27,4 +27,9 @@
     if (!CheckPipe ()) return (FALSE);
     
+    if (!USE_XWINDOW) {
+      usleep (50000);
+      continue;
+    }
+
     if (XEventsQueued (graphic.display, QueuedAfterFlush) < 1) {
       usleep (50000);
Index: /trunk/Ohana/src/kapa/event/FlushDisplay.c
===================================================================
--- /trunk/Ohana/src/kapa/event/FlushDisplay.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/event/FlushDisplay.c	(revision 5612)
@@ -10,4 +10,6 @@
   int flush;
   double dtime;
+
+  if (!USE_XWINDOW) return;
 
   flush = FALSE;
Index: /trunk/Ohana/src/kapa/event/Refresh.c
===================================================================
--- /trunk/Ohana/src/kapa/event/Refresh.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/event/Refresh.c	(revision 5612)
@@ -5,4 +5,5 @@
   int i;
   
+  if (!USE_XWINDOW) return;
   if (HAVE_BACKING) return;
 
Index: /trunk/Ohana/src/kapa/graph/ErasePlot.c
===================================================================
--- /trunk/Ohana/src/kapa/graph/ErasePlot.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/graph/ErasePlot.c	(revision 5612)
@@ -47,5 +47,5 @@
   }
 
-  XClearWindow (graphic.display, graphic.window);
+  if (USE_XWINDOW) XClearWindow (graphic.display, graphic.window);
   Refresh (1);
 
Index: /trunk/Ohana/src/kapa/graph/LoadBox.c
===================================================================
--- /trunk/Ohana/src/kapa/graph/LoadBox.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/graph/LoadBox.c	(revision 5612)
@@ -64,5 +64,5 @@
   }
 
-  DrawFrame (layout);
+  if (USE_XWINDOW) DrawFrame (layout);
   status = TRUE;
   if (status) {
@@ -70,5 +70,5 @@
       PositionPicture (&section[i]);
     }
-    XClearWindow (graphic.display, graphic.window);
+    if (USE_XWINDOW) XClearWindow (graphic.display, graphic.window);
     Refresh (1);
   } else {
Index: /trunk/Ohana/src/kapa/graph/LoadObject.c
===================================================================
--- /trunk/Ohana/src/kapa/graph/LoadObject.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/graph/LoadObject.c	(revision 5612)
@@ -98,5 +98,5 @@
   if (DEBUG) fprintf (stderr, "loaded %d objects, using object %d\n", layout[0].objects[N].Npts, N);
 
-  DrawObjectN (layout, &layout[0].objects[layout[0].Nobjects-1]);
+  if (USE_XWINDOW) DrawObjectN (layout, &layout[0].objects[layout[0].Nobjects-1]);
   FlushDisplay ();
 
Index: /trunk/Ohana/src/kapa/graph/bDrawFrame.c
===================================================================
--- /trunk/Ohana/src/kapa/graph/bDrawFrame.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/graph/bDrawFrame.c	(revision 5612)
@@ -18,5 +18,5 @@
 
     if (layout[0].axis[i].isaxis) { 
-      bDrawLine (fx, fy, fx+dfx, fy+dfy, FALSE); 
+      bDrawLine (fx, fy, fx+dfx, fy+dfy); 
     }
     
@@ -70,5 +70,5 @@
   dy = dir*size*dfx*n;
   
-  bDrawLine (x, y, x+dx, y+dy, FALSE);
+  bDrawLine (x, y, x+dx, y+dy);
 
   if (mode == 1) {
Index: /trunk/Ohana/src/kapa/graph/bDrawFuncs.c
===================================================================
--- /trunk/Ohana/src/kapa/graph/bDrawFuncs.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/graph/bDrawFuncs.c	(revision 5612)
@@ -71,9 +71,58 @@
 }
 
-// use the Bresenham line drawing technique
-void bDrawLine (double x1, double y1, double x2, double y2, int swapcoords) {
+void bDrawTriOpen (double x1, double y1, double x2, double y2, double x3, double y3) {
+
+  bDrawLine (x1, y1, x2, y2);
+  bDrawLine (x2, y2, x3, y3);
+  bDrawLine (x3, y3, x1, y1);
+
+  return;
+}
+
+void bDrawRectOpen (double x1, double y1, double x2, double y2) {
 
   int X1, Y1, X2, Y2;
-  int X, Y, dX, dY;
+
+  if (x1 > x2) SWAP (x1, x2);
+  if (y1 > y2) SWAP (y1, y2);
+
+  X1 = MIN (MAX (ROUND (x1), 0), bBuffer[0].Nx - 1);
+  X2 = MIN (MAX (ROUND (x2), 1), bBuffer[0].Nx);
+
+  Y1 = MIN (MAX (ROUND (y1), 0), bBuffer[0].Ny - 1);
+  Y2 = MIN (MAX (ROUND (y2), 1), bBuffer[0].Ny);
+
+  bDrawLineHorizontal (X1, X2, Y1);
+  bDrawLineHorizontal (X1, X2, Y2);
+  bDrawLineVertical (X1, Y1, Y2);
+  bDrawLineVertical (X2, Y1, Y2);
+  return;
+}
+
+void bDrawRectFill (double x1, double y1, double x2, double y2) {
+
+  int i;
+  int X1, Y1, X2, Y2;
+
+  if (x1 > x2) SWAP (x1, x2);
+  if (y1 > y2) SWAP (y1, y2);
+
+  X1 = MIN (MAX (ROUND (x1), 0), bBuffer[0].Nx - 1);
+  X2 = MIN (MAX (ROUND (x2), 1), bBuffer[0].Nx);
+
+  Y1 = MIN (MAX (ROUND (y1), 0), bBuffer[0].Ny - 1);
+  Y2 = MIN (MAX (ROUND (y2), 0), bBuffer[0].Ny);
+
+  for (i = Y1; i < Y2; i++) {
+    bDrawLineHorizontal (X1, X2, i);
+  } 
+  return;
+}
+
+// identify the quadrant and draw the correct line
+void bDrawLine (double x1, double y1, double x2, double y2) {
+
+  int FlipDirect, FlipCoords;
+  int X1, Y1, X2, Y2, dX, dY;
 
   /* rather than draw the line from float positions, we find the closest
@@ -88,60 +137,92 @@
   dY = Y2 - Y1;
 
-  // fprintf (stderr, "(%f,%f) - (%f,%f)\n", x1, y1, x2, y2);
-  if (x1 > x2) {
-    // fprintf (stderr, "flip direct\n");
-    bDrawLine (x2, y2, x1, y1, swapcoords);
-    return;
-  }
-  if (abs(dX) < abs(dY)) {
-    // fprintf (stderr, "flip coords\n");
-    bDrawLine (y1, x1, y2, x2, TRUE);
-    return;
-  }
-
-  /* integer-only Bresenham line-draw version which is fast */
-  {
-    int e, e2;
-
-    Y = Y1;
-    e = 0;
-    for (X = X1; X <= X2; X++) {
-      if (swapcoords) {
-	bDrawPoint (Y,X);
-      } else {
-	bDrawPoint (X,Y);
-      }
-      e += dY;
-      e2 = 2 * e;
-      if (e2 > dX) {
-	Y++;
-	e -= dX;
-      } 
-      if (e2 < -dX) {
-	Y--;
-	e += dX;
-      }
-    }
-  }
-  return;
-}
-
-void bDrawRectOpen (int x1, int y1, int x2, int y2) {
-
-  return;
-}
-
-void bDrawRectFill (int x1, int y1, int x2, int y2) {
-
-  return;
-}
-
-void bDrawTriOpen (int x1, int y1, int x2, int y2, int x3, int y3) {
-
-  return;
-}
-
-void bDrawTriFill (int x1, int y1, int x2, int y2, int x3, int y3) {
-
+  FlipCoords = (abs(dX) < abs(dY));
+  FlipDirect = FlipCoords ? (y1 > y2) : (x1 > x2);
+
+  if (!FlipDirect && !FlipCoords) bDrawLineWeight (X1, Y1, X2, Y2, FALSE);
+  if ( FlipDirect && !FlipCoords) bDrawLineWeight (X2, Y2, X1, Y1, FALSE);
+  if (!FlipDirect &&  FlipCoords) bDrawLineWeight (Y1, X1, Y2, X2, TRUE);
+  if ( FlipDirect &&  FlipCoords) bDrawLineWeight (Y2, X2, Y1, X1, TRUE);
+
+  return;
+}
+
+// draw a series of lines to give the line weight
+void bDrawLineWeight (int X1, int Y1, int X2, int Y2, int swapcoords) {
+
+  int dN, dNs, dNe;
+
+  dNs = -0.5*(bWeight - 1); 
+  /* 0, 0, 0, -1, -1, -2, -2 */
+
+  dNe = +0.5*bWeight + 1; 
+  /* 1, 1, 2, 2, 2, 3, 3 */
+
+  for (dN = dNs; dN < dNe; dN++) {
+    bDrawLineBresen (X1, Y1 + dN, X2, Y2 + dN, swapcoords);
+  }
+  return;
+}
+
+// use the Bresenham line drawing technique
+// integer-only Bresenham line-draw version which is fast
+void bDrawLineBresen (int X1, int Y1, int X2, int Y2, int swapcoords) {
+
+  int X, Y, dX, dY;
+  int e, e2;
+  int N, DashOn;
+
+  dX = X2 - X1;
+  dY = Y2 - Y1;
+
+  DashOn = TRUE;
+
+  Y = Y1;
+  e = 0;
+  for (X = X1, N = 0; X <= X2; X++, N++) {
+    if (bType == 1) { DashOn = (N % 10) < 5; }
+    if (bType == 2) { DashOn = (N % 6) < 3; }
+    if (swapcoords) {
+      if (DashOn) bDrawPoint (Y,X);
+    } else {
+      if (DashOn) bDrawPoint (X,Y);
+    }
+    e += dY;
+    e2 = 2 * e;
+    if (e2 > dX) {
+      Y++;
+      e -= dX;
+    } 
+    if (e2 < -dX) {
+      Y--;
+      e += dX;
+    }
+  }
+  return;
+}
+
+void bDrawLineHorizontal (int X1, int X2, int Y) {
+  
+  int i;
+
+  for (i = X1; i < X2; i++) {
+    bBuffer[0].pixels[Y][i] = bColor;
+  }
+  return;
+}
+
+void bDrawLineVertical (int X, int Y1, int Y2) {
+  
+  int i;
+
+  for (i = Y1; i < Y2; i++) {
+    bBuffer[0].pixels[i][X] = bColor;
+  }
+  return;
+}
+
+void bDrawTriFill (double x1, double y1, double x2, double y2, double x3, double y3) {
+
+  bDrawTriOpen (x1, y1, x2, y2, x3, y3);
   return;
 }
@@ -181,6 +262,23 @@
 }
 
+// draw a series of circles to give line weight
+void bDrawCircle (double xc, double yc, double radius) {
+
+  int dN, dNs, dNe;
+
+  dNs = -0.5*(bWeight - 1); 
+  /* 0, 0, 0, -1, -1, -2, -2 */
+
+  dNe = +0.5*bWeight + 1; 
+  /* 1, 1, 2, 2, 2, 3, 3 */
+
+  for (dN = dNs; dN < dNe; dN++) {
+    bDrawCircle (xc, yc, radius + dN);
+  }
+  return;
+}
+
 // draw a pure circle  
-void bDrawCircle (double xc, double yc, double radius) {
+void bDrawCircleSingle (double xc, double yc, double radius) {
 
   int Xc, Yc, Radius;
@@ -206,4 +304,38 @@
     bDrawPoint (Xc-y, Yc+x);
     bDrawPoint (Xc-y, Yc-x);
+
+    if (d < 0) {
+      // d = d + 4*x + 6;
+      d = d + 8*x + 4;
+    } else {
+      // d = d + 4*(x-y) + 10;
+      d = d + 8*(x-y) + 8;
+      y--;
+    }
+    x++;
+  }
+}
+
+// draw a pure circle  
+void bDrawCircleFill (double xc, double yc, double radius) {
+
+  int Xc, Yc, Radius;
+  int x, y, d;
+
+  Xc = ROUND(xc);
+  Yc = ROUND(yc);
+  Radius = ROUND(radius);
+
+  x = 0;
+  y = Radius;
+
+  // d = 3 - 2*Radius;
+  d = 5 - 4*radius;
+
+  while (x <= y) {
+    bDrawLineHorizontal (Xc-x, Xc+x, Yc+y);
+    bDrawLineHorizontal (Xc-x, Xc+x, Yc-y);
+    bDrawLineHorizontal (Xc-y, Xc+y, Yc+x);
+    bDrawLineHorizontal (Xc-y, Xc+y, Yc-x);
 
     if (d < 0) {
Index: /trunk/Ohana/src/kapa/graph/bDrawObjects.c
===================================================================
--- /trunk/Ohana/src/kapa/graph/bDrawObjects.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/graph/bDrawObjects.c	(revision 5612)
@@ -2,9 +2,10 @@
 # include "bDraw.h"
 
-# define DrawLine(X1,Y1,X2,Y2) (bDrawLine ((X1), (Y1), (X2), (Y2), FALSE))
+# define DrawLine(X1,Y1,X2,Y2) (bDrawLine ((X1), (Y1), (X2), (Y2)))
 # define DrawCircle(X1,Y1,R) (bDrawCircle ((X1), (Y1), (R)))
-# define DrawRectangle(X,Y,dX,dY) (bDrawRectOpen ((X-0.5*dX), (Y-0.5*dY), (dX), (dY)))
-# define FillRectangle(X,Y,dX,dY) (bDrawRectFill ((X-0.5*dX), (Y-0.5*dY), (dX), (dY)))
+# define DrawRectangle(X,Y,dX,dY) (bDrawRectOpen ((X-0.5*dX), (Y-0.5*dY), (X+0.5*dX), (Y+0.5*dY)))
+# define FillRectangle(X,Y,dX,dY) (bDrawRectFill ((X-0.5*dX), (Y-0.5*dY), (X+0.5*dX), (Y+0.5*dY)))
 # define FillTriangle(X1,Y1,X2,Y2,X3,Y3) (bDrawTriFill ((X1), (Y1), (X2), (Y2), (X3), (Y3)))
+# define OpenTriangle(X1,Y1,X2,Y2,X3,Y3) (bDrawTriOpen ((X1), (Y1), (X2), (Y2), (X3), (Y3)))
 # define CONNECT 0
 # define HISTOGRAM 1
@@ -288,7 +289,5 @@
 	    (sy < layout[0].axis[1].fy) && (sy > layout[0].axis[1].fy + layout[0].axis[1].dfy))
 	  {
-	    DrawLine (sx - d*z[i], sy + 0.58*d*z[i], sx + d*z[i], sy + 0.58*d*z[i]);
-	    DrawLine (sx + d*z[i], sy + 0.58*d*z[i], sx,          sy - 1.15*d*z[i]);
-	    DrawLine (sx,          sy - 1.15*d*z[i], sx - d*z[i], sy + 0.58*d*z[i]);
+	    OpenTriangle (sx - d*z[i], sy + 0.58*d*z[i], sx, sy - 1.15*d*z[i], sx + d*z[i], sy + 0.58*d*z[i]);
 	  }
       }
@@ -403,7 +402,5 @@
 	    (sy < layout[0].axis[1].fy) && (sy > layout[0].axis[1].fy + layout[0].axis[1].dfy))
 	  {
-	    DrawLine (sx - d, sy - 0.58*d, sx + d, sy - 0.58*d);
-	    DrawLine (sx + d, sy - 0.58*d, sx,     sy + 1.15*d);
-	    DrawLine (sx,     sy + 1.15*d, sx - d, sy - 0.58*d);
+	    OpenTriangle (sx - d, sy + 0.58*d, sx + d, sy + 0.58*d, sx, sy - 1.15*d);
 	  }
       }
Index: /trunk/Ohana/src/kapa/graph/bDrawRotFont.c
===================================================================
--- /trunk/Ohana/src/kapa/graph/bDrawRotFont.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/graph/bDrawRotFont.c	(revision 5612)
@@ -149,5 +149,5 @@
   Y = YPROC (dx,0);
 # ifdef DRAWBOXES
-  bDrawLine (x+X, y+Y, x+X1, y+Y1, FALSE);
+  bDrawLine (x+X, y+Y, x+X1, y+Y1);
   Xt = X;
   Yt = Y;
@@ -161,5 +161,5 @@
   Y = YPROC (dx,dy);
 # ifdef DRAWBOXES
-  bDrawLine (x+X, y+Y, x+Xt, y+Yt, FALSE);
+  bDrawLine (x+X, y+Y, x+Xt, y+Yt);
   Xt = X;
   Yt = Y;
@@ -173,5 +173,5 @@
   Y = YPROC (0,dy);
 # ifdef DRAWBOXES
-  bDrawLine (x+X, y+Y, x+Xt, y+Yt, FALSE);
+  bDrawLine (x+X, y+Y, x+Xt, y+Yt);
   Xt = X;
   Yt = Y;
Index: /trunk/Ohana/src/kapa/include/bDraw.h
===================================================================
--- /trunk/Ohana/src/kapa/include/bDraw.h	(revision 5611)
+++ /trunk/Ohana/src/kapa/include/bDraw.h	(revision 5612)
@@ -27,15 +27,24 @@
 void bDrawPoint (int x, int y);
 void bDrawPointf (float x, float y);
-void bDrawLine (double x1, double y1, double x2, double y2, int swapcoords);
+
 void bDrawArc (double Xc, double Yc, double Xr, double Yr, double Ts, double Te);
 void bDrawCircle (double Xc, double Yc, double radius);
+void bDrawCircleFill (double xc, double yc, double radius);
+
+void bDrawLine (double x1, double y1, double x2, double y2);
+void bDrawLineWeight (int X1, int Y1, int X2, int Y2, int swapcoords);
+void bDrawLineBresen (int X1, int Y1, int X2, int Y2, int swapcoords);
+void bDrawLineHorizontal (int X1, int X2, int Y);
+void bDrawLineVertical (int X, int Y1, int Y2);
+
 png_color *MakePNGPalette (int *Npalette);
 bDrawColor GetColorByName (char *name);
 bDrawBuffer *bDrawIt ();
 
-void bDrawRectOpen (int x1, int y1, int x2, int y2);
-void bDrawRectFill (int x1, int y1, int x2, int y2);
-void bDrawTriOpen (int x1, int y1, int x2, int y2, int x3, int y3);
-void bDrawTriFill (int x1, int y1, int x2, int y2, int x3, int y3);
+void bDrawRectOpen (double x1, double y1, double x2, double y2);
+void bDrawRectFill (double x1, double y1, double x2, double y2);
+void bDrawTriOpen (double x1, double y1, double x2, double y2, double x3, double y3);
+void bDrawTriFill (double x1, double y1, double x2, double y2, double x3, double y3);
 int bDrawRotText (int x, int y, char *string, int pos, double angle);
 int bDrawRotBitmap (int x, int y, int dx, int dy, unsigned char *bitmap, int mode, double angle, double scale);
+
Index: /trunk/Ohana/src/kapa/include/globals.h
===================================================================
--- /trunk/Ohana/src/kapa/include/globals.h	(revision 5611)
+++ /trunk/Ohana/src/kapa/include/globals.h	(revision 5612)
@@ -2,4 +2,7 @@
 int HAVE_BACKING;
 int DEBUG;
+int USE_XWINDOW;
+int MAP_WINDOW;
+int FOREGROUND;
 
 /* file descriptor for socket connection to mana */
Index: /trunk/Ohana/src/kapa/setup/CloseDisplay.c
===================================================================
--- /trunk/Ohana/src/kapa/setup/CloseDisplay.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/setup/CloseDisplay.c	(revision 5612)
@@ -3,4 +3,5 @@
 /************** CloseDisplay *************/
 void CloseDisplay () {
+  XFreeFont (graphic.display, graphic.font); 
   XFreeGC (graphic.display, graphic.gc);
   XDestroySubwindows (graphic.display, graphic.window);
Index: /trunk/Ohana/src/kapa/setup/DefineLayout.c
===================================================================
--- /trunk/Ohana/src/kapa/setup/DefineLayout.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/setup/DefineLayout.c	(revision 5612)
@@ -5,21 +5,8 @@
 void DefineLayout (int argc, char **argv) {
 
-  int i, status, N, FOREGROUND;
+  int i, status, N;
   struct sockaddr_un Address;
   char temp[100];
   
-  if ((N = get_argument (argc, argv, "-debug"))) {
-    remove_argument(N, &argc, argv);
-    DEBUG = TRUE;
-  } else {
-    DEBUG = FALSE;
-  }
-
-  FOREGROUND = FALSE;
-  if ((N = get_argument (argc, argv, "-fg"))) {
-    remove_argument(N, &argc, argv);
-    FOREGROUND = TRUE;
-  }
-
   /** initiate connection with server **/
   if (!FOREGROUND) {	
@@ -42,5 +29,4 @@
 
   InitRotFonts ();
-  MakeColormap (argc, argv);
 
   /** set up defaults for display region **/
Index: /trunk/Ohana/src/kapa/setup/SetUpWindow.c
===================================================================
--- /trunk/Ohana/src/kapa/setup/SetUpWindow.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/setup/SetUpWindow.c	(revision 5612)
@@ -23,9 +23,7 @@
   NameWindow ("Kapa");
 
-  if ((N = get_argument (*argc, argv, "-nomap"))) {
-    remove_argument(N, argc, argv);
-  } else {
-    MapWindow (graphic);
-  }  
-  
+  MakeColormap (*argc, argv);  /* move to SetUpWindow? */
+
+  if (MAP_WINDOW) MapWindow (graphic);
+  return;
 }
Index: /trunk/Ohana/src/kapa/setup/Ximage.c
===================================================================
--- /trunk/Ohana/src/kapa/setup/Ximage.c	(revision 5611)
+++ /trunk/Ohana/src/kapa/setup/Ximage.c	(revision 5612)
@@ -3,12 +3,19 @@
 int main (int argc, char **argv) {
   
-  SetUpDisplay (&argc, argv);
-  SetUpWindow (&argc, argv);
+  /* this is a lame place to put this default */
+  graphic.x = 10;
+  graphic.y = 10;
+  graphic.dx = 512;
+  graphic.dy = 512; 
 
-  DefineLayout (argc, argv);
+  args (&argc, argv);
+
+  if (USE_XWINDOW) SetUpDisplay (&argc, argv); /* skip if Xless */
+  if (USE_XWINDOW) SetUpWindow (&argc, argv);  /* skip if Xless */
+
+  DefineLayout (argc, argv); 
   EventLoop ();
 
-  XFreeFont (graphic.display, graphic.font); 
-  CloseDisplay ();
+  if (USE_XWINDOW) CloseDisplay ();
   exit (0);
 }
Index: /trunk/Ohana/src/kapa/setup/args.c
===================================================================
--- /trunk/Ohana/src/kapa/setup/args.c	(revision 5612)
+++ /trunk/Ohana/src/kapa/setup/args.c	(revision 5612)
@@ -0,0 +1,33 @@
+# include "Ximage.h"
+
+int args (int *argc, char **argv) {
+
+  int N;
+
+  MAP_WINDOW = TRUE;
+  if ((N = get_argument (*argc, argv, "-nomap"))) {
+    remove_argument(N, argc, argv);
+    MAP_WINDOW = FALSE;
+  }
+
+  USE_XWINDOW = TRUE;
+  if ((N = get_argument (*argc, argv, "-noX"))) {
+    remove_argument(N, argc, argv);
+    USE_XWINDOW = FALSE;
+  }
+
+  if ((N = get_argument (*argc, argv, "-debug"))) {
+    remove_argument(N, argc, argv);
+    DEBUG = TRUE;
+  } else {
+    DEBUG = FALSE;
+  }
+
+  FOREGROUND = FALSE;
+  if ((N = get_argument (*argc, argv, "-fg"))) {
+    remove_argument(N, argc, argv);
+    FOREGROUND = TRUE;
+  }
+
+  return (TRUE);
+}
