]> granicus.if.org Git - neomutt/commitdiff
mutt_str_getenv()
authorRichard Russon <rich@flatcap.org>
Wed, 10 Jan 2018 15:49:44 +0000 (15:49 +0000)
committerRichard Russon <rich@flatcap.org>
Wed, 17 Jan 2018 00:34:40 +0000 (00:34 +0000)
mutt/string.c
mutt/string2.h

index ffa4010ddd207cd4cd29fd79df80f6c57b353a23..76d55d2b45a603502aac799348cb9b155746e023 100644 (file)
@@ -34,6 +34,7 @@
  * | mutt_str_atos()               | Convert ASCII string to a short
  * | mutt_str_dequote_comment()    | Un-escape characters in an email address comment
  * | mutt_str_find_word()          | Find the next word (non-space)
+ * | mutt_str_getenv()             | Get an environment variable
  * | mutt_str_is_ascii()           | Is a string ASCII (7-bit)?
  * | mutt_str_is_email_wsp()       | Is this a whitespace character (for an email header)
  * | mutt_str_lws_len()            | Measure the linear-white-space at the beginning of a string
@@ -901,3 +902,23 @@ void mutt_str_pretty_size(char *buf, size_t buflen, size_t num)
     snprintf(buf, buflen, "%zuM", (num + 52428) / 1048576);
   }
 }
+
+/**
+ * mutt_str_getenv - Get an environment variable
+ * @param name Environment variable to get
+ * @retval ptr Value of variable
+ * @retval NULL Variable isn't set, or is empty
+ *
+ * @warning The caller must not free the returned pointer.
+ */
+const char *mutt_str_getenv(const char *name)
+{
+  if (!name)
+    return NULL;
+
+  const char *val = getenv(name);
+  if (val && (val[0] != '\0'))
+      return val;
+
+  return NULL;
+}
index 081ccc7e953f38368850818f3333dbc312843781..9c73d3a1c5c0d6c654cce70ed3d2fbbf8dc73600 100644 (file)
@@ -68,6 +68,7 @@ int         mutt_str_atol(const char *str, long *dst);
 int         mutt_str_atos(const char *str, short *dst);
 void        mutt_str_dequote_comment(char *s);
 const char *mutt_str_find_word(const char *src);
+const char *mutt_str_getenv(const char *name);
 bool        mutt_str_is_ascii(const char *p, size_t len);
 int         mutt_str_is_email_wsp(char c);
 size_t      mutt_str_lws_len(const char *s, size_t n);