mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-06-10 04:12:15 +03:00
Handle newlines and semicolons on Linux
This commit is contained in:
parent
f0c18debda
commit
e95034565f
22
config.py
22
config.py
@ -315,9 +315,9 @@ class Config:
|
|||||||
try:
|
try:
|
||||||
val = self.config.get(self.SECTION, key)
|
val = self.config.get(self.SECTION, key)
|
||||||
if u'\n' in val:
|
if u'\n' in val:
|
||||||
return val.split(u'\n')[:-1]
|
return [self._unescape(x) for x in val.split(u'\n')[:-1]]
|
||||||
else:
|
else:
|
||||||
return val
|
return self._unescape(val)
|
||||||
except:
|
except:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -329,9 +329,9 @@ class Config:
|
|||||||
|
|
||||||
def set(self, key, val):
|
def set(self, key, val):
|
||||||
if isinstance(val, basestring) or isinstance(val, numbers.Integral):
|
if isinstance(val, basestring) or isinstance(val, numbers.Integral):
|
||||||
self.config.set(self.SECTION, key, val)
|
self.config.set(self.SECTION, key, self._escape(val))
|
||||||
elif hasattr(val, '__iter__'): # iterable
|
elif hasattr(val, '__iter__'): # iterable
|
||||||
self.config.set(self.SECTION, key, u'\n'.join([unicode(x) for x in val] + [u';']))
|
self.config.set(self.SECTION, key, u'\n'.join([self._escape(x) for x in val] + [u';']))
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
@ -346,6 +346,20 @@ class Config:
|
|||||||
self.save()
|
self.save()
|
||||||
self.config = None
|
self.config = None
|
||||||
|
|
||||||
|
def _escape(self, val):
|
||||||
|
return unicode(val).replace(u'\\', u'\\\\').replace(u'\n', u'\\n').replace(u';', u'\\;')
|
||||||
|
|
||||||
|
def _unescape(self, val):
|
||||||
|
chars = list(val)
|
||||||
|
i = 0
|
||||||
|
while i < len(chars):
|
||||||
|
if chars[i] == '\\':
|
||||||
|
chars.pop(i)
|
||||||
|
if chars[i] == 'n':
|
||||||
|
chars[i] = '\n'
|
||||||
|
i += 1
|
||||||
|
return u''.join(chars)
|
||||||
|
|
||||||
else: # ???
|
else: # ???
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user