about summary refs log tree commit diff
path: root/converter/other/bmepsoe.c
diff options
context:
space:
mode:
Diffstat (limited to 'converter/other/bmepsoe.c')
-rw-r--r--converter/other/bmepsoe.c560
1 files changed, 0 insertions, 560 deletions
diff --git a/converter/other/bmepsoe.c b/converter/other/bmepsoe.c
deleted file mode 100644
index 02bf39aa..00000000
--- a/converter/other/bmepsoe.c
+++ /dev/null
@@ -1,560 +0,0 @@
-/* 
- * This was adapted for Netpbm from bmpesoe.c in Dirk Krause's Bmeps package
- * by Bryan Henderson on 2005.01.05.
- *
- * Differences:
- *   - doesn't require Bmeps configuration stuff (bmepsco.h)
- *   - doesn't include pngeps.h
- *   - doesn't have test scaffold code
- *   - a few compiler warnings fixed
- *
- * Copyright (C) 2000 - Dirk Krause
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- * In this package the copy of the GNU Library General Public License
- * is placed in file COPYING.
- */
-
-#include "bmepsoe.h"
-
-#define RL_RUNLENGTH(i) (257 - (i))
-#define RL_STRINGLENGTH(i) ((i) - 1)
-#define RL_MAXLENGTH (127)
-
-#define FINALOUTPUT(c) fputc((c),o->out)
-
-void oe_init(Output_Encoder *o, FILE *out, int mode, int rate, int *buf,
-  Bytef *flib, size_t flis, Bytef *flob, size_t flos
-)
-{
-  
-  o->out = out;
-  o->mode = mode;
-  o->textpos = 0;
-  o->a85_value = 0UL; o->a85_consumed = 0;
-  o->a85_0 = 1UL;
-  o->a85_1 = 85UL;
-  o->a85_2 = 85UL * 85UL;
-  o->a85_3 = 85UL * o->a85_2;
-  o->a85_4 = 85UL * o->a85_3;
-  o->rl_lastbyte = 0;
-  o->rl_buffer = buf;
-  o->rl_bufused = 0;
-  o->rl_state = 0;
-  o->bit_value = 0;
-  o->bit_consumed = 0;
-  o->flate_rate = rate;
-  if(o->flate_rate < 0) {
-    o->mode &= (~OE_FLATE);
-  }
-  if(o->flate_rate > 9) {
-    o->flate_rate = 9;
-  }
-  if((o->mode & OE_FLATE) && flib && flis && flob && flos) {
-    (o->flate_stream).zfree = (free_func)0;
-    (o->flate_stream).zalloc = (alloc_func)0;
-    (o->flate_stream).opaque = (voidpf)0;
-    if(deflateInit((&(o->flate_stream)),o->flate_rate) != Z_OK) {
-      o->mode &= (~OE_FLATE);
-    }
-  }
-  o->fl_i_buffer = flib;
-  o->fl_o_buffer = flob;
-  o->fl_i_size   = flis;
-  o->fl_o_size   = flos;
-  o->fl_i_used   = 0;
-  
-}
-
-static char hexdigits[] = {
-  "0123456789ABCDEF"
-};
-
-static void asciihex_add(Output_Encoder *o, int b)
-{
-  
-  FINALOUTPUT(hexdigits[(b/16)]) ;
-  FINALOUTPUT(hexdigits[(b%16)]) ;
-  o->textpos = o->textpos + 2;
-  if(o->textpos >= 64) {
-    FINALOUTPUT('\n') ;
-    o->textpos = 0;
-  }
-  
-}
-
-static void asciihex_flush(Output_Encoder *o)
-{
-  
-  if(o->textpos > 0) {
-    FINALOUTPUT('\n') ;
-    o->textpos = 0;
-  }
-  
-}
-
-static char   ascii85_char(unsigned long x)
-{
-  unsigned u;
-  int      i;
-  char back;
-  back = (char)0;
-  u = (unsigned)x;
-  i = (int)u;
-  i += 33;
-  back = (char)i;
-  return back;
-}
-
-
-
-static void
-ascii85_output(Output_Encoder * const o) {
-    unsigned long value;
-
-    value = o->a85_value;  /* initial value */
-
-    if (value == 0 && o->a85_consumed == 4) {
-        FINALOUTPUT('z');
-        ++o->textpos;
-    } else {
-        unsigned int i;
-        unsigned int j;
-        char buffer[6];
-
-        buffer[0] = ascii85_char(value / (o->a85_4));
-        value = value % (o->a85_4);
-        buffer[1] = ascii85_char(value / (o->a85_3));
-        value = value % (o->a85_3);
-        buffer[2] = ascii85_char(value / (o->a85_2));
-        value = value % (o->a85_2);
-        buffer[3] = ascii85_char(value / (o->a85_1));
-        value = value % (o->a85_1);
-        buffer[4] = ascii85_char(value);
-        buffer[5] = '\0';
-
-        i = o->a85_consumed + 1;
-        o->textpos += i;
-
-        for (j = 0; j < i; ++j)
-            FINALOUTPUT(buffer[j]);
-    }
-    if (o->textpos >= 64) {
-        FINALOUTPUT('\n');
-        o->textpos = 0;
-    }
-}
-
-
-
-static void ascii85_add(Output_Encoder *o, int b)
-{
-  unsigned u;
-  unsigned long ul;
-  
-  u = (unsigned)b;
-  ul = (unsigned long)u;
-  o->a85_value = 256UL * (o->a85_value) + ul;
-  o->a85_consumed = o->a85_consumed + 1;
-  if(o->a85_consumed >= 4) {
-    ascii85_output(o);
-    o->a85_value = 0UL;
-    o->a85_consumed = 0;
-  }
-  
-}
-
-static void ascii85_flush(Output_Encoder *o)
-{
-  int i;
-  
-  if(o->a85_consumed > 0) {
-    i = o->a85_consumed;
-    while(i < 4) {
-      o->a85_value = 256UL * o->a85_value;
-      i++;
-    }
-    ascii85_output(o);
-    o->a85_value = 0UL;
-    o->a85_consumed = 0;
-  }
-  if(o->textpos > 0) {
-    FINALOUTPUT('\n') ;
-    o->textpos = 0;
-  }
-  
-}
-
-static void after_flate_add(Output_Encoder *o, int b)
-{
-  
-  if(o->mode & OE_ASC85) {
-    ascii85_add(o,b);
-  } else {
-    asciihex_add(o,b);
-  }
-  
-}
-
-
-
-static void
-do_flate_flush(Output_Encoder * const oP,
-               int              const final) {
-
-    Bytef *iptr, *optr, *xptr;
-    unsigned long is;
-    unsigned long os;
-    unsigned long xs;
-    int err;
-    int mustContinue;
-  
-    iptr = oP->fl_i_buffer; optr = oP->fl_o_buffer;
-    is = oP->fl_i_size; os = oP->fl_o_size;
-  
-    if (iptr && optr && is && os) {
-        is = oP->fl_i_used;
-        if (is || final) {
-            oP->flate_stream.next_in = iptr;
-            oP->flate_stream.avail_in = is;
-            if (final) { 
-                mustContinue = 1;
-                while (mustContinue) {
-                    oP->flate_stream.next_out = optr;
-                    oP->flate_stream.avail_out = os;
-                    mustContinue = 0;
-                    err = deflate(&oP->flate_stream, Z_FINISH);
-                    switch (err) {
-                    case Z_STREAM_END: { 
-                        xptr = optr;
-          
-                        xs = os - (oP->flate_stream.avail_out);
-                        while (xs--) {
-                            after_flate_add(oP, *(xptr++));
-                        }
-                    } break;
-                    case Z_OK : {
-                        mustContinue = 1;
-                        xptr = optr;
-          
-                        xs = os - (oP->flate_stream.avail_out);
-                        while (xs--) {
-                            after_flate_add(oP, *(xptr++));
-                        }
-                    } break;
-                    default : { 
-                    } break;
-                    }
-                }
-            } else { 
-                mustContinue = 1;
-                while (mustContinue) {
-                    mustContinue = 0;
-                    oP->flate_stream.avail_out = os;
-                    oP->flate_stream.next_out = optr;
-                    err = deflate(&oP->flate_stream, 0);
-                    switch (err) {
-                    case Z_OK: {
-                        if (oP->flate_stream.avail_in) {
-                            mustContinue = 1;
-                        }
-          
-                        xptr = optr; xs = os - (oP->flate_stream.avail_out);
-                        while (xs--) {
-                            after_flate_add(oP, *(xptr++));
-                        }
-                    } break;
-                    default : { 
-                    } break;
-                    }
-                }
-            }
-        }
-    }
-}
-
-
-
-static void flate_add(Output_Encoder *o, int b)
-{
-  Byte bt;
-  Bytef *btptr;
-  
-  btptr = o->fl_i_buffer;
-  if(btptr) { 
-    bt = (Byte)b; 
-    btptr[(o->fl_i_used)] = bt;
-    o->fl_i_used += 1UL;
-    if(o->fl_i_used >= o->fl_i_size) {
-      do_flate_flush(o, 0);
-      o->fl_i_used = 0UL;
-    }
-  }
-  
-}
-
-static void after_flate_flush(Output_Encoder *o)
-{
-  
-  if(o->mode & OE_ASC85) {
-    ascii85_flush(o);
-  } else {
-    asciihex_flush(o);
-  }
-  
-}
-
-static void flate_flush(Output_Encoder *o)
-{
-  do_flate_flush(o,1);
-  deflateEnd(&(o->flate_stream));
-  after_flate_flush(o);
-}
-
-
-static void after_rl_add(Output_Encoder *o, int b)
-{
-  
-  if(o->mode & OE_FLATE) {
-    flate_add(o,b);
-  } else {
-    after_flate_add(o,b);
-  }
-  
-}
-
-static void rl_add(Output_Encoder *o, int b)
-{
-  int lgt, i;
-  int *buffer;
-  /* ##### */
-  
-  buffer = o->rl_buffer;
-  lgt = o->rl_bufused;
-  if(buffer) {
-    
-    if(lgt > 0) {
-      if(o->rl_lastbyte == b) {
-    switch(o->rl_state) {
-      case 2: {
-        buffer[lgt++] = b;
-        o->rl_bufused = lgt;
-        o->rl_state = 2;
-        o->rl_lastbyte = b;
-        if(lgt >= RL_MAXLENGTH) {
-          after_rl_add(o, RL_RUNLENGTH(lgt));
-          after_rl_add(o, b);
-          o->rl_bufused = 0;
-          o->rl_state = 0;
-          o->rl_lastbyte = b;
-        }
-      } break;
-      case 1: {
-        buffer[lgt++] = b;
-        o->rl_bufused = lgt;
-        o->rl_state = 2;
-        o->rl_lastbyte = b;
-        lgt = lgt - 3;
-        if(lgt > 0) {
-          after_rl_add(o, RL_STRINGLENGTH(lgt));
-          for(i = 0; i < lgt; i++) {
-        after_rl_add(o, buffer[i]);
-          }
-          buffer[0] = buffer[1] = buffer[2] = b;
-          o->rl_bufused = 3;
-          o->rl_state = 2;
-          o->rl_lastbyte = b;
-        }
-      } break;
-      default: {
-        buffer[lgt++] = b;
-        o->rl_bufused = lgt;
-        o->rl_state = 1;
-        o->rl_lastbyte = b;
-        if(lgt >= RL_MAXLENGTH) {
-          lgt = lgt - 2;
-          after_rl_add(o, RL_STRINGLENGTH(lgt));
-          for(i = 0; i < lgt; i++) {
-        after_rl_add(o, buffer[i]);
-          }
-          buffer[0] = buffer[1] = b;
-          o->rl_bufused = 2;
-          o->rl_state = 1;
-          o->rl_lastbyte = b;
-        }
-      } break;
-    }
-      } else {
-    if(o->rl_state == 2) {
-      after_rl_add(o, RL_RUNLENGTH(lgt));
-      after_rl_add(o, (o->rl_lastbyte));
-      buffer[0] = b; o->rl_bufused = 1; o->rl_lastbyte = b;
-      o->rl_state = 0;
-    } else {
-      buffer[lgt++] = b;
-      o->rl_bufused = lgt;
-      o->rl_lastbyte = b;
-      if(lgt >= RL_MAXLENGTH) {
-        after_rl_add(o, RL_STRINGLENGTH(lgt));
-        for(i = 0; i < lgt; i++) {
-          after_rl_add(o, buffer[i]);
-        }
-        o->rl_bufused = 0;
-      }
-      o->rl_state = 0;
-    }
-      }
-    } else {
-      buffer[0] = b;
-      o->rl_bufused = 1;
-      o->rl_lastbyte = b;
-    }
-    o->rl_lastbyte = b;
-    
-  } else { 
-    after_rl_add(o,0);
-    after_rl_add(o,b);
-  }
-  
-}
-
-static void after_rl_flush(Output_Encoder *o)
-{
-  
-  if(o->mode & OE_FLATE) {
-    flate_flush(o);
-  } else {
-    after_flate_flush(o);
-  }
-  
-}
-
-static void rl_flush(Output_Encoder *o)
-{
-  int lgt;
-  int *buffer;
-  int i;
-  
-  buffer = o->rl_buffer;
-  lgt = o->rl_bufused;
-  if(lgt > 0) {
-    if(o->rl_state == 2) {
-      i = o->rl_lastbyte;
-      after_rl_add(o,RL_RUNLENGTH(lgt));
-      after_rl_add(o,i);
-    } else {
-      after_rl_add(o,RL_STRINGLENGTH(lgt));
-      for(i = 0; i < lgt; i++) {
-    after_rl_add(o,buffer[i]);
-      }
-    }
-  }
-  after_rl_flush(o);
-  
-}
-
-
-
-static void
-internal_byte_add(Output_Encoder * const oP,
-                  int              const b) {
-  
-    if (oP->mode & OE_RL)
-        rl_add(oP, b);
-    else
-        after_rl_add(oP, b);
-}
-
-
-
-static void internal_byte_flush(Output_Encoder *o)
-{
-  
-  if((o->mode) & OE_RL) {
-    rl_flush(o);
-  } else {
-    after_rl_flush(o);
-  }
-  
-}
-
-
-
-void
-oe_bit_add(Output_Encoder * const oP,
-           int              const b) {
-  
-    oP->bit_value = 2 * oP->bit_value + (b ? 1 : 0);
-    oP->bit_consumed = oP->bit_consumed + 1;
-    if (oP->bit_consumed >= 8) {
-        oP->bit_consumed = 0;
-        internal_byte_add(oP, oP->bit_value);
-        oP->bit_value = 0;
-    }
-}
-
-
-
-void oe_bit_flush(Output_Encoder *o)
-{
-  
-  if(o->bit_consumed) {
-    int v, i;
-    v = o->bit_value;
-    i = o->bit_consumed;
-    while(i < 8) {
-      i++;
-      v = v * 2;
-    }
-    internal_byte_add(o,v);
-    o->bit_value = 0;
-    o->bit_consumed = 0;
-  }
-  internal_byte_flush(o);
-  
-}
-
-
-
-void
-oe_byte_add(Output_Encoder * const oP,
-            int              const b) {
-  
-    if (oP->bit_consumed) {
-        int testval;
-        int i;
-        testval = 128;
-        for (i = 0; i < 8; ++i) {
-            if (b & testval) {
-                oe_bit_add(oP, 1);
-            } else {
-                oe_bit_add(oP, 0);
-            }
-            testval = testval / 2;
-        }
-    } else {
-        internal_byte_add(oP, b);
-    }
-}
-
-
-
-void oe_byte_flush(Output_Encoder *o)
-{
-  
-  oe_bit_flush(o);
-  
-}