diff options
Diffstat (limited to 'systems/unix/tex-fpc/tangle.p')
-rw-r--r-- | systems/unix/tex-fpc/tangle.p | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/systems/unix/tex-fpc/tangle.p b/systems/unix/tex-fpc/tangle.p index a34f81d7dd..cc0d9b7ad3 100644 --- a/systems/unix/tex-fpc/tangle.p +++ b/systems/unix/tex-fpc/tangle.p @@ -1,5 +1,5 @@ {2:}{4:}{$MODE ISO}{$Q+}{$R+}{:4}PROGRAM TANGLE(OUTPUT);LABEL 9999; -CONST{8:}BUFSIZE=100;MAXBYTES=45000;MAXTOKS=50000;MAXNAMES=4000; +CONST{8:}BUFSIZE=100;MAXBYTES=45000;MAXTOKS=65000;MAXNAMES=4000; MAXTEXTS=2000;HASHSIZE=353;LONGESTNAME=400;LINELENGTH=72;OUTBUFSIZE=144; STACKSIZE=50;MAXIDLENGTH=12;UNAMBIGLENGT=7; {:8}TYPE{11:}ASCIICODE=0..255;{:11}{12:}TEXTFILE=TEXT; @@ -502,9 +502,9 @@ END ELSE IF BUFFER[1]=122 THEN BEGIN PRIMETHECHAN; CHANGING:=NOT CHANGING;TEMPLINE:=OTHERLINE;OTHERLINE:=LINE; LINE:=TEMPLINE;END;END;END{:137}; IF NOT CHANGING THEN BEGIN{136:}BEGIN LINE:=LINE+1; -IF NOT INPUTLN(WEBFILE)THEN INPUTHASENDE:=TRUE ELSE IF LIMIT=CHANGELIMIT -THEN IF BUFFER[0]=CHANGEBUFFER[0]THEN IF CHANGELIMIT>0 THEN CHECKCHANGE; -END{:136};IF CHANGING THEN GOTO 20;END;LOC:=0;BUFFER[LIMIT]:=32;END; +IF NOT INPUTLN(WEBFILE)THEN INPUTHASENDE:=TRUE ELSE IF CHANGELIMIT>0 +THEN CHECKCHANGE;END{:136};IF CHANGING THEN GOTO 20;END;LOC:=0; +BUFFER[LIMIT]:=32;END; {:135}{139:}FUNCTION CONTROLCODE(C:ASCIICODE):EIGHTBITS; BEGIN CASE C OF 64:CONTROLCODE:=64;39:CONTROLCODE:=12; 34:CONTROLCODE:=13;36:CONTROLCODE:=125;32,9:CONTROLCODE:=136; @@ -525,9 +525,9 @@ WHILE TRUE DO BEGIN IF LOC>LIMIT THEN BEGIN GETLINE; IF INPUTHASENDE THEN BEGIN BEGIN WRITELN(OUTPUT); WRITE('! Input ended in mid-comment');ERROR;END;GOTO 10;END;END; C:=BUFFER[LOC];LOC:=LOC+1;{142:}IF C=64 THEN BEGIN C:=BUFFER[LOC]; -IF(C<>32)AND(C<>9)AND(C<>42)AND(C<>122)AND(C<>90)THEN LOC:=LOC+1 ELSE -BEGIN BEGIN WRITELN(OUTPUT);WRITE('! Section ended in mid-comment'); -ERROR;END;LOC:=LOC-1;GOTO 10; +IF(C<>32)AND(C<>9)AND(C<>42)THEN LOC:=LOC+1 ELSE BEGIN BEGIN WRITELN( +OUTPUT);WRITE('! Section ended in mid-comment');ERROR;END;LOC:=LOC-1; +GOTO 10; END END ELSE IF(C=92)AND(BUFFER[LOC]<>64)THEN LOC:=LOC+1 ELSE IF C=123 THEN BAL:=BAL+1 ELSE IF C=125 THEN BEGIN IF BAL=0 THEN GOTO 10; BAL:=BAL-1;END{:142};END;10:END;{:141}{145:}FUNCTION GETNEXT:EIGHTBITS; @@ -743,11 +743,11 @@ END;10:END;}{:181}{182:}BEGIN INITIALIZE;{134:}OPENINPUT;LINE:=0; OTHERLINE:=0;CHANGING:=TRUE;PRIMETHECHAN;CHANGING:=NOT CHANGING; TEMPLINE:=OTHERLINE;OTHERLINE:=LINE;LINE:=TEMPLINE;LIMIT:=0;LOC:=1; BUFFER[0]:=32;INPUTHASENDE:=FALSE;{:134}; -WRITELN(OUTPUT,'This is TANGLE-FPC, 2nd ed.');{183:}PHASEONE:=TRUE; +WRITELN(OUTPUT,'This is TANGLE-FPC, 3rd ed.');{183:}PHASEONE:=TRUE; MODULECOUNT:=0;REPEAT NEXTCONTROL:=SKIPAHEAD;UNTIL NEXTCONTROL=136; WHILE NOT INPUTHASENDE DO SCANMODULE; -{138:}IF CHANGELIMIT<>0 THEN BEGIN FOR II:=0 TO CHANGELIMIT DO BUFFER[II -]:=CHANGEBUFFER[II];LIMIT:=CHANGELIMIT;CHANGING:=TRUE;LINE:=OTHERLINE; +{138:}IF CHANGELIMIT<>0 THEN BEGIN FOR II:=0 TO CHANGELIMIT-1 DO BUFFER[ +II]:=CHANGEBUFFER[II];LIMIT:=CHANGELIMIT;CHANGING:=TRUE;LINE:=OTHERLINE; LOC:=CHANGELIMIT;BEGIN WRITELN(OUTPUT); WRITE('! Change file entry did not match');ERROR;END;END{:138}; PHASEONE:=FALSE;{:183};{FOR II:=0 TO 3 DO MAXTOKPTR[II]:=TOKPTR[II];} |