aboutsummaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2005-02-17 03:05:54 +0000
committerGuy Harris <guy@alum.mit.edu>2005-02-17 03:05:54 +0000
commit9105b04e4bdc3b9954ba474652c171ebcd32cadb (patch)
tree42adc7ae815b3fa17187af437c07eee04de224ce /gtk
parent60ffea9d7a9db78a3910c8da27f5081a31555fb9 (diff)
Have "cf_merge_files()" take a pointer-to-pointer-to-char as the output
file name argument; if the pointed-to pointer is null, it opens a temporary file, and sets that pointer to a mallocated copy of the pathname of the temporary file. It no longer needs a file descriptor as an argument. svn path=/trunk/; revision=13419
Diffstat (limited to 'gtk')
-rw-r--r--gtk/drag_and_drop.c12
-rw-r--r--gtk/file_dlg.c20
2 files changed, 16 insertions, 16 deletions
diff --git a/gtk/drag_and_drop.c b/gtk/drag_and_drop.c
index fbdbafb897..4a124c706b 100644
--- a/gtk/drag_and_drop.c
+++ b/gtk/drag_and_drop.c
@@ -134,20 +134,18 @@ dnd_uri2filename(gchar *cf_name)
static void
dnd_merge_files(int in_file_count, char **in_filenames)
{
- int out_fd;
+ char *tmpname;
gboolean merge_ok;
int err;
- char tmpname[128+1];
-
-
- out_fd = create_tempfile(tmpname, sizeof tmpname, "ether");
/* merge the files in chonological order */
- merge_ok = cf_merge_files(tmpname, out_fd, in_file_count, in_filenames,
+ tmpname = NULL;
+ merge_ok = cf_merge_files(&tmpname, in_file_count, in_filenames,
WTAP_FILE_PCAP, FALSE);
if (!merge_ok) {
/* merge failed */
+ g_free(tmpname);
return;
}
@@ -159,8 +157,10 @@ dnd_merge_files(int in_file_count, char **in_filenames)
just leave it around so that the user can, after they
dismiss the alert box popped up for the open error,
try again. */
+ g_free(tmpname);
return;
}
+ g_free(tmpname);
switch (cf_read(&cfile)) {
diff --git a/gtk/file_dlg.c b/gtk/file_dlg.c
index 92d16ed651..40f9581347 100644
--- a/gtk/file_dlg.c
+++ b/gtk/file_dlg.c
@@ -1000,8 +1000,7 @@ file_merge_ok_cb(GtkWidget *w, gpointer fs) {
int err;
cf_status_t merge_status;
char *in_filenames[2];
- int out_fd;
- char tmpname[128+1];
+ char *tmpname;
#if (GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION >= 4) || GTK_MAJOR_VERSION > 2
cf_name = g_strdup(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fs)));
@@ -1027,30 +1026,28 @@ file_merge_ok_cb(GtkWidget *w, gpointer fs) {
return;
}
- out_fd = create_tempfile(tmpname, sizeof tmpname, "ether");
-
/* merge or append the two files */
rb = OBJECT_GET_DATA(w, E_MERGE_CHRONO_KEY);
+ tmpname = NULL;
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (rb))) {
/* chronological order */
in_filenames[0] = cfile.filename;
in_filenames[1] = cf_name;
- merge_status = cf_merge_files(tmpname, out_fd, 2, in_filenames,
- filetype, FALSE);
+ merge_status = cf_merge_files(&tmpname, 2, in_filenames, filetype, FALSE);
} else {
rb = OBJECT_GET_DATA(w, E_MERGE_PREPEND_KEY);
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (rb))) {
/* prepend file */
in_filenames[0] = cfile.filename;
in_filenames[1] = cf_name;
- merge_status = cf_merge_files(tmpname, out_fd, 2, in_filenames,
- filetype, TRUE);
+ merge_status = cf_merge_files(&tmpname, 2, in_filenames, filetype,
+ TRUE);
} else {
/* append file */
in_filenames[0] = cf_name;
in_filenames[1] = cfile.filename;
- merge_status = cf_merge_files(tmpname, out_fd, 2, in_filenames,
- filetype, TRUE);
+ merge_status = cf_merge_files(&tmpname, 2, in_filenames, filetype,
+ TRUE);
}
}
@@ -1059,6 +1056,7 @@ file_merge_ok_cb(GtkWidget *w, gpointer fs) {
if (merge_status != CF_OK) {
if (rfcode != NULL)
dfilter_free(rfcode);
+ g_free(tmpname);
return;
}
@@ -1075,8 +1073,10 @@ file_merge_ok_cb(GtkWidget *w, gpointer fs) {
try again. */
if (rfcode != NULL)
dfilter_free(rfcode);
+ g_free(tmpname);
return;
}
+ g_free(tmpname);
/* Attach the new read filter to "cf" ("cf_open()" succeeded, so
it closed the previous capture file, and thus destroyed any