Removed the original sicherman.alt.c (which was the original code that requires -traditional-cpp or an older compiler) and make sicherman.alt2.c it instead which is a slight modification of sicherman.c: it has two args to main() in case some compilers (like clang) eventually object to having one arg (like it does for 4 args and claims it does for 1 even though it does not). Since the sicherman.alt.c is built automatically if compilation fails in the sicherman rule it will compile to sicherman. However if it is built manually like 'make alt' then it's built as sicherman.alt. This makes it easier to use but also allows one to build the alt version should they wish and not have it overwrite sicherman. The try.alt.sh script was added in the case of manual compilation of sicherman.alt.c.
27 lines
580 B
C
27 lines
580 B
C
#define C_C_(_)~' '&_
|
|
#define _C_C(_)('\b'b'\b'>=C_C>'\t'b'\n')
|
|
#define C_C _|_
|
|
#define b *
|
|
#define c /**/
|
|
#define v _C_C(
|
|
char _,__;
|
|
main(
|
|
/* C program. (If you don't
|
|
* understand it look it
|
|
* up.) (In the */C, Manual)
|
|
char **Manual;
|
|
{
|
|
char _,__;
|
|
while (read(0,&__,1) & write((_=(_=C_C_(__),
|
|
v))?__:__-_+'\b'b'\b'|((_-52)%('\b'b'\b'+~
|
|
' '&'\t'b'\n')+1),1),&_,1))_=c-v+subr(&v));
|
|
}
|
|
|
|
subr(C)
|
|
char *C;
|
|
{
|
|
C="Lint says \"argument Manual isn't used.\" What's that\
|
|
mean?"; while (write((read(('"'-'/*"'))?__:__-_+
|
|
'\b'b'\b'|((_-52)%('\b'b'\b'+C_C_('\t'b'\n'))+1),1),&_,1));
|
|
}
|