[vte] build: Add strchrnul implementation to fix compilation on macOS
- From: Egmont Koblinger <egmontkob src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] build: Add strchrnul implementation to fix compilation on macOS
- Date: Sun, 15 Oct 2017 20:38:54 +0000 (UTC)
commit a4362e96d882e496444c8858963d4d4be4d7b430
Author: Egmont Koblinger <egmont gmail com>
Date: Sun Oct 15 22:33:22 2017 +0200
build: Add strchrnul implementation to fix compilation on macOS
https://bugzilla.gnome.org/show_bug.cgi?id=788476
configure.ac | 3 +++
src/vteseq.cc | 1 +
src/vtespawn.cc | 13 ++-----------
src/vteutils.cc | 13 +++++++++++++
src/vteutils.h | 3 +++
5 files changed, 22 insertions(+), 11 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index e5109ff..e7c386d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -293,6 +293,9 @@ AC_CHECK_FUNCS([cfmakeraw fork setsid setpgid getpgid tcgetattr tcsetattr])
AC_CHECK_FUNCS([pread pwrite])
AC_CHECK_FUNCS([explicit_bzero])
+# Misc string routines.
+AC_CHECK_FUNCS([strchrnul])
+
# for vtespawn
AC_CHECK_HEADERS([sys/resource.h])
AC_CHECK_FUNCS([fdwalk])
diff --git a/src/vteseq.cc b/src/vteseq.cc
index 6876341..7b5b49b 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -31,6 +31,7 @@
#include <vte/vte.h>
#include "vteinternal.hh"
#include "vtegtk.hh"
+#include "vteutils.h" /* for strchrnul on non-GNU systems */
#include "caps.h"
#include "debug.h"
diff --git a/src/vtespawn.cc b/src/vtespawn.cc
index b411ca7..331e8fc 100644
--- a/src/vtespawn.cc
+++ b/src/vtespawn.cc
@@ -39,6 +39,7 @@
#include <glib-unix.h>
#include "vtespawn.hh"
+#include "vteutils.h" /* for strchrnul on non-GNU systems */
#include "reaper.hh"
#define VTE_SPAWN_ERROR_TIMED_OUT (G_SPAWN_ERROR_FAILED + 1000)
@@ -1001,16 +1002,6 @@ script_execute (const gchar *file,
}
}
-static gchar*
-my_strchrnul (const gchar *str, gchar c)
-{
- gchar *p = (gchar*) str;
- while (*p && (*p != c))
- ++p;
-
- return p;
-}
-
static gint
g_execute (const gchar *file,
gchar **argv,
@@ -1081,7 +1072,7 @@ g_execute (const gchar *file,
char *startp;
path = p;
- p = my_strchrnul (path, ':');
+ p = strchrnul (path, ':');
if (p == path)
/* Two adjacent colons, or a colon at the beginning or the end
diff --git a/src/vteutils.cc b/src/vteutils.cc
index 648d185..e683375 100644
--- a/src/vteutils.cc
+++ b/src/vteutils.cc
@@ -96,3 +96,16 @@ _vte_mkstemp (void)
return fd;
}
+
+#ifndef HAVE_STRCHRNUL
+/* Copied from glib */
+char *
+strchrnul (const char *s, int c)
+{
+ char *p = (char *) s;
+ while (*p && (*p != c))
+ ++p;
+
+ return p;
+}
+#endif /* !HAVE_STRCHRNUL */
diff --git a/src/vteutils.h b/src/vteutils.h
index 999e3bf..0cc98eb 100644
--- a/src/vteutils.h
+++ b/src/vteutils.h
@@ -24,6 +24,9 @@
G_BEGIN_DECLS
int _vte_mkstemp (void);
+#ifndef HAVE_STRCHRNUL
+char *strchrnul (const char *s, int c);
+#endif
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]