diff --git a/file_format.md b/file_format.md index b8ceb50..cdeff7f 100644 --- a/file_format.md +++ b/file_format.md @@ -34,5 +34,17 @@ Following the file-count bytes, the following bytes are added for each file: 1. 2 bytes is 16-bit unsigned integer "filename length" in big-endian. 2. X bytes of filename (length defined by previous value). -3. 8 bytes 64-bit unsigned integer "size of filename in this archive file". -4. X bytes file data (length defined by previous value). +3. 4 bytes bit-flags + 1. The first byte + 1. The first bit is set if the file is a symbolic link. + 2. The second byte. + 1. Currently unused. + 3. The third byte. + 1. Currently unused. + 4. The fourth byte. + 1. Currently unused. +4. If this file is a symbolic link: + 1. 2 bytes is 16-bit unsigned integer "link target path" in big-endian. + 2. X bytes of link-target-path (length defined by previous value). +5. 8 bytes 64-bit unsigned integer "size of filename in this archive file". +6. X bytes file data (length defined by previous value).