HEX
Server: Apache/2.4.41 (FreeBSD) OpenSSL/1.0.2s mod_fcgid/2.3.9
System: FreeBSD salazo 12.0-RELEASE-p1303-ZFS hostBSD 12.0-RELEASE-p1303-ZFS DMR amd64
User: admin (1000)
PHP: 7.4.3
Disabled: NONE
Upload Files
File: /usr/ports/print/ghostscript7-base/files/patch-src_gdevgdi.c
--- src/gdevgdi.c.orig	Wed Jun 19 19:32:49 2002
+++ src/gdevgdi.c	Mon Jul 21 13:44:41 2003
@@ -60,8 +60,8 @@
 #define GDI_REPEAT_LENGTH 2
 #define GDI_BAND_HEIGHT   128
 #define GDI_MAX_BAND      66
-//#define GDI_BAND_WIDTH    4928
-//#define GDI_BAND_WIDTH_BYTES (((GDI_BAND_WIDTH + 31)/32)*4)
+/*#define GDI_BAND_WIDTH    4928*/
+/*#define GDI_BAND_WIDTH_BYTES (((GDI_BAND_WIDTH + 31)/32)*4)*/
 
 #define GDI_PRE_COMP      2
 #define GDI_REAL_COMP     0
@@ -74,8 +74,8 @@
 
 #define GDI_MARGINS_A4	        0.167, 0.167, 0.167, 0.167
 #define GDI_MARGINS_LETTER	0.167, 0.167, 0.167, 0.167
-//#define GDI_MARGINS_A4	0.0, 0.0, 0.0, 0.0
-//#define GDI_MARGINS_LETTER	0.0, 0.0, 0.0, 0.0
+/*#define GDI_MARGINS_A4	0.0, 0.0, 0.0, 0.0*/
+/*#define GDI_MARGINS_LETTER	0.0, 0.0, 0.0, 0.0*/
 
 /* The number of blank lines that make it worthwhile to reposition */
 /* the cursor. */
@@ -86,9 +86,15 @@
 
 int GDI_BAND_WIDTH[] = {4768, 4928};
 
+#if GS_VERSION_MAJOR >= 8
+private int gdi_print_page(gx_device_printer *pdev, FILE *prn_stream);
+private int gdi_open(gx_device *pdev);
+private int gdi_close(gx_device *pdev);
+#else
 private int gdi_print_page(P2(gx_device_printer *pdev, FILE *prn_stream));
 private int gdi_open(P1(gx_device *pdev));
 private int gdi_close(P1(gx_device *pdev));
+#endif
 
 /* The device descriptors */
 private dev_proc_open_device(gdi_open);
@@ -107,6 +113,14 @@
 	1,                      /* color bit */ 
         gdi_print_page);
 
