diff options
Diffstat (limited to 'drivers/windows/file_access_windows.cpp')
-rw-r--r-- | drivers/windows/file_access_windows.cpp | 132 |
1 files changed, 57 insertions, 75 deletions
diff --git a/drivers/windows/file_access_windows.cpp b/drivers/windows/file_access_windows.cpp index 894b49231b..0bb6c1d196 100644 --- a/drivers/windows/file_access_windows.cpp +++ b/drivers/windows/file_access_windows.cpp @@ -28,20 +28,18 @@ /*************************************************************************/ #ifdef WINDOWS_ENABLED -#include <windows.h> -#include "shlwapi.h" #include "file_access_windows.h" +#include "shlwapi.h" +#include <windows.h> - -#include <sys/types.h> +#include "print_string.h" #include <sys/stat.h> -#include <wchar.h> +#include <sys/types.h> #include <tchar.h> -#include "print_string.h" - +#include <wchar.h> #ifdef _MSC_VER - #define S_ISREG(m) ((m)&_S_IFREG) +#define S_ISREG(m) ((m)&_S_IFREG) #endif void FileAccessWindows::check_errors() const { @@ -50,28 +48,26 @@ void FileAccessWindows::check_errors() const { if (feof(f)) { - last_error=ERR_FILE_EOF; + last_error = ERR_FILE_EOF; } - } -Error FileAccessWindows::_open(const String& p_filename, int p_mode_flags) { +Error FileAccessWindows::_open(const String &p_filename, int p_mode_flags) { - String filename=fix_path(p_filename); + String filename = fix_path(p_filename); if (f) close(); + const wchar_t *mode_string; - const wchar_t* mode_string; - - if (p_mode_flags==READ) - mode_string=L"rb"; - else if (p_mode_flags==WRITE) - mode_string=L"wb"; - else if (p_mode_flags==READ_WRITE) - mode_string=L"rb+"; - else if (p_mode_flags==WRITE_READ) - mode_string=L"wb+"; + if (p_mode_flags == READ) + mode_string = L"rb"; + else if (p_mode_flags == WRITE) + mode_string = L"wb"; + else if (p_mode_flags == READ_WRITE) + mode_string = L"rb+"; + else if (p_mode_flags == WRITE_READ) + mode_string = L"wb+"; else return ERR_INVALID_PARAMETER; @@ -83,27 +79,24 @@ Error FileAccessWindows::_open(const String& p_filename, int p_mode_flags) { if (!S_ISREG(st.st_mode)) return ERR_FILE_CANT_OPEN; - }; - if (is_backup_save_enabled() && p_mode_flags&WRITE && !(p_mode_flags&READ)) { - save_path=filename; - filename=filename+".tmp"; + if (is_backup_save_enabled() && p_mode_flags & WRITE && !(p_mode_flags & READ)) { + save_path = filename; + filename = filename + ".tmp"; //print_line("saving instead to "+path); } - f=_wfopen(filename.c_str(), mode_string); + f = _wfopen(filename.c_str(), mode_string); - - if (f==NULL) { - last_error=ERR_FILE_CANT_OPEN; + if (f == NULL) { + last_error = ERR_FILE_CANT_OPEN; return ERR_FILE_CANT_OPEN; } else { - last_error=OK; - flags=p_mode_flags; + last_error = OK; + flags = p_mode_flags; return OK; } - } void FileAccessWindows::close() { @@ -113,14 +106,13 @@ void FileAccessWindows::close() { fclose(f); f = NULL; - if (save_path!="") { + if (save_path != "") { //unlink(save_path.utf8().get_data()); //print_line("renaming.."); //_wunlink(save_path.c_str()); //unlink if exists //int rename_error = _wrename((save_path+".tmp").c_str(),save_path.c_str()); - bool rename_error; #ifdef UWP_ENABLED @@ -133,53 +125,50 @@ void FileAccessWindows::close() { if (!PathFileExistsW(save_path.c_str())) { #endif //creating new file - rename_error = _wrename((save_path+".tmp").c_str(),save_path.c_str())!=0; + rename_error = _wrename((save_path + ".tmp").c_str(), save_path.c_str()) != 0; } else { //atomic replace for existing file - rename_error = !ReplaceFileW(save_path.c_str(), (save_path+".tmp").c_str(), NULL, 2|4, NULL, NULL); + rename_error = !ReplaceFileW(save_path.c_str(), (save_path + ".tmp").c_str(), NULL, 2 | 4, NULL, NULL); } if (rename_error && close_fail_notify) { close_fail_notify(save_path); } - save_path=""; - ERR_FAIL_COND( rename_error ); + save_path = ""; + ERR_FAIL_COND(rename_error); } - } bool FileAccessWindows::is_open() const { - return (f!=NULL); + return (f != NULL); } void FileAccessWindows::seek(size_t p_position) { ERR_FAIL_COND(!f); - last_error=OK; - if ( fseek(f,p_position,SEEK_SET) ) + last_error = OK; + if (fseek(f, p_position, SEEK_SET)) check_errors(); } void FileAccessWindows::seek_end(int64_t p_position) { ERR_FAIL_COND(!f); - if ( fseek(f,p_position,SEEK_END) ) + if (fseek(f, p_position, SEEK_END)) check_errors(); } size_t FileAccessWindows::get_pos() const { - - size_t aux_position=0; - if ( !(aux_position = ftell(f)) ) { + size_t aux_position = 0; + if (!(aux_position = ftell(f))) { check_errors(); }; return aux_position; } size_t FileAccessWindows::get_len() const { - - ERR_FAIL_COND_V(!f,0); + ERR_FAIL_COND_V(!f, 0); size_t pos = get_pos(); - fseek(f,0,SEEK_END); + fseek(f, 0, SEEK_END); int size = get_pos(); fseek(f, pos, SEEK_SET); @@ -189,14 +178,14 @@ size_t FileAccessWindows::get_len() const { bool FileAccessWindows::eof_reached() const { check_errors(); - return last_error==ERR_FILE_EOF; + return last_error == ERR_FILE_EOF; } uint8_t FileAccessWindows::get_8() const { - ERR_FAIL_COND_V(!f,0); + ERR_FAIL_COND_V(!f, 0); uint8_t b; - if (fread(&b,1,1,f) == 0) { + if (fread(&b, 1, 1, f) == 0) { check_errors(); }; @@ -205,13 +194,12 @@ uint8_t FileAccessWindows::get_8() const { int FileAccessWindows::get_buffer(uint8_t *p_dst, int p_length) const { - ERR_FAIL_COND_V(!f,-1); - int read = fread(p_dst, 1,p_length, f); + ERR_FAIL_COND_V(!f, -1); + int read = fread(p_dst, 1, p_length, f); check_errors(); return read; }; - Error FileAccessWindows::get_error() const { return last_error; @@ -220,18 +208,16 @@ Error FileAccessWindows::get_error() const { void FileAccessWindows::store_8(uint8_t p_dest) { ERR_FAIL_COND(!f); - fwrite(&p_dest,1,1,f); - + fwrite(&p_dest, 1, 1, f); } - -bool FileAccessWindows::file_exists(const String& p_name) { +bool FileAccessWindows::file_exists(const String &p_name) { FILE *g; //printf("opening file %s\n", p_fname.c_str()); - String filename=fix_path(p_name); - g=_wfopen(filename.c_str(),L"rb"); - if (g==NULL) { + String filename = fix_path(p_name); + g = _wfopen(filename.c_str(), L"rb"); + if (g == NULL) { return false; } else { @@ -241,11 +227,11 @@ bool FileAccessWindows::file_exists(const String& p_name) { } } -uint64_t FileAccessWindows::_get_modified_time(const String& p_file) { +uint64_t FileAccessWindows::_get_modified_time(const String &p_file) { - String file=fix_path(p_file); - if (file.ends_with("/") && file!="/") - file=file.substr(0,file.length()-1); + String file = fix_path(p_file); + if (file.ends_with("/") && file != "/") + file = file.substr(0, file.length() - 1); struct _stat st; int rv = _wstat(file.c_str(), &st); @@ -254,25 +240,21 @@ uint64_t FileAccessWindows::_get_modified_time(const String& p_file) { return st.st_mtime; } else { - print_line("no access to "+file ); + print_line("no access to " + file); } - ERR_FAIL_V(0); }; - FileAccessWindows::FileAccessWindows() { - f=NULL; - flags=0; - last_error=OK; - + f = NULL; + flags = 0; + last_error = OK; } FileAccessWindows::~FileAccessWindows() { close(); - } #endif |