Trivial typo fixes.
[sgt/agedu] / agedu.c
diff --git a/agedu.c b/agedu.c
index f823121..9ff6bb8 100644 (file)
--- a/agedu.c
+++ b/agedu.c
@@ -949,7 +949,9 @@ int main(int argc, char **argv)
            ctx->progress = progress;
            {
                struct winsize ws;
-               if (progress && ioctl(2, TIOCGWINSZ, &ws) == 0)
+               if (progress &&
+                   ioctl(2, TIOCGWINSZ, &ws) == 0 &&
+                   ws.ws_col > 0)
                    ctx->progwidth = ws.ws_col - 1;
                else
                    ctx->progwidth = 79;
@@ -1088,6 +1090,9 @@ int main(int argc, char **argv)
                    int i;
 
                    if (totalsize - indexbuild_realsize(ib) < delta) {
+                       const void *oldfile = mappedfile;
+                       ptrdiff_t diff;
+
                        /*
                         * Unmap the file, grow it, and remap it.
                         */
@@ -1113,6 +1118,14 @@ int main(int argc, char **argv)
 
                        indexbuild_rebase(ib, mappedfile);
                        triewalk_rebase(tw, mappedfile);
+                       diff = (const unsigned char *)mappedfile -
+                           (const unsigned char *)oldfile;
+                       if (prevtf)
+                           prevtf = (const struct trie_file *)
+                               (((const unsigned char *)prevtf) + diff);
+                       if (tf)
+                           tf = (const struct trie_file *)
+                               (((const unsigned char *)tf) + diff);
                    }
 
                    /*