aboutsummaryrefslogtreecommitdiff
path: root/src/base/io/offset.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/io/offset.c')
-rw-r--r--src/base/io/offset.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/base/io/offset.c b/src/base/io/offset.c
new file mode 100644
index 0000000..81ef994
--- /dev/null
+++ b/src/base/io/offset.c
@@ -0,0 +1,24 @@
+#include "internal.h"
+
+intptr
+io·offset(io·Header *io)
+{
+ intptr n;
+ switch(io->state){
+ default:
+ fmt·fprint(2, "offset: unknown state %d\n", io->state);
+ n = io·BufEof;
+ break;
+
+ case io·BufEnd:
+ case io·BufRdr:
+ n = io->pos + io->ilen;
+ break;
+
+ case io·BufWtr:
+ n = io->pos + (io->cap + io->olen);
+ break;
+ }
+
+ return n;
+}