diff options
author | Guy Harris <guy@alum.mit.edu> | 2005-02-17 03:05:54 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2005-02-17 03:05:54 +0000 |
commit | 9105b04e4bdc3b9954ba474652c171ebcd32cadb (patch) | |
tree | 42adc7ae815b3fa17187af437c07eee04de224ce /gtk/file_dlg.c | |
parent | 60ffea9d7a9db78a3910c8da27f5081a31555fb9 (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/file_dlg.c')
-rw-r--r-- | gtk/file_dlg.c | 20 |
1 files changed, 10 insertions, 10 deletions
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 |