<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE> {The S-lang C Library Reference}: SLang_restart</TITLE>
<LINK HREF="cref-63.html" REL=next>
<LINK HREF="cref-61.html" REL=previous>
<LINK HREF="cref.html#toc62" REL=contents>
</HEAD>
<BODY>
<A HREF="cref-63.html">Next</A>
<A HREF="cref-61.html">Previous</A>
<A HREF="cref.html#toc62">Contents</A>
<HR>
<H2><A NAME="SLang_restart"></A> <A NAME="s62">62. <B>SLang_restart</B></A></H2>

<P>
<DL>
<DT><B> Synopsis </B><DD><P>Reset the interpreter after an error
<DT><B> Usage </B><DD><P><CODE>void SLang_restart (int full)</CODE>
<DT><B> Description </B><DD><P>The <CODE>SLang_restart</CODE> function should be called by the
application at top level if an error occurs.  If the parameter
<CODE>full</CODE> is non-zero, any objects on the <B>S-lang</B> run time stack
will be removed from the stack; otherwise, the stack will be left
intact.  Any time the stack is believed to be trashed, this routine
should be called with a non-zero argument (e.g., if
<CODE>setjmp</CODE>/<CODE>longjmp</CODE> is called).
<P>Calling <CODE>SLang_restart</CODE> does not reset the global variable
<CODE>SLang_Error</CODE> to zero.  It is up to the application to reset
that variable to zero after calling <CODE>SLang_restart</CODE>.
<DT><B> Example </B><DD><P>
<BLOCKQUOTE><CODE>
<PRE>
      while (1)
        {
           if (SLang_Error) 
             {
                SLang_restart (1);
                SLang_Error = 0;
             }
           (void) SLang_load_file (NULL);
        }
</PRE>
</CODE></BLOCKQUOTE>
<DT><B> See Also </B><DD><P><CODE>SLang_init_slang, SLang_load_file</CODE>
</DL>
<P>
<P>
<P>
<HR>
<A HREF="cref-63.html">Next</A>
<A HREF="cref-61.html">Previous</A>
<A HREF="cref.html#toc62">Contents</A>
</BODY>
</HTML>
