aboutsummaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2002-09-22 17:52:38 +0000
committerGerald Combs <gerald@wireshark.org>2002-09-22 17:52:38 +0000
commit7d7c2e075e92a133c42c7c80bd94753f9dbf394f (patch)
tree0e8b595f637073b7806ae464c6178f1ad1a8861c /gtk
parenta4cace546360fb2c39cad0f4c1ee2b6e96837663 (diff)
From Graeme Hewson:
In my recent patches to set and use a default directory, I neglected to set the directory when the user enters a file name directly into the "Capture Options" and "Print" dialogs instead of using the file dialog. This set of patches corrects this. svn path=/trunk/; revision=6318
Diffstat (limited to 'gtk')
-rw-r--r--gtk/capture_dlg.c14
-rw-r--r--gtk/print_dlg.c38
2 files changed, 32 insertions, 20 deletions
diff --git a/gtk/capture_dlg.c b/gtk/capture_dlg.c
index 8bc94d2a3a..5760fc215f 100644
--- a/gtk/capture_dlg.c
+++ b/gtk/capture_dlg.c
@@ -1,7 +1,7 @@
/* capture_dlg.c
* Routines for packet capture windows
*
- * $Id: capture_dlg.c,v 1.73 2002/09/09 20:38:58 guy Exp $
+ * $Id: capture_dlg.c,v 1.74 2002/09/22 17:52:36 gerald Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -624,7 +624,6 @@ static void
cap_prep_fs_ok_cb(GtkWidget *w _U_, gpointer data)
{
gchar *cf_name;
- gchar *dirname;
cf_name = g_strdup(gtk_file_selection_get_filename(
GTK_FILE_SELECTION (data)));
@@ -644,10 +643,6 @@ cap_prep_fs_ok_cb(GtkWidget *w _U_, gpointer data)
E_CAP_FILE_TE_KEY)), cf_name);
gtk_widget_destroy(GTK_WIDGET(data));
-
- /* Save the directory name for future file dialogs. */
- dirname = get_dirname(cf_name); /* Overwrites cf_name */
- set_last_open_dir(dirname);
g_free(cf_name);
}
@@ -692,6 +687,8 @@ capture_prep_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w) {
gchar *if_name;
gchar *filter_text;
gchar *save_file;
+ gchar *cf_name;
+ gchar *dirname;
if_cb = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(parent_w), E_CAP_IFACE_KEY);
snap_cb = (GtkWidget *) gtk_object_get_data(GTK_OBJECT(parent_w), E_CAP_SNAP_CB_KEY);
@@ -765,6 +762,11 @@ capture_prep_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w) {
if (save_file && save_file[0]) {
/* User specified a file to which the capture should be written. */
save_file = g_strdup(save_file);
+ /* Save the directory name for future file dialogs. */
+ cf_name = g_strdup(save_file);
+ dirname = get_dirname(cf_name); /* Overwrites cf_name */
+ set_last_open_dir(dirname);
+ g_free(cf_name);
} else {
/* User didn't specify a file; save to a temporary file. */
save_file = NULL;
diff --git a/gtk/print_dlg.c b/gtk/print_dlg.c
index ea9f6083b9..6aa5b65535 100644
--- a/gtk/print_dlg.c
+++ b/gtk/print_dlg.c
@@ -1,7 +1,7 @@
/* print_dlg.c
* Dialog boxes for printing
*
- * $Id: print_dlg.c,v 1.37 2002/09/09 20:38:58 guy Exp $
+ * $Id: print_dlg.c,v 1.38 2002/09/22 17:52:36 gerald Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -483,31 +483,27 @@ print_file_cb(GtkWidget *file_bt, gpointer file_te)
static void
print_fs_ok_cb(GtkWidget *w _U_, gpointer data)
{
- gchar *cf_name;
- gchar *dirname;
+ gchar *f_name;
- cf_name = g_strdup(gtk_file_selection_get_filename(
+ f_name = g_strdup(gtk_file_selection_get_filename(
GTK_FILE_SELECTION (data)));
/* Perhaps the user specified a directory instead of a file.
Check whether they did. */
- if (test_for_directory(cf_name) == EISDIR) {
+ if (test_for_directory(f_name) == EISDIR) {
/* It's a directory - set the file selection box to display it. */
- set_last_open_dir(cf_name);
- g_free(cf_name);
+ set_last_open_dir(f_name);
+ g_free(f_name);
gtk_file_selection_set_filename(GTK_FILE_SELECTION(data),
last_open_dir);
return;
}
gtk_entry_set_text(GTK_ENTRY(gtk_object_get_data(GTK_OBJECT(data),
- PRINT_FILE_TE_KEY)), cf_name);
+ PRINT_FILE_TE_KEY)), f_name);
gtk_widget_destroy(GTK_WIDGET(data));
- /* Save the directory name for future file dialogs. */
- dirname = get_dirname(cf_name); /* Overwrites cf_name */
- set_last_open_dir(dirname);
- g_free(cf_name);
+ g_free(f_name);
}
static void
@@ -558,6 +554,9 @@ print_ok_cb(GtkWidget *ok_bt, gpointer parent_w)
{
GtkWidget *button;
print_args_t print_args;
+ gchar *g_dest;
+ gchar *f_name;
+ gchar *dirname;
#ifdef _WIN32
int win_printer_flag = FALSE;
#endif
@@ -568,8 +567,19 @@ print_ok_cb(GtkWidget *ok_bt, gpointer parent_w)
print_args.to_file = print_to_file;
if (print_args.to_file) {
- print_args.dest = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_object_get_data(GTK_OBJECT(ok_bt),
- PRINT_FILE_TE_KEY))));
+ g_dest = gtk_entry_get_text(GTK_ENTRY(gtk_object_get_data(GTK_OBJECT(ok_bt),
+ PRINT_FILE_TE_KEY)));
+ if (!g_dest[0]) {
+ simple_dialog(ESD_TYPE_CRIT, NULL,
+ "Printing to file, but no file specified.");
+ return;
+ }
+ print_args.dest = g_strdup(g_dest);
+ /* Save the directory name for future file dialogs. */
+ f_name = g_strdup(g_dest);
+ dirname = get_dirname(f_name); /* Overwrites f_name */
+ set_last_open_dir(dirname);
+ g_free(f_name);
} else {
#ifdef _WIN32
win_printer_flag = TRUE;