Re: Problem with BZip2 library

new topic     » topic index » view thread      » older message » newer message

This is a multi-part message in MIME format.

------=_NextPart_000_000D_01C39126.B1FF7700
	boundary="----=_NextPart_001_000E_01C39126.B1FF7700"


------=_NextPart_001_000E_01C39126.B1FF7700
	charset="iso-8859-1"

Attached is a re-write I did of this library, its written in english and =
doesn't rely on any extra libraries, like Aku's does. The bzip2 dll file =
is still required. Try using this, it may work better for you.

(this is pulled from the file:)
-- available functions:
--
-- [func] bzlibVersion()
-- [func] bzopen(sequence fname, sequence mode)
-- [func] bzread(atom fn, integer len)
-- [func] bzwrite(atom fn, sequence buffer)
-- [func] bzflush(atom fn)
-- [proc] bzclose(atom fn)
-- [func] bzerror(atom fn, integer errnum)
-- [func] bzgetc(atom fn)
-- [func] bzgetx(atom fn, integer bytes)
-- [proc] bzputs(atom fn, sequence s)


  ----- Original Message -----=20
  From: cheetah_heels at myrealbox.com=20
  To: EUforum=20
  Sent: Monday, October 13, 2003 12:28 AM
  Subject: Aku: Problem with BZip2 library


=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The Euphoria Mailing List =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20

  Aku (or anyone else who can help):



  I'm having trouble getting your BZ2 library working with Eu 2.4.  I'm =
still a beginner, so I don't quite understand the problem, but here's =
the ex.err:



  -----------------------------ex.err-----------------------------

  C:\Program Files\Euphoria\include\dll.e:54 in function define_c_func() =


  Invalid return type=20

      lib =3D 268435456

      routine_name =3D =
{66'B',90'Z',50'2',95'_',98'b',122'z',108'l',105'i',98'b',

  86'V',101'e',114'r',115's',105'i',111'o',110'n'}

      arg_sizes =3D {}

      return_type =3D 268369921



  ... called from C:\Documents and Settings\LeakTrac =
Software\Desktop\dlla.e:32 in procedure funcbaru() =20

      fildll =3D {98'b',122'z',50'2'}

      namafunc =3D =
{66'B',90'Z',50'2',95'_',98'b',122'z',108'l',105'i',98'b',

  86'V',101'e',114'r',115's',105'i',111'o',110'n'}

      partype =3D {}

      parbalik =3D 268369921

      dll_pfil =3D 268435456

      dll_ri =3D <no value>



  ... called from C:\Documents and Settings\LeakTrac =
Software\Desktop\bz2.e:171=20



  Global & Local Variables



   C:\Program Files\Euphoria\include\misc.e:

      pretty_end_col =3D <no value>

      pretty_chars =3D <no value>

      pretty_start_col =3D <no value>

      pretty_level =3D <no value>

      pretty_file =3D <no value>

      pretty_ascii =3D <no value>

      pretty_indent =3D <no value>

      pretty_ascii_min =3D <no value>

      pretty_ascii_max =3D <no value>

      pretty_fp_format =3D <no value>

      pretty_int_format =3D <no value>

      pretty_line =3D <no value>



   C:\Program Files\Euphoria\include\file.e:

      SLASH =3D 92'\'

      my_dir =3D -2



   C:\Program Files\Euphoria\include\machine.e:

      mem =3D 660992

      check_calls =3D 1



   C:\Program Files\Euphoria\include\get.e:

      input_file =3D <no value>

      input_string =3D <no value>

      string_next =3D <no value>

      ch =3D <no value>



   C:\Program Files\Euphoria\include\database.e:

      current_db =3D -1

      current_table =3D -1

      db_names =3D {}

      db_file_nums =3D {}

      db_lock_methods =3D {}

      current_lock =3D <no value>

      key_pointers =3D <no value>

      db_fatal_id =3D 0

      mem0 =3D 661040

      mem1 =3D 661041

      mem2 =3D 661042

      mem3 =3D 661043

      memseq =3D {661040,4}



   C:\Program Files\Euphoria\include\msgbox.e:

      lib =3D 2010382336

      msgbox_id =3D 0

      get_active_id =3D 1



   C:\Documents and Settings\LeakTrac Software\Desktop\bz2.e:

      BLUE =3D 1

      CYAN =3D 3

      RED =3D 4

      BROWN =3D 6

      BRIGHT_BLUE =3D 9

      BRIGHT_CYAN =3D 11

      BRIGHT_RED =3D 12

      YELLOW =3D 14

      input_file =3D <no value>

      input_string =3D <no value>

      string_next =3D <no value>

      ch =3D <no value>

      check_calls =3D 1

      SLASH =3D 92'\'

      my_dir =3D -2

      tp =3D <no value>

      tp2 =3D <no value>

      pppath =3D 92'\'

      hapuscon_kernel32 =3D 2011561984

      hapuscon_freeconsole =3D 2

      hapuscon_tp =3D 0

      euob_hasil =3D 0

      aku_getval_tp =3D <no value>



   C:\Documents and Settings\LeakTrac Software\Desktop\machine2.e:

      ppi =3D 647696



   C:\Documents and Settings\LeakTrac Software\Desktop\dlla.e:

      daftardllterdeklarasi =3D {}

      rib_dll =3D -1

      dllbalik =3D <no value>

  ---------------------------end ex.err----------------------------



  Can you help?  Thanks in advance!



  Andrew Hall



