From: Jim Meyering Date: Wed, 9 Jul 2003 10:00:42 +0000 (+0000) Subject: Fix the bug that would make `du /' omit the `/' on the last line. X-Git-Tag: v5.0.1~148 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=859428bfaae6efbc911b0585b7ceb17ad24ac9a3;p=thirdparty%2Fcoreutils.git Fix the bug that would make `du /' omit the `/' on the last line. E.g., `du --exclude '[^/]*' -x /' would print only "4\t\n" for me. (ftw_dir): Don't clobber the leading `/'. Reported by Chris Lesniewski as http://bugs.debian.org/200542. --- diff --git a/lib/ftw.c b/lib/ftw.c index 16b8bfb2a0..5d26b4a1fb 100644 --- a/lib/ftw.c +++ b/lib/ftw.c @@ -605,8 +605,9 @@ ftw_dir (struct ftw_data *data, struct FTW_STAT *st) __set_errno (save_err); } - /* Prepare the return, revert the `struct FTW' information. */ - data->dirbuf[data->ftw.base - 1] = '\0'; + /* Prepare the return, revert the `struct FTW' information. + If ftw.base is 1, be careful to preserve the `/'. */ + data->dirbuf[data->ftw.base == 1 ? 1 : data->ftw.base - 1] = '\0'; --data->ftw.level; data->ftw.base = previous_base;