+gx_device_printer far_data gs_samsunggdi_device =
+  prn_device(prn_gdi_procs, "samsunggdi",
+	DEFAULT_WIDTH_10THS, DEFAULT_HEIGHT_10THS, /* paper size (unit : 10/72 inch size) */
+	X_DPI2, Y_DPI2,
+	0.20, 0.25, 0.25, 0.25,		/* margins filled in by gdi_open */
+	1,                      /* color bit */ 
+        gdi_print_page);
+
 private FILE *WritePJLHeaderData(gx_device_printer *pdev, FILE *fp);
 private FILE *WriteBandHeader(FILE *fp, unsigned int usBandNo, 
                      unsigned char ubCompMode, unsigned int usBandWidth, 
@@ -220,7 +234,7 @@
             memset(obp, 0x00, ul_band_size*13/10);
             for (j=0; j<band_height; j++) {
                 memset(tmp, 0x00, raster);
-                //code = gdev_prn_copy_scan_lines(pdev, i*band_height+j, 
+                /*code = gdev_prn_copy_scan_lines(pdev, i*band_height+j, */
 		if (y == num_rows) break;
                 code = gdev_prn_copy_scan_lines(pdev, y++, 
                                  (byte*)tmp, raster);
@@ -232,15 +246,71 @@
 
             /* Write Band Data 
 	       Because of Scanline compression, extract Scanline compression mode */
-            //ul_tiff_size = FrameTiffComp(obp, ibp, band_height, band_width_bytes, GDI_PRE_COMP);
-            //ul_scan_size = (unsigned long)bmp2run(obp, ibp, band_height, band_width_bytes, GDI_PRE_COMP);
-	    //ul_min_size =  (ul_scan_size > ul_tiff_size) ? ul_tiff_size : ul_scan_size;
+            /*ul_tiff_size = FrameTiffComp(obp, ibp, band_height, band_width_bytes, GDI_PRE_COMP);*/
+            /*ul_scan_size = (unsigned long)bmp2run(obp, ibp, band_height, band_width_bytes, GDI_PRE_COMP);*/
+	    /*ul_min_size =  (ul_scan_size > ul_tiff_size) ? ul_tiff_size : ul_scan_size;*/
 	    ul_min_size = ul_tiff_size;
 	    compression_type = GDI_COMP_MODITIFF;
-	    //compression_type =  (ul_scan_size > ul_tiff_size) ? GDI_COMP_MODITIFF : GDI_COMP_SCANLINE;
+	    /*compression_type =  (ul_scan_size > ul_tiff_size) ? GDI_COMP_MODITIFF : GDI_COMP_SCANLINE;*/
             switch (compression_type) {
 	    case GDI_COMP_MODITIFF:
+#define FUDGE_BIG_BANDS
+#ifndef FUDGE_BIG_BANDS
                 ul_comp_size = FrameTiffComp(obp, ibp, band_height, band_width_bytes, GDI_REAL_COMP);
+#else
+	      {
+		/* Very ugly.  The printer will hose if the compressed
+                   band size is over 65536, so we "fudge" the data in
+                   this case repeatedly until we get what we want. 
+
+		   The fudge algorithm is simple, this is kinda-sorta
+		   RLE, so we just round groups of bits in groups of
+		   2, then 3, then 4, etc until the thing works.  */
+#define MAXBAND 0xffff
+#define ASSERT(x)
+		int fudge=0;
+		byte *use_band=ibp;
+		do {
+		  ul_comp_size = FrameTiffComp(obp, use_band, 
+					       band_height, band_width_bytes, 
+					       GDI_REAL_COMP);
+		  if (ul_comp_size > MAXBAND-8) {
+		    int f, g, h;
+		    if (!fudge) {
+		      ASSERT(use_band == ibp);
+		      use_band = (byte*)gs_malloc(ul_band_size, 1, "gdi_print_page/fudge");
+		      fudge=1;
+		    }
+		    memcpy(use_band, ibp, ul_band_size);
+		    fudge++;
+		    ASSERT(fudge>=2);
+		    {
+#define FUDGE2(x) ( (((((x)>>6)&0x3)?3:0)<<6)	\
+		    | (((((x)>>4)&0x3)?3:0)<<4)	\
+		    | (((((x)>>2)&0x3)?3:0)<<2)	\
+		    | (((((x)>>0)&0x3)?3:0)) )
+#define FUDGE4(x) ( (((((x)>>4)&0xf)?0xf:0)<<4)	\
+		    | (((((x)>>0)&0xf)?0xf:0)) )
+#define FUDGE8(x) ( (((((x)>>0)&0xff)?0xf:0)) )
+#define FUDGE(fudge, x) ( (fudge == 2 ? FUDGE2(x) 	\
+			   : fudge == 3 ? FUDGE4(x)	\
+			   : fudge == 4 ? FUDGE8(x)	\
+			   : 0 ) )
+
+		      for(f=0;f<ul_band_size; f++) {
+			use_band[f] = FUDGE(fudge, ibp[f]);
+		      }
+		    }
+		  }
+		} while (ul_comp_size > MAXBAND-8);
+	      oh_well:
+		if (fudge > 1) {
+		  ASSERT(use_band != ibp);
+		  gs_free(use_band, ul_band_size, 1, "gdi_print_page/fudge");
+		  /*fprintf(stderr, "smartgdi: band %d fudge factor is %d\n", i, fudge);*/
+		}
+	      }
+#endif
 		break;
 	    case GDI_COMP_SCANLINE:
                 ul_comp_size = bmp2run(obp, ibp, band_height, band_width_bytes, GDI_REAL_COMP);
@@ -253,7 +323,7 @@
 
             prn_stream = WriteBandHeader(prn_stream, i, compression_type, (band_width_bytes * 8),
                                          band_height, ul_comp_size); 
-            //fprintf(prn_stream, "[%d] band, size : %d\n", i, ul_tiff_size);
+            /*fprintf(prn_stream, "[%d] band, size : %d\n", i, ul_tiff_size);*/
             fwrite(obp, ul_comp_size, 1, prn_stream);
         }
     
@@ -271,50 +341,50 @@
   unsigned char buffer[300];
   int dots_per_inch = (int)pdev->y_pixels_per_inch;
 
-  strcpy(buffer, "\x1b%-12345X");
+  strcpy(buffer, "\033%-12345X");
   
