Skip to content

Commit

Permalink
Add patch fixing VTE compilation on Mac
Browse files Browse the repository at this point in the history
  • Loading branch information
techee committed Oct 16, 2017
1 parent 18daf64 commit 57b8e8c
Showing 1 changed file with 117 additions and 0 deletions.
@@ -0,0 +1,117 @@
From a4362e96d882e496444c8858963d4d4be4d7b430 Mon Sep 17 00:00:00 2001
From: Egmont Koblinger <egmont@gmail.com>
Date: Sun, 15 Oct 2017 22:33:22 +0200
Subject: [PATCH 1/2] 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 e5109fff..e7c386d6 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 6876341d..7b5b49b0 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 b411ca71..331e8fc2 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 648d1851..e683375b 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 999e3bf9..0cc98eb2 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

--
2.13.5 (Apple Git-94)

0 comments on commit 57b8e8c

Please sign in to comment.