Skip to content

Commit f28505f

Browse files
committed
void * -> char * migration, fix for ARG_STANDALONE
Changed void * to char * for callbacks, fixed ARG_STANDALONE functions
1 parent 968432f commit f28505f

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

argparse.c

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020
#define ARG_LONG 0
2121
#define ARG_SHORT 1
2222

23+
#if __STDC_VERSION__ >= 199903L
24+
# define ARG_INLINE inline
25+
#else
26+
# define ARG_INLINE
27+
#endif
28+
2329
/* A simple implementation of some important "string.h" functions */
2430
#ifdef ARG_STANDALONE
2531
# define ARG_ASSERT(x)
@@ -28,15 +34,15 @@
2834
# define ARG_MEMCPY(dest, src, n) arg_memcpy(dest, src, n)
2935
# define ARG_STRCMP(a, b) arg_strcmp(a, b)
3036

31-
static size_t arg_strlen (char * str) {
37+
static ARG_INLINE size_t arg_strlen (char * str) {
3238
size_t len = 0;
3339
while (*str) {
3440
++str; ++len;
3541
}
3642
return len;
3743
}
3844

39-
static char * arg_strcpy (char * dest, char * src) {
45+
static ARG_INLINE char * arg_strcpy (char * dest, char * src) {
4046
while (*src) {
4147
*dest = *src;
4248
++dest; ++src;
@@ -45,15 +51,15 @@ static char * arg_strcpy (char * dest, char * src) {
4551
return dest;
4652
}
4753

48-
static void * arg_memcpy (void * dest, void * src, size_t n) {
49-
while (*dest) {
50-
*(char)dest = *(char *)src;
54+
static ARG_INLINE void * arg_memcpy (void * dest, void * src, size_t n) {
55+
while (*(char *)dest) {
56+
*(char *)dest = *(char *)src;
5157
++dest; ++src;
5258
}
5359
return dest;
5460
}
5561

56-
static int arg_strcmp (char * f, char * s) {
62+
static ARG_INLINE int arg_strcmp (char * f, char * s) {
5763
while (*f && *s) {
5864
if (!(*f == *s)) {
5965
break;
@@ -75,23 +81,17 @@ static int arg_strcmp (char * f, char * s) {
7581

7682
#define ARG_STREQ(a, b) (ARG_STRCMP(a, b) == 0)
7783

78-
#if __STDC_VERSION__ >= 199903L
79-
# define ARG_INLINE inline
80-
#else
81-
# define ARG_INLINE
82-
#endif
83-
84-
arg_return arg_string_handler (void * data_ptr, size_t blksize, void * retval) {
85-
void ** _retval = (void **)retval;
84+
arg_return arg_string_handler (char * data_ptr, size_t blksize, void * retval) {
85+
register void ** _retval = (void **)retval;
8686
*_retval = data_ptr;
8787
return 0;
8888
}
89-
arg_return arg_strcpy_handler (void * data_ptr, size_t blksize, void * retval) {
89+
arg_return arg_strcpy_handler (char * data_ptr, size_t blksize, void * retval) {
9090
if (blksize == 0) {
9191
retval = NULL;
9292
return 0;
9393
}
94-
ARG_STRCPY((char *)retval, (char *)data_ptr);
94+
ARG_STRCPY((char *)retval, data_ptr);
9595
return 0;
9696
}
9797

@@ -108,7 +108,7 @@ struct arg_state {
108108
};
109109

110110
static ARG_INLINE size_t arg_list_len (arg_list list) {
111-
size_t r = 0;
111+
register size_t r = 0;
112112
while (*(struct arg_argument **)list != NULL) {
113113
++r; ++list;
114114
}
@@ -212,8 +212,8 @@ static ARG_INLINE arg_return arg_parse_short (struct arg_state * state) {
212212
}
213213

214214
static ARG_INLINE arg_return arg_parse_long (struct arg_state * state) {
215-
size_t i;
216-
arg_return code;
215+
register size_t i;
216+
register arg_return code;
217217
for (i = 0; i < state->len; ++i) {
218218
if (ARG_STREQ (state->list[i].long_arg, *state->argv)) {
219219
state->ptr = &state->list[i];

argparse.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
/* Type for the return codes */
4646
typedef signed char arg_return;
4747

48-
typedef arg_return p_arg_handler (void * data_ptr, size_t blksize, void * retval);
48+
typedef arg_return p_arg_handler (char * data_ptr, size_t blksize, void * retval);
4949

5050
/* The handler is the parser for the value of the argument
5151
* if NULL is passed instead of a valid handler function,

0 commit comments

Comments
 (0)