wcslib (8.2.2)

(root)/
share/
doc/
wcslib-8.2.2/
html/
wcserr_8h.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>WCSLIB: wcserr.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">WCSLIB<span id="projectnumber">&#160;8.2.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_af99bb3c152a306abd27951285ad1127.html">C</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">wcserr.h File Reference</div></div>
</div><!--header-->
<div class="contents">

<p><a href="wcserr_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structwcserr.html">wcserr</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error message handling.  <a href="structwcserr.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a7b46d9cbaea3241d91e40d03a2725fd7" id="r_a7b46d9cbaea3241d91e40d03a2725fd7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcserr_8h.html#a7b46d9cbaea3241d91e40d03a2725fd7">ERRLEN</a>&#160;&#160;&#160;(sizeof(struct <a class="el" href="structwcserr.html">wcserr</a>)/sizeof(int))</td></tr>
<tr class="separator:a7b46d9cbaea3241d91e40d03a2725fd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfa8a447539633296d50e67c7ab466c2" id="r_acfa8a447539633296d50e67c7ab466c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcserr_8h.html#acfa8a447539633296d50e67c7ab466c2">WCSERR_SET</a>(status)&#160;&#160;&#160;err, status, function, __FILE__, __LINE__</td></tr>
<tr class="memdesc:acfa8a447539633296d50e67c7ab466c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill in the contents of an error object.  <br /></td></tr>
<tr class="separator:acfa8a447539633296d50e67c7ab466c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a1691b8bd184d40ca6fda255be078fa53" id="r_a1691b8bd184d40ca6fda255be078fa53"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53">wcserr_enable</a> (int enable)</td></tr>
<tr class="memdesc:a1691b8bd184d40ca6fda255be078fa53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable error messaging.  <br /></td></tr>
<tr class="separator:a1691b8bd184d40ca6fda255be078fa53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae29e2333b0871c1ab8e3fd0eb744b4e0" id="r_ae29e2333b0871c1ab8e3fd0eb744b4e0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcserr_8h.html#ae29e2333b0871c1ab8e3fd0eb744b4e0">wcserr_size</a> (const struct <a class="el" href="structwcserr.html">wcserr</a> *err, int sizes[2])</td></tr>
<tr class="memdesc:ae29e2333b0871c1ab8e3fd0eb744b4e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the size of a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct.  <br /></td></tr>
<tr class="separator:ae29e2333b0871c1ab8e3fd0eb744b4e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6585b9fc3a59b369e3336f3133dd1ca9" id="r_a6585b9fc3a59b369e3336f3133dd1ca9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcserr_8h.html#a6585b9fc3a59b369e3336f3133dd1ca9">wcserr_prt</a> (const struct <a class="el" href="structwcserr.html">wcserr</a> *err, const char *prefix)</td></tr>
<tr class="memdesc:a6585b9fc3a59b369e3336f3133dd1ca9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct.  <br /></td></tr>
<tr class="separator:a6585b9fc3a59b369e3336f3133dd1ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3843f24df9351294fa4847eaff672bc" id="r_aa3843f24df9351294fa4847eaff672bc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcserr_8h.html#aa3843f24df9351294fa4847eaff672bc">wcserr_clear</a> (struct <a class="el" href="structwcserr.html">wcserr</a> **err)</td></tr>
<tr class="memdesc:aa3843f24df9351294fa4847eaff672bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct.  <br /></td></tr>
<tr class="separator:aa3843f24df9351294fa4847eaff672bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0945d3588b604205b9c1b3d661a794f" id="r_ab0945d3588b604205b9c1b3d661a794f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcserr_8h.html#ab0945d3588b604205b9c1b3d661a794f">wcserr_set</a> (struct <a class="el" href="structwcserr.html">wcserr</a> **err, int status, const char *function, const char *file, int line_no, const char *format,...)</td></tr>
<tr class="memdesc:ab0945d3588b604205b9c1b3d661a794f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill in the contents of an error object.  <br /></td></tr>
<tr class="separator:ab0945d3588b604205b9c1b3d661a794f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad970e4ae584d3052b7bec2f1afb4689d" id="r_ad970e4ae584d3052b7bec2f1afb4689d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wcserr_8h.html#ad970e4ae584d3052b7bec2f1afb4689d">wcserr_copy</a> (const struct <a class="el" href="structwcserr.html">wcserr</a> *src, struct <a class="el" href="structwcserr.html">wcserr</a> *dst)</td></tr>
<tr class="memdesc:ad970e4ae584d3052b7bec2f1afb4689d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy an error object.  <br /></td></tr>
<tr class="separator:ad970e4ae584d3052b7bec2f1afb4689d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Most of the structs in WCSLIB contain a pointer to a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct as a member. Functions in WCSLIB that return an error status code can also allocate and set a detailed error message in this struct, which also identifies the function, source file, and line number where the error occurred.</p>
<p><b>For example:</b> <br  />
</p><div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code hl_struct" href="structprjprm.html">prjprm</a> prj;</div>
<div class="line"><a class="code hl_function" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53">wcserr_enable</a>(1);</div>
<div class="line"><span class="keywordflow">if</span> (<a class="code hl_function" href="prj_8h.html#ad994cb23871c51b20754973bef180f8a">prjini</a>(&amp;prj)) {</div>
<div class="line">  <span class="comment">// Print the error message to stderr.</span></div>
<div class="line">  <a class="code hl_function" href="wcsprintf_8h.html#a5c6f91916a0b8f8c2d85274c0ba130f6">wcsprintf_set</a>(stderr);</div>
<div class="line">  <a class="code hl_function" href="wcserr_8h.html#a6585b9fc3a59b369e3336f3133dd1ca9">wcserr_prt</a>(prj.err, 0x0);</div>
<div class="line">}</div>
<div class="ttc" id="aprj_8h_html_ad994cb23871c51b20754973bef180f8a"><div class="ttname"><a href="prj_8h.html#ad994cb23871c51b20754973bef180f8a">prjini</a></div><div class="ttdeci">int prjini(struct prjprm *prj)</div><div class="ttdoc">Default constructor for the prjprm struct.</div></div>
<div class="ttc" id="astructprjprm_html"><div class="ttname"><a href="structprjprm.html">prjprm</a></div><div class="ttdoc">Projection parameters.</div><div class="ttdef"><b>Definition</b> prj.h:698</div></div>
<div class="ttc" id="awcserr_8h_html_a1691b8bd184d40ca6fda255be078fa53"><div class="ttname"><a href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53">wcserr_enable</a></div><div class="ttdeci">int wcserr_enable(int enable)</div><div class="ttdoc">Enable/disable error messaging.</div></div>
<div class="ttc" id="awcserr_8h_html_a6585b9fc3a59b369e3336f3133dd1ca9"><div class="ttname"><a href="wcserr_8h.html#a6585b9fc3a59b369e3336f3133dd1ca9">wcserr_prt</a></div><div class="ttdeci">int wcserr_prt(const struct wcserr *err, const char *prefix)</div><div class="ttdoc">Print a wcserr struct.</div></div>
<div class="ttc" id="awcsprintf_8h_html_a5c6f91916a0b8f8c2d85274c0ba130f6"><div class="ttname"><a href="wcsprintf_8h.html#a5c6f91916a0b8f8c2d85274c0ba130f6">wcsprintf_set</a></div><div class="ttdeci">int wcsprintf_set(FILE *wcsout)</div><div class="ttdoc">Set output disposition for wcsprintf() and wcsfprintf().</div></div>
</div><!-- fragment --><p>A number of utility functions used in managing the <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct are for <b>internal use only</b>. They are documented here solely as an aid to understanding the code. They are not intended for external use - the API may change without notice! </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a7b46d9cbaea3241d91e40d03a2725fd7" name="a7b46d9cbaea3241d91e40d03a2725fd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b46d9cbaea3241d91e40d03a2725fd7">&#9670;&#160;</a></span>ERRLEN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ERRLEN&#160;&#160;&#160;(sizeof(struct <a class="el" href="structwcserr.html">wcserr</a>)/sizeof(int))</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="acfa8a447539633296d50e67c7ab466c2" name="acfa8a447539633296d50e67c7ab466c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfa8a447539633296d50e67c7ab466c2">&#9670;&#160;</a></span>WCSERR_SET</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define WCSERR_SET</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">status</td><td>)</td>
          <td>&#160;&#160;&#160;err, status, function, __FILE__, __LINE__</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill in the contents of an error object. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>WCSERR_SET</b>() is a preprocessor macro that helps to fill in the argument list of <a class="el" href="wcserr_8h.html#ab0945d3588b604205b9c1b3d661a794f" title="Fill in the contents of an error object.">wcserr_set()</a>. It takes status as an argument of its own and provides the name of the source file and the line number at the point where invoked. It assumes that the err and function arguments of <a class="el" href="wcserr_8h.html#ab0945d3588b604205b9c1b3d661a794f" title="Fill in the contents of an error object.">wcserr_set()</a> will be provided by variables of the same names. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a1691b8bd184d40ca6fda255be078fa53" name="a1691b8bd184d40ca6fda255be078fa53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1691b8bd184d40ca6fda255be078fa53">&#9670;&#160;</a></span>wcserr_enable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcserr_enable </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>enable</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable/disable error messaging. </p>
