summaryrefslogtreecommitdiff
path: root/drivers/windows/file_access_windows.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/windows/file_access_windows.cpp')
-rw-r--r--drivers/windows/file_access_windows.cpp132
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