From 97297cb8101a95fd395efb651ebb034eb235fb0b Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Wed, 1 Apr 1998 22:14:53 +0000 Subject: [PATCH] Added checks for print spoolers to configure.in as suggested by Michael Sweet. The print plug-in still needs some changes to Makefile.am to make make use of this. Updated print and sgi plug-ins to version on the registry. --Sven --- configure.in | 29 ++++ plug-ins/print/print-escp2.c | 30 +--- plug-ins/print/print-pcl.c | 32 ++--- plug-ins/print/print-ps.c | 20 ++- plug-ins/print/print-util.c | 265 +++++++++++++++++++++++++++-------- plug-ins/print/print.c | 66 +++------ plug-ins/print/print.h | 18 ++- plug-ins/sgi/sgi.c | 44 ++---- plug-ins/sgi/sgi.h | 49 +------ plug-ins/sgi/sgilib.c | 30 +--- 10 files changed, 312 insertions(+), 271 deletions(-) diff --git a/configure.in b/configure.in index de0ed629a8..0222e1c5fc 100644 --- a/configure.in +++ b/configure.in @@ -290,6 +290,35 @@ patterndata=`echo $patterndata` dnl This is for generating PDB docuemntation. AC_PATH_PROG(EMACS, emacs, :) +dnl This is for the print plug-in +lp_path="" +AC_ARG_ENABLE(lp_path, [ --with-lp=DIR set lp command location], +if eval "test x$with_lp != x"; then + lp_path=$with_lp +fi) +AC_PATH_PROG(LP_COMMAND, "lp", $lp_path) + +lpstat_path="" +AC_ARG_ENABLE(lpstat_path, [ --with-lpstat=DIR set lpstat command location], +if eval "test x$with_lpstat != x"; then + lpstat_path=$with_lpstat +fi) +AC_PATH_PROG(LPSTAT_COMMAND, "lpstat", $lpstat_path) + +lpr_path="" +AC_ARG_ENABLE(lpr_path, [ --with-lpr=DIR set lpr command location], +if eval "test x$with_lpr != x"; then + lpr_path=$with_lpr +fi) +AC_PATH_PROG(LPR_COMMAND, "lpr", $lpr_path) + +lpc_path="" +AC_ARG_ENABLE(lpc_path, [ --with-lpc=DIR set lpc command location], +if eval "test x$with_lpc != x"; then + lpc_path=$with_lpc +fi) +AC_PATH_PROG(LPC_COMMAND, "lpc", $lpc_path) + AC_SUBST(gimpdir) AC_SUBST(gimpdatadir) AC_SUBST(gimpplugindir) diff --git a/plug-ins/print/print-escp2.c b/plug-ins/print/print-escp2.c index 3b607df27e..d152d6c1be 100644 --- a/plug-ins/print/print-escp2.c +++ b/plug-ins/print/print-escp2.c @@ -27,31 +27,15 @@ * Revision History: * * $Log$ - * Revision 1.3 1998/03/19 02:11:40 adrian - * *AlienMap/AlienMap.c CEL/CEL.c CML_explorer/CML_explorer.c - * align_layers/align_layers.c animationplay/animationplay.c - * bmp/bmpwrite.c dbbrowser/dbbrowser.c emboss/emboss.c - * exchange/exchange.c faxg3/faxg3.c faxg3/g3.c gbr/gbr.c - * gif/gif.c gqbist/gqbist.c hot/hot.c ifscompose/ifscompose.c - * iwarp/iwarp.c max_rgb/max_rgb.c maze/maze_face.c - * megawidget/megawidget.c mpeg/mpeg.c nlfilt/nlfilt.c pcx/pcx.c - * plasma/plasma.c pnm/pnm.c print/print-escp2.c - * print/print-pcl.c print/print.c scatter_hsv/scatter_hsv.c - * script-fu/script-fu-scripts.c script-fu/script-fu.c - * sinus/sinus.c tga/tga.c tileit/tileit.c - * vpropagate/vpropagate.c xpm/xpm.c: More picky picky ansi type - * stuff from gimp-hpux-980316.patch. + * Revision 1.4 1998/04/01 22:14:44 neo + * Added checks for print spoolers to configure.in as suggested by Michael + * Sweet. The print plug-in still needs some changes to Makefile.am to make + * make use of this. * - * isnt big patches fun? + * Updated print and sgi plug-ins to version on the registry. * - * -adrian * - * Revision 1.2 1998/01/25 09:29:25 yosh - * Plugin updates - * Properly generated aa Makefile (still not built by default) - * Sven's no args script patch - * - * -Yosh + * --Sven * * Revision 1.8 1998/01/21 21:33:47 mike * Updated copyright. @@ -485,7 +469,7 @@ escp2_print(FILE *prn, /* I - Print file or command */ * 'escp2_write()' - Send ESC/P2 graphics using TIFF packbits compression. */ -static void +void escp2_write(FILE *prn, /* I - Print file or command */ unsigned char *line, /* I - Output bitmap data */ int length, /* I - Length of bitmap data */ diff --git a/plug-ins/print/print-pcl.c b/plug-ins/print/print-pcl.c index 7d42196bab..e818685b0a 100644 --- a/plug-ins/print/print-pcl.c +++ b/plug-ins/print/print-pcl.c @@ -28,31 +28,15 @@ * Revision History: * * $Log$ - * Revision 1.3 1998/03/19 02:11:41 adrian - * *AlienMap/AlienMap.c CEL/CEL.c CML_explorer/CML_explorer.c - * align_layers/align_layers.c animationplay/animationplay.c - * bmp/bmpwrite.c dbbrowser/dbbrowser.c emboss/emboss.c - * exchange/exchange.c faxg3/faxg3.c faxg3/g3.c gbr/gbr.c - * gif/gif.c gqbist/gqbist.c hot/hot.c ifscompose/ifscompose.c - * iwarp/iwarp.c max_rgb/max_rgb.c maze/maze_face.c - * megawidget/megawidget.c mpeg/mpeg.c nlfilt/nlfilt.c pcx/pcx.c - * plasma/plasma.c pnm/pnm.c print/print-escp2.c - * print/print-pcl.c print/print.c scatter_hsv/scatter_hsv.c - * script-fu/script-fu-scripts.c script-fu/script-fu.c - * sinus/sinus.c tga/tga.c tileit/tileit.c - * vpropagate/vpropagate.c xpm/xpm.c: More picky picky ansi type - * stuff from gimp-hpux-980316.patch. + * Revision 1.4 1998/04/01 22:14:45 neo + * Added checks for print spoolers to configure.in as suggested by Michael + * Sweet. The print plug-in still needs some changes to Makefile.am to make + * make use of this. * - * isnt big patches fun? + * Updated print and sgi plug-ins to version on the registry. * - * -adrian * - * Revision 1.2 1998/01/25 09:29:26 yosh - * Plugin updates - * Properly generated aa Makefile (still not built by default) - * Sven's no args script patch - * - * -Yosh + * --Sven * * Revision 1.8 1998/01/21 21:33:47 mike * Updated copyright. @@ -527,7 +511,7 @@ pcl_print(FILE *prn, /* I - Print file or command */ * 'pcl_mode0()' - Send PCL graphics using mode 0 (no) compression. */ -static void +void pcl_mode0(FILE *prn, /* I - Print file or command */ unsigned char *line, /* I - Output bitmap data */ int length, /* I - Length of bitmap data */ @@ -542,7 +526,7 @@ pcl_mode0(FILE *prn, /* I - Print file or command */ * 'pcl_mode2()' - Send PCL graphics using mode 2 (TIFF) compression. */ -static void +void pcl_mode2(FILE *prn, /* I - Print file or command */ unsigned char *line, /* I - Output bitmap data */ int length, /* I - Length of bitmap data */ diff --git a/plug-ins/print/print-ps.c b/plug-ins/print/print-ps.c index 82a54ef727..6bed40ed97 100644 --- a/plug-ins/print/print-ps.c +++ b/plug-ins/print/print-ps.c @@ -28,20 +28,15 @@ * Revision History: * * $Log$ - * Revision 1.3 1998/03/26 02:08:25 yosh - * * applied gimp-quinet-980122-0 and tweaked the tests a bit, this makes the - * optional library tests in configure. + * Revision 1.4 1998/04/01 22:14:46 neo + * Added checks for print spoolers to configure.in as suggested by Michael + * Sweet. The print plug-in still needs some changes to Makefile.am to make + * make use of this. * - * * applied gimp-jbuhler-980321-0, fixes more warnings in plug-ins + * Updated print and sgi plug-ins to version on the registry. * - * -Yosh * - * Revision 1.2 1998/01/25 09:29:27 yosh - * Plugin updates - * Properly generated aa Makefile (still not built by default) - * Sven's no args script patch - * - * -Yosh + * --Sven * * Revision 1.10 1998/01/22 15:38:46 mike * Updated copyright notice. @@ -119,7 +114,8 @@ ps_print(FILE *prn, /* I - File to print to */ int x, y; /* Looping vars */ GPixelRgn rgn; /* Image region */ guchar *in, /* Input pixels from image */ - *out; /* Output pixels for printer */ + *out, /* Output pixels for printer */ + *outptr; /* Current output pixel */ int page_width, /* Width of page */ page_height, /* Height of page */ out_width, /* Width of image on page */ diff --git a/plug-ins/print/print-util.c b/plug-ins/print/print-util.c index dba03d1e14..f5e8473623 100644 --- a/plug-ins/print/print-util.c +++ b/plug-ins/print/print-util.c @@ -23,32 +23,37 @@ * * dither_black() - Dither grayscale pixels to black. * dither_cmyk() - Dither RGB pixels to cyan, magenta, yellow, and black. - * gray_to_gray() - Convert grayscale image data to grayscale (brightness - * adjusted). + * gray_to_gray() - Convert grayscale image data to grayscale. * indexed_to_gray() - Convert indexed image data to grayscale. * indexed_to_rgb() - Convert indexed image data to RGB. * media_width() - Get the addressable width of the page. * media_height() - Get the addressable height of the page. * rgb_to_gray() - Convert RGB image data to grayscale. - * rgb_to_rgb() - Convert RGB image data to RGB (brightness adjusted). + * rgb_to_rgb() - Convert RGB image data to RGB. * * Revision History: * * $Log$ - * Revision 1.3 1998/03/26 02:08:26 yosh - * * applied gimp-quinet-980122-0 and tweaked the tests a bit, this makes the - * optional library tests in configure. + * Revision 1.4 1998/04/01 22:14:47 neo + * Added checks for print spoolers to configure.in as suggested by Michael + * Sweet. The print plug-in still needs some changes to Makefile.am to make + * make use of this. * - * * applied gimp-jbuhler-980321-0, fixes more warnings in plug-ins + * Updated print and sgi plug-ins to version on the registry. * - * -Yosh * - * Revision 1.2 1998/01/25 09:29:27 yosh - * Plugin updates - * Properly generated aa Makefile (still not built by default) - * Sven's no args script patch + * --Sven * - * -Yosh + * Revision 1.11 1998/03/01 18:03:27 mike + * Whoops - need to add 255 - alpha to the output values (transparent to white + * and not transparent to black...) + * + * Revision 1.10 1998/03/01 17:20:48 mike + * Updated alpha code to do alpha computation before gamma/brightness lut. + * + * Revision 1.9 1998/03/01 17:13:46 mike + * Updated CMY/CMYK conversion code for dynamic BG and hue adjustment. + * Added alpha channel support to color conversion functions. * * Revision 1.8 1998/01/21 21:33:47 mike * Replaced Burkes dither with stochastic (random) dither. @@ -107,7 +112,7 @@ * (currently 720) to avoid problems... */ -int error[2][4][11*720+4] = { { { 0 } } }; +int error[2][4][11*720+4] = { 0 }; /* @@ -208,7 +213,9 @@ dither_cmyk(guchar *rgb, /* I - RGB pixels */ xstep, /* X step */ xmod, /* X error modulus */ length; /* Length of output bitmap in bytes */ - int c, m, y, k, ik; /* CMYK values */ + int c, m, y, k, /* CMYK values */ + divk, /* Inverse of K */ + diff; /* Average color difference */ unsigned char bit, /* Current bit */ *cptr, /* Current cyan pixel */ *mptr, /* Current magenta pixel */ @@ -266,21 +273,38 @@ dither_cmyk(guchar *rgb, /* I - RGB pixels */ x ++, cerror0 ++, cerror1 ++, merror0 ++, merror1 ++, yerror0 ++, yerror1 ++, kerror0 ++, kerror1 ++) { + /* + * First compute the standard CMYK separation color values... + */ + c = 255 - rgb[0]; m = 255 - rgb[1]; y = 255 - rgb[2]; + k = MIN(c, MIN(m, y)); if (black != NULL) { - k = MIN(c, MIN(m, y)); - if (k >= 255) - c = m = y = 0; - else if (k > 0) + /* + * Since we're printing black, adjust the black level based upon + * the amount of color in the pixel (colorful pixels get less black)... + */ + + diff = 255 - (abs(c - m) + abs(c - y) + abs(m - y)) / 3; + k = diff * k / 255; + divk = 255 - k; + + if (divk == 0) + c = m = y = 0; /* Grayscale */ + else { - ik = 255 - k; - c = 255 * (c - k) / ik; - m = 255 * (m - k) / ik; - y = 255 * (y - k) / ik; + /* + * Full color; update the CMY values for the black value and reduce + * CMY as necessary to give better blues, greens, and reds... :) + */ + + c = (255 - (rgb[1] + rgb[2]) / 8) * (c - k) / divk; + m = (255 - (rgb[0] + rgb[2]) / 8) * (m - k) / divk; + y = (255 - (rgb[0] + rgb[1]) / 8) * (y - k) / divk; }; k += ditherk / 4; @@ -303,6 +327,17 @@ dither_cmyk(guchar *rgb, /* I - RGB pixels */ if (bit == 1) kptr ++; + } + else + { + /* + * We're not printing black, but let's adjust the CMY levels to produce + * better reds, greens, and blues... + */ + + c = (255 - (rgb[1] + rgb[2]) / 8) * (c - k) / 255 + k; + m = (255 - (rgb[0] + rgb[2]) / 8) * (m - k) / 255 + k; + y = (255 - (rgb[0] + rgb[1]) / 8) * (y - k) / 255 + k; }; c += ditherc / 4; @@ -394,13 +429,35 @@ gray_to_gray(guchar *grayin, /* I - RGB pixels */ guchar *lut, /* I - Brightness lookup table */ guchar *cmap) /* I - Colormap (unused) */ { - while (width > 0) + if (bpp == 1) { - *grayout = lut[*grayin]; + /* + * No alpha in image... + */ - grayout ++; - grayin += bpp; - width --; + while (width > 0) + { + *grayout = lut[*grayin]; + + grayin ++; + grayout ++; + width --; + }; + } + else + { + /* + * Handle alpha in image... + */ + + while (width > 0) + { + *grayout = lut[grayin[0] * grayin[1] / 255] + 255 - grayin[1]; + + grayin += bpp; + grayout ++; + width --; + }; }; } @@ -422,14 +479,35 @@ indexed_to_gray(guchar *indexed, /* I - Indexed pixels */ for (i = 0; i < 256; i ++, cmap += 3) - gray_cmap[i] = lut[(cmap[0] * LUM_RED + cmap[1] * LUM_GREEN + cmap[2] * LUM_BLUE) / 100]; + gray_cmap[i] = (cmap[0] * LUM_RED + cmap[1] * LUM_GREEN + cmap[2] * LUM_BLUE) / 100; - while (width > 0) + if (bpp == 1) { - *gray = gray_cmap[*indexed]; - gray ++; - indexed += bpp; - width --; + /* + * No alpha in image... + */ + + while (width > 0) + { + *gray = lut[gray_cmap[*indexed]]; + indexed ++; + gray ++; + width --; + }; + } + else + { + /* + * Handle alpha in image... + */ + + while (width > 0) + { + *gray = lut[gray_cmap[indexed[0] * indexed[1] / 255] + 255 - indexed[1]]; + indexed += bpp; + gray ++; + width --; + }; }; } @@ -446,14 +524,37 @@ indexed_to_rgb(guchar *indexed, /* I - Indexed pixels */ guchar *lut, /* I - Brightness lookup table */ guchar *cmap) /* I - Colormap */ { - while (width > 0) + if (bpp == 1) { - rgb[0] = lut[cmap[*indexed * 3 + 0]]; - rgb[1] = lut[cmap[*indexed * 3 + 1]]; - rgb[2] = lut[cmap[*indexed * 3 + 2]]; - rgb += 3; - indexed += bpp; - width --; + /* + * No alpha in image... + */ + + while (width > 0) + { + rgb[0] = lut[cmap[*indexed * 3 + 0]]; + rgb[1] = lut[cmap[*indexed * 3 + 1]]; + rgb[2] = lut[cmap[*indexed * 3 + 2]]; + rgb += 3; + indexed ++; + width --; + }; + } + else + { + /* + * RGBA image... + */ + + while (width > 0) + { + rgb[0] = lut[cmap[indexed[0] * 3 + 0] * indexed[1] / 255 + 255 - indexed[1]]; + rgb[1] = lut[cmap[indexed[0] * 3 + 1] * indexed[1] / 255 + 255 - indexed[1]]; + rgb[2] = lut[cmap[indexed[0] * 3 + 2] * indexed[1] / 255 + 255 - indexed[1]]; + rgb += 3; + indexed += bpp; + width --; + }; }; } @@ -534,37 +635,81 @@ rgb_to_gray(guchar *rgb, /* I - RGB pixels */ guchar *lut, /* I - Brightness lookup table */ guchar *cmap) /* I - Colormap (unused) */ { - while (width > 0) + if (bpp == 3) { - *gray = lut[(rgb[0] * LUM_RED + rgb[1] * LUM_GREEN + rgb[2] * LUM_BLUE) / 100]; - gray ++; - rgb += bpp; - width --; + /* + * No alpha in image... + */ + + while (width > 0) + { + *gray = lut[(rgb[0] * LUM_RED + rgb[1] * LUM_GREEN + rgb[2] * LUM_BLUE) / 100]; + gray ++; + rgb += 3; + width --; + }; + } + else + { + /* + * Image has alpha channel... + */ + + while (width > 0) + { + *gray = lut[(rgb[0] * LUM_RED + rgb[1] * LUM_GREEN + rgb[2] * LUM_BLUE) * + rgb[3] / 25500 + 255 - rgb[3]]; + gray ++; + rgb += bpp; + width --; + }; }; } /* - * 'rgb_to_rgb()' - Convert RGB image data to RGB (brightness adjusted). + * 'rgb_to_rgb()' - Convert rgb image data to RGB. */ void -rgb_to_rgb(guchar *rgbin, /* I - RGB pixels */ - guchar *rgbout, /* O - RGB pixels */ - int width, /* I - Width of row */ - int bpp, /* I - Bytes-per-pixel in RGB */ - guchar *lut, /* I - Brightness lookup table */ - guchar *cmap) /* I - Colormap (unused) */ +rgb_to_rgb(guchar *rgbin, /* I - RGB pixels */ + guchar *rgbout, /* O - RGB pixels */ + int width, /* I - Width of row */ + int bpp, /* I - Bytes-per-pixel in indexed */ + guchar *lut, /* I - Brightness lookup table */ + guchar *cmap) /* I - Colormap */ { - while (width > 0) + if (bpp == 3) { - rgbout[0] = lut[rgbin[0]]; - rgbout[1] = lut[rgbin[1]]; - rgbout[2] = lut[rgbin[2]]; + /* + * No alpha in image... + */ - rgbout += 3; - rgbin += bpp; - width --; + while (width > 0) + { + rgbout[0] = lut[rgbin[0]]; + rgbout[1] = lut[rgbin[1]]; + rgbout[2] = lut[rgbin[2]]; + rgbin += 3; + rgbout += 3; + width --; + }; + } + else + { + /* + * RGBA image... + */ + + while (width > 0) + { + rgbout[0] = lut[rgbin[0] * rgbin[3] / 255 + 255 - rgbin[3]]; + rgbout[1] = lut[rgbin[1] * rgbin[3] / 255 + 255 - rgbin[3]]; + rgbout[2] = lut[rgbin[2] * rgbin[3] / 255 + 255 - rgbin[3]]; + rgbin += bpp; + rgbout += 3; + width --; + }; }; } diff --git a/plug-ins/print/print.c b/plug-ins/print/print.c index d12c0b4d3f..1fd0928a14 100644 --- a/plug-ins/print/print.c +++ b/plug-ins/print/print.c @@ -39,39 +39,18 @@ * Revision History: * * $Log$ - * Revision 1.4 1998/03/26 02:08:27 yosh - * * applied gimp-quinet-980122-0 and tweaked the tests a bit, this makes the - * optional library tests in configure. + * Revision 1.5 1998/04/01 22:14:48 neo + * Added checks for print spoolers to configure.in as suggested by Michael + * Sweet. The print plug-in still needs some changes to Makefile.am to make + * make use of this. * - * * applied gimp-jbuhler-980321-0, fixes more warnings in plug-ins + * Updated print and sgi plug-ins to version on the registry. * - * -Yosh * - * Revision 1.3 1998/03/19 02:11:42 adrian - * *AlienMap/AlienMap.c CEL/CEL.c CML_explorer/CML_explorer.c - * align_layers/align_layers.c animationplay/animationplay.c - * bmp/bmpwrite.c dbbrowser/dbbrowser.c emboss/emboss.c - * exchange/exchange.c faxg3/faxg3.c faxg3/g3.c gbr/gbr.c - * gif/gif.c gqbist/gqbist.c hot/hot.c ifscompose/ifscompose.c - * iwarp/iwarp.c max_rgb/max_rgb.c maze/maze_face.c - * megawidget/megawidget.c mpeg/mpeg.c nlfilt/nlfilt.c pcx/pcx.c - * plasma/plasma.c pnm/pnm.c print/print-escp2.c - * print/print-pcl.c print/print.c scatter_hsv/scatter_hsv.c - * script-fu/script-fu-scripts.c script-fu/script-fu.c - * sinus/sinus.c tga/tga.c tileit/tileit.c - * vpropagate/vpropagate.c xpm/xpm.c: More picky picky ansi type - * stuff from gimp-hpux-980316.patch. + * --Sven * - * isnt big patches fun? - * - * -adrian - * - * Revision 1.2 1998/01/25 09:29:27 yosh - * Plugin updates - * Properly generated aa Makefile (still not built by default) - * Sven's no args script patch - * - * -Yosh + * Revision 1.14 1998/03/01 17:29:42 mike + * Added LPC/LPR/LP/LPSTAT_COMMAND definitions for portability. * * Revision 1.13 1998/01/22 15:06:31 mike * Added "file" printer for printing to file. @@ -313,10 +292,10 @@ query(void) "This plug-in prints images from The GIMP.", "Prints images to PostScript, PCL, or ESC/P2 printers.", "Michael Sweet ", - "Copyright 1997 by Michael Sweet", + "Copyright 1997-1998 by Michael Sweet", PLUG_IN_VERSION, "/File/Print...", - "RGB*,GRAY*INDEXED*", + "RGB*,GRAY*,INDEXED*", PROC_PLUG_IN, nargs, 0, @@ -548,7 +527,7 @@ run(char *name, /* I - Name of print program. */ * 'print_dialog()' - Pop up the print dialog... */ -static int +int print_dialog(void) { int i; /* Looping var */ @@ -1375,7 +1354,8 @@ get_printers(void) { int i; FILE *pfile; - char line[129], + char command[255], + line[129], name[17], defname[17]; @@ -1385,12 +1365,12 @@ get_printers(void) memset(plist, 0, sizeof(plist)); plist_count = 1; strcpy(plist[0].name, "File"); - strcpy(plist[0].command, "file.ps"); + sprintf(plist[0].command, "file.ps", line); strcpy(plist[0].driver, "ps2"); plist[0].output_type = OUTPUT_COLOR; -#ifndef sun /* Sun Solaris merges LPR and LP queues */ - if ((pfile = popen("lpc status", "r")) != NULL) +#ifdef LPC_COMMAND + if ((pfile = popen(LPC_COMMAND " status", "r")) != NULL) { while (fgets(line, sizeof(line), pfile) != NULL && plist_count < MAX_PLIST) @@ -1398,7 +1378,7 @@ get_printers(void) { *strchr(line, ':') = '\0'; strcpy(plist[plist_count].name, line); - sprintf(plist[plist_count].command, "lpr -P%s -l", line); + sprintf(plist[plist_count].command, LPR_COMMAND " -P%s -l", line); strcpy(plist[plist_count].driver, "ps2"); plist[plist_count].output_type = OUTPUT_COLOR; plist_count ++; @@ -1406,9 +1386,10 @@ get_printers(void) pclose(pfile); }; -#endif /* !sun */ +#endif /* LPC_COMMAND */ - if ((pfile = popen("lpstat -d -p", "r")) != NULL) +#ifdef LPSTAT_COMMAND + if ((pfile = popen(LPSTAT_COMMAND " -d -p", "r")) != NULL) { while (fgets(line, sizeof(line), pfile) != NULL && plist_count < MAX_PLIST) @@ -1416,11 +1397,7 @@ get_printers(void) if (sscanf(line, "printer %s", name) == 1) { strcpy(plist[plist_count].name, name); -#ifdef __sgi /* SGI still uses the SVR3 spooler */ - sprintf(plist[plist_count].command, "lp -s -d%s", name); -#else - sprintf(plist[plist_count].command, "lp -s -d %s", name); -#endif /* __sgi */ + sprintf(plist[plist_count].command, LP_COMMAND " -s -d%s", name); strcpy(plist[plist_count].driver, "ps2"); plist[plist_count].output_type = OUTPUT_COLOR; plist_count ++; @@ -1431,6 +1408,7 @@ get_printers(void) pclose(pfile); }; +#endif /* LPSTAT_COMMAND */ if (plist_count > 2) qsort(plist + 1, plist_count - 1, sizeof(plist_t), diff --git a/plug-ins/print/print.h b/plug-ins/print/print.h index eb956b1b18..ace5e64b5b 100644 --- a/plug-ins/print/print.h +++ b/plug-ins/print/print.h @@ -22,12 +22,18 @@ * Revision History: * * $Log$ - * Revision 1.2 1998/01/25 09:29:28 yosh - * Plugin updates - * Properly generated aa Makefile (still not built by default) - * Sven's no args script patch + * Revision 1.3 1998/04/01 22:14:49 neo + * Added checks for print spoolers to configure.in as suggested by Michael + * Sweet. The print plug-in still needs some changes to Makefile.am to make + * make use of this. * - * -Yosh + * Updated print and sgi plug-ins to version on the registry. + * + * + * --Sven + * + * Revision 1.10 1998/03/01 17:20:48 mike + * Updated version number & date. * * Revision 1.9 1998/01/21 21:33:47 mike * Added Level 2 PostScript driver. @@ -85,7 +91,7 @@ * Constants... */ -#define PLUG_IN_VERSION "1.3 - 22 January 1998" +#define PLUG_IN_VERSION "1.4 - 1 March 1998" #define PLUG_IN_NAME "Print" #define MEDIA_LETTER 0 /* 8.5x11" a.k.a. "A" size */ diff --git a/plug-ins/sgi/sgi.c b/plug-ins/sgi/sgi.c index 8f7fda31ab..fe84fabb3b 100644 --- a/plug-ins/sgi/sgi.c +++ b/plug-ins/sgi/sgi.c @@ -34,35 +34,15 @@ * Revision History: * * $Log$ - * Revision 1.3 1998/03/26 02:08:28 yosh - * * applied gimp-quinet-980122-0 and tweaked the tests a bit, this makes the - * optional library tests in configure. + * Revision 1.4 1998/04/01 22:14:50 neo + * Added checks for print spoolers to configure.in as suggested by Michael + * Sweet. The print plug-in still needs some changes to Makefile.am to make + * make use of this. * - * * applied gimp-jbuhler-980321-0, fixes more warnings in plug-ins + * Updated print and sgi plug-ins to version on the registry. * - * -Yosh * - * Revision 1.2 1998/03/16 06:33:56 yosh - * configure saves CFLAGS properly - * all plugins should parse gtkrc now - * - * -Yosh - * - * Revision 1.1.1.1 1997/11/24 22:04:37 sopwith - * Let's try this import one last time. - * - * Revision 1.3 1997/11/18 03:04:28 nobody - * fixed ugly comment-bugs introduced by evil darkwing - * keep out configuration empty dirs - * --darkwing - * - * Revision 1.2 1997/11/17 05:44:02 nobody - * updated ChangeLog - * dropped non-working doc/Makefile entries - * applied many fixes from the registry as well as the devel ML - * applied missing patches by Art Haas - * - * --darkwing + * --Sven * * Revision 1.3 1997/11/14 17:17:59 mike * Updated to dynamically allocate return params in the run() function. @@ -78,7 +58,6 @@ #include #include -#include #include #include "sgi.h" /* SGI image library definitions */ @@ -482,7 +461,7 @@ load_image(char *filename) /* I - File to load */ /* - * 'save_image()' - Save the specified image to an SGI file. + * 'save_image()' - Save the specified image to a PNG file. */ static gint @@ -493,6 +472,8 @@ save_image(char *filename, /* I - File to save to */ int i, j, /* Looping var */ x, /* Current X coordinate */ y, /* Current Y coordinate */ + image_type, /* Type of image */ + layer_type, /* Type of drawable/layer */ tile_height, /* Height of tile in GIMP */ count, /* Count of rows to put in image */ zsize; /* Number of channels in file */ @@ -529,12 +510,6 @@ save_image(char *filename, /* I - File to save to */ case RGBA_IMAGE : zsize = 4; break; - - case INDEXED_IMAGE : - case INDEXEDA_IMAGE: - /* we should never be asked to save images of this type */ - g_print("internal error: cannot save indexed image\n"); - gimp_quit(); }; /* @@ -693,7 +668,6 @@ save_dialog(void) argv[0] = g_strdup("sgi"); gtk_init(&argc, &argv); - gtk_rc_parse(gimp_gtkrc()); signal(SIGBUS, SIG_DFL); signal(SIGSEGV, SIG_DFL); diff --git a/plug-ins/sgi/sgi.h b/plug-ins/sgi/sgi.h index f8d1e910c6..ad81eab27e 100644 --- a/plug-ins/sgi/sgi.h +++ b/plug-ins/sgi/sgi.h @@ -22,50 +22,15 @@ * Revision History: * * $Log$ - * Revision 1.3 1998/03/26 02:08:30 yosh - * * applied gimp-quinet-980122-0 and tweaked the tests a bit, this makes the - * optional library tests in configure. + * Revision 1.4 1998/04/01 22:14:51 neo + * Added checks for print spoolers to configure.in as suggested by Michael + * Sweet. The print plug-in still needs some changes to Makefile.am to make + * make use of this. * - * * applied gimp-jbuhler-980321-0, fixes more warnings in plug-ins + * Updated print and sgi plug-ins to version on the registry. * - * -Yosh * - * Revision 1.2 1998/03/25 02:17:34 yosh - * * configure.in: corrected test for libXmu for some systems; added test for - * difftime - * - * * app/main.c: use glib ATEXIT macro - * - * * app/text_tool.c: applied gimp-stric-980321-0 (text preview refresh) - * - * * plug-ins/script-fu/script-fu-console.c: don't need to init gtkpreview stuff, - * since we don't use them - * - * * plug-ins/script-fu/: many portability fixes - * - * * plug-ins/pnm/pnm.c: sprintf portability patch - * - * * plug-ins now #define RAND_MAX if needed - * - * * plug-ins/sparkle/sparkle.c: applied gimp-joke-980322-1 - * - * -Yosh - * - * Revision 1.1.1.1 1997/11/24 22:04:37 sopwith - * Let's try this import one last time. - * - * Revision 1.3 1997/11/18 03:04:29 nobody - * fixed ugly comment-bugs introduced by evil darkwing - * keep out configuration empty dirs - * --darkwing - * - * Revision 1.2 1997/11/17 05:44:04 nobody - * updated ChangeLog - * dropped non-working doc/Makefile entries - * applied many fixes from the registry as well as the devel ML - * applied missing patches by Art Haas - * - * --darkwing + * --Sven * * Revision 1.2 1997/06/18 00:55:28 mike * Updated to hold length table when writing. @@ -80,8 +45,6 @@ # include # include -# include -# include # ifdef __cplusplus extern "C" { diff --git a/plug-ins/sgi/sgilib.c b/plug-ins/sgi/sgilib.c index bfdc7c2075..a8ebc171c4 100644 --- a/plug-ins/sgi/sgilib.c +++ b/plug-ins/sgi/sgilib.c @@ -37,29 +37,15 @@ * Revision History: * * $Log$ - * Revision 1.2 1998/03/26 02:08:31 yosh - * * applied gimp-quinet-980122-0 and tweaked the tests a bit, this makes the - * optional library tests in configure. + * Revision 1.3 1998/04/01 22:14:53 neo + * Added checks for print spoolers to configure.in as suggested by Michael + * Sweet. The print plug-in still needs some changes to Makefile.am to make + * make use of this. * - * * applied gimp-jbuhler-980321-0, fixes more warnings in plug-ins + * Updated print and sgi plug-ins to version on the registry. * - * -Yosh * - * Revision 1.1.1.1 1997/11/24 22:04:37 sopwith - * Let's try this import one last time. - * - * Revision 1.3 1997/11/18 03:04:29 nobody - * fixed ugly comment-bugs introduced by evil darkwing - * keep out configuration empty dirs - * --darkwing - * - * Revision 1.2 1997/11/17 05:44:04 nobody - * updated ChangeLog - * dropped non-working doc/Makefile entries - * applied many fixes from the registry as well as the devel ML - * applied missing patches by Art Haas - * - * --darkwing + * --Sven * * Revision 1.3 1997/07/02 16:40:16 mike * sgiOpen() wasn't opening files with "rb" or "wb+". This caused problems @@ -75,10 +61,6 @@ * Initial revision */ -#include -#include -#include - #include "sgi.h"