Codebase list libmawk / a323d5b2-e0eb-4fad-b708-b7817dc988fe/main doc / libmawk_initialize_stage.3libmawk.html
a323d5b2-e0eb-4fad-b708-b7817dc988fe/main

Tree @a323d5b2-e0eb-4fad-b708-b7817dc988fe/main (Download .tar.gz)

libmawk_initialize_stage.3libmawk.html @a323d5b2-e0eb-4fad-b708-b7817dc988fe/mainraw · history · blame

<!-- Creator     : groff version 1.22.2 -->
<!-- CreationDate: Sat Jun 14 14:27:32 2014 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="Content-Style" content="text/css">
<style type="text/css">
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
       h1      { text-align: center }
</style>
<title>LIBMAWK_INITIALIZE_STAGE</title>

</head>
<body>

<h1 align="center">LIBMAWK_INITIALIZE_STAGE</h1>

<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#RETURN VALUE">RETURN VALUE</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>

<hr>


<h2>NAME
<a name="NAME"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em">libmawk_initialize_stage*
&minus; create a new libmawk context in 3 stages</p>

<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em"><b>#include
&lt;libmawk.h&gt;</b></p>


<p style="margin-left:11%; margin-top: 1em"><b>mawk_state_t
*libmawk_initialize_stage1(void);</b></p>


<p style="margin-left:11%; margin-top: 1em"><b>mawk_state_t
*libmawk_initialize_stage2(mawk_state_t *</b>
<i>m,</i><b>int</b> <i>s</i>
<b>,</b><i>char</i><b>*&quot;</b><i>argv[]</i><b>);</b></p>


<p style="margin-left:11%; margin-top: 1em"><b>mawk_state_t
*libmawk_initialize_stage3(mawk_state_t *</b>
<i>m</i><b>);</b></p>

<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">The
<b>libmawk_initialize_stage*</b>() functions together do the
same as libmawk_initialize() but allows the application to
take actions between different stages.
<b>libmawk_initialize_stage1</b>() returns a pointer to a
newly created libmawk context. Any amount of libmawk
contexts can live in parallel in an application.</p>


<p style="margin-left:11%; margin-top: 1em"><b>libmawk_initialize_stage2</b>()
can be called after a succesful stage1 call. <br>
Stage2 is responsible for processing the command line
arguments and loading any script.</p>

<p style="margin-left:11%; margin-top: 1em">Arguments are
the same as for a command line mawk session. Scripts are
loaded (either from command line or from files using -f),
variables are set (with -v), special options are set (with
-W), etc. Unlike with libmawk_initialize(), the application
may decide not to provide any script at this stage. All
command line arguments are processed.</p>

<p style="margin-left:11%; margin-top: 1em">The most common
case is that the application calls stage1 with no script,
then already having a context makes some manipulations on it
(for example registers some C functions that would be
already called in the BEGIN part of the script that will be
later loaded). Optionally before calling stage2 the
application loads the actual script(s) using
mawk_append_input_file().</p>


<p style="margin-left:11%; margin-top: 1em"><b>libmawk_initialize_stage3</b>()
is called as a final step of the three-stage initialization
process. Stage3 is responsible for running all the BEGIN
parts of all scripts loaded at stage1 or stage2. It is
useful to have stage3 in a separate call to allow
applications to manipulate the context right before
initializing the scripts.</p>

<p style="margin-left:11%; margin-top: 1em">Stage2 gets the
pointer returned by stage1 and stage3 gets the pointer
returned by stage2. Subsequent calls to libmawk functions
should get the pointer returned by stage3.</p>

<h2>RETURN VALUE
<a name="RETURN VALUE"></a>
</h2>


<p style="margin-left:11%; margin-top: 1em">At stage 1 a
pointer to a new libmawk context or NULL on error.
Subsequent stages will return the same pointer or NULL on
error.</p>

<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>



<p style="margin-left:11%; margin-top: 1em"><b>libmawk_initialize_stage</b>(3libmawk),
<b>libmawk_uninitialize</b>(3libmawk),
<b>mawk_append_input_file(3libmawk).</b></p>
<hr>
</body>
</html>