/* prefs.c
* Routines for handling preferences
*
- * $Id: prefs.c,v 1.16 1999/03/01 18:57:01 gram Exp $
+ * $Id: prefs.c,v 1.19 1999/07/13 02:52:57 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
#include <sys/types.h>
#endif
+#ifdef HAVE_DIRECT_H
+#include <direct.h>
+#endif
+
#include <gtk/gtk.h>
#include <stdlib.h>
#include <ctype.h>
#include <errno.h>
+
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
+
#include <sys/stat.h>
#include "ethereal.h"
gtk_widget_show(bbox);
ok_bt = gtk_button_new_with_label ("OK");
- gtk_signal_connect_object(GTK_OBJECT(ok_bt), "clicked",
+ gtk_signal_connect(GTK_OBJECT(ok_bt), "clicked",
GTK_SIGNAL_FUNC(prefs_main_ok_cb), GTK_OBJECT(prefs_w));
GTK_WIDGET_SET_FLAGS(ok_bt, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (bbox), ok_bt, TRUE, TRUE, 0);
gtk_widget_show(ok_bt);
save_bt = gtk_button_new_with_label ("Save");
- gtk_signal_connect_object(GTK_OBJECT(save_bt), "clicked",
+ gtk_signal_connect(GTK_OBJECT(save_bt), "clicked",
GTK_SIGNAL_FUNC(prefs_main_save_cb), GTK_OBJECT(prefs_w));
GTK_WIDGET_SET_FLAGS(save_bt, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (bbox), save_bt, TRUE, TRUE, 0);
gtk_widget_show(save_bt);
cancel_bt = gtk_button_new_with_label ("Cancel");
- gtk_signal_connect_object(GTK_OBJECT(cancel_bt), "clicked",
+ gtk_signal_connect(GTK_OBJECT(cancel_bt), "clicked",
GTK_SIGNAL_FUNC(prefs_main_cancel_cb), GTK_OBJECT(prefs_w));
GTK_WIDGET_SET_FLAGS(cancel_bt, GTK_CAN_DEFAULT);
gtk_box_pack_start (GTK_BOX (bbox), cancel_bt, TRUE, TRUE, 0);
}
void
-prefs_main_ok_cb(GtkWidget *w, gpointer win) {
-
-#ifdef GTK_HAVE_FEATURES_1_1_0
- win = w;
-#endif
- printer_prefs_ok(gtk_object_get_data(GTK_OBJECT(win), E_PRINT_PAGE_KEY));
- filter_prefs_ok(gtk_object_get_data(GTK_OBJECT(win), E_FILTER_PAGE_KEY));
- column_prefs_ok(gtk_object_get_data(GTK_OBJECT(win), E_COLUMN_PAGE_KEY));
- gtk_widget_destroy(GTK_WIDGET(win));
+prefs_main_ok_cb(GtkWidget *ok_bt, gpointer parent_w)
+{
+ printer_prefs_ok(gtk_object_get_data(GTK_OBJECT(parent_w), E_PRINT_PAGE_KEY));
+ filter_prefs_ok(gtk_object_get_data(GTK_OBJECT(parent_w), E_FILTER_PAGE_KEY));
+ column_prefs_ok(gtk_object_get_data(GTK_OBJECT(parent_w), E_COLUMN_PAGE_KEY));
+ gtk_widget_destroy(GTK_WIDGET(parent_w));
}
void
-prefs_main_save_cb(GtkWidget *w, gpointer win) {
-#ifdef GTK_HAVE_FEATURES_1_1_0
- win = w;
-#endif
- printer_prefs_save(gtk_object_get_data(GTK_OBJECT(win), E_PRINT_PAGE_KEY));
- filter_prefs_save(gtk_object_get_data(GTK_OBJECT(win), E_FILTER_PAGE_KEY));
- column_prefs_save(gtk_object_get_data(GTK_OBJECT(win), E_COLUMN_PAGE_KEY));
+prefs_main_save_cb(GtkWidget *save_bt, gpointer parent_w)
+{
+ printer_prefs_save(gtk_object_get_data(GTK_OBJECT(parent_w), E_PRINT_PAGE_KEY));
+ filter_prefs_save(gtk_object_get_data(GTK_OBJECT(parent_w), E_FILTER_PAGE_KEY));
+ column_prefs_save(gtk_object_get_data(GTK_OBJECT(parent_w), E_COLUMN_PAGE_KEY));
write_prefs();
}
void
-prefs_main_cancel_cb(GtkWidget *w, gpointer win) {
-
-#ifdef GTK_HAVE_FEATURES_1_1_0
- win = w;
-#endif
- printer_prefs_cancel(gtk_object_get_data(GTK_OBJECT(win), E_PRINT_PAGE_KEY));
- filter_prefs_cancel(gtk_object_get_data(GTK_OBJECT(win), E_FILTER_PAGE_KEY));
- column_prefs_cancel(gtk_object_get_data(GTK_OBJECT(win), E_COLUMN_PAGE_KEY));
- gtk_widget_destroy(GTK_WIDGET(win));
+prefs_main_cancel_cb(GtkWidget *cancel_bt, gpointer parent_w)
+{
+ printer_prefs_cancel(gtk_object_get_data(GTK_OBJECT(parent_w), E_PRINT_PAGE_KEY));
+ filter_prefs_cancel(gtk_object_get_data(GTK_OBJECT(parent_w), E_FILTER_PAGE_KEY));
+ column_prefs_cancel(gtk_object_get_data(GTK_OBJECT(parent_w), E_COLUMN_PAGE_KEY));
+ gtk_widget_destroy(GTK_WIDGET(parent_w));
}
/* Parse through a list of comma-separated, quoted strings. Return a
#define MAX_VAL_LEN 1024
#define DEF_NUM_COLS 6
e_prefs *
-read_prefs() {
+read_prefs(char **pf_path_return) {
enum { START, IN_VAR, PRE_VAL, IN_VAL, IN_SKIP };
FILE *pf;
gchar cur_var[MAX_VAR_LEN], cur_val[MAX_VAL_LEN];
sprintf(pf_path, "%s/%s/%s", getenv("HOME"), PF_DIR, PF_NAME);
}
+ *pf_path_return = NULL;
if ((pf = fopen(pf_path, "r")) == NULL) {
- if (errno != ENOENT) {
- simple_dialog(ESD_TYPE_WARN, NULL,
- "Can't open preferences file\n\"%s\".", pf_path);
- }
+ if (errno != ENOENT)
+ *pf_path_return = pf_path;
return &prefs;
}
sprintf(pf_path, "%s/%s", getenv("HOME"), PF_DIR);
if (stat(pf_path, &s_buf) != 0)
+#ifdef WIN32
+ mkdir(pf_path);
+#else
mkdir(pf_path, 0755);
+#endif
sprintf(pf_path, "%s/%s/%s", getenv("HOME"), PF_DIR, PF_NAME);
if ((pf = fopen(pf_path, "w")) == NULL) {