aboutsummaryrefslogtreecommitdiff
path: root/sftsr.c
diff options
context:
space:
mode:
authorEduardo Casino <mail@eduardocasino.es>2022-05-24 21:49:53 +0200
committerJavier <dev.git@javispedro.com>2022-06-12 17:13:03 +0200
commit4f5b72cf50855f4c75c8cc8a5ed34f53a11bfa7d (patch)
tree7febf7b1cffe8b7831d0bbdafaeb3b52e53bc6b4 /sftsr.c
parent80f0debf2032e16629cb13682b8fb9ceccde423c (diff)
downloadvbados-4f5b72cf50855f4c75c8cc8a5ed34f53a11bfa7d.tar.gz
vbados-4f5b72cf50855f4c75c8cc8a5ed34f53a11bfa7d.zip
Do not uppercase volume names
Diffstat (limited to 'sftsr.c')
-rw-r--r--sftsr.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sftsr.c b/sftsr.c
index 9282c58..f87aac0 100644
--- a/sftsr.c
+++ b/sftsr.c
@@ -235,12 +235,14 @@ static int my_strrchr(const char __far *str, char c)
return last;
}
-static inline bool translate_filename_from_host(SHFLSTRING *str, bool case_insensitive)
+static inline bool translate_filename_from_host(SHFLSTRING *str, bool case_insensitive, bool uppercase)
{
bool valid = utf8_to_local(&data, str->ach, str->ach, &str->u16Length);
- valid = (nls_uppercase(str) || case_insensitive) && valid;
-
+ if (uppercase)
+ {
+ valid = (nls_uppercase(str) || case_insensitive) && valid;
+ }
return valid;
}
@@ -996,7 +998,7 @@ static vboxerr find_volume_label(SHFLROOT root)
err = vbox_shfl_query_map_name(&data.vb, data.hgcm_client_id, root, &shflstr.shflstr);
if (err) return err;
- (void) translate_filename_from_host(&shflstr.shflstr, false);
+ (void) translate_filename_from_host(&shflstr.shflstr, false, false);
dprintf("label: %s\n", shflstr.buf);
@@ -1101,7 +1103,7 @@ static vboxerr find_next_from_vbox(unsigned openfile, char __far *path)
dprintf(" Host short filename: '%s'\n", shfldirinfo.dirinfo.name.ach);
}
else {
- valid = translate_filename_from_host(&shfldirinfo.dirinfo.name, data.drives[drive].case_insensitive);
+ valid = translate_filename_from_host(&shfldirinfo.dirinfo.name, data.drives[drive].case_insensitive, true);
}
if (valid) {