100 Commits

Author SHA1 Message Date
Timofey Solomko ea9aaccfb9 Update copyright year to 2026 2026-01-31 15:30:24 +08:00
Timofey Solomko ed66991cbd Update copyright year to 2024 2024-01-11 16:57:04 +03:00
Timofey Solomko 6a6e75d752 [docs] Fix an error in documentation for TarEntryInfo.deviceMinorNumber 2023-09-20 11:45:27 +03:00
Timofey Solomko 43132fc39d Update copyright year to 2023 2023-02-07 15:31:45 +02:00
Timofey Solomko 5b590803b8 [TAR] Remove outdated code comment 2022-10-21 19:33:50 +03:00
Timofey Solomko 79295db930 Update copyright year to 2022 2022-01-08 15:02:59 +03:00
Timofey Solomko 4e8be1d4fc [TAR] Remove TarEntryInfo.format in favor of working with header format directly 2021-08-03 18:39:03 +03:00
Timofey Solomko 36f34c4e8f [TAR] Remove TarEntryInfo.blockStartIndex
To accomplish this, we added a second associated value to ParsingResult.entryInfo and rewrote TarContainer.open in similar way to TarContainer.info.
2021-07-26 21:22:03 +03:00
Timofey Solomko 265191ea05 [TAR] Remove TarEntryInfo.specialEntryType 2021-07-26 21:16:48 +03:00
Timofey Solomko a743229456 [docs] Mention format forcing in the docs for TarEntryInfo properties 2021-07-25 15:55:31 +03:00
Timofey Solomko c87e8bece7 [TAR] Remove unused generateContainerData function from TarEntry[Info] 2021-07-24 14:16:15 +03:00
Timofey Solomko 11a2054498 [TAR] Move Data extensions from TarEntryInfo into separate file
In addition Data.append(tarString:maxLength:) has been modified to not be throwing.
2021-07-24 13:56:52 +03:00
Timofey Solomko 1730eabc1c [TAR] TarEntryInfo (internal) init is no longer throwing 2021-07-23 15:18:39 +03:00
Timofey Solomko 1ec17a3137 [TAR] Rename several properties of TarHeader for consistency 2021-07-22 23:52:54 +03:00
Timofey Solomko a65f66c473 [TAR] Update TarEntryInfo.init and TarEntryInfoProvider to use TarHeader
Temporarily we had to leave the code that is being moved to TarHeader (such as TarEntryInfo.specialEntryType and blockStartIndex properties), because the format and create functionalities of TAR currently rely on it being present in TarEntryInfo to work. However, we were able to remove TarEntryInfo.SpecialEntryType enum, and use the TarHeader's version of it.
2021-07-22 23:49:47 +03:00
Timofey Solomko 7646ec34a1 [TAR] Remove pre-Swift 5.0 crash workaround 2021-07-21 19:34:48 +03:00
Timofey Solomko e83f23effa Update copyright year to 2021 2021-01-11 11:20:57 +02:00
Timofey Solomko deab72a831 Merge branch 'hotfix-4.5.7' into develop 2020-10-16 15:57:08 +03:00
Timofey Solomko a07fc290a0 Small fixes to code comments 2020-10-15 23:35:34 +03:00
Timofey Solomko a844b34436 Update copyright year to 2020 2020-03-20 09:43:42 +03:00
Timofey Solomko f6949a8f66 Replace the usage of the deprecated Data(bytes:) initializer 2020-03-20 09:40:48 +03:00
Timofey Solomko 31ec1f1553 Update copyright year to 2020 2020-01-01 19:06:33 +03:00
Timofey Solomko 75b21ae107 Replace usage of ByteReader with LittleEndianByteReader 2019-05-01 19:34:30 +03:00
Timofey Solomko db82490ed8 Replace the usage of the deprecated Data(bytes:) initializer 2019-05-01 19:30:48 +03:00
Timofey Solomko ce47019097 Update copyright year to 2019 2019-01-02 23:15:43 +03:00
Timofey Solomko 9559979233 [docs] Small improvements to TAR's docs 2018-12-22 20:10:09 +03:00
Timofey Solomko 79b5a951e2 Better detect pre-4.2 Swift in Data.prefix(upTo:) crash workaround in TarEntryInfo.generateContainerData() 2018-12-16 12:42:18 +03:00
Timofey Solomko 0f65983f49 [docs] Small typo fix in docs for TarEntryInfo.ownerUserName 2018-08-15 16:52:51 +03:00
Timofey Solomko 6d63e02d21 [docs] Add docs to all new TAR-create-related APIs 2018-08-07 21:05:36 +03:00
Timofey Solomko 6836384a34 [docs] Update TarEntryInfo properties docs to explain how their values influence creation of PAX headers 2018-08-07 21:05:24 +03:00
Timofey Solomko 0ae4c685c1 [TAR] Use "TarEntryInfo.generateContainerData prefx-runtime-crash-Swift-bug" workaround only on Linux with Swift version less than 4.2 2018-08-06 18:33:28 +03:00
Timofey Solomko cc6d82c753 [TAR] Add a workaround for swift runtime crash on linux when creating name prefix
For some reason Data.prefix(upTo:).range(of:options:) crashes on linux and doesn't crash on macOS, so I've added a, hopefully, temporary workaround for this problem.
2018-08-05 23:34:23 +03:00
Timofey Solomko 02f7db0e39 [TAR] TarEntryInfo.size is now never nil (again)
This fixes potential force-unwrapping crashes in TarEntryInfoProvider and makes TarError.wrongField being in use again.
2018-08-05 13:05:35 +03:00
Timofey Solomko bf96273ea8 [TAR] Apply base-256 encoding to negative values as well 2018-07-31 18:56:18 +03:00
Timofey Solomko 9c7937504e [TAR] Add ustar implementation part of TarEntryInfo.generateContainerData 2018-07-29 18:04:25 +03:00
Timofey Solomko 16e7fc7d44 [TAR] Add pre-POSIX implementation part of TarEntryInfo.generateContainerData() 2018-07-29 18:04:24 +03:00
Timofey Solomko 0281f11a86 [TAR] Add Data extension function which appends string field 2018-07-29 18:04:24 +03:00
Timofey Solomko 40ea63c456 [TAR] Add Data extension which appends numeric field value either in octal or base-256 format 2018-07-29 18:04:24 +03:00
Timofey Solomko 46bf2a6d94 [TAR] Add fileprivate extension to Data which works like String.padding and Data.prefix combined 2018-07-29 18:04:19 +03:00
Timofey Solomko dcabef6e95 [TAR] Add basic public initializer to TarEntryInfo
It takes two the most necessary properties of EntryInfo as arguments: name and type.
2018-07-29 18:04:19 +03:00
Timofey Solomko 14a4df3182 [TAR] Make almost all properties of TarEntryInfo var (instead of let)
This also makes several nil-initializations redundant.
2018-07-29 18:04:11 +03:00
Timofey Solomko d17e772abf [TAR] Support Sun's version of pax extended headers
Their version's only noticeable difference is in the typeflag (aka fileTypeIndicator) used ("X" instead of "x").
2018-07-24 22:52:34 +03:00
Timofey Solomko 1a583b5bc8 [TAR] Remove radix argument from ByteReader.tarInt function
Reason: it is always equals to 8.
2018-07-24 22:42:52 +03:00
Timofey Solomko e795924b5d [TAR] Correctly read device major/minor number as octal number 2018-07-24 22:42:05 +03:00
Timofey Solomko a959703e2c [TAR] Remove hasRecognizedMagic property from TarEntryInfo 2018-07-23 09:34:17 +03:00
Timofey Solomko 2d60b339fc [TAR] Add correctly set format property to TarEntryInfo 2018-07-23 09:27:39 +03:00
Timofey Solomko ef162c4b4f [TAR] Correctly handle gnu format when used for incremental backups
Previously, in such cases the resulting entries were having incorrect file names instead of having ctime/atime.
2018-07-23 09:25:06 +03:00
Timofey Solomko aee78e3030 [TAR] Correctly read uid and gid as octal numbers 2018-07-16 20:14:17 +03:00
Timofey Solomko 2a2842ebc3 [TAR] Replace nullEndedAsciiString function with a better version of it called tarCString
It uses String(cString:) initiliazer, since TAR's null-ending ASCII strings are, basically, CStrings. As a bonus this initializer is not failable, so there remains no situation where throwing wrongField error is necessary. This makes tarCString function non-throwing and also wrongField error case unused (thus, it is possible to remove it in the next major update).
2018-07-14 20:38:42 +03:00
Timofey Solomko ffe6265b3e [TAR] Slightly optimize checksum calculations 2018-07-13 23:23:45 +03:00