? encode.diff ? i18n-0.9.9.patch ? i18n-1.0.0.patch ? i18n.patch ? run_tests ? test.diff Index: ClassicStructuredText.py =================================================================== RCS file: /var/lib/cvs/nkm/zope/StructuredText/ClassicStructuredText.py,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.1.2.1 diff -u -r1.1.1.2 -r1.1.1.1.2.1 Index: DocumentClass.py =================================================================== RCS file: /var/lib/cvs/nkm/zope/StructuredText/DocumentClass.py,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 DocumentClass.py --- DocumentClass.py 15 Apr 2003 15:13:52 -0000 1.1.1.1 +++ DocumentClass.py 9 Nov 2003 18:02:30 -0000 @@ -789,7 +789,7 @@ def doc_literal( self, s, - expr = re.compile(r"(\W+|^)'([%s%s%s\s]+)'([%s]+|$)" % (letters, digits, literal_punc, phrase_delimiters)).search,): + expr = re.compile(r"(\W+|^)'((?:\w|[%s%s\s])+)'([%s]+|$)" % (digits, literal_punc, phrase_delimiters), re.U).search,): # old expr... failed to cross newlines. # expr=re.compile( @@ -807,7 +807,9 @@ def doc_emphasize( self, s, - expr = re.compile(r'\*([%s%s%s\s]+?)\*' % (letters, digits, strongem_punc)).search + # i18nal variant + expr = re.compile(r'\*((?:\w|[%s\s])+?)\*' % (strongem_punc), re.U).search + #expr = re.compile(r'\*([%s%s%s\s]+?)\*' % (letters, digits, strongem_punc)).search #expr = re.compile(r'\s*\*([ \n\r%s0-9.:/;,\'\"\?\-\_\/\=\-\>\<\(\)]+)\*(?!\*|-)' % letters).search # old expr, inconsistent punctuation ): @@ -853,7 +855,7 @@ def doc_underline(self, s, - expr=re.compile(r'_([%s%s%s\s]+)_([\s%s]|$)' % (letters, digits, under_punc,phrase_delimiters)).search): + expr=re.compile(r'_((?:\w|[%s\s])+)_([\s%s]|$)' % (under_punc,phrase_delimiters), re.U).search): result = expr(s) if result: @@ -867,7 +869,7 @@ def doc_strong(self, s, - expr = re.compile(r'\*\*([%s%s%s\s]+?)\*\*' % (letters, digits, strongem_punc)).search + expr = re.compile(r'\*\*((?:\w|[%s%s\s])+?)\*\*' % (digits, strongem_punc), re.U).search #expr = re.compile(r'\s*\*\*([ \n\r%s0-9.:/;,\'\"\?\-\_\/\=\-\>\<\(\)]+)\*\*(?!\*|-)' % letters).search, # old expr, inconsistent punc, failed to cross newlines. ): @@ -879,7 +881,7 @@ return None ## Some constants to make the doc_href() regex easier to read. - _DQUOTEDTEXT = r'("[ %s0-9\n\r%s]+")' % (letters,dbl_quoted_punc) ## double quoted text + _DQUOTEDTEXT = r'("[^"]+")' _ABSOLUTE_URL=r'((http|https|ftp|mailto|file|about)[:/]+?[%s0-9_\@\.\,\?\!\/\:\;\-\#\~\=\&\%%\+]+)' % letters _ABS_AND_RELATIVE_URL=r'([%s0-9_\@\.\,\?\!\/\:\;\-\#\~\=\&\%%\+]+)' % letters @@ -887,12 +889,12 @@ def doc_href1(self, s, - expr=re.compile(_DQUOTEDTEXT + "(:)" + _ABS_AND_RELATIVE_URL + _SPACES).search + expr=re.compile(_DQUOTEDTEXT + "(:)" + _ABS_AND_RELATIVE_URL + _SPACES, re.U).search ): return self.doc_href(s, expr) def doc_href2(self, s, - expr=re.compile(_DQUOTEDTEXT + r'(\,\s+)' + _ABSOLUTE_URL + _SPACES).search + expr=re.compile(_DQUOTEDTEXT + r'(\,\s+)' + _ABSOLUTE_URL + _SPACES, re.U).search ): return self.doc_href(s, expr) Index: DocumentWithImages.py =================================================================== RCS file: /var/lib/cvs/nkm/zope/StructuredText/DocumentWithImages.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- DocumentWithImages.py 15 Apr 2003 15:13:52 -0000 1.1.1.1 +++ DocumentWithImages.py 15 Apr 2003 15:16:25 -0000 1.2 @@ -30,12 +30,12 @@ def doc_img( self, s, - expr1=re.compile('\"([ _a-zA-Z0-9*.:/;,\-\n\~]+)\":img:([a-zA-Z0-9\_\-.:/;,\n\~]+)').search, - expr2=re.compile('\"([ _a-zA-Z0-9*.:/;,\-\n\~]+)\":img:([a-zA-Z0-9\_\-.:/;,\n\~]+):([a-zA-Z0-9_\-.:/;,\n\~]+)').search + expr1=re.compile('\"((?:\w|[ *.:/;,\-\n\~])+)\":img:([a-zA-Z0-9\_\-.:/;,\n\~]+)', re.U).search, + expr2=re.compile('\"((?:\w|[ *.:/;,\-\n\~])+)\":img:([a-zA-Z0-9\_\-.:/;,\n\~]+):([a-zA-Z0-9_\-.:/;,\n\~]+)', re.U).search ): - r = expr2(s) if r: + # Warning: the regex are getting confused when the string after :img: # is an URL containing ":" (Collector #2276) Index: HTMLClass.py =================================================================== RCS file: /var/lib/cvs/nkm/zope/StructuredText/HTMLClass.py,v retrieving revision 1.1.1.1 retrieving revision 1.2.2.2 diff -u -r1.1.1.1 -r1.2.2.2 Index: ST.py =================================================================== RCS file: /var/lib/cvs/nkm/zope/StructuredText/ST.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -r1.1.1.1 -r1.2 --- ST.py 15 Apr 2003 15:13:53 -0000 1.1.1.1 +++ ST.py 15 Apr 2003 15:16:25 -0000 1.2 @@ -115,6 +115,9 @@ Structure => [paragraph,[sub-paragraphs]] """ + if type(paragraphs) == type(''): + paragraphs = unicode(paragraphs, 'utf-8') + currentlevel = 0 currentindent = 0 levels = {0:0} Index: Zwiki.py =================================================================== RCS file: /var/lib/cvs/nkm/zope/StructuredText/Zwiki.py,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.1.2.1 diff -u -r1.1.1.2 -r1.1.1.1.2.1 Index: test.py =================================================================== RCS file: /var/lib/cvs/nkm/zope/StructuredText/test.py,v retrieving revision 1.1.1.1 retrieving revision 1.1.2.1 diff -u -r1.1.1.1 -r1.1.2.1 Index: tests/__init__.py =================================================================== RCS file: /var/lib/cvs/nkm/zope/StructuredText/tests/__init__.py,v retrieving revision 1.1.1.1 retrieving revision 1.1.2.1 diff -u -r1.1.1.1 -r1.1.2.1 Index: tests/testStructuredText.py =================================================================== RCS file: /var/lib/cvs/nkm/zope/StructuredText/tests/testStructuredText.py,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.1.2.3 diff -u -r1.1.1.1 -r1.1.1.1.2.3 --- tests/testStructuredText.py 15 Apr 2003 15:13:56 -0000 1.1.1.1 +++ tests/testStructuredText.py 7 Nov 2003 12:12:32 -0000 1.1.1.1.2.3 @@ -210,13 +210,22 @@ '"literal":http://www.zope.org/.') - def XXXtestUnicodeContent(self): - # This fails because ST uses the default locale to get "letters" - # whereas it should use \w+ and re.U if the string is Unicode. - #self._test(u"h\xe9 **y\xe9** xx", - # u"h\xe9 y\xe9 xx") - pass + def testUnicodeContent(self): + self._test(u"h\xe9 **y\xe9** xx", + u"h\xe9 y\xe9 xx") + self._test(u"h\xe9 *y\xe9* xx", + u"h\xe9 y\xe9 xx") + self._test(u"h\xe9 _y\xe9_ xx", + u"h\xe9 y\xe9 xx") + self._test(u"h\xe9 'y\xe9' xx", + u"h\xe9 y\xe9 xx") + self._test(u"h\xe9 \"y\xe9\":http://zope.org xx", + u"h\xe9 y\xe9 xx") + def testDoNotHang(self): + raw_str = 'UAB "Vita Baltic International" produkcijos asortiment\u0105 papild\u0117 dar trys specifines nedegumo savybes turin\u010dios porolono ru\u0161ys. \nSpalio m\u0117nes\u012f buvo gauti tarptautiniai sertifikatai, liudijantys, kad porolonai CV 3037, CV 3538 ir CV 2533 atitinka degumo standart\u0173 BS 5852:Part 2: 1982 reikalavimus. Tai labai gera \u017einia bald\u0173 gamintojams, gaminantiems baldus ir \u010diu\u017einius,\nkuri\u0173 gaminiams keliami ypatingi importuotoj\u0173 reikalavimai.' + res_txt = raw_str + self._test(raw_str, res_txt) def test_suite(): suite = unittest.TestSuite()