aboutsummaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2016-01-25 16:10:46 -0500
committerFranklin Wei <git@fwei.tk>2016-01-25 16:10:46 -0500
commita1acf425cfb00a41c7862c915eb024207658c814 (patch)
treefcee7cf8a1c204b779ab50a3545e8671012d7643 /src/util.c
parentd351bb34ba256d6fbf0869485bcf75ec46646e74 (diff)
downloadnetcosm-a1acf425cfb00a41c7862c915eb024207658c814.zip
netcosm-a1acf425cfb00a41c7862c915eb024207658c814.tar.gz
netcosm-a1acf425cfb00a41c7862c915eb024207658c814.tar.bz2
netcosm-a1acf425cfb00a41c7862c915eb024207658c814.tar.xz
inventory works
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/util.c b/src/util.c
index e681ca0..a349d5a 100644
--- a/src/util.c
+++ b/src/util.c
@@ -66,3 +66,51 @@ void all_lower(char *s)
s++;
}
}
+
+void write_roomid(int fd, room_id *id)
+{
+ write(fd, id, sizeof(*id));
+}
+
+void write_string(int fd, const char *str)
+{
+ size_t len = strlen(str);
+ write(fd, &len, sizeof(len));
+ write(fd, str, len);
+}
+
+room_id read_roomid(int fd)
+{
+ room_id ret;
+ if(read(fd, &ret, sizeof(ret)) < 0)
+ return ROOM_NONE;
+ return ret;
+}
+
+char *read_string(int fd)
+{
+ size_t sz;
+ read(fd, &sz, sizeof(sz));
+ char *ret = malloc(sz + 1);
+ if(read(fd, ret, sz) < 0)
+ {
+ free(ret);
+ return NULL;
+ }
+ ret[sz] = '\0';
+ return ret;
+}
+
+bool read_bool(int fd)
+{
+ bool ret;
+ if(read(fd, &ret, sizeof(ret)) != sizeof(ret))
+ error("unexpected EOF");
+ return ret;
+}
+
+void write_bool(int fd, bool b)
+{
+ if(write(fd, &b, sizeof(b)) != sizeof(b))
+ error("write failed");
+}