-  // Paper Type
-  strcat(buffer, "@PJL SET PAPERTYPE = NORMAL ON\x0d\x0a");
-  //Density
-  strcat(buffer, "@PJL SET DENSITY = 1\x0d\x0a");
-  // Toner Save
-  strcat(buffer, "@PJL SET TONERSAVE = OFF\x0d\x0a");
-  // Enter Language SMART
-  strcat(buffer, "@PJL ENTER LANGUAGE = SMART\x0d\x0a");
-  // JobStart
-  strcat(buffer, "$PJL JOB START\x0d\x0a");
+  /* Paper Type*/
+  strcat(buffer, "@PJL SET PAPERTYPE = NORMAL ON\015\012");
+  /*Density*/
+  strcat(buffer, "@PJL SET DENSITY = 1\015\012");
+  /* Toner Save*/
+  strcat(buffer, "@PJL SET TONERSAVE = OFF\015\012");
+  /* Enter Language SMART*/
+  strcat(buffer, "@PJL ENTER LANGUAGE = SMART\015\012");
+  /* JobStart*/
+  strcat(buffer, "$PJL JOB START\015\012");
 
-  // Resolution
+  /* Resolution*/
   if (dots_per_inch == 600)
-      strcat(buffer, "$PJL RESOLUTION = 600\x0d\x0a");
+      strcat(buffer, "$PJL RESOLUTION = 600\015\012");
   else
-      strcat(buffer, "$PJL RESOLUTION = 300\x0d\x0a");
+      strcat(buffer, "$PJL RESOLUTION = 300\015\012");
 
-  // Copies
-  strcat(buffer, "$PJL COPIES = 1\x0d\x0a");
-  // Paper Size
+  /* Copies*/
+  strcat(buffer, "$PJL COPIES = 1\015\012");
+  /* Paper Size*/
   switch (gdev_pcl_paper_size((gx_device*)pdev)) 
   {
 	case PAPER_SIZE_A4:
-  			strcat(buffer, "$PJL PAGE A4 AUTO\x0d\x0a");
+  			strcat(buffer, "$PJL PAGE A4 AUTO\015\012");
 			break;
 	case PAPER_SIZE_LETTER:
-  			strcat(buffer, "$PJL PAGE LETTER AUTO\x0d\x0a");
+  			strcat(buffer, "$PJL PAGE LETTER AUTO\015\012");
 			break;
 	case PAPER_SIZE_LEGAL:
-  			strcat(buffer, "$PJL PAGE LEGAL AUTO\x0d\x0a");
+  			strcat(buffer, "$PJL PAGE LEGAL AUTO\015\012");
 			break;
 	default:
-  			strcat(buffer, "$PJL PAGE LETTER AUTO\x0d\x0a");
+  			strcat(buffer, "$PJL PAGE LETTER AUTO\015\012");
 			break;
   }
-  // bitmap start
-  strcat(buffer, "$PJL BITMAP START\x0d\x0a");
-  // write buffer to file.
+  /* bitmap start*/
+  strcat(buffer, "$PJL BITMAP START\015\012");
+  /* write buffer to file.*/
   ulSize = strlen(buffer);
   fwrite(buffer, 1, ulSize, fp );
   return(fp);
-} // WritePJLHeaderData()     
+} /* WritePJLHeaderData()     */
 
 
 FILE *WriteBandHeader
@@ -335,33 +405,33 @@
 
   ulBandSize += 8;
 
-  // bandsize
+  /* bandsize*/
   buf[i++] = (unsigned char)((ulBandSize >> 24) & 0xff);
   buf[i++] = (unsigned char)((ulBandSize >> 16) & 0xff);
   buf[i++] = (unsigned char)((ulBandSize >> 8) & 0xff);
   buf[i++] = (unsigned char)(ulBandSize & 0xff);
   
-  // id                            
+  /* id        */                    
   buf[i++] = (unsigned char)((usBandNo >> 8) & 0xff);
   buf[i++] = (unsigned char)(usBandNo & 0xff);
 
-  // compress mode         
+  /* compress mode         */
   buf[i++] = (unsigned char)(ubCompMode & 0xff);
 
-  // ubLeft                  
+  /* ubLeft                  */
   buf[i++] = (unsigned char)(ubLeft & 0xff);
 
-  // height
+  /* height*/
   buf[i++] = (unsigned char)((usBandHeight >> 8) & 0xff);
   buf[i++] = (unsigned char)(usBandHeight & 0xff);
 
-  // width                     
+  /* width   */                  
   buf[i++] = (unsigned char)((usBandWidth >> 8) & 0xff);
   buf[i++] = (unsigned char)(usBandWidth & 0xff);
 
   fwrite(buf, 1, i, fp);
   return(fp);
