|
|
1.1 ! root 1: /* ! 2: * ! 3: * (c) 2008-2009 Laurent Vivier <[email protected]> ! 4: * ! 5: * This file has been copied from EMILE, http://emile.sf.net ! 6: * ! 7: */ ! 8: ! 9: #include "libext2.h" ! 10: #include "ext2.h" ! 11: ! 12: int ext2_lseek(ext2_FILE *file, long offset, int whence) ! 13: { ! 14: long new_offset; ! 15: ! 16: switch(whence) ! 17: { ! 18: case SEEK_SET: ! 19: new_offset = offset; ! 20: break; ! 21: case SEEK_CUR: ! 22: new_offset = file->offset + offset; ! 23: break; ! 24: case SEEK_END: ! 25: new_offset = file->inode->i_size + offset; ! 26: break; ! 27: default: ! 28: return -1; ! 29: } ! 30: ! 31: if ( (new_offset < 0) || ! 32: (new_offset > file->inode->i_size) ) ! 33: return -1; ! 34: ! 35: file->offset = new_offset; ! 36: ! 37: return new_offset; ! 38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.