X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Flyx2lyx%2Fparser_tools.py;h=e32ac5dc4fca7d879a933e8f9c0d7550aa800716;hb=b33b352171813f99a8fbf8e8b6f6c445025d94f8;hp=dbea4e701910235273dbf071d56f3351c7a28572;hpb=cbbc3d34e3ce51d47c1a0b436af08ae86301d2e4;p=lyx.git diff --git a/lib/lyx2lyx/parser_tools.py b/lib/lyx2lyx/parser_tools.py index dbea4e7019..e32ac5dc4f 100644 --- a/lib/lyx2lyx/parser_tools.py +++ b/lib/lyx2lyx/parser_tools.py @@ -1,6 +1,6 @@ # This file is part of lyx2lyx # -*- coding: utf-8 -*- -# Copyright (C) 2002-2010 Dekel Tsur , +# Copyright (C) 2002-2011 Dekel Tsur , # José Matos , Richard Heck # # This program is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # # 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 ''' @@ -69,6 +69,11 @@ get_quoted_value(lines, token, start[, end[, default]): value, if they are present. So use this one for cases where the value is normally quoted. +get_option_value(line, option): + This assumes we have a line with something like: + option="value" + and returns value. Returns "" if not found. + del_token(lines, token, start[, end]): Like find_token, but deletes the line if it finds one. Returns True if a line got deleted, otherwise False. @@ -137,6 +142,8 @@ is_nonempty_line(line): ''' +import re + # Utilities for one line def check_token(line, token): """ check_token(line, token) -> bool @@ -299,6 +306,24 @@ def get_quoted_value(lines, token, start, end = 0, default = ""): return val.strip('"') +def get_option_value(line, option): + rx = option + '\s*=\s*"([^"]+)"' + rx = re.compile(rx) + m = rx.search(line) + if not m: + return "" + 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