diff options
-rw-r--r-- | gtk/file_dlg_win32.c | 15 |
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); |