-} // end of WriteBandHeader()
+} /* end of WriteBandHeader()*/
 
 FILE *WriteTrailerData(FILE *fp)
 {
@@ -369,18 +439,18 @@
   unsigned long buffer[200];
 
   memset((char*)buffer, 0x00, 200);
-  strcpy((char*)buffer, "$PJL PRINT 4\x0d\x0a");
-  strcat((char*)buffer, "$PJL EOJ\x0d\x0a");
-  strcat((char*)buffer, "$PJL SYNC\x0d\x0a");
-  strcat((char*)buffer, "$PJL RELEASE 0 2047\x0d\x0a");
-  strcat((char*)buffer, "$PJL GARBAGE\x0d\x0a");
-  strcat((char*)buffer, "\x1b%-12345X\x0d\x0a");
+  strcpy((char*)buffer, "$PJL PRINT 4\015\012");
+  strcat((char*)buffer, "$PJL EOJ\015\012");
+  strcat((char*)buffer, "$PJL SYNC\015\012");
+  strcat((char*)buffer, "$PJL RELEASE 0 2047\015\012");
+  strcat((char*)buffer, "$PJL GARBAGE\015\012");
+  strcat((char*)buffer, "\033%-12345X\015\012");
 
   ulSize = strlen((char*)buffer);
   fwrite(buffer, 1, ulSize, fp);
 
   return(fp);
-} // WriteTrailerData()
+} /* WriteTrailerData()*/
 
 unsigned long FrameTiffComp(unsigned char *pubDest, 
                             unsigned char *pubSrc, 
@@ -399,7 +469,7 @@
 
   for (i = 0; i < usTotalLines; i++)
   {
-    if (!(ubMode & 0x02)) //
+    if (!(ubMode & 0x02))
     {
       usLineSize = FrameTiff_Comp(SrcPtr, TgtPtr, usBytesPerLine);
     }
@@ -416,7 +486,7 @@
     ulret += usLineSize;
   }
 
-  if (!(ubMode & 0x02)) //
+  if (!(ubMode & 0x02))
   {
     switch (ulret%4)
     {
@@ -448,7 +518,7 @@
     }
   }
   return(ulret);
-}  // FrameTiffComp()
+}  /* FrameTiffComp()*/
 
 unsigned int FrameTiff_Comp(unsigned char *lpSrcBuf, unsigned char *lpTgtBuf, unsigned int nSrcBytes)
 {
@@ -528,13 +598,13 @@
           usEndCnt = 16384;
         }
         usEndCnt = usCount - 2;
