Codebase list libmawk / 90d5d2b3-585a-4bfd-a55b-70221f790edb/main doc / libmawk_initialize_stage.3libmawk.html

Tree @90d5d2b3-585a-4bfd-a55b-70221f790edb/main (Download .tar.gz)

libmawk_initialize_stage.3libmawk.html @90d5d2b3-585a-4bfd-a55b-70221f790edb/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"
<meta name="generator" content="groff -Thtml, see">
<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 }


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

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


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

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

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

<p style="margin-left:11%; margin-top: 1em"><b>#include

<p style="margin-left:11%; margin-top: 1em"><b>mawk_state_t

<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>

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

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

<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

<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>

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

<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

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

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