title: file.seek() and read() relative to the current position
body: <p>I'm trying to read part of a file into a bytearray but without success. I would use an extra pair of eyes, it is probably something obvious.</p>
  
  <p>Example file segment:</p>
  
  <pre><code>...line one\nline two\nline three\nfourth line\n
                                     ^        
                                     |___ fp.tell() 
  </code></pre>
  
  <p>After <code>fp.seek(-1,os.SEEK_CUR)</code> and <code>print fp.read(1)</code> output is (as expected) <code>\n</code>. </p>
  
  <p>If on the other hand I execute <code>fp.seek(-2,os.SEEK_CUR)</code>, instead of the expected <code>e\n</code> output is <code>\nf</code>. </p>
  
  <p>After that, I tried with <code>fp.seek(-3,os.SEEK_CUR)</code> and <code>print fp.read(3)</code> and output is <code>e\nf</code>.</p>
  
  <p>In other words, bytes are read "both ways" (to the left and to the right) regardless of strictly negative pointer motion. I am sure that I am missing something here. Any hints?</p>
  
  <p>Edit: It's on Windows</p>