Centralise the program name into the main header file. I'm probably
[sgt/agedu] / trie.c
diff --git a/trie.c b/trie.c
index acce8be..7168a9e 100644 (file)
--- a/trie.c
+++ b/trie.c
 #include <sys/types.h>
 #include <unistd.h>
 
+#include "agedu.h"
 #include "malloc.h"
 #include "trie.h"
 
 #define alignof(typ) ( offsetof(struct { char c; typ t; }, t) )
 
-extern char pathsep;
-
 /*
  * Compare functions for pathnames. Returns the relative order of
  * the names, like strcmp; also passes back the offset of the
@@ -157,7 +156,7 @@ static void tb_seek(triebuild *tb, off_t off)
 {
     tb->offset = off;
     if (lseek(tb->fd, off, SEEK_SET) < 0) {
-       fprintf(stderr, "agedu: lseek: %s\n", strerror(errno));
+       fprintf(stderr, PNAME ": lseek: %s\n", strerror(errno));
        exit(1);
     }
 }
@@ -168,7 +167,7 @@ static void tb_write(triebuild *tb, const void *buf, size_t len)
     while (len > 0) {
        int ret = write(tb->fd, buf, len);
        if (ret < 0) {
-           fprintf(stderr, "agedu: write: %s\n", strerror(errno));
+           fprintf(stderr, PNAME ": write: %s\n", strerror(errno));
            exit(1);
        }
        len -= ret;
@@ -617,3 +616,12 @@ off_t trie_get_index_offset(const void *t)
 {
     return ((const struct trie_header *)t)->indexroot;
 }
+
+void make_successor(char *pathbuf)
+{
+    int len = strlen(pathbuf);
+    if (len > 0 && pathbuf[len-1] == pathsep)
+       len--;
+    pathbuf[len] = '\001';
+    pathbuf[len+1] = '\0';
+}