diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c index 070cede357..be26467eaa 100644 --- a/hw/vfb/InitOutput.c +++ b/hw/vfb/InitOutput.c @@ -264,13 +264,6 @@ ddxProcessArgument(int argc, char *argv[], int i) else currentScreen = &vfbScreens[lastScreen]; -#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 */ int screenNum; diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 0f57efa863..b148e13200 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -925,16 +925,9 @@ xf86CheckPrivs(const char *option, const char *arg) int ddxProcessArgument(int argc, char **argv, int i) { -#define CHECK_FOR_REQUIRED_ARGUMENT() \ - if (((i + 1) >= argc) || (!argv[i + 1])) { \ - ErrorF("Required argument to %s not specified\n", argv[i]); \ - UseMsg(); \ - FatalError("Required argument to %s not specified\n", argv[i]); \ - } - /* First the options that are not allowed with elevated privileges */ if (!strcmp(argv[i], "-modulepath")) { - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); if (xf86PrivsElevated()) FatalError("\nInvalid argument -modulepath " "with elevated privileges\n"); @@ -943,7 +936,7 @@ ddxProcessArgument(int argc, char **argv, int i) return 2; } if (!strcmp(argv[i], "-logfile")) { - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); if (xf86PrivsElevated()) FatalError("\nInvalid argument -logfile " "with elevated privileges\n"); @@ -952,13 +945,13 @@ ddxProcessArgument(int argc, char **argv, int i) return 2; } if (!strcmp(argv[i], "-config") || !strcmp(argv[i], "-xf86config")) { - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); xf86CheckPrivs(argv[i], argv[i + 1]); xf86ConfigFile = argv[i + 1]; return 2; } if (!strcmp(argv[i], "-configdir")) { - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); xf86CheckPrivs(argv[i], argv[i + 1]); xf86ConfigDir = argv[i + 1]; return 2; @@ -1052,7 +1045,7 @@ ddxProcessArgument(int argc, char **argv, int i) if (!strcmp(argv[i], "-fbbpp")) { int bpp; - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); if (sscanf(argv[++i], "%d", &bpp) == 1) { xf86FbBpp = bpp; return 2; @@ -1065,7 +1058,7 @@ ddxProcessArgument(int argc, char **argv, int i) if (!strcmp(argv[i], "-depth")) { int depth; - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); if (sscanf(argv[++i], "%d", &depth) == 1) { xf86Depth = depth; return 2; @@ -1078,7 +1071,7 @@ ddxProcessArgument(int argc, char **argv, int i) if (!strcmp(argv[i], "-weight")) { int red, green, blue; - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); if (sscanf(argv[++i], "%1d%1d%1d", &red, &green, &blue) == 3) { xf86Weight.red = red; xf86Weight.green = green; @@ -1094,7 +1087,7 @@ ddxProcessArgument(int argc, char **argv, int i) !strcmp(argv[i], "-ggamma") || !strcmp(argv[i], "-bgamma")) { double gamma; - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); if (sscanf(argv[++i], "%lf", &gamma) == 1) { if (gamma < GAMMA_MIN || gamma > GAMMA_MAX) { ErrorF("gamma out of range, only %.2f <= gamma_value <= %.1f" @@ -1113,22 +1106,22 @@ ddxProcessArgument(int argc, char **argv, int i) } } if (!strcmp(argv[i], "-layout")) { - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); xf86LayoutName = argv[++i]; return 2; } if (!strcmp(argv[i], "-screen")) { - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); xf86ScreenName = argv[++i]; return 2; } if (!strcmp(argv[i], "-pointer")) { - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); xf86PointerName = argv[++i]; return 2; } if (!strcmp(argv[i], "-keyboard")) { - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); xf86KeyboardName = argv[++i]; return 2; } @@ -1161,7 +1154,7 @@ ddxProcessArgument(int argc, char **argv, int i) } #ifdef XSERVER_LIBPCIACCESS if (!strcmp(argv[i], "-isolateDevice")) { - CHECK_FOR_REQUIRED_ARGUMENT(); + CHECK_FOR_REQUIRED_ARGUMENTS(1); if (strncmp(argv[++i], "PCI:", 4)) { FatalError("Bus types other than PCI not yet isolable\n"); } diff --git a/include/os.h b/include/os.h index 6d209cd21b..553126734a 100644 --- a/include/os.h +++ b/include/os.h @@ -526,6 +526,13 @@ GenerateAuthorization(unsigned int /* name_length */ , extern _X_EXPORT int ddxProcessArgument(int /*argc */ , char * /*argv */ [], int /*i */ ); +#define CHECK_FOR_REQUIRED_ARGUMENTS(num) \ + do if (((i + num) >= argc) || (!argv[i + num])) { \ + UseMsg(); \ + FatalError("Required argument to %s not specified\n", argv[i]); \ + } while (0) + + extern _X_EXPORT void ddxUseMsg(void);