Invent a cunning means of faking plausible atimes for directories,
[sgt/agedu] / TODO
diff --git a/TODO b/TODO
index 7737503..4858350 100644 (file)
--- a/TODO
+++ b/TODO
@@ -3,24 +3,6 @@ TODO list for agedu
 
 Before it's non-embarrassingly releasable:
 
- - work out what to do about atimes on directories in the absence of
-   the Linux syscall magic
-    * one option is to read them during the scan and reinstate them
-      after each recursion pop. Race-condition prone.
-    * marking them in a distinctive colour in the reports is another
-      option.
-    * a third option is simply to ignore space taken up by
-      directories in the first place; inaccurate but terribly simple.
-    * incidentally, sometimes open(...,O_NOATIME) will fail, and
-      then we have to fall back to ordinary open. Be prepared to do
-      this, which probably means getting rid of the icky macro
-      hackery in du.c and turning it into a more sensible run-time
-      abstraction layer.
-
- - polish the plain-text output to make it look more like du
-    + configurable recursive output depth
-    + show the right bits last
-
  - cross-Unix portability:
     + use autoconf
        * configure use of stat64
@@ -31,7 +13,17 @@ Before it's non-embarrassingly releasable:
            too, if it's available and O_NOATIME is too.
        * what do we do elsewhere about _GNU_SOURCE?
 
- - man page, licence, --version.
+ - tweak the short options. I think dump files should be a
+   second-class feature in general, so that --dump and --load should
+   be represented by capital options. That leaves -d free to be
+   --depth, which I think is more generally useful.
+    * while I'm tweaking the options list, "[all modes]" ought to
+      say "[most modes]", due to --scan-dump.
+
+ - New mode: --remove, to destroy the data file. Handy for
+   totally self-contained usage: "-s . -w -R".
+
+ - man page, --version.
 
 Future possibilities:
 
@@ -58,20 +50,6 @@ Future possibilities:
       straight to terminfo: generate lines of attribute-interleaved
       text and display them, so we only really need the sequences
       "go here and display stuff", "scroll up", "scroll down".
-    + I think the attribute-interleaved text might be possible to do
-      cunningly, as well: we autodetect a basically VT-style
-      terminal, and add 256-colour sequences on the end. So, for
-      instance, we might set ANSI-yellow foreground, set ANSI-red
-      background, _then_ set both foreground and background to the
-      appropriate xterm 256-colour, and then display some
-      appropriate character which would have given the right blend
-      of the ANSI-16 fore and background colours. Then the same
-      display code should gracefully degrade in the face of a
-      terminal which doesn't support xterm-256.
-       * current best plan is to simulate the xterm-256 shading from
-        0/5 to 5/5 by doing space, colon and hash in colour A on
-        colour B background, then hash, colon and space in B on A
-        background.
     + Infrastructure work before doing any of this would be to split
       html.c into two: one part to prepare an abstract data
       structure describing an HTML-like report (in particular, all