chiark / gitweb /
Need to use #elif defined(DEBIAN) here...
[elogind.git] / src / util.c
index 47da11c1b8b0ce3633e352a8ce26be0ee081ec9b..0939ea9456bde70eaf193a65002ffe8d0665774c 100644 (file)
@@ -602,7 +602,7 @@ int parse_env_file(
                 const char *fname,
                 const char *seperator, ...) {
 
-        int r;
+        int r = 0;
         char *contents, *p;
 
         assert(fname);
@@ -641,8 +641,8 @@ int parse_env_file(
                                 n = strcspn(p, seperator);
 
                                 if (n >= 2 &&
-                                    strchr(QUOTES, v[0]) &&
-                                    v[n-1] == v[0])
+                                    strchr(QUOTES, p[0]) &&
+                                    p[n-1] == p[0])
                                         v = strndup(p+1, n-2);
                                 else
                                         v = strndup(p, n);
@@ -657,6 +657,8 @@ int parse_env_file(
                                 *value = v;
 
                                 p += n;
+
+                                r ++;
                                 break;
                         }
                         va_end(ap);
@@ -666,8 +668,6 @@ int parse_env_file(
                         p += strcspn(p, seperator);
         }
 
-        r = 0;
-
 fail:
         free(contents);
         return r;
@@ -2009,23 +2009,29 @@ int read_one_char(FILE *f, char *ret, bool *need_nl) {
 }
 
 int ask(char *ret, const char *replies, const char *text, ...) {
+        bool on_tty;
+
         assert(ret);
         assert(replies);
         assert(text);
 
+        on_tty = isatty(STDOUT_FILENO);
+
         for (;;) {
                 va_list ap;
                 char c;
                 int r;
                 bool need_nl = true;
 
-                fputs("\x1B[1m", stdout);
+                if (on_tty)
+                        fputs("\x1B[1m", stdout);
 
                 va_start(ap, text);
                 vprintf(text, ap);
                 va_end(ap);
 
-                fputs("\x1B[0m", stdout);
+                if (on_tty)
+                        fputs("\x1B[0m", stdout);
 
                 fflush(stdout);