Commit 233cab9d649137b14bb0caac045a75e4a7a562c4

Guillem Jover 2021-02-06T23:28:42

Add support for new LIBBSD_VIS_OPENBSD selection macro This will make it possible to explicitly select the OpenBSD vis implementation (the current default) for code of OpenBSD origins.

diff --git a/include/bsd/vis.h b/include/bsd/vis.h
index 84102b2..fb9ad27 100644
--- a/include/bsd/vis.h
+++ b/include/bsd/vis.h
@@ -99,8 +99,11 @@
  * Provide both implementations and default for now on the historical one to
  * avoid breakage, we will switch to the NetBSD one in libbsd 0.10.0 or so.
  * Define LIBBSD_NETBSD_VIS to switch to the NetBSD one now.
+ * Define LIBBSD_OPENBSD_VIS to keep using the OpenBSD one.
  */
-#ifndef LIBBSD_NETBSD_VIS
+#if defined(LIBBSD_OPENBSD_VIS)
+#undef LIBBSD_NETBSD_VIS
+#elif !defined(LIBBSD_NETBSD_VIS)
 #warning "NetBSD added incompatible strnvis() and strnunvis(), please see <bsd/vis.h> for more detils."
 #endif
 
diff --git a/test/vis-openbsd.c b/test/vis-openbsd.c
index 99c4198..cd39675 100644
--- a/test/vis-openbsd.c
+++ b/test/vis-openbsd.c
@@ -24,12 +24,11 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#define LIBBSD_OPENBSD_VIS 1
+
 #include <assert.h>
 #include <string.h>
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wcpp"
 #include <vis.h>
-#pragma GCC diagnostic pop
 
 int
 main(int argc, char **argv)