]> pd.if.org Git - pdclib/blob - functions/stdio/_PDCLIB_seek.c
PDCLIB-8: First phase of intergation of new I/O backend system (with minimal
[pdclib] / functions / stdio / _PDCLIB_seek.c
1 /* int64_t _PDCLIB_seek( FILE *, int64_t, int )\r
2 \r
3    This file is part of the Public Domain C Library (PDCLib).\r
4    Permission is granted to use, modify, and / or redistribute at will.\r
5 */\r
6 \r
7 #include <stdio.h>\r
8 #include <stdint.h>\r
9 #include <errno.h>\r
10 #ifndef REGTEST\r
11 \r
12 int_fast64_t _PDCLIB_seek( struct _PDCLIB_file_t * stream, _PDCLIB_int64_t offset, \r
13                            int whence )\r
14 {\r
15     int_fast64_t newPos;\r
16     if(!stream->ops->seek(stream->handle, offset, whence, &newPos)) {\r
17         return EOF;\r
18     }\r
19 \r
20     stream->ungetidx = 0;\r
21     stream->bufidx = 0;\r
22     stream->bufend = 0;\r
23     stream->pos.offset = newPos;\r
24     return newPos;\r
25 }\r
26 \r
27 #endif\r
28 \r
29 #ifdef TEST\r
30 #include <_PDCLIB_test.h>\r
31 \r
32 int main( void )\r
33 {\r
34     /* Testing covered by ftell.c */\r
35     return TEST_RESULTS;\r
36 }\r
37 \r
38 #endif\r
39 \r