home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
program
/
compiler
/
szadb21b
/
source
/
doc
/
tex
/
unexpand.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-06-11
|
1KB
|
63 lines
#include <stdio.h>
#define MAXLIN 132
#define TABSTOP 8
int tabs[MAXLIN];
main ()
{
int c, delay, col;
void settab ();
settab (tabs);
col = delay = 0;
while (EOF != (c = getchar ())) {
if (MAXLIN < col) {
/* copy remaining characters on a line */
do {
putchar (c);
} while ('\n' != c &&
EOF != (c = getchar ()));
col = 0;
}
else {
switch (c) {
case '\t':
while (!tabs[col])
col++;
case ' ': /* fallthrough */
if (!tabs[col]) {
col += 1;
continue; /* keep delay */
}
putchar ((delay == col) ? ' ' : '\t');
col += 1;
break;
default:
while (delay < col) {
putchar (' ');
delay += 1;
}
putchar (c);
col = ('\n' == c ? 0 : col + 1);
break;
} /* switch */
} /* if (MAXLIN < col) */
delay = col;
}
exit (0);
}
void
settab (tab_pt)
short *tab_pt;
{
int i;
for (i = 0; i < MAXLIN; i++) {
*tab_pt++ = (0 == (i % TABSTOP));
}
}