diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-10-19 23:49:02 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-10-23 14:49:23 +0200 |
commit | 14a1d48745bcf9df847fc483e110a871b96da9d1 (patch) | |
tree | bd9a651017c0dd96ca8f9aee3e07bc96f4b95c1e /src/virt-viewer-util.c | |
parent | 53c6549fb4fe45b631ba20bbe733e77ecde0457d (diff) | |
download | virt-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.c | 32 |
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: |