<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Bug in allegro filestytem? I think that reads are drifting!</title>
		<link>http://www.allegro.cc/forums/view/617628</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 19 Nov 2018 23:31:42 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think I have a test case here. When reading in data from a file, allegro is randomly pushing the read index ahead one.</p><p>Here is the output from reading a zip file with no compression.
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Got Header<br />Read in 4 bytes After header, now at 4<br />Skipped ahead 18 bytes , now at 22<br />Read in 4 bytes for filesize - now at 26<br />Filesize=79152<br />Read in two bytes namesize - now at 28<br />Namesize=9<br />Still at 28 skipping 2 bytes<br />skpped 2 bytes Now at filename 30<br />filename read in 9 bytes , Now at 39<br />adjusted filename should still be at 39<br />Filename=alert.ogg<br />skipping ahead 79152 bytes<br />Skiped File! Now at 79191<br />Got Header<br />Read in 4 bytes After header, now at 79195<br />Skipped ahead 18 bytes , now at 79213<br />Read in 4 bytes for filesize - now at 79217<br />Filesize=275<br />Read in two bytes namesize - now at 79219<br />Namesize=9<br />Still at 79219 skipping 2 bytes<br />skpped 2 bytes Now at filename 79221<br />filename read in 9 bytes , Now at 79230<br />adjusted filename should still be at 79230<br />Filename=arrow.png<br />skipping ahead 275 bytes<br />Skiped File! Now at 79505<br />Got Header<br />Read in 4 bytes After header, now at 79509<br />Skipped ahead 18 bytes , now at 79527<br />Read in 4 bytes for filesize - now at 79531<br />Filesize=12662<br />Read in two bytes namesize - now at 79533<br />Namesize=8<br />Still at 79533 skipping 2 bytes<br />skpped 2 bytes Now at filename 79535<br />filename read in 8 bytes , Now at 79543<br />adjusted filename should still be at 79543<br />Filename=beam.ogg<br />skipping ahead 12662 bytes<br />Skiped File! Now at 92205<br />Got Header<br />Read in 4 bytes After header, now at 92209<br />Skipped ahead 18 bytes , now at 92227<br />Read in 4 bytes for filesize - now at 92232<br />Filesize=707366<br />Read in two bytes namesize - now at 92234<br />Namesize=15<br />Still at 92234 skipping 2 bytes<br />skpped 2 bytes Now at filename 92236<br />filename read in 15 bytes , Now at 92251<br />adjusted filename should still be at 92251<br />Filename=border_back.png<br />skipping ahead 707366 bytes<br />Skiped File! Now at 799617<br />NO HEADER!
</p></div></div><p>

