Added UTF8 international character support for file operations; see issue #413
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#include <glib/gstdio.h>
|
||||
#include <setjmp.h>
|
||||
#include <safekeyfile.h>
|
||||
#include <safegtk.h>
|
||||
#include <rawimage.h>
|
||||
#include "jpeg.h"
|
||||
|
||||
@@ -962,7 +963,7 @@ bool Thumbnail::writeImage (const Glib::ustring& fname, int format) {
|
||||
}
|
||||
|
||||
if (format==1) {
|
||||
FILE* f = g_fopen (fname.c_str(), "wb");
|
||||
FILE* f = safe_g_fopen (fname, "wb");
|
||||
if (!f) {
|
||||
delete [] tmpdata;
|
||||
return false;
|
||||
@@ -973,7 +974,7 @@ bool Thumbnail::writeImage (const Glib::ustring& fname, int format) {
|
||||
fclose (f);
|
||||
}
|
||||
else if (format==3) {
|
||||
FILE* f = g_fopen (fname.c_str(), "wb");
|
||||
FILE* f = safe_g_fopen (fname, "wb");
|
||||
if (!f) {
|
||||
delete [] tmpdata;
|
||||
return false;
|
||||
@@ -1018,7 +1019,7 @@ bool Thumbnail::writeImage (const Glib::ustring& fname, int format) {
|
||||
return true;
|
||||
}
|
||||
else if (format==2) {
|
||||
FILE* f = g_fopen (fname.c_str(), "wb");
|
||||
FILE* f = safe_g_fopen (fname, "wb");
|
||||
if (!f)
|
||||
return false;
|
||||
fwrite (&thumbImg->width, 1, sizeof (int), f);
|
||||
@@ -1042,17 +1043,17 @@ bool Thumbnail::readImage (const Glib::ustring& fname) {
|
||||
thumbImg = NULL;
|
||||
|
||||
int imgType = 0;
|
||||
if (Glib::file_test (fname+".cust16", Glib::FILE_TEST_EXISTS))
|
||||
if (safe_file_test (fname+".cust16", Glib::FILE_TEST_EXISTS))
|
||||
imgType = 2;
|
||||
if (Glib::file_test (fname+".cust", Glib::FILE_TEST_EXISTS))
|
||||
if (safe_file_test (fname+".cust", Glib::FILE_TEST_EXISTS))
|
||||
imgType = 1;
|
||||
else if (Glib::file_test (fname+".jpg", Glib::FILE_TEST_EXISTS))
|
||||
else if (safe_file_test (fname+".jpg", Glib::FILE_TEST_EXISTS))
|
||||
imgType = 3;
|
||||
|
||||
if (!imgType)
|
||||
return false;
|
||||
else if (imgType==1) {
|
||||
FILE* f = g_fopen ((fname+".cust").c_str(), "rb");
|
||||
FILE* f = safe_g_fopen (fname+".cust", "rb");
|
||||
if (!f)
|
||||
return false;
|
||||
int width, height;
|
||||
@@ -1085,7 +1086,7 @@ bool Thumbnail::readImage (const Glib::ustring& fname) {
|
||||
return true;
|
||||
}
|
||||
else if (imgType==2) {
|
||||
FILE* f = g_fopen ((fname+".cust16").c_str(), "rb");
|
||||
FILE* f = safe_g_fopen (fname+".cust16", "rb");
|
||||
if (!f)
|
||||
return false;
|
||||
int width, height;
|
||||
@@ -1102,7 +1103,7 @@ bool Thumbnail::readImage (const Glib::ustring& fname) {
|
||||
return true;
|
||||
}
|
||||
else if (imgType==3) {
|
||||
FILE* f = g_fopen ((fname+".jpg").c_str(), "rb");
|
||||
FILE* f = safe_g_fopen (fname+".jpg", "rb");
|
||||
if (!f)
|
||||
return false;
|
||||
struct jpeg_decompress_struct cinfo;
|
||||
@@ -1200,7 +1201,7 @@ bool Thumbnail::writeData (const Glib::ustring& fname) {
|
||||
SafeKeyFile keyFile;
|
||||
|
||||
try {
|
||||
if( Glib::file_test(fname,Glib::FILE_TEST_EXISTS) )
|
||||
if( safe_file_test(fname,Glib::FILE_TEST_EXISTS) )
|
||||
keyFile.load_from_file (fname);
|
||||
} catch (...) {}
|
||||
|
||||
@@ -1220,7 +1221,7 @@ bool Thumbnail::writeData (const Glib::ustring& fname) {
|
||||
Glib::ArrayHandle<double> cm ((double*)colorMatrix, 9, Glib::OWNERSHIP_NONE);
|
||||
keyFile.set_double_list ("LiveThumbData", "ColorMatrix", cm);
|
||||
|
||||
FILE *f = g_fopen (fname.c_str(), "wt");
|
||||
FILE *f = safe_g_fopen (fname, "wt");
|
||||
if (!f)
|
||||
return false;
|
||||
else {
|
||||
|
Reference in New Issue
Block a user