summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2019-05-11 06:22:36 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2019-05-11 06:22:36 +0000
commit92e40f4f3b8e153b86093996d2a6d2a1160e105d (patch)
tree59c223865b9bce061ddf32f3fcd0f31df6911ace /src
parentab0416faed65154c408e4fb5066cd8433a4bfa11 (diff)
downloadskalibs-92e40f4f3b8e153b86093996d2a6d2a1160e105d.tar.xz
Add tryemptyregex/skalibs_regcomp, prepare for 2.8.1.0
Diffstat (limited to 'src')
-rw-r--r--src/include/skalibs/posixplz.h8
-rw-r--r--src/sysdeps/tryemptyregex.c16
2 files changed, 24 insertions, 0 deletions
diff --git a/src/include/skalibs/posixplz.h b/src/include/skalibs/posixplz.h
index 639a7c4..22cdf3a 100644
--- a/src/include/skalibs/posixplz.h
+++ b/src/include/skalibs/posixplz.h
@@ -5,6 +5,7 @@
#include <sys/types.h>
#include <sys/stat.h>
+#include <regex.h>
#include <skalibs/gccattributes.h>
#include <skalibs/functypes.h>
@@ -44,4 +45,11 @@ extern int mkhtemp (char const *, char *) ;
extern int mkctemp (char *, mode_t, dev_t) ;
extern int mkbtemp (char *, mode_t, dev_t) ;
+
+ /*
+ Wrappers around functions that should be specified better.
+ */
+
+#define skalibs_regcomp(re, s, flags) regcomp(re, (s)[0] ? (s) : ".*", flags)
+
#endif
diff --git a/src/sysdeps/tryemptyregex.c b/src/sysdeps/tryemptyregex.c
new file mode 100644
index 0000000..a2243f7
--- /dev/null
+++ b/src/sysdeps/tryemptyregex.c
@@ -0,0 +1,16 @@
+/* ISC license. */
+
+#include <regex.h>
+
+int main (void)
+{
+ regex_t re ;
+ int r = regcomp(&re, "", REG_EXTENDED | REG_NOSUB) ;
+ switch (r)
+ {
+ case 0 : break ;
+ case REG_ESPACE : return 111 ;
+ default : return 1 ;
+ }
+ return !!regexec(&re, "a", 0, 0, 0) ;
+}