+ if (COMPAT_MODE("bin/mv", "unix2003")) {
+ /*
+ * For Unix 2003 compatibility, check if old and new are
+ * same file, and produce an error * (like on Sun) that
+ * conformance test 66 in mv.ex expects.
+ */
+ if (!stat(*argv, &fsb) && !stat(path, &tsb) &&
+ fsb.st_ino == tsb.st_ino &&
+ fsb.st_dev == tsb.st_dev &&
+ fsb.st_gen == tsb.st_gen) {
+ (void)fprintf(stderr, "mv: %s and %s are identical\n",
+ *argv, path);
+ rval = 2; /* Like the Sun */
+ } else {
+ if (do_move(*argv, path))
+ rval = 1;
+ }
+ } else {
+ if (do_move(*argv, path))
+ rval = 1;
+ }