home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3248 < prev    next >
Internet Message Format  |  1991-04-28  |  62KB

  1. From: mcastle@mcs213d.cs.umr.edu (Mike Castle {Nexus})
  2. Newsgroups: alt.sources
  3. Subject: PBMPlus on MSDOS patches (03/03)
  4. Message-ID: <2694@umriscc.isc.umr.edu>
  5. Date: 29 Apr 91 03:48:44 GMT
  6.  
  7.  
  8. *** pbmplus.old/pnm/pnmtoxwd.c    Fri Apr 12 00:31:06 1991
  9. --- pbmplus.new/pnm/pnmtoxwd.c    Sat Apr 20 17:33:28 1991
  10. ***************
  11. *** 18,23 ****
  12. --- 18,28 ----
  13.   #define MAXCOLORS 256
  14.   #endif /*PPM*/
  15.   
  16. + #ifdef GNUDOS
  17. + FILE* ofp;
  18. + char fname[100], *fcp;
  19. + #endif /* GNUDOS */
  20.   void main( argc, argv )
  21.   int argc;
  22.   char* argv[];
  23. ***************
  24. *** 67,72 ****
  25. --- 72,89 ----
  26.       if ( argn != argc )
  27.       pm_usage( usage );
  28.   
  29. + #ifdef GNUDOS
  30. +     if ( ifp == stdin )  
  31. +         strcpy( fname, "noname" );
  32. +     else {
  33. +         strcpy( fname, argv[1] );
  34. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  35. +             *fcp = '\0';
  36. +         }
  37. +     strcat( fname, ".xwd"  );
  38. +     ofp = pm_openwb( fname );
  39. + #endif /* GNUDOS */
  40.       xels = pnm_readpnm( ifp, &cols, &rows, &maxval, &format );
  41.       lmaxval = (long) maxval;
  42.       pm_close( ifp );
  43. ***************
  44. *** 185,190 ****
  45. --- 202,237 ----
  46.       h11.bits_per_rgb = h11.pixmap_depth;
  47.   
  48.       /* Write out the header in big-endian order. */
  49. + #ifdef GNUDOS
  50. +     pm_writebiglong( ofp, h11.header_size );
  51. +     pm_writebiglong( ofp, h11.file_version );
  52. +     pm_writebiglong( ofp, h11.pixmap_format );
  53. +     pm_writebiglong( ofp, h11.pixmap_depth );
  54. +     pm_writebiglong( ofp, h11.pixmap_width );
  55. +     pm_writebiglong( ofp, h11.pixmap_height );
  56. +     pm_writebiglong( ofp, h11.xoffset );
  57. +     pm_writebiglong( ofp, h11.byte_order );
  58. +     pm_writebiglong( ofp, h11.bitmap_unit );
  59. +     pm_writebiglong( ofp, h11.bitmap_bit_order );
  60. +     pm_writebiglong( ofp, h11.bitmap_pad );
  61. +     pm_writebiglong( ofp, h11.bits_per_pixel );
  62. +     pm_writebiglong( ofp, h11.bytes_per_line );
  63. +     pm_writebiglong( ofp, h11.visual_class );
  64. +     pm_writebiglong( ofp, h11.red_mask );
  65. +     pm_writebiglong( ofp, h11.green_mask );
  66. +     pm_writebiglong( ofp, h11.blue_mask );
  67. +     pm_writebiglong( ofp, h11.bits_per_rgb );
  68. +     pm_writebiglong( ofp, h11.colormap_entries );
  69. +     pm_writebiglong( ofp, h11.ncolors );
  70. +     pm_writebiglong( ofp, h11.window_width );
  71. +     pm_writebiglong( ofp, h11.window_height );
  72. +     pm_writebiglong( ofp, h11.window_x );
  73. +     pm_writebiglong( ofp, h11.window_y );
  74. +     pm_writebiglong( ofp, h11.window_bdrwidth );
  75. +     /* Write out the dump name. */
  76. +     fwrite( dumpname, 1, strlen( dumpname ) + 1, ofp );
  77. + #else /* GNUDOS */
  78.       pm_writebiglong( stdout, h11.header_size );
  79.       pm_writebiglong( stdout, h11.file_version );
  80.       pm_writebiglong( stdout, h11.pixmap_format );
  81. ***************
  82. *** 213,218 ****
  83. --- 260,266 ----
  84.   
  85.       /* Write out the dump name. */
  86.       fwrite( dumpname, 1, strlen( dumpname ) + 1, stdout );
  87. + #endif /* GNUDOS */
  88.   
  89.       if ( ! direct )
  90.       {
  91. ***************
  92. *** 252,263 ****
  93.           pm_error( "shouldn't happen", 0,0,0,0,0 );
  94.   #endif /*PPM*/
  95.           }
  96.           pm_writebiglong( stdout, color.pixel );
  97.           pm_writebigshort( stdout, color.red );
  98.           pm_writebigshort( stdout, color.green );
  99.           pm_writebigshort( stdout, color.blue );
  100. !         putc( color.flags, stdout );
  101. !         putc( color.pad, stdout );
  102.           }
  103.       }
  104.   
  105. --- 300,320 ----
  106.           pm_error( "shouldn't happen", 0,0,0,0,0 );
  107.   #endif /*PPM*/
  108.           }
  109. + #ifdef GNUDOS
  110. +         pm_writebiglong( ofp, color.pixel );
  111. +         pm_writebigshort( ofp, color.red );
  112. +         pm_writebigshort( ofp, color.green );
  113. +         pm_writebigshort( ofp, color.blue );
  114. +         fputc( color.flags, ofp );
  115. +         fputc( color.pad, ofp );
  116. + #else /* GNUDOS */
  117.           pm_writebiglong( stdout, color.pixel );
  118.           pm_writebigshort( stdout, color.red );
  119.           pm_writebigshort( stdout, color.green );
  120.           pm_writebigshort( stdout, color.blue );
  121. !         putc( color.flags, stdout );
  122. !         putc( color.pad, stdout );
  123. ! #endif /* GNUDOS */
  124.           }
  125.       }
  126.   
  127. ***************
  128. *** 276,282 ****
  129. --- 333,343 ----
  130.               ul = ( ( PPM_GETR( *xP ) * ( 255 / lmaxval ) ) << 16 ) |
  131.                ( ( PPM_GETG( *xP ) * ( 255 / lmaxval ) ) << 8 ) |
  132.                ( PPM_GETB( *xP ) * ( 255 / lmaxval ) );
  133. + #ifdef GNUDOS
  134. +             fwrite( &ul, sizeof(ul), 1, ofp );
  135. + #else /* GNUDOS */
  136.               fwrite( &ul, sizeof(ul), 1, stdout );
  137. + #endif /* GNUDOS */
  138.               }
  139.           break;
  140.   #endif /*PPM*/
  141. ***************
  142. *** 290,296 ****
  143. --- 351,361 ----
  144.               ul = ( ( val * ( 255 / lmaxval ) ) << 16 ) |
  145.                ( ( val * ( 255 / lmaxval ) ) << 8 ) |
  146.                ( val * ( 255 / lmaxval ) );
  147. + #ifdef GNUDOS
  148. +             fwrite( &ul, sizeof(ul), 1, ofp );
  149. + #else /* GNUDOS */
  150.               fwrite( &ul, sizeof(ul), 1, stdout );
  151. + #endif /* GNUDOS */
  152.               }
  153.           break;
  154.           }
  155. ***************
  156. *** 319,341 ****
  157. --- 384,422 ----
  158.           bitshift -= h11.bits_per_pixel;
  159.           if ( bitshift < 0 )
  160.               {
  161. + #ifdef GNUDOS
  162. +             fputc( byte, ofp );
  163. + #else /* GNUDOS */
  164.               putchar( byte );
  165. + #endif /* GNUDOS */
  166.               bitshift = 8 - h11.bits_per_pixel;
  167.               byte = 0;
  168.               }
  169.           }
  170.           if ( bitshift < 8 - h11.bits_per_pixel )
  171. + #ifdef GNUDOS
  172. +         fputc( byte, ofp );
  173. + #else /* GNUDOS */
  174.           putchar( byte );
  175. + #endif /* GNUDOS */
  176.           }
  177.       else
  178.           {
  179.   #ifdef PPM
  180.           for ( col = 0, xP = xels[row]; col < cols; ++col, ++xP )
  181. + #ifdef GNUDOS
  182. +         fputc( ppm_lookupcolor( cht, xP ), ofp );
  183. + #else /* GNUDOS */
  184.           putchar( ppm_lookupcolor( cht, xP ) );
  185. + #endif /* GNUDOS */
  186.   #else /*PPM*/
  187.           pm_error( "shouldn't happen", 0,0,0,0,0 );
  188.   #endif /*PPM*/
  189.           }
  190. + #ifdef GNUDOS
  191. +     pm_close( ofp );
  192. + #endif /* GNUDOS */
  193.   
  194.       exit( 0 );
  195.       }
  196. diff -c -B -H +new-file +recursive pbmplus.old/pnm/rasttopn.c pbmplus.new/pnm/rasttopn.c
  197. *** pbmplus.old/pnm/rasttopn.c    Fri Apr 12 00:31:04 1991
  198. --- pbmplus.new/pnm/rasttopn.c    Sat Apr 20 17:04:04 1991
  199. ***************
  200. *** 38,44 ****
  201. --- 38,48 ----
  202.   
  203.       if ( argn != argc )
  204.       {
  205. + #ifdef GNUDOS
  206. +     ifp = pm_openrb( argv[argn] );
  207. + #else /* GNUDOS */
  208.       ifp = pm_openr( argv[argn] );
  209. + #endif /* GNUDOS */
  210.       ++argn;
  211.       }
  212.       else
  213. diff -c -B -H +new-file +recursive pbmplus.old/pnm/xwdtopnm.c pbmplus.new/pnm/xwdtopnm.c
  214. *** pbmplus.old/pnm/xwdtopnm.c    Fri Apr 12 00:31:04 1991
  215. --- pbmplus.new/pnm/xwdtopnm.c    Sat Apr 20 17:04:30 1991
  216. ***************
  217. *** 37,43 ****
  218.       pm_usage( "[xwdfile]" );
  219.   
  220.       if ( argc == 2 )
  221. !     ifp = pm_openr( argv[1] );
  222.       else
  223.       ifp = stdin;
  224.   
  225. --- 37,47 ----
  226.       pm_usage( "[xwdfile]" );
  227.   
  228.       if ( argc == 2 )
  229. ! #ifdef GNUDOS
  230. !     ifp = pm_openrb( argv[1] );
  231. ! #else /* GNUDOS */
  232. !     ifp = pm_openr argv[1] );
  233. ! #endif /* GNUDOS */
  234.       else
  235.       ifp = stdin;
  236.   
  237. diff -c -B -H +new-file +recursive pbmplus.old/ppm/body.c pbmplus.new/ppm/body.c
  238. *** pbmplus.old/ppm/body.c
  239. --- pbmplus.new/ppm/body.c    Sat Apr 20 10:08:52 1991
  240. ***************
  241. *** 0 ****
  242. --- 1,11 ----
  243. + #ifdef GNUDOS
  244. +     if ( ifp == stdin )  
  245. +         strcpy( fname, "noname" );
  246. +     else {
  247. +         strcpy( fname, argv[1] );
  248. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  249. +             *fcp = '\0';
  250. +         }
  251. +     strcat( fname,           );
  252. +     ofp = pm_openwb( fname );
  253. + #endif /* GNUDOS */
  254. diff -c -B -H +new-file +recursive pbmplus.old/ppm/delppm.bat pbmplus.new/ppm/delppm.bat
  255. *** pbmplus.old/ppm/delppm.bat
  256. --- pbmplus.new/ppm/delppm.bat    Fri Apr 12 22:49:26 1991
  257. ***************
  258. *** 0 ****
  259. --- 1,34 ----
  260. + del GIFTOPPM
  261. + del GOULDTOP
  262. + del ILBMTOPP
  263. + del IMGTOPPM
  264. + del MTVTOPPM
  265. + del PCXTOPPM
  266. + del PGMTOPPM
  267. + del PI1TOPPM
  268. + del PICTTOPP
  269. + del PPMHIST
  270. + del PPMMAKE
  271. + del PPMPAT
  272. + del PPMQUANT
  273. + del PPMRELIE
  274. + del PPMTOGIF
  275. + del PPMTOICR
  276. + del PPMTOILB
  277. + del PPMTOPCX
  278. + del PPMTOPGM
  279. + del PPMTOPI1
  280. + del PPMTOPIC
  281. + del PPMTOPS
  282. + del PPMTOPUZ
  283. + del PPMTORGB
  284. + del PPMTOUIL
  285. + del PPMTOXPM
  286. + del QRTTOPPM
  287. + del RAWTOPPM
  288. + del RGB3TOPP
  289. + del SPCTOPPM
  290. + del SPUTOPPM
  291. + del TGATOPPM
  292. + del XIMTOPPM
  293. + del XPMTOPPM
  294. diff -c -B -H +new-file +recursive pbmplus.old/ppm/exeppm.bat pbmplus.new/ppm/exeppm.bat
  295. *** pbmplus.old/ppm/exeppm.bat
  296. --- pbmplus.new/ppm/exeppm.bat    Fri Apr 12 22:48:58 1991
  297. ***************
  298. *** 0 ****
  299. --- 1,34 ----
  300. + copy /b c:\gcc\bin\stub.exe+GIFTOPPM   GIFTOPPM.exe
  301. + copy /b c:\gcc\bin\stub.exe+GOULDTOP   GOULDTOP.exe
  302. + copy /b c:\gcc\bin\stub.exe+ILBMTOPP   ILBMTOPP.exe
  303. + copy /b c:\gcc\bin\stub.exe+IMGTOPPM   IMGTOPPM.exe
  304. + copy /b c:\gcc\bin\stub.exe+MTVTOPPM   MTVTOPPM.exe
  305. + copy /b c:\gcc\bin\stub.exe+PCXTOPPM   PCXTOPPM.exe
  306. + copy /b c:\gcc\bin\stub.exe+PGMTOPPM   PGMTOPPM.exe
  307. + copy /b c:\gcc\bin\stub.exe+PI1TOPPM   PI1TOPPM.exe
  308. + copy /b c:\gcc\bin\stub.exe+PICTTOPP   PICTTOPP.exe
  309. + copy /b c:\gcc\bin\stub.exe+PPMHIST    PPMHIST.exe
  310. + copy /b c:\gcc\bin\stub.exe+PPMMAKE    PPMMAKE.exe
  311. + copy /b c:\gcc\bin\stub.exe+PPMPAT     PPMPAT.exe
  312. + copy /b c:\gcc\bin\stub.exe+PPMQUANT   PPMQUANT.exe
  313. + copy /b c:\gcc\bin\stub.exe+PPMRELIE   PPMRELIE.exe
  314. + copy /b c:\gcc\bin\stub.exe+PPMTOGIF   PPMTOGIF.exe
  315. + copy /b c:\gcc\bin\stub.exe+PPMTOICR   PPMTOICR.exe
  316. + copy /b c:\gcc\bin\stub.exe+PPMTOILB   PPMTOILB.exe
  317. + copy /b c:\gcc\bin\stub.exe+PPMTOPCX   PPMTOPCX.exe
  318. + copy /b c:\gcc\bin\stub.exe+PPMTOPGM   PPMTOPGM.exe
  319. + copy /b c:\gcc\bin\stub.exe+PPMTOPI1   PPMTOPI1.exe
  320. + copy /b c:\gcc\bin\stub.exe+PPMTOPIC   PPMTOPIC.exe
  321. + copy /b c:\gcc\bin\stub.exe+PPMTOPS    PPMTOPS.exe
  322. + copy /b c:\gcc\bin\stub.exe+PPMTOPUZ   PPMTOPUZ.exe
  323. + copy /b c:\gcc\bin\stub.exe+PPMTORGB   PPMTORGB.exe
  324. + copy /b c:\gcc\bin\stub.exe+PPMTOUIL   PPMTOUIL.exe
  325. + copy /b c:\gcc\bin\stub.exe+PPMTOXPM   PPMTOXPM.exe
  326. + copy /b c:\gcc\bin\stub.exe+QRTTOPPM   QRTTOPPM.exe
  327. + copy /b c:\gcc\bin\stub.exe+RAWTOPPM   RAWTOPPM.exe
  328. + copy /b c:\gcc\bin\stub.exe+RGB3TOPP   RGB3TOPP.exe
  329. + copy /b c:\gcc\bin\stub.exe+SPCTOPPM   SPCTOPPM.exe
  330. + copy /b c:\gcc\bin\stub.exe+SPUTOPPM   SPUTOPPM.exe
  331. + copy /b c:\gcc\bin\stub.exe+TGATOPPM   TGATOPPM.exe
  332. + copy /b c:\gcc\bin\stub.exe+XIMTOPPM   XIMTOPPM.exe
  333. + copy /b c:\gcc\bin\stub.exe+XPMTOPPM   XPMTOPPM.exe
  334. diff -c -B -H +new-file +recursive pbmplus.old/ppm/giftoppm.c pbmplus.new/ppm/giftoppm.c
  335. *** pbmplus.old/ppm/giftoppm.c    Fri Apr 12 00:31:16 1991
  336. --- pbmplus.new/ppm/giftoppm.c    Sat Apr 20 12:47:24 1991
  337. ***************
  338. *** 90,96 ****
  339. --- 90,100 ----
  340.           ++argn;
  341.       }
  342.       if (argn != argc) {
  343. + #ifdef GNUDOS
  344. +         in = pm_openrb(argv[argn]);
  345. + #else /* GNUDOS */
  346.           in = pm_openr(argv[argn]);
  347. + #endif /* GNUDOS */
  348.           ++argn;
  349.       } else {
  350.           in = stdin;
  351. ***************
  352. *** 109,115 ****
  353.   FILE    *fd;
  354.   int    imageNumber;
  355.   {
  356. !     unsigned char    buf[16];
  357.       unsigned char    c;
  358.       unsigned char    localColorMap[3][MAXCOLORMAPSIZE];
  359.       int        useGlobalColormap;
  360. --- 113,120 ----
  361.   FILE    *fd;
  362.   int    imageNumber;
  363.   {
  364. !  /* unsigned char    buf[16];*/
  365. !     char buf[16];
  366.       unsigned char    c;
  367.       unsigned char    localColorMap[3][MAXCOLORMAPSIZE];
  368.       int        useGlobalColormap;
  369. ***************
  370. *** 515,521 ****
  371.       if ((image = ppm_allocarray(len, height)) == NULL)
  372.           pm_error("couldn't alloc space for image", 0,0,0,0,0);
  373.   
  374. !     if (verbose)
  375.           pm_message("reading %d by %d%s GIF image",
  376.               len, height, interlace ? " interlaced" : "", 0,0);
  377.   
  378. --- 520,526 ----
  379.       if ((image = ppm_allocarray(len, height)) == NULL)
  380.           pm_error("couldn't alloc space for image", 0,0,0,0,0);
  381.   
  382. !     if (verbose)
  383.           pm_message("reading %d by %d%s GIF image",
  384.               len, height, interlace ? " interlaced" : "", 0,0);
  385.   
  386. diff -c -B -H +new-file +recursive pbmplus.old/ppm/gouldtop.c pbmplus.new/ppm/gouldtop.c
  387. *** pbmplus.old/ppm/gouldtop.c    Fri Apr 12 00:32:48 1991
  388. --- pbmplus.new/ppm/gouldtop.c    Sat Apr 20 00:25:20 1991
  389. ***************
  390. *** 35,41 ****
  391. --- 35,45 ----
  392.           pm_usage( "[gouldfile]" );
  393.   
  394.       if ( argc == 2 )
  395. + #ifdef GNUDOS
  396. +         ifp = pm_openrb( argv[1] );
  397. + #else /* GNUDOS */
  398.           ifp = pm_openr( argv[1] );
  399. + #endif /* GNUDOS */
  400.       else
  401.           ifp = stdin;
  402.   
  403. diff -c -B -H +new-file +recursive pbmplus.old/ppm/header.c pbmplus.new/ppm/header.c
  404. *** pbmplus.old/ppm/header.c
  405. --- pbmplus.new/ppm/header.c    Fri Apr 19 15:37:02 1991
  406. ***************
  407. *** 0 ****
  408. --- 1,4 ----
  409. + #ifdef GNUDOS
  410. + FILE* ofp;
  411. + char fname[100], *fcp;
  412. + #endif /* GNUDOS */
  413. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ilbmtopp.c pbmplus.new/ppm/ilbmtopp.c
  414. *** pbmplus.old/ppm/ilbmtopp.c    Fri Apr 12 00:31:16 1991
  415. --- pbmplus.new/ppm/ilbmtopp.c    Sat Apr 20 00:24:58 1991
  416. ***************
  417. *** 34,40 ****
  418. --- 34,44 ----
  419.   
  420.       if ( argn < argc )
  421.       {
  422. + #ifdef GNUDOS
  423. +     ifp = pm_openrb( argv[argn] );
  424. + #else /* GNUDOS */
  425.       ifp = pm_openr( argv[argn] );
  426. + #endif /* GNUDOS */
  427.       argn++;
  428.       }
  429.       else
  430. diff -c -B -H +new-file +recursive pbmplus.old/ppm/imgtoppm.c pbmplus.new/ppm/imgtoppm.c
  431. *** pbmplus.old/ppm/imgtoppm.c    Fri Apr 12 00:31:22 1991
  432. --- pbmplus.new/ppm/imgtoppm.c    Sat Apr 20 11:06:50 1991
  433. ***************
  434. *** 25,32 ****
  435.       register int col;
  436.       pixval maxval;
  437.       int len, cmaplen, gotAT, gotCM;
  438. !     unsigned char buf[4096];
  439. !     register unsigned char *bP;
  440.   
  441.       ppm_init( &argc, argv );
  442.   
  443. --- 25,34 ----
  444.       register int col;
  445.       pixval maxval;
  446.       int len, cmaplen, gotAT, gotCM;
  447. ! /*    unsigned char buf[4096]; */
  448. !     char buf[4096];
  449. ! /*    register unsigned char *bP; */
  450. !     register char *bP;
  451.   
  452.       ppm_init( &argc, argv );
  453.   
  454. ***************
  455. *** 34,40 ****
  456. --- 36,46 ----
  457.   
  458.       if ( argn < argc )
  459.       {
  460. + #ifdef GNUDOS
  461. +     ifp = pm_openrb( argv[argn] );
  462. + #else /* GNUDOS */
  463.       ifp = pm_openr( argv[argn] );
  464. + #endif /* GNUDOS */
  465.       argn++;
  466.       }
  467.       else
  468. diff -c -B -H +new-file +recursive pbmplus.old/ppm/makefile.pc pbmplus.new/ppm/makefile.pc
  469. *** pbmplus.old/ppm/makefile.pc
  470. --- pbmplus.new/ppm/makefile.pc    Sat Apr 20 00:17:12 1991
  471. ***************
  472. *** 0 ****
  473. --- 1,180 ----
  474. + # Makefile for ppm tools.
  475. + #
  476. + # Copyright (C) 1989, 1991 by Jef Poskanzer.
  477. + #
  478. + # Permission to use, copy, modify, and distribute this software and its
  479. + # documentation for any purpose and without fee is hereby granted, provided
  480. + # that the above copyright notice appear in all copies and that both that
  481. + # copyright notice and this permission notice appear in supporting
  482. + # documentation.  This software is provided "as is" without express or
  483. + # implied warranty.
  484. + # Default values, usually overridden by top-level Makefile.
  485. + #CC =         cc
  486. + CC =       gcc -fcombine-regs 
  487. + #CFLAGS =    -O
  488. + CFLAGS =    -g
  489. + #CFLAGS =    -g -O
  490. + #RGBDEF =     -DRGB_DB=\"/usr/lib/X11/rgb.txt\"
  491. + #LDFLAGS =    -s
  492. + LDFLAGS =    
  493. + INSTALLBINARIES =    /usr/new/pbm
  494. + INSTALLSCRIPTS =    $(INSTALLBINARIES)
  495. + INSTALLMANUALS1 =    /usr/man/mann
  496. + SUFFIXMANUALS1 =    1
  497. + INSTALLMANUALS3 =    /usr/man/mann
  498. + SUFFIXMANUALS3 =    3
  499. + INSTALLMANUALS5 =    /usr/man/mann
  500. + SUFFIXMANUALS5 =    5
  501. + MANCP =            cp
  502. + PGMDIR =    ../pgm
  503. + INCLUDEPGM =    -I$(PGMDIR)
  504. + LIBPGM =    $(PGMDIR)/libpgm.a
  505. + DEFPGM =    $(PGMDIR)/pgm.h
  506. + DEFLIBPGM =    $(PGMDIR)/libpgm.h
  507. + PBMDIR =    ../pbm
  508. + INCLUDEPBM =    -I$(PBMDIR)
  509. + LIBPBM =    $(PBMDIR)/libpbm.a
  510. + DEFPBM =    $(PBMDIR)/pbm.h ../pbmplus.h
  511. + DEFLIBPBM =    $(PBMDIR)/libpbm.h
  512. + SHELL =        /bin/sh
  513. + INCLUDE =    $(INCLUDEPGM) $(INCLUDEPBM)
  514. + ALLCFLAGS =    $(CFLAGS) $(RGBDEF) $(INCLUDE)
  515. + LIBPPM =    libppm.a
  516. + PORTBINARIES =    giftoppm gouldtoppm ilbmtoppm imgtoppm mtvtoppm \
  517. +         pcxtoppm pgmtoppm pi1toppm picttoppm \
  518. +         ppmhist ppmmake ppmquant \
  519. +         ppmrelief ppmtogif ppmtoicr ppmtoilbm \
  520. +         ppmtopcx ppmtopgm ppmtopi1 ppmtopict ppmtops \
  521. +         ppmtopuzz ppmtorgb3 ppmtouil ppmtoxpm \
  522. +         qrttoppm rawtoppm rgb3toppm spctoppm \
  523. +         sputoppm tgatoppm ximtoppm xpmtoppm
  524. + MATHBINARIES =    ppmpat
  525. + BINARIES =    $(PORTBINARIES) $(MATHBINARIES)
  526. + SCRIPTS =    ppmquantall
  527. + OBJECTS =    giftoppm.o gouldtoppm.o ilbmtoppm.o imgtoppm.o mtvtoppm.o \
  528. +         pcxtoppm.o pgmtoppm.o pi1toppm.o picttoppm.o \
  529. +         ppmhist.o ppmmake.o ppmquant.o \
  530. +         ppmrelief.o ppmtogif.o ppmtoicr.o ppmtoilbm.o \
  531. +         ppmtopcx.o ppmtopgm.o ppmtopi1.o ppmtopict.o ppmtops.o \
  532. +         ppmtopuzz.o ppmtorgb3.o ppmtouil.o ppmtoxpm.o \
  533. +         qrttoppm.o rawtoppm.o rgb3toppm.o spctoppm.o \
  534. +         sputoppm.o tgatoppm.o ximtoppm.o xpmtoppm.o \
  535. +         ppmpat.o
  536. + MANUALS1 =    $(BINARIES) $(SCRIPTS)
  537. + MANUALS3 =    libppm
  538. + MANUALS5 =    ppm
  539. + all:        binaries
  540. + binaries:    $(BINARIES)
  541. + installbinaries:    binaries
  542. +     cd $(INSTALLBINARIES) 
  543. +     cp $(BINARIES) $(INSTALLBINARIES)
  544. +     cd $(INSTALLSCRIPTS) 
  545. +     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  546. +     cd $(INSTALLSCRIPTS) 
  547. + merge:        ppmmerge
  548. + ppmmerge:    ppmmerge.c $(OBJECTS) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  549. +     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(OBJECTS) -lm $(LIBPPM) $(LIBPGM) $(LIBPBM)
  550. + installmerge:    installppmmerge
  551. + installppmmerge:    ppmmerge
  552. +     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  553. +     cp ppmmerge $(INSTALLBINARIES)
  554. +     cd $(INSTALLBINARIES) ; for i in $(BINARIES) ; do ln ppmmerge $$i ; done
  555. +     rm $(INSTALLBINARIES)/ppmmerge
  556. +     cd $(INSTALLSCRIPTS) ; rm -f $(SCRIPTS)
  557. +     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  558. +     cd $(INSTALLSCRIPTS) ; chmod +x $(SCRIPTS)
  559. + installmanuals:
  560. +     for i in $(MANUALS1) ; do $(MANCP) $$i.1 $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; done
  561. +     for i in $(MANUALS3) ; do $(MANCP) $$i.3 $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; done
  562. +     for i in $(MANUALS5) ; do $(MANCP) $$i.5 $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; done
  563. + # Rule for plain programs.
  564. + $(PORTBINARIES):    ppm.h $(DEFPGM) $(DEFPBM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  565. +     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(LIBPPM) $(LIBPGM) $(LIBPBM)
  566. + # Rule for math-dependent programs.
  567. + $(MATHBINARIES):    ppm.h $(DEFPGM) $(DEFPBM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  568. +     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c -lm $(LIBPPM) $(LIBPGM) $(LIBPBM)
  569. + # Rule for objects.
  570. + $(OBJECTS):    ppm.h $(DEFPGM) $(DEFPBM)
  571. +     $(CC) $(ALLCFLAGS) "-Dmain=$*_main" -c $*.c
  572. + # And libraries.
  573. + $(LIBPBM):
  574. +     cd $(PBMDIR) ; make lib
  575. + $(LIBPGM):
  576. +     cd $(PGMDIR) ; make lib
  577. + lib:        $(LIBPPM)
  578. + $(LIBPPM):    libppm1.o libppm2.o libppm3.o libppm4.o libppm5.o
  579. +     
  580. +     ar rc $(LIBPPM) libppm1.o libppm2.o libppm3.o libppm4.o libppm5.o
  581. +    
  582. + libppm1.o:    ppm.h $(DEFPGM) $(DEFPBM) libppm.h libppm1.c
  583. +     $(CC) $(ALLCFLAGS) -c libppm1.c
  584. + libppm2.o:    ppm.h $(DEFPGM) $(DEFPBM) libppm.h libppm2.c $(DEFLIBPGM) \
  585. +         $(DEFLIBPBM)
  586. +     $(CC) $(ALLCFLAGS) -c libppm2.c
  587. + libppm3.o:    ppm.h $(DEFPGM) $(DEFPBM) libppm.h libppm3.c
  588. +     $(CC) $(ALLCFLAGS) -c libppm3.c
  589. + libppm4.o:    ppm.h $(DEFPGM) $(DEFPBM) ppmcmap.h libppm4.c
  590. +     $(CC) $(ALLCFLAGS) -c libppm4.c
  591. + libppm5.o:    ppm.h $(DEFPGM) $(DEFPBM) ppmdraw.h libppm5.c
  592. +     $(CC) $(ALLCFLAGS) -c libppm5.c
  593. + # Other dependencies.
  594. + giftoppm giftoppm.o:        giftoppm.c
  595. + gouldtoppm gouldtoppm.o:    gouldtoppm.c
  596. + ilbmtoppm ilbmtoppm.o:        ilbmtoppm.c ilbm.h
  597. + imgtoppm imgtoppm.o:        imgtoppm.c
  598. + mtvtoppm mtvtoppm.o:        mtvtoppm.c
  599. + pcxtoppm pcxtoppm.o:        pcxtoppm.c
  600. + pgmtoppm pgmtoppm.o:        pgmtoppm.c
  601. + pi1toppm pi1toppm.o:        pi1toppm.c
  602. + picttoppm picttoppm.o:        picttoppm.c
  603. + ppmhist ppmhist.o:        ppmhist.c ppmcmap.h
  604. + ppmmake ppmmake.o:        ppmmake.c
  605. + ppmpat ppmpat.o:        ppmpat.c ppmdraw.h
  606. + ppmquant ppmquant.o:        ppmquant.c $(PGMDIR)/dithers.h ppmcmap.h
  607. + ppmrelief ppmrelief.o:        ppmrelief.c
  608. + ppmtogif ppmtogif.o:        ppmtogif.c ppmcmap.h
  609. + ppmtoicr ppmtoicr.o:        ppmtoicr.c
  610. + ppmtoilbm ppmtoilbm.o:        ppmtoilbm.c ilbm.h ppmcmap.h
  611. + ppmtopcx ppmtopcx.o:        ppmtopcx.c
  612. + ppmtopgm ppmtopgm.o:        ppmtopgm.c
  613. + ppmtopi1 ppmtopi1.o:        ppmtopi1.c
  614. + ppmtopict ppmtopict.o:        ppmtopict.c ppmcmap.h
  615. + ppmtopuzz ppmtopuzz.o:        ppmtopuzz.c
  616. + ppmtops ppmtops.o:        ppmtops.c
  617. + ppmtorgb3 ppmtorgb3.o:        ppmtorgb3.c
  618. + ppmtouil ppmtouil.o:        ppmtouil.c
  619. + ppmtoxpm ppmtoxpm.o:        ppmtoxpm.c
  620. + qrttoppm qrttoppm.o:        qrttoppm.c
  621. + rawtoppm rawtoppm.o:        rawtoppm.c
  622. + rgb3toppm rgb3toppm.o:        rgb3toppm.c
  623. + spctoppm spctoppm.o:        spctoppm.c
  624. + sputoppm sputoppm.o:        sputoppm.c
  625. + tgatoppm tgatoppm.o:        tgatoppm.c tga.h
  626. + ximtoppm ximtoppm.o:        ximtoppm.c xim.h
  627. + xpmtoppm xpmtoppm.o:        xpmtoppm.c
  628. diff -c -B -H +new-file +recursive pbmplus.old/ppm/mtvtoppm.c pbmplus.new/ppm/mtvtoppm.c
  629. *** pbmplus.old/ppm/mtvtoppm.c    Fri Apr 12 00:31:14 1991
  630. --- pbmplus.new/ppm/mtvtoppm.c    Sat Apr 20 00:24:04 1991
  631. ***************
  632. *** 30,36 ****
  633. --- 30,40 ----
  634.       pm_usage( "[mtvfile]" );
  635.   
  636.       if ( argc == 2 )
  637. + #ifdef GNUDOS
  638. +     ifp = pm_openrb( argv[1] );
  639. + #else /* GNUDOS */
  640.       ifp = pm_openr( argv[1] );
  641. + #endif /* GNUDOS */
  642.       else
  643.       ifp = stdin;
  644.   
  645. diff -c -B -H +new-file +recursive pbmplus.old/ppm/pcxtoppm.c pbmplus.new/ppm/pcxtoppm.c
  646. *** pbmplus.old/ppm/pcxtoppm.c    Fri Apr 12 00:32:46 1991
  647. --- pbmplus.new/ppm/pcxtoppm.c    Sat Apr 20 00:23:42 1991
  648. ***************
  649. *** 58,64 ****
  650. --- 58,68 ----
  651.            break;
  652.        case 2:
  653.            ifname    = argv[1];
  654. + #ifdef GNUDOS
  655. +          ifp    = pm_openrb(ifname);
  656. + #else /* GNUDOS */
  657.            ifp    = pm_openr(ifname);
  658. + #endif/* GNUDOS */
  659.            break;
  660.        default:
  661.            pm_usage("[pcxfile]");
  662. diff -c -B -H +new-file +recursive pbmplus.old/ppm/pi1toppm.c pbmplus.new/ppm/pi1toppm.c
  663. *** pbmplus.old/ppm/pi1toppm.c    Fri Apr 12 00:32:46 1991
  664. --- pbmplus.new/ppm/pi1toppm.c    Sat Apr 20 00:23:10 1991
  665. ***************
  666. *** 35,41 ****
  667. --- 35,45 ----
  668.       pm_usage( "[pi1file]" );
  669.   
  670.       if ( argc == 2 )
  671. + #ifdef GNUDOS
  672. +     ifp = pm_openrb( argv[1] );
  673. + #else /* GNUDOS */
  674.       ifp = pm_openr( argv[1] );
  675. + #endif /* GNUDOS */
  676.       else
  677.       ifp = stdin;
  678.   
  679. diff -c -B -H +new-file +recursive pbmplus.old/ppm/picttopp.c pbmplus.new/ppm/picttopp.c
  680. *** pbmplus.old/ppm/picttopp.c    Fri Apr 12 00:31:26 1991
  681. --- pbmplus.new/ppm/picttopp.c    Sat Apr 20 00:22:44 1991
  682. ***************
  683. *** 314,320 ****
  684. --- 314,324 ----
  685.       }
  686.   
  687.       if (argn < argc) {
  688. + #ifdef GNUDOS
  689. +         ifp = pm_openrb( argv[argn] );
  690. + #else /* GNUDOS */
  691.           ifp = pm_openr(argv[argn]);
  692. + #endif /* GNUDOS */
  693.           ++argn;
  694.       } else
  695.           ifp = stdin;
  696. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmpat.c pbmplus.new/ppm/ppmpat.c
  697. *** pbmplus.old/ppm/ppmpat.c    Fri Apr 12 00:31:18 1991
  698. --- pbmplus.new/ppm/ppmpat.c    Sat Apr 20 16:30:54 1991
  699. ***************
  700. *** 86,92 ****
  701.           pm_error( "only one base pattern may be specified", 0,0,0,0,0 );
  702.           pattern = PAT_CAMO;
  703.           }
  704. !     else if (pm_keymatch( argv[argn], "-anticamo", 2 ) == 0)
  705.           {
  706.           if ( pattern != PAT_NONE )
  707.           pm_error( "only one base pattern may be specified", 0,0,0,0,0 );
  708. --- 86,92 ----
  709.           pm_error( "only one base pattern may be specified", 0,0,0,0,0 );
  710.           pattern = PAT_CAMO;
  711.           }
  712. !     else if (pm_keymatch( argv[argn], "-anticamo", 2 ) )
  713.           {
  714.           if ( pattern != PAT_NONE )
  715.           pm_error( "only one base pattern may be specified", 0,0,0,0,0 );
  716. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmquant pbmplus.new/ppm/ppmquant
  717. *** pbmplus.old/ppm/ppmquant    Fri Apr 12 00:31:26 1991
  718. --- pbmplus.new/ppm/ppmquant
  719. ***************
  720. *** 1,45 ****
  721. - #!/bin/csh -f
  722. - #
  723. - # ppmquantall - run ppmquant on a bunch of files all at once, so they share
  724. - #               a common colormap
  725. - #
  726. - # WARNING: overwrites the source files with the results!!!
  727. - #
  728. - # Verbose explanation: Let's say you've got a dozen pixmaps that you want
  729. - # to display on the screen all at the same time.  Your screen can only
  730. - # display 256 different colors, but the pixmaps have a total of a thousand
  731. - # or so different colors.  For a single pixmap you solve this problem with
  732. - # ppmquant; this script solves it for multiple pixmaps.  All it does is
  733. - # concatenate them together into one big pixmap, run ppmquant on that, and
  734. - # then split it up into little pixmaps again.
  735. - if ( $#argv < 3 ) then
  736. -     echo "usage:  ppmquantall <newcolors> <ppmfile> <ppmfile> ..."
  737. -     exit 1
  738. - endif
  739. - set newcolors=$argv[1]
  740. - set files=( $argv[2-] )
  741. - set heights=()
  742. - foreach i ( $files )
  743. -     set heights=( $heights `head -2 $i | tail -1 | sed 's/.* //'` )
  744. - end
  745. - set all=/tmp/pqa.all.$$
  746. - rm -f $all
  747. - pnmcat -tb -white $files | ppmquant -quiet $newcolors > $all
  748. - if ( $status != 0 ) exit $status
  749. - set width=`head -2 $all | tail -1 | sed 's/ .*//'`
  750. - @ y = 0
  751. - @ i = 1
  752. - while ( $i <= $#files )
  753. -     pnmcut 0 $y $width $heights[$i] $all | pnmcrop -white > $files[$i]
  754. -     if ( $status != 0 ) exit $status
  755. -     @ y = $y + $heights[$i]
  756. -     @ i++
  757. - end
  758. - rm -f $all
  759. --- 0 ----
  760. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtogif.c pbmplus.new/ppm/ppmtogif.c
  761. *** pbmplus.old/ppm/ppmtogif.c    Fri Apr 12 00:31:20 1991
  762. --- pbmplus.new/ppm/ppmtogif.c    Sat Apr 20 11:21:12 1991
  763. ***************
  764. *** 29,34 ****
  765. --- 29,39 ----
  766.   static pixel** pixels;
  767.   static colorhash_table cht;
  768.   
  769. + #ifdef GNUDOS
  770. + FILE* ofp;
  771. + char fname[100], *fcp;
  772. + #endif /* GNUDOS */
  773.   void main( argc, argv )
  774.       int argc;
  775.       char* argv[];
  776. ***************
  777. *** 68,73 ****
  778. --- 73,90 ----
  779.       if ( argn != argc )
  780.       pm_usage( usage );
  781.   
  782. + #ifdef GNUDOS
  783. +     if ( ifp == stdin )  
  784. +         strcpy( fname, "noname" );
  785. +     else {
  786. +         strcpy( fname, argv[argc-1] );
  787. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  788. +             *fcp = '\0';
  789. +         }
  790. +     strcat( fname, ".gif"  );
  791. +     ofp = pm_openwb( fname );
  792. + #endif /* GNUDOS */
  793.       pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
  794.   
  795.       pm_close( ifp );
  796. ***************
  797. *** 106,114 ****
  798. --- 123,137 ----
  799.       ppm_freecolorhist( chv );
  800.   
  801.       /* All set, let's do it. */
  802. + #ifdef GNUDOS
  803. +     GIFEncode(
  804. +     ofp, cols, rows, interlace, 0, BitsPerPixel,
  805. +         Red, Green, Blue, GetPixel );
  806. + #else /* GNUDOS */
  807.       GIFEncode(
  808.       stdout, cols, rows, interlace, 0, BitsPerPixel,
  809.           Red, Green, Blue, GetPixel );
  810. + #endif /* GNUDOS */
  811.   
  812.       exit( 0 );
  813.       }
  814. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtoicr.c pbmplus.new/ppm/ppmtoicr.c
  815. *** pbmplus.old/ppm/ppmtoicr.c    Fri Apr 12 00:32:48 1991
  816. --- pbmplus.new/ppm/ppmtoicr.c    Sat Apr 20 10:12:02 1991
  817. ***************
  818. *** 20,25 ****
  819. --- 20,30 ----
  820.   colorhash_table cht;
  821.   char *testimage;
  822.   
  823. + #ifdef GNUDOS
  824. + FILE* ofp;
  825. + char fname[100], *fcp;
  826. + #endif /* GNUDOS */
  827.   void main(argc, argv)
  828.   int argc;
  829.   char *argv[];
  830. ***************
  831. *** 87,92 ****
  832. --- 92,105 ----
  833.       if ( argn != argc )
  834.           pm_usage( usage );
  835.   
  836. + #ifdef GNUDOS
  837. +     strcpy( fname, windowname );
  838. +     if ( ( fcp = index( fname, '.' ) ) != 0 )
  839. +         *fcp = '\0';
  840. +     strcat( fname,    ".icr" );
  841. +     ofp = pm_openwb( fname );
  842. + #endif /* GNUDOS */
  843. +  
  844.       pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
  845.   
  846.       pm_close( ifp );
  847. ***************
  848. *** 138,155 ****
  849.       /* Format is "ESC^W;left;top;width;height;display;windowname"  */
  850.   
  851.       pm_message("creating window %s ...", windowname, 0,0,0,0);
  852.       (void)printf("\033^W;%d;%d;%d;%d;%d;%s^",0,0,cols*expand,rows*expand,display,windowname);
  853.       fflush(stdout);
  854.   
  855.       /****************** Download the colormap.  ********************/
  856.       pm_message("downloading colormap for %s ...", windowname, 0,0,0,0);
  857.   
  858.       (void)printf("\033^M;%d;%d;%d;%s^",0,MAXCOLORS,CLUTCOLORS,windowname);
  859.       thischar = rgb;
  860.       for (j=0; j<CLUTCOLORS; j++) {
  861.       c = *thischar++;
  862.           if (c > 31 && c < 123 ) {     /* printable ASCII */
  863.           putchar(c);
  864.           }
  865.           else {
  866. --- 151,186 ----
  867.       /* Format is "ESC^W;left;top;width;height;display;windowname"  */
  868.   
  869.       pm_message("creating window %s ...", windowname, 0,0,0,0);
  870. + #ifdef GNUDOS
  871. +     (void)fprintf( ofp, "\033^W;%d;%d;%d;%d;%d;%s^",0,0,cols*expand,rows*expand,display,windowname);
  872. +     fflush( ofp );
  873. + #else /* GNUDOS */
  874.       (void)printf("\033^W;%d;%d;%d;%d;%d;%s^",0,0,cols*expand,rows*expand,display,windowname);
  875.       fflush(stdout);
  876. ! #endif /* GNUDOS */
  877.   
  878.       /****************** Download the colormap.  ********************/
  879.       pm_message("downloading colormap for %s ...", windowname, 0,0,0,0);
  880.   
  881. + #ifdef GNUDOS
  882. +     (void)fprintf( ofp, "\033^M;%d;%d;%d;%s^",0,MAXCOLORS,CLUTCOLORS,windowname);
  883. + #else /* GNUDOS */
  884.       (void)printf("\033^M;%d;%d;%d;%s^",0,MAXCOLORS,CLUTCOLORS,windowname);
  885. + #endif /* GNUDOS */
  886.       thischar = rgb;
  887.       for (j=0; j<CLUTCOLORS; j++) {
  888.       c = *thischar++;
  889.           if (c > 31 && c < 123 ) {     /* printable ASCII */
  890. + #ifdef GNUDOS
  891. +         fputc(c, ofp );
  892. +         }
  893. +         else {
  894. +         fputc((c>>6)+123, ofp );     /* non-printable, so encode it */
  895. +         fputc((c & 0x3f) + 32, ofp );
  896. +         }
  897. +     }
  898. +     fflush( ofp );
  899. + #else /* GNUDOS */
  900.           putchar(c);
  901.           }
  902.           else {
  903. ***************
  904. *** 158,163 ****
  905. --- 189,195 ----
  906.           }
  907.       }
  908.       fflush(stdout);
  909. + #endif /* GNUDOS */
  910.   
  911.       /**************** send out picture *************************/
  912.       /* Protocol's RLE scheme is quicker but buggy              */
  913. ***************
  914. *** 174,184 ****
  915. --- 206,230 ----
  916.           for (i = 0; i < rows; i++) {
  917.               newxsize = rleit(thisline,space,cols);
  918.               thisline += cols;    /* increment to next line */
  919. + #ifdef GNUDOS
  920. +         (void)printf("\033^R;%d;%d;%d;%d;%s^",0,i*expand,expand,newxsize,windowname);
  921. + #else /* GNUDOS */
  922.           (void)printf("\033^R;%d;%d;%d;%d;%s^",0,i*expand,expand,newxsize,windowname);
  923. + #endif /* GNUDOS */
  924.           thischar = space;
  925.           for (j=0; j< newxsize; j++) {
  926.               c= *thischar++;  /*get byte to send */
  927.               if (c>31 && c <123) {
  928. + #ifdef GNUDOS
  929. +                 fputc(c, ofp );
  930. +                 }
  931. +             else {
  932. +                 fputc((c>>6) + 123, ofp );
  933. +                 fputc((c & 0x3f) + 32, ofp );
  934. +                 }
  935. +             }
  936. +             fflush( ofp );
  937. + #else /* GNUDOS */
  938.                   putchar(c);
  939.                   }
  940.               else {
  941. ***************
  942. *** 187,194 ****
  943. --- 233,245 ----
  944.                   }
  945.               }
  946.               fflush(stdout);
  947. + #endif /* GNUDOS */
  948.           }
  949.           free(space);
  950. + #ifdef GNUDOS
  951. +         pm_close( ofp );
  952. + #endif /* GNUDOS */
  953.           exit(0);
  954.           }
  955.   
  956. ***************
  957. *** 197,206 ****
  958. --- 248,272 ----
  959.           else {
  960.           pm_message("sending picture data ...", 0,0,0,0,0);
  961.           for (i = 0; i < rows; i++) {
  962. + #ifdef GNUDOS
  963. +             (void)fprintf( ofp, "\033^P;%d;%d;%d;%d;%s^",0,i*expand,expand,cols,windowname);
  964. + #else /* GNUDOS */
  965.               (void)printf("\033^P;%d;%d;%d;%d;%s^",0,i*expand,expand,cols,windowname);
  966. + #endif /* GNUDOS */
  967.               for (j = 0; j < cols; j++) {
  968.                   c  = GetPixel(j,i);
  969.                   if (c > 31 && c < 123) {
  970. + #ifdef GNUDOS
  971. +                         fputc(c, ofp );
  972. +                         }
  973. +                 else        {
  974. +                         fputc((c>>6)+123, ofp );
  975. +                         fputc((c & 0x3f) + 32, ofp );
  976. +                         }
  977. +                 }
  978. +             }
  979. +         fflush( ofp );
  980. + #else /* GNUDOS */
  981.                           putchar(c);
  982.                           }
  983.                   else        {
  984. ***************
  985. *** 210,215 ****
  986. --- 276,286 ----
  987.                   }
  988.               }
  989.           fflush(stdout);
  990. + #endif /* GNUDOS */
  991. + #ifdef GNUDOS
  992. +         pm_close( ofp );
  993. + #endif /* GNUDOS */
  994.           exit(0);
  995.           }
  996.       }
  997. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtoilb.c pbmplus.new/ppm/ppmtoilb.c
  998. *** pbmplus.old/ppm/ppmtoilb.c    Fri Apr 12 00:31:22 1991
  999. --- pbmplus.new/ppm/ppmtoilb.c    Sat Apr 20 10:08:38 1991
  1000. ***************
  1001. *** 19,24 ****
  1002. --- 19,29 ----
  1003.   
  1004.   static int colorstobpp();
  1005.   
  1006. + #ifdef GNUDOS
  1007. + FILE* ofp;
  1008. + char fname[100], *fcp;
  1009. + #endif /* GNUDOS */
  1010.   void main( argc, argv )
  1011.   int argc;
  1012.   char *argv[];
  1013. ***************
  1014. *** 60,65 ****
  1015. --- 65,82 ----
  1016.       if ( argn != argc )
  1017.       pm_usage( usage );
  1018.   
  1019. + #ifdef GNUDOS
  1020. +     if ( ifp == stdin )  
  1021. +         strcpy( fname, "noname" );
  1022. +     else {
  1023. +         strcpy( fname, argv[argc-1] );
  1024. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  1025. +             *fcp = '\0';
  1026. +         }
  1027. +     strcat( fname, ".ilb"  );
  1028. +     ofp = pm_openwb( fname );
  1029. + #endif /* GNUDOS */
  1030.       pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
  1031.   
  1032.       pm_close( ifp );
  1033. ***************
  1034. *** 256,265 ****
  1035. --- 273,290 ----
  1036.               *cp = 0;
  1037.               }
  1038.           }
  1039. + #ifdef GNUDOS
  1040. +         fwrite( coded_rowbuf, RowBytes(cols), 1, ofp );
  1041. + #else /* GNUDOS */
  1042.           fwrite( coded_rowbuf, RowBytes(cols), 1, stdout );
  1043. + #endif /* GNUDOS */
  1044.           }
  1045.       }
  1046.   
  1047. + #ifdef GNUDOS
  1048. +     pm_close( ofp );
  1049. + #endif /* GNUDOS */
  1050.       exit( 0 );
  1051.       }
  1052.   
  1053. ***************
  1054. *** 302,314 ****
  1055. --- 327,347 ----
  1056.   put_fourchars( str )
  1057.   char *str;
  1058.       {
  1059. + #ifdef GNUDOS
  1060. +     fputs( str, ofp );
  1061. + #else /* GNUDOS */
  1062.       fputs( str, stdout );
  1063. + #endif /* GNUDOS */
  1064.       }
  1065.   
  1066.   put_big_short( s )
  1067.   short s;
  1068.       {
  1069. + #ifdef GNUDOS
  1070. +     if ( pm_writebigshort( ofp, s ) == -1 )
  1071. + #else /* GNUDOS */
  1072.       if ( pm_writebigshort( stdout, s ) == -1 )
  1073. + #endif /* GNUDOS */
  1074.       pm_error( "write error", 0,0,0,0,0 );
  1075.       }
  1076.   
  1077. ***************
  1078. *** 315,321 ****
  1079. --- 348,358 ----
  1080.   put_big_long( l )
  1081.   long l;
  1082.       {
  1083. + #ifdef GNUDOS
  1084. +     if ( pm_writebiglong( ofp, l ) == -1 )
  1085. + #else /* GNUDOS */
  1086.       if ( pm_writebiglong( stdout, l ) == -1 )
  1087. + #endif /* GNUDOS */
  1088.       pm_error( "write error", 0,0,0,0,0 );
  1089.       }
  1090.   
  1091. ***************
  1092. *** 322,327 ****
  1093. --- 359,368 ----
  1094.   put_byte( b )
  1095.   unsigned char b;
  1096.       {
  1097. + #ifdef GNUDOS
  1098. +     if ( fputc( b, ofp ) == EOF )
  1099. + #else /* GNUDOS */
  1100.       if ( putc( b, stdout ) == EOF )
  1101. + #endif /* GNUDOS */
  1102.       pm_error( "write error", 0,0,0,0,0 );
  1103.       }
  1104. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtopcx.c pbmplus.new/ppm/ppmtopcx.c
  1105. *** pbmplus.old/ppm/ppmtopcx.c    Fri Apr 12 00:32:46 1991
  1106. --- pbmplus.new/ppm/ppmtopcx.c    Sat Apr 20 11:30:32 1991
  1107. ***************
  1108. *** 22,27 ****
  1109. --- 22,32 ----
  1110.   pixel **pixels;
  1111.   colorhash_table cht;
  1112.   
  1113. + #ifdef GNUDOS
  1114. + FILE* ofp;
  1115. + char fname[100], *fcp;
  1116. + #endif /* GNUDOS */ 
  1117.   void main( argc, argv )
  1118.   int argc;
  1119.   char *argv[];
  1120. ***************
  1121. *** 49,54 ****
  1122. --- 54,71 ----
  1123.       if ( argn != argc )
  1124.       pm_usage( usage );
  1125.   
  1126. + #ifdef GNUDOS
  1127. +     if ( ifp == stdin )  
  1128. +         strcpy( fname, "noname" );
  1129. +     else {
  1130. +         strcpy( fname, argv[argc-1] );
  1131. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  1132. +             *fcp = '\0';
  1133. +         }
  1134. +     strcat( fname, ".pcx"  );
  1135. +     ofp = pm_openwb( fname );
  1136. + #endif /* GNUDOS */
  1137.       pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
  1138.   
  1139.       pm_close( ifp );
  1140. ***************
  1141. *** 90,96 ****
  1142.       ppm_freecolorhist( chv );
  1143.   
  1144.       /* All set, let's do it. */
  1145. !     PCXEncode( stdout, cols, rows, colors, Red, Green, Blue, ReadPlanes );
  1146.   
  1147.       exit( 0 );
  1148.       }
  1149. --- 107,117 ----
  1150.       ppm_freecolorhist( chv );
  1151.   
  1152.       /* All set, let's do it. */
  1153. ! #ifdef GNUDOS
  1154. !     PCXEncode( ofp, cols, rows, colors, Red, Green, Blue, ReadPlanes );
  1155. ! #else /* GNUDOS */
  1156. !     PCXEncode( stdout, cols, rows, colors, Red, Green, Blue, ReadPlanes );
  1157. ! #endif /* GNUDOS */
  1158.   
  1159.       exit( 0 );
  1160.       }
  1161. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtopi1.c pbmplus.new/ppm/ppmtopi1.c
  1162. *** pbmplus.old/ppm/ppmtopi1.c    Fri Apr 12 00:32:48 1991
  1163. --- pbmplus.new/ppm/ppmtopi1.c    Sat Apr 20 10:08:28 1991
  1164. ***************
  1165. *** 18,23 ****
  1166. --- 18,28 ----
  1167.   #define MAXVAL 7
  1168.   #define MAXCOLORS 16
  1169.   
  1170. + #ifdef GNUDOS
  1171. + FILE* ofp;
  1172. + char fname[100], *fcp;
  1173. + #endif /* GNUDOS */
  1174.   void main( argc, argv )
  1175.   int argc;
  1176.   char *argv[];
  1177. ***************
  1178. *** 42,47 ****
  1179. --- 47,64 ----
  1180.       else
  1181.       ifp = stdin;
  1182.   
  1183. + #ifdef GNUDOS
  1184. +     if ( ifp == stdin )  
  1185. +         strcpy( fname, "noname" );
  1186. +     else {
  1187. +         strcpy( fname, argv[1] );
  1188. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  1189. +             *fcp = '\0';
  1190. +         }
  1191. +     strcat( fname, ".pi1"  );
  1192. +     ofp = pm_openwb( fname );
  1193. + #endif /* GNUDOS */
  1194.       pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
  1195.       pm_close( ifp );
  1196.       if ( (cols > COLS) || (rows > ROWS) )
  1197. ***************
  1198. *** 58,64 ****
  1199.       pm_message( "%d colors found", colors, 0,0,0,0 );
  1200.   
  1201.       /* Write PI1 header - resolution and palette. */
  1202. !     (void) pm_writebigshort( stdout, (short) 0 );    /* low resolution */
  1203.       for ( i = 0; i < 16; ++i )
  1204.       {
  1205.       short w;
  1206. --- 75,85 ----
  1207.       pm_message( "%d colors found", colors, 0,0,0,0 );
  1208.   
  1209.       /* Write PI1 header - resolution and palette. */
  1210. ! #ifdef GNUDOS
  1211. !     (void) pm_writebigshort( ofp, (short) 0 );     /* low resolution */
  1212. ! #else /* GNUDOS */
  1213. !     (void) pm_writebigshort( stdout, (short) 0 );    /* low resolution */
  1214. ! #endif /* GNUDOS */
  1215.       for ( i = 0; i < 16; ++i )
  1216.       {
  1217.       short w;
  1218. ***************
  1219. *** 76,82 ****
  1220. --- 97,107 ----
  1221.           }
  1222.       else
  1223.           w = 0;
  1224. + #ifdef GNUDOS
  1225. +     (void) pm_writebigshort( ofp, w );
  1226. + #else /* GNUDOS */
  1227.       (void) pm_writebigshort( stdout, w );
  1228. + #endif /* GNUDOS */
  1229.       }
  1230.       if ( maxval > MAXVAL )
  1231.       pm_message(
  1232. ***************
  1233. *** 112,118 ****
  1234. --- 137,151 ----
  1235.   
  1236.       /* And write out the screen buffer. */
  1237.       for ( i = 0; i < ROWS*COLS/4; ++i )
  1238. + #ifdef GNUDOS
  1239. +     (void) pm_writebigshort( ofp, screen[i] );
  1240. + #else /* GNUDOS */
  1241.       (void) pm_writebigshort( stdout, screen[i] );
  1242. + #endif /* GNUDOS */
  1243. + #ifdef GNUDOS
  1244. +     pm_close( ofp );
  1245. + #endif /* GNUDOS */
  1246.   
  1247.       exit( 0 );
  1248.       }
  1249. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtopic.c pbmplus.new/ppm/ppmtopic.c
  1250. *** pbmplus.old/ppm/ppmtopic.c    Fri Apr 12 00:31:26 1991
  1251. --- pbmplus.new/ppm/ppmtopic.c    Sat Apr 20 10:16:00 1991
  1252. ***************
  1253. *** 130,135 ****
  1254. --- 130,140 ----
  1255.   #define MAXCOLORS 256
  1256.   colorhash_table cht;
  1257.   
  1258. + #ifdef GNUDOS
  1259. + FILE* ofp;
  1260. + char fname[100], *fcp;
  1261. + #endif /* GNUDOS */
  1262.   void main(argc, argv)
  1263.   int argc;
  1264.   char *argv[];
  1265. ***************
  1266. *** 155,160 ****
  1267. --- 160,177 ----
  1268.       if (argn != argc)
  1269.           pm_usage("[ppmfile]");
  1270.   
  1271. + #ifdef GNUDOS
  1272. +     if ( ifp == stdin )  
  1273. +         strcpy( fname, "noname" );
  1274. +     else {
  1275. +         strcpy( fname, argv[argc-1] );
  1276. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  1277. +             *fcp = '\0';
  1278. +         }
  1279. +     strcat( fname, ".pct"  );
  1280. +     ofp = pm_openwb( fname );
  1281. + #endif /* GNUDOS */
  1282.       pixels = ppm_readppm(ifp, &cols, &rows, &maxval);
  1283.       if (cols < 8)
  1284.           pm_error("ppm input too narrow, must be >= 8 pixels wide", 0,0,0,0,0);
  1285. ***************
  1286. *** 174,186 ****
  1287. --- 191,223 ----
  1288.       cht = ppm_colorhisttocolorhash(chv, colors);
  1289.   
  1290.       /* write the header */
  1291. + #ifdef GNUDOS
  1292. +     putFill( ofp, HEADER_SIZE);
  1293. + #else /* GNUDOS */
  1294.       putFill(stdout, HEADER_SIZE);
  1295. + #endif /* GNUDOS */
  1296.   
  1297.       /* write picSize and picFrame */
  1298. + #ifdef GNUDOS
  1299. +     putShort( ofp, 0);
  1300. +     putRect( ofp, 0, 0, rows, cols);
  1301. + #else /* GNUDOS */
  1302.       putShort(stdout, 0);
  1303.       putRect(stdout, 0, 0, rows, cols);
  1304. + #endif /* GNUDOS */
  1305.   
  1306.       /* write version op and version */
  1307. + #ifdef GNUDOS
  1308. +     putShort( ofp, PICT_picVersion);
  1309. +     putShort( ofp, 0x02FF);
  1310. +     putShort( ofp, PICT_headerOp);
  1311. +     putLong( ofp, -1L);
  1312. +     putFixed( ofp, 0, 0);
  1313. +     putFixed( ofp, 0, 0);
  1314. +     putFixed( ofp, cols, 0);
  1315. +     putFixed( ofp, rows, 0);
  1316. +     putFill( ofp, 4);
  1317. + #else /* GNUDOS */
  1318.       putShort(stdout, PICT_picVersion);
  1319.       putShort(stdout, 0x02FF);
  1320.       putShort(stdout, PICT_headerOp);
  1321. ***************
  1322. *** 190,202 ****
  1323.       putFixed(stdout, cols, 0);
  1324.       putFixed(stdout, rows, 0);
  1325.       putFill(stdout, 4);
  1326.   
  1327. !     /* seems to be needed by many PICT2 programs */
  1328.       putShort(stdout, PICT_clipRgn);
  1329.       putShort(stdout, 10);
  1330.       putRect(stdout, 0, 0, rows, cols);
  1331.   
  1332.       /* write picture */
  1333.       putShort(stdout, PICT_PackBitsRect);
  1334.       putShort(stdout, cols | 0x8000);
  1335.       putRect(stdout, 0, 0, rows, cols);
  1336. --- 227,266 ----
  1337.       putFixed(stdout, cols, 0);
  1338.       putFixed(stdout, rows, 0);
  1339.       putFill(stdout, 4);
  1340. + #endif /* GNUDOS */
  1341.   
  1342. !     /* seems to be needed by many PICT2 programs */ 
  1343. ! #ifdef GNUDOS
  1344. !     putShort( ofp, PICT_clipRgn);
  1345. !     putShort( ofp, 10);
  1346. !     putRect( ofp, 0, 0, rows, cols);
  1347. ! #else /* GNUDOS */
  1348.       putShort(stdout, PICT_clipRgn);
  1349.       putShort(stdout, 10);
  1350.       putRect(stdout, 0, 0, rows, cols);
  1351. + #endif /* GNUDOS */
  1352.   
  1353.       /* write picture */
  1354. + #ifdef GNUDOS
  1355. +     putShort( ofp, PICT_PackBitsRect);
  1356. +     putShort( ofp, cols | 0x8000);
  1357. +     putRect( ofp, 0, 0, rows, cols);
  1358. +     putShort( ofp, 0);      /* pmVersion */
  1359. +     putShort( ofp, 0);      /* packType */
  1360. +     putLong( ofp, 0L);      /* packSize */
  1361. +     putFixed( ofp, 72, 0);      /* hRes */
  1362. +     putFixed( ofp, 72, 0);      /* vRes */
  1363. +     putShort( ofp, 0);      /* pixelType */
  1364. +     putShort( ofp, 8);      /* pixelSize */
  1365. +     putShort( ofp, 1);      /* cmpCount */
  1366. +     putShort( ofp, 8);      /* cmpSize */
  1367. +     putLong( ofp, 0L);      /* planeBytes */
  1368. +     putLong( ofp, 0L);      /* pmTable */
  1369. +     putLong( ofp, 0L);      /* pmReserved */
  1370. +     putLong( ofp, 0L);      /* ctSeed */
  1371. +     putShort( ofp, 0);      /* ctFlags */
  1372. +     putShort( ofp, colors-1); /* ctSize */
  1373. + #else /* GNUDOS */
  1374.       putShort(stdout, PICT_PackBitsRect);
  1375.       putShort(stdout, cols | 0x8000);
  1376.       putRect(stdout, 0, 0, rows, cols);
  1377. ***************
  1378. *** 215,225 ****
  1379. --- 279,294 ----
  1380.       putLong(stdout, 0L);    /* ctSeed */
  1381.       putShort(stdout, 0);    /* ctFlags */
  1382.       putShort(stdout, colors-1);    /* ctSize */
  1383. + #endif /* GNUDOS */
  1384.   
  1385.       /* Write out the colormap. */
  1386.       for (i = 0; i < colors; i++)
  1387.       {
  1388. + #ifdef GNUDOS
  1389. +         putShort( ofp, i );
  1390. + #else /* GNUDOS */
  1391.           putShort(stdout, i);
  1392. + #endif /* GNUDOS */
  1393.           rval = PPM_GETR(chv[i].color);
  1394.           gval = PPM_GETG(chv[i].color);
  1395.           bval = PPM_GETB(chv[i].color);
  1396. ***************
  1397. *** 229,251 ****
  1398. --- 298,344 ----
  1399.               gval = gval * 65535L / lmaxval;
  1400.               bval = bval * 65535L / lmaxval;
  1401.           }
  1402. + #ifdef GNUDOS
  1403. +         putShort( ofp, (short)rval);
  1404. +         putShort( ofp, (short)gval);
  1405. +         putShort( ofp, (short)bval);
  1406. + #else /* GNUDOS */
  1407.           putShort(stdout, (short)rval);
  1408.           putShort(stdout, (short)gval);
  1409.           putShort(stdout, (short)bval);
  1410. + #endif /* GNUDOS */
  1411.       }
  1412.   
  1413. + #ifdef GNUDOS
  1414. +     putRect( ofp, 0, 0, rows, cols);  /* srcRect */
  1415. +     putRect( ofp, 0, 0, rows, cols);  /* dstRect */
  1416. +     putShort( ofp, 0);              /* mode */
  1417. + #else /* GNUDOS */
  1418.       putRect(stdout, 0, 0, rows, cols);    /* srcRect */
  1419.       putRect(stdout, 0, 0, rows, cols);    /* dstRect */
  1420.       putShort(stdout, 0);            /* mode */
  1421. + #endif /* GNUDOS */
  1422.   
  1423.       /* Finally, write out the data. */
  1424.       packed = (char*) malloc((unsigned)(cols+cols/MAX_COUNT+1));
  1425.       oc = 0;
  1426.       for (row = 0; row < rows; row++)
  1427. + #ifdef GNUDOS
  1428. +         oc += putRow( ofp, row, cols, pixels[row], packed);
  1429. + #else /* GNUDOS */
  1430.           oc += putRow(stdout, row, cols, pixels[row], packed);
  1431. + #endif /* GNUDOS */
  1432.   
  1433.       /* if we wrote an odd number of pixdata bytes, pad */
  1434.       if (oc & 1)
  1435. + #ifdef GNUDOS
  1436. +         putc(0, ofp );
  1437. +     putShort( ofp, PICT_EndOfPicture);
  1438. +     lmaxval = ftell( ofp ) - HEADER_SIZE;
  1439. +     if (fseek( ofp, (long)HEADER_SIZE, 0) >= 0)
  1440. +         putShort( ofp, (short)(lmaxval & 0xffff));
  1441. + #else /* GNUDOS */
  1442.           putc(0, stdout);
  1443.       putShort(stdout, PICT_EndOfPicture);
  1444.   
  1445. ***************
  1446. *** 252,257 ****
  1447. --- 345,355 ----
  1448.       lmaxval = ftell(stdout) - HEADER_SIZE;
  1449.       if (fseek(stdout, (long)HEADER_SIZE, 0) >= 0)
  1450.           putShort(stdout, (short)(lmaxval & 0xffff));
  1451. + #endif /* GNUDOS */
  1452. + #ifdef GNUDOS
  1453. +     pm_close( ofp );
  1454. + #endif /* GNUDOS */
  1455.   
  1456.       exit(0);
  1457.   }
  1458. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtops.c pbmplus.new/ppm/ppmtops.c
  1459. *** pbmplus.old/ppm/ppmtops.c    Fri Apr 12 00:31:20 1991
  1460. --- pbmplus.new/ppm/ppmtops.c    Sat Apr 20 10:20:34 1991
  1461. ***************
  1462. *** 14,19 ****
  1463. --- 14,24 ----
  1464.   
  1465.   static void putinit(), putitem(), putpix(), putgray(), putrest();
  1466.   
  1467. + #ifdef GNUDOS
  1468. + FILE* ofp;
  1469. + char fname[100], *fcp;
  1470. + #endif /* GNUDOS */
  1471.   void main( argc, argv )
  1472.   int argc;
  1473.   char *argv[];
  1474. ***************
  1475. *** 65,70 ****
  1476. --- 70,87 ----
  1477.       if ( argn != argc )
  1478.       pm_usage( usage );
  1479.   
  1480. + #ifdef GNUDOS
  1481. +     if ( ifp == stdin )  
  1482. +         strcpy( fname, "noname" );
  1483. +     else {
  1484. +         strcpy( fname, argv[argc-1] );
  1485. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  1486. +             *fcp = '\0';
  1487. +         }
  1488. +     strcat( fname, ".ps"   );
  1489. +     ofp = pm_openwb( fname );
  1490. + #endif /* GNUDOS */
  1491.       ppm_readppminit( ifp, &cols, &rows, &maxval, &format );
  1492.       pixrow = ppm_allocrow( cols );
  1493.   
  1494. ***************
  1495. *** 99,104 ****
  1496. --- 116,125 ----
  1497.   
  1498.       putrest( );
  1499.   
  1500. + #ifdef GNUDOS
  1501. +     pm_close( ofp );
  1502. + #endif /* GNUDOS */
  1503.       exit( 0 );
  1504.       }
  1505.   
  1506. ***************
  1507. *** 120,125 ****
  1508. --- 141,167 ----
  1509.       if ( llx < 0.0 || lly < 0.0 )
  1510.       pm_message( "warning, image too large for page", 0,0,0,0,0 );
  1511.   
  1512. + #ifdef GNUDOS
  1513. +     fprintf( ofp, "%%!PS-Adobe-2.0 EPSF-2.0)\n" );
  1514. +     fprintf( ofp, "%%%%Creator: ppmtops\n" );
  1515. +     fprintf( ofp, "%%%%Title: %s.ps\n", name );
  1516. +     fprintf( ofp, "%%%%Pages: 1\n" );
  1517. +     fprintf( ofp,
  1518. +     "%%%%BoundingBox: %d %d %d %d\n",
  1519. +     (int) llx, (int) lly, (int) ( llx + scols ), (int) ( lly + srows ) );
  1520. +     fprintf( ofp, "%%%%EndComments\n" );
  1521. +     fprintf( ofp, "%%%%EndProlog\n" );
  1522. +     fprintf( ofp, "%%%%Page: 1 1\n" );
  1523. +     fprintf( ofp, "/picstr %d string def\n", HSBUFSIZ );
  1524. +     fprintf( ofp, "gsave\n" );
  1525. +     fprintf( ofp, "%g %g translate\n", llx, lly );
  1526. +     fprintf( ofp, "%g %g scale\n", scols, srows );
  1527. +     fprintf( ofp, "%d %d %d\n", cols, rows, bps );
  1528. +     fprintf( ofp, "[ %d 0 0 -%d 0 %d ]\n", cols, rows, rows );
  1529. +     fprintf( ofp, "{ currentfile picstr readhexstring pop }\n" );
  1530. +     fprintf( ofp, "false 3\n" );
  1531. +     fprintf( ofp, "colorimage\n" );
  1532. + #else /* GNUDOS */
  1533.       printf( "%%!PS-Adobe-2.0 EPSF-2.0)\n" );
  1534.       printf( "%%%%Creator: ppmtops\n" );
  1535.       printf( "%%%%Title: %s.ps\n", name );
  1536. ***************
  1537. *** 139,144 ****
  1538. --- 181,187 ----
  1539.       printf( "{ currentfile picstr readhexstring pop }\n" );
  1540.       printf( "false 3\n" );
  1541.       printf( "colorimage\n" );
  1542. + #endif /* GNUDOS */
  1543.   
  1544.       bitspersample = bps;
  1545.       itemsperline = items = 0;
  1546. ***************
  1547. *** 154,164 ****
  1548. --- 197,215 ----
  1549.   
  1550.       if ( itemsperline == 30 )
  1551.       {
  1552. + #ifdef GNUDOS
  1553. +     fputc( '\n', ofp );
  1554. +     itemsperline = 0;
  1555. +     }
  1556. +     fputc( hexits[item >> 4], ofp );
  1557. +     fputc( hexits[item & 15], ofp );
  1558. + #else /* GNUDOS */
  1559.       putchar( '\n' );
  1560.       itemsperline = 0;
  1561.       }
  1562.       putchar( hexits[item >> 4] );
  1563.       putchar( hexits[item & 15] );
  1564. + #endif /* GNUDOS */
  1565.       itemsperline++;
  1566.       items++;
  1567.       item = 0;
  1568. ***************
  1569. *** 193,200 ****
  1570. --- 244,258 ----
  1571.       putitem( );
  1572.       while ( items % HSBUFSIZ != 0 )
  1573.       putitem( );
  1574. + #ifdef GNUDOS
  1575. +     fprintf( ofp, "\n" );
  1576. +     fprintf( ofp, "grestore\n" );
  1577. +     fprintf( ofp, "showpage\n" );
  1578. +     fprintf( ofp, "%%%%Trailer\n" );
  1579. + #else /* GNUDOS */
  1580.       printf( "\n" );
  1581.       printf( "grestore\n" );
  1582.       printf( "showpage\n" );
  1583.       printf( "%%%%Trailer\n" );
  1584. + #endif /* GNUDOS */
  1585.       }
  1586. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtopuz.c pbmplus.new/ppm/ppmtopuz.c
  1587. *** pbmplus.old/ppm/ppmtopuz.c    Fri Apr 12 00:32:46 1991
  1588. --- pbmplus.new/ppm/ppmtopuz.c    Sat Apr 20 10:08:18 1991
  1589. ***************
  1590. *** 16,21 ****
  1591. --- 16,26 ----
  1592.   #define MAXVAL 255
  1593.   #define MAXCOLORS 256
  1594.   
  1595. + #ifdef GNUDOS
  1596. + FILE* ofp;
  1597. + char fname[100], *fcp;
  1598. + #endif /* GNUDOS */
  1599.   void main( argc, argv )
  1600.   int argc;
  1601.   char *argv[];
  1602. ***************
  1603. *** 39,44 ****
  1604. --- 44,62 ----
  1605.       else
  1606.       ifp = stdin;
  1607.   
  1608. + #ifdef GNUDOS
  1609. +     if ( ifp == stdin )  
  1610. +         strcpy( fname, "noname" );
  1611. +     else {
  1612. +         strcpy( fname, argv[1] );
  1613. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  1614. +             *fcp = '\0';
  1615. +         }
  1616. +     strcat( fname, ".puz"  );
  1617. +     ofp = pm_openwb( fname );
  1618. + #endif /* GNUDOS */
  1619.       pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
  1620.       pm_close( ifp );
  1621.   
  1622. ***************
  1623. *** 53,61 ****
  1624.       pm_message( "%d colors found", colors, 0,0,0,0 );
  1625.   
  1626.       /* Write puzzle header. */
  1627.       (void) pm_writebiglong( stdout, cols );
  1628.       (void) pm_writebiglong( stdout, rows );
  1629. !     (void) putchar( (unsigned char) colors );
  1630.       if ( maxval > MAXVAL )
  1631.       pm_message(
  1632.           "maxval is not %d - automatically rescaling colors", MAXVAL,
  1633. --- 71,86 ----
  1634.       pm_message( "%d colors found", colors, 0,0,0,0 );
  1635.   
  1636.       /* Write puzzle header. */
  1637. + #ifdef GNUDOS
  1638. +     (void) pm_writebiglong( ofp, cols );
  1639. +     (void) pm_writebiglong( ofp, rows );
  1640. +     (void) fputc( (unsigned char) colors, ofp );
  1641. + #else /* GNUDOS */
  1642.       (void) pm_writebiglong( stdout, cols );
  1643.       (void) pm_writebiglong( stdout, rows );
  1644. !     (void) putchar( (unsigned char) colors );
  1645. ! #endif /* GNUDOS */
  1646.       if ( maxval > MAXVAL )
  1647.       pm_message(
  1648.           "maxval is not %d - automatically rescaling colors", MAXVAL,
  1649. ***************
  1650. *** 67,75 ****
  1651. --- 92,106 ----
  1652.       p = chv[i].color;
  1653.       if ( maxval != MAXVAL )
  1654.           PPM_DEPTH( p, p, maxval, MAXVAL );
  1655. + #ifdef GNUDOS
  1656. +     (void) fputc( (unsigned char) PPM_GETR( p ), ofp );
  1657. +     (void) fputc( (unsigned char) PPM_GETG( p ), ofp );
  1658. +     (void) fputc( (unsigned char) PPM_GETB( p ), ofp );
  1659. + #else /* GNUDOS */
  1660.       (void) putchar( (unsigned char) PPM_GETR( p ) );
  1661.       (void) putchar( (unsigned char) PPM_GETG( p ) );
  1662.       (void) putchar( (unsigned char) PPM_GETB( p ) );
  1663. + #endif /* GNUDOS */
  1664.       }
  1665.   
  1666.       /* Convert color vector to color hash table, for fast lookup. */
  1667. ***************
  1668. *** 88,96 ****
  1669. --- 119,135 ----
  1670.           pm_error(
  1671.               "color not found?!?  row=%d col=%d  r=%d g=%d b=%d",
  1672.               row, col, PPM_GETR(*pP), PPM_GETG(*pP), PPM_GETB(*pP) );
  1673. + #ifdef GNUDOS
  1674. +         (void) fputc( (unsigned char) color, ofp );
  1675. + #else /* GNUDOS */
  1676.           (void) putchar( (unsigned char) color );
  1677. + #endif /* GNUDOS */
  1678.           }
  1679.       }
  1680. + #ifdef GNUDOS
  1681. +     pm_close( ofp );
  1682. + #endif /* GNUDOS */
  1683.   
  1684.       exit( 0 );
  1685.       }
  1686. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtorgb.c pbmplus.new/ppm/ppmtorgb.c
  1687. *** pbmplus.old/ppm/ppmtorgb.c    Fri Apr 12 00:32:48 1991
  1688. --- pbmplus.new/ppm/ppmtorgb.c    Sat Apr 20 10:23:04 1991
  1689. ***************
  1690. *** 55,69 ****
  1691. --- 55,81 ----
  1692.       pixelrow = ppm_allocrow( cols );
  1693.       (void) strcpy( filename, basename );
  1694.       (void) strcat( filename, ".red" );
  1695. + #ifdef GNUDOS
  1696. +     redfile = pm_openwb( filename );
  1697. + #else /* GNUDOS */
  1698.       redfile = pm_openw( filename );
  1699. + #endif /* GNUDOS */
  1700.       pgm_writepgminit( redfile, cols, rows, (gray) maxval, 0 );
  1701.       (void) strcpy( filename, basename );
  1702.       (void) strcat( filename, ".grn" );
  1703. + #ifdef GNUDOS
  1704. +     grnfile = pm_openwb( filename );
  1705. + #else /* GNUDOS */
  1706.       grnfile = pm_openw( filename );
  1707. + #endif /* GNUDOS */
  1708.       pgm_writepgminit( grnfile, cols, rows, (gray) maxval, 0 );
  1709.       (void) strcpy( filename, basename );
  1710.       (void) strcat( filename, ".blu" );
  1711. + #ifdef GNUDOS
  1712. +     blufile = pm_openwb( filename );
  1713. + #else /* GNUDOS */
  1714.       blufile = pm_openw( filename );
  1715. + #endif /* GNUDOS */
  1716.       pgm_writepgminit( blufile, cols, rows, (gray) maxval, 0 );
  1717.       grayrow = pgm_allocrow( cols );
  1718.   
  1719. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtouil.c pbmplus.new/ppm/ppmtouil.c
  1720. *** pbmplus.old/ppm/ppmtouil.c    Fri Apr 12 00:32:46 1991
  1721. --- pbmplus.new/ppm/ppmtouil.c    Sat Apr 20 10:26:10 1991
  1722. ***************
  1723. *** 29,34 ****
  1724. --- 29,39 ----
  1725.       char* rgbname;    /* ascii rgb color, either mnemonic or #rgb value */
  1726.       } cixel_map;
  1727.   
  1728. + #ifdef GNUDOS
  1729. + FILE* ofp;
  1730. + char fname[100], *fcp;
  1731. + #endif /* GNUDOS */
  1732.   void main( argc, argv )
  1733.       int argc;
  1734.       char* argv[];
  1735. ***************
  1736. *** 94,99 ****
  1737. --- 99,116 ----
  1738.       if ( argn != argc )
  1739.       pm_usage( usage );
  1740.   
  1741. + #ifdef GNUDOS
  1742. +     if ( ifp == stdin )  
  1743. +         strcpy( fname, "noname" );
  1744. +     else {
  1745. +         strcpy( fname, argv[1] );
  1746. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  1747. +             *fcp = '\0';
  1748. +         }
  1749. +     strcat( fname, ".uil"  );
  1750. +     ofp = pm_openwb( fname );
  1751. + #endif /* GNUDOS */
  1752.       /* Read in the ppm file. */
  1753.       pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
  1754.       pm_close( ifp );
  1755. ***************
  1756. *** 113,118 ****
  1757. --- 130,177 ----
  1758.       gen_cmap( chv, ncolors, maxval, cmap, &charspp );
  1759.   
  1760.       /* Write out the UIL header. */
  1761. + #ifdef GNUDOS
  1762. +     fprintf( ofp, "module %s\n", out_name );
  1763. +     fprintf( ofp, "version = 'V1.0'\n" );
  1764. +     fprintf( ofp, "names = case_sensitive\n" );
  1765. +     /* Write out the ascii colormap. */
  1766. +     fprintf( ofp, "\n" );
  1767. +     fprintf( ofp, "value\n" );
  1768. +     fprintf( ofp, "  %s_rgb : color_table (\n", out_name );
  1769. +     for ( i = 0; i < ncolors; ++i )
  1770. +     {
  1771. +     fprintf( ofp, "    color( '%s' ) = '%s'", cmap[i].rgbname, cmap[i].cixel );
  1772. +     if ( i != ncolors - 1 )
  1773. +         fprintf( ofp, ",\n" );
  1774. +     else
  1775. +         fprintf( ofp, "\n" ); 
  1776. +     }     
  1777. +     fprintf( ofp, "    );\n" );
  1778. +     /* Write out the ascii character-pixel image. */
  1779. +     fprintf( ofp, "\n" );
  1780. +     fprintf( ofp,
  1781. +     "%s_icon : exported icon( color_table = %s_rgb,\n",
  1782. +     out_name, out_name );
  1783. +     for ( row = 0; row < rows; ++row )
  1784. +     {
  1785. +     fprintf( ofp, "    '" );
  1786. +     for ( col = 0, pP = pixels[row]; col < cols; ++col, ++pP )
  1787. +         {
  1788. +         if ( ( col * charspp ) % 70 == 0 && col > 0 )
  1789. +         fprintf( ofp, "'&\n    '" );      /* line continuation */
  1790. +         fprintf( ofp, "%s", cmap[ppm_lookupcolor(cht, pP)].cixel );
  1791. +         }
  1792. +     if ( row != rows - 1 )
  1793. +         fprintf( ofp, "',\n" );
  1794. +     else
  1795. +         fprintf( ofp, "'\n") ; 
  1796. +     }
  1797. +     fprintf( ofp, ");\n" );
  1798. +     fprintf( ofp, "\n" );
  1799. +     fprintf( ofp, "end module;\n" );
  1800. + #else /* GNUDOS */
  1801.       printf( "module %s\n", out_name );
  1802.       printf( "version = 'V1.0'\n" );
  1803.       printf( "names = case_sensitive\n" );
  1804. ***************
  1805. *** 153,158 ****
  1806. --- 212,222 ----
  1807.       printf( ");\n" );
  1808.       printf( "\n" );
  1809.       printf( "end module;\n" );
  1810. + #endif /* GNUDOS */
  1811. + #ifdef GNUDOS
  1812. +     pm_close( ofp );
  1813. + #endif /* GNUDOS */
  1814.   
  1815.       exit( 0 );
  1816.       }
  1817. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ppmtoxpm.c pbmplus.new/ppm/ppmtoxpm.c
  1818. *** pbmplus.old/ppm/ppmtoxpm.c    Fri Apr 12 00:31:24 1991
  1819. --- pbmplus.new/ppm/ppmtoxpm.c    Sat Apr 20 10:26:40 1991
  1820. ***************
  1821. *** 32,37 ****
  1822. --- 32,42 ----
  1823.       char* rgbname;    /* ascii rgb color, either mnemonic or #rgb value */
  1824.       } cixel_map;
  1825.   
  1826. + #ifdef GNUDOS
  1827. + FILE* ofp;
  1828. + char fname[100], *fcp;
  1829. + #endif /* GNUDOS */
  1830.   void main( argc, argv )
  1831.       int argc;
  1832.       char* argv[];
  1833. ***************
  1834. *** 98,103 ****
  1835. --- 103,120 ----
  1836.       if ( argn != argc )
  1837.       pm_usage( usage );
  1838.   
  1839. + #ifdef GNUDOS
  1840. +     if ( ifp == stdin )  
  1841. +         strcpy( fname, "noname" );
  1842. +     else {
  1843. +         strcpy( fname, argv[argc-1] );
  1844. +         if ( ( fcp = index( fname, '.' ) ) != 0 )
  1845. +             *fcp = '\0';
  1846. +         }
  1847. +     strcat( fname, ".xbm"  );
  1848. +     ofp = pm_openwb( fname );
  1849. + #endif /* GNUDOS */      
  1850.       /* Read in the ppm file. */
  1851.       pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
  1852.       pm_close( ifp );
  1853. ***************
  1854. *** 117,122 ****
  1855. --- 134,172 ----
  1856.       gen_cmap( chv, ncolors, maxval, cmap, &charspp );
  1857.   
  1858.       /* Write out the XPM header. */
  1859. + #ifdef GNUDOS
  1860. +     fprintf( ofp,  "#define %s_format %d\n", out_name, 1 );
  1861. +     fprintf( ofp,  "#define %s_width  %d\n", out_name, cols );
  1862. +     fprintf( ofp,  "#define %s_height %d\n", out_name, rows );
  1863. +     fprintf( ofp,  "#define %s_ncolors %d\n", out_name, ncolors );
  1864. +     fprintf( ofp,  "#define %s_chars_per_pixel %d\n", out_name, charspp );
  1865. +     /* Write out the ascii colormap. */
  1866. +     fprintf( ofp,  "static char *%s_colors[] = {\n", out_name );
  1867. +     for ( i = 0; i < ncolors; ++i )
  1868. +     {
  1869. +     fprintf( ofp,  "   \"%s\", \"%s\"", cmap[i].cixel, cmap[i].rgbname );
  1870. +     if ( i != ncolors - 1 )
  1871. +         fprintf( ofp,  ",\n" );
  1872. +     else
  1873. +         fprintf( ofp,  "\n" );
  1874. +     }     
  1875. +     fprintf( ofp,  "};\n" );
  1876. +     /* Write out the ascii character-pixel image. */
  1877. +     fprintf( ofp,  "static char *%s_pixels[] = {\n", out_name );
  1878. +     for ( row = 0; row < rows; ++row )
  1879. +     {
  1880. +     fprintf( ofp,  "\"" );
  1881. +     for ( col = 0, pP = pixels[row]; col < cols; ++col, ++pP )
  1882. +         fprintf( ofp,  "%s", cmap[ppm_lookupcolor(cht, pP)].cixel );
  1883. +     if ( row != rows - 1 )
  1884. +         fprintf( ofp,  "\",\n" );
  1885. +     else
  1886. +         fprintf( ofp,  "\"\n" ); 
  1887. +     }
  1888. +     fprintf( ofp,  "};\n" );
  1889. + #else /* GNUDOS */
  1890.       printf( "#define %s_format %d\n", out_name, 1 );
  1891.       printf( "#define %s_width  %d\n", out_name, cols );
  1892.       printf( "#define %s_height %d\n", out_name, rows );
  1893. ***************
  1894. *** 148,153 ****
  1895. --- 198,208 ----
  1896.           printf( "\"\n" ); 
  1897.       }
  1898.       printf( "};\n" );
  1899. + #endif /* GNUDOS */
  1900. + #ifdef GNUDOS
  1901. +     pm_close( ofp );
  1902. + #endif /* GNUDOS */
  1903.   
  1904.       exit( 0 );
  1905.       }
  1906. diff -c -B -H +new-file +recursive pbmplus.old/ppm/qrttoppm.c pbmplus.new/ppm/qrttoppm.c
  1907. *** pbmplus.old/ppm/qrttoppm.c    Fri Apr 12 00:31:20 1991
  1908. --- pbmplus.new/ppm/qrttoppm.c    Sat Apr 20 00:22:20 1991
  1909. ***************
  1910. *** 28,34 ****
  1911. --- 28,38 ----
  1912.       pm_usage( "[qrtfile]" );
  1913.   
  1914.       if ( argc == 2 )
  1915. + #ifdef GNUDOS
  1916. +     ifp = pm_openrb( argv[1] );
  1917. + #else /* GNUDOS */
  1918.       ifp = pm_openr( argv[1] );
  1919. + #endif /* GNUDOS */
  1920.       else
  1921.       ifp = stdin;
  1922.   
  1923. diff -c -B -H +new-file +recursive pbmplus.old/ppm/rawtoppm.c pbmplus.new/ppm/rawtoppm.c
  1924. *** pbmplus.old/ppm/rawtoppm.c    Fri Apr 12 00:32:48 1991
  1925. --- pbmplus.new/ppm/rawtoppm.c    Sat Apr 20 00:21:54 1991
  1926. ***************
  1927. *** 98,104 ****
  1928. --- 98,108 ----
  1929.   
  1930.       if ( argn < argc )
  1931.       {
  1932. + #ifdef GNUDOS
  1933. +     ifp = pm_openrb( argv[argn] );
  1934. + #else /* GNUDOS */
  1935.       ifp = pm_openr( argv[argn] );
  1936. + #endif /* GNUDOS */
  1937.       ++argn;
  1938.       }
  1939.       else
  1940. diff -c -B -H +new-file +recursive pbmplus.old/ppm/spctoppm.c pbmplus.new/ppm/spctoppm.c
  1941. *** pbmplus.old/ppm/spctoppm.c    Fri Apr 12 00:32:48 1991
  1942. --- pbmplus.new/ppm/spctoppm.c    Sat Apr 20 00:21:08 1991
  1943. ***************
  1944. *** 42,48 ****
  1945. --- 42,52 ----
  1946.       pm_usage( "[spcfile]" );
  1947.   
  1948.       if ( argc == 2 )
  1949. + #ifdef GNUDOS
  1950. +     ifp = pm_openrb( argv[1] );
  1951. + #else /* GNUDOS */
  1952.       ifp = pm_openr( argv[1] );
  1953. + #endif /* GNUDOS */
  1954.       else
  1955.       ifp = stdin;
  1956.   
  1957. diff -c -B -H +new-file +recursive pbmplus.old/ppm/sputoppm.c pbmplus.new/ppm/sputoppm.c
  1958. *** pbmplus.old/ppm/sputoppm.c    Fri Apr 12 00:32:48 1991
  1959. --- pbmplus.new/ppm/sputoppm.c    Sat Apr 20 00:20:42 1991
  1960. ***************
  1961. *** 34,40 ****
  1962. --- 34,44 ----
  1963.       pm_usage( "[spufile]" );
  1964.   
  1965.       if ( argc == 2 )
  1966. + #ifdef GNUDOS
  1967. +     ifp = pm_openrb( argv[1] );
  1968. + #else /* GNUDOS */
  1969.       ifp = pm_openr( argv[1] );
  1970. + #endif /* GNUDOS */
  1971.       else
  1972.       ifp = stdin;
  1973.   
  1974. diff -c -B -H +new-file +recursive pbmplus.old/ppm/tgatoppm.c pbmplus.new/ppm/tgatoppm.c
  1975. *** pbmplus.old/ppm/tgatoppm.c    Fri Apr 12 00:31:22 1991
  1976. --- pbmplus.new/ppm/tgatoppm.c    Sat Apr 20 00:20:22 1991
  1977. ***************
  1978. *** 53,59 ****
  1979. --- 53,63 ----
  1980.   
  1981.       if ( argn != argc )
  1982.       {
  1983. + #ifdef GNUDOS
  1984. +     ifp = pm_openrb( argv[argn] );
  1985. + #else /* GNUDOS */
  1986.       ifp = pm_openr( argv[argn] );
  1987. + #endif /* GNUDOS */
  1988.       ++argn;
  1989.       }
  1990.       else
  1991. diff -c -B -H +new-file +recursive pbmplus.old/ppm/ximtoppm.c pbmplus.new/ppm/ximtoppm.c
  1992. *** pbmplus.old/ppm/ximtoppm.c    Fri Apr 12 00:31:24 1991
  1993. --- pbmplus.new/ppm/ximtoppm.c    Sat Apr 20 00:19:56 1991
  1994. ***************
  1995. *** 31,37 ****
  1996. --- 31,41 ----
  1997.   
  1998.       if ( argn < argc )
  1999.       {
  2000. + #ifdef GNUDOS
  2001. +     ifp = pm_openrb( argv[argn] );
  2002. + #else /* GNUDOS */
  2003.       ifp = pm_openr( argv[argn] );
  2004. + #endif /* GNUDOS */
  2005.       ++argn;
  2006.       }
  2007.       else
  2008. diff -c -B -H +new-file +recursive pbmplus.old/ppm/xpmtoppm.c pbmplus.new/ppm/xpmtoppm.c
  2009. *** pbmplus.old/ppm/xpmtoppm.c    Fri Apr 12 00:32:46 1991
  2010. --- pbmplus.new/ppm/xpmtoppm.c    Sat Apr 20 00:19:30 1991
  2011. ***************
  2012. *** 33,39 ****
  2013. --- 33,43 ----
  2014.       pm_usage( "[xpmfile]" );
  2015.       
  2016.       if ( argc == 2 )
  2017. + #ifdef GNUDOS
  2018. +     ifp = pm_openrb( argv[1] );
  2019. + #else /* GNUDOS */
  2020.       ifp = pm_openr( argv[1] );
  2021. + #endif /* GNUDOS */
  2022.       else
  2023.       ifp = stdin;
  2024.   
  2025. diff -c -B -H +new-file +recursive pbmplus.old/readme.dos pbmplus.new/readme.dos
  2026. *** pbmplus.old/readme.dos
  2027. --- pbmplus.new/readme.dos    Sun Apr 28 12:24:24 1991
  2028. ***************
  2029. *** 0 ****
  2030. --- 1,108 ----
  2031. + This is my first release of my port of the pbmplus package to DOS.
  2032. + It was done using DJ Delorie's DOS port of GCC.  You REQUIRE a 386 or
  2033. + better machine.  387 optional for parts, and those parts should tell you
  2034. + when you don't have one.  See the GCC package for more details.  Also, 
  2035. + lots of ram and disk space help.  See below for more information.
  2036. + The gcc package can be obtained from:  grape.ecs.clarkson.edu 
  2037. + (I believe it can also be found on garbo.uwase.fi, and probably others.  
  2038. + Check archie).
  2039. + The PBMPlus package can be obtained from ..... damn... have to go look 
  2040. + that up.
  2041. + I believe this package works for the most part.
  2042. + Parts I know don't work:
  2043. + GIFTOPPM  -- this may be a flaw in GCC malloc, I don't know.
  2044. + PBMTOGEM  -- this is a little-endian/big-endian problem *sigh*    
  2045. +              at least GEMTOPBM works....
  2046. + PNMGAMMA  -- all 0's get mapped to 256, even with correction of 1.0.  Go
  2047. +              figure.  Fix, make an appropriate file of all 1's and run
  2048. +              through PNMARITH (well, I think this will work).
  2049. +   
  2050. + None of the TIFF stuff.  Can't get the damn library to link in.  I think 
  2051. + this is just pilot error on my part with using 'ld'  
  2052. + This is the first real project I've worked on in C, and I'm pretty much 
  2053. + clueless.  :->    It doesn't take a genius to go through and change printf 
  2054. + to fprintf(ofp , just someone with nothing better to do, and an editor 
  2055. + that supports macros well.     
  2056. + If anyone finds any other problems, please get in touch with me.  I 
  2057. + won't have net access over the summer (I'm looking into it, but no luck
  2058. + yet, and I can't afford lond-distance phone calls on a regular basis).
  2059. + If you find a problem, I would be interested in a copy of the input file
  2060. + in the original format, and one in GIF, TARGA, RAW, or any format that 
  2061. + CSHOW can handle.  I would also like copies of any other patches you may
  2062. + develop. 
  2063. +  
  2064. + You can either send me disks (with self-addressed stamped envelope to 
  2065. + mail them back with, hopefully with fixes :-), or send me mail, and I'll
  2066. + send disks with an SASE to you.
  2067. + My address is:
  2068. +         Mike Castle
  2069. +         R 2 Bx 69
  2070. +         Troy, MO 63379 
  2071. +         USA        
  2072. + EXEs:  If you are reading this from the distribution through 
  2073. + comp.binaries.ibm.pc, then most likely you have all (or most) of the 
  2074. + .exe files.  The file GO32.EXE _MUST_ be in you path.  This is the DJ's 
  2075. + DOS extender, and is needed to get the other programs to work.    I used 
  2076. + just the stub that calls the extender rather than the actual extender 
  2077. + when I created the actuall exe files in order to save space.  The entire
  2078. + package would have been about twice the size had I built them with the 
  2079. + extender.  If you want to change that, get the original PBMPlus source,
  2080. + apply my patches, and then rebuild (see PATCHes: below).
  2081. + PATCHes:  As will be posted to alt.sources, my patches include several 
  2082. + utility batch files to (hopefully) aid making them.  They are:
  2083. +     MAKEALL.BAT    This assumes using GNUMAKE (available on Simtel20, et al)    
  2084. +     MAKEEXE.BAT    This builds the actuall executables from the 32-bit 
  2085. +                    code produced by GCC.  Edit it to fit your system, 
  2086. +                    and desires.
  2087. +     DELP?M.BAT       These exist in each directory, and just deletes all 
  2088. +                    of the a.out files from GCC.  Useful for cleaning up.
  2089. +     EXEP?M.BAT       Also in each directory.    Called by MAKEEXE.BAT, they
  2090. +                    perform the actuall 'copy /b stub.exe+xxxxx xxxxx.eexe'
  2091. + The makefile.pc in each of pbm, pgm, ppm, and pnm directories might work
  2092. + with other make's.  I don't know.  But it should still provide a good 
  2093. + indication of how to procede.
  2094. + If you have unix-like utilities for DOS (rm, mv, etc), you can probably 
  2095. + use the original makefiles.  Just watch out for long command lines in 
  2096. + the pnm makefile.       
  2097. + These patches *should* allow compilation on a unix machine resulting in 
  2098. + identical executables to the official PBMPlus package (well, in theory, 
  2099. + it should).
  2100. + CAVEATs: This package is SLOW.    This is due to the fact that when you do 
  2101. + redirection through DOS (ala tgatoppm my.tga | ppmquant 256 | ppmtogif),
  2102. + DOS has to create tempory output/input files for redirection purposes.    
  2103. + Hazards of a single-tasking OS.  To determine the amount of diskspace 
  2104. + you need, do this:
  2105. +   disk_space = height * width * 12
  2106. +        
  2107. + for 1 redirection ( pcxtoppm my.pcx | ppmtogif ).                                                                                  
  2108. + Multiply by 2 for more than 1 redirection.    
  2109. + DEVIATIONS:  Since DOS doens't like certain characters to go through 
  2110. + stdin/stdout, I changed all p?mto???.exe's to produce an output file 
  2111. + instead of using redirection as you would on a unix system.  If used 
  2112. + directly, like 'ppmtogif my.ppm' the output file will be my.gif.  If 
  2113. + used with redirection, the outfile will be noname.gif.    The extensions 
  2114. + were chosen, for the most part, from the last three letters of the 
  2115. + p?mtoxxx utility.  Some were changed, some should probably be changed.     
  2116. + Sorry for the rambling nature of this doc, just writing things down as I 
  2117. + think of them.    
  2118. + Enjoy the package, bugs and all.
  2119. + Mike Castle
  2120.