mirror of
https://github.com/claunia/flac.git
synced 2025-12-16 18:54:26 +00:00
in grabbag__file_are_same() check that st_dev is same also
This commit is contained in:
@@ -45,7 +45,8 @@ const char *grabbag__file_get_basename(const char *srcpath);
|
|||||||
*/
|
*/
|
||||||
FLAC__bool grabbag__file_change_stats(const char *filename, FLAC__bool read_only);
|
FLAC__bool grabbag__file_change_stats(const char *filename, FLAC__bool read_only);
|
||||||
|
|
||||||
/* returns true iff stat() succeeds for both files and they have the same inode */
|
/* returns true iff stat() succeeds for both files and they have the same device and inode */
|
||||||
|
/*@@@ this does not work on windows so for that the function just returns !strcmp(f1,f2) */
|
||||||
FLAC__bool grabbag__file_are_same(const char *f1, const char *f2);
|
FLAC__bool grabbag__file_are_same(const char *f1, const char *f2);
|
||||||
|
|
||||||
/* attempts to make writable before unlinking */
|
/* attempts to make writable before unlinking */
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ FLAC__bool grabbag__file_are_same(const char *f1, const char *f2)
|
|||||||
return f1 && f2 && 0 == strcmp(f1, f2); /*@@@@@@ need better method than strcmp */
|
return f1 && f2 && 0 == strcmp(f1, f2); /*@@@@@@ need better method than strcmp */
|
||||||
#else
|
#else
|
||||||
struct stat s1, s2;
|
struct stat s1, s2;
|
||||||
return f1 && f2 && stat(f1, &s1) == 0 && stat(f2, &s2) == 0 && s1.st_ino == s2.st_ino;
|
return f1 && f2 && stat(f1, &s1) == 0 && stat(f2, &s2) == 0 && s1.st_ino == s2.st_ino && s1.st_dev == s2.st_dev;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user