--- files.py.orig 2012-02-14 07:53:02.000000000 +0200 +++ files.py 2012-03-10 14:04:51.323559793 +0200 @@ -153,7 +153,7 @@ """ func = use_sudo and sudo or run # Characters to be escaped in both - for char in "/'": + for char in '/"': before = before.replace(char, r'\%s' % char) after = after.replace(char, r'\%s' % char) # Characters to be escaped in replacement only (they're useful in regexen @@ -174,12 +174,15 @@ tmp = "/tmp/%s" % hasher.hexdigest() # Use temp file to work around lack of -i expr = r"""cp -p %(filename)s %(tmp)s \ -&& sed -r -e '%(limit)ss/%(before)s/%(after)s/%(flags)sg' %(filename)s > %(tmp)s \ +&& sed -r -e "%(limit)ss/%(before)s/%(after)s/%(flags)sg" %(filename)s > %(tmp)s \ && cp -p %(filename)s %(filename)s%(backup)s \ && mv %(tmp)s %(filename)s""" command = expr % locals() + elif platform == "FreeBSD": + expr = r'sed -i "%s" -r -e "%ss/%s/%s/%sg" %s' + command = expr % (backup, limit, before, after, flags, filename) else: - expr = r"sed -i%s -r -e '%ss/%s/%s/%sg' %s" + expr = r'sed -i%s -r -e "%ss/%s/%s/%sg" %s' command = expr % (backup, limit, before, after, flags, filename) return func(command, shell=False)