57,58c57,58
< 	rcsid		= '$Id: p.ptc 1.1 91/03/04 13:13:42 gtoal Exp $';
< 	rcsrevision	= '$Revision: 1.1 $';
---
> 	rcsid		= '$Id: p.ptc 1.3 91/03/09 20:54:02 gtoal Exp $';
> 	rcsrevision	= '$Revision: 1.3 $';
60c60,61
< 	keytablen	= 38;		(* nr of keywords		*)
---
> 	keytablen	= 39;		(* nr of keywords		*)
>                    (* Added 'others' *)
62a64
> 	anothersym	= 'others    '; (* synonym for others		*)
187a190
> 		dbreak, (* Like dflush *)
215c218
< 		sother,		spacked,	sproc,		spgm,
---
> 		sother2, sother, 		spacked,	sproc,		spgm,
251c254
< 		  sother,	spacked,	sproc,		spgm,
---
> 		  sother2, sother,	spacked,	sproc,		spgm,
2631a2635,2637
> 			write('/* ');
> 			printid(currsym.vid);
> 			writeln(' */');
2644a2651,2653
> 					write('/* ');
> 					printid(currsym.vid);
> 					writeln(' */');
3703,3704c3712,3713
< 						splus, sminus, send, sother]);
< 				if currsym.st in [send, sother] then
---
> 						splus, sminus, send, sother, sother2]);
> 				if currsym.st in [send, sother, sother2] then
3720c3729
< 		if currsym.st = sother then
---
> 		if (currsym.st = sother) or (currsym.st = sother2) then
3721a3731
> 			(* Note: 'otherwise:' does NOT insist on the colon! *)
5849a5860
> 		  dbreak,
6041c6052
< 					write('Getl(&');
---
> 					write('Getl((text *)&');
6285a6297,6298
> 						(*  Should use argv[] parameters if this filename was
> 						    given in the program header  *)
6930c6943
< 				write(voidcast, 'strncpy(');
---
> 				write(voidcast, 'strncpy((char *)');
8021c8034
< 					    '__LINE__, 0, 0);')
---
> 					    '__LINE__, 0, 0, 0);')
8214c8227
< 			    'PTCerror(PTC_E_CASE, __LINE__, 0, 0);');
---
> 			    'PTCerror(PTC_E_CASE, __LINE__, 0, 0, 0);');
8258a8272
> (*
8262,8263c8276,8278
< 				writeln('();');
< 				writeln;
---
> 				write('(');
> 				writeln('); /* Need parameter types for recursion */');
> *)
8269a8285
> (*
8275c8291,8293
< 				writeln('();');
---
> 				write('(');
> 				writeln('); /* Need parameter types for forward/external */');
> *)
8389c8407,8409
< 		writeln(include, '<ptc.h>');
---
> 		writeln(include, '<stdlib.h>');
> 		writeln(include, '<ctype.h>');
> 		writeln(include, '"<ptc$dir>.ptcmain.h"');
8506,8509c8526,8536
< 			writeln(tab1, 'Member(), Le(), Ge(), Eq(), Ne();');
< 			writeln(setptyp, tab1, 'Union(), Diff();');
< 			writeln(setptyp, tab1, 'Insmem(), Mksubr();');
< 			writeln(setptyp, tab1, 'Currset(), Inter();');
---
> 			writeln(tab1, 'Member(unsigned int m, setptr sp),');
> 			writeln(tab1, 'Le(setptr p1, setptr p2),');
> 			writeln(tab1, 'Ge(setptr p1, setptr p2),');
> 			writeln(tab1, 'Eq(setptr p1, setptr p2),');
> 			writeln(tab1, 'Ne(setptr p1, setptr p2);');
> 			writeln(setptyp, tab1, 'Union(setptr p1, setptr p2);');
> 			writeln(setptyp, tab1, 'Diff(setptr p1, setptr p2);');
> 			writeln(setptyp, tab1, 'Insmem(unsigned int m, setptr sp);');
> 			writeln(setptyp, tab1, 'Mksubr(unsigned int lo, unsigned int hi, setptr sp);');
> 			writeln(setptyp, tab1, 'Currset(int n, setptr sp);');
> 			writeln(setptyp, tab1, 'Inter(setptr p1, setptr p2);');
8512c8539
< 			writeln(voidtyp, tab1, 'Setncpy();')
---
> 			writeln(voidtyp, tab1, 'Setncpy(setptr S1, setptr S2, unsigned int N);')
8517c8544
< 			writeln(define, 'SETALIGN(x) Alignset(x)');
---
> 			writeln(define, 'SETALIGN(x) Alignset((unsigned int *)(x))');
8519c8546
< 					maxsetrange:1, '+1]; } *Alignset();');
---
> 					maxsetrange:1, '+1]; } *Alignset(register unsigned int *Sp);');
8522c8549
< 			writeln(define, 'STRALIGN(x) Alignstr(x)');
---
> 			writeln(define, 'STRALIGN(x) Alignstr((unsigned char *)(x))');
8524c8551
< 					maxtoknlen:1, '+1]; } *Alignstr();');
---
> 					maxtoknlen:1, '+1]; } *Alignstr(register unsigned char *Cp);');
8538a8566
> 		writeln('#ptcheader');
8546c8574
< 			writeln('main(_ac, _av)');	(* OS *)
---
> 			writeln('int main(_ac, _av)');	(* OS *)
8677c8705
< 		writeln(static, setwtyp, tab1, '*Conset[] = {');
---
> 		writeln(setwtyp, tab1, '*Conset[] = {');
8700c8728
< 		writeln(static, setptyp);
---
> 		writeln((* static, *) setptyp);
8732c8760
< 		writeln(static, setptyp);
---
> 		writeln((* static, *) setptyp);
8758c8786
< 		writeln(static, setptyp);
---
> 		writeln((* static, *) setptyp);
8778c8806
< 		write(static);
---
> 		(* write(static); *)
8801c8829
< 		write(static);
---
> 		(* write(static); *)
8840c8868
< 		write(static);
---
> 		(* write(static); *)
8852c8880
< 		write(static);
---
> 		(* write(static); *)
8884c8912
< 		write(static);
---
> 		(* write(static); *)
8914c8942
< 		writeln(static, setptyp);
---
> 		writeln((* static, *) setptyp);
8937c8965
< 		writeln(static, setptyp);
---
> 		writeln((* static, *) setptyp);
8958c8986
< 		writeln(static, setptyp);
---
> 		writeln((* static, *) setptyp);
8990c9018
< 		writeln(static, voidtyp);
---
> 		writeln((* static, *) voidtyp);
9012c9040
< 		writeln(static, 'struct Set *');
---
> 		writeln('struct Set *');
9028c9056
< 		writeln(static, 'struct String *');
---
> 		writeln('struct String *');
9033c9061
< 		writeln(tab1, registr, chartyp, tab1, '*sp = tmp.A;');
---
> 		writeln(tab1, registr, chartyp, tab1, '*sp = (', chartyp, '*)tmp.A;');
9035c9063
< 		writeln(tab1, 'while (*sp++ = *Cp++)');
---
> 		writeln(tab1, 'while ((*sp++ = *Cp++) != 0)');
9043c9071
< 		writeln(static, inttyp);
---
> 		writeln((* static, *) inttyp);
9309a9338
> 	defkey(sother2,	anothersym);	(* non-standard *)
9461a9491,9492
> (* Break is a stream-flush command, used by TeXware *)
> 	defid(nfunc,	dbreak,		'break     ');	(* OS *)
9585a9617
> 	deftab[dbreak]^.tfuntyp := typnods[tnone];
