From 5d192fad2c37816d3eb17abe18a713852d400348 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Wed, 20 May 2026 09:48:44 +0200 Subject: [PATCH] namedos fix for ~2 --- src/namedos.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/src/namedos.c b/src/namedos.c index 02fd010..485e7e8 100644 --- a/src/namedos.c +++ b/src/namedos.c @@ -246,6 +246,12 @@ int dos83_build_name_in_dir(const char *dir_unix, strncpy((char *)out, (const char *)src, out_size - 1); out[out_size - 1] = '\0'; up_fn(out); + XDPRINTF((2,0, + "DOS83 BUILD dir='%s' src='%s' out='%s' valid=%d", + dir_unix ? dir_unix : "(null)", + src ? (char *)src : "(null)", + out ? (char *)out : "(null)", + dos83_is_valid_name(src, options))); return (int)strlen((char *)out); } @@ -259,14 +265,28 @@ int dos83_build_name_in_dir(const char *dir_unix, else snprintf((char *)out, out_size, "%s", nbase); - if (!dir_unix || !dos83_alias_used_in_dir(dir_unix, src, out, options)) + if (!dir_unix || !dos83_alias_used_in_dir(dir_unix, src, out, options)) { + XDPRINTF((2,0, + "DOS83 BUILD dir='%s' src='%s' out='%s' valid=%d", + dir_unix ? dir_unix : "(null)", + src ? (char *)src : "(null)", + out ? (char *)out : "(null)", + dos83_is_valid_name(src, options))); return (int)strlen((char *)out); + } } for (seq = 1; seq < 1000000; seq++) { dos83_build_alias_candidate(src, seq, out, out_size); - if (!dir_unix || !dos83_alias_used_in_dir(dir_unix, src, out, options)) + if (!dir_unix || !dos83_alias_used_in_dir(dir_unix, src, out, options)) { + XDPRINTF((2,0, + "DOS83 BUILD dir='%s' src='%s' out='%s' valid=%d", + dir_unix ? dir_unix : "(null)", + src ? (char *)src : "(null)", + out ? (char *)out : "(null)", + dos83_is_valid_name(src, options))); return (int)strlen((char *)out); + } } strncpy((char *)out, "FILE~1", out_size - 1); @@ -315,7 +335,17 @@ int dos83_match_name_in_dir(const char *dir_unix, out_dos_name[out_dos_name_size - 1] = '\0'; } - return dos83_x_str_match(dos_name, dos_pattern, options); + { + int match_result = dos83_x_str_match(dos_name, dos_pattern, options); + XDPRINTF((2,0, + "DOS83 MATCH dir='%s' unix='%s' pattern='%s' alias='%s' result=%d", + dir_unix ? dir_unix : "(null)", + unix_name ? (char *)unix_name : "(null)", + dos_pattern ? (char *)dos_pattern : "(null)", + dos_name, + match_result)); + return match_result; + } } int dos83_resolve_component(const char *dir_unix,