blob: 305f0932b1ff6ca5e30cba81cb35a41cacb0222d
1 | /* |
2 | * Utility routines. |
3 | * |
4 | * Copyright (C) 2013 Denys Vlasenko |
5 | * |
6 | * Licensed under GPLv2, see file LICENSE in this source tree. |
7 | */ |
8 | |
9 | //kbuild:lib-y += endofname.o |
10 | |
11 | #include "libbb.h" |
12 | |
13 | #define is_name(c) ((c) == '_' || isalpha((unsigned char)(c))) |
14 | #define is_in_name(c) ((c) == '_' || isalnum((unsigned char)(c))) |
15 | |
16 | const char* FAST_FUNC |
17 | endofname(const char *name) |
18 | { |
19 | if (!is_name(*name)) |
20 | return name; |
21 | while (*++name) { |
22 | if (!is_in_name(*name)) |
23 | break; |
24 | } |
25 | return name; |
26 | } |
27 |