xref: /openbmc/qemu/util/id.c (revision f5bebbbb)
1*f5bebbbbSMarkus Armbruster /*
2*f5bebbbbSMarkus Armbruster  * Dealing with identifiers
3*f5bebbbbSMarkus Armbruster  *
4*f5bebbbbSMarkus Armbruster  * Copyright (C) 2014 Red Hat, Inc.
5*f5bebbbbSMarkus Armbruster  *
6*f5bebbbbSMarkus Armbruster  * Authors:
7*f5bebbbbSMarkus Armbruster  *  Markus Armbruster <armbru@redhat.com>,
8*f5bebbbbSMarkus Armbruster  *
9*f5bebbbbSMarkus Armbruster  * This work is licensed under the terms of the GNU LGPL, version 2.1
10*f5bebbbbSMarkus Armbruster  * or later.  See the COPYING.LIB file in the top-level directory.
11*f5bebbbbSMarkus Armbruster  */
12*f5bebbbbSMarkus Armbruster 
13*f5bebbbbSMarkus Armbruster #include "qemu-common.h"
14*f5bebbbbSMarkus Armbruster 
15*f5bebbbbSMarkus Armbruster bool id_wellformed(const char *id)
16*f5bebbbbSMarkus Armbruster {
17*f5bebbbbSMarkus Armbruster     int i;
18*f5bebbbbSMarkus Armbruster 
19*f5bebbbbSMarkus Armbruster     if (!qemu_isalpha(id[0])) {
20*f5bebbbbSMarkus Armbruster         return false;
21*f5bebbbbSMarkus Armbruster     }
22*f5bebbbbSMarkus Armbruster     for (i = 1; id[i]; i++) {
23*f5bebbbbSMarkus Armbruster         if (!qemu_isalnum(id[i]) && !strchr("-._", id[i])) {
24*f5bebbbbSMarkus Armbruster             return false;
25*f5bebbbbSMarkus Armbruster         }
26*f5bebbbbSMarkus Armbruster     }
27*f5bebbbbSMarkus Armbruster     return true;
28*f5bebbbbSMarkus Armbruster }
29