chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: simplify normalize_env_assignment() a bit
[elogind.git]
/
src
/
shared
/
util.c
diff --git
a/src/shared/util.c
b/src/shared/util.c
index 3eb8a0f44210ff3935f5176eb79c915480ccf106..3411cea34305b783420ec88f2f3cb91dd2a9e6bf 100644
(file)
--- a/
src/shared/util.c
+++ b/
src/shared/util.c
@@
-2783,7
+2783,7
@@
int get_ctty(pid_t pid, dev_t *_devnr, char **r) {
if (k < 0)
return k;
if (k < 0)
return k;
- s
nprintf(fn, sizeof(fn)
, "/dev/char/%u:%u", major(devnr), minor(devnr));
+ s
printf(fn
, "/dev/char/%u:%u", major(devnr), minor(devnr));
k = readlink_malloc(fn, &s);
if (k < 0) {
k = readlink_malloc(fn, &s);
if (k < 0) {
@@
-3591,41
+3591,33
@@
char *unquote(const char *s, const char* quotes) {
}
char *normalize_env_assignment(const char *s) {
}
char *normalize_env_assignment(const char *s) {
- _cleanup_free_ char *name = NULL, *value = NULL, *p = NULL;
- char *eq, *r;
+ _cleanup_free_ char *value = NULL;
+ const char *eq;
+ char *p, *name;
eq = strchr(s, '=');
if (!eq) {
eq = strchr(s, '=');
if (!eq) {
- char *t;
+ char *
r, *
t;
r = strdup(s);
if (!r)
return NULL;
t = strstrip(r);
r = strdup(s);
if (!r)
return NULL;
t = strstrip(r);
- if (t
=
= r)
-
return r
;
+ if (t
!
= r)
+
memmove(r, t, strlen(t) + 1)
;
- memmove(r, t, strlen(t) + 1);
return r;
}
return r;
}
- name = strndup(s, eq - s);
- if (!name)
- return NULL;
-
- p = strdup(eq + 1);
- if (!p)
- return NULL;
+ name = strndupa(s, eq - s);
+ p = strdupa(eq + 1);
value = unquote(strstrip(p), QUOTES);
if (!value)
return NULL;
value = unquote(strstrip(p), QUOTES);
if (!value)
return NULL;
- if (asprintf(&r, "%s=%s", strstrip(name), value) < 0)
- r = NULL;
-
- return r;
+ return strjoin(strstrip(name), "=", value, NULL);
}
int wait_for_terminate(pid_t pid, siginfo_t *status) {
}
int wait_for_terminate(pid_t pid, siginfo_t *status) {