Include unistd.h only on *NIX and define items as necessary on Windows,
also replace instances of ssize_t with the GLib-equivilant gssize so to fix
the build on platforms that do not have ssize_t, such as Visual C++.
https://bugzilla.gnome.org/show_bug.cgi?id=711047
#include <config.h>
#include <stdio.h>
-#include <unistd.h>
#include <locale.h>
#include <errno.h>
#include <glib.h>
#include <gio/gio.h>
+#ifdef G_OS_UNIX
+#include <unistd.h>
+#endif
+
+#ifdef G_OS_WIN32
+#ifndef STDOUT_FILENO
+#define STDOUT_FILENO 1
+#endif
+#endif
+
static gchar **locations = NULL;
static char *from_charset = NULL;
static char *to_charset = NULL;
g_input_stream_read (in, buffer, sizeof (buffer) - 1, NULL, &error);
if (res > 0)
{
- ssize_t written;
+ gssize written;
p = buffer;
while (res > 0)
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
-#include <unistd.h>
#ifdef G_OS_UNIX
+#include <unistd.h>
#include <gio/gunixinputstream.h>
#include <gio/gunixoutputstream.h>
#endif
{
while (len > 0)
{
- ssize_t bytes_written = write (fd, buf, len);
+ gssize bytes_written = write (fd, buf, len);
if (bytes_written < 0)
g_error ("Failed to write to fd %d: %s",
fd, strerror (errno));
#include <glib/glib.h>
#include <glib/gstdio.h>
#include <gio/gio.h>
-#include <unistd.h>
#include <string.h>
+#ifdef G_OS_UNIX
+#include <unistd.h>
+#endif
+
static const char *original_data = "This is some test data that we can put in a file...";
static const char *new_data = "new data..";
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#ifdef G_OS_UNIX
#include <unistd.h>
+#endif
#include <gio/gio.h>
#include <string.h>
#include <fcntl.h>
#include <io.h>
-#include <unistd.h>
#include <windows.h>