1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/** @file */
#ifndef HITOMEZASHI_CLI_H
#define HITOMEZASHI_CLI_H
#include <stddef.h>
/** Exit codes for main().
*/
enum Hitomezashi_Cli_Exit_Code {
/** The program completed successfully. */
Hitomezashi_Cli_Exit_Code_Success = 0,
/** The arguments were invalid or the program could not handle them. */
Hitomezashi_Cli_Exit_Code_Err_Handle_Args = 1,
/** Printing the help text failed. */
Hitomezashi_Cli_Exit_Code_Err_Print_Help = 2,
/** Initialising SDL failed. */
Hitomezashi_Cli_Exit_Code_Err_Sdl_Init = 3,
/** hitomezashi_state_init() from libhitomezashi failed. */
Hitomezashi_Cli_Exit_Code_Err_State_Init = 4,
/** Saving the SDL_Surface on which the pattern was drawn as an image failed.
*/
Hitomezashi_Cli_Exit_Code_Err_Save_Image = 5,
};
/** Read and parse arguments, ensure they are valid, and give back the
* information in usable form to the caller. Also calls hitomezashi_cli_help()
* if -h is passed.
* Note that *x_pattern and *y_pattern are dynamically allocated and should be
* freed by the caller when no longer needed.
*/
void hitomezashi_cli_handle_args(char **out_file_path, int *x_pattern_len,
int *y_pattern_len, char **x_pattern,
char **y_pattern, int *gap, int *thickness,
int argc, char **argv);
/** Print the help text and exit.
* Exits with Hitomezashi_Cli_Exit_Code_Success (0) on success, and
* Hitomezashi_Cli_Exit_Code_Print_Help (2) on failure.
*/
void hitomezashi_cli_help(void);
#endif // HITOMEZASHI_CLI_H
|