aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Walton <[email protected]>2011-03-21 16:40:26 -0700
committerPatrick Walton <[email protected]>2011-03-21 16:41:18 -0700
commit71de17d38ee8db40e5f50d2ce8986e9676767309 (patch)
tree14f9488a26199c0d17c5ec275068da1f638e86cd
parentMinor distcheck fixes (diff)
downloadrust-71de17d38ee8db40e5f50d2ce8986e9676767309.tar.xz
rust-71de17d38ee8db40e5f50d2ce8986e9676767309.zip
Add a binding to ftell()
-rw-r--r--src/lib/io.rs4
-rw-r--r--src/lib/linux_os.rs1
-rw-r--r--src/lib/macos_os.rs1
-rw-r--r--src/lib/win32_os.rs1
4 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/io.rs b/src/lib/io.rs
index 58cb1f80..165fe030 100644
--- a/src/lib/io.rs
+++ b/src/lib/io.rs
@@ -24,6 +24,7 @@ type reader =
impure fn read_le_int(uint size) -> int;
impure fn seek(int offset, seek_style whence);
+ impure fn tell() -> uint; // TODO: eventually u64
};
state obj FILE_reader(os.libc.FILE f, bool must_close) {
@@ -97,6 +98,9 @@ state obj FILE_reader(os.libc.FILE f, bool must_close) {
}
check(os.libc.fseek(f, offset, wh) == 0);
}
+ impure fn tell() -> uint {
+ ret os.libc.ftell(f) as uint;
+ }
drop {
if (must_close) {os.libc.fclose(f);}
}
diff --git a/src/lib/linux_os.rs b/src/lib/linux_os.rs
index 030dcdbc..bce85956 100644
--- a/src/lib/linux_os.rs
+++ b/src/lib/linux_os.rs
@@ -19,6 +19,7 @@ native mod libc = "libc.so.6" {
fn ungetc(int c, FILE f);
fn fread(vbuf buf, uint size, uint n, FILE f) -> uint;
fn fseek(FILE f, int offset, int whence) -> int;
+ fn ftell(FILE f) -> int;
type dir;
fn opendir(sbuf d) -> dir;
diff --git a/src/lib/macos_os.rs b/src/lib/macos_os.rs
index c2a1bee3..f9734de3 100644
--- a/src/lib/macos_os.rs
+++ b/src/lib/macos_os.rs
@@ -16,6 +16,7 @@ native mod libc = "libc.dylib" {
fn ungetc(int c, FILE f);
fn fread(vbuf buf, uint size, uint n, FILE f) -> uint;
fn fseek(FILE f, int offset, int whence) -> int;
+ fn ftell(FILE f) -> int;
type dir;
fn opendir(sbuf d) -> dir;
diff --git a/src/lib/win32_os.rs b/src/lib/win32_os.rs
index 6885be24..3ca76e77 100644
--- a/src/lib/win32_os.rs
+++ b/src/lib/win32_os.rs
@@ -15,6 +15,7 @@ native mod libc = "msvcrt.dll" {
fn ungetc(int c, FILE f);
fn fread(vbuf buf, uint size, uint n, FILE f) -> uint;
fn fseek(FILE f, int offset, int whence) -> int;
+ fn ftell(FILE f) -> int;
fn _pipe(vbuf fds, uint size, int mode) -> int;
}