mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
5640a6a839
commit
5ed93a9d9e
6 changed files with 27 additions and 2 deletions
|
@ -768,7 +768,7 @@ static struct git_repository *get_remote_repo(const char *localdir, const char *
|
|||
}
|
||||
git_storage_update_progress(false, "start git interaction");
|
||||
/* Do we already have a local cache? */
|
||||
if (!stat(localdir, &st)) {
|
||||
if (!subsurface_stat(localdir, &st)) {
|
||||
if (!S_ISDIR(st.st_mode)) {
|
||||
if (is_subsurface_cloud)
|
||||
(void)cleanup_local_cache(remote, branch);
|
||||
|
@ -934,7 +934,7 @@ struct git_repository *is_git_repository(const char *filename, const char **bran
|
|||
return repo;
|
||||
}
|
||||
|
||||
if (stat(loc, &st) < 0 || !S_ISDIR(st.st_mode)) {
|
||||
if (subsurface_stat(loc, &st) < 0 || !S_ISDIR(st.st_mode)) {
|
||||
free(loc);
|
||||
free(branch);
|
||||
return dummy_git_repository;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue