The previous ar.c fialed to recognise one record in .debs
Experimental tar support, this is currently *very* cheap because ar and
tar are functionally similar. It will need lots of testing so by
default tar support code is defined out.
To test uncomment the line "#define BB_AR_EXPERIMENTAL_UNTAR"
option enable a Recursive extraction (or listing) to take place.
i.e. if any files being extracted are themselves ar archives then
busybox ar will extract their contents as well.
e.g. take bar.deb and do (with GNU ar) ar -q foo.deb b.ar
then with busybox ar can do ar -x b.ar data.tar.gz
-R isnt used for anything in GNU ar so i think it should be ok, could
have used long options
This functionality will become (more) usufull with tar, gz support.
If no filenames are specifed to be (extracted/listed) it will act on
all files in the archive (i dont think the old version did this)
Code is structured to better support upcoming recursive extraction
functionality.
The old code was a bit strange in places, dont know what i was thinking.
------------------------------
the attached diff applies to the ar.c i originally submitted
Changes
Preserve dates now works.
Extracted files are set to the uid, gid and mode specified in the
archive.
Checks for valid end of header marker.
Correctly unpacks newer debian files. (has a '\n' character between
entries)
Added more comments.
Cleaned up code.
Added a last modified date to help keep track of versions.
TODO
Common functionality in ar.c are in tar.c should be merged, in
particular getOctal and extractSubFile.
Should all functions that are used by multiple file go in utilities.c ?