36 lines
1.3 KiB
C
36 lines
1.3 KiB
C
/* SPDX-License-Identifier: MIT OR X11
|
|
*
|
|
* Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net>
|
|
*/
|
|
#ifndef _XSERVER_OS_CMDLINE_H
|
|
#define _XSERVER_OS_CMDLINE_H
|
|
|
|
#include "include/os.h"
|
|
|
|
#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)
|
|
|
|
void UseMsg(void);
|
|
void ProcessCommandLine(int argc, char * argv[]);
|
|
void CheckUserParameters(int argc, char **argv, char **envp);
|
|
|
|
/*
|
|
* @brief check for and parse an counting-flag or value-flag option
|
|
*
|
|
* Parses an option that may either be used for setting an integer value or
|
|
* given one or multiple times (without argument) to increase an value
|
|
*
|
|
* @param argc total number of elements in argv
|
|
* @param argv array of pointers to cmdline argument strings
|
|
* @param idx pointer to current index in argv -- eventually will be modified
|
|
* @param name the command line argument name
|
|
* @param value pointer to the field holding the setting value
|
|
* @return non-zero if the flag was found and parsed
|
|
*/
|
|
int ProcessCmdLineMultiInt(int argc, char *argv[], int *idx, const char* name, int *value);
|
|
|
|
#endif /* _XSERVER_OS_CMELINE_H */
|