(root)/
xz-5.4.5/
src/
liblzma/
simple/
simple_encoder.c
       1  ///////////////////////////////////////////////////////////////////////////////
       2  //
       3  /// \file       simple_encoder.c
       4  /// \brief      Properties encoder for simple filters
       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 "simple_encoder.h"
      14  
      15  
      16  extern lzma_ret
      17  lzma_simple_props_size(uint32_t *size, const void *options)
      18  {
      19  	const lzma_options_bcj *const opt = options;
      20  	*size = (opt == NULL || opt->start_offset == 0) ? 0 : 4;
      21  	return LZMA_OK;
      22  }
      23  
      24  
      25  extern lzma_ret
      26  lzma_simple_props_encode(const void *options, uint8_t *out)
      27  {
      28  	const lzma_options_bcj *const opt = options;
      29  
      30  	// The default start offset is zero, so we don't need to store any
      31  	// options unless the start offset is non-zero.
      32  	if (opt == NULL || opt->start_offset == 0)
      33  		return LZMA_OK;
      34  
      35  	write32le(out, opt->start_offset);
      36  
      37  	return LZMA_OK;
      38  }