<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>mr795 new document title</title>
</head>
<body>
<p>// -*- C++ -*-</p>
<p>//</p>
<p>// Detabifying program for JEDPlus</p>
<p>//</p>
<p>// Expand tabs to spaces so that other&nbsp;</p>
<p>// editors and browsers display the code</p>
<p>// properly</p>
<p>//</p>
<p>// By Simon Howard</p>
<p>//</p>
<p>&nbsp;</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;stdlib.h&gt;</p>
<p>&nbsp;</p>
<p>#define TMPNAME ".detabtmp"</p>
<p>#define TAB "   "</p>
<p>&nbsp;</p>
<p>int main(int argc, char *argv[])</p>
<p>{</p>
<p>&nbsp; int i;</p>
<p>&nbsp;</p>
<p>&nbsp; if(argc &lt; 2) {</p>
<p>&nbsp; &nbsp; printf("usage: dejed &lt;filename&gt;\n");</p>
<p>&nbsp; &nbsp; exit(-1);</p>
<p>&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp; for(i=1; i&lt;argc; i++) {</p>
<p>&nbsp; &nbsp; FILE *infile, *outfile;</p>
<p>&nbsp; &nbsp; unsigned char c;</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; infile = fopen(argv[i], "r");</p>
<p>&nbsp; &nbsp; if(!infile) {</p>
<p>&nbsp; &nbsp; &nbsp; fprintf(stderr, "cannot find '%s'!", argv[i]);</p>
<p>&nbsp; &nbsp; &nbsp; continue;</p>
<p>&nbsp; &nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; outfile = fopen(TMPNAME, "w");</p>
<p>&nbsp; &nbsp; if(!outfile) {</p>
<p>&nbsp; &nbsp; &nbsp; fprintf(stderr, "cannot create '%s'!", TMPNAME);</p>
<p>&nbsp; &nbsp; &nbsp; exit(-1);</p>
<p>&nbsp; &nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; while(!feof(infile)) {</p>
<p>&nbsp; &nbsp; &nbsp; c = getc(infile);</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; &nbsp; if(c == 0xff)         // ???</p>
<p>&nbsp;continue;</p>
<p>&nbsp; &nbsp; &nbsp; else if(c == '\t')</p>
<p>&nbsp;fprintf(outfile, TAB);</p>
<p>&nbsp; &nbsp; &nbsp; else</p>
<p>&nbsp;fputc(c, outfile);</p>
<p>&nbsp; &nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; fclose(infile);</p>
<p>&nbsp; &nbsp; fclose(outfile);</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; remove(argv[i]);</p>
<p>&nbsp; &nbsp; rename(TMPNAME, argv[i]);</p>
<p>&nbsp; }</p>
<p>}</p>
</body>
</html>