• src/sbbs3/filedat.c filedat.h js_archive.c pack_qwk.cpp pack_rep.cpp s

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Jan 3 18:10:52 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/16cfe2d3bad524f7d33fe545
    Modified Files:
    src/sbbs3/filedat.c filedat.h js_archive.c pack_qwk.cpp pack_rep.cpp sbbsecho.c un_qwk.cpp un_rep.cpp
    Log Message:
    Add overwrite argument to extract_file_from_archive and Archive.extract

    Previously, extracted files were always overwritten (so that is the "default" for Archive.extract() and mostly what I'm specifying in the C/C++ code by default now), but this caused a problem with DIZ extraction: archives that contained multiple DIZ files (e.g in sub-directories), the last to be extracted would be used. A maximum of 3 DIZs can be extracted, so it would usually be the 3rd DIZ in the archive if there were that many.

    Another solution would be to *only* extract DIZ files from the root of the archive and I should look into that as well, but the always-overwrite behavior also seemed to be wrong, so that *also* needed fixing (allow caller to control behavior).

    This fixes issue #317, at least for archives where the root DIZ exists *before* any nested DIZ files. I'll have to try and create a purposeful archive to test the other conditions (where the root DIZ would appear *after* the nested DIZ(s)).

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell (in GitKraken)@VERT to Git commit to main/sbbs/master on Mon Mar 13 18:31:32 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/0b474c3481db4585e908560e
    Modified Files:
    src/sbbs3/filedat.c filedat.h js_archive.c pack_qwk.cpp pack_rep.cpp sbbsecho.c un_qwk.cpp un_rep.cpp
    Log Message:
    Fix issue with DIZ extraction creating subdirs in temp

    For archives with directories, the first call to extract_files_from_archive() from extract_diz() would create sub-directories in the target (temp) directory, but no files within them.

    To correctly solve the original problem identified in commit 59200e33, introduce/use a new 'recurse' argument to extract_files_from_archive() which means to recursively apply the file_list filter (if specified). Always pass 'with_path' argument as false to prevent sub-dir creation.

    The JS Archive.extract() method now excepts an additional boolean argument (recurse) following the file list arguments, default is false.

    Remove extra whitespace in Archive JSDOC method descriptions to be consistent with other object/class docs.

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