Skip to content

Commit 7544dac

Browse files
committed
style: rename functions and variables to snake_case for C naming conventions
1 parent 8e63779 commit 7544dac

File tree

12 files changed

+206
-211
lines changed

12 files changed

+206
-211
lines changed

CMakeLists.txt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build/bin)
99

1010
set(HEADERS
1111
src/constants.h
12-
src/Encryptors/xorencryptor.h
13-
src/Cli/args.h
14-
src/Cli/argHandlers.h
15-
src/Cli/argFlags.h
12+
src/encryptors/xor_encryptor.h
13+
src/cli/args.h
14+
src/cli/arg_handlers.h
15+
src/cli/arg_flags.h
1616
)
1717

1818
set(SOURCES
1919
src/main.c
20-
src/Encryptors/xorencryptor.c
21-
src/Cli/args.c
22-
src/Cli/argHandlers.c
20+
src/encryptors/xor_encryptor.c
21+
src/cli/args.c
22+
src/cli/arg_handlers.c
2323
)
2424

2525
add_executable(FileEncryptor

src/Cli/argHandlers.c

Lines changed: 0 additions & 120 deletions
This file was deleted.

src/Cli/argHandlers.h

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#ifndef ARGFLAGS_H
2-
#define ARGFLAGS_H
1+
#ifndef ARG_FLAGS_H
2+
#define ARG_FLAGS_H
33

44
#define FLAG_ENCRYPT "-e"
55
#define FLAG_DECRYPT "-d"
@@ -8,4 +8,4 @@
88
#define FLAG_INPUT "-i"
99
#define FLAG_OUTPUT "-o"
1010

11-
#endif // ARGFLAGS_H
11+
#endif // ARG_FLAGS_H

src/Cli/arg_handlers.c

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
#include "arg_flags.h"
2+
#include "arg_handlers.h"
3+
#include <stdio.h>
4+
#include <stdlib.h>
5+
#include <string.h>
6+
7+
static int handle_flag(int argc, char *argv[], int *i, int *target, int expected_value, int disallowed_value);
8+
static int handle_string(int argc, char *argv[], int *i, char *target, size_t max_length);
9+
static int parse_string(int argc, char *argv[], int *i, const char **target);
10+
static int is_known_flag(const char *arg);
11+
12+
13+
int handle_encrypt(int argc, char *argv[], int *i, cli_args_t *opts)
14+
{
15+
return handle_flag(argc, argv, i, &opts->encrypt_mode, 1, -1);
16+
}
17+
18+
int handle_decrypt(int argc, char *argv[], int *i, cli_args_t *opts)
19+
{
20+
return handle_flag(argc, argv, i, &opts->encrypt_mode, 0, -1);
21+
}
22+
23+
int handle_key(int argc, char *argv[], int *i, cli_args_t *opts)
24+
{
25+
return handle_string(argc, argv, i, opts->key, KEY_LENGTH);
26+
}
27+
28+
int handle_input(int argc, char *argv[], int *i, cli_args_t *opts)
29+
{
30+
return handle_string(argc, argv, i, opts->input_path, PATH_LENGTH);
31+
}
32+
33+
int handle_output(int argc, char *argv[], int *i, cli_args_t *opts)
34+
{
35+
return handle_string(argc, argv, i, opts->output_path, PATH_LENGTH);
36+
}
37+
38+
static int handle_flag(int argc, char *argv[], int *i, int *target, int expected_value, int disallowed_value)
39+
{
40+
(void)argc;
41+
42+
const char *flag_name = argv[*i];
43+
44+
if (*target != disallowed_value)
45+
{
46+
fprintf(stderr, "Error: duplicate or conflicting %s flag.\n", flag_name);
47+
return -1;
48+
}
49+
50+
*target = expected_value;
51+
return 0;
52+
}
53+
54+
static int handle_string(int argc, char *argv[], int *i, char *target, size_t max_length)
55+
{
56+
const char *flag_name = argv[*i];
57+
58+
if (target[0])
59+
{
60+
fprintf(stderr, "Error: duplicate %s flag.\n", flag_name);
61+
return -1;
62+
}
63+
64+
const char *arg;
65+
if (parse_string(argc, argv, i, &arg) != 0 || is_known_flag(arg))
66+
{
67+
fprintf(stderr, "Error: %s requires a value.\n", flag_name);
68+
return -1;
69+
}
70+
71+
if (strlen(arg) >= max_length)
72+
{
73+
fprintf(stderr, "Error: value for %s is too long (max %zu characters).\n", flag_name, max_length - 1);
74+
return -1;
75+
}
76+
77+
strncpy(target, arg, max_length);
78+
target[max_length - 1] = '\0';
79+
80+
return 0;
81+
}
82+
83+
static int parse_string(int argc, char *argv[], int *i, const char **arg)
84+
{
85+
if (++(*i) >= argc || argv[*i][0] == '\0')
86+
{
87+
return -1;
88+
}
89+
90+
*arg = argv[*i];
91+
return 0;
92+
}
93+
94+
static const char *known_flags[] = {
95+
FLAG_ENCRYPT,
96+
FLAG_DECRYPT,
97+
FLAG_GENERATE_KEY,
98+
FLAG_KEY,
99+
FLAG_INPUT,
100+
FLAG_OUTPUT,
101+
NULL
102+
};
103+
104+
static int is_known_flag(const char *arg)
105+
{
106+
for (int i = 0; known_flags[i] != NULL; ++i)
107+
{
108+
if (strcmp(arg, known_flags[i]) == 0)
109+
{
110+
return 1;
111+
}
112+
}
113+
114+
return 0;
115+
}

src/Cli/arg_handlers.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#ifndef ARG_HANDLERS_H
2+
#define ARG_HANDLERS_H
3+
4+
#include "args.h"
5+
6+
typedef int (*ArgHandler)(int argc, char *argv[], int *i, cli_args_t *opts);
7+
8+
int handle_encrypt(int argc, char *argv[], int *i, cli_args_t *opts);
9+
int handle_decrypt(int argc, char *argv[], int *i, cli_args_t *opts);
10+
int handle_key(int argc, char *argv[], int *i, cli_args_t *opts);
11+
int handle_key(int argc, char *argv[], int *i, cli_args_t *opts);
12+
int handle_input(int argc, char *argv[], int *i, cli_args_t *opts);
13+
int handle_output(int argc, char *argv[], int *i, cli_args_t *opts);
14+
15+
#endif // ARG_HANDLERS_H

0 commit comments

Comments
 (0)