Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > 3736f276bb1ccfbcee6cb2d27b25d981 > files > 265

openscap-devel-0.5.7-1mdv2010.1.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Open SCAP Library: /home/pvrabec/openscap/openscap-0.5.7/src/OVAL/probes/SEAP/public/sexp-manip.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<h1>/home/pvrabec/openscap/openscap-0.5.7/src/OVAL/probes/SEAP/public/sexp-manip.h</h1><a href="sexp-manip_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00017"></a>00017 <span class="comment">/*</span>
<a name="l00018"></a>00018 <span class="comment"> * Copyright 2008 Red Hat Inc., Durham, North Carolina.</span>
<a name="l00019"></a>00019 <span class="comment"> * All Rights Reserved.</span>
<a name="l00020"></a>00020 <span class="comment"> *</span>
<a name="l00021"></a>00021 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00022"></a>00022 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00023"></a>00023 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00024"></a>00024 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00025"></a>00025 <span class="comment"> *</span>
<a name="l00026"></a>00026 <span class="comment"> * This library is distributed in the hope that it will be useful, </span>
<a name="l00027"></a>00027 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00028"></a>00028 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00029"></a>00029 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00030"></a>00030 <span class="comment"> *</span>
<a name="l00031"></a>00031 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00032"></a>00032 <span class="comment"> * License along with this library; if not, write to the Free Software </span>
<a name="l00033"></a>00033 <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
<a name="l00034"></a>00034 <span class="comment"> *</span>
<a name="l00035"></a>00035 <span class="comment"> * Authors:</span>
<a name="l00036"></a>00036 <span class="comment"> *      Daniel Kopecek &lt;dkopecek@redhat.com&gt;</span>
<a name="l00037"></a>00037 <span class="comment"> */</span>
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 <span class="preprocessor">#pragma once</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#ifndef SEXP_MANIP_H</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#define SEXP_MANIP_H</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;stdarg.h&gt;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;stddef.h&gt;</span>
<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;stdint.h&gt;</span>
<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;stdbool.h&gt;</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;sexp-types.h&gt;</span>
<a name="l00048"></a>00048 
<a name="l00049"></a>00049 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span>
<a name="l00053"></a>00053 <span class="comment">/*</span>
<a name="l00054"></a>00054 <span class="comment"> * number</span>
<a name="l00055"></a>00055 <span class="comment"> */</span>
<a name="l00056"></a>00056 
<a name="l00062"></a>00062 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gab853e2b374cd9dca2476b74f848926cb" title="Create a new sexp object from a value and a number type.">SEXP_number_new</a> (SEXP_numtype_t t, <span class="keyword">const</span> <span class="keywordtype">void</span> *n) <a class="code" href="struct____attribute____.html">__attribute__</a> ((nonnull (2)));
<a name="l00063"></a>00063 
<a name="l00068"></a>00068 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga911846f8fc016a6a247d0f43c66a18b2" title="Create a new sexp object from a boolean value.">SEXP_number_newb</a> (<span class="keywordtype">bool</span> n);
<a name="l00069"></a>00069 
<a name="l00074"></a>00074 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gaa3a02f29f107527c774e6b06c16256a2" title="Create a new sexp object from an integer.">SEXP_number_newi_8</a> (int8_t n);
<a name="l00075"></a>00075 
<a name="l00080"></a>00080 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gaa29445f0462c0f279963638bb3d07b1b" title="Create a new sexp object from an unsigned integer.">SEXP_number_newu_8</a> (uint8_t n);
<a name="l00081"></a>00081 
<a name="l00086"></a>00086 uint8_t <a class="code" href="group__SEXPMANIP.html#gad6cbd9f380d3fa8f93ea2a776809edf8" title="Get unsigned integer value from a sexp object.">SEXP_number_getu_8</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00087"></a>00087 
<a name="l00092"></a>00092 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gae818ddbc1b844dee4886298487f45bac" title="Create a new sexp object from an integer.">SEXP_number_newi_16</a> (int16_t n);
<a name="l00093"></a>00093 
<a name="l00098"></a>00098 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga2fbad0e20a340ee3b2b1d4ff780ac601" title="Create a new sexp object from an unsigned integer.">SEXP_number_newu_16</a> (uint16_t n);
<a name="l00099"></a>00099 
<a name="l00104"></a><a class="code" href="group__SEXPMANIP.html#ga88cdd7705eac27040c29a4b174797158">00104</a> <span class="preprocessor">#define SEXP_number_newi SEXP_number_newi_32</span>
<a name="l00105"></a>00105 <span class="preprocessor"></span>
<a name="l00110"></a>00110 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga7b956257ee8aac24f5e66ca9cfeb4a4d" title="Create a new sexp object from an integer.">SEXP_number_newi_32</a> (int32_t n);
<a name="l00111"></a>00111 
<a name="l00116"></a><a class="code" href="group__SEXPMANIP.html#ga6c9eaecc1f1f64f65f2eb82048ae424a">00116</a> <span class="preprocessor">#define SEXP_number_geti SEXP_number_geti_32</span>
<a name="l00117"></a>00117 <span class="preprocessor"></span>
<a name="l00122"></a>00122 int32_t <a class="code" href="group__SEXPMANIP.html#ga75c71219c39bfa492436f2534e915010" title="Get integer value from a sexp object.">SEXP_number_geti_32</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00123"></a>00123 
<a name="l00128"></a>00128 <span class="keywordtype">bool</span> <a class="code" href="group__SEXPMANIP.html#gacb248b380bca2b88445c0e376a5b65c2" title="Get boolean value from a sexp object.">SEXP_number_getb</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00129"></a>00129 
<a name="l00134"></a><a class="code" href="group__SEXPMANIP.html#ga0ed932bb9217034acb9850bef38111aa">00134</a> <span class="preprocessor">#define SEXP_number_newu SEXP_number_newu_32</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span>
<a name="l00140"></a>00140 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gaf9353ab46d28eeb729bbc9ae434b4b0e" title="Create a new sexp object from an unsigned integer.">SEXP_number_newu_32</a> (uint32_t n);
<a name="l00141"></a>00141 
<a name="l00146"></a><a class="code" href="group__SEXPMANIP.html#ga2c94dfa1cb0df428abf39574500479e5">00146</a> <span class="preprocessor">#define  SEXP_number_getu SEXP_number_getu_32</span>
<a name="l00147"></a>00147 <span class="preprocessor"></span>
<a name="l00152"></a>00152 uint32_t <a class="code" href="group__SEXPMANIP.html#gacab074ed687b15a638609b14b3974ab0" title="Get unsigned integer value from a sexp object.">SEXP_number_getu_32</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00153"></a>00153 
<a name="l00158"></a>00158 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gae6ccac2220a69e61a393e9f7642410fa" title="Create a new sexp object from an integer.">SEXP_number_newi_64</a> (int64_t n);
<a name="l00159"></a>00159 
<a name="l00164"></a>00164 int64_t <a class="code" href="group__SEXPMANIP.html#gafa22f9fac43ad37dfc09ca359a867a51" title="Get integer value from a sexp object.">SEXP_number_geti_64</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00165"></a>00165 
<a name="l00170"></a>00170 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gad34cabeaf9b278935bef6bc338ce9bea" title="Create a new sexp object from an unsigned integer.">SEXP_number_newu_64</a> (uint64_t n);
<a name="l00171"></a>00171 
<a name="l00176"></a>00176 uint64_t <a class="code" href="group__SEXPMANIP.html#ga18fd6599d74564c17376b80dff881ab0" title="Get unsigned integer value from a sexp object.">SEXP_number_getu_64</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00177"></a>00177 
<a name="l00182"></a>00182 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga787652a3de427f96a8ca8fb8d52f4992" title="Create a new sexp object from an floating point value.">SEXP_number_newf</a> (<span class="keywordtype">double</span> n);
<a name="l00183"></a>00183 
<a name="l00188"></a>00188 <span class="keywordtype">double</span>  <a class="code" href="group__SEXPMANIP.html#ga1d4b4c86fab5992aa439a47f8af92190" title="Get floating point value from a sexp object.">SEXP_number_getf</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00189"></a>00189 
<a name="l00196"></a>00196 <span class="keywordtype">int</span> <a class="code" href="group__SEXPMANIP.html#ga9b392924764145a02ff6c549dfd26d9c" title="Get a value from a sexp object according to a specified type.">SEXP_number_get</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, <span class="keywordtype">void</span> *dst, SEXP_numtype_t type);
<a name="l00197"></a>00197 
<a name="l00202"></a>00202 uint16_t <a class="code" href="group__SEXPMANIP.html#ga3c00041f8c7e3a5dfb18bb3b30466e37" title="Get unsigned integer value from a sexp object.">SEXP_number_getu_16</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00203"></a>00203 
<a name="l00208"></a>00208 <span class="keywordtype">void</span>    <a class="code" href="group__SEXPMANIP.html#ga0ef7afdcedb92279a58ce9ee0f224a1d" title="Free the specified sexp object.">SEXP_number_free</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00209"></a>00209 
<a name="l00214"></a>00214 <span class="keywordtype">bool</span>    <a class="code" href="group__SEXPMANIP.html#ga6e604a242bf6246a03696a3d80f666ee" title="Check whether the provided sexp object is a number.">SEXP_numberp</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00215"></a>00215 
<a name="l00220"></a>00220 SEXP_numtype_t <a class="code" href="group__SEXPMANIP.html#ga4e5c0f3e6a56eec10e7f1165939284c0" title="Get the number type of an object.">SEXP_number_type</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *sexp);
<a name="l00221"></a>00221 
<a name="l00222"></a>00222 <span class="comment">/*</span>
<a name="l00223"></a>00223 <span class="comment"> * string</span>
<a name="l00224"></a>00224 <span class="comment"> */</span>
<a name="l00225"></a>00225 
<a name="l00231"></a>00231 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga8741d27eb1aa8cf2f052a2d892f08f1e" title="Create a new sexp object from a string.">SEXP_string_new</a>  (<span class="keyword">const</span> <span class="keywordtype">void</span> *<span class="keywordtype">string</span>, <span class="keywordtype">size_t</span> strlen) <a class="code" href="struct____attribute____.html">__attribute__</a> ((nonnull (1)));
<a name="l00232"></a>00232 
<a name="l00238"></a>00238 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gafde2b9a3a03452d752835e050eea9349" title="Create a new sexp object from a format string.">SEXP_string_newf</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...) <a class="code" href="struct____attribute____.html">__attribute__</a> ((format (printf, 1, 2), nonnull (1)));
<a name="l00239"></a>00239 
<a name="l00244"></a>00244 <span class="keywordtype">void</span> <a class="code" href="group__SEXPMANIP.html#ga421532c375fbb742923c452bc52c27fa" title="Free the specified sexp object.">SEXP_string_free</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00245"></a>00245 
<a name="l00250"></a>00250 <span class="keywordtype">bool</span> <a class="code" href="group__SEXPMANIP.html#gaff64360f9c06d07c15295a4631eede9f" title="Check whether the provided sexp object is a string.">SEXP_stringp</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00251"></a>00251 
<a name="l00256"></a>00256 <span class="keywordtype">size_t</span> <a class="code" href="group__SEXPMANIP.html#ga105b4f4551faf6114e53fa9701e966d5" title="Get the length of a string in a sexp object.">SEXP_string_length</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00257"></a>00257 
<a name="l00263"></a>00263 <span class="keywordtype">int</span> <a class="code" href="group__SEXPMANIP.html#ga59353fe1a436c8a3003ff93cfd28a747" title="Compare a string in a sexp object with a C string.">SEXP_strcmp</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, const <span class="keywordtype">char</span> *str) <a class="code" href="struct____attribute____.html">__attribute__</a> ((nonnull (2)));
<a name="l00264"></a>00264 
<a name="l00271"></a>00271 <span class="keywordtype">int</span> <a class="code" href="group__SEXPMANIP.html#gaf2e92003af59b53145cfc23ea5e8cefa" title="Compare a string in a sexp object with a C string.">SEXP_strncmp</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, const <span class="keywordtype">char</span> *str, <span class="keywordtype">size_t</span> n) <a class="code" href="struct____attribute____.html">__attribute__</a> ((nonnull (2)));
<a name="l00272"></a>00272 
<a name="l00278"></a>00278 <span class="keywordtype">int</span> <a class="code" href="group__SEXPMANIP.html#gad91eec2b56af04fa7352fbebe4bb6a68" title="Get the n-th byte of a string.">SEXP_string_nth</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, <span class="keywordtype">size_t</span> n);
<a name="l00279"></a>00279 
<a name="l00283"></a>00283 <span class="keywordtype">char</span>  *<a class="code" href="group__SEXPMANIP.html#gaa9f1a251871b6d7f08b3ebcd221f20de" title="Get a C string from a sexp object.">SEXP_string_cstr</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00284"></a>00284 
<a name="l00292"></a>00292 <span class="keywordtype">size_t</span> <a class="code" href="group__SEXPMANIP.html#gaba4e73db0910e4cdcd05f0954d7c94d8" title="Get a C string from a sexp object.">SEXP_string_cstr_r</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> len) <a class="code" href="struct____attribute____.html">__attribute__</a> ((nonnull (2)));
<a name="l00293"></a>00293 
<a name="l00297"></a>00297 <span class="keywordtype">char</span>  *<a class="code" href="group__SEXPMANIP.html#gaa840bf69073129e9f408dcc6614333de" title="Obsolete function.">SEXP_string_cstrp</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00298"></a>00298 
<a name="l00305"></a>00305 <span class="keywordtype">char</span> *<a class="code" href="group__SEXPMANIP.html#gac7ba7c8f270dd20fa3ef9eb36169cf73" title="Get a C substring from a sexp object.">SEXP_string_subcstr</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, <span class="keywordtype">size_t</span> beg, <span class="keywordtype">size_t</span> len);
<a name="l00306"></a>00306 
<a name="l00312"></a>00312 <span class="keywordtype">int</span> <a class="code" href="group__SEXPMANIP.html#ga3e4383dcb6f96558b5643ad747d501b6" title="Compare two sexp strings.">SEXP_string_cmp</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *str_a, const <a class="code" href="structSEXP.html">SEXP_t</a> *str_b);
<a name="l00313"></a>00313 
<a name="l00314"></a>00314 <span class="comment">/*</span>
<a name="l00315"></a>00315 <span class="comment"> * list</span>
<a name="l00316"></a>00316 <span class="comment"> */</span>
<a name="l00317"></a>00317 
<a name="l00324"></a>00324 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga0bed70ee87aa8a1468da0766f30a2d49" title="Create a new sexp list, optionally initialized with the provided sexp arguments.">SEXP_list_new</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *memb, ...);
<a name="l00325"></a>00325 
<a name="l00330"></a>00330 <span class="keywordtype">void</span>    <a class="code" href="group__SEXPMANIP.html#ga080ba170147ff68e7c2cbe524d7ef989" title="Free the specified sexp object.">SEXP_list_free</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00331"></a>00331 
<a name="l00336"></a>00336 <span class="keywordtype">bool</span>    <a class="code" href="group__SEXPMANIP.html#ga07e8116610a355783f2c6368759b3227" title="Check whether the provided sexp object is a list.">SEXP_listp</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00337"></a>00337 
<a name="l00342"></a>00342 <span class="keywordtype">size_t</span>  <a class="code" href="group__SEXPMANIP.html#ga068f5fbd0f5570d282bbdad6167682fc" title="Get the length of the sexp list.">SEXP_list_length</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00343"></a>00343 
<a name="l00349"></a>00349 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga3945a43f7c84b10ec2a2cd93235caf56" title="Get the first element of a list.">SEXP_list_first</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *list);
<a name="l00350"></a>00350 
<a name="l00356"></a>00356 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga89f3f2ab5d95c13ca42483f0310c7207" title="Get the rest of a list.">SEXP_list_rest</a>  (const <a class="code" href="structSEXP.html">SEXP_t</a> *list);
<a name="l00357"></a>00357 
<a name="l00363"></a>00363 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gabd24f147a04deec43b6c190bd84e3dc3" title="Get the last element of a list.">SEXP_list_last</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *list);
<a name="l00364"></a>00364 
<a name="l00371"></a>00371 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gaf9cfba9895908c4705a9cf9a1044ab0a" title="Get the n-th element of a list.">SEXP_list_nth</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *list, uint32_t n);
<a name="l00372"></a>00372 
<a name="l00379"></a>00379 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gaca27766b23ee2eb0ccbe3eaf6a12585a" title="Add an element to a list.">SEXP_list_add</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *list, const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00380"></a>00380 
<a name="l00387"></a>00387 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga57fc2142d95669252504f4c956a165c4" title="Create a new list containing the concatenated contents of two lists.">SEXP_list_join</a> (const <a class="code" href="structSEXP.html">SEXP_t</a> *list_a, const <a class="code" href="structSEXP.html">SEXP_t</a> *list_b);
<a name="l00388"></a>00388 
<a name="l00395"></a>00395 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga1cfcddb82d44f56a4c86e4b9dc92b6da" title="Push an element to the head of a list.">SEXP_list_push</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *list, const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00396"></a>00396 
<a name="l00402"></a>00402 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga58373be5d72a973c4ee1623e3054ed79" title="Extract the first element of a list.">SEXP_list_pop</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *list);
<a name="l00403"></a>00403 
<a name="l00412"></a>00412 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga44d6b420de441d2ec06889547806f78d" title="Replace the n-th element of a list.">SEXP_list_replace</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *list, uint32_t n, const <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00413"></a>00413 
<a name="l00419"></a>00419 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga6257b4e02c221bf7abee8b7f7f9543de" title="Get the first element of a list.">SEXP_listref_first</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *list);
<a name="l00420"></a>00420 
<a name="l00426"></a>00426 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gab2d9e9f446f780614d54d5774f3fd939" title="Get the rest of a list.">SEXP_listref_rest</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *list);
<a name="l00427"></a>00427 
<a name="l00433"></a>00433 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga1c7e7156db1cdb031f70f69639a54391" title="Get the last element of a list.">SEXP_listref_last</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *list);
<a name="l00434"></a>00434 
<a name="l00441"></a>00441 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gafc42e152c5d53c53e154ee40b17cdd9e" title="Get the n-th element of a list.">SEXP_listref_nth</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *list, uint32_t n);
<a name="l00442"></a>00442 
<a name="l00443"></a>00443 typedef struct <a class="code" href="structSEXP__it.html">SEXP_it</a> <a class="code" href="structSEXP__it.html">SEXP_it_t</a>;
<a name="l00444"></a>00444 
<a name="l00445"></a>00445 <span class="preprocessor">#define SEXP_IT_RECURSIVE 0x01</span>
<a name="l00446"></a>00446 <span class="preprocessor"></span><span class="preprocessor">#define SEXP_IT_HARDREF   0x02</span>
<a name="l00447"></a>00447 <span class="preprocessor"></span>
<a name="l00448"></a>00448 SEXP_it_t *SEXP_listit_new (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *list, <span class="keywordtype">int</span> flags);
<a name="l00449"></a>00449 <a class="code" href="structSEXP.html">SEXP_t</a>    *SEXP_listit_next(SEXP_it_t *it);
<a name="l00450"></a>00450 <a class="code" href="structSEXP.html">SEXP_t</a>    *SEXP_listit_prev (SEXP_it_t *it);
<a name="l00451"></a>00451 <a class="code" href="structSEXP.html">SEXP_t</a>    *SEXP_listit_length (SEXP_it_t *it);
<a name="l00452"></a>00452 <a class="code" href="structSEXP.html">SEXP_t</a>    *SEXP_listit_seek (SEXP_it_t *it, uint32_t n);
<a name="l00453"></a>00453 <span class="keywordtype">void</span>       SEXP_listit_free (SEXP_it_t *it);
<a name="l00454"></a>00454 
<a name="l00455"></a>00455 <span class="preprocessor">#if __STDC_VERSION__ &gt;= 199901L</span>
<a name="l00456"></a>00456 <span class="preprocessor"></span><span class="preprocessor"># include &lt;sys/cdefs.h&gt;</span>
<a name="l00457"></a>00457 <span class="preprocessor"># define __XC(a,b) __CONCAT(a,b)</span>
<a name="l00458"></a>00458 <span class="preprocessor"></span>
<a name="l00459"></a>00459 <span class="comment">/* TODO: use alloca &amp; softref_r here */</span>
<a name="l00465"></a>00465 <span class="preprocessor">#define SEXP_list_foreach(var, list)                                    \</span>
<a name="l00466"></a>00466 <span class="preprocessor">        for (uint32_t __XC(i,__LINE__) = 1; ((var) = SEXP_list_nth (list, __XC(i,__LINE__))) != NULL; ++__XC(i,__LINE__), SEXP_free (var))</span>
<a name="l00467"></a>00467 <span class="preprocessor"></span>
<a name="l00475"></a>00475 <span class="preprocessor">#define SEXP_sublist_foreach(var, list, beg, end)                       \</span>
<a name="l00476"></a>00476 <span class="preprocessor">        for (uint32_t __XC(i,__LINE__) = (beg); __XC(i,__LINE__) &lt;= ((size_t)(end)) &amp;&amp; ((var) = SEXP_list_nth (list, __XC(i,__LINE__))) != NULL; ++__XC(i,__LINE__), SEXP_free (var))</span>
<a name="l00477"></a>00477 <span class="preprocessor"></span>
<a name="l00478"></a>00478 <span class="preprocessor">#endif </span><span class="comment">/* __STDC_VERSION__ &gt;= 199901L */</span>
<a name="l00479"></a>00479 
<a name="l00480"></a>00480 <span class="comment">/*</span>
<a name="l00481"></a>00481 <span class="comment"> * generic </span>
<a name="l00482"></a>00482 <span class="comment"> */</span>
<a name="l00483"></a>00483 
<a name="l00484"></a>00484 <a class="code" href="structSEXP.html">SEXP_t</a> *SEXP_new (<span class="keywordtype">void</span>);
<a name="l00485"></a>00485 
<a name="l00490"></a>00490 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#ga2cc6cb5fcad251b8c5e4eb2a604a2ae4" title="Create a new reference to a sexp object.">SEXP_ref</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00491"></a>00491 
<a name="l00492"></a>00492 <a class="code" href="structSEXP.html">SEXP_t</a> *SEXP_unref (<a class="code" href="structSEXP.html">SEXP_t</a> *s_exp_o);
<a name="l00493"></a>00493 
<a name="l00498"></a>00498 <a class="code" href="structSEXP.html">SEXP_t</a> *<a class="code" href="group__SEXPMANIP.html#gaeb1fb855d020bc8ee030795db519802d" title="Create a new soft reference to a sexp object.">SEXP_softref</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00499"></a>00499 <span class="preprocessor">#if defined(NDEBUG)</span>
<a name="l00500"></a>00500 <span class="preprocessor"></span>
<a name="l00505"></a>00505 <span class="keywordtype">void</span>     SEXP_free (<a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00506"></a>00506 
<a name="l00513"></a>00513 <span class="keywordtype">void</span>     SEXP_vfree (<a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, ...);
<a name="l00514"></a>00514 <span class="preprocessor">#else</span>
<a name="l00515"></a>00515 <span class="preprocessor"></span><span class="preprocessor"># define SEXP_free(ptr) __SEXP_free (ptr, __FILE__, __LINE__, __PRETTY_FUNCTION__)</span>
<a name="l00516"></a>00516 <span class="preprocessor"></span><span class="keywordtype">void</span>     __SEXP_free (<a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, <span class="keyword">const</span> <span class="keywordtype">char</span> *file, uint32_t line, <span class="keyword">const</span> <span class="keywordtype">char</span> *func);
<a name="l00517"></a>00517 <span class="preprocessor"># define SEXP_vfree(...) __SEXP_vfree (__FILE__, __LINE__, __PRETTY_FUNCTION__, __VA_ARGS__)</span>
<a name="l00518"></a>00518 <span class="preprocessor"></span><span class="keywordtype">void</span>     __SEXP_vfree (<span class="keyword">const</span> <span class="keywordtype">char</span> *file, uint32_t line, <span class="keyword">const</span> <span class="keywordtype">char</span> *func, <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, ...);
<a name="l00519"></a>00519 <span class="preprocessor">#endif</span>
<a name="l00520"></a>00520 <span class="preprocessor"></span>
<a name="l00525"></a>00525 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__SEXPMANIP.html#gadfa2e529c7e779f8ef1c21a84ae32a72" title="Get the user data type of a sexp object.">SEXP_datatype</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00526"></a>00526 
<a name="l00531"></a>00531 <span class="keywordtype">int</span> <a class="code" href="group__SEXPMANIP.html#gaa4bde669d7e595ea9059b4b6387a15b2" title="Set the user data type of a sexp object.">SEXP_datatype_set</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, <span class="keyword">const</span> <span class="keywordtype">char</span> *name) <a class="code" href="struct____attribute____.html">__attribute__</a> ((nonnull (2)));
<a name="l00532"></a>00532 
<a name="l00539"></a>00539 <span class="keywordtype">int</span> <a class="code" href="group__SEXPMANIP.html#ga722eb1e7c93e22d2b2412983ccb88195" title="Set the user data type of the nth sexp object in a list.">SEXP_datatype_set_nth</a> (<a class="code" href="structSEXP.html">SEXP_t</a> *list, uint32_t n, <span class="keyword">const</span> <span class="keywordtype">char</span> *name) <a class="code" href="struct____attribute____.html">__attribute__</a> ((nonnull (3)));
<a name="l00540"></a>00540 
<a name="l00545"></a>00545 SEXP_type_t <a class="code" href="group__SEXPMANIP.html#gac20aeb60da4207f9fa0b6bf056864eec" title="Get the type of a sexp object.">SEXP_typeof</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00546"></a>00546 
<a name="l00551"></a>00551 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__SEXPMANIP.html#ga2ff190ded3d3563e9553734ab5fa0cd4" title="Get a text description of the sexp object&amp;#39;s type.">SEXP_strtype</a> (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00552"></a>00552 
<a name="l00553"></a>00553 <a class="code" href="structSEXP.html">SEXP_t</a> *SEXP_build (<span class="keyword">const</span> <span class="keywordtype">char</span> *s_str, ...);
<a name="l00554"></a>00554 
<a name="l00555"></a>00555 <span class="keywordtype">size_t</span> SEXP_sizeof (<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp);
<a name="l00556"></a>00556 
<a name="l00557"></a>00557 <span class="preprocessor">#if !defined(NDEBUG)</span>
<a name="l00558"></a>00558 <span class="preprocessor"></span><span class="preprocessor"># define SEXP_VALIDATE(s) __SEXP_VALIDATE(s, __FILE__, __LINE__, __PRETTY_FUNCTION__)</span>
<a name="l00559"></a>00559 <span class="preprocessor"></span><span class="preprocessor"># include &lt;stdlib.h&gt;</span>
<a name="l00560"></a>00560 
<a name="l00561"></a>00561 <span class="keywordtype">void</span> __SEXP_VALIDATE(<span class="keyword">const</span> <a class="code" href="structSEXP.html">SEXP_t</a> *s_exp, <span class="keyword">const</span> <span class="keywordtype">char</span> *file, uint32_t line, <span class="keyword">const</span> <span class="keywordtype">char</span> *func);
<a name="l00562"></a>00562 
<a name="l00563"></a>00563 <span class="preprocessor">#else</span>
<a name="l00564"></a>00564 <span class="preprocessor"></span><span class="preprocessor"># define SEXP_VALIDATE(s)</span>
<a name="l00565"></a>00565 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00566"></a>00566 <span class="preprocessor"></span>
<a name="l00567"></a>00567 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00568"></a>00568 <span class="preprocessor"></span>}
<a name="l00569"></a>00569 <span class="preprocessor">#endif</span>
<a name="l00570"></a>00570 <span class="preprocessor"></span>
<a name="l00571"></a>00571 <span class="preprocessor">#endif </span><span class="comment">/* SEXP_MANIP_H */</span>
</pre></div></div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 26 Feb 2010 for Open SCAP Library by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>