From a988293d4c9e68c99aee09aee55438d3d35a97a4 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Wed, 20 May 2026 08:56:59 +0200 Subject: [PATCH] more debug --- src/connect.c | 14 ++++++++++++++ src/namedos.c | 36 +++++++++++++++++++++++++++++++++--- src/namspace.c | 18 ++++++++++++++++++ 3 files changed, 65 insertions(+), 3 deletions(-) diff --git a/src/connect.c b/src/connect.c index eeede78..1dc0eb9 100644 --- a/src/connect.c +++ b/src/connect.c @@ -609,6 +609,13 @@ static int func_search_entry(NW_PATH *nwpath, int attrib, soptions, dosname, sizeof(dosname)); + XDPRINTF((2,0, + "CONNECT func_search_entry dir='%s' entry='%s' unix='%s' alias='%s' ok=%d", + xkpath, + entry, + name, + dosname, + okflag)); } if (okflag) { @@ -705,6 +712,13 @@ static int get_dir_entry(NW_PATH *nwpath, soptions, dosname, sizeof(dosname)) ? 0 : -0xff; + XDPRINTF((2,0, + "CONNECT get_dir_entry dir='%s' entry='%s' unix='%s' alias='%s' ok=%d", + xkpath, + entry, + name, + dosname, + okflag == 0 ? 1 : 0)); } if (!okflag) { diff --git a/src/namedos.c b/src/namedos.c index 8895aee..12b738c 100644 --- a/src/namedos.c +++ b/src/namedos.c @@ -212,6 +212,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); } @@ -225,14 +231,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); @@ -281,7 +301,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, diff --git a/src/namspace.c b/src/namspace.c index b2c24e0..fb85c62 100644 --- a/src/namspace.c +++ b/src/namspace.c @@ -1518,7 +1518,19 @@ static int search_match(struct dirent *dirbuff, XDPRINTF((8,0,"search_match, Name='%s' dname='%s'", name, dname)); if (!inode_search) { if (namespace == NAME_DOS) { + XDPRINTF((2,0, + "NS search_match DOS entry='%s' raw='%s' dname='%s' namespace=%d", + entry, + name, + dname, + namespace)); flag = (*name != '.' && fn_dos_match_old(dname, entry, vol_options)); + XDPRINTF((2,0, + "NS search_match DOS result=%d entry='%s' raw='%s' dname='%s'", + flag, + entry, + name, + dname)); } else if (namespace == NAME_OS2) { flag = (*name != '.' || (*(name+1) != '.' && *(name+1) != '\0' )) && fn_os2_match(dname, entry, vol_options); @@ -1693,6 +1705,12 @@ int nw_search_file_dir(int namespace, int datastream, XDPRINTF((5,0,"nw_s_f_d namsp=%d, sequence=%d, search='%s'", namespace, sequence, entry )); + XDPRINTF((2,0, + "NS nw_search_file_dir namespace=%d sequence=%d search='%s' vol_options=0x%x", + namespace, + sequence, + entry, + vol_options)); if ( (!sequence) || (sequence != dsh->lastsequence)) { XDPRINTF((5, 0, "dirpos set to 0 dsh->lastsequence = %d, dirpos=%d",