[PATCH 6/9 v3 part 1/2] util: add strcmp_null, a strcmp that handles NULL parameters
authorJani Nikula <jani@nikula.org>
Fri, 25 Sep 2015 16:48:19 +0000 (19:48 +0300)
committerW. Trevor King <wking@tremily.us>
Sat, 20 Aug 2016 21:49:37 +0000 (14:49 -0700)
8d/9f14f8025226d33cbdd7b8a5305bf5d29b3d15 [new file with mode: 0644]

diff --git a/8d/9f14f8025226d33cbdd7b8a5305bf5d29b3d15 b/8d/9f14f8025226d33cbdd7b8a5305bf5d29b3d15
new file mode 100644 (file)
index 0000000..b4c6c68
--- /dev/null
@@ -0,0 +1,117 @@
+Return-Path: <jani@nikula.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by arlo.cworth.org (Postfix) with ESMTP id 8B3796DE0C3A\r
+ for <notmuch@notmuchmail.org>; Fri, 25 Sep 2015 09:48:43 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at cworth.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.513\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.513 tagged_above=-999 required=5 tests=[AWL=0.207,\r
+  RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01]\r
+ autolearn=disabled\r
+Received: from arlo.cworth.org ([127.0.0.1])\r
+ by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id I0Zcjhcw11WQ for <notmuch@notmuchmail.org>;\r
+ Fri, 25 Sep 2015 09:48:41 -0700 (PDT)\r
+Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com\r
+ [209.85.212.173])\r
+ by arlo.cworth.org (Postfix) with ESMTPS id 5D2736DE025E\r
+ for <notmuch@notmuchmail.org>; Fri, 25 Sep 2015 09:48:41 -0700 (PDT)\r
+Received: by wiclk2 with SMTP id lk2so29885597wic.0\r
+ for <notmuch@notmuchmail.org>; Fri, 25 Sep 2015 09:48:39 -0700 (PDT)\r
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
+ d=1e100.net; s=20130820;\r
+ h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to\r
+ :references;\r
+ bh=1NDdt0CrFsdCyf6Od/6ni1a1RTGcud64elm99YDXTCM=;\r
+ b=gFSvl17MwDK2yRAJ40EIcm9goPL+/wrbERvNarJnN9cf0CM+v152ud8v0shVfe0H9C\r
+ 0rnaAQEimh+SowLGrhZySNx4Sjbnhf0tSg1MSYmmH2UF5SmHwAXlCGkdroBUh1QpsCT6\r
+ JnSYHNZW43xoSxH9ydQbbAjPrMENk2KPxkBvuK7gsB3NuY9HK8DzxqRPSl6BAsIpPkTO\r
+ VA3HvEcpVoa1KKNvTS0ZZ3nUvnfq+iteiRc+JaIgfVvTr0fROiUgQaN99+1AeBsXc0z9\r
+ q6OP2xtRzZXjRaZyBD6Y/6vzeOtCOJlfaIkSNxDbKQ7KtgMj4KUOCuBw4sHyr1mTrdK4\r
+ ZL1w==\r
+X-Gm-Message-State:\r
+ ALoCoQlPCnJ2QCVYbdGk31ZlJLHzEI1Iay1FU2vi5obHVRmvbMRP30rS5xTt1vEhqitdoEZ0NHHC\r
+X-Received: by 10.194.115.199 with SMTP id jq7mr7964818wjb.82.1443199719657;\r
+ Fri, 25 Sep 2015 09:48:39 -0700 (PDT)\r
+Received: from localhost (mobile-access-bcee63-221.dhcp.inet.fi.\r
+ [188.238.99.221])\r
+ by smtp.gmail.com with ESMTPSA id x7sm4081902wia.10.2015.09.25.09.48.38\r
+ (version=TLSv1/SSLv3 cipher=OTHER);\r
+ Fri, 25 Sep 2015 09:48:38 -0700 (PDT)\r
+From: Jani Nikula <jani@nikula.org>\r
+To: David Bremner <david@tethera.net>, Jani Nikula <jani@nikula.org>,\r
+ notmuch@notmuchmail.org\r
+Subject: [PATCH 6/9 v3 part 1/2] util: add strcmp_null,\r
+ a strcmp that handles NULL parameters\r
+Date: Fri, 25 Sep 2015 19:48:19 +0300\r
+Message-Id: <1443199700-16654-1-git-send-email-jani@nikula.org>\r
+X-Mailer: git-send-email 2.1.4\r
+In-Reply-To: <878u7v2y3x.fsf@zancas.localnet>\r
+References: <878u7v2y3x.fsf@zancas.localnet>\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.18\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch/>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Fri, 25 Sep 2015 16:48:43 -0000\r
+\r
+Add strcmp_null, a strcmp that handles NULL strings; in strcmp terms a\r
+NULL string is considered to be less than a non-NULL string.\r
+---\r
+ util/string-util.c | 13 +++++++++++++\r
+ util/string-util.h |  5 +++++\r
+ 2 files changed, 18 insertions(+)\r
+\r
+diff --git a/util/string-util.c b/util/string-util.c\r
+index 76c0b9025d0f..92af937f45ec 100644\r
+--- a/util/string-util.c\r
++++ b/util/string-util.c\r
+@@ -223,6 +223,19 @@ parse_boolean_term (void *ctx, const char *str,\r
+ }\r
\r
+ int\r
++strcmp_null (const char *s1, const char *s2)\r
++{\r
++    if (s1 && s2)\r
++      return strcmp (s1, s2);\r
++    else if (! s1 && ! s2)\r
++      return 0;\r
++    else if (s1)\r
++      return 1;       /* s1 (non-NULL) is greater than s2 (NULL) */\r
++    else\r
++      return -1;      /* s1 (NULL) is less than s2 (non-NULL) */\r
++}\r
++\r
++int\r
+ strcase_equal (const void *a, const void *b)\r
+ {\r
+     return strcasecmp (a, b) == 0;\r
+diff --git a/util/string-util.h b/util/string-util.h\r
+index 80d24d1c1053..87917b8fd279 100644\r
+--- a/util/string-util.h\r
++++ b/util/string-util.h\r
+@@ -64,6 +64,11 @@ int\r
+ parse_boolean_term (void *ctx, const char *str,\r
+                   char **prefix_out, char **term_out);\r
\r
++/* strcmp that handles NULL strings; in strcmp terms a NULL string is\r
++ * considered to be less than a non-NULL string.\r
++ */\r
++int strcmp_null (const char *s1, const char *s2);\r
++\r
+ /* GLib GEqualFunc compatible strcasecmp wrapper */\r
+ int strcase_equal (const void *a, const void *b);\r
\r
+-- \r
+2.1.4\r
+\r