os: Factor out CHECK_FOR_REQUIRED_ARGUMENTS
Lifted from vfb. xfree86 had almost the same thing but unparameterized, port it to the vfb style. Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
This commit is contained in:
parent
b45c74f0f2
commit
8d048a1fd3
|
@ -264,13 +264,6 @@ ddxProcessArgument(int argc, char *argv[], int i)
|
||||||
else
|
else
|
||||||
currentScreen = &vfbScreens[lastScreen];
|
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 */
|
if (strcmp(argv[i], "-screen") == 0) { /* -screen n WxHxD */
|
||||||
int screenNum;
|
int screenNum;
|
||||||
|
|
||||||
|
|
|
@ -925,16 +925,9 @@ xf86CheckPrivs(const char *option, const char *arg)
|
||||||
int
|
int
|
||||||
ddxProcessArgument(int argc, char **argv, int i)
|
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 */
|
/* First the options that are not allowed with elevated privileges */
|
||||||
if (!strcmp(argv[i], "-modulepath")) {
|
if (!strcmp(argv[i], "-modulepath")) {
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
if (xf86PrivsElevated())
|
if (xf86PrivsElevated())
|
||||||
FatalError("\nInvalid argument -modulepath "
|
FatalError("\nInvalid argument -modulepath "
|
||||||
"with elevated privileges\n");
|
"with elevated privileges\n");
|
||||||
|
@ -943,7 +936,7 @@ ddxProcessArgument(int argc, char **argv, int i)
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
if (!strcmp(argv[i], "-logfile")) {
|
if (!strcmp(argv[i], "-logfile")) {
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
if (xf86PrivsElevated())
|
if (xf86PrivsElevated())
|
||||||
FatalError("\nInvalid argument -logfile "
|
FatalError("\nInvalid argument -logfile "
|
||||||
"with elevated privileges\n");
|
"with elevated privileges\n");
|
||||||
|
@ -952,13 +945,13 @@ ddxProcessArgument(int argc, char **argv, int i)
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
if (!strcmp(argv[i], "-config") || !strcmp(argv[i], "-xf86config")) {
|
if (!strcmp(argv[i], "-config") || !strcmp(argv[i], "-xf86config")) {
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
xf86CheckPrivs(argv[i], argv[i + 1]);
|
xf86CheckPrivs(argv[i], argv[i + 1]);
|
||||||
xf86ConfigFile = argv[i + 1];
|
xf86ConfigFile = argv[i + 1];
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
if (!strcmp(argv[i], "-configdir")) {
|
if (!strcmp(argv[i], "-configdir")) {
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
xf86CheckPrivs(argv[i], argv[i + 1]);
|
xf86CheckPrivs(argv[i], argv[i + 1]);
|
||||||
xf86ConfigDir = argv[i + 1];
|
xf86ConfigDir = argv[i + 1];
|
||||||
return 2;
|
return 2;
|
||||||
|
@ -1052,7 +1045,7 @@ ddxProcessArgument(int argc, char **argv, int i)
|
||||||
if (!strcmp(argv[i], "-fbbpp")) {
|
if (!strcmp(argv[i], "-fbbpp")) {
|
||||||
int bpp;
|
int bpp;
|
||||||
|
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
if (sscanf(argv[++i], "%d", &bpp) == 1) {
|
if (sscanf(argv[++i], "%d", &bpp) == 1) {
|
||||||
xf86FbBpp = bpp;
|
xf86FbBpp = bpp;
|
||||||
return 2;
|
return 2;
|
||||||
|
@ -1065,7 +1058,7 @@ ddxProcessArgument(int argc, char **argv, int i)
|
||||||
if (!strcmp(argv[i], "-depth")) {
|
if (!strcmp(argv[i], "-depth")) {
|
||||||
int depth;
|
int depth;
|
||||||
|
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
if (sscanf(argv[++i], "%d", &depth) == 1) {
|
if (sscanf(argv[++i], "%d", &depth) == 1) {
|
||||||
xf86Depth = depth;
|
xf86Depth = depth;
|
||||||
return 2;
|
return 2;
|
||||||
|
@ -1078,7 +1071,7 @@ ddxProcessArgument(int argc, char **argv, int i)
|
||||||
if (!strcmp(argv[i], "-weight")) {
|
if (!strcmp(argv[i], "-weight")) {
|
||||||
int red, green, blue;
|
int red, green, blue;
|
||||||
|
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
if (sscanf(argv[++i], "%1d%1d%1d", &red, &green, &blue) == 3) {
|
if (sscanf(argv[++i], "%1d%1d%1d", &red, &green, &blue) == 3) {
|
||||||
xf86Weight.red = red;
|
xf86Weight.red = red;
|
||||||
xf86Weight.green = green;
|
xf86Weight.green = green;
|
||||||
|
@ -1094,7 +1087,7 @@ ddxProcessArgument(int argc, char **argv, int i)
|
||||||
!strcmp(argv[i], "-ggamma") || !strcmp(argv[i], "-bgamma")) {
|
!strcmp(argv[i], "-ggamma") || !strcmp(argv[i], "-bgamma")) {
|
||||||
double gamma;
|
double gamma;
|
||||||
|
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
if (sscanf(argv[++i], "%lf", &gamma) == 1) {
|
if (sscanf(argv[++i], "%lf", &gamma) == 1) {
|
||||||
if (gamma < GAMMA_MIN || gamma > GAMMA_MAX) {
|
if (gamma < GAMMA_MIN || gamma > GAMMA_MAX) {
|
||||||
ErrorF("gamma out of range, only %.2f <= gamma_value <= %.1f"
|
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")) {
|
if (!strcmp(argv[i], "-layout")) {
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
xf86LayoutName = argv[++i];
|
xf86LayoutName = argv[++i];
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
if (!strcmp(argv[i], "-screen")) {
|
if (!strcmp(argv[i], "-screen")) {
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
xf86ScreenName = argv[++i];
|
xf86ScreenName = argv[++i];
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
if (!strcmp(argv[i], "-pointer")) {
|
if (!strcmp(argv[i], "-pointer")) {
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
xf86PointerName = argv[++i];
|
xf86PointerName = argv[++i];
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
if (!strcmp(argv[i], "-keyboard")) {
|
if (!strcmp(argv[i], "-keyboard")) {
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
xf86KeyboardName = argv[++i];
|
xf86KeyboardName = argv[++i];
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
@ -1161,7 +1154,7 @@ ddxProcessArgument(int argc, char **argv, int i)
|
||||||
}
|
}
|
||||||
#ifdef XSERVER_LIBPCIACCESS
|
#ifdef XSERVER_LIBPCIACCESS
|
||||||
if (!strcmp(argv[i], "-isolateDevice")) {
|
if (!strcmp(argv[i], "-isolateDevice")) {
|
||||||
CHECK_FOR_REQUIRED_ARGUMENT();
|
CHECK_FOR_REQUIRED_ARGUMENTS(1);
|
||||||
if (strncmp(argv[++i], "PCI:", 4)) {
|
if (strncmp(argv[++i], "PCI:", 4)) {
|
||||||
FatalError("Bus types other than PCI not yet isolable\n");
|
FatalError("Bus types other than PCI not yet isolable\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -526,6 +526,13 @@ GenerateAuthorization(unsigned int /* name_length */ ,
|
||||||
extern _X_EXPORT int
|
extern _X_EXPORT int
|
||||||
ddxProcessArgument(int /*argc */ , char * /*argv */ [], int /*i */ );
|
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
|
extern _X_EXPORT void
|
||||||
ddxUseMsg(void);
|
ddxUseMsg(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue