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