TODO: add an item for a chmod optimization
[platform/upstream/coreutils.git] / TODO
diff --git a/TODO b/TODO
index 3f4d26c..0321768 100644 (file)
--- a/TODO
+++ b/TODO
@@ -5,19 +5,32 @@ longer pertinent, please search the mailing list and post your intent
 before embarking on a big project.
 
 ==================================================
+Modify chmod so that it does not change an inode's st_ctime
+  when the selected operation would have no other effect.
+  First suggested by Hans Ecke <http://hans.ecke.ws> in
+    http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/2920
+  Discussed more recently on <http://bugs.debian.org/497514>.
+
 document the following in coreutils.texi:
   runcon
   chcon
   mktemp
   [
   pinky
-  uptime
 Also document the SELinux changes.
 
-comm: add an option, --output-delimiter=STR
-  Files to change: src/comm.c, ChangeLog, NEWS, doc/coreutils.texi,
-  Add a new file, tests/misc/comm (use another file in that directory as
-  a template), to exercise the new option.  Suggestion from Dan Jacobson.
+Suggestion from Paul Eggert:
+  More generally, there's not that much use for imaxtostr nowadays,
+  since the inttypes module and newer versions of gettext allow things
+  like _("truncating %s at %" PRIdMAX " bytes") to work portably.
+  I suspect that (if someone cares to take the time) we can remove
+  all instances of imaxtostr and umaxtostr in coreutils and gnulib.
+
+cp --recursive: use fts and *at functions to perform directory traversals
+  in source and destination hierarchy rather than forming full file names.
+  The latter (current) approach fails unnecessarily when the names
+  become very long, and requires space and time that is quadratic in the
+  depth of the hierarchy.  [Bo Borgerson is working on this]
 
 printf:
   Now that gnulib supports *printf("%a"), import one of the
@@ -61,8 +74,6 @@ printf: consider adapting builtins/printf.def from bash
 
 df: add `--total' option, suggested here http://bugs.debian.org/186007
 
-seq: consider allowing format string to contain no %-directives
-
 tail: don't use xlseek; it *exits*.
   Instead, maybe use a macro and return nonzero.
 
@@ -98,16 +109,15 @@ sort: Investigate better sorting algorithms; see Knuth vol. 3.
   5.3.1, who credits Lester Ford, Jr. and Selmer Johnson, American
   Mathematical Monthly 66 (1959), 387-389.
 
-cp --recursive: perform dir traversals in source and dest hierarchy rather
-  than forming full file names.  The latter (current) approach fails
-  unnecessarily when the names become very long.
-
 Remove suspicious uses of alloca (ones that may allocate more than
    about 4k)
 
 Adapt these contribution guidelines for coreutils:
   http://sources.redhat.com/automake/contribute.html
 
+Improve test coverage.
+  See HACKING for instructions on generating an html test coverage report.
+  Find a program that has poor coverage and improve.
 
 Changes expected to go in, someday.
 ======================================
@@ -122,9 +132,6 @@ Changes expected to go in, someday.
   an implicit --NO-dereference-command-line-symlink-to-dir meaning.
   Pointed out by Karl Berry.
 
-  A more efficient version of factor, and possibly one that
-  accepts inputs of size 2^64 and larger.
-
   dd: consider adding an option to suppress `bytes/block read/written'
   output to stderr.  Suggested here:
     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=165045
@@ -144,27 +151,21 @@ Add a distcheck-time test to ensure that every distributed
 file is either read-only(indicating generated) or is
 version-controlled and up to date.
 
-Implement Ulrich Drepper's suggestion to use getgrouplist rather than
-  getugroups.  This affects both `id' and `setuidgid', but makes a big
-  difference on systems with many users and/or groups, and makes id usable
-  once again on systems where access restrictions make getugroups fail.
-  But first we'll need a run-test (either in an autoconf macro or at
-  run time) to avoid the segfault bug in libc-2.3.2's getgrouplist.
-  In that case, we'd revert to using a new (to-be-written) getgrouplist
-  module that does most of what `id' already does.  Or just avoid the
-  buggy use of getgrouplist by never passing it a buffer of length zero.
-  See http://bugzilla.redhat.com/200327
-
-remove `%s' notation (now that they're all gone, add a Makefile.maint sc_
+remove `%s' notation (now that they're all gone, add a maint.mk sc_
     rule to ensure no new ones are added):
   grep -E "\`%.{,4}s'" src/*.c
 
-remove all uses of the `register' keyword: Done.  add a Makefile.maint rule
+remove all uses of the `register' keyword: Done.  add a maint.mk rule
   for this, too.
 
 remove or adjust chown's --changes option, since it
   can't always do what it currently says it does.
 
+Support arbitrary-precision arithmetic in those tools for which it
+makes sense.  Factor and expr already support this via libgmp.
+The "test" program is covered via its string-based comparison of
+integers.  To be converted: seq.
+
 Adapt tools like wc, tr, fmt, etc. (most of the textutils) to be
   multibyte aware.  The problem is that I want to avoid duplicating
   significant blocks of logic, yet I also want to incur only minimal