27 lines
486 B
C
27 lines
486 B
C
|
/*
|
||
|
* 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;
|
||
|
}
|