#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
'''
def get_option_value(line, option):
- rx = option + '\s*=\s*"([^"+])"'
+ rx = option + '\s*=\s*"([^"]+)"'
rx = re.compile(rx)
m = rx.search(line)
if not m:
return m.group(1)
+def set_option_value(line, option, value):
+ rx = '(' + option + '\s*=\s*")[^"]+"'
+ rx = re.compile(rx)
+ m = rx.search(line)
+ if not m:
+ return line
+ return re.sub(rx, '\g<1>' + value + '"', line)
+
+
def del_token(lines, token, start, end = 0):
""" del_token(lines, token, start, end) -> int
on which the inset begins, plus the starting and ending line.
Returns False on any kind of error or if it isn't in an inset.
'''
- stins = find_token_backwards(lines, i, "\\begin_inset")
- if stins == -1:
- return False
- endins = find_end_of_inset(lines, stins)
- if endins < i:
- return False
+ j = i
+ while True:
+ stins = find_token_backwards(lines, "\\begin_inset", j)
+ if stins == -1:
+ return False
+ endins = find_end_of_inset(lines, stins)
+ if endins > j:
+ break
+ j = stins - 1
+
inset = get_value(lines, "\\begin_inset", stins)
if inset == "":
# shouldn't happen
on which the layout begins, plus the starting and ending line.
Returns False on any kind of error.
'''
- stins = find_token_backwards(lines, i, "\\begin_layout")
- if stins == -1:
- return False
- endins = find_end_of_layout(lines, stins)
- if endins < i:
- return False
- lay = get_value(lines, "\\begin_layout", stins)
+ j = i
+ while True:
+ stlay = find_token_backwards(lines, "\\begin_layout", j)
+ if stlay == -1:
+ return False
+ endlay = find_end_of_layout(lines, stlay)
+ if endlay > i:
+ break
+ j = stlay - 1
+
+ lay = get_value(lines, "\\begin_layout", stlay)
if lay == "":
# shouldn't happen
return False
- return (lay, stins, endins)
+ return (lay, stlay, endlay)