chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
build-sys: drop -Wunsafe-loop-optimizations
[elogind.git]
/
util.h
diff --git
a/util.h
b/util.h
index e005a2a072b6cd67cb45fe83510c3a0f172e004c..af39accc946c47c079ace7164f9e65c38d7f86db 100644
(file)
--- a/
util.h
+++ b/
util.h
@@
-99,13
+99,13
@@
char *split(const char *c, size_t *l, const char *separator, char **state);
char *split_quoted(const char *c, size_t *l, char **state);
#define FOREACH_WORD(word, length, s, state) \
char *split_quoted(const char *c, size_t *l, char **state);
#define FOREACH_WORD(word, length, s, state) \
- for ((state) = NULL, (word) = split((s), &(l
), WHITESPACE, &(state)); (word); (word) = split((s), &(l
), WHITESPACE, &(state)))
+ for ((state) = NULL, (word) = split((s), &(l
ength), WHITESPACE, &(state)); (word); (word) = split((s), &(length
), WHITESPACE, &(state)))
#define FOREACH_WORD_SEPARATOR(word, length, s, separator, state) \
#define FOREACH_WORD_SEPARATOR(word, length, s, separator, state) \
- for ((state) = NULL, (word) = split((s), &(l
), (separator), &(state)); (word); (word) = split((s), &(l
), (separator), &(state)))
+ for ((state) = NULL, (word) = split((s), &(l
ength), (separator), &(state)); (word); (word) = split((s), &(length
), (separator), &(state)))
#define FOREACH_WORD_QUOTED(word, length, s, state) \
#define FOREACH_WORD_QUOTED(word, length, s, state) \
- for ((state) = NULL, (word) = split_quoted((s), &(l
), &(state)); (word); (word) = split_quoted((s), &(l
), &(state)))
+ for ((state) = NULL, (word) = split_quoted((s), &(l
ength), &(state)); (word); (word) = split_quoted((s), &(length
), &(state)))
char **split_path_and_make_absolute(const char *p);
char **split_path_and_make_absolute(const char *p);
@@
-136,6
+136,8
@@
char hexchar(int x);
int unhexchar(char c);
char octchar(int x);
int unoctchar(char c);
int unhexchar(char c);
char octchar(int x);
int unoctchar(char c);
+char decchar(int x);
+int undecchar(char c);
char *cescape(const char *s);
char *cunescape(const char *s);
char *cescape(const char *s);
char *cunescape(const char *s);
@@
-161,15
+163,26
@@
bool ignore_file(const char *filename);
} \
type name##_from_string(const char *s) { \
type i; \
} \
type name##_from_string(const char *s) { \
type i; \
+ unsigned u; \
assert(s); \
for (i = 0; i < (type)ELEMENTSOF(name##_table); i++) \
if (streq(name##_table[i], s)) \
return i; \
assert(s); \
for (i = 0; i < (type)ELEMENTSOF(name##_table); i++) \
if (streq(name##_table[i], s)) \
return i; \
+ if (safe_atou(s, &u) >= 0 && \
+ u < ELEMENTSOF(name##_table)) \
+ return (type) u; \
return (type) -1; \
} \
struct __useless_struct_to_allow_trailing_semicolon__
return (type) -1; \
} \
struct __useless_struct_to_allow_trailing_semicolon__
+int fd_nonblock(int fd, bool nonblock);
+int fd_cloexec(int fd, bool cloexec);
+
+int close_all_fds(const int except[], unsigned n_except);
+
+extern char * __progname;
+
const char *ioprio_class_to_string(int i);
int ioprio_class_from_string(const char *s);
const char *ioprio_class_to_string(int i);
int ioprio_class_from_string(const char *s);