home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
acad
/
c
/
postscri
/
autocad.c
next >
Wrap
Text File
|
1994-06-19
|
3KB
|
81 lines
/* Here is the autocad.c file. */
#include <stdio.h>
#include "stdmacro.h"
main (Argc, Argv)
int Argc;
char *Argv[];
{
FILE* CadFile;
int I;
for (I = 1; I < Argc; I++)
{
if (NULL != (CadFile = fopen(Argv[I], "r")))
{
ProcessFile(CadFile);
fclose(CadFile);
}
}
}
ProcessFile (FilePtr)
FILE* FilePtr;
{
char Buffer1[256], Buffer2[256];
boolean XMatch, YMatch;
int StartX, NextX, StartY, NextY;
while (!feof(FilePtr))
{
fgets(Buffer1, sizeof(Buffer1)-1, FilePtr);
if (!feof(FilePtr))
{
if (0 == strncmp (Buffer1, "/n", 2))
{
fputs(Buffer1, stdout);
printf("/p {/Y exch def /X exch def X Y m X Y l} def\n");
printf("/x {/NextY exch def /StartY exch def /X exch def\n");
printf(" X StartY moveto X NextY lineto} def\n");
printf("/y {/Y exch def /NextX exch def /StartX exch def\n");
printf(" StartX Y moveto NextX Y lineto} def\n");
}
else if (Buffer1[strlen(Buffer1)-2] == 'm')
{
fgets(Buffer2, sizeof(Buffer2)-1, FilePtr);
if (!feof(FilePtr))
{
if(Buffer2[strlen(Buffer2)-2] == 'l')
{
XMatch = YMatch = FALSE;
sscanf(Buffer1, "%d %d", &StartX, &StartY);
sscanf(Buffer2, "%d %d", &NextX, &NextY);
if (StartX == NextX)
XMatch = TRUE;
if (StartY == NextY)
YMatch = TRUE;
if (XMatch && YMatch)
printf("%d %d p\n", StartX, StartY);
else if (XMatch)
printf("%d %d %d x\n", StartX, StartY, NextY);
else if (YMatch)
printf("%d %d %d y\n", StartX, NextX, StartY);
else
printf("%s%s", Buffer1, Buffer2);
}
else
printf("%s%s", Buffer1, Buffer2);
}
else
printf("%s", Buffer1);
}
else
printf("%s", Buffer1);
}
}
}