Pay close attention to the first and last reads..</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
------<br />First read<br />------<br />Got Header<br />Read in 4 bytes After header, now at 4 (+4)<br />Skipped ahead 18 bytes , now at 22 (+18)<br />Read in 4 bytes for filesize - now at 26 (+4)<br />Filesize=79152<br />Read in two bytes namesize - now at 28 (+4)<br />Namesize=9<br />Still at 28 skipping 2 bytes<br />skpped 2 bytes Now at filename 30 (+2)<br />filename read in 9 bytes , Now at 39 (+9)<br />adjusted filename should still be at 39<br />Filename=alert.ogg<br />skipping ahead 79152 bytes<br />Skiped File! Now at 79191 (+79152)</p><p>------<br />Last read before failure:<br />------<br />Skiped File! Now at 92205<br />Got Header<br />Read in 4 bytes After header, now at 92209 (+4)<br />Skipped ahead 18 bytes , now at 92227 (+18)<br />Read in 4 bytes for filesize - now at 92232 (+5!!!!  &lt;------- IT IS NOW REPORTING +1 AHEAD OF THE SEEK POINTER!)<br />Filesize=707366  (This is correct!?)<br />Read in two bytes namesize - now at 92234 (wrong location!)<br />Namesize=15 (Still read in correct data, al_ftell(); is reporting +1 of where the seek pointer actually is)<br />Still at 92234 skipping 2 bytes<br />skpped 2 bytes Now at filename 92236<br />filename read in 15 bytes , Now at 92251<br />adjusted filename should still be at 92251<br />Filename=border_back.png (all of these are being read in properly even though al_ftell(); is still +1 bytes ahead of the actual seek pointer.<br />skipping ahead 707366 bytes<br />Skiped File! Now at 799617 (seek pointer and al_ftell() pointer now match, but now is off by +1 byte and is unable to read the header)<br />NO HEADER!
</p></div></div><p>

It seems to be screwing up doing a read after an al_fseek()</p><p>Here is my example code. To test yourself, use a zip file named default.zip with a few uncompressed files inside.</p><p>==EDIT==<br />I Attached an example zip file. This one is even more wacky because if you al_fseek() after the header read it reports that it&#39;s -29 bytes into the file</p><p>Windows 10 x64 BTW</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">  4</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">  5</span><span class="p">#include &lt;allegro5/allegro_video.h&gt;</span>
<span class="number">  6</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">  7</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">  8</span>
<span class="number">  9</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>d<span class="k2">;</span>
<span class="number"> 10</span><a href="http://www.allegro.cc/manual/ALLEGRO_FILE"><span class="a">ALLEGRO_FILE</span></a> <span class="k3">*</span>zip<span class="k2">;</span>
<span class="number"> 11</span><a href="http://www.allegro.cc/manual/ALLEGRO_FILE"><span class="a">ALLEGRO_FILE</span></a> <span class="k3">*</span>target<span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>
<span class="number"> 14</span><span class="k1">void</span> startup<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 15</span><span class="k2">{</span>
<span class="number"> 16</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 17</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize allegro!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>  <span class="k2">}</span>
<span class="number"> 20</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 21</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Error installing keyboard.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>  <span class="k2">}</span>
<span class="number"> 24</span>
<span class="number"> 25</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 26</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Error installing prims.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>  <span class="k2">}</span>
<span class="number"> 29</span>
<span class="number"> 30</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 31</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Error installing image addon.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>  <span class="k2">}</span>
<span class="number"> 34</span>
<span class="number"> 35</span>
<span class="number"> 36</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 37</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Error installing font addon.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>  <span class="k2">}</span>
<span class="number"> 40</span>
<span class="number"> 41</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 42</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Error installing TTF addon.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 44</span>  <span class="k2">}</span>
<span class="number"> 45</span>
<span class="number"> 46</span>
<span class="number"> 47</span>  d <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">1024</span>, <span class="n">768</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 48</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 49</span>
<span class="number"> 50</span>
<span class="number"> 51</span><span class="k2">}</span>
<span class="number"> 52</span>
<span class="number"> 53</span>
<span class="number"> 54</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span>argv<span class="k2">)</span>
<span class="number"> 55</span><span class="k2">{</span>
<span class="number"> 56</span>  <span class="k1">int</span> header<span class="k2">;</span>
<span class="number"> 57</span>  <span class="k1">int</span> filesize<span class="k2">;</span>
<span class="number"> 58</span>  <span class="k1">int</span> namesize<span class="k2">;</span>
<span class="number"> 59</span>  <span class="k1">char</span> filename<span class="k2">[</span><span class="n">255</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 60</span>
<span class="number"> 61</span>
<span class="number"> 62</span>  startup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 63</span>  zip<span class="k3">=</span><a href="http://www.allegro.cc/manual/al_fopen"><span class="a">al_fopen</span></a><span class="k2">(</span><span class="s">"default.zip"</span>, <span class="s">"r"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 64</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_feof"><span class="a">al_feof</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 65</span>
<span class="number"> 66</span>
<span class="number"> 67</span>    header <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_fread32le"><span class="a">al_fread32le</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 68</span>    <span class="k1">if</span> <span class="k2">(</span>header <span class="k3">=</span><span class="k3">=</span> <span class="n">0x04034b50</span><span class="k2">)</span> <span class="k2">{</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Got Header\n"</span><span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 69</span>    <span class="k1">else</span> <span class="k2">{</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"NO HEADER!\n"</span><span class="k2">)</span><span class="k2">;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 70</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Read in 4 bytes After header, now at %d\n"</span>, <a href="http://www.allegro.cc/manual/al_ftell"><span class="a">al_ftell</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 71</span>    <a href="http://www.allegro.cc/manual/al_fseek"><span class="a">al_fseek</span></a><span class="k2">(</span>zip, <span class="n">18</span>, ALLEGRO_SEEK_CUR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 72</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Skipped ahead 18 bytes , now at %d\n"</span>, <a href="http://www.allegro.cc/manual/al_ftell"><span class="a">al_ftell</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 73</span>    filesize <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_fread32le"><span class="a">al_fread32le</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 74</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Read in 4 bytes for filesize - now at %d\n"</span>, <a href="http://www.allegro.cc/manual/al_ftell"><span class="a">al_ftell</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 75</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Filesize=%d\n"</span>, filesize<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 76</span>    namesize <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_fread16le"><span class="a">al_fread16le</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 77</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Read in two bytes namesize - now at %d\n"</span>, <a href="http://www.allegro.cc/manual/al_ftell"><span class="a">al_ftell</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 78</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Namesize=%d\n"</span>, namesize<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 79</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Still at %d skipping 2 bytes\n"</span>, <a href="http://www.allegro.cc/manual/al_ftell"><span class="a">al_ftell</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 80</span>    <a href="http://www.allegro.cc/manual/al_fread16le"><span class="a">al_fread16le</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">;</span> <span class="c">//skip 2</span>
<span class="number"> 81</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"skpped 2 bytes Now at filename %d\n"</span>, <a href="http://www.allegro.cc/manual/al_ftell"><span class="a">al_ftell</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 82</span>    <a href="http://www.allegro.cc/manual/al_fread"><span class="a">al_fread</span></a><span class="k2">(</span>zip, filename, namesize<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 83</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"filename read in %d bytes , Now at %d\n"</span>,namesize,  <a href="http://www.allegro.cc/manual/al_ftell"><span class="a">al_ftell</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 84</span>    filename<span class="k2">[</span>namesize<span class="k2">]</span> <span class="k3">=</span> <span class="s">'\0'</span><span class="k2">;</span>
<span class="number"> 85</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"adjusted filename should still be at %d\n"</span>, <a href="http://www.allegro.cc/manual/al_ftell"><span class="a">al_ftell</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 86</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Filename=%s\n"</span>, filename<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 87</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"skipping ahead %d bytes\n"</span>, filesize<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 88</span>    <a href="http://www.allegro.cc/manual/al_fseek"><span class="a">al_fseek</span></a><span class="k2">(</span>zip, filesize, ALLEGRO_SEEK_CUR<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 89</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Skipped File! Now at %d\n"</span>, <a href="http://www.allegro.cc/manual/al_ftell"><span class="a">al_ftell</span></a><span class="k2">(</span>zip<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 90</span>  <span class="k2">}</span>
<span class="number"> 91</span>
<span class="number"> 92</span>
<span class="number"> 93</span>  <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (nshade)</author>
		<pubDate>Mon, 19 Nov 2018 00:31:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="https://www.allegro.cc/manual/5/al_fopen">https://www.allegro.cc/manual/5/al_fopen</a></p><p><a href="https://liballeg.org/a5docs/trunk/file.html#al_fopen">https://liballeg.org/a5docs/trunk/file.html#al_fopen</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 19 Nov 2018 01:32:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><b>HEADDESK</b></p><p>Man, Windows! Why do you make me want to hurt you?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (nshade)</author>
		<pubDate>Mon, 19 Nov 2018 01:35:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Actually it&#39;s libc&#39;s choice that unless you open files with &quot;b&quot; flag, the mode is &quot;text&quot; (And MS-DOS choice of line ending)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Audric)</author>
		<pubDate>Mon, 19 Nov 2018 14:32:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s pretty much the first thing you learn when doing io. Binary or text mode.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 19 Nov 2018 23:31:42 +0000</pubDate>
	</item>
</rss>
