
1: stty.c: 2: use xstrtoul, not sscanf 3: 4: printf: 5: Now that gnulib supports *printf("%a"), import one of the 6: *printf-posix modules so that printf(1) will support %a even on 7: platforms where the native *printf(3) is deficient. 8: Suggestion form Eric Blake. 9: 10: strip: add an option to specify the program used to strip binaries. 11: suggestion from Karl Berry 12: 13: doc/coreutils.texi: 14: Address this comment: FIXME: mv's behavior in this case is system-dependent 15: Better still: fix the code so it's *not* system-dependent. 16: 17: ls: add --format=FORMAT option that controls how each line is printed. 18: 19: cp --no-preserve=X should not attempt to preserve attribute X 20: reported by Andreas Schwab 21: 22: copy.c: Address the FIXME-maybe comment in copy_internal. 23: And once that's done, add an exclusion so that `cp --link' 24: no longer incurs the overhead of saving src. dev/ino and dest. filename 25: in the hash table. 26: 27: See if we can be consistent about where --verbose sends its output: 28: These all send --verbose output to stdout: 29: head, tail, rm, cp, mv, ln, chmod, chown, chgrp, install, ln 30: These send it to stderr: 31: shred mkdir split 32: readlink is different 33: 34: Write an autoconf test to work around build failure in HPUX's 64-bit mode. 35: See notes in README -- and remove them once there's a work-around. 36: 37: Integrate use of sendfile, suggested here: 38: http://mail.gnu.org/archive/html/bug-fileutils/2003-03/msg00030.html 39: I don't plan to do that, since a few tests demonstrate no significant benefit. 40: 41: Should printf '\0123' print "\n3"? 42: per report from TAKAI Kousuke on Mar 27 43: http://mail.gnu.org/archive/html/bug-coreutils/2003-03/index.html 44: 45: printf: consider adapting builtins/printf.def from bash 46: 47: df: add `--total' option, suggested here http://bugs.debian.org/186007 48: 49: seq: give better diagnostics for invalid formats: 50: e.g. no or too many % directives 51: seq: consider allowing format string to contain no %-directives 52: 53: resolve RH report on cp -a forwarded by Tim Waugh 54: 55: tail: don't use xlseek; it *exits*. 56: Instead, maybe use a macro and return nonzero. 57: 58: add mktemp? Suggested by Nelson Beebe 59: 60: tr: support nontrivial equivalence classes, e.g. [=e=] with LC_COLLATE=fr_FR 61: 62: lib/strftime.c: Since %N is the only format that we need but that 63: glibc's strftime doesn't support, consider using a wrapper that 64: would expand /%(-_)?\d*N/ to the desired string and then pass the 65: resulting string to glibc's strftime. 66: 67: sort: Compress temporary files when doing large external sort/merges. 68: This improves performance when you can compress/uncompress faster than 69: you can read/write, which is common in these days of fast CPUs. 70: suggestion from Charles Randall on 2001-08-10 71: 72: unexpand: [http://www.opengroup.org/onlinepubs/007908799/xcu/unexpand.html] 73: printf 'x\t \t y\n'|unexpand -t 8,9 should print its input, unmodified. 74: printf 'x\t \t y\n'|unexpand -t 5,8 should print "x\ty\n" 75: 76: Let GNU su use the `wheel' group if appropriate. 77: (there are a couple patches, already) 78: 79: sort: Investigate better sorting algorithms; see Knuth vol. 3. 80: 81: We tried list merge sort, but it was about 50% slower than the 82: recursive algorithm currently used by sortlines, and it used more 83: comparisons. We're not sure why this was, as the theory suggests it 84: should do fewer comparisons, so perhaps this should be revisited. 85: List merge sort was implemented in the style of Knuth algorithm 86: 5.2.4L, with the optimization suggested by exercise 5.2.4-22. The 87: test case was 140,213,394 bytes, 426,4424 lines, text taken from the 88: GCC 3.3 distribution, sort.c compiled with GCC 2.95.4 and running on 89: Debian 3.0r1 GNU/Linux, 2.4GHz Pentium 4, single pass with no 90: temporary files and plenty of RAM. 91: 92: Since comparisons seem to be the bottleneck, perhaps the best 93: algorithm to try next should be merge insertion. See Knuth section 94: 5.3.1, who credits Lester Ford, Jr. and Selmer Johnson, American 95: Mathematical Monthly 66 (1959), 387-389. 96: 97: cp --recursive: perform dir traversals in source and dest hierarchy rather 98: than forming full file names. The latter (current) approach fails 99: unnecessarily when the names become very long. 100: 101: Remove suspicious uses of alloca (ones that may allocate more than 102: about 4k) 103: 104: Adapt these contribution guidelines for coreutils: 105: http://sources.redhat.com/automake/contribute.html 106: 107: 108: Changes expected to go in, someday. 109: ====================================== 110: 111: dd patch from Olivier Delhomme 112: 113: Andreas Gruenbacher's xattr changes 114: 115: Apply Bruno Haible's hostname changes 116: 117: test/mv/*: clean up $other_partition_tmpdir in all cases 118: 119: ls: when both -l and --dereference-command-line-symlink-to-dir are 120: specified, consider whether to let the latter select whether to 121: dereference command line symlinks to directories. Since -l has 122: an implicit --NO-dereference-command-line-symlink-to-dir meaning. 123: Pointed out by Karl Berry. 124: 125: A more efficient version of factor, and possibly one that 126: accepts inputs of size 2^64 and larger. 127: 128: dd: consider adding an option to suppress `bytes/block read/written' 129: output to stderr. Suggested here: 130: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=165045 131: 132: Pending copyright papers: 133: ------------------------ 134: ls --color: Ed Avis' patch to suppress escape sequences for 135: non-highlighted files 136: 137: getpwnam from Bruce Korb 138: 139: pb (progress bar) from Miika Pekkarinen 140: 141: ------------------------------ 142: 143: Have euidaccess.m4 check for eaccess as well as euidaccess 144: If found, then do `#define euidaccess eaccess'. 145: 146: Remove long-deprecated options. Search case-insensitive for 147: `deprecated' and `remove in '. Automate this. 148: 149: Add a distcheck-time test to ensure that every distributed 150: file is either read-only(indicating generated) or is 151: version-controlled and up to date. 152: 153: Implement Ulrich Drepper's suggestion to use getgrouplist rather 154: than getugroups. This affects only `id', but makes a big difference 155: on systems with many users and/or groups, and makes id usable once 156: again on systems where access restrictions make getugroups fail. 157: But first we'll need a run-test (either in an autoconf macro or at 158: run time) to avoid the segfault bug in libc-2.3.2's getgrouplist. 159: In that case, we'd revert to using a new (to-be-written) getgrouplist 160: module that does most of what `id' already does. Or just avoid the 161: buggy use of getgrouplist by never passing it a buffer of length zero. 162: See https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=200327 163: 164: remove `%s' notation: 165: grep -E "\`%.{,4}s'" src/*.c 166: 167: remove or adjust chown's --changes option, since it 168: can't always do what it currently says it does. 169: 170: Adapt tools like wc, tr, fmt, etc. (most of the textutils) to be 171: multibyte aware. The problem is that I want to avoid duplicating 172: significant blocks of logic, yet I also want to incur only minimal 173: (preferably `no') cost when operating in single-byte mode. 174: 175: Remove all uses of the `register' keyword 176: 177: pr's use of nstrftime can make it malloc a very large (up to SIZE_MAX) buffer 178: 179: ls.c: use gettime rather than clock_gettime, gettimeofday, time 180: 181: ----- 182: 183: Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, 184: Inc. 185: 186: This program is free software; you can redistribute it and/or modify 187: it under the terms of the GNU General Public License as published by 188: the Free Software Foundation; either version 2, or (at your option) 189: any later version. 190: 191: This program is distributed in the hope that it will be useful, 192: but WITHOUT ANY WARRANTY; without even the implied warranty of 193: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 194: GNU General Public License for more details. 195: 196: You should have received a copy of the GNU General Public License 197: along with this program; if not, write to the Free Software Foundation, 198: Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.