summaryrefslogtreecommitdiffabout
authorSergey Poznyakoff <gray@gnu.org>2019-05-22 06:05:42 (GMT)
committer Sergey Poznyakoff <gray@gnu.org>2019-05-22 06:05:42 (GMT)
commit0d271c3709f7f3da81285925b670cdb85b90ccbd (patch) (side-by-side diff)
treeb70b8572bb4b1f75c4097183ca9a5f94c4bdf3f4
parentdd213e8c519df45f4a0b632d71691693ddf2502a (diff)
downloadmailutils-0d271c3709f7f3da81285925b670cdb85b90ccbd.tar.gz
mailutils-0d271c3709f7f3da81285925b670cdb85b90ccbd.tar.bz2
URL parser: use case-insensitive comparison for auth and host parts
* libmailutils/url/accessor.h: (URL_PART_CMP_ICASE) (URL_PART_CMP_ICASE): New defines. * libmailutils/url/get-auth.c: Request case-insensitive comparison. * libmailutils/url/get-host.c: Likewise.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libmailutils/url/accessor.h15
-rw-r--r--libmailutils/url/get-auth.c1
-rw-r--r--libmailutils/url/get-host.c1
3 files changed, 15 insertions, 2 deletions
diff --git a/libmailutils/url/accessor.h b/libmailutils/url/accessor.h
index 309a7aa..fa3ed7e 100644
--- a/libmailutils/url/accessor.h
+++ b/libmailutils/url/accessor.h
@@ -34,8 +34,8 @@
/* General accessors: */
#define AC2(a,b) a ## b
-#define METHOD(pfx,part) AC2(pfx,part)
#define AC4(a,b,c,d) a ## b ## c ## d
+#define METHOD(pfx,part) AC2(pfx,part)
#define ACCESSOR(action,field) AC4(mu_url_,action,_,field)
/* Define a `static get' accessor */
@@ -123,6 +123,17 @@ ACCESSOR(aget, URL_PART) (mu_url_t url, char **buf)
return status;
}
+#ifndef URL_PART_CMP
+# ifndef URL_PART_CMP_ICASE
+# define URL_PART_CMP_ICASE 0
+# endif
+# if URL_PART_CMP_ICASE
+# define URL_PART_CMP mu_c_strcasecmp
+# else
+# define URL_PART_CMP strcmp
+# endif
+#endif
+
/* Define a comparator */
int
ACCESSOR(is_same,URL_PART) (mu_url_t url1, mu_url_t url2)
@@ -139,5 +150,5 @@ ACCESSOR(is_same,URL_PART) (mu_url_t url1, mu_url_t url2)
if (status1 || status2)
return status1 == status2; /* Both fields are missing */
- return mu_c_strcasecmp (s1, s2) == 0;
+ return URL_PART_CMP (s1, s2) == 0;
}
diff --git a/libmailutils/url/get-auth.c b/libmailutils/url/get-auth.c
index b9650a5..c8c7ca7 100644
--- a/libmailutils/url/get-auth.c
+++ b/libmailutils/url/get-auth.c
@@ -1,3 +1,4 @@
#define URL_PART auth
+#define URL_PART_CMP_ICASE 1
#include "accessor.h"
diff --git a/libmailutils/url/get-host.c b/libmailutils/url/get-host.c
index 6de6b56..9ef6db8 100644
--- a/libmailutils/url/get-host.c
+++ b/libmailutils/url/get-host.c
@@ -1,2 +1,3 @@
#define URL_PART host
+#define URL_PART_CMP_ICASE 1
#include "accessor.h"

Return to:

Send suggestions and report system problems to the System administrator.