|
pred@2125
|
1 |
#include "main.h" |
|
pred@2125
|
2 |
#include <stdarg.h> |
|
pred@2125
|
3 |
|
|
pred@2125
|
4 |
BuildMD5ableBuffer g_MD5Builder; |
|
pred@2125
|
5 |
|
|
pred@2125
|
6 |
int main(int argc, char **argv) |
|
pred@2125
|
7 |
{ |
|
pred@2125
|
8 |
SMCStates states; |
|
pred@2125
|
9 |
SMCError error; |
|
pred@2125
|
10 |
|
|
pred@2125
|
11 |
if (argc < 2) |
|
pred@2125
|
12 |
{ |
|
pred@2125
|
13 |
fprintf(stderr, "Usage: <file>\n"); |
|
pred@2125
|
14 |
return -1; |
|
pred@2125
|
15 |
} |
|
pred@2125
|
16 |
|
|
pred@2125
|
17 |
error = g_TextParser.ParseFile_SMC(argv[1], &g_MD5Builder, &states); |
|
pred@2125
|
18 |
|
|
pred@2125
|
19 |
if (error == SMCError_Okay) |
|
pred@2125
|
20 |
{ |
|
pred@2138
|
21 |
printf("%s", g_MD5Builder.GetMD5String()); |
|
pred@2125
|
22 |
return 0; |
|
pred@2125
|
23 |
} |
|
pred@2125
|
24 |
|
|
pred@2125
|
25 |
fprintf(stderr, "Failed to parse file, Error %i at line %i and col %i\n", error, states.line, states.col); |
|
pred@2125
|
26 |
return -1; |
|
pred@2125
|
27 |
} |
|
pred@2125
|
28 |
|
|
pred@2125
|
29 |
size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...) |
|
pred@2125
|
30 |
{ |
|
pred@2125
|
31 |
va_list ap; |
|
pred@2125
|
32 |
va_start(ap, fmt); |
|
pred@2125
|
33 |
size_t len = vsnprintf(buffer, maxlength, fmt, ap); |
|
pred@2125
|
34 |
va_end(ap); |
|
pred@2125
|
35 |
|
|
pred@2125
|
36 |
if (len >= maxlength) |
|
pred@2125
|
37 |
{ |
|
pred@2125
|
38 |
buffer[maxlength - 1] = '\0'; |
|
pred@2125
|
39 |
return (maxlength - 1); |
|
pred@2125
|
40 |
} |
|
pred@2125
|
41 |
else |
|
pred@2125
|
42 |
{ |
|
pred@2125
|
43 |
return len; |
|
pred@2125
|
44 |
} |
|
pred@2125
|
45 |
} |