<p><b>wcserr_enable</b>() enables or disables <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> error messaging. By default it is disabled.</p>
<p><b>PLEASE NOTE:</b> This function is not thread-safe.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">enable</td><td>If true (non-zero), enable error messaging, else disable it.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Error messaging is disabled.</li>
<li>1: Error messaging is enabled. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ae29e2333b0871c1ab8e3fd0eb744b4e0" name="ae29e2333b0871c1ab8e3fd0eb744b4e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae29e2333b0871c1ab8e3fd0eb744b4e0">&#9670;&#160;</a></span>wcserr_size()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcserr_size </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structwcserr.html">wcserr</a> *&#160;</td>
          <td class="paramname"><em>err</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sizes</em>[2]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compute the size of a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct. </p>
<p><b>wcserr_size</b>() computes the full size of a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct, including allocated memory.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">err</td><td>The error object. <br  />
 If NULL, the base size of the struct and the allocated size are both set to zero.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">sizes</td><td>The first element is the base size of the struct as returned by sizeof(struct <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a>). The second element is the total allocated size of the message buffer, in bytes.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a6585b9fc3a59b369e3336f3133dd1ca9" name="a6585b9fc3a59b369e3336f3133dd1ca9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6585b9fc3a59b369e3336f3133dd1ca9">&#9670;&#160;</a></span>wcserr_prt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcserr_prt </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structwcserr.html">wcserr</a> *&#160;</td>
          <td class="paramname"><em>err</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>prefix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Print a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct. </p>
