]> git.sur5r.net Git - iec16022/blobdiff - image.c
Import Debian changes 0.2.4-1.2
[iec16022] / image.c
diff --git a/image.c b/image.c
index b420447a982f422d980451317e446723f0d9207a..92cc66b62b8cb2920ebe9e1c1777e8110d1acf7b 100644 (file)
--- a/image.c
+++ b/image.c
@@ -1,4 +1,4 @@
-/** 
+/**
  *
  * Image handling tools, (c) AJK 2001-2005
  *
@@ -16,8 +16,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  *
- */ 
-
+ */
 
 #include <stdio.h>
 #include <malloc.h>
 #endif
 
 unsigned char const bbc[] = {
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,      //  
-   0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00,      // !
-   0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00,      // "
-   0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00,      // #
-   0x0C, 0x3F, 0x68, 0x3E, 0x0B, 0x7E, 0x18, 0x00,      // $
-   0x60, 0x66, 0x0C, 0x18, 0x30, 0x66, 0x06, 0x00,      // %
-   0x38, 0x6C, 0x6C, 0x38, 0x6D, 0x66, 0x3B, 0x00,      // &
-   0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,      // '
-   0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00,      // (
-   0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00,      // )
-   0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00,      // *
-   0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00,      // +
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,      // ,
-   0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00,      // -
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,      // .
-   0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00,      // /
-   0x18, 0x24, 0x66, 0x66, 0x66, 0x24, 0x18, 0x00,      // 0 (non crossed)
-   0x18, 0x38, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00,      // 1
-   0x3C, 0x66, 0x06, 0x0C, 0x18, 0x30, 0x7E, 0x00,      // 2
-   0x3C, 0x66, 0x06, 0x1C, 0x06, 0x66, 0x3C, 0x00,      // 3
-   0x0C, 0x1C, 0x3C, 0x6C, 0x7E, 0x0C, 0x0C, 0x00,      // 4
-   0x7E, 0x60, 0x7C, 0x06, 0x06, 0x66, 0x3C, 0x00,      // 5
-   0x1C, 0x30, 0x60, 0x7C, 0x66, 0x66, 0x3C, 0x00,      // 6
-   0x7E, 0x06, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00,      // 7
-   0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00,      // 8
-   0x3C, 0x66, 0x66, 0x3E, 0x06, 0x0C, 0x38, 0x00,      // 9
-   0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00,      // :
-   0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x30,      // ;
-   0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00,      // <
-   0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00,      // =
-   0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00,      // >
-   0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00,      // ?
-   0x3C, 0x66, 0x6E, 0x6A, 0x6E, 0x60, 0x3C, 0x00,      // @
-   0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00,      // A
-   0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C, 0x00,      // B
-   0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x00,      // C
-   0x78, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0x78, 0x00,      // D
-   0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x7E, 0x00,      // E
-   0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x00,      // F
-   0x3C, 0x66, 0x60, 0x6E, 0x66, 0x66, 0x3C, 0x00,      // G
-   0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00,      // H
-   0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00,      // I
-   0x3E, 0x0C, 0x0C, 0x0C, 0x0C, 0x6C, 0x38, 0x00,      // J
-   0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x66, 0x00,      // K
-   0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00,      // L
-   0x63, 0x77, 0x7F, 0x6B, 0x6B, 0x63, 0x63, 0x00,      // M
-   0x66, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x66, 0x00,      // N
-   0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00,      // O
-   0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x00,      // P
-   0x3C, 0x66, 0x66, 0x66, 0x6A, 0x6C, 0x36, 0x00,      // Q
-   0x7C, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0x66, 0x00,      // R
-   0x3C, 0x66, 0x60, 0x3C, 0x06, 0x66, 0x3C, 0x00,      // S
-   0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,      // T
-   0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00,      // U
-   0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00,      // V
-   0x63, 0x63, 0x6B, 0x6B, 0x7F, 0x77, 0x63, 0x00,      // W
-   0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00,      // X
-   0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00,      // Y
-   0x7E, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x7E, 0x00,      // Z
-   0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00,      // [
-   0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00,      // 
-   0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00,      // ]
-   0x18, 0x3C, 0x66, 0x42, 0x00, 0x00, 0x00, 0x00,      // ^
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,      // _
-   0x1C, 0x36, 0x30, 0x7C, 0x30, 0x30, 0x7E, 0x00,      // `
-   0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,      // a
-   0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00,      // b
-   0x00, 0x00, 0x3C, 0x66, 0x60, 0x66, 0x3C, 0x00,      // c
-   0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00,      // d
-   0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00,      // e
-   0x1C, 0x30, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x00,      // f
-   0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x3C,      // g
-   0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00,      // h
-   0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00,      // i
-   0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x70,      // j
-   0x60, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0x00,      // k
-   0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00,      // l
-   0x00, 0x00, 0x36, 0x7F, 0x6B, 0x6B, 0x63, 0x00,      // m
-   0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00,      // n
-   0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00,      // o
-   0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60,      // p
-   0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x07,      // q
-   0x00, 0x00, 0x6C, 0x76, 0x60, 0x60, 0x60, 0x00,      // r
-   0x00, 0x00, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x00,      // s
-   0x30, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x1C, 0x00,      // t
-   0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00,      // u
-   0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00,      // v
-   0x00, 0x00, 0x63, 0x6B, 0x6B, 0x7F, 0x36, 0x00,      // w
-   0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00,      // x
-   0x00, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x06, 0x3C,      // y
-   0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00,      // z
-   0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00,      // {
-   0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00,      // |
-   0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00,      // }
-   0x31, 0x6B, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00,      // ~
-   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,      //
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
+       0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00, // !
+       0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, // "
+       0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, // #
+       0x0C, 0x3F, 0x68, 0x3E, 0x0B, 0x7E, 0x18, 0x00, // $
+       0x60, 0x66, 0x0C, 0x18, 0x30, 0x66, 0x06, 0x00, // %
+       0x38, 0x6C, 0x6C, 0x38, 0x6D, 0x66, 0x3B, 0x00, // &
+       0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, // '
+       0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00, // (
+       0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00, // )
+       0x00, 0x18, 0x7E, 0x3C, 0x7E, 0x18, 0x00, 0x00, // *
+       0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, // +
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, // ,
+       0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, // -
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, // .
+       0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, // /
+       0x18, 0x24, 0x66, 0x66, 0x66, 0x24, 0x18, 0x00, // 0 (non crossed)
+       0x18, 0x38, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, // 1
+       0x3C, 0x66, 0x06, 0x0C, 0x18, 0x30, 0x7E, 0x00, // 2
+       0x3C, 0x66, 0x06, 0x1C, 0x06, 0x66, 0x3C, 0x00, // 3
+       0x0C, 0x1C, 0x3C, 0x6C, 0x7E, 0x0C, 0x0C, 0x00, // 4
+       0x7E, 0x60, 0x7C, 0x06, 0x06, 0x66, 0x3C, 0x00, // 5
+       0x1C, 0x30, 0x60, 0x7C, 0x66, 0x66, 0x3C, 0x00, // 6
+       0x7E, 0x06, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00, // 7
+       0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00, // 8
+       0x3C, 0x66, 0x66, 0x3E, 0x06, 0x0C, 0x38, 0x00, // 9
+       0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, // :
+       0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x30, // ;
+       0x0C, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0C, 0x00, // <
+       0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, // =
+       0x30, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x30, 0x00, // >
+       0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00, // ?
+       0x3C, 0x66, 0x6E, 0x6A, 0x6E, 0x60, 0x3C, 0x00, // @
+       0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, // A
+       0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C, 0x00, // B
+       0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x00, // C
+       0x78, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0x78, 0x00, // D
+       0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x7E, 0x00, // E
+       0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x00, // F
+       0x3C, 0x66, 0x60, 0x6E, 0x66, 0x66, 0x3C, 0x00, // G
+       0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, // H
+       0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00, // I
+       0x3E, 0x0C, 0x0C, 0x0C, 0x0C, 0x6C, 0x38, 0x00, // J
+       0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x66, 0x00, // K
+       0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00, // L
+       0x63, 0x77, 0x7F, 0x6B, 0x6B, 0x63, 0x63, 0x00, // M
+       0x66, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x66, 0x00, // N
+       0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, // O
+       0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x00, // P
+       0x3C, 0x66, 0x66, 0x66, 0x6A, 0x6C, 0x36, 0x00, // Q
+       0x7C, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0x66, 0x00, // R
+       0x3C, 0x66, 0x60, 0x3C, 0x06, 0x66, 0x3C, 0x00, // S
+       0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, // T
+       0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, // U
+       0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, // V
+       0x63, 0x63, 0x6B, 0x6B, 0x7F, 0x77, 0x63, 0x00, // W
+       0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00, // X
+       0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00, // Y
+       0x7E, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x7E, 0x00, // Z
+       0x7C, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7C, 0x00, // [
+       0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, //
+       0x3E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3E, 0x00, // ]
+       0x18, 0x3C, 0x66, 0x42, 0x00, 0x00, 0x00, 0x00, // ^
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, // _
+       0x1C, 0x36, 0x30, 0x7C, 0x30, 0x30, 0x7E, 0x00, // `
+       0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, // a
+       0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00, // b
+       0x00, 0x00, 0x3C, 0x66, 0x60, 0x66, 0x3C, 0x00, // c
+       0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00, // d
+       0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, // e
+       0x1C, 0x30, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x00, // f
+       0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x3C, // g
+       0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00, // h
+       0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, // i
+       0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x70, // j
+       0x60, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0x00, // k
+       0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, // l
+       0x00, 0x00, 0x36, 0x7F, 0x6B, 0x6B, 0x63, 0x00, // m
+       0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00, // n
+       0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, // o
+       0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, // p
+       0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x07, // q
+       0x00, 0x00, 0x6C, 0x76, 0x60, 0x60, 0x60, 0x00, // r
+       0x00, 0x00, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x00, // s
+       0x30, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x1C, 0x00, // t
+       0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, // u
+       0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, // v
+       0x00, 0x00, 0x63, 0x6B, 0x6B, 0x7F, 0x36, 0x00, // w
+       0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00, // x
+       0x00, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x06, 0x3C, // y
+       0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00, // z
+       0x0C, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0C, 0x00, // {
+       0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, // |
+       0x30, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x30, 0x00, // }
+       0x31, 0x6B, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, // ~
+       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, //
 };
 
 const char smallc[] = " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-+&()/[];%";
 unsigned char const small[] = {
-   0x00, 0x00, 0x00,            //
-   0x1F, 0x11, 0x1F,            //0
-   0x11, 0x1F, 0x10,            //1
-   0x1D, 0x15, 0x17,            //2
-   0x11, 0x15, 0x1F,            //3
-   0x07, 0x04, 0x1F,            //4
-   0x17, 0x15, 0x1D,            //5
-   0x1F, 0x15, 0x1D,            //6
-   0x01, 0x01, 0x1F,            //7
-   0x1F, 0x15, 0x1F,            //8
-   0x17, 0x15, 0x1F,            //9
-   0x1E, 0x05, 0x1E,            //A
-   0x1F, 0x15, 0x0A,            //B
-   0x0E, 0x11, 0x11,            //C
-   0x1F, 0x11, 0x0E,            //D
-   0x1F, 0x15, 0x11,            //E
-   0x1F, 0x05, 0x01,            //F
-   0x0E, 0x11, 0x19,            //G
-   0x1F, 0x04, 0x1F,            //H
-   0x11, 0x1F, 0x11,            //I
-   0x11, 0x0F, 0x01,            //J
-   0x1F, 0x04, 0x1B,            //K
-   0x1F, 0x10, 0x10,            //L
-   0x1F, 0x03, 0x1F,            //M
-   0x1F, 0x01, 0x1F,            //N
-   0x0E, 0x11, 0x0E,            //O
-   0x1F, 0x05, 0x02,            //P
-   0x0E, 0x19, 0x1E,            //Q
-   0x1F, 0x05, 0x1A,            //R
-   0x12, 0x15, 0x09,            //S
-   0x01, 0x1F, 0x01,            //T
-   0x1F, 0x10, 0x1F,            //U
-   0x0F, 0x10, 0x0F,            //V
-   0x1F, 0x18, 0x1F,            //W
-   0x1B, 0x04, 0x1B,            //X
-   0x03, 0x1C, 0x03,            //Y
-   0x19, 0x15, 0x13,            //Z
-   0x04, 0x04, 0x04,            //-
-   0x04, 0x0E, 0x04,            //+
-   0x04, 0x0E, 0x04,            //& (+)
-   0x00, 0x0E, 0x11,            //(
-   0x11, 0x0E, 0x00,            //)
-   0x08, 0x04, 0x02,            ///
-   0x00, 0x1F, 0x11,            //[
-   0x11, 0x1F, 0x00,            //]
-   0x10, 0x0A, 0x00,            //;
-   0x09, 0x04, 0x12,            //%
+       0x00, 0x00, 0x00,       //
+       0x1F, 0x11, 0x1F,       //0
+       0x11, 0x1F, 0x10,       //1
+       0x1D, 0x15, 0x17,       //2
+       0x11, 0x15, 0x1F,       //3
+       0x07, 0x04, 0x1F,       //4
+       0x17, 0x15, 0x1D,       //5
+       0x1F, 0x15, 0x1D,       //6
+       0x01, 0x01, 0x1F,       //7
+       0x1F, 0x15, 0x1F,       //8
+       0x17, 0x15, 0x1F,       //9
+       0x1E, 0x05, 0x1E,       //A
+       0x1F, 0x15, 0x0A,       //B
+       0x0E, 0x11, 0x11,       //C
+       0x1F, 0x11, 0x0E,       //D
+       0x1F, 0x15, 0x11,       //E
+       0x1F, 0x05, 0x01,       //F
+       0x0E, 0x11, 0x19,       //G
+       0x1F, 0x04, 0x1F,       //H
+       0x11, 0x1F, 0x11,       //I
+       0x11, 0x0F, 0x01,       //J
+       0x1F, 0x04, 0x1B,       //K
+       0x1F, 0x10, 0x10,       //L
+       0x1F, 0x03, 0x1F,       //M
+       0x1F, 0x01, 0x1F,       //N
+       0x0E, 0x11, 0x0E,       //O
+       0x1F, 0x05, 0x02,       //P
+       0x0E, 0x19, 0x1E,       //Q
+       0x1F, 0x05, 0x1A,       //R
+       0x12, 0x15, 0x09,       //S
+       0x01, 0x1F, 0x01,       //T
+       0x1F, 0x10, 0x1F,       //U
+       0x0F, 0x10, 0x0F,       //V
+       0x1F, 0x18, 0x1F,       //W
+       0x1B, 0x04, 0x1B,       //X
+       0x03, 0x1C, 0x03,       //Y
+       0x19, 0x15, 0x13,       //Z
+       0x04, 0x04, 0x04,       //-
+       0x04, 0x0E, 0x04,       //+
+       0x04, 0x0E, 0x04,       //& (+)
+       0x00, 0x0E, 0x11,       //(
+       0x11, 0x0E, 0x00,       //)
+       0x08, 0x04, 0x02,       ///
+       0x00, 0x1F, 0x11,       //[
+       0x11, 0x1F, 0x00,       //]
+       0x10, 0x0A, 0x00,       //;
+       0x09, 0x04, 0x12,       //%
 };
 
