home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / acad / c / postscri / autocad.c next >
Text File  |  1994-06-19  |  3KB  |  81 lines

  1. /* Here is the autocad.c file.  */
  2. #include <stdio.h>
  3. #include "stdmacro.h"
  4.  
  5. main (Argc, Argv)
  6.  
  7. int         Argc;
  8. char        *Argv[];
  9.  
  10.     {
  11.     FILE*   CadFile;
  12.     int     I;
  13.  
  14.     for (I = 1; I < Argc; I++)
  15.         {
  16.         if (NULL != (CadFile = fopen(Argv[I], "r")))
  17.             {
  18.             ProcessFile(CadFile);
  19.             fclose(CadFile);
  20.             }
  21.         }
  22.     }
  23.  
  24. ProcessFile (FilePtr)
  25.  
  26. FILE*       FilePtr;
  27.  
  28.     {
  29.     char    Buffer1[256], Buffer2[256];
  30.     boolean XMatch, YMatch;
  31.     int     StartX, NextX, StartY, NextY;
  32.  
  33.     while (!feof(FilePtr))
  34.         {
  35.         fgets(Buffer1, sizeof(Buffer1)-1, FilePtr);
  36.         if (!feof(FilePtr))
  37.             {
  38.             if (0 == strncmp (Buffer1, "/n", 2))
  39.                 {
  40.                 fputs(Buffer1, stdout);
  41.                 printf("/p {/Y exch def /X exch def X Y m X Y l} def\n");
  42.                 printf("/x {/NextY exch def /StartY exch def /X exch def\n");
  43.                 printf("    X StartY moveto X NextY lineto} def\n");
  44.                 printf("/y {/Y exch def /NextX exch def /StartX exch def\n");
  45.                 printf("    StartX Y moveto NextX Y lineto} def\n");
  46.                 }
  47.             else if (Buffer1[strlen(Buffer1)-2] == 'm')
  48.                 {
  49.                 fgets(Buffer2, sizeof(Buffer2)-1, FilePtr);
  50.                 if (!feof(FilePtr))
  51.                     {
  52.                     if(Buffer2[strlen(Buffer2)-2] == 'l')
  53.                         {
  54.                         XMatch = YMatch = FALSE;
  55.                         sscanf(Buffer1, "%d %d", &StartX, &StartY);
  56.                         sscanf(Buffer2, "%d %d", &NextX, &NextY);
  57.                         if (StartX == NextX)
  58.                             XMatch = TRUE;
  59.                         if (StartY == NextY)
  60.                             YMatch = TRUE;
  61.                         if (XMatch && YMatch)
  62.                             printf("%d %d p\n", StartX, StartY);
  63.                         else if (XMatch)
  64.                             printf("%d %d %d x\n", StartX, StartY, NextY);
  65.                         else if (YMatch)
  66.                             printf("%d %d %d y\n", StartX, NextX, StartY);
  67.                         else
  68.                             printf("%s%s", Buffer1, Buffer2);
  69.                         }
  70.                     else
  71.                         printf("%s%s", Buffer1, Buffer2);
  72.                     }
  73.                 else
  74.                     printf("%s", Buffer1);
  75.                 }
  76.             else
  77.                 printf("%s", Buffer1);
  78.             }
  79.         }
  80.     }
  81.