
#ifdef Mnt
#  define Mntos2
#endif
#ifdef Mos2
#  define Mntos2
#endif
#ifndef Ms
#  define Mexaedit
#endif
#include <ctype.h>
#include <curses.h> 
#ifndef Mnt
#  include <dirent.h>
#else
#  include <direct.h>
#  include <io.h>
#endif
#include <errno.h>
#include <limits.h> 
#ifndef Mnt
#  include <pwd.h>
#endif
#include <signal.h>
#ifdef Mhpux
#  include <setjmp.h>
#endif
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#ifndef Mntos2
#  include <term.h>
#endif
#include <time.h>
#ifndef Mnt
#  include <unistd.h>
#endif
#ifndef Mntos2
#include <arpa/ftp.h>         
#include <arpa/inet.h>        
#include <arpa/telnet.h>      
#include <fcntl.h>            
#include <netdb.h>            
#include <netinet/in.h>       
#include <netinet/in_systm.h> 
#include <sys/socket.h>       
#include <sys/socketvar.h>    
#include <sys/wait.h>         
#endif
#define Cast
#ifdef Maix4
#  define Fputs k
#endif
#ifdef Mirix
#  define Fputs k
#  define Stat
#endif
#ifdef Mlin
#  define Fputs strlen (pi)
#  define Stat
#endif
#ifdef Mmac
#  define Fputs strlen (pi)
#  define Stat
#endif
#ifdef Mnt
#  define Fputs strlen (pi)
#  define R_OK 04
#  define W_OK 02
#endif
#ifdef Mos2
#  define Fputs strlen (pi)
#  define Stat
#endif
#ifdef Mosf1
#  define Fputs k
#  define Stat
#endif
#ifdef Msunos
#  define Cast (char *)
#  define Fputs k
#  define Stat
#endif
#define NOT '!'
#define Fanfgend 10
#define Ffehlbef 11
#define Fkeinbuc 12
#define Fkeineke 13
#define Fkeinesp 14
#define Fparmfeh 15
#define Fprofehl 16
#define Fpvnidef 17
#define Fpvniket 18
#define Fpvninum 19
#define Fpvnisat 20
#define Fspalte0 21
#define Fzugross 22
#define Sp 400
#define Sprintf sprintf
#define TA if(test[0]==1){lug=fopen(logfile[0],"a");
#define TA1 if(test[1]==1){lug=fopen(logfile[1],"a");
#define TA2 if(test[2]==1){lug=fopen(logfile[2],"a");
#define TA3 if(test[3]==1){lug=fopen(logfile[3],"a");
#define TE (void)fclose(lug);}
#define Zl 150
#define alall i1
#define alanz i2
#define alcol i3
#define alhda i4
#define alida i5
#define allef i6
#define almax i7
#define almov i8
#define allae i9
#define alcas i10
#define alla2 i11
#define allin i12
#define calx i1
#define cccolu i1
#define ccline i2
#define ccanzsp i3
#define ccanfsp i4
#define ccanfzl i5
#define cczielsp i6
#define cczielzl i7
#define ccanzzl i8
#define cczz i9
#define chcas i1
#define chhex i2
#define chida i3
#define filurl i1
#define helae i1
#define hepref i2
#define loacou i1
#define loacou2 i2
#define loacou3 i3
#define loaign i4
#define loaigna i5
#define loaigna2 i6
#define loalet i7
#define loarec i8
#define loareca i9
#define loasel i10
#define loaexc i11
#define loasex i12
#define loaurl i13
#define loccas i1
#define lochex i2
#define locida i3
#define movcou i1
#define repund i1
#define scoffon i1
#define seqanz i1
#define seqbas i2
#define seqend i5
#define seqfue i6
#define seqlau i7
#define seqneu i8
#define seqzif i9
#define seqzuw i10
#define sspcas i1
#define ssphex i2
#define sspida i3
#define ssplae i4
#define pavalt i1
#define pavind i2
#define pavnum i3
#define pavsub i4
#define pavzah i5
enum tabty {Aeinzel, Aformel};
enum filo  {Afile, Aload};
char       aendk [255];
char       alpha [53] = "abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char       alphau [60] = "abcdefghijklmnopqrstuvwxyzäöüß"
"ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ";
char       alphanum [63] = "abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
char       alphanumv [65] = "+-abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
int        anzahl;
int        anzahl2;
int        anz1;
int        anz2;
int        anz3;
int        art = 1;
FILE      *aus;
int        ausfgn ();
int        ausfin ();
int        ausfue (char *zeile);
void       ausgab (int);
int        ausson (char *zeile, int j);
char       beftab [921] =    "ADD     ALIGN   BOTTOM  BACK    BETx    "
"BETA    CHANGE  CASE    CALL    CALX    "
"CCOPY   CDELETE CMOVE   CMDSEP  "
"COPY    CODEPAGECOMPRESSCONCAT  COUNT   CSPLIT  DISPLAY "
"DELETE  DELETEL DL      DOWN    END     ERROR   "
"EXEC    EXPAND  "
"FILE    FILL    HELP    HEXA    INPUT   INDENT  INLENGTH"
"INSMODE KEY     KEYBOARDLOCATE  LANGUAGELOAD    "
"LOGCHARSLWWIDTH MOVE    MASTER  "
"MANUAL  MARK    MODE    NEXT    NEWS    NFIND   NLOCATE "
"NOKEYS  NP      NRFIND  NRLOCATENUMBER  OVERLAY OUTPUT  "
"PRINT   PBACKSP PFK     PL      POINT   PREKEY  PRINTLEN"
"PROFILE QUIT    QUIET   REPLACE REKEY   RESTORE RETURN  "
"RFIND   RLOCATE RNFIND  RNLOCATERULER   SAVEFILESCOPE   "
"SEQUENCESET     SKEY    "
"SKIP    SMMODE  SORx    SORT    SPLIT   "
"SSPLIT  SUBMIT  SZONE   TOP     TABDEF  TABEX   TABSET  "
"TEST    TRANSLATTRAILBL TRIM    TRUNCATEUP      UNDELETE"
"VERSION VERIFY  WF      WIDTx   WIDTH   WORKFILEWRAP    "
"X       XSUBMIT XLATE   Y       ZONE    ";
int        bereich;
int        bestae (char *text1, char *text2);
int        bestpr (char ch);
int        beta;
int        betaon = 0;
char       bild [Zl * Sp + 1];
#ifdef Ms
char       bildk [Zl * Sp + 9];
#endif
void       bilgro ();
char      *b_cas; 
char      *b_dsn; 
char      *b_ebe; 
char      *b_inp; 
char      *b_ins; 
char      *b_lia; 
char      *b_lin; 
char      *b_mul; 
char      *b_spe; 
char      *b_wf2; 
char      *b_xxx; 
char      *b_znl; 
char      *b_znz; 
int        blaettg; 
int        blaetth; 
int        breite (int i);
char       browser [4] [10] = {"firefox  ", "netscape ", "opera    ",
"lynx     "};
struct l  *ccanfzlp;
static char
*cclass (); 
struct l  *cczielzlp;
char       ch; 
int        chal;
int        chall;
int        chanz;
int        chdis;
int        chl1;
int        chl2;
int        chmal;
int        chrig;
int        chvar;
char       chzz [8]; 
char       ch100 [101];
#ifdef Mp
char       ch1200 [1201];
#endif
char       ch16 [17];
char       ch160 [161];
char       ch8 [9];
char       ch9 [10];
int        cdelete;
char       cmdsep = ';';
int        cmdsepon = 1;
int        cmove;
int        cola;
int        cole;
#ifdef Ms
int        COLS;
#endif
int        colsalt = 0;
int        compressanz = 4; 
char       conket [255];
#ifdef Mnt
int        cp850 [] = {
255, 173, 189, 156, 207, 190, 221, 245, 249, 184, 166, 174,
170, 240, 169, 238, 248, 241, 253, 252, 239, 230, 244, 250,
247, 251, 167, 175, 172, 171, 243, 168, 183, 181, 182, 199,
142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216,
209, 165, 227, 224, 226, 229, 153, 158, 157, 235, 233, 234,
154, 237, 232, 225, 133, 160, 131, 198, 132, 134, 145, 135,
138, 130, 136, 137, 141, 161, 140, 139, 208, 164, 149, 162,
147, 228, 148, 246, 155, 151, 163, 150, 129, 236, 231, 152};
int        cp88591 [] = {
199, 252, 233, 226, 228, 224, 229, 231, 234, 235, 232, 239,
238, 236, 196, 197, 201, 230, 198, 244, 246, 242, 251, 249,
255, 214, 220, 248, 163, 216, 215, 159, 225, 237, 243, 250,
241, 209, 170, 186, 191, 174, 172, 189, 188, 161, 171, 187,
176, 177, 178, 179, 180, 193, 194, 192, 169, 185, 186, 187,
188, 162, 165, 191, 192, 193, 194, 195, 196, 197, 227, 195,
200, 201, 202, 203, 204, 205, 206, 164, 240, 208, 202, 203,
200, 213, 205, 206, 207, 217, 218, 219, 220, 166, 204, 223,
211, 223, 212, 210, 245, 213, 181, 254, 222, 218, 219, 217,
253, 221, 175, 180, 173, 177, 242, 190, 182, 167, 247, 184,
176, 168, 183, 185, 179, 178, 254, 160};
#endif
void       crenum (int numt, char *numcc);
int        curoff;
char       curpos [6];
char       curvar [8];
void       curses ();
int        cur1;
int        cur2;
FILE      *dat;
int        dataen [Zl - 9];
int        dataend = 1;
int        datnanf;
char       ddname [36] = "DD_";
char       deli;
int        delta;
char       dialogz [10] [Sp + 1];
FILE      *dmp;
int        dollar;
#ifdef Ms
int        dollar3 = 0;
#endif
int        doppelpunkt;
#ifdef Mnt
void       doswin (char *zeile, int j);
#endif
char       dsnamedat [256];
char       dsnamefile [256];
char       dsnameload [256];
#ifdef Mnt
char       dsnameload2 [260];
#endif
int        dsnerz (char **pz, int *restleer, char *dsn);
int        dsnprf (enum filo typ, char *dsn);
int        dsnprfi;
char       dsntast [32];
char       dsnurl [32];
char       dsnwget [32];
struct l  *dtzuad [Zl - 9];
static int dtzufl [Zl - 9]; 
struct l  *dzadr [Zl - 9];
static int dzaen [Zl]; 
static int dzben [Zl]; 
double     d1;
double     d2;
void       eazone (char *pi);
int        eazonebenutzt;
int        ebe = 2; 
FILE      *ein;
int        einfg = 0;
int        einsueber = 0;
int        ende;
int        error = 0;
int        errpro (int i);
char       eti [81];  
struct lm *exca; 
struct l  *exec;
int        exec2;
char       fehler [81];
int        fenstergeaendert = 0;
void       fenstr (char *pi);
char       flg [Zl - 9];
int        fnr;
char       fnrs [10];
int        forts;
int        frage2 = 0;
int        ftpksock;
int        ftpnsock;
int        ftptyp;
int        geaendert;
int        getciv (int typ, char **pj, int *restleer);
int        getciv1;
int        getket (char **pj, int *restleer);
int        getlml (struct lm **sexa, char **pj, int *restleer);
int        getnam (char **pj, int *restleer);
int        getniv (int typ, char **pj, int *restleer);
int        getniv1;
void       getnum (char **pj, int *restleer);
int        getumg (char **pz);
int        getvor (char **pj, int *restleer);
void       getwfn (char **pj, int *restleer);
int        getzei (char **pj, int *restleer, int zeichen);
int        getzhl (char **pj, int *restleer);
char       help [10];
int        hexa = 0;
int        hexasc (char *pi);
char       hexzif [23] = "0123456789abcdefABCDEF";
int        hlpaue (char *pi, int i);
int        hlpaus (char *pi, int i);
int        http;
char       httpbi [21];
char       httpds [256];
int        httpid;
char       httpkw [21];
char       httpsv [250];
int        i;
int        ialt = 0;
int        idat;
int        ifol;
int        igel;
int        jgel;
int        ii;
int        incr = 20;
int        incri;
int        incrt = 5; 
int        incrt2 = 7; 
int        incrtab [] = {0, 1, 2, 5, 10, 20, 50, 100, 200, 500};
int        incrtab2 [] = {0, 1, 2, 5, 10, 20, 50, 100, 200, 500, 0};
int        indakt = 0;
int        indaktalt;
int        indbet = - 1;
int        indent = 1;
int        indmax;
int        inlakt;
int        inltat;
int        inlzl1;
void       inpend ();
int        inputi;
int        inputm = 0;
int        inputmodeaus = 0;
char       insd [6] = "iNsD0";
int        insdauer;
int        insmode;
int        isp [Sp + 1];
int        itemp;
int        itemp2;
int        iverz;
int        i1;
int        i2;
int        i3;
int        i4;
int        i5;
int        i6;
int        i7;
int        i8;
int        i9;
int        i10;
int        i11;
int        i12;
int        i13;
int        j;
int        jalt;
int        jj;
int        jjj;
#ifdef Mhpux
jmp_buf    jmpbuf;
#endif
int        k;
int        keth;
void       ketngf (int typ, int hexa, char *kette, char *ketteh);
char       kette [255];
char       ketteh [255];
int        keyboardall = 0;
int        klammer;
struct     l {
struct l *vorw;
struct l *rckw;
int       lmax; 
int       lben; 
int       lnlz; 
char      schl [9];
char      flag;
char      datn [1];};
int        la;
char       la2 [6] = "lAnG1";
int        laeges;
struct l  *lalt;
char       lang [3] [9] = {"deutsch", "udeutsch", "english"};
int        langsam = 0;
struct l  *lauf;
int        lb = 0;
int        leerein;
int        leselae;
int        leselae2;
int        lesenfertig;
int        letztenummer;
int        letztetaste = 0;
int        lieskw (char *text1, char *text2);
char       lineal [257] = "....;....1....;....2....;....3....;....4"
"....;....5....;....6....;....7....;....8"
"....;....9....;....10...;....11...;....1"
"2...;....13...;....14...;....15...;....1"
"6...;....17...;....18...;....19...;....2"
"0...;....21...;....22...;....23...;....2"
"4...;....25...;.";
#ifdef Ms
int        LINES;
#endif
int        llae;
void       lmmeld (char *t999);
struct     lm {
struct lm *vorw;
struct lm *rckw;
char       datn [1];};
int        lname;
int        lnch;
int        loca = 1; 
int        loce = 0; 
int        locgro = 1; 
int        locl; 
int        loclae;
int        loclae2;
int        locwra;
char       locz [255]; 
char       loczh [255]; 
char       logfile [4] [54];
int        lpuffer;
int        lrepld;
int        lreplk;
int        lsl;
int        ltrenn;
FILE      *lug;
int        lvor;
int        lwwidth2;
int        l001 [] = {7, 7, 6};
int        l002 [] = {9, 9, 7};
int        m;
struct ms *mana; 
struct ms *mand; 
int        mani = 1; 
struct ms *mann; 
char       manname [5];
struct ms *mant; 
char       mantext [100];
int        manual;
int        markanzd;
int        markanzg;
int        markanzi;
struct l  *markd;
struct l  *markg;
struct l  *marki;
int        markiert = 0;
int        markiertd = 0;
int        markiertg = 0;
int        markierti = 0;
char       mass [4] [3] = {"B", "KB", "MB", "GB"};
char       meldung [60];
char       modeparm [6] [9] =
{"", "ON", "OFF", "STANDARD", "TEXT", "XML"};
int        modesp = 0;
int        modezl;
FILE      *mon;
int        moni = 0;
int        monlae [12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,
31};
int        monoffen = 0;
struct     ms {
struct ms *vorw;
struct ms *rckw;
char       name [5]; 
char       datn [1];};
int        multiple;
int        n;
char       name [9];
struct l  *nchs;
int        neu;
int        neuezeilen;
int        next;
int        nichtletztes;
int        nloc;
int        nojump = 0;
int        noneaz = 0; 
char       nonuml [97] = "abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
" !#&'()*+,-./:;<=>?[]_|~";
static int noraendie [Zl - 9]; 
char       num [11] = "0123456789";
static int prfaen [Zl - 9]; 
char       numc [9];
char       numc1 [9];
char       numc2 [9];
void       numein (struct l *numa, struct l *nume, int numanz);
int        numid;
int        numil;
int        numi1;
int        numi2;
int        numi3;
char       numle [12] = "0123456789 ";
struct l  *nump;
struct l  *numpl;
struct l  *nump1;
struct l  *nump2;
int        numt;
int        numt1;
int        numt2;
struct     p {
struct p *vorw;
struct p *rckw;
int       laen;
char      datn [1];};
int        panall (char **pj, int *restleer);
void       parrek (struct l *lauf, int numanz);
char       pathname [1026];
char      *pb;
char      *pc;
int        pccp = 2;
char      *pd;
#ifdef Ms
FILE      *pesa;
FILE      *pese;
#endif
int        pfkbenu [25] = {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int        pfklock [25] = {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int        pfkset;
int        pfktemp [25];
char       pfktext [25] [80];
char      *pi; 
char      *pj; 
char      *pjl; 
char      *pju; 
char      *pk; 
int        plusminus;
char       praefix [(Zl - 9) * 8 + 1];
int        prmt;
FILE      *pro;
int        prodat ();
struct p  *profa;
void       profeh (int j, int i);
int        profilanz = 0;
int        profilbearbeiten;
char       profillog [10] [81];
int        profilmel [10];
struct p  *proft;
struct p  *profv;
#ifdef Mp
FILE      *ptk;             
int        ptkbleibt = 0;   
int        ptki = 0;        
int        ptknr = 0;       
int        ptksp [15];      
#endif
#ifdef Mt
FILE      *ptk;             
int        ptknr = 0;       
#endif
char       pufexec [Sp + 1];
char       puffer [902];
char       puffer2 [902];
int        pvanz = 4; 
int        pvinn [10] = {0, 0, 0, 0}; 
char       pvins [10] [101];
char       pvnam [10] [9] = {"Col", "Count", "Line", "Loc"};
char       pvtmp [9];
int        pvtyp [10] = {1, 1, 3, 2};
char       pvtyq [5] = " NSL";
int        pwwidth2;
char      *pz;
char      *pz0;
int        quiet = 0;
int        quitsignalisiert = 0;
int        rekbase = 100;
int        rekincr = 100;
int        repli;
char       replk [255];
int        repl1;
int        repl2;
int        rescope;
#ifdef Ms
int        ret1 = 0;
#endif
int        richtung;
int        rloc;
char       schluessel [9];
int        schonda = 0;
int        scope = 0;
int        scope2 = 0; 
struct lm *sela; 
int        selbezeile;
struct lm *sexl; 
struct lm *sext; 
int        sextst (char *dsname);
int        setp2 = 0;
int        setzuleeren;
void       sigcnt (int i);
void       sigint (int i);
void       sigpip (int i);
void       sigseg (int isig);
int        sigsegakt = 1;
void       sigwch (int i);
int        skeyneu = 6;
int        skey2;
char       snumg [9];
char       snumgs [73] = "        "
"00000009" "00000099" "00000999" "00009999"
"00099999" "00999999" "09999999" "99999999";
int        soanf [100];
int        soanf2 [100];
int        soanz;
int        socas [100];
int        sogro [100];
int        sokle [100];
int        solen [100];
int        solen2 [100];
int        sonum [100];
int        sorcas;
int        sornum;
int        sosat;
struct l **sozei;
int        sp;
int        spaa;
int        spae;
int        spfest = - 1;
int        spteil = 0;
int        spteil2 = 0;
int        spzur = 0;
int        ssp1;
int        ssp2;
int        statfu (char *pfad);
int        sternchen = 0;
char       suchk [255];
char       suchkh [255];
char       suchkssp [255];
char       suchkssph [255];
int        suchlssp;
char       s1 [100];
char       s2 [100];
int        tabsanf = 1;
int        tabsanz; 
int        tabsdif = 8;
enum tabty tabtyp = Aformel;
int        taste;
int        tastealt;
int        tastoffen = 0;
struct l  *temp;
#ifdef Mp
char       tempdsn [32];  
char      *tempnam ();    
#endif
#ifdef Mt
char       tempdsn [32];  
#endif
#ifdef Ms
char       tempdsn [32];
#endif
int        termok = 1;
int        test [4];
char       tekst [20];
void       tielmu (int jj);
int        translate = 1; 
char       trennsatz [259];
int        trennsatzda;
int        typ;
int        typevarms;
int        typ1;
int        typ2;
char       typ3 [5];
char       t0 [] = "@(#)This is exaEdit, a text editor. "
"Home-page: http://exaedit.de/ "
"Version is 02D "
#if   defined (Maix4)
"for AIX 4, Compiler is xlc version 5";
#elif defined (Maix3)
"for AIX 3, Compiler is gcc version 2.7.2.2";
#elif defined (Mirix)
"for IRIX";
#elif defined (Mhpux)
"for HP-UX";
#elif defined (Mosf1)
"for OSF1";
#elif defined (Msunos)
"for SunOS 5 or higher";
#elif defined (Mlin)
"for Linux, Compiler is gcc";
#elif defined (Mnt)
"for 32 bit Windows";
#elif defined (Mos2)
"for OS/2";
#elif defined (Mmac)
"for MacOSX (Darwin)";
#else
"for ???";
#endif
char       t001 [3] [51] = {
"Neue Datei, gib J oder Y ein, um sie zu erstellen:",
"Neue Datei, gib J oder Y ein, um sie zu erstellen:",
"New data set, enter J or Y to create it:"};
char       t002 [3] [50] = {
"Alte Datei, gib J oder Y ein, um sie zu ersetzen:",
"Alte Datei, gib J oder Y ein, um sie zu ersetzen:",
"Old data set, enter J or Y to replace it:"};
char       t003 [3] [51] = {
"Neue Datei, druecke J oder Y, um sie zu erstellen:",
"Neue Datei, drücke J oder Y, um sie zu erstellen:",
"New data set, press J or Y to create it:"};
char       t004 [3] [50] = {
"Alte Datei, druecke J oder Y, um sie zu ersetzen:",
"Alte Datei, drücke J oder Y, um sie zu ersetzen:",
"Old data set, press J or Y to replace it:"};
char       t005 [3] [18] = {
"Parameter fehlt",
"Parameter fehlt",
"Parameter missing"};
#ifndef Mnt
char       t006 [3] [38] = {
"Datei nicht geoeffnet (nicht da?)",
"Datei nicht geöffnet (nicht da?)",
"Data set not opened (does not exist?)"};
#else
char       t006 [3] [54] = {
"Datei nicht geoeffnet (nicht da? nicht erlaubt?)",
"Datei nicht geöffnet (nicht da? nicht erlaubt?)",
"Data set not opened (does not exist? is not allowed?)"};
#endif
char       t007 [3] [40] = {
"Datei nicht vollstaendig, Lesefehler %d",
"Datei nicht vollständig, Lesefehler %d",
"Data set not complete, read error %d"};
char       t008 [3] [22] = {
"Schliessendes ' fehlt",
"Schließendes ' fehlt",
"Ending ' missing"};
char       t009 [3] [22] = {
"Ungueltiger Parameter",
"Ungültiger Parameter",
"Wrong parameter"};
char       t010 [3] [32] = {
"ACHTUNG: Daten nicht gesichert!",
"ACHTUNG: Daten nicht gesichert!",
"ATTENTION: Data not saved!"};
char       t011 [3] [16] = {
"Daten gesichert",
"Daten gesichert",
"Data saved"};
char       t012 [3] [50] = {
"exaEdit: Umgebungsvariable TERM nicht definiert\n",
"exaEdit: Umgebungsvariable TERM nicht definiert\n",
"exaEdit: Environment variable TERM not defined\n"};
char       t013 [3] [25] = {
"exaEdit im Zeilenmodus\n",
"exaEdit im Zeilenmodus\n",
"exaEdit in line mode\n"};
char       t014 [3] [9] = {
"loeschen",
"löschen",
"delete"};
char       t015 [3] [12] = {
"verschieben",
"verschieben",
"move"};
char       t016 [3] [24] = {
"Ziel im MOVE-Bereich",
"Ziel im MOVE-Bereich",
"Target in the MOVE area"};
char       t017 [3] [51] = {
"exaEdit: Versuch, den Bildschirmmodus zu beenden\n",
"exaEdit: Versuch, den Bildschirmmodus zu beenden\n",
"exaEdit: trying to stop screen mode\n"};
char       t018 [3] [32] = {
"exaEdit: Terminaltyp ist: %s\n",
"exaEdit: Terminaltyp ist: %s\n",
"exaEdit: terminal type is: %s\n"};
char       t019 [3] [21] = {
"F-Taste wurde belegt",
"F-Taste wurde belegt",
"F-key now defined"};
char       t020 [3] [25] = {
"F-Taste ist nicht belegt",
"F-Taste ist nicht belegt",
"F-key is not defined"};
char       t021 [3] [3] = {
"UG",
"UG",
"UP"};
char       t022 [3] [38] = {
"Taste Ende noch nicht einprogrammiert",
"Taste Ende noch nicht einprogrammiert",
"Key 'End' not supported"};
char       t023 [3] [11] = {
"Tastenwert",
"Tastenwert",
"Key value"};
char       t024 [3] [26] = {
"(noch) nicht programmiert",
"(noch) nicht programmiert",
"not (yet) programmed"};
char       t025 [3] [49] = {
"exaEdit: Escape-Folgen statt Tasten: %d\n ",
"exaEdit: Escape-Folgen statt Tasten: %d\n ",
"exaEdit: Escape sequences instead of keys: %d\n "};
char       t026 [3] [17] = {
"%d mal geaendert",
"%d mal geändert",
"%d times changed"};
char       t027 [3] [54] = {
"Mixed (Lower): ohne Uebersetzung in Grossbuchstaben",
"Mixed (Lower): ohne Übersetzung in Großbuchstaben",
"Mixed (Lower): without translation to capital letters"};
char       t028 [3] [58] = {
"Upper: mit Uebersetzung in Grossbuchstaben (ohne Umlaute)",
"Upper: mit Übersetzung in Großbuchstaben (ohne Umlaute)",
"Upper: with translation to capital letters"};
char       t029 [3] [62] = {
"exaEdit: Druecke die Eingabetaste, wenn du alles gesehen hast",
"exaEdit: Drücke die Eingabetaste, wenn du alles gesehen hast",
"exaEdit: Press Enter, when you have seen everything"};
char       t030 [3] [22] = {
"Ignorierte Saetze: %d",
"Ignorierte Sätze: %d",
"Records ignored: %d"};
char       t031 [3] [24] = {
"Workfile nicht gefunden",
"Workfile nicht gefunden",
"Workfile not found"};
char       t032 [3] [12] = {
"vorigen (p)",
"vorigen (p)",
"previous"};
char       t033 [3] [14] = {
"folgenden (n)",
"folgenden (n)",
"next"};
char       t034 [3] [21] = {
"Ziel im COPY-Bereich",
"Ziel im COPY-Bereich",
"Target in COPY area"};
char       t035 [3] [47] = {
"%d mal in 1 Satz um %d Leerzeichen komprimiert",
"%d mal in 1 Satz um %d Leerzeichen komprimiert",
"compressed %d times in 1 record by %d blanks"};
char       t036 [3] [51] = {
"%d mal in %d Saetzen um %d Leerzeichen komprimiert",
"%d mal in %d Sätzen um %d Leerzeichen komprimiert",
"compressed %d times in %d records by %d blanks"};
char       t037 [3] [28] = {
"Aenderungen nicht gesichert",
"Änderungen nicht gesichert",
"Changes not saved"};
char       t038 [3] [29] = {
"Nicht gesicherte workfiles: ",
"Nicht gesicherte workfiles: ",
"Workfiles not saved: "};
char       t039 [3] [34] = {
"Gib J oder Y ein, um aufzuhoeren:",
"Gib J oder Y ein, um aufzuhören:",
"Enter J or Y to stop:"};
char       t040 [3] [34] = {
"Druecke J oder Y, um aufzuhoeren:",
"Drücke J oder Y, um aufzuhören:",
"Press J or Y to stop:"};
char       t041 [3] [46] = {
"%d mal in 1 Satz um %d Leerzeichen expandiert",
"%d mal in 1 Satz um %d Leerzeichen expandiert",
"Expanded %d times in 1 record by %d blanks"};
char       t042 [3] [50] = {
"%d mal in %d Saetzen um %d Leerzeichen expandiert",
"%d mal in %d Sätzen um %d Leerzeichen expandiert",
"Expanded %d times in %d records by %d blanks"};
char       t043 [3] [8] = {
"Eingabe",
"Eingabe",
"Input"};
char       t044 [3] [26] = {
"Druecke Taste und 'Enter'",
"Drücke Taste und 'Enter'",
"Press key and 'Enter'"};
char       t045 [3] [15] = {
"Druecke Taste:",
"Drücke Taste:",
"Press key:"};
char       t046 [3] [25] = {
"Escape-Folge zu lang",
"Escape-Folge zu lang",
"Escape sequence too long"};
char       t047 [3] [6] = {
"keine",
"keine",
"none"};
char       t048 [3] [17] = {
"Cursor aufwaerts",
"Cursor aufwärts",
"Cursor up"};
char       t049 [3] [16] = {
"Cursor abwaerts",
"Cursor abwärts",
"Cursor down"};
char       t050 [3] [14] = {
"Cursor rechts",
"Cursor rechts",
"Cursor right"};
char       t051 [3] [13] = {
"Cursor links",
"Cursor links",
"Cursor left"};
char       t052 [3] [56] = {
"Curses: -, Zeichen: keins, Escape: \\E%s, Funktion: %s",
"Curses: -, Zeichen: keins, Escape: \\E%s, Funktion: %s",
"Curses: -, Character: none, Escape: \\E%s, Function: %s"};
char       t053 [3] [5] = {
"Entf",
"Entf",
"Del"};
char       t054 [3] [53] = {
"Curses: %d, Zeichen: keins, Escape: -, Funktion: %s",
"Curses: %d, Zeichen: keins, Escape: -, Funktion: %s",
"Curses: %d, Character: none, Escape: -, Function: %s"};
char       t055 [3] [6] = {
"Einfg",
"Einfg",
"Ins"};
char       t056 [3] [14] = {
"Bild abwaerts",
"Bild abwärts",
"Page down"};
char       t057 [3] [15] = {
"Bild aufwaerts",
"Bild aufwärts",
"Page up"};
char       t058 [3] [5] = {
"Ende",
"Ende",
"End"};
char       t059 [3] [53] = {
"Curses: %s, Zeichen: keins, Escape: ?, Funktion: %s",
"Curses: %s, Zeichen: keins, Escape: ?, Funktion: %s",
"Curses: %s, Character: none, Escape: ?, Function: %s"};
char       t060 [3] [55] = {
"Curses: %d, Zeichen: keins, Escape: -, Funktion: keine",
"Curses: %d, Zeichen: keins, Escape: -, Funktion: keine",
"Curses: %d, Character: none, Escape: -, Function: none"};
char       t061 [3] [53] = {
"Curses: %d, Zeichen: %c, Escape: -, Funktion: keine",
"Curses: %d, Zeichen: %c, Escape: -, Funktion: keine",
"Curses: %d, Character: %c, Escape: -, Function: none"};
char       t062 [3] [57] = {
"Curses: F(%d), Zeichen: keins, Escape: ?, Funktion: F%d",
"Curses: F(%d), Zeichen: keins, Escape: ?, Funktion: F%d",
"Curses: F(%d), Character: none, Escape: ?, Function: F%d"};
char       t063 [3] [52] = {
"Curses: %d, Zeichen: keins, Escape: ?, Funktion: ?",
"Curses: %d, Zeichen: keins, Escape: ?, Funktion: ?",
"Curses: %d, Character: none, Escape: ?, Function: ?"};
char       t064 [3] [29] = {
"Zeichenkette nicht gefunden:",
"Zeichenkette nicht gefunden:",
"Character string not found:"};
char       t065 [3] [25] = {
"Suche ab Anfang (wrap)",
"Suche ab Anfang (wrap)",
"Search from begin (wrap)"};
char       t066 [3] [21] = {
"MANUAL-Name zu lang",
"MANUAL-Name zu lang",
"MANUAL name too long"};
char       t067 [3] [39] = {
"Es sind keine MANUAL-Aufrufe definiert",
"Es sind keine MANUAL-Aufrufe definiert",
"There are no MANUAL calls defined"};
char       t068 [3] [44] = {
"Kein voreingestellter MANUAL-Name vorhanden",
"Kein voreingestellter MANUAL-Name vorhanden",
"No default MANUAL name exists"};
char       t069 [3] [28] = {
"MANUAL-Name nicht definiert",
"MANUAL-Name nicht definiert",
"MANUAL name not defined"};
char       t070 [3] [12] = {
"Datenende",
"Datenende",
"End of data"};
char       t071 [3] [14] = {
"Datenanfang",
"Datenanfang",
"Begin of data"};
char       t072 [3] [33] = {
"Zeichenkette in allen Saetzen:",
"Zeichenkette in allen Sätzen:",
"Character string in all records:"};
char       t073 [3] [23] = {
"Suche ab Ende (wrap)",
"Suche ab Ende (wrap)",
"Search from end (wrap)"};
char       t074 [3] [34] = {
"Diese F-Taste kennt exaEdit nicht",
"Diese F-Taste kennt exaEdit nicht",
"This F-key is unknown to exaEdit"};
char       t075 [3] [40] = {
"F-Tasten   G=geschuetzt, U=ungeschuetzt",
"F-Tasten   G=geschützt, U=ungeschützt",
"F-keys     P=protected, U=unprotected"};
char       t076 [3] [20] = {
"   loesche Zeichen",
"   lösche Zeichen",
"   delete character"};
char       t077 [3] [24] = {
"   Einfuegemodus an/aus",
"   Einfügemodus an/aus",
"   Insert mode on/off"};
char       t078 [3] [19] = {
"  restauriere Bild",
"  restauriere Bild",
"  restore screen"};
char       t079 [3] [19] = {
" Cursor nach links",
" Cursor nach links",
" Cursor left"};
char       t080 [3] [20] = {
" Cursor nach rechts",
" Cursor nach rechts",
" Cursor right"};
char       t081 [3] [18] = {
" Cursor nach oben",
" Cursor nach oben",
" Cursor up"};
char       t082 [3] [19] = {
" Cursor nach unten",
" Cursor nach unten",
" Cursor down"};
char       t083 [3] [14] = {
"Neu numeriert",
"Neu numeriert",
"Renumbered"};
char       t084 [3] [23] = {
"SET-Speicher unbenutzt",
"SET-Speicher unbenutzt",
"SET storage unused"};
char       t085 [3] [78] = {
"SET-Speicher geaendert, Rueckkehr zum vorhergehenden Satz",
"SET-Speicher geändert, Rückkehr zum vorhergehenden Satz",
"SET storage changed, return to previous record"};
char       t086 [3] [9] = {
"Sortiert",
"Sortiert",
"Sorted"};
char       t087 [3] [26] = {
"Sortierfelder ueberlappen",
"Sortierfelder überlappen",
"Sort fields overlap"};
char       t088 [3] [39] = {
"Der Befehl %s ist nicht abkuerzbar",
"Der Befehl %s ist nicht abkürzbar",
"The command %s cannot be abbreviated"};
char       t089 [3] [24] = {
"Das kriegen wir spaeter",
"Das kriegen wir später",
"Still to be implemented"};
char       t090 [3] [43] = {
"Den workfile MAIN kannst du nicht loeschen",
"Den workfile MAIN kannst du nicht löschen",
"Workfile MAIN is not deletable"};
char       t091 [3] [18] = {
"Workfile erstellt",
"Workfile erstellt",
"Workfile created"};
char       t092 [3] [25] = {
"Abbruch bei rekursivem X",
"Abbruch bei rekursivem X",
"Cancelled at recursive X"};
char       t093 [3] [25] = {
"Abbruch bei rekursivem Y",
"Abbruch bei rekursivem Y",
"Cancelled at recursive Y"};
char       t094 [3] [22] = {
"X ist nicht definiert",
"X ist nicht definiert",
"X is not defined"};
char       t095 [3] [22] = {
"Y ist nicht definiert",
"Y ist nicht definiert",
"Y is not defined"};
char       t096 [3] [33] = {
"Diesen Befehl gibt es noch nicht",
"Diesen Befehl gibt es noch nicht",
"This command does not exist yet"};
char       t097 [3] [37] = {
"Anfangsspalte groesser als Endspalte",
"Anfangsspalte größer als Endspalte",
"Begin column larger than end column"};
char       t098 [3] [23] = {
"Anzahl 0 nicht erlaubt",
"Anzahl 0 nicht erlaubt",
"Number 0 not allowed"};
char       t099 [3] [27] = {
"Die Spalte 0 gibt es nicht",
"Die Spalte 0 gibt es nicht",
"There is no column 0"};
char       t100 [3] [20] = {
"Gelesene Saetze: %d",
"Gelesene Sätze: %d",
"Records read: %d"};
char       t101 [3] [29] = {
"Diesen Befehl gibt es nicht:",
"Diesen Befehl gibt es nicht:",
"This command does not exist:"};
char       t102 [3] [33] = {
"Erste Nummer groesser als zweite",
"Erste Nummer größer als zweite",
"First number larger than second"};
char       t103 [3] [23] = {
"Es gibt keinen %s Satz",
"Es gibt keinen %s Satz",
"There is no %s record"};
char       t104 [3] [27] = {
"Fehlerhafter Befehl: %.59s",
"Fehlerhafter Befehl: %.59s",
"Command in error: %.59s"};
char       t105 [3] [25] = {
"Nummer %s nicht gefunden",
"Nummer %s nicht gefunden",
"Number %s not found"};
char       t106 [3] [26] = {
"Operand fehlt in: %.62s",
"Operand fehlt in: %.62s",
"Operand missing in: %.62s"};
char       t107 [3] [23] = {
"Gross/klein-sensibel",
"Groß/klein-sensibel",
"Case-sensitive"};
char       t108 [3] [52] = {
"IGNORE und/oder RECORDS fuer MULTIPLE nicht erlaubt",
"IGNORE und/oder RECORDS für MULTIPLE nicht erlaubt",
"IGNORE and/or RECORDS for MULTIPLE not possible"};
char       t109 [3] [32] = {
"Ungueltiger 2. Parameter: %.54s",
"Ungültiger 2. Parameter: %.54s",
"Invalid 2. Parameter: %.54s"};
char       t110 [3] [17] = {
"Zahl zu gross",
"Zahl zu groß",
"Number too large"};
char       t111 [3] [49] = {
"Zeilenmodus, da Fenster mehr als %d Zeilen hat",
"Zeilenmodus, da Fenster mehr als %d Zeilen hat",
"Line mode, because window has more than %d lines"};
char       t112 [3] [51] = {
"Zeilenmodus, da Fenster mehr als %d Spalten hat",
"Zeilenmodus, da Fenster mehr als %d Spalten hat",
"Line mode, because window has more than %d columns"};
char       t113 [3] [51] = {
"Zeilenmodus, da Fenster weniger als 10 Zeilen hat",
"Zeilenmodus, da Fenster weniger als 10 Zeilen hat",
"Line mode, because windows has fewer than 10 lines"};
char       t114 [3] [53] = {
"Zeilenmodus, da Fenster weniger als 40 Spalten hat",
"Zeilenmodus, da Fenster weniger als 40 Spalten hat",
"Line mode, because windows has fewer than 40 columns"};
char       t115 [3] [22] = {
"Zugriff nicht erlaubt",
"Zugriff nicht erlaubt",
"Access not allowed"};
char       t116 [3] [36] = {
"Keine Verbindung zu anderem Rechner",
"Keine Verbindung zu anderem Rechner",
"No connection to another computer"};
char       t117 [3] [21] = {
"Datei nicht gefunden",
"Datei nicht gefunden",
"File not found"};
char       t118 [3] [33] = {
"Teil des Namens kein Verzeichnis",
"Teil des Namens kein Verzeichnis",
"Part of the name is no directory"};
char       t119 [3] [50] = {
"Zu viele symbolic links, Verweis auf sich selbst?",
"Zu viele symbolic links, Verweis auf sich selbst?",
"Too many symbolic links, refer to itself?"};
char       t120 [3] [39] = {
"Verzeichnis kann nicht editiert werden",
"Verzeichnis kann nicht editiert werden",
"A directory cannot be edited"};
char       t121 [3] [33] = {
"Keine Datei und kein Verzeichnis",
"Keine Datei und kein Verzeichnis",
"No file and no directory"};
char       t122 [3] [38] = {
"exaEdit: Bearbeiten der Profildatei\n",
"exaEdit: Bearbeiten der Profildatei\n",
"exaEdit: Processing the profile\n"};
char       t123 [3] [14] = {
"Workfile-Name",
"Workfile-Name",
"Workfile name"};
char       t124 [3] [43] = {
"exaEdit: Fehler beim Lesen der Profildatei",
"exaEdit: Fehler beim Lesen der Profildatei",
"exaEdit: Error while reading the profile"};
char       t125 [3] [59] = {
"exaEdit: Gib ein Zeichen ein, wenn du alles gesehen hast",
"exaEdit: Gib ein Zeichen ein, wenn du alles gesehen hast",
"exaEdit: Enter any character when you have seen everything"}
;
char       t126 [3] [40] = {
"Programmfehler. Bitte festhalten: %d %d",
"Programmfehler. Bitte festhalten: %d %d",
"Programming error. Please note: %d %d"};
char       t127 [3] [47] = {
"<Strg c> wird wie der Befehl quit behandelt",
"<Strg c> wird wie der Befehl quit behandelt",
"<Ctrl c> will be handled like the quit command"};
char       t128 [3] [30] = {
"exaEdit.dmp nicht geoeffnet\n",
"exaEdit.dmp nicht geöffnet\n",
"exaEdit.dmp not opened\n"};
char       t129 [3] [24] = {
"exaEdit.dmp geoeffnet\n",
"exaEdit.dmp geöffnet\n",
"exaEdit.dmp opened\n"};
char       t130 [3] [21] = {
"%s nicht geoeffnet\n",
"%s nicht geöffnet\n",
"%s not opened\n"};
char       t131 [3] [15] = {
"%s geoeffnet\n",
"%s geöffnet\n",
"%s opened\n"};
char       t132 [3] [27] = {
"exaEdit: Daten gesichert\n",
"exaEdit: Daten gesichert\n",
"exaEdit: Data saved\n"};
char       t133 [3] [18] = {
"Daten gesichert\n",
"Daten gesichert\n",
"Data saved\n"};
char       t134 [3] [26] = {
"exaEdit.dmp geschlossen\n",
"exaEdit.dmp geschlossen\n",
"exaEdit.dmp closed\n"};
char       t135 [3] [19] = {
"Pfadname zu lang",
"Pfadname zu lang",
"Path name too long"};
char       t136 [3] [42] = {
"Kein Home-Verzeichnis fuer %.44s gefunden",
"Kein Home-Verzeichnis für %.45s gefunden",
"No Home-directory found for %.55s"};
char       t137 [3] [27] = {
"Verzeichnis nicht gefunden",
"Verzeichnis nicht gefunden",
"Directory not found"};
char       t138 [3] [31] = {
"Es ist nichts zum Sortieren da",
"Es ist nichts zum Sortieren da",
"There is nothing to be sorted"};
char       t139 [3] [11] = {
"sortieren",
"sortieren",
"sort"};
char       t140 [3] [27] = {
"Mehr als 100 Sortierfelder",
"Mehr als 100 Sortierfelder",
"More than 100 sort fields"};
char       t141 [3] [23] = {
"Laenge 0 gibt es nicht",
"Länge 0 gibt es nicht",
"Length 0 not possible"};
char       t142 [3] [13] = {
"verketten",
"verketten",
"concatenate"};
char       t143 [3] [36] = {
"Dateisystem kann nur gelesen werden",
"Dateisystem kann nur gelesen werden",
"File system may be read only"};
char       t144 [3] [30] = {
"Datei kann nur gelesen werden",
"Datei kann nur gelesen werden",
"Data set may be read only"};
char       t145 [3] [32] = {
"REKEY ergibt zu grosse Zahl",
"REKEY ergibt zu große Zahl",
"REKEY produces too large number"};
char       t146 [3] [26] = {
"Parameter nicht eindeutig",
"Parameter nicht eindeutig",
"Parameter ambiguous"};
char       t147 [3] [34] = {
"Parametervariable nicht definiert",
"Parametervariable nicht definiert",
"Parameter variable not defined"};
char       t148 [3] [36] = {
"Parametervariable bereits definiert",
"Parametervariable bereits definiert",
"Parameter variable already defined"};
char       t149 [3] [22] = {
"Befehlsname zu lang",
"Befehlsname zu lang",
"Command name too long"};
char       t150 [3] [37] = {
"Umgebungsvariable %s nicht definiert",
"Umgebungsvariable %s nicht definiert",
"Environment variable %s not defined"};
char       t151 [3] [28] = {
"Objekt ist kein Verzeichnis",
"Objekt ist kein Verzeichnis",
"Object is no directory"};
char       t152 [3] [28] = {
"Verzeichnis nicht geoeffnet",
"Verzeichnis nicht geöffnet",
"Directory not opened"};
char       t153 [3] [33] = {
"Umgebungsvariable %s ist leer",
"Umgebungsvariable %s ist leer",
"Environment variable %s is empty"};
char       t154 [3] [26] = {
"Zeichenkette zu lang",
"Zeichenkette zu lang",
"Character string too long"};
char       t155 [3] [27] = {
"Zeichenkette zu kurz",
"Zeichenkette zu kurz",
"Character string too short"};
char       t156 [3] [45] = {
"Workfile wird ganz in eine Datei geschrieben",
"Workfile wird ganz in eine Datei geschrieben",
"Workfile will be written into one file"};
char       t157 [3] [44] = {
"Workfile wird in mehrere Dateien aufgeteilt",
"Workfile wird in mehrere Dateien aufgeteilt",
"Workfile will be divided into several files"};
char       t158 [3] [76] = {
"Gib J oder Y ein, um Dateien ohne Rueckfrage zu erstellen oder zu ersetzen:",
"Gib J oder Y ein, um Dateien ohne Rückfrage zu erstellen oder zu ersetzen:",
"Enter J or Y to create or replace files without asking"};
char       t159 [3] [76] = {
"Druecke J oder Y, um Dateien ohne Rueckfrage zu erstellen oder zu ersetzen:",
"Drücke J oder Y, um Dateien ohne Rückfrage zu erstellen oder zu ersetzen:",
"Press J or Y to create or replace files without asking"};
char       t160 [3] [37] = {
"Trennsatz enthaelt kein 'DDD'",
"Trennsatz enthält kein 'DDD'",
"Separating record contains no 'DDD'"};
char       t161 [3] [27] = {
"Erster Satz kein Trennsatz",
"Erster Satz kein Trennsatz",
"First record no separator"};
char       t162 [3] [32] = {
"Dateiname im Trennsatz zu lang",
"Dateiname im Trennsatz zu lang",
"File name in separator too long"};
char       t163 [3] [20] = {
"%d Dateien geladen",
"%d Dateien geladen",
"%d files loaded"};
char       t164 [3] [35] = {
"%d Unterverzeichnisse uebergangen",
"%d Unterverzeichnisse übergangen",
"%d subdirectories skipped"};
char       t165 [3] [42] = {
"Zeilenmodus wegen falschem Terminaltyp",
"Zeilenmodus wegen falschem Terminaltyp",
"Line mode because of wrong terminal type"};
char       t166 [3] [33] = {
"exaEdit: Externer Befehl beendet",
"exaEdit: Externer Befehl beendet",
"exaEdit: External command ended"};
char       t167 [3] [21] = {
"SET-Speicher geleert",
"SET-Speicher geleert",
"SET storage emptied"};
char       t168 [3] [36] = {
"<Strg c> bricht den Eingabemodus ab",
"<Strg c> bricht den Eingabemodus ab",
"<Ctrl c> cancels the input mode"};
char       t169 [3] [19] = {
" nicht geoeffnet",
" nicht geöffnet",
" not opened"};
char       t170 [3] [13] = {
" geoeffnet",
" geöffnet",
" opened"};
char       t171 [3] [18] = {
" nicht gefunden",
" nicht gefunden",
" not found"};
char       t172 [3] [13] = {
" ignoriert",
" ignoriert",
" ignored"};
char       t173 [3] [32] = {
"Installationsprofil verarbeitet",
"Installationsprofil verarbeitet",
"Installation profile processed"};
char       t174 [3] [28] = {
"Privates Profil verarbeitet",
"Privates Profil verarbeitet",
"Private profile processed"};
char       t175 [3] [32] = {
"HOME-Verzeichnis nicht gefunden",
"HOME-Verzeichnis nicht gefunden",
"HOME directory not found"};
char       t176 [3] [32] = {
"Keine Tabulatorzeichen gefunden",
"Keine Tabulatorzeichen gefunden",
"No tab characters found"};
char       t177 [3] [32] = {
"Ungerade Anzahl von Hex-Zeichen",
"Ungerade Anzahl von Hex-Zeichen",
"Odd number of hex characters"};
char       t178 [3] [24] = {
"Ungueltiges Hex-Zeichen",
"Ungültiges Hex-Zeichen",
"Wrong hex character"};
char       t179 [3] [29] = {
"Uebersetzung in %sbuchstaben",
"Übersetzung in %sbuchstaben",
"Translation to %s case"};
char       t180 [3] [6] = {
"Gross",
"Groß",
"upper"};
char       t181 [3] [6] = {
"Klein",
"Klein",
"lower"};
char       t182 [3] [38] = {
"CODEPAGE ist nur fuer Windows-Systeme",
"CODEPAGE ist nur für Windows-Systeme",
"CODEPAGE is only for Windows systems"};
char       t183 [3] [56] = {
"Mehr als 100 Millionen Saetze, Fehler koennen auftreten",
"Mehr als 100 Millionen Sätze, Fehler können auftreten",
"More than 100 million records, errors may occur"};
char       t184 [3] [30] = {
"Kein Speicherplatz verfuegbar",
"Kein Speicherplatz verfügbar",
"No storage available"};
char       t185 [3] [32] = {
"Die top line kannst du nicht %s",
"Die top line kannst du nicht %s",
"You cannot %s the top line"};
char       t186 [3] [37] = {
"Parametervariable nicht numerisch",
"Parametervariable nicht numerisch",
"Parameter variable not numerical"};
char       t187 [3] [48] = {
"I wird ignoriert, da H angegeben",
"I wird ignoriert, da H angegeben",
"'I' will be ignored as H is specified"};
char       t188 [3] [23] = {
"Gross/klein-insensibel",
"Groß/klein-insensibel",
"Case-insensitive"};
char       t189 [3] [44] = {
"%d. EXEC-Zeile laenger als Fensterbreite %d",
"%d. EXEC-Zeile länger als Fensterbreite %d",
"%d. EXEC line longer than window width %d"};
char       t190 [3] [49] = {
"SEQUENCE uebersteigt 99 999 999 oder Feldbreite",
"SEQUENCE übersteigt 99 999 999 oder Feldbreite",
"SEQUENCE exceeds 99 999 999 or field width"};
char       t191 [3] [24] = {
"Zielsatz nicht gefunden",
"Zielsatz nicht gefunden",
"Target record not found"};
char       t192 [3] [35] = {
"Quell- und Zielbereich ueberlappen",
"Quell- und Zielbereich überlappen",
"Source and target area overlap"};
char       t193 [3] [30] = {
"Zuklammer nicht gefunden",
"Zuklammer nicht gefunden",
"Closing parenthesis not found"};
char       t194 [3] [9] = {
"kopieren",
"kopieren",
"copy"};
char       t195 [3] [8] = {
"aendern",
"ändern",
"change"};
char       t196 [3] [58] = {
"Gezaehlte Saetze: %d, Workfile-Groesse: %.1f %s",
"Gezählte Sätze: %d, Workfile-Größe: %.1f %s",
"Records counted: %d, size of workfile: %.1f %s"};
char       t197 [3] [24] = {
"exaEdit: Profilsatz",
"exaEdit: Profilsatz",
"exaEdit: profile record"};
char       t198 [3] [52] = {
"Standardparametervariable nicht loeschbar",
"Standardparametervariable nicht löschbar",
"Standard parameter variable not deletable"};
char       t199 [3] [39] = {
"Parametervariable keine Zeichenkette",
"Parametervariable keine Zeichenkette",
"Parameter variable no character string"};
char       t200 [3] [40] = {
"SCOPE OFF derzeit nicht fuer Netzeditor",
"SCOPE OFF derzeit nicht für Netzeditor",
"SCOPE OFF currently not for net editor"};
char       t201 [3] [25] = {
"Gib Kennwort ein fuer %s",
"Gib Kennwort ein für %s",
"Enter password for %s"};
char       t202 [3] [29] = {
"%s laenger als %d Zeichen",
"%s länger als %d Zeichen",
"%s longer than %d characters"};
char       t203 [3] [23] = {
"Benutzeridentifikation",
"Benutzeridentifikation",
"User Id"};
char       t204 [3] [9] = {
"Kennwort",
"Kennwort",
"Password"};
char       t205 [3] [46] = {
"Keine Saetze gelesen, siehe Workfile wgetprot",
"Keine Sätze gelesen, siehe Workfile wgetprot",
"No records read, see workfile wgetprot"};
char       t206 [3] [50] = {
"Gib ein Zeichen ein, wenn du alles gesehen hast:",
"Gib ein Zeichen ein, wenn du alles gesehen hast:",
"Enter a character, when you have seen everything:"};
char       t207 [3] [55] = {
"Druecke eine Zeichentaste, wenn du alles gesehen hast:",
"Drücke eine Zeichentaste, wenn du alles gesehen hast:",
"Press a character key, when you have seen everything:"};
char       t208 [3] [23] = {
"SET-Speicher ungueltig",
"SET-Speicher ungültig",
"SET storage invalid"};
char       t209 [3] [39] = {
"Parametervariable keine Satznummer",
"Parametervariable keine Satznummer",
"Parameter variable no record number"};
char       t210 [3] [26] = {
"INDENT-Wert zu gross",
"INDENT-Wert zu groß",
"INDENT value too large"};
char       t211 [3] [29] = {
"FTP-Server nicht gefunden",
"FTP-Server nicht gefunden",
"FTP-Server not found"};
char       t212 [3] [44] = {
"Unerwartete Antwort vom FTP-Server (%d):",
"Unerwartete Antwort vom FTP-Server (%d):",
"Unexpected answer from FTP server (%d):"};
char       t213 [3] [57] = {
"Benutzeridentifikation unbekannt oder Kennwort falsch",
"Benutzeridentifikation unbekannt oder Kennwort falsch",
"Unknown user identification or wrong password"};
char       t214 [3] [70] = {
"Unerklaerlicher Fehler 'exec format error' im Systemprogramm 'access'",
"Unerklärlicher Fehler 'exec format error' im Systemprogramm 'access'",
"Inexplicable error 'exec format error' in system program 'access'"};
char       t215 [3] [31] = {
"Es gibt schon einen Praefix %s",
"Es gibt schon einen Präfix %s",
"There is already a prefix %s"};
char       t216 [3] [28] = {
"Keine Praefixmarke gefunden",
"Keine Präfixmarke gefunden",
"No prefix mark found"};
char       t217 [3] [24] = {
"Satz ist nicht markiert",
"Satz ist nicht markiert",
"Record is not marked"};
char       t218 [3] [28] = {
"Widerspruechliche Parameter",
"Widersprüchliche Parameter",
"Contradicting parameters"};
char       t219 [3] [16] = {
"Keine Teilkette",
"Keine Teilkette",
"No substring"};
char       t220 [3] [22] = {
"Verbindung verweigert",
"Verbindung verweigert",
"Connection refused"};
char       t221 [3] [31] = {
"Gib Benutzeridentifikation ein",
"Gib Benutzeridentifikation ein",
"Enter User ID"};
char       t222 [3] [23] = {
"Nur in der Betaversion",
"Nur in der Betaversion",
"Only in beta version"};
char       t223 [3] [10] = {
"Backspace",
"Backspace",
"Backspace"};
char       t224 [3] [44] = {
"W wird wegen Spaltenbeschraenkung ignoriert",
"W wird wegen Spaltenbeschränkung ignoriert",
"W is ignored because of column restriction"};
char       t225 [3] [32] = {
"exaEdit.log wird ausgeschlossen",
"exaEdit.log wird ausgeschlossen",
"exaEdit.log will be excluded"};
char       t226 [3] [34] = {
"exaEdit.log%d wird ausgeschlossen",
"exaEdit.log%d wird ausgeschlossen",
"exaEdit.log%d will be excluded"};
char       t227 [3] [36] = {
"RECORDS > 100 000 000 nicht erlaubt",
"RECORDS > 100 000 000 nicht erlaubt",
"RECORDS > 100 000 000 not allowed"};
struct passwd
*uidzeug;
void       umleit (int delta);
struct l  *umla;
#ifdef Mlin
char       uname [] =
#include "Uname.h"
#endif
int        urloef (enum filo typ);
int        urlsch (enum filo typ);
#ifndef Mnt
struct dirent
*verdat; 
DIR       *verzei; 
#else
struct _finddata_t
verdat; 
long       verzei; 
#endif
int        vergle (const void * arg1, const void * arg2);
int        verglf (const void * arg1, const void * arg2);
void       vergro (int delta);
int        vernam (char *dsn);
char       vername [1026];
char       version [128];
int        verzoffen;
int        verzoffset;
int        vglgr;
int        vglkl;
struct l  *vori;
int        vorrat = 0;
int        vorrat2 = 0;
struct     w {
struct w *vorw;
struct w *rckw;
struct l *anfang;
struct l *bottom;
struct l *clp;
struct l *clpalt;
struct l *sbot; 
struct l *setp;
struct l *stop; 
char      dsname [256];
char      symbx [9];
char      symby [9];
char      symbz [9];
char      trenn [256];
char      wfname [9];
int       casei;
int       caseu;
int       dsnistda;
int       inlcol;
int       inlsft;
int       leer;
int       lwwidth; 
int       mode;
int       modeon;
int       mult;
int       notfiled;
int       pwwidth; 
int       setp1; 
int       skey; 
int       skeyalt;
int       width;
int       wrapon;
int       zeilenzahl;
int       zona; 
int       zone; };
struct w  *wakt;
int        wfaend = 1;
void wfini1 (char *pi);
void       wfini2 ();
void       wfini3 ();
#ifdef Mnt
void       windos ();
#endif
int        windosw = 0;
struct w  *wlauf;
struct w  *wmain;
struct w  *wvori;
char       work [Sp + 1];
char       work2 [Sp + 1]; 
int        xanz;
int        xausfue = 0;
char       xinh [Sp + 1] = " ";
int        yanz;
int        yausfue = 0;
char       yinh [Sp + 1] = " ";
int        zaed;
struct      {char           ch2 [2];
unsigned short zaeh;}
zaeh;
int        zael;
int        zahl;
char       zeicol [Sp + 1]; 
char       zeile [Sp + 1];
int        zeileleer;
char       zeill [Sp + 1];
void       zeisat (struct l *lauf);
int        zeisatp = 0;
time_t     zeit;
int        zeitd; 
struct tm *zeitg; 
struct tm *zeitl; 
struct tm *zeit2;
int        zeit003 = 0;
int        ziffer;
int        zl;
int        zla;
int        zlc; 
int        zle; 
int        zll; 
int        zl1; 
int        zl9; 
int        zweiter;
int        zwischen;
int        zzaend = 1; 
int        zzd; 
int        zze; 
int main (int argc, char *argv []) {
i =  strlen (t0);
insdauer = atoi (insd + 4);
la = atoi (la2 + 4);
lsl = 22 + 2 * sizeof (int *); 
#ifdef Ms
(void) sscanf (argv [argc - 1], "%d", &la);
(void) sscanf (argv [argc - 2], "%d", &i);
sprintf (fnrs, "pe-%d:", i);
strcpy (tempdsn, argv [argc - 4]);
printf ("%s %s\n", fnrs, tempdsn);
errno = 0;
i = mkfifo (tempdsn, 0644);
if (i != 0)
switch (errno) {
default:
Sprintf (fehler, "mkfifo errno = %d", errno);
printf ("%s %s\n", fnrs, fehler);
}
else {
pesa = fopen (tempdsn, "w");
(void) signal (SIGPIPE, sigpip);
}
strcpy (dsntast, argv [argc - 3]);
printf ("%s %s\n", fnrs, dsntast);
(void) fflush (stdout);
argc -= 4;
#endif
mant = (struct ms *) malloc (sizeof (struct ms) + 34);
if (mant == NULL)
exit (2);
mana = mant;
mana -> rckw = NULL;
strcpy (mana -> name, "0");
#ifdef Mntos2
memcpy (&(mant -> datn [0]), "start iexplore ", 15);
memcpy (&(mant -> datn [15]), "exaedit.de/dok/de/", 18);
memset (&(mant -> datn [33]), '\0', 1);
for (i = 0; i <= 2; i ++) {
mann = mant;
mant = (struct ms *) malloc (sizeof (struct ms) + 34);
if (mant == NULL)
exit (4);
mann -> vorw = mant;
mant -> rckw = mann;
memcpy (mant -> name, &(num [i + 1]), 1);
memcpy (&(mant -> datn [0]), mann -> datn, 34);
memcpy (&(mant -> datn [6]), browser [i], 9);
}
#elif Mlin
memcpy (&(mant -> datn [0]), "konqueror ", 10);
memcpy (&(mant -> datn [10]), "exaedit.de/dok/de/&", 19);
memset (&(mant -> datn [29]), '\0', 1);
for (i = 0; i <= 3; i ++) {
mann = mant;
mant = (struct ms *) malloc (sizeof (struct ms) + 30);
if (mant == NULL)
exit (5);
mann -> vorw = mant;
mant -> rckw = mann;
memcpy (mant -> name, &(num [i + 1]), 1);
memcpy (&(mant -> datn [0]), mann -> datn, 30);
memcpy (&(mant -> datn [0]), browser [i], 9);
}
#else
memcpy (&(mant -> datn [0]), "netscape ", 9);
memcpy (&(mant -> datn [9]), "exaedit.de/dok/de/ ", 19);
memset (&(mant -> datn [28]), '\0', 1);
mann = mant;
mant = (struct ms *) malloc (sizeof (struct ms) + 30);
if (mant == NULL)
exit (3);
mann -> vorw = mant;
mant -> rckw = mann;
memcpy (mant -> name, &(num [1]), 1);
memcpy (&(mant -> datn [0]), mann -> datn, 30);
memcpy (&(mant -> datn [0]), "lynx     ", 9);
#endif
mant -> vorw = NULL;
mand = mana;
(void) time (&zeit);
zeitg = (struct tm *) malloc (sizeof (struct tm));
if (zeitg == NULL)
exit (7);
memcpy (Cast zeitg, Cast gmtime (&zeit), sizeof (struct tm));
zeitl = localtime (&zeit);
if (zeitg -> tm_year == zeitl -> tm_year) {
if (zeitg -> tm_yday == zeitl -> tm_yday) {
if (zeitg -> tm_hour == zeitl -> tm_hour) {
if (zeitg -> tm_min == zeitl -> tm_min) {
zeitd = 0; 
goto m0010;
}
else
if (zeitg -> tm_min > zeitl -> tm_min)
locgro = 0;
}
else
if (zeitg -> tm_hour > zeitl -> tm_hour)
locgro = 0;
}
else
if (zeitg -> tm_yday > zeitl -> tm_yday)
locgro = 0;
}
else
if (zeitg -> tm_year > zeitl -> tm_year)
locgro = 0;
if (zeitl -> tm_min < zeitg -> tm_min)
zeitl -> tm_min += 60;
if (zeitl -> tm_hour < zeitg -> tm_hour)
zeitl -> tm_hour += 24;
zeitd = (zeitl -> tm_hour - zeitg -> tm_hour) * 60 +
zeitl -> tm_min - zeitg -> tm_min;
if (locgro == 0)
zeitd -= 1440;
m0010:
#ifndef Mnt
(void) signal (SIGBUS, sigseg);
#  ifndef Mos2
(void) signal (SIGCONT, sigcnt);
(void) signal (SIGIOT, sigseg);
(void) signal (SIGWINCH, sigwch);
#  endif
#endif
(void) signal (SIGILL, sigseg);
(void) signal (SIGINT, sigint);
(void) signal (SIGSEGV, sigseg);
sprintf (version, "Kompiliert aus %s am %s um %s",
__FILE__, __DATE__, __TIME__);
wmain = (struct w *) malloc (sizeof (struct w));
if (wmain == NULL)
exit (6);
wmain -> vorw = NULL;
wmain -> rckw = NULL;
wakt = wmain;
wfini1 ("MAIN    ");
memcpy (pfktext [7], "'-page'\0", 8);
memcpy (pfktext [8], "'+page'\0", 8);
memcpy (pfktext [10], "'-half'\0", 8);
memcpy (pfktext [11], "'+half'\0", 8);
#ifndef Mntos2
i = system ("stty -istrip");
#endif
#ifndef Ms
#  ifndef Mntos2
pi = getenv ("TERM");
if (pi == NULL) {
printf (t012 [la]);
m0020:
termok = 0;
printf (t013 [la]); 
goto m0040;
}
if (strlen (pi) == 10)
if (memcmp (pi, "IBM-3278-", 9) == 0) {
m0030:
printf (t018 [la], pi); 
goto m0020;
}
if (strcmp (pi, "NETWORK") == 0)
goto m0030;
#  endif
#endif
curses (); 
if (scope == 0) {
m0040:
wfini2 ();
}
else {
#ifdef Mp
i = - LINES;                                                 
protok ();                                                   
i = - COLS;                                                  
protok ();                                                   
#endif
wfini2 ();
bilgro (); 
}
#ifdef Mp
strcpy (tempdsn, tempnam ("/u/urz/x22/pe/tmp", NULL)); 
ptk = fopen (tempdsn, "w");                            
#endif
#ifdef Mt
strcpy (tempdsn, argv [argc - 1]);                     
ptk = fopen (tempdsn, "r");                            
argc --;                                               
#endif
profa = NULL;
profv = NULL;
pi = getenv ("EXAEDITIP");
if (pi == NULL) {
profilmel [0] = 171; 
strcpy (profillog [0], "EXAEDITIP");
profilanz = 1;
pro = fopen (".exaeditip", "r");
if (pro == NULL) {
profilmel [1] = 169; 
strcpy (profillog [1], ".exaeditip");
profilanz ++;
goto m0050; 
}
else {
profilmel [1] = 170; 
strcpy (profillog [1], ".exaeditip");
profilanz ++;
}
}
else {
profilmel [0] = 1;
Sprintf (profillog [0], "EXAEDITIP = %.68s", pi);
profilanz = 1;
if (*pi == '-') {
profilmel [1] = 172; 
strcpy (profillog [1], pi);
profilanz ++;
goto m0050; 
}
pro = fopen (pi, "r");
if (pro == NULL) {
profilmel [1] = 169; 
strcpy (profillog [1], pi);
profilanz ++;
goto m0050; 
}
}
i = prodat ();
if (i == 5)
goto m0810; 
profilmel [profilanz] = 173; 
profilanz ++;
m0050:
pro = fopen (".exaeditpp", "r");
if (pro == NULL) {
profilmel [profilanz] = 169; 
strcpy (profillog [profilanz], ".exaeditpp");
profilanz ++;
#ifdef Mnt
pj = getenv ("HOMEDRIVE");
if (pj == NULL) {
profilmel [profilanz] = 175;
goto m0060;
}
pi = getenv ("HOMEPATH");
#else
pi = getenv ("HOME");
#endif
if (pi == NULL) {
profilmel [profilanz] = 175;
goto m0060;
}
#ifdef Mnt
strcpy (pathname, pj);
strcpy (pathname + strlen (pj), pi);
strcpy (pathname + strlen (pj) + strlen (pi), "\\.exaeditpp");
#else
strcpy (pathname, pi);
strcpy (pathname + strlen (pi), "/.exaeditpp");
#endif
pro = fopen (pathname, "r");
if (pro == NULL) {
profilmel [profilanz] = 169; 
strcpy (profillog [profilanz], pathname);
goto m0060;
}
else {
profilmel [profilanz] = 170; 
strcpy (profillog [profilanz], pathname);
profilanz ++;
}
}
else {
profilmel [profilanz] = 170; 
strcpy (profillog [profilanz], ".exaeditpp");
profilanz ++;
}
i = prodat ();
if (i == 5)
goto m0810; 
profilmel [profilanz] = 174; 
m0060:
if (argc >= 2)  {
if (strchr (argv [1], ' ') != NULL)
goto m0070;
if (strchr (argv [1], cmdsep) != NULL)
goto m0070;
Sprintf (pathname, "loa %.1021s", argv [1]);
goto m0090;
m0070:
memcpy (pathname, "loa \'", 5);
pj = pathname + 5;
pz = argv [1];
m0080:
pi = pz;
while (*pz)
if (*pz == '\'') {
memcpy (pj, pi, pz - pi);
pj += pz - pi;
memset (pj, '\'', 2);
pj += 2;
pz ++;
goto m0080;
}
else pz ++;
pz --;
memcpy (pj, pi, pz - pi + 1);
pj += pz - pi + 1;
memcpy (pj, "\'\0", 2);
m0090:
i = ausfue (pathname);
}
if (scope == 1)
goto m0120;
eazone ("exaEdit");
m0100:
TA3 fprintf (lug, "Zeilenmodus Wied\n"); TE
for (i = 0; i < 80; i ++) {
j = getchar ();
if (j == EOF) {
break;
}
if (j == '\n') {
zeile [i] = '\0';
break;
}
if (j == '\r') {
zeile [i] = '\0';
break;
}
zeile [i] = j;
}
if (quitsignalisiert == 1) {
quitsignalisiert = 0;
TA3 fprintf (lug, "quitsignalisiert1 = 0\n"); TE
if (inputm > 0) {
eazone (t168 [la]);
TA3 fprintf (lug, "Eingabemodus End1\n"); TE
inpend ();
eazone ("exaEdit");
goto m0100; 
}
eazone (t127 [la]);
strcpy (zeile, "q");
goto m0110;
}
if (fenstergeaendert == 1) {
#ifndef Mntos2
j = system ("stty sane");
#endif
fenstergeaendert = 0;
}
if (i == 0) {
if (inputm > 0) {
TA3 fprintf (lug, "Eingabemodus End3\n"); TE
inpend ();
}
eazone ("exaEdit");
goto m0100; 
}
if (inputm > 0) {
wakt -> notfiled = 1;
inputi ++;
wakt -> zeilenzahl ++;
vori = wakt -> clp;
wakt -> clp = (struct l *) malloc (lsl + i);
if (wakt -> clp == NULL)
exit (8);
vori -> vorw = wakt -> clp;
wakt -> clp -> rckw = vori;
memcpy (wakt -> clp -> datn, zeile, i);
if (wakt -> caseu == 1)
for (j = 0; j < i; j ++)
*(wakt -> clp -> datn + j) =
toupper (*(wakt -> clp -> datn + j));
memset (wakt -> clp -> schl,  ' ', 8);
wakt -> clp -> flag = ' ';
wakt -> clp -> lnlz = i;
wakt -> clp -> lben = i;
wakt -> clp -> lmax = i;
wakt -> clp -> vorw = nchs;
goto m0100; 
}
m0110:
i = ausfue (zeile);
switch (i) {
case 0:
case 1:
case 2: 
break;
case 5: 
goto m0810;
default:
profeh (5, i);
}
if (scope == 1)
goto m0760; 
else goto m0100; 
m0120:
TA3 fprintf (lug, "Schirmmodus Wied\n"); TE
ausgab (art);
TA3 fprintf (lug, "nach ausgab\n"); TE
m0130:
#ifndef Ms
(void) refresh ();
#else
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
i = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-1\n", fnrs);
(void) fflush (stdout);
#endif
if (frage2 == 1) {
frage2 = 0;
i = ausfue ((char *) 0x02);
if (i == 5)
goto m0810; 
else goto m0760;
}
m0140:
if (ialt > 0) {
i = isp [1];
for (j = 1; j < ialt; j ++)
isp [j] = isp [j + 1];
ialt --;
if (ialt == 0)
if (spfest >= 0)
if (spteil2 == 0)
{  spzur = 1;
TA fprintf (lug, "SPzur = %d\n", spzur); TE   }
}
else {
#ifdef Mhpux
switch (setjmp (jmpbuf)) {
case 0:
#endif
letztetaste = i;
#if   defined Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
if (dollar3 == 1) {
dollar3 = 0;
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-1\n", fnrs); fflush (stdout);
}
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-1\n", fnrs); (void) fflush (stdout);
if (tastoffen == 0) {
m0150:
printf ("%s dsntast = %s\n", fnrs, dsntast);
(void) fflush (stdout);
pese = fopen (dsntast, "r");
if (pese == NULL) {
printf ("%s tast nicht geoeffnet\n", fnrs);
(void) fflush (stdout);
(void) sleep (1);
goto m0150;
}
else {
printf ("%s tast geoeffnet\n", fnrs);
(void) fflush (stdout);
}
(void) signal (SIGPIPE, sigpip);
tastoffen = 1;
}
j = fscanf (pese, "%d", &i);
printf ("%s i = %d\n", fnrs, i); (void) fflush (stdout);
#endif
#ifdef Mp
protok ();                                              
#endif
#ifdef Mhpux
break;
case SIGINT:
quitsignalisiert = 1;
TA3 fprintf (lug, "quitsignalisiert1 = 1\n"); TE
break;
case SIGWINCH:
case SIGCONT:
if (scope == 1)
fenstergeaendert = 1;
break;
}
#endif
if (fenstergeaendert == 1) {
fenstergeaendert = 0;
#ifndef Ms
(void) endwin ();
#  ifdef Mlin
(void) refresh ();
#  endif
#endif
scope = 0;
TA fprintf (lug, "curses off 2\n"); TE
curses ();
if (scope == 0)
goto m0100;
#ifdef Mp
i = - LINES;                                               
protok ();                                                 
i = - COLS;                                                
protok ();                                                 
#endif
bilgro ();
wfaend = 1;
goto m0760;
} 
if (quitsignalisiert == 1) {
for (jj = 0; jj <= zll; jj ++)
dzaen [jj] = 0; 
TA fprintf (lug, "GETCH %d\n", i); TE
if (inputm == 0) {
eazone (t127 [la]);
i = zzd + 1;
dzaen [i] = 1;
pb = &bild [i * COLS];
memset (pb, ' ', COLS);
memset (pb, 'q', 1);
}
else {
eazone (t168 [la]);
quitsignalisiert = 0;
TA3 fprintf (lug, "quitsignalisiert2 = 0\n"); TE
inputmodeaus = 1;
TA3 fprintf (lug, "inputmodeaus1 = 1\n"); TE
}
i = 10; 
} 
} 
tastealt = taste;
taste = i;
switch (i) {
case 8:
case KEY_BACKSPACE:
sp = sp - 1;
if (sp < 0) {
sp = COLS - 1;
zl = zl - 1;
if (zl < 0)
zl = zll;
}
(void) move (zl, sp);
goto m0330; 
case 10:
case KEY_ENTER:
m0160:
TA fprintf (lug, "enter\n"); TE
TA3 fprintf (lug, "enter bearbeiten\n"); TE
if (insdauer == 0) {
einfg = 0;
*b_ins = ' ';
}
if (inputm > 0) {
inlzl1 = 0;
inltat = wakt -> inlsft;
TA fprintf (lug, "IT2 inltat = %d\n", inltat); TE
if (inltat == 1) {
*b_inp = 'i';
#ifndef Ms
(void) move (zll, 14);
(void) addstr ("i");
#endif
}
if (inputmodeaus == 1) {
inputmodeaus = 0;
TA3 fprintf (lug, "inputmodeaus1 = 0\n"); TE
TA3 fprintf (lug, "Eingabemodus End4\n"); TE
inpend ();
goto m0770;
}
for (jj = 0; jj <= zll; jj ++) {
if (dzaen [jj] == 0) 
continue;
#ifdef Mnt
if (pccp == 2) {
pb = &bild [jj * COLS];
for (k = 1; k <= COLS; k ++) {
TA fprintf (lug, "SZ14 %d\n", *pb); TE
if (*pb >= 128) {
*pb -= 128;
*pb = cp88591 [*pb];
TA fprintf (lug, "SZ15 %d\n", *pb); TE
}
pb ++;
}
} 
#endif
TA fprintf (lug, "AEN %d\n", jj); TE
pb = &bild [jj * COLS];
pi = pb + COLS - 1;
for (i = COLS; i >= 1; i --)
if (*pi != ' ')
break;
else pi --;
dzaen [jj] = 0;
dataend = 1;
wakt -> notfiled = 1;
inputi ++;
wakt -> zeilenzahl ++;
zzaend = 1;
vori = wakt -> clp;
wakt -> clp = (struct l *) malloc (lsl + i);
vori -> vorw = wakt -> clp;
wakt -> clp -> rckw = vori;
memcpy (wakt -> clp -> datn, pb, i);
if (wakt -> caseu == 1)
for (j = 0; j < i; j ++)
*(wakt -> clp -> datn + j) =
toupper (*(wakt -> clp -> datn + j));
memset (wakt -> clp -> schl,  ' ', 8);
wakt -> clp -> flag = ' ';
wakt -> clp -> lnlz = i;
wakt -> clp -> lben = i;
wakt -> clp -> lmax = i;
wakt -> clp -> vorw = nchs;
ebe = 0;
TA fprintf (lug, "SZ05 %d\n", *pb); TE
memcpy (zeicol, pb, COLS);
windosw = 1;
eazone (zeicol);
if (indent == 1) {
indmax = wakt -> lwwidth + wakt -> skey;
if (indmax >= inlakt)
indmax = inlakt - 1;
if (indbet == - 1) {
indaktalt = indakt;
indakt = 0;
pi = zeicol;
while (*pi == ' ') {
indakt ++;
if (indakt > indmax)
break;
pi ++;
}
}
if (indakt > indmax) {
TA fprintf (lug, "IZG1 %d %d\n", indakt, indmax); TE
indakt = indaktalt;
}
}
if (dtzufl [jj] == 1)
tielmu (jj); 
for (jj = jj + 1; jj <= zll; jj ++)
dzaen [jj] = 0;
goto m0770;
} 
TA3 fprintf (lug, "Eingabemodus End5\n"); TE
inpend ();
if (spteil2 == 1) {
TA fprintf (lug, "SPausfue\n"); TE
spteil2 = 0;
Sprintf (zeile, "ss%d%c-%ci", spfest + 1, cmdsep, cmdsep);
i = ausfue (zeile); 
}
goto m0770;
} 
TA fprintf (lug, "hier 11\n"); TE
TA3 fprintf (lug, "hier 11\n"); TE
for (jj = 0; jj < zzd; jj ++) {
if (dzaen [jj] == 0) 
continue;
if (prfaen [jj] == 0) 
continue;
if (dtzufl [jj] == 1)
tielmu (jj);
}
TA3 fprintf (lug, "tielmu-Schleife zu Ende\n"); TE
TA fprintf (lug, "tielmu-Schleife zu Ende\n"); TE
TA fprintf (lug,"hier 13 %d %d\n",noraendie [14],dzaen [14]); TE
leerein = 1;
pfkset = 0;
for (jj = 0; jj <= zll; jj ++) {
if (dzaen [jj] == 0) 
continue;
TA3 fprintf (lug, "hier12 %d\n", jj); TE
dzaen [jj] = 0;
if (pfkset == 1)
continue;
if (vorrat > 0)
if (pfklock [vorrat] == 0) {
pfkset = 1;
if (COLS > 80)
i = 80;
else i = COLS;
pi =  &bild [jj * COLS] + i - 1;
for (j = 1; j <= i; j ++)
if (*pi == ' ')
pi --;
else break;
i = i + 1 - j;
if (i == 0) {
pfkbenu [vorrat] = 0;
continue;
}
memcpy (pfktext [vorrat], &bild [jj * COLS], i);
#ifdef Mnt
if (pccp == 2) 
doswin (pfktext [vorrat], i);
#endif
memset (pfktext [vorrat] + i, '\0', 1);
pfkbenu [vorrat] = 1;
continue;
}
leerein = 0;
if (jj >= zzd) 
goto m0270; 
if (dzben [jj] == 0) 
goto m0270; 
if (prfaen [jj] == 1)  {
prfaen [jj] = 0;
lauf = dzadr [jj];
pb = &bild [jj * COLS];
i = strspn (pb, num); 
if (i >= wakt -> skey)
goto m0270; 
pi = pb + i;
while (*pi == ' ')
if (i == wakt -> skey - 1)
goto m0270; 
else {
pi ++;
i ++;
}
ch = tolower (*pi);
switch (ch) {
case 'd':
case '"':
case 'i':
break;
default:
goto m0270; 
} 
j = bestpr (ch);
switch (j) {
case 0:
goto m0270; 
case 1: 
switch (ch) {
case 'd':
goto m0180;
case '"':
goto m0210;
case 'i':
goto m0240;
default:
profeh (78, ch);
}
break;
case 2: 
anzahl = atoi (pi - ziffer);
if (anzahl == 0) {
eazone (t098 [la]); 
continue;
}
switch (ch) {
case 'd':
goto m0190;
case '"':
goto m0220;
case 'i':
goto m0250;
default:
profeh (79, ch);
}
break;
case 3: 
switch (ch) {
case 'd':
goto m0200;
case '"':
goto m0230;
case 'i':
goto m0260;
default:
profeh (80, ch);
}
break;
default:
profeh (81, j);
} 
} 
lauf = dzadr [jj];
if (noraendie [jj] == 1) {
TA fprintf (lug, "NOR22 %d\n", jj); TE
noraendie [jj] = 0;
jjj = jj;
do {
pb = &bild [jjj * COLS];
pj = lauf -> datn + (dzben [jjj] - 1) * wakt -> lwwidth;
j = lauf -> lnlz - (dzben [jjj] - 1) * wakt -> lwwidth;
if (j > wakt -> lwwidth)
j = wakt -> lwwidth;
if (j > wakt -> pwwidth)
j = wakt -> pwwidth;
TA fprintf (lug, "IJN1 %d\n", *pj); TE
memcpy (pj, pb + wakt -> skey + 1, j);
TA fprintf (lug, "IJN2 %d\n", *pj); TE
#ifdef Mnt
if (pccp == 2) 
doswin (pj, j);
#endif
TA fprintf (lug, "IJN3 %d\n", *pj); TE
jjj ++;
} while (dzben [jjj] > dzben [jjj - 1]);
}
wakt -> notfiled = 1;
wakt -> clp = lauf;
dataend = 1; 
if (dtzufl [jj] == 1) {
dtzufl [jj] = 0;
free (dtzuad [jj]);
}
continue;
m0180:
vori = lauf -> rckw;
if (wakt -> setp1 > 0)
if (lauf == wakt -> setp) {
wakt -> setp = vori;
wakt -> setp1 = 2;
}
vori -> vorw = lauf -> vorw;
if (lauf -> vorw != NULL) {
lauf = lauf -> vorw;
lauf -> rckw = vori;
}
else wakt -> bottom = vori;
wakt -> clp = vori;
wakt -> notfiled = 1;
wakt -> zeilenzahl --;
zzaend = 1;
dataend = 1;
continue;
m0190:
TA fprintf (lug, "M102\n"); TE
vori = lauf -> rckw;
anzahl = atoi (pi - ziffer);
TA fprintf (lug, "anzahl = %d\n", anzahl); TE
for (i = 1; i <= anzahl; i ++) {
if (lauf != NULL) {
if (wakt -> setp1 > 0)
if (lauf == wakt -> setp)
setp2 = 1;
temp = lauf;
lauf = lauf -> vorw;
free (temp);
TA fprintf (lug, "%d %d\n", i, jj -1 +i); TE
dzaen [jj - 1 + i] = 0;
}
else {
eazone (t070 [la]); 
break;
}
}
if (setp2 == 1) {
setp2 = 0;
wakt -> setp = vori;
wakt -> setp1 = 2;
}
wakt -> zeilenzahl -= i - 1;
zzaend = 1;
vori -> vorw = lauf;
if (lauf != NULL)
lauf -> rckw = vori;
else wakt -> bottom = vori;
wakt -> clp = vori;
wakt -> notfiled = 1;
zzaend = 1;
dataend = 1;
continue;
m0200:
if (markiertg > 0) {
sprintf (meldung, t215 [la], "\"\"");
eazone (meldung);
continue;
}
if (markierti > 0) {
sprintf (meldung, t215 [la], "ii");
eazone (meldung);
continue;
}
markiertd ++;
markiert = 1;
lauf -> flag = 'D';
TA fprintf (lug, "MARKED\n"); TE
continue;
m0210:
wakt -> clp = (struct l *) malloc (
lsl + lauf -> lnlz);
memcpy (Cast wakt -> clp, Cast lauf,
lsl + lauf -> lnlz);
wakt -> clp -> lben = wakt -> clp -> lnlz;
wakt -> clp -> lmax = wakt -> clp -> lnlz;
if (lauf -> vorw != NULL) {
lauf -> vorw -> rckw = wakt -> clp;
wakt -> clp -> vorw = lauf -> vorw;
}
else {
wakt -> clp -> vorw = NULL;
wakt -> bottom = wakt -> clp;
}
lauf -> vorw = wakt -> clp;
wakt -> clp -> rckw = lauf;
numein (lauf, wakt -> clp -> vorw, 1);
dataend = 1;
wakt -> notfiled = 1;
wakt -> zeilenzahl ++;
zzaend = 1;
continue;
m0220:
anzahl = atoi (pi - ziffer);
i = ausfgn ();
continue;
m0230:
if (markiertd > 0) {
sprintf (meldung, t215 [la], "dd");
eazone (meldung);
continue;
}
if (markierti > 0) {
sprintf (meldung, t215 [la], "ii");
eazone (meldung);
continue;
}
markiertg ++;
markiert = 1;
lauf -> flag = '"';
TA fprintf (lug, "MARKED\n"); TE
continue;
m0240:
wakt -> clp = (struct l *) malloc (lsl);
memcpy (Cast wakt -> clp, Cast lauf, lsl);
wakt -> clp -> lnlz = 0;
wakt -> clp -> lben = 0;
wakt -> clp -> lmax = 0;
if (lauf -> vorw != NULL) {
lauf -> vorw -> rckw = wakt -> clp;
wakt -> clp -> vorw = lauf -> vorw;
}
else {
wakt -> clp -> vorw = NULL;
wakt -> bottom = wakt -> clp;
}
lauf -> vorw = wakt -> clp;
wakt -> clp -> rckw = lauf;
numein (lauf, wakt -> clp -> vorw, 1);
dataend = 1;
wakt -> notfiled = 1;
wakt -> zeilenzahl ++;
zzaend = 1;
continue;
m0250:
anzahl = atoi (pi - ziffer);
i = ausfin ();
continue;
m0260:
if (markiertd > 0) {
sprintf (meldung, t215 [la], "dd");
eazone (meldung);
continue;
}
if (markiertg > 0) {
sprintf (meldung, t215 [la], "\"\"");
eazone (meldung);
continue;
}
markierti ++;
markiert = 1;
lauf -> flag = 'I';
TA fprintf (lug, "MARKED\n"); TE
continue;
m0270:
pb = &bild [jj * COLS];
memcpy (zeicol, pb, COLS);
#ifdef Mnt
if (pccp == 2) 
doswin (zeicol, COLS);
#endif
if (quitsignalisiert == 1)
eazone (zeicol); 
else {
if (b_ebe != pb) {
ebe = 0;
eazone (zeicol);
#ifndef Ms
(void) move (zle, 0);
(void) addstr (zeicol);
#endif
}
}
i = ausfue (zeicol);
TA fprintf (lug, "TTT8 %d\n", i); TE
switch (i) {
case 0:
break;
case 1:
if (scope == 1)
goto m0760; 
else goto m0100; 
case 2:
break;
case 5:
vorrat = 0;
goto m0810;
default:
profeh (30, i);
if (scope == 1)
goto m0760; 
else goto m0100; 
}
} 
TA fprintf (lug, "TTT9\n"); TE
if (pfkset == 1)
goto m0290;
if (leerein == 1) {
memset (b_ebe, ' ', COLS);
memcpy (b_ebe , "exaEdit", 7);
ebe = 1;
}
if (markiert == 1) {
TA fprintf (lug, "MARKIERTE\n"); TE
markiert = 0;
markanzd = 0;
markanzg = 0;
markanzi = 0;
for (lauf = wakt -> anfang -> vorw; lauf; lauf = lauf -> vorw) {
m0280:
if (lauf -> flag == 'D') {
TA fprintf (lug, "D DA\n"); TE
if (markanzd == 0) {
markanzd = 1;
markd = lauf;
}
else {
markanzd = 0;
markiertd -= 2;
vori = markd -> rckw;
nchs = lauf -> vorw;
numpl = markd;
ende = 0;
TA fprintf (lug, "WILL L\n"); TE
for (j = 1; ; j ++) {
temp = numpl;
numpl = numpl -> vorw;
if (wakt -> setp1 > 0)
if (temp == wakt -> setp)
setp2 = 1;
free (temp);
if (ende == 1)
break;
if (numpl == lauf)
ende = 1;
}
TA fprintf (lug, "HAB GEL\n"); TE
if (setp2 == 1) {
setp2 = 0;
wakt -> setp = vori;
wakt -> setp1 = 2;
}
wakt -> zeilenzahl -= j;
zzaend = 1;
wakt -> notfiled = 1;
dataend = 1;
vori -> vorw = nchs;
if (nchs != NULL)
nchs -> rckw = vori;
else wakt -> bottom = vori;
wakt -> clp = vori;
if (nchs == NULL)
break;
else {
lauf =  nchs;
goto m0280;
}
}
} 
if (lauf -> flag == '"') {
TA fprintf (lug, "G DA\n"); TE
if (markanzg == 0) {
markanzg = 1;
markg = lauf;
}
else {
markanzg = 0;
markiertg -= 2;
markg -> flag = ' ';
lauf -> flag = ' ';
anzahl = 1;
for (temp = markg; temp != lauf; temp = temp -> vorw)
anzahl ++;
lauf = markg;
i = ausfgn ();
markiertg = 0;
if (i == 1)
break;
continue;
}
} 
if (lauf -> flag == 'I') {
TA fprintf (lug, "I DA\n"); TE
if (markanzi == 0) {
markanzi = 1;
marki = lauf;
}
else {
markanzi = 0;
markierti -= 2;
marki -> flag = ' ';
lauf -> flag = ' ';
anzahl = 1;
for (temp = marki; temp != lauf; temp = temp -> vorw)
anzahl ++;
lauf = marki;
i = ausfin ();
if (i == 1)
break;
continue;
}
} 
}
}
m0290:
if (vorrat > 0) {
vorrat = 0;
goto m0420;
}
switch (vorrat2) {
case 0:
break;
case 1:
vorrat2 = 0;
goto m0610;
case 2:
vorrat2 = 0;
goto m0630;
}
TA fprintf (lug, "TTT10 %d\n", scope); TE
if (scope == 0)
goto m0100; 
else goto m0760; 
case 27:
nojump = 1;
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-2\n", fnrs); (void) fflush (stdout);
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-2\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                                
#endif
ialt ++;
isp [ialt] = i;
if (i != '[')
if (i != 'O') {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-3\n", fnrs); (void) fflush (stdout);
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-3\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                                
#endif
ialt ++;
isp [ialt] = i;
switch (i) {
case 'A':
langsam ++;
ialt = 0;
goto m0360; 
case 'B':
langsam ++;
ialt = 0;
goto m0350; 
case 'C':
langsam ++;
ialt = 0;
goto m0380; 
case 'D':
langsam ++;
ialt = 0;
goto m0370; 
case 'E':
case 'F':
langsam ++;
ialt = 0;
if (keyboardall == 1) {
eazone (t022 [la]);
goto m0780; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 'H':
langsam ++;
ialt = 0;
goto m0390; 
case 'P':
j = isp [ialt - 1];
langsam ++;
ialt = 0;
if (j == '[')
goto m0330; 
else goto m0400; 
case 'Q':
ialt = 0;
goto m0480; 
case 'R':
ialt = 0;
goto m0490; 
case 'S':
ialt = 0;
goto m0500; 
case 77: 
ialt = 0;
goto m0580; 
case 108: 
ialt = 0;
goto m0570; 
case 112: 
ialt = 0;
goto m0560; 
case 113: 
ialt = 0;
goto m0530; 
case 114: 
ialt = 0;
goto m0540; 
case 115: 
ialt = 0;
goto m0550; 
case 116: 
ialt = 0;
goto m0500; 
case 117: 
ialt = 0;
goto m0510; 
case 118: 
ialt = 0;
goto m0520; 
case 119: 
ialt = 0;
goto m0400; 
case 120: 
ialt = 0;
goto m0480; 
case 121: 
ialt = 0;
goto m0490; 
case 49: 
j = 10;
goto m0300;
case 50: 
j = 20;
goto m0300;
case 51: 
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-16\n", fnrs);
(void) fflush (stdout);
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-16\n", fnrs);
(void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                            
#endif
ialt ++;
isp [ialt] = i;
if (i == '~') {
ialt = 0;
goto m0330; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 53: 
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-4\n", fnrs);
(void) fflush (stdout);
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-4\n", fnrs);
(void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                            
#endif
ialt ++;
isp [ialt] = i;
if (i == '~' || i == 'z') {
ialt = 0;
goto m0620; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 54: 
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-5\n", fnrs);
(void) fflush (stdout);
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-5\n", fnrs);
(void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                            
#endif
ialt ++;
isp [ialt] = i;
if (i == '~' || i == 'z') {
ialt = 0;
goto m0600; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
default:
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
m0300:
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-6\n", fnrs); (void) fflush (stdout);
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-6\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                                
#endif
ialt ++;
isp [ialt] = i;
if (i == '~' || i == 'z')
if (j == 20) {
ialt = 0;
goto m0590; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
if (i < 48) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
if (i > 57) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
j += i - 48;
if (j > 2 && j < 11 || j == 16 || j > 24) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-7\n", fnrs); (void) fflush (stdout);
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-7\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                                
#endif
ialt ++;
isp [ialt] = i;
if (i == '~')
goto m0310;
if (i < 48) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
if (i > 57) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
j = j * 10 + i - 48;
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-8\n", fnrs); (void) fflush (stdout);
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-8\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                                
#endif
ialt ++;
isp [ialt] = i;
if (i != 'z' && i != 'q') {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
m0310:
ialt = 0; 
switch (j) {
case 11:
if (ialt == 6)
goto m0320;
case 1:
case 224:
ialt = 0; 
goto m0400; 
case 12:
if (ialt == 6)
goto m0320;
case 2:
case 225:
ialt = 0; 
goto m0480; 
case 3:
case 13:
case 226:
ialt = 0; 
goto m0490; 
case 4:
case 14:
case 227:
ialt = 0; 
goto m0500; 
case 5:
case 15:
case 228:
ialt = 0; 
goto m0510; 
case 6:
case 17:
case 229:
ialt = 0; 
goto m0520; 
case 7:
case 18:
case 230:
ialt = 0; 
goto m0530; 
case 8:
case 19:
case 231:
ialt = 0; 
goto m0540; 
case 9:
case 20:
case 232:
ialt = 0; 
goto m0550; 
case 10:
case 21:
case 233:
ialt = 0; 
goto m0560; 
case 23:
case 192:
ialt = 0; 
goto m0570; 
case 24:
case 193:
m0320:
ialt = 0; 
goto m0580; 
case 146:
if (i == 'q') {
ialt = 0; 
if (keyboardall == 1) {
eazone (t022 [la]);
goto m0780; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 220:
if (i == 'z') {
ialt = 0; 
if (keyboardall == 1) {
eazone (t022 [la]);
goto m0780; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 214:
if (i == 'z') {
ialt = 0; 
goto m0390; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 139:
if (i == 'q') {
ialt = 0; 
goto m0590; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 154:
if (i == 'q') {
ialt = 0; 
goto m0600; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 222:
if (i == 'z') {
ialt = 0; 
goto m0600; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 150:
if (i == 'q') {
ialt = 0; 
goto m0620; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 216:
if (i == 'z') {
ialt = 0; 
goto m0620; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
default:
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
case 127:
case KEY_DC:
m0330:
if (zl == zll) 
goto m0650; 
if (dzben [zl] == 0) {
m0340:
dzaen [zl] = 1;
pb = &bild [zl * COLS + sp];
for (i = 1; i <= COLS - 1 - sp; i ++) {
*pb = *(pb + 1);
pb ++;
}
*pb = ' ';
#ifndef Ms
(void) delch ();
#endif
goto m0130; 
}
if (inputm > 0)
goto m0340;
if (dzadr [zl] == wakt -> anfang)
goto m0650; 
if (sp <= wakt -> skey)
goto m0650; 
i = sp - wakt -> skey - 1; 
if (i >= wakt -> lwwidth) {
#ifdef Ms
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-9\n", fnrs); (void) fflush (stdout);
#endif
goto m0140; 
}
if (dzben [zl] > 1)
i += wakt -> lwwidth * (dzben [zl] - 1);
lauf = dzadr [zl];
if (i >= lauf -> lnlz) {
#ifdef Ms
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-10\n", fnrs); (void) fflush (stdout);
#endif
goto m0140; 
}
zla = zl - dzben [zl] + 1;
if (zla < 0)
zla = 0;
dzaen [zla] = 1;
TA fprintf (lug, "UM01\n"); TE
umleit (0);
if (wakt -> caseu == 1) {
lauf = dzadr [zl];
for (j = 0; j <= lauf -> lnlz - 1; j ++)
*(lauf -> datn + j) =
toupper (*(lauf -> datn + j));
}
pi = &(*lauf).datn [i];
for (j = 1; j <= lauf -> lben - i - 1; j ++) {
*pi = *(pi + 1);
pi ++;
}
lauf -> lnlz --;
lauf -> lben --;
noneaz = 1;
wakt -> notfiled = 1;
TA fprintf (lug, "SCHWU %d %d %d %d\n",
lauf -> lnlz, wakt -> pwwidth, zl, zlc); TE
if (lauf -> lnlz == wakt -> lwwidth)
if (zl < zlc) {
dtzufl [zl] = 0;
dtzufl [zl + 1] = 1;
dtzuad [zl + 1] = dtzuad [zl];
}
if (zl < zlc) 
if (lauf -> lnlz % wakt -> lwwidth == 0) 
zl ++; 
goto m0750;
case KEY_DOWN:
m0350:
zl ++;
if (zl > zll)
zl = 0;
goto m0790;
case KEY_UP:
m0360:
zl --;
if (zl < 0)
zl = zll;
goto m0790;
case KEY_LEFT:
m0370:
sp --;
if (sp < 0) {
sp = COLS - 1;
zl = zl - 1;
if (zl < 0)
zl = zll;
}
goto m0790;
case KEY_RIGHT:
m0380:
sp ++;
if (sp == COLS) {
sp = 0;
zl = zl + 1;
if (zl == LINES)
zl = 0;
}
goto m0790;
case KEY_HOME: 
m0390:
for (i = 0; i < Zl; i ++) {
dzaen [i] = 0;
if (dzben [i] == 0) 
continue;
if (dtzufl [i] == 1)
tielmu (i);
}
goto m0770;
case KEY_F (1): 
m0400:
fnr = 1;
m0410:
if (pfkbenu [fnr] != 0) {
if (strcmp (pfktext [fnr], "'ins'") == 0)
goto m0590;
if (strcmp (pfktext [fnr], "'del'") == 0)
goto m0330;
if (strcmp (pfktext [fnr], "'cleft'") == 0)
goto m0370;
if (strcmp (pfktext [fnr], "'cright'") == 0)
goto m0380;
if (strcmp (pfktext [fnr], "'cup'") == 0)
goto m0360;
if (strcmp (pfktext [fnr], "'cdown'") == 0)
goto m0350;
}
if (inputm > 0) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
if (strcmp (pfktext [fnr], "'pos1'") == 0)
if (pfkbenu [fnr] != 0)
goto m0390;
TA fprintf (lug, "EFEINT\n"); TE
if (letztetaste != 10)
if (letztetaste != KEY_ENTER) {
vorrat = fnr;
goto m0160;
}
m0420:
TA fprintf (lug, "EFEINU\n"); TE
if (pfkset == 1) {
eazone (t019 [la]); 
goto m0760; 
}
TA fprintf (lug, "EFEINV\n"); TE
if (pfkbenu [fnr] == 0) {
eazone (t020 [la]); 
goto m0760; 
}
TA fprintf (lug, "EFEINW\n"); TE
if (pfktext [fnr] [0] == '\'') {
pz = pfktext [fnr] + 1;
i = strspn (pz, alphanumv); 
TA fprintf (lug, "EFEINX\n"); TE
if (i == 0)
goto m0470; 
if (i > 5)
goto m0470; 
if (*(pz + i) != '\'')
goto m0470; 
if (*(pz + i + 1) != '\0')
goto m0470; 
if (memcmp (pz, "-page", 5) == 0) {
m0430:
anzahl = blaettg;
m0440:
Sprintf (zeill, "-%d", anzahl);
ebe = 0;
eazone (zeill);
#ifndef Ms
(void) move (zll - 7, 0);
(void) addstr (zeill);
#endif
for (i = 1; i <= anzahl; i ++) {
if (wakt -> clp -> rckw != NULL)
wakt -> clp = wakt -> clp -> rckw;
}
dataend = 1;
goto m0760;
}
if (memcmp (pz, "-half", 5) == 0) {
anzahl = blaetth;
goto m0440;
}
if (memcmp (pz, "+page", 5) == 0) {
m0450:
anzahl = blaettg;
m0460:
Sprintf (zeill, "+%d", anzahl);
ebe = 0;
eazone (zeill);
#ifndef Ms
(void) move (zll - 7, 0);
(void) addstr (zeill);
#endif
for (i = 1; i <= anzahl; i ++) {
if (wakt -> clp -> vorw != NULL)
wakt -> clp = wakt -> clp -> vorw;
else {
eazone (t070 [la]); 
break;
}
}
dataend = 1;
goto m0760;
}
if (memcmp (pz, "+half", 5) == 0) {
anzahl = blaetth;
goto m0460;
}
}
m0470:
TA fprintf (lug, "EFEINY %c%s%c\n", '|', pfktext [fnr], '|'); TE
eazone (pfktext [fnr]);
i = ausfue (pfktext [fnr]);
switch (i) {
case 0:
case 1:
if (scope == 1)
goto m0760; 
else goto m0100; 
case 2:
goto m0780; 
case 5:
goto m0810; 
default:
profeh (40, i);
if (scope == 1)
goto m0760; 
else goto m0100; 
}
case KEY_F (2): 
m0480:
fnr = 2;
goto m0410;
case KEY_F (3): 
m0490:
fnr = 3;
goto m0410;
case KEY_F (4): 
m0500:
fnr = 4;
goto m0410;
case KEY_F (5): 
m0510:
fnr = 5;
goto m0410;
case KEY_F (6): 
m0520:
fnr = 6;
goto m0410;
case KEY_F (7): 
m0530:
fnr = 7;
goto m0410;
case KEY_F (8): 
m0540:
fnr = 8;
goto m0410;
case KEY_F (9): 
m0550:
fnr = 9;
goto m0410;
case KEY_F (10): 
m0560:
fnr = 10;
goto m0410;
case KEY_F (11): 
m0570:
fnr = 11;
goto m0410;
case KEY_F (12): 
m0580:
fnr = 12;
goto m0410;
case KEY_F (13): 
fnr = 13;
goto m0410;
case KEY_F (14): 
fnr = 14;
goto m0410;
case KEY_F (15): 
fnr = 15;
goto m0410;
case KEY_F (16): 
fnr = 16;
goto m0410;
case KEY_F (17): 
fnr = 17;
goto m0410;
case KEY_F (18): 
fnr = 18;
goto m0410;
case KEY_F (19): 
fnr = 19;
goto m0410;
case KEY_F (20): 
fnr = 20;
goto m0410;
case KEY_F (21): 
fnr = 21;
goto m0410;
case KEY_F (22): 
fnr = 22;
goto m0410;
case KEY_F (23): 
fnr = 23;
goto m0410;
case KEY_F (24): 
fnr = 24;
goto m0410;
case KEY_IC:
m0590:
if (spteil == 1) {
spteil = 0;
spteil2 = 1;
TA fprintf (lug, "SPteil2 = %d\n", spteil2); TE
ialt ++;
isp [ialt] = 10; 
goto m0160; 
}
#ifndef Ms
(void) move (zll, 13);
#endif
if (einfg == 1) {
if (tastealt == taste) {
insdauer = 1;
goto m0800;
}
insdauer = 0;
einfg = 0;
*b_ins = ' ';
#ifndef Ms
(void) addstr (" ");
#endif
}
else {
einfg = 1;
*b_ins = '^';
#ifndef Ms
(void) addstr ("^");
#endif
}
goto m0800;
case KEY_NPAGE: 
m0600:
if (inputm > 0) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
if (letztetaste != 10)
if (letztetaste != KEY_ENTER) {
vorrat2 = 1;
goto m0160;
}
m0610:
goto m0450; 
case KEY_PPAGE: 
m0620:
if (inputm > 0) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
if (letztetaste != 10)
if (letztetaste != KEY_ENTER) {
vorrat2 = 2;
goto m0160;
}
m0630:
goto m0430; 
#ifndef Mhpux
case KEY_END: 
if (keyboardall == 1) {
eazone (t022 [la]);
goto m0780; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140;
}
#endif
default:
break;
}
if (i == 9) 
goto m0640;
if (i < 32 || i > 255) {
if (keyboardall == 1) {
Sprintf (zeile, "%s %d %s", t023 [la], i, t024 [la]);
eazone (zeile);
goto m0780; 
}
else {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140;
}
}
m0640:
if (dzben [zl] == 0) {
if (zl == zll)  {
m0650:
#ifndef Ms
(void) beep ();
#endif
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
m0660:
dzaen [zl] = 1;
#ifdef Mnt
#endif
if (einfg == 0) {
bild [zl * COLS + sp] = i;
#ifndef Ms
(void) addch (i);
#endif
if (inputm > 0) {
if (wakt -> mode == 5)  {
if (i == '>')  {
pb = &bild [zl * COLS + sp - 1];
if (*pb == '/') 
goto m0680; 
if (*pb == '-') 
goto m0680; 
pc = pb;
for (j = 1; j <= sp; j ++) {
if (*pc == '<')
goto m0670;
pc --;
}
goto m0680; 
m0670:
pc ++;
if (*pc == '/') 
goto m0680; 
pd = pc;
for (j = 1; j <= pb - pc + 1; j ++) {
if (*pd == ' ')
break;
pd ++;
}
memcpy (eti, pc, pd - pc);
memset (eti + (pd - pc), '\0', 1);
ialt ++;
isp [ialt] = '<';
ialt ++;
isp [ialt] = '/';
for (j = 0; j < strlen (eti); j ++) {
ialt ++;
isp [ialt] = eti [j];
}
ialt ++;
isp [ialt] = '>';
spfest = sp + 1;
TA fprintf (lug, "SPfest = %d\n", spfest); TE
} 
} 
m0680:
if (*b_inp == 'i') {
if (inlzl1 == 0) {
TA fprintf (lug, "UB09 %d %d %d\n", inlzl1, zl, zle); TE
if (zl != zle + 1) {
m0690:
inltat = 0;
TA fprintf (lug, "IT3 inltat = %d\n", inltat); TE
*b_inp = 'I';
#ifndef Ms
(void) move (zll, 14);
(void) addstr ("I");
#endif
}
}
else {
pb = &bild [(zl - 1) * COLS];
if (memcmp (pb, t043 [la], 7) != 0)
goto m0690;
}
}
if (sp >= inlakt) {
TA fprintf (lug, "UB21 sp = %d %d\n", sp, inlakt); TE
if (wakt -> inlsft == 1) {
if (inltat == 1) {
TA fprintf (lug, "UB01 sp = %d\n", sp); TE
k = 0;
for (j = zl * COLS + sp; ; j --) {
TA fprintf (lug, "UB02 j = %d\n", j); TE
if (bild [j] == ' ')
break;
k ++;
if (k == sp - indakt) {
TA fprintf (lug, "UB03 k = %d\n", k); TE
goto m0705;
}
}
TA fprintf (lug, "UB08 k = %d\n", k); TE
m0700:
TA fprintf (lug, "UB04 i = %d\n", i); TE
if (i != ' ') {
TA fprintf (lug, "UB05 i = %d\n", i); TE
ialt ++;
for (j = ialt; j > 1; j --)
isp [j] = isp [j - 1];
isp [1] = i;
bild [zl * COLS + sp] = ' ';
(void) delch ();
sp --;
i = bild [zl * COLS + sp];
goto m0700;
}
else {
TA fprintf (lug, "UB06 i = %d\n", i); TE
ialt ++;
for (j = ialt; j > 1; j --)
isp [j] = isp [j - 1];
isp [1] = 10; 
goto m0730;
}
} 
} 
else {
m0705:
ialt += 2;
for (j = ialt; j > 2; j --)
isp [j] = isp [j - 2];
isp [2] = i;
isp [1] = 10; 
bild [zl * COLS + sp] = ' ';
(void) delch ();
sp --;
goto m0730;
}
} 
TA fprintf (lug, "UB07\n"); TE
} 
goto m0730;
} 
else {
pb = &bild [(zl + 1) * COLS - 1]; 
if (*pb != ' ')
goto m0650; 
for (j = 1; j <= COLS - sp - 1; j ++) {
*pb = *(pb - 1);
pb --;
}
bild [zl * COLS + sp] = i;
#ifndef Ms
(void) insch (i);
#endif
if (inputm > 0) {
*b_inp = 'I';
#ifndef Ms
(void) move (zll, 14);
(void) addstr ("I");
#endif
pb = &bild [(zl + 1) * COLS - 1];
if (*pb != ' ') {
}
} 
goto m0730;
} 
} 
if (inputm > 0)
goto m0660;
if (dzadr [zl] == wakt -> anfang) {
goto m0650; 
}
if (zl == 0)
if (einfg == 1)
if (lauf -> lnlz % wakt -> lwwidth == 0)
goto m0650; 
if (sp <= wakt -> skeyalt)  {
if (einfg == 1)
{
goto m0650; 
}
if (sp == wakt -> skeyalt)  {
goto m0650; 
}
zla = zl - dzben [zl] + 1;
if (zl != zla)  {
goto m0650; 
}
dzaen [zla] = 1;
if (bild [zl * COLS + sp] == i)  {
if (wakt -> caseu == 1) {
lauf = dzadr [zla];
umleit (0);
for (j = 0; j <= lauf -> lnlz - 1; j ++)
*(lauf -> datn + j) = toupper (*(lauf -> datn + j));
for (j = 0; j < COLS - 1; j ++)
bild [zl * COLS + j] = toupper (bild [zl * COLS + j]);
dataen [zl] = 1;
}
sp ++;
if (sp == COLS) {
sp = 0;
zl ++;
if (zl == LINES)
zl = 0;
}
noneaz = 1;
goto m0770;
}
prfaen [zl] = 1;
praefix [zl * 8 + sp] = i;
lauf = dzadr [zl];
umleit (0);
lauf -> schl [sp + 8 - wakt -> skeyalt] = i;
if (wakt -> caseu == 1) {
for (j = 0; j <= lauf -> lnlz - 1; j ++)
*(lauf -> datn + j) = toupper (*(lauf -> datn + j));
for (j = 0; j < COLS - 1; j ++)
bild [zl * COLS + j] = toupper (bild [zl * COLS + j]);
dataen [zl] = 1;
}
goto m0720;
}
zla = zl - dzben [zl] + 1;
if (zla < 0)
zla = 0;
dataen [zla] = 1;
dzaen [zla] = 1;
if (wakt -> caseu == 1) {
lauf = dzadr [zl];
umleit (0);
i = toupper (i);
for (j = 0; j <= lauf -> lnlz - 1; j ++)
*(lauf -> datn + j) = toupper (*(lauf -> datn + j));
for (j = 0; j <= COLS - 1; j ++)
bild [zl * COLS + j] = toupper (bild [zl * COLS + j]);
}
lauf = dzadr [zl]; 
if (einfg == 0) {
k = sp - wakt -> skeyalt;
TA fprintf (lug, "NOR0 %d %d %d %d %d\n", zl, sp, wakt -> skeyalt,
k, wakt -> lwwidth);      TE
if (k > wakt -> lwwidth) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
j = lauf -> lnlz - (dzben [zl] - 1) * wakt -> lwwidth;
TA fprintf (lug, "NOR1 %d %d\n", k, j); TE
TA fprintf (lug, "NOR2 %d %d %d\n", lauf -> lnlz, lauf -> lben,
lauf -> lmax); TE
if (k <= j) {
m0710:
if (flg [zl] == '.')  {
TA fprintf (lug, "UM03\n"); TE
umleit (0);
#ifdef Mnt
if (i >= 128 && pccp == 2) 
i = cp88591 [i - 128];
#endif
lauf -> datn [k + (dzben [zl] - 1) * wakt -> lwwidth - 1] = i;
if (sp == wakt -> lwwidth + wakt -> skeyalt) {
sp = wakt -> skeyalt + 1;
zl ++;
}
else {
sp ++;
if (sp == COLS) {
sp = 0;
zl ++;
}
}
noneaz = 1;
goto m0750;
} 
zla = zl - dzben [zl] + 1;
if (zla < 0)
zla = 0;
noraendie [zla] = 1;
TA fprintf (lug, "NDA3 %d %d\n", zla, zl); TE
m0720:
#ifndef Ms
if (lauf == wakt -> clp)
(void) addch (i | A_STANDOUT);
else (void) addch (i);
#endif
bild [zl * COLS + sp] = i;
if (sp == wakt -> lwwidth + wakt -> skeyalt) {
sp = wakt -> skeyalt + 1;
zl ++;
goto m0790;
}
else goto m0730; 
} 
if (k <= j + lauf -> lmax - lauf -> lnlz) {
TA fprintf (lug, "SSS %d %d\n", lauf -> lnlz, k - j); TE
lauf -> lnlz += k - j;
lauf -> lben = lauf -> lnlz;
TA fprintf (lug, "SSA %d %s\n", lauf -> lnlz, lauf -> datn); TE
goto m0710;
}
TA fprintf (lug, "UML JEN %d\n", k - j + 8); TE
umleit (k - j + 8);
TA fprintf (lug, "UM05 %d\n", k - j + 8); TE
memset (&(*lauf).datn [lauf -> lben], ' ',
k - j - lauf -> lben + lauf -> lnlz - 1);
lauf -> lnlz += k - j;
lauf -> lben = lauf -> lnlz;
goto m0710;
}
else  {
TA fprintf (lug, "UNA |%s|\n", lauf -> datn); TE
k = sp - wakt -> skeyalt;
if (k > wakt -> lwwidth) {
#ifdef Ms
dollar3 = 1;
#endif
goto m0140; 
}
if (dzben [zl] > 1)
k += wakt -> lwwidth * (dzben [zl] - 1);
ii = k - lauf -> lmax;
if (ii > 0)
j = ii + 7; 
else
if (lauf -> lben == lauf -> lmax)
j = 8; 
else j = 0;
TA fprintf (lug, "UML INS %d %d %d\n", sp, k, j); TE
TA fprintf (lug, "UMM %d %d %d %d\n", lauf, lauf -> lnlz,
lauf -> lben, lauf -> lmax); TE
umleit (j);
TA fprintf (lug, "UMN %d %d %d %d\n", lauf, lauf -> lnlz,
lauf -> lben, lauf -> lmax); TE
TA fprintf (lug, "UMO |%s|\n", lauf -> datn); TE
if (k <= lauf -> lben) {
memmove (&(*lauf).datn [k], &(*lauf).datn [k - 1],
lauf -> lben - k + 1);
lauf -> lben += 1;
lauf -> lnlz = lauf -> lben;
}
else {
memset (&(*lauf).datn [lauf -> lben], ' ', k - lauf -> lben - 1);
lauf -> lben = k;
lauf -> lnlz = lauf -> lben;
}
#ifdef Mnt
if (i >= 128 && pccp == 2) 
i = cp88591 [i - 128];
#endif
lauf -> datn [k - 1] = i;
if (sp == wakt -> lwwidth + wakt -> skeyalt) {
sp = wakt -> skeyalt + 1;
zl ++;
}
else {
sp ++;
if (sp == COLS) {
sp = 0;
zl ++;
}
}
noneaz = 1;
TA fprintf (lug, "SCHWU2 %d %d %d %d\n",
lauf -> lnlz, wakt -> pwwidth, zl, zlc); TE
if (lauf -> lnlz == wakt -> lwwidth + 1)
if (zl < zlc)
if (zl > 0) {
dtzufl [zl] = 0;
dtzufl [zl - 1] = 1;
dtzuad [zl - 1] = dtzuad [zl];
}
if (lauf -> lnlz % wakt -> lwwidth == 1) 
if (zl < zlc) 
zl --; 
goto m0750;
}
m0730: 
if (spzur == 1) {
spzur = 0;
sp = spfest;
einfg = 1;
*b_ins = '^';
#ifndef Ms
(void) move (zll, 13);
(void) addstr ("^");
#endif
spteil = 1;
TA fprintf (lug, "SPteil = %d\n", spteil); TE
goto m0790;
}
sp ++;
if (sp == COLS)
if (inputm == 0) {
sp = 0;
zl ++;
if (zl == LINES)
zl = 0;
}
else {
ialt ++;
for (j = ialt; j > 1; j --)
isp [j] = isp [j - 1];
isp [1] = 10; 
}
goto m0790;
m0750:
i = zl;
for (zl = 0; zl < zzd; zl ++) {
if (noraendie [zl] == 1) {
lauf = dzadr [zl];
TA fprintf (lug, "UML NOE %d\n", zl); TE
TA fprintf (lug, "UM07\n"); TE
umleit (0);
}
}
zl = i;
goto m0770;
m0760:
art = 1;
goto m0120;
m0770:
art = 2;
goto m0120;
m0780:
art = 3;
goto m0120;
m0790:
art = 4;
goto m0120;
m0800:
art = 5;
goto m0120;
m0810:
if (scope == 0)
goto m0820;
#ifndef Ms
(void) erase ();
(void) refresh ();
(void) endwin ();
#else
i = fputs ("$1\n", pesa);
(void) fflush (pesa);
printf ("%s $1 geschrieben\n", fnrs); (void) fflush (stdout);
#endif
m0820:
if (langsam > 0)
printf (t025 [la], langsam);
#ifdef Mp
m0830:                                                           
ptksp [ptki] = 9999;                                           
ptki ++;                                                       
if (ptki != 14)                                                
goto m0830;                                                  
fprintf (ptk,                                                  
"%4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d\n",   
ptksp [0],ptksp [1],ptksp [2],ptksp [3],ptksp [4],ptksp [5],   
ptksp [6],ptksp [7],ptksp [8],ptksp [9],ptksp[10],ptksp[11],   
ptksp[12],ptksp[13]);                                          
(void) fclose (ptk);                    
if (ptkbleibt == 0) {                   
Sprintf (meldung, "rm %s*", tempdsn); 
system (meldung);                     
}                                       
#endif
if (monoffen == 1) {
(void) fclose (mon);
i = system ("rm /tmp/pm");
}
return 0; 
}
int ausfgn () {
int        zurueck;
zurueck = 0;
for (i = 1; i <= anzahl; i ++) {
wakt -> clp = (struct l *) malloc (
lsl + lauf -> lnlz);
memcpy (Cast wakt -> clp, Cast lauf,
lsl + lauf -> lnlz);
wakt -> clp -> lben = wakt -> clp -> lnlz;
wakt -> clp -> lmax = wakt -> clp -> lnlz;
if (lauf -> vorw != NULL) {
lauf -> vorw -> rckw = wakt -> clp;
wakt -> clp -> vorw = lauf -> vorw;
}
else {
wakt -> clp -> vorw = NULL;
wakt -> bottom = wakt -> clp;
}
lauf -> vorw = wakt -> clp;
wakt -> clp -> rckw = lauf;
numein (lauf, wakt -> clp -> vorw, 1);
wakt -> zeilenzahl ++;
lauf = wakt -> clp -> vorw;
if (lauf == NULL) {
eazone (t070 [la]); 
zurueck = 1;
break;
}
}
dataend = 1;
wakt -> notfiled = 1;
zzaend = 1;
return zurueck;
}
int ausfin () {
int        zurueck;
zurueck = 0;
for (i = 1; i <= anzahl; i ++) {
wakt -> clp = (struct l *) malloc (lsl);
memcpy (Cast wakt -> clp, Cast lauf, lsl);
wakt -> clp -> lnlz = 0;
wakt -> clp -> lben = 0;
wakt -> clp -> lmax = 0;
if (lauf -> vorw != NULL) {
lauf -> vorw -> rckw = wakt -> clp;
wakt -> clp -> vorw = lauf -> vorw;
}
else {
wakt -> clp -> vorw = NULL;
wakt -> bottom = wakt -> clp;
}
lauf -> vorw = wakt -> clp;
wakt -> clp -> rckw = lauf;
numein (lauf, wakt -> clp -> vorw, 1);
wakt -> zeilenzahl ++;
lauf = wakt -> clp -> vorw;
if (lauf != NULL)
continue;
else {
eazone (t070 [la]); 
zurueck = 1;
break;
}
}
dataend = 1;
wakt -> notfiled = 1;
zzaend = 1;
return zurueck;
}
int ausfue (char *zeile) {
int        i;
int        j;
int        jj;
char      *pz;
int        restleer;
if (*zeile == 0x02)
goto m1760; 
pz = zeile;
zeileleer = 1;
m0840:
TA fprintf (lug, "NX2 |%s|\n", pz); TE
if (frage2 == 1 ) {
frage2 = 0;
goto m1760; 
}
pz0 = pz;
j = pz - zeile;
for (i = 0; i < strlen (zeile) - j; i ++) {
if (*pz != ' ')
goto m0850;
pz ++;
}
if (zeileleer == 1)  {
eazone ("exaEdit");
return 2;
}
goto m4410; 
m0850:
zeileleer = 0;
restleer = 0; 
i = strspn (pz, alpha); 
if (i == 0)  {
j = strspn (pz, num); 
if (j > 0)  {
pi = pz + j;
while (*pi) 
if (*pi == ' ')
pi ++;
else goto m0860;
goto m3100; 
m0860:
memset (schluessel, '0', 8);
memcpy (schluessel + 8 - j, pz, j);
pz += j;
TA fprintf (lug, "NUMMERB %s\n", schluessel); TE
TA fprintf (lug, "NUMMER2 %s\n", pz); TE
dataend = 1;
wakt -> notfiled = 1;
lauf = wakt -> anfang -> vorw;
if (*pz == ' ')
pz ++;
i = strlen (pz);
pi = pz + i - 1;
for (j = i; j >= 1; j --)
if (*pi != ' ')
break;
else pi --;
while (lauf != NULL) {
if (strcmp (lauf -> schl, schluessel) < 0) 
goto m0880;
if (strcmp (lauf -> schl, schluessel) == 0)  {
TA fprintf (lug, "MSCH %s\n", lauf -> schl); TE
if (j > lauf -> lmax)
vergro (j - lauf -> lmax);
memcpy (lauf -> datn, pz, j);
#ifdef Mnt
if (pccp == 2) 
;
#endif
if (wakt -> caseu == 1)
for (k = 0; k < j; k ++)
*(lauf -> datn + k) =
toupper (*(lauf -> datn + k));
lauf -> lnlz = j;
lauf -> lben = j;
wakt -> clp = lauf;
goto m4410; 
}
TA fprintf (lug, "LSCH %s\n", lauf -> schl); TE
vori = lauf -> rckw;
lauf = (struct l *) malloc (lsl + j);
vori -> vorw -> rckw = lauf;
m0870:
wakt -> zeilenzahl ++;
zzaend = 1;
lauf -> vorw = vori -> vorw;
lauf -> rckw = vori;
vori -> vorw = lauf;
strcpy (lauf -> schl, schluessel);
lauf -> flag = ' ';
memcpy (lauf -> datn, pz, j);
#ifdef Mnt
if (pccp == 2) 
;
#endif
if (wakt -> caseu == 1)
for (k = 0; k < j; k ++)
*(lauf -> datn + k) =
toupper (*(lauf -> datn + k));
lauf -> lmax = j;
lauf -> lnlz = j;
lauf -> lben = j;
wakt -> clp = lauf;
goto m4410; 
m0880:
lauf = lauf -> vorw;
}
TA fprintf (lug, "NSCH %s\n", lauf -> schl); TE
vori = wakt -> bottom;
lauf = (struct l *) malloc (lsl + j);
wakt -> bottom = lauf;
goto m0870;
}
if (*pz == '&') {
pz ++;
typ = 4;
i = strspn (pz, alpha);
if (i == 0)
if (*pz == '*') {
typ2 = 2; 
pz ++;
}
else goto m4250; 
else {
typ2 = 1; 
if (i > 8)
goto m4250; 
memcpy (pvtmp, pz, i);
pvtmp [i] = '\0';
pz += i;
for (pavind = 0; pavind < pvanz; pavind ++) {
if (strcmp (pvtmp, pvnam [pavind]) == 0) {
pavalt = 1; 
goto m0890;
}
}
pavalt = 2; 
} 
m0890:
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m0910;
restleer = 1;
m0900:
if (typ2 == 2) 
goto m0970; 
if (pavalt == 1) 
goto m0970; 
goto m4170; 
m0910:
if (*pz == cmdsep)
goto m0900;
ch = *pz;
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m0920;
if (ch == '=' || ch == '+')
goto m4110; 
restleer = 1;
m0920:
switch (ch) {
case '=':
TA fprintf (lug, "PVA %d %c\n", typ2, ch); TE
if (pavalt == 2)
goto m4170; 
switch (pvtyp [pavind]) {
case 1: 
j = getzhl (&pz, &restleer);
switch (j) {
case 0:
break;
case Ffehlbef:
case Fkeinesp:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (47, j);
return 1; 
}
if (restleer == 1 || *pz == cmdsep)
break;
j = getvor (&pz, &restleer);
if (plusminus == 0) 
goto m4250; 
if (j == Fparmfeh) 
goto m4110; 
pavzah = zahl;
j = getzhl (&pz, &restleer);
switch (j) {
case 0:
if (plusminus == 1)
pavzah += zahl;
else pavzah -= zahl;
zahl = pavzah;
break;
case Ffehlbef:
case Fkeinesp:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (102, j);
return 1; 
}
break;
case 2: 
pavsub = 0;
j = getket (&pz, &restleer);
TA fprintf (lug, "PV09 %d\n", j); TE
switch (j) {
case 0:
break;
case Ffehlbef:
case Fpvniket:
case Fkeineke:
getnum (&pz, &restleer);
TA fprintf (lug, "PV10 %d\n", prmt); TE
switch (prmt) {
case 0: 
goto m4110; 
case 1: 
case Ffehlbef: 
goto m4250;
case 2: 
j = getnam (&pz, &restleer);
switch (j) {
case 0:
break;
case Fzugross:
goto m4120; 
case Fkeinbuc:
default:
profeh (106, i);
return 1; 
}
if (memcmp (name, "SUBSTR", lname) != 0)
goto m4250;
j = getket (&pz, &restleer);
switch (j) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
case Fpvniket:
goto m4250; 
case Fzugross:
goto m4310; 
case Fpvnidef:
goto m4170; 
default:
profeh (107, j);
return 1; 
}
j = getzhl (&pz, &restleer);
switch (j) {
case 0:
if (zahl == 0)
goto m4200; 
i = zahl;
break;
case Ffehlbef:
case Fkeinesp:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (108, j);
return 1; 
}
pavsub = 1;
if (restleer == 1 || *pz == cmdsep)
goto m0930;
j = getzhl (&pz, &restleer);
switch (j) {
case 0:
pavsub = 2;
case Fkeinesp:
break; 
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (109, j);
return 1; 
}
m0930:
if (pavsub == 1) {
j = strlen (kette) - i + 1;
if (j < 0)
goto m4290; 
memmove (kette, &(kette [i - 1]), j);
memset (kette + j, '\0', 1);
}
else {
if (i + zahl > strlen (kette) + 1)
goto m4290; 
memmove (kette, &(kette [i - 1]), zahl);
memset (kette + zahl, '\0', 1);
}
break;
case 3: 
wlauf = wakt;
crenum (numt, numc);
TA fprintf (lug, "PV11 %d\n", prmt); TE
switch (prmt) {
case 0: 
i = nump -> lnlz;
while (nump -> datn [i - 1] == ' ')
i --;
if (i < 0)
i = 0;
if (i > 254)
i = 254;
memcpy (kette, nump -> datn, i);
memset (kette + i, '\0', 1);
break;
case 1: 
memcpy (schluessel, numc, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]);
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]);
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (100, prmt);
return 1;
}
break;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
default:
profeh (101, prmt);
return 1;
}
break;
case Fpvnidef:
goto m4170; 
case Fzugross:
goto m4310; 
default:
profeh (89, j);
return 1; 
}
if (restleer == 1 || *pz == cmdsep)
break;
j = getvor (&pz, &restleer);
if (plusminus != 1) 
goto m4250; 
if (j == Fparmfeh) 
goto m4110; 
strcpy (conket, kette); 
j = getket (&pz, &restleer);
switch (j) {
case 0:
if (strlen (conket) + strlen (kette) > 254)
goto m4310; 
strcat (conket, kette);
strcpy (kette, conket);
break;
case Ffehlbef:
case Fkeineke:
case Fpvniket:
goto m4250; 
case Fzugross:
goto m4310; 
case Fpvnidef:
goto m4170; 
default:
profeh (105, j);
return 1; 
}
break;
case 3: 
getnum (&pz, &restleer);
TA fprintf (lug, "PV051 %d\n", prmt); TE
switch (prmt) {
case 0: 
goto m4110; 
case 1: 
case 2: 
case Ffehlbef: 
goto m4250;
case 3: 
wlauf = wakt;
crenum (numt, numc);
TA fprintf (lug, "PV052 %d\n", prmt); TE
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]); 
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]); 
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (100, prmt);
return 1;
}
break;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
default:
profeh (103, prmt);
return 1;
}
if (restleer == 1 || *pz == cmdsep)
break;
j = getvor (&pz, &restleer);
TA fprintf (lug, "PPVU %d\n", j); TE
if (plusminus == 0) 
goto m4250; 
if (j == Fparmfeh) 
goto m4110; 
j = getzhl (&pz, &restleer);
TA fprintf (lug, "PPVV %d\n", j); TE
switch (j) {
case 0:
if (plusminus == 1)
for (j = 1; j <= zahl; j ++) {
nump = nump -> vorw;
if (nump == NULL) {
eazone (t070 [la]); 
return 1; 
}
}
else
for (j = 1; j <= zahl; j ++) {
nump = nump -> rckw;
if (nump == wakt -> anfang) {
eazone (t071 [la]); 
return 1; 
}
}
break;
case Ffehlbef:
case Fkeinesp:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (104, j);
return 1; 
}
break;
}
typ = 1;
break;
case '+':
TA fprintf (lug, "PVB %d %c\n", typ2, ch); TE
TA fprintf (lug, "PVE %d %d\n", pavalt, *pz); TE
if (pavalt == 1) {
eazone (t148 [la]);
return 1; 
}
i = strspn (pz, alpha);
TA fprintf (lug, "PVF %d\n", i); TE
if (i == 0)
goto m4250; 
if (i > 6)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "NUMBER", i) == 0) {
pavnum = 1;
goto m0940;
}
if (memcmp (pz, "STRING", i) == 0) {
pavnum = 2;
goto m0940;
}
if (memcmp (pz, "LINE", i) == 0) {
pavnum = 3;
goto m0940;
}
TA fprintf (lug, "PVG\n"); TE
goto m4250; 
m0940:
typ = 2;
pz += i;
break;
case '?':
case ' ':
TA fprintf (lug, "PVC %d %c\n", typ2, ch); TE
if (typ2 == 1)
if (pavalt == 2)
goto m4170; 
typ = 4;
goto m0950;
case '-':
TA fprintf (lug, "PVD %d %c\n", typ2, ch); TE
if (typ2 == 1)
if (pavalt == 2)
goto m4170; 
typ = 3;
goto m0950;
default:
goto m4250; 
}
if (typ2 == 2) 
goto m4250; 
m0950:
TA fprintf (lug, "PVH %d %d\n", typ2, typ); TE
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m0960;
restleer = 1;
goto m0970;
m0960:
if (*pz != cmdsep)
goto m4250; 
m0970:
TA fprintf (lug, "PV %d %d %d %d %d %d\n", typ, typ2, pavnum,
pavind, pavalt, pvanz); TE
switch (typ) {
case 1:
switch (pvtyp [pavind]) {
case 1:
pvinn [pavind] = zahl;
break;
case 2:
TA fprintf (lug, "SUB %d %d\n", i, zahl); TE
strcpy (pvins [pavind], kette);
break;
case 3:
if (nump == wakt -> anfang)
strcpy (pvins [pavind], "TOP LINE");
else strcpy (pvins [pavind], nump -> schl);
break;
}
break;
case 2:
strcpy (pvnam [pvanz], pvtmp);
pvtyp [pvanz] = pavnum;
if (pavnum == 1)
pvinn [pvanz] = 0;
else pvins [pvanz] [0] = '\0';
pvanz ++;
break;
case 3:
if (typ2 == 2)
pvanz = 4; 
else {
if (pavind <= 3) { 
eazone (t198 [la]);
return 1; 
}
for (j = pavind; j <= pvanz - 1; j ++) {
strcpy (pvnam [j], pvnam [j + 1]);
pvinn [j] = pvinn [j + 1];
strcpy (pvins [j], pvins [j + 1]);
pvtyp [j] = pvtyp [j + 1];
}
pvanz --;
}
break;
case 4:
if (typ2 == 1) {
switch (pvtyp [pavind]) {
case 1:
Sprintf (ch160, "%c &%-8s=%d", pvtyq [pvtyp [pavind]],
pvnam [pavind], pvinn [pavind]);
break;
case 2:
Sprintf (ch160, "%c &%-8s=/%s/", pvtyq [pvtyp [pavind]],
pvnam [pavind], pvins [pavind]);
break;
case 3:
Sprintf (ch160, "%c &%-8s=%s", pvtyq [pvtyp [pavind]],
pvnam [pavind], pvins [pavind]);
break;
}
eazone (ch160);
}
else
for (j = 0; j < pvanz; j ++) {
switch (pvtyp [j]) {
case 1:
Sprintf (ch160, "N &%-8s=%d",
pvnam [j], pvinn [j]);
break;
case 2:
Sprintf (ch160, "S &%-8s=/%s/",
pvnam [j], pvins [j]);
break;
case 3:
Sprintf (ch160, "L &%-8s=%s",
pvnam [j], pvins [j]);
break;
}
eazone (ch160);
}
break;
}
TA fprintf (lug, "PVK %d\n", pvanz);
for (i = 0; i < pvanz; i ++) {
fprintf (lug, "%d %d %d\n", i, pvtyp [i], pvinn [i]);
} TE
if (restleer == 1)
goto m4410; 
else goto m0840; 
}
ch = *pz; 
pz ++; 
restleer = 0; 
j = pz - zeile;
for (i = 0; i < strlen (zeile) - j; i ++) {
if (*pz != ' ')
goto m0980;
pz ++;
}
restleer = 1;
m0980:
if (ch == cmdsep)
goto m0840;
switch (ch) {
case '-':
next = 0;
goto m2820;
case '+':
goto m2810;
case '_':
goto m1370;
default:
goto m4250; 
}
} 
if (i > 8) {
eazone (t149 [la]); 
return 1; 
}
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
pk = beftab;
for (j = 0; j <= 114; j ++) {
if (memcmp (pz, pk, i) > 0) {
pk += 8;
continue;
}
if (memcmp (pz, pk, i) == 0)
goto m0990; 
if (memcmp (pz, pk, 1) == 0) {
pk += 8;
continue;
}
break;
}
memcpy (meldung, pz, i);
memset (meldung + i, '\0', 1);
Sprintf (fehler, "%s %s", t101 [la], meldung);
goto m4400;
m0990:
pz += i; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1000;
restleer = 1;
m1000:
switch (j) {
case 1:
alall = 0; 
alcol = 0; 
allef = 0; 
allin = 0; 
almov = 0; 
if (restleer == 1 || *pz == cmdsep)
goto m4270; 
if (*pz == '(') {
pz ++; 
i = getniv (1, &pz, &restleer);
TA fprintf (lug, "AL01 %d\n", i); TE
switch (i) {
case 0:
nump2 = nump2 -> vorw;
allin = 1;
break;
case 1:
if (getniv1 == 1)
goto m4270; 
nump2 = NULL;
allin = 1;
break;
case 2:
case Fparmfeh:
goto m4250;
case 3:
return 1;
case 4:
goto m4260;
case 5:
goto m4130;
case 6:
goto m4230;
case 7:
goto m4220;
case 8:
goto m4140;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
default:
profeh (134, i);
return 1; 
}
if (restleer == 1)
goto m4360; 
if (*pz != ')')
goto m4360; 
pz ++; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1010;
restleer = 1;
goto m4110; 
} 
else {
nump1 = wakt -> clp;
nump2 = nump1 -> vorw;
} 
m1010:
i = getket (&pz, &restleer);
TA fprintf (lug, "AL02 %d\n", i); TE
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m1020; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m1020; 
case Fzugross:
goto m4310; 
default:
profeh (136, i);
return 1; 
}
allae = strlen (kette);
if (wakt -> caseu == 1)
for (i = 0; i <= allae - 1; i ++)
*(kette + i) = toupper (*(kette + i));
if (restleer == 1)
goto m1070; 
if (*pz == cmdsep)
goto m1070; 
goto m1030; 
m1020:
i = getzhl (&pz, &restleer);
TA fprintf (lug, "AL03 %d\n", i); TE
switch (i) {
case 0:
if (zahl == 0)
goto m4190; 
alcol = zahl;
break;
case Ffehlbef:
goto m4250; 
case Fkeinesp:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (37, i);
return 1; 
}
if (restleer == 1)
goto m1065; 
if (*pz == cmdsep)
goto m1065; 
m1030:
if (alcol == 0) {
if (wakt -> casei == 0)
alcas = 0; 
else alcas = 1; 
alhda = 0;
alida = 0;
}
m1040:
i = getzhl (&pz, &restleer);
TA fprintf (lug, "AL04 %d\n", i); TE
switch (i) {
case 0:
if (allin == 1)
goto m4250; 
if (zahl == 0)
goto m4190; 
nump2 = nump1;
for (i = 1; i <= zahl; i ++) {
nump2 = nump2 -> vorw;
if (nump2 == NULL)
break;
}
alall = - 1;
break;
case Ffehlbef:
goto m4250; 
case Fkeinesp:
break; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (137, i);
return 1; 
}
if (restleer == 1)
goto m1065; 
if (*pz == cmdsep)
goto m1065; 
m1050:
i = getnam (&pz, &restleer);
TA fprintf (lug, "AL05 %d\n", i); TE
switch (i) {
case 0:
break;
case Fkeinbuc:
if (allin == 0)
if (alall == 0)
goto m1040;
goto m4250; 
case Fzugross:
goto m4120; 
default:
profeh (138, i);
return 1; 
}
if (memcmp (name, "ALL", lname) == 0) {
if (allin == 1)
goto m4250; 
if (alall != 0) 
goto m4250; 
alall = 1;
nump1 = wakt -> anfang;
nump2 = NULL;
goto m1060;
}
if (memcmp (name, "MOVEALL", lname) == 0) {
almov = 1;
goto m1060;
}
if (memcmp (name, "LEFT", lname) == 0)
if (alcol > 0) {
if (allef != 0)
goto m4250; 
allef = 1;
goto m1060;
}
if (memcmp (name, "RIGHT", lname) == 0)
if (alcol > 0) {
if (allef != 0)
goto m4250; 
allef = 2;
goto m1060;
}
if (memcmp (name, "H", lname) == 0)
if (alcol == 0) {
if (alhda == 1)
goto m4250; 
alhda = 1;
if (alida == 1)
eazone (t187 [la]); 
alcas = 0;
strcpy (ketteh, kette);
i = hexasc (kette);
if (i != 0)
return 1; 
allae /= 2;
goto m1060;
}
if (memcmp (name, "I", lname) == 0)
if (alcol == 0) {
if (alida == 1)
goto m4250; 
alida = 1;
if (alhda == 1) {
alcas = 0;
eazone (t187 [la]); 
}
else alcas = 1;
goto m1060;
}
goto m4120; 
m1060:
if (restleer == 0)
if (*pz != cmdsep)
goto m1050; 
else pz ++;
if (alcol == 0) {
if (alcas == 1)
for (i = 0; i < allae; i ++)
work2 [i] = tolower (kette [i]);
}
else {
m1065:
if (almov == 1)
if (allef == 1)
goto m4180; 
if (allef == 0)
allef = 1; 
}
m1070:
TA fprintf (lug, "AL06 %d %d %d %d %d %d %d\n",
alall, alanz, almov, alcol, allef, alhda, alida); TE
if (nump1 == wakt -> anfang)
if (alall == 1) {
nump1 = nump1 -> vorw;
if (nump1 == NULL)
goto m1180;
}
else {
strcpy (meldung, t195 [la]); 
goto m4240;
}
if (alcol == 0) {
almax = 0;
zweiter = 0;
lauf = nump1;
m1080:
pi = &(*lauf).datn [wakt -> zona - 1];
i = lauf -> lben;
if (wakt -> zone > 0)
if (wakt -> zone < lauf -> lben)
i = wakt -> zone;
alla2 = i - wakt -> zona - allae + 2;
TA fprintf (lug, "AL07 %d\n", alla2); TE
m1090:
if (alla2 < 1) {
goto m1130;
}
if (alcas == 0) {
pj = memchr (pi, kette [0], alla2);
if (pj != NULL)
if (memcmp (pj, kette, allae) == 0)
goto m1120; 
else goto m1110; 
}
else {
pjl = memchr (pi, tolower (kette [0]), alla2);
pju = memchr (pi, toupper (kette [0]), alla2);
TA fprintf (lug, "AL08 %d %d\n", pjl, pju); TE
if (pjl != NULL)
if (pjl < pju) {
pj = pjl;
goto m1100; 
}
else
if (pju == NULL) {
pj = pjl;
goto m1100; 
}
else {
pj = pju;
goto m1100; 
}
if (pju != NULL) {
pj = pju;
goto m1100; 
}
}
goto m1130;
m1100:
for (i = 0; i < allae; i ++)
work [i] = tolower (pj [i]);
if (memcmp (work2, work, allae) == 0)
goto m1120; 
m1110:
TA fprintf (lug, "AL09 m4110\n"); TE
i = pj - pi + 1;
pi += i;
alla2 -= i;
goto m1090; 
m1120:
i = pj - &(*lauf).datn [0] + 1;
if (zweiter == 0) {
if (i > almax)
almax = i;
}
else {
if (i == almax)
goto m1130; 
j = almax - i; 
k = lauf -> lben - i + 1; 
if (almov == 1) {
pj = &(*lauf).datn [0]; 
k = lauf -> lben;
}
TA fprintf (lug, "AL10 %d %d %d %d \n", almov, i, j, k);TE
if (lauf -> lmax - lauf -> lben < j) {
m = pj - lauf -> datn;
vergro (j);
pj = lauf -> datn + m;
}
memmove (pj + j, pj, k);
memset (pj, ' ', j);
lauf -> lnlz += j;
lauf -> lben += j;
if (alall != 1)
wakt -> clp = lauf;
}
m1130:
lauf = lauf -> vorw;
if (lauf != nump2)
goto m1080; 
TA fprintf (lug, "ALMAX %d\n", almax); TE
if (zweiter == 0) {
if (almax == 0) {
ketngf (1, alhda, kette, ketteh);
return 1; 
}
zweiter = 1;
lauf = nump1;
goto m1080;
}
} 
else { 
lauf = nump1;
if (allef == 2) { 
m1140:
j = alcol - 1;
if (lauf -> lben - 1 < j)
j = lauf -> lben - 1;
for (i = j; i >= 0; i --)
if (lauf -> datn [i] != ' ')
break;
if (i == - 1 || i == alcol - 1)
goto m1150; 
j = alcol - i - 1;
if (almov == 1) {
vergro (j);
pj = &(*lauf).datn [0]; 
memmove (pj + j, pj, lauf -> lben);
lauf -> lnlz += j;
lauf -> lben += j;
}
else {
if (alcol - lauf -> lmax > 0) {
vergro (alcol - lauf -> lmax);
lauf -> lnlz = alcol;
lauf -> lben = alcol;
}
pj = &(*lauf).datn [0]; 
memmove (pj + j, pj, i + 1);
}
memset (pj, ' ', j);
if (alall != 1)
wakt -> clp = lauf;
m1150:
lauf = lauf -> vorw;
if (lauf != nump2)
goto m1140; 
} 
else { 
m1160:
if (lauf -> lben < alcol)
goto m1170; 
for (i = alcol - 1; i <= lauf -> lben - 1; i ++)
if (lauf -> datn [i] != ' ')
break;
TA fprintf (lug, "AL20 %d\n", i); TE
if (i == lauf -> lben || i == alcol - 1)
goto m1170; 
pj = &(*lauf).datn [0];
memmove (pj + alcol - 1, pj + i, lauf -> lben -alcol);
memset
(pj + alcol + lauf -> lben - i - 1, ' ', i - alcol + 1);
lauf -> lnlz -= i - alcol + 1;
lauf -> lben -= i - alcol + 1;
if (alall != 1)
wakt -> clp = lauf;
m1170:
lauf = lauf -> vorw;
if (lauf != nump2)
goto m1160; 
}
}
dataend = 1;
wakt -> notfiled = 1;
m1180:
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 2:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
if (wakt -> clp != wakt -> bottom) {
wakt -> clp = wakt -> bottom;
dataend = 1;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 3:
next = 0;
goto m2820;
case 5:
beta = 1;
goto m3150; 
m1185:
switch (typ) {
case 0:
betaon = 1;
break;
case 1:
if (betaon == 1)
eazone ("ON");
else eazone ("OFF");
break;
case 2:
betaon = 0;
break;
default:
profeh (149, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 6:
if (restleer == 1 || *pz == cmdsep)
goto m4270; 
chall = 0; 
chanz = 1; 
if (wakt -> casei == 0)
chcas = 0; 
else chcas = 1; 
chdis = 0; 
chhex = 0; 
chida = 0; 
chrig = 0; 
chvar = 0; 
chl2 = 0; 
keth = 0; 
i = getciv (1, &pz, &restleer);
switch (i) {
case 0:
m1190:
if (restleer == 1 || *pz == cmdsep)
goto m4270; 
ssp1 = spaa;
ssp2 = spae;
break;
case Fkeinesp:
case Fpvninum:
if (getciv1 == 1) {
ssp1 = wakt -> zona;
ssp2 = wakt -> zone;
break;
}
else goto m1190;
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fspalte0:
goto m4200; 
case Fanfgend:
goto m4150; 
case Fprofehl:
return 1; 
default:
profeh (50, i);
return 1; 
}
deli = *pz; 
i = getket (&pz, &restleer);
TA fprintf (lug, "CHA1 %d\n", i); TE
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (97, i);
return 1; 
}
chl1 = strlen (kette);
strcpy (suchk, kette);
if (wakt -> caseu == 1)
for (i = 0; i <= chl1 - 1; i ++)
*(suchk + i) = toupper (*(suchk + i));
if (restleer == 1)
goto m1230;
if (deli == '&')
goto m1210; 
else {
if (*pz != '&') {
m1200:
do pz --;
while (*pz != deli);
goto m1210; 
}
else {
pi = pz;
while (*pi) 
if (*pi == deli)
goto m1200;
else pi ++;
goto m1210; 
}
}
m1210:
i = getket (&pz, &restleer);
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (98, i);
return 1; 
}
chl2 = strlen (kette);
strcpy (aendk, kette);
if (wakt -> caseu == 1)
for (i = 0; i <= chl2 - 1; i ++)
*(aendk + i) = toupper (*(aendk + i));
if (restleer == 1)
goto m1230;
i = getzhl (&pz, &restleer);
switch (i) {
case 0:
if (zahl == 0)
goto m4190; 
chanz = zahl;
break;
case Ffehlbef:
goto m4250; 
case Fkeinesp:
break; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (99, i);
return 1; 
}
if (restleer == 1)
goto m1230;
m1220:
if (*pz == cmdsep)
goto m1230;
switch (*pz) {
case 'a':
case 'A':
chall = 1;
break;
case 'd':
case 'D':
chdis = 1;
break;
case 'h':
case 'H':
if (chida == 1) {
chcas = 0;
eazone (t187 [la]); 
}
keth = 3;
chhex = 1;
break;
case 'i':
case 'I':
if (keth > 0)
eazone (t187 [la]); 
else {
chcas = 1;
chida = 1;
}
break;
case 'r':
case 'R':
chrig = 1;
break;
case 'v':
case 'V':
chvar = 1;
break;
default:
goto m4250; 
}
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1220;
restleer = 1;
m1230:
if (chcas == 1)
for (i = 0; i < chl1; i ++)
work2 [i] = tolower (suchk [i]);
TA fprintf (lug, "HX4 %d %s\n", strlen (suchk), suchk); TE
TA fprintf (lug, "HX4 %d %s\n", strlen (aendk), aendk); TE
if (keth % 2 != 0)  {
strcpy (suchkh, suchk);
i = hexasc (suchk);
if (i != 0)
return 1; 
chl1 /= 2;
keth --;
}
if (keth == 2) {
i = hexasc (aendk);
if (i != 0)
return 1; 
chl2 /= 2;
}
TA fprintf (lug, "HX5 %d %s\n", strlen (suchk), suchk); TE
TA fprintf (lug, "HX5 %d %s\n", strlen (aendk), aendk); TE
if (scope == 0)
chdis = 1;
chmal = 0; 
lauf = wakt -> clp;
TA fprintf (lug, "HX6 %d %d %d %d %d %s %s\n",
chanz, chl1, chl2, ssp1, ssp2, suchk, aendk); TE
for (i = 1; i <= chanz; i ++) {
if (lauf == NULL) {
eazone (t070 [la]); 
goto m1320;
}
if (lauf == wakt -> anfang)
if (chanz == 1) {
strcpy (meldung, t195 [la]); 
goto m4240;
}
else goto m1310;
geaendert = 0;
if (ssp1 > lauf -> lben)
if (chl1 > 0)
goto m1300; 
pi = &(*lauf).datn [ssp1 - 1];
if (chl1 == 0) {
pj = pi;
goto m1270; 
}
j = lauf -> lben;
if (ssp2 > 0)
if (ssp2 < lauf -> lben)
j = ssp2;
chal = j - ssp1 - chl1 + 2;
m1240:
TA fprintf (lug, "HX7 %d %d\n", i, chal); TE
if (chal < 1)
goto m1300; 
if (chcas == 0) {
pj = memchr (pi, suchk [0], chal);
if (pj != NULL)
if (memcmp (pj, suchk, chl1) == 0)
goto m1270; 
else goto m1260; 
}
else {
pjl = memchr (pi, tolower (suchk [0]), chal);
pju = memchr (pi, toupper (suchk [0]), chal);
TA fprintf (lug, "LO4 %d %d\n", pjl, pju); TE
if (pjl != NULL)
if (pjl < pju) {
pj = pjl;
goto m1250; 
}
else
if (pju == NULL) {
pj = pjl;
goto m1250; 
}
else {
pj = pju;
goto m1250; 
}
if (pju != NULL) {
pj = pju;
goto m1250; 
}
}
goto m1300;
m1250:
for (j = 0; j < chl1; j ++)
work [j] = tolower (pj [j]);
if (memcmp (work2, work, chl1) == 0)
goto m1270; 
m1260:
j = pj - pi + 1;
pi += j;
chal -= j;
TA fprintf (lug, "HX9 %d %d %d\n", i, j, chal); TE
goto m1240; 
m1270:
geaendert = 1;
chmal ++;
TA fprintf (lug, "HX8 %d %d\n", i, chmal); TE
if (chl1 == chl2) {
memcpy (pj, aendk, chl1);
goto m1290;
}
if (chl1 > chl2) {
memcpy (pj, aendk, chl2);
memmove (pj + chl2, pj + chl1,
lauf -> lben - (pj - lauf -> datn) - chl1);
if (pj < &(*lauf).datn [lauf -> lnlz]) 
lauf -> lnlz -= chl1 - chl2;         
lauf -> lben -= chl1 - chl2;
goto m1290;
}
if (ssp1 > lauf -> lben)
delta = ssp1 - lauf -> lben - 1 + chl2;
else delta = chl2 - chl1;
TA fprintf (lug, "HX10 %d\n", delta); TE
if (lauf -> lmax - lauf -> lben >= delta) {
m1280:
TA fprintf (lug, "%d %d %d %d %d\n", chl1, chl2, pj,
lauf -> lben, pj - lauf -> datn); TE
j = lauf -> lben - (pj - lauf -> datn) - chl1;
if (j > 0)
memmove (pj + chl2, pj + chl1, j);
else if (j < 0)
memset (lauf -> datn + lauf -> lben, ' ',
pj - lauf -> datn - lauf -> lben);
memcpy (pj, aendk, chl2);
lauf -> lnlz += delta;
lauf -> lben += delta;
goto m1290;
}
j = pj - lauf -> datn;
k = pi - lauf -> datn;
vergro (delta);
pj = lauf -> datn + j;
pi = lauf -> datn + k;
goto m1280;
m1290:
TA fprintf (lug, "nach m198\n"); TE
if (chall == 1) {
chal -= pj - pi + chl2;
if (ssp2 == 0)
chal += chl2 - chl1;
pi = pj + chl2;
goto m1240;
}
m1300:
if (chdis == 1)
if (geaendert == 1)
zeisat (lauf);
m1310:
vori = lauf;
lauf = lauf -> vorw;
}
m1320:
if (chmal == 0) {
ketngf (1, chhex, suchk, suchkh);
return 1; 
}
wakt -> clp = vori;
if (quiet == 0) {
Sprintf (zeill, t026 [la], chmal); 
eazone (zeill);
}
dataend = 1;
wakt -> notfiled = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 7:
if (restleer == 1)  {
typ = 23;
goto m1350; 
}
if (*pz == cmdsep) {
typ = 23;
pz ++;
goto m1350; 
}
typ = 0;
i = 0;
m1330:
switch (*pz) {
case '?':
typ = 1;
break;
case 'u':
case 'U':
typ = 2;
break;
case 'M':
case 'L':
case 'm':
case 'l':
typ = 3;
break;
case 'i':
case 'I':
typ += 10;
break;
case 's':
case 'S':
typ += 20;
break;
default:
goto m4250; 
}
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1340;
restleer = 1;
goto m1350; 
m1340:
if (*pz == cmdsep)
goto m1350; 
if (typ == 1)
goto m4250; 
if (i == 0) {
i ++;
goto m1330;
}
if (*pz != cmdsep)
goto m4250; 
m1350:
if (typ >= 20) {
wakt -> casei = 0;
typ -= 20;
goto m1360;
}
if (typ >= 10) {
wakt -> casei = 1;
typ -= 10;
}
m1360:
switch (typ) {
case 0:
break;
case 1:
if (wakt -> caseu == 0)
eazone (t027 [la]);
else eazone (t028 [la]); 
if (wakt -> casei == 0)
eazone (t107 [la]); 
else eazone (t188 [la]); 
break;
case 2:
wakt -> caseu = 1;
*b_cas = 'U';
break;
case 3:
wakt -> caseu = 0;
*b_cas = ' ';
break;
default:
profeh (35, typ);
return 1;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 8:
m1370:
calx = 0;
manual = 0;
m1380:
#ifdef Ms
#endif
if (restleer == 1) 
if (manual == 0)
goto m4110; 
if (scope == 1) {
#ifndef Ms
(void) erase ();
(void) refresh ();
(void) endwin ();
#else
if (pz [0] == 'Q') {
if (pz [1] == 'j') {
pz [0] = ' ';
pz [1] = ' ';
}
else goto m1390;
}
else goto m1390;
i = system (pz);
sprintf (tekst, "i = %d", i);
eazone (tekst);
goto m1390;
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
i = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-2\n", fnrs);
(void) fflush (stdout);
#endif
scope = 0;
rescope = 1;
}
else rescope = 0; 
i = system (pz);
if (calx == 1)
goto m1390; 
if (rescope == 0) {
eazone (t166 [la]); 
goto m1390; 
}
eazone (t029 [la]);
for (i = 1; i != '\n';) {
#ifdef Mt
i = get2char (); 
#else
i = getchar ();
#endif
#ifdef Mp
protok ();                                               
#endif
}
rescope = 0;
scope = 1;
curses ();
#ifdef Mp
i = - LINES;                                               
protok ();                                                 
i = - COLS;                                                
protok ();                                                 
#endif
bilgro ();
wfaend = 1;
m1390:
if (manual == 1)
goto m2700; 
goto m4410; 
case 9:
calx = 0; 
goto m1380;
case 10:
cdelete = 0;
cmove = 0;
m1400:
if (restleer == 1)
goto m4110; 
cczz = 0;
if (*pz == '(') {
cczz = 1;
TA fprintf (lug, "CC17 in der Zeilenklammer\n"); TE
pz ++; 
i = getniv (2 , &pz, &restleer);
TA fprintf (lug, "CC23 %d %d %d\n", i, numi1, nump1); TE
TA fprintf (lug, "CC24 %d %d %d\n", i, numi2, nump2); TE
switch (i) {
case 0:
break;
case 1:
goto m4270;
case 2:
case Fparmfeh:
goto m4250;
case 3:
return 1;
case 4:
goto m4260;
case 5:
goto m4130;
case 6:
goto m4230;
case 7:
goto m4220;
case 8:
goto m4140;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
default:
profeh (65, i);
return 1; 
}
if (restleer == 1)
goto m4360; 
if (*pz != ')')
goto m4360; 
pz ++; 
ccanfzl = numi1;
ccanfzlp = nump1;
lauf = nump1;
TA fprintf (lug, "CC25 %s %s\n", lauf -> schl, numc2); TE
for (ccanzzl = 1; memcmp (lauf -> schl, numc2, 8) < 0;
ccanzzl ++)
lauf = lauf -> vorw;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1410;
restleer = 1;
goto m4110; 
} 
else {
ccanfzlp = wakt -> clp;
ccanfzl = atoi (ccanfzlp -> schl);
ccanzzl = 1;
} 
m1410:
TA fprintf (lug, "CC01 ccanfzl/p = %d %d\n", ccanfzl, ccanfzlp);TE
TA fprintf (lug, "CC02 ccanzzl = %d\n", ccanzzl); TE
if (*pz == cmdsep)
goto m4110; 
i = getciv (1, &pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinesp:
if (getciv1 == 1)
goto m4250; 
break;
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
case Fspalte0:
goto m4200; 
case Fanfgend:
goto m4150; 
case Fprofehl:
return 1; 
default:
profeh (60, i);
return 1; 
}
ccanfsp = spaa;
if (spae == 0) {
if (cdelete == 1)
goto m4110; 
ccanzsp = 1;
}
else ccanzsp = spae - spaa + 1;
TA fprintf (lug, "CC03 ccanfsp = %d\n", ccanfsp); TE
TA fprintf (lug, "CC04 ccanzsp = %d\n", ccanzsp); TE
if (cdelete == 1)
goto m1460;
if (restleer == 1)
goto m4110; 
if (*pz == cmdsep)
goto m4110; 
k = 0; 
cccolu = 0; 
ccline = 0; 
m1420:
i = strspn (pz, alpha); 
TA fprintf (lug, "CC05 %d %d\n", k, i); TE
if (i == 0) {
if (cccolu == 0)
goto m4110; 
goto m1450;
}
if (i > 8)
goto m4120; 
k ++;
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
TA fprintf (lug, "CC14 |%s|\n", pz); TE
pk = pz;
pz += i; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1430;
restleer = 1;
m1430:
TA fprintf (lug, "CC15 |%s|\n", pk); TE
if (memcmp (pk, "COLUMN", i) == 0) {
TA fprintf (lug, "CC06\n"); TE
cccolu = 1;
j = getvor (&pz, &restleer);
if (j == Fparmfeh)
goto m4110; 
TA fprintf (lug, "CC07 %d |%s|\n", j, pz); TE
j = getzhl (&pz, &restleer);
switch (j) {
case 0:
break;
case Ffehlbef:
goto m4250; 
case Fkeinesp:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (61, j);
return 1; 
}
switch (plusminus) {
case 0:
if (zahl == 0)
goto m4200; 
cczielsp = zahl;
break;
case 1:
cczielsp = ccanfsp + zahl;
break;
case - 1:
cczielsp = ccanfsp - zahl;
break;
}
TA fprintf (lug, "CC11 Ende COLUMN\n"); TE
goto m1440;
}
TA fprintf (lug, "CC16 |%s|\n", pk); TE
if (memcmp (pk, "LINE", i) == 0) {
TA fprintf (lug, "CC13\n"); TE
ccline = 1;
j = getvor (&pz, &restleer);
if (j == Fparmfeh)
goto m4110; 
TA fprintf (lug, "CC10\n"); TE
if (plusminus != 0) { 
j = getzhl (&pz, &restleer);
switch (j) {
case 0:
break;
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (62, j);
return 1; 
}
if (plusminus == 1) {
lauf = ccanfzlp;
for (i = 1; i <= zahl; i ++) {
lauf = lauf -> vorw;
if (lauf == NULL) {
eazone (t191 [la]); 
return 1; 
}
}
cczielzlp = lauf;
}
else {
lauf = ccanfzlp;
for (i = 1; i <= zahl; i ++) {
lauf = lauf -> rckw;
if (lauf == wakt -> anfang) {
eazone (t191 [la]); 
return 1; 
}
}
cczielzlp = lauf;
cczielzl = atoi (cczielzlp -> schl);
}
} 
else { 
getnum (&pz, &restleer);
TA fprintf (lug, "CC62 %d\n", prmt); TE
switch (prmt) {
case 0: 
goto m4110; 
case 1: 
case 2: 
case Ffehlbef: 
goto m4250;
case 3: 
TA fprintf (lug, "CC61 %d %d\n", numc [0], numt); TE
wlauf = wakt;
crenum (numt, numc);
TA fprintf (lug, "CC60 %d\n", prmt); TE
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]); 
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]); 
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (66, prmt);
return 1;
}
cczielzlp = nump;
cczielzl = atoi (nump -> schl);
break;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
default:
profeh (63, prmt);
return 1;
}
} 
TA fprintf (lug, "CC12 Ende LINE\n"); TE
if (cczielzlp == wakt -> anfang) {
strcpy (meldung, t195 [la]); 
goto m4240;
}
goto m1440;
}
goto m4250; 
m1440:
TA fprintf (lug, "CC09 k = %d\n", k); TE
if (k == 1)
goto m1420;
m1450:
if (ccline == 0) {
TA fprintf (lug, "CC08 ccanfzl/p = %d %d\n", ccanfzl, ccanfzlp);TE
cczielzlp = ccanfzlp;
cczielzl = ccanfzl;
}
m1460:
if (restleer == 1)
goto m1470;
if (*pz == cmdsep) {
pz ++;
goto m1470;
}
if (cczz == 1) 
goto m4250; 
j = getzhl (&pz, &restleer);
switch (j) {
case 0:
break;
case Ffehlbef:
goto m4250; 
case Fkeinesp:
if (cdelete == 0)
goto m4250; 
i = strspn (pz, alpha); 
if (i > 3)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "ALL", i) != 0)
goto m4250; 
pz += i;
ccanzzl = - 1;
ccanfzlp = wakt -> anfang -> vorw;
goto m1470;
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (64, j);
return 1; 
}
if (ccanfzlp == wakt -> anfang)
if (zahl <= wakt -> zeilenzahl) {
if (cmove == 1)
strcpy (meldung, t015 [la]); 
else if (cdelete == 1)
strcpy (meldung, t195 [la]); 
else strcpy (meldung, t194 [la]); 
goto m4240;
}
else ccanfzlp = wakt -> anfang -> vorw;
ccanzzl = zahl;
m1470:
TA fprintf(lug,"anfzeile=%d,Zielzeile=%d\n",ccanfzl,cczielzl);TE
TA fprintf(lug,"anfspalte=%d,Zielspalte=%d\n",ccanfsp,cczielsp);TE
TA fprintf(lug,"anzzeilen=%d,anzspalten=%d\n",ccanzzl,ccanzsp);TE
if (cdelete == 1)
goto m1490;
TA fprintf (lug, "PRUEF 1\n"); TE
if (ccanfsp + ccanzsp - 1 < cczielsp)
goto m1480;
TA fprintf (lug, "PRUEF 2\n"); TE
if (cczielsp <= ccanfsp)
goto m1480;
TA fprintf (lug, "PRUEF 3\n"); TE
lauf = ccanfzlp;
for (i = 1; i <= ccanzzl - 1; i ++)
lauf = lauf -> vorw;
if (strcmp (lauf -> schl, cczielzlp -> schl) < 0)
goto m1480;
TA fprintf (lug, "PRUEF 4\n"); TE
lauf = cczielzlp;
for (i = 1; i <= ccanzzl - 1; i ++)
lauf = lauf -> vorw;
if (strcmp (lauf -> schl, ccanfzlp -> schl) < 0)
goto m1480;
TA fprintf (lug, "PRUEFENDE\n"); TE
eazone (t192 [la]); 
return 1; 
m1480:
nump1 = ccanfzlp;
nump2 = cczielzlp;
TA fprintf (lug, "CC31 %d %d %d %d\n", nump1, nump2,
nump1 -> vorw, nump2 -> vorw); TE
if (nump1 == nump2)
selbezeile = 1;
else selbezeile = 0;
neuezeilen = 0;
jj = ccanfsp + ccanzsp - 1;
for (i = 1; i <= ccanzzl; i ++) {
if (nump1 == NULL) {
eazone (t070 [la]); 
break;
}
if (nump2 == NULL) {
TA fprintf (lug, "CC40 %d %d %d\n", neuezeilen,
wakt -> bottom, lalt); TE
if (neuezeilen == 0)
temp = lalt; 
neuezeilen ++;
j = cczielsp + ccanzsp - 1;
lauf = (struct l *) malloc (lsl + j);
lalt -> vorw = lauf;
lauf -> rckw = lalt;
lauf -> vorw = NULL;
wakt -> bottom = lauf;
lauf -> lmax = j;
lauf -> lben = j - ccanzsp;
lauf -> flag = ' ';
memset (&(lauf -> datn [0]), ' ', j - ccanzsp);
nump2 = lauf;
}
j = nump2 -> lben - cczielsp + 1;
TA fprintf (lug, "CC35 %d\n", j); TE
if (j > 0)
delta = nump2 -> lben + ccanzsp;
else delta = cczielsp + ccanzsp - 1;
delta -= nump2 -> lmax;
TA fprintf (lug, "CC38 delta = %d\n", delta); TE
if (cmove == 1) {
ii = jj - nump1 -> lben;
if (ii < 0)
ii = 0;
TA fprintf (lug, "CC88 ii = %d\n", ii); TE
}
if (delta > 0) {
lauf = nump2;
vergro (delta);
nump2 = lauf;
if (selbezeile == 1)
nump1 = nump2;
}
if (cczielsp - nump2 -> lben - 1 > 0)
memset (&(nump2 -> datn [nump2 -> lben]), ' ',
cczielsp - nump2 -> lben - 1);
if (j > 0) {
k = ccanzsp + cczielsp - nump2 -> lben - 1;
TA fprintf (lug, "CC80 %d\n", k); TE
if (k > 0)
memset (&(nump2 -> datn [nump2 -> lben]), ' ', k);
memmove (&(nump2 -> datn [cczielsp - 1 + ccanzsp]),
&(nump2 -> datn [cczielsp - 1]), j);
nump2 -> lben += ccanzsp;
if (selbezeile == 1 && i == 1 && ccanfsp > cczielsp)
ccanfsp += ccanzsp;
}
else nump2 -> lben = cczielsp + ccanzsp - 1;
TA fprintf (lug, "CC36 %d %d %d\n",
nump1 -> lben, nump2 -> lben, ccanfsp); TE
k = nump1 -> lben - ccanfsp + 1;
if (k < 0)
k = 0;
if (k > ccanzsp)
k = ccanzsp;
TA fprintf (lug, "CC50 k = %d\n", k); TE
if (k == ccanzsp)
memcpy (&(nump2 -> datn [cczielsp - 1]),
&(nump1 -> datn [ccanfsp - 1]), ccanzsp);
else {
TA fprintf (lug, "CC51 %d %d %d %d %d\n", nump1, nump2,
cczielsp-1, ccanfsp-1, ccanzsp-k); TE
memcpy (&(nump2 -> datn [cczielsp - 1]),
&(nump1 -> datn [ccanfsp - 1]), k);
TA fprintf (lug, "CC52\n"); TE
memset (&(nump2 -> datn [cczielsp - 1 + k]),
' ', ccanzsp - k);
TA fprintf (lug, "CC53\n"); TE
}
TA fprintf (lug, "CC37\n"); TE
if (cmove == 1) {
TA fprintf (lug, "CC55 %d\n", nump1 -> lben); TE
if (ccanfsp + ccanzsp <=  nump1 -> lben)
memmove (&(nump1 -> datn [ccanfsp - 1]),
&(nump1 -> datn [ccanfsp - 1 + ccanzsp]),
nump1 -> lben - ccanfsp - ccanzsp + 1);
nump1 -> lben -= ccanzsp - ii;
if (nump1 -> lnlz > nump1 -> lben)
nump1 -> lnlz = nump1 -> lben; 
}
nump2 -> lnlz = nump2 -> lben; 
lalt = nump2;
TA fprintf (lug, "CC33 %d %d %d %d\n", nump1, nump2,
nump1 -> vorw, nump2 -> vorw); TE
nump1 = nump1 -> vorw;
nump2 = nump2 -> vorw;
} 
if (neuezeilen > 0) {
wakt -> zeilenzahl += neuezeilen;
zzaend = 1;
numein (temp, NULL, neuezeilen);
}
wakt -> clp = lalt;
wakt -> notfiled = 1;
dataend = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 11:
cdelete = 1;
goto m1400;
m1490:
nump1 = ccanfzlp;
for (i = 1; (ccanzzl == - 1 ? i > 0 : i <= ccanzzl); i ++) {
lalt =  nump1;
j =  nump1 -> lben - ccanfsp + 1;
if (j <= 0)
goto m1510; 
k =  j - ccanzsp;
if (k <= 0) {
k = 0;
goto m1500;
}
TA fprintf (lug, "CC66 %d %d %d %d\n", j, ccanfsp, ccanzsp,
nump1 -> lben); TE
memmove (&(nump1 -> datn [ccanfsp - 1]),
&(nump1 -> datn [ccanfsp - 1 + ccanzsp]), k);
m1500:
nump1 -> lben = ccanfsp - 1 + k;
if (nump1 -> lnlz > nump1 -> lben)
nump1 -> lnlz = nump1 -> lben; 
m1510:
nump1 = nump1 -> vorw;
if (nump1 == NULL) {
eazone (t070 [la]); 
break;
}
} 
if (ccanzzl != - 1)
wakt -> clp = lalt;
wakt -> notfiled = 1;
dataend = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 12:
cmove = 1;
goto m1400;
case 13:
if (restleer == 1) {
typ = 0;
goto m1550;
}
i = strspn (pz, alphau); 
if (i == 0) {
if (*pz == ';') {
typ = 0;
goto m1520;
}
if (*pz == '?') {
typ = 1;
goto m1520;
}
typ = 2;
ch = *pz;
m1520:
pz ++; 
}
else {
if (i > 3)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (i == 1) 
if (*pz == 'O')
goto m4160; 
if (memcmp (pz, "ON", i) == 0) {
typ = 3;
goto m1530;
}
if (memcmp (pz, "OFF", i) == 0) {
typ = 4;
goto m1530;
}
goto m4250; 
m1530:
pz += i;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1540;
restleer = 1;
m1540:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m1550:
switch (typ) {
case 0:
cmdsep = ';';
cmdsepon = 1;
break;
case 1:
if (cmdsepon == 1)
Sprintf (zeill, "%c %s", cmdsep, "ON ");
else Sprintf (zeill, "%c %s", cmdsep, "OFF");
eazone (zeill);
break;
case 2:
cmdsep = ch;
cmdsepon = 1;
break;
case 3:
cmdsepon = 1;
break;
case 4:
cmdsepon = 0;
break;
default:
profeh (3, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 14:
typ = 0;
if (restleer == 1) {
nump1 = wakt -> clp;
goto m1600;
}
for (k = 1; k <= 2; k ++) {
getnum (&pz, &restleer);
TA fprintf (lug, "NNO %d\n", prmt); TE
switch (prmt) {
case 0: 
if (k == 1)  {
nump1 = wakt -> clp;
goto m1590;
}
else  goto m1570;
case 1: 
case Ffehlbef: 
goto m4250;
case 2: 
if (k == 1)
goto m4250; 
else goto m1560;
case 3: 
TA fprintf (lug, "NNN1 %d %d\n", numc [0], numt); TE
typ += k;
if (k == 1) {
numt1 = numt;
if (numt == 1)
memcpy (numc1, numc, 8);
else numc1 [0] = numc [0];
}
else {
numt2 = numt;
if (numt == 1)
memcpy (numc2, numc, 8);
else numc2 [0] = numc [0];
}
break;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
default:
profeh (8, prmt);
return 1;
}
if (restleer == 1)
goto m1570;
}
m1560:
getwfn (&pz, &restleer);
switch (prmt) {
case 0: 
goto m1570;
case 1: 
goto m4250;
case 2: 
typ += 1;
break;
case 3: 
return 1;
default:
profeh (9, prmt);
return 1;
}
wlauf = wmain;
while (wlauf != NULL) {
if (memcmp (wlauf -> wfname, ch8, 8) == 0)
goto m1580;
wlauf = wlauf -> vorw;
}
goto m4390; 
m1570:
wlauf = wakt;
m1580:
TA fprintf (lug, "TYP %d\n", typ); TE
TA fprintf (lug, "CCC %d %s\n", numt1, numc1); TE
TA fprintf (lug, "NMP %d\n", nump); TE
crenum (numt1, numc1);
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc1, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]); 
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]); 
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (14, prmt);
return 1;
}
TA fprintf (lug, "NMP %d\n", nump); TE
nump1 = nump;
if (numt1 != 1)
memcpy (numc1, numc, 8);
if (typ <= 2)
goto m1590;
TA fprintf (lug, "REV %d %s\n", numt2, numc2); TE
crenum (numt2, numc2);
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc2, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]); 
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]); 
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (15, prmt);
return 1;
}
nump2 = nump;
if (numt2 != 1)
memcpy (numc2, numc, 8);
TA fprintf (lug, "VER %s %s\n", numc1, numc2); TE
numi1 = atoi (numc1); 
numi2 = atoi (numc2); 
if (numi1 > numi2)
goto m4220;
if (wlauf != wakt)
goto m1590;
numi3 = atoi (wakt -> clp -> schl);
TA fprintf (lug, "NU3 %d %s\n", numi3, wakt -> clp -> schl); TE
TA fprintf (lug, "NU1 %d %d\n", numi1, numi2); TE
if (numi1 <= numi3)
if (numi3 < numi2) {
eazone (t034 [la]); 
return 1; 
}
m1590:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m1600:
wakt -> notfiled = 1;
dataend = 1;
switch (typ) {
case 0:
case 1:
case 2:
wakt -> zeilenzahl ++;
pvinn [1] = 1; 
zzaend = 1;
vori = wakt -> clp;
TA fprintf (lug, "MMMM %d %d\n", nump1 -> lnlz, nump1); TE
wakt -> clp = (struct l *) malloc (
lsl + nump1 -> lnlz);
memcpy (Cast wakt -> clp, Cast nump1,
lsl + nump1 -> lnlz);
wakt -> clp -> lben = wakt -> clp -> lnlz;
wakt -> clp -> lmax = wakt -> clp -> lnlz;
if (vori -> vorw != NULL) {
vori -> vorw -> rckw = wakt -> clp;
wakt -> clp -> vorw = vori -> vorw;
}
else {
wakt -> clp -> vorw = NULL;
wakt -> bottom = wakt -> clp;
}
vori -> vorw = wakt -> clp;
wakt -> clp -> rckw = vori;
numein (vori, wakt -> clp -> vorw, 1);
break;
case 3:
case 4:
vori = wakt -> clp;
nchs = vori -> vorw;
numpl = nump1;
i = 1;
for (; ;) {
i ++;
lauf = (struct l *) malloc (
lsl + numpl -> lnlz);
memcpy (Cast lauf, Cast numpl,
lsl + numpl -> lnlz);
lauf -> lben = numpl -> lnlz;
lauf -> lmax = numpl -> lnlz;
vori -> vorw = lauf;
lauf -> rckw = vori;
vori = lauf;
if (numpl == nump2)
break;
numpl = numpl -> vorw;
}
wakt -> zeilenzahl += i - 1;
pvinn [1] = i - 1; 
zzaend = 1;
if (nchs != NULL) {
nchs -> rckw = vori;
vori -> vorw = nchs;
}
else {
vori -> vorw = NULL;
wakt -> bottom = vori;
}
numein (wakt -> clp, nchs, i - 1);
wakt -> clp = vori;
break;
default:
profeh (18, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 15:
#ifndef Mnt
eazone (t182 [la]); 
goto m4410; 
#else
typ = 1;
if (restleer == 1)
goto m1630;
i = strspn (pz, alpha); 
if (i == 0) {
if (*pz == cmdsep)
goto m1630;
if (*pz != '?')
goto m4250; 
pz ++; 
}
else {
if (i > 3)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "DOS", i) == 0) {
typ = 2;
goto m1610;
}
if (memcmp (pz, "WIN", i) == 0) {
typ = 3;
goto m1610;
}
goto m4250; 
m1610:
pz += i; 
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1620;
restleer = 1;
goto m1630;
m1620:
if (*pz != cmdsep)
goto m4250; 
m1630:
switch (typ) {
case 1:
if (pccp == 1)
eazone ("DOS");
else eazone ("WIN");
break;
case 2:
pccp = 1;
dataend = 1;
break;
case 3:
pccp = 2;
dataend = 1;
break;
default:
profeh (49, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
#endif
case 16:
if (restleer == 1) {
typ = 3;
anzahl = 1;
goto m1640;
}
i = strspn (pz, num); 
if (i == 0) {
if (*pz == cmdsep) {
typ = 3;
anzahl = 1;
pz ++;
goto m1640;
}
switch (*pz) {
case '?':
typ = 1;
pz ++;
break;
case '#':
pz ++;
i = strspn (pz, num); 
if (i == 0) 
goto m4250; 
errno = 0;
compressanz = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (compressanz == 0)
goto m4120; 
typ = 2;
pz += i;
break;
case 'a':
case 'A':
i = strspn (pz, alpha); 
if (i > 3)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "ALL", i) != 0)
goto m4250; 
typ = 4;
pz += i;
break;
default:
goto m4250; 
}
}
else {
typ = 3;
errno = 0;
anzahl = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (anzahl == 0)
goto m4120; 
pz += i;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else
if (*pz != cmdsep)
goto m4250; 
else goto m1640;
restleer = 1;
m1640:
switch (typ) {
case 1:
Sprintf (tekst, "compress #%d", compressanz);
eazone (tekst);
break;
case 2:
break;
case 3:
lauf = wakt -> clp;
if (lauf == wakt -> anfang)
if (anzahl == 1) {
strcpy (meldung, t195 [la]); 
goto m4240;
}
else {
lauf = lauf -> vorw;
anzahl --;
}
goto m1650;
case 4:
lauf = wakt -> anfang -> vorw;
m1650:
anz1 = 0;
anz2 = 0;
anz3 = 0;
while (lauf != NULL) {
n = 1;
for (j = (lauf -> lnlz - 1) / 8 * 8; j >= 0; j -= 8) {
TA fprintf (lug, "BLTP %d\n", j); TE
pi = &(*lauf).datn [j] - 1;
TA fprintf (lug, "BLTQ %d\n", pi); TE
for (k = 1; k <= 8; k ++) {
TA fprintf (lug, "BLTR %d %d\n", pi, k); TE
if (*pi != ' ')
if (k <= compressanz)
goto m1660; 
else break; 
pi --;
}
if (n == 1) {
n = 0;
anz2 ++;
}
anz1 ++;
pi ++;
k --;
TA fprintf (lug, "BLTS %d %d\n", pi, k); TE
TA fprintf(lug,"BLTT %d %d\n",lauf -> lnlz - j, k - 1);TE
*pi = 0x09;
memmove (pi + 1, pi + k, lauf -> lnlz - j);
lauf -> lnlz -= k - 1;
lauf -> lben -= k - 1;
anz3 += k - 1;
dataend = 1;
wakt -> notfiled = 1;
wakt -> clp = lauf;
m1660:
continue;
}
if (typ == 3) {
anzahl --;
if (anzahl == 0)
goto m1670;
}
lauf = lauf -> vorw;
}
if (typ == 3)
eazone (t070 [la]); 
wakt -> clp = wakt -> bottom;
m1670:
if (anz1 > 0) {
if (anz2 == 1)
Sprintf (zeill, t035 [la], anz1, anz3);
else Sprintf (zeill, t036 [la], anz1, anz2, anz3);
eazone (zeill);
}
break;
default:
profeh (36, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 17:
typ = 1;
typ2 = 0;
if (restleer == 1)
goto m1680;
if (*pz == cmdsep)
goto m1680;
i = getzhl (&pz, &restleer);
switch (i) {
case 0:
typ2 = zahl;
if (restleer == 1)
goto m1680; 
if (*pz == cmdsep)
goto m1680; 
goto m4250; 
case Ffehlbef:
goto m4250; 
case Fkeinesp:
break; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (94, i);
return 1; 
}
i = getket (&pz, &restleer);
switch (i) {
case 0:
typ = 2;
strcpy (conket, kette);
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
goto m1680; 
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (95, i);
return 1; 
}
m1680:
TA fprintf (lug, "CON10 typ = %d typ2 = %d\n", typ, typ2);
if (typ == 2)
eazone (conket); TE
if (wakt -> clp == wakt -> anfang) {
strcpy (meldung, t142 [la]); 
goto m4240;
}
lauf = wakt -> clp;
temp = lauf -> vorw;
if (temp == NULL) {
eazone (t070 [la]); 
return 1; 
}
if (typ2 == 0) {
pi = &(*lauf).datn [lauf -> lnlz - 1];
for (i = lauf -> lnlz; i >= 1; i --)
if (*pi == ' ')
pi --;
else break;
typ2 = i + 1;
j = pi - lauf -> datn;
}
else j = typ2 - 2;
TA fprintf (lug, "CON12 %d %d\n", j, typ2); TE
if (typ == 2)
delta = strlen (conket);
else delta = 0;
pj = &(*temp).datn [temp -> lnlz - 1];
for (i = temp -> lnlz; i >= 1; i --)
if (*pj == ' ')
pj --;
else break;
typ2 --;
delta += typ2 + i - lauf -> lmax; 
TA fprintf (lug, "CON13 %d\n", delta); TE
TA fprintf (lug, "CON30 %d %d %d %d\n", lauf, lauf -> lnlz,
lauf -> lben, lauf -> lmax); TE
TA fprintf (lug, "CON31 %d |%s|\n", lauf -> datn, lauf -> datn); TE
if (delta > 0)
vergro (delta);
TA fprintf (lug, "CON32 %d %d %d %d\n", lauf, lauf -> lnlz,
lauf -> lben, lauf -> lmax); TE
TA fprintf (lug, "CON33 %d |%s|\n", lauf -> datn, lauf -> datn); TE
if (typ2 > lauf -> lben)
memset (&(*lauf).datn [lauf -> lben], ' ',
typ2 - lauf -> lben);
pi = lauf -> datn + typ2; 
lauf -> lben = typ2; 
if (typ == 2) {
memcpy (pi, conket, strlen (conket));
pi += strlen (conket);
lauf -> lben += strlen (conket);
}
memcpy (pi, temp -> datn, i);
lauf -> lben += i;
TA fprintf (lug, "CON36 %d %d %d %d\n", lauf, lauf -> lnlz,
lauf -> lben, lauf -> lmax); TE
TA fprintf (lug, "CON37 %d |%s|\n", lauf -> datn, lauf -> datn); TE
lauf -> lnlz = lauf -> lben;
wakt -> notfiled = 1;
dataend = 1;
wakt -> zeilenzahl --;
zzaend = 1;
temp -> rckw -> vorw = temp -> vorw;
if (temp -> vorw != NULL)
temp -> vorw -> rckw = temp -> rckw;
else wakt -> bottom = temp -> rckw;
if (wakt -> setp1 > 0)
if (temp == wakt -> setp) {
wakt -> setp = temp -> rckw;
wakt -> setp1 = 2;
}
free (temp);
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 18:
i = getniv (3 , &pz, &restleer); 
switch (i) {
case 0:
break;
case 1:
goto m4270;
case 2:
case Fparmfeh:
goto m4250;
case 3:
return 1;
case 4:
goto m4260;
case 5:
goto m4130;
case 6:
goto m4230;
case 7:
goto m4220;
case 8:
goto m4140;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
}
if (numi1 <= numi2)
typ = 1;
else typ = 2;
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
lauf = nump1;
if (typ == 1) {
for (i = 1; lauf != nump2; i ++)
lauf = lauf -> vorw;
}
else {
for (i = - 1; lauf != nump2; i --)
lauf = lauf -> rckw;
}
Sprintf (tekst, "%-d", i);
eazone (tekst);
pvinn [1] = abs (i); 
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 20:
i = panall (&pz, &restleer);
switch (i) {
case 1:
break;
case 2:
return 1; 
default:
profeh (143, i);
return 1; 
}
dataend = 1;
if (anzahl == - 1) {
lauf = wakt -> anfang;
m1690:
zeisat (lauf);
lauf = lauf -> vorw;
if (lauf != NULL)
goto m1690;
else goto m1700;
}
lauf = wakt -> clp;
for (i = 1; i <= anzahl; i ++) {
TA fprintf (lug, "333-4\n"); TE
zeisat (lauf);
TA fprintf (lug, "333-5\n"); TE
wakt -> clp = lauf;
if (lauf -> vorw != NULL) {
lauf = lauf -> vorw;
}
else {
if (i < anzahl)
eazone (t070 [la]); 
break;
}
}
m1700:
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 21:
i = panall (&pz, &restleer);
switch (i) {
case 1:
break;
case 2:
return 1; 
default:
profeh (142, i);
return 1; 
}
if (anzahl == - 1) {
wfaend = 1;
lauf = wakt -> anfang;
while (lauf != NULL) {
nchs = lauf -> vorw;
TA fprintf (lug, "DE08 %d\n", lauf); TE
free (lauf);
lauf = nchs;
}
skeyneu = wakt -> skey;
wfini1 (wakt -> wfname);
wfini2 ();
wfini3 ();
goto m1710;
}
if (wakt -> clp == wakt -> anfang) {
strcpy (meldung, t014 [la]); 
goto m4240;
}
lalt = wakt -> clp -> rckw;
lauf = wakt -> clp;
for (i = 1; i <= anzahl; i ++) {
if (lauf != NULL) {
if (wakt -> setp1 > 0)
if (lauf == wakt -> setp)
setp2 = 1;
temp = lauf;
lauf = lauf -> vorw;
TA fprintf (lug, "DE06 %d\n", temp); TE
free (temp);
}
else {
eazone (t070 [la]); 
break;
}
}
if (setp2 == 1) {
setp2 = 0;
wakt -> setp = lalt;
wakt -> setp1 = 2;
}
wakt -> zeilenzahl -= i - 1;
zzaend = 1;
lalt -> vorw = lauf;
if (lauf != NULL)
lauf -> rckw = lalt;
else wakt -> bottom = lalt;
wakt -> clp = lalt;
wakt -> notfiled = 1;
dataend = 1;
m1710:
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 22:
case 23: 
typ = 0;
for (k = 1; k <= 2; k ++) {
getnum (&pz, &restleer);
switch (prmt) {
case 0: 
if (k == 1) 
goto m4270; 
else  goto m1720;
case 1: 
case 2: 
case Ffehlbef: 
goto m4250;
case 3: 
typ += 1;
if (k == 1) {
numt1 = numt;
if (numt == 1)
memcpy (numc1, numc, 8);
else numc1 [0] = numc [0];
}
else {
numt2 = numt;
if (numt == 1)
memcpy (numc2, numc, 8);
else numc2 [0] = numc [0];
}
break;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
default:
profeh (12, prmt);
return 1;
}
if (restleer == 1)
break;
}
m1720:
wlauf = wakt;
crenum (numt1, numc1);
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc1, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]); 
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]); 
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (19, prmt);
return 1;
}
nump1 = nump;
if (numt1 != 1)
memcpy (numc1, numc, 8);
if (typ <= 1)
goto m1730;
crenum (numt2, numc2);
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc2, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]); 
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]); 
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (7, prmt);
return 1;
}
nump2 = nump;
if (numt2 != 1)
memcpy (numc2, numc, 8);
m1730:
if (nump1 == wakt -> anfang) {
strcpy (meldung, t014 [la]); 
goto m4240;
}
if (typ == 2) {
numi1 = atoi (numc1); 
numi2 = atoi (numc2); 
if (numi1 > numi2)
goto m4220;
}
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
wakt -> notfiled = 1;
dataend = 1;
switch (typ) {
case 1:
m1740:
wakt -> zeilenzahl --;
zzaend = 1;
nump1 -> rckw -> vorw = nump1 -> vorw;
if (nump1 -> vorw != NULL)
nump1 -> vorw -> rckw = nump1 -> rckw;
else wakt -> bottom = nump1 -> rckw;
wakt -> clp = nump1 -> rckw;
if (wakt -> setp1 > 0)
if (nump1 == wakt -> setp) {
wakt -> setp = nump1 -> rckw;
wakt -> setp1 = 2;
}
TA fprintf (lug, "DL01 %d\n", nump1); TE
free (nump1);
break;
case 2:
if (nump1 == nump2)
goto m1740;
vori = nump1 -> rckw;
nchs = nump2 -> vorw;
numpl = nump1;
ende = 0;
for (i = 1; ; i ++) {
lauf = numpl;
numpl = numpl -> vorw;
if (wakt -> setp1 > 0)
if (lauf == wakt -> setp)
setp2 = 1;
free (lauf);
if (ende == 1)
break;
if (numpl == nump2)
ende = 1;
}
if (setp2 == 1) {
setp2 = 0;
wakt -> setp = vori;
wakt -> setp1 = 2;
}
wakt -> zeilenzahl -= i;
zzaend = 1;
vori -> vorw = nchs;
if (nchs != NULL)
nchs -> rckw = vori;
else wakt -> bottom = vori;
wakt -> clp = vori;
break;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 24:
goto m2810;
case 25:
m1750:
if (restleer == 0)
goto m4250; 
m1760:
TA fprintf (lug, "END QUIT\n"); TE
j = 0; 
if (wmain -> vorw == NULL) {
if (wmain -> notfiled == 1) {
strcpy (fehler, t037 [la]);
j = 1;
}
}
else {
strcpy (fehler, t038 [la]); 
wlauf = wmain;
while (wlauf != NULL) {
if (wlauf -> notfiled == 1) {
j = 1;
if (strlen (fehler) > COLS - 9) {
eazone (fehler);
strcpy (fehler, t038 [la]); 
}
pz = strchr (wlauf -> wfname, ' ');
if (pz == NULL)
i = 9;
else i = pz - wlauf -> wfname + 1;
strncat (fehler, wlauf -> wfname, i);
if (i == 9)
strncat (fehler, " ", 1);
}
wlauf = wlauf -> vorw;
}
}
TA fprintf (lug, "END 2\n"); TE
if (j == 0)  {
if (quitsignalisiert == 1) {
TA fprintf (lug, "QU3\n"); TE
quitsignalisiert = 0;
TA3 fprintf (lug, "quitsignalisiert3 = 0\n"); TE
if (scope == 1)
#ifndef Ms
(void) refresh ();
#else
{
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
i = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-3\n", fnrs);
(void) fflush (stdout);
}
#endif
#ifndef Mnt
(void) sleep (2);
#endif
}
TA fprintf (lug, "END 8\n"); TE
return 5; 
}
TA fprintf (lug, "END 3\n"); TE
quitsignalisiert = 0; 
TA3 fprintf (lug, "quitsignalisiert4 = 0\n"); TE
eazone (fehler);
TA fprintf (lug, "END 4\n"); TE
i = bestae (t039 [la], t040 [la]);
if (i == 1)
goto m1760; 
TA fprintf (lug, "END 7\n"); TE
switch (i) {
case 'j':
case 'J':
case 'y':
case 'Y':
return 5; 
default:
if (scope == 0)
eazone ("exaEdit");
else {
memset (b_ebe, ' ', COLS);
memset (b_ebe + COLS, ' ', COLS);
memcpy (b_ebe + COLS, "exaEdit", 7);
ebe = 2;
}
goto m4410;
}
case 26:
if (restleer == 1)
goto m4250; 
i = getzhl (&pz, &restleer);
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeinesp:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (72, i);
return 1; 
}
TA fprintf (lug, "enter errpro\n"); TE
i = errpro (zahl);
TA fprintf (lug, "exit  errpro\n"); TE
switch (i) {
case 0:
eazone ("Zurueck aus errpro");
break;
case 1:
eazone ("Es gilt test noerror");
break;
case 2:
eazone ("Fehlernummer nicht definiert");
break;
default:
profeh (73, i);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 27:
if (restleer == 0)
goto m4250; 
wlauf = wmain;
while (wlauf != NULL) {
if (memcmp (wlauf -> wfname, "EXEC    ", 8) == 0)
goto m1770;
wlauf = wlauf -> vorw;
}
goto m4390; 
m1770:
exec = wlauf -> anfang -> vorw;
i = 1;
while (exec != NULL) {
if (exec -> lnlz > COLS) {
Sprintf (fehler, t189 [la], i, COLS);
eazone (fehler);
return 1; 
}
i ++;
exec = exec -> vorw;
}
exec2 = 1;
exec = wlauf -> anfang -> vorw;
while (exec != NULL) {
memcpy (pufexec, exec -> datn, exec -> lnlz);
memset (pufexec + exec -> lnlz, '\0', 1);
i = ausfue (pufexec);
if (i == 5)
return 5; 
exec = exec -> vorw;
}
exec2 = 0;
goto m4410; 
case 28:
i = panall (&pz, &restleer);
switch (i) {
case 1:
break;
case 2:
return 1; 
default:
profeh (143, i);
return 1; 
}
if (anzahl == 0)
goto m4120; 
if (anzahl != - 1) {
lauf = wakt -> clp;
if (lauf == wakt -> anfang)
if (anzahl == 1) {
strcpy (meldung, t195 [la]); 
goto m4240;
}
else {
lauf = lauf -> vorw;
anzahl --;
}
goto m1780;
}
else {
lauf = wakt -> anfang -> vorw;
m1780:
anz1 = 0;
anz2 = 0;
anz3 = 0;
while (lauf != NULL) {
pi = lauf -> datn;
n = 1;
for (i = 1; i <= lauf -> lnlz; i ++) {
if (*pi != '\t') {
pi ++;
continue;
}
if (n == 1) {
n = 0;
anz2 ++;
}
anz1 ++;
*pi = ' ';
if (tabtyp == Aformel)
j = tabsanf + ((i - 1) / tabsdif + 1) * tabsdif;
else j = 40; 
delta = j - i - 1;
TA fprintf (lug, "EXR %d %d\n", j, delta); TE
if (delta == 0)  {
pi ++;
dataend = 1;
wakt -> notfiled = 1;
continue;
}
m = pi - lauf -> datn; 
TA fprintf (lug, "EXA %d\n", i); TE
vergro (delta);
TA fprintf (lug, "EXB %d\n", i); TE
pi = lauf -> datn + m;
memmove (pi + j - i, pi + 1, lauf -> lnlz - i);
lauf -> lnlz += delta;
lauf -> lben += delta;
anz3 += delta;
for (k = 1; k <= delta; k ++) {
pi ++;
*pi = ' ';
}
pi ++;
i += delta;
dataend = 1;
wakt -> notfiled = 1;
if (anzahl != - 1)
wakt -> clp = lauf;
continue;
} 
if (anzahl != - 1) {
anzahl --;
if (anzahl == 0)
goto m1790;
}
lauf = lauf -> vorw;
} 
if (anz1 > 0)
if (anzahl != - 1) {
eazone (t070 [la]); 
wakt -> clp = wakt -> bottom;
dataend = 1;
}
} 
m1790:
if (anz1 > 0) {
if (anz2 == 1)
Sprintf (zeill, t041 [la], anz1, anz3);
else Sprintf (zeill, t042 [la], anz1, anz2, anz3);
eazone (zeill); 
}
else eazone (t176 [la]);
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 29:
filurl = 0;
if (restleer == 1)  {
m1800:
if (wakt -> dsnistda == 0)
goto m4110; 
strcpy (dsnamefile, wakt -> dsname);
goto m1820;
}
if (*pz == cmdsep)
goto m1800;
k = dsnerz (&pz, &restleer, dsnamefile);
switch (k) {
case 0:
break;
case 1:
return 1; 
case 2:
goto m4250; 
case 3:
break;
case 4:
filurl = 1;
if (strlen (httpkw) == 0) {
Sprintf (fehler, t201 [la], httpbi);
i = lieskw (fehler, fehler);
if (i == 1) {
return 1; 
}
}
break;
default:
profeh (125, k);
return 1; 
} 
multiple = 0; 
if (restleer == 0) {
if (*pz == cmdsep) {
pz ++;
goto m1820;
}
if (k == 3) 
goto m4250; 
i = strspn (pz, alpha); 
if (i == 0) 
goto m4250; 
if (i > 8)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "MULTIPLE", i) != 0)
goto m4250; 
pz += i; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1810;
restleer = 1;
multiple = 1;
goto m1820;
m1810:
j = getket (&pz, &restleer);
switch (j) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (90, j);
return 1; 
}
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
if (strlen (kette) < 4)
goto m4320; 
pi = strstr (kette, "DDD");
if (pi == NULL) {
eazone (t160 [la]); 
return 1; 
}
strcpy (wakt -> trenn, kette);
multiple = 2;
} 
m1820:
#ifdef Ms
i = fputs ("$4\n", pesa);
(void) fflush (pesa);
printf ("%s $4 geschrieben\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i); 
#endif
if (filurl == 1)
goto m1880;
dsnprfi = dsnprf (Afile, dsnamefile);
if (dsnprfi == 0) {
#ifdef Ms
ret1 = 1;
goto m1930;
#else
return 1; 
#endif
}
if (wakt -> mult > 0) {
if (dsnprfi < 3)
eazone (t156 [la]);
else eazone (t157 [la]);
}
if (exec2 == 1)
goto m1840;
switch (dsnprfi) {
case 1: 
i = bestae (t001 [la], t003 [la]);
break;
case 2: 
i = bestae (t002 [la], t004 [la]);
break;
case 3: 
i = bestae (t158 [la], t159 [la]);
break;
}
switch (i) {
case 'j':
case 'J':
case 'y':
case 'Y':
break;
default:
if (i != 1) {
if (i < 32)
i = '?';
if (i > 255)
i = '?';
Sprintf (fehler, "%c", i);
eazone (fehler);
}
eazone (t010 [la]); 
#ifdef Ms
ret1 = 1;
goto m1930;
#else
(void) beep ();
return 1; 
#endif
}
m1840:
if (dsnprfi == 3) {
switch (multiple) {
case 1:
dollar = 1;
break;
case 2:
dollar = 0;
break;
case 0:
if (wakt -> mult == 1)
dollar = 1;
else dollar = 0;
break;
}
if (dollar == 0) {
pi = strstr (wakt -> trenn, "DDD");
if (pi == NULL) {
eazone (t160 [la]); 
#ifdef Ms
ret1 = 1;
goto m1930;
#else
return 1; 
#endif
}
lvor = pi - wakt -> trenn;
lnch = strlen (wakt -> trenn) - lvor - 3;
pi += 3;
}
TA fprintf (lug, "MU02 %d %d %d %s\n", lvor, lnch,
strlen (wakt -> trenn), wakt -> trenn); TE
verzoffset = strlen (dsnamefile) + 1;
memset (dsnamefile + strlen (dsnamefile), '/', 1);
trennsatzda = 0;
for (lauf = wakt -> anfang -> vorw; lauf; lauf = lauf -> vorw) {
if (dollar == 1) {
pi = lauf -> datn;
i = strspn (pi, "$");
if (i < 3)
goto m1850; 
pi += 3;
pj = strstr (pi, "$$$");
if (pj == NULL)
goto m1850; 
if (pj - lauf -> datn + 3 > lauf -> lben)
goto m1850; 
j = pj - pi;
if (j > 256) {
eazone (t162 [la]); 
#ifdef Ms
ret1 = 1;
goto m1930;
#else
return 1; 
#endif
}
memcpy (dsnamefile + verzoffset, pi, j);
memset (dsnamefile + verzoffset + j, '\0', 1);
} 
else {
if (memcmp (lauf -> datn, wakt -> trenn, lvor) != 0)
goto m1850; 
if (lnch > 0) {
pi =
strstr (lauf -> datn + lvor, wakt -> trenn + lvor + 3);
if (pi == NULL)
goto m1850; 
if (pi - lauf -> datn + lnch > lauf -> lben)
goto m1850; 
}
else {
pj = lauf -> datn + lauf -> lnlz - 1;
while (*pj == ' ') {
pj --;
lauf -> lnlz --;
}
pi = lauf -> datn + lauf -> lnlz;
}
j = pi - lauf -> datn - lvor;
memcpy (dsnamefile + verzoffset, lauf -> datn + lvor, j);
memset (dsnamefile + verzoffset + j, '\0', 1);
} 
TA fprintf (lug, "MU01 %s\n", dsnamefile); TE
if (trennsatzda == 0)
trennsatzda = 1;
else (void) fclose (aus);
if (wakt -> width > 0)
aus = fopen (dsnamefile, "wb");
else aus = fopen (dsnamefile, "w");
if (aus == NULL) {
eazone (t006 [la]);
#ifdef Ms
ret1 = 1;
goto m354;
#else
return 1; 
#endif
}
continue;
m1850:
if (trennsatzda == 0) {
eazone (t161 [la]); 
#ifdef Ms
ret1 = 1;
goto m1930;
#else
return 1; 
#endif
}
j = 0;
i = lauf -> lnlz;
m1860:
pi = puffer;
if (i > 100) {
i = 100;
nichtletztes = 1;
}
else nichtletztes = 0;
memcpy (puffer, &(lauf -> datn [j]), i);
lpuffer = i;
if (wakt -> width == 0)
if (nichtletztes == 0) {
puffer [i] = '\n';
lpuffer ++;
}
puffer [lpuffer] = '\0';
m1870:
k = fputs (pi, aus);
if (Fputs < lpuffer) {
(void) fputc ('\0', aus);
lpuffer -= (Fputs + 1);
pi += Fputs + 1;
goto m1870;
}
j += i;
if (j < lauf -> lnlz) {
i = lauf -> lnlz - j;
goto m1860;
}
} 
(void) fclose (aus); 
goto m1920;
} 
if (wakt -> width > 0)
aus = fopen (dsnamefile, "wb");
else aus = fopen (dsnamefile, "w");
if (aus == NULL) {
eazone (t006 [la]); 
#ifdef Ms
ret1 = 1;
goto m1930;
#else
return 1; 
#endif
}
m1880:
if (filurl == 1) {
i = urloef (Afile);
TA fprintf (lug, "urloef = %d\n", i); TE
switch (i) {
case - 1:
return 1; 
case - 2:
i = urlsch (Afile);
return 1; 
}
igel = 0;
}
for (lauf = wakt -> anfang -> vorw; lauf; lauf = lauf -> vorw) {
j = 0;
i = lauf -> lnlz;
m1890:
pi = puffer;
if (i > 100) {
i = 100;
nichtletztes = 1;
}
else nichtletztes = 0;
memcpy (puffer, &(lauf -> datn [j]), i);
lpuffer = i;
if (wakt -> width == 0)
if (nichtletztes == 0) {
puffer [i] = '\n';
lpuffer ++;
}
puffer [lpuffer] = '\0';
if (filurl == 0) {
m1900:
k = fputs (pi, aus);
if (k == EOF) {
Sprintf (fehler, "EOF errno = %d", errno);
eazone (fehler);
goto m4410;
}
if (Fputs < lpuffer) {
(void) fputc ('\0', aus);
lpuffer -= (Fputs + 1);
pi += Fputs + 1;
goto m1900;
}
}
else {
i = write (ftpnsock, puffer, lpuffer);
TA fprintf (lug, "III %d\n", i); TE
}
j += i;
if (j < lauf -> lnlz) {
i = lauf -> lnlz - j;
goto m1890;
}
}
if (filurl == 0)
(void) fclose (aus);
else {
(void) close (ftpnsock);
i = urlsch (Afile);
}
m1920:
eazone (t011 [la]);  
TA fprintf (lug, "DA GE\n"); TE
wakt -> notfiled = 0;
#ifdef Ms
m1930:
i = fputs ("$5\n", pesa);
(void) fflush (pesa);
printf ("%s $5 geschrieben\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i); 
if (ret1 == 1) {
ret1 = 0;
return 1;
}
#endif
goto m4410;
case 30:
if (restleer == 1) {
typ = 1;
goto m1940;
}
i = getket (&pz, &restleer);
switch (i) {
case 0:
typ = 2;
strcpy (conket, kette); 
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
goto m1940; 
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (148, i);
return 1; 
}
m1940:
geaendert = 0;
lauf = wakt -> clp;
for (i = 1; ; i ++) {
if (lauf == wakt -> anfang)
lauf = lauf -> vorw;
if (lauf == NULL) {
eazone (t070 [la]); 
goto m1980;
}
m1945:
TA fprintf (lug, "FJ1 %d %d %d\n", lauf -> lnlz, lauf -> lben,
lauf -> lmax); TE
if (lauf -> datn [lauf -> lben - 1] == ' ')
if (lauf -> lben > 0) {
lauf -> lben --;
lauf -> lnlz = lauf -> lben;
goto m1945;
}
if (typ == 1)  {
if (lauf -> lben == 0) 
goto m1980;
}
else  {
if (lauf -> lben >= strlen (conket))
if (memcmp (lauf -> datn, conket, strlen (conket)) == 0)
if (i > 1) 
goto m1980;
}
m1950:
j = wakt -> lwwidth - lauf -> lnlz;
TA fprintf (lug, "FI8 %d\n", j); TE
if (j == 0) 
goto m1970; 
temp = lauf -> vorw;
if (temp == NULL) {
eazone (t070 [la]); 
goto m1980;
}
TA fprintf (lug, "FJ2 %d %d %d\n", temp -> lnlz, temp -> lben,
temp -> lmax); TE
if (typ == 1)  {
if (temp -> lben == 0) 
goto m1980;
}
else  {
if (temp -> lben >= strlen (conket))
if (memcmp (temp -> datn, conket, strlen (conket)) == 0)
goto m1980;
}
TA fprintf (lug, "FI7 %d %d\n", temp -> lnlz, j - 1); TE
if (temp -> lnlz <= j - 1)
j = temp -> lnlz + 1;
else {
pi = &(*temp).datn [j - 1];
m1960:
if (*pi != ' ') {
pi --;
j --;
if (j > 1)
goto m1960;
else goto m1970; 
}
}
TA fprintf (lug, "FI1 %d\n", j); TE
TA fprintf (lug, "FI2 |%s|\n", lauf -> datn); TE
k = lauf -> lmax - lauf -> lnlz;
TA fprintf (lug, "FI6 %d %d\n", wakt -> lwwidth, k); TE
if (k < j)
vergro (j - k);
TA fprintf (lug, "FJ3 %d %d %d\n", lauf -> lnlz, lauf -> lben,
lauf -> lmax); TE
pj = &(*lauf).datn [lauf -> lnlz];
*pj = ' ';
memcpy (pj + 1, temp -> datn, j - 1);
lauf -> lnlz += j;
lauf -> lben = lauf -> lnlz;
TA fprintf (lug, "FJ4 %d %d %d\n", lauf -> lnlz, lauf -> lben,
lauf -> lmax); TE
geaendert = 1;
if (j >= temp -> lnlz) {
lauf -> vorw = temp -> vorw;
if (temp -> vorw != NULL)
temp -> vorw -> rckw = lauf;
else wakt -> bottom = lauf;
if (temp == wakt -> setp)
wakt -> setp = lauf;
free (temp);
wakt -> zeilenzahl -= 1;
zzaend = 1;
wakt -> clp = lauf;
goto m1950; 
}
else {
TA fprintf (lug, "FI3 %d %d\n", temp -> lnlz, j); TE
memmove (&(temp -> datn [0]), &(temp -> datn [j]),
temp -> lnlz - j);
temp -> lnlz -= j;
temp -> lben -= j;
wakt -> clp = temp;
TA fprintf (lug, "FJ5 %d %d %d\n", temp -> lnlz, temp -> lben,
temp -> lmax); TE
}
wakt -> notfiled = 1;
dataend = 1;
goto m1970; 
m1970:
lauf = lauf -> vorw;
}
m1980:
if (geaendert == 1) {
wakt -> notfiled = 1;
dataend = 1;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 31:
help [0] = '#';
pi = help;
pi ++;
memset (pi, ' ', 8);
hepref = 0;
if (restleer == 1) {
helae = 1; 
goto m2000;
}
i = getnam (&pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinbuc:
helae = 1;
if (*pz == cmdsep)
goto m2000;
switch (*pz) {
case '+':
break;
case '-':
break;
case '_':
break;
case '&':
break;
case '"':
hepref = 1;
break;
default:
goto m4120; 
}
*pi = *pz;
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m1990;
restleer = 1;
goto m1990;
case Fzugross:
goto m4120; 
default:
profeh (87, i);
return 1; 
}
memcpy (pi, name, lname);
helae = lname;
m1990:
if (restleer == 1)
goto m2000;
if (*pz == cmdsep)
goto m2000;
i = getnam (&pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinbuc:
goto m4250; 
case Fzugross:
goto m4120; 
default:
profeh (88, i);
return 1; 
}
if (memcmp (name, "PREFIX", lname) == 0) {
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
hepref = 1;
}
else goto m4120; 
m2000:
if (hepref == 1)
help [0] = '§';
if (la == 2)
j = hlpaue (help, helae + 1);
else j = hlpaus (help, helae + 1);
if (j == 1)
goto m4120; 
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 32:
if (restleer != 1)
if (*pz != cmdsep)
goto m4250; 
if (hexa == 0)
hexa = 1;
else hexa = 0;
dataend = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 33:
if (restleer == 1)
goto m2010; 
if (*pz == cmdsep)
goto m4250; 
i = getket (&pz, &restleer);
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (91, i);
return 1; 
}
lauf = wakt -> clp;
nchs = lauf -> vorw;
wakt -> clp = (struct l *) malloc (lsl + strlen (kette));
lauf -> vorw = wakt -> clp;
if (nchs != NULL)
nchs -> rckw = wakt -> clp;
else wakt -> bottom = wakt -> clp;
wakt -> clp -> vorw = nchs;
wakt -> clp -> rckw = lauf;
memcpy (wakt -> clp -> datn, kette, strlen (kette));
wakt -> clp -> lmax = strlen (kette);
wakt -> clp -> lben = strlen (kette);
wakt -> clp -> lnlz = strlen (kette);
wakt -> clp -> flag = ' ';
numein (lauf, nchs, 1);
zzaend = 1;
wakt -> zeilenzahl += 1;
dataend = 1;
wakt -> notfiled = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
m2010:
inputm = 1;
TA3 fprintf (lug, "Eingabemodus Anf\n"); TE
inlzl1 = 1;
inputi = 0;
lalt = wakt -> clp;
if (indent == 1) {
indmax = wakt -> lwwidth + wakt -> skey;
if (indmax >= COLS)
indmax = COLS - 1;
if (indmax >= inlakt) {
TA fprintf (lug, "IND5 %d %d\n", indmax, inlakt); TE
indmax = inlakt - 1;
TA fprintf (lug, "IND6 %d %d\n", indmax, inlakt); TE
}
if (indbet == - 1) {
indakt = 0;
temp = lalt;
if (temp == wakt -> anfang)
if (temp != wakt -> bottom)
temp = temp -> vorw;
else goto m2020;
pi = temp -> datn;
while (*pi == ' ') {
indakt ++;
if (indakt > indmax)
break;
pi ++;
}
}
if (indakt > indmax) {
TA fprintf (lug, "IZG2 %d %d\n", indakt, indmax); TE
indakt = indmax;
TA fprintf (lug, "IND7 %d %d\n", indakt, indmax); TE
eazone (t210 [la]); 
}
}
m2020:
numi1 = atoi (lalt -> schl);
nchs = lalt -> vorw; 
if (nchs != NULL)
numi2 = atoi (nchs -> schl);
else numi2 = 0;
if (scope == 1) {
b_lin = b_lia - 1;
memcpy (b_lin, lineal, COLS);
*b_inp = (wakt -> inlsft == 0) ? 'I' : 'i';
}
eazone (t043 [la]); 
if (wakt -> zeilenzahl == 0)
if (wakt -> mode == 5)
if (wakt -> modeon == 1) {
modesp = 20;
eazone ("<?xml version=\"1.0\"?>");
einfg = 1;
(void) move (zl, 13);
*b_ins = '^';
dzaen [modezl] = 1;
}
return 1; 
case 34:
if (restleer == 1 || *pz == cmdsep) {
typ = 3;
goto m2050;
}
TA fprintf (lug, "IND1 %d\n", *pz); TE
if (*pz <= 57)  {
i = getzhl (&pz, &restleer);
TA fprintf (lug, "IND2 %d\n", i); TE
switch (i) {
case 0:
typ = 1;
goto m2040; 
case Ffehlbef:
goto m4250; 
case Fkeinesp:
break;
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (112, i);
return 1; 
}
}
if (*pz >= 65)  {
i = getnam (&pz, &restleer);
switch (i) {
case 0:
if (memcmp (name, "AUTO", lname) == 0) {
typ = 2;
goto m2040; 
}
if (lname == 1)
goto m4160; 
if (memcmp (name, "ON", lname) == 0) {
typ = 3;
goto m2040; 
}
if (memcmp (name, "OFF", lname) == 0) {
typ = 4;
goto m2040; 
}
goto m4120; 
case Fkeinbuc:
break;
case Fzugross:
goto m4120; 
default:
profeh (113, i);
return 1; 
}
}
i = getzei (&pz, &restleer, '?');
switch (i) {
case 0:
typ = 0;
goto m2040; 
case Fkeinbuc:
goto m4250; 
default:
profeh (114, i);
return 1; 
}
m2040:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m2050:
switch (typ) {
case 0: 
if (indbet == - 1)
strcpy (tekst, "AUTO");
else Sprintf (tekst, "%d", indbet);
if (indent == 1)
strcat (tekst, " ON");
else strcat (tekst, " OFF");
eazone (tekst);
break;
case 1: 
if (zahl == 0) {
indbet = - 1;
indent = 0;
}
else {
indbet = zahl;
indent = 1;
indakt = indbet;
}
break;
case 2: 
indbet = - 1;
indent = 1;
break;
case 3: 
indent = 1;
break;
case 4: 
indent = 0;
break;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 35:
if (restleer == 1 || *pz == cmdsep) {
typ = 3;
goto m2060;
}
TA fprintf (lug, "INL1 %d\n", *pz); TE
if (*pz <= 57)  {
i = getzhl (&pz, &restleer);
TA fprintf (lug, "INL2 %d\n", i); TE
switch (i) {
case 0:
typ = 1;
goto m2045; 
case Ffehlbef:
goto m4250; 
case Fkeinesp:
break;
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (112, i);
return 1; 
}
}
if (*pz >= 65)  {
i = getnam (&pz, &restleer);
switch (i) {
case 0:
if (memcmp (name, "AUTO", lname) == 0) {
typ = 2;
goto m2045; 
}
if (memcmp (name, "SOFT", lname) == 0) {
typ = 3;
goto m2045; 
}
if (memcmp (name, "HARD", lname) == 0) {
typ = 4;
goto m2045; 
}
goto m4120; 
case Fkeinbuc:
break;
case Fzugross:
goto m4120; 
default:
profeh (113, i);
return 1; 
}
}
i = getzei (&pz, &restleer, '?');
switch (i) {
case 0:
typ = 0;
goto m2045; 
case Fkeinbuc:
goto m4250; 
default:
profeh (114, i);
return 1; 
}
m2045:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m2060:
switch (typ) {
case 0: 
if (wakt -> inlcol == - 1)
Sprintf (tekst, "AUTO(%d)",
(wakt -> lwwidth < COLS) ? wakt -> lwwidth : COLS);
else Sprintf (tekst, "%d",
(wakt -> inlcol < COLS) ? wakt -> inlcol : COLS);
if (wakt -> inlsft == 1)
strcat (tekst, " SOFT");
else strcat (tekst, " HARD");
eazone (tekst);
break;
case 1: 
if (zahl == 0)
wakt -> inlcol = - 1; 
else wakt -> inlcol = zahl;
break;
case 2: 
wakt -> inlcol = - 1;
break;
case 3: 
wakt -> inlsft = 1;
inltat = 1;
break;
case 4: 
wakt -> inlsft = 0;
inltat = 0;
break;
}
if (wakt -> inlcol == - 1)
inlakt = wakt -> lwwidth;
else inlakt = wakt -> inlcol;
TA fprintf (lug, "IT4 inltat = %d\n", inltat); TE
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 36:
insmode = 1;
goto m3150; 
m2070:
switch (typ) {
case 0:
insdauer = 1;
einfg = 1;
*b_ins = '^';
#ifndef Ms
(void) addstr ("^");
#endif
break;
case 1:
if (insdauer == 1)
eazone ("ON");
else eazone ("OFF");
break;
case 2:
insdauer = 0;
einfg = 0;
*b_ins = ' ';
#ifndef Ms
(void) addstr (" ");
#endif
break;
default:
profeh (147, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 38:
typ = 0;
if (restleer == 1)
goto m2110;
i = strspn (pz, alpha); 
if (i == 0) {
if (*pz == cmdsep)
goto m2110;
if (*pz == '?') {
typ = 1;
goto m2080;
}
goto m4250; 
m2080:
pz ++; 
}
else {
if (i > 7)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "EXAEDIT", i) == 0)
goto m2090;
if (memcmp (pz, "ALL", i) == 0) {
typ = 2;
goto m2090;
}
if (memcmp (pz, "TEST", i) == 0) {
typ = 3;
goto m2090;
}
goto m4250; 
m2090:
pz += i; 
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m2100;
restleer = 1;
goto m2110;
m2100:
if (*pz != cmdsep)
goto m4250; 
if (typ == 3)
goto m4250; 
m2110:
switch (typ) {
case 0:
keyboardall = 0;
break;
case 1:
if (keyboardall == 1)
eazone ("ALL");
else eazone ("EXAEDIT");
break;
case 2:
keyboardall = 1;
break;
case 3:
i = bestae (t044 [la], t045 [la]);
switch (i) {
case 1:
goto m1760; 
case 9:
strcpy (ch8, "Tab");
goto m2150;
case 10:
strcpy (ch8, "Enter");
goto m2150;
case 27:
for (j = 1; j <= 8; j ++) {
if (scope == 0)
#ifdef Mt
i = get2char ();  
#else
i = getchar ();
#endif
else
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$3\n", pesa);
(void) fflush (pesa);
printf ("%s $3 geschrieben-11\n", fnrs);
(void) fflush (stdout);
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-12\n", fnrs);
(void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                      
#endif
if (i == 10)
goto m2120;
ialt ++;
isp [ialt] = i;
}
ialt = 0;
eazone (t046 [la]); 
goto m4410; 
m2120:
if (j == 1) {
ch8 [0] = '\0';
strcpy (ch16, t047 [la]); 
goto m2140;
}
strcpy (ch16, "?");
switch (isp [1]) {
case '[':
if (j == 2)
goto m2130;
switch (isp [2]) {
case 'A':
if (j == 3)
strcpy (ch16, t048 [la]);
goto m2130;
case 'B':
if (j == 3)
strcpy (ch16, t049 [la]);
goto m2130;
case 'C':
if (j == 3)
strcpy (ch16, t050 [la]); 
goto m2130;
case 'D':
if (j == 3)
strcpy (ch16, t051 [la]); 
goto m2130;
case '1':
if (j != 5)
goto m2130;
if (isp [4] != '~')
goto m2130;
switch (isp [3]) {
case 1:
strcpy (ch16, "F1");
goto m2130;
case 2:
strcpy (ch16, "F2");
goto m2130;
case 3:
strcpy (ch16, "F3");
goto m2130;
case 4:
strcpy (ch16, "F4");
goto m2130;
case 5:
strcpy (ch16, "F5");
goto m2130;
case 7:
strcpy (ch16, "F6");
goto m2130;
case 8:
strcpy (ch16, "F7");
goto m2130;
case 9:
strcpy (ch16, "F8");
goto m2130;
default:
goto m2130;
}
case '2':
if (j != 5)
goto m2130;
if (isp [4] != '~')
goto m2130;
switch (isp [3]) {
case 0:
strcpy (ch16, "F9");
goto m2130;
case 1:
strcpy (ch16, "F10");
goto m2130;
case 3:
strcpy (ch16, "F11");
goto m2130;
case 4:
strcpy (ch16, "F12");
goto m2130;
default:
goto m2130;
}
default:
goto m2130;
}
case 'O':
if (j != 3)
goto m2130;
switch (isp [2]) {
case 'l':
strcpy (ch16, "F11");
goto m2130;
case 'M':
strcpy (ch16, "F12");
goto m2130;
case 'p':
strcpy (ch16, "F10");
goto m2130;
case 'q':
strcpy (ch16, "F7");
goto m2130;
case 'r':
strcpy (ch16, "F8");
goto m2130;
case 's':
strcpy (ch16, "F9");
goto m2130;
case 't':
strcpy (ch16, "F4");
goto m2130;
case 'u':
strcpy (ch16, "F5");
goto m2130;
case 'v':
strcpy (ch16, "F6");
goto m2130;
case 'w':
strcpy (ch16, "F1");
goto m2130;
case 'x':
strcpy (ch16, "F2");
goto m2130;
case 'y':
strcpy (ch16, "F3");
goto m2130;
default:
goto m2130;
}
default:
goto m2130;
}
m2130:
pk = ch8;
for (i = 1; i < j; i ++) {
if (isp [i] >= 127) {
sprintf (pk, "\\%o", isp [i]);
pk += 4;
}
else {
sprintf (pk, "%c", isp [i]);
pk ++;
}
}
m2140:
Sprintf (fehler, t052 [la], ch8, ch16); 
ialt = 0;
goto m2170;
case 127:
strcpy (ch8, t053 [la]); 
m2150:
Sprintf (fehler, t054 [la], i, ch8); 
goto m2170;
case KEY_DOWN:
strcpy (ch16, t049 [la]); 
strcpy (ch9, "DOWN");
goto m2160;
case KEY_UP:
strcpy (ch16, t048 [la]); 
strcpy (ch9, "UP");
goto m2160;
case KEY_LEFT:
strcpy (ch16, t051 [la]); 
strcpy (ch9, "LEFT");
goto m2160;
case KEY_RIGHT:
strcpy (ch16, t050 [la]); 
strcpy (ch9, "RIGHT");
goto m2160;
case KEY_HOME:
strcpy (ch16, "Pos 1");
strcpy (ch9, "HOME");
goto m2160;
case KEY_BACKSPACE:
strcpy (ch16, t223 [la]); 
strcpy (ch9, "BACKSPACE");
goto m2160;
case KEY_DC:
strcpy (ch16, t053 [la]); 
strcpy (ch9, "DC");
goto m2160;
case KEY_IC:
strcpy (ch16, t055 [la]); 
strcpy (ch9, "IC");
goto m2160;
case KEY_NPAGE:
strcpy (ch16, t056 [la]); 
strcpy (ch9, "NPAGE");
goto m2160;
case KEY_PPAGE:
strcpy (ch16, t057 [la]); 
strcpy (ch9, "PPAGE");
goto m2160;
#ifndef Mhpux
case KEY_END:
strcpy (ch16, t058 [la]); 
strcpy (ch9, "END");
#endif
m2160:
Sprintf (fehler, t059 [la], ch9, ch16); 
goto m2170;
}
if (i <= 31) {
Sprintf (fehler, t060 [la], i); 
goto m2170;
}
if (i <= 255) {
Sprintf (fehler, t061 [la], i, i); 
goto m2170;
}
if (i > KEY_F0 && i < KEY_F0 + 63) {
Sprintf (fehler, t062 [la], i - KEY_F0, i - KEY_F0); 
goto m2170;
}
Sprintf (fehler, t063 [la], i);
m2170:
eazone (fehler);
goto m4410; 
default:
profeh (10, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 39:
m2180:
if (restleer == 1) 
goto m2210;
i = getciv (1, &pz, &restleer);
switch (i) {
case 0:
m2190:
loca = spaa;
loce = spae;
break;
case Fkeinesp:
case Fpvninum:
if (getciv1 == 1) {
loca = wakt -> zona;
loce = wakt -> zone;
break;
}
else goto m2190;
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fspalte0:
goto m4200; 
case Fanfgend:
goto m4150; 
case Fprofehl:
return 1; 
default:
profeh (75, i);
return 1; 
}
if (restleer == 1) 
goto m2210;
if (*pz == cmdsep) 
goto m2210;
if (wakt -> casei == 0)
loccas = 0; 
else loccas = 1; 
lochex = 0;
locida = 0;
locwra = 0;
i = getket (&pz, &restleer);
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (96, i);
return 1; 
}
strcpy (locz, kette);
loclae = strlen (kette);
TA fprintf (lug, "LCA1 %d |%s|\n", loclae, kette); TE
if (wakt -> caseu == 1)
for (i = 0; i <= pz - pi; i ++)
*(locz + i) = toupper (*(locz + i));
if (restleer == 1)
goto m2210;
m2200:
if (*pz == cmdsep)
goto m2210;
switch (*pz) {
case 'h':
case 'H':
if (lochex == 1)
goto m4250; 
lochex = 1;
if (locida == 1)
eazone (t187 [la]); 
loccas = 0;
strcpy (loczh, locz);
i = hexasc (locz);
if (i != 0)
return 1; 
loclae /= 2;
break;
case 'i':
case 'I':
if (locida == 1)
goto m4250; 
locida = 1;
if (lochex == 1) {
loccas = 0;
eazone (t187 [la]); 
}
else loccas = 1;
break;
case 'w':
case 'W':
if (betaon == 0) {
eazone (t222 [la]); 
return 1; 
}
if (locwra == 1)
goto m4250; 
if (loca > 1 || loce > 0)
eazone (t224 [la]);
else locwra = 1;
break;
default:
goto m4250; 
}
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m2200;
restleer = 1;
m2210:
if (loccas == 1)
for (i = 0; i < loclae; i ++)
work2 [i] = tolower (locz [i]);
strcpy (pvins [3], locz); 
if (nloc == 1)
goto m2850; 
if (rloc == 1)
goto m3290; 
lauf = wakt -> clp -> vorw;
zweiter = 0;
m2220:
if (lauf == NULL) {
if (wakt -> wrapon == 0) {
eazone (t070 [la]); 
m2230:
ketngf (1, lochex, locz, loczh);
strcpy (pvins [2], "00000000");
pvinn [0] = 0;
return 1; 
}
if (wakt -> clp == wakt -> anfang)
goto m2230;
eazone (t065 [la]); 
zweiter = 1;
lauf = wakt -> anfang -> vorw;
m2240:
if (lauf == NULL)
goto m2230;
if (lauf -> rckw == wakt -> clp)
goto m2230;
}
pi = &(*lauf).datn [loca - 1];
if (locwra == 0) {
i = lauf -> lben;
if (loce > 0)
if (loce < lauf -> lben)
i = loce;
locl = i - loca - loclae + 2;
}
else locl = lauf -> lben;
TA fprintf (lug, "LO3 %d\n", locl); TE
m2250:
if (locl < 1) {
lauf = lauf -> vorw;
if (zweiter == 0)
goto m2220;
else goto m2240;
}
if (loccas == 0) {
pj = memchr (pi, locz [0], locl); 
TA fprintf (lug, "LO11\n"); TE
if (pj == NULL)
goto m2255; 
m2252:
if (locwra == 0)
loclae2 = loclae;
else {
loclae2 = locl - (pj - pi);
if (loclae2 > loclae)
loclae2 = loclae;
}
TA fprintf (lug, "LO12 %d\n", loclae2); TE
if (loccas == 0) {
if (memcmp (pj, locz, loclae2) != 0) {
goto m2270;
}
}
else {
for (i = 0; i < loclae; i ++)
work [i] = tolower (pj [i]);
if (memcmp (work, work2, loclae2) != 0) {
goto m2270;
}
}
if (loclae2 == loclae) 
goto m2280; 
temp = lauf -> vorw;
TA fprintf (lug, "LO16\n"); TE
if (temp == NULL) 
goto m2255; 
i = loclae2;
loclae2 = loclae - loclae2;
TA fprintf (lug, "LO17 %d\n", loclae2); TE
if (temp -> lben < loclae2) 
goto m2255; 
TA fprintf (lug, "LO18\n"); TE
pi = &(*temp).datn [0];
TA fprintf (lug, "LO19\n"); TE
if (loccas == 0) {
if (memcmp (pi, locz + i, loclae2) != 0)
goto m2255; 
}
else {
for (j = 0; j < loclae; j ++)
work [j] = tolower (pi [j]);
if (memcmp (work, work2 + i, loclae2) != 0)
goto m2255; 
}
pvinn [1] = i; 
TA fprintf (lug, "LO20\n"); TE
goto m2285; 
}
else {
pjl = memchr (pi, tolower (locz [0]), locl);
pju = memchr (pi, toupper (locz [0]), locl);
if (pjl != NULL) {
if (pju == NULL) {
pj = pjl;
goto m2252; 
}
if (pjl < pju) {
pj = pjl;
goto m2252; 
}
else {
pj = pju;
goto m2252; 
}
}
else  {
if (pju != NULL) {
pj = pju;
goto m2252; 
}
}
}
m2255:
lauf = lauf -> vorw;
if (zweiter == 0)
goto m2220;
else goto m2240;
m2270:
i = pj - pi + 1;
pi += i;
locl -= i;
goto m2250; 
m2280:
pvinn [1] = 0; 
m2285:
strcpy (pvins [2], lauf -> schl); 
pvinn [0] = pj - &(*lauf).datn [0] + 1; 
wakt -> clp = lauf;
dataend = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 40:
if (restleer == 1) {
typ = 99;
goto m2310;
}
i = strspn (pz, alpha); 
if (i == 0) {
if (*pz == cmdsep) {
typ = 99;
goto m2310;
}
if (*pz != '?')
goto m4250; 
typ = 99;
pz ++;
}
else {
if (i > 8)
goto m4120; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "DEUTSCH", i) == 0) {
typ = 0;
goto m2290;
}
if (memcmp (pz, "UDEUTSCH", i) == 0) {
typ = 1;
goto m2290;
}
if (memcmp (pz, "ENGLISH", i) == 0) {
typ = 2;
goto m2290;
}
goto m4250; 
m2290:
pz += i; 
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m2300;
restleer = 1;
m2300:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m2310:
switch (typ) {
case 99:
eazone (lang [la]);
break;
case 0:
case 1:
case 2:
la = typ;
break;
default:
profeh (41, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 41:
if (restleer == 1 || *pz == cmdsep)
goto m4110; 
TA fprintf (lug, "LD1 %d |%s|\n", pz, pz); TE
wakt -> mult = 0;
loaurl = 0;
typevarms = 0;
k = dsnerz (&pz, &restleer, dsnameload);
TA fprintf (lug, "LD2 %d |%s|\n", k, dsnameload); TE
switch (k) {
case 0:
break;
case 1:
return 1; 
case 2:
goto m4250; 
case 3:
memcpy (ddname + 3, dsnameload + 1, strlen (dsnameload) - 2);
memset (ddname + 3 + strlen (dsnameload) - 2, '\0', 1);
pi = getenv (ddname);
if (pi == NULL)
goto m4330; 
if (strlen (pi) == 0)
goto m4350; 
j = 1;
while (*pi) {
pj = pi;
i = getumg (&pi);
if (j == 1) {
memcpy (dsnameload, pj, i);
memset (dsnameload + i, '\0', 1);
j = 2;
}
else {
if (memcmp (pj, "type(varms)", i) == 0) {
typevarms = 1;
zael = 2;
pi = zaeh.ch2;
pi += 2;
break;
}
}
if (*pi == '\0')
break;
pi ++;
} 
break;
case 4:
loaurl = 1;
if (strlen (httpkw) == 0) {
Sprintf (fehler, t201 [la], httpbi);
i = lieskw (fehler, fehler);
if (i == 1) {
return 1; 
}
}
break;
default:
profeh (84, k);
return 1; 
} 
multiple = 0; 
loacou = 0;
loaexc = 0;
loalet = 0;
loaign = 0;
loarec = 0;
loareca = 100000000; 
loasel = 0;
loasex = 0;
exca = NULL;
sela = NULL;
if (restleer == 0) {
m2320:
if (*pz == cmdsep) {
pz ++;
goto m2350;
}
i = getnam (&pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinbuc:
goto m4250; 
case Fzugross:
goto m4250; 
default:
profeh (68, i);
return 1; 
}
TA fprintf (lug, "LO62 %d |%s|\n", lname, name); TE
if (memcmp (name, "MULTIPLE", lname) == 0) {
if (multiple > 0)
goto m4250; 
if (k >= 3) 
goto m4250; 
multiple = 1;
if (restleer == 1)
goto m2350;
if (*pz == cmdsep) {
pz ++;
goto m2350;
}
i = getket (&pz, &restleer);
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (92, i);
return 1; 
}
strcpy (wakt -> trenn, kette);
multiple = 2;
if (restleer == 1)
goto m2350;
goto m2320;
}
if (memcmp (name, "IGNORE", lname) == 0) {
if (loaign == 1)
goto m4250; 
loaign = 1;
loalet = 1;
goto m2340;
}
if (memcmp (name, "RECORDS", lname) == 0) {
if (loarec == 1)
goto m4250; 
loarec = 1;
loalet = 2;
goto m2340;
}
if (memcmp (name, "COUNT", lname) == 0) {
if (loacou == 1)
goto m4250; 
loacou = 1;
loacou2 = 0;
loacou3 = 0;
if (restleer == 0)
goto m2320;
goto m2350;
}
if (memcmp (name, "SELECT", lname) == 0) {
if (loasel == 1)
goto m4250; 
loasel = 1;
loasex = 1;
goto m2330;
}
if (memcmp (name, "EXCLUDE", lname) == 0) {
if (loaexc == 1)
goto m4250; 
loaexc = 1;
loasex = 2;
goto m2330;
}
goto m4250; 
m2330:
if (restleer == 1)
goto m4110; 
if (loasex == 1)
i = getlml (&sela, &pz, &restleer);
else i = getlml (&exca, &pz, &restleer);
switch (i) {
case 0:
break;
case 1:
return 1; 
case 2:
goto m4390; 
case Ffehlbef:
goto m4250; 
case Fparmfeh:
goto m4110; 
default:
profeh (74, i);
return 1; 
}
if (restleer == 0)
goto m2320;
else goto m2350;
m2340:
TA fprintf (lug, "LO60 %d %d\n", loaign, loarec); TE
TA fprintf (lug, "LO61 %d\n", restleer); TE
if (restleer == 1)
goto m4110; 
i = getzhl (&pz, &restleer); 
switch (i) {
case 0:
break;
case Fkeinesp:
goto m4110; 
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (76, j);
return 1; 
}
if (loalet == 1)  {
loaigna = zahl;
loaigna2 = zahl;
}
else  {
if (zahl > 100000000) {
eazone (t227 [la]);
return 1; 
}
loareca = zahl;
}
if (restleer == 1)
goto m2350;
goto m2320;
} 
m2350:
if (multiple == 0)
if (loasex > 0)
multiple = 1;
if (multiple > 0)
if (loaign == 1 || loarec == 1) {
eazone (t108 [la]);
return 1; 
}
#ifdef Ms
i = fputs ("$4\n", pesa);
(void) fflush (pesa);
printf ("%s $4 geschrieben\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i); 
#endif
if (loaurl == 0) {
dsnprfi = dsnprf (Aload, dsnameload);
TA fprintf (lug, "DSNPRF %d\n", dsnprfi); TE
if (dsnprfi == 0)  {
#ifdef Ms
ret1 = 1;
goto m2520;
#else
return 1; 
#endif
}
}
if (wakt -> zeilenzahl == 0 && wakt -> dsnistda == 0) {
if (loaurl == 1 && httpid == 1)
strcpy (wakt -> dsname, dsnameload);
else strcpy (wakt -> dsname, dsnameload);
wakt -> dsnistda = 1;
if (multiple > 0) {
wakt -> mult = multiple;
*b_mul = 'M';
}
}
if (loaurl == 0)
if (dsnprfi == 1) 
goto m2510;
#ifdef Mp
ptknr ++;                                              
Sprintf (ch1200, "cp %s %s%03d", dsnameload, tempdsn,  
ptknr);                                              
system (ch1200);                                       
#endif
#ifdef Mt
ptknr ++;                                              
Sprintf (meldung, "%s%03d", tempdsn, ptknr);           
strcpy (dsnameload, meldung);                          
#endif
vori = wakt -> clp;
nchs = vori -> vorw;
lauf = wakt -> clp;
if (nchs == NULL)
zwischen = 0;
else zwischen = 1;
TA fprintf (lug, "ZWI %d\n", zwischen); TE
if (wakt -> zeilenzahl == 0)
letztenummer = 0;
else {
letztenummer = atoi (wakt -> clp -> schl);
i = letztenummer / 100 * 100;
if (i < letztenummer)
letztenummer = i + 100;
}
TA fprintf (lug, "LET %d\n", letztenummer); TE
if (wakt -> width == 0)
leselae = 101;
else
if (wakt -> width <= 900)
leselae = wakt -> width + 1;
else leselae = 901;
if (typevarms == 1)
leselae = 901;
laeges = lsl;
forts = 0;
neu = 0;
anzahl = 0;
if (loareca == 0)
goto m2500; 
if (loaign == 1)
if (loaigna == 0) {
loaign = 0;
sprintf (meldung, t030 [la], 0); 
eazone (meldung);
}
if (multiple == 0)
goto m2370;
TA fprintf (lug, "LOA1 |%s|\n", dsnameload); TE
#ifndef Mnt
verzei = opendir (dsnameload);
TA fprintf (lug, "LOA4 |%s|\n", dsnameload); TE
if (verzei == NULL) {
#else
strcpy (dsnameload2, dsnameload);
strcat (dsnameload2, "\\*.*");
verzei = _findfirst (dsnameload2, &verdat);
TA fprintf (lug, "LOA6 |%s|\n", dsnameload); TE
if (verzei == - 1) {
#endif
eazone (t152 [la]); 
#ifdef Ms
ret1 = 1;
goto m2520;
#else
return 1; 
}
TA fprintf (lug, "MNT1 geoeffnet\n"); TE
#endif
verzoffen = 1;
#ifndef Mnt
#else
i = _findnext (verzei, &verdat); 
TA fprintf (lug, "MNT2 .. gelesen\n"); TE
#endif
verzoffset = strlen (dsnameload) + 1;
#ifndef Mnt
memset (dsnameload + strlen (dsnameload), '/', 1);
#else
memset (dsnameload + strlen (dsnameload), '\\', 1);
#endif
idat = 0;
iverz = 0;
m2360:
#ifndef Mnt
verdat = readdir (verzei);
if (verdat == NULL)
#else
i = _findnext (verzei, &verdat);
if (i != 0)
#endif
{
verzoffen = 0;
#ifndef Mnt
i = closedir (verzei);
#else
i = _findclose (verzei);
#endif
Sprintf (meldung, t163 [la], idat);
if (idat == 1)
memcpy (meldung + l001 [la], meldung + l002 [la], 9);
eazone (meldung);
if (iverz > 0) {
Sprintf (meldung, t164 [la], iverz);
if (iverz == 1)
if (la == 2)
memcpy (meldung + 13, "y skipped\0", 10);
else memcpy (meldung + 18, meldung + 20, 13);
eazone (meldung);
}
goto m2500;
}
#ifndef Mnt
TA fprintf (lug, "LOA2 %d %d |%s|\n", 
verdat -> d_reclen, strlen (verdat -> d_name),
verdat -> d_name); TE
#else
TA fprintf (lug, "LOA2 %d |%s|\n", verdat.attrib,
verdat.name); TE
#endif
#ifndef Mnt
if (multiple > 0) {
i = sextst (verdat -> d_name);
if (i == 2)
goto m2360; 
if (strcmp (verdat -> d_name, "exaEdit.log") == 0)
if (test [0] == 1) {
eazone (t225 [la]);
goto m2360; 
}
if (strcmp (verdat -> d_name, "exaEdit.log1") == 0)
if (test [1] == 1) {
i = 1;
Sprintf (fehler, t226 [la], i);
eazone (fehler);
goto m2360; 
}
if (strcmp (verdat -> d_name, "exaEdit.log2") == 0)
if (test [2] == 1) {
i = 2;
Sprintf (fehler, t226 [la], i);
eazone (fehler);
goto m2360; 
}
if (strcmp (verdat -> d_name, "exaEdit.log3") == 0)
if (test [3] == 1) {
i = 3;
Sprintf (fehler, t226 [la], i);
eazone (fehler);
goto m2360; 
}
}
memcpy (dsnameload + verzoffset, verdat -> d_name,
strlen (verdat -> d_name));
memset (dsnameload + verzoffset + strlen (verdat -> d_name),
'\0', 1);
#else
if (multiple > 0) {
i = sextst (verdat.name);
if (i == 2)
goto m2360; 
if (strcmp (verdat.name, "exaEdit.log") == 0)
if (test [0] == 1) {
eazone (t225 [la]);
goto m2360; 
}
if (strcmp (verdat.name, "exaEdit.log1") == 0)
if (test [1] == 1) {
i = 1;
Sprintf (fehler, t226 [la], i);
eazone (fehler);
goto m2360; 
}
if (strcmp (verdat.name, "exaEdit.log2") == 0)
if (test [2] == 1) {
i = 2;
Sprintf (fehler, t226 [la], i);
eazone (fehler);
goto m2360; 
}
if (strcmp (verdat.name, "exaEdit.log3") == 0)
if (test [3] == 1) {
i = 3;
Sprintf (fehler, t226 [la], i);
eazone (fehler);
goto m2360; 
}
}
memcpy (dsnameload + verzoffset, verdat.name,
strlen (verdat.name));
memset (dsnameload + verzoffset + strlen (verdat.name), '\0', 1);
#endif
i = statfu (dsnameload);
switch (i) {
case 1:
switch (errno) {
case ENOENT:
lmmeld (t117 [la]); 
goto m2360; 
case EACCES:
lmmeld (t115 [la]); 
goto m2360; 
case ENOTDIR:
lmmeld (t118 [la]);
goto m2360; 
#ifndef Mnt
case ETIMEDOUT:
lmmeld (t116 [la]);
goto m2360; 
case ELOOP:
lmmeld (t119 [la]); 
goto m2360; 
#endif
default:
Sprintf (fehler, "lm stat errno = %d", errno);
lmmeld (fehler);
goto m2360; 
}
case 2:
errno = 0;
j = access (dsnameload, R_OK);
if (j == 0)  {
idat ++;
break; 
}
switch (errno) {
case ENOEXEC: 
lmmeld (t214 [la]); 
goto m2360; 
case EACCES: 
lmmeld (t115 [la]); 
goto m2360; 
default:
Sprintf (fehler, "access 4 errno = %d", errno);
lmmeld (fehler);
goto m2360; 
}
case 3:
#ifndef Mnt
if (strcmp (verdat -> d_name, ".") == 0)
goto m2360;
if (strcmp (verdat -> d_name, "..") == 0)
goto m2360;
#else
if (strcmp (verdat.name, ".") == 0)
goto m2360;
if (strcmp (verdat.name, "..") == 0)
goto m2360;
#endif
iverz ++;
goto m2360;
case 4:
iverz ++;
goto m2360;
}
TA fprintf (lug, "LOA3 |%s|\n", dsnameload); TE
if (multiple == 2) {
if (strlen (wakt -> trenn) == 0)
goto m2370;
pi = strstr (wakt -> trenn, "DDD");
if (pi == NULL) {
strcpy (trennsatz, wakt -> trenn);
ltrenn = strlen (wakt -> trenn);
}
else {
ltrenn = pi - wakt -> trenn;
strncpy (trennsatz, wakt -> trenn, ltrenn);
#ifndef Mnt
strcpy (trennsatz + ltrenn, verdat -> d_name);
ltrenn += strlen (verdat -> d_name);
#else
strcpy (trennsatz + ltrenn, verdat.name);
ltrenn += strlen (verdat.name);
#endif
strcpy (trennsatz + ltrenn, pi + 3);
ltrenn = strlen (trennsatz);
}
}
else  {
memset (trennsatz, '$', 3);
#ifndef Mnt
ltrenn = strlen (verdat -> d_name);
memcpy (trennsatz + 3, verdat -> d_name, ltrenn);
#else
ltrenn = strlen (verdat.name);
memcpy (trennsatz + 3, verdat.name, ltrenn);
#endif
memset (trennsatz + 3 + ltrenn, '$', 3);
ltrenn += 6;
memset (trennsatz + ltrenn, '\0', 1);
}
TA fprintf (lug, "LOA5 %d %d %s\n", ltrenn,
strlen (trennsatz), trennsatz);        TE
anzahl ++;
if (loacou == 1) {
loacou2 += lsl + ltrenn;
goto m2370;
}
lauf = (struct l *) malloc (lsl + ltrenn);
(*vori).vorw = lauf;
(*lauf).rckw = vori;
vori = lauf;
if (zwischen == 1)
memset (lauf -> schl, '\0', 1);
memcpy (&(lauf -> datn [0]), trennsatz, ltrenn);
lauf -> lnlz = ltrenn;
lauf -> lben = ltrenn;
lauf -> lmax = ltrenn;
lauf -> flag = ' '; 
m2370:
if (loaurl == 1) {
i = urloef (Aload);
TA fprintf (lug, "urloef = %d\n", i); TE
switch (i) {
case - 1:
return 1; 
case - 2:
i = urlsch (Aload);
return 1; 
}
igel = 0;
}
else {
if (wakt -> width > 0)
ein = fopen (dsnameload, "rb");
else ein = fopen (dsnameload, "r");
if (ein == NULL) {
eazone (t006 [la]); 
return 1; 
}
}
lesenfertig = 0;
for (anzahl = anzahl; anzahl < loareca; anzahl ++) {
leselae2 = leselae;
m2380:
memset (puffer, ' ', leselae2);
if (loaurl == 0) {
if (fgets (puffer,  leselae2, ein) == NULL) {
if (ferror (ein)) {
errno = 111;
m2390:
sprintf (meldung, t007 [la], errno);
eazone (meldung);
}
m2400:
if (loaign == 1) {
anzahl = 0;
sprintf (meldung, t030 [la], loaigna2 - loaigna);
eazone (meldung);
}
if (forts == 1)  {
forts = 0; 
lesenfertig = 1;
vori -> vorw = lauf;
lauf -> rckw = vori;
vori = lauf;
laeges = lsl;
goto m2480;
}
else goto m2490;
} 
} 
else {
if (igel == 0) {
igel = read (ftpnsock, puffer2, leselae2 - 1);
TA fprintf (lug, "NCH0 %d\n", igel); TE
if (igel == 0)
goto m2400;
if (igel == - 1)
goto m2390;
if (wakt -> width > 0) {
memcpy (puffer, puffer2, igel);
i = igel;
igel = 0; 
goto m2440;
}
pi = puffer2;
}
TA fprintf (lug, "NCH1 %d |%s|\n", pi, pi); TE
pj = memchr (pi, '\r', igel);
if (pj == NULL) {
memcpy (puffer, pi, igel);
i = igel;
igel = 0; 
ftptyp = 1;
goto m2410;
}
TA fprintf (lug, "NCH2 %d %d\n", pj, *pj); TE
pj ++;
TA fprintf (lug, "NCH2.5 %d %d\n", pj, *pj); TE
if (pj - pi == igel) {
i = read (ftpnsock, pj, 1);
TA fprintf (lug, "NCH3 %d\n", i); TE
*(pj + 1) = '\0'; 
igel ++;
}
if (*pj == '\n') {
TA fprintf (lug, "NCH3.5 %d %d %d\n", pj, *pj, '\n'); TE
jgel = pj - pi + 1;
TA fprintf (lug, "NCH4 %d\n", jgel); TE
memcpy (puffer, pi, jgel - 2);
memset (puffer + jgel - 2, '\n', 1);
TA fprintf (lug, "NCH5 |%s|\n", puffer); TE
i = jgel - 1;
ftptyp = 2;
}
else {
TA fprintf (lug, "NCH6 %d %d %d\n", pj, *pj, '\n'); TE
jgel = pj - pi;
TA fprintf (lug, "NCH7 %d\n", jgel); TE
memcpy (puffer, pi, jgel);
TA fprintf (lug, "NCH8 |%s|\n", puffer); TE
i = jgel;
ftptyp = 3;
}
igel -= jgel;
pi += jgel;
TA fprintf (lug, "NCH9 %d |%s|\n", pi, pi); TE
TA fprintf (lug, "NCH10 %d\n", igel); TE
goto m2410;
}
for (i = leselae2 - 1; i >= 0; i --)
if (puffer [i] == '\0')
break;
m2410:
TA2 fprintf (lug, "A %d %d %s\n", i, strlen (puffer), puffer);TE
if (loaurl > 0) {
TA2 fprintf (lug, "B T%d %d %s\n", ftptyp, igel, pi); TE
}
if (typevarms == 1) {
TA fprintf (lug, "VAR0 %d\n", i); TE
pj = puffer;
if (zael == 2) {
m2420:
TA fprintf (lug, "VAR1 %d\n", i); TE
if (i >= 2) {
TA fprintf (lug, "VAR2 %d %d\n", i, pi); TE
memcpy (pi, pj, 2);
zael = 0;
zaed = zaeh.zaeh;
lauf = (struct l *) malloc (lsl + zaed);
if (loacou == 1)
loacou2 += lsl + zaed;
loacou3 += lsl + zaed;
TA fprintf (lug, "LCO1 %d %d\n", loacou2, loacou3); TE
datnanf = 0;
i -= 2;
TA fprintf (lug, "ZAEH1 %d\n", zaeh.zaeh); TE
if (i == 0)
goto m2380;
pj += 2;
goto m2430;
}
else  {
TA fprintf (lug, "VAR3 %d %d\n", i, pi); TE
memcpy (pi, pj, 1);
zael = 1;
pi ++;
TA fprintf (lug, "ZAEH2\n"); TE
goto m2380;
}
} 
if (zael == 1) {
TA fprintf (lug, "VAR4 %d %d\n", i, pi); TE
memcpy (pi, pj, 1);
zael = 0;
pi --;
i --;
TA fprintf (lug, "ZAEH3 %d\n", zaeh.zaeh); TE
if (i == 0)
goto m2380;
pj ++;
zaed = zaeh.zaeh;
lauf = (struct l *) malloc (lsl + zaed);
if (loacou == 1) {
loacou2 += lsl + zaed;
loacou3 += lsl + zaed;
TA fprintf (lug, "LCO2 %d %d\n", loacou2, loacou3); TE
}
datnanf = 0;
goto m2430;
} 
TA fprintf (lug, "VAR5 %d %d\n", i, pi); TE
m2430:
if (i > zaed)
llae = zaed;
else llae = i;
TA fprintf (lug, "kopiere %d Datenbytes\n", llae); TE
memcpy (&(lauf -> datn [datnanf]), pj, llae);
datnanf += llae;
pj += llae;
i -= llae;
zaed -= llae;
TA fprintf (lug, "Rest-zaed %d\n", zaed); TE
if (zaed == 0) {
zael = 2;
(*vori).vorw = lauf;
(*lauf).rckw = vori;
vori = lauf;
lpuffer = i;
goto m2480;
}
goto m2380; 
} 
if (wakt -> width > 0) {
m2440:
TA fprintf (lug, "WID1 %d %d\n", i, leselae2); TE
if (i == leselae2 - 1) {
llae = i;
goto m2450;
}
else {
leselae2 -= i;
goto m2470;
}
}
if (puffer [i - 1] == '\n')  {
llae = i - 1;
if (i >= 2)
if (puffer [i - 2] == '\r')
llae --;
m2450:
laeges += llae;
if (forts == 0)  {
lauf = (struct l *) malloc (laeges);
if (loacou == 1) {
loacou2 += laeges;
loacou3 += laeges;
TA fprintf (lug, "LCO3 %d %d\n", loacou2, loacou3); TE
}
datnanf = 0;
}
else  {
forts = 0;
lauf = (struct l *) realloc (lauf, laeges);
if (loacou == 1) {
loacou2 -= loacou3;
loacou2 += laeges;
loacou3 = laeges;
TA fprintf (lug, "LCO4 %d %d\n", loacou2, loacou3); TE
}
}
if (loaign == 1) {
loaigna --;
if (loaigna == 0) {
loaign = 0;
anzahl = - 1;
sprintf (meldung, t030 [la], loaigna2);
eazone (meldung);
}
free (lauf);
goto m2460;
}
if (loacou == 1) {
loacou3 = 0;
free (lauf);
goto m2460;
}
(*vori).vorw = lauf;
(*lauf).rckw = vori;
vori = lauf;
m2460:
neu = 1;
laeges = lsl;
}
else  {
m2470:
llae = i;
laeges += llae;
if (forts == 0)  {
forts = 1;
lauf = (struct l *) malloc (laeges);
if (loacou == 1) {
loacou2 += laeges;
loacou3 += laeges;
TA fprintf (lug, "LCO5 %d %d\n", loacou2, loacou3); TE
}
datnanf = 0;
}
else  {
lauf = (struct l *) realloc (lauf, laeges);
if (loacou == 1) {
loacou2 -= loacou3;
loacou2 += laeges;
loacou3 = laeges;
TA fprintf (lug, "LCO6 %d %d\n", loacou2, loacou3); TE
}
}
}
memcpy (&(lauf -> datn [datnanf]), puffer, llae);
datnanf += llae;
if (neu == 0)
goto m2380;
neu = 0;
m2480:
if (zwischen == 1)
memset (lauf -> schl, '\0', 1);
lauf -> flag = ' ';
lauf -> lmax = datnanf;
lauf -> lben = lauf -> lmax;
if (wakt -> width > 0)
lauf -> lnlz = lauf -> lben;
else {
if (datnanf == 0)
lauf -> lnlz = 0;
else {
pk = lauf -> datn;
pk += lauf -> lben - 1;
for (i = lauf -> lben; i >= 1; i --)
if (*pk == ' ')
pk --;
else break;
lauf -> lnlz = i;
}
}
if (lesenfertig == 1) {
anzahl ++;
goto m2490;
}
if (typevarms == 1) {
anzahl ++;
if (anzahl >= loareca)
goto m2490;
if (lpuffer == 0)
goto m2380; 
i = lpuffer;
TA fprintf (lug, "VAR6 %d %d\n", i, pi); TE
goto m2420; 
}
}
m2490:
TA fprintf (lug, "m2490:\n"); TE
if (loaurl == 0)
(void) fclose (ein);
else {
memset (puffer, ' ', 1024);
i = read (ftpksock, puffer, sizeof (puffer));
if (i < 4)
profeh (127, (i > 0) ? i : errno);
if (memcmp (puffer, "226 ", 4) != 0) {
Sprintf (fehler, t212 [la], 6);
eazone (fehler);
memcpy (fehler, puffer, i);
memset (fehler + i - 2, '\0', 1); 
eazone (fehler);
return 1; 
}
i = urlsch (Aload);
}
if (verzoffen == 1)
goto m2360;
m2500:
if (loarec == 1) {
sprintf (meldung, t100 [la], anzahl);
eazone (meldung);
}
if (loacou == 1) {
i = 0;
d1 = loacou2;
while (d1 > 1024) {
i ++;
d1 /= 1024;
}
sprintf (meldung, t196 [la], anzahl, d1, mass [i]);
eazone (meldung);
}
if (wakt -> zeilenzahl == 0) {
m2510:
i = strlen (wakt -> dsname);
if (strcmp (wakt -> dsname + i - 4, ".xml") == 0) {
wakt -> modeon = 1;
wakt -> mode = 5;
eazone ("mode XML");
}
if (i > 41)
j = 41;
else j = i;
if (scope != 0) {
memset (b_dsn, ' ', 41);
memcpy (b_dsn, wakt -> dsname, j);
}
pi = wakt -> anfang -> datn;
j = wakt -> anfang -> lmax - 22;
TA fprintf (lug, "JJJJ %d %d\n", i, j); TE
if (i > j) {
if (lauf == wakt -> anfang)
k = 0; 
else {
k = 1; 
temp = lauf;
}
lauf = wakt -> anfang;
vergro (i - j);
wakt -> anfang = lauf;
pi = wakt -> anfang -> datn;
if (k == 1)
lauf = temp;
}
memcpy (pi + 22, wakt -> dsname, i);
wakt -> anfang -> lnlz = 22 + i;
wakt -> anfang -> lben = 22 + i;
TA fprintf (lug, "TTTOOPP %d\n", i); TE
if (dsnprfi == 1) {
#ifdef Ms
ret1 = 1;
TA fprintf (lug, "TTT2\n"); TE
goto m2520;
#else
TA fprintf (lug, "TTT3\n"); TE
return 1; 
#endif
}
} 
else wakt -> notfiled = 1;
TA fprintf (lug, "TTT4\n"); TE
lauf -> vorw = nchs;
if (nchs != NULL)
nchs -> rckw = lauf;
else wakt -> bottom = lauf;
if (anzahl == 0) 
goto m2515;
if (loacou == 0)
wakt -> zeilenzahl += anzahl;
if (zwischen == 1)
numein (wakt -> clp, nchs, anzahl);
else numein (wakt -> anfang, NULL, wakt -> zeilenzahl);
TA fprintf (lug, "TTT5\n"); TE
if (wakt -> zeilenzahl > 9999) {
wakt -> skeyalt = wakt -> skey;
if (wakt -> zeilenzahl > 99999)
wakt -> skey = 8;
else if (wakt -> skey < 7)
wakt -> skey = 7;
wakt -> pwwidth = COLS - wakt -> skey - 1;
b_lin = b_lia + wakt -> skey;
memset (b_lia, ' ', 10);
memcpy (b_lin, lineal, wakt -> pwwidth);
wakt -> lwwidth =
wakt -> lwwidth + wakt -> skeyalt - wakt -> skey;
if (wakt -> inlcol == - 1)
inlakt = wakt -> lwwidth;
}
TA fprintf (lug, "TTT6\n"); TE
zzaend = 1;
dataend = 1;
m2515:
#ifdef Ms
m2520:
i = fputs ("$5\n", pesa);
(void) fflush (pesa);
printf ("%s $5 geschrieben\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i); 
if (ret1 == 1) {
ret1 = 0;
return 1;
}
#endif
TA fprintf (lug, "TTT7 %d\n", restleer); TE
if (restleer == 0)
goto m0840; 
else goto m4410; 
case 43:
if (restleer == 1) {
typ = 3;
anzahl = wakt -> pwwidth;
goto m2540;
}
i = strspn (pz, num); 
if (i == 0) {
if (*pz == cmdsep) {
typ = 3;
anzahl = wakt -> pwwidth;
goto m2540;
}
switch (*pz) {
case '?':
typ = 1;
break;
default:
goto m4250; 
}
pz ++;
}
else {
typ = 3;
errno = 0;
anzahl = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (anzahl == 0)
goto m4120; 
pz += i;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m2530;
restleer = 1;
m2530:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m2540:
switch (typ) {
case 1:
Sprintf (tekst, "%d", wakt -> lwwidth);
eazone (tekst);
break;
case 3:
wakt -> lwwidth = anzahl;
if (wakt -> inlcol == - 1)
inlakt = wakt -> lwwidth;
dataend = 1;
break;
default:
profeh (1, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 44:
if (restleer == 1)
goto m4110; 
typ = 0;
for (k = 1; k <= 2; k ++) {
getnum (&pz, &restleer);
switch (prmt) {
case 0: 
if (k == 1) 
goto m4110; 
else  goto m2550;
case 1: 
case 2: 
case Ffehlbef: 
goto m4250;
case 3: 
typ += k;
if (k == 1) {
numt1 = numt;
if (numt == 1)
memcpy (numc1, numc, 8);
else numc1 [0] = numc [0];
}
else {
numt2 = numt;
if (numt == 1)
memcpy (numc2, numc, 8);
else numc2 [0] = numc [0];
}
break;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
default:
profeh (11, prmt);
return 1;
}
if (restleer == 1)
goto m2550;
}
m2550:
wlauf = wakt;
crenum (numt1, numc1);
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc1, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]); 
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]); 
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (21, prmt);
return 1;
}
nump1 = nump;
if (numt1 != 1)
memcpy (numc1, numc, 8);
if (typ <= 2)
goto m2560;
crenum (numt2, numc2);
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc2, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]); 
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]); 
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (22, prmt);
return 1;
}
nump2 = nump;
if (numt2 != 1)
memcpy (numc2, numc, 8);
m2560:
if (nump1 == wakt -> anfang) {
strcpy (meldung, t015 [la]); 
goto m4240;
}
if (typ > 1) {
numi1 = atoi (numc1); 
numi2 = atoi (numc2); 
if (numi1 > numi2)
goto m4220;
numi3 = atoi (wakt -> clp -> schl);
if (numi1 <= numi3)
if (numi3 < numi2) {
eazone (t016 [la]); 
return 1; 
}
}
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
wakt -> notfiled = 1;
dataend = 1;
switch (typ) {
case 1:
pvinn [1] = 1; 
if (wakt -> clp == nump1)
break;
if (wakt -> setp1 > 0)
if (nump1 == wakt -> setp) {
wakt -> setp = nump1 -> rckw;
wakt -> setp1 = 2;
}
nump1 -> rckw -> vorw = nump1 -> vorw;
if (nump1 -> vorw != NULL)
nump1 -> vorw -> rckw = nump1 -> rckw;
else wakt -> bottom = nump1 -> rckw;
vori = wakt -> clp;
nchs = vori -> vorw;
vori -> vorw = nump1;
nump1 -> rckw = vori;
wakt -> clp = nump1;
nump1 -> vorw = nchs; 
if (nchs != NULL)
nchs -> rckw = nump1;
else wakt -> bottom = nump1;
numein (vori, nchs, 1);
break;
case 3:
if (wakt -> clp == nump2) {
movcou = 0;
goto m2570;
}
movcou = 1;
nump1 -> rckw -> vorw = nump2 -> vorw;
if (nump2 -> vorw != NULL)
nump2 -> vorw -> rckw = nump1 -> rckw;
else wakt -> bottom = nump1 -> rckw;
vori = wakt -> clp;
nchs = vori -> vorw;
vori -> vorw = nump1;
nump1 -> rckw = vori;
wakt -> clp = nump2;
nump2 -> vorw = nchs; 
if (nchs != NULL)
nchs -> rckw = nump2;
else wakt -> bottom = nump2;
m2570:
numpl = nump1;
for (i = 1; ; i ++) {
if (numpl == nump2)
break;
numpl = numpl -> vorw;
}
if (movcou == 1) {
TA fprintf (lug, "NAM %d %s %s\n", i,
vori -> schl, nchs -> schl); TE
numein (vori, nchs, i);
}
pvinn [1] = i; 
break;
default:
profeh (23, prmt);
return 1;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 46:
if (restleer == 1) {
typ = 1;
strcpy (manname, "-");
goto m2640;
}
if (*pz == cmdsep) {
typ = 1;
strcpy (manname, "-");
pz ++;
goto m2640;
}
TA fprintf (lug, "US3\n"); TE
i = strspn (pz, alphanum); 
if (i > 0) {
if (i > 4) {
eazone (t066 [la]); 
return 1; 
}
TA fprintf (lug, "US4\n"); TE
memcpy (manname, pz, i);
memset (manname + i, '\0', 1);
typ2 = 1;
TA fprintf (lug, "US5 %s\n", manname); TE
pz += i;
}
else {
TA fprintf (lug, "US6\n"); TE
switch (*pz) {
case '?':
typ = 2;
typ2 = 2;
strcpy (manname, "-");
pz ++;
TA fprintf (lug, "US7\n"); TE
break;
case '*':
TA fprintf (lug, "US8\n"); TE
typ = 2;
typ2 = 3;
strcpy (manname, "*");
pz ++;
break;
default:
TA fprintf (lug, "US11\n"); TE
goto m4120; 
}
}
TA fprintf (lug, "US12\n"); TE
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m2590;
TA fprintf (lug, "US13\n"); TE
restleer = 1;
TA fprintf (lug, "US14\n"); TE
m2580:
if (typ2 == 1)
typ = 1;
goto m2640;
m2590:
TA fprintf (lug, "US15\n"); TE
if (*pz == cmdsep)
goto m2580;
if (*pz == '?') {
pz ++;
typ = 2;
goto m2630;
}
TA fprintf (lug, "US18\n"); TE
i = strspn (pz, alpha); 
if (i == 0)
goto m4250; 
if (i > 7)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "SET", i) == 0) {
typ = 3;
goto m2600;
}
if (memcmp (pz, "DEFAULT", i) == 0) {
typ = 4;
goto m2600;
}
if (memcmp (pz, "DELETE", i) == 0) {
typ = 5;
goto m2600;
}
goto m4250; 
m2600:
pz += i; 
if (typ == 3) {
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m2610;
goto m4250; 
m2610:
if (*pz == cmdsep)
goto m4250; 
deli = *pz;
pz ++; 
pi = pz;
while (*pz) 
if (*pz == deli)
goto m2620;
else pz ++;
restleer = 1;
pz --; 
while (*pz == ' ')
pz --;
memcpy (mantext, pi, pz - pi + 1);
mantext [pz - pi + 1] = '\0';
goto m2640;
m2620:
memcpy (mantext, pi, pz - pi);
while (mantext [pz - pi - 1] == ' ' )
pi ++; 
mantext [pz - pi] = '\0';
pz ++; 
goto m2630;
}
m2630:
TA fprintf (lug, "US19\n"); TE
while (*pz) 
if (*pz == ' ')
pz ++;
else
if (*pz != cmdsep)
goto m4250; 
else goto m2640;
restleer = 1;
m2640:
TA fprintf (lug, "US20 %d\n", typ); TE
switch (typ) {
case 1: 
if (mani == 0) {
m2650:
eazone (t067 [la]);
return 1; 
}
if (strcmp (manname, "-") == 0) {
if (mand == NULL) {
m2660:
eazone (t068 [la]);
return 1; 
}
manual = 1;
i = system (mand -> datn);
goto m2700;
}
mant = mana;
while (mant != NULL) {
if (memcmp (mant -> name, manname, strlen (manname)) == 0) {
manual = 1;
i = system (mant -> datn);
goto m2700;
}
mant = mant -> vorw;
}
eazone (t069 [la]); 
return 1; 
case 2: 
if (mani == 0)
goto m2650;
if (strcmp (manname, "*") == 0)
i = 2; 
else i = 1; 
if (strcmp (manname, "-") == 0) {
if (mand == NULL)
goto m2660;
mant = mand;
ch = '!';
goto m2670;
}
mant = mana;
while (mant != NULL) {
if (strcmp (manname, "*") != 0)
if (memcmp (mant -> name, manname, strlen (manname)) != 0)
goto m2680;
if (mant == mand)
ch = '!';
else ch = ' ';
m2670:
Sprintf (fehler, "MAN %4s%c   %.78s", mant -> name, ch,
mant -> datn);
eazone (fehler);
if (i == 1)
goto m2700;
m2680:
mant = mant -> vorw;
}
if (i == 2)
break;
eazone (t069 [la]); 
return 1; 
case 3: 
TA fprintf (lug, "US30 %d\n", mani); TE
mant = mana;
while (mant != NULL) {
if (memcmp (mant -> name, manname, strlen (manname)) == 0) {
if (strlen (mantext) > strlen (mant -> datn)) {
mann = mant;
mant = (struct ms *) realloc (mant,
sizeof (struct ms) + strlen (mantext) );
if (mann == mand)
mand = mant;
if (mann == mana)
mana = mant;
if (mant -> rckw != NULL)
mant -> rckw -> vorw = mant;
if (mant -> vorw != NULL)
mant -> vorw -> rckw = mant;
}
m2690:
strcpy (mant -> datn, mantext);
goto m2700;
}
mann = mant;
mant = mant -> vorw;
}
TA fprintf (lug, "US31 %d\n", mani); TE
mant = (struct ms *) malloc (sizeof (struct ms) +
strlen (mantext));
mann -> vorw = mant;
mant -> rckw = mann;
mant -> vorw = NULL;
strcpy (mant -> name, manname);
mani ++;
goto m2690;
case 4: 
if (mani == 0)
goto m2650;
mant = mana;
while (mant != NULL) {
if (memcmp (mant -> name, manname, strlen (manname)) == 0) {
mand = mant;
goto m2700;
}
mant = mant -> vorw;
}
eazone (t069 [la]); 
return 1; 
case 5: 
if (mani == 0)
goto m2650;
mant = mana;
while (mant != NULL) {
if (memcmp (mant -> name, manname, strlen (manname)) == 0) {
if (mant -> rckw == NULL) {
if (mant -> vorw == NULL) {
}
else {
mana = mant -> vorw;
mana -> rckw = NULL;
}
}
else {
if (mant -> vorw == NULL) {
mant -> rckw -> vorw = NULL;
}
else  {
mant -> rckw -> vorw = mant -> vorw;
mant -> vorw -> rckw = mant -> rckw;
}
}
if (mant == mand)
mand = NULL;
free (mant);
mani --;
goto m2700;
}
mant = mant -> vorw;
}
eazone (t069 [la]); 
return 1; 
}
m2700:
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 47:
if (restleer == 1) {
typ = 1;
goto m2730;
}
if (*pz == cmdsep) {
typ = 1;
pz ++;
goto m2730;
}
i = getnam (&pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinbuc:
goto m4250; 
case Fzugross:
goto m4120; 
default:
profeh (139, i);
return 1; 
}
if (memcmp (name, "ALL", lname) == 0) {
typ = 2;
goto m2720;
}
if (memcmp (name, "CLEAR", lname) == 0) {
typ = 3;
goto m2710;
}
if (memcmp (name, "SHOW", lname) == 0) {
typ = 1;
goto m2710;
}
goto m4120; 
m2710:
if (restleer == 1)
goto m2730;
if (*pz == cmdsep) {
pz ++;
goto m2730;
}
i = getnam (&pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinbuc:
goto m4250; 
case Fzugross:
goto m4120; 
default:
profeh (140, i);
return 1; 
}
if (memcmp (name, "ALL", lname) != 0)
goto m4120; 
typ ++;
m2720:
if (restleer == 1)
goto m2730;
if (*pz == cmdsep) {
pz ++;
goto m2730;
}
goto m4120; 
m2730:
TA fprintf (lug, "MAR %d\n", typ); TE
switch (typ) {
case 1: 
lauf = wakt -> clp -> vorw;
zweiter = 0;
m2740:
if (lauf == NULL) {
if (wakt -> wrapon == 0) {
eazone (t070 [la]); 
m2750:
eazone (t216 [la]); 
return 1; 
}
if (wakt -> clp == wakt -> anfang)
goto m2750;
eazone (t065 [la]); 
zweiter = 1;
lauf = wakt -> anfang -> vorw;
m2760:
if (lauf == NULL)
goto m2750;
if (lauf -> rckw == wakt -> clp)
goto m2750;
}
if (lauf -> flag != ' ') {
wakt -> clp = lauf;
dataend = 1;
break;
}
lauf = lauf -> vorw;
if (zweiter == 0)
goto m2740;
else goto m2760;
case 2: 
i = 0;
for (lauf = wakt -> anfang -> vorw; lauf; lauf = lauf -> vorw)
if (lauf -> flag != ' ') {
zeisatp = 1;
zeisat (lauf);
i = 1;
}
if (i == 0)
eazone (t216 [la]); 
break;
case 3: 
if (wakt -> clp -> flag == ' ')
eazone (t217 [la]); 
else {
wakt -> clp -> flag = ' ';
m2770:
markiertd = 0;
markiertg = 0;
markierti = 0;
dataend = 1; 
}
break;
case 4: 
i = 0;
for (lauf = wakt -> anfang -> vorw; lauf; lauf = lauf -> vorw)
if (lauf -> flag != ' ') {
lauf -> flag = ' ';
i = 1;
}
if (i == 0)
eazone (t216 [la]); 
else goto m2770;
break;
default:
profeh (141, i);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 48:
typ = 0;
if (betaon == 0) {
eazone (t222 [la]); 
return 1; 
}
typ = 0;
if (restleer == 1)
goto m2800;
i = getnam (&pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinbuc:
if (*pz == cmdsep)
goto m2800;
if (*pz == '?') {
typ = 0;
pz ++; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m2790;
restleer = 1;
goto m2800;
}
goto m4250; 
case Fzugross:
goto m4120; 
default:
profeh (145, i);
return 1; 
}
for (i = 1; i <= 5; i ++)
if (memcmp (name, modeparm [i], lname) == 0) {
if (i <= 2)
if (lname == 1)
goto m4160; 
typ = i;
goto m2790;
}
goto m4120; 
m2790:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m2800:
switch (typ) {
case 0:
Sprintf (ch100, "%s %s", modeparm [wakt -> mode],
(wakt -> modeon == 1) ? "ON" : "OFF");
eazone (ch100);
break;
case 1:
wakt -> modeon = 1;
break;
case 2:
wakt -> modeon = 0;
break;
case 3:
case 4:
case 5:
wakt -> modeon = 1;
wakt -> mode = typ;
break;
default:
profeh (146, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 49:
m2810:
next = 1;
m2820:
if (restleer == 1) {
anzahl = 1;
goto m2830;
}
i = getzhl (&pz, &restleer);
switch (i) {
case 0:
anzahl = zahl;
break;
case Ffehlbef:
goto m4250; 
case Fkeinesp:
anzahl = 1;
break; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (129, i);
return 1; 
}
if (restleer == 0) {
if (*pz == cmdsep)
goto m2830;
if (*pz == '\0') {
restleer = 1;
goto m2830;
}
goto m4250; 
}
m2830:
if (next == 1) {
temp = wakt -> clp;
for (i = 1; i <= anzahl; i ++) {
if (wakt -> clp -> vorw != NULL)
wakt -> clp = wakt -> clp -> vorw;
else {
wakt -> clp = temp;
eazone (t070 [la]); 
return 1; 
}
}
}
else {
temp = wakt -> clp;
for (i = 1; i <= anzahl; i ++) {
if (wakt -> clp -> rckw != NULL)
wakt -> clp = wakt -> clp -> rckw;
else {
wakt -> clp = temp;
eazone (t071 [la]); 
return 1; 
}
}
}
dataend = 1;
TA fprintf (lug, "NX1\n"); TE
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 52:
m2840:
nloc = 1;
goto m2180;
m2850:
nloc = 0;
if (rloc == 1)
goto m2940;
zweiter = 0;
lauf = wakt -> clp -> vorw;
m2860:
if (lauf == NULL) {
if (wakt -> wrapon == 0) {
eazone (t070 [la]); 
m2870:
ketngf (2, lochex, locz, loczh);
strcpy (pvins [2], "00000000");
return 1; 
}
eazone (t065 [la]); 
zweiter = 1;
lauf = wakt -> anfang -> vorw;
m2880:
if (lauf == NULL)
goto m2870;
if (lauf -> rckw == wakt -> clp)
goto m2870;
}
TA fprintf (lug, "NL01\n"); TE
pi = &(*lauf).datn [loca - 1];
if (locwra == 0) {
i = lauf -> lben;
if (loce > 0)
if (loce < lauf -> lben)
i = loce;
locl = i - loca - loclae + 2;
}
else locl = lauf -> lben;
TA fprintf (lug, "NL3 %d\n", locl); TE
m2890:
if (locl < 1) 
goto m2920; 
TA fprintf (lug, "NL03\n"); TE
if (loccas == 0) {
pj = memchr (pi, locz [0], locl);
if (pj == NULL) 
goto m2920; 
m2900:
if (locwra == 0)
loclae2 = loclae;
else {
loclae2 = locl - (pj - pi);
if (loclae2 > loclae)
loclae2 = loclae;
}
TA fprintf (lug, "NL12 %d\n", loclae2); TE
if (loccas == 0) {
if (memcmp (pj, locz, loclae2) != 0) {
goto m2910;
}
}
else {
for (i = 0; i < loclae; i ++)
work [i] = tolower (pj [i]);
if (memcmp (work, work2, loclae2) != 0) {
goto m2910;
}
}
if (loclae2 == loclae) 
goto m2905; 
temp = lauf -> vorw;
TA fprintf (lug, "NL16\n"); TE
if (temp == NULL) 
goto m2920; 
i = loclae2;
loclae2 = loclae - loclae2;
TA fprintf (lug, "NL17 %d\n", loclae2); TE
if (temp -> lben < loclae2) 
goto m2920; 
TA fprintf (lug, "NL18\n"); TE
pi = &(*temp).datn [0];
TA fprintf (lug, "NL19\n"); TE
if (loccas == 0) {
if (memcmp (pi, locz + i, loclae2) != 0)
goto m2920; 
}
else {
for (j = 0; j < loclae; j ++)
work [j] = tolower (pi [j]);
if (memcmp (work, work2 + i, loclae2) != 0)
goto m2920; 
}
TA fprintf (lug, "NL20\n"); TE
goto m2905; 
}
else {
pjl = memchr (pi, tolower (locz [0]), locl);
pju = memchr (pi, toupper (locz [0]), locl);
TA fprintf (lug, "NL34 %d %d\n", pjl, pju); TE
if (pjl == NULL)
if (pju == NULL)
goto m2920; 
else {
pj = pju;
goto m2900; 
}
if (pju == NULL) {
pj = pjl;
goto m2900; 
}
if (pjl < pju)
pj = pjl;
else pj = pju;
goto m2900; 
}
m2905:
TA fprintf (lug, "NL06\n"); TE
lauf = lauf -> vorw;
if (zweiter == 0)
goto m2860; 
else goto m2880; 
m2910:
i = pj - pi + 1;
pi += i;
locl -= i;
goto m2890; 
m2920:
strcpy (pvins [2], lauf -> schl); 
wakt -> clp = lauf;
dataend = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 56:
m2930:
rloc = 1;
goto m2840; 
m2940:
rloc = 0;
zweiter = 0;
lauf = wakt -> clp -> rckw;
if (lauf == NULL)
goto m2960;
m2950:
if (lauf == wakt -> anfang) {
m2960:
if (wakt -> wrapon == 0) {
eazone (t071 [la]); 
goto m2870;
}
eazone (t073 [la]); 
zweiter = 1;
lauf = wakt -> bottom;
m2970:
if (lauf == wakt -> anfang)
goto m2870;
if (lauf -> vorw == wakt -> clp)
goto m2870;
}
pi = &(*lauf).datn [loca - 1];
if (locwra == 0) {
i = lauf -> lben;
if (loce > 0)
if (loce < lauf -> lben)
i = loce;
locl = i - loca - loclae + 2;
}
else locl = lauf -> lben;
TA fprintf (lug, "NL3 %d\n", locl); TE
m2980:
if (locl < 1) 
goto m3010; 
if (loccas == 0) {
pj = memchr (pi, locz [0], locl);
if (pj == NULL) 
goto m3010; 
m2985:
if (locwra == 0)
loclae2 = loclae;
else {
loclae2 = locl - (pj - pi);
if (loclae2 > loclae)
loclae2 = loclae;
}
TA fprintf (lug, "NL12 %d\n", loclae2); TE
if (loccas == 0) {
if (memcmp (pj, locz, loclae2) != 0) {
goto m3000;
}
}
else {
for (i = 0; i < loclae; i ++)
work [i] = tolower (pj [i]);
if (memcmp (work, work2, loclae2) != 0) {
goto m3000;
}
}
if (loclae2 == loclae) 
goto m2995; 
temp = lauf -> vorw;
TA fprintf (lug, "NR16\n"); TE
if (temp == NULL) 
goto m3010; 
i = loclae2;
loclae2 = loclae - loclae2;
TA fprintf (lug, "NR17 %d\n", loclae2); TE
if (temp -> lben < loclae2) 
goto m3010; 
TA fprintf (lug, "NR18\n"); TE
pi = &(*temp).datn [0];
TA fprintf (lug, "NR19\n"); TE
if (loccas == 0) {
if (memcmp (pi, locz + i, loclae2) != 0)
goto m3010; 
}
else {
for (j = 0; j < loclae; j ++)
work [j] = tolower (pi [j]);
if (memcmp (work, work2 + i, loclae2) != 0)
goto m3010; 
}
TA fprintf (lug, "NR20\n"); TE
goto m2995; 
}
else {
pjl = memchr (pi, tolower (locz [0]), locl);
pju = memchr (pi, toupper (locz [0]), locl);
if (pjl == NULL)
if (pju == NULL)
goto m3010; 
else {
pj = pju;
goto m2985; 
}
if (pju == NULL) {
pj = pjl;
goto m2985; 
}
if (pjl < pju)
pj = pjl;
else pj = pju;
goto m2985; 
}
m2995:
lauf = lauf -> rckw;
if (zweiter == 0)
goto m2950; 
else goto m2970; 
m3000:
i = pj - pi + 1;
pi += i;
locl -= i;
goto m2980; 
m3010:
strcpy (pvins [2], lauf -> schl); 
wakt -> clp = lauf;
dataend = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 62:
if (restleer == 1) {
typ = 1;
pfktemp [0] = 1; 
TA fprintf (lug, "PF1\n"); TE
goto m3080;
}
if (*pz == cmdsep) {
typ = 1;
pfktemp [0] = 1; 
pz ++;
TA fprintf (lug, "PF2\n"); TE
goto m3080;
}
for (i = 0; i <= 24; i ++)
pfktemp [i] = 0;
bereich = 0;
itemp = 0;
itemp2 = 0;
m3020:
TA fprintf (lug, "PF3\n"); TE
i = strspn (pz, num); 
if (i > 0) {
if (i > 2)
goto m4300; 
TA fprintf (lug, "PF4\n"); TE
(void) sscanf (pz, "%d", &j);
if (j == 0 || j > 24) {
eazone (t074 [la]); 
return 1; 
}
TA fprintf (lug, "PF5\n"); TE
if (bereich == 1) {
if (j < jalt)
goto m4220; 
for (k = 1; k <= j - jalt; k ++)
pfktemp [jalt + k] = 1;
bereich = 0;
itemp2 = 0;
}
else {
pfktemp [j] = 1;
itemp = 1;
itemp2 = 1;
}
pz += i;
TA fprintf (lug, "PF6\n"); TE
}
else {
TA fprintf (lug, "PF7\n"); TE
switch (*pz) {
case '?':
typ = 1;
if (itemp == 0)
pfktemp [0] = 1; 
pz ++;
TA fprintf (lug, "PF8\n"); TE
goto m3070;
case '-':
case ':':
if (bereich == 1)
goto m4250; 
TA fprintf (lug, "PF9\n"); TE
if (itemp2 == 0)
goto m4250; 
bereich = 1;
jalt = j;
pz ++;
break;
case 'a':
case 'A':
i = strspn (pz, alpha); 
if (i > 3)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "ALL", i) != 0)
goto m4250; 
pfktemp [0] = 1; 
pz += i;
TA fprintf (lug, "PF10\n"); TE
goto m3030; 
default:
TA fprintf (lug, "PF11\n"); TE
goto m3030; 
}
}
TA fprintf (lug, "PF12\n"); TE
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3020;
TA fprintf (lug, "PF13\n"); TE
if (bereich == 1)
goto m4250; 
restleer = 1;
typ = 1;
TA fprintf (lug, "PF14\n"); TE
goto m3080;
m3030:
TA fprintf (lug, "PF15\n"); TE
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3040;
restleer = 1;
typ = 1;
TA fprintf (lug, "PF16\n"); TE
goto m3080;
m3040:
TA fprintf (lug, "PF17\n"); TE
if (*pz == cmdsep) {
pz ++;
typ = 1;
goto m3080;
}
if (*pz == '?') {
pz ++;
typ = 1;
goto m3070;
}
TA fprintf (lug, "PF18\n"); TE
i = strspn (pz, alpha); 
if (i == 0)
goto m4250; 
if (i > 6)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "SET", i) == 0) {
typ = 4;
goto m3050;
}
if (memcmp (pz, "EXEC", i) == 0) {
typ = 5;
goto m3050;
}
if (memcmp (pz, "LOCK", i) == 0) {
typ = 2;
goto m3050;
}
if (memcmp (pz, "UNLOCK", i) == 0) {
typ = 3;
goto m3050;
}
goto m4250; 
m3050:
pz += i; 
if (typ == 4) {
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3060;
goto m4250; 
m3060:
if (*pz == cmdsep)
goto m4250; 
i = getket (&pz, &restleer);
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (93, i);
return 1; 
}
memcpy (pfktext [0], kette, strlen (kette));
pfktext [0] [strlen (kette)] = '\0';
}
m3070:
TA fprintf (lug, "PF19\n"); TE
while (*pz) 
if (*pz == ' ')
pz ++;
else
if (*pz != cmdsep)
goto m4250; 
else goto m3080;
restleer = 1;
m3080:
TA fprintf (lug, "PF20 %d\n", typ); TE
switch (typ) {
case 1: 
eazone (t075 [la]);
for (i = 1; i <= 24; i ++) {
if (pfktemp [0] == 0)
if (pfktemp [i] == 0)
continue;
if (pfkbenu [i] == 0)
continue;
if (memcmp (pfktext [i], "'-page'", 7) == 0) {
Sprintf (fehler, " -%d", blaettg);
goto m3090;
}
if (memcmp (pfktext [i], "'+page'", 7) == 0) {
Sprintf (fehler, " +%d", blaettg);
goto m3090;
}
if (memcmp (pfktext [i], "'-half'", 7) == 0) {
Sprintf (fehler, " -%d", blaetth);
goto m3090;
}
if (memcmp (pfktext [i], "'+half'\0", 8) == 0) {
Sprintf (fehler, " +%d", blaetth);
goto m3090;
}
if (memcmp (pfktext [i], "'del'", 5) == 0) {
strcpy (fehler, t076 [la]); 
goto m3090;
}
if (memcmp (pfktext [i], "'ins'", 5) == 0) {
strcpy (fehler, t077 [la]);
goto m3090;
}
if (memcmp (pfktext [i], "'pos1'", 6) == 0) {
strcpy (fehler, t078 [la]); 
goto m3090;
}
if (memcmp (pfktext [i], "'cleft'", 7) == 0) {
strcpy (fehler, t079 [la]); 
goto m3090;
}
if (memcmp (pfktext [i], "'cright'", 8) == 0) {
strcpy (fehler, t080 [la]); 
goto m3090;
}
if (memcmp (pfktext [i], "'cup'", 5) == 0) {
strcpy (fehler, t081 [la]); 
goto m3090;
}
if (memcmp (pfktext [i], "'cdown'", 7) == 0) {
strcpy (fehler, t082 [la]); 
goto m3090;
}
Sprintf (ch100, "%2d %c %s", i, t021 [la] [pfklock [i]],
pfktext [i]);
eazone (ch100);
continue;
m3090:
Sprintf (ch100, "%2d %c %s %s", i, t021 [la] [pfklock [i]],
pfktext [i], fehler);
eazone (ch100);
}
break;
case 2: 
for (i = 1; i <= 24; i ++) {
if (pfktemp [0] == 0)
if (pfktemp [i] == 0)
continue;
pfklock [i] = 1;
}
break;
case 3: 
for (i = 1; i <= 24; i ++) {
if (pfktemp [0] == 0)
if (pfktemp [i] == 0)
continue;
pfklock [i] = 0;
}
break;
case 4: 
for (i = 1; i <= 24; i ++) {
if (pfktemp [0] == 0)
if (pfktemp [i] == 0)
continue;
strcpy (pfktext [i], pfktext [0]);
if (strlen (pfktext [i]) == 0) {
pfkbenu [i] = 0;
pfklock [i] = 0;
}
else {
pfkbenu [i] = 1;
pfklock [i] = 1;
}
}
break;
case 5: 
for (i = 1; i <= 24; i ++) {
if (pfktemp [0] == 0)
if (pfktemp [i] == 0)
continue;
if (pfktext [i] [0] == '\'') {
fnr = i;
}
else break;
}
break;
default:
profeh (39, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 64:
if (restleer == 1)
goto m4110; 
m3100:
getnum (&pz, &restleer);
switch (prmt) {
case 0:
goto m4110; 
case 1:
case 2:
case Ffehlbef:
goto m4250; 
case 3:
break; 
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
default:
profeh (43, prmt);
return 1;
}
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
wlauf = wakt;
crenum (numt, numc);
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc, 8);
goto m4260; 
case 2: 
goto m4130;
case 3: 
strcpy (meldung, t032 [la]); 
goto m4230; 
case 4: 
strcpy (meldung, t033 [la]); 
goto m4230; 
case 5: 
return 1;
case 6: 
goto m4140;
default:
profeh (44, prmt);
return 1;
}
wakt -> clpalt = wakt -> clp;
switch (numt) {
case 1: 
wakt -> clp = nump;
break;
case 2: 
profeh (28, prmt);
return 1;
case 3: 
wakt -> clp = nump;
break;
}
if (wakt -> clp != wakt -> clpalt)
dataend = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 67:
typ = 0;
if (restleer == 1 || *pz == cmdsep)
goto m3130; 
i = getnam (&pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinbuc:
i = getzei (&pz, &restleer, '?');
switch (i) {
case 0:
goto m3120; 
case Fkeinbuc:
goto m4250; 
default:
profeh (71, i);
return 1; 
}
case Fzugross:
goto m4250; 
default:
profeh (69, i);
return 1; 
}
if (memcmp (name, "EXEC", lname) == 0) {
typ = 1;
goto m3110;
}
if (lname == 1)
goto m4160; 
if (memcmp (name, "LIST", lname) == 0) {
typ = 3;
goto m3110;
}
if (memcmp (name, "LOAD", lname) == 0) {
typ = 5;
goto m3110;
}
goto m4250; 
m3110:
if (restleer == 1)
goto m3130;
if (*pz == cmdsep)
goto m3130;
i = getnam (&pz, &restleer); 
switch (i) {
case 0:
break;
case Fkeinbuc:
goto m4250; 
case Fzugross:
goto m4250; 
default:
profeh (70, i);
return 1; 
}
if (memcmp (name, "ALL", lname) != 0)
goto m4250; 
typ ++;
m3120:
if (restleer == 1)
goto m3130;
if (*pz != cmdsep)
goto m4250; 
m3130:
switch (typ) {
case 0:
for (i = 0; i <= profilanz; i ++) {
switch (profilmel [i]) {
case 1:
strcpy (pathname, profillog [i]);
break;
case 169:
Sprintf (pathname, "%s%s", profillog [i], t169 [la]);
break;
case 170:
Sprintf (pathname, "%s%s", profillog [i], t170 [la]);
break;
case 171:
Sprintf (pathname, "%s%s", profillog [i], t171 [la]);
break;
case 172:
Sprintf (pathname, "%s%s", profillog [i], t172 [la]);
break;
case 173:
strcpy (pathname, t173 [la]);
break;
case 174:
strcpy (pathname, t174 [la]);
break;
case 175:
strcpy (pathname, t175 [la]);
break;
default:
profeh (48, profilmel [i]);
continue;
}
eazone (pathname);
}
case 1:
case 2:
for (proft = profa; proft != NULL; proft = proft -> vorw) {
if (typ == 1) {
if (proft -> datn [0] == '!')
i = ausfue (&(proft -> datn [1]));
}
else {
if (proft -> datn [0] == '!')
i = ausfue (&(proft -> datn [1]));
else i = ausfue (&(proft -> datn [0]));
}
}
break;
case 3:
case 4:
for (proft = profa; proft != NULL; proft = proft -> vorw)
if (proft -> datn [0] == '!')
eazone (&(proft -> datn [0]));
else if (typ == 4)
eazone (&(proft -> datn [0]));
break;
case 5:
case 6:
lalt = wakt -> clp;
nchs = lalt -> vorw; 
i = 0;
for (proft = profa; proft != NULL; proft = proft -> vorw) {
if (proft -> datn [0] == '!')
goto m3140;
else if (typ == 6)
goto m3140;
continue;
m3140:
vori = wakt -> clp;
wakt -> clp = (struct l *) malloc (lsl + proft -> laen);
vori -> vorw = wakt -> clp;
wakt -> clp -> rckw = vori;
memcpy (wakt -> clp -> datn, proft -> datn, proft -> laen);
if (wakt -> caseu == 1)
for (j = 0; j < proft -> laen; j ++)
*(wakt -> clp -> datn + j) =
toupper (*(wakt -> clp -> datn + j));
memset (wakt -> clp -> schl,  ' ', 8);
wakt -> clp -> flag = ' ';
wakt -> clp -> lnlz = proft -> laen;
wakt -> clp -> lben = proft -> laen;
wakt -> clp -> lmax = proft -> laen;
wakt -> clp -> vorw = nchs;
i ++;
}
if (i > 0) {
dataend = 1;
wakt -> notfiled = 1;
wakt -> zeilenzahl += i;
zzaend = 1;
numein (lalt, nchs, i);
if (nchs != NULL)
nchs -> rckw = wakt -> clp;
else wakt -> bottom = wakt -> clp;
}
break;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 68:
goto m1750; 
case 69:
beta = 0;
insmode = 0;
m3150:
typ = 0;
if (restleer == 1)
goto m3170;
i = getnam (&pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinbuc:
if (*pz == cmdsep)
goto m3170;
if (*pz == '?') {
typ = 1;
pz ++; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3160;
restleer = 1;
goto m3170;
}
goto m4250; 
case Fzugross:
goto m4120; 
default:
profeh (110, i);
return 1; 
}
if (lname == 1)
goto m4160; 
if (memcmp (name, "ON", lname) == 0)
goto m3160; 
if (memcmp (name, "OFF", lname) == 0) {
typ = 2;
goto m3160;
}
goto m4120; 
m3160:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m3170:
if (beta == 1)
goto m1185;
if (insmode == 1)
goto m2070;
switch (typ) {
case 0:
quiet = 1;
break;
case 1:
if (quiet == 1)
eazone ("ON");
else eazone ("OFF");
break;
case 2:
quiet = 0;
break;
default:
profeh (111, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 70:
if (restleer == 1 || *pz == cmdsep)
goto m4270; 
repund = 0;
i = getciv (1, &pz, &restleer);
TA fprintf (lug, "REPO %d %d %d\n", spaa, spae, i); TE
switch (i) {
case 0:
break;
case Fkeinesp:
if (getciv1 == 1)
goto m4250; 
break;
case Fpvninum:
if (getciv1 == 1)
goto m4370; 
break;
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fspalte0:
goto m4200; 
case Fanfgend:
goto m4150; 
case Fprofehl:
return 1; 
default:
profeh (53, i);
return 1; 
}
repl1 = spaa;
repl2 = spae;
if (*pz == cmdsep)
goto m4110; 
TA fprintf (lug, "REPM %d %s\n", pz, pz); TE
i = getket (&pz, &restleer);
TA fprintf (lug, "REPX %d\n", i); TE
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (82, i);
return 1; 
}
strcpy (replk, kette);
TA fprintf (lug, "REPN %d %s\n", pz, pz); TE
if (restleer == 1) {
repli = 1;
goto m3200; 
}
i = strspn (pz, num); 
if (i > 0) {
errno = 0;
repli = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (repli == 0)
goto m4190; 
pz += i;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3180;
restleer = 1;
goto m3200;
}
else
if (*pz == cmdsep) {
repli = 1;
goto m3190;
}
else goto m4250; 
m3180:
if (*pz != cmdsep)
goto m4250; 
m3190:
pz ++;
m3200:
TA fprintf (lug, "REPL %d %d %s %d\n",repl1,repl2,replk,repli); TE
lreplk = strlen (replk); 
if (repl2 == 0)
lrepld = lreplk; 
else lrepld = repl2 - repl1 + 1;
lauf = wakt -> clp;
for (i = 1; i <= repli; i ++) {
if (lauf == NULL) {
eazone (t070 [la]); 
goto m3260;
}
if (lauf == wakt -> anfang)
if (repli == 1) {
strcpy (meldung, t195 [la]); 
goto m4240;
}
else goto m3250;
pi = &(*lauf).datn [repl1 - 1];
if (repl2 == 0)  {
m3210:
TA fprintf (lug, "REP01 %c%s%c\n", '|', lauf -> datn, '|'); TE
j = repl1 + lreplk - 1;
if (j <= lauf -> lnlz) {
memcpy (pi, replk, lreplk);
TA fprintf (lug, "REP02 %c%s%c\n", '|',lauf -> datn,'|'); TE
if (repund == 1) {
lauf -> lben = j;
goto m3240; 
}
goto m3250; 
}
if (j <= lauf -> lben) {
memcpy (pi, replk, lreplk);
TA fprintf (lug, "REP03 %c%s%c\n", '|',lauf -> datn,'|'); TE
if (repund == 1)
lauf -> lben = j;
goto m3240; 
}
if (j <= lauf -> lmax) {
if (repl1 > lauf -> lben)
memset (&(*lauf).datn [lauf -> lben], ' ',
repl1 - lauf -> lben - 1);
memcpy (pi, replk, lreplk);
goto m3230; 
}
vergro (j - lauf -> lmax);
k = repl1 - lauf -> lben - 1;
if (k > 0)
memset (&(*lauf).datn [lauf -> lben], ' ', k);
lauf -> lben = lauf -> lmax;
lauf -> lnlz = lauf -> lmax;
pi = &(*lauf).datn [repl1 - 1]; 
memcpy (pi, replk, lreplk);
goto m3250; 
} 
else  {
if (repl2 >= lauf -> lben) {
repund = 1;
goto m3210; 
}
if (lrepld == lreplk) {
memcpy (pi, replk, lreplk);
goto m3250;
}
if (lrepld > lreplk) {
memcpy (pi, replk, lreplk);
memmove (pi + lreplk, pi + lrepld, lauf -> lben - repl2);
lauf -> lnlz -= lrepld - lreplk;
if (lauf -> lnlz < 0) 
lauf -> lnlz = 0;   
lauf -> lben -= lrepld - lreplk;
goto m3250;
}
delta = lreplk - lrepld;
if (delta <= lauf -> lmax - lauf -> lben) {
m3220:
memmove (pi + lreplk, pi + lrepld, lauf -> lben - repl2);
memcpy (pi, replk, lreplk);
lauf -> lnlz += delta;
lauf -> lben += delta;
goto m3250;
}
vergro (delta - lauf -> lmax + lauf -> lben);
pi = &(*lauf).datn [repl1 - 1]; 
goto m3220;
}
m3230:
lauf -> lben = j;
m3240:
pi = lauf -> datn;
pi += lauf -> lben - 1;
for (m = lauf -> lben; m >= 1; m --)
if (*pi == ' ')
pi --;
else break;
lauf -> lnlz = m;
m3250:
vori = lauf;
lauf = lauf -> vorw;
} 
m3260:
wakt -> clp = vori;
dataend = 1;
wakt -> notfiled = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 71:
typ = 1;
typ2 = 0;
if (restleer == 1)
goto m3280;
if (*pz == cmdsep) {
pz ++;
goto m3280;
}
if (*pz == '?') {
typ = 2;
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3270;
restleer = 1;
goto m3280;
}
i = getciv (3, &pz, &restleer);
TA fprintf (lug, "REK01 %d %d\n", i, getciv1); TE
switch (i) {
case 0:
typ = 1;
typ2 = 2;
anzahl = spaa;
if (spae == 0)
goto m4250; 
anzahl2 = spae;
goto m3270; 
case Fkeinesp:
case Fpvninum:
if (getciv1 == 1)
break; 
typ = 1;
typ2 = 1;
anzahl = spaa;
break; 
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fprofehl:
return 1; 
default:
profeh (132, i);
return 1; 
}
m3270:
while (*pz) 
if (*pz == ' ')
pz ++;
else
if (*pz != cmdsep)
goto m4250; 
else goto m3280;
restleer = 1;
m3280:
switch (typ) {
case 1:
switch (typ2) {
case 0:
i = rekbase;
j = rekincr;
break;
case 1:
i = anzahl;
j = anzahl;
break;
case 2:
i = anzahl;
j = anzahl2;
}
if (i + (wakt -> zeilenzahl - 1) * j > 99999999) {
eazone (t145 [la]); 
return 1; 
}
if (typ2 > 0) {
rekbase = i;
rekincr = j;
j = rekincr / 5;
if (j == 0)
j = 1;
for (incrt = 9; incrt >= 1; incrt --)
if (j >= incrtab [incrt])
break;
incr = incrtab [incrt];
for (incrt2 = 0; incrt2 <= 9; incrt2 ++) {
if (incrtab [incrt2] < rekincr)
incrtab2 [incrt2] = incrtab [incrt2];
else break;
}
incrtab2 [incrt2] = rekincr;
}
lauf = wakt -> anfang -> vorw;
while (lauf != NULL) {
Sprintf ((*lauf).schl, "%08d", i);
i += rekincr;
lauf = lauf -> vorw;
}
eazone (t083 [la]); 
dataend = 1;
break;
case 2:
Sprintf (zeill, "%d %d", rekbase, rekincr);
eazone (zeill);
break;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 73:
if (restleer != 1)
if (*pz != cmdsep)
goto m4250; 
switch (wakt -> setp1) {
case 0:
goto m4130; 
case 1:
if (wakt -> setp != wakt -> clp) {
wakt -> clp = wakt -> setp;
dataend = 1;
}
break;
case 2:
eazone (t085 [la]); 
wakt -> clp = wakt -> setp;
dataend = 1;
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 75:
rloc = 1;
goto m2180;
m3290:
rloc = 0;
lauf = wakt -> clp -> rckw;
zweiter = 0;
if (lauf == NULL)
goto m3310;
m3300:
if (lauf == wakt -> anfang) {
m3310:
if (wakt -> wrapon == 0) {
eazone (t071 [la]); 
goto m2230;  
}
eazone (t073 [la]); 
zweiter = 1;
lauf = wakt -> bottom;
m3320:
if (lauf == wakt -> anfang)
goto m2230;
if (lauf -> vorw == wakt -> clp)
goto m2230;
}
pi = &(*lauf).datn [loca - 1];
if (locwra == 0) {
i = lauf -> lben;
if (loce > 0)
if (loce < lauf -> lben)
i = loce;
locl = i - loca - loclae + 2;
}
else locl = lauf -> lben;
TA fprintf (lug, "RL3 %d\n", locl); TE
m3330:
if (locl < 1) {
lauf = lauf -> rckw;
if (zweiter == 0)
goto m3300;
else goto m3320;
}
if (loccas == 0) {
pj = memchr (pi, locz [0], locl); 
TA fprintf (lug, "RL11\n"); TE
if (pj == NULL)
goto m3335; 
m3332:
if (locwra == 0)
loclae2 = loclae;
else {
loclae2 = locl - (pj - pi);
if (loclae2 > loclae)
loclae2 = loclae;
}
TA fprintf (lug, "RL12 %d\n", loclae2); TE
if (loccas == 0) {
if (memcmp (pj, locz, loclae2) != 0) {
goto m3350;
}
}
else {
for (i = 0; i < loclae; i ++)
work [i] = tolower (pj [i]);
if (memcmp (work, work2, loclae2) != 0) {
goto m3350;
}
}
if (loclae2 == loclae) 
goto m3355; 
temp = lauf -> vorw;
TA fprintf (lug, "RL16\n"); TE
if (temp == NULL) 
goto m3335; 
i = loclae2;
loclae2 = loclae - loclae2;
TA fprintf (lug, "RL17 %d\n", loclae2); TE
if (temp -> lben < loclae2) 
goto m3335; 
TA fprintf (lug, "RL18\n"); TE
pi = &(*temp).datn [0];
TA fprintf (lug, "RL19\n"); TE
if (loccas == 0) {
if (memcmp (pi, locz + i, loclae2) != 0)
goto m3335; 
}
else {
for (j = 0; j < loclae; j ++)
work [j] = tolower (pi [j]);
if (memcmp (work, work2 + i, loclae2) != 0)
goto m3335; 
}
pvinn [1] = i; 
TA fprintf (lug, "RL20\n"); TE
goto m3360; 
}
else {
pjl = memchr (pi, tolower (locz [0]), locl);
pju = memchr (pi, toupper (locz [0]), locl);
if (pjl != NULL) {
if (pju == NULL) {
pj = pjl;
goto m3332; 
}
if (pjl < pju) {
pj = pjl;
goto m3332; 
}
else {
pj = pju;
goto m3332; 
}
}
else  {
if (pju != NULL) {
pj = pju;
goto m3332; 
}
}
}
m3335:
lauf = lauf -> rckw;
if (zweiter == 0)
goto m3300;
else goto m3320;
m3350:
i = pj - pi + 1;
pi += i;
locl -= i;
goto m3330; 
m3355:
pvinn [1] = 0; 
m3360:
strcpy (pvins [2], lauf -> schl); 
pvinn [0] = pj - &(*lauf).datn [0] + 1; 
wakt -> clp = lauf;
dataend = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 77:
goto m2930;
case 80:
typ = 0;
if (restleer == 1)
goto m3400;
i = strspn (pz, alpha); 
if (i == 0) {
if (*pz == cmdsep)
goto m3400;
if (*pz == '?') {
typ = 1;
goto m3370;
}
goto m4250; 
m3370:
pz ++; 
}
else {
if (i > 3)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (i == 1) 
if (*pz == 'O')
goto m4160; 
if (memcmp (pz, "ON", i) == 0)
goto m3380;
if (memcmp (pz, "OFF", i) == 0) {
typ = 2;
goto m3380;
}
goto m4250; 
m3380:
pz += i; 
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3390;
restleer = 1;
goto m3400;
m3390:
if (*pz != cmdsep)
goto m4250; 
m3400:
scoffon = 0;
switch (typ) {
case 0:
if (scope == 0) {
m3410:
if (termok == 0) {
eazone (t165 [la]);
return 1; 
}
#ifdef Mlin
(void) refresh ();
#endif
curses ();
if (scope == 1) {
#ifdef Mp
i = - LINES;                                      
protok ();                                        
i = - COLS;                                       
protok ();                                        
#endif
bilgro ();
wfaend = 1;
}
}
else {
scoffon = 1;
goto m3420;
}
break;
case 1:
if (scope == 1)
eazone ("ON");
else eazone ("OFF");
break;
case 2:
#ifdef Ms
eazone (t200 [la]);
goto m0840; 
#endif
if (scope == 1) {
#ifndef Ms
m3420:
(void) erase ();
(void) refresh ();
(void) endwin ();
#else
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
i = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-7\n", fnrs);
(void) fflush (stdout);
#endif
scope = 0;
if (scoffon== 1)
goto m3410;
}
break;
default:
profeh (27, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 81:
cola = 1;
cole = - 1;
seqbas = 1;
seqzuw = 1;
seqfue = 0;
seqanz = 1;
seqneu = 1;
if (restleer == 1 || *pz == cmdsep)
goto m4270; 
i = getciv (1, &pz, &restleer); 
TA fprintf (lug, "GC1 %d %d %d\n", i, spaa, spae); TE
switch (i) {
case 0:
m3430:
if (restleer == 1 || *pz == cmdsep)
goto m4270; 
cola = spaa;
cole = spae;
break;
case Fkeinesp:
case Fpvninum:
if (getciv1 == 1) {
cola = wakt -> zona;
cole = wakt -> zone;
break;
}
else goto m3430;
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fspalte0:
goto m4200; 
case Fanfgend:
goto m4150; 
case Fprofehl:
return 1; 
default:
profeh (57, i);
return 1; 
}
if (restleer == 1)
goto m4250; 
if (*pz != '/')
goto m4250; 
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3440;
restleer = 1;
goto m3460;
m3440:
i = getciv (2, &pz, &restleer); 
TA fprintf (lug, "GC2 %d %d %d\n", i, spaa, spae); TE
switch (i) {
case 0:
case Fspalte0: 
case Fanfgend: 
seqbas = spaa;
seqzuw = spae;
break;
case Fkeinesp: 
if (getciv1 == 0) 
seqbas = spaa;
break;
case Ffehlbef:
case Fpvninum:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fprofehl:
return 1; 
default:
profeh (58, i);
return 1; 
}
if (restleer == 1)
goto m4250; 
i = getzei (&pz, &restleer, '/');
switch (i) {
case 0:
break;
case Fkeinbuc:
goto m4250; 
default:
profeh (153, i);
return 1; 
}
i = getzhl (&pz, &restleer); 
switch (i) {
case 0:
if (zahl == 0)
goto m4190; 
seqanz = zahl;
break;
case Ffehlbef:
case Fkeinesp:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
default:
profeh (59, i);
return 1; 
}
if (restleer == 1)
goto m3460; 
m3450:
if (*pz == cmdsep)
goto m3460; 
switch (*pz) {
case 'f':
case 'F':
seqfue = 1;
break;
case 'n':
case 'N':
break;
case 'r':
case 'R':
seqneu = 0;
break;
default:
goto m4250; 
}
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3450;
restleer = 1;
m3460:
seqzif = breite (abs (seqbas));
TA fprintf (lug, "SQ30 %d %d\n", seqbas, seqzif); TE
if (seqzif == Fzugross) {
m3470:
eazone (t190 [la]);
return 1; 
}
seqend = seqbas + (seqanz - 1) * seqzuw;
i = seqzif; 
seqzif = breite (abs (seqend));
TA fprintf (lug, "SQ31 %d %d\n", seqend, seqzif); TE
if (seqzif == Fzugross)
goto m3470;
if (seqfue == 1) {
if (i > seqzif)
seqzif = i;
if (i < seqzif)
i = seqzif;
}
if (seqbas < 0)
i ++;
if (seqend < 0)
seqzif ++;
if (i > seqzif)
seqzif = i; 
i = cole - cola + 1 - seqzif;
if (cole > 0) {
if (cole - cola + 1 < seqzif)
goto m3470;
}
else {
cole = cola + seqzif - 1;
i = 0;
}
TA fprintf (lug, "SQ4 %s\n", pz); TE
seqlau = seqbas;
if (seqfue == 1)
Sprintf (ch16, "%%0%dd", seqzif);
else Sprintf (ch16, "%%%dd", seqzif);
if (seqneu == 1)
goto m3510;
lauf = wakt -> clp;
if (lauf == wakt -> anfang)
if (seqanz == 1) {
strcpy (meldung, t195 [la]); 
goto m4240;
}
else {
lalt = lauf;
lauf = lauf -> vorw;
}
for (j = 1; j <= seqanz; j ++) {
if (lauf == NULL) {
eazone (t070 [la]); 
goto m3520;
}
Sprintf (ch8, ch16, seqlau);
pi = lauf -> datn;
if (cole <= lauf -> lnlz) {
if (i > 0)
memset (pi + cola - 1,  ' ', i);
memcpy (pi + cola - 1 + i, ch8, seqzif);
goto m3500; 
}
if (cole <= lauf -> lben) {
if (i > 0)
memset (pi + cola - 1,  ' ', i);
memcpy (pi + cola - 1 + i, ch8, seqzif);
goto m3490; 
}
if (cole <= lauf -> lmax) {
if (cola > lauf -> lben + 1)
memset (pi + lauf -> lben, ' ', cola - lauf -> lben - 1);
if (i > 0)
memset (pi + cola - 1,  ' ', i);
memcpy (pi + cola - 1 + i, ch8, seqzif);
goto m3480; 
}
vergro (cole - lauf -> lmax);
pi = lauf -> datn; 
if (cola > lauf -> lben + 1)
memset (pi + lauf -> lben, ' ', cola - lauf -> lben - 1);
if (i > 0)
memset (pi + cola - 1,  ' ', i);
memcpy (pi + cola - 1 + i, ch8, seqzif);
lauf -> lben = lauf -> lmax;
lauf -> lnlz = lauf -> lmax;
goto m3500; 
m3480:
lauf -> lben = cole;
m3490:
pi = lauf -> datn;
pi += lauf -> lben - 1;
for (m = lauf -> lben; m >= 1; m --)
if (*pi == ' ')
pi --;
else break;
lauf -> lnlz = m;
m3500:
seqlau += seqzuw;
lalt = lauf;
lauf = lauf -> vorw;
}
goto m3520;
m3510:
vori = wakt -> clp;
lauf = vori -> vorw;
lalt = vori;
nchs = vori -> vorw;
for (j = 1; j <= seqanz; j ++) {
lauf = (struct l *) malloc (lsl + cole);
lalt -> vorw = lauf;
lauf -> rckw = lalt;
lalt = lauf;
lauf -> lmax = cole;
lauf -> lben = cole;
lauf -> lnlz = cole;
lauf -> flag = ' '; 
Sprintf (ch8, ch16, seqlau);
pi = &(*lauf).datn [0];
TA fprintf (lug, "SQ3 %d %d %d %s\n", cola, cole, i, ch8); TE
memset (pi,  ' ', cola - 1 + i);
memcpy (pi + cola - 1 + i, ch8, seqzif);
seqlau += seqzuw;
}
lauf -> vorw = nchs;
if (nchs != NULL)
nchs -> rckw = lauf;
else wakt -> bottom = lauf;
numein (vori, nchs, seqanz);
zzaend = 1;
wakt -> zeilenzahl += seqanz;
m3520:
wakt -> clp = lalt;
dataend = 1;
wakt -> notfiled = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 82:
typ = 0;
if (restleer == 1)
goto m3550;
if (*pz == cmdsep)
goto m3550;
if (*pz == '?') {
typ = 1;
goto m3530;
}
goto m4250; 
m3530:
pz ++; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3540;
restleer = 1;
goto m3550;
m3540:
if (*pz != cmdsep)
goto m4250; 
m3550:
switch (typ) {
case 0:
wakt -> setp = wakt -> clp;
wakt -> setp1 = 1;
break;
case 1:
if (wakt -> setp1 == 0)
goto m4130; 
if (wakt -> setp1 == 2)
eazone (t085 [la]); 
zeisat (wakt -> setp);
break;
default:
profeh (25, typ);
return 1;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 83:
if (restleer == 1) {
typ = 3;
i = atoi (wakt -> bottom -> schl);
if (i <= 999999)
anzahl = 6;
else if (i <= 9999999)
anzahl = 7;
else anzahl = 8;
goto m3570;
}
i = strspn (pz, num); 
if (i == 0) {
if (*pz == cmdsep) {
typ = 3;
anzahl = 6;
goto m3570;
}
if (*pz != '?')
goto m4250; 
typ = 1;
pz ++;
}
else {
typ = 3;
errno = 0;
anzahl = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (anzahl > 8)
goto m4120; 
pz += i;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3560;
restleer = 1;
m3560:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m3570:
switch (typ) {
case 1:
Sprintf (tekst, "%d", wakt -> skey);
eazone (tekst);
break;
case 3:
wakt -> skey = anzahl;
wakt -> pwwidth = COLS - wakt -> skey - 1;
b_lin = b_lia + wakt -> skey;
memset (b_lia, ' ', 10);
memcpy (b_lin, lineal, wakt -> pwwidth);
wakt -> lwwidth =
wakt -> lwwidth + wakt -> skeyalt - wakt -> skey;
if (wakt -> inlcol == - 1)
inlakt = wakt -> lwwidth;
dataend = 1;
break;
default:
profeh (2, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 86:
Sprintf (fehler, t088 [la], "SORT");
eazone (fehler);
goto m4410; 
case 87:
TA fprintf (lug, "SO |%s|\n", pz); TE
richtung = 1; 
if (wakt -> casei == 0)
sorcas = 0;
else sorcas = 1;
sornum = 0;
typ1 = 2;
typ2 = 2;
if (restleer == 1)
goto m3680; 
if (*pz == '(') {
pz ++; 
typ1 = 1;
i = getniv (1 , &pz, &restleer); 
switch (i) {
case 0:
break;
case 1:
goto m4270;
case 2:
case Fparmfeh:
goto m4250;
case 3:
return 1;
case 4:
goto m4260;
case 5:
goto m4130;
case 6:
goto m4230;
case 7:
goto m4220;
case 8:
goto m4140;
case Fpvnidef:
goto m4170; 
case Fpvnisat:
goto m4380; 
}
if (restleer == 1)
goto m3680;
if (*pz == cmdsep)
goto m3680;
if (*pz != ')')
return 1;
pz ++; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3580;
restleer = 1;
goto m3680;
} 
m3580:
if (*pz == cmdsep)
goto m3680;
soanz = 0;
klammer = 0;
m3590:
switch (*pz) {
case 'a':
case 'A':
richtung = 1; 
goto m3600;
case 'd':
case 'D':
richtung = 0; 
goto m3600;
case 'i':
case 'I':
sorcas = 1;
goto m3600;
case 'n':
case 'N':
sornum = 1;
goto m3600;
default:
goto m3610;
}
m3600:
pz ++; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3590;
if (soanz == 0) {
restleer = 1;
goto m3680;
}
else goto m4250; 
m3610:
typ2 = 1;
soanz += 1;
doppelpunkt = 0;
if (soanz > 100) {
eazone (t140 [la]); 
return 1; 
}
if (*pz == '(') {
klammer = 1;
pz ++; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3620;
goto m4250; 
}
m3620:
i = strspn (pz, num); 
if (i == 0) 
goto m4250; 
errno = 0;
soanf [soanz] = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (soanf [soanz] == 0)
goto m4200; 
pz += i; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3630;
goto m4250; 
m3630:
if (*pz == ':') {
doppelpunkt = 1;
pz ++; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3640;
goto m4250; 
}
m3640:
i = strspn (pz, num); 
if (i == 0) 
goto m4250; 
errno = 0;
if (doppelpunkt == 1)
solen [soanz] = strtol (pz, NULL, 10) - soanf [soanz] + 1;
else solen [soanz] = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (solen [soanz] < 1)
if (doppelpunkt == 1)
goto m4150; 
else {
eazone (t141 [la]); 
return 1; 
}
if (richtung == 1) {
sogro [soanz] = 1;
sokle [soanz] = - 1;
}
else {
sogro [soanz] = - 1;
sokle [soanz] = 1;
}
socas [soanz] = sorcas;
sonum [soanz] = sornum;
pz += i; 
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3650;
restleer = 1;
goto m3680;
m3650:
if (*pz == cmdsep)
goto m3680;
if (*pz == ')') {
if (klammer == 0)
goto m4250; 
klammer = 0;
richtung = 1;
sorcas = 0;
sornum = 0;
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3660;
restleer = 1;
goto m3680;
m3660:
if (*pz == cmdsep)
goto m3680;
}
else if (klammer == 0) {
richtung = 1;
sorcas = 0;
sornum = 0;
}
if (*pz == ',' && ',' != cmdsep ||
*pz == ';' && ';' != cmdsep ||
*pz == '/' && '/' != cmdsep) {
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3670;
restleer = 1;
goto m3680;
m3670:
if (*pz == cmdsep)
goto m3680;
}
goto m3590;
m3680:
if (typ2 == 1 && soanz > 1) {
for (i = 1; i <= soanz; i ++) {
soanf2 [i] = soanf [i];
solen2 [i] = solen [i];
}
for (i = 1; i <= soanz - 1; i ++) {
for (j = i + 1; j <= soanz; j ++) {
if (soanf2 [i] > soanf2 [j]) {
ii = soanf2 [i];
soanf2 [i] = soanf2 [j];
soanf2 [j] = ii;
ii = solen2 [i];
solen2 [i] = solen2 [j];
solen2 [j] = ii;
}
}
}
for (i = 2; i <= soanz; i ++)
if (soanf2 [i] <= soanf2 [i - 1] + solen2 [i - 1] - 1) {
eazone (t087 [la]); 
return 1; 
}
}
if (typ1 == 2) {
nump1 = wakt -> anfang -> vorw;
if (nump1 == NULL) {
eazone (t138 [la]); 
return 1; 
}
nump2 = wakt -> bottom;
}
else if (nump1 == wakt -> anfang) {
strcpy (meldung, t139 [la]); 
goto m4240;
}
TA fprintf (lug, "%s %s\n", nump1 -> schl, nump2 -> schl); TE
if (typ2 == 2) {
TA fprintf (lug, "ohne Feldangaben\n"); TE
}
else {
TA fprintf (lug, "mit %d Feldangaben\n", soanz); TE
for (i = 1; i <= soanz; i ++) {
TA fprintf (lug, "%d %d %d %d %d %d %d\n", i, sogro [i],
sokle [i], socas [i], sonum [i], soanf [i], solen [i]); TE
}
}
setzuleeren = 0;
if (typ1 == 2)
if (wakt -> setp1 > 0)
setzuleeren = 1;
lauf = nump1 -> rckw;
for (sosat = 1; lauf != nump2; sosat ++) {
lauf = lauf -> vorw;
if (typ1 == 1)
if (wakt -> setp1 > 0)
if (lauf == wakt -> setp)
setzuleeren = 1;
}
sosat --;
TA fprintf (lug, "SO01 %d\n", sosat); TE
sozei = (struct l **) malloc (sosat * sizeof (struct l *));
if (sozei == NULL) {
eazone (t184 [la]); 
return 1; 
}
sozei [0] = nump1;
lauf = nump1;
temp = wakt -> anfang;
for (i = 1; lauf != nump2; i ++) {
lauf = lauf -> vorw;
sozei [i] = lauf;
}
vori = nump1 -> rckw;
nchs = nump2 -> vorw;
if (typ2 == 2) {
if (richtung == 1) {
vglgr = 1;
vglkl = - 1;
}
else {
vglgr = - 1;
vglkl = 1;
}
qsort (sozei, sosat, sizeof (struct l *), vergle);
}
else qsort (sozei, sosat, sizeof (struct l *), verglf);
vori -> vorw = sozei [0];
sozei [0] -> rckw = vori;
for (i = 0; i <= sosat - 2; i ++)
sozei [i] -> vorw = sozei [i + 1];
for (i = 1; i <= sosat - 1; i ++)
sozei [i] -> rckw = sozei [i - 1];
sozei [sosat - 1] -> vorw = nchs;
wakt -> clp = sozei [sosat - 1];
if (nchs != NULL)
nchs -> rckw = sozei [sosat - 1];
else wakt -> bottom = sozei [sosat - 1];
free (sozei);
numein (vori, nchs, sosat);
eazone (t086 [la]); 
if (setzuleeren == 1) {
wakt -> setp1 = 0; 
eazone (t167 [la]); 
}
dataend = 1;
wakt -> notfiled = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 89:
if (wakt -> casei == 0)
sspcas = 0; 
else sspcas = 1; 
ssphex = 0; 
sspida = 0; 
i = getciv (1, &pz, &restleer);
switch (i) {
case 0:
m3690:
ssp1 = spaa;
ssp2 = spae;
break;
case Fkeinesp:
case Fpvninum:
if (getciv1 == 1) {
ssp1 = wakt -> zona;
ssp2 = wakt -> zone;
break;
}
else goto m3690;
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fspalte0:
goto m4200; 
case Fanfgend:
goto m4150; 
case Fprofehl:
return 1; 
default:
profeh (54, i);
return 1; 
}
ssp1 --;
ssp2 --;
if (restleer == 1)  {
typ = 0; 
goto m3720; 
}
if (*pz == cmdsep) {
typ = 0;
goto m3720; 
}
typ = 1;
i = getket (&pz, &restleer);
switch (i) {
case 0:
break;
case Ffehlbef:
case Fkeineke:
goto m4250; 
case Fpvnidef:
goto m4170; 
case Fpvniket:
goto m4340; 
case Fzugross:
goto m4310; 
default:
profeh (83, i);
return 1; 
}
strcpy (suchkssp, kette);
ssplae = strlen (suchkssp);
if (wakt -> caseu == 1)
for (i = 0; i <= pz - pi; i ++)
*(suchkssp + i) = toupper (*(suchkssp + i));
if (restleer == 1)
goto m3720; 
m3700:
if (*pz == cmdsep)
goto m3720; 
switch (*pz) {
case 'e':
case 'E':
typ = 2;
break;
case 'h':
case 'H':
if (sspida == 1) {
sspcas = 0;
eazone (t187 [la]); 
}
strcpy (suchkssph, suchkssp);
i = hexasc (suchkssp);
if (i != 0)
return 1; 
ssplae /= 2;
ssphex = 1;
break;
case 'i':
case 'I':
if (ssphex == 1)
eazone (t187 [la]); 
else {
sspida = 1;
sspcas = 1;
}
break;
default:
goto m4250; 
}
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3700;
restleer = 1;
m3720:
if (sspcas == 1)
for (i = 0; i < ssplae; i ++)
work2 [i] = tolower (suchkssp [i]);
lauf = wakt -> clp;
if (lauf == wakt -> anfang) {
strcpy (meldung, t195 [la]); 
goto m4240;
}
pi = &(*lauf).datn [ssp1];
if (typ == 0) {
pj = pi;
goto m3770;
}
if (ssplae == 0) {
pj = pi;
goto m3770;
}
if (ssp2 >= 0) {
if (ssp1 > lauf -> lben - ssplae)
goto m3740;
suchlssp = ssp2 - ssp1 + 2 - ssplae;
}
else suchlssp = lauf -> lben - ssp1 - ssplae + 1;
m3730:
TA fprintf (lug, "SSP6 %d\n", suchlssp); TE
if (suchlssp < 1) {
m3740:
ketngf (1, ssphex, suchkssp, suchkssph);
return 1; 
}
if (sspcas == 0) {
pj = memchr (pi, suchkssp [0], suchlssp);
if (pj != NULL)
if (memcmp (pj, suchkssp, ssplae) == 0)
goto m3770; 
else goto m3760; 
}
else {
pjl = memchr (pi, tolower (suchkssp [0]), suchlssp);
pju = memchr (pi, toupper (suchkssp [0]), suchlssp);
TA fprintf (lug, "LO44 %d %d\n", pjl, pju); TE
if (pjl != NULL)
if (pjl < pju) {
pj = pjl;
goto m3750; 
}
else
if (pju == NULL) {
pj = pjl;
goto m3750; 
}
else {
pj = pju;
goto m3750; 
}
if (pju != NULL) {
pj = pju;
goto m3750; 
}
}
goto m3740;
m3750:
for (i = 0; i < ssplae; i ++)
work [i] = tolower (pj [i]);
if (memcmp (work2, work, ssplae) == 0)
goto m3770; 
m3760:
i = pj - pi + 1;
pi += i;
suchlssp -= i;
goto m3730; 
m3770:
if (typ == 2)
pj += ssplae;
i = pj - &(*lauf).datn [0];
j = lauf -> lben - i;
if (j < 0)
j = 0;
TA fprintf (lug, "SSP7 %d %d\n", i, j); TE
nchs = lauf -> vorw;
wakt -> clp = (struct l *) malloc (lsl + j);
lauf -> vorw = wakt -> clp;
if (nchs != NULL)
nchs -> rckw = wakt -> clp;
else wakt -> bottom = wakt -> clp;
wakt -> clp -> vorw = nchs;
wakt -> clp -> rckw = lauf;
memcpy (wakt -> clp -> datn, pj, j);
wakt -> clp -> lmax = j;
wakt -> clp -> lben = j;
wakt -> clp -> lnlz = j;
wakt -> clp -> flag = ' ';
numein (lauf, nchs, 1);
lauf -> lben -= j;
lauf -> lnlz = lauf -> lben;
zzaend = 1;
wakt -> zeilenzahl += 1;
dataend = 1;
wakt -> notfiled = 1;
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 92:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
if (wakt -> clp != wakt -> anfang) {
wakt -> clp = wakt -> anfang;
dataend = 1;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 95:
if (restleer == 1) {
typ = 2;
goto m3780;
}
i = strspn (pz, num); 
if (i == 0) {
if (*pz == cmdsep) {
typ = 2;
pz ++;
goto m3780;
}
switch (*pz) {
case '?':
typ = 1;
pz ++;
break;
default:
goto m4250; 
}
}
else {
typ = 3;
goto m3780;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else
if (*pz != cmdsep)
goto m4250; 
else goto m3780;
restleer = 1;
m3780:
switch (typ) {
case 1:
eazone (t089 [la]); 
break;
case 2:
tabtyp = Aformel;
tabsanf = 1;
tabsdif = 8;
break;
case 3:
tabtyp = Aformel;
errno = 0;
anzahl = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (anzahl == 0)
goto m4120; 
tabsanf = anzahl;
pz += i;
while (*pz) 
if (*pz == ' ')
pz ++;
else
if (*pz != cmdsep)
goto m4250; 
else goto m0840; 
goto m4410; 
default:
profeh (38, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 96:
memset (typ3, '0', 4);
if (restleer == 1)
goto m4110; 
i = strspn (pz, alpha); 
if (i == 0)
if (*pz == '?') {
typ = 10;
pz ++;
goto m3800;
}
else goto m4250; 
if (i > 7)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "LOG", i) == 0) {
typ = 1;
goto m3790;
}
if (memcmp (pz, "NOLOG", i) == 0) {
if (i <= 2)
goto m4160; 
typ = 2;
goto m3790;
}
if (memcmp (pz, "DUMP", i) == 0) {
typ = 3;
goto m3790;
}
if (memcmp (pz, "NODUMP", i) == 0) {
if (i <= 2)
goto m4160; 
typ = 4;
goto m3790;
}
if (memcmp (pz, "SHOW", i) == 0) {
typ = 5;
goto m3790;
}
if (memcmp (pz, "KEEP", i) == 0) {
typ = 6;
goto m3790;
}
if (memcmp (pz, "NOKEEP", i) == 0) {
if (i <= 2)
goto m4160; 
typ = 7;
goto m3790;
}
if (memcmp (pz, "EXAMINE", i) == 0) {
if (i <= 1)
goto m4160; 
typ = 8;
goto m3790;
}
if (memcmp (pz, "REPAIR", i) == 0) {
typ = 9;
goto m3790;
}
if (memcmp (pz, "MON", i) == 0) {
typ = 11;
goto m3790;
}
if (memcmp (pz, "NOMON", i) == 0) {
if (i <= 2)
goto m4160; 
typ = 12;
goto m3790;
}
if (memcmp (pz, "ERROR", i) == 0) {
if (i <= 1)
goto m4160; 
typ = 13;
goto m3790;
}
if (memcmp (pz, "NOERROR", i) == 0) {
if (i <= 2)
goto m4160; 
typ = 14;
goto m3790;
}
goto m4250; 
m3790:
pz += i;
m3800:
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3820;
restleer = 1;
m3810:
if (typ <= 2)
typ3 [0] = '1';
goto m3840;
m3820:
if (*pz == cmdsep)
goto m3810;
if (typ > 2)
goto m4250; 
i = strspn (pz, num); 
if (i == 0)
goto m4250; 
for (j = 1; j <= i; j ++) {
if (*pz > '3')
goto m4250; 
(void) sscanf (pz, "%1d", &k);
typ3 [k] = '1';
pz ++;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3830;
restleer = 1;
goto m3840;
m3830:
if (*pz != cmdsep)
goto m4250; 
m3840:
switch (typ) {
case 1: 
for (i = 0; i <= 3; i ++) {
if (typ3 [i] == '0')
continue;
if (test [i] == 1) {
Sprintf (meldung, "Testausgabe %d auf %s bereits aktiv",
i, logfile [i]);
eazone (meldung);
break;
}
strcpy (logfile [i], "exaEdit.log");
if (i > 0)
Sprintf (logfile [i] + 11, "%d", i);
lug = fopen (logfile [i], "w");
if (lug == NULL) {
Sprintf (ch100, "%s konnte nicht geoeffnet werden",
logfile [i]);
eazone (ch100);
break;
}
fprintf (lug, "Start %d\n", i);
(void) fclose (lug);
test [i] = 1; 
Sprintf (ch100, "Testausgabe %d auf %s begonnen", i,
logfile [i]);
eazone (ch100);
break;
}
break;
case 2: 
for (i = 0; i <= 3; i ++) {
if (typ3 [i] == '0')
continue;
if (test [i] == 0)
Sprintf (meldung, "Testausgabe %d nicht aktiv", i);
else {
test [i] = 0;
lug = fopen (logfile [i], "a");
fprintf (lug, "Stop %d\n", i);
(void) fclose (lug);
Sprintf (meldung, "Testausgabe %d auf %s beendet", i,
logfile [i]);
}
eazone (meldung);
}
break;
case 3: 
if (sigsegakt == 0)
eazone ("sigseg bereits inaktiv");
else {
(void) signal (SIGSEGV, SIG_DFL);
(void) signal (SIGILL, SIG_DFL);
#ifndef Mnt
(void) signal (SIGBUS, SIG_DFL);
#  ifndef Mos2
(void) signal (SIGIOT, SIG_DFL);
#  endif
#endif
sigsegakt = 0;
}
break;
case 4: 
if (sigsegakt == 1)
eazone ("sigseg bereits aktiv");
else {
(void) signal (SIGSEGV, sigseg);
(void) signal (SIGILL, SIG_DFL);
#ifndef Mnt
(void) signal (SIGBUS, SIG_DFL);
#  ifndef Mos2
(void) signal (SIGIOT, SIG_DFL);
#  endif
#endif
sigsegakt = 1;
}
break;
case 5: 
Sprintf (fehler, "%d %d %d %s %d %d %d", wakt -> clp,
wakt -> clp -> vorw, wakt -> clp -> rckw,
wakt -> clp -> schl, wakt -> clp -> lnlz,
wakt -> clp -> lben, wakt -> clp -> lmax);
eazone (fehler);
pi = wakt -> clp -> datn;
m3850:
i = 0;
fehler [0] = '\0';
m3860:
if (pi + 4 <= wakt -> clp -> datn + wakt -> clp -> lmax) {
Sprintf (fehler, "%s%02X%02X%02X%02X ", fehler,
*pi, *(pi + 1), *(pi + 2), *(pi + 3));
pi += 4;
i ++;
if (i == 8) {
eazone (fehler);
goto m3850;
}
goto m3860;
}
else {
switch (pi + 4 - wakt -> clp -> datn - wakt -> clp -> lmax) {
case 0:
break;
case 3:
Sprintf (fehler, "%s%02X", fehler,
*pi);
break;
case 2:
Sprintf (fehler, "%s%02X%02X", fehler,
*pi, *(pi + 1));
break;
case 1:
Sprintf (fehler, "%s%02X%02X%02X", fehler,
*pi, *(pi + 1), *(pi + 2));
break;
}
}
eazone (fehler);
break;
case 6: 
#ifdef Mp
ptkbleibt = 1;                                       
eazone ("Protokoll bleibt erhalten");                
#endif
break;
case 7: 
#ifdef Mp
ptkbleibt = 0;                                       
eazone ("Protokoll wird geloescht");                 
#endif
break;
case 8: 
for (lauf = wakt -> anfang; lauf; lauf = lauf -> vorw) {
if (lauf -> lnlz > lauf -> lben) {
Sprintf (fehler, "%s %d %d %d", lauf -> schl,
lauf -> lnlz, lauf -> lben, lauf -> lmax);
eazone (fehler);
}
if (lauf -> lben > lauf -> lmax) {
Sprintf (fehler, "%s %d %d %d", lauf -> schl,
lauf -> lnlz, lauf -> lben, lauf -> lmax);
eazone (fehler);
}
}
break;
case 9: 
for (lauf = wakt -> anfang; lauf; lauf = lauf -> vorw) {
if (lauf -> lben > lauf -> lmax) {
Sprintf (fehler, "%s %d %d %d", lauf -> schl,
lauf -> lnlz, lauf -> lben, lauf -> lmax);
eazone (fehler);
lauf -> lben = lauf -> lmax;
Sprintf (fehler, "%s %d %d %d", lauf -> schl,
lauf -> lnlz, lauf -> lben, lauf -> lmax);
eazone (fehler);
}
if (lauf -> lnlz > lauf -> lben) {
Sprintf (fehler, "%s %d %d %d", lauf -> schl,
lauf -> lnlz, lauf -> lben, lauf -> lmax);
eazone (fehler);
lauf -> lnlz = lauf -> lben;
Sprintf (fehler, "%s %d %d %d", lauf -> schl,
lauf -> lnlz, lauf -> lben, lauf -> lmax);
eazone (fehler);
}
}
break;
case 10: 
for (i = 0; i <= 3; i ++) {
if (test [i] == 1)
Sprintf (meldung, "Testausgabe %d aktiv", i);
else Sprintf (meldung, "Testausgabe %d nicht aktiv", i);
eazone (meldung);
}
if (sigsegakt == 0)
eazone ("Unterbrechung wird nicht abgefangen");
else eazone ("Unterbrechung wird abgefangen");
if (moni == 1)
eazone ("Daten fuer Monitor werden erzeugt");
#ifdef Mp
if (ptkbleibt == 1)                                  
eazone ("Protokoll bleibt erhalten");              
else eazone ("Protokoll wird geloescht");            
#endif
if (error == 1)
eazone ("Fehler koennen provoziert werden");
break;
#ifndef Mntos2
case 11: 
errno = 0;
i = mkfifo ("/tmp/pm", 0644);
if (i != 0)
switch (errno) {
case EEXIST:
eazone ("FIFO-Datei existiert schon");
break;
default:
Sprintf (fehler, "mkfifo errno = %d", errno);
eazone (fehler);
}
else {
moni = 1;
mon = fopen ("/tmp/pm", "w");
monoffen = 1;
(void) signal (SIGPIPE, sigpip);
}
break;
#endif
case 12: 
if (moni == 0)
eazone ("Monitor nicht aktiv");
else {
moni = 0;
(void) fclose (mon);
monoffen = 0;
i = system ("rm /tmp/pm");
}
break;
case 13: 
error = 1;
break;
case 14: 
error = 0;
break;
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 97:
cola = wakt -> zona - 1;
cole = wakt -> zone - 1;
typ = 0;
typ2 = 1;
anzahl = 1;
if (restleer == 1) 
goto m3900; 
if (*pz == '(') {
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3870;
goto m4250; 
m3870:
i = getciv (1, &pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinesp:
if (getciv1 == 1)
goto m4250; 
break;
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
case Fspalte0:
goto m4200; 
case Fanfgend:
goto m4150; 
case Fprofehl:
return 1; 
default:
profeh (55, i);
return 1; 
}
cola = spaa - 1;
cole = spae - 1;
} 
if (restleer == 1)
goto m3900; 
if (*pz == cmdsep) {
pz ++;
goto m3900; 
}
if (*pz == ')') {
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3880;
goto m3900; 
}
m3880:
if (*pz == cmdsep) {
pz ++;
goto m3900; 
}
switch (*pz) {
case 'u':
case 'U':
typ = 1;
break;
case 'l':
case 'L':
typ = 2;
break;
case '?':
typ = 3;
break;
default:
goto m3890;
}
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3890;
restleer = 1;
goto m3900; 
m3890:
i = strspn (pz, num); 
if (i == 0) {
if (*pz == cmdsep) {
pz ++;
goto m3900; 
}
switch (*pz) {
case 'a':
case 'A':
i = strspn (pz, alpha); 
if (i > 3)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (memcmp (pz, "ALL", i) != 0)
goto m4250; 
typ2 = 2;
pz += i;
break;
default:
goto m4250; 
}
}
else {
errno = 0;
anzahl = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (anzahl == 0)
goto m4190; 
pz += i;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else
if (*pz != cmdsep)
goto m4250; 
else {
pz ++;
goto m3900; 
}
restleer = 1;
m3900:
TA fprintf (lug, "TRA1 %d %d %d\n", typ, cola, cole); TE
TA fprintf (lug, "TRA2 %d %d\n", typ2, anzahl); TE
switch (typ) {
case 0: 
break;
case 1: 
translate = 1;
break;
case 2: 
translate = 2;
break;
case 3: 
Sprintf (zeill, t179 [la],
(translate == 1) ? t180 [la] : t181 [la]);
eazone (zeill);
goto m3930;
}
if (typ2 == 1) {
lauf = wakt -> clp;
if (lauf == wakt -> anfang)
if (anzahl == 1) {
strcpy (meldung, t195 [la]); 
goto m4240;
}
else {
lauf = lauf -> vorw;
anzahl --;
}
goto m3910;
}
else {
lauf = wakt -> anfang -> vorw;
m3910:
while (lauf != NULL) {
pi = &(*lauf).datn [cola];
if (cole < 0)
j = lauf -> lnlz;
else
if (cole > lauf -> lnlz)
j = lauf -> lnlz;
else j = cole;
for (i = cola; i <= j; i ++) {
if (translate == 1)
*pi = toupper (*pi);
else *pi = tolower (*pi);
pi ++;
}
if (typ2 == 1) {
anzahl --;
if (anzahl == 0) {
wakt -> clp = lauf;
goto m3920;
}
}
lauf = lauf -> vorw;
}
if (typ2 == 1) {
eazone (t070 [la]); 
wakt -> clp = wakt -> bottom;
}
}
m3920:
dataend = 1;
wakt -> notfiled = 1;
m3930:
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 101:
next = 0;
goto m2820;
case 103:
if (betaon == 0) {
eazone (t222 [la]); 
return 1; 
}
eazone (t0);
strcpy (ch100, "Erstellt am "
__DATE__ " um " __TIME__ " Uhr aus " __FILE__ "\0");
pi = strstr (ch100, "Mar");
if (pi != NULL)
*(pi + 2) = 'e';
pi = strstr (ch100, "May");
if (pi != NULL)
*(pi + 2) = 'i';
pi = strstr (ch100, "Oct");
if (pi != NULL)
*(pi + 1) = 'k';
pi = strstr (ch100, "Dec");
if (pi != NULL)
*(pi + 2) = 'z';
pi = strstr (ch100, "am");
strncpy (ch160, ch100, pi - ch100 + 3); 
pj = ch160 + (pi - ch100);
strncpy (pj + 3, pi + 7, 2); 
strncpy (pj + 5, ".", 1);
strncpy (pj + 6, pi + 2, 5); 
strncpy (pj + 11, pi + 10, 26 + strlen (__FILE__));
eazone (ch160);
#ifdef Mlin
eazone ("Erstellt auf der Maschine (uname -a):");
eazone (uname);
#endif
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 105:
m3940:
if (restleer == 1) {
typ = 1;
TA fprintf (lug, "WF01\n"); TE
goto m3970;
}
TA fprintf (lug, "WF02\n"); TE
if (*pz == cmdsep) {
typ = 1;
goto m3970;
}
typ2 = 1;
switch (*pz) {
case '*':
typ = 3;
pz ++;
break;
case '?':
typ = 4;
pz ++;
break;
default:
if (isalpha (*pz) == 0)
goto m4250; 
typ = 2;
i = strspn (pz, alphanum); 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
memset (ch8, ' ', 8);
memcpy (ch8, pz, i);
pz += i;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3950;
restleer = 1;
m3950:
if (restleer == 0) {
i = strspn (pz, alpha); 
if (i == 0) 
if (*pz != cmdsep)
goto m4280; 
else goto m3970;
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (typ == 4)
if (memcmp (pz, "ALL", i) == 0) {
typ2 = 4;
pz += i;
goto m3960;
}
if (memcmp (pz, "DELETE", i) == 0) {
typ2 = 2;
pz += i;
goto m3960;
}
goto m4280; 
m3960:
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m3970;
restleer = 1;
}
m3970:
switch (typ) {
case 1: 
TA fprintf (lug, "WF03\n"); TE
if (wakt == wmain)
break;
wakt = wmain;
wfaend = 1;
break;
case 2: 
if (typ2 == 2)  {
m3980:
if (memcmp (ch8, "MAIN    ", 8) == 0) {
eazone (t090 [la]);
return 1; 
}
wlauf = wmain -> vorw;
while (wlauf != NULL) {
if (memcmp (wlauf -> wfname, ch8, 8) == 0) {
lauf = wlauf -> anfang;
while (lauf != NULL) {
nchs = lauf -> vorw;
free (lauf);
lauf = nchs;
}
wvori = wlauf -> rckw;
wvori -> vorw = wlauf -> vorw;
free (wlauf);
if (wvori -> vorw != NULL)
wvori -> vorw -> rckw = wvori;
wakt = wmain;
wfaend = 1;
goto m3990;
}
wlauf = wlauf -> vorw;
}
goto m4390; 
}
wlauf = wmain;
while (wlauf != NULL) {
if (memcmp (wlauf -> wfname, ch8, 8) == 0) {
wakt = wlauf;
wfaend = 1;
goto m3990;
}
wvori = wlauf;
wlauf = wlauf -> vorw;
}
wakt = (struct w *) malloc (sizeof (struct w));
wvori -> vorw = wakt;
wakt -> vorw = NULL;
wakt -> rckw = wvori;
skeyneu = wvori -> skey;
wfini1 (ch8);
wfini2 ();
eazone (t091 [la]); 
wfini3 ();
wfaend = 1;
break;
case 3: 
if (typ2 != 2) 
break;
memcpy (ch8, wakt -> wfname, 8);
goto m3980;
case 4: 
if (typ2 == 4)  {
wlauf = wmain;
while (wlauf != NULL) {
memcpy (zeill, wlauf -> wfname, 8);
memset (zeill + 8, ' ', 1);
strcpy (zeill + 9, wlauf -> dsname);
eazone (zeill);
wlauf = wlauf -> vorw;
}
break;
}
memcpy (zeill, wakt -> wfname, 8);
memset (zeill + 8, ' ', 1);
strcpy (zeill + 9, wakt -> dsname);
eazone (zeill);
break;
}
m3990:
TA fprintf (lug, "WF04 %d\n", restleer); TE
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 106:
Sprintf (fehler, t088 [la], "WIDTH");
eazone (fehler);
goto m4410; 
case 107:
if (restleer == 1) {
wakt -> width = 0; 
goto m4410; 
}
i = strspn (pz, num); 
if (i == 0) {
if (*pz == cmdsep) {
typ = 2;
goto m4000;
}
switch (*pz) {
case '?':
typ = 1;
break;
case 'v':
case 'V':
typ = 2;
break;
default:
goto m4250; 
}
pz ++;
}
else {
typ = 3;
errno = 0;
anzahl = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
if (anzahl == 0)
goto m4120; 
pz += i;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4000;
restleer = 1;
m4000:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
switch (typ) {
case 1:
if (wakt -> width == 0)
strcpy (tekst, "V(ariable)");
else Sprintf (tekst, "%d", wakt -> width);
eazone (tekst);
break;
case 2:
wakt -> width = 0;
break;
case 3:
wakt -> width = anzahl;
break;
default:
profeh (4, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 108:
goto m3940;
case 109:
typ = 0;
if (restleer == 1)
goto m4040;
i = strspn (pz, alpha); 
if (i == 0) {
if (*pz == cmdsep)
goto m4040;
if (*pz == '?') {
typ = 1;
goto m4010;
}
goto m4250; 
m4010:
pz ++; 
}
else {
if (i > 3)
goto m4250; 
for (j = 0; j < i; j ++)
*(pz + j) = toupper (*(pz + j));
if (i == 1) 
if (*pz == 'O')
goto m4160; 
if (memcmp (pz, "ON", i) == 0)
goto m4020;
if (memcmp (pz, "OFF", i) == 0) {
typ = 2;
goto m4020;
}
goto m4250; 
m4020:
pz += i; 
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4030;
restleer = 1;
goto m4040;
m4030:
if (*pz != cmdsep)
goto m4250; 
m4040:
switch (typ) {
case 0:
wakt -> wrapon = 1;
break;
case 1:
if (wakt -> wrapon == 1)
eazone ("ON");
else eazone ("OFF");
break;
case 2:
wakt -> wrapon = 0;
break;
default:
profeh (24, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 110:
if (restleer == 1) {
if (xausfue == 1) {
eazone (t092 [la]); 
return 1; 
}
xanz = 1;
typ = 2;
goto m4060;
}
i = strspn (pz, num); 
if (i == 0) {
if (*pz == cmdsep) {
if (xausfue == 1) {
eazone (t092 [la]); 
return 1; 
}
xanz = 1;
typ = 2;
goto m4060;
}
if (*pz == '?') {
typ = 3;
pz ++;
}
else {
memcpy (xinh, pz, COLS - (pz - pz0)); 
goto m4410; 
}
}
else {
if (xausfue == 1) {
eazone (t092 [la]); 
return 1; 
}
typ = 2;
errno = 0;
xanz = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
pz += i;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4050;
restleer = 1;
m4050:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m4060:
switch (typ) {
case 2:
if (xinh [0] == ' ') {
eazone (t094 [la]); 
return 1; 
}
for (i = 1; i <= xanz; i ++) {
xausfue = 1;
j = ausfue (xinh);
xausfue = 0;
switch (j) {
case 0:
continue;
case 1:
return 1; 
case 2:
return 1; 
case 5:
return 5; 
default:
profeh (31, j);
return 1; 
}
}
break;
case 3:
Sprintf (pathname, "X %s", xinh);
eazone (pathname);
break;
default:
profeh (6, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 113:
if (restleer == 1) {
if (yausfue == 1) {
eazone (t093 [la]); 
return 1; 
}
yanz = 1;
typ = 2;
goto m4080;
}
i = strspn (pz, num); 
if (i == 0) {
if (*pz == cmdsep) {
if (yausfue == 1) {
eazone (t093 [la]); 
return 1; 
}
yanz = 1;
typ = 2;
goto m4080;
}
if (*pz == '?') {
typ = 3;
pz ++;
}
else {
memcpy (yinh, pz, COLS - (pz - pz0)); 
goto m4410; 
}
}
else {
if (yausfue == 1) {
eazone (t093 [la]); 
return 1; 
}
typ = 2;
errno = 0;
yanz = strtol (pz, NULL, 10);
if (errno == ERANGE)
goto m4300; 
pz += i;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4070;
restleer = 1;
m4070:
if (restleer == 0)
if (*pz != cmdsep)
goto m4250; 
m4080:
switch (typ) {
case 2:
if (yinh [0] == ' ') {
eazone (t095 [la]); 
return 1; 
}
for (i = 1; i <= yanz; i ++) {
yausfue = 1;
j = ausfue (yinh);
yausfue = 0;
switch (j) {
case 0:
continue;
case 1:
return 1; 
case 2:
return 1; 
case 5:
return 5; 
default:
profeh (32, j);
return 1; 
}
}
break;
case 3:
Sprintf (pathname, "Y %s", yinh);
eazone (pathname);
break;
default:
profeh (33, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 114:
if (restleer == 1) {
typ = 1;
goto m4100;
}
if (*pz == cmdsep) {
typ = 1;
goto m4100;
}
if (*pz == '?') {
typ = 0;
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4090;
restleer = 1;
goto m4100;
}
i = getciv (1, &pz, &restleer);
switch (i) {
case 0:
break;
case Fkeinesp:
if (getciv1 == 1)
goto m4250; 
break;
case Ffehlbef:
goto m4250; 
case Fzugross:
goto m4300; 
case Fpvnidef:
goto m4170; 
case Fpvninum:
goto m4370; 
case Fspalte0:
goto m4200; 
case Fanfgend:
goto m4150; 
case Fprofehl:
return 1; 
default:
profeh (56, i);
return 1; 
}
ssp1 = spaa;
ssp2 = spae;
if (ssp2 == 0)
typ = 2;
else typ = 3;
if (restleer == 0)
m4090:
if (*pz != cmdsep)
goto m4250; 
m4100:
switch (typ) {
case 0: 
if (wakt -> zone > 0)
Sprintf (tekst, "%d %d", wakt -> zona, wakt -> zone);
else Sprintf (tekst, "%d ...", wakt -> zona);
eazone (tekst);
break;
case 1: 
wakt -> zona = 1;
wakt -> zone = 0;
break;
case 2: 
wakt -> zona = ssp1;
wakt -> zone = 0;
break;
case 3: 
wakt -> zona = ssp1;
wakt -> zone = ssp2;
break;
default:
profeh (26, typ);
return 1; 
}
if (restleer == 1)
goto m4410; 
else goto m0840; 
case 999:
default:
break;
}
eazone (t096 [la]); 
return 1; 
m4110:
eazone (t005 [la]); 
return 1; 
m4120:
eazone (t009 [la]); 
return 1; 
m4130:
eazone (t084 [la]); 
return 1; 
m4140:
eazone (t208 [la]); 
return 1; 
m4150:
eazone (t097 [la]); 
return 1; 
m4160:
eazone (t146 [la]); 
return 1; 
m4170:
eazone (t147 [la]); 
return 1; 
m4180:
eazone (t218 [la]); 
return 1; 
m4190:
eazone (t098 [la]); 
return 1; 
m4200:
eazone (t099 [la]); 
return 1; 
m4220:
eazone (t102 [la]); 
return 1; 
m4230:
Sprintf (fehler, t103 [la], meldung); 
goto m4400;
m4240:
Sprintf (fehler, t185 [la], meldung); 
goto m4400;
m4250:
Sprintf (fehler, t104 [la], pz0); 
goto m4400;
m4260:
Sprintf (fehler, t105 [la], schluessel);
goto m4400;
m4270:
Sprintf (fehler, t106 [la], pz0); 
goto m4400;
m4280:
Sprintf (fehler, t109 [la], pz0);
goto m4400;
m4290:
eazone (t219 [la]); 
return 1; 
m4300:
eazone (t110 [la]); 
return 1; 
m4310:
eazone (t154 [la]); 
return 1; 
m4320:
eazone (t155 [la]); 
return 1; 
m4330:
Sprintf (fehler, t150 [la], ddname);
goto m4400;
m4340:
eazone (t199 [la]); 
return 1; 
m4350:
Sprintf (fehler, t153 [la], ddname);
goto m4400;
m4360:
eazone (t193 [la]); 
return 1; 
m4370:
eazone (t186 [la]); 
return 1; 
m4380:
eazone (t209 [la]); 
return 1; 
m4390:
eazone (t031 [la]); 
return 1; 
m4400:
eazone (fehler);
return 1; 
m4410:
return 0;
}
void ausgab (int art) {
switch (art) {
case 1:
break;      
case 2:
goto m4430; 
case 3:
goto m4500; 
case 4:
goto m4530; 
case 5:
goto m4540; 
default:
profeh (34, art);
}
if (wfaend == 0)
goto m4420; 
if (inputm != 1) {
memset (b_lia - 1, ' ', 9);
b_lin = b_lia + wakt -> skey;
}
memcpy (b_lin, lineal, wakt -> pwwidth);
memcpy (b_wf2, wakt -> wfname, 8);
if (wakt -> caseu == 1)
*b_cas = 'U';
else *b_cas = ' ';
if (wakt -> mult > 0)
*b_mul = 'M';
else *b_mul = ' ';
memset (b_dsn, ' ', 41);
if (strlen (wakt -> dsname) > 41u)
i = 41;
else i = strlen (wakt -> dsname);
memcpy (b_dsn, wakt -> dsname, i);
zzaend = 1;
wfaend = 0;
goto m4430; 
m4420: 
if (dataend == 0)
goto m4500; 
m4430: 
memset (bild, ' ', zzd * COLS); 
memcpy (snumg, snumgs + (wakt -> skey) * 8, 8);
lauf = wakt -> clp;
if (lauf == wakt -> anfang) {
skey2 = 7;
lwwidth2 = wakt -> lwwidth - 7 + wakt -> skey;
pwwidth2 = wakt -> pwwidth - 7 + wakt -> skey;
}
else {
skey2 = wakt -> skey;
lwwidth2 = wakt -> lwwidth;
pwwidth2 = wakt -> pwwidth;
}
pb = &bild [zlc * COLS];
dzben [zlc] = 1;
dzadr [zlc] = lauf;
if (lauf -> flag == 'D')
memcpy (pb, "dd      ", skey2);
else if (lauf -> flag == '"')
memcpy (pb, "\"\"      ", skey2);
else if (lauf -> flag == 'I')
memcpy (pb, "ii      ", skey2);
else memcpy (pb, &(*lauf).schl [8 - skey2], skey2);
if (strcmp (lauf -> schl, snumg) <= 0)
flg [zlc] = ' ';
else
if (strspn (lauf -> schl, num) == 8)
flg [zlc] = '*';
else flg [zlc] = ' ';
m = lauf -> lnlz;
if (hexa == 1)
m += m;
n = 0;
i = 0; 
m4440:
if (m > pwwidth2)
j = pwwidth2;
else j = m;
if (j > lwwidth2)
j = lwwidth2;
if (hexa == 0) {
memcpy (zeile, &(*lauf).datn [n], j);
k = ausson (zeile, j);
if (k == 1)
flg [zlc + i] = '.';
*(pb + skey2) = flg [zlc + i];
memcpy (pb + skey2 + 1, zeile, j);
}
else {
for (k = 0; k < j / 2; k ++)
Sprintf (zeile + 2 * k, "%02X", lauf -> datn [n + k]);
memcpy (pb + skey2 + 1, zeile, j / 2 * 2);
}
if (hexa == 0)
m -= lwwidth2;
else m -= (lwwidth2 / 2) * 2;
if (m > 0) {
i ++;
if (i >= zzd - zlc - 1) 
goto m4450;
dzben [zlc + i] = 1 + i;
dzadr [zlc + i] = wakt -> clp;
pb += COLS;
memset (pb, ' ', skey2);
if (hexa == 0)
n += lwwidth2;
else n += lwwidth2 / 2;
flg [zlc + i] = ' ';
goto m4440;
}
m4450:
for (i = zlc + i + 1; i <= zzd - 1; i ++) {
lauf = lauf -> vorw;
pb += COLS;
if (lauf != NULL) {
dzben [i] = 1;
dzadr [i] = lauf;
if (lauf -> flag == 'D')
memcpy (pb, "dd      ", wakt -> skey);
else if (lauf -> flag == '"')
memcpy (pb, "\"\"      ", wakt -> skey);
else if (lauf -> flag == 'I')
memcpy (pb, "ii      ", wakt -> skey);
else memcpy (pb, &(*lauf).schl [8 - wakt -> skey], wakt -> skey);
if (strcmp (lauf -> schl, snumg) <= 0)
flg [i] = ' ';
else
if (strspn (lauf -> schl, num) == 8)
flg [i] = '*';
else flg [i] = ' ';
m = lauf -> lnlz;
n = 0;
ifol = 1;
m4460:
if (m > wakt -> pwwidth)
j = wakt -> pwwidth;
else j = m;
if (j > wakt -> lwwidth)
j = wakt -> lwwidth;
memcpy (zeile, &(*lauf).datn [n], j);
k = ausson (zeile, j);
if (k == 1)
flg [i] = '.';
*(pb + wakt -> skey) = flg [i];
memcpy (pb + wakt -> skey + 1, zeile, j);
m -= wakt -> lwwidth;
if (m > 0) {
ifol ++;
i ++;
if (i > zzd - 1)
break;
dzben [i] = ifol;
dzadr [i] = lauf;
pb += COLS;
memset (pb, ' ', wakt -> skey);
n += wakt -> lwwidth;
flg [i] = ' ';
goto m4460;
}
}
else {
wakt -> sbot = wakt -> bottom;
goto m4470;
}
} 
wakt -> sbot = lauf;
m4470:
zl9 = i - 1;
for (i = zl9 + 1; i < zzd; i ++)
dzben [i] = 0;
lauf = wakt -> clp;
pb = &bild [zlc * COLS];
skey2 = wakt -> skey;
lwwidth2 = wakt -> lwwidth;
pwwidth2 = wakt -> pwwidth;
for (i = zlc - 1; i >= 0; i --) {
lauf = lauf -> rckw;
if (lauf == wakt -> anfang) {
skey2 = 7;
lwwidth2 = wakt -> lwwidth - 7 + wakt -> skey;
pwwidth2 = wakt -> pwwidth - 7 + wakt -> skey;
}
pb -= COLS;
if (lauf != NULL) {
m = lauf -> lnlz;        
n = (m - 1) / lwwidth2;
n = n * lwwidth2;
j = m - n;
if (j > pwwidth2)
j = pwwidth2;
if (j > lwwidth2)
j = lwwidth2;
if (strcmp (lauf -> schl, snumg) <= 0)
flg [i] = ' ';
else
if (strspn (lauf -> schl, num) == 8)
flg [i] = '*';
else flg [i] = ' ';
m4480:
memcpy (zeile, &(*lauf).datn [n], j);
k = ausson (zeile, j);
if (k == 1)
flg [i] = '.';
*(pb + skey2) = flg [i];
memcpy (pb + skey2 + 1, zeile, j);
dzadr [i] = lauf;
if (n == 0) {
dzben [i] = 1;
if (lauf -> flag == 'D')
memcpy (pb, "dd      ", skey2);
else if (lauf -> flag == '"')
memcpy (pb, "\"\"      ", skey2);
else if (lauf -> flag == 'I')
memcpy (pb, "ii      ", skey2);
else memcpy (pb, &(*lauf).schl [8 - skey2], skey2);
}
else {
dzben [i] = n / lwwidth2 + 1;
memset (pb, ' ', skey2);
n -= lwwidth2;
j = pwwidth2;
if (j > lwwidth2)
j = lwwidth2;
i --;
TA fprintf (lug, "CLS %d %d %d\n", n, j, i); TE
if (i < 0)
break;
flg [i] = flg [i + 1];
pb -= COLS;
goto m4480;
}
}
else {
wakt -> stop = wakt -> anfang;
goto m4490;
}
} 
wakt -> stop = lauf;
m4490:
zl1 = i + 1;
for (i = 0; i < zl1; i ++)
dzben [i] = 0;
if (wakt -> stop == wakt -> anfang)
if (dzben [0] <= 1) {
pb = &bild [zl1 * COLS];
memcpy (pb, wakt -> wfname, 8);
}
if (noneaz == 1) {
noneaz = 0;
goto m4520;
}
if (zzaend == 1) {
zzaend = 0;
Sprintf (chzz, "%7d", wakt -> zeilenzahl);
#ifndef Ms
(void) move (zll, curoff - 8);
(void) addstr (chzz);
#endif
memcpy (b_znz, chzz, 7);
}
wakt -> skeyalt = wakt -> skey;
dataend = 0;
memset (praefix, ' ', zzd * 8); 
for (i = 0; i < zzd; i ++) {
dataen [i] = 0;
}
m4500: 
if (sternchen == 1) {
sternchen = 0;
TA fprintf (lug, "STERN %d\n", ebe); TE
b_xxx = b_ebe;
for (i = 1; i <= ebe && i <= zll - zle; i ++) {
TA fprintf (lug, "STERO %s\n", dialogz [i]); TE
memcpy (b_xxx, dialogz [i], COLS);
b_xxx += COLS;
}
if (ebe < zll - zle) 
goto m4510;
if (ebe > zll - zle)  {
einsueber = 1;
memcpy (dialogz [9], dialogz [8], Sp);
}
}
m4510:
b_xxx = b_ebe + ebe * COLS;
for (i = 1; i <= zze - ebe; i ++) {
memset (b_xxx, ' ', COLS);
b_xxx += COLS;
}
if (modesp > 0) {
zl = modezl;
sp = modesp;
modezl = 0;
modesp = 0;
}
else {
zl = zzd + 1 + ebe;
if (inputm == 1 && indent == 1)
sp = indakt;
else sp = 0;
}
m4520: 
#ifndef Ms
(void) move (0, 0);
(void) addstr (bild);
(void) attron (A_STANDOUT);
#endif
memcpy (zeicol, &bild [zlc * COLS], COLS);
#ifndef Ms
(void) move (zlc, 0);
(void) addstr (zeicol);
(void) attroff (A_STANDOUT);
#endif
m4530: 
Sprintf (curpos, curvar, zl + 1, sp + 1);
#ifndef Ms
(void) move (zll, curoff);
(void) addstr (curpos);
(void) move (zll, 1);
if (zl == zll)
(void) addstr ("X"); 
else (void) addstr (" ");
#else
memcpy (bild + zll * COLS + curoff, curpos, 5);
if (zl == zll)
memset (bild + zll * COLS + 1, 'X', 1);
else memset (bild + zll * COLS + 1, ' ', 1);
#endif
m4540: 
#ifndef Ms
(void) move (zl, sp);
#endif
if (moni == 1) {
lauf = wakt -> stop;
if (lauf == wakt -> anfang)
j = zl1; 
else j = - 1;
fprintf (mon, "$01 %d %d %d %d %d %d %d\n",
LINES, COLS, wakt -> skey, j, zl, sp, wakt -> lwwidth);
for (i = 0; i < zl1; i ++) {
memcpy (zeile, bild + i * COLS, COLS);
memset (zeile + COLS, '\0', 1);
fprintf (mon, "$02 %s\n", zeile);
}
for (i = zl1; i <= zl9; i ++) {
if (lauf == wakt -> clp)
j = i; 
else j = - 1;
Sprintf (zeile, "%d %d %d %d %d %d", dzben [i], lauf -> lnlz,
lauf -> lben, lauf -> lmax, j, dtzufl [i]);
fprintf (mon, "$03 %s\n", zeile);
memcpy (zeile, bild + i * COLS, COLS);
memset (zeile + COLS, '\0', 1);
fprintf (mon, "$02 %s\n", zeile);
if (dzben [i + 1] == 1) 
lauf = lauf -> vorw;
}
for (i = zl9 + 1; i <= zll; i ++) {
memcpy (zeile, bild + i * COLS, COLS);
memset (zeile + COLS, '\0', 1);
fprintf (mon, "$02 %s\n", zeile);
}
(void) fflush (mon);
}
}
int ausson (char *zeile, int j) {
int        i = 0;
int        k;
char      *pz;
pz = zeile;
for (k = 1; k <= j; k ++) {
if (*pz < 32)
goto m4550; 
#ifdef Mnt
if (pccp == 1) 
if (*pz == 127)
goto m4550; 
else goto m4560; 
else  {
#endif
if (*pz >= 127 && *pz <= 159)
goto m4550; 
#ifdef Mnt
if (*pz < 127)
goto m4560;
*pz -= 160;
*pz = cp850 [*pz];
goto m4560; 
}
#else
else goto m4560; 
#endif
m4550:
*pz = '.';
i = 1;
m4560:
pz ++;
} 
return i;
}
int bestae (char *text1, char *text2) {
int        j;
if (scope == 0) {
m4570:
eazone (text1); 
#ifdef Mt
j = get2char (); 
#else
j = getchar ();
#endif
#ifdef Mp
protok ();                                                   
#endif
}
else {
m4580:
eazone (text2); 
memset (zeill, ' ', COLS);
zeill [COLS] = '\0';
b_xxx = b_ebe + ebe * COLS;
for (j = 1; j <= zze - ebe; j ++) {
memset (b_xxx, ' ', COLS);
#ifndef Ms
(void) move (zle + ebe + j - 1, 0);
(void) addstr (zeill); 
#endif
b_xxx += COLS;
}
zl = zzd + 1 + ebe;
sp = 0;
#ifndef Ms
(void) move (zl, sp);
(void) refresh ();
#else
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
j = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-14\n", fnrs);
(void) fflush (stdout);
#endif
#ifdef Mt
j = get2ch (); 
#elif defined Mexaedit
j = getch ();
#else
j = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-14\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &j);
#endif
#ifdef Mp
protok ();                                                   
#endif
if (fenstergeaendert == 1) {
fenstergeaendert = 0;
#ifndef Ms
(void) endwin ();
#endif
scope = 0;
TA fprintf (lug, "curses off 4\n"); TE
curses ();
if (scope == 0)
goto m4570;
#ifdef Mp
i = - LINES;                                               
protok ();                                                 
i = - COLS;                                                
protok ();                                                 
#endif
bilgro ();
wfaend = 1;
ausgab (1);
#ifndef Ms
(void) refresh ();
#else
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
j = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-10\n", fnrs);
(void) fflush (stdout);
#endif
goto m4580;
}
}
if (quitsignalisiert == 1) {
quitsignalisiert = 0;
TA3 fprintf (lug, "quitsignalisiert5 = 0\n"); TE
eazone ("q");
return 1;
}
return j;
}
int bestpr (char ch) {
TA fprintf (lug, "i = %d\n", i); TE
if (i == wakt -> skey - 1)  {
TA fprintf (lug, "PR01\n"); TE
return 1; 
}
pi ++;
i ++;
TA fprintf (lug, "i = %d\n", i); TE
if (*pi == ch || *pi == toupper (ch)) {
if (i == wakt -> skey - 1)  {
TA fprintf (lug, "PR02\n"); TE
return 3; 
}
j = strspn (pi + 1, numle); 
TA fprintf (lug, "j = %d\n", j); TE
if (j < wakt -> skey - i - 1) {
TA fprintf (lug, "PR03\n"); TE
return 0; 
}
TA fprintf (lug, "PR04\n"); TE
return 3; 
}
TA fprintf (lug, "i = %d\n", i); TE
if (*pi == ' ') {
if (i == wakt -> skey - 1)  {
TA fprintf (lug, "PR05\n"); TE
return 1; 
}
j = strspn (pi + 1, numle); 
TA fprintf (lug, "j = %d\n", j); TE
if (j < wakt -> skey - i - 1) {
TA fprintf (lug, "PR06\n"); TE
return 0; 
}
TA fprintf (lug, "PR07\n"); TE
return 1; 
}
TA fprintf (lug, "i = %d\n", i); TE
ziffer = 0;
m4590:
if (*pi <= 57 && *pi >= 48)  {
ziffer ++;
if (i == wakt -> skey - 1) {
pi ++; 
TA fprintf (lug, "PR08\n"); TE
return 1; 
}
pi ++;
i ++;
goto m4590;
}
if (ziffer == 0) {
TA fprintf (lug, "PR10\n"); TE
return 0; 
}
TA fprintf (lug, "i = %d\n", i); TE
if (*pi != ' ') {
TA fprintf (lug, "PR12\n"); TE
return 0; 
}
TA fprintf (lug, "i = %d\n", i); TE
if (i == wakt -> skey - 1)  {
TA fprintf (lug, "PR13\n"); TE
return 2; 
}
TA fprintf (lug, "i = %d\n", i); TE
j = strspn (pi + 1, numle); 
TA fprintf (lug, "j = %d\n", j); TE
if (j < wakt -> skey - i - 1) {
TA fprintf (lug, "PR14\n"); TE
return 0; 
}
TA fprintf (lug, "i = %d\n", i); TE
TA fprintf (lug, "PR15\n"); TE
return 2; 
}
int breite (int i) {
int        j;
int        k;
j = abs (i);
if (j > 99999999)
return Fzugross;
else if (j > 9999999)
k = 8;
else if (j > 999999)
k = 7;
else if (j > 99999)
k = 6;
else if (j > 9999)
k = 5;
else if (j > 999)
k = 4;
else if (j > 99)
k = 3;
else if (j > 9)
k = 2;
else k = 1;
if (i < 0)
k ++;
TA fprintf (lug, "BR1 %d %d %d\n", i, j, k); TE
return k;
}
void bilgro () {
if (LINES % 2 == 0)  {
zzd = LINES - 9;
zze = 7;
}
else {
zzd = LINES - 10;
zze = 8;
}
zlc = (zzd - 1) / 2;
zle = zzd + 1;
zll = LINES - 1;
TA fprintf(lug,"ZLC %d %d %d %d %d %d\n",LINES,zzd,zze,zlc,zle,zll);TE
for (i = zzd; i <= zll; i ++)
dzben [i] = 0;
blaetth = zlc;
blaettg = zlc + zlc;
b_lia = &bild [zzd * COLS + 1];
b_lin = b_lia + wakt -> skey;
b_ebe = &bild [zle * COLS];
i = zll * COLS;
b_spe = &bild [i + 1];
b_wf2 = &bild [i + 4];
b_ins = &bild [i + 13];
b_inp = &bild [i + 14];
b_cas = &bild [i + 15];
b_mul = &bild [i + 16];
b_dsn = &bild [i + 18];
b_znl = &bild [i + 60];
if (LINES < 100)
cur1 = 2;
else cur1 = 3;
if (COLS < 100)
cur2 = 2;
else cur2 = 3;
Sprintf (curvar, "%%%dd/%%%dd", cur1, cur2);
curoff = COLS - cur1 - cur2 - 2;
b_znz = &bild [i + curoff - 8];
memset (bild, ' ', LINES * COLS);
memcpy (b_ebe + COLS, "exaEdit", 7); 
}
static char *cclass (pp, sub)
register char *pp;
register int sub;
{
register int c, d, not, found = 0;
if (not = (*pp == NOT))
pp ++;
do {
if (*pp == '\0')
return NULL;
c = *pp;
if (pp [1] == '-' && pp [2] != ']') {
d = pp [2];
pp ++;
}
else d = c;
if (c == sub || (c <= sub && sub <= d))
found = 1;
} while (*++ pp != ']');
return (found != not) ? pp + 1 : NULL;
}
void crenum (int numt, char *numcc) {
prmt = 0; 
switch (numt) {
case 1: 
lauf = wlauf -> anfang -> vorw;
while (lauf != NULL) {
if (strcmp (lauf -> schl, numcc) < 0) 
goto m4600;
if (strcmp (lauf -> schl, numcc) == 0)  {
nump = lauf;
return; 
}
break;
m4600:
lauf = lauf -> vorw;
}
prmt = 1;
break;
case 3:
switch (numcc [0]) {
case '*':
nump = wlauf -> clp;
break;
case 'T':
nump = wlauf -> anfang;
break;
case 'B':
case 'L':
nump = wlauf -> bottom;
break;
case 'F':
nump = wlauf -> anfang;
goto m4610;
case 'N':
nump = wlauf -> clp;
m4610:
if (nump -> vorw != NULL)
nump = nump -> vorw;
else {
prmt = 4; 
return; 
}
break;
case 'P':
nump = wlauf -> clp;
if (nump -> rckw != NULL)
nump = nump -> rckw;
else {
prmt = 3; 
return; 
}
break;
case 'S':
switch (wlauf -> setp1) {
case 0:
prmt = 2; 
return; 
case 1:
nump = wlauf -> setp;
break;
case 2:
prmt = 6; 
return; 
}
break;
default:
profeh (16, numcc [0]);
prmt = 5;
return;
}
memcpy (numc, nump -> schl, 8);
break;
default:
profeh (17, numt);
prmt = 5;
}
}
void curses () {
TA fprintf (lug, "curses on\n"); TE
#ifdef Ms
LINES = 24;
COLS = 80;
#else
(void) initscr ();
TA fprintf (lug, "LINES = %d, COLS = %d\n", LINES, COLS); TE
if (LINES > Zl) {
Sprintf (fehler, t111 [la], Zl);
fenstr (fehler);
return;
}
if (COLS > Sp) {
Sprintf (fehler, t112 [la], Sp);
fenstr (fehler);
return;
}
if (LINES < 10) {
fenstr (t113 [la]);
return;
}
if (COLS < 40) {
fenstr (t114 [la]);
return;
}
(void) noecho ();
(void) cbreak ();
(void) keypad (stdscr, TRUE);
#endif
scope = 1;
#ifdef Msunos
(void) signal (SIGCONT, sigcnt);
(void) signal (SIGINT, sigint);
if (sigsegakt == 1) {
(void) signal (SIGSEGV, sigseg);
(void) signal (SIGBUS, sigseg);
(void) signal (SIGILL, sigseg);
(void) signal (SIGIOT, sigseg);
}
(void) signal (SIGWINCH, sigwch);
#endif
zeicol [COLS] = '\0';
#ifndef Ms
if (scope2 == 1)  {
scope2 = 0;
scope = 1;
TA fprintf (lug, "scope on, LINES/COLS richtig\n"); TE
}
#endif
if (colsalt > 0)  {
if (COLS != colsalt) {
wlauf = wmain;
while (wlauf != NULL) {
i = wlauf -> pwwidth;
wlauf -> pwwidth = COLS - wlauf -> skey - 1;
if (wlauf -> lwwidth == i) {
i = wlauf -> lwwidth;
wlauf -> lwwidth = wlauf -> pwwidth;
}
wlauf = wlauf -> vorw;
}
memset (bild, ' ', zzd * COLS); 
}
}
colsalt = COLS;
TA fprintf(lug,"DIE %d %d %d\n",wakt->pwwidth,wakt->lwwidth,
colsalt); TE
}
#ifdef Mnt
void doswin (char *zeile, int j) {
int        k;
char      *pz;
pz = zeile;
for (k = 1; k <= j; k ++) {
if (*pz >= 128) {
*pz -= 128;
*pz = cp88591 [*pz];
}
pz ++;
} 
}
#endif
int dsnerz (char **pz, int *restleer, char *dsn) {
int        i;
int        j;
char      *pzz;
pzz = *pz;
pj = dsn; 
if (*pzz == '(') {
*pj = '(';
pj ++;
pzz ++; 
i = strspn (pzz, alpha);
if (i == 0) 
return 2;
i = strspn (pzz, alphanum);
if (i > 31)
return 2;
pi = pzz + i;
switch (*pi) {
case ')':
break;
case ' ':
while (*pi) 
if (*pi != ' ')
return 2;
else pi ++;
*(pzz + i) = ')';
*restleer = 1;
break;
default:
return 2;
}
memcpy (pj, pzz, i + 1);
pj += i + 1;
*pj = '\0';
pzz = pi + 1;
while (*pzz) 
if (*pzz == ' ')
pzz ++;
else goto m4620;
*restleer = 1;
m4620:
for (i = 1; i < strlen (dsn); i ++)
dsn [i] = toupper (dsn [i]);
i = 3; 
goto m4710;
}
if (strchr (pzz, ':') != NULL) {
if (memcmp (pzz, "http://", 7) == 0) {
http = 7;
goto m4630;
}
if (memcmp (pzz, "https://", 8) == 0) {
http = 8;
goto m4630;
}
if (memcmp (pzz, "ftp://", 6) == 0) {
http = 6;
goto m4630;
}
goto m4650; 
m4630:
if (betaon == 0) {
eazone (t222 [la]); 
return 1; 
}
pzz += http;
pi = strchr (pzz, '@');
if (pi == NULL) {
i = lieskw (t221 [la], t221 [la]);
if (i == 1) {
return 1; 
}
goto m4640;
}
httpid = 1; 
pk = strchr (pzz, ':');
if (pk == NULL || pk > pi) 
pk = pi;
i = pk - pzz;
if (i > 20) {
Sprintf (fehler, t202 [la], t203 [la], 20);
eazone (fehler);
return 1;
}
memcpy (httpbi, pzz, i);
memset (httpbi + i, '\0', 1);
pzz += i + 1;
j = pi - pk - 1;
if (j > 20) {
Sprintf (fehler, t202 [la], t204 [la], 20);
eazone (fehler);
j = 0; 
}
if (j <= 0) {
memset (httpkw, '\0', 1);
goto m4640;
}
memcpy (httpkw, pzz, j);
memset (httpkw + j, '\0', 1);
pzz += j + 1;
m4640:
pi = strchr (pzz, '/');
if (pi == NULL)
goto m4650; 
i = pi - pzz;
memcpy (httpsv, pzz, i);
memset (httpsv + i, '\0', 1);
pzz = strchr (pzz, '/');
pzz ++;
pi = strchr (pzz, ' ');
if (pi == NULL)
i = strlen (pzz);
else i = pi - pzz;
memcpy (pj, pzz, i);
memset (pj + i, '\0', 1);
pzz += i;
*restleer = 1;
i = 4; 
goto m4710;
}
m4650:
if (*pzz == '\'') {
m4660:
pzz ++; 
pi = pzz;
while (*pi) 
if (*pi == '\'')
goto m4670;
else pi ++;
pi = pzz;
while (*pi) 
if (*pi != ' ')
pi ++;
else {
pk = pi + 1;
while (*pk) 
if (*pk == ' ')
pk ++;
else {
eazone (t008 [la]); 
return 1;
}
*restleer = 1;
goto m4670;
}
m4670:
memcpy (pj, pzz, pi - pzz);
pj += pi - pzz;
if (*pi == '\0')
goto m4680;
if (*(pi + 1) == '\'') {
memset (pj, '\'', 1);
pj ++;
pzz = pi + 1;
goto m4660;
}
pi ++; 
while (*pi) 
if (*pi == ' ')
pi ++;
else goto m4690;
m4680:
*restleer = 1;
m4690:
pzz = pi;
dsn [pj - dsn] = '\0';
i = 0; 
goto m4710;
}
pi = pzz;
while (*pi)  {
if (*pi == ' ')
goto m4700;
if (*pi == cmdsep)
goto m4700;
pi ++;
}
*restleer = 1;
m4700:
memcpy (pj, pzz, pi - pzz);
pj += pi - pzz;
dsn [pj - dsn] = '\0';
pzz = pi;
i = 0; 
while (*pzz) 
if (*pzz == ' ')
pzz ++;
else goto m4710;
*restleer = 1;
m4710:
*pz = pzz;
return i;
}
int dsnprf (enum filo typ, char *dsn) {
char      *pi;
#ifndef Mnt
if (*dsn == '~') {
TA fprintf (lug, "DSNPRF %d\n", strlen (dsn)); TE
pi = strchr (dsn, '/');
if (pi == NULL)
pi = dsn + strlen (dsn);
if (pi == dsn + 1)
uidzeug = getpwuid (getuid ());
else {
memcpy (pathname, dsn + 1, pi - dsn - 1);
pathname [pi - dsn - 1] = '\0';
uidzeug = getpwnam (pathname);
if (uidzeug == NULL) {
Sprintf (fehler, t136 [la], pathname);
eazone (fehler);
return 0;
}
}
strcpy (pathname, uidzeug -> pw_dir);
strcat (pathname, &dsn [pi - dsn]);
strcpy (dsn, pathname);
}
#endif
errno = 0;
i = statfu (dsn);
switch (i) {
case 1:
switch (errno) {
case ENOENT:
if (multiple > 0) {
eazone (t137 [la]); 
return 0;
}
if (typ == Afile) {
j = vernam (dsn);
if (j == 1)
return 0;
errno = 0;
#ifndef Mnt
j = access (vername, W_OK);
#else
j = access (vername, W_OK);
#endif
TA fprintf (lug, "ACC %d %d %d\n", W_OK, j, errno); TE
if (j == 0) 
return 1;
TA fprintf (lug, "NICHT ERLA %d\n", errno); TE
switch (errno) {
case ENOENT: 
eazone (t137 [la]); 
return 0;
case EACCES: 
#ifndef Mnt
eazone (t115 [la]); 
return 0;
#else
return 1; 
#endif
case EROFS: 
eazone (t143 [la]);
return 0;
#ifndef Mnt
case ETIMEDOUT: 
eazone (t116 [la]);
return 0;
#endif
default:
Sprintf (fehler, "access errno = %d", errno);
eazone (fehler);
return 0;
}
}
else  {
eazone (t117 [la]); 
return 1;
}
case EACCES:
eazone (t115 [la]); 
return 0;
case ENOTDIR:
eazone (t118 [la]); 
return 0;
#ifndef Mnt
case ETIMEDOUT:
eazone (t116 [la]);
return 0;
case ELOOP:
eazone (t119 [la]);
return 0;
#endif
default:
Sprintf (fehler, "stat errno = %d", errno);
eazone (fehler);
return 0;
}
case 2:
if (wakt -> mult > 0) {
eazone (t151 [la]); 
return 0;
}
errno = 0;
if (typ == Afile) {
j = access (dsn, W_OK);
if (j == 0) 
return 2;
TA fprintf (lug, "NICHT ERLB %d\n", errno); TE
switch (errno) {
case ENOEXEC: 
eazone (t214 [la]); 
return 0;
case EACCES: 
eazone (t115 [la]); 
return 0;
case EROFS: 
eazone (t144 [la]); 
return 0;
default:
Sprintf (fehler, "access 2 errno = %d", errno);
eazone (fehler);
return 0;
}
}
else  {
j = access (dsn, R_OK);
if (j == 0) 
return 2;
switch (errno) {
case ENOEXEC: 
eazone (t214 [la]); 
return 0;
case EACCES: 
eazone (t115 [la]); 
return 0;
default:
Sprintf (fehler, "access 3 errno = %d", errno);
eazone (fehler);
return 0;
}
}
case 3:
if (multiple > 0)
return 3; 
if (typ == Aload) {
eazone (t120 [la]);
return 0;
}
else  {
if (wakt -> mult == 0) {
eazone (t120 [la]);
return 0;
}
return 3; 
}
case 4:
eazone (t121 [la]); 
return 0;
default:
profeh (67, i);
return 0;
}
}
void eazone (char *pi) {
int        i;
int        j;
char       zeile [Sp + 1];
TA3 fprintf (lug, "eazone Anf %s\n", pi); TE
TA fprintf (lug, "EAZ1 %c\n", *pi); TE
if (scope == 0) {
if (profilbearbeiten == 1) {
profilbearbeiten = 0;
printf (t122 [la]); 
eazonebenutzt = 1;
}
#ifdef Mnt
i = strlen (pi);
memcpy (zeile, pi, i + 1);
if (windosw == 1) {
windosw = 0;
if (pccp == 2)
windos (zeile, i);
}
else windos (zeile, i);
if (i == COLS)
printf ("%s", zeile);
else printf ("%s\n", zeile);
#else
printf ("%s\n", pi);
#endif
(void) fflush (stdout);
TA3 fprintf (lug, "eazone End\n"); TE
return;
}
memset (zeile, ' ', COLS);
zeile [COLS] = '\0';
i = j = strlen (pi);
if (i > COLS)
j = COLS;
memcpy (zeile, pi, j);
#ifdef Mnt
if (windosw == 1) {
windosw = 0;
if (pccp == 2)
windos (zeile, j);
}
else windos (zeile, j);
#endif
memcpy (b_ebe + ebe * COLS, zeile, COLS);
#ifndef Ms
(void) move (zle + ebe, 0);
(void) addstr (zeile);
#endif
if (modesp > 0)
modezl = zle + ebe;
ebe ++;
memcpy (dialogz [ebe], zeile, COLS);
if (zle + ebe >= zll) {
m4720:
#ifndef Ms
(void) move (zll, 0);
(void) addstr ("***");
(void) move (zll, 3);
#else
memset (&(bild [1840]), '*', 3);
zl = 23;
sp = 3;
#endif
m4730:
#ifndef Ms
(void) refresh ();
#else
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
i = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-8\n", fnrs);
(void) fflush (stdout);
#endif
#ifdef Mt
i = get2ch (); 
#elif defined Mexaedit
i = getch ();
#else
i = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-13\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &i);
#endif
#ifdef Mp
protok ();                                                  
#endif
if (quitsignalisiert == 1) {
TA fprintf (lug, "EAZ2\n"); TE
#ifndef Ms
(void) move (zll, 0);
(void) addstr ("   ");
#else
memset (&(bild [1840]), ' ', 3);
#endif
frage2 = 1;
TA3 fprintf (lug, "eazone End\n"); TE
return;
}
if (fenstergeaendert == 1) {
TA fprintf (lug, "EAZ3 %d\n", ebe); TE
fenstergeaendert = 0;
if (scope == 1) {
#ifndef Ms
(void) endwin ();
#endif
scope = 0;
}
curses ();
if (scope == 1) {
#ifdef Mp
i = - LINES;                                             
protok ();                                               
i = - COLS;                                              
protok ();                                               
#endif
bilgro ();
wfaend = 1;
sternchen = 1;
ausgab (1);
goto m4720;
}
}
TA fprintf (lug, "EAZ4 %d\n", i); TE
if (i != 10) 
goto m4730;
else {
ebe = 0;
#ifndef Ms
(void) move (zll, 0);
(void) addstr ("   ");
#else
memset (&(bild [1840]), ' ', 3);
#endif
if (einsueber == 1) {
TA fprintf (lug, "EAZ5\n"); TE
einsueber = 0;
eazone (dialogz [9]);
}
}
}
if (*(pi + j) != '\0')
eazone (pi + j);
TA3 fprintf (lug, "eazone End\n"); TE
}
int errpro (int i) {
char a [3];
int  j = 0;
int  k; 
int *p;
p = NULL; 
if (error == 0)
return 1;
switch (i) {
case 1: 
i /= j;
break;
case 2: 
a [3] = 'a';
break;
case 3: 
i = *p;
break;
case 4: 
*p = 1;
break;
default:
return 2;
}
return 0;
}
void fenstr (char *pi) {
#ifndef Ms
(void) endwin ();
#endif
scope = 0;
TA fprintf (lug, "curses off 5, %s\n", pi); TE
scope2 = 1;
TA fprintf (lug, "scope off, %s\n", pi); TE
eazone (pi);
return;
}
int getciv (int typ, char **pj, int *restleer) {
char *pi;
int rl;
pi = *pj;
rl = *restleer;
getciv1 = 1;
if (typ == 2) {
i = getvor (&pi, restleer); 
if (i == Fparmfeh) 
return Fparmfeh;
}
i = getzhl (&pi, &rl);
TA fprintf (lug, "GZ1 %d %d\n", i, zahl); TE
switch (i) {
case 0:
break;
case Ffehlbef:
return Ffehlbef;
case Fkeinesp:
return Fkeinesp;
case Fpvnidef:
return Fpvnidef;
case Fpvninum:
return Fpvninum;
case Fzugross:
return Fzugross;
default:
profeh (51, i);
return Fprofehl;
}
if (zahl == 0)
if (typ == 1)
return Fspalte0;
spaa = zahl;
if (typ == 2)
if (plusminus < 0)
spaa = - spaa;
*pj = pi;
*restleer = rl;
getciv1 = 0;
if (typ == 2) {
i = getvor (&pi, restleer); 
if (i == Fparmfeh) 
return Fparmfeh;
}
spae = 0;
i = getzhl (&pi, &rl);
TA fprintf (lug, "GZ2 %d %d\n", i, zahl); TE
switch (i) {
case 0:
break;
case Ffehlbef:
return Ffehlbef;
case Fkeinesp:
return Fkeinesp;
case Fpvnidef:
return Fpvnidef;
case Fpvninum:
return Fpvninum;
case Fzugross:
return Fzugross;
default:
profeh (52, i);
return Fprofehl;
}
if (spaa > zahl)
if (typ == 1)
return Fanfgend;
spae = zahl;
if (typ == 2)
if (plusminus < 0)
spae = - spae;
*pj = pi;
*restleer = rl;
return 0;
}
int getket (char **pj, int *restleer) {
int        i;
char      *pi;
char      *pz;
pi = *pj;
if (*pi == '&') {
pi ++;
i = strspn (pi, alpha); 
if (i == 0)
return Ffehlbef; 
if (i > 8)
return Ffehlbef; 
memcpy (pvtmp, pi, i);
pvtmp [i] = '\0';
for (j = 0; j < pvanz; j ++)
if (strcmp (pvtmp, pvnam [j]) == 0) {
if (pvtyp [j] != 2)
return Fpvniket; 
strcpy (kette, pvins [j]);
pi += i;
goto m4750;
}
return Fpvnidef; 
}
if (*pi >= 48 && *pi <= 57) 
return Fkeineke;
switch (*pi) {
case '*':
case '(':
case 'b':
case 'f':
case 'l':
case 'n':
case 'p':
case 's':
case 't':
case 'B':
case 'F':
case 'L':
case 'N':
case 'P':
case 'S':
case 'T':
return Fkeineke;
default:
break;
}
deli = *pi;
pi ++; 
pz = pi;
while (*pi) 
if (*pi == deli)
goto m4740;
else pi ++;
*restleer = 1;
pi --; 
while (*pi == ' ')
pi --;
pi ++;
m4740:
if (pi - pz > 254)
return Fzugross;
memcpy (kette, pz, pi - pz);
if (wakt -> caseu == 1)
for (i = 0; i < pi - pz; i ++)
*(kette + i) = toupper (*(kette + i));
kette [pi - pz] = '\0';
if (*restleer == 1)
goto m4760;
pi ++; 
m4750:
while (*pi) 
if (*pi == ' ')
pi ++;
else goto m4760;
*restleer = 1;
m4760:
*pj = pi;
return 0;
}
int getlml (struct lm **sexa, char **pj, int *restleer) {
char      *pz;
int        rl;
struct lm *sexb;
pz = *pj;
sexb = *sexa;
rl = *restleer;
sexl = NULL;
if (*pz == '(') {
m4770:
pz ++;
while (*pz)
if (*pz == ' ')
pz ++;
else goto m4780;
if (sexl == NULL)
return Ffehlbef;
rl = 1;
goto m4820;
m4780:
pi = pz;
while (*pz) {
if (*pz == ' ') {
m4790:
TA fprintf (lug, "LM01 %d\n", *pz); TE
sext = (struct lm *) malloc (sizeof (struct lm) + pz - pi);
sext -> vorw = NULL;
sext -> rckw = sexl; 
memcpy (sext -> datn, pi, pz - pi);
sext -> datn [pz - pi] = '\0';
if (sexl == NULL)
sexb = sext;
else sexl -> vorw = sext;
sexl = sext;
if (*pz == ' ')
goto m4770;
TA fprintf (lug, "LM02 %d\n", *pz); TE
pz ++; 
while (*pz)
if (*pz == ' ')
pz ++;
else goto m4820;
rl = 1;
goto m4820;
}
TA fprintf (lug, "LM03 %d\n", *pz); TE
if (*pz == ')')
goto m4790;
TA fprintf (lug, "LM04 %d\n", *pz); TE
pz ++;
}
}
else {
getwfn (&pz, &rl);
switch (prmt) {
case 0: 
return Fparmfeh;
case 1: 
return Ffehlbef;
case 2: 
break;
case 3: 
return 1;
default:
profeh (77, prmt);
return 1;
}
wlauf = wmain;
while (wlauf != NULL) {
if (memcmp (wlauf -> wfname, ch8, 8) == 0)
goto m4800;
wlauf = wlauf -> vorw;
}
return 2;
m4800:
lauf = wlauf -> anfang -> vorw;
while (lauf != NULL) {
sext = (struct lm *) malloc (sizeof (struct lm) + lauf -> lnlz);
sext -> vorw = NULL;
sext -> rckw = sexl; 
memcpy (sext -> datn, lauf -> datn, lauf -> lnlz);
sext -> datn [lauf -> lnlz] = '\0';
if (sexl == NULL)
sexb = sext;
else sexl -> vorw = sext;
sexl = sext;
lauf = lauf -> vorw;
}
goto m4820;
}
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4810;
rl = 1;
m4810:
m4820:
*pj = pz;
*restleer = rl;
*sexa = sexb;
return 0;
}
int getnam (char **pj, int *restleer) {
int        i;
char      *pz;
pz = *pj;
lname = strspn (pz, alpha); 
if (lname == 0) 
return Fkeinbuc;
if (lname > 8)
return Fzugross;
memcpy (name, pz, lname);
memset (name + lname, '\0', 1);
for (i = 0; i < lname; i ++)
name [i] = toupper (name [i]);
pz += lname;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4830;
*restleer = 1;
m4830:
*pj = pz;
return 0;
}
int getniv (int typ, char **pj, int *restleer) {
char *pi;
int rl;
pi = *pj;
rl = *restleer;
while (*pi) 
if (*pi == ' ')
pi ++;
else goto m4840;
*restleer = 1;
return Fparmfeh;
m4840:
getniv1 = 1;
for (k = 1; k <= 2; k ++) {
if (k == 2)
getniv1 = 0;
getnum (&pi, &rl);
TA fprintf (lug, "GN6 %d %d\n", k, prmt); TE
switch (prmt) {
case 0: 
if (k == 1)  {
return 1; 
}
else  {
TA fprintf (lug, "GN1 %d\n", k); TE
m4850:
if (typ == 1) 
return 1; 
if (typ == 2)  {
numt2 = numt1;
if (numt2 == 1)
memcpy (numc2, numc1, 8);
else numc2 [0] = numc1 [0];
goto m4860;
}
TA fprintf (lug, "GN2 %d\n", k); TE
numt2 = 3; 
numc2 [0] = '*';
goto m4860;
}
case 1: 
case 2: 
case Ffehlbef: 
return 2; 
case 3: 
TA fprintf (lug, "NNN3 %s %d\n", numc, numt); TE
if (k == 1) {
numt1 = numt;
if (numt == 1)
memcpy (numc1, numc, 8);
else numc1 [0] = numc [0];
}
else {
numt2 = numt;
if (numt == 1)
memcpy (numc2, numc, 8);
else numc2 [0] = numc [0];
}
break;
case Fpvnidef:
return Fpvnidef; 
case Fpvnisat:
return Fpvnisat; 
default:
profeh (29, prmt);
return 3;
}
if (rl == 1)
if (k == 1) 
goto m4850; 
}
TA fprintf (lug, "GN5\n"); TE
m4860:
wlauf = wakt;
crenum (numt1, numc1);
TA fprintf (lug, "GN7 %d\n", prmt); TE
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc1, 8);
return 4; 
case 2: 
return 5; 
case 3: 
strcpy (meldung, t032 [la]); 
return 6; 
case 4: 
strcpy (meldung, t033 [la]); 
return 6; 
case 5: 
return 3;
case 6: 
return 8; 
default:
profeh (42, prmt);
return 3;
}
nump1 = nump;
if (numt1 != 1)
memcpy (numc1, numc, 8);
crenum (numt2, numc2);
switch (prmt) {
case 0: 
break;
case 1: 
memcpy (schluessel, numc2, 8);
return 4; 
case 2: 
return 5; 
case 3: 
strcpy (meldung, t032 [la]); 
return 6; 
case 4: 
strcpy (meldung, t033 [la]); 
return 6; 
case 5: 
return 3;
case 6: 
return 8; 
default:
profeh (13, prmt);
return 3;
}
nump2 = nump;
if (numt2 != 1)
memcpy (numc2, numc, 8);
numi1 = atoi (numc1); 
numi2 = atoi (numc2); 
if (numi1 > numi2)
if (typ != 3)
return 7; 
*pj = pi;
*restleer = rl;
return 0;
}
void getnum (char **pj, int *restleer) {
int        i;
int        j;
int        k;
char      *pi;
pi = *pj;
i = strspn (pi, num); 
if (i == 0)  {
if (*pi == cmdsep || *pi == ')') {
prmt = 0;
TA fprintf (lug, "GETN\n"); TE
goto m4900;
}
if (*pi == '*')
goto m4880;
if (*pi == '&') {
pi ++;
i = strspn (pi, alpha); 
if (i == 0 || i > 8) {
prmt = Ffehlbef;
return;
}
memcpy (pvtmp, pi, i);
pvtmp [i] = '\0';
for (j = 0; j < pvanz; j ++)
if (strcmp (pvtmp, pvnam [j]) == 0) {
if (pvtyp [j] != 3) {
prmt = Fpvnisat; 
return;
}
if (memcmp (pvins [j], "TOP LINE", 8) == 0) {
pi += i - 1;
*pi = 't';
goto m4870;
}
k = 8 - strlen (pvins [j]);
memset (numc, '0', k);
strcpy (numc + k, pvins [j]);
pi += i;
goto m4890;
}
prmt = Fpvnidef; 
return;
}
m4870:
j = strspn (pi, alpha); 
if (j == 0)  {
prmt = 1; 
goto m4910;
}
j = strspn (pi, "tbflpnsTBFLPNS");
if (j == 0) {
prmt = 2; 
goto m4910;
}
switch (*(pi + 1)) {
case ' ':
case '*':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case ')':
case '\0':
case '&':
case '+':
case '-':
break;
default:
if (*(pi + 1) == cmdsep)
break;
prmt = 2; 
goto m4910;
}
*pi = toupper (*pi);
m4880:
prmt = 3;
numc [0] = *pi;
numt = 3;
pi ++;
}
else  {
if (i > 8) {
prmt = 1; 
goto m4910;
}
memset (numc, '0', 8);
memcpy (&numc [8 - i], pi, i);
pi += i;
m4890:
prmt = 3;
numt = 1; 
}
m4900:
while (*pi) 
if (*pi == ' ')
pi ++;
else goto m4910;
*restleer = 1;
m4910:
*pj = pi;
TA fprintf (lug, "GETN fertig\n"); TE
}
int getumg (char **pz) {
int        i;
char      *pi;
pi = *pz;
while (*pi)
if (*pi != ',')
pi ++;
else break;
i = pi - *pz;
*pz = pi;
return i;
}
int getvor (char **pj, int *restleer) {
char      *pz;
pz = *pj;
switch (*pz) {
case '+':
plusminus = 1;
pz ++;
break;
case '-':
plusminus = - 1;
pz ++;
break;
default:
plusminus = 0;
return 0;
}
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4920;
*restleer = 1;
m4920:
if (plusminus != 0) {
if (*restleer == 1)
return Fparmfeh;
if (*pz == cmdsep)
return Fparmfeh;
}
*pj = pz;
return 0;
}
void getwfn (char **pj, int *restleer) {
int        i;
int        j;
char      *pi;
pi = *pj;
if (isalpha (*pi) == 0)  {
if (*pi == cmdsep) {
prmt = 0;
goto m4930;
}
prmt = 1;
goto m4930;
}
i = strspn (pi, alphanum); 
if (i > 8) {
Sprintf (fehler, t202 [la], t123 [la], 8);
eazone (fehler);
prmt = 3;
goto m4930;
}
prmt = 2;
memset (ch8, ' ', 8);
memcpy (ch8, pi, i);
for (j = 0; j < i; j ++) {
ch8 [j] = toupper (ch8 [j]);
}
pi += i;
while (*pi) 
if (*pi == ' ')
pi ++;
else goto m4930;
*restleer = 1;
m4930:
*pj = pi;
}
int getzei (char **pj, int *restleer, int zeichen) {
char      *pz;
pz = *pj;
if (*pz != zeichen) 
return Fkeinbuc;
pz ++;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4940;
*restleer = 1;
m4940:
*pj = pz;
return 0;
}
int getzhl (char **pj, int *restleer) {
int        i;
int        j;
char       pvtmp [9];
char      *pz;
pz = *pj;
i = strspn (pz, num); 
if (i == 0)  {
if (*pz == '&') {
pz ++;
i = strspn (pz, alpha); 
if (i == 0)
return Ffehlbef; 
if (i > 8)
return Ffehlbef; 
memcpy (pvtmp, pz, i);
pvtmp [i] = '\0';
for (j = 0; j < pvanz; j ++)
if (strcmp (pvtmp, pvnam [j]) == 0) {
if (pvtyp [j] != 1)
return Fpvninum; 
zahl = pvinn [j];
goto m4950;
}
return Fpvnidef; 
}
else return Fkeinesp;
}
errno = 0;
zahl = strtol (pz, NULL, 10);
if (errno == ERANGE)
return Fzugross;
m4950:
pz += i;
while (*pz) 
if (*pz == ' ')
pz ++;
else goto m4960;
*restleer = 1;
m4960:
*pj = pz;
return 0;
}
int gmatch (s, pp)
register char *s, *pp;
{
register int sc, pc;
int escape = 0;
if (s == NULL || pp == NULL)
return 0;
while ((pc = *pp ++) != 0) {
sc = *s ++;
if (!escape) {
switch (pc) {
case '\\':
escape = 1;
pp ++;
break;
case '[':
if (sc == 0 || (pp = cclass (pp, sc)) == NULL)
return 0;
break;
case '?':
if (sc == 0)
return 0;
break;
case '*':
s --;
do {
if (*pp == '\0' || gmatch (s, pp))
return 1;
} while (*s ++ != '\0');
return 0;
default:
if (sc != pp [-1])
return 0;
break;
}
}
else {
if (sc != pc)
return 0;
escape = 0;
}
}
return (*s == 0);
}
int hexasc (char *pi) {
int         j;
int         k;
int         l;
char       *pk;
TA fprintf (lug, "HX1 %d %d\n", *pi, strlen (pi)); TE
if (strlen (pi) % 2 != 0)  {
TA fprintf (lug, "LCA2 %d\n", strlen (pi)); TE
eazone (t177 [la]); 
return 1;
}
pk = pi;
k = 1;
while (*pi)  {
for (j = 0; j <= 21; j ++) {
if (*pi == hexzif [j])
goto m4970;
}
eazone (t178 [la]); 
return 1;
m4970:
TA fprintf (lug, "HX2 %d %d %d %d\n", j, hexzif [j], *pi, k); TE
if (j >= 16)
j -= 6;
if (k == 1) {
l = j;
pi ++;
k = 2;
}
else {
l = l * 16 + j;
TA fprintf (lug, "HX3, %d %d %d\n", l, pi, pk); TE
*pk = l;
pi ++;
pk ++;
k = 1;
}
}
*pk = '\0';
return 0;
}
int hlpaue (char *pi, int i) {
int         j;
char       *pk;
char        hilfetext [] =
"#                                                                             "
"The (line) commands are sorted by the shortest abbreviation given in capital  "
"letters. More information through 'HELP command'.                             "
"+        -        _       &        ALign  Bottom   BAck     Change   CAse     "
"CALl     CCopy    CDelete CMove    CMDsep COpy     CODepage COMpress CONcat   "
"COUnt    Display  DElete  DELETEL  DL     DOwn     End      EXec     EXPand   "
"FILe     FILL     Help    HEXa     Input  INDent   INLength INSmode  KEYBoard "
"Locate   LAnguage LOAd    LWwidth  Move   MANual   MARk     Next     NLocate  "
"NRLocate PFk      POint   PROfile  Quit   QUIEt    Replace  REKey    RETurn   "
"RLocate  RNLocate SCope   SEquence SET    SKey     SORT     SSplit   Top      "
"TEst     TRanslat Up      WF       WIDTH  WOrkfile WRAp     X        Y        "
"Zone                                                                          "
"Further help texts:      FUnction HOme     LOADX/Y  LOADZ    PROFILEX SYmbolic"
"Prefix commands (More through 'HELP command PREFIX'):                         "
"d and dd delete records. \" duplicates record. i inserts empty record.         "
"#+                                                                            "
"+ [n]                                                          go down n lines"
" The current line goes n lines towards the end of the workfile.               "
" n not given means 1.                                                         "
"#-                                                                            "
"- [n]                                                            go up n lines"
" The current line goes n lines towards the begin of the workfile.             "
" n not given means 1.                                                         "
"#_                                                                            "
"_ externalcommand                                     execute external command"
" The character string externalcommand is sent to the operating system. When   "
" the external command is finished exaEdit resumes execution. Same as CALL.    "
"#&                                                                            "
"&name [+NUMBER | +STRING | +LINE | =value | ? | - ]        parameter variables"
" The parameter variable name is defined by +NUMBER, +STRING, +LINE for numeri-"
" cal or character string values or line numbers, is set to a value by =value, "
" is deleted by -, is shown by ?. None of these means ?. With ? and - an * in- "
" stead of name means all parameter variables.                                 "
"#ALIGN                                                                        "
"ALign [(l1 [l2])] /string/ [H] [I] [MOVEALL] [n | ALL]              align data"
" or [(l1 [l2])] col [LEFT | RIGHT [MOVEALL]] [n | ALL]: From line l1 or from  "
" l1 to l2 or in n or all lines: Move lines which contain /string/ so that all "
" /string/ stand one below the other. Or: Move lines which contain a blank in  "
" column col such to the left or right (default) that there is no blank.       "
" MOVEALL moves characters before /string/ or before column col as well.       "
"#BOTTOM                                                                       "
"Bottom                                                         go to last line"
" The current line goes to the last line of the workfile.                      "
"#BACK                                                                         "
"BAck [n]                                                         go up n lines"
" The current line goes n lines towards the begin of the workfile.             "
" n not given means 1.                                                         "
"#CHANGE                                                                       "
"Change [col1 [col2]] /string1/string2/ [n] [A] [D] [H] [I]         change data"
" string1 is searched in n lines (default 1) and replaced by string2. Without  "
" string2 string1 is removed. 'A' changes all ocurrences in the line, D dis-   "
" plays changed lines. H interprets hexadecimal. 'I' searches case-insensitive."
" Search is restricted by ZONE or the specified columns (which come first).    "
"#CASE                                                                         "
"CAse [? | U | M|L]                                      input translation mode"
" U sets translation of letters typed in to upper case, M, L (mixed or lower)  "
" leaves the letters as they are typed in. ? shows the position of the switch. "
"CAse [? | I | S]                                  search string interpretation"
" 'I' interprets search string in CHANGE, LOCATE, SSPLIT case-insensitive,     "
" 'S' case-sensitive (default value). ? shows the position of the switch.      "
"#CALL                                                                         "
"CALl externalcommand                                  execute external command"
" The character string externalcommand is sent to the operating system. When   "
" the external command is finished exaEdit resumes execution. Identical to _.  "
"#CCOPY                                                                        "
"CCopy [(l1 [l2])] c1 [c2] COLUMN [+|-]col [LINE [+|-]num [n]]     copy columns"
" Copies from line l1 to l2 or in n lines starting with the current the columns"
" c1 to c2 to the column col and the following. Target are the same lines or   "
" the lines starting with num. Signs mean target value relative to source. The "
" old characters starting with the target column move to the right.            "
"#CDELETE                                                                      "
"CDelete [(l1 [l2])] c1 c2 [n | ALL]                             delete columns"
" Deletes from line l1 to l2 or in n lines starting with the current or in all "
" lines the columns c1 to c2. The characters right of c2 are moved to the left."
"#CMOVE                                                                        "
"CMove [(l1 [l2])] c1 [c2] COLUMN [+|-]col [LINE [+|-]num [n]]     move columns"
" Moves from line l1 to l2 or in n lines starting with the current the columns "
" c1 to c2 to the column col and the following. Target are the same lines or   "
" the lines starting with num. Signs mean target value relative to source. The "
" old characters starting with the target column are kept.                     "
"#CMDSEP                                                                       "
"CMDsep [? | ON | OFF | x]                                    command separator"
" The character x for the separation of command in one line will be shown|     "
" switched on|switched off|defined. All characters are possible except ? and   "
" letters. Default is '; ON'.                                                  "
"#COPY                                                                         "
"COpy [num1 [num2] [wfname]]                                         copy lines"
" The lines num1 or from num1 to num2 will be copied after the current line.   "
" Without parameter the current line will be duplicated. The lines to be copied"
" are from the active workfile or from the workfile wfname.                    "
"#CODEPAGE                                                                     "
"CODepage [? | DOS | WIN]                                       change codepage"
" Representation of special characters as in DOS or as in Windows. Valid only  "
" for 32bit-systems Windows ... Default is WIN.                                "
"#COMPRESS                                                                     "
"COMpress [? | #n | n | ALL]                             replace blanks by tabs"
" Sequences of suitable blanks will be replaced by tabs, in the current line   "
" (no parameter), in n or ALL lines. #n calls for replacement of sequences on- "
" ly, which consist of at least n blanks. ? shows #n. The tabulator stops are  "
" fixed at present: 1, 9, 17, ...                                              "
"#CONCAT                                                                       "
"CONcat [/string/ | n]                                        concatenate lines"
" The following line will be added to the current line: After the last non-    "
" blank character (if no parameters are given) or after the additionally added "
" given string or in column n.                                                 "
"#COUNT                                                                        "
"COUnt num1 [num2]                                                  count lines"
" The number of records from num1 to num2 (or to the current record) will be   "
" displayed. For num1 > num2 the number will be negative.                      "
"#DISPLAY                                                                      "
"Display [n | ALL]                                                display lines"
" The current and the n-1 following or ALL lines of the workfile are shown.    "
" The default is 1 line.                                                       "
"#DELETE                                                                       "
"DElete [n | ALL]                                                  delete lines"
" The current and the n-1 following or ALL lines of the workfile are removed.  "
" See also DL. The default is 1 line.                                          "
"#DL                                                                           "
"DL num1 [num2]                                                    delete lines"
" The line num1 or from num1 to num2 are removed. Identical with DELETEL. See  "
" also DElete.                                                                 "
"#DELETEL                                                                      "
"DELETEL num1 [num2]                                               delete lines"
" The line num1 or from num1 to num2 are removed. Identical with DL. See also  "
" DElete.                                                                      "
"#DOWN                                                                         "
"DOwn [n]                                                       go down n lines"
" The current line goes n lines towards the end of the workfile.               "
" n not given means 1.                                                         "
"#END                                                                          "
"End                                                                end editing"
" The editor ends its work. If data have been changed since the last FILE com- "
" mand, you will get the possibility to continue.                              "
"#EXEC                                                                         "
"EXec             (only alone in the command line)     execute exaEdit commands"
" The exaEdit commands in the workfile EXEC will be executed in the current    "
" workfile.                                                                    "
"#EXPAND                                                                       "
"EXPand [n | ALL]                                        replace tabs by blanks"
" Tabs will be replaced by blanks and the next character will be advanced to   "
" the next tabulator stop, in the current line (no parameter), in n or ALL     "
" lines. The tab stops are fixed at present: 1, 9, 17, ...                     "
"#FI                                                                           "
"Wrong parameter                                                               "
"#FILE                                                                         "
"FILe [filename | directory [MULTIPLE [/string/]]]           write to disk file"
" The workfile will be written to a disk data set or to several data sets if   "
" MULTIPLE is given or assumed. If MULTIPLE is given but no separation record  "
" then it will be taken from the previous LOAD command. See also HELP LOADX.   "
"#FILL                                                                         "
"FILL [/string/]                                                     fill lines"
" Beginning with the current line the lines will be filled up. This stops be-  "
" fore the next empty line or before the line which starts with the character  "
" string.                                                                      "
"#FUNCTION                                                                     "
"!!! no command !!!                                          !!! no command !!!"
" exaEdit functions, which can be defined to F-keys (see also HELP PFK):       "
" 'del': remove character under the cursor. 'ins': insert mode on or off.      "
" '+page', '-page', '+half', '-half': one page or a half page down or up.      "
" 'cleft', 'cright', 'cup', 'cdown': cursor left, right, up, or down.      .   "
" 'pos1': restore screen as after the last enter. Don't forget the apostrophes!"
"#HELP                                                                         "
"Help [command [PREFIX]]                                      display commands "
" Syntax and meaning of the given command will be shown. If ambiguous then for "
" prefix commands you must give PREFIX. Without parameter you will see a list  "
" of all commands.                                                             "
"#HEXA                                                                         "
"HEXa                                                     display hexa or ascii"
" The representation of data in the current line switches from ascii to hexa or"
" back.                                                                        "
"#HOME                                                                         "
"!!! no command !!!                                          !!! no command !!!"
" The WWW homepage for exaEdit (in English) is                                 "
"    http://exaedit.de/en/                                                     "
"#INPUT                                                                        "
"Input [/string/]                                    enter input mode or 1 line"
" Without parameter exaEdit switches from command mode to input mode. An empty "
" input line leads back to command mode. When a string is given it will be in- "
" serted as one new line only.                                                 "
"#INDENT                                                                       "
"INDent [? | n | AUTO | ON | OFF]                             indent input line"
" For new records in input mode cursor is placed in column n + 1 when 'n' is   "
" specified or like the 1. non-blank character of previous record if AUTO is   "
" given. Defined values are kept with OFF. Default values are AUTO and ON.     "
"#INLENGTH                                                                     "
"INLength [? | n | AUTO | ON | OFF]                         break up input line"
" Records in input mode are broken up at a blank character, if they would get  "
" longer than n ('n' specified) or LWWIDTH (with AUTO) columns. Defined values "
" are kept with OFF. Default values are AUTO and ON.                           "
"#INSMODE                                                                      "
"INSmode [? | ON | OFF]                                     control insert mode"
" OFF (ON): Enter terminates (does not terminate) insert mode. Default is OFF. "
" Double 'Ins' is like INSMODE ON, single is like INSMODE OFF.                 "
"#KEY                                                                          "
"Wrong parameter                                                               "
"#KEYBOARD                                                                     "
"KEYBoard [? | EXAEDIT | ALL | TEST]                      show unsupported keys"
" When KEYBOARD has the value EXAEDIT (default), then exaEdit will ignore keys "
" with no significance. Is it ALL, then the symbolic or numerical value of such"
" keys will be shown, the key will be ignored, but the input may be disturbed. "
" TEST is for testing of unknown keys.                                         "
"#LOCATE                                                                       "
"Locate [col1 [col2]] [/string/ [H] [I]]                          string search"
" Search string in ALL lines (but honor WRAP). In the line the search is re-   "
" stricted by ZONE or the (preceding) columns. 'I' searches case-insensitive, H"
" treats the string hexadecimal. Without parameters the previously set (in     "
" LOCATE, RLOCATE, NLOCATE, NRLOCATE, RNLOCATE) are taken.                     "
"#LANGUAGE                                                                     "
"LAnguage [? | DEUTSCH | UDEUTSCH | ENGLISH]                    choose language"
" Defines the language of the editor. DEUTSCH is without, UDEUTSCH is with     "
" umlauts and sharp-s. Default is UDEUTSCH. See also your exaEdit-profiles.    "
"#LOAD                                                                         "
"LOAd filename | (ddname) | directory MULTIPLE [/string/]   load file from disk"
" The file named or defined by the environment variable DD-name (in capital    "
" letters) will be loaded into the workfile. For http- or ftp-files see HELP   "
" LOADZ. MULTIPLE loads all files of the directory, each beginning with a sepa-"
" rating line $$$DDD$$$ or 'string'. DDD in the separator will be replaced by  "
" the file name.                                                               "
"#LOADX                                                                        "
"!!! no command !!!                                          !!! no command !!!"
" Further LOAD parameters: COUNT doesn't load but counts the records of the    "
" file. IGNORE n ignores n records at the start. RECORDS n reads only n re-    "
" cords. IGNORE and RECORDS are not valid for MULTIPLE. SELECT ... and EXCLUDE "
" ... with MULTIPLE choose among the file names. See HELP LOADY for details.   "
" COUNT, EXCLUDE, and SELECT come before MULTIPLE or after MULTIPLE /string/.  "
"#LOADY                                                                        "
"!!! no command !!!                                          !!! no command !!!"
" SELECT ... and EXCLUDE ... for MULTIPLE (see HELP LOADX): '...' stands either"
" for a workfile-name or a list in parentheses. In the workfile or in the list "
" are file names which are to be taken exclusively (SELECT) oder must be left  "
" out (EXCLUDE). The special pattern characters * ? und [] are allowed.        "
" Example: load . select (a*b x?y) exclude (a?b) multiple                      "
"#LOADZ                                                                        "
"!!! no command !!!                                          !!! no command !!!"
" Parameter 'filename' with LOAD may be also a file in the internet:           "
" HTTP[S]://filename oder FTP://filename                                       "
"#LWWIDTH                                                                      "
"LWwidth [? | n]                                           logical window width"
" Specifies the logical line length. Continuation lines are created if record  "
" length exceeds lwwidth. Default is number of columns - SKEY - 1.             "
"#MOVE                                                                         "
"Move num1 [num2]                                                    move lines"
" The line num1 or from num1 to num2 will be moved after the current line.     "
" num1/2 may be symbolic line numbers.                                         "
"#MA                                                                           "
"Wrong parameter                                                               "
"#MANUAL                                                                       "
"MANual [name | *] [? | DEFAULT | DELETE | SET /string/]            show manual"
" Operating system commands to show the exaEdit manual are chosen with the 1.  "
" parameter, listed, defaulted, deleted, or defined with the 2. Available com- "
" mands are installation dependent. 'man *' lists all, 'man' calls the default,"
#ifdef Mntos2
" 'man abc set +start netscape ...+' defines 'abc', etc.                       "
#else
" 'man abc set +netscape ...&+' defines 'abc', etc.                            "
#endif
"#MARK                                                                         "
"MARk [[SHOW] | CLEAR] [ALL]                        show or delete prefix marks"
" SHOW goes to next prefix mark, SHOW ALL displays record with mark, CLEAR re- "
" moves mark in current line, CLEAR ALL removes all marks in workfile. SHOW is "
" default.                                                                     "
"#NEXT                                                                         "
"Next [n]                                                       go down n lines"
" The current line goes n lines towards the end of the workfile.               "
" n not given means 1.                                                         "
"#NLOCATE                                                                      "
"NLocate [col1 [col2]] [/string/ [H] [I]]                       negative locate"
" Like LOCATE but searching the next record which does not contain the string. "
"#NR                                                                           "
"Wrong parameter                                                               "
"#NRLOCATE                                                                     "
"NRLocate [col1 [col2]] [/string/ [H] [I]]              negative reverse locate"
" Like LOCATE but searching the next record which does not contain the string  "
" and in reverse direction, i.e. towards the top line.                         "
"#PFK                                                                          "
"PFk [n | ALL]  [? | LOCK | UNLOCK | SET /string/]]        display/define F-key"
" Lists (?), locks (LOCK) or unlocks (UNLOCK) for changes, defines (SET) F-    "
" keys. n is a number out of 1-24, or a range n-m oder n:m, or a list of num-  "
" bers or ranges, e.g. 3 4-7 9. '?'. /string/ is a (list of) command(s) or a   "
" exaEdit function enclosed in '' (see HELP FUNCTION).                         "
"#POINT                                                                        "
"POint key                                                 go to specified line"
" The line whose number is equal to or greater than the given number becomes   "
" the current line.                                                            "
"#PR                                                                           "
"Wrong parameter                                                               "
"#PROFILE                                                                      "
"PROfile [? | EXEC [ALL] | LIST [ALL] | LOAD [ALL]]            profile handling"
" ? shows the profile data sets used, EXEC is re-executing the profile, LIST is"
" listing it, LOAD is loading it into the workfile. Only command lines beginn- "
" ing with '!' are taken, if ALL is not specified. See also HELP PROFILEX.     "
"#PROFILEX                                                                     "
"PROFILEX  !!! no command !!!                                !!! no command !!!"
" Profile data set contains commands executed at the start of exaEdit. Instal- "
" lation profile is found via the environment variable EXAEDITIP or is         "
" .exaeditip in the current directory. Private profile is .exaeditpp in the    "
" current or in the HOME directory. Order of search: Installation profile, if  "
" present, then private profile, if present. See also HELP PROFILE.            "
"#QUIT                                                                         "
"Quit                                                               end editing"
" The editor ends its work. If data have been changed since the last FILE com- "
" mand, you will get the possibility to continue.                              "
"#QUIET                                                                        "
"QUIEt [? | ON | OFF]                                    suppress some messages"
" With the default value OFF exaEdit shows all messages. If ON holds then more "
" informative messages are suppressed (s. user manual).                        "
"#REPLACE                                                                      "
"Replace col1 [col2] /string/ [n]                                  replace data"
" In the current and the n-1 following lines the character string will be in-  "
" serted at col1. Is col2 missing, then the following characters remain, is    "
" col2 given, then the original characters from column col2+1 on are directly  "
" appended to the inserted string.                                             "
"#REKEY                                                                        "
"REKey [base [incr] | ?]                                         rekey workfile"
" The intervals between the record numbers are made equal, starting with 'base'"
" and the increment 'incr'. Default is the values from the last use or 100 100 "
" at the start of the editor. 'incr' equals 'base' if not given. ? showsthe    "
" values.                                                                      "
"#RETURN                                                                       "
"RETurn                                                      return to SET line"
" Die line stored by SET becomes the current line.                             "
"#RLOCATE                                                                      "
"RLocate [col1 [col2]] [/string/ [H] [I]]                        reverse locate"
" The character string will be searched backwards. See LOCATE.                 "
"#RNLOCATE                                                                     "
"RNLocate [col1 [col2]] [/string/ [H] [I]]              reverse negative locate"
" Like LOCATE but searching the next record which does not contain the string  "
" and in reverse direction, i.e. towards the top line.                         "
"#S                                                                            "
"Wrong parameter                                                               "
"#SCOPE                                                                        "
"SCope [? | ON | OFF]                             switch to line or screen mode"
" OFF switches to line mode, ON to screen mode.                                "
" The default is ON for the screen mode.                                       "
"#SEQUENCE                                                                     "
"SEquence [col1 [col2]] / [base [incr]] / n [N|R] [F]            insert numbers"
" Insert 'n' numbers. Start is 'base', increment 'incr'. N(ew) creates new (de-"
" fault), R(eplace) writes into old lines. Numbers are at most 8 digits, right-"
" justified. Longer fields on the left with blanks. F fills leading zeros.     "
" Field width comes from col1/2 or largest number. Columns precede ZONE.       "
"#SET                                                                          "
"SET [?]                                         set line you want to RETURN to"
" Stores the position of the current line for a later RETURN.                  "
"#SKEY                                                                         "
"SKey [? | n]                                          define screen key length"
" Specifies the width of the key field on the screen. Default is n = 6.        "
" Maximum is 8, minimum is 0.                                                  "
"#SOR                                                                          "
"Wrong parameter                                                               "
"#SORT                                                                         "
"SORT [(line1 line2)] [A|D] [I] [N] where, [A|D] [I] [N] where, ...  sort lines"
" Sorts workfile or line1 to line2, ascending (A or nothing) or descending (D)."
" 'where' is (in columns) 'begin:end' or 'begin length'. N sorts numerically,  "
" 'I' case-insensitive. A,D,I,N may be factored out: A (where1, where2,...).   "
" 'where'-specifications may be separated for readability by one of ' ,;/'     "
"#SSPLIT                                                                       "
"SSplit [col1 [col2]] [/string/ [E]] [H] [I]                    split at string"
" Splits the current line at the begin of the string (with E at the end) into  "
" two lines. Searches in the whole line or from col1 or from col1 to col2. With"
" no string splitting occurs at the begin of the search range. ZONE will be    "
" honored. 'I' searches case-insensitive, H hexadecimal.                       "
"#SYMBOLIC                                                                     "
"!!! no command !!!                                          !!! no command !!!"
" COPY, COUNT, DELETEL, MOVE, POINT understand also symbolic record numbers:   "
" t  top line,                         b  bottom record,                       "
" f  first record,                     l  last record (= bottom),              "
" *  current record,                   p  previous record,                     "
" n  next record,                      s  record marked by SET command.        "
"#TOP                                                                          "
"Top                                                             go to TOP LINE"
" The TOP LINE, which is located before the first data line, becomes the       "
" current line.                                                                "
"#TEST                                                                         "
"TEst [NO]LOG[n...]|[NO]DUMP|[NO]KEEP|SHOW|EXAMINE|REPAIR|[NO]MON debug command"
" Only for debugging purposes. Never needed for editing.                       "
"#TRANSLAT                                                                     "
"TRanslat  [(col1 [col2])]  [U | L | ?]  [n | All]               translate case"
" translates in the given number of records or in all records (ALL), in the    "
" given columns or in all columns, lower case to upper case (U) or upper to    "
" lower case (L). Default is U. Without specification of the direction the last"
" one is valid, which will be shown by ?. ZONE will be honored.                "
"#UP                                                                           "
"Up [n]                                                           go up n lines"
" The current line goes n lines towards the begin of the workfile.             "
" n not given means 1.                                                         "
"#W                                                                            "
"Wrong parameter                                                               "
"#WF                                                                           "
"WF [wfname|* [Delete]]  |  [? [All]]                         control workfiles"
" The named workfile will be created or activated or, by specification of DELE-"
" TE, deleted. '*' means the active workfile. '?' shows the name of the active,"
" or, by specification of ALL, of all workfiles.                               "
"#WIDTH                                                                        "
"WIDTH [? | n | V]                                        define width of lines"
" Defines record length. 'V(ariable)' reads during LOAD the records in their   "
" lengths and writes during FILE the records without any closing blanks. 'n'   "
" splits with LOAD the file into records of n bytes and writes with FILE such  "
" records back. Default is V.                                                  "
"#WORKFILE                                                                     "
"WOrkfile [wfname|* [Delete]]  |  [? [All]]                   control workfiles"
" The named workfile will be created or activated or, by specification of DELE-"
" TE, deleted. '*' means the active workfile. '?' shows the name of the active,"
" or, by specification of ALL, of all workfiles.                               "
"#WR                                                                           "
"Wrong parameter                                                               "
"#WRAP                                                                         "
"WRAp [? | ON | OFF]                                      wrap-around searching"
" Searching (LOCATE and derived commands) ends at the end or at the begin of   "
" the workfile, if WRAP OFF holds. It will be continued cyclically to the      "
" starting point, if WRAP ON holds. ON is the default.                         "
"#X                                                                            "
"X [? | n | string]                                     set or call procedure x"
" Defines the procedure x as abbreviation for the sequence of commands in the  "
" character string or executes it n-times. The default for n is 1.             "
"#Y                                                                            "
"Y [? | n | string]                                     set or call procedure y"
" Defines the procedure y as abbreviation for the sequence of commands in the  "
" character string or executes it n-times. The default for n is 1.             "
"#ZONE                                                                         "
"Zone [? | col1 [col2]]                                       set column limits"
" Defines begin and end column for CHANGE, the LOCATE family, SSPLIT, TRANSLAT."
" If col2 is missing, then the end column is the length of the record. If col1 "
" is missing too, then 1 is the begin column. Column specifications with the   "
" commands have priority.                                                      "
"#                                                                             "
"§\"                                                                            "
"Prefix command \"[n]                                           duplicate record"
" Duplicates the record [n records].                                           "
"#                                                                             "
"§I                                                                            "
"Prefix command i[n]                                                insert line"
" Inserts empty record after [n] record[s].                                    "
"#                                                                             "
"§D                                                                            "
"Prefix command d[n]                                               delete lines"
" Deletes one or n records.                                                    "
"#                                                                             "
"§DD                                                                           "
"Prefix command dd                                                 delete lines"
" Deletes records between marks dd (inclusive).                                "
"#                                                                             "
;
pk = hilfetext;
memset (zeill, ' ', 80);
memset (zeill + 80, '\0', 1);
for (j = 0; j <= strlen (hilfetext) - 78u; j += 78) {
if (memcmp (pi, pk, i) == 0) {
pk += 78;
while (*pk != '#') {
memcpy (zeill, pk, 78);
eazone (zeill);
pk += 78;
}
return 0; 
}
pk += 78;
}
return 1; 
}
int hlpaus (char *pi, int i) {
int         j;
int         k;
int         l;
char       *pk;
char        hilfetext [] =
"#                                                                             "
"Die Liste der (Zeilen-)Befehle ist sortiert nach der in Großbuchstaben angege-"
"benen Minimalabkürzung. Näheres durch 'HELP befehl'.                          "
"+        -        _       &        ALign  Bottom   BAck     Change   CAse     "
"CALl     CCopy    CDelete CMove    CMDsep COpy     CODepage COMpress CONcat   "
"COUnt    Display  DElete  DELETEL  DL     DOwn     End      EXec     EXPand   "
"FILe     FILL     Help    HEXa     Input  INDent   INLength INSmode  KEYBoard "
"Locate   LAnguage LOAd    LWwidth  Move   MANual   MARk     Next     NLocate  "
"NRLocate PFk      POint   PROfile  Quit   QUIEt    Replace  REKey    RETurn   "
"RLocate  RNLocate SCope   SEquence SET    SKey     SORT     SSplit   Top      "
"TEst     TRanslat Up      WF       WIDTH  WOrkfile WRAp     X        Y        "
"Zone                                                                          "
"Weitere Hilfetexte:      FUnction HOme     LOADX/Y  LOADZ    PROFILEX SYmbolic"
"Präfixbefehle (Näheres durch 'HELP befehl PREFIX'):                           "
"d und dd löschen Sätze. \" verdoppelt Satz. i fügt leeren Satz ein.            "
"#+                                                                            "
"+ [n]                                                          go down n lines"
" Die aktuelle Zeile bewegt sich n Zeilen in Richtung Ende des Workfiles.      "
" Ohne Angabe gilt n = 1.                                                      "
"#-                                                                            "
"- [n]                                                            go up n lines"
" Die aktuelle Zeile bewegt sich n Zeilen in Richtung Anfang des Workfiles.    "
" Ohne Angabe gilt n = 1.                                                      "
"#_                                                                            "
"_ externbefehl                                        execute external command"
" Die Zeichenfolge externbefehl wird als externer Befehl nach außen geschickt. "
" Nach Ausführen des externen Befehls geht exaEdit weiter. Identisch mit CALL. "
"#&                                                                            "
"&name [+NUMBER | +STRING | +LINE | =value | ? | - ]        parameter variables"
" Die Parametervariable name wird mit +NUMBER, +STRING, +LINE für numerische,  "
" Zeichenkettenwerte, bzw. Satznummern definiert, mit =value auf einen Wert ge-"
" setzt, mit - gelöscht, mit ? abgefragt. Ohne Angabe gilt ?. Bei ? und - be-  "
" deutet * statt name alle Parametervariablen.                                 "
"#ALIGN                                                                        "
"ALign [(l1 [l2])] /kette/ [MOVEALL] [H] [I] [n | ALL]               align data"
" oder [(l1 [l2])] col [LEFT | RIGHT [MOVEALL]] [n | ALL]: Ab Zeile l1 oder von"
" l1 bis l2 oder in n oder allen Zeilen: Verschiebe Zeilen, die /kette/ enthal-"
" ten so, daß /kette/ untereinander steht. Oder: Verschiebe Zeilen, die in col "
" Leerzeichen enthalten, so nach links oder rechts, daß dort kein Leerzeichen  "
" steht. MOVEALL verschiebt Zeichen vor /kette/ oder vor Spalte col mit.       "
"#BOTTOM                                                                       "
"Bottom                                                         go to last line"
" Die aktuelle Zeile bewegt sich zur letzten Zeile des Workfiles.              "
"#BACK                                                                         "
"BAck [n]                                                         go up n lines"
" Die aktuelle Zeile bewegt sich n Zeilen in Richtung Anfang des Workfiles.    "
" Die Voreinstellung ist 1 Zeile.                                              "
"#CHANGE                                                                       "
"Change [col1 [col2]] /kette1/kette2/ [n] [A] [D] [H] [I]           change data"
" kette1 wird in n Zeilen (Standard 1) gesucht und durch kette2 ersetzt. kette1"
" wird gelöscht, wenn du kette2 nicht angibst. A ändert alle Vorkommnisse in   "
" der Zeile, D zeigt alle geänderten Zeilen. H sucht hexadezimal, I groß/klein-"
" insensibel. Suche ist durch ZONE oder die (vorgehenden) Spalten beschränkt.  "
"#CASE                                                                         "
"CAse [? | U | M|L]                                      input translation mode"
" U (für upper) verlangt Übersetzung eingegebener Buchstaben in große, M, L    "
" (für mixed bzw. lower) beläßt die Eingabe. ? zeigt die Schalterstellung.     "
"CAse [? | I | S]                                  search string interpretation"
" I interpretiert Suchkette in CHANGE, LOCATE, SSPLIT groß/klein-insensibel,   "
" S groß/klein-sensibel (Voreinstellung). ? zeigt die Schalterstellung.        "
"#CALL                                                                         "
"CALl externbefehl                                     execute external command"
" Die Zeichenfolge externbefehl wird als externer Befehl nach außen geschickt. "
" Nach Ausführen des externen Befehls geht exaEdit weiter. Identisch mit _.    "
"#CCOPY                                                                        "
"CCopy [(l1 [l2])] c1 [c2] COLUMN [+|-]col [LINE [+|-]num] [n]     copy columns"
" Kopiert von Zeile l1 bis l2 oder in n Zeilen ab der aktuellen die Spalten c1 "
" bis c2 in die Spalte col und die folgenden. Ziele sind dieselben Zeilen oder "
" die Zeilen ab num. Vorzeichen bedeuten Zielwert relativ zu Quellwert. Die al-"
" ten Zeichen ab der Zielspalte verschieben sich nach rechts.                  "
"#CDELETE                                                                      "
"CDelete [(l1 [l2])] c1 c2 [n | ALL]                             delete columns"
" Löscht von Zeile l1 bis l2 oder in n Zeilen ab der aktuellen oder in allen   "
" Zeilen die Spalten c1 bis c2. Zeichen rechts von c2 gehen nach links.        "
"#CMOVE                                                                        "
"CMove [(l1 [l2])] c1 [c2] COLUMN [+|-]col [LINE [+|-]num] [n]     move columns"
" Schiebt von Zeile l1 bis l2 oder in n Zeilen ab der aktuellen die Spalten c1 "
" bis c2 in die Spalte col und die folgenden. Ziele sind dieselben Zeilen oder "
" die Zeilen ab num. Vorzeichen bedeuten Zielwert relativ zu Quellwert. Die al-"
" ten Zeichen ab der Zielspalte bleiben erhalten.                              "
"#CMDSEP                                                                       "
"CMDsep [? | ON | OFF | x]                                    command separator"
" Das Zeichen x zur Trennung mehrerer Befehle in einer Zeile wird abgefragt|   "
" eingeschaltet|ausgeschaltet|gesetzt. Erlaubt sind alle Zeichen außer ? und   "
" Buchstaben. Voreinstellung ist '; ON'.                                       "
"#COPY                                                                         "
"COpy [num1 [num2] [wfname]]                                         copy lines"
" Die Zeilen num1 oder von num1 bis num2 werden hinter die aktuelle Zeile ko-  "
" piert. Ohne Parameter wird die aktuelle Zeile verdoppelt. Die geholten Zeilen"
" stammen aus dem aktiven workfile oder aus dem workfile wfname.               "
"#CODEPAGE                                                                     "
"CODepage [? | DOS | WIN]                                       change codepage"
" Darstellung von Sonderzeichen wie in DOS oder wie in Windows. Betrifft nur   "
" die 32Bit-Systeme Windows ... Voreinstellung ist WIN.                        "
"#COMPRESS                                                                     "
"COMpress [? | #n | n | ALL]                             replace blanks by tabs"
" Folgen von geeigneten Leerzeichen werden durch Tabs ersetzt, in der aktuellen"
" Zeile (kein Parameter), in n oder ALLen Zeilen. #n verlangt Ersetzen nur von "
" Folgen aus mindestens n Leerzeichen. ? fragt #n ab. Die Tabulatorstops sind  "
" derzeit fest 1, 9, 17, ...                                                   "
"#CONCAT                                                                       "
"CONcat [/kette/ | n]                                         concatenate lines"
" Die folgende Zeile wird an die aktuelle drangehängt: Nach dem letzten Nicht- "
" Leerzeichen (wenn kein Parameter da) oder nach der zusätzlich angefügten an- "
" gegebenen Zeichenkette oder in Spalte n.                                     "
"#COUNT                                                                        "
"COUnt num1 [num2]                                                  count lines"
" Die Anzahl der Sätze von num1 bis num2 (oder bis zum aktuellen Satz) wird    "
" ausgegeben. Ist num1 > num2, so ist die Anzahl negativ.                      "
"#DISPLAY                                                                      "
"Display [n | ALL]                                                display lines"
" Die aktuelle und die n-1 folgenden oder ALLe Zeilen des Workfiles werden an- "
" gezeigt.                                                                     "
" Die Voreinstellung ist 1 Zeile.                                              "
"#DELETE                                                                       "
"DElete [n | ALL]                                                  delete lines"
" Die aktuelle und die n-1 folgenden oder ALLe Zeilen des Workfiles werden ge- "
" löscht. Siehe auch DL.                                                       "
" Die Voreinstellung ist 1 Zeile.                                              "
"#DL                                                                           "
"DL num1 [num2]                                                    delete lines"
" Die Zeile num1 oder von num1 bis num2 werden gelöscht. Identisch mit         "
" DELETEL. Siehe auch DElete.                                                  "
"#DELETEL                                                                      "
"DELETEL num1 [num2]                                               delete lines"
" Die Zeile num1 oder von num1 bis num2 werden gelöscht. Identisch mit DL.     "
" Siehe auch DElete.                                                           "
"#DOWN                                                                         "
"DOwn [n]                                                       go down n lines"
" Die aktuelle Zeile bewegt sich n Zeilen in Richtung Ende des Workfiles.      "
" Ohne Angabe gilt n = 1.                                                      "
"#END                                                                          "
"End                                                                end editing"
" Der Editor beendet seine Arbeit. Falls seit dem letzten FILE-Befehl Daten ge-"
" ändert wurden, erhältst du die Möglichkeit zum Weitermachen.                 "
"#EXEC                                                                         "
"EXec             (nur alleine in der Befehlszeile)    execute exaEdit commands"
" Die im Workfile EXEC vorhandenen exaEdit-Befehle werden im aktuellen Workfile"
" ausgeführt.                                                                  "
"#EXPAND                                                                       "
"EXPand [n | ALL]                                        replace tabs by blanks"
" Tabs werden durch Leerzeichen ersetzt und das nächste Zeichen zum nächsten   "
" Tabulatorstop vorgeschoben, in der aktuellen Zeile (kein Parameter), in n    "
" oder ALLen Zeilen. Die Tab-Stops sind derzeit fest 1, 9, 17, ...             "
"#FI                                                                           "
"Ungültiger Parameter                                                          "
"#FILE                                                                         "
"FILe [datei | verzeichnis [MULTIPLE [/kette/]]]             write to disk file"
" Der Workfile wird in eine Plattendatei geschrieben; in mehrere Dateien bei   "
" Angabe oder Annahme von MULTIPLE. Ist MULTIPLE angegeben, aber kein Trenn-   "
" satz, so wird dieser vom vorangegangenen LOAD-Befehl genommen.               "
"#FILL                                                                         "
"FILL [/kette/]                                                      fill lines"
" Beginnend mit der aktuellen Zeile werden die Zeilen aufgefüllt. Dies endet   "
" vor der nächsten Leerzeile oder vor der Zeile, die mit der Zeichenkette be-  "
" ginnt.                                                                       "
"#FUNCTION                                                                     "
"!!! kein Befehl !!!                                         !!! no command !!!"
" exaEdit-Funktionen, die auf F-Tasten gelegt werden können (s. auch HELP PFK):"
" 'del': lösche Zeichen unter dem Cursor. 'ins': Einfügemodus an bzw. aus.     "
" '+page', '-page', '+half', '-half': ganze oder halbe Seite vor oder zurück.  "
" 'cleft', 'cright', 'cup', 'cdown': Cursor nach links, rechts, auf oder ab.   "
" 'pos1': restauriere Bild nach dem letzten Enter. Achte auf Schluß-Apostroph! "
"#HELP                                                                         "
"Help [befehl [PREFIX]]                                       display commands "
" Es werden Syntax und Erklärung des angegebenen Befehls gezeigt. Falls mehr-  "
" deutig, so ist für Präfixbefehle PREFIX anzugeben. Ohne Parameter siehst du  "
" eine Liste aller Befehle.                                                    "
"#HEXA                                                                         "
"HEXa                                                     display hexa or ascii"
" Die Darstellung der Daten in der aktuellen Zeile geht von ascii nach hexa    "
" oder umgekehrt.                                                              "
"#HOME                                                                         "
"!!! kein Befehl !!!                                         !!! no command !!!"
" Die WWW-Startseite für exaEdit ist                                           "
"    http://exaedit.de/                                                        "
"#INPUT                                                                        "
"Input [/kette/]                                     enter input mode or 1 line"
" Ohne Parameter schaltet exaEdit vom Befehlsmodus in den Eingabemodus. Eine   "
" Leereingabe führt zum Befehlsmodus zurück. Ist eine Zeichenkette angegeben,  "
" so wird diese als neue und einzige Zeile eingefügt.                          "
"#INDENT                                                                       "
"INDent [? | n | AUTO | ON | OFF]                             indent input line"
" Für neue Sätze im Eingabemodus steht der Cursor bei Angabe 'n' in Spalte n+1,"
" bei Angabe AUTO so wie das 1. Nichtleerzeichen des vorigen Satzes. Der einge-"
" stellte Wert bleibt bei OFF erhalten. Voreinstellung: AUTO und ON.           "
"#INLENGTH                                                                     "
"INLength [? | n | AUTO | SOFT | HARD]                      break up input line"
" Sätze im Eingabemodus werden umgebrochen, wenn sie länger als n oder LWWIDTH "
" (bei Angabe von AUTO) Spalten werden würden. Umbruch erfolgt an angegebener  "
" Spalte (HARD) oder am letzten Leerzeichen davor (SOFT). Voreinstellung: AUTO "
" SOFT.                                                                        "
"#INSMODE                                                                      "
"INSmode [? | ON | OFF]                                     control insert mode"
" OFF (ON): Enter beendet (beendet nicht) den Einfügemodus. Voreinstellung ist "
" OFF. Doppeltes 'Einfg' ist wie INSMODE ON, einfaches wie INSMODE OFF.        "
"#KEY                                                                          "
"Ungültiger Parameter                                                          "
"#KEYBOARD                                                                     "
"KEYBoard [? | EXAEDIT | ALL | TEST]                      show unsupported keys"
" Steht KEYBOARD auf EXAEDIT (Voreinstellung), so werden Tasten ohne Bedeutung "
" für exaEdit ignoriert, gilt ALL, so wird der symbolische oder numerische Wert"
" solcher Tasten angezeigt, die Tasten ignoriert, aber die Eingabe eventuell   "
" gestört. TEST dient zum Testen unbekannter Tasten.                           "
"#LOCATE                                                                       "
"Locate [col1 [col2]] [/kette/ [H] [I]]                           string search"
" Suche kette in ALLEN Zeilen (aber beachte WRAP). In der Zeile ist die Suche  "
" durch ZONE oder die (vorgehenden) Spalten beschränkt. I sucht gross/klein-   "
" insensibel, H versteht die Kette hexadezimal.                                "
"               Ohne Parameter gelten die zuletzt in irgendeinem xLOCATE-Befehl"
" gesetzten.                                                                   "
"#LANGUAGE                                                                     "
"LAnguage [? | DEUTSCH | UDEUTSCH | ENGLISH]                    choose language"
" Gibt die Sprache des Editors an. DEUTSCH ist ohne, UDEUTSCH ist mit Umlauten "
" und Es-Zet. Voreinstellung ist UDEUTSCH.                                     "
"#LOAD                                                                         "
"LOAd datei | (ddname) | verzeichnis MULTIPLE [/kette/]     load file from disk"
" Die angegebene oder die über die Umgebungsvariable DD_ddname ('ddname' groß) "
" bestimmte Datei wird in den Workfile geladen. Für http- oder ftp-Dateien sie-"
" he HELP LOADZ. MULTIPLE lädt alle Dateien des Verzeichnisses, jede beginnt   "
" mit einem Trennsatz $$$DDD$$$ oder 'kette'. DDD im Trennsatz wird durch den  "
" Dateinamen ersetzt. Siehe auch HELP LOADX.                                   "
"#LOADX                                                                        "
"!!! kein Befehl !!!                                         !!! no command !!!"
" Weitere LOAD-Parameter: COUNT lädt nicht, sondern zählt die Sätze der ange-  "
" gebenen Datei. IGNORE n überliest n Sätze am Anfang. RECORDS n liest nur n   "
" Sätze. IGNORE und RECORDS gelten nicht bei MULTIPLE. SELECT ... und EXCLUDE  "
" ... grenzen bei MULTIPLE die Dateinamen ein. Siehe dazu HELP LOADY.          "
" COUNT, EXCLUDE und SELECT stehen vor MULTIPLE oder nach MULTIPLE /kette/.    "
"#LOADY                                                                        "
"!!! kein Befehl !!!                                         !!! no command !!!"
" SELECT ... und EXCLUDE ... für MULTIPLE (siehe HELP LOADX): Für ... steht    "
" entweder ein Workfile-Name oder eine Liste in Klammern. Im Workfile oder in  "
" der Klammer stehen Dateinamen, die (bei SELECT) ausschließlich zu nehmen sind"
" oder die (bei EXCLUDE) nicht zu nehmen sind. Schreibweisen mit * ? und []    "
" sind erlaubt. Beispiel: load . select (a*b x?y) exclude (a?b) multiple       "
"#LOADZ                                                                        "
"!!! kein Befehl !!!                                         !!! no command !!!"
" Parameter 'datei' bei LOAD kann auch Datei im Internet sein:                 "
" HTTP[S]://dateiname oder FTP://dateiname                                     "
"#LWWIDTH                                                                      "
"LWwidth [? | n]                                           logical window width"
" Gibt die logische Zeilenlänge an, bei deren Überschreiten Folgezeilen gebil- "
" det werden. Ohne Parameter gilt Spaltenzahl - SKEY - 1.                      "
"#MOVE                                                                         "
"Move num1 [num2]                                                    move lines"
" Die Zeile num1 oder von num1 bis num2 werden hinter die aktuelle Zeile ge-   "
" schoben. num1/2 können symbolische Zeilennummern sein.                       "
"#MA                                                                           "
"Ungültiger Parameter                                                          "
"#MANUAL                                                                       "
"MANual [name | *] [? | DEFAULT | DELETE | SET /kette/]             show manual"
" Befehle des Betriebssystems zur Anzeige der exaEdit-Broschüre werden mit 1.  "
" Parameter ausgewählt, mit dem 2. gezeigt, voreingestellt, gelöscht oder defi-"
" niert. Vorhandene Befehle installationsabhängig, 'man *' zeigt alle, 'man'   "
#ifdef Mntos2
" ruft voreingestellten auf, 'man a set +start netscape...+' definiert 'a',usw."
#else
" ruft den voreingestellten auf, 'man a set +netscape ...&+' definiert 'a',usw."
#endif
"#MARK                                                                         "
"MARk [[SHOW] | CLEAR] [ALL]                        show or delete prefix marks"
" SHOW geht zur nächsten Präfixmarke, SHOW ALL zeigt den Satz mit der Marke,   "
" CLEAR löscht die Marke im aktuellen Satz, CLEAR ALL löscht alle Marken im    "
" Workfile. SHOW ist voreingestellt.                                           "
"#NEXT                                                                         "
"Next [n]                                                       go down n lines"
" Die aktuelle Zeile bewegt sich n Zeilen in Richtung Ende des Workfiles.      "
" Ohne Angabe gilt n = 1.                                                      "
"#NLOCATE                                                                      "
"NLocate [col1 [col2]] [/kette/ [H] [I]]                        negative locate"
" Wie LOCATE, sucht aber den nächsten Satz, der die Zeichenkette nicht enthält."
"#NR                                                                           "
"Ungültiger Parameter                                                          "
"#NRLOCATE                                                                     "
"NRLocate [col1 [col2]] [/kette/ [H] [I]]               negative reverse locate"
" Wie LOCATE, sucht aber den nächsten Satz, der die Zeichenkette nicht enthält,"
" und in rückwärtiger Richtung.                                                "
"#PFK                                                                          "
"PFk [n | ALL]  [? | LOCK | UNLOCK | SET /kette/]]         display/define F-key"
" Listet (?), sperrt (LOCK) oder gibt frei (UNLOCK) für Änderung, definiert    "
" (SET) F-Tasten. n ist Zahl aus 1-24, oder Bereich n-m oder n:m, oder Liste   "
" von Zahlen und Bereichen, z.B. 3 4-7 9. /kette/ ist Befehl(sfolge) oder eine "
" in '' eingeschlossene exaEdit-Funktion (s. HELP FUNCTION).                   "
"#POINT                                                                        "
"POint key                                                 go to specified line"
" Die Zeile, deren Nummer gleich der oder größer als die angegebene Nummer ist,"
" wird zur aktuellen Zeile.                                                    "
"#PR                                                                           "
"Ungültiger Parameter                                                          "
"#PROFILE                                                                      "
"PROfile [? | EXEC [ALL] | LIST [ALL] | LOAD [ALL]]            profile handling"
" ? zeigt die verwendeten Profildateien, EXEC führt das Profil erneut aus, LIST"
" listet es, LOAD lädt es in den Workfile. Nur mit '!' beginnende Befehlszeilen"
" werden genommen, wenn nicht ALL angegeben ist. Siehe auch HELP PROFILEX.     "
"#PROFILEX                                                                     "
"PROFILEX   !!! kein Befehl !!!                              !!! no command !!!"
" Profildatei enthält beim exaEdit-Start ausgeführte Befehle. Installationspro-"
" fil wird über Umgebungsvariable EXAEDITIP gefunden oder ist .exaeditip im ak-"
" tuellen Verzeichnis. Privates Profil ist .exaeditpp im aktuellen oder im     "
" HOME-Verzeichnis. Reihenfolge: Installationsprofil, wenn da, dann privates   "
" Profil, wenn da. Siehe auch HELP PROFILE.                                    "
"#QUIT                                                                         "
"Quit                                                               end editing"
" Der Editor beendet seine Arbeit. Falls seit dem letzten FILE-Befehl Daten ge-"
" ändert wurden, erhältst du die Möglichkeit zum Weitermachen.                 "
"#QUIET                                                                        "
"QUIEt [? | ON | OFF]                                    suppress some messages"
" Mit der Voreinstellung OFF bringt exaEdit alle Meldungen. Gilt ON, so werden "
" mehr informative Meldungen unterdrückt (s. Benutzeranleitung).               "
"#REPLACE                                                                      "
"Replace col1 [col2] /kette/ [n]                                   replace data"
" In der aktuellen und den n-1 folgenden Zeilen wird die Zeichenkette ab Spalte"
" col1 eingesetzt. Fehlt col2, so bleiben die nachfolgenden Zeichen stehen, ist"
" col2 angegeben, so werden die alten Zeichen ab Spalte col2+1 unmittelbar an  "
" die eingesetzte Kette angehängt.                                             "
"#REKEY                                                                        "
"REKey [base [incr] | ?]                                         rekey workfile"
" Die Satznummern werden wieder gleichabständig gemacht, beginnend mit 'base'  "
" und dem Abstand 'incr'. Ohne Angabe gelten die Werte vom letzten Aufruf oder "
" 100 100 nach dem Editor-Start. Fehlt 'incr', so wird es gleich 'base' ange-  "
" nommen. ? zeigt die Werte.                                                   "
"#RETURN                                                                       "
"RETurn                                                      return to SET line"
" Die Zeile, die durch SET gespeichert wurde, wird aktuelle Zeile.             "
"#RLOCATE                                                                      "
"RLocate [col1 [col2]] [/kette/ [H] [I]]                         reverse locate"
" Die Zeichenkette wird in rückwärtiger Richtung gesucht. Siehe LOCATE.        "
"#RNLOCATE                                                                     "
"RNLocate [col1 [col2]] [/kette/ [H] [I]]               reverse negative locate"
" Wie LOCATE, sucht aber den nächsten Satz, der die Zeichenkette nicht enthält,"
" und in rückwärtiger Richtung.                                                "
"#S                                                                            "
"Ungültiger Parameter                                                          "
"#SCOPE                                                                        "
"SCope [? | ON | OFF]                             switch to line or screen mode"
" OFF schaltet in den Zeilenmodus, ON in den Schirmmodus.                      "
" Die Voreinstellung ist ON für den Schirmmodus.                               "
"#SEQUENCE                                                                     "
"SEquence [col1 [col2]] / [base [incr]] / n [N|R] [F]            insert numbers"
" n Zahlen einsetzen, Beginn 'base', Abstand 'incr'. N(ew) erstellt Sätze (Vor-"
" einstellung), R(eplace) schreibt in vorhandene. Zahlen max. 8stellig, rechts-"
" bündig). Längere Felder links Leerzeichen. F füllt führende Nullen. Feld-    "
" breite geht nach col1/2 oder nach größter Zahl. Spaltenangabe geht vor ZONE. "
"#SET                                                                          "
"SET [?]                                         set line you want to RETURN to"
" Speichert die Position der aktuellen Zeile für nachfolgendes RETURN.         "
"#SKEY                                                                         "
"SKey [? | n]                                          define screen key length"
" Legt die Länge des Nummernfeldes auf dem Bildschirm fest. Ohne Angabe gilt   "
" n = 6, Maximum ist 8, Minimum ist 0.                                         "
"#SOR                                                                          "
"Ungültiger Parameter                                                          "
"#SORT                                                                         "
"SORT [(line1 line2)] [A|D] [I] [N] where, [A|D] [I] [N] where, ...  sort lines"
" Sortiert workfile oder line1 bis line2, aufsteigend (A oder nichts) oder ab- "
" steigend (D). 'where' ist (in Spalten) 'anfang:ende' oder 'anfang länge'. N  "
" sortiert numerisch, I groß/klein-insensibel. A,D,I,N sind ausklammerbar:     "
" A (where1, where2,...). 'where'-Angaben durch ' ,;/' trennbar.               "
"#SSPLIT                                                                       "
"SSplit [col1 [col2]] [/kette/ [E]] [H] [I]                     split at string"
" Trennt die Zeile am Anfang der Zeichenkette (am Ende bei E) in zwei Zeilen.  "
" Sucht in der ganzen Zeile oder ab Spalte col1 oder von col1 bis col2. Fehlt  "
" die Zeichenkette, so wird am Anfang des Suchbereichs getrennt. ZONE wird be- "
" achtet. I sucht groß/klein-insensibel, H hexadezimal.                        "
"#SYMBOLIC                                                                     "
"!!! kein Befehl !!!                                         !!! no command !!!"
" COPY, COUNT, DELETEL, MOVE und POINT verstehen auch symbolische Satznummern: "
" s  mittels SET markierter Satz,      t  top line, Überschriftszeile,         "
" f  first record, erster Satz,        p  previous record, vorhergehender Satz,"
" *  current record, aktueller Satz,   n  next record, nachfolgender Satz,     "
" b  bottom record, letzter Satz,      l  last record, letzter Satz.           "
"#TOP                                                                          "
"Top                                                             go to TOP LINE"
" Die TOP LINE, die vor der ersten Datenzeile steht, wird aktuelle Zeile.      "
"#TEST                                                                         "
"TEst [NO]LOG[n...]|[NO]DUMP|[NO]KEEP|SHOW|EXAMINE|REPAIR|[NO]MON debug command"
" Nur für Zwecke des Fehlersuchens. Wird nie für's Editieren benötigt.         "
"#TRANSLAT                                                                     "
"TRanslat  [(col1 [col2])]  [U | L | ?]  [n | All]               translate case"
" Übersetzt in der angegebenen Zeilenzahl oder in allen Zeilen (ALL), in den   "
" angegebenen oder in allen Spalten, kleine in große Buchstaben (U wie upper)  "
" oder umgekehrt (L wie lower). Voreinstellung ist U. Ohne Angabe der Richtung "
" gilt die letzte Einstellung, ? zeigt diese an. ZONE wird beachtet.           "
"#UP                                                                           "
"Up [n]                                                           go up n lines"
" Die aktuelle Zeile bewegt sich n Sätze in Richtung Anfang des Workfiles.     "
" Ohne Angabe gilt n = 1.                                                      "
"#W                                                                            "
"Ungültiger Parameter                                                          "
"#WF                                                                           "
"WF [wfname|* [Delete]]  |  [? [All]]                         control workfiles"
" Der genannte Workfile wird erstellt oder aktiviert oder durch Angabe von DE- "
" LETE gelöscht. '*' bezeichnet den aktiven Workfile. '?' zeigt den Namen des  "
" aktiven oder, bei Angabe von ALL, aller Workfiles.                           "
"#WIDTH                                                                        "
"WIDTH [? | n | V]                                        define width of lines"
" Legt die Zeilenlänge fest. 'V(ariable)' liest bei LOAD die Sätze in ihrer    "
" Länge und schreibt bei FILE die Sätze ohne Schlußleerzeichen. 'n' zerlegt    "
" bei LOAD die Datei in n Bytes lange Sätze und schreibt bei FILE solche zu-   "
" rück. Voreinstellung ist V.                                                  "
"#WORKFILE                                                                     "
"WOrkfile [wfname|* [Delete]]  |  [? [All]]                   control workfiles"
" Der genannte Workfile wird erstellt oder aktiviert oder durch Angabe von DE- "
" LETE gelöscht. '*' bezeichnet den aktiven Workfile. '?' zeigt den Namen des  "
" aktiven oder, bei Angabe von ALL, aller Workfiles.                           "
"#WR                                                                           "
"Ungültiger Parameter                                                          "
"#WRAP                                                                         "
"WRAp [? | ON | OFF]                                      wrap-around searching"
" Das Suchen (LOCATE und abgeleitete Befehle) endet am Ende bzw. Anfang des    "
" Workfiles, wenn WRAP OFF gilt. Es setzt sich zyklisch bis zum Ausgangspunkt  "
" fort, wenn WRAP ON gilt. ON ist die Voreinstellung.                          "
"#X                                                                            "
"X [? | n | kette]                                      set or call procedure x"
" Definiert die Prozedur x als Abkürzung für die Folge der Befehle in der Zei- "
" chenkette kette oder führt sie n-mal aus. Die Voreinstellung von n ist 1.    "
"#Y                                                                            "
"Y [? | n | kette]                                      set or call procedure y"
" Definiert die Prozedur y als Abkürzung für die Folge der Befehle in der Zei- "
" chenkette kette oder führt sie n-mal aus. Die Voreinstellung von n ist 1.    "
"#ZONE                                                                         "
"Zone [? | col1 [col2]]                                       set column limits"
" Gibt Anfangs- und Endspalte für CHANGE, die LOCATE-Familie, SSPLIT und TRANS-"
" LAT an. Fehlt col2, so bestimmt die Satzlänge die Endspalte, fehlt auch col1,"
" so ist 1 die Anfangsspalte. Spaltenangaben in Befehlen haben Vorrang vor ZONE"
"#                                                                             "
"§\"                                                                            "
"Präfixbefehl \"[n]                                             duplicate record"
" Verdoppelt den Satz [oder n Sätze].                                          "
"#                                                                             "
"§I                                                                            "
"Präfixbefehl i[n]                                                  insert line"
" Fügt leeren Satz [nach n Sätzen] ein.                                        "
"#                                                                             "
"§D                                                                            "
"Präfixbefehl d[n]                                                 delete lines"
" Löscht einen [oder n Sätze].                                                 "
"#                                                                             "
"§DD                                                                           "
"Präfixbefehl dd                                                   delete lines"
" Löscht die Sätze zwischen den Markierungen dd (einschließlich).              "
"#                                                                             "
;
pk = hilfetext;
memset (zeill, ' ', 80);
memset (zeill + 80, '\0', 1);
for (j = 0; j <= strlen (hilfetext) - 78u; j += 78) {
if (memcmp (pi, pk, i) == 0) {
pk += 78;
while (*pk != '#') {
memcpy (zeill, pk, 78);
if (la == 0) {
m4980:
k = strspn (zeill, nonuml);
if (k < 79) {
lb = 1;
switch (zeill [k]) {
case 'ä':
for (l = 78; l >= k + 1; l --)
zeill [l + 1] = zeill [l];
zeill [k + 1] = 'e';
zeill [k] = 'a';
goto m4980;
case 'ü':
for (l = 78; l >= k + 1; l --)
zeill [l + 1] = zeill [l];
zeill [k + 1] = 'e';
zeill [k] = 'u';
goto m4980;
case 'ö':
for (l = 78; l >= k + 1; l --)
zeill [l + 1] = zeill [l];
zeill [k + 1] = 'e';
zeill [k] = 'o';
goto m4980;
case 'ß':
for (l = 78; l >= k + 1; l --)
zeill [l + 1] = zeill [l];
zeill [k + 1] = 's';
zeill [k] = 's';
goto m4980;
case 'Ä':
for (l = 78; l >= k + 1; l --)
zeill [l + 1] = zeill [l];
zeill [k + 1] = 'e';
zeill [k] = 'A';
goto m4980;
case 'Ü':
for (l = 78; l >= k + 1; l --)
zeill [l + 1] = zeill [l];
zeill [k + 1] = 'e';
zeill [k] = 'U';
goto m4980;
case 'Ö':
for (l = 78; l >= k + 1; l --)
zeill [l + 1] = zeill [l];
zeill [k + 1] = 'e';
zeill [k] = 'O';
goto m4980;
}
}
} 
eazone (zeill);
if (lb == 1) {
zeill [78] = ' ';
zeill [79] = ' ';
lb = 0;
}
pk += 78;
}
return 0; 
}
pk += 78;
}
return 1; 
}
void inpend () {
inputm = 0;
TA3 fprintf (lug, "Eingabemodus End\n"); TE
if (scope == 1) {
*b_inp = ' '; 
memset (b_lia - 1, ' ', 9);
b_lin = b_lia + wakt -> skey;
memcpy (b_lin, lineal, wakt -> pwwidth);
dataend = 1;
}
if (inputi > 0) {
numein (lalt, nchs, inputi);
if (nchs != NULL)
nchs -> rckw = wakt -> clp;
else wakt -> bottom = wakt -> clp;
}
}
void ketngf (int typ, int hexa, char *kette, char *ketteh) {
int i;
if (typ == 1)
i = wakt -> lwwidth + wakt -> skey - (la == 2 ? 27 : 28) - hexa;
else i = wakt -> lwwidth + wakt -> skey - (la == 2 ? 35 : 32) - hexa;
if (hexa == 0) {
if (strlen (kette) <= i) {
Sprintf (fehler, "%s %s", (typ == 1 ? t064 [la] : t072 [la]),
kette);
eazone (fehler);
}
else {
eazone ((typ == 1 ? t064 [la] : t072 [la]));
eazone (kette);
}
}
else {
if (strlen (ketteh) <= i)
Sprintf (fehler, "%s x%s", (typ == 1 ? t064 [la] : t072 [la]),
ketteh);
else {
eazone ((typ == 1 ? t064 [la] : t072 [la]));
Sprintf (fehler, "x%s", ketteh);
}
eazone (fehler);
}
}
int lieskw (char *text1, char *text2) {
int        i;
int        j;
if (scope == 0) {
m4990:
eazone (text1);
#ifndef Mntos2
i = system ("stty -echo");
#endif
for (i = 0; i < 20; i ++) {
#ifdef Mt
j = get2char (); 
#else
j = getchar ();
#endif
#ifdef Mp
protok ();                                                 
#endif
if (j == EOF) {
goto m5000;
}
if (j == '\n') {
zeile [i] = '\0';
goto m5000;
}
if (j == '\r') {
zeile [i] = '\0';
goto m5000;
}
httpkw [i] = j;
}
m5000:
#ifndef Mntos2
i = system ("stty echo");
#endif
if (quitsignalisiert == 1) {
quitsignalisiert = 0;
TA3 fprintf (lug, "quitsignalisiert6 = 0\n"); TE
return 1;
}
if (fenstergeaendert == 1) {
#ifndef Mntos2
j = system ("stty sane");
#endif
fenstergeaendert = 0;
}
if (i == 0) {
return 0; 
}
return 0;
} 
else {
m5010:
eazone (text2);
memset (zeill, ' ', COLS);
zeill [COLS] = '\0';
b_xxx = b_ebe + ebe * COLS;
for (j = 1; j <= zze - ebe; j ++) {
memset (b_xxx, ' ', COLS);
#ifndef Ms
(void) move (zle + ebe + j - 1, 0);
(void) addstr (zeill); 
#endif
b_xxx += COLS;
}
zl = zzd + 1 + ebe;
sp = 0;
#ifndef Ms
(void) move (zl, sp);
(void) refresh ();
#else
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
j = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-15\n", fnrs);
(void) fflush (stdout);
#endif
for (i = 0; i < 20; i ++) {
#ifdef Mt
j = get2ch (); 
#elif defined Mexaedit
j = getch ();
#else
j = fputs ("$0\n", pesa);
(void) fflush (pesa);
printf ("%s $0 geschrieben-15\n", fnrs); (void) fflush (stdout);
fscanf (pese, "%d", &j);
#endif
#ifdef Mp
protok ();                                                 
#endif
if (fenstergeaendert == 1) {
fenstergeaendert = 0;
#ifndef Ms
(void) endwin ();
#endif
scope = 0;
TA fprintf (lug, "curses off 4\n"); TE
curses ();
if (scope == 0)
goto m4990;
#ifdef Mp
i = - LINES;                                             
protok ();                                               
i = - COLS;                                              
protok ();                                               
#endif
bilgro ();
wfaend = 1;
ausgab (1);
#ifndef Ms
(void) refresh ();
#else
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
j = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-10\n", fnrs);
(void) fflush (stdout);
#endif
goto m5010;
} 
if (j == 10 || j == KEY_ENTER) {
httpkw [i] = '\0';
break;
}
httpkw [i] = j;
(void) addch (42);
(void) refresh ();
} 
} 
if (quitsignalisiert == 1) {
quitsignalisiert = 0;
TA3 fprintf (lug, "quitsignalisiert7 = 0\n"); TE
eazone ("q");
return 1;
}
return j;
}
void lmmeld (char *t999) {
if (strlen (dsnameload) <= 78 - strlen (t999)) {
Sprintf (fehler, "%s: %s", t999, dsnameload);
eazone (fehler); 
}
else {
Sprintf (fehler, "%s:", t999);
eazone (fehler); 
eazone (dsnameload);
}
}
void numein (struct l *numa, struct l *nume, int numanz) {
int i;
int j;
int k;
TA fprintf (lug, "NUM00\n"); TE
numi1 = atoi (numa -> schl); 
if (nume != NULL) {
numi2 = atoi (nume -> schl);
numid = (numi2 - numi1) * 4 / 5;
if (numanz * incr < numid) {
numi3 = incr;
goto m5030;
}
for (incri = incrt - 1; incri >= 2; incri --) {
if (numanz * incrtab [incri] < numid) {
numi3 = incrtab [incri];
goto m5030;
}
}
if (numanz < numi2 - numi1) {
numi3 = 1;
goto m5030;
}
parrek (numa -> vorw, numanz);
return;
}
else {
TA fprintf (lug, "NUM01\n"); TE
for (i = incrt2; i >= 0; i --) {
j = numi1 % incrtab2 [i]; 
if (j == 0)
k = numi1;
else k = numi1 - j;
j = (99999999 - k) / numanz;
if (j >= incrtab2 [i]) {
numi1 = k;
numi3 = incrtab2 [i];
goto m5030;
}
}
i = 99999999 / wakt -> zeilenzahl;
if (i >= incr) {
numi3 = incr;
goto m5020;
}
if (i >= 100) {
numi3 = 100;
goto m5020;
}
if (i >= 10) {
numi3 = 10;
goto m5020;
}
if (i >= 5) {
numi3 = 5;
goto m5020;
}
if (i >= 2) {
numi3 = 2;
goto m5020;
}
if (i >= 1) {
numi3 = 1;
goto m5020;
}
eazone (t183 [la]);
numi3 = 1;
goto m5030;
m5020:
numi1 = numi3;
numil = numi3;
numanz = wakt -> zeilenzahl;
temp = wakt -> anfang -> vorw;
goto m5040;
}
m5030:
temp = numa -> vorw;
numil = numi1 + numi3;
m5040:
for (j = 1; j <= numanz; j ++) {
Sprintf (temp -> schl, "%08d", numil);
temp = temp -> vorw;
numil += numi3;
}
}
int panall (char **pj, int *restleer) {
char *pi;
int rl;
pi = *pj;
rl = *restleer;
if (rl == 1) {
anzahl = 1;
return 1;
}
if (*pi == cmdsep) {
anzahl = 1;
pi ++;
return 1;
}
i = getzhl (&pi, &rl);
switch (i) {
case 0:
anzahl = zahl;
break;
case Ffehlbef:
m5050:
Sprintf (fehler, t104 [la], pz0);
eazone (fehler);
return 2;
case Fkeinesp:
i = getnam (&pi, &rl);
switch (i) {
case 0:
if (memcmp (name, "ALL", lname) == 0) {
anzahl = - 1;
break;
}
m5060:
eazone (t009 [la]); 
return 2;
case Fkeinbuc:
goto m5060; 
case Fzugross:
goto m5060; 
default:
profeh (131, i);
return 1; 
}
break;
case Fzugross:
eazone (t110 [la]); 
return 2;
case Fpvnidef:
eazone (t147 [la]); 
return 2;
case Fpvninum:
eazone (t186 [la]); 
return 2;
default:
profeh (130, i);
return 2;
}
if (rl == 0)
if (*pi != cmdsep)
goto m5050; 
*pj = pi;
*restleer = rl;
return 1;
}
void parrek (struct l *lauf, int numanz) {
numil = (numi1 / incr + 1) * incr;
for (i = 1; i <= numanz; i ++) {
Sprintf (lauf -> schl, "%08d", numil);
lauf = lauf -> vorw;
numil += incr;
}
numi2 = atoi (lauf -> schl);
while (numil > numi2) {
Sprintf (lauf -> schl, "%08d", numil);
lauf = lauf -> vorw;
if (lauf == NULL)
break;
numi2 = atoi (lauf -> schl);
numil += incr;
}
eazone (t083 [la]); 
}
int prodat () {
eazonebenutzt = 0;
profilbearbeiten = 1;
while (fgets (puffer, 902, pro) != NULL) {
if (strlen (puffer) == 901 && puffer [900] != '\n') {
Sprintf (fehler, t202 [la], t197 [la], 900);
eazone (fehler);
}
memset (puffer + (strlen (puffer) - 1), '\0', 1);
proft = (struct p *) malloc (sizeof (struct p) + strlen (puffer));
proft -> vorw = NULL;
proft -> rckw = profv;
memcpy (&(proft -> datn [0]), puffer, strlen (puffer));
proft -> laen = strlen (puffer);
if (profv == NULL)
profa = proft;
else profv -> vorw = proft;
profv = proft;
if (puffer [0] == '!')
i = ausfue (puffer + 1);
else i = ausfue (puffer);
if (i == 5)
return 5;  
}
if (ferror (pro))
eazone (t124 [la]); 
(void) fclose (pro);
if (eazonebenutzt == 1) {
eazone (t125 [la]);
#ifdef Mt
i = get2char (); 
#else
i = getchar ();
#endif
#ifdef Mp
protok ();                                                  
#endif
}
else profilbearbeiten = 0;
return 0;
}
void profeh (int j, int i) {
char       zeile [81];
Sprintf (zeile, t126 [la], j, i);
eazone (zeile);
}
#ifdef Mp
protok () {                                                      
ptksp [ptki] = i;                                              
ptki ++;                                                       
if (ptki == 14) {                                              
fprintf (ptk,                                                
"%4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d\n", 
ptksp [0],ptksp [1],ptksp [2],ptksp [3],ptksp [4],ptksp [5], 
ptksp [6],ptksp [7],ptksp [8],ptksp [9],ptksp[10],ptksp[11], 
ptksp[12],ptksp[13]);                                        
ptki = 0;                                                    
}                                                              
return;                                                        
}                                                                
#endif
int sextst (char *dsname) {
int i;
TA fprintf (lug, "sextst\n"); TE
if (sela == NULL)
goto m5070; 
sext = sela;
while (sext != NULL) {
i = gmatch (dsname, sext -> datn);
if (i == 1)
goto m5070; 
sext = sext -> vorw;
}
return 2;
m5070:
if (exca == NULL)
return 1; 
sext = exca;
while (sext != NULL) {
i = gmatch (dsname, sext -> datn);
if (i == 1)
return 2; 
sext = sext -> vorw;
}
return 1;
}
#ifndef Mntos2
void sigcnt (int i) {
TA fprintf (lug, "sigcnt\n"); TE
TA3 fprintf (lug, "sigcnt\n"); TE
fenstergeaendert = 1;
(void) signal (SIGCONT, sigcnt);
}
#endif
void sigint (int i) {
quitsignalisiert = 1;
TA3 fprintf (lug, "quitsignalisiert2 = 1\n"); TE
(void) signal (SIGINT, sigint);
}
#ifndef Mnt
void sigpip (int i) {
eazone ("FIFO-Datei ohne Abnehmer");
moni = 0;
(void) signal (SIGPIPE, sigpip);
}
#endif
void sigseg (int isig) {
switch (isig) {
case SIGSEGV:
printf ("exaEdit: Segmentation fault\n");
break;
#ifndef Mnt
case SIGBUS:
printf ("exaEdit: Bus error\n");
break;
#  ifndef Mos2
case SIGIOT:
printf ("exaEdit: End process\n");
break;
#  endif
#endif
case SIGILL:
printf ("exaEdit: Illegal instruction\n");
break;
default:
printf ("exaEdit: 1247: %d\n", isig);
exit (0);
}
dmp = fopen ("exaEdit.dmp", "w");
if (dmp == NULL)
printf (t128 [la]); 
else {
printf (t129 [la]); 
switch (isig) {
case SIGSEGV:
fprintf (dmp, "Segmentation fault\n");
break;
#ifndef Mnt
case SIGBUS:
fprintf (dmp, "Bus error\n");
break;
#  ifndef Mos2
case SIGIOT:
fprintf (dmp, "End process\n");
break;
#  endif
#endif
case SIGILL:
fprintf (dmp, "Illegal instruction\n");
break;
}
}
wlauf = wmain;
while (wlauf != NULL) {
if (wlauf -> notfiled == 0)
goto m5100;
if (zeit003 == 0) {
zeit003 = 1;
(void) time (&zeit);
zeit2 = gmtime (&zeit);
zeit2 -> tm_min += zeitd;
if (locgro == 1)  {
while (zeit2 -> tm_min > 59) {
zeit2 -> tm_min -= 60;
zeit2 -> tm_hour ++;
}
if (zeit2 -> tm_hour > 23) {
zeit2 -> tm_hour -= 24;
zeit2 -> tm_mday ++;
if (zeit2 -> tm_year % 4 == 0)
monlae [1] ++;
if (zeit2 -> tm_mday > monlae [zeit2 -> tm_mon]) {
zeit2 -> tm_mday = 1;
zeit2 -> tm_mon ++;
if (zeit2 -> tm_mon == 12) {
zeit2 -> tm_mon = 0;
zeit2 -> tm_year ++;
}
}
}
}
else  {
while (zeit2 -> tm_min < 0) {
zeit2 -> tm_min += 60;
zeit2 -> tm_hour --;
}
if (zeit2 -> tm_hour < 0) {
zeit2 -> tm_hour += 24;
zeit2 -> tm_mday --;
if (zeit2 -> tm_mday < 1) {
if (zeit2 -> tm_year % 4 == 0)
monlae [1] ++;
zeit2 -> tm_mon --;
if (zeit2 -> tm_mon == - 1) {
zeit2 -> tm_mday = 31;
zeit2 -> tm_mon = 11;
zeit2 -> tm_year --;
}
else zeit2 -> tm_mday = monlae [zeit2 -> tm_mon];
}
}
}
Sprintf (fehler, "%d%02d%02d-%02d%02d%02d",
zeit2 -> tm_year + 1900, zeit2 -> tm_mon + 1, zeit2 -> tm_mday,
zeit2 -> tm_hour, zeit2 -> tm_min, zeit2 -> tm_sec);
}
pi = wlauf -> wfname;
while (*pi) 
if (*pi != ' ')
pi ++;
else break;
memcpy (ch8, wlauf -> wfname, pi - wlauf -> wfname);
ch8 [pi - wlauf -> wfname] = '\0';
pi = wlauf -> dsname;
m5080:
if (*pi == '.') {
pi ++;
goto m5080;
}
if (*pi == '/') {
pi ++;
goto m5080;
}
m5090:
pj = strchr (pi, '/');
if (pj != NULL) {
*pj = '.';
goto m5090;
}
sprintf (dsnamedat, "exaEdit.%s.%s.%s", fehler, ch8, pi);
if (dmp != NULL)
fprintf (dmp, "DAT-DSNAME %s\n", dsnamedat);
printf ("%s\n", dsnamedat);
dat = fopen (dsnamedat, "w");
if (dat == NULL) {
printf (t130 [la], dsnamedat); 
if (dmp != NULL)
fprintf (dmp, t130 [la], dsnamedat);
}
else {
printf (t131 [la], dsnamedat); 
if (dmp != NULL)
fprintf (dmp, t131 [la], dsnamedat); 
lauf = wlauf -> anfang -> vorw;
while (lauf != NULL) {
memcpy (zeill, lauf -> datn, lauf -> lnlz);
zeill [lauf -> lnlz] = '\n';
zeill [lauf -> lnlz + 1] = '\0';
(void) fputs (zeill, dat);
lauf = lauf -> vorw;
}
(void) fclose (dat);
printf (t132 [la]); 
if (dmp != NULL)
fprintf (dmp, t133 [la]); 
}
m5100:
wlauf = wlauf -> vorw;
}
#ifdef Mp
for (i = ptki; i <= 13; i ++)                                  
ptksp [i] = 9999;                                            
fprintf (dmp,                                                  
"%4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d\n", 
ptksp [0],ptksp [1],ptksp [2],ptksp [3],ptksp [4],ptksp [5], 
ptksp [6],ptksp [7],ptksp [8],ptksp [9],ptksp[10],ptksp[11], 
ptksp[12],ptksp[13]);                                        
#endif
if (dmp != NULL) {
(void) fclose (dmp);
printf (t134 [la]); 
}
if (scope == 1) {
TA fprintf (lug, "scope off\n"); TE
printf (t017 [la]);
scope = 0;
#ifndef Ms
(void) erase ();
(void) refresh ();
(void) endwin ();
#else
bild [1920] = '\0';
sprintf (bildk, "$2%003d%003d", zl, sp);
strcpy (bildk + 8, bild);
i = fputs (bildk, pesa);
(void) fflush (pesa);
printf ("%s bildk (Cursor und bild) geschrieben-9\n", fnrs);
(void) fflush (stdout);
#endif
TA fprintf (lug, "curses off 6\n"); TE
}
if (monoffen == 1) {
(void) fclose (mon);
i = system ("rm /tmp/pm");
}
exit (0);
}
#ifndef Mntos2
void sigwch (int i) {
TA fprintf (lug, "sigwch\n"); TE
if (scope == 1)
fenstergeaendert = 1;
(void) signal (SIGWINCH, sigwch);
}
#endif
int statfu (char *pfad) {
struct stat abc; 
#ifdef Mnt
if (strlen (pfad) == 2)
if (pfad [1] == ':')
if (isalpha (pfad [0]) != 0)
return 3; 
#endif
if (stat (pfad, &abc) == 0) {
#ifndef Stat
if ((abc.st_mode & _S_IFMT) == _S_IFREG)
#else
if (S_ISREG((mode_t) abc.st_mode))
#endif
return 2; 
#ifndef Stat
if ((abc.st_mode & _S_IFMT) == _S_IFDIR)
#else
if (S_ISDIR((mode_t) abc.st_mode))
#endif
return 3; 
return 4; 
}
else return 1; 
}
void tielmu (int jj) {
TA fprintf (lug, "tielmu %d\n", jj);
temp = dtzuad [jj];
fprintf (lug, "TIE %s %s %s\n",
temp -> schl, temp -> rckw -> schl, temp -> vorw -> schl); TE
if (noraendie [jj] == 1)
noraendie [jj] = 0;
dtzufl [jj] = 0;
temp = dzadr [jj];
TA fprintf (lug, "TIF %s %s %s\n",
temp -> schl, temp -> rckw -> schl, temp -> vorw -> schl); TE
vori = temp -> rckw; 
if (vori != NULL)
vori -> vorw = dtzuad [jj];
if (temp -> vorw != NULL)
temp -> vorw -> rckw = dtzuad [jj];
dtzuad [jj] -> rckw = vori;
dtzuad [jj] -> vorw = temp -> vorw;
if (temp == wakt -> clp)
wakt -> clp = dtzuad [jj];
if (temp == wakt -> bottom)
wakt -> bottom = dtzuad [jj];
if (temp == wakt -> setp)
wakt -> setp = dtzuad [jj];
if (temp == wakt -> stop)
wakt -> stop = dtzuad [jj];
if (temp == wakt -> sbot)
wakt -> sbot = dtzuad [jj];
free (temp);
dzadr [jj] = dtzuad [jj];
}
#ifdef Ms
tkprau (char *rein, char *raus) {
int      i;
struct {
unsigned fuenf : 5;
}        park;
union {
char     a;
struct {
unsigned fuenf : 5;
unsigned drei : 3;
}        teil;
}        zerl;
union {
char     a;
struct {
unsigned drei : 3;
unsigned fuenf : 5;
}        teil;
}        zusa;
struct {
unsigned drei : 3;
}        zwi;
zerl.a = rein [0];
park.fuenf = zerl.teil.fuenf;
zwi.drei = zerl.teil.drei;
for (i = 1; i < strlen (rein); i ++) {
zerl.a = rein [i];
zusa.teil.drei = zwi.drei;
zusa.teil.fuenf = zerl.teil.fuenf;
zwi.drei = zerl.teil.drei;
raus [i - 1] = zusa.a;
}
zusa.teil.drei = zwi.drei;
zusa.teil.fuenf = park.fuenf;
raus [i - 1] = zusa.a;
}
tkprun (char *rein, char *raus) {
int      i;
struct {
unsigned fuenf : 5;
}        park;
union {
char     a;
struct {
unsigned drei : 3;
unsigned fuenf : 5;
}        teil;
}        zerl;
union {
char     a;
struct {
unsigned fuenf : 5;
unsigned drei : 3;
}        teil;
}        zusa;
struct {
unsigned drei : 3;
}        zwi;
i = strlen (rein) - 1;
zerl.a = rein [i];
park.fuenf = zerl.teil.fuenf;
zwi.drei = zerl.teil.drei;
for (i = i - 1; i >= 0; i --) {
zerl.a = rein [i];
zusa.teil.drei = zwi.drei;
zusa.teil.fuenf = zerl.teil.fuenf;
zwi.drei = zerl.teil.drei;
raus [i + 1] = zusa.a;
}
zusa.teil.drei = zwi.drei;
zusa.teil.fuenf = park.fuenf;
raus [i + 1] = zusa.a;
}
#endif
void umleit (int delta) {
int i;
int j;
zla = zl - dzben [zl] + 1;
if (zla < 0)
zla = 0;
TA fprintf (lug, "umleit %d %d\n", zl, zla); TE
if (dtzufl [zla] != 1) {
TA fprintf(lug,"SEG|%s|\n", lauf -> schl); TE
umla = (struct l *) malloc (
lsl + lauf -> lmax + delta);
memcpy (Cast umla, Cast lauf, lsl + lauf -> lben);
umla -> lmax += delta;
dtzufl [zla] = 1;
dtzuad [zla] = lauf;
TA fprintf (lug, "TZU %d %d\n", zla, dtzuad [zla]); TE
vori = lauf -> rckw; 
if (vori != NULL)
vori -> vorw = umla;
umla -> vorw = lauf -> vorw;
umla -> rckw = vori;
if (lauf -> vorw != NULL)
lauf -> vorw -> rckw = umla;
else wakt -> bottom = umla;
if (lauf == wakt -> clp)
wakt -> clp = umla;
if (wakt -> setp1 > 0)
if (lauf == wakt -> setp)
wakt -> setp = umla;
if (lauf == wakt -> stop)
wakt -> stop = umla;
if (lauf == wakt -> sbot)
wakt -> sbot = umla;
lauf = umla;
}
else {
if (delta > 0) 
vergro (delta);
}
i = zla;
do {
dzadr [i] = lauf;
i ++;
} while (dzben [i] > dzben [i - 1]);
if (noraendie [zla] == 1) {
noraendie [zla] = 0;
i = zla;
do {
pb = &bild [i * COLS];
pi = lauf -> datn;
if (dzben [i] > 1)
pj = pi + (dzben [i] - 1) * wakt -> lwwidth;
else pj = pi;
j = lauf -> lnlz - (dzben [i] - 1) * wakt -> lwwidth;
if (j > wakt -> pwwidth)
j = wakt -> pwwidth;
memcpy (pj, pb + wakt -> skey + 1, j);
#ifdef Mnt
if (pccp == 2) 
doswin (pj, j);
#endif
i ++;
} while (dzben [i] > dzben [i - 1]);
}
}
int urloef (enum filo typ) {
#ifndef Mntos2
int        addrlen;
char       ch100 [100];
struct hostent
*client;
int        code;
char       command [50];
int        daten;
struct sockaddr_in
ergeb;
struct sockaddr_in
ftpcl;
char       hostname [256];
struct hostent
*hp;
int        i;
int        ii = 3000;
unsigned long
inaddr;
int        i1;
int        i2;
int        i3;
int        i4;
int        j = 1;
int        k;
struct sockaddr_in
kontrad; 
unsigned long
lergeb;
char       line [50];
struct sockaddr
newserveraddr;
char       outstring [1024];
int        resvport;
char      *server;
unsigned long
ul;
ftpksock = socket (AF_INET, SOCK_STREAM, 0);
if (ftpksock == - 1) {
profeh (115, errno);
return - 1;
}
server = httpsv;
TA fprintf (lug, "server = %s\n", server); TE
#ifndef Mlin
kontrad.sin_len = sizeof (kontrad);
#endif
kontrad.sin_family = AF_INET;
kontrad.sin_port = htons (21);
if ((inaddr = inet_addr (server)) != INADDR_NONE) {
bcopy (
(char *) &inaddr, (char *) &kontrad.sin_addr, sizeof (inaddr));
}
else {
TA fprintf (lug, "serves = %s\n", server); TE
hp = gethostbyname (server);
if (hp == NULL) {
switch (h_errno) {
case HOST_NOT_FOUND:
eazone (t211 [la]);
break;
default:
profeh (116, h_errno);
}
(void) close (ftpksock);
return - 1;
}
bcopy (hp -> h_addr, (char *) &kontrad.sin_addr, hp -> h_length);
}
i =
connect (ftpksock, (struct sockaddr *) &kontrad, sizeof (kontrad));
if (i == - 1) {
switch (errno) {
case ECONNREFUSED :
eazone (t220 [la]);
break;
default:
profeh (117, errno);
}
(void) close (ftpksock);
return - 1;
}
i = read (ftpksock, puffer, sizeof (puffer)); 
if (i < 4) {
profeh (126, (i > 0) ? i : errno);
(void) close (ftpksock);
return - 1;
}
if (memcmp (puffer, "220 ", 4) != 0) {
Sprintf (fehler, t212 [la], 1);
eazone (fehler);
memcpy (fehler, puffer, i);
memset (fehler + i - 2, '\0', 1); 
eazone (fehler);
return - 1;
}
if (httpid == 0) {
strcpy (httpbi, "ftp");
strcpy (httpkw, "ftp");
}
sprintf (outstring, "USER %s\n", httpbi);
write (ftpksock, outstring, strlen (outstring)); 
bzero (puffer, sizeof (puffer));
i = read (ftpksock, puffer, sizeof (puffer)); 
if (i < 4) {
profeh (126, (i > 0) ? i : errno);
return - 2;
}
if (memcmp (puffer, "331 ", 4) != 0) {
Sprintf (fehler, t212 [la], 2);
eazone (fehler);
memcpy (fehler, puffer, i);
memset (fehler + i - 2, '\0', 1); 
eazone (fehler);
return - 2;
}
sprintf (outstring, "PASS %s\r\n", httpkw);
write (ftpksock, outstring, strlen (outstring)); 
bzero (puffer, 1024);
i = read (ftpksock, puffer, 1024); 
if (i < 4)
profeh (126, (i > 0) ? i : errno);
(void) sscanf (puffer, "%d", &k);
if (puffer [3] == '-')
k = 0;
switch (k) {
case 230:
break;
case 503:
case 530:
eazone (t213 [la]);
return - 1;
default:
Sprintf (fehler, t212 [la], 3);
eazone (fehler);
memcpy (fehler, puffer, i);
memset (fehler + i - 2, '\0', 1); 
eazone (fehler);
return - 2;
}
daten = socket (AF_INET, SOCK_STREAM, 0);
if (daten == - 1) {
profeh (118, errno);
return - 2;
}
TA fprintf (lug, "daten = socket %d\n", daten); TE
#ifndef Mlin
ftpcl.sin_len = sizeof (ftpcl);
#endif
ftpcl.sin_family = AF_INET;
ftpcl.sin_addr.s_addr = htonl (INADDR_ANY);
m5110:
ftpcl.sin_port = htons (ii);
i = bind (daten, (struct sockaddr *) &ftpcl, sizeof (ftpcl));
TA fprintf (lug, "bind %d %d\n", i, ii); TE
if (i == - 1) {
i = 120;
switch (errno) {
case 67:
ii ++;
j ++;
goto m5110;
default:
profeh (i , errno);
(void) close (daten);
return - 2;
}
}
i = gethostname (hostname, 256);
if (i == - 1) {
profeh (121, errno);
(void) close (daten);
return - 2;
}
TA fprintf (lug, "gethostname %d\n", i); TE
client = gethostbyname (hostname);
if (client == NULL) {
profeh (122, h_errno);
(void) close (daten);
return - 2;
}
TA fprintf (lug, "gethostbyname %d\n", client); TE
bcopy (client -> h_addr, (char *) &ul, client -> h_length);
i1 = ul - ((ul >> 8) << 8);
ul = (ul - i) / 256;
i2 = ul - ((ul >> 8) << 8);
ul = (ul - i) / 256;
i3 = ul - ((ul >> 8) << 8);
ul = (ul - i) / 256;
i4 = ul - ((ul >> 8) << 8);
sprintf (outstring, "PORT %d,%d,%d,%d,11,%d\r\n", i4, i3, i2, i1,
ii - 2816);
write (ftpksock, outstring, strlen (outstring)); 
bzero (puffer, sizeof (puffer));
i = read (ftpksock, puffer, sizeof (puffer)); 
if (i < 4) {
profeh (126, (i > 0) ? i : errno);
return - 2;
}
if (memcmp (puffer, "200 ", 4) != 0) {
Sprintf (fehler, t212 [la], 4);
eazone (fehler);
memcpy (fehler, puffer, i);
memset (fehler + i - 2, '\0', 1); 
eazone (fehler);
return - 2;
}
j = 1;
i = listen (daten, 0);
if (i == - 1) {
profeh (123, errno);
(void) close (daten);
return - 2;
}
TA fprintf (lug, "listen %d\n", i); TE
sprintf (line, typ == Aload ? "RETR %s\r\n" : "STOR %s\r\n",
typ == Aload ? dsnameload : dsnamefile);
j = 1;
write (ftpksock, line, strlen (line)); 
bzero (puffer, 1024);
i = read (ftpksock, puffer, 1024);
if (i < 4) {
profeh (126, (i > 0) ? i : errno);
return - 2;
}
(void) sscanf (puffer, "%d", &k);
if (puffer [3] == '-')
k = 0;
switch (k) {
case 150:
break;
case 550:
eazone (t117 [la]); 
return - 2;
case 425:
default:
Sprintf (fehler, t212 [la], 5);
eazone (fehler);
memcpy (fehler, puffer, i);
memset (fehler + i - 2, '\0', 1); 
eazone (fehler);
return - 2;
}
ftpnsock = accept (daten, 0, 0);
if (ftpnsock == - 1) {
profeh (124, errno);
(void) close (daten);
return - 2;
}
TA fprintf (lug, "accept (ftpnsock) %d\n", ftpnsock); TE
#endif
return 0;
}
int urlsch (enum filo typ) {
int        i;
int        j = 0;
#ifndef Mntos2
sprintf (fehler, "QUIT\r\n");
(void) write (ftpksock, fehler, strlen (fehler)); 
memset (puffer, ' ', 1024);
i = read (ftpksock, puffer, sizeof (puffer));
if (i < 4) {
profeh (128, (i > 0) ? i : errno);
j = 1;
}
else
if (memcmp (puffer, typ == Aload ? "221 " : "226 ", 4) != 0) {
Sprintf (fehler, t212 [la], 7);
eazone (fehler);
memcpy (fehler, puffer, i);
memset (fehler + i - 2, '\0', 1); 
eazone (fehler);
j = 1;
}
(void) close (ftpnsock);
#endif
return j;
}
int vergle (const void * arg1, const void * arg2) {
nump1 = *(struct l **) arg1;
nump2 = *(struct l **) arg2;
if (sornum == 1) {
d1 = atof (nump1 -> datn);
d2 = atof (nump2 -> datn);
if (d1 > d2)
return vglgr;
if (d1 < d2)
return vglkl;
return 0;
}
if (nump1 -> lben < nump2 -> lben)
i = nump1 -> lben;
else i = nump2 -> lben;
if (sorcas == 0)
for (j = 0; j < i; j ++) {
if (nump1 -> datn [j] > nump2 -> datn [j])
return vglgr;
if (nump1 -> datn [j] < nump2 -> datn [j])
return vglkl;
}
else
for (j = 0; j < i; j ++) {
i1 = nump1 -> datn [j];
if (i1 >= 65 && i1 <= 90)
i1 += 32;
i2 = nump2 -> datn [j];
if (i2 >= 65 && i2 <= 90)
i2 += 32;
if (i1 > i2)
return vglgr;
if (i1 < i2)
return vglkl;
}
if (nump1 -> lben < nump2 -> lben)
return vglkl;
if (nump1 -> lben > nump2 -> lben)
return vglgr;
return 0;
}
int verglf (const void * arg1, const void * arg2) {
nump1 = *(struct l **) arg1;
nump2 = *(struct l **) arg2;
ii = 1;
m5130:
j = soanf [ii] + solen [ii];
if (nump1 -> lben < j - 1)
i1 = nump1 -> lben + 1;
else i1 = j;
if (nump2 -> lben < j - 1)
i2 = nump2 -> lben + 1;
else i2 = j;
if (sonum [ii] == 1) {
if (soanf [ii] > nump1 -> lben)
memset (s1, '\0', 1);
else {
i = i1 - soanf [ii];
memcpy (s1, &(nump1 -> datn [soanf [ii] - 1]), i);
memset (s1 + i, '\0', 1);
}
if (soanf [ii] > nump2 -> lben)
memset (s2, '\0', 1);
else {
i = i2 - soanf [ii];
memcpy (s2, &(nump2 -> datn [soanf [ii] - 1]), i);
memset (s2 + i, '\0', 1);
}
d1 = atof (s1);
d2 = atof (s2);
if (d1 > d2)
return sogro [ii];
if (d1 < d2)
return sokle [ii];
}
else {
i = i1;
if (i2 < i1)
i = i2;
if (socas [ii] == 0)
for (k = soanf [ii]; k < i; k ++) {
if (nump1 -> datn [k - 1] > nump2 -> datn [k - 1])
return sogro [ii];
if (nump1 -> datn [k - 1] < nump2 -> datn [k - 1])
return sokle [ii];
}
else
for (k = soanf [ii]; k < i; k ++) {
i1 = nump1 -> datn [k - 1];
if (i1 >= 65 && i1 <= 90)
i1 += 32;
i2 = nump2 -> datn [k - 1];
if (i2 >= 65 && i2 <= 90)
i2 += 32;
if (i1 > i2)
return sogro [ii];
if (i1 < i2)
return sokle [ii];
}
if (i < j) {
if (nump1 -> lben < nump2 -> lben)
return sokle [ii];
if (nump1 -> lben > nump2 -> lben)
return sogro [ii];
}
}
if (ii < soanz) {
ii ++;
goto m5130;
}
return 0;
}
void vergro (int delta) {
TA fprintf (lug, "vergro %d\n", delta); TE
lalt = lauf;
lauf = (struct l *) realloc (lauf, lsl + lauf -> lmax + delta);
lauf -> lmax += delta;
if (lauf -> rckw != NULL)
lauf -> rckw -> vorw = lauf;
if (lauf -> vorw != NULL)
lauf -> vorw -> rckw = lauf;
else wakt -> bottom = lauf;
if (lalt == wakt -> clp)
wakt -> clp = lauf;
if (lalt == wakt -> setp)
wakt -> setp = lauf;
if (lalt == wakt -> stop)
wakt -> stop = lauf;
if (lalt == wakt -> sbot)
wakt -> sbot = lauf;
if (lalt == exec)
exec = lauf;
}
int vernam (char *dsn) {
#ifndef Mnt
#endif
#ifndef Mnt
pi = strrchr (dsn, '/');
#else
pi = strrchr (dsn, '\\');
#endif
if (pi != NULL) {
strncpy (vername, dsn, pi - dsn + 1);
vername [pi - dsn + 1] = '\0';
TA fprintf (lug, "VE01 |%s|\n", vername); TE
return 0;
}
else {
#ifdef Mnt
if (strlen (dsn) >= 3)
if (dsn [1] == ':')
if (isalpha (dsn [0]) != 0)
if (dsn [2] != '\\') {
pi = _getdcwd (toupper (dsn [0]) - 64, vername, 256);
if (pi == NULL)
switch (errno) {
default:
Sprintf (fehler, "getdcwd errno = %d", errno);
eazone (fehler);
TA fprintf (lug, "VE02 %d\n", errno); TE
return 1;
}
TA fprintf (lug, "VE03 |%s|\n", vername); TE
return 0;
}
#endif
vername [0] = '.';
vername [1] = '\0';
TA fprintf (lug, "VE04 |%s|\n", vername); TE
return 0;
}
}
void wfini1 (char *pi) {
memcpy (wakt -> wfname, pi, 8);
(*wakt).wfname [8] = '\0';
(*wakt).dsname [0] = '\0';
wakt -> casei = 0;
wakt -> caseu = 0;
wakt -> skey = skeyneu;
wakt -> skeyalt = skeyneu;
wakt -> zona = 1;
wakt -> zone = 0;
wakt -> anfang = (struct l *) malloc (lsl + 40);
wakt -> anfang -> vorw = NULL;
wakt -> anfang -> rckw = NULL;
wakt -> anfang -> flag = ' ';
wakt -> anfang -> lmax = 40;
wakt -> anfang -> lben = 22;
wakt -> anfang -> lnlz = 22; 
strcpy (wakt -> anfang -> schl, wakt -> wfname);
memcpy (wakt -> anfang -> datn, " exaEdit 02D TOP LINE ", 22);
wakt -> bottom = wakt -> anfang;
wakt -> clp = wakt -> anfang;
wakt -> sbot = wakt -> anfang;
wakt -> setp = NULL;
wakt -> setp1 = 0;
wakt -> stop = wakt -> anfang;
wakt -> dsnistda = 0;
wakt -> mode = 3;
wakt -> modeon = 1;
wakt -> mult = 0;
wakt -> notfiled = 0;
wakt -> width = 0;
wakt -> wrapon = 1;
wakt -> zeilenzahl = 0;
wakt -> symbx [0] = 'N';
wakt -> symby [0] = 'N';
wakt -> symbz [0] = 'N';
}
void wfini2 () {
wakt -> pwwidth =  COLS - wakt -> skey - 1;
wakt -> lwwidth = wakt -> pwwidth;
wakt -> inlsft = 1;
inltat = 1;
wakt -> inlcol = - 1;
inlakt = wakt -> lwwidth;
}
void wfini3 () {
for (proft = profa; proft != NULL; proft = proft -> vorw)
if (proft -> datn [0] == '!')
i = ausfue (&(proft -> datn [1]));
}
#ifdef Mnt
void windos (char *zeile, int j) {
int        k;
char      *pz;
pz = zeile;
for (k = 1; k <= j; k ++) {
if (*pz >= 160) {
*pz -= 160;
*pz = cp850 [*pz];
}
pz ++;
} 
}
#endif
void zeisat (struct l *lauf) {
int j;
int k;
int m;
TA fprintf (lug, "333-3 %d %d %d\n",
wakt -> skey, wakt -> lwwidth, wakt -> pwwidth); TE
if (lauf == wakt -> anfang) {
skey2 = 7;
lwwidth2 = wakt -> lwwidth - 7 + wakt -> skey;
pwwidth2 = wakt -> pwwidth - 7 + wakt -> skey;
memcpy (zeill, wakt -> wfname, 8);
}
else {
skey2 = wakt -> skey;
lwwidth2 = wakt -> lwwidth;
pwwidth2 = wakt -> pwwidth;
if (zeisatp == 1) {
zeisatp = 0;
goto m5140;
}
if (lauf -> flag == 'D')
memcpy (zeill, "dd      ", skey2);
else if (lauf -> flag == '"')
memcpy (zeill, "\"\"      ", skey2);
else if (lauf -> flag == 'I')
memcpy (zeill, "ii      ", skey2);
else
m5140:
memcpy (zeill, &(*lauf).schl [8 - skey2], skey2);
}
TA fprintf (lug, "333-5 %d %d %d\n", skey2, lwwidth2, pwwidth2); TE
if (strcmp (lauf -> schl, snumg) <= 0)
ch = ' ';
else
if (strspn (lauf -> schl, num) == 8)
ch = '*';
else ch = ' ';
m = lauf -> lnlz;
if (m > pwwidth2)
j = pwwidth2;
else j = m;
if (j > lwwidth2)
j = lwwidth2;
pz = zeill + 1 + skey2;
TA fprintf (lug, "333-6 %d %d\n", m, j); TE
memcpy (pz, &(*lauf).datn [0], j);
TA fprintf (lug, "333-7\n"); TE
memset (pz + j, '\0', 1);
m = 0;
for (k = 1; k <= j; k ++) {
if (*pz < 32 || pccp == 2 && *pz >= 127 && *pz <= 159) {
*pz = '.';
ch = '.';
m = 1;
}
pz ++;
}
if (m == 1)
ch = '.';
*(zeill + skey2) = ch;
TA fprintf (lug, "333-8\n"); TE
windosw = 1;
eazone (zeill);
TA fprintf (lug, "333-9\n"); TE
}
#ifdef Mt
int get2ch () {                                 
int i;                                          
if (! feof (ptk))                             
fscanf (ptk, "%4d", &i);                    
else i = getch ();  
return i;                                     
}                                               
int get2char () {                               
int i;                                          
if (! feof (ptk))                             
fscanf (ptk, "%4d", &i);                    
else i = getchar ();                          
return i;                                     
}                                               
#endif
