Fix and reverse feature detection of asprintf function - sacc - sacc(omys), simple console gopher client
git clone git://bitreich.org/sacc/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/sacc/
Log
Files
Refs
Tags
LICENSE
---
commit 3e0b5be80fdfac3c1ef3ed2e9df4bdbdea5e0091
parent 17c4223fc2c7163d3bfd5681a8d2467b54d0d4da
Author: Hiltjo Posthuma 
Date:   Sun, 25 Mar 2018 14:54:35 +0200

Fix and reverse feature detection of asprintf function

The new behaviour is to define NEED_ASPRINTF for platforms when the
asprintf is needed.

Diffstat:
  M Makefile                            |       3 ++-
  M common.h                            |       4 ++--
  M config.mk                           |       3 +++
  M sacc.c                              |       4 ++--

4 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -32,7 +32,8 @@ uninstall:
         rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN)
 
 # Stock FLAGS
-SACCCFLAGS = -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 -D_BSD_SOURCE $(CFLAGS)
+SACCCFLAGS = -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 -D_BSD_SOURCE -D_GNU_SOURCE \
+             $(CFLAGS)
 
 .c.o:
         $(CC) $(SACCCFLAGS) -c $<
diff --git a/common.h b/common.h
@@ -22,9 +22,9 @@ struct dir {
         size_t curline;
 };
 
-#ifndef asprintf
+#ifdef NEED_ASPRINTF
 int asprintf(char **s, const char *fmt, ...);
-#endif /* asprintf */
+#endif /* NEED_ASPRINTF */
 void die(const char *fmt, ...);
 size_t mbsprint(const char *s, size_t len);
 const char *typedisplay(char t);
diff --git a/config.mk b/config.mk
@@ -8,3 +8,6 @@ MANDIR = $(PREFIX)/share/man/man1
 # ti (screen-oriented)
 UI=ti
 LIBS=-lcurses
+
+# Define NEED_ASPRINTF in your cflags is your system doesn't provide asprintf()
+#CFLAGS = -DNEED_ASPRINTF
diff --git a/sacc.c b/sacc.c
@@ -40,7 +40,7 @@ die(const char *fmt, ...)
         exit(1);
 }
 
-#ifndef asprintf
+#ifdef NEED_ASPRINTF
 int
 asprintf(char **s, const char *fmt, ...)
 {
@@ -60,7 +60,7 @@ asprintf(char **s, const char *fmt, ...)
 
         return n;
 }
-#endif /* asprintf */
+#endif /* NEED_ASPRINTF */
 
 /* print `len' columns of characters. */
 size_t