[PATCH] lib: have two definitions of NOTMUCH_DEPRECATED macro
authorTomi Ollila <tomi.ollila@iki.fi>
Tue, 11 Aug 2015 14:37:14 +0000 (17:37 +0300)
committerW. Trevor King <wking@tremily.us>
Sat, 20 Aug 2016 21:49:19 +0000 (14:49 -0700)
87/3dda70d169007ab34c85b3853fb986ab0f31a8 [new file with mode: 0644]

diff --git a/87/3dda70d169007ab34c85b3853fb986ab0f31a8 b/87/3dda70d169007ab34c85b3853fb986ab0f31a8
new file mode 100644 (file)
index 0000000..2b4f217
--- /dev/null
@@ -0,0 +1,87 @@
+Return-Path: <too@guru-group.fi>\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 C80406DE0244\r
+ for <notmuch@notmuchmail.org>; Tue, 11 Aug 2015 07:37:35 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at cworth.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0.276\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0.276 tagged_above=-999 required=5 tests=[AWL=0.816, \r
+ RP_MATCHES_RCVD=-0.55, T_HEADER_FROM_DIFFERENT_DOMAINS=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 sK7-dk5adroe for <notmuch@notmuchmail.org>;\r
+ Tue, 11 Aug 2015 07:37:33 -0700 (PDT)\r
+Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34])\r
+ by arlo.cworth.org (Postfix) with ESMTP id 32B6E6DE119D\r
+ for <notmuch@notmuchmail.org>; Tue, 11 Aug 2015 07:37:32 -0700 (PDT)\r
+Received: by guru.guru-group.fi (Postfix, from userid 501)\r
+ id E95761000CA; Tue, 11 Aug 2015 17:37:19 +0300 (EEST)\r
+From: Tomi Ollila <tomi.ollila@iki.fi>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH] lib: have two definitions of NOTMUCH_DEPRECATED macro\r
+Date: Tue, 11 Aug 2015 17:37:14 +0300\r
+Message-Id: <1439303834-27030-1-git-send-email-tomi.ollila@iki.fi>\r
+X-Mailer: git-send-email 2.0.0\r
+Cc: tomi.ollila@iki.fi\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: Tue, 11 Aug 2015 14:37:35 -0000\r
+\r
+Some compilers (older than gcc 4.5 and clang 2.9) do support\r
+__attribute__ ((deprecated)) but not\r
+__attribute__ ((deprecated("message"))).\r
+\r
+Check (clang) and know (gcc) which versions support which variants\r
+and make two definitions of define NOTMUCH_DEPRECATED macro;\r
+one with and and one without the ("message") part.\r
+\r
+__has_extension() replacement was modeled after __has_attribute()\r
+definition in compat/function-attributes.h. Thanks Justus.\r
+---\r
+ lib/notmuch.h | 14 ++++++++++++++\r
+ 1 file changed, 14 insertions(+)\r
+\r
+diff --git a/lib/notmuch.h b/lib/notmuch.h\r
+index b1f5bfa..3f4621b 100644\r
+--- a/lib/notmuch.h\r
++++ b/lib/notmuch.h\r
+@@ -59,8 +59,22 @@ NOTMUCH_BEGIN_DECLS\r
+ #define LIBNOTMUCH_MINOR_VERSION      3\r
+ #define LIBNOTMUCH_MICRO_VERSION      0\r
\r
++/* clang provides this macro to test for support for language\r
++ * extensions. If it isn't defined, this provides a compatibility\r
++ * macro for other compilers.\r
++ */\r
++#ifndef __has_extension\r
++#define __has_extension(x) 0\r
++#endif\r
++\r
++#if __clang__ && __has_extension(attribute_deprecated_with_message) || \\r
++    __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 5\r
+ #define NOTMUCH_DEPRECATED(major,minor) \\r
+     __attribute__ ((deprecated ("function deprecated as of libnotmuch " #major "." #minor)))\r
++#else\r
++#define NOTMUCH_DEPRECATED(major,minor) __attribute__ ((deprecated))\r
++#endif\r
++\r
+ #endif /* __DOXYGEN__ */\r
\r
+ /**\r
+-- \r
+2.4.3\r
+\r