X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Funit-name.c;h=0e86b554c2eee4382c742fdd2f107b2e8ce01aed;hb=71fad6751434f06485a744d41be2d807303c1184;hp=2e2948ab1d1f13ed701ee4e793ef5f1e0b90347b;hpb=d6c9574fb558d9e304699b1cc7522c3b133adfc9;p=elogind.git diff --git a/src/unit-name.c b/src/unit-name.c index 2e2948ab1..0e86b554c 100644 --- a/src/unit-name.c +++ b/src/unit-name.c @@ -21,8 +21,9 @@ #include #include +#include -#include "unit.h" +#include "util.h" #include "unit-name.h" #define VALID_CHARS \ @@ -31,20 +32,7 @@ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ ":-_.\\" -UnitType unit_name_to_type(const char *n) { - UnitType t; - - assert(n); - - for (t = 0; t < _UNIT_TYPE_MAX; t++) - if (endswith(n, unit_vtable[t]->suffix)) - return t; - - return _UNIT_TYPE_INVALID; -} - -bool unit_name_is_valid(const char *n) { - UnitType t; +bool unit_name_is_valid_no_type(const char *n) { const char *e, *i, *at; /* Valid formats: @@ -58,13 +46,8 @@ bool unit_name_is_valid(const char *n) { if (strlen(n) >= UNIT_NAME_MAX) return false; - t = unit_name_to_type(n); - if (t < 0 || t >= _UNIT_TYPE_MAX) - return false; - - assert_se(e = strrchr(n, '.')); - - if (e == n) + e = strrchr(n, '.'); + if (!e || e == n) return false; for (i = n, at = NULL; i < e; i++) { @@ -167,7 +150,7 @@ char *unit_name_change_suffix(const char *n, const char *suffix) { size_t a, b; assert(n); - assert(unit_name_is_valid(n)); + assert(unit_name_is_valid_no_type(n)); assert(suffix); assert_se(e = strrchr(n, '.')); @@ -190,7 +173,6 @@ char *unit_name_build(const char *prefix, const char *instance, const char *suff assert(unit_prefix_is_valid(prefix)); assert(!instance || unit_instance_is_valid(instance)); assert(suffix); - assert(unit_name_to_type(suffix) >= 0); if (!instance) return strappend(prefix, suffix); @@ -211,7 +193,7 @@ static char* do_escape(const char *f, char *t) { else if (*f == '-' || *f == '\\' || !strchr(VALID_CHARS, *f)) { *(t++) = '\\'; *(t++) = 'x'; - *(t++) = hexchar(*f > 4); + *(t++) = hexchar(*f >> 4); *(t++) = hexchar(*f); } else *(t++) = *f; @@ -226,7 +208,6 @@ char *unit_name_build_escape(const char *prefix, const char *instance, const cha assert(prefix); assert(suffix); - assert(unit_name_to_type(suffix) >= 0); /* Takes a arbitrary string for prefix and instance plus a * suffix and makes a nice string suitable as unit name of it,