;/*
;LC:LC -O -M -b1 -csf -v -rr -j100e -j73 ReccCtrl-Example.c
;BLink from LIB:CRes.o ReccCtrl-Example.o to ReccCtrl-Example LIB LIB:Lcr.lib SC SD ND
SC OPTIMIZE MODIFIED DATA=NEAR STRMERGE NOSTKCHK PARMS=REG ERROR=100 IGNORE=73 ReccCtrl-Example.c
SLink from LIB:CRes.o ReccCtrl-Example.o to ReccCtrl-Example LIB LIB:Sc.lib SC SD ND
Quit
*/

/*
** This is a simple example of how to access ReccControl using reccoon.library
**
** Written in May 1992 by Niclas Emdelius. All rights released.
**
*/

#include <exec/types.h>
#include <stdlib.h>
#include <string.h>

#include <proto/exec.h>
#include <proto/dos.h>

#include <Reccoon/Shared.h>
#define RLIB_MACRO
#include <Reccoon/Recclib.h>

#define puts(x) Write(Output(),x,sizeof(x))
#define putss(x) Write(Output(),x,strlen(x))

extern struct DosLibrary *DOSBase;

unsigned char		*Program_ID 	= "\0$VER: My_Program 0.40 (30.10.92)\n\r\0\0";

struct CtrlMessage 	ctrlmsg;
struct fig *		fig		= 0;
struct control *	ctrl		= 0;
struct MsgPort *	ctrlport	= 0;
struct MsgPort *	ctrlreplyport	= 0;
struct Library *	RecclibBase	= 0;

int Sluta( int );
int CXBRK(void);

void main(UWORD argc, UBYTE *argv[])
{

	RecclibBase=OpenLibrary("reccoon.library",0);
	if(!RecclibBase){
		puts("Couldn't open Reccoon.library\n");
		exit(20);
	}

/* Use linenumber 0xffff for doors and utilities */

	ctrl=OpenRCtrl(0,65535,&ctrlmsg,&ctrlport,&ctrlreplyport);
	if(!ctrl){
		puts("Couldn't access ReccControl!\nYou must have it running to use this program.\n");
		CloseLibrary(RecclibBase);
		exit(10);
	}

	fig=ctrl->fig;

	onexit((void *)Sluta); /* Set exit trap */

	puts("Sysop's name: ");
	putss(fig->sysopname);
	puts("\n");

	exit(0);

}

int Sluta(int e) /* Sluta is swedish for Quit */
{


	if(RecclibBase){
		CloseRCtrl(ctrlport,ctrlreplyport,&ctrlmsg);
		CloseLibrary(RecclibBase);
		RecclibBase=0;
	}
	return(e);
}

/* Keep if you want to disable ctrl-c checking */

int CXBRK(void) { return(0); }
