Just code organization. The semantics are the same.

I left intentionally global variables there, which will make sense on the
next commit.

Signed-off-by: Tiago Vignatti <[email protected]>
---
 hw/vfb/InitOutput.c |  233 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 149 insertions(+), 84 deletions(-)

diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c
index e7dd1d9..75ba9a4 100644
--- a/hw/vfb/InitOutput.c
+++ b/hw/vfb/InitOutput.c
@@ -116,6 +116,15 @@ static char needswap = 0;
 static int lastScreen = -1;
 static Bool Render = TRUE;
 
+static int vfbScreenNum;
+static int vfbWidth;
+static int vfbHeight;
+static int vfbDepth;
+static int vfbPixdepth;
+static Pixel vfbBlackpix;
+static Pixel vfbWhitePix;
+static unsigned int vfbLinebias;
+
 #define swapcopy16(_dst, _src) \
     if (needswap) { CARD16 _s = _src; cpswaps(_s, _dst); } \
     else _dst = _src;
@@ -265,6 +274,141 @@ ddxUseMsg(void)
 #endif
 }
 
+static int
+vfbProcessScreen(void)
+{
+       if (vfbScreenNum < 0 || vfbScreenNum >= MAXSCREENS)
+       {
+           ErrorF("Invalid screen number %d\n", vfbScreenNum);
+           UseMsg();
+           FatalError("Invalid screen number %d passed to -screen\n",
+                      vfbScreenNum);
+       }
+    vfbScreens[vfbScreenNum].width = vfbWidth;
+    vfbScreens[vfbScreenNum].height = vfbHeight;
+    vfbScreens[vfbScreenNum].depth = vfbDepth;
+
+       if (vfbScreenNum >= vfbNumScreens)
+           vfbNumScreens = vfbScreenNum + 1;
+       lastScreen = vfbScreenNum;
+       return 3;
+}
+
+static int
+vfbGetScreen(char *argv[], int i)
+{
+       vfbScreenNum = atoi(argv[i+1]);
+
+    if (3 != sscanf(argv[i+2], "%dx%dx%d", &vfbWidth, &vfbHeight, &vfbDepth))
+    {
+        ErrorF("Invalid screen configuration %s\n", argv[i+2]);
+        UseMsg();
+        FatalError("Invalid screen configuration %s for -screen %d\n",
+           argv[i+2], vfbScreenNum);
+    }
+
+       return vfbProcessScreen();
+}
+
+static int
+vfbProcessPixdepths(void)
+{
+    vfbPixmapDepths[vfbPixdepth] = TRUE;
+    return 2;
+}
+
+static int
+vfbGetPixdepths(int argc, char *argv[], int i)
+{
+       while ((++i < argc) && (vfbPixdepth = atoi(argv[i])) != 0)
+       {
+           if (vfbPixdepth < 0 || vfbPixdepth > 32)
+           {
+               ErrorF("Invalid pixmap depth %d\n", vfbPixdepth);
+               UseMsg();
+               FatalError("Invalid pixmap depth %d passed to -pixdepths\n",
+                          vfbPixdepth);
+           }
+               return vfbProcessPixdepths();
+       }
+       return 1;
+}
+
+static int
+vfbProcessBlackpixel(void)
+{
+       if (-1 == lastScreen)
+       {
+           int i;
+           for (i = 0; i < MAXSCREENS; i++)
+           {
+               vfbScreens[i].blackPixel = vfbBlackpix;
+           }
+       }
+       else
+       {
+           vfbScreens[lastScreen].blackPixel = vfbBlackpix;
+       }
+       return 2;
+}
+
+static int
+vfbGetBlackpixel(char *argv[], int i)
+{
+       vfbBlackpix = atoi(argv[++i]);
+       return vfbProcessBlackpixel();
+}
+
+static int
+vfbProcessWhitepixel(void)
+{
+       if (-1 == lastScreen)
+       {
+           int i;
+           for (i = 0; i < MAXSCREENS; i++)
+           {
+               vfbScreens[i].whitePixel = vfbWhitePix;
+           }
+       }
+       else
+       {
+           vfbScreens[lastScreen].whitePixel = vfbWhitePix;
+       }
+       return 2;
+}
+
+static int
+vfbGetWhitepixel(char *argv[], int i)
+{
+       vfbWhitePix = atoi(argv[++i]);
+       return vfbProcessWhitepixel();
+}
+
+static int
+vfbProcessLinebias(void)
+{
+       if (-1 == lastScreen)
+       {
+           int i;
+           for (i = 0; i < MAXSCREENS; i++)
+           {
+               vfbScreens[i].lineBias = vfbLinebias;
+           }
+       }
+       else
+       {
+           vfbScreens[lastScreen].lineBias = vfbLinebias;
+       }
+       return 2;
+}
+
+static int
+vfbGetLinebias(char *argv[], int i)
+{
+       vfbLinebias = atoi(argv[++i]);
+       return vfbProcessLinebias();
+}
+
 int
 ddxProcessArgument(int argc, char *argv[], int i)
 {
@@ -286,51 +430,14 @@ ddxProcessArgument(int argc, char *argv[], int i)
     
     if (strcmp (argv[i], "-screen") == 0)      /* -screen n WxHxD */
     {
-       int screenNum;
        CHECK_FOR_REQUIRED_ARGUMENTS(2);
-       screenNum = atoi(argv[i+1]);
-       if (screenNum < 0 || screenNum >= MAXSCREENS)
-       {
-           ErrorF("Invalid screen number %d\n", screenNum);
-           UseMsg();
-           FatalError("Invalid screen number %d passed to -screen\n",
-                      screenNum);
-       }
-       if (3 != sscanf(argv[i+2], "%dx%dx%d",
-                       &vfbScreens[screenNum].width,
-                       &vfbScreens[screenNum].height,
-                       &vfbScreens[screenNum].depth))
-       {
-           ErrorF("Invalid screen configuration %s\n", argv[i+2]);
-           UseMsg();
-           FatalError("Invalid screen configuration %s for -screen %d\n",
-                  argv[i+2], screenNum);
-       }
-
-       if (screenNum >= vfbNumScreens)
-           vfbNumScreens = screenNum + 1;
-       lastScreen = screenNum;
-       return 3;
+       return vfbGetScreen(argv, i);
     }
 
     if (strcmp (argv[i], "-pixdepths") == 0)   /* -pixdepths list-of-depth */
     {
-       int depth, ret = 1;
-
        CHECK_FOR_REQUIRED_ARGUMENTS(1);
-       while ((++i < argc) && (depth = atoi(argv[i])) != 0)
-       {
-           if (depth < 0 || depth > 32)
-           {
-               ErrorF("Invalid pixmap depth %d\n", depth);
-               UseMsg();
-               FatalError("Invalid pixmap depth %d passed to -pixdepths\n",
-                          depth);
-           }
-           vfbPixmapDepths[depth] = TRUE;
-           ret++;
-       }
-       return ret;
+       return vfbGetPixdepths(argc, argv, i);
     }
 
     if (strcmp (argv[i], "+render") == 0)      /* +render */
@@ -350,62 +457,20 @@ ddxProcessArgument(int argc, char *argv[], int i)
 
     if (strcmp (argv[i], "-blackpixel") == 0)  /* -blackpixel n */
     {
-       Pixel pix;
        CHECK_FOR_REQUIRED_ARGUMENTS(1);
-       pix = atoi(argv[++i]);
-       if (-1 == lastScreen)
-       {
-           int i;
-           for (i = 0; i < MAXSCREENS; i++)
-           {
-               vfbScreens[i].blackPixel = pix;
-           }
-       }
-       else
-       {
-           vfbScreens[lastScreen].blackPixel = pix;
-       }
-       return 2;
+       return vfbGetBlackpixel(argv, i);
     }
 
     if (strcmp (argv[i], "-whitepixel") == 0)  /* -whitepixel n */
     {
-       Pixel pix;
        CHECK_FOR_REQUIRED_ARGUMENTS(1);
-       pix = atoi(argv[++i]);
-       if (-1 == lastScreen)
-       {
-           int i;
-           for (i = 0; i < MAXSCREENS; i++)
-           {
-               vfbScreens[i].whitePixel = pix;
-           }
-       }
-       else
-       {
-           vfbScreens[lastScreen].whitePixel = pix;
-       }
-       return 2;
+       return vfbGetWhitepixel(argv, i);
     }
 
     if (strcmp (argv[i], "-linebias") == 0)    /* -linebias n */
     {
-       unsigned int linebias;
        CHECK_FOR_REQUIRED_ARGUMENTS(1);
-       linebias = atoi(argv[++i]);
-       if (-1 == lastScreen)
-       {
-           int i;
-           for (i = 0; i < MAXSCREENS; i++)
-           {
-               vfbScreens[i].lineBias = linebias;
-           }
-       }
-       else
-       {
-           vfbScreens[lastScreen].lineBias = linebias;
-       }
-       return 2;
+       return vfbGetLinebias(argv, i);
     }
 
 #ifdef HAS_MMAP
-- 
1.6.0.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to