### along with rsync-backup; if not, write to the Free Software Foundation,
### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-from sys import argv, exit, stdin, stdout, stderr
+from sys import argv, exc_info, exit, stdin, stdout, stderr
import errno as E
import hashlib as H
import optparse as OP
###--------------------------------------------------------------------------
### Utilities.
+def excval(): return exc_info()[1]
+
QUIS = OS.path.basename(argv[0])
def moan(msg):
try:
me.st = OS.lstat(file)
me.err = None
- except OSError, err:
+ except OSError:
me.st = None
- me.err = err
+ me.err = excval()
def enum_walk(file, func):
def dirents(name):
try:
return OS.listdir(name)
- except OSError, err:
- syserr("failed to read directory `%s': %s" % (name, err.strerror))
+ except OSError:
+ syserr("failed to read directory `%s': %s" % (name, excval().strerror))
return []
def dir(ee, dev):
## Call the client.
try:
fi = FileInfo(name)
- except OSError, err:
- syserr("failed to stat `%s': %s" % (name, err.strerror))
+ except OSError:
+ syserr("failed to stat `%s': %s" % (name, excval().strerror))
continue
func(fi)
fi.st = OS.fstat(f.fileno())
##fi.st.st_size = sz
hash = h.digest()
- except (OSError, IOError), err:
+ except (OSError, IOError):
fi.st = None
- fi.err = err
+ fi.err = excval()
return None
hash = hash.encode('hex')
try:
d = OS.readlink(me.fi.name)
return '%s -> %s' % (n, me._enc_name(d))
- except OSError, err:
+ except OSError:
+ err = excval()
return '%s -> <E%d %s>' % (n, err.errno, err.strerror)
class DirectoryFormatter (GenericFormatter):
try:
st = OS.lstat(name)
- except OSError, e:
+ except OSError:
+ e = excval()
moan("failed to stat `%s': %s" % (name, e.strerror))
if e.errno != E.ENOENT: good = False
else: