Hi,
The 6th patch is dedicated to the stdbool.h header file. If it doesn't
exist, it cannot be simply dropped, as it contains definitions
absolutely needed by the application, which need to be replaced.
So:
- a simple definition for the bool type is supplied
- return of strchr() is explicitly compared with NULL rather than
relying on an implicit conversion to boolean. Would cause a warning
without this
Regards,
Alain
diff -X ../exclude.txt -urN dash-0.5.12+05-sys-headers/configure.ac dash-0.5.12+06-stdbool/configure.ac
--- dash-0.5.12+05-sys-headers/configure.ac 2024-11-10 17:06:10.308390356 +0000
+++ dash-0.5.12+06-stdbool/configure.ac 2024-11-10 17:06:18.440583714 +0000
@@ -44,7 +44,7 @@
dnl Checks for libraries.
dnl Checks for header files.
-AC_CHECK_HEADERS(alloca.h paths.h pwd.h dirent.h \
+AC_CHECK_HEADERS(alloca.h paths.h pwd.h stdbool.h dirent.h \
getopt.h sys/resource.h termios.h sys/time.h)
dnl Check for declarations
diff -X ../exclude.txt -urN dash-0.5.12+05-sys-headers/src/expand.c dash-0.5.12+06-stdbool/src/expand.c
--- dash-0.5.12+05-sys-headers/src/expand.c 2024-11-10 15:30:16.271361150 +0000
+++ dash-0.5.12+06-stdbool/src/expand.c 2024-10-20 21:03:17.122588883 +0000
@@ -73,7 +73,12 @@
#include <glob.h>
#endif
#include <ctype.h>
+#ifdef HAVE_STDBOOL_H
#include <stdbool.h>
+#else
+typedef int bool;
+const int false = 0;
+#endif
/*
* Routines to expand arguments to commands. We have to deal with
@@ -1057,10 +1062,10 @@
if (c == (char)CTLESC)
c = *p++;
- isifs = strchr(ifs, c);
+ isifs = strchr(ifs, c) != NULL;
isdefifs = false;
if (isifs)
- isdefifs = strchr(defifs, c);
+ isdefifs = strchr(defifs, c) != NULL;
/* If only reading one more argument:
* If we have exactly one field,