]> git.lyx.org Git - lyx.git/blobdiff - lib/lyx2lyx/parser_tools.py
half-functional lyx2lyx reversion
[lyx.git] / lib / lyx2lyx / parser_tools.py
index dbea4e701910235273dbf071d56f3351c7a28572..e32ac5dc4fca7d879a933e8f9c0d7550aa800716 100644 (file)
@@ -1,6 +1,6 @@
 # This file is part of lyx2lyx
 # -*- coding: utf-8 -*-
 # This file is part of lyx2lyx
 # -*- coding: utf-8 -*-
-# Copyright (C) 2002-2010 Dekel Tsur <dekel@lyx.org>, 
+# Copyright (C) 2002-2011 Dekel Tsur <dekel@lyx.org>, 
 # José Matos <jamatos@lyx.org>, Richard Heck <rgheck@comcast.net>
 #
 # This program is free software; you can redistribute it and/or
 # José Matos <jamatos@lyx.org>, Richard Heck <rgheck@comcast.net>
 #
 # 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
 #
 # 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.
 
   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.
 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
 # 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('"')
 
 
     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
 
 def del_token(lines, token, start, end = 0):
     """ del_token(lines, token, start, end) -> int