mirror of
https://github.com/VARCem/PDCurses.git
synced 2026-09-23 07:15:05 +00:00
Support for RXINI handling.
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
* Mark Hessling M.Hessling@qut.edu.au http://www.lightlink.com/hessling/
|
||||
*/
|
||||
|
||||
static char RCSid[] = "$Id: loader.c,v 1.15 2003/02/19 11:10:14 mark Exp $";
|
||||
static char RCSid[] = "$Id: loader.c,v 1.16 2003/02/20 07:59:39 mark Exp $";
|
||||
|
||||
#include "rxpack.h"
|
||||
|
||||
@@ -43,6 +43,7 @@ extern int optind;
|
||||
extern PackageInitialiser *GETPACKAGEINITIALISER();
|
||||
extern PackageTerminator *GETPACKAGETERMINATOR();
|
||||
extern RexxSubcomHandler *GETPACKAGESUBCOMHANDLER();
|
||||
extern RexxExitHandler *GETPACKAGEINITHANDLER();
|
||||
extern RexxFunction *GETPACKAGEFUNCTIONS();
|
||||
extern RxPackageConstantDef *GETPACKAGECONSTANTS();
|
||||
extern void PACKAGEUSAGE();
|
||||
@@ -87,9 +88,14 @@ int main
|
||||
int rc=0;
|
||||
RXSTRING retstr;
|
||||
CHAR retbuf[RETBUFLEN];
|
||||
CHAR initexitname[100];
|
||||
RXSTRING ArgList;
|
||||
#if !defined(DYNAMIC_LIBRARY) && (defined(USE_WINREXX) || defined(USE_QUERCUS))
|
||||
#if !defined(DYNAMIC_LIBRARY)
|
||||
# if defined(USE_WINREXX) || defined(USE_QUERCUS)
|
||||
RXSYSEXIT ExitList[3];
|
||||
# else
|
||||
RXSYSEXIT ExitList[2];
|
||||
# endif
|
||||
#endif
|
||||
RxPackageGlobalDataDef MyGlob, *RxPackageGlobalData;
|
||||
|
||||
@@ -222,22 +228,28 @@ int main
|
||||
*/
|
||||
if ( ( rc = RegisterRxSubcom( RxPackageGlobalData, GETPACKAGESUBCOMHANDLER() ) ) != 0 )
|
||||
return( rc );
|
||||
#if 0
|
||||
/*
|
||||
* Register a RXINI handler to set the package constants
|
||||
*/
|
||||
if ( ( rc = RegisterRxIni( RxPackageGlobalData, GETPACKAGECONSTANTSDLER() ) ) != 0 )
|
||||
sprintf( initexitname, "%s%s", RXPACKAGENAME, "INIT" );
|
||||
if ( ( rc = RegisterRxInit( RxPackageGlobalData, GETPACKAGEINITHANDLER(), initexitname ) ) != 0 )
|
||||
return( rc );
|
||||
SetPackageConstants( RxPackageGlobalData, GETPACKAGECONSTANTS(), RXPACKAGENAME );
|
||||
#endif
|
||||
FunctionPrologue( RxPackageGlobalData, GETPACKAGEINITIALISER(), RXPACKAGENAME, 0L, NULL );
|
||||
/*
|
||||
* Set up the system exit for the Say and Trace redirection
|
||||
* Set up the system exit for the Say and Trace redirection and RxIni
|
||||
*/
|
||||
#if !defined(DYNAMIC_LIBRARY) && (defined(USE_WINREXX) || defined(USE_QUERCUS))
|
||||
#if !defined(DYNAMIC_LIBRARY)
|
||||
# if defined(USE_WINREXX) || defined(USE_QUERCUS)
|
||||
ExitList[0].sysexit_name = RXPACKAGENAME;
|
||||
ExitList[0].sysexit_code = RXSIO;
|
||||
ExitList[1].sysexit_name = initexitname;
|
||||
ExitList[1].sysexit_code = RXINI;
|
||||
ExitList[2].sysexit_code = RXENDLST;
|
||||
# else
|
||||
ExitList[0].sysexit_name = initexitname;
|
||||
ExitList[0].sysexit_code = RXINI;
|
||||
ExitList[1].sysexit_code = RXENDLST;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
MAKERXSTRING( retstr, retbuf, sizeof( retbuf ) );
|
||||
@@ -252,7 +264,7 @@ int main
|
||||
( RS_ARG3_TYPE )NULL,
|
||||
( RS_ARG4_TYPE )RXPACKAGENAME,
|
||||
( RS_ARG5_TYPE )RXCOMMAND,
|
||||
#if !defined(DYNAMIC_LIBRARY) && (defined(USE_WINREXX) || defined(USE_QUERCUS))
|
||||
#if !defined(DYNAMIC_LIBRARY)
|
||||
( RS_ARG6_TYPE )ExitList,
|
||||
#else
|
||||
( RS_ARG6_TYPE )NULL,
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
static char RCSid[] = "$Id: rxpack.c,v 1.25 2003/02/19 11:10:15 mark Exp $";
|
||||
static char RCSid[] = "$Id: rxpack.c,v 1.26 2003/02/20 07:59:41 mark Exp $";
|
||||
|
||||
#include "rxpack.h"
|
||||
|
||||
@@ -1317,6 +1317,34 @@ int RegisterRxSubcom
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
* This function registers the package's RXINI exit handler...
|
||||
*----------------------------------------------------------------------------*/
|
||||
int RegisterRxInit
|
||||
|
||||
#ifdef HAVE_PROTO
|
||||
( RxPackageGlobalDataDef *RxPackageGlobalData, RexxExitHandler ptr, char *name)
|
||||
#else
|
||||
( RxPackageGlobalData, ptr, name )
|
||||
RxPackageGlobalDataDef *RxPackageGlobalData;
|
||||
RexxExitHandler ptr;
|
||||
char *name;
|
||||
#endif
|
||||
|
||||
{
|
||||
ULONG rc=0L;
|
||||
|
||||
InternalTrace( RxPackageGlobalData, "RegisterRxInit", "Name: %s Addr: %ld", name, ptr );
|
||||
|
||||
rc = RexxRegisterExitExe( (RREE_ARG0_TYPE)name,
|
||||
(RREE_ARG1_TYPE)(ptr),
|
||||
(RREE_ARG2_TYPE)NULL );
|
||||
InternalTrace( RxPackageGlobalData, "RegisterRxInit", "returning %d", rc );
|
||||
if ( rc != RXEXIT_OK )
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
* This function registers the external functions...
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
@@ -237,6 +237,7 @@ RxPackageGlobalDataDef *InitRxPackage Args(( RxPackageGlobalDataDef *, PackageIn
|
||||
int TermRxPackage Args(( RxPackageGlobalDataDef **, PackageTerminator *, RexxFunction *, char *, int ));
|
||||
int RegisterRxFunctions Args(( RxPackageGlobalDataDef *, RexxFunction *, char * ));
|
||||
int RegisterRxSubcom Args(( RxPackageGlobalDataDef *, RexxSubcomHandler ));
|
||||
int RegisterRxInit Args(( RxPackageGlobalDataDef *, RexxExitHandler, char *));
|
||||
int QueryRxFunction Args(( RxPackageGlobalDataDef *, char * ));
|
||||
int DeregisterRxFunctions Args(( RxPackageGlobalDataDef *, RexxFunction *, int ));
|
||||
int SetPackageConstants Args(( RxPackageGlobalDataDef *, RxPackageConstantDef *, char * ));
|
||||
|
||||
Reference in New Issue
Block a user