summaryrefslogtreecommitdiffstats
path: root/src/virt-viewer-util.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-10-19 23:49:02 +0200
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-10-23 14:49:23 +0200
commit14a1d48745bcf9df847fc483e110a871b96da9d1 (patch)
treebd9a651017c0dd96ca8f9aee3e07bc96f4b95c1e /src/virt-viewer-util.c
parent53c6549fb4fe45b631ba20bbe733e77ecde0457d (diff)
downloadvirt-viewer-14a1d48745bcf9df847fc483e110a871b96da9d1.tar.gz
virt-viewer-14a1d48745bcf9df847fc483e110a871b96da9d1.tar.xz
virt-viewer-14a1d48745bcf9df847fc483e110a871b96da9d1.zip
Use a common early init() function
There is a number of things both virt-viewer and remote-viewer need to do early during execution. Do it only in one place.
Diffstat (limited to 'src/virt-viewer-util.c')
-rw-r--r--src/virt-viewer-util.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/virt-viewer-util.c b/src/virt-viewer-util.c
index 9a163fa..9c4d06d 100644
--- a/src/virt-viewer-util.c
+++ b/src/virt-viewer-util.c
@@ -23,6 +23,14 @@
#include <config.h>
+#include <glib.h>
+#include <glib/gi18n.h>
+
+#ifdef G_OS_WIN32
+#include <windows.h>
+#include <io.h>
+#endif
+
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -252,6 +260,30 @@ gulong virt_viewer_signal_connect_object(gpointer instance,
return ctx->handler_id;
}
+void virt_viewer_util_init(const char *appname)
+{
+#ifdef G_OS_WIN32
+ if (AttachConsole(ATTACH_PARENT_PROCESS) != 0) {
+ freopen("CONIN$", "r", stdin);
+ freopen("CONOUT$", "w", stdout);
+ freopen("CONOUT$", "w", stderr);
+ dup2(fileno(stdin), STDIN_FILENO);
+ dup2(fileno(stdout), STDOUT_FILENO);
+ dup2(fileno(stderr), STDERR_FILENO);
+ }
+#endif
+
+#if !GLIB_CHECK_VERSION(2,31,0)
+ g_thread_init(NULL);
+#endif
+
+ setlocale(LC_ALL, "");
+ bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+ textdomain(GETTEXT_PACKAGE);
+
+ g_set_application_name(appname);
+}
/*
* Local variables: