summaryrefslogtreecommitdiff
path: root/libbb/endofname.c (plain)
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
16const char* FAST_FUNC
17endofname(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