annotate move-if-change @ 5727:86d33ddc7fd6

Avoid EOVERFLOW from stat() calls due to overflowing inode numbers. The btrfs filesystem now uses 64-bit inode numbers even on 32-bit systems. This can lead to spurious stat() failures, where EOVERFLOW is returned because the inode number does not fit into the 32-bit stat structure, even when the caller is not interested in the inode number. This patch builds with _FILE_OFFSET_BITS == 64 when possible, and deals with integers that may be too large to fit into a Lisp fixnum. For more information, see xemacs-patches message <CAHCOHQk_mPM6WgFChBsGafqhuazep6VED7swFoqfFXOV1r8org@mail.gmail.com>.
author Jerry James <james@xemacs.org>
date Wed, 06 Mar 2013 08:32:17 -0700
parents 376386a54a3c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 #!/bin/sh
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 test -r $2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 cmp $1 $2 > /dev/null
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 echo $2 is unchanged
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 rm -f $1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 else
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 mv -f $1 $2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 fi
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 else
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 mv -f $1 $2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 fi