util: simplify normalize_env_assignment() a bit
This commit is contained in:
parent
b5e1fad5b1
commit
f4934dfaaa
|
@ -2783,7 +2783,7 @@ int get_ctty(pid_t pid, dev_t *_devnr, char **r) {
|
||||||
if (k < 0)
|
if (k < 0)
|
||||||
return k;
|
return k;
|
||||||
|
|
||||||
snprintf(fn, sizeof(fn), "/dev/char/%u:%u", major(devnr), minor(devnr));
|
sprintf(fn, "/dev/char/%u:%u", major(devnr), minor(devnr));
|
||||||
|
|
||||||
k = readlink_malloc(fn, &s);
|
k = readlink_malloc(fn, &s);
|
||||||
if (k < 0) {
|
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;
|
_cleanup_free_ char *value = NULL;
|
||||||
char *eq, *r;
|
const char *eq;
|
||||||
|
char *p, *name;
|
||||||
|
|
||||||
eq = strchr(s, '=');
|
eq = strchr(s, '=');
|
||||||
if (!eq) {
|
if (!eq) {
|
||||||
char *t;
|
char *r, *t;
|
||||||
|
|
||||||
r = strdup(s);
|
r = strdup(s);
|
||||||
if (!r)
|
if (!r)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
t = strstrip(r);
|
t = strstrip(r);
|
||||||
if (t == r)
|
if (t != r)
|
||||||
return r;
|
memmove(r, t, strlen(t) + 1);
|
||||||
|
|
||||||
memmove(r, t, strlen(t) + 1);
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
name = strndup(s, eq - s);
|
name = strndupa(s, eq - s);
|
||||||
if (!name)
|
p = strdupa(eq + 1);
|
||||||
return NULL;
|
|
||||||
|
|
||||||
p = strdup(eq + 1);
|
|
||||||
if (!p)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
value = unquote(strstrip(p), QUOTES);
|
value = unquote(strstrip(p), QUOTES);
|
||||||
if (!value)
|
if (!value)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (asprintf(&r, "%s=%s", strstrip(name), value) < 0)
|
return strjoin(strstrip(name), "=", value, NULL);
|
||||||
r = NULL;
|
|
||||||
|
|
||||||
return r;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int wait_for_terminate(pid_t pid, siginfo_t *status) {
|
int wait_for_terminate(pid_t pid, siginfo_t *status) {
|
||||||
|
|
Loading…
Reference in New Issue