<p><b>wcserr_prt</b>() prints the error message (if any) contained in a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct. It uses the <a class="el" href="wcsprintf_8h.html#a46950abaf5a27347da8160741f98f973" title="Print function used by WCSLIB diagnostic routines.">wcsprintf()</a> functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">err</td><td>The error object. If NULL, nothing is printed. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">prefix</td><td>If non-NULL, each output line will be prefixed with this string.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>2: Error messaging is not enabled. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="aa3843f24df9351294fa4847eaff672bc" name="aa3843f24df9351294fa4847eaff672bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3843f24df9351294fa4847eaff672bc">&#9670;&#160;</a></span>wcserr_clear()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcserr_clear </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structwcserr.html">wcserr</a> **&#160;</td>
          <td class="paramname"><em>err</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clear a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct. </p>
<p><b>wcserr_clear</b>() clears (deletes) a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">err</td><td>The error object. If NULL, nothing is done. Set to NULL on return.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success. </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ab0945d3588b604205b9c1b3d661a794f" name="ab0945d3588b604205b9c1b3d661a794f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0945d3588b604205b9c1b3d661a794f">&#9670;&#160;</a></span>wcserr_set()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcserr_set </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structwcserr.html">wcserr</a> **&#160;</td>
          <td class="paramname"><em>err</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>function</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>line_no</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill in the contents of an error object. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcserr_set</b>() fills a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct with information about an error.</p>
<p>A convenience macro, <a class="el" href="wcserr_8h.html#acfa8a447539633296d50e67c7ab466c2" title="Fill in the contents of an error object.">WCSERR_SET</a>, provides the source file and line number information automatically.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">err</td><td>Error object. <br  />
 If err is NULL, returns the status code given without setting an error message. <br  />
 If *err is NULL, allocates memory for a <a class="el" href="structwcserr.html" title="Error message handling.">wcserr</a> struct (provided that status is non-zero).</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">status</td><td>Numeric status code to set. If 0, then *err will be deleted and *err will be returned as NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>Name of the function generating the error. This must point to a constant string, i.e. in the initialized read-only data section (&quot;data&quot;) of the executable. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>Name of the source file generating the error. This must point to a constant string, i.e. in the initialized read-only data section (&quot;data&quot;) of the executable such as given by the __FILE__ preprocessor macro. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">line_no</td><td>Line number in the source file generating the error such as given by the __LINE__ preprocessor macro. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>Format string of the error message. May contain printf-style %-formatting codes. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>The remaining variable arguments are applied (like printf) to the format string to generate the error message.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status return code passed in. </dd></dl>

</div>
</div>
<a id="ad970e4ae584d3052b7bec2f1afb4689d" name="ad970e4ae584d3052b7bec2f1afb4689d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad970e4ae584d3052b7bec2f1afb4689d">&#9670;&#160;</a></span>wcserr_copy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wcserr_copy </td>
          <td>(</td>
          <td class="paramtype">const struct <a class="el" href="structwcserr.html">wcserr</a> *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structwcserr.html">wcserr</a> *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy an error object. </p>
<p><b>INTERNAL USE ONLY.</b></p>
<p><b>wcserr_copy</b>() copies one error object to another. Use of this function should be avoided in general since the function, source file, and line number information copied to the destination may lose its context.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Source error object. If src is NULL, dst is cleared.</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">dst</td><td>Destination error object. If NULL, no copy is made.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Numeric status code of the source error object. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Nov 29 2023 19:09:57 for WCSLIB by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>