(root)/
xz-5.4.5/
src/
liblzma/
common/
stream_flags_common.c
       1  ///////////////////////////////////////////////////////////////////////////////
       2  //
       3  /// \file       stream_flags_common.c
       4  /// \brief      Common stuff for Stream flags coders
       5  //
       6  //  Author:     Lasse Collin
       7  //
       8  //  This file has been put into the public domain.
       9  //  You can do whatever you want with this file.
      10  //
      11  ///////////////////////////////////////////////////////////////////////////////
      12  
      13  #include "stream_flags_common.h"
      14  
      15  
      16  const uint8_t lzma_header_magic[6] = { 0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00 };
      17  const uint8_t lzma_footer_magic[2] = { 0x59, 0x5A };
      18  
      19  
      20  extern LZMA_API(lzma_ret)
      21  lzma_stream_flags_compare(
      22  		const lzma_stream_flags *a, const lzma_stream_flags *b)
      23  {
      24  	// We can compare only version 0 structures.
      25  	if (a->version != 0 || b->version != 0)
      26  		return LZMA_OPTIONS_ERROR;
      27  
      28  	// Check type
      29  	if ((unsigned int)(a->check) > LZMA_CHECK_ID_MAX
      30  			|| (unsigned int)(b->check) > LZMA_CHECK_ID_MAX)
      31  		return LZMA_PROG_ERROR;
      32  
      33  	if (a->check != b->check)
      34  		return LZMA_DATA_ERROR;
      35  
      36  	// Backward Sizes are compared only if they are known in both.
      37  	if (a->backward_size != LZMA_VLI_UNKNOWN
      38  			&& b->backward_size != LZMA_VLI_UNKNOWN) {
      39  		if (!is_backward_size_valid(a) || !is_backward_size_valid(b))
      40  			return LZMA_PROG_ERROR;
      41  
      42  		if (a->backward_size != b->backward_size)
      43  			return LZMA_DATA_ERROR;
      44  	}
      45  
      46  	return LZMA_OK;
      47  }