| /////////////////////////////////////////////////////////////////////////////// |
| // |
| /// \file stream_flags_common.c |
| /// \brief Common stuff for Stream flags coders |
| // |
| // Author: Lasse Collin |
| // |
| // This file has been put into the public domain. |
| // You can do whatever you want with this file. |
| // |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| #include "stream_flags_common.h" |
| |
| |
| const uint8_t lzma_header_magic[6] = { 0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00 }; |
| const uint8_t lzma_footer_magic[2] = { 0x59, 0x5A }; |
| |
| |
| extern LZMA_API(lzma_ret) |
| lzma_stream_flags_compare( |
| const lzma_stream_flags *a, const lzma_stream_flags *b) |
| { |
| // We can compare only version 0 structures. |
| if (a->version != 0 || b->version != 0) |
| return LZMA_OPTIONS_ERROR; |
| |
| // Check type |
| if ((unsigned int)(a->check) > LZMA_CHECK_ID_MAX |
| || (unsigned int)(b->check) > LZMA_CHECK_ID_MAX) |
| return LZMA_PROG_ERROR; |
| |
| if (a->check != b->check) |
| return LZMA_DATA_ERROR; |
| |
| // Backward Sizes are compared only if they are known in both. |
| if (a->backward_size != LZMA_VLI_UNKNOWN |
| && b->backward_size != LZMA_VLI_UNKNOWN) { |
| if (!is_backward_size_valid(a) || !is_backward_size_valid(b)) |
| return LZMA_PROG_ERROR; |
| |
| if (a->backward_size != b->backward_size) |
| return LZMA_DATA_ERROR; |
| } |
| |
| return LZMA_OK; |
| } |