home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 March
/
VPR9703A.ISO
/
VPR_DATA
/
DOGA
/
SOURCES
/
POLYEDIT.LZH
/
LIB
/
LIB.C
< prev
next >
Wrap
C/C++ Source or Header
|
1996-01-09
|
2KB
|
100 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "_lib.h"
#include "inlib.h"
extern int (**SystemFunc)();
int (*LibErrorExec)(char*) = NULL ;
int (*LibWarningExec)(char*) = NULL ;
#ifdef DYNAMIC
Library **LibAry ;
#endif
/* ライブラリの初期化 */
int __LibraryInit( func, lib )
void *func ;
Library **lib ;
{
#ifdef DYNAMIC
SystemFunc = (int(**)())func ;
LibAry = lib ;
#endif
LibErrorExec = NULL ;
LibWarningExec = NULL ;
return 0 ;
}
#ifdef DYNAMIC
/* ライブラリ番号を得る */
int LibraryGet( name )
char *name ;
{
int i ;
Library **lib = LibAry ;
if ( lib == NULL )
return 0 ;
for( i = 1 ; i < MAX_LIBS ; i++ )
{
if ( lib[i] != NULL && strcmp( lib[i]->name, name ) == 0 )
{
return i ;
}
}
return 0 ;
}
/* ライブラリ情報を得る */
Library *LibraryGetInfo( no )
int no ;
{
Library **lib = LibAry ;
if ( lib == NULL )
return NULL ;
else
return lib[no] ;
}
#endif
/* エラーメッセージの表示 */
int MessageError( msg )
char *msg ;
{
if ( LibErrorExec == NULL )
{
printf( "%s\n", msg );
exit( 1 );
return -1 ;
}
else
return (*LibErrorExec)( msg );
}
/* 警告メッセージの表示 */
int MessageWarning( msg )
char *msg ;
{
if ( LibWarningExec == NULL )
{
printf( "%s\n", msg );
return 0 ;
}
else
return (*LibWarningExec)( msg );
}
/* エラーメッセージ表示ルーチンの変更 */
void MessageSet( err, warn )
void *err, *warn ;
{
LibErrorExec = err ;
LibWarningExec = warn ;
}