Marco and me had a look at the GNU coreutlis because we where fed up with some functions they did or didn't provide us. So I had a quite brows through them, now I want to comment on them :
While looking at the code I found a huge amount of FIXME comments. To be precise 119.
Just for the people that don't know coreutils are programs like ln, echo, rm, cp, mv ....
Let me list some examples:

copy.c :

/* FIXME: this should (at the very least) be moved into the following
if-block. More likely, it should be removed, because it inhibits
making backups. But removing it will result in a change in behavior
that will probably have to be documented -- and tests will have to
be updated. */

/* FIXME: shouldn't this be testing whether we're making symlinks? */

/* FIXME: this is a little fragile in that it relies on rename(2)
failing with a specific errno value. Expect problems
on non-POSIX systems. */

/* See if the destination is already the desired symlink.
FIXME: This behavior isn't documented, and seems wrong
in some cases, e.g., if the destination symlink has the
wrong ownership, permissions, or time stamps. */

/* Can't preserve ownership of symlinks.
FIXME: maybe give a warning or even error for symlinks
in directories with the sticky bit set -- there, not
preserving owner/group is a potential security problem. */

Ok this is just copy. I can't belive it. Every linux distro has this installed and then I read comments like this

/* FIXME: is this dead code?
Consider the test, pos == start_pos, above. */

/* FIXME: is this dead code? */

Now I am board.

P.S. Edd is going to be very happy. How many fixme's are there in OpenBSD?

1 comment:

vext01 said...

Hi didi,

I did a quick check for fun.

eddlocal@dec170:bin> pwd
eddlocal@dec170:bin> grep -r FIXME *
eddlocal@dec170:bin> grep -r TODO *
ed/test/CVS/Entries:/TODO/1.2/Sun Jun 23 14:20:06 1996//
ed/test/TODO:$OpenBSD: TODO,v 1.2 1996/06/23 14:20:06 deraadt Exp $
ed/test/TODO:$NetBSD: TODO,v 1.3 1995/03/21 09:05:20 cgd Exp $
systrace/intercept-translate.c: /* TODO: make this less of a hack */
systrace/linux-translate.c: /* TODO: make this less of a hack */

Theres a couple :P