<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_set_archive_comment.mdoc -- set zip archive comment
   Copyright (C) 2006-2017 Dieter Baron and Thomas Klausner
  
   This file is part of libzip, a library to manipulate ZIP archives.
   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"/>
  <style>
    table.head, table.foot { width: 100%; }
    td.head-rtitle, td.foot-os { text-align: right; }
    td.head-vol { text-align: center; }
    div.Pp { margin: 1ex 0ex; }
  </style>
  <link rel="stylesheet" href="../nih-man.css" type="text/css" media="all"/>
  <title>ZIP_SET_ARCHIVE_COMMENT(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_SET_ARCHIVE_COMMENT(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_SET_ARCHIVE_COMMENT(3)</td>
  </tr>
</table>
<div class="manual-text">
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
<b class="Nm" title="Nm">zip_set_archive_comment</b> &#x2014;
  <span class="Nd" title="Nd">set zip archive comment</span>
<h1 class="Sh" title="Sh" id="LIBRARY"><a class="selflink" href="#LIBRARY">LIBRARY</a></h1>
libzip (-lzip)
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="selflink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<b class="In" title="In">#include &lt;<a class="In" title="In">zip.h</a>&gt;</b>
<div class="Pp"></div>
<var class="Ft" title="Ft">int</var>
<br/>
<b class="Fn" title="Fn">zip_set_archive_comment</b>(<var class="Fa" title="Fa" style="white-space: nowrap;">zip_t
  *archive</var>, <var class="Fa" title="Fa" style="white-space: nowrap;">const
  char *comment</var>,
  <var class="Fa" title="Fa" style="white-space: nowrap;">zip_uint16_t
  len</var>);
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The <b class="Fn" title="Fn">zip_set_archive_comment</b>() function sets the
  comment for the entire zip archive. If
  <var class="Ar" title="Ar">comment</var> is
  <code class="Dv" title="Dv">NULL</code> and
  <var class="Ar" title="Ar">len</var> is 0, the archive comment will be
  removed. <var class="Ar" title="Ar">comment</var> must be encoded in ASCII or
  UTF-8.
<h1 class="Sh" title="Sh" id="RETURN_VALUES"><a class="selflink" 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="selflink" href="#ERRORS">ERRORS</a></h1>
<b class="Fn" title="Fn">zip_set_archive_comment</b>() fails if:
<dl class="Bl-tag" style="margin-left: 23.40ex;">
  <dt class="It-tag" style="margin-left: -23.40ex;">&#x00A0;</dt>
  <dd class="It-tag">&#x00A0;</dd>
  <dt class="It-tag" style="margin-left: -23.40ex;">[<a class="selflink" href="#ZIP_ER_INVAL"><code class="Er" title="Er" id="ZIP_ER_INVAL">ZIP_ER_INVAL</code></a>]</dt>
  <dd class="It-tag"><var class="Ar" title="Ar">len</var> is less than 0 or
      longer than the maximum comment length in a zip file (65535), or
      <var class="Ar" title="Ar">comment</var> is not a valid UTF-8 encoded
      string.</dd>
  <dt class="It-tag" style="margin-left: -23.40ex;">&#x00A0;</dt>
  <dd class="It-tag">&#x00A0;</dd>
  <dt class="It-tag" style="margin-left: -23.40ex;">[<a class="selflink" href="#ZIP_ER_MEMORY"><code class="Er" title="Er" id="ZIP_ER_MEMORY">ZIP_ER_MEMORY</code></a>]</dt>
  <dd class="It-tag">Required memory could not be allocated.</dd>
</dl>
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" 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_get_archive_comment.html">zip_get_archive_comment(3)</a>,
  <a class="Xr" title="Xr" href="zip_get_file_comment.html">zip_get_file_comment(3)</a>,
  <a class="Xr" title="Xr" href="zip_set_file_comment.html">zip_set_file_comment(3)</a>
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
<b class="Fn" title="Fn">zip_set_archive_comment</b>() was added in libzip 0.7.
  In libzip 0.11 the type of <var class="Ar" title="Ar">len</var> was changed
  from <var class="Vt" title="Vt">int</var> to
  <var class="Vt" title="Vt">zip_uint16_t</var>.
<h1 class="Sh" title="Sh" id="AUTHORS"><a class="selflink" 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.14</td>
  </tr>
</table>
</body>
</html>
