aboutsummaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2016-02-12 21:54:42 -0500
committerFranklin Wei <git@fwei.tk>2016-02-16 20:42:49 -0500
commitb110e7e0c519cc9575f8d224f0f75aca0d73946f (patch)
treec3f33326a5e4822f2251e8d7370294096ab2eba4 /src/util.c
parenta006044fbcb3355f0fa063720e7c41f4971894a0 (diff)
downloadnetcosm-b110e7e0c519cc9575f8d224f0f75aca0d73946f.zip
netcosm-b110e7e0c519cc9575f8d224f0f75aca0d73946f.tar.gz
netcosm-b110e7e0c519cc9575f8d224f0f75aca0d73946f.tar.bz2
netcosm-b110e7e0c519cc9575f8d224f0f75aca0d73946f.tar.xz
support multiple objects sharing the same name
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/src/util.c b/src/util.c
index ffeae79..cf92dc2 100644
--- a/src/util.c
+++ b/src/util.c
@@ -96,10 +96,10 @@ char *read_string(int fd)
error("read_string: EOF");
}
char *ret = malloc(sz + 1);
- if(read(fd, ret, sz) < 0)
+ if((size_t)read(fd, ret, sz) != sz)
{
free(ret);
- return NULL;
+ error("read_string: EOF");
}
ret[sz] = '\0';
return ret;
@@ -133,6 +133,20 @@ void write_uint32(int fd, uint32_t b)
error("write failed");
}
+uint64_t read_uint64(int fd)
+{
+ uint64_t ret;
+ if(read(fd, &ret, sizeof(ret)) != sizeof(ret))
+ error("unexpected EOF");
+ return ret;
+}
+
+void write_uint64(int fd, uint64_t b)
+{
+ if(write(fd, &b, sizeof(b)) != sizeof(b))
+ error("write failed");
+}
+
size_t read_size(int fd)
{
size_t ret;
@@ -146,3 +160,18 @@ void write_size(int fd, size_t b)
if(write(fd, &b, sizeof(b)) != sizeof(b))
error("write failed");
}
+
+bool is_vowel(char c)
+{
+ switch(tolower(c))
+ {
+ case 'a':
+ case 'e':
+ case 'i':
+ case 'o':
+ case 'u':
+ return true;
+ default:
+ return false;
+ }
+}