X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fcycle-check.c;h=f7b3d078856d25cc6dcefad59064e3f08f5050e9;hb=7ef6c64e210ac0979d7e8ac69bc5b5208c2405ab;hp=a5b6df1e51a1d466dae5d5a51e4d51a87d175842;hpb=b5eb8386645bf1bcfafa63c729ff9a86454def87;p=gnulib.git diff --git a/lib/cycle-check.c b/lib/cycle-check.c index a5b6df1e5..f7b3d0788 100644 --- a/lib/cycle-check.c +++ b/lib/cycle-check.c @@ -1,7 +1,6 @@ /* help detect directory cycles efficiently - Copyright (C) 2003, 2004, 2005, 2006, 2009 Free Software - Foundation, Inc. + Copyright (C) 2003-2006, 2009-2014 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,7 +33,7 @@ /* Return true if I is a power of 2, or is zero. */ -static inline bool +static bool is_zero_or_power_of_two (uintmax_t i) { return (i & (i - 1)) == 0; @@ -51,7 +50,7 @@ cycle_check_init (struct cycle_check_state *state) descending chdir call, with SB corresponding to the chdir operand. If SB corresponds to a directory that has already been seen, return true to indicate that there is a directory cycle. - Note that this is done `lazily', which means that some of + Note that this is done "lazily", which means that some of the directories in the cycle may be processed twice before the cycle is detected. */ @@ -63,20 +62,20 @@ cycle_check (struct cycle_check_state *state, struct stat const *sb) /* If the current directory ever happens to be the same as the one we last recorded for the cycle detection, then it's obviously part of a cycle. */ - if (state->chdir_counter && SAME_INODE (*sb, state->dev_ino) == 1) + if (state->chdir_counter && SAME_INODE (*sb, state->dev_ino)) return true; - /* If the number of `descending' chdir calls is a power of two, + /* If the number of "descending" chdir calls is a power of two, record the dev/ino of the current directory. */ if (is_zero_or_power_of_two (++(state->chdir_counter))) { /* On all architectures that we know about, if the counter - overflows then there is a directory cycle here somewhere, - even if we haven't detected it yet. Typically this happens - only after the counter is incremented 2**64 times, so it's a - fairly theoretical point. */ + overflows then there is a directory cycle here somewhere, + even if we haven't detected it yet. Typically this happens + only after the counter is incremented 2**64 times, so it's a + fairly theoretical point. */ if (state->chdir_counter == 0) - return true; + return true; state->dev_ino.st_dev = sb->st_dev; state->dev_ino.st_ino = sb->st_ino;