Browse Source

Use CHECK_FOR_REQUIRED_ARGUMENTS() for arg check

This is what all the other ddx variants use, so do the same in Xvnc to
be consistent.
tags/v1.11.90
Pierre Ossman 2 years ago
parent
commit
53ff8a2eec
1 changed files with 15 additions and 15 deletions
  1. 15
    15
      unix/xserver/hw/vnc/xvnc.c

+ 15
- 15
unix/xserver/hw/vnc/xvnc.c View File

return TRUE; return TRUE;
} }


#define fail_unless_args(_argc,_i,_n) \
if (_i + _n >= _argc) \
{ \
UseMsg(); \
return 0; \
}

int int
ddxProcessArgument(int argc, char *argv[], int i) ddxProcessArgument(int argc, char *argv[], int i)
{ {
if (argv[i][0] == ':') if (argv[i][0] == ':')
displaySpecified = TRUE; displaySpecified = TRUE;


#define CHECK_FOR_REQUIRED_ARGUMENTS(num) \
if (((i + num) >= argc) || (!argv[i + num])) { \
ErrorF("Required argument to %s not specified\n", argv[i]); \
UseMsg(); \
FatalError("Required argument to %s not specified\n", argv[i]); \
}

if (strcmp(argv[i], "-screen") == 0) { /* -screen n WxHxD */ if (strcmp(argv[i], "-screen") == 0) { /* -screen n WxHxD */
int screenNum; int screenNum;


fail_unless_args(argc, i, 2);
CHECK_FOR_REQUIRED_ARGUMENTS(2);
screenNum = atoi(argv[i + 1]); screenNum = atoi(argv[i + 1]);
if (screenNum < 0 || screenNum >= MAXSCREENS) { if (screenNum < 0 || screenNum >= MAXSCREENS) {
ErrorF("Invalid screen number %d\n", screenNum); ErrorF("Invalid screen number %d\n", screenNum);
if (strcmp(argv[i], "-pixdepths") == 0) { /* -pixdepths list-of-depth */ if (strcmp(argv[i], "-pixdepths") == 0) { /* -pixdepths list-of-depth */
int depth, ret = 1; int depth, ret = 1;


fail_unless_args(argc, i, 1);
CHECK_FOR_REQUIRED_ARGUMENTS(1);
++i; ++i;
while ((i < argc) && (depth = atoi(argv[i++])) != 0) { while ((i < argc) && (depth = atoi(argv[i++])) != 0) {
if (depth < 0 || depth > 32) { if (depth < 0 || depth > 32) {
if (strcmp(argv[i], "-blackpixel") == 0) { /* -blackpixel n */ if (strcmp(argv[i], "-blackpixel") == 0) { /* -blackpixel n */
Pixel pix; Pixel pix;


fail_unless_args(argc, i, 1);
CHECK_FOR_REQUIRED_ARGUMENTS(1);
++i; ++i;
pix = atoi(argv[i]); pix = atoi(argv[i]);
if (-1 == lastScreen) { if (-1 == lastScreen) {
if (strcmp(argv[i], "-whitepixel") == 0) { /* -whitepixel n */ if (strcmp(argv[i], "-whitepixel") == 0) { /* -whitepixel n */
Pixel pix; Pixel pix;


fail_unless_args(argc, i, 1);
CHECK_FOR_REQUIRED_ARGUMENTS(1);
++i; ++i;
pix = atoi(argv[i]); pix = atoi(argv[i]);
if (-1 == lastScreen) { if (-1 == lastScreen) {
if (strcmp(argv[i], "-linebias") == 0) { /* -linebias n */ if (strcmp(argv[i], "-linebias") == 0) { /* -linebias n */
unsigned int linebias; unsigned int linebias;


fail_unless_args(argc, i, 1);
CHECK_FOR_REQUIRED_ARGUMENTS(1);
++i; ++i;
linebias = atoi(argv[i]); linebias = atoi(argv[i]);
if (-1 == lastScreen) { if (-1 == lastScreen) {
#endif #endif


if (strcmp(argv[i], "-geometry") == 0) { if (strcmp(argv[i], "-geometry") == 0) {
fail_unless_args(argc, i, 1);
CHECK_FOR_REQUIRED_ARGUMENTS(1);
++i; ++i;
if (sscanf(argv[i], "%dx%d", &vfbScreens[0].fb.width, if (sscanf(argv[i], "%dx%d", &vfbScreens[0].fb.width,
&vfbScreens[0].fb.height) != 2) { &vfbScreens[0].fb.height) != 2) {
} }


if (strcmp(argv[i], "-depth") == 0) { if (strcmp(argv[i], "-depth") == 0) {
fail_unless_args(argc, i, 1);
CHECK_FOR_REQUIRED_ARGUMENTS(1);
++i; ++i;
vfbScreens[0].fb.depth = atoi(argv[i]); vfbScreens[0].fb.depth = atoi(argv[i]);
return 2; return 2;
char rgbbgr[4]; char rgbbgr[4];
int bits1, bits2, bits3; int bits1, bits2, bits3;


fail_unless_args(argc, i, 1);
CHECK_FOR_REQUIRED_ARGUMENTS(1);
++i; ++i;
if (sscanf(argv[i], "%3s%1d%1d%1d", rgbbgr, &bits1, &bits2, &bits3) < 4) { if (sscanf(argv[i], "%3s%1d%1d%1d", rgbbgr, &bits1, &bits2, &bits3) < 4) {
ErrorF("Invalid pixel format %s\n", argv[i]); ErrorF("Invalid pixel format %s\n", argv[i]);

Loading…
Cancel
Save