X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsame.c;h=d41cccc46138da457f92b690d127f882791ebf0d;hb=a9b64ea6a96fe625db5332f5e2b3e5f968704af7;hp=725cf61dfb0ae22a0728223efb06def35daae40e;hpb=e5894c7e1bab7b9c1f5f7bb2f3737bcf9253be68;p=gnulib.git diff --git a/lib/same.c b/lib/same.c index 725cf61df..d41cccc46 100644 --- a/lib/same.c +++ b/lib/same.c @@ -64,14 +64,12 @@ void free (); int same_name (const char *source, const char *dest) { - char *source_basename, *dest_basename; - size_t source_baselen, dest_baselen; - /* Compare the basenames. */ - source_basename = base_name (source); - dest_basename = base_name (dest); - source_baselen = base_len (source_basename); - dest_baselen = base_len (dest_basename); + char const *source_basename = base_name (source); + char const *dest_basename = base_name (dest); + size_t source_baselen = base_len (source_basename); + size_t dest_baselen = base_len (dest_basename); + if (source_baselen == dest_baselen && memcmp (source_basename, dest_basename, dest_baselen) == 0) { @@ -79,7 +77,7 @@ same_name (const char *source, const char *dest) struct stat dest_dir_stats; char *source_dirname, *dest_dirname; - /* Compare the directories (by comparing their inodes). */ + /* Compare the parent directories (via the device and inode numbers). */ source_dirname = dir_name (source); dest_dirname = dir_name (dest);