diff options
author | Joshua Colp <jcolp@digium.com> | 2016-07-28 19:18:00 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2016-07-28 19:18:00 -0500 |
commit | 78de6eabbce477e5c966a8d594d9311f1f3acf52 (patch) | |
tree | 29776e1446236ab01c8c63f90f43788da51c5004 /contrib | |
parent | 7883f128d54a52c65741c0e03e69ba0cf27a4743 (diff) | |
parent | 87433c2566b7978614584f267e0518719004a86d (diff) |
Merge "astconfigparser.py: Update with realtime fixes." into 13
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/scripts/sip_to_pjsip/astconfigparser.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/contrib/scripts/sip_to_pjsip/astconfigparser.py b/contrib/scripts/sip_to_pjsip/astconfigparser.py index b207b0d7c..46f4fb484 100644 --- a/contrib/scripts/sip_to_pjsip/astconfigparser.py +++ b/contrib/scripts/sip_to_pjsip/astconfigparser.py @@ -1,3 +1,10 @@ +""" +Copyright (C) 2016, Digium, Inc. + +This program is free software, distributed under the terms of +the GNU General Public License Version 2. +""" + import re import itertools @@ -44,6 +51,12 @@ class Section(MultiOrderedDict): """ return cmp(self.id, other.id) + def __eq__(self, other): + """ + Use self.id as means of determining equality + """ + return self.id == other.id + def get(self, key, from_self=True, from_templates=True, from_defaults=True): """ @@ -184,9 +197,14 @@ def remove_comment(line, is_comment): # otherwise it was an embedded comment so combine return ''.join([part[0].strip(), ' ', line]).rstrip(), False - # check for eol comment - return line.partition(COMMENT)[0].strip(), False + # find the first occurence of a comment that is not escaped + match = re.match(r'.*?([^\\];)', line) + + if match: + # the end of where the real string is is where the comment starts + line = line[0:(match.end()-1)] + return line.replace("\\", "").strip(), False def try_include(line): """ @@ -224,7 +242,7 @@ def try_section(line): def try_option(line): """Parses the line as an option, returning the key/value pair.""" - data = re.split('=>?', line) + data = re.split('=>?', line, 1) # should split in two (key/val), but either way use first two elements return data[0].rstrip(), data[1].lstrip() |