[gtk+/gtk-2-18] Fixes for the compose-parse.py script



commit d56f5a843d1e9213e7a4bf11f08caaa20af46ded
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Oct 25 23:46:27 2009 -0400

    Fixes for the compose-parse.py script
    
    Several fixes by Ray Strode and Peter Hutterer to make compose-parse.py
    work with the current X.org Compose file.

 gtk/compose-parse.py |   47 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 39 insertions(+), 8 deletions(-)
---
diff --git a/gtk/compose-parse.py b/gtk/compose-parse.py
index dfa9492..2aa1356 100755
--- a/gtk/compose-parse.py
+++ b/gtk/compose-parse.py
@@ -425,30 +425,61 @@ except:
 """ Look if there is a lookaside (supplementary) compose file in the current
     directory, and if so, open, then merge with upstream Compose file.
 """
+xorg_compose_sequences_raw = []
+for seq in composefile.readlines():
+        xorg_compose_sequences_raw.append(seq)
+
 try:
         composefile_lookaside = open(FILENAME_COMPOSE_SUPPLEMENTARY, 'r')
+        for seq in composefile_lookaside.readlines():
+                xorg_compose_sequences_raw.append(seq)
 except IOError, (errno, strerror):
-        if not opt_quiet:
+        if opt_verbose:
                 print "I/O error(%s): %s" % (errno, strerror)
                 print "Did not find lookaside compose file. Continuing..."
 except:
         print "Unexpected error: ", sys.exc_info()[0]
         sys.exit(-1)
 
-xorg_compose_sequences_raw = []
-for seq in composefile.readlines():
-        xorg_compose_sequences_raw.append(seq)
-for seq in composefile_lookaside.readlines():
-        xorg_compose_sequences_raw.append(seq)
-
 """ Parse the compose file in  xorg_compose_sequences"""
 xorg_compose_sequences = []
 xorg_compose_sequences_algorithmic = []
 linenum_compose = 0
+comment_nest_depth = 0
 for line in xorg_compose_sequences_raw:
 	linenum_compose += 1
 	line = line.strip()
-	if line is "" or match("^XCOMM", line) or match("^#", line):
+	if match("^XCOMM", line) or match("^#", line):
+		continue
+
+	line = sub(r"\/\*([^\*]*|[\*][^/])\*\/", "", line)
+
+	comment_start = line.find("/*")
+
+	if comment_start >= 0:
+		if comment_nest_depth == 0:
+			line = line[:comment_start]
+		else:
+			line = ""
+
+		comment_nest_depth += 1
+	else:
+		comment_end = line.find("*/")
+
+		if comment_end >= 0:
+			comment_nest_depth -= 1
+
+		if comment_nest_depth < 0:
+			print "Invalid comment %(linenum_compose)d in %(filename)s: \
+			Closing '*/' without opening '/*'" % { "linenum_compose": linenum_compose, "filename": filename_compose }
+			exit(-1)
+
+		if comment_nest_depth > 0:
+			line = ""
+		else:
+			line = line[comment_end + 2:]
+
+	if line is "":
 		continue
 
 	#line = line[:-1]



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]