<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_set_file_compression.mdoc -- set compression method and its flags
   Copyright (C) 2012-2017 Dieter Baron and Thomas Klausner
  
   This file is part of libzip, a library to manipulate ZIP files.
   The authors can be contacted at <libzip@nih.at>
  
   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
   2. Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in
      the documentation and/or other materials provided with the
      distribution.
   3. The names of the authors may not be used to endorse or promote
      products derived from this software without specific prior
      written permission.
  
   THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
   OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
   DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
   IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
   IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   -->
<head>
  <meta charset="utf-8"/>
  <link rel="stylesheet" href="../nih-man.css" type="text/css" media="all"/>
  <title>ZIP_SET_FILE_COMPRESSION(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_SET_FILE_COMPRESSION(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_SET_FILE_COMPRESSION(3)</td>
  </tr>
</table>
<div class="manual-text">
<h1 class="Sh" title="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<code class="Nm" title="Nm">zip_set_file_compression</code> &#x2014;
<div class="Nd" title="Nd">set compression method for file in zip</div>
<h1 class="Sh" title="Sh" id="LIBRARY"><a class="permalink" href="#LIBRARY">LIBRARY</a></h1>
libzip (-lzip)
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<code class="In" title="In">#include
  &lt;<a class="In" title="In">zip.h</a>&gt;</code>
<div class="Pp"></div>
<var class="Ft" title="Ft">int</var>
<br/>
<code class="Fn" title="Fn">zip_set_file_compression</code>(<var class="Fa" title="Fa" style="white-space: nowrap;">zip_t
  *archive</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_uint64_t
  index</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_int32_t
  comp</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_uint32_t
  comp_flags</var>);
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The <code class="Fn" title="Fn">zip_set_file_compression</code>() function sets
  the compression method for the file at position
  <var class="Ar" title="Ar">index</var> in the zip archive to
  <var class="Ar" title="Ar">comp</var> with the compression method specific
  <var class="Ar" title="Ar">comp_flags</var>. The
  <var class="Ar" title="Ar">comp</var> is the same as returned by
  <a class="Xr" title="Xr" href="zip_stat.html">zip_stat(3)</a>. For the
  <var class="Ar" title="Ar">comp</var> argument, currently only the following
  values are supported:
<dl class="Bl-tag">
  <dt>&#x00A0;</dt>
  <dd>&#x00A0;</dd>
  <dt><a class="permalink" href="#ZIP_CM_DEFAULT"><code class="Dv" title="Dv" id="ZIP_CM_DEFAULT">ZIP_CM_DEFAULT</code></a></dt>
  <dd>default compression; currently the same as
      <code class="Dv" title="Dv">ZIP_CM_DEFLATE</code>.</dd>
  <dt>&#x00A0;</dt>
  <dd>&#x00A0;</dd>
  <dt><a class="permalink" href="#ZIP_CM_STORE"><code class="Dv" title="Dv" id="ZIP_CM_STORE">ZIP_CM_STORE</code></a></dt>
  <dd>Store the file uncompressed.</dd>
  <dt>&#x00A0;</dt>
  <dd>&#x00A0;</dd>
  <dt><a class="permalink" href="#ZIP_CM_BZIP2"><code class="Dv" title="Dv" id="ZIP_CM_BZIP2">ZIP_CM_BZIP2</code></a></dt>
  <dd>Compress the file using the
      <a class="Xr" title="Xr" href="bzip2.html">bzip2(1)</a> algorithm.</dd>
  <dt>&#x00A0;</dt>
  <dd>&#x00A0;</dd>
  <dt><a class="permalink" href="#ZIP_CM_DEFLATE"><code class="Dv" title="Dv" id="ZIP_CM_DEFLATE">ZIP_CM_DEFLATE</code></a></dt>
  <dd>Deflate the file with the
      <a class="Xr" title="Xr" href="zlib.html">zlib(3)</a> algorithm and
      default options</dd>
</dl>
<div class="Pp"></div>
<i class="Em" title="Em">NOTE</i>: Only the deflate and store methods can be
  assumed to be universally supported.
<div class="Pp"></div>
The <var class="Ar" title="Ar">comp_flags</var> argument defines the compression
  level, 1 being fastest compression and 9 highest. Allowed values are 0 (which
  uses the default compression for the algorithm) and 1-9, other values are
  undefined. Further compression method specific flags might be added over time.
<div class="Pp"></div>
The current compression method for a file in a zip archive can be determined
  using <a class="Xr" title="Xr" href="zip_stat.html">zip_stat(3)</a>.
<h1 class="Sh" title="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
  VALUES</a></h1>
Upon successful completion 0 is returned. Otherwise, -1 is returned and the
  error information in <var class="Ar" title="Ar">archive</var> is set to
  indicate the error.
<h1 class="Sh" title="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
<code class="Fn" title="Fn">zip_set_file_compression</code>() fails if:
<dl class="Bl-tag">
  <dt>&#x00A0;</dt>
  <dd>&#x00A0;</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_COMPNOTSUPP"><code class="Er" title="Er" id="ZIP_ER_COMPNOTSUPP">ZIP_ER_COMPNOTSUPP</code></a>]</dt>
  <dd>Unsupported compression method requested.</dd>
  <dt>&#x00A0;</dt>
  <dd>&#x00A0;</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_INVAL"><code class="Er" title="Er" id="ZIP_ER_INVAL">ZIP_ER_INVAL</code></a>]</dt>
  <dd><var class="Ar" title="Ar">index</var> is not a valid file index in
      <var class="Ar" title="Ar">archive</var>, or the argument combination is
      invalid.</dd>
  <dt>&#x00A0;</dt>
  <dd>&#x00A0;</dd>
  <dt>[<a class="permalink" href="#ZIP_ER_RDONLY"><code class="Er" title="Er" id="ZIP_ER_RDONLY">ZIP_ER_RDONLY</code></a>]</dt>
  <dd>Read-only zip file, no changes allowed.</dd>
</dl>
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<a class="Xr" title="Xr" href="libzip.html">libzip(3)</a>,
  <a class="Xr" title="Xr" href="zip_stat.html">zip_stat(3)</a>
<h1 class="Sh" title="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<code class="Fn" title="Fn">zip_set_file_compression</code>() was added in
  libzip 0.11.
<h1 class="Sh" title="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<span class="An" title="An">Dieter Baron</span>
  &lt;<a class="Mt" title="Mt" href="mailto:dillo@nih.at">dillo@nih.at</a>&gt;
  and <span class="An" title="An">Thomas Klausner</span>
  &lt;<a class="Mt" title="Mt" href="mailto:tk@giga.or.at">tk@giga.or.at</a>&gt;</div>
<table class="foot">
  <tr>
    <td class="foot-date">December 18, 2017</td>
    <td class="foot-os">NetBSD 8.99.27</td>
  </tr>
</table>
</body>
</html>
