diff options
Diffstat (limited to 'libbb/endofname.c')
-rw-r--r-- | libbb/endofname.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libbb/endofname.c b/libbb/endofname.c new file mode 100644 index 0000000..305f093 --- /dev/null +++ b/libbb/endofname.c @@ -0,0 +1,26 @@ +/* + * Utility routines. + * + * Copyright (C) 2013 Denys Vlasenko + * + * Licensed under GPLv2, see file LICENSE in this source tree. + */ + +//kbuild:lib-y += endofname.o + +#include "libbb.h" + +#define is_name(c) ((c) == '_' || isalpha((unsigned char)(c))) +#define is_in_name(c) ((c) == '_' || isalnum((unsigned char)(c))) + +const char* FAST_FUNC +endofname(const char *name) +{ + if (!is_name(*name)) + return name; + while (*++name) { + if (!is_in_name(*name)) + break; + } + return name; +} |