-        // usEndCnt = usCount - 2; original
-        // 19990824 by LSM : for end file while (usEndCnt--)
+        /* usEndCnt = usCount - 2; original*/
+        /* 19990824 by LSM : for end file while (usEndCnt--)*/
         while (usEndCnt--)
         {
           /* read next data */
           ubFirst = ubSecond;
-          ubSecond = *pubSrc++; // read 3rd Data
+          ubSecond = *pubSrc++; /* read 3rd Data*/
           if (ubFirst == ubSecond)
           {
             if (usEndCnt <= 1)
@@ -544,7 +614,7 @@
             }
             else
             {
-              ubSecond = *pubSrc++; // read 4th Data
+              ubSecond = *pubSrc++; /* read 4th Data*/
               usEndCnt--;
               if (ubFirst == ubSecond)
               {
@@ -660,14 +730,14 @@
         {
           usEndCnt = 16384;
         }
-        // usEndCnt = usCount - 2;
+        /* usEndCnt = usCount - 2;*/
         usEndCnt = usCount - 2;
-        // 19990824 by LSM : for Last file while (usEndCnt--)
+        /* 19990824 by LSM : for Last file while (usEndCnt--)*/
         while (usEndCnt--)
         {
           /* read next data */
           ubFirst = ubSecond;
-          ubSecond = *pubSrc++; // read 3rd Data
+          ubSecond = *pubSrc++; /* read 3rd Data*/
           if (ubFirst == ubSecond)
           {
             if (usEndCnt <= 1)
@@ -677,8 +747,8 @@
             }
             else
             {
-              ubSecond = *pubSrc++; // read 4th Data
-              usEndCnt--; // 19990824 by LSM
+              ubSecond = *pubSrc++; /* read 4th Data*/
+              usEndCnt--; /* 19990824 by LSM*/
               if (ubFirst == ubSecond)
               {
                 ubMisCnt = 3;
@@ -691,7 +761,7 @@
       /* save data */
       usControl = (unsigned int) (pubSrc - pubOrg);
       usControl -= ubMisCnt;
-      // 19990824 by LSM : for fixing GPF on Photoshop
+      /* 19990824 by LSM : for fixing GPF on Photoshop*/
       if (usControl > usCount)
       {
         usControl = usCount;
@@ -728,77 +798,77 @@
 }   sc_tbl;
 
 static sc_tbl  gdi_ScanTbl[256] = {
-{ 8, 0, 0 }, { 7, 1, 1 }, { 6, 1, 0 }, { 6, 2, 1 },   // 0x00
+{ 8, 0, 0 }, { 7, 1, 1 }, { 6, 1, 0 }, { 6, 2, 1 },   /* 0x00*/
 { 5, 1, 0 }, { 0, 0, 1 }, { 5, 2, 0 }, { 5, 3, 1 }, 
 { 4, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 4, 2, 0 }, { 0, 0, 1 }, { 4, 3, 0 }, { 4, 4, 1 }, 
-{ 3, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x10
+{ 3, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x10*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 3, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 3, 3, 0 }, { 0, 0, 1 }, { 3, 4, 0 }, { 3, 5, 1 }, 
-{ 2, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x20
+{ 2, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x20*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 2, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x30
+{ 2, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x30*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 2, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 2, 4, 0 }, { 0, 0, 1 }, { 2, 5, 0 }, { 2, 6, 1 }, 
-{ 1, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x40
+{ 1, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x40*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x50
+{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x50*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 1, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x60
+{ 1, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x60*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 1, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x70
+{ 1, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x70*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 1, 4, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 1, 5, 0 }, { 0, 0, 1 }, { 1, 6, 0 }, { 1, 7, 1 }, 
-{ 0, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x80
+{ 0, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x80*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x90
+{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x90*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0xa0
+{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0xa0*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0xb0
+{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0xb0*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 0, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0xc0
+{ 0, 2, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0xc0*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0xd0
+{ 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0xd0*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 0, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0xe0
+{ 0, 3, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0xe0*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
-{ 0, 4, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0xf0
+{ 0, 4, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0xf0*/
 { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 5, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 }, 
 { 0, 6, 0 }, { 0, 0, 1 }, { 0, 7, 0 }, { 0, 8, 1 }, 
 };
 
 static sc_tbl  gdi_ScanTbl4[16] = {
-{ 4, 0, 0 }, { 3, 1, 1 }, { 2, 1, 0 }, { 2, 2, 1 },   // 0x00
-{ 1, 1, 0 }, { 0, 0, 1 }, { 1, 2, 0 }, { 1, 3, 1 },   // 0x04
-{ 0, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   // 0x08
-{ 0, 2, 0 }, { 0, 0, 1 }, { 0, 3, 0 }, { 0, 4, 1 }    // 0x0c
+{ 4, 0, 0 }, { 3, 1, 1 }, { 2, 1, 0 }, { 2, 2, 1 },   /* 0x00*/
+{ 1, 1, 0 }, { 0, 0, 1 }, { 1, 2, 0 }, { 1, 3, 1 },   /* 0x04*/
+{ 0, 1, 0 }, { 0, 0, 1 }, { 0, 0, 0 }, { 0, 0, 1 },   /* 0x08*/
+{ 0, 2, 0 }, { 0, 0, 1 }, { 0, 3, 0 }, { 0, 4, 1 }    /* 0x0c*/
 };
 
 long SaveScanData( unsigned char *, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short );
@@ -816,32 +886,32 @@
   lWarp = (long)(usWarp << 3);
   lDis  = ((long)usDy * lWarp) + (long)sDx;
 
-  // 1st, 2nd, 3rd & 4th byte
-  ultmp_dat = 0xc0000000;
+  /* 1st, 2nd, 3rd & 4th byte*/
+  ultmp_dat = 0xc0000000ul;
   if (lDis < 0)
   {
-    ultmp_dat |= 0x20000000;
+    ultmp_dat |= 0x20000000ul;
   }
-  ultmp_dat |= (lDis & 0x1fffffff);
-  *out_buf++ = (unsigned char)((ultmp_dat & 0xff000000) >> 24);
-  *out_buf++ = (unsigned char)((ultmp_dat & 0xff0000) >> 16);
-  *out_buf++ = (unsigned char)((ultmp_dat & 0xff00) >> 8);
-  *out_buf++ = (unsigned char)(ultmp_dat & 0xff);
+  ultmp_dat |= (lDis & 0x1ffffffful);
+  *out_buf++ = (unsigned char)((ultmp_dat & 0xff000000ul) >> 24);
+  *out_buf++ = (unsigned char)((ultmp_dat & 0xff0000ul) >> 16);
+  *out_buf++ = (unsigned char)((ultmp_dat & 0xff00ul) >> 8);
+  *out_buf++ = (unsigned char)(ultmp_dat & 0xfful);
 
-  // 5th & 6th byte
+  /* 5th & 6th byte*/
   ustmp_dat = 0xc000;
   ustmp_dat |= (usRl & 0x3fff);
   *out_buf++ = (unsigned char)((ustmp_dat & 0xff00) >> 8);
   *out_buf++ = (unsigned char)(ustmp_dat & 0xff);
 
   return(6);
-} // Save6Bytes()
+} /* Save6Bytes()*/
 
 long  Save4Bytes(unsigned char *out_buf, unsigned short usDy, unsigned short usRl, short sDx)
 {
   unsigned short  ustmp_dat;
 
-  // 1st & 2nd byte
+  /* 1st & 2nd byte*/
   ustmp_dat = 0x8000;
   if (sDx < 0)
   {
@@ -851,7 +921,7 @@
   *out_buf++ = (unsigned char)((ustmp_dat & 0xff00) >> 8);
   *out_buf++ = (unsigned char)(ustmp_dat & 0xff);
 
-  // 3rd & 4th byte
+  /* 3rd & 4th byte*/
   ustmp_dat = 0x8000;
   ustmp_dat |= ((usDy & 0x03) << 12);
   ustmp_dat |= (usRl & 0xfff);
@@ -859,13 +929,13 @@
   *out_buf++ = (unsigned char)(ustmp_dat & 0xff);
 
   return(4);
-}   // end of Save4Bytes()
+}   /* end of Save4Bytes()*/
 
 long  Save2Bytes(unsigned char *out_buf, unsigned short usDy, unsigned short usRl, short sDx)
 {
   unsigned char ubtmp_dat;
 
-  // 1st byte
+  /* 1st byte*/
   ubtmp_dat = 0x00;
   if (usDy == 1)
   {
@@ -874,7 +944,7 @@
   ubtmp_dat |= (usRl & 0x3f);
   *out_buf++ = ubtmp_dat;
 
-  // 2nd byte
+  /* 2nd byte*/
   if (sDx < 0)
   {
     ubtmp_dat = 0x80;
@@ -886,7 +956,7 @@
   ubtmp_dat |= ((unsigned char)sDx & 0x7f);
   *out_buf++ = ubtmp_dat;
   return(2);
-}   // end of Save2Bytes()
+}   /* end of Save2Bytes()*/
 
 long SaveScanData (unsigned char *out_buf, 
                    unsigned short us1Cnt, 
@@ -900,26 +970,26 @@
 
   sDisX = (int)usPosX01 - (int)usPosX10;
 
-  // 48 bit
+  /* 48 bit*/
   if ( (usDy > 3) || (us1Cnt > 4095) ) 
   {
     Save6Bytes(out_buf, usDy, us1Cnt, sDisX, usWarp);
     lRet = 6;
   }
-  // 32 bit
+  /* 32 bit*/
   else if ( (usDy > 1) || (us1Cnt > 63) || (sDisX > 127) || (sDisX < -128) ) 
   {
     Save4Bytes(out_buf, usDy, us1Cnt, sDisX);
     lRet = 4;
   }
-  // 16 bit
+  /* 16 bit*/
   else 
   {
     Save2Bytes(out_buf, usDy, us1Cnt, sDisX);
     lRet = 2;
   }
   return(lRet);
-} // end of SaveScanData()
+} /* end of SaveScanData()*/
 
 
 long UpdateScanSize (unsigned char *out_buf, 
@@ -934,23 +1004,23 @@
 
   sDisX = usPosX01 - usPosX10;
 
-  // 48 bit
+  /* 48 bit*/
   if ( (usDy > 3) || (us1Cnt > 4095) ) 
   {
     lRet = 6;
   }
-  // 32 bit
+  /* 32 bit*/
   else if ( (usDy > 1) || (us1Cnt > 63) || (sDisX > 127) || (sDisX < -128) )
   {
     lRet = 4;
   }
-  // 16 bit
+  /* 16 bit*/
   else
   {
     lRet = 2;
   }
   return(lRet);
-} // end of UpdateScanSize() by bglee 19981224
+} /* end of UpdateScanSize() by bglee 19981224*/
 
 long GetSimpleScan(unsigned char *out_buf,
                    unsigned char ubSizeMode, 
@@ -983,10 +1053,10 @@
   }
 
   
-  // 1 X 1 X
+  /* 1 X 1 X*/
   if (ubPreBit) 
   {
-    // 1 0 1 X
+    /* 1 0 1 X*/
     if (ubDx) 
     {
       lScanSize += (*UpdateScanLine[ubSizeMode])(out_buf, *us1Count, *usDy, *usPosX10, *usPosX01, usWidth);
@@ -994,23 +1064,23 @@
       *usPosX01 = usBytePos + ubDx;
       *us1Count = ubRl;
       *usDy = 0;
-      // 1 0 1 0
+      /* 1 0 1 0*/
       if (!ubLastBit) 
       {
-        // 19990330 by bglee
+        /* 19990330 by bglee*/
         out_buf = out_buf + lScanSize;
         
         lScanSize += (*UpdateScanLine[ubSizeMode])(out_buf, *us1Count, *usDy, *usPosX10, *usPosX01, usWidth);
         *usPosX10 = *usPosX01 ;
         *us1Count = 0;
       }
-      // 1 0 1 1
+      /* 1 0 1 1*/
     }
-    // 1 1 1 X
+    /* 1 1 1 X*/
     else 
     {
       *us1Count += ubRl;
-      // 1 1 1 0
+      /* 1 1 1 0*/
       if (!ubLastBit) 
       {
         lScanSize += (*UpdateScanLine[ubSizeMode])(out_buf, *us1Count, *usDy, *usPosX10, *usPosX01, usWidth);
@@ -1018,16 +1088,16 @@
         *us1Count = 0;
         *usDy = 0;
       }
-      // 1 1 1 1
+      /* 1 1 1 1*/
     }
   }
-  // 0 X 1 X
+  /* 0 X 1 X*/
   else 
   {
-    // 0 X 1 X
+    /* 0 X 1 X*/
     *usPosX01 = usBytePos + ubDx;
     *us1Count += ubRl;
-    // 0 X 1 0
+    /* 0 X 1 0*/
     if (!ubLastBit) 
     {
       lScanSize += (*UpdateScanLine[ubSizeMode])(out_buf, *us1Count, *usDy, *usPosX10, *usPosX01, usWidth);
@@ -1035,11 +1105,11 @@
       *us1Count = 0;
       *usDy = 0;
     }
-    // 0 X 1 1
+    /* 0 X 1 1*/
   }
 
   return(lScanSize);
-} // end of GetSimpleScan() 
+} /* end of GetSimpleScan() */
 
 
 long scan_map (unsigned char *in_buf, 
@@ -1049,7 +1119,7 @@
                unsigned char ubMode) 
 {
   unsigned int  i, j, k;
-  unsigned char ubPreBit, ubCrtByte;//, ubLastBit;
+  unsigned char ubPreBit, ubCrtByte;/*, ubLastBit;*/
   long  lScanSize, lTmp;
   long lCrtSize;
   unsigned short  us1Count;
@@ -1078,7 +1148,7 @@
       switch (ubCrtByte) 
       {
         case 0x00:
-          // 1 0
+          /* 1 0 */
           if (ubPreBit) 
           {
             lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, us1Count, usDy, usPosX10, usPosX01, usWidth);
@@ -1088,16 +1158,16 @@
             us1Count = 0;
             usDy = 0;
           }
-          // 0 0
+          /* 0 0*/
           break;
 
         case 0xff:
-          // 1 1
+          /* 1 1*/
           if (ubPreBit)
           {
             us1Count += 8;
           }
-          // 0 1
+          /* 0 1*/
           else 
           {
             us1Count = 8;
@@ -1106,7 +1176,7 @@
           break;
 
         default:
-          // X X 1 X
+          /* X X 1 X*/
           if (gdi_ScanTbl[ubCrtByte].ubRl) 
           {
             usBytePos = (j << 3);
@@ -1114,7 +1184,7 @@
             out_buf = out_buf + lTmp;
             lScanSize += lTmp;
           }
-          // complex pattern
+          /* complex pattern*/
           else 
           {
             for (k = 0; k < 2; k++) 
@@ -1124,7 +1194,7 @@
               switch (ubTemp) 
               {
                 case 0x00:
-                  // 1 0
+                  /* 1 0*/
                   if (ubPreBit) 
                   {
                     lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, us1Count, usDy, usPosX10, usPosX01, usWidth);
@@ -1134,16 +1204,16 @@
                     us1Count = 0;
                     usDy = 0;
                   }
-                  // 0 0
+                  /* 0 0*/
                   break;
 
                 case 0x0f:
-                  // 1 1
+                  /* 1 1*/
                   if (ubPreBit)
                   {
                     us1Count += 4;
                   }
-                  // 0 1
+                  /* 0 1*/
                   else 
                   {
                     us1Count = 4;
@@ -1152,7 +1222,7 @@
                   break;
 
                 case 0x05:
-                  // 1 0101
+                  /* 1 0101*/
                   if (ubPreBit) 
                   {
                     lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, us1Count, usDy, usPosX10, usPosX01, usWidth);
@@ -1162,13 +1232,13 @@
                     usPosX10 = usBytePos - us1Count;
                     usDy = 0;
                   }
-                  // 0 0101
+                  /* 0 0101*/
                   usPosX01 = usBytePos + 1;
                   lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, 1, usDy, usPosX10, usPosX01, usWidth);
                   out_buf = out_buf + lTmp;
                   lScanSize += lTmp;
 
-                  // next
+                  /* next*/
                   usPosX10 = 0;
                   usPosX01 = 2;
                   usDy = 0;
@@ -1176,12 +1246,12 @@
                             break;
 
                 case 0x09:
-                  // 1 1001
+                  /* 1 1001*/
                   if (ubPreBit)
                   {
                     us1Count++;
                   }
-                  // 0 1001
+                  /* 0 1001*/
                   else 
                   {
                     usPosX01 = usBytePos;
@@ -1191,7 +1261,7 @@
                   out_buf = out_buf + lTmp;
                   lScanSize += lTmp;
 
-                  // next
+                  /* next*/
                   if (ubPreBit)
                   {       
                     usPosX10 = usBytePos - us1Count + 1;
@@ -1207,12 +1277,12 @@
                   break;
 
                 case 0x0a:
-                  // 1 1010
+                  /* 1 1010*/
                   if (ubPreBit)
                   {
                     us1Count++;
                   }
-                  // 0 1010
+                  /* 0 1010*/
                   else 
                   {
                     us1Count = 1;
@@ -1222,25 +1292,25 @@
                   out_buf = out_buf + lTmp;
                   lScanSize += lTmp;
 
-                  // next
+                  /* next*/
                   usPosX10 = usBytePos - us1Count + 1;
                   usPosX01 = usBytePos + 2;
                   lTmp = (*UpdateScanLine[ubSizeMode])(out_buf, 1, 0, usPosX10, usPosX01, usWidth);
                   out_buf = out_buf + lTmp;
                   lScanSize += lTmp;
-                  // next
+                  /* next*/
                   usPosX10 = usBytePos + 2;
                   usDy = 0;
                   us1Count = 0;
                   break;
 
                 case 0x0b:
-                  // 1 1011
+                  /* 1 1011*/
                   if (ubPreBit)
                   {
                     us1Count++;
                   }
-                  // 0 1011
+                  /* 0 1011*/
                   else 
                   {
                     us1Count = 1;
@@ -1250,7 +1320,7 @@
                   out_buf = out_buf + lTmp;
                   lScanSize += lTmp;
 
-                  // next
+                  /* next*/
                   if (ubPreBit)
                   {       
                     usPosX10 = usBytePos - us1Count + 1;
@@ -1267,12 +1337,12 @@
                   break;
 
                 case 0x0d:
-                  // 1 1101
+                  /* 1 1101*/
                   if (ubPreBit)
                   {
                     us1Count += 2;
                   }
-                  // 0 1101
+                  /* 0 1101*/
                   else 
                   {
                     us1Count = 2;
@@ -1282,7 +1352,7 @@
                   out_buf = out_buf + lTmp;
                   lScanSize += lTmp;
 
-                  // next
+                  /* next*/
                   if (ubPreBit)
                   {
                     usPosX10 = usBytePos - us1Count + 2;
@@ -1298,17 +1368,17 @@
                   break;
 
                 default:
-                  // X X 1 X
+                  /* X X 1 X*/
                   lTmp = GetSimpleScan(out_buf, ubSizeMode, &us1Count, &usDy, &usPosX10, &usPosX01, usBytePos, ubTemp, 4, ubPreBit, usWidth);
                   out_buf = out_buf + lTmp;
                   lScanSize += lTmp;
                   break;
-              } // end of switch()
+              } /* end of switch()*/
               ubPreBit = ubTemp & 0x01;
-            } // end of k-loop
+            } /* end of k-loop*/
           }
           break;
-      } // end of switch()
+      } /* end of switch()*/
 
       ubPreBit = ubCrtByte & 0x01;
     } /*for  usWidth */
@@ -1326,7 +1396,7 @@
     }
     usDy++;
 
-    // check size over
+    /* check size over*/
     if ( (i % 5) == 4 ) 
     {
       lCrtSize = (long)((long)usWidth * (long)(i + 1));
@@ -1342,7 +1412,7 @@
     lScanSize = -1;
   }
   return(lScanSize);
-} // end of scan_map() 
+} /* end of scan_map() */
 
 /*****************************************************************
  *  H : bmp2run
@@ -1362,7 +1432,7 @@
   unsigned char *tmp_buf1, *tmp_buf2;
   long  scan_size;
 
-  //return(-1); // 19990323 by bglee - request from SM Lee
+  /*return(-1);*/ /* 19990323 by bglee - request from SM Lee*/
   
   tmp_buf1 = in_buf;
   tmp_buf2 = out_buf;
@@ -1372,7 +1442,7 @@
     return(-1);
   }
 
-  if ( !(ubMode & 0x02) )  // real compression //---
+  if ( !(ubMode & 0x02) )  /* real compression */
   {
     out_buf = tmp_buf2 + scan_size;
     *out_buf++ = 0x00;
@@ -1385,7 +1455,7 @@
       scan_size += 2;
     }
   }
-  else    // pre-compression
+  else    /* pre-compression*/
   {
     scan_size += 2;
     if (scan_size % 4)