[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor/master] Turn streq_opt into a generic strcmp_opt.



commit 94f85f216ae4b6196d2a3438bfaf328375ebaad6
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date:   Tue Jul 19 02:36:11 2011 -0400

    Turn streq_opt into a generic strcmp_opt.
---
 src/common/util.c |   17 +++++++++++++++++
 src/common/util.h |    1 +
 src/or/config.c   |    7 +------
 3 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/src/common/util.c b/src/common/util.c
index bf0bbe0..15b6e71 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -521,6 +521,23 @@ tor_strisnonupper(const char *s)
   return 1;
 }
 
+/** As strcmp, except that either string may be NULL.  The NULL string is
+ * considered to be before any non-NULL string. */
+int
+strcmp_opt(const char *s1, const char *s2)
+{
+  if (!s1) {
+    if (!s2)
+      return 0;
+    else
+      return -1;
+  } else if (!s2) {
+    return 1;
+  } else {
+    return strcmp(s1, s2);
+  }
+}
+
 /** Compares the first strlen(s2) characters of s1 with s2.  Returns as for
  * strcmp.
  */
diff --git a/src/common/util.h b/src/common/util.h
index de06c3c..9935587 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -175,6 +175,7 @@ void tor_strlower(char *s) ATTR_NONNULL((1));
 void tor_strupper(char *s) ATTR_NONNULL((1));
 int tor_strisprint(const char *s) ATTR_PURE ATTR_NONNULL((1));
 int tor_strisnonupper(const char *s) ATTR_PURE ATTR_NONNULL((1));
+int strcmp_opt(const char *s1, const char *s2) ATTR_PURE;
 int strcmpstart(const char *s1, const char *s2) ATTR_PURE ATTR_NONNULL((1,2));
 int strcmp_len(const char *s1, const char *s2, size_t len)
   ATTR_PURE ATTR_NONNULL((1,2));
diff --git a/src/or/config.c b/src/or/config.c
index 86ccb92..cc1561b 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -3864,12 +3864,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
 static int
 opt_streq(const char *s1, const char *s2)
 {
-  if (!s1 && !s2)
-    return 1;
-  else if (s1 && s2 && !strcmp(s1,s2))
-    return 1;
-  else
-    return 0;
+  return 0 == strcmp_opt(s1, s2);
 }
 
 /** Check if any of the previous options have changed but aren't allowed to. */



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits