summaryrefslogtreecommitdiff
path: root/summainlib.py
diff options
context:
space:
mode:
Diffstat (limited to 'summainlib.py')
-rw-r--r--summainlib.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/summainlib.py b/summainlib.py
index 07895e1..e148760 100644
--- a/summainlib.py
+++ b/summainlib.py
@@ -14,6 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import base64
import grp
import hashlib
import hmac
@@ -220,7 +221,14 @@ class FilesystemObject(object):
def _compute_xattrs(self): # pragma: no cover
if len(self._xattrs) == 0:
return ''
- parts = [' %s=%s' % (k, self._xattrs[k]) for k in self._xattrs]
+
+ def quote(s):
+ if s.isalnum():
+ return '"%s"' % s
+ else:
+ return '0s' + base64.urlsafe_b64encode(s)
+
+ parts = [' %s=%s' % (k, quote(self._xattrs[k])) for k in self._xattrs]
return '\n' + '\n'.join(parts)
def format_time(self, secs, nsecs):