aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gtk/file_dlg_win32.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/gtk/file_dlg_win32.c b/gtk/file_dlg_win32.c
index 906e783c84..358d7c91b4 100644
--- a/gtk/file_dlg_win32.c
+++ b/gtk/file_dlg_win32.c
@@ -593,8 +593,8 @@ win32_export_raw_file(HWND h_wnd) {
OPENFILENAME *ofn;
TCHAR file_name[MAX_PATH] = _T("");
char *dirname;
- const guint8 *data_p = NULL;
- const char *file = NULL;
+ const guint8 *data_p;
+ char *file_name8;
int fd;
int ofnsize;
#if (_MSC_VER >= 1500)
@@ -650,25 +650,26 @@ win32_export_raw_file(HWND h_wnd) {
if (GetSaveFileName(ofn)) {
g_free( (void *) ofn);
+ file_name8 = utf_16to8(file_name);
data_p = tvb_get_ptr(cfile.finfo_selected->ds_tvb, 0, -1) +
cfile.finfo_selected->start;
- fd = open(utf_16to8(file_name), O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0666);
+ fd = ws_open(file_name8, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0666);
if (fd == -1) {
- open_failure_alert_box(file, errno, TRUE);
+ open_failure_alert_box(file_name8, errno, TRUE);
return;
}
if (write(fd, data_p, cfile.finfo_selected->length) < 0) {
- write_failure_alert_box(file, errno);
+ write_failure_alert_box(file_name8, errno);
close(fd);
return;
}
if (close(fd) < 0) {
- write_failure_alert_box(file, errno);
+ write_failure_alert_box(file_name8, errno);
return;
}
/* Save the directory name for future file dialogs. */
- dirname = get_dirname(utf_16to8(file_name)); /* Overwrites cf_name */
+ dirname = get_dirname(file_name8); /* Overwrites cf_name */
set_last_open_dir(dirname);
} else {
g_free( (void *) ofn);