|
|
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.