Added UTF8 international character support for file operations; see issue #413

This commit is contained in:
Oliver Duis
2010-12-18 17:41:03 +01:00
parent 1f2f3b1209
commit 94449dc9e4
29 changed files with 166 additions and 152 deletions

View File

@@ -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 {