]> thyrsus.com Git - src.git/commitdiff
First attempt at parsing a symbol section.
authorEric S. Raymond <esr@thyrsus.com>
Fri, 7 Nov 2014 02:42:24 +0000 (21:42 -0500)
committerEric S. Raymond <esr@thyrsus.com>
Fri, 7 Nov 2014 02:42:24 +0000 (21:42 -0500)
src

diff --git a/src b/src
index 8d25094a9a1b48789635cd2c5dd7b73ee5a48160..1fc3d0aa8d80554c4b5d58b26a6468d8166055c5 100755 (executable)
--- a/src
+++ b/src
@@ -94,6 +94,7 @@ class RCSLog:
     def __init__(self, name):
         self.name = name
         self.revlist = []
+        self.symbols = []
         with popen_or_die("cd .src >/dev/null; rlog %s; cd ..>/dev/null" % name) as fp:
             self.revlist = []
             self.lockrevs = []
@@ -109,6 +110,10 @@ class RCSLog:
                         if debug >= DEBUG_PARSE:
                             sys.stdout.write("\t-> locks\n")
                         state = "locks"
+                    elif line.startswith("symbols:"):
+                        if debug >= DEBUG_PARSE:
+                            sys.stdout.write("\t-> symbols\n")
+                        state = "symbols"
                 elif line.startswith("----------------------------"):
                     if debug >= DEBUG_PARSE:
                         sys.stdout.write("\t-> logheader\n")
@@ -123,6 +128,14 @@ class RCSLog:
                     else:
                         fields = line.strip().split()
                         self.lockrevs.append(fields[1])
+                elif state == "symbolic names":
+                    if not line[0].isspace():
+                        if debug >= DEBUG_PARSE:
+                            sys.stdout.write("\t-> init\n")
+                            state = "init"
+                    else:
+                        fields = line.strip().split()
+                        self.symbols.append(fields[1])
                 elif state == "logheader":
                     if line.startswith("revision"):
                         fields = line.split()