X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=util.c;h=9da7d985fa5caacaffac58648f3b533f243b4e72;hp=496f55166b7f35a1dad171fbe7c2541a97dd7fa8;hb=67d51650ce3c3741bad8e5dca5d4e03c30f266cd;hpb=65d2ebdc3408c81a947de8712b37b9398d955465 diff --git a/util.c b/util.c index 496f55166..9da7d985f 100644 --- a/util.c +++ b/util.c @@ -585,7 +585,7 @@ int reset_all_signal_handlers(void) { return -errno; } - return 0; + return 0; } char *strstrip(char *s) { @@ -701,6 +701,18 @@ int unoctchar(char c) { return -1; } +char decchar(int x) { + return '0' + (x % 10); +} + +int undecchar(char c) { + + if (c >= '0' && c <= '9') + return c - '0'; + + return -1; +} + char *cescape(const char *s) { char *r, *t; const char *f; @@ -903,8 +915,8 @@ char *xescape(const char *s, const char *bad) { for (f = s, t = r; *f; f++) { - if (*f < ' ' || *f >= 127 || - *f == '\\' || strchr(bad, *f)) { + if ((*f < ' ') || (*f >= 127) || + (*f == '\\') || strchr(bad, *f)) { *(t++) = '\\'; *(t++) = 'x'; *(t++) = hexchar(*f >> 4); @@ -1046,16 +1058,30 @@ bool path_startswith(const char *path, const char *prefix) { } } -char *ascii_strlower(char *path) { +char *ascii_strlower(char *t) { char *p; - assert(path); + assert(t); - for (p = path; *p; p++) + for (p = t; *p; p++) if (*p >= 'A' && *p <= 'Z') *p = *p - 'A' + 'a'; - return p; + return t; +} + +bool ignore_file(const char *filename) { + assert(filename); + + return + filename[0] == '.' || + endswith(filename, "~") || + endswith(filename, ".rpmnew") || + endswith(filename, ".rpmsave") || + endswith(filename, ".rpmorig") || + endswith(filename, ".dpkg-old") || + endswith(filename, ".dpkg-new") || + endswith(filename, ".swp"); } static const char *const ioprio_class_table[] = {