From c2c3a756d0b4b1ad8614ec7550c85defb1584c51 Mon Sep 17 00:00:00 2001 From: Fredrik Noring <noring@nocrew.org> Date: Sat, 29 Jan 2000 13:37:31 +0100 Subject: [PATCH] Fixed seek. Rev: lib/modules/Yabu.pmod/module.pmod:1.18 --- lib/modules/Yabu.pmod/module.pmod | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/lib/modules/Yabu.pmod/module.pmod b/lib/modules/Yabu.pmod/module.pmod index 527df1986d..c686bc1ae3 100644 --- a/lib/modules/Yabu.pmod/module.pmod +++ b/lib/modules/Yabu.pmod/module.pmod @@ -4,7 +4,7 @@ * associated with a unique key. */ -constant cvs_id = "$Id: module.pmod,v 1.17 1999/10/19 22:45:33 noring Exp $"; +constant cvs_id = "$Id: module.pmod,v 1.18 2000/01/29 12:37:31 noring Exp $"; #define ERR(msg) throw(({ "(Yabu) "+msg+"\n", backtrace() })) #define IO_ERR(msg) throw(({ sprintf("(Yabu) %s, %s (%d)\n",msg,strerror(errno()),errno()),backtrace() })) @@ -131,33 +131,10 @@ static private class FileIO { static private int mask = 0; - static private array(int) fractionalise(int i) - { - if(!mask) - { - int size = 0; - for(mask = 1; mask; size++) - mask <<= 1; - mask = ~(0xff << (size-8)); - } - - return ({ (i>>8) & mask, i & 0xff }); - } - static private void seek(int offset) { - if(offset < 0) - { - int fraction; - - [offset, fraction] = fractionalise(offset); - if(file::seek(offset, 0x100) == -1 || - (fraction && sizeof(file::read(fraction)) != fraction)) - ERR("seek failed"); - } - else - if(file::seek(offset) == -1) - ERR("seek failed"); + if(offset < 0 || file::seek(offset) == -1) + ERR("seek failed"); } string read_at(int offset, int|void size) -- GitLab