}
char hexchar(int x) {
- static const char table[] = "0123456789abcdef";
-
+ const char *table = LOWERCASE_HEXDIGITS;
return table[x & 15];
}
* useful when representing NSEC3 hashes, as one can then verify the
* order of hashes directly from their representation. */
char base32hexchar(int x) {
- static const char table[] = "0123456789"
- "ABCDEFGHIJKLMNOPQRSTUV";
-
+ const char *table = DIGITS "ABCDEFGHIJKLMNOPQRSTUV";
return table[x & 31];
}
/* https://tools.ietf.org/html/rfc4648#section-4 */
char base64char(int x) {
- static const char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz"
- "0123456789+/";
+ const char *table = UPPERCASE_LETTERS LOWERCASE_LETTERS DIGITS "+/";
return table[x & 63];
}
* since we don't want "/" appear in interface names (since interfaces appear in sysfs as filenames).
* See section #5 of RFC 4648. */
char urlsafe_base64char(int x) {
- static const char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz"
- "0123456789-_";
+ const char *table = UPPERCASE_LETTERS LOWERCASE_LETTERS DIGITS "-_";
return table[x & 63];
}
* don't allow slashes. */
return false;
- if (in_charset(u, "0123456789")) /* Don't allow fully numeric strings, they might be confused
- * with UIDs (note that this test is more broad than
- * the parse_uid() test above, as it will cover more than
- * the 32-bit range, and it will detect 65535 (which is in
- * invalid UID, even though in the unsigned 32 bit range) */
+ if (in_charset(u, DIGITS)) /* Don't allow fully numeric strings, they might be confused with
+ * UIDs (note that this test is more broad than the parse_uid()
+ * test above, as it will cover more than the 32-bit range, and it
+ * will detect 65535 (which is in invalid UID, even though in the
+ * unsigned 32 bit range) */
return false;
- if (u[0] == '-' && in_charset(u + 1, "0123456789")) /* Don't allow negative fully numeric
- * strings either. After all some people
- * write 65535 as -1 (even though that's
- * not even true on 32-bit uid_t
- * anyway) */
+ if (u[0] == '-' && in_charset(u + 1, DIGITS)) /* Don't allow negative fully numeric strings
+ * either. After all some people write 65535 as
+ * -1 (even though that's not even true on
+ * 32-bit uid_t anyway) */
return false;
if (dot_or_dot_dot(u)) /* User names typically become home directory names, and these two are
#include "util.h"
static char *write_cpio_word(char *p, uint32_t v) {
- static const char hex[] = "0123456789abcdef";
+ const char *hex = LOWERCASE_HEXDIGITS;
assert(p);
}
char16_t *hexdump(const void *data, size_t size) {
- static const char hex[] = "0123456789abcdef";
+ const char *hex = LOWERCASE_HEXDIGITS;
const uint8_t *d = data;
assert(data || size == 0);
}
static bool push_num(FormatContext *ctx, SpecifierContext *sp, uint64_t u) {
- const char *digits = sp->lowercase ? "0123456789abcdef" : "0123456789ABCDEF";
+ const char *digits = sp->lowercase ? LOWERCASE_HEXDIGITS : UPPERCASE_HEXDIGITS;
char16_t tmp[32];
size_t n = 0;
#define ALPHANUMERICAL LETTERS DIGITS
#define HEXDIGITS DIGITS "abcdefABCDEF"
#define LOWERCASE_HEXDIGITS DIGITS "abcdef"
+#define UPPERCASE_HEXDIGITS DIGITS "ABCDEF"
#define URI_RESERVED ":/?#[]@!$&'()*+;=" /* [RFC3986] */
#define URI_UNRESERVED ALPHANUMERICAL "-._~" /* [RFC3986] */
#define URI_VALID URI_RESERVED URI_UNRESERVED /* [RFC3986] */
got_forward_slash = true;
}
- if (!in_charset(p, "0123456789") || *p == '\0') {
+ if (!in_charset(p, DIGITS) || *p == '\0') {
if (!hostname_is_valid(p, 0) || got_forward_slash)
return -EINVAL;
interpret_port_as_machine_old_syntax:
/* Let's make sure this is not a port of some kind,
* and is a valid machine name. */
- if (!in_charset(m, "0123456789") && hostname_is_valid(m, 0))
+ if (!in_charset(m, DIGITS) && hostname_is_valid(m, 0))
c = strjoina(",argv", p ? "7" : "5", "=--machine=", m);
}
x = 10.0 * x + (*c - '0');
c++;
- } while (strchr("0123456789", *c) && *c != 0);
+ } while (strchr(DIGITS, *c) && *c != 0);
}
if (*c == '.') {
is_real = true;
c++;
- if (!strchr("0123456789", *c) || *c == 0)
+ if (!strchr(DIGITS, *c) || *c == 0)
return -EINVAL;
do {
y = 10.0 * y + (*c - '0');
shift = 10.0 * shift;
c++;
- } while (strchr("0123456789", *c) && *c != 0);
+ } while (strchr(DIGITS, *c) && *c != 0);
}
if (IN_SET(*c, 'e', 'E')) {
} else if (*c == '+')
c++;
- if (!strchr("0123456789", *c) || *c == 0)
+ if (!strchr(DIGITS, *c) || *c == 0)
return -EINVAL;
do {
exponent = 10.0 * exponent + (*c - '0');
c++;
- } while (strchr("0123456789", *c) && *c != 0);
+ } while (strchr(DIGITS, *c) && *c != 0);
}
*p = c;
*state = INT_TO_PTR(STATE_VALUE_POST);
goto finish;
- } else if (strchr("-0123456789", *c)) {
+ } else if (strchr("-" DIGITS, *c)) {
r = json_parse_number(&c, ret_value);
if (r < 0)
if (!display_is_local(display))
return -EINVAL;
- k = strspn(display+1, "0123456789");
+ k = strspn(display + 1, DIGITS);
/* Try abstract socket first. */
f = new(char, STRLEN("@/tmp/.X11-unix/X") + k + 1);