Re: tmda-cgi error

Jim Ramsay <[email protected]>
Newsgroups gmane.mail.spam.tmda.user
Message-ID <20061023173224.53b427f4@home>
David Ford <[email protected]> wrote:

> i have tmda 1.1.8 running on my system fine.  i have a problem getting
> the cgi to run now.  any comments?

<snip>

I think the attached patch may fix it.  Please give it a try and let me
know.  Hopefully it doesn't break anything new :)

To apply the patch, go into the tmda-cgi directory and run:

  patch -p0 < template_unicode.patch

-- 
Jim Ramsay
"Me fail English?  That's unpossible!"
template_unicode.patch (text/x-patch, 2.5 KB)
Index: Template.py
===================================================================
--- Template.py	(revision 2091)
+++ Template.py	(working copy)
@@ -184,18 +184,18 @@
 
     RetVal = ""
     for HTML in self.HTML:
-      if type(HTML) == StringType:
+      if isinstance(HTML, Template):
+        RetVal += str(HTML)
+      else:
         if self.BeenExpanded:
           RetVal += HTML
         else:
           RetVal += self.LonePctSearch.sub(self.LonePctRepl, HTML) % self.Dict
-      else:
-        RetVal += str(HTML)
     return RetVal
 
   def UpdateItems(self, Target):
     for i in range(len(self.HTML)):
-      if type(self.HTML[i]) != StringType:
+      if isinstance(self.HTML[i], Template):
         if self.HTML[i].Name:
           self.HTML[i].BoilerPlate.UpdateItems(self.HTML[i])
           Target.Items[self.HTML[i].Name] = self.HTML[i]
@@ -215,7 +215,12 @@
 
     # Find the start tag
     for i in range(len(self.HTML)):
-      if type(self.HTML[i]) == StringType:
+      if isinstance(self.HTML[i], Template):
+        RetVal = self.HTML[i][Var]
+        if RetVal:
+          self.UpdateItems(self)
+          return RetVal
+      else:
         Match = self.SearchDict[Var].search(self.HTML[i])
         if Match:
           # Is it an all-in-one tag?
@@ -230,7 +235,7 @@
               [self.HTML[i][:Match.start()], self.HTML[i][Match.end():]]
             # Now search for the end tag
             for j in range(i+1, len(self.HTML)):
-              if type(self.HTML[j]) == StringType:
+              if not isinstance(self.HTML[j], Template):
                 Match = self.VarEndSearch.search(self.HTML[j])
                 if Match:
                   # Found end tag, split off text after it
@@ -244,22 +249,17 @@
                   self.UpdateItems(self)
                   return self.HTML[i+1]
           raise KeyError, "Can't find end tag for variable: %s" % Var
-      else:
-        RetVal = self.HTML[i][Var]
-        if RetVal:
-          self.UpdateItems(self)
-          return RetVal
     return None
 
   def Expand(self, Dict):
     "Expand any %(<name>)s references in self."
     for i in range(len(self.HTML)):
-      if type(self.HTML[i]) == StringType:
+      if isinstance(self.HTML[i], Template):
+        self.HTML[i].Expand(Dict)
+      else:
         if not self.BeenExpanded:
           self.HTML[i] = \
             self.LonePctSearch.sub(self.LonePctRepl, self.HTML[i]) % Dict
-      else:
-        self.HTML[i].Expand(Dict)
     self.BeenExpanded = 1
     return self
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.