• src/sbbs3/file.cpp filedat.c filedat.h js_filebase.cpp src/smblib/smbf

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tue Sep 29 17:07:32 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/1700efd673bca1d65a7e6919
    Modified Files:
    src/sbbs3/file.cpp filedat.c filedat.h js_filebase.cpp src/smblib/smbfile.c smblib.h
    Log Message:
    File renames: check a new name against every other file, ignoring case

    Renaming a file checked for a duplicate with smb_findfile(), which returns
    the first case-insensitive match. For a rename that changes only the case,
    that match may be the file being renamed: FileBase.update() then refused
    the rename as a duplicate of itself, while the file-info editor skipped
    the check for such renames. But a base can already hold names differing
    only in case (renamed in by the since-fixed file-info editor check, or colliding in the 64-character index name), and there a case-only rename
    in the editor could give two files an identical name. On a case-sensitive
    file system the rename could also replace the other file on disk.

    Add smb_findfile_other(), and a findfile_other() wrapper, which match a
    name ignoring case against every file but the one being renamed, and use
    them in both rename paths for any change of name, including case. A
    case-only rename now succeeds unless another file already has that name.

    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net