-Image * ImageNew (int w, int h, int c)
-{                               // create a new blank image
-   Image *i;
-   if (!w || !h)
-      return 0;
-   i = malloc (sizeof (*i));
-   if (!i)
-      return 0;
-   memset (i, 0, sizeof (*i));
-   i->W = w;
-   i->L = w + 1;
-   i->H = h;
-   i->C = c;
-   i->Image = malloc ((w + 1) * h);
-   if (!i->Image)
-   {
-      free (i);
-      return 0;
-   }
-   memset (i->Image, 0, (w + 1) * h);
-   if (c)
-   {
-      i->Colour = malloc (sizeof (Colour) * c);
-      if (!i->Colour)
-      {
-         free (i->Image);
-         free (i);
-         return 0;
-      }
-      memset (i->Colour, 0, sizeof (Colour) * c);
-   }
-   return i;
+Image *ImageNew(int w, int h, int c)
+{                              // create a new blank image
+       Image *i;
+       if (!w || !h)
+               return 0;
+       i = malloc(sizeof(*i));
+       if (!i)
+               return 0;
+       memset(i, 0, sizeof(*i));
+       i->W = w;
+       i->L = w + 1;
+       i->H = h;
+       i->C = c;
+       i->Image = malloc((w + 1) * h);
+       if (!i->Image) {
+               free(i);
+               return 0;
+       }
+       memset(i->Image, 0, (w + 1) * h);
+       if (c) {
+               i->Colour = malloc(sizeof(Colour) * c);
+               if (!i->Colour) {
+                       free(i->Image);
+                       free(i);
+                       return 0;
+               }
+               memset(i->Colour, 0, sizeof(Colour) * c);
+       }
+       return i;
 }
 
-void ImageFree (Image * i)
-{                               // free an image
-   if (i)
-   {
-      if (i->Image)
-         free (i->Image);
-      if (i->Colour)
-         free (i->Colour);
-      free (i);
-   }
+void ImageFree(Image * i)
+{                              // free an image
+       if (i) {
+               if (i->Image)
+                       free(i->Image);
+               if (i->Colour)
+                       free(i->Colour);
+               free(i);
+       }
 }
 
 #define        MAXLZW  4096
 typedef short LZW[256];
 typedef LZW LZWTree[MAXLZW];
-typedef struct strPrivate
-{
-   int cols;                    // number of colours, power of 2
-   unsigned char colbits;       // number of bits for colours
-   int fh;                      // file handle
-   int lzwnext;                 // next code
-   int lzwlast;                 // last code in current bit size
-   int lzwbits;                 // current bit size
-   LZWTree lzw;                 // encode tree
-   unsigned char block[256];    // block so far, with count at start
-   int blockv;                  // pending value
-   int blockb;                  // bits used in pending value
-   short lzwcode;               // which code we are on now
-}
-Private;
+typedef struct strPrivate {
+       int cols;               // number of colours, power of 2
+       unsigned char colbits;  // number of bits for colours
+       int fh;                 // file handle
+       int lzwnext;            // next code
+       int lzwlast;            // last code in current bit size
+       int lzwbits;            // current bit size
+       LZWTree lzw;            // encode tree
+       unsigned char block[256];       // block so far, with count at start
+       int blockv;             // pending value
+       int blockb;             // bits used in pending value
+       short lzwcode;          // which code we are on now
+} Private;
 
-static LZWFlush (Private * p)
-{                               // flush this block
-   write (p->fh, p->block, *p->block + 1);
-   *p->block = 0;
+static LZWFlush(Private * p)
+{                              // flush this block
+       write(p->fh, p->block, *p->block + 1);
+       *p->block = 0;
 }
 
-static LZWOut (Private * p, short v)
-{                               // output a value
-   p->blockv |= (v << p->blockb);
-   p->blockb += p->lzwbits;
-   while (p->blockb >= 8)
-   {
-      p->block[++*p->block] = p->blockv;        // last partial byte
-      p->blockv >>= 8;
-      p->blockb -= 8;
-      if (*p->block == 255)
-         LZWFlush (p);
-   }
+static LZWOut(Private * p, short v)
+{                              // output a value
+       p->blockv |= (v << p->blockb);
+       p->blockb += p->lzwbits;
+       while (p->blockb >= 8) {
+               p->block[++*p->block] = p->blockv;      // last partial byte
+               p->blockv >>= 8;
+               p->blockb -= 8;
+               if (*p->block == 255)
+                       LZWFlush(p);
+       }
 }
 
-static LZWClear (Private * p)
+static LZWClear(Private * p)
 {
-   int c;
-   p->lzwbits = p->colbits + 1;
-   p->lzwnext = p->cols + 2;
-   p->lzwlast = (1 << p->lzwbits) - 1;
-   p->lzwcode = p->cols;        // starting point
-   for (c = 0; c < p->cols; c++)
-   {
-      p->lzw[p->cols][c] = c;   // links to literal entries
-      // links from literals, dead ends initially
-         memset (&p->lzw[c], -1, p->cols * 2);
-   }
+       int c;
+       p->lzwbits = p->colbits + 1;
+       p->lzwnext = p->cols + 2;
+       p->lzwlast = (1 << p->lzwbits) - 1;
+       p->lzwcode = p->cols;   // starting point
+       for (c = 0; c < p->cols; c++) {
+               p->lzw[p->cols][c] = c; // links to literal entries
+               // links from literals, dead ends initially
+               memset(&p->lzw[c], -1, p->cols * 2);
+       }
 }
 
-static ImageStart (Private * p)
+static ImageStart(Private * p)
 {
-   unsigned char b = p->colbits;
-   write (p->fh, &b, 1);
-   *p->block = 0;
-   p->blockb = 0;
-   p->blockv = 0;
-   LZWClear (p);
-   LZWOut (p, p->cols);         // clear code
+       unsigned char b = p->colbits;
+       write(p->fh, &b, 1);
+       *p->block = 0;
+       p->blockb = 0;
+       p->blockv = 0;
+       LZWClear(p);
+       LZWOut(p, p->cols);     // clear code
 }
 
-static ImageEnd (Private * p)
+static ImageEnd(Private * p)
 {
-   LZWOut (p, p->lzwcode);      // last prefix
-   LZWOut (p, p->cols + 1);     // end code
-   if (p->blockb)
-      p->block[++*p->block] = p->blockv; // last partial byte
-   LZWFlush (p);
+       LZWOut(p, p->lzwcode);  // last prefix
+       LZWOut(p, p->cols + 1); // end code
+       if (p->blockb)
+               p->block[++*p->block] = p->blockv;      // last partial byte
+       LZWFlush(p);
 }
 
-static ImageOut (Private * p, unsigned char c)
+static ImageOut(Private * p, unsigned char c)
 {
-   short next = p->lzw[p->lzwcode][c];
-   if (next == -1)
-   {                            // dead end
-      LZWOut (p, p->lzwcode);   // prefix
+       short next = p->lzw[p->lzwcode][c];
+       if (next == -1) {       // dead end
+               LZWOut(p, p->lzwcode);  // prefix
 #ifdef CLEAR
-      if (p->lzwnext + 1 == MAXLZW)
-      {
-         LZWOut (p, p->cols);   // clear code
-         LZWClear (p);
-      } else
+               if (p->lzwnext + 1 == MAXLZW) {
+                       LZWOut(p, p->cols);     // clear code
+                       LZWClear(p);
+               } else
 #endif
-      if (p->lzwnext < MAXLZW)
-      {
-         memset (p->lzw[p->lzwnext], -1, p->cols * 2);  // init dead ends
-         p->lzw[p->lzwcode][c] = p->lzwnext;
-         if (p->lzwnext > p->lzwlast)
-         {                      // bigger code
-            p->lzwbits++;
-            p->lzwlast = (1 << p->lzwbits) - 1;
-         }
-         p->lzwnext++;
-      }
-      p->lzwcode = c;
-   } else
-      p->lzwcode = next;        // not a dead end
+               if (p->lzwnext < MAXLZW) {
+                       memset(p->lzw[p->lzwnext], -1, p->cols * 2);    // init dead ends
+                       p->lzw[p->lzwcode][c] = p->lzwnext;
+                       if (p->lzwnext > p->lzwlast) {  // bigger code
+                               p->lzwbits++;
+                               p->lzwlast = (1 << p->lzwbits) - 1;
+                       }
+                       p->lzwnext++;
+               }
+               p->lzwcode = c;
+       } else
+               p->lzwcode = next;      // not a dead end
 }
 
 // write GIF image
-void ImageWriteGif (Image * i, int fh, int back, int trans, char *comment)
+void ImageWriteGif(Image * i, int fh, int back, int trans, char *comment)
 {
-   struct strPrivate p;
-   p.fh = fh;
-   // count colours, min 4
-   for (p.colbits = 2, p.cols = 4; p.cols < i->C; p.cols *= 2, p.colbits++);
-   {                            // headers
-      char buf[1500];
-      int n = 0;
-      strcpy (buf, "GIF87a");
+       struct strPrivate p;
+       p.fh = fh;
+       // count colours, min 4
+       for (p.colbits = 2, p.cols = 4; p.cols < i->C;
+            p.cols *= 2, p.colbits++) ;
+       {                       // headers
+               char buf[1500];
+               int n = 0;
+               strcpy(buf, "GIF87a");
 #ifndef INTERLACE
-      if (comment || trans >= 0)
+               if (comment || trans >= 0)
 #endif
-         buf[4] = '9';          // needs gif89 format
-      n = 6;
-      buf[n++] = (i->W & 255);
-      buf[n++] = (i->W >> 8);
-      buf[n++] = (i->H & 255);
-      buf[n++] = (i->H >> 8);
-      buf[n++] = (i->Colour ? 0x80 : 0) + 0x70 + (p.colbits - 1);
-      buf[n++] = back;          // background
-      buf[n++] = 0;             // aspect
-      if (i->Colour)
-      {
-         int c;
-         for (c = 0; c < p.cols; c++)
-         {
-            if (c < i->C)
-            {
-               buf[n++] = (i->Colour[c] >> 16 & 255);
-               buf[n++] = (i->Colour[c] >> 8 & 255);
-               buf[n++] = (i->Colour[c] & 255);
-            } else
-            {                   // extra, unused, colour
-               buf[n++] = 0;
-               buf[n++] = 0;
-               buf[n++] = 0;
-            }
-         }
-      }
-      // comment
-      if (comment && strlen (comment) < 256)
-      {                         // comment
-         buf[n++] = 0x21;       //extension
-         buf[n++] = 0xFE;       //comment
-         buf[n++] = strlen (comment);
-         strcpy (buf + n, comment);
-         n += buf[n - 1];
-         buf[n++] = 0;          // end of block
-      }
-      if (trans >= 0)
-      {                         // transparrent
-         buf[n++] = 0x21;       // extension
-         buf[n++] = 0xF9;       // graphic control
-         buf[n++] = 4;          // len
-         buf[n++] = 1;          // transparrent
-         buf[n++] = 0;          // delay
-         buf[n++] = 0;
-         buf[n++] = trans;
-         buf[n++] = 0;          // terminator
-      }
-      // image
-      buf[n++] = 0x2C;
-      buf[n++] = 0;             // offset X
-      buf[n++] = 0;
-      buf[n++] = 0;             // offset Y
-      buf[n++] = 0;
-      buf[n++] = (i->W & 255);
-      buf[n++] = (i->W >> 8);
-      buf[n++] = (i->H & 255);
-      buf[n++] = (i->H >> 8);
+                       buf[4] = '9';   // needs gif89 format
+               n = 6;
+               buf[n++] = (i->W & 255);
+               buf[n++] = (i->W >> 8);
+               buf[n++] = (i->H & 255);
+               buf[n++] = (i->H >> 8);
+               buf[n++] = (i->Colour ? 0x80 : 0) + 0x70 + (p.colbits - 1);
+               buf[n++] = back;        // background
+               buf[n++] = 0;   // aspect
+               if (i->Colour) {
+                       int c;
+                       for (c = 0; c < p.cols; c++) {
+                               if (c < i->C) {
+                                       buf[n++] = (i->Colour[c] >> 16 & 255);
+                                       buf[n++] = (i->Colour[c] >> 8 & 255);
+                                       buf[n++] = (i->Colour[c] & 255);
+                               } else {        // extra, unused, colour
+                                       buf[n++] = 0;
+                                       buf[n++] = 0;
+                                       buf[n++] = 0;
+                               }
+                       }
+               }
+               // comment
+               if (comment && strlen(comment) < 256) { // comment
+                       buf[n++] = 0x21;        //extension
+                       buf[n++] = 0xFE;        //comment
+                       buf[n++] = strlen(comment);
+                       strcpy(buf + n, comment);
+                       n += buf[n - 1];
+                       buf[n++] = 0;   // end of block
+               }
+               if (trans >= 0) {       // transparrent
+                       buf[n++] = 0x21;        // extension
+                       buf[n++] = 0xF9;        // graphic control
+                       buf[n++] = 4;   // len
+                       buf[n++] = 1;   // transparrent
+                       buf[n++] = 0;   // delay
+                       buf[n++] = 0;
+                       buf[n++] = trans;
+                       buf[n++] = 0;   // terminator
+               }
+               // image
+               buf[n++] = 0x2C;
+               buf[n++] = 0;   // offset X
+               buf[n++] = 0;
+               buf[n++] = 0;   // offset Y
+               buf[n++] = 0;
+               buf[n++] = (i->W & 255);
+               buf[n++] = (i->W >> 8);
+               buf[n++] = (i->H & 255);
+               buf[n++] = (i->H >> 8);
 #ifdef INTERLACE
-      buf[n++] = 0x40;          // interlaced, no local colour table
+               buf[n++] = 0x40;        // interlaced, no local colour table
 #else
-      buf[n++] = 0x00;          // non interlaced, no local colour table
+               buf[n++] = 0x00;        // non interlaced, no local colour table
 #endif
-      write (fh, buf, n);
-   }
-   // image data
-   {
-      unsigned char *b;
-      int x,
-        y;
-      ImageStart (&p);
+               write(fh, buf, n);
+       }
+       // image data
+       {
+               unsigned char *b;
+               int x, y;
+               ImageStart(&p);
 #ifdef INTERLACE
-      for (y = 0; y < i->H; y += 8)
-         for (b = &ImagePixel (i, 0, y), x = 0; x < i->W; x++)
-            ImageOut (&p, *b++);
-      for (y = 4; y < i->H; y += 8)
-         for (b = &ImagePixel (i, 0, y), x = 0; x < i->W; x++)
-            ImageOut (&p, *b++);
-      for (y = 2; y < i->H; y += 4)
-         for (b = &ImagePixel (i, 0, y), x = 0; x < i->W; x++)
-            ImageOut (&p, *b++);
-      for (y = 1; y < i->H; y += 2)
-         for (b = &ImagePixel (i, 0, y), x = 0; x < i->W; x++)
-            ImageOut (&p, *b++);
+               for (y = 0; y < i->H; y += 8)
+                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
+                               ImageOut(&p, *b++);
+               for (y = 4; y < i->H; y += 8)
+                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
+                               ImageOut(&p, *b++);
+               for (y = 2; y < i->H; y += 4)
+                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
+                               ImageOut(&p, *b++);
+               for (y = 1; y < i->H; y += 2)
+                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
+                               ImageOut(&p, *b++);
 #else
-      for (y = 0; y < i->H; y++)
-         for (b = &ImagePixel (i, 0, y), x = 0; x < i->W; x++)
-            ImageOut (&p, *b++);
+               for (y = 0; y < i->H; y++)
+                       for (b = &ImagePixel(i, 0, y), x = 0; x < i->W; x++)
+                               ImageOut(&p, *b++);
 #endif
-      ImageEnd (&p);
-   }
-   write (fh, "\0", 1);         // end of image data
-   write (fh, "\x3B", 1);       // trailer
+               ImageEnd(&p);
+       }
+       write(fh, "\0", 1);     // end of image data
+       write(fh, "\x3B", 1);   // trailer
 }
 
-void ImageText (Image * i, int x, int y, int col, char *text)
-{                               // writes 8x8 text
-   if (i && text)
-      while (*text)
-      {
-         if (*text >= ' ' && *text)
-         {
-            int r;
-            unsigned const char *b = bbc + (*text - ' ') * 8;
-            for (r = 0; r < 8; r++)
-            {
-               unsigned char v = *b++;
-               unsigned char *p = &ImagePixel (i, x, y + r);
-               unsigned char m;
-               for (m = 0x80; m; m >>= 1, p++)
-                  if (v & m)
-                     *p = col;
-            }
-         }
-         x += 8;
-         text++;
-      }
+void ImageText(Image * i, int x, int y, int col, char *text)
+{                              // writes 8x8 text
+       if (i && text)
+               while (*text) {
+                       if (*text >= ' ' && *text) {
+                               int r;
+                               unsigned const char *b =
+                                   bbc + (*text - ' ') * 8;
+                               for (r = 0; r < 8; r++) {
+                                       unsigned char v = *b++;
+                                       unsigned char *p =
+                                           &ImagePixel(i, x, y + r);
+                                       unsigned char m;
+                                       for (m = 0x80; m; m >>= 1, p++)
+                                               if (v & m)
+                                                       *p = col;
+                               }
+                       }
+                       x += 8;
+                       text++;
+               }
 }
 
-void ImageSmall (Image * i, int x, int y, int col, char *text)
-{                               // writes 4x6 digits
-   if (i && text)
-      while (*text)
-      {
-         char *p = strchr (smallc, toupper (*text));
-         if (p)
-         {
-            int r;
-            char m = 1;
-            unsigned const char *b = small + (p - smallc) * 3;
-            for (r = 0; r < 5; r++)
-            {
-               int c;
-               for (c = 0; c < 3; c++)
-                  if (b[c] & m)
-                     ImagePixel (i, x + c, y + r) = col;
-               m <<= 1;
-            }
-            x += 4;
-         } else if (*text == '.')
-         {
-            ImagePixel (i, x, y + 4) = col;
-            x += 2;
-         } else if (*text == ':')
-         {
-            ImagePixel (i, x, y + 1) = col;
-            ImagePixel (i, x, y + 3) = col;
-            x += 2;
-         }
-         text++;
-      }
+void ImageSmall(Image * i, int x, int y, int col, char *text)
+{                              // writes 4x6 digits
+       if (i && text)
+               while (*text) {
+                       char *p = strchr(smallc, toupper(*text));
+                       if (p) {
+                               int r;
+                               char m = 1;
+                               unsigned const char *b =
+                                   small + (p - smallc) * 3;
+                               for (r = 0; r < 5; r++) {
+                                       int c;
+                                       for (c = 0; c < 3; c++)
+                                               if (b[c] & m)
+                                                       ImagePixel(i, x + c,
+                                                                  y + r) = col;
+                                       m <<= 1;
+                               }
+                               x += 4;
+                       } else if (*text == '.') {
+                               ImagePixel(i, x, y + 4) = col;
+                               x += 2;
+                       } else if (*text == ':') {
+                               ImagePixel(i, x, y + 1) = col;
+                               ImagePixel(i, x, y + 3) = col;
+                               x += 2;
+                       }
+                       text++;
+               }
 }
 
-void ImageRect (Image * i, int x, int y, int w, int h, int c)
-{                               // fill a box
-   if (i && w && h)
-   {
-      while (h--)
-      {
-         unsigned char *p = &ImagePixel (i, x, y);
-         int n = w;
-         while (n--)
-            *p++ = c;
-         y++;
-      }
-   }
+void ImageRect(Image * i, int x, int y, int w, int h, int c)
+{                              // fill a box
+       if (i && w && h) {
+               while (h--) {
+                       unsigned char *p = &ImagePixel(i, x, y);
+                       int n = w;
+                       while (n--)
+                               *p++ = c;
+                       y++;
+               }
+       }
 }
 
 // PNG code
@@ -520,23 +495,20 @@ void ImageRect (Image * i, int x, int y, int w, int h, int c)
 static unsigned int crc_table[256];
 
       /* Make the table for a fast CRC. */
-void make_crc_table (void)
+void make_crc_table(void)
 {
-   unsigned int c;
-   int n,
-     k;
-   for (n = 0; n < 256; n++)
-   {
-      c = (unsigned int) n;
-      for (k = 0; k < 8; k++)
-      {
-         if (c & 1)
-            c = 0xedb88320L ^ (c >> 1);
-         else
-            c = c >> 1;
-      }
-      crc_table[n] = c;
-   }
+       unsigned int c;
+       int n, k;
+       for (n = 0; n < 256; n++) {
+               c = (unsigned int)n;
+               for (k = 0; k < 8; k++) {
+                       if (c & 1)
+                               c = 0xedb88320L ^ (c >> 1);
+                       else
+                               c = c >> 1;
+               }
+               crc_table[n] = c;
+       }
 }
 
       /* Update a running CRC with the bytes buf[0..len-1]--the CRC
@@ -544,168 +516,153 @@ void make_crc_table (void)
          is the 1's complement of the final running CRC (see the
          crc() routine below)). */
 
-unsigned int update_crc (unsigned int crc, unsigned char *buf, int len)
+unsigned int update_crc(unsigned int crc, unsigned char *buf, int len)
 {
-   unsigned int c = crc;
-   int n;
+       unsigned int c = crc;
+       int n;
 
-   for (n = 0; n < len; n++)
-      c = crc_table[(c ^ buf[n]) & 0xff] ^ (c >> 8);
+       for (n = 0; n < len; n++)
+               c = crc_table[(c ^ buf[n]) & 0xff] ^ (c >> 8);
 
-   return c;
+       return c;
 }
 
       /* Return the CRC of the bytes buf[0..len-1]. */
-unsigned int crc (unsigned char *buf, int len)
+unsigned int crc(unsigned char *buf, int len)
 {
-   return update_crc (0xffffffffL, buf, len) ^ 0xffffffffL;
+       return update_crc(0xffffffffL, buf, len) ^ 0xffffffffL;
 }
 
-unsigned int writecrc (int fh, char *ptr, int len, unsigned int c)
+unsigned int writecrc(int fh, char *ptr, int len, unsigned int c)
 {
-   write (fh, ptr, len);
-   while (len--)
-      c = crc_table[(c ^ *ptr++) & 0xff] ^ (c >> 8);
-   return c;
+       write(fh, ptr, len);
+       while (len--)
+               c = crc_table[(c ^ *ptr++) & 0xff] ^ (c >> 8);
+       return c;
 }
 
-void writechunk (int fh, char *typ, void *ptr, int len)
+void writechunk(int fh, char *typ, void *ptr, int len)
 {
-   unsigned int v = htonl (len),
-      crc;
-   write (fh, &v, 4);
-   crc = writecrc (fh, typ, 4, ~0);
-   if (len)
-      crc = writecrc (fh, ptr, len, crc);
-   v = htonl (~crc);
-   write (fh, &v, 4);
+       unsigned int v = htonl(len), crc;
+       write(fh, &v, 4);
+       crc = writecrc(fh, typ, 4, ~0);
+       if (len)
+               crc = writecrc(fh, ptr, len, crc);
+       v = htonl(~crc);
+       write(fh, &v, 4);
 }
 
 #ifndef USEZLIB
-unsigned int adlersum (unsigned char *p, int l, unsigned int adler)
+unsigned int adlersum(unsigned char *p, int l, unsigned int adler)
 {
-   unsigned int s1 = (adler & 65535),
-      s2 = (adler >> 16);
-   while (l--)
-   {
-      s1 += *p++;
-      s2 += s1;
-   }
-   s1 %= 65521;                 // can be delayed due to sensible "l" values...
-   s2 %= 65521;
-   return (s2 << 16) + s1;
+       unsigned int s1 = (adler & 65535), s2 = (adler >> 16);
+       while (l--) {
+               s1 += *p++;
+               s2 += s1;
+       }
+       s1 %= 65521;            // can be delayed due to sensible "l" values...
+       s2 %= 65521;
+       return (s2 << 16) + s1;
 }
 #endif
 
 // write PNG image
-void ImageWritePNG (Image * i, int fh, int back, int trans, char *comment)
+void ImageWritePNG(Image * i, int fh, int back, int trans, char *comment)
 {
-   make_crc_table ();
-   write (fh, "\211PNG\r\n\032\n", 8);  // PNG header
-   {                            // IHDR
-      struct
-      {
-         unsigned int width;
-         unsigned int height;
-         unsigned char depth;
-         unsigned char colour;
-         unsigned char compress;
-         unsigned char filter;
-         unsigned char interlace;
-      }
-      ihdr =
-      {
-      0, 0, 8, 3, 0, 0};
-      ihdr.width = htonl (i->W);
-      ihdr.height = htonl (i->H);
-      writechunk (fh, "IHDR", &ihdr, 13);
-   }
-   {                            // PLTE
-      unsigned int v = htonl (i->C * 3),
-         crc,
-         n;
-      write (fh, &v, 4);
-      crc = writecrc (fh, "PLTE", 4, ~0);
-      for (n = 0; n < i->C; n++)
-      {
-         v = htonl (i->Colour[n] << 8);
-         crc = writecrc (fh, (void *) &v, 3, crc);
-      }
-      v = htonl (~crc);
-      write (fh, &v, 4);
-   }
-   if (back >= 0)
-   {                            // bKGD
-      unsigned char b = back;
-      writechunk (fh, "bKGD", &b, 1);
-   }
-   if (*comment)
-   {                            // tEXt
-      char c[] = "Comment";
-      unsigned int v = htonl (strlen (c) + strlen (comment) + 1),
-         crc;
-      write (fh, &v, 4);
-      crc = writecrc (fh, "tEXt", 4, ~0);
-      crc = writecrc (fh, c, strlen (c) + 1, crc);
-      crc = writecrc (fh, comment, strlen (comment), crc);
-      v = htonl (~crc);
-      write (fh, &v, 4);
-   }
-   {                            // tRNS
-      unsigned char alpha[256];
-      int n;
-      for (n = 0; n < i->C; n++)
-                 // 4th palette byte treated as 0=opaque, 255-transparren
-         alpha[n] = 255 - (i->Colour[n] >> 24);
-      if (trans >= 0 && trans < i->C)
-                 // manual set of specific transparrent colour
-         alpha[trans] = 0;
-      writechunk (fh, "tRNS", alpha, i->C);
-   }
+       make_crc_table();
+       write(fh, "\211PNG\r\n\032\n", 8);      // PNG header
+       {                       // IHDR
+               struct {
+                       unsigned int width;
+                       unsigned int height;
+                       unsigned char depth;
+                       unsigned char colour;
+                       unsigned char compress;
+                       unsigned char filter;
+                       unsigned char interlace;
+               } ihdr = {
+               0, 0, 8, 3, 0, 0};
+               ihdr.width = htonl(i->W);
+               ihdr.height = htonl(i->H);
+               writechunk(fh, "IHDR", &ihdr, 13);
+       }
+       {                       // PLTE
+               unsigned int v = htonl(i->C * 3), crc, n;
+               write(fh, &v, 4);
+               crc = writecrc(fh, "PLTE", 4, ~0);
+               for (n = 0; n < i->C; n++) {
+                       v = htonl(i->Colour[n] << 8);
+                       crc = writecrc(fh, (void *)&v, 3, crc);
+               }
+               v = htonl(~crc);
+               write(fh, &v, 4);
+       }
+       if (back >= 0) {        // bKGD
+               unsigned char b = back;
+               writechunk(fh, "bKGD", &b, 1);
+       }
+       if (*comment) {         // tEXt
+               char c[] = "Comment";
+               unsigned int v = htonl(strlen(c) + strlen(comment) + 1), crc;
+               write(fh, &v, 4);
+               crc = writecrc(fh, "tEXt", 4, ~0);
+               crc = writecrc(fh, c, strlen(c) + 1, crc);
+               crc = writecrc(fh, comment, strlen(comment), crc);
+               v = htonl(~crc);
+               write(fh, &v, 4);
+       }
+       {                       // tRNS
+               unsigned char alpha[256];
+               int n;
+               for (n = 0; n < i->C; n++)
+                       // 4th palette byte treated as 0=opaque, 255-transparren
+                       alpha[n] = 255 - (i->Colour[n] >> 24);
+               if (trans >= 0 && trans < i->C)
+                       // manual set of specific transparrent colour
+                       alpha[trans] = 0;
+               writechunk(fh, "tRNS", alpha, i->C);
+       }
 #ifndef USEZLIB
-   {                            // IDAT
-      unsigned int v = htonl (i->H * (i->L + 5) + 6),
-         crc,
-         adler = 1,
-         n;
-      unsigned char *p = i->Image;
-      write (fh, &v, 4);
-      crc = writecrc (fh, "IDAT", 4, ~0);
-      crc = writecrc (fh, "\170\001", 2, crc);  // zlib header for deflate
-      n = i->H;
-      while (n--)
-      {
-         unsigned char h[5];
-         h[0] = (n ? 0 : 1);    // last chunk in deflate, un compressed
-         h[1] = (i->L & 255);   // Len, LSB first as per deflate spec
-         h[2] = (i->L / 256);
-         h[3] = ~(i->L & 255);  // Inverse of Len
-         h[4] = ~(i->L / 256);
-         *p = 0;                // filter 0 (NONE)
-         crc = writecrc (fh, h, 5, crc);
-         crc = writecrc (fh, p, i->L, crc);
-         adler = adlersum (p, i->L, adler);
-         p += i->L;
-      }
-      v = htonl (adler);
-      crc = writecrc (fh, (void *) &v, 4, crc);
-      v = htonl (~crc);
-      write (fh, &v, 4);
-   }
+       {                       // IDAT
+               unsigned int v = htonl(i->H * (i->L + 5) + 6),
+                   crc, adler = 1, n;
+               unsigned char *p = i->Image;
+               write(fh, &v, 4);
+               crc = writecrc(fh, "IDAT", 4, ~0);
+               crc = writecrc(fh, "\170\001", 2, crc); // zlib header for deflate
+               n = i->H;
+               while (n--) {
+                       unsigned char h[5];
+                       h[0] = (n ? 0 : 1);     // last chunk in deflate, un compressed
+                       h[1] = (i->L & 255);    // Len, LSB first as per deflate spec
+                       h[2] = (i->L / 256);
+                       h[3] = ~(i->L & 255);   // Inverse of Len
+                       h[4] = ~(i->L / 256);
+                       *p = 0; // filter 0 (NONE)
+                       crc = writecrc(fh, h, 5, crc);
+                       crc = writecrc(fh, p, i->L, crc);
+                       adler = adlersum(p, i->L, adler);
+                       p += i->L;
+               }
+               v = htonl(adler);
+               crc = writecrc(fh, (void *)&v, 4, crc);
+               v = htonl(~crc);
+               write(fh, &v, 4);
+       }
 #else
-   {                            // IDAT
-      unsigned char *temp;
-      unsigned long n;
-      for (n = 0; n < i->H; n++)
-         i->Image[n * i->L] = 0;        // filter 0
-      n = i->H * i->L * 1001 / 1000 + 12;
-      temp = malloc (n);
-      if (compress2 (temp, &n, i->Image, i->L * i->H, 9) != Z_OK)
-         fprintf (stderr, "Deflate error\n");
-      else
-         writechunk (fh, "IDAT", temp, n);
-      free (temp);
-   }
+       {                       // IDAT
+               unsigned char *temp;
+               unsigned long n;
+               for (n = 0; n < i->H; n++)
+                       i->Image[n * i->L] = 0; // filter 0
+               n = i->H * i->L * 1001 / 1000 + 12;
+               temp = malloc(n);
+               if (compress2(temp, &n, i->Image, i->L * i->H, 9) != Z_OK)
+                       fprintf(stderr, "Deflate error\n");
+               else
+                       writechunk(fh, "IDAT", temp, n);
+               free(temp);
+       }
 #endif
-   writechunk (fh, "IEND", 0, 0);       // IEND
+       writechunk(fh, "IEND", 0, 0);   // IEND
 }