/*************************************************************************/
/* Autor      : RTA                                                      */
/* Computer   : Amiga                                                    */
/* Sprache    : Ansi C                                                   */
/* Compiler   : SAS C-Compiler Version 5.1a                              */
/* Dateiname  : onlineglob.c                                             */
/* Projekt    : OnlineHelp                                               */
/* Erstellt am: 09 Nov 1991,17:40                                        */
/*************************************************************************/

#include "online.h"

/******************************************************************/
/* Fehlertexte                                                    */
/******************************************************************/
struct Errortext errortext=
   {
   "Unbekannte Option =>Abbruch von OnlineHelp\n",
   "OnlineHelp konnte die Req-Library nicht öffnen\n=>Abrruch von OnlineHelp\n",
   "OnlineHelp konnte das Fenster nicht öffnen\n=> Abbruch von OnlineHelp",
   "Zu wenig Speicher für OnlineHelp",
   "Fehler in der Struktur der OnlineHelp-Datei\n=>Abbruch",
   "OnlineHelp konnte die Datei nicht Laden \n=> Abbruch",
   "OnlineHelp konnte die Datei nicht Speichern \n=> Abbruch",
   "OnlineHelp Port konnte nicht geöffnet werden \n=> Abbruch",
   "OnlineHelp IO konnte nicht geöffnet werden   \n=> Abbruch",
   "OnlineHelp konnte den Suchstring nicht generieren \n=> Abbruch",
   "Fehler beim generieren des Index. Fehler bei Byte:",
   "Fehler beim Öffnen des Console-Device    \n=> Abbruch",
   "Das Fenster ist zu klein für OnlineHelp \n=> Abbruch",
   "Keine Doc-File(s)",
   "Sorry, der Suchbegriff wurde nicht gefunden",
   "Sorry, keine weitere Datei mehr zum Suchen da",
   "Anzahl der Doc-Files für den doclist-Befehl zu groß",
   "Formatieren...",
   "Suchen in der Datei",
   "Erstelle Index für ",
   "OnlineHelp ist schon im System => Abbruch\n",
   "Bitte geben Sie den Suchbegriff ein:",
   INVON"OnlineHelp Fehler:"INVOFF"\n",
   "OnlineHelp installiert...\n",
   "AREXX-Fehler:",
"Aufruf:\nOnlineHelp -l -t -w -h -a -i -p -s -q <docfile1>...<docfilen>\n"
"   -a    aktiviert den AREXX-Mode\n"
"   -i    Es wird ein Index für jedes Doc-File erstellt\n"
"         Dies geschieht automatisch, falls <docfilen>.index nicht existiert\n"
"         oder von einer älteren Version stammt.\n"
"   -p    Hiermit kann man vom CLI aus direkt ein Suchwort übergeben.\n"
"         Wird keines übergeben, wird es später mit einem Stringgadget\n"
"         abgefragt.\n"
"   -s    Man übergibt hier die Hex-Adresse eines Screens, auf den das Online-\n"
"         Help Window geöffnet werden soll.\n"
"   -q    Entfernt OnlineHelp aus dem System\n"
"   -w    Fensterbreite (def: 640)\n"
"   -h    Fensterhöhe (def: 200)\n"
"   -l    Fensteranfang links (def: zentriert)\n"
"   -t    Fensteranfang oben (def: zentriert)\n"
"   Man kann beliebig viele Doc-files übergeben. Sie werden der Reihe nach\n"
"   nach dem Suchwort durchsucht. Wird keines übergeben, wird es mit einem\n"
"   File-Requester später abgefragt. Dann kann allerdings nur noch ein Doc-\n"
"   File ausgewählt werden. Näheres siehe OnlineHelp.doc\n",
	"OnlineHelp nicht im System\n",
   "Abbruch ! Sind Sie sicher ?"
   };

struct ReqLib           *ReqBase=NULL;
struct IntuitionBase    *IntuitionBase;
struct RxsLib           *RexxSysBase;
struct GfxBase          *GfxBase;
struct Window           *mywindow=NULL;
struct Screen           *myscreen=NULL;
struct MsgPort 			*rexx_port = NULL;
struct Process          *myprocess;
struct Task             *mytask;
struct IOStdReq         *conwritemsg=NULL;
struct Port             *conwriteport=NULL;
struct ReqFileRequester fr;
BOOL                    quit=FALSE, /* Ende aus waiting() und waiting2() */
								index=FALSE,/* Es soll ein Index erstellt werden */
								statuson=TRUE,/* StatusWindow ja/nein */
								noarexx=TRUE,/* OnlineHelp im AREXX-Mode gestartet */
 							   gad0=TRUE,/* Gadget 0-4 an? */
								gad1=TRUE,
								gad2=TRUE,
								gad3=TRUE,
								gad4=TRUE;
APTR                    oldwindow;
USHORT                  maxx, /* Maximale Werte für den Screen */
	                     maxy,
			               winleft=640, /* Für das Window */
        		          	wintop=200,
			               winwidth=640,
        		          	winheight=200,
  				            fontheight=8,
           			    	maxzeile=640.0/8.0,/* Vom Console.device */
                        maxspalte=79;

/* Werte für cback.o */
BYTE                    *_procname = "OnlineHelp";
LONG                    _stack=4000,
                        _priority=5,
                        _BackGroundIO=1;

struct otext 				*hilfe=NULL; /* Zeiger auf die einzelnen Zeilen in*/
												 /* htext und deren Länge */
BYTE   						*pattern=NULL,/* Suchmuster */
								*text=NULL,/* Text aus dem Indexfile */
								*htext=NULL;/* Hilfstext */
LONG   						last=1,/* Letzte Position im argv. Ab da stehen die Docs*/ 
								aktpos=-1,/* aktuelle Zeile in htext */
								anzahl=0,/* Anzahl der Zeilen */
								suchindex=0;/* Position der letzten erfolgreichen Suche*/
												/* im Indexfile */