--^^---------------------------------------------------------------
This email was sent to: g.haberek at comcast.net

EASY UNSUBSCRIBE click here: http://topica.com/u/?b1dd66.b3j1ap.Zy5oYWJl
Or send an email to: EUforum-unsubscribe at topica.com

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^^---------------------------------------------------------------


------=_NextPart_001_000E_01C39126.B1FF7700
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2600.0" name=3DGENERATOR>
<STYLE>@font-face {
	font-family: Tahoma;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; }
P.MsoNormal {
	FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: Arial
}
LI.MsoNormal {
	FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: Arial
}
DIV.MsoNormal {
	FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: Arial
}
A:link {
	COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
	COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
	COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
	COLOR: purple; TEXT-DECORATION: underline
}
SPAN.EmailStyle17 {
	FONT-WEIGHT: normal; COLOR: olive; FONT-STYLE: normal; FONT-FAMILY: =
Tahoma; TEXT-DECORATION: none
}
DIV.Section1 {
	page: Section1
}
</STYLE>
</HEAD>
<BODY lang=3DEN-US vLink=3Dpurple link=3Dblue bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Attached is a re-write I did of this =
library, its=20
written in english and doesn't rely on any extra libraries, like Aku's =
does. The=20
bzip2 dll file is still required. Try using this, it may work better for =

you.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>(this is pulled from the =
file:)</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>-- available=20
functions:<BR>--<BR>--&nbsp;[func]&nbsp;bzlibVersion()<BR>--&nbsp;[func]&=
nbsp;bzopen(sequence=20
fname, sequence mode)<BR>--&nbsp;[func]&nbsp;bzread(atom fn, integer=20
len)<BR>--&nbsp;[func]&nbsp;bzwrite(atom fn, sequence=20
buffer)<BR>--&nbsp;[func]&nbsp;bzflush(atom=20
fn)<BR>--&nbsp;[proc]&nbsp;bzclose(atom =
fn)<BR>--&nbsp;[func]&nbsp;bzerror(atom=20
fn, integer errnum)<BR>--&nbsp;[func]&nbsp;bzgetc(atom=20
fn)<BR>--&nbsp;[func]&nbsp;bzgetx(atom fn, integer=20
bytes)<BR>--&nbsp;[proc]&nbsp;bzputs(atom fn, sequence s)</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style=3D"FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV=20
  style=3D"BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: =
black"><B>From:</B>=20
  <A title=3Dcheetah_heels at myrealbox.com=20
  =
href=3D"mailto:cheetah_heels at myrealbox.com">cheetah_heels at myrealbox.com</=
A>=20
  </DIV>
  <DIV style=3D"FONT: 10pt arial"><B>To:</B> <A =
title=3DEUforum at topica.com=20
  href=3D"mailto:EUforum at topica.com">EUforum</A> </DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Sent:</B> Monday, October 13, 2003 =
12:28=20
  AM</DIV>
  <DIV style=3D"FONT: 10pt arial"><B>Subject:</B> Aku: Problem with =
