<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_file_extra_field_delete.mdoc -- delete extra field for file in zip
   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_FILE_EXTRA_FIELD_DELETE(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_FILE_EXTRA_FIELD_DELETE(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_FILE_EXTRA_FIELD_DELETE(3)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<code class="Nm">zip_file_extra_field_delete</code>,
  <code class="Nm">zip_file_extra_field_delete_by_id</code> &#x2014;
<div class="Nd">delete extra field for file in zip</div>
</section>
<section class="Sh">
<h1 class="Sh" id="LIBRARY"><a class="permalink" href="#LIBRARY">LIBRARY</a></h1>
libzip (-lzip)
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<code class="In">#include &lt;<a class="In">zip.h</a>&gt;</code>
<p class="Pp"><var class="Ft">int</var>
  <br/>
  <code class="Fn">zip_file_extra_field_delete</code>(<var class="Fa" style="white-space: nowrap;">zip_t
    *archive</var>, <var class="Fa" style="white-space: nowrap;">zip_uint64_t
    index</var>, <var class="Fa" style="white-space: nowrap;">zip_uint16_t
    extra_field_index</var>,
    <var class="Fa" style="white-space: nowrap;">zip_flags_t flags</var>);</p>
<p class="Pp"><var class="Ft">int</var>
  <br/>
  <code class="Fn">zip_file_extra_field_delete_by_id</code>(<var class="Fa" style="white-space: nowrap;">zip_t
    *archive</var>, <var class="Fa" style="white-space: nowrap;">zip_uint64_t
    index</var>, <var class="Fa" style="white-space: nowrap;">zip_uint16_t
    extra_field_id</var>,
    <var class="Fa" style="white-space: nowrap;">zip_uint16_t
    extra_field_index</var>,
    <var class="Fa" style="white-space: nowrap;">zip_flags_t flags</var>);</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The <code class="Fn">zip_file_extra_field_delete</code>() function deletes the
  extra field with index <var class="Ar">extra_field_index</var> for the file at
  position <var class="Ar">index</var> in the zip archive.
<p class="Pp">If <var class="Ar">extra_field_index</var> is
    <code class="Dv">ZIP_EXTRA_FIELD_ALL</code>, then all extra fields will be
    deleted.</p>
<p class="Pp">The following <var class="Ar">flags</var> are supported:</p>
<div class="Bd-indent">
<dl class="Bl-tag">
  <dt><a class="permalink" href="#ZIP_FL_CENTRAL"><code class="Dv" id="ZIP_FL_CENTRAL">ZIP_FL_CENTRAL</code></a></dt>
  <dd>Delete extra fields from the archive's central directory.</dd>
  <dt><a class="permalink" href="#ZIP_FL_LOCAL"><code class="Dv" id="ZIP_FL_LOCAL">ZIP_FL_LOCAL</code></a></dt>
  <dd>Delete extra fields from the local file headers.</dd>
</dl>
</div>
<p class="Pp">The <code class="Fn">zip_file_extra_field_delete_by_id</code>()
    function deletes the extra field with ID (two-byte signature)
    <var class="Ar">extra_field_id</var> and index
    <var class="Ar">extra_field_index</var> (in other words, the
    <var class="Ar">extra_field_index</var><span class="No">'th</span> extra
    field with ID <var class="Ar">extra_field_id</var>) The other arguments are
    the same as for <code class="Fn">zip_file_extra_field_delete</code>()
    (<code class="Dv">ZIP_EXTRA_FIELD_ALL</code> will delete all extra fields of
    the specified ID).</p>
<p class="Pp">Please note that due to the library design, the index of an extra
    field may be different between central directory and local file headers. For
    this reason, it is not allowed to specify both
    <code class="Dv">ZIP_FL_CENTRAL</code> and
    <code class="Dv">ZIP_FL_LOCAL</code> in <var class="Ar">flags</var>, except
    when deleting all extra fields (i.e.,
    <var class="Ar">extra_field_index</var> being
    <code class="Dv">ZIP_EXTRA_FIELD_ALL</code>).</p>
</section>
<section class="Sh">
<h1 class="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 code in <var class="Ar">archive</var> is set to indicate the error.
</section>
<section class="Sh">
<h1 class="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
<code class="Fn">zip_file_extra_field_delete</code>() and
  <code class="Fn">zip_file_extra_field_delete_by_id</code>() fail if:
<dl class="Bl-tag">
  <dt>[<a class="permalink" href="#ZIP_ER_NOENT"><code class="Er" id="ZIP_ER_NOENT">ZIP_ER_NOENT</code></a>]</dt>
  <dd><var class="Ar">index</var> is not a valid file index in
      <var class="Ar">archive</var>.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<a class="Xr" href="libzip.html">libzip(3)</a>,
  <a class="Xr" href="zip_file_extra_field_get.html">zip_file_extra_field_get(3)</a>,
  <a class="Xr" href="zip_file_extra_field_set.html">zip_file_extra_field_set(3)</a>,
  <a class="Xr" href="zip_file_extra_fields_count.html">zip_file_extra_fields_count(3)</a>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<code class="Fn">zip_file_extra_field_delete</code>() and
  <code class="Fn">zip_file_extra_field_delete_by_id</code>() were added in
  libzip 0.11.
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<span class="An">Dieter Baron</span>
  &lt;<a class="Mt" href="mailto:dillo@nih.at">dillo@nih.at</a>&gt; and
  <span class="An">Thomas Klausner</span>
  &lt;<a class="Mt" href="mailto:tk@giga.or.at">tk@giga.or.at</a>&gt;
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">December 18, 2017</td>
    <td class="foot-os">NiH</td>
  </tr>
</table>
</body>
</html>
