/*
 *  $Id: proto.h,v 2.5 1999/07/07 19:30:52 bkorb Exp $
 */

#ifndef snv_constpointer
#  define snv_constpointer char*
#endif

extern char* _strdup( const char* );
extern void closeOutput( ag_bool purge );
extern teValType eval( tMacro*    pMac,  
                       tDefEntry* pCurDef );
extern void evalError( tMacro* pMac );
extern tDefEntry* findDefEntry( char*      pzName,
                                tDefEntry* pDefs,
                                ag_bool*   pIsIndexed );
extern tSuccess findTemplateFile( const char* pzTempl, char* pzFullName );
extern void generateBlock( tMacro*      pStart,
                           tMacro*      pEnd,
                           tDefEntry*   pList );
extern const char* getDefine( const char* pzDefName );
extern char* loadData( FILE* fp );
extern tTemplFile* loadTemplate( char* pzTemplName );
extern tMacro* parseTemplate( tMacro* pM, char** ppzText );
extern void processTemplate( tTemplFile* pTF );
extern void readDefines( const char* );
extern void removeWriteAccess( int fd );
extern char* runShell( const char* );
extern int  safePrintf( char* pzBuf, size_t bufSize,
                        char* pzFmt, snv_constpointer argV[] );
extern void unloadTemplate( tTemplFile* pTF );
extern void upcase( char* pz, teCaseType  caseMode );
extern teFuncType whichFunc( char* pzFuncName );
extern void unloadDefs( void );
/* end of proto.h */
