Fix "Load/Save to cloudstorage" for non-ASCII user names

On Windows that would fail because stat() doesn't deal well with our
utf8 strings.

Added new subsurface_stat() portability function to replace stat().
Added Windows implementation of subsurface_stat() using wstat(),
with conversion to ut16 of the inputed path.
Other platform implementations (linux, android) make use of the normal stat().

Added non ASCII test case in TestGitStorage::testGitStorageLocal()

Signed-off-by: Jeremie Guichard <djebrest@gmail.com>
This commit is contained in:
Jeremie Guichard 2017-02-24 14:06:48 +07:00 committed by Dirk Hohndel
parent 5640a6a839
commit 5ed93a9d9e
6 changed files with 27 additions and 2 deletions

View file

@ -8,6 +8,7 @@
#include <zip.h>
#include <sqlite3.h>
#include <string.h>
#include <sys/stat.h>
#include "divesite.h"
/* Windows has no MIN/MAX macros - so let's just roll our own */
@ -728,6 +729,7 @@ extern int subsurface_open(const char *path, int oflags, mode_t mode);
extern FILE *subsurface_fopen(const char *path, const char *mode);
extern void *subsurface_opendir(const char *path);
extern int subsurface_access(const char *path, int mode);
extern int subsurface_stat(const char* path, struct stat* buf);
extern struct zip *subsurface_zip_open_readonly(const char *path, int flags, int *errorp);
extern int subsurface_zip_close(struct zip *zip);
extern void subsurface_console_init(bool dedicated, bool logfile);