X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=util.c;h=51fafbde862c72ab84b34601746e8161351fd389;hb=93105d4c2c21aaf558fc8d0fee7e597f34d00d3d;hp=9b8fb5c9115c5ffbe25b72f2e11dfd3e8ed48b02;hpb=99971b7806881f4e5f7c39ec17c1979e76695b2c;p=xonotic%2Fgmqcc.git diff --git a/util.c b/util.c index 9b8fb5c..51fafbd 100644 --- a/util.c +++ b/util.c @@ -164,11 +164,7 @@ bool util_strdigit(const char *str) { } bool util_strncmpexact(const char *src, const char *ned, size_t len) { - if (!strncmp(src, ned, len)) { - if (!src[len]) - return true; - } - return false; + return (!strncmp(src, ned, len) && !src[len]); } void util_debug(const char *area, const char *ms, ...) { @@ -375,10 +371,30 @@ int util_getline(char **lineptr, size_t *n, FILE *stream) { return (ret = pos - *lineptr); } -/* TODO: opts.c? when it gets large enugh */ -/* global options */ -bool opts_debug = false; -bool opts_memchk = false; -bool opts_darkplaces_stringtablebug = false; -bool opts_omit_nullcode = false; -int opts_compiler = COMPILER_GMQCC; +size_t util_strtocmd(const char *in, char *out, size_t outsz) { + size_t sz = 1; + for (; *in && sz < outsz; ++in, ++out, ++sz) { + if (*in == '-') + *out = '_'; + else if (isalpha(*in) && !isupper(*in)) + *out = *in + 'A' - 'a'; + else + *out = *in; + } + *out = 0; + return sz-1; +} + +size_t util_strtononcmd(const char *in, char *out, size_t outsz) { + size_t sz = 1; + for (; *in && sz < outsz; ++in, ++out, ++sz) { + if (*in == '_') + *out = '-'; + else if (isalpha(*in) && isupper(*in)) + *out = *in + 'a' - 'A'; + else + *out = *in; + } + *out = 0; + return sz-1; +}