ING_DB
This commit is contained in:
parent
e99344e17d
commit
acc44032d0
|
|
@ -0,0 +1,196 @@
|
|||
/***********************
|
||||
** IIOPEN()
|
||||
***********************/
|
||||
|
||||
struct ro_dateibereich *iiopen(filename, modus, rc)
|
||||
{
|
||||
char *filename; /* PHYSISCHER DATEINAME */
|
||||
char modus; /* 'R' => NUR LESEN */
|
||||
/* 'U' => LESEN UND SCHREIBEN */
|
||||
/* 'L' => -=- -=- MIT LOGFUEHRUNG */
|
||||
int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */
|
||||
|
||||
RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H
|
||||
|
||||
AKTIONEN:
|
||||
- DIE DATENBANKDATEI IST IM ANGEGEBN.MODUS ZU EROEFFNEN UND EIN
|
||||
POINTER ZURUECKZUGEBEN, DER AUF EINEN DATEIBEREICH ZEIGT.
|
||||
- DER DATEIBEREICH IST VON iiopen() ZU FUELLEN.
|
||||
- FOLGENDE STRUKTURELEMENTE SIND EINZUTRAGEN
|
||||
|
||||
int lendateibereich; /* LAENGE DES BEREICHES */
|
||||
long anzzeilen; /* Anzahl der zugewiesenen Zeilen */
|
||||
long index; /* := 0 */
|
||||
long indexalt; /* := -2 */
|
||||
char modus; /* Modus der Eroeffnung R, U, L */
|
||||
char filespec[RO_MAXFILSPEC]; /* phys. Name der TD */
|
||||
int anzspalten; /* Anzahl der Spalten der TD */
|
||||
struct ro_spalte *spalten; /* -> Liste aller Spalten der TD */
|
||||
int lenfilepuffer; /* LAENGE DES PUFFERS FUER EINEN VOLLST. SATZ */
|
||||
char *filepuffer; /* POINTER AUF DEN FILEPUFFER (MALLOC()) */
|
||||
int anfdaten; /* Byteoffset zum ersten Datensatz */
|
||||
struct spalte *markspalte; /* Datensaetze zum Loeschen markiert */
|
||||
int eof_flag; /* := 0 */
|
||||
|
||||
- SPALTEN ZEIGT AUF EINEN BEREICH, DER NACHEINANDER DIE STRUKTUREN
|
||||
RO_SPALTE FUER ALLE SPALTEN ENTHAELT.
|
||||
FOLGENDE STRUKTURELEMENTE SIND EINZUTRAGEN
|
||||
|
||||
char name[9]; /* Spaltenname mit Blanks gefuellt */
|
||||
struct ro_ded ded; /* Beschreibung der Spalte */
|
||||
struct ro_ded charded; /* Beschreibung der Spalte in Zeichenkettenform*/
|
||||
|
||||
- FOLGENDE SPALTEN MUESSEN ENTHALTEN SEIN:
|
||||
TQLRECNO: SATZNUMMER (PRIMAERINDEX) LONG
|
||||
TQLMARK: LOESCHMARKIERUNG CHAR '*': ZUM LOESCHEN MARKIERT
|
||||
ALLES ANDERE: NICHT MARKIERT
|
||||
|
||||
/***********************
|
||||
** IICLOSE()
|
||||
***********************/
|
||||
|
||||
int iiclose(dateibereich, rc)
|
||||
{
|
||||
struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */
|
||||
int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */
|
||||
|
||||
RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H
|
||||
|
||||
AKTIONEN:
|
||||
- ABSCHLIESSEN DER DATENBANKDATEI BEZUEGLICH ZUGRIFFSPROZESSOR
|
||||
- DER DATEIBEREICH UND ALLE WEITEREN BEREICHE WERDEN VON TQL FREI-
|
||||
GEGEBEN
|
||||
|
||||
|
||||
/***********************
|
||||
** IINEXT()
|
||||
***********************/
|
||||
|
||||
int iinext(dateibereich, rc)
|
||||
{
|
||||
struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */
|
||||
int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */
|
||||
|
||||
RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H
|
||||
|
||||
AKTIONEN:
|
||||
- ES IST DER NAECHSTE SATZ IN DEN FILEPUFFER ZU UEBERTRAGEN.
|
||||
- WURDE KEIN INDEX EINGESTELLT (MIT IISETI), IST DER NAECHSTE
|
||||
SATZ ENTSPRECHEND PRIMAERINDEX ZU UEBERTRAGEN - SONST ENTSPR.
|
||||
DEM EINGESTELLTEN INDEX
|
||||
- IN DATEIBEREICH SIND EINZUTRAGEN:
|
||||
INDEX := SATZNUMMER
|
||||
EOF_FLAG := 1 WENN ENDE ERREICHT
|
||||
INDEX := 1 WENN ENDE ERREICHT
|
||||
- TQLMARK WIRD NICHT AUSGEWERTET => INNERHALB VON TQL
|
||||
|
||||
/***********************
|
||||
** IISETI()
|
||||
***********************/
|
||||
|
||||
int iiseti(dateibereich, indexname, rc)
|
||||
{
|
||||
struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */
|
||||
char *indexname; /* NULL ODER NAME DES EINZUSTELLENEN INDEXES */
|
||||
int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */
|
||||
|
||||
RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H
|
||||
|
||||
AKTIONEN:
|
||||
- ES IST DER IN INDEXNAME ANGEGEBENE INDEX EINZUSTELLEN BZW. ZU VER-
|
||||
MERKEN
|
||||
- IST INDEXNAME GLEICH NULL, IST KEIN INDEX EINZUSTELLEN
|
||||
- DIESER INDEX WIRD IN DEN FUNKTIONEN IINEXT() UND IIFIND() GENUTZT
|
||||
- ALLE ANDEREN INDIZES WERDEN VON TQL NICHT BETRACHTES, ABER VOM
|
||||
ZUGRIFFSPROZESSOR GEPFLEGT
|
||||
|
||||
/***********************
|
||||
** IIFIND()
|
||||
***********************/
|
||||
|
||||
int iifind(dateibereich, suchwert, rc)
|
||||
{
|
||||
struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */
|
||||
char *suchwert; /* AUFZUFINDENER SATZ */
|
||||
int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */
|
||||
|
||||
RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H
|
||||
|
||||
AKTIONEN:
|
||||
- ES IST DER SATZ ZU SUCHEN BZW. ZU POSITIONIEREN, DER DEM SUCHWERT
|
||||
IM EINGESTELLTEN INDEX (MIT IISETI) ENTSPRICHT
|
||||
- DER SATZ IST IN DEN FILEPUFFER ZU UEBERTRAGEN, FALLS GEFUNDEN
|
||||
- IN DATEIBEREICH SIND EINZUTRAGEN:
|
||||
INDEX := SATZNUMMER
|
||||
EOF_FLAG := 1 WENN ENDE ERREICHT
|
||||
INDEX := 1 WENN ENDE ERREICHT
|
||||
- TQLMARK WIRD NICHT AUSGEWERTET => INNERHALB VON TQL
|
||||
|
||||
/***********************
|
||||
** IIGOTO()
|
||||
***********************/
|
||||
|
||||
int iigoto(dateibereich, satznummer, rc)
|
||||
{
|
||||
struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */
|
||||
long satznummer; /* EINZUSTELLENDER SATZ */
|
||||
int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */
|
||||
|
||||
RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H
|
||||
|
||||
AKTIONEN:
|
||||
- ES IST DER SATZ ENTSPR. PRIMAERINDEX EINZUSTELLEN , DASS BEIM
|
||||
NAECHSTEN IINEXT() DER SATZ MIT DER ANGEGEB. SATZNUMMER GELESEN WIRD
|
||||
(SOLLTE SO ARBEITEN, WIE LSEEK() )
|
||||
- WENN SATZNUMMER -1 IST, SOLL BEGIN OF FILE EINGESTELLT WERDEN, D.H.
|
||||
- WENN KEIN INDEX AKTIV IST (MIT IISETI): SATZ 0 ENTSPR.PRIMAERINDEX
|
||||
EINSTELLEN
|
||||
- WENN INDEX AKTIV IST (MIT IISETI) : ERTSTEN SATZ ENTSPR.
|
||||
INDEX EINSTELLEN
|
||||
|
||||
/***********************
|
||||
** IIWRITE()
|
||||
***********************/
|
||||
|
||||
int iiwrite(dateibereich, rc)
|
||||
{
|
||||
struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */
|
||||
int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */
|
||||
|
||||
RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H
|
||||
|
||||
AKTIONEN:
|
||||
- DER FILEPUFFER WIRD AUF DEN ZULETZT GELESENEN SATZ GESCHRIEBEN
|
||||
- ALLE INDIZES SIND ZU AKTUALISIEREN
|
||||
|
||||
/***********************
|
||||
** IIAPPEND()
|
||||
***********************/
|
||||
|
||||
int iiappend(dateibereich, rc)
|
||||
{
|
||||
struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */
|
||||
int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */
|
||||
|
||||
RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H
|
||||
|
||||
AKTIONEN:
|
||||
- HINZUFUEGEN EINES SATZES, DESSEN SATZNUMMER IN INDEX STEHT.
|
||||
- IM FILEPUFFER STEHT DER SCHREIBENE SATZ
|
||||
- ALLE INDIZES SIND ZU AKTUALISIEREN
|
||||
|
||||
/***********************
|
||||
** IIDELETE()
|
||||
***********************/
|
||||
|
||||
int iidelete(dateibereich, rc)
|
||||
{
|
||||
struct ro_dateibereich *dateibereich; /* DATEIBEREICH DER DATEI */
|
||||
int *rc; /* IM FEHLERFALL WIRD HIER EIN NUMER.CODE EINGETRAGEN */
|
||||
|
||||
RETURN: 0 => FEHLER , FEHLERCODE STEHT IN RC - LISTE DER FEHLER IN ROERR.H
|
||||
|
||||
AKTIONEN:
|
||||
- LOESCHEN EINES SATZES, DESSEN SATZNUMMER IN INDEX STEHT
|
||||
- IM PRIMAERINDEX IST DIE SATZNUMMER ZU ENTFERNEN
|
||||
- ALLE INDIZES SIND ZU AKTUALISIEREN
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#define RM_MEMLEN sizeof(struct rm_memtab)
|
||||
#define RM_HMEMTAB sizeof(struct rm_tabhead)
|
||||
|
||||
struct rm_memtab
|
||||
{
|
||||
char mname[10];
|
||||
int moff;
|
||||
short mlen;
|
||||
};
|
||||
|
||||
struct rm_tabhead
|
||||
{
|
||||
char *zmemory;
|
||||
int lenmemory;
|
||||
int manz;
|
||||
};
|
||||
|
|
@ -0,0 +1,326 @@
|
|||
/* IDENT: 100359 - qdef */
|
||||
/* Design: van Treek */
|
||||
|
||||
# ifndef TQLSYS
|
||||
# include "TQLSYS.H" /* Systemdefinitionen */
|
||||
# endif
|
||||
|
||||
/*
|
||||
** Definition der Symbole fuer ausgelassene Funktionsargumente
|
||||
*/
|
||||
|
||||
# ifndef G_NILA
|
||||
# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILI
|
||||
# define G_NILI (-1) /* ausgelassener INT-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILL
|
||||
# define G_NILL (-1l) /* ausgelassener LONG-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILC
|
||||
# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */
|
||||
# endif
|
||||
# ifndef G_NILF
|
||||
# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */
|
||||
# endif
|
||||
/*
|
||||
** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes
|
||||
*/
|
||||
|
||||
# ifndef gdebug
|
||||
|
||||
# define gdebug(x,y) /* DEBUG ausschalten */ \
|
||||
{ \
|
||||
char *parm1, *parm2; \
|
||||
parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Symbole der Kommandoschluesselwoerter, die in der ersten Position
|
||||
* der Kommandozeile auftreten koennen.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
# define QT_ACC 0
|
||||
# define QT_APP QT_ACC + 1
|
||||
# define QT_AVE QT_APP + 1
|
||||
# define QT_BRO QT_AVE + 1
|
||||
# define QT_CAN QT_BRO + 1
|
||||
# define QT_CAS QT_CAN + 1
|
||||
# define QT_CHA QT_CAS + 1
|
||||
# define QT_CLE QT_CHA + 1
|
||||
# define QT_CLO QT_CLE + 1
|
||||
# define QT_COT QT_CLO + 1
|
||||
# define QT_COP 10
|
||||
# define QT_COU QT_COP + 1
|
||||
# define QT_CRE QT_COU + 1
|
||||
# define QT_DBG QT_CRE + 1
|
||||
# define QT_DEL QT_DBG + 1
|
||||
# define QT_DIR QT_DEL + 1
|
||||
# define QT_DIS QT_DIR + 1
|
||||
# define QT_DO QT_DIS + 1
|
||||
# define QT_EDI QT_DO + 1
|
||||
# define QT_EJE QT_EDI + 1
|
||||
# define QT_ELS 20
|
||||
# define QT_ENC QT_ELS + 1
|
||||
# define QT_ENI QT_ENC + 1
|
||||
# define QT_END QT_ENI + 1
|
||||
# define QT_ENT QT_END + 1
|
||||
# define QT_ERA QT_ENT + 1
|
||||
# define QT_EXI QT_ERA + 1
|
||||
# define QT_FIN QT_EXI + 1
|
||||
# define QT_GO QT_FIN + 1
|
||||
# define QT_GRA QT_GO + 1 /* GRAPHIC */
|
||||
# define QT_IF QT_GRA + 1
|
||||
# define QT_IND 31
|
||||
# define QT_INP QT_IND + 1
|
||||
# define QT_INS QT_INP + 1
|
||||
# define QT_JOI QT_INS + 1
|
||||
# define QT_LAB QT_JOI + 1
|
||||
# define QT_LIS QT_LAB + 1
|
||||
# define QT_LOC QT_LIS + 1
|
||||
# define QT_LOO QT_LOC + 1
|
||||
# define QT_MOD QT_LOO + 1
|
||||
# define QT_NOT QT_MOD + 1
|
||||
# define QT_OTH 41
|
||||
# define QT_PAC QT_OTH + 1
|
||||
# define QT_PAR QT_PAC + 1
|
||||
# define QT_PRI QT_PAR + 1
|
||||
# define QT_PUB QT_PRI + 1
|
||||
# define QT_QUI QT_PUB + 1
|
||||
# define QT_REA QT_QUI + 1
|
||||
# define QT_REC QT_REA + 1
|
||||
# define QT_REI QT_REC + 1
|
||||
# define QT_REL QT_REI + 1
|
||||
# define QT_REN 51
|
||||
# define QT_RPL QT_REN + 1
|
||||
# define QT_REP QT_RPL + 1
|
||||
# define QT_RST QT_REP + 1
|
||||
# define QT_RTU QT_RST + 1
|
||||
# define QT_RUN QT_RTU + 1
|
||||
# define QT_SAV QT_RUN + 1
|
||||
# define QT_SCA QT_SAV + 1
|
||||
# define QT_SEE QT_SCA + 1 /* SEEK */
|
||||
# define QT_SEL QT_SEE + 1
|
||||
# define QT_SET QT_SEL + 1
|
||||
# define QT_SKI 62
|
||||
# define QT_SOR QT_SKI + 1
|
||||
# define QT_STO QT_SOR + 1
|
||||
# define QT_SUM QT_STO + 1
|
||||
# define QT_TEX QT_SUM + 1
|
||||
# define QT_TOT QT_TEX + 1
|
||||
# define QT_TYP QT_TOT + 1
|
||||
# define QT_UPD QT_TYP + 1
|
||||
# define QT_USE QT_UPD + 1
|
||||
# define QT_WAI QT_USE + 1
|
||||
# define QT_ZAP 72
|
||||
# define QT_FRA QT_ZAP + 1
|
||||
# define QT_POS QT_FRA + 1
|
||||
# define QT_PRO QT_POS + 1
|
||||
# define QT_HEL QT_POS + 1
|
||||
# define QT_ASS QT_HEL + 1
|
||||
# define QT_EOF QT_ASS + 1
|
||||
# define QT_PLO QT_EOF + 1
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Symbole der Parameter-Schluesselworte
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
# define QP_ADD 0501
|
||||
# define QP_ALL 0502
|
||||
# define QP_ALT 0503
|
||||
# define QP_BEL 0504
|
||||
# define QP_BEF 0505
|
||||
# define QP_BLA 0506
|
||||
# define QP_BOT 0507
|
||||
# define QP_CAL 0510
|
||||
# define QP_CAR 0511
|
||||
# define QP_CAS 0512
|
||||
# define QP_COL 0513
|
||||
# define QP_CON 0514
|
||||
# define QP_COS 0515
|
||||
# define QP_DEB 0516
|
||||
# define QP_DEF 0517
|
||||
# define QP_DES 0520
|
||||
# define QP_DLM 0521
|
||||
# define QP_ECH 0522
|
||||
# define QP_ERA 0523
|
||||
# define QP_ESC 0524
|
||||
# define QP_EXA 0525
|
||||
# define QP_FIE 0526
|
||||
# define QP_FOM 0527
|
||||
# define QP_FOR 0530
|
||||
# define QP_FRO 0531
|
||||
# define QP_GET 0532
|
||||
# define QP_HEA 0533
|
||||
# define QP_IND 0534
|
||||
# define QP_INE 0535
|
||||
# define QP_LIK 0536
|
||||
# define QP_LIN 0537
|
||||
# define QP_MAR 0540
|
||||
# define QP_MEM 0541
|
||||
# define QP_NBU 0542
|
||||
# define QP_NEX 0543
|
||||
# define QP_NOT 0544
|
||||
# define QP_OFF 0545
|
||||
# define QP_ON 0546
|
||||
# define QP_PRI 0547
|
||||
# define QP_PRN 0550
|
||||
# define QP_RAW 0551
|
||||
# define QP_REA 0552
|
||||
# define QP_REO 0553
|
||||
# define QP_RNA 0554
|
||||
# define QP_REP 0555
|
||||
# define QP_RPO 0556
|
||||
# define QP_RSE 0557
|
||||
# define QP_SCR 0560
|
||||
# define QP_SDF 0561
|
||||
# define QP_SEO 0562
|
||||
# define QP_SEG 0563
|
||||
# define QP_STE 0564
|
||||
# define QP_STU 0565
|
||||
# define QP_SUM 0566
|
||||
# define QP_TAL 0567
|
||||
# define QP_TUT 0570
|
||||
# define QP_TOP 0571
|
||||
# define QP_TO 0572
|
||||
# define QP_VOL 0573
|
||||
# define QP_WHI 0574
|
||||
# define QP_WIT 0575
|
||||
# define QP_MDM 0576
|
||||
# define QP_EXT 0577
|
||||
# define QP_KEY 0600
|
||||
# define QP_CMN 0601
|
||||
# define QP_MST 0602
|
||||
# define QP_MPO 0603
|
||||
# define QP_DTE 0604
|
||||
# define QP_KYU 0605
|
||||
# define QP_MDP 0606
|
||||
# define QP_MME 0607
|
||||
# define QP_PRO 0610
|
||||
# define QP_ALI 0611
|
||||
# define QP_CLE 0612
|
||||
# define QP_COR 0613
|
||||
# define QP_COM 0614
|
||||
# define QP_DTB 0615
|
||||
# define QP_DEC 0616
|
||||
# define QP_DEL 0617
|
||||
# define QP_DLR 0620
|
||||
# define QP_DEV 0621
|
||||
# define QP_EXC 0622
|
||||
# define QP_FIL 0623
|
||||
# define QP_FLT 0624
|
||||
# define QP_FIX 0625
|
||||
# define QP_FRM 0626
|
||||
# define QP_FUN 0627
|
||||
# define QP_GTS 0630
|
||||
# define QP_HEL 0631
|
||||
# define QP_INT 0632
|
||||
# define QP_LAB 0633
|
||||
# define QP_MAS 0634
|
||||
# define QP_MDS 0635
|
||||
# define QP_MEN 0636
|
||||
# define QP_NOE 0637
|
||||
# define QP_PAT 0640
|
||||
# define QP_PIC 0641
|
||||
# define QP_PLA 0642
|
||||
# define QP_RAD 0643
|
||||
# define QP_RAG 0644
|
||||
# define QP_REL 0645
|
||||
# define QP_RPL 0646
|
||||
# define QP_SAF 0647
|
||||
# define QP_SAM 0650
|
||||
# define QP_SVE 0651
|
||||
# define QP_SAY 0652
|
||||
# define QP_STA 0653
|
||||
# define QP_UNI 0654
|
||||
# define QP_GRA 0655
|
||||
|
||||
/********************************************************
|
||||
*
|
||||
* FEHLER-DEFINITIONEN
|
||||
*
|
||||
********************************************************/
|
||||
|
||||
# define QA_NOKDO 1
|
||||
# define QA_SYNTAX 2
|
||||
# define QA_NOTFOUND 3
|
||||
# define QA_EXPRESSION 4
|
||||
# define QA_KDOFILE 5
|
||||
# define QA_OVERWHILE 6
|
||||
# define QA_OVERIF 7
|
||||
# define QA_OVERDOCASE 8
|
||||
# define QA_NOSPACE 9
|
||||
# define QA_NOTVARIALBLE 10
|
||||
# define QA_NOTPRG 11
|
||||
# define QA_NOTREC 12
|
||||
# define QA_NOTALIAS 13
|
||||
# define QA_NOTIMP 14
|
||||
# define QA_PRGERROR 15
|
||||
# define QA_NOTHELP 16
|
||||
# define QA_BEREICH 17
|
||||
# define QA_NOTOPEN 18
|
||||
# define QA_INTERUPT 19
|
||||
|
||||
/*
|
||||
** Sonstige Definitionen
|
||||
*/
|
||||
|
||||
# define QS_NONAME '\176' /* keine Namenspruefung bei LEX */
|
||||
|
||||
|
||||
/* Zeichenkettenzeichen */
|
||||
|
||||
# define QZ_ZKCH1 '\''
|
||||
# define QZ_ZKCH2 '"'
|
||||
# define QZ_ZKCH3 '['
|
||||
|
||||
|
||||
# define QA_KLAA 06101
|
||||
# define QA_KLAZ 06102
|
||||
# define QA_KENDE 06106
|
||||
# define QA_KOMMA 0200
|
||||
|
||||
# define QA_SONSTNAME 01003
|
||||
|
||||
# define QA_KONSTANTE 02000
|
||||
# define QA_ZKONST 02010
|
||||
# define QA_NKONST 02020
|
||||
# define QA_LKONST 02030
|
||||
|
||||
# define QA_TRUE 02031
|
||||
# define QA_FALSE 02032
|
||||
|
||||
# define QA_FUNKTION 03000
|
||||
# define QA_OPERATOR 04000
|
||||
# define QA_PRIORITAET 070
|
||||
|
||||
# define QA_NICHT 04061
|
||||
# define QA_EINMINUS 04062 /* einseitiges Minus */
|
||||
|
||||
# define QA_MUL 04051
|
||||
# define QA_DIV 04052
|
||||
# define QA_PLUS 04041
|
||||
# define QA_MINUS 04042
|
||||
|
||||
# define QA_GLEICH 04031
|
||||
# define QA_UNGLEICH 04032
|
||||
# define QA_GROESSER 04033
|
||||
# define QA_KLEINER 04034
|
||||
# define QA_GRGLEICH 04035
|
||||
# define QA_KLGLEICH 04036
|
||||
|
||||
# define QA_UND 04021
|
||||
# define QA_ODER 04011
|
||||
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
|
||||
/*------------------------------------------------------------------*/
|
||||
/* M A K R O D E F I N I T I O N E N fuer Generierung T Q L */
|
||||
/*------------------------------------------------------------------*/
|
||||
/* 1= in Benutzung
|
||||
0= nicht in Benutzung */
|
||||
#ifdef psu
|
||||
#define TOP /* TQL/ESER nur fuer TOPAS */
|
||||
#endif
|
||||
|
||||
#ifndef TOP
|
||||
|
||||
#define GEN_TOP 1
|
||||
#define GEN_SFI 1
|
||||
#define GEN_FIX 1
|
||||
#define GEN_INT 0
|
||||
|
||||
#else
|
||||
|
||||
#define GEN_TOP 1 /* Generierung nur TOPAS */
|
||||
#define GEN_SFI 0
|
||||
#define GEN_FIX 0
|
||||
#define GEN_INT 0
|
||||
|
||||
#endif
|
||||
|
||||
/*------------------------------------------------------------------*/
|
||||
#if (GEN_TOP + GEN_SFI + GEN_FIX + GEN_INT) > 1
|
||||
#define GENIF(X) \
|
||||
if(X)
|
||||
#else
|
||||
#define GENIF(X)
|
||||
#endif
|
||||
/*------------------------------------------------------------------*/
|
||||
#if (GEN_TOP + GEN_SFI + GEN_FIX + GEN_INT) > 1
|
||||
#define GENSWITCH(X) \
|
||||
switch(X)
|
||||
#else
|
||||
#define GENSWITCH(X)
|
||||
#endif
|
||||
/*------------------------------------------------------------------*/
|
||||
#if (GEN_TOP + GEN_SFI + GEN_FIX + GEN_INT) > 1
|
||||
#define GENCASE(X) \
|
||||
case (X):
|
||||
#else
|
||||
#define GENCASE(X)
|
||||
#endif
|
||||
/*------------------------------------------------------------------*/
|
||||
#if (GEN_TOP + GEN_SFI + GEN_FIX + GEN_INT) > 1
|
||||
#define GENBREAK \
|
||||
break;
|
||||
#else
|
||||
#define GENBREAK
|
||||
#endif
|
||||
/*------------------------------------------------------------------*/
|
||||
|
||||
|
|
@ -0,0 +1,252 @@
|
|||
/* IDENT: 102159 - qstrd */
|
||||
/* Design: van Treek */
|
||||
|
||||
/*
|
||||
** Definition der Symbole fuer ausgelassene Funktionsargumente
|
||||
*/
|
||||
|
||||
# ifndef G_NILA
|
||||
# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILI
|
||||
# define G_NILI (-1) /* ausgelassener INT-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILL
|
||||
# define G_NILL (-1l) /* ausgelassener LONG-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILC
|
||||
# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILF
|
||||
# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */
|
||||
# endif
|
||||
|
||||
/*
|
||||
** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes
|
||||
*/
|
||||
|
||||
# ifndef gdebug
|
||||
|
||||
# define gdebug(x,y) /* DEBUG ausschalten */ \
|
||||
{ \
|
||||
char *parm1, *parm2; \
|
||||
parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Definition der Makros zur Arbeit mit Interface
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
# ifdef SPSU
|
||||
# define fopen(a,b) \
|
||||
gu_fopen_eser(a,b)
|
||||
# endif
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Definition der Maximalen Feldgroessen bzw. Stackgroessen
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
# ifndef NULL
|
||||
# include <stdio.h> /* nur einziehen wenn nicht gleichzeitig rostrd.h */
|
||||
# endif
|
||||
|
||||
/*********************** 32 BIT VARIANTE ANFANG ***************************/
|
||||
|
||||
# ifdef SSVP
|
||||
|
||||
# ifndef QC_MAXPGR
|
||||
# define QC_MAXPGR 32 /* geschacht. Programmdatein */
|
||||
# endif
|
||||
|
||||
/* HORN 13.1.89 Diese Definition wird auch in rostrd.h gebraucht, da sie
|
||||
in einer Strukturdefinition verwendet wird. */
|
||||
|
||||
# define QC_MAXLOOP 32 /* geschacht. DO WHILE-Schleifen */
|
||||
# define QC_MAXIF 32 /* geschacht. IF-Anweisungen */
|
||||
# define QC_MAXCASE 32 /* geschacht. DO CASE-Anweisungen */
|
||||
# define QC_MAXFILSPEC 100 /* max.Laenge einer File-Angabe */
|
||||
# define QC_MAXBEREICH 256 /* Eingabepufferlaenge */
|
||||
# define QC_MAXPROC 101 /* max.Anzahl an Prozeduren */
|
||||
# define QC_MAXDO 33 /* max.Anzahl an Do-Dateien */
|
||||
# define QC_MAXPARAMETER 17 /* max.Anzahl an DO-Parametern */
|
||||
|
||||
# else
|
||||
|
||||
/*********************** 16 BIT VARIANTE ANFANG ***************************/
|
||||
|
||||
|
||||
# ifndef QC_MAXPGR
|
||||
# define QC_MAXPGR 5 /* geschacht. Programmdatein */
|
||||
# endif
|
||||
|
||||
/* HORN 13.1.89 Diese Definition wird auch in rostrd.h gebraucht, da sie
|
||||
in einer Strukturdefinition verwendet wird. */
|
||||
|
||||
# define QC_MAXLOOP 5 /* geschacht. DO WHILE-Schleifen */
|
||||
# define QC_MAXIF 5 /* geschacht. IF-Anweisungen */
|
||||
# define QC_MAXCASE 5 /* geschacht. DO CASE-Anweisungen */
|
||||
# define QC_MAXFILSPEC 40 /* max.Laenge einer File-Angabe */
|
||||
# define QC_MAXBEREICH 256 /* Eingabepufferlaenge */
|
||||
# define QC_MAXPROC 10 /* max.Anzahl an Prozeduren */
|
||||
# define QC_MAXDO 5 /* max.Anzahl an Do-Dateien */
|
||||
# define QC_MAXPARAMETER 5 /* max.Anzahl an DO-Parametern */
|
||||
|
||||
# endif
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Stackdefinitionen: Programmstack und Schleifenstack.
|
||||
* Jedes Programm (DO NAME) hat MAXLOOP moegliche Schleifen.
|
||||
* Es gibt MAXPGR Programmstacks.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
struct doparm
|
||||
{
|
||||
int do_flag; /* Kenner: 0->keine Variable 1->Var.*/
|
||||
char do_variable[40]; /* Variablen-Name */
|
||||
};
|
||||
|
||||
struct loopstack /* Schleifenstack */
|
||||
{
|
||||
int lcount; /* Stacktiefe */
|
||||
char *position[QC_MAXLOOP]; /* Satzposition */
|
||||
int aktifcount[QC_MAXLOOP]; /* If-Tiefe */
|
||||
int aktcasecount[QC_MAXLOOP]; /* Case-Tiefe */
|
||||
};
|
||||
|
||||
struct pgrstack /* Programmstack */
|
||||
{
|
||||
char pgrname[QC_MAXFILSPEC]; /* Programm-Name */
|
||||
struct loopstack *loop; /* Schleifenstack-Pointer */
|
||||
char *last; /* letzte Satzposition im Programm */
|
||||
struct doparm withparm[QC_MAXPARAMETER]; /* WITH */
|
||||
struct doparm paraparm[QC_MAXPARAMETER]; /* PARAMETERS */
|
||||
};
|
||||
|
||||
struct descr
|
||||
{
|
||||
int len; /* Laenge der Zeichenkette */
|
||||
char *string; /* -> Zeichenkette */
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Struktur des Parameterblocks, der an das RO-Interface uebergeben
|
||||
* wird
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
struct qi_parameter
|
||||
{
|
||||
long bereich; /* ALL | NEXT */
|
||||
char select; /* 'P' | 'S' */
|
||||
int q_opsave; /* FUER CONTINUE */
|
||||
int fl_all; /* ALL-Flag */
|
||||
int fl_record; /* RECORD-Flag */
|
||||
int fl_next; /* NEXT-Flag */
|
||||
int fl_parameter; /* Parameter-Flag 0->ohne Parameter */
|
||||
char *forp; /* Bedingung */
|
||||
char *to; /* Speicher-Name */
|
||||
char *file; /* TOPAS-Datei */
|
||||
char *input; /* Eigabedatei */
|
||||
char *outfile; /* Ausgabedatei */
|
||||
char *field; /* Spaltenliste */
|
||||
char *on; /* Spaltenname */
|
||||
char *mdm; /* Entity-Name */
|
||||
char *from; /* Append-From */
|
||||
char *delimit; /* Begrenzungszeichen */
|
||||
char *skey; /* Schluesselbaumname */
|
||||
char *pkey;
|
||||
char *find; /* Zeichenkette */
|
||||
char *aus1; /* Ausdruck 1 */
|
||||
char *aus2; /* Ausdruck 2 */
|
||||
char *add; /* Spaltenliste */
|
||||
char *rep; /* -=- */
|
||||
|
||||
int sdf; /* SDF */
|
||||
int blank; /* BLANK */
|
||||
int extended; /* EXTENDED */
|
||||
int mdmfl; /* MDM */
|
||||
int structure; /* STRUCTURE */
|
||||
int off; /* OFF*/
|
||||
int rotop; /* TOP */
|
||||
int memory; /* MEMORY */
|
||||
int qindex; /* INDEX */
|
||||
int record; /* RECORD */
|
||||
int setfkt;
|
||||
char *form; /* FORM */
|
||||
int report; /* REPORT */
|
||||
char *qheading; /* HEADING */
|
||||
char *with; /* WITH bei JOIN */
|
||||
int whileflag; /* WHILE spezif. */
|
||||
int read; /* READFLAG F. USE */
|
||||
char q_findsave[79]; /* FELD F.FIND UND LOCATE: CONTINUE */
|
||||
char qi_frei[1]; /* Reserve */
|
||||
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Struktur des TQL-Steuerblocks q_tql
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
struct q_tql
|
||||
{
|
||||
struct ro_zvt zvt; /* zentrale Verarb.-Tabelle */
|
||||
int q_terminal; /* Terminalflag: 1 = TT: */
|
||||
int q_error; /* Fehlerwort: 0 = okay */
|
||||
int q_stopflag; /* Stopwort: 1 = Abbruch */
|
||||
int q_topkdo; /* Kommando-Code */
|
||||
FILE *q_kdofile; /* Kommando-Eingabefile */
|
||||
char *q_actsatz; /* aktueller Eingabesatz */
|
||||
char *q_kdoptr; /* Kdo-Pointer */
|
||||
char *q_kdosave; /* =-= */
|
||||
int q_rorc; /* RO-Rerurn-Code */
|
||||
struct pgrstack q_pgrstack[QC_MAXPGR]; /* Programm-Stack */
|
||||
struct loopstack q_loopstack[QC_MAXPGR];/* Schleifen-Stack */
|
||||
int q_ifstack[QC_MAXIF]; /* IF-Stack */
|
||||
int q_ifcount; /* IF-Zaehler */
|
||||
int q_casestack[QC_MAXCASE]; /* CASE-Stack */
|
||||
int q_casecount; /* CASE-Zaehler */
|
||||
struct qi_parameter qi_roparm; /* Parameterblock Interface */
|
||||
char q_parmbereich[QC_MAXBEREICH]; /* Parameterbereich */
|
||||
char *q_proctab; /* Prozedur-Tabelle */
|
||||
char *q_dotab; /* kdo-Datei-Tabelle */
|
||||
char *q_procspace; /* Speicher f.Procedure-Datei */
|
||||
char *q_aliastab; /* Aliasnamen-Tabelle */
|
||||
int q_assist; /* 0:aus 1:ein */
|
||||
char *q_lastparm; /* Letzter gelexter Parameter */
|
||||
int q_fullscr; /* 0:aus 1:ein */
|
||||
int q_stmflag; /* Debugger:TQL-Kdo -Flag */
|
||||
int q_frei[7]; /* Reserve */
|
||||
};
|
||||
|
||||
/*****************************************************************
|
||||
*
|
||||
* Struktur des Prozedurstacks
|
||||
*
|
||||
* Der Stack beinhaltet die Namen und die Adressen der sich im HS
|
||||
* befindlichen Prozeduren.
|
||||
*
|
||||
*****************************************************************/
|
||||
|
||||
struct qc_proctab
|
||||
{
|
||||
char procname[QC_MAXFILSPEC]; /* Prozedurname */
|
||||
char *procptr; /* Prozeduradresse */
|
||||
};
|
||||
|
||||
|
|
@ -0,0 +1,245 @@
|
|||
/* IDENT: 100359 - RODEF.H */
|
||||
|
||||
# ifndef TQLSYS
|
||||
# include "TQLSYS.H" /* Systemdefinitionen */
|
||||
# endif
|
||||
/*
|
||||
** Definition der Symbole fuer ausgelassene Funktionsargumente
|
||||
*/
|
||||
|
||||
# ifndef G_NILA
|
||||
# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILI
|
||||
# define G_NILI (-1) /* ausgelassener INT-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILL
|
||||
# define G_NILL (-1l) /* ausgelassener LONG-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILC
|
||||
# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */
|
||||
# endif
|
||||
# ifndef G_NILF
|
||||
# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */
|
||||
# endif
|
||||
/*
|
||||
** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes
|
||||
*/
|
||||
|
||||
# ifndef gdebug
|
||||
|
||||
# define gdebug(x,y) /* DEBUG ausschalten */ \
|
||||
{ \
|
||||
char *parm1, *parm2; \
|
||||
parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Definitionen zur Arbeit mit Relationalen Operatoren
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
# define RA_MAXINT 07777777777 /* groesste positive Zahl */
|
||||
|
||||
/* Definition der Funktionswerte der SET - Funktion */
|
||||
|
||||
# define RF_ALTE 0503 /* QP_ALT */
|
||||
# define RF_BELL 0504 /* QP_BEL */
|
||||
# define RF_CARR 0511 /* QP_CAR */
|
||||
# define RF_COLO 0613 /* QP_COR */
|
||||
# define RF_CONF 0514 /* QP_CON */
|
||||
# define RF_CONS 0515 /* QP_COS */
|
||||
# define RF_DEBU 0516 /* QP_DEB */
|
||||
# define RF_DECI 0616 /* QP_DEC */
|
||||
# define RF_DEFA 0517 /* QP_DEF */
|
||||
# define RF_DELE 0617 /* QP_DEL */
|
||||
# define RF_DELI 0620 /* QP_DLR */
|
||||
# define RF_DEVI 0621 /* QP_DEV */
|
||||
# define RF_ECHO 0522 /* QP_ECH */
|
||||
# define RF_ESCA 0524 /* QP_ESC */
|
||||
# define RF_EXAC 0525 /* QP_EXA */
|
||||
# define RF_FILT 0624 /* QP_FLT */
|
||||
# define RF_FIXE 0625 /* QP_FIX */
|
||||
# define RF_FORM 0527 /* QP_FOM */
|
||||
# define RF_HEAD 0533 /* QP_HEA */
|
||||
# define RF_HELP 0631 /* QP_HEL */
|
||||
# define RF_INDE 0534 /* QP_IND */
|
||||
# define RF_INTE 0535 /* QP_INE */
|
||||
# define RF_KYUP 0605 /* QP_KYU */
|
||||
# define RF_MARG 0540 /* QP_MAR */
|
||||
# define RF_MDMP 0606 /* QP_MDP */
|
||||
# define RF_MENU 0636 /* QP_MEN */
|
||||
# define RF_NBUF 0542 /* QP_NBU */
|
||||
# define RF_PATH 0640 /* QP_PAT */
|
||||
# define RF_PRIN 0550 /* QP_PRN */
|
||||
# define RF_PROC 0610 /* QP_PRO */
|
||||
# define RF_RELA 0645 /* QP_REL */
|
||||
# define RF_SAFE 0647 /* QP_SAF */
|
||||
# define RF_SCOR 0777 /* -----------------> BEI WILLI NICHT ENTHALTEN !!!! */
|
||||
# define RF_SEGR 0563 /* QP_SEG */
|
||||
# define RF_STEP 0564 /* QP_STE */
|
||||
# define RF_TALK 0567 /* QP_TAL */
|
||||
# define RF_TOPU 0570 /* QP_TUT */
|
||||
# define RF_UNIQ 0654 /* QP_UNI */
|
||||
# define RF_VOLU 0573 /* QP_VOL */
|
||||
|
||||
# define ANY '\177'
|
||||
# define NONAME '\176' /* keine Namenspruefung bei LEX */
|
||||
# define NCON '\175' /* keine Namenspruefung bei dresp */
|
||||
|
||||
/* Zeichenkettenzeichen */
|
||||
|
||||
# define ZKCH1 '\''
|
||||
# define ZKCH2 '"'
|
||||
|
||||
# define PECH '\0' /* Endezeichen fuer Parameterzeile */
|
||||
|
||||
/* Definitionen fuer Bearbeitung von Ausdruecken */
|
||||
|
||||
# define RA_MAXTERMINALSYMBOL 0777
|
||||
|
||||
# define RA_MASKE 07000
|
||||
# define RA_EINZELZEICHEN 06100
|
||||
# define RA_KLAA 06101
|
||||
# define RA_KLAZ 06102
|
||||
# define RA_INDIREKT 06103
|
||||
# define RA_KENDE 06106
|
||||
# define RA_KOMMA 06107
|
||||
|
||||
# define RA_NAME 01000
|
||||
# define RA_DATEIDES 01001
|
||||
# define RA_MEMNAME 01002
|
||||
# define RA_SONSTNAME 01003
|
||||
|
||||
# define RA_KONSTANTE 02000
|
||||
# define RA_ZKONST 02010
|
||||
# define RA_NKONST 02020
|
||||
# define RA_LKONST 02030
|
||||
# define RA_TRUE 02031
|
||||
# define RA_FALSE 02032
|
||||
|
||||
# define RA_FUNKTION 03000
|
||||
# define RA_FKTEIN 03100
|
||||
/* Oktalkodierung: 3 x y y [ 3 - Funktion ] */
|
||||
/* ^ Anzahl der Argumente */
|
||||
/* ^ zweistellige laufende Nummer */
|
||||
# define RA_FBOF 03001 /* ==> Funktionen ohne Argumente ohne Datumsbezug */
|
||||
# define RA_FEOF 03002
|
||||
# define RA_FRECNO 03003
|
||||
# define RA_FCOL 03006
|
||||
# define RA_FROW 03007
|
||||
# define RA_FPCOL 03010
|
||||
# define RA_FPROW 03011
|
||||
# define RA_FRC 03012 /* RECCOUNT */
|
||||
# define RA_FRS 03013 /* RECSIZE */
|
||||
# define RA_FDELE 03014 /* DELETED */
|
||||
# define RA_FDBF 03015
|
||||
# define RA_FPSPACE 03016 /* Plattenplatz */
|
||||
# define RA_FFOUND 03017
|
||||
# define RA_FISCOLOR 03020
|
||||
# define RA_FFKMAX 03021
|
||||
# define RA_FOS 03022
|
||||
# define RA_FVERSION 03023
|
||||
|
||||
# define RA_FDATE 03070 /* Datumsbezogene Funktion (ab oktal 60) */
|
||||
# define RA_FTIME 03071
|
||||
|
||||
# define RA_FASC 03101 /* ==> Funktionen mit 1 Argument */
|
||||
# define RA_FCHR 03102
|
||||
# define RA_FFILE 03103
|
||||
# define RA_FLEN 03104
|
||||
# define RA_FTRIM 03105
|
||||
# define RA_FRTRIM 03105
|
||||
# define RA_FVAL 03106
|
||||
# define RA_FUPPER 03107
|
||||
# define RA_FLOWER 03110
|
||||
# define RA_FISAL 03111
|
||||
# define RA_FISLOW 03112
|
||||
# define RA_FISUPP 03113
|
||||
# define RA_FSPA 03115
|
||||
# define RA_FTYPE 03116
|
||||
# define RA_FFIELD 03117
|
||||
# define RA_FLTRIM 03120
|
||||
# define RA_FNDX 03121
|
||||
# define RA_FFKLABEL 03122
|
||||
|
||||
# define RA_FABS 03150 /* mathematische Funktionen mit 1 Argument */
|
||||
# define RA_FINT 03151 /* laufende Nummer ab oktal 40 */
|
||||
# define RA_FEXP 03152
|
||||
# define RA_FLOG 03153
|
||||
# define RA_FSQRT 03154
|
||||
|
||||
# define RA_FDOW 03160 /* Datumsfunktionen mit 1 Argument */
|
||||
# define RA_FCDOW 03161 /* laufende Nummer ab oktal 60 */
|
||||
# define RA_FMONTH 03162
|
||||
# define RA_FCMONTH 03163
|
||||
# define RA_FDAY 03164
|
||||
# define RA_FYEAR 03165
|
||||
# define RA_FCTOD 03166
|
||||
# define RA_FDTOC 03167
|
||||
/* ==> Funktionen mit 2 Argumenten */
|
||||
# define RA_FZKENT 03201 /* AT */
|
||||
# define RA_FLEFT 03202
|
||||
# define RA_FRIGHT 03203
|
||||
# define RA_FREPLI 03204 /* REPLICATE */
|
||||
# define RA_FTRANS 03205 /* TRANSFORM */
|
||||
|
||||
# define RA_FMIN 03241 /* math. Funktion */
|
||||
# define RA_FMAX 03242 /* math. Funktion */
|
||||
# define RA_FMOD 03243 /* math. Funktion */
|
||||
# define RA_FROUND 03244 /* math. Funktion (45 auch vergeben (FCELM) */
|
||||
|
||||
# define RA_FSTR 03301 /* ==> Funktionen mit 3 Argumenten */
|
||||
# define RA_FTEILZK 03302 /* SUBSTR */
|
||||
# define RA_FIIF 03303 /* IIF */
|
||||
|
||||
# define RA_FCELM 03445 /* ==> Funktionen mit 4 Argumenten */
|
||||
# define RA_FSTUFF 03402
|
||||
|
||||
# define RA_OPERATOR 04000
|
||||
# define RA_PRIORITAET 070
|
||||
|
||||
# define RA_NICHT 04061
|
||||
# define RA_EINMINUS 04062 /*Einseitiges Minus */
|
||||
# define RA_MUL 04051
|
||||
# define RA_DIV 04052
|
||||
# define RA_PLUS 04041
|
||||
# define RA_MINUS 04042
|
||||
# define RA_MAX 04053
|
||||
# define RA_MIN 04054
|
||||
|
||||
# define RA_GLEICH 04031
|
||||
# define RA_UNGLEICH 04032
|
||||
# define RA_GROESSER 04033
|
||||
# define RA_KLEINER 04034
|
||||
# define RA_GRGLEICH 04035
|
||||
# define RA_KLGLEICH 04036
|
||||
# define RA_UND 04021
|
||||
# define RA_ODER 04011
|
||||
|
||||
/* Definitionen fuer Pol. Notation */
|
||||
|
||||
# define RA_RS 07001
|
||||
# define RA_SW 07002
|
||||
# define RA_WS 07003
|
||||
# define RA_RUNSTOP 07004
|
||||
# define RA_CC 07005
|
||||
# define RA_RM 07006
|
||||
# define RA_WM 07007
|
||||
# define RA_FS 07010
|
||||
# define RA_TS 07011
|
||||
# define RA_LC 07012
|
||||
|
||||
/* Definitionen fuer Spalte $$$$MARK */
|
||||
|
||||
# define RB_MARKDEL 01 /* Kennzeiche fuer Satz geloescht */
|
||||
|
|
@ -0,0 +1,189 @@
|
|||
/* IDENT: 100359 - roerr */
|
||||
|
||||
/*
|
||||
** Definition der Symbole fuer ausgelassene Funktionsargumente
|
||||
*/
|
||||
|
||||
# ifndef G_NILA
|
||||
# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILI
|
||||
# define G_NILI (-1) /* ausgelassener INT-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILL
|
||||
# define G_NILL (-1l) /* ausgelassener LONG-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILC
|
||||
# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */
|
||||
# endif
|
||||
# ifndef G_NILF
|
||||
# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */
|
||||
# endif
|
||||
/*
|
||||
** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes
|
||||
*/
|
||||
|
||||
# ifndef gdebug
|
||||
|
||||
# define gdebug(x,y) /* DEBUG ausschalten */ \
|
||||
{ \
|
||||
char *parm1, *parm2; \
|
||||
parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Liste der verwendeten Fehlercodes fur Relationale Operatoren
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/* Fehlercodes bei fehlerhafter Abarbeitung eines DML-Makro EDxxxx */
|
||||
|
||||
# define EDCELM 70
|
||||
# define EDRETR 71
|
||||
# define EDSTOR 72
|
||||
# define EDSEQR 73
|
||||
# define EDKYAD 74
|
||||
# define EDKYDF 75
|
||||
# define EDCLOS 76
|
||||
# define EDRDMD 77
|
||||
# define EDDEFN 78
|
||||
# define EDRDCD 79
|
||||
# define EDCDED 80
|
||||
# define EDRDVL 81
|
||||
# define EDFCTL 82
|
||||
# define EDOPN 83
|
||||
# define EDOPNR 84
|
||||
# define EDOPNU 85
|
||||
# define EDKYRT 86
|
||||
# define EDDELS 87
|
||||
# define EDNXTK 88
|
||||
# define EDSGTW 89
|
||||
# define EDDELI 90
|
||||
# define EDSCAN 91
|
||||
# define EDWTVL 92
|
||||
# define EDWTUA 93
|
||||
# define EDRDUA 94
|
||||
# define EDCREA 95
|
||||
# define EDRENA 96
|
||||
# define EDREFM 97
|
||||
# define EDCREC 98
|
||||
|
||||
|
||||
/* Fehlercodes der Relationalen Operatoren im Parameter RC */
|
||||
|
||||
# define TVOPEN 1 /* TV ist bereits eroeffnet */
|
||||
# define ARGERR 2 /* Argumentfehler in Standardfunktion */
|
||||
# define EOPNN 3 /* Argument d. einstelligen Operators EINMINUS ist nicht numerisch */
|
||||
# define EOPNL 4 /* Argument d. einstelligen Operators NICHT ist nicht logisch */
|
||||
# define NOOVERWRITE 5 /* Datei nicht zum ueberschreiben freigegeben */
|
||||
# define TERMBUF 6 /* Terminalpuffer ist zu klein */
|
||||
# define OFDATA 7 /* Datenueberlauf bei Angleichung der Dezimalstellenzahl */
|
||||
# define NOTV 8 /* TV kein Buchstabe */
|
||||
# define UNTV 9 /* bei qualifizierten Namen wurde falsche TV angegeben */
|
||||
# define SYNTAXLEX 10 /* Syntaxfehler durch LEX festgestellt */
|
||||
# define KEYDUP 11 /* Schluesselspalte ist bereits definiert */
|
||||
# define NOKOMMA 12 /* es wird eine Liste erwartet, Komma als Trennzeichen nicht gefunden */
|
||||
# define NOKLAZ 13 /* schliessende Klammer wird erwartet - nicht gefunden */
|
||||
# define NOMEMORY 14 /* malloc kann keinen weiteren Speicherplatz zuordnen */
|
||||
# define OFPOLNOT 15 /* Bereich fuer Interndarstellung von Ausdruecken ist voll */
|
||||
# define NOZLISTE 16 /* ungueltige Zuordnungsliste */
|
||||
# define NOCOND 17 /* ungueltige Bedingung */
|
||||
# define NOLOCATE 18 /* CONTINUE gegeben ohne vorausgehendes LOCATE */
|
||||
# define NOAUSDR 19 /* ungueltiger Ausdruck */
|
||||
# define NOCONV 20 /* Konvertierung nicht unterstuetzt */
|
||||
# define TVNDEF 21 /* TV nicht eroeffnet */
|
||||
# define NOINIT 22 /* kein INIT-Operator abgearbeitet oder falsche ZVT-Adresse angegeben */
|
||||
# define FPAR 23 /* ungueltiger Parameter */
|
||||
# define EFGETS 24 /* Fehler beim Lesen eines seriellen Files */
|
||||
# define NOPOLNOT 25 /* Fehler bei Interndarstellung von Ausdruecken */
|
||||
# define EFPUTS 26 /* Fehler beim Schreiben in ein serielles File */
|
||||
# define DIVBYZERO 27 /* Gleitkomma-Division durch Null */
|
||||
# define EFOPEN 28 /* Fehler beim Eroeffnen eines seriellen Files */
|
||||
# define NOSORTNAME 29 /* ungueltiger Name eines Schluesselbaumes angegeben */
|
||||
# define SRTDUP 30 /* Indexspalte mit gleichem Namen bereits definiert */
|
||||
# define COLDUP 31 /* Spalte ist bereits definiert (CREA) */
|
||||
# define NOSORTLI 32 /* falsche Sortliste bei PRNT angegeben */
|
||||
# define GETINDEX 33 /* kein Ausgabe-Index gefunden */
|
||||
# define NOZKAUSDR 34 /* kein Zeichenkettenausdruck */
|
||||
# define NOAFKTLI 35 /* fehlerhafte Liste von Aggregationsfunktionen */
|
||||
# define NOSPALI 36 /* fehlerhafte Liste von Spaltennamen */
|
||||
# define NOOUTCOL 37 /* Spaltenname im Dateibereich fuer Ausgabe nicht enthalten */
|
||||
# define NOMDMKOM 38 /* Eingabedatei fuer WTMD enthaelt falsches Kommando */
|
||||
# define NOMDMENT 39 /* Entity im MDM nicht gefunden */
|
||||
# define NONUMCOL 40 /* keine num. Spalte -> AGGR nicht moeglich */
|
||||
# define INVSPNAME 41 /* 1. Zeichen des Spaltennamen ist kein Alphazeichen sein */
|
||||
# define EKYUPDT 42 /* Fehler bei Aktualisierung Schluesselbaum */
|
||||
# define NOSETFKT 43 /* keine Set-Funktion */
|
||||
# define NOKEYCOL 44 /* Schluesselspalte nicht definiert */
|
||||
# define NOMEMNAME 45 /* Speichername nicht gefunden */
|
||||
# define NOAKTKEY 46 /* kein AKTKEY fuer FIND gesetzt */
|
||||
# define KABBRUCH 47 /* definierter Kommandoabbruch */
|
||||
|
||||
/*-------------------------------------------------------------VAX----------*/
|
||||
|
||||
# define SYNTAX 48 /* Syntaxfehler im Kommando */
|
||||
# define NOIMPL 49 /* Funktion noch nicht implementiert */
|
||||
# define EWRITE 50 /* Fehler bei WRITE in SFILE */
|
||||
# define EREAD 51 /* Fehler bei READ aus SFILE */
|
||||
# define ELSEEK 52 /* Fehler bei LSEEK im SFILE */
|
||||
# define EOPEN 53 /* Fehler bei OPEN eines SFILE */
|
||||
# define ECREAT 54 /* Fehler bei CREAT eines SFILE */
|
||||
|
||||
/*-------------------------------------------------------------SORTIERUNG---*/
|
||||
|
||||
# define SORTCCT 55 /* Can't Create Temp-File (zum Schreiben) */
|
||||
# define SORTCRT 56 /* Can't Reopen Temp-File (jetzt zum Lesen) */
|
||||
# define SORTSOF 57 /* Stack-Over-Flow */
|
||||
# define SORTUEOF 58 /* Undefines End Of File (Temp.sort) */
|
||||
# define SORTWERR 59 /* Fehler beim Schreiben auf des temporaeren Files */
|
||||
# define SORTFPOR 60 /* Field-Position Out of Range (bei Sort.-feldbeschr.)*/
|
||||
# define SORTFLOR 61 /* Field-Length Out of Range */
|
||||
# define SORTSYN 62 /* fehlerhafte Aufruffolge so_srta(), so_srto() */
|
||||
|
||||
/*---------------------------------------------------------FORMATIERTE E/A---*/
|
||||
|
||||
# define FMERRSC 63 /* Fehler bei Positionieren des Cursors */
|
||||
# define FMERRIN 64 /* Fehler bei Einlesen einer Zeichenkette */
|
||||
# define FMERROU 65 /* Fehler bei Ausgabe einer Zeichenkette */
|
||||
# define FMERRCL 66 /* Fehler bei Loeschen des Bildschirms */
|
||||
# define FMERRCR 67 /* Fehler bei Initialisierung des Terminals */
|
||||
# define FMNOINI 68 /* Terminal nicht fuer Full-Screen initialisierbar */
|
||||
|
||||
/*---------------------------------------------------------NEUE UNIXFEHLER --*/
|
||||
|
||||
# define NOSFI 69 /* KEINE TQL-DATENBANKDATEI */
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
# define INTERN 777 /* interner Fehler */
|
||||
|
||||
/*--------------------------------------------------WEITERE TQL MELDUNGEN----*/
|
||||
|
||||
# define FRUNVIEW 101 /* Fehler bei Abarbeitung einer SET RELATION - Kette */
|
||||
# define FDEFVIEW 102 /* Fehler bei Definition eines View (SET RELATION) */
|
||||
# define NOGETS 103 /* Keine GET-Variablen im READ-Zugriff */
|
||||
# define FALSE_PARM 104 /* Syntaxfehler - falsche Parameteranzahl */
|
||||
# define MAXEXTKEY 105 /* Max. 10 externe Zugriffshilfen zugelassen */
|
||||
# define TVEOF 106 /* Ende der Topas-Datei -> kein _retr mehr moeglich */
|
||||
# define OTOPCOM 107 /* Kommando nur fuer TOPAS-Datei implementiert */
|
||||
# define SCANWIK 108 /* SCAN mit aktiven Schluesselbaum aufgerufen */
|
||||
# define FSPSTRU 109 /* Spaltenstruktur ist fehlerhaft */
|
||||
# define NOMARKSPALTE 110 /* keine Markierungsspalte in der Datenbank */
|
||||
/* ==> kein DELETE bzw. RECALL - Kommando moeglich */
|
||||
# define NOSTRUDBF 111 /* Datenbankfile ist kein Struktur-Datenbankfile */
|
||||
# define NOSAVEFILE 112 /* keine von TQL erstellte SAVE-Datei angegeben */
|
||||
/* ==> kein RESTORE-Kommando moeglich */
|
||||
# define TVREAD 113 /* TOPAS-Datei mit Modus READ eroeffnet */
|
||||
/* -> Aenderungs-Kommandos nicht moeglich */
|
||||
# define NOFLOAT 114 /* Funktion nicht fuer Parameter vom Typ Gleitkomma */
|
||||
# define NODATE 115 /* das angegebene Datum ist kein gueltiges Datum */
|
||||
# define OTHAKTKEY 777 /* hat Buche sich ausgedacht ???????? */
|
||||
|
|
@ -0,0 +1,419 @@
|
|||
/* IDENT: 100359 - rostrd */
|
||||
|
||||
# include "TQLSYS.H" /* Systemdefinitionen */
|
||||
|
||||
# include <stdio.h>
|
||||
|
||||
/*
|
||||
** Definition der Symbole fuer ausgelassene Funktionsargumente
|
||||
*/
|
||||
|
||||
# ifndef G_NILA
|
||||
# define G_NILA (char *)(-1) /* ausgelassener Adress-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILI
|
||||
# define G_NILI (-1) /* ausgelassener INT-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILL
|
||||
# define G_NILL (-1l) /* ausgelassener LONG-Parameter */
|
||||
# endif
|
||||
|
||||
# ifndef G_NILC
|
||||
# define G_NILC (char)0xFF /* ausgelassener CHAR-Parameter */
|
||||
# endif
|
||||
# ifndef G_NILF
|
||||
# define G_NILF (FILE *)(-1) /* ausgelassener FILE-Pointer */
|
||||
# endif
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Definition der Makros zur Arbeit mit Relationalen Operatoren
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
** Definition des Macros DEBUG zum Ausschalten des Funktionsrufes
|
||||
*/
|
||||
|
||||
# ifndef gdebug
|
||||
|
||||
# define gdebug(x,y) /* DEBUG ausschalten */ \
|
||||
{ \
|
||||
char *parm1, *parm2; \
|
||||
parm1 = (char *)x; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
parm2 = (char *)y; /* Zuweisung wird durch Optimierung entfernt*/ \
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
* Definition der Strukturen zur Arbeit mit Relationalen Operatoren
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
# ifndef NULL
|
||||
# define NULL 0 /* Horn 24.1.89 wegen # undef NULL in stdio.h */
|
||||
# endif
|
||||
|
||||
|
||||
# define O_RDONLY 000 /* Definitionen aus <file.h> */
|
||||
# define O_RDWR 002
|
||||
|
||||
# ifndef QC_MAXPGR
|
||||
# ifdef SSVP
|
||||
# define QC_MAXPGR 32
|
||||
# else
|
||||
# define QC_MAXPGR 5
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# define RO_MAXFILSPEC 100
|
||||
# define RO_MAXVALSTACK 2048
|
||||
# define RO_MAXPOLNOT 3072
|
||||
# define RO_MAXMEMORY 100
|
||||
# define RO_MAXZEILE 256
|
||||
# define RO_MAXRECORD 512
|
||||
# define RO_MINSPLISTE 1 /* Anzahl der Spalten, wo Optimierung ansetzt */
|
||||
|
||||
/*
|
||||
** Definition der Datentypen fuer TYP-Feld von RO_WERT und RO_DED
|
||||
*/
|
||||
|
||||
#define MAXTYPE 5 /* Max. Typeanzahl */
|
||||
|
||||
#define C 0 /* CHAR */
|
||||
#define D 1 /* DATE */
|
||||
#define N 2 /* NUMERIC CHAR */
|
||||
#define L 3 /* LOGIC */
|
||||
#define F 4 /* FIXED BIN */
|
||||
#define E 5 /* FLOAT */
|
||||
|
||||
|
||||
/* Datenelementbeschreiber fuer RO */
|
||||
|
||||
struct ro_ded
|
||||
{
|
||||
|
||||
int byte; /* Spaltenbreite in Bytes */
|
||||
char type; /* Typkennzeichen */
|
||||
char ro_ded_frei[sizeof (int) - 1]; /* Einhaltung Wortausrichtung */
|
||||
int prec; /* Anzahl der Dezimalstellen bei num. Spaltentypen */
|
||||
int pos; /* Position der Spalte im seriellen File */
|
||||
};
|
||||
|
||||
# ifndef _cded
|
||||
|
||||
# define _cded(pded, ty, by, pre) \
|
||||
{ \
|
||||
struct ro_ded *ded; \
|
||||
ded = pded; \
|
||||
ded->type = (char)ty; \
|
||||
ded->byte = (int)by; \
|
||||
ded->prec = (int)pre; \
|
||||
}
|
||||
|
||||
# endif
|
||||
|
||||
/* Struktur zur Arbeit mit Werten */
|
||||
|
||||
#define RO_HWERT (sizeof(int) * 3) /* Laenge des Kopfes der Wertstruktur */
|
||||
|
||||
struct ro_wert{
|
||||
int len; /* Laenge des Puffers in Byte */
|
||||
char typ; /* Bearbeitungstyp der Spalten im Puffer */
|
||||
char wfrei[sizeof (int) - 1];
|
||||
int wprec; /* Anzahl der Dezimalstellen */
|
||||
union{
|
||||
char c[4];
|
||||
long n;
|
||||
float g;
|
||||
char l; /* fuer Typ L (logisch) = 'T' oder = 'F' */
|
||||
short s;
|
||||
}
|
||||
puffer; /* Zugriff auf n-Wert: i=wert.puffer.n[3] */
|
||||
};
|
||||
|
||||
|
||||
/* Spaltenbeschreibung fuer RO */
|
||||
|
||||
struct ro_spalte{
|
||||
char t; /* Tupelvariable */
|
||||
char name[9]; /* Spaltenname mit Blanks gefuellt */
|
||||
struct ro_ded ded; /* Beschreibung der Spalte */
|
||||
struct ro_ded charded; /* Beschreibung der Spalte im Zeichenkettenformat */
|
||||
struct ro_wert *lowerb,*upperb; /* Grenzen fuer Spaltenwerte */
|
||||
/* wenn Schluesselbaum: */
|
||||
char *lowkey; /* logisch kleinster Schluessel */
|
||||
char *highkey; /* logisch groesster Schluessel */
|
||||
short *sortdescr; /* Sortierfeldbeschreibungen fuer */
|
||||
/* max. 19 Spalten + Index (auch Sortierfeld) */
|
||||
};
|
||||
|
||||
/* Informationen fuer Realisierung VIEW */
|
||||
|
||||
struct ro_view{
|
||||
char viewspalten[RO_MAXZEILE]; /* Spaltenliste fuer Verkettung ueber Schluessel */
|
||||
short vofflenliste[100]; /* -"- bei SFILE mit Schluessel */
|
||||
int viewpol[100]; /* Pol. Not. fuer num. Ausdruck bei Verkettung ueber Index */
|
||||
char nexttv; /* Tupelvariable fuer naechsten Dateibereich */
|
||||
char viewzeichen[RO_MAXZEILE]; /* View in Zeichendarstellung ( Kommando nach TO) */
|
||||
};
|
||||
|
||||
struct ro_filter{
|
||||
char fcond[RO_MAXZEILE]; /* Filter in Zeichendarstellung */
|
||||
int filterpol[100]; /* Filter in Pol. Notation */
|
||||
};
|
||||
|
||||
/* Fuer jede eroeffnete Datei wird ein Dateibereich angelegt.
|
||||
Dieser kann auch vom Nutzer gelesen werden. */
|
||||
|
||||
struct ro_dateibereich{
|
||||
int lendateibereich;
|
||||
long anzzeilen; /* Anzahl der zugewiesenen Zeilen einer TD */
|
||||
long index; /* zuletzt benutzter Zeilenindex */
|
||||
long indexalt; /* vorher benutzter Index */
|
||||
char modus; /* Modus der Eroeffnung R, U, L */
|
||||
char reln[5]; /* log. Relationsname */
|
||||
/* SFI - einfaches seq. File mit Metadaten */
|
||||
char filespec[RO_MAXFILSPEC]; /* phys. Name der TD */
|
||||
int anzspalten; /* Anzahl der Spalten der TD */
|
||||
struct ro_spalte *spalten; /* -> Liste aller Spalten der TD */
|
||||
struct rb_keytree *aktschluessel;/* -> Schluesselbaum, ueber den der
|
||||
augenblickliche Zugriff erfolgt */
|
||||
char *wertaktschluessel; /* zuletzt benutzter Schluesselwert der
|
||||
aktiven Schluesselspalte */
|
||||
int lenfilepuffer;
|
||||
char *filepuffer;
|
||||
FILE *fp; /* Filepointer fuer OPEX-Verarbeitung */
|
||||
int fd; /* Filedescriptor fuer SFILE */
|
||||
int anfdaten; /* Byteoffset zum ersten Datensatz */
|
||||
struct ro_spalte *markspalte; /* Datensaetze zum Loeschen markiert */
|
||||
struct ro_filter *filter; /* zugeordnter Filter */
|
||||
struct ro_view *view; /* Informationen ueber Dateiverkettung */
|
||||
int found_flag; /* =1: FIND/LOCATE ergolgreich, =0: sonst */
|
||||
/* fuer Funktion FOUND() */
|
||||
int *lastlocatepol; /* Interndarst. der Bedingung aus LOCATE */
|
||||
/* merken. Wird bei CONTINUE gebraucht */
|
||||
int eof_flag; /* =1: EOF erreicht, =0: sonst */
|
||||
char *indexliste; /* Indexliste fuer 'kyupdate' */
|
||||
char *cur_indliste; /* Arbeitspointer fuer Indexliste */
|
||||
struct rb_keytree *pkeytree; /* 1. eroeffneter Schluesselbaum */
|
||||
char dfrei[8]; /* reserviert fuer die Zukunft */
|
||||
};
|
||||
|
||||
/* Struktur mit allen Informationen fuer Schluesselbaumpflege */
|
||||
|
||||
struct rb_kyupdt{
|
||||
int maxukeylen; /* laengster Schluesselbegriff -> malloc */
|
||||
FILE *fpdel; /* Hilfdatei fuer DEL-Schluessel */
|
||||
struct ro_spalte *upkey[20]; /* -> Schluesselspalten, die akt. werden muessen */
|
||||
int *changeind; /* -> Indezes der veraenderten Zeilen */
|
||||
char kfrei[40]; /* Reserve */
|
||||
|
||||
/* Puffer Hilfsdatei */
|
||||
char keyname[4]; /* Name Schluesselbaum */
|
||||
long delindex; /* Index fuer DEL-Schluessel */
|
||||
char keypuffer[2]; /* Schl. entsp. malloc(sizeof(struct rb_kyupdt)+maxukeylen) */
|
||||
};
|
||||
|
||||
/* Struktur fuer Metadatenbereich eines SFILE */
|
||||
|
||||
struct ro_fcontrol{
|
||||
int fsatzlaenge; /* Laenge eines Datensatzes in Byte */
|
||||
int fanzspalten; /* Anzahl der Spalten */
|
||||
int fanfdaten; /* Offset zum ersten Datensatz */
|
||||
int fanfwertetabellen; /* Offset zur ersten Wertetabelle */
|
||||
int flenwertetabellen; /* Laenge aller Wertetabellen */
|
||||
int fanzzeilen; /* Anzahl der Zeilen im SFILE */
|
||||
char keypfile[10][RO_MAXFILSPEC]; /* Filespezifik. fuer 10 Schluesselbaeume */
|
||||
struct ro_spalte keyspalte[10]; /* Spaltenbeschreiber fuer 10 SS */
|
||||
char ffrei[20]; /* Reserve */
|
||||
};
|
||||
|
||||
|
||||
/* SET Funktionen fuer Relationale Operatoren */
|
||||
|
||||
struct ro_set{
|
||||
|
||||
|
||||
int skyupdt; /* Schluesselbaumpflege ein/aus */
|
||||
|
||||
/* SET-Funktionen entsprechend dBASE III */
|
||||
|
||||
int alternate;
|
||||
FILE *fpalternate; /* Filepointer fuer Alternatedatei */
|
||||
int bell;
|
||||
int carry;
|
||||
char color[30]; /* Farbtafel in Zeichenkettenform */
|
||||
int confirm;
|
||||
int console;
|
||||
int debug;
|
||||
int decimals;
|
||||
char sdefault[RO_MAXFILSPEC];
|
||||
int deleted; /* 0 = Zeile nicht geloescht */
|
||||
int sdelimiter; /* 1.Byte = linkes Begrenzungszeichen
|
||||
2.Byte = rechtes Begrenzungszeichen
|
||||
0 = Standard */
|
||||
int device;
|
||||
int echo;
|
||||
int escape;
|
||||
int exact;
|
||||
/* aktueller FILTER wird im zugeordneten Dateibereich abgelegt */
|
||||
int fixed;
|
||||
FILE *format; /* Formatdatei fuer privaten Bildaufbau */
|
||||
/* function --> wird sofort abgearbeitet */
|
||||
int heading;
|
||||
int help;
|
||||
/* index --> wird sofort abgearbeitet */
|
||||
int intensity;
|
||||
int margin; /* Anzahl der eingerueckten Zeichen */
|
||||
int menus;
|
||||
/* path --> wird sofort abgearbeitet */
|
||||
int print;
|
||||
FILE *fpprint; /* Drucker wird auf Datei PRINT.TXT abgebildet */
|
||||
char *procedure; /* Pointer auf Speicherbereich mit Kommandos */
|
||||
/* relation --> wird sofort abgearbeitet */
|
||||
int safety;
|
||||
int graphic;
|
||||
int step;
|
||||
int talk;
|
||||
int unique;
|
||||
int century;
|
||||
int set_frei[20]; /* for future use */
|
||||
};
|
||||
|
||||
|
||||
/* Zentrale Verarbeitungstabelle */
|
||||
|
||||
struct ro_zvt{
|
||||
int rostat; /* Statuscode intern */
|
||||
int roconv; /* Statuscode fuer Konvertierungsfehler */
|
||||
char zident[30]; /* IDENT-Information und Schutzidentifikator */
|
||||
char user[30]; /* Nutzeridentifikation */
|
||||
struct ro_dateibereich *tt['Z'-'A'+1]; /* Adressen eroeffnete
|
||||
Dateibereiche -- portabel angegeben ESER -> Luecken bleiben frei */
|
||||
int *pstack; /* Stack fuer Auswertung von Ausdruecken */
|
||||
int *ptop; /* Stackpointer fuer STACK */
|
||||
int *ppolnot; /* Bereich fuer Ausdruck in Polnischer Notation */
|
||||
int *ppoltop; /* Pointer fuer POLNOT */
|
||||
/* globale Paramerter fuer Arbeit mit LEX */
|
||||
char lext; /* Vorgabe der Tupelvariable fuer Spaltenname */
|
||||
/* oder Uebergabe selektierter Dateibereich bei r_set */
|
||||
struct ro_spalte *lexspalte; /* -> Spalte, die zuletzt von Lex erkannt wurde */
|
||||
int lexlen; /* Laenge des zuletzt erkannten Symbols */
|
||||
struct ro_set set;
|
||||
char *error; /* Bereich fuer Fehlerinformationen */
|
||||
int lenerror; /* Laenge des Bereiches */
|
||||
int eofflag; /* Dateiende fuer Funktion EOF() merken */
|
||||
int stopflag; /* bei >0 Kommandoabbruch */
|
||||
|
||||
/* Realisierung der formatierten E/A */
|
||||
int getanz; /* Anzahl der zu realisierenden 'GETs' */
|
||||
struct rd_stfeaget *firstget; /* ->: ersten 'GET'-Befehl */
|
||||
struct rd_stfeaget *lastget; /* ->: letzten 'GET'-Befehl */
|
||||
int fearow; /* aktuelle Display-Zeilennummer */
|
||||
int feacol; /* aktuelle Display-Spaltennummer */
|
||||
int term_init_flag; /* =1: Display initialisiert (sonst 0) */
|
||||
int tql_menue; /* =1: Standardmenue aktiv */
|
||||
int printf_anz; /* Anzahl der abgesetzten printf-Aufrufe */
|
||||
int flagwhile; /* Flag fuer While */
|
||||
int fea_intern; /* =1: Aufruf der fm-Moduln intern, 0: extern */
|
||||
int zrecconv; /* =1: '$RECCONV' mittels _defd definiert, 0: sonst */
|
||||
char ztbyte; /* Voruebersetzungsbyte bei Kommandos aus Programm */
|
||||
/* -1 => Kommando konnte nicht uebersetzt werden */
|
||||
/* QT_XXX => Num.Code des Schluesselwortes */
|
||||
char *zskipfalse; /* Adr. des Kommandos, welches bei .FALSE. abzu-
|
||||
arbeiten ist , zeigt auf den Vorsatz des Kdo. */
|
||||
char *zskiptrue; /* Adr. des Kommandos, welches bei .TRUE. abzu-
|
||||
arbeiten ist , zeigt auf den Vorsatz des Kdo. */
|
||||
char *zpolsave; /* Adr. des POLNOT fuer das aktuelle Kdo. */
|
||||
int simarkupdt; /* Anfangslaenge der Bitleiste in MARKUPDT fuer SFI */
|
||||
int readmessage;/* =1: Fehlermeldung auf Bildschirm, =0: sonst */
|
||||
char *memlevel[QC_MAXPGR]; /* Adr. der Hash-Tabellen fuer die Speicher-
|
||||
variablen pro Programmebene */
|
||||
char zidende[16]; /* Endemarkierung ***Ende ZVT*** fuer Test */
|
||||
char zfrei[84]; /* Reserve fuer weitere Eintragungen */
|
||||
};
|
||||
|
||||
|
||||
/* GET-Struktur zur Realisierung der 'GET'-Funktion */
|
||||
|
||||
struct rd_stfeaget {
|
||||
char gettyp; /* = 'M': Speichervariable (Memory) */
|
||||
/* = 'S': Spaltenname */
|
||||
char *getvar; /* Pointer auf Wertstruktur der SP-Variablen */
|
||||
/* bzw. Pointer auf Spaltenstruktur */
|
||||
int getbuflen; /* Laenge des Eingabepuffers */
|
||||
int getoriglen; /* Laenge einer Spalte als String */
|
||||
int getrow; /* Zeilennummer */
|
||||
int getcol; /* Spaltennummer */
|
||||
struct rd_stfeaget *flastget; /* vorhergehendes 'GET' */
|
||||
struct rd_stfeaget *fnextget; /* nachfolgendes 'GET' */
|
||||
short getrange; /* =1: Range angegeben, =0: sonst */
|
||||
struct ro_wert *getlower; /* untere Grenze (Range) */
|
||||
struct ro_wert *getupper; /* obere Grenze (Range) */
|
||||
char getpic[81]; /* Picture (max. 80 Zeichen und '\0') */
|
||||
char get_char[2]; /* Charakter-Darstellung von Zahlen */
|
||||
/* bzw. Puffer fuer Spaltenwerte */
|
||||
/* bzw. Puffer f. Picture-Aufbereitung*/
|
||||
/* nach hinten laenger */
|
||||
};
|
||||
|
||||
/* Strukturen zur Arbeit mit Memory */
|
||||
|
||||
# define RM_MEMLEN sizeof(struct rm_memtab)
|
||||
|
||||
struct rm_memtab
|
||||
{
|
||||
char mname[10]; /* Speichername */
|
||||
short mlen; /* Laenge des groessten zugewiesenen Speicherwertes */
|
||||
int moff; /* Offset d. Speicherwertes relativ zum Speicheranfang*/
|
||||
int mprot; /* = 0, falls Speichervariable nicht geschuetzt
|
||||
= Programmstufe, in der Speichervariable geschuetzt*/
|
||||
};
|
||||
|
||||
struct rm_tabhead
|
||||
{
|
||||
char *zmemory; /* -> Speicher zur Abspeicherung der Speicherwerte */
|
||||
int maxmemory; /* maximale Laenge des vorhandenen Speichers (Bytes) */
|
||||
int lenmemory; /* Laenge des belegten Speicherplatzes (Bytes) */
|
||||
int manz; /* Anzahl der in der Hash-Tabelle abgelegten Namen */
|
||||
short maxanz; /* maximale Anzahl der ablegbaren Speichernamen */
|
||||
};
|
||||
|
||||
/* Struktur fuer Metadaten eines Schluesselbaumes */
|
||||
|
||||
struct rb_keymeta {
|
||||
char km_spalten[88]; /* einzelne Spaltennamen (+ 'END.') */
|
||||
int km_spanz; /* Anzahl der einfliessenden Spalten */
|
||||
int km_lenkey; /* Laenge eines Schluesselseintrages (mit Index) */
|
||||
int km_anzkey; /* Anzahl der Schluesseleintraege */
|
||||
};
|
||||
|
||||
#define KEYMETA sizeof(struct rb_keymeta)
|
||||
|
||||
/* Struktur fuer einen Schluesselbaum */
|
||||
|
||||
struct rb_keytree {
|
||||
int kfd; /* Filedescriptor */
|
||||
char kf_name[256]; /* vollstaendiger Filename */
|
||||
char kspliste[88]; /* Spaltenliste fuer Schluesselbaum */
|
||||
int kspanz; /* Anzahl der Spalten im Schluesselbaum */
|
||||
int klenkey; /* Laenge eines Schluessels (mit Index) */
|
||||
int kanzkey; /* Anzahl der Schluesseleintraege */
|
||||
char *klowkey; /* logisch kleinster Schluessel */
|
||||
char *khighkey; /* logisch groesster Schluessel */
|
||||
short *ksortdescr; /* Sortierfeldbeschreibung */
|
||||
int khsflag; /* =0: Filearbeit, =1: HS-Arbeit */
|
||||
char *khsbuffer; /* Puffer fuer HS-Arbeit */
|
||||
int klastoffset; /* letzter Offset im Schluesselbaum */
|
||||
struct rb_keytree *knexttree; /* Verkettung */
|
||||
char kfrei[16]; /* reserviert fuer die Zukunft */
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
/* IDENT: 010968 - SORDEF.H */
|
||||
/*
|
||||
** Autor: Buchert
|
||||
*/
|
||||
|
||||
extern int uksort(); /* Compare Key by Type */
|
||||
|
||||
int sort_l = 256; /* Define maximum record length */
|
||||
int sort_v = 0; /* Define variable record format */
|
||||
int (*sort_c)() = uksort; /* Define default compare routine */
|
||||
int sort_r = 0; /* Non-zero for reverse comparison */
|
||||
int sort_n = 1; /* Default */
|
||||
int *f_p = 0; /* Default */
|
||||
|
||||
/* Festlegungen fuer die einzelnen Feld-Typen */
|
||||
|
||||
/* #define D_Z 0 unspecified */
|
||||
/* #define D_B 6 byte integer; 8-bit signed 2's-complement integer */
|
||||
/* #define D_BU 2 byte logical; 8-bit unsigned quantity */
|
||||
#define D_W 7 /* word integer; 16-bit signed 2's-complement integer */
|
||||
/* #define D_WU 3 word logical; 16-bit unsigned quantity */
|
||||
#define D_L 8 /* longword integer */
|
||||
/*32-bit signed 2's-complement integer */
|
||||
/* #define D_LU 4 longword logical; 32-bit unsigned quantity */
|
||||
/* #define D_Q 9 quadword integer */
|
||||
/* 64-bit signed 2's-complement integer */
|
||||
/* #define D_QU 5 quadword logical; 64-bit unsigned quantity */
|
||||
/* #define D_O 26 octaword integer */
|
||||
/* 128-bit signed 2's-complement integer */
|
||||
/* #define D_OU 25 octaword logical; 128-bit unsigned quantity */
|
||||
#define D_F 10 /* F_floating */
|
||||
/* 32-bit single-precision floating point */
|
||||
#define D_D 11 /* D_floating */
|
||||
/* 64-bit double-precision floating point */
|
||||
/* #define D_G 27 G_floating */
|
||||
/* 64-bit double-precision floating point */
|
||||
/* #define D_H 28 H_floating */
|
||||
/* 128-bit quadruple-precision floating point */
|
||||
#define D_T 14 /* a single character or a string */
|
||||
/* #define D_NU 15 numeric string, unsigned */
|
||||
/* #define D_NL 16 numeric string, left separate sign */
|
||||
/* #define D_NLO 17 numeric string, left overpunched sign */
|
||||
/* #define D_NR 18 numeric string, right separate sign */
|
||||
/* #define D_NRO 19 numeric string, right overpunched sign */
|
||||
/* #define D_NZ 20 numeric string, zoned sign */
|
||||
#define D_P 21 /* packed decimal string */
|
||||
|
||||
#define RECORD 0 /* RECORD-Sortierprozess */
|
||||
#define TAG 1 /* TAG-Sortierprozess */
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
/* IDENT: 010487 - SOREXD.H */
|
||||
/*
|
||||
** Autor: Buchert
|
||||
*/
|
||||
|
||||
/* Die Sortierfeldbeschreibungen sind in einem zusammenhaengenden Bereich
|
||||
** in der Reihenfolge ihrer Anwendung abzulegen.
|
||||
**
|
||||
** Globale Symbole, die vom Nutzer der Sortierroutinen sorta() und sorto()
|
||||
** vor dem ersten Aufruf von sorta() veraendert werden koennen.
|
||||
** Andernfalls werden die im Kommentar angegebenen Werte verwendet.
|
||||
*/
|
||||
|
||||
extern int uksort(); /* Compare Key by Type */
|
||||
|
||||
extern int sort_l; /* max. Laenge der zu sortierenden Saetze,
|
||||
** 256 Bytes */
|
||||
extern int sort_v; /* Eingabesatzformat, 0 - Zeichenketten */
|
||||
extern int (*sort_c)(); /* Adr. der Vergleichsfunktion, &strcmp() */
|
||||
extern char *sort_f; /* Name der Sortierarbeitsdatei, "sort.tmp" */
|
||||
extern int sort_r; /* Sortierrichtung, aufsteigend - 0 */
|
||||
extern int sort_n; /* Anzahl der uebergebenen Sortierfeldbeschrei-
|
||||
** bungen, 0 */
|
||||
extern int *f_p; /* Adr. der 1. Sortierfeldbeschreibung, NULL */
|
||||
|
||||
|
||||
/* Festlegungen fuer die einzelnen Feld-Typen */
|
||||
|
||||
/* #define D_Z 0 unspecified */
|
||||
/* #define D_B 6 byte integer; 8-bit signed 2's-complement integer */
|
||||
/* #define D_BU 2 byte logical; 8-bit unsigned quantity */
|
||||
#define D_W 7 /* word integer; 16-bit signed 2's-complement integer */
|
||||
/* #define D_WU 3 word logical; 16-bit unsigned quantity */
|
||||
#define D_L 8 /* longword integer */
|
||||
/*32-bit signed 2's-complement integer */
|
||||
/* #define D_LU 4 longword logical; 32-bit unsigned quantity */
|
||||
/* #define D_Q 9 quadword integer */
|
||||
/* 64-bit signed 2's-complement integer */
|
||||
/* #define D_QU 5 /* quadword logical; 64-bit unsigned quantity */
|
||||
/* #define D_O 26 octaword integer */
|
||||
/* 128-bit signed 2's-complement integer */
|
||||
/* #define D_OU 25 octaword logical; 128-bit unsigned quantity */
|
||||
#define D_F 10 /* F_floating */
|
||||
/* 32-bit single-precision floating point */
|
||||
#define D_D 11 /* D_floating */
|
||||
/* 64-bit double-precision floating point */
|
||||
/* #define D_G 27 G_floating */
|
||||
/* 64-bit double-precision floating point */
|
||||
/* #define D_H 28 H_floating */
|
||||
/* 128-bit quadruple-precision floating point */
|
||||
#define D_T 14 /* a single character or a string */
|
||||
/* #define D_NU 15 numeric string, unsigned */
|
||||
/* #define D_NL 16 numeric string, left separate sign */
|
||||
/* #define D_NLO 17 numeric string, left overpunched sign */
|
||||
/* #define D_NR 18 numeric string, right separate sign */
|
||||
/* #define D_NRO 19 numeric string, right overpunched sign */
|
||||
/* #define D_NZ 20 numeric string, zoned sign */
|
||||
#define D_P 21 /* packed decimal string */
|
||||
|
||||
#define RECORD 0 /* RECORD-Sortierprozess */
|
||||
#define TAG 1 /* TAG-Sortierprozess */
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
/***
|
||||
*sys\stat.h - defines structure used by stat() and fstat()
|
||||
*
|
||||
* Copyright (c) 1985-1987, Microsoft Corporation. All rights reserved.
|
||||
*
|
||||
*Purpose:
|
||||
* This file defines the structure used by the stat() and fstat()
|
||||
* routines.
|
||||
* [System V]
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
|
||||
#ifndef NO_EXT_KEYS /* extensions enabled */
|
||||
#define CDECL cdecl
|
||||
#else /* extensions not enabled */
|
||||
#define CDECL
|
||||
#endif /* NO_EXT_KEYS */
|
||||
|
||||
#ifndef _TIME_T_DEFINED
|
||||
typedef long time_t;
|
||||
#define _TIME_T_DEFINED
|
||||
#endif
|
||||
|
||||
/* define structure for returning status information */
|
||||
|
||||
#ifndef _STAT_DEFINED
|
||||
struct stat {
|
||||
dev_t st_dev;
|
||||
ino_t st_ino;
|
||||
unsigned short st_mode;
|
||||
short st_nlink;
|
||||
short st_uid;
|
||||
short st_gid;
|
||||
dev_t st_rdev;
|
||||
off_t st_size;
|
||||
time_t st_atime;
|
||||
time_t st_mtime;
|
||||
time_t st_ctime;
|
||||
};
|
||||
#define _STAT_DEFINED
|
||||
#endif
|
||||
|
||||
#define S_IFMT 0170000 /* file type mask */
|
||||
#define S_IFDIR 0040000 /* directory */
|
||||
#define S_IFCHR 0020000 /* character special */
|
||||
#define S_IFREG 0100000 /* regular */
|
||||
#define S_IREAD 0000400 /* read permission, owner */
|
||||
#define S_IWRITE 0000200 /* write permission, owner */
|
||||
#define S_IEXEC 0000100 /* execute/search permission, owner */
|
||||
|
||||
|
||||
/* function prototypes */
|
||||
|
||||
int CDECL fstat(int, struct stat *);
|
||||
int CDECL stat(char *, struct stat *);
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
/*$$+ TERMDE.h +$$*/
|
||||
/* IDENT: 010387 - TERMDE.h */
|
||||
/* Design: Buchert */
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* TERMDE.h
|
||||
*
|
||||
* include-File zur Beschreibung des verwendeten Terminals
|
||||
*
|
||||
* #define <terminaltyp> 1 ==> dieser Terminaltyp wird verwendet,
|
||||
* sonst wird '0' zugeordnet
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/* Die #define-Anweisung fuer das entsprechende Terminal ist zu aktivieren */
|
||||
|
||||
#define VT_200_V 1 /* SMG-Routinen anwendbar */
|
||||
/* #define VT_100 0 */ /* Terminals der VT-Familie */
|
||||
/* #define T_7920 1 */ /* ESER-Terminal 7920 */
|
||||
|
||||
|
||||
#define TERMCOLS 80 /* Anzahl der Spalten */
|
||||
#define TERMROWS 24 /* Anzahl der Zeilen */
|
||||
#define FIRSTROW 1 /* Nummer der 1. Zeile */
|
||||
#define FIRSTCOL 1 /* Nummer der 1. Spalte */
|
||||
|
||||
/* Definitionen der moeglichen Eingabe-Terminatoren ***/
|
||||
|
||||
#define TRM_CR 1 /* zum naechsten Eingabe-Feld */
|
||||
#define TRM_DOWN_CUR 2 /* zum naechsten Eingabe-Feld */
|
||||
#define TRM_UP_CUR 3 /* zum vorhergehenden Eingabe-Feld */
|
||||
#define TRM_ENTER 4 /* fuer EDIT: zum naechsten Satz */
|
||||
#define TRM_CTRLE 7 /* Ende aller Eingaben */
|
||||
#define TRM_PRESC 9 /* vorhergehender Bildschirminhalt */
|
||||
#define TRM_NEXSC 10 /* Uebergang zum naechsten Bildschirm */
|
||||
|
||||
/* weitere Eingabe-Terminatoren */
|
||||
#define TRM_ACTRL 5
|
||||
#define TRM_DCTRL 6
|
||||
#define TRM_ICTRL 8
|
||||
#define TRM_UCTRL 11 /* Loeschen des aktuellen Eingabe-Feldes */
|
||||
#define TRM_WCTRL 12 /* Refresh Display */
|
||||
#define TRM_KCTRL 13 /* Eingabefeld verlassen ohne Pruefung */
|
||||
|
||||
/* Video-Attribute ************************************/
|
||||
|
||||
#define VIDEO_REVERSE 2
|
||||
|
||||
/* Fehlercodes ****************************************/
|
||||
|
||||
#define FMERRSC 63 /* Fehler bei Setzen des Cursors */
|
||||
#define FMERRIN 64 /* Fehler bei Eingabe */
|
||||
#define FMERROU 65 /* Fehler bei Ausgabe */
|
||||
#define FMERRCL 66 /* Fehler bei CLEAR */
|
||||
#define FMERRCR 67 /* Fehler bei Initialisierung (Create) */
|
||||
#define FMNOINI 68 /* Terminal nicht fuer Full-SCR initialisiert */
|
||||
#define NOGETS 103 /* Keine GET-Variablen im READ-Zugriff */
|
||||
|
||||
|
||||
/* UEBERTRAG AUS ROERR.H (UM NICHT NOCH #include "ROERR.H" zu machen */
|
||||
|
||||
#define TERMBUF 6 /* Terminalpuffer ist zu klein */
|
||||
#define NOMEMORY 14 /* malloc kann keinen weiteren Speicherplatz zuordnen */
|
||||
#define OFPOLNOT 15 /* Bereich fuer Interndarstellung von Ausdruecken ist voll */
|
||||
#define NOCOND 17 /* ungueltige Bedingung */
|
||||
#define NOINIT 22 /* kein INIT-Operator abgearbeitet oder falsche ZVT-Adresse angegeben */
|
||||
#define EFOPEN 28 /* Fehler beim Eroeffnen eines seriellen Files */
|
||||
#define GETINDEX 33 /* kein Ausgabe-Index gefunden */
|
||||
#define EKYUPDT 42 /* Fehler bei Aktualisierung Schluesselbaum */
|
||||
#define NOMEMNAME 45 /* Speichername nicht gefunden */
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
** TQLFUNC.H
|
||||
** Deklaration der benutzen Funktionen
|
||||
**
|
||||
** 12.04.89 v.Treek
|
||||
*/
|
||||
|
||||
int qa_acc (struct q_tql *tql, char **ptr);
|
||||
char *gu_mal (int size);
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
** Includefile zur Steuerung systemabhaengiger Teile in den TQL-Quellen
|
||||
**
|
||||
** Es koennen folgende Symbole definiert werden, die in den TQL-Quellen
|
||||
** genutzt werden:
|
||||
**
|
||||
** # define SUNIX 1 = fuer UNIX-System
|
||||
** # define SPSU 1 = fuer PSU-Besonderheiten
|
||||
** # define SSVP 1 = fuer SVP 1800-Besonderheiten
|
||||
** # define SDCP 1 = fuer DCP-Besonderheiten
|
||||
**
|
||||
** # define SFSTAT 1 = fstat() ist vorhanden
|
||||
**
|
||||
** v. Treek 19.04.89
|
||||
*/
|
||||
|
||||
# define TQLSYS 1 /* Includefile-Kenner */
|
||||
# define SDCP 1 /* DCP */
|
||||
# define SFSTAT 1 /* fstat() ist vorhanden */
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
# include <descrip.h>
|
||||
|
||||
#define D_Z DSC$K_DTYPE_Z /* unspecified */
|
||||
#define D_B DSC$K_DTYPE_B /* byte integer; 8-bit signed 2's-complement integer */
|
||||
#define D_BU DSC$K_DTYPE_BU /* byte logical; 8-bit unsigned quantity */
|
||||
#define D_W DSC$K_DTYPE_W /* word integer; 16-bit signed 2's-complement integer */
|
||||
#define D_WU DSC$K_DTYPE_WU /* word logical; 16-bit unsigned quantity */
|
||||
#define D_L DSC$K_DTYPE_L /* longword integer; 32-bit signed 2's-complement integer */
|
||||
#define D_LU DSC$K_DTYPE_LU /* longword logical; 32-bit unsigned quantity */
|
||||
#define D_Q DSC$K_DTYPE_Q /* quadword integer; 64-bit signed 2's-complement integer */
|
||||
#define D_QU DSC$K_DTYPE_QU /* quadword logical; 64-bit unsigned quantity */
|
||||
#define D_O DSC$K_DTYPE_O /* octaword integer; 128-bit signed 2's-complement integer */
|
||||
#define D_OU DSC$K_DTYPE_OU /* octaword logical; 128-bit unsigned quantity */
|
||||
#define D_F DSC$K_DTYPE_F /* F_floating; 32-bit single-precision floating point */
|
||||
#define D_D DSC$K_DTYPE_D /* D_floating; 64-bit double-precision floating point */
|
||||
#define D_G DSC$K_DTYPE_G /* G_floating; 64-bit double-precision floating point */
|
||||
#define D_H DSC$K_DTYPE_H /* H_floating; 128-bit quadruple-precision floating point */
|
||||
#define D_T DSC$K_DTYPE_T /* character-coded text; a single character or a string */
|
||||
#define D_NU DSC$K_DTYPE_NU /* numeric string, unsigned */
|
||||
#define D_NL DSC$K_DTYPE_NL /* numeric string, left separate sign */
|
||||
#define D_NLO DSC$K_DTYPE_NLO /* numeric string, left overpunched sign */
|
||||
#define D_NR DSC$K_DTYPE_NR /* numeric string, right separate sign */
|
||||
#define D_NRO DSC$K_DTYPE_NRO /* numeric string, right overpunched sign */
|
||||
#define D_NZ DSC$K_DTYPE_NZ /* numeric string, zoned sign */
|
||||
#define D_P DSC$K_DTYPE_P /* packed decimal string */
|
||||
|
||||
#define RECORD 0 /* RECORD-Sortierprozess */
|
||||
#define TAG 1 /* TAG-Sortierprozess */
|
||||
|
||||
struct sort_field /* Sortierfeldaufbau System-Sort */
|
||||
{
|
||||
short s_typ; /* Sortiertyp */
|
||||
short s_order; /* Sortierrichtung */
|
||||
short s_offset; /* Offset im Sort-Feld */
|
||||
short s_len; /* Laenge Sort-Kompon. */
|
||||
};
|
||||
Loading…
Reference in New Issue