[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r13494 - in gnunet-setup: . contrib src
From: |
gnunet |
Subject: |
[GNUnet-SVN] r13494 - in gnunet-setup: . contrib src |
Date: |
Tue, 2 Nov 2010 16:42:11 +0100 |
Author: grothoff
Date: 2010-11-02 16:42:11 +0100 (Tue, 02 Nov 2010)
New Revision: 13494
Removed:
gnunet-setup/src/common.c
gnunet-setup/src/common.h
Modified:
gnunet-setup/TODO
gnunet-setup/contrib/gnunet-setup.glade
gnunet-setup/src/Makefile.am
gnunet-setup/src/gnunet-setup.c
gnunet-setup/src/os_installation.c
Log:
main dialog done
Modified: gnunet-setup/TODO
===================================================================
--- gnunet-setup/TODO 2010-11-02 14:15:11 UTC (rev 13493)
+++ gnunet-setup/TODO 2010-11-02 15:42:11 UTC (rev 13494)
@@ -1,7 +1,3 @@
-* main (launch master dialog)
- - launch dialog, not run window!
- - handle dialog close (X)
-* implement cancel, save, save-as
* draft UI <-> config linkage specification struct:
- help text, help URI
- config options
Modified: gnunet-setup/contrib/gnunet-setup.glade
===================================================================
--- gnunet-setup/contrib/gnunet-setup.glade 2010-11-02 14:15:11 UTC (rev
13493)
+++ gnunet-setup/contrib/gnunet-setup.glade 2010-11-02 15:42:11 UTC (rev
13494)
@@ -1561,9 +1561,9 @@
</object>
</child>
<action-widgets>
- <action-widget response="-4">GNUNET_setup_cancel_button</action-widget>
- <action-widget response="-6">GNUNET_setup_save_as_button</action-widget>
- <action-widget response="-5">GNUNET_setup_save_button</action-widget>
+ <action-widget response="-6">GNUNET_setup_cancel_button</action-widget>
+ <action-widget response="-5">GNUNET_setup_save_as_button</action-widget>
+ <action-widget response="-3">GNUNET_setup_save_button</action-widget>
</action-widgets>
</object>
<object class="GtkAdjustment" id="adjustment1">
Modified: gnunet-setup/src/Makefile.am
===================================================================
--- gnunet-setup/src/Makefile.am 2010-11-02 14:15:11 UTC (rev 13493)
+++ gnunet-setup/src/Makefile.am 2010-11-02 15:42:11 UTC (rev 13494)
@@ -8,7 +8,6 @@
bin_PROGRAMS = gnunet-setup
gnunet_setup_SOURCES = \
- common.c common.h \
gnunet-setup.c \
os_installation.c
gnunet_setup_LDADD = \
Deleted: gnunet-setup/src/common.c
===================================================================
--- gnunet-setup/src/common.c 2010-11-02 14:15:11 UTC (rev 13493)
+++ gnunet-setup/src/common.c 2010-11-02 15:42:11 UTC (rev 13494)
@@ -1,85 +0,0 @@
-/*
- This file is part of GNUnet.
- (C) 2010 Christian Grothoff (and other contributing authors)
-
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 2, or (at your
- option) any later version.
-
- GNUnet is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-
-/**
- * @file src/common.c
- * @brief Common functions used in various places
- * @author Christian Grothoff
- */
-#include "common.h"
-
-
-/**
- * Get the name of the directory where all of our package
- * data is stored ($PREFIX/share/)
- *
- * @return name of the data directory
- */
-const char *
-GNUNET_GTK_get_data_dir ()
-{
- static char *dd;
-
- if (dd == NULL)
- dd = GNUNET_GTK_installation_get_path (GNUNET_OS_IPK_DATADIR);
- return dd;
-}
-
-
-
-/**
- * Create an initialize a new builder based on the
- * GNUnet-GTK glade file.
- *
- * @param filename name of the resource file to load
- * @return NULL on error
- */
-GtkBuilder *
-GNUNET_GTK_get_new_builder (const char *filename)
-{
- char *glade_path;
- GtkBuilder *ret;
- GError *error;
-
- ret = gtk_builder_new ();
- gtk_builder_set_translation_domain (ret, "gnunet-gtk");
- GNUNET_asprintf (&glade_path,
- "%s%s",
- GNUNET_GTK_get_data_dir (),
- filename);
- error = NULL;
- if (0 == gtk_builder_add_from_file (ret, glade_path, &error))
- {
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- _("Failed to load `%s': %s\n"),
- glade_path,
- error->message);
- g_error_free (error);
- GNUNET_free (glade_path);
- return NULL;
- }
- gtk_builder_connect_signals (ret, NULL);
- GNUNET_free (glade_path);
- return ret;
-}
-
-
-
-/* end of common.c */
Deleted: gnunet-setup/src/common.h
===================================================================
--- gnunet-setup/src/common.h 2010-11-02 14:15:11 UTC (rev 13493)
+++ gnunet-setup/src/common.h 2010-11-02 15:42:11 UTC (rev 13494)
@@ -1,78 +0,0 @@
-/*
- This file is part of GNUnet.
- (C) 2010 Christian Grothoff (and other contributing authors)
-
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 2, or (at your
- option) any later version.
-
- GNUnet is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
-
-/**
- * @file src/common.h
- * @brief Common includes for all gnunet-gtk source files
- * @author Christian Grothoff
- */
-#ifndef COMMON_H
-#define COMMON_H
-
-#ifndef HAVE_USED_CONFIG_H
-#define HAVE_USED_CONFIG_H
-#include "gnunet_setup_config.h"
-#endif
-#include <gnunet/platform.h>
-#include <gnunet/gnunet_util_lib.h>
-#include <gladeui/glade.h>
-#include <gtk/gtk.h>
-
-
-/**
- * Get the name of the directory where all of our package
- * data is stored ($PREFIX/share/)
- *
- * @return name of the data directory
- */
-const char *
-GNUNET_GTK_get_data_dir (void);
-
-/**
- * @brief get the path to a specific GNUnet installation directory or,
- * with GNUNET_IPK_SELF_PREFIX, the current running apps installation directory
- * @author Milan
- * @return a pointer to the dir path (to be freed by the caller)
- */
-char *
-GNUNET_GTK_installation_get_path (enum GNUNET_OS_InstallationPathKind dirkind);
-
-
-/**
- * Create an initialize a new builder based on the
- * GNUnet-setup glade file.
- *
- * @param filename name of the resource file to load
- * @return NULL on error
- */
-GtkBuilder *
-GNUNET_GTK_get_new_builder (const char *filename);
-
-/**
- * Get an object from the main window.
- *
- * @param name name of the object
- * @return NULL on error
- */
-GObject *
-GNUNET_GTK_get_main_window_object (const char *name);
-
-#endif
-/* end of common.h */
Modified: gnunet-setup/src/gnunet-setup.c
===================================================================
--- gnunet-setup/src/gnunet-setup.c 2010-11-02 14:15:11 UTC (rev 13493)
+++ gnunet-setup/src/gnunet-setup.c 2010-11-02 15:42:11 UTC (rev 13494)
@@ -26,245 +26,116 @@
#if ENABLE_NLS
#include <locale.h>
#endif
-#include "common.h"
+#ifndef HAVE_USED_CONFIG_H
+#define HAVE_USED_CONFIG_H
+#include "gnunet_setup_config.h"
+#endif
+#include <gnunet/platform.h>
+#include <gnunet/gnunet_directories.h>
+#include <gnunet/gnunet_util_lib.h>
+#include <gladeui/glade.h>
+#include <gtk/gtk.h>
/**
- * Initialize GNU gettext for message translation.
+ * Builder for the main window.
*/
-static void
-setup_nls ()
-{
-#if ENABLE_NLS
- char *path;
+static GtkBuilder *builder;
- setlocale (LC_ALL, "");
- GNUNET_asprintf (&path,
- "%s/%s/locale/",
- GNUNET_GTK_get_data_dir (),
- PACKAGE_NAME);
- bindtextdomain ("gnunet-setup", path);
- textdomain ("gnunet-setup");
- bind_textdomain_codeset ("GNUnet", "UTF-8");
- bind_textdomain_codeset ("gnunet-setup", "UTF-8");
- GNUNET_free (path);
-#else
- fprintf (stderr,
- "WARNING: gnunet-setup was compiled without i18n support (did CFLAGS
contain -Werror?).\n");
-#endif
-}
+/**
+ * Our configuration.
+ */
+static struct GNUNET_CONFIGURATION_Handle *cfg;
/**
- * Main context for our event loop.
+ * @brief get the path to a specific GNUnet installation directory or,
+ * with GNUNET_IPK_SELF_PREFIX, the current running apps installation directory
+ * @author Milan
+ * @return a pointer to the dir path (to be freed by the caller)
*/
-struct MainContext
-{
+char *
+GNUNET_GTK_installation_get_path (enum GNUNET_OS_InstallationPathKind dirkind);
- /**
- * The scheduler.
- */
- struct GNUNET_SCHEDULER_Handle *sched;
- /**
- * Main loop.
- */
- GMainLoop *gml;
- /**
- * GTK's main context.
- */
- GMainContext *gmc;
-
- /**
- * Recycled array of polling descriptors.
- */
- GPollFD *cached_poll_array;
-
- /**
- * The main window.
- */
- GtkWidget *main_window;
-
- /**
- * Read set.
- */
- struct GNUNET_NETWORK_FDSet *rs;
-
- /**
- * Write set.
- */
- struct GNUNET_NETWORK_FDSet *ws;
-
- /**
- * Builder for the main window.
- */
- GtkBuilder *builder;
-
- /**
- * Our configuration.
- */
- const struct GNUNET_CONFIGURATION_Handle *cfg;
-
- /**
- * Size of the 'cached_poll_array'.
- */
- guint cached_poll_array_size;
-
- /**
- * Return value from last g_main_context_query call.
- */
- guint poll_array_active;
-
- /**
- * Maximum GTK priority.
- */
- gint max_priority;
-
-};
-
-
/**
- * Free resources of the given context.
- *
- * @param context what to free, can be NULL
+ * Get the name of the directory where all of our package
+ * data is stored ($PREFIX/share/)
+ *
+ * @return name of the data directory
*/
-static void
-free_context (struct MainContext *context)
+const char *
+GNUNET_GTK_get_data_dir ()
{
- if (context == NULL)
- return;
- g_free (context->cached_poll_array);
- GNUNET_NETWORK_fdset_destroy (context->rs);
- GNUNET_NETWORK_fdset_destroy (context->ws);
- g_object_unref (G_OBJECT (context->builder));
- g_main_loop_unref (context->gml);
- GNUNET_free (context);
+ static char *dd;
+
+ if (dd == NULL)
+ dd = GNUNET_GTK_installation_get_path (GNUNET_OS_IPK_DATADIR);
+ return dd;
}
/**
- * Run GTK tasks that are ready.
+ * Create an initialize a new builder based on the
+ * GNUnet-GTK glade file.
*
- * @param cls the 'struct MainContext'
- * @param tc task context
+ * @param filename name of the resource file to load
+ * @return NULL on error
*/
-static void
-run_ready (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc);
-
-
-/**
- * Schedule the main GTK Event loop with the GNUnet scheduler.
- *
- * @param cls the 'struct MainContext'
- * @param tc task context
- */
-static void
-schedule_main_loop (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
+GtkBuilder *
+GNUNET_GTK_get_new_builder (const char *filename)
{
- struct MainContext *mc = cls;
- struct GNUNET_TIME_Relative delay;
- gint timeout;
- gint nfds;
- GPollFD *fds;
- guint allocated_nfds;
+ char *glade_path;
+ GtkBuilder *ret;
+ GError *error;
- if ( (tc != NULL) &&
- (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason)) )
+ ret = gtk_builder_new ();
+ gtk_builder_set_translation_domain (ret, "gnunet-gtk");
+ GNUNET_asprintf (&glade_path,
+ "%s%s",
+ GNUNET_GTK_get_data_dir (),
+ filename);
+ error = NULL;
+ if (0 == gtk_builder_add_from_file (ret, glade_path, &error))
{
- g_main_loop_quit (mc->gml);
- GNUNET_SCHEDULER_add_now (mc->sched,
- &schedule_main_loop,
- mc);
- return;
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Failed to load `%s': %s\n"),
+ glade_path,
+ error->message);
+ g_error_free (error);
+ GNUNET_free (glade_path);
+ return NULL;
}
- if (TRUE != g_main_loop_is_running (mc->gml))
- return;
- g_main_context_prepare (mc->gmc, &mc->max_priority);
- allocated_nfds = mc->cached_poll_array_size;
- fds = mc->cached_poll_array;
- while ((nfds = g_main_context_query (mc->gmc, mc->max_priority,
- &timeout, fds,
- allocated_nfds)) > allocated_nfds)
- {
- g_free (fds);
- mc->cached_poll_array_size = allocated_nfds = nfds;
- mc->cached_poll_array = fds = g_new (GPollFD, nfds);
- }
- mc->poll_array_active = nfds;
- delay.rel_value = (uint64_t) timeout;
- GNUNET_NETWORK_fdset_zero (mc->rs);
- GNUNET_NETWORK_fdset_zero (mc->ws);
- while (nfds > 0)
- {
- nfds--;
-#ifdef __MINGW32__
- /* TODO: maybe #ifdef WINDOWS? -ndurner */
- if (fds[nfds].events & (G_IO_IN | G_IO_HUP | G_IO_ERR))
- GNUNET_NETWORK_fdset_set_native_w32_handle (mc->rs, (HANDLE)
fds[nfds].fd);
- if (fds[nfds].events & (G_IO_OUT | G_IO_ERR))
- GNUNET_NETWORK_fdset_set_native_w32_handle (mc->ws, (HANDLE)
fds[nfds].fd);
-#else
- if (fds[nfds].events & (G_IO_IN | G_IO_HUP | G_IO_ERR))
- GNUNET_NETWORK_fdset_set_native (mc->rs, fds[nfds].fd);
- if (fds[nfds].events & (G_IO_OUT | G_IO_ERR))
- GNUNET_NETWORK_fdset_set_native (mc->ws, fds[nfds].fd);
-#endif
- }
- GNUNET_SCHEDULER_add_select (mc->sched,
- GNUNET_SCHEDULER_PRIORITY_UI,
- GNUNET_SCHEDULER_NO_TASK,
- delay,
- mc->rs,
- mc->ws,
- &run_ready,
- mc);
+ gtk_builder_connect_signals (ret, NULL);
+ GNUNET_free (glade_path);
+ return ret;
}
+
/**
- * Run GTK tasks that are ready.
- *
- * @param cls the 'struct MainContext'
- * @param tc task context
+ * Initialize GNU gettext for message translation.
*/
static void
-run_ready (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
+setup_nls ()
{
- struct MainContext *mc = cls;
-
- g_poll (mc->cached_poll_array,
- mc->poll_array_active,
- 0);
- if (TRUE ==
- g_main_context_check (mc->gmc,
- mc->max_priority,
- mc->cached_poll_array,
- mc->poll_array_active))
- g_main_context_dispatch (mc->gmc);
- GNUNET_SCHEDULER_add_now (mc->sched,
- &schedule_main_loop,
- mc);
-}
+#if ENABLE_NLS
+ char *path;
-
-/**
- * Main context (global so we can free it on exit and use
- * it for termination).
- */
-static struct MainContext *mc;
-
-
-/**
- * Callback invoked if the application is supposed to exit.
- */
-void
-GNUNET_GTK_quit_cb (GtkObject *object,
- gpointer user_data)
-{
- g_main_loop_quit (mc->gml);
+ setlocale (LC_ALL, "");
+ GNUNET_asprintf (&path,
+ "%s/%s/locale/",
+ GNUNET_GTK_get_data_dir (),
+ PACKAGE_NAME);
+ bindtextdomain ("gnunet-setup", path);
+ textdomain ("gnunet-setup");
+ bind_textdomain_codeset ("GNUnet", "UTF-8");
+ bind_textdomain_codeset ("gnunet-setup", "UTF-8");
+ GNUNET_free (path);
+#else
+ fprintf (stderr,
+ "WARNING: gnunet-setup was compiled without i18n support (did CFLAGS
contain -Werror?).\n");
+#endif
}
@@ -282,90 +153,102 @@
}
-
-/**
- * Actual main function run right after GNUnet's scheduler
- * is initialized. Initializes up GTK and Glade.
- */
-static void
-run (void *cls,
- struct GNUNET_SCHEDULER_Handle *sched,
- char *const *args,
- const char *cfgfile,
- const struct GNUNET_CONFIGURATION_Handle *cfg)
-{
- int argc;
-
- /* command-line processing */
- argc = 0;
- while (args[argc] != NULL) argc++;
- gtk_init (&argc, (char ***) &args);
- set_icon_search_path ();
- setup_nls (cfg);
-
- /* setup main context */
- mc = GNUNET_malloc (sizeof (struct MainContext));
- mc->builder = GNUNET_GTK_get_new_builder ("gnunet-setup.glade");
- mc->rs = GNUNET_NETWORK_fdset_create ();
- mc->ws = GNUNET_NETWORK_fdset_create ();
- mc->gml = g_main_loop_new (NULL, TRUE);
- mc->gmc = g_main_loop_get_context (mc->gml);
- mc->sched = sched;
- mc->cfg = cfg;
- if (mc->builder == NULL)
- return;
-
- /* setup main window */
- mc->main_window = GTK_WIDGET (gtk_builder_get_object (mc->builder,
- "GNUNET_setup_dialog"));
- gtk_window_maximize (GTK_WINDOW (mc->main_window));
-
- gtk_widget_show (mc->main_window);
- gtk_window_present (GTK_WINDOW (mc->main_window));
- /* start the event loop */
- GNUNET_assert (TRUE == g_main_context_acquire (mc->gmc));
- schedule_main_loop (mc, NULL);
-}
-
-
-/**
- * Get an object from the main window.
- *
- * @param name name of the object
- * @return NULL on error
- */
-GObject *
-GNUNET_GTK_get_main_window_object (const char *name)
-{
- return gtk_builder_get_object (mc->builder, name);
-}
-
-
-/**
- * gnunet-setup command line options
- */
-static struct GNUNET_GETOPT_CommandLineOption options[] = {
- GNUNET_GETOPT_OPTION_END
-};
-
-
int
-main (int argc, char *const *argv)
+main (int argc,
+ char *const *argv)
{
- if (GNUNET_OK !=
- GNUNET_PROGRAM_run (argc, argv,
- "gnunet-setup",
- "Configure GNUnet",
- options,
- &run, NULL))
+ char *cfgName = GNUNET_strdup (GNUNET_DEFAULT_USER_CONFIG_FILE);
+ char *loglev = GNUNET_strdup ("WARNING");
+ struct GNUNET_GETOPT_CommandLineOption options[] = {
+ GNUNET_GETOPT_OPTION_CFG_FILE (&cfgName),
+ GNUNET_GETOPT_OPTION_HELP (gettext_noop ("Setup tool for GNUnet")),
+ GNUNET_GETOPT_OPTION_LOGLEVEL (&loglev),
+ GNUNET_GETOPT_OPTION_VERSION (PACKAGE_VERSION),
+ GNUNET_GETOPT_OPTION_END
+ };
+ gint ret;
+ GtkWidget *main_window;
+ GtkWidget *dialog;
+ int arg_off;
+ int iret;
+ char *const *argp;
+ struct GNUNET_CONFIGURATION_Handle *cfgDefault;
+
+ arg_off = GNUNET_GETOPT_run ("gnunet-setup",
+ options,
+ argc,
+ argv);
+ if (arg_off == GNUNET_SYSERR)
{
- free_context (mc);
- mc = NULL;
+ GNUNET_free (loglev);
+ GNUNET_free (cfgName);
return 1;
}
- free_context (mc);
- mc = NULL;
- return 0;
+ (void) GNUNET_log_setup ("gnunet-setup",
+ loglev,
+ NULL);
+ argp = &argv[arg_off];
+ argc -= arg_off;
+ gtk_init (&argc, (char ***) &argp);
+ set_icon_search_path ();
+ setup_nls ();
+ builder = GNUNET_GTK_get_new_builder ("gnunet-setup.glade");
+ if (builder == NULL)
+ {
+ GNUNET_free (loglev);
+ GNUNET_free (cfgName);
+ return 1;
+ }
+ cfg = GNUNET_CONFIGURATION_create ();
+ (void) GNUNET_CONFIGURATION_load (cfg, cfgName);
+ main_window = GTK_WIDGET (gtk_builder_get_object (builder,
+ "GNUNET_setup_dialog"));
+ RESTART:
+ ret = gtk_dialog_run (GTK_DIALOG (main_window));
+ gtk_widget_hide (main_window);
+ cfgDefault = GNUNET_CONFIGURATION_create ();
+ (void) GNUNET_CONFIGURATION_load (cfgDefault, NULL); /* load defaults only */
+ iret = 0;
+ switch (ret)
+ {
+ case GTK_RESPONSE_DELETE_EVENT: /* -4 */
+ case GTK_RESPONSE_CANCEL: /* -6 */
+ /* window closed, do not save! */
+ break;
+ case GTK_RESPONSE_OK: /* save-as, -5 */
+ dialog = gtk_file_chooser_dialog_new (_("Save Configuration File"),
+ NULL,
+ GTK_FILE_CHOOSER_ACTION_SAVE,
+ GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL,
+ GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), cfgName);
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_ACCEPT)
+ {
+ gtk_widget_destroy (dialog);
+ goto RESTART;
+ }
+ GNUNET_free (cfgName);
+ cfgName = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+ gtk_widget_destroy (dialog);
+ /* fall through! */
+ case GTK_RESPONSE_ACCEPT: /* save, -3 */
+ if (GNUNET_OK !=
+ GNUNET_CONFIGURATION_write_diffs (cfgDefault,
+ cfg,
+ cfgName))
+ iret = 1;
+ break;
+ default:
+ GNUNET_break (0);
+ }
+ gtk_widget_destroy (main_window);
+ g_object_unref (G_OBJECT (builder));
+ GNUNET_CONFIGURATION_destroy (cfgDefault);
+ GNUNET_CONFIGURATION_destroy (cfg);
+ GNUNET_free (cfgName);
+ GNUNET_free (loglev);
+ return iret;
}
Modified: gnunet-setup/src/os_installation.c
===================================================================
--- gnunet-setup/src/os_installation.c 2010-11-02 14:15:11 UTC (rev 13493)
+++ gnunet-setup/src/os_installation.c 2010-11-02 15:42:11 UTC (rev 13494)
@@ -32,12 +32,18 @@
* @author Christian Grothoff
*/
-#include "common.h"
+#ifndef HAVE_USED_CONFIG_H
+#define HAVE_USED_CONFIG_H
+#include "gnunet_setup_config.h"
+#endif
+#include <gnunet/platform.h>
+#include <gnunet/gnunet_util_lib.h>
+#include <gladeui/glade.h>
+#include <gtk/gtk.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-#include <gnunet/gnunet_util_lib.h>
#if DARWIN
#include <mach-o/ldsyms.h>
#include <mach-o/dyld.h>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r13494 - in gnunet-setup: . contrib src,
gnunet <=