BZip2=20
  library</DIV>
  <DIV><BR></DIV><PRE>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The Euphoria =
Mailing List =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20
</PRE>
  <DIV class=3DSection1>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: Tahoma">Aku (or =
anyone else=20
  who can help):</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: Tahoma">I=92m =
having trouble=20
  getting your BZ2 library working with Eu 2.4.&nbsp; I=92m still a =
beginner, so I=20
  don=92t quite understand the problem, but here=92s the =
ex.err:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">-----------------------------ex.err-----------------------------<=
/SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">C:\Program=20
  Files\Euphoria\include\dll.e:54 in function define_c_func() =
</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: Tahoma">Invalid =
return type=20
  </SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  lib =3D 268435456</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  routine_name =3D=20
  =
{66'B',90'Z',50'2',95'_',98'b',122'z',108'l',105'i',98'b',</SPAN></FONT><=
/P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">86'V',101'e',114'r',115's',105'i',111'o',110'n'}</SPAN></FONT></P=
>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  arg_sizes =3D {}</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  return_type =3D 268369921</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: Tahoma">... =
called from=20
  C:\Documents and Settings\LeakTrac Software\Desktop\dlla.e:32 in =
procedure=20
  funcbaru()&nbsp; </SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  fildll =3D {98'b',122'z',50'2'}</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  namafunc =3D=20
  =
{66'B',90'Z',50'2',95'_',98'b',122'z',108'l',105'i',98'b',</SPAN></FONT><=
/P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">86'V',101'e',114'r',115's',105'i',111'o',110'n'}</SPAN></FONT></P=
>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  partype =3D {}</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  parbalik =3D 268369921</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  dll_pfil =3D 268435456</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  dll_ri =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: Tahoma">... =
called from=20
  C:\Documents and Settings\LeakTrac Software\Desktop\bz2.e:171=20
  </SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: Tahoma">Global =
&amp; Local=20
  Variables</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;C:\Program=20
  Files\Euphoria\include\misc.e:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_end_col =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_chars =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_start_col =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_level =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_file =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_ascii =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_indent =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_ascii_min =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_ascii_max =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_fp_format =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_int_format =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pretty_line =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;C:\Program=20
  Files\Euphoria\include\file.e:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  SLASH =3D 92'\'</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  my_dir =3D -2</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;C:\Program=20
  Files\Euphoria\include\machine.e:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  mem =3D 660992</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  check_calls =3D 1</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;C:\Program=20
  Files\Euphoria\include\get.e:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  input_file =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  input_string =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  string_next =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  ch =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;C:\Program=20
  Files\Euphoria\include\database.e:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  current_db =3D -1</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  current_table =3D -1</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  db_names =3D {}</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  db_file_nums =3D {}</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  db_lock_methods =3D {}</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  current_lock =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  key_pointers =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  db_fatal_id =3D 0</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  mem0 =3D 661040</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;=20
  &nbsp;mem1 =3D 661041</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  mem2 =3D 661042</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  mem3 =3D 661043</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  memseq =3D {661040,4}</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;C:\Program=20
  Files\Euphoria\include\msgbox.e:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  lib =3D 2010382336</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  msgbox_id =3D 0</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  get_active_id =3D 1</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;C:\Documents=20
  and Settings\LeakTrac Software\Desktop\bz2.e:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  BLUE =3D 1</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  CYAN =3D 3</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  RED =3D 4</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  BROWN =3D 6</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  BRIGHT_BLUE =3D 9</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  BRIGHT_CYAN =3D 11</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  BRIGHT_RED =3D 12</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  YELLOW =3D 14</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  input_file =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  input_string =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  string_next =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  ch =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  check_calls =3D 1</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  SLASH =3D 92'\'</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  my_dir =3D -2</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  tp =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  tp2 =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  pppath =3D 92'\'</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  hapuscon_kernel32 =3D 2011561984</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  hapuscon_freeconsole =3D 2</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  hapuscon_tp =3D 0</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  euob_hasil =3D 0</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  aku_getval_tp =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;C:\Documents=20
  and Settings\LeakTrac Software\Desktop\machine2.e:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  ppi =3D 647696</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;C:\Documents=20
  and Settings\LeakTrac Software\Desktop\dlla.e:</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  daftardllterdeklarasi =3D {}</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  rib_dll =3D -1</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">&nbsp;&nbsp;&nbsp;=20
  dllbalik =3D &lt;no value&gt;</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma">---------------------------end=20
  ex.err----------------------------</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: Tahoma">Can you =
help?&nbsp;=20
  Thanks in advance!</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: =
Tahoma"></SPAN></FONT>&nbsp;</P>
  <P class=3DMsoNormal><FONT face=3DTahoma color=3Dolive size=3D2><SPAN=20
  style=3D"FONT-SIZE: 10pt; COLOR: olive; FONT-FAMILY: Tahoma">Andrew=20
  Hall</SPAN></FONT></P>
  <P class=3DMsoNormal><FONT face=3DArial size=3D3><SPAN=20
  style=3D"FONT-SIZE: =
12pt"></SPAN></FONT>&nbsp;</P></DIV><PRE>--^^----------------------------=
-----------------------------------
This email was sent to: g.haberek at comcast.net

EASY UNSUBSCRIBE click here: <A =
href=3D"http://topica.com/u/?b1dd66.b3j1ap.Zy5oYWJl">http://topica.com/u/=
?b1dd66.b3j1ap.Zy5oYWJl</A>
Or send an email to: EUforum-unsubscribe at topica.com

TOPICA - Start your own email discussion group. FREE!
<A =
href=3D"http://www.topica.com/partner/tag02/create/index2.html">http://ww=
w.topica.com/partner/tag02/create/index2.html</A>
--^^---------------------------------------------------------------</PRE>=

------=_NextPart_001_000E_01C39126.B1FF7700--

------=_NextPart_000_000D_01C39126.B1FF7700
Content-Type: application/octet-stream;
	name="bz2.ew"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="bz2.ew"

-- rewrite of Aku Saya's bz2 wrapper by Greg Haberek
-- simpler, smaller, and written in english :)
-- first, I wrapped each function in the dll,
-- then I wrote functions that emulate Euphoria's native functions
-- email any bugs with *this* library (not bz2) to me at =
g.haberek at comcast.net

-- available functions:
--
--	[func]	bzlibVersion()
--	[func]	bzopen(sequence fname, sequence mode)
--	[func]	bzread(atom fn, integer len)
--	[func]	bzwrite(atom fn, sequence buffer)
--	[func]	bzflush(atom fn)
--	[proc]	bzclose(atom fn)
--	[func]	bzerror(atom fn, integer errnum)
--	[func]	bzgetc(atom fn)
--	[func]	bzgetx(atom fn, integer bytes)
--	[proc]	bzputs(atom fn, sequence s)


include dll.e
include machine.e

without warning

function replace(sequence in, atom this, atom that)
sequence out
   =20
    out =3D {}
   =20
    for i =3D 1 to length(in) do
        if in[i] =3D this then
            out &=3D that
        else
            out &=3D in[i]
        end if
    end for

    return out
end function

function peek_string(atom mem)
sequence s
integer pos, c

    s =3D ""
    pos =3D 0
   =20
    while 1 do
   =20
        c =3D peek(mem+pos)
        if c =3D 0 then
            exit
        else
            s &=3D c
            pos +=3D 1
        end if
   =20
    end while

    return s
end function

function getx(integer fn, integer bytes)
sequence out
integer char

    out =3D ""
    for i =3D 1 to bytes do
   =20
        char =3D getc(fn)
        if char =3D -1 then
            exit
        else
            out &=3D char
        end if
   =20
    end for

    return out
end function

procedure abort_err(sequence msg)
   =20
    puts(1, msg & '\n')
    abort(1)
   =20
end procedure

function link_dll(sequence name)
atom id

    id =3D open_dll(name)
    if id =3D -1 then
        abort_err( "error opening " & name )
    end if

    return id
end function

function link_c_func( atom lib, sequence name, sequence params, atom ret =
)
atom id

    id =3D define_c_func( lib, name, params, ret )
    if id =3D -1 then
        abort_err( "error linking " & name )           =20
    end if

    return id
end function

function link_c_proc( atom lib, sequence name, sequence params )
atom id

    id =3D define_c_proc( lib, name, params )
    if id =3D -1 then
        abort_err( "error linking " & name )
    end if
   =20
    return id
end function


global constant

    bz2_dll =3D link_dll("bz2.dll"),
   =20
    bz2_bzlibVersion    =3D link_c_func( bz2_dll, "BZ2_bzlibVersion", =
{}, C_POINTER ),
    bz2_bzopen          =3D link_c_func( bz2_dll, "BZ2_bzopen", =
{C_POINTER, C_POINTER}, C_POINTER ),
    bz2_bzread          =3D link_c_func( bz2_dll, "BZ2_bzread", =
{C_POINTER, C_POINTER, C_INT}, C_INT ),
    bz2_bzwrite         =3D link_c_func( bz2_dll, "BZ2_bzwrite", =
{C_POINTER, C_POINTER, C_INT}, C_INT ),
    bz2_bzflush         =3D link_c_func( bz2_dll, "BZ2_bzflush", =
{C_POINTER}, C_INT ),
    bz2_bzclose         =3D link_c_proc( bz2_dll, "BZ2_bzclose", =
{C_POINTER} ),
    bz2_bzerror         =3D link_c_func( bz2_dll, "BZ2_bzerror", =
{C_POINTER, C_INT}, C_POINTER ),

    bz2_bzdopen         =3D link_c_func( bz2_dll, "BZ2_bzdopen", {C_INT, =
C_POINTER}, C_POINTER )
    --  file descriptors not supported by Euphoria
    --  this function will never be used (at least by us!)
   =20
global function bzlibVersion()
atom ret

    ret =3D c_func( bz2_bzlibVersion, {} )
    return peek_string(ret)
   =20
end function

global function bzopen( sequence fname, sequence mode )
atom ptr1, ptr2, ret

    -- replace 'b' with a '+'
    -- not sure why, just the way it works
    mode =3D replace( mode, 'b', '+' )

    ptr1 =3D allocate_string( fname )
    ptr2 =3D allocate_string( mode )
   =20
    ret =3D c_func( bz2_bzopen, {ptr1, ptr2} )
   =20
    free( ptr1 )
    free( ptr2 )
   =20
    return ret
end function

global function bzread( atom fn, integer len )
atom ptr1
object ret

    -- len is the length of the buffer
    -- (number of bytes to read)
    ptr1 =3D allocate_string( repeat(' ', len) )

    ret =3D c_func( bz2_bzread, {fn, ptr1, len} )
   =20
    if ret then
    -- bzread returned length of new buffer
    -- so read back the sequence
    ret =3D peek({ptr1, ret})
   =20
    else
    -- error or end of file
    ret =3D -1
   =20
    end if
   =20
    free(ptr1)
   =20
    return ret
end function

global function bzwrite( atom fn, sequence buffer )
atom ptr1
integer len
object ret

    ptr1 =3D allocate_string( buffer )
    len =3D length(buffer)
   =20
    ret =3D c_func( bz2_bzwrite, {fn, ptr1, len} )
    -- returns error code
   =20
    free(ptr1)
   =20
    return ret
end function

global function bzflush(atom fn)

    return c_func( bz2_bzflush, {fn} )

end function

global procedure bzclose(atom fn)

    c_proc( bz2_bzclose, {fn} )
   =20
end procedure

global function bzerror(atom fn, integer errnum)
atom ret

    ret =3D c_func( bz2_bzerror, {fn, errnum} )
    return peek_string(ret)

end function



-- these are extra functions that emulate Euphoria's native functions

global function bzgetc(atom fn)
object ret

    -- return 1 byte
    ret =3D bzread(fn, 1)
    if sequence(ret) then
        ret =3D ret[1]
    end if
   =20
    return ret
   =20
end function

global function bzgetx(atom fn, integer bytes)
object ret

    -- return x bytes
    ret =3D bzread(fn, bytes)
    if atom(ret) then
        ret =3D ""
    end if

    return ret
end function

global procedure bzputs(atom fn, sequence s)
integer ret

    ret =3D bzwrite(fn, s)
    if ret then
    -- display any error
--      puts(1, bzerror(fn, ret))
    end if

end procedure

------=_NextPart_000_000D_01C39126.B1FF7700--

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu