Zope is an exciting new object-based, open source web application platform. It allows you to build powerful and dynamic web applications easily. Zope comes with source code and is friendly to developers as well as users. Zope 2.10.x is needed to run Plone 3.
73 lines
3.2 KiB
Text
73 lines
3.2 KiB
Text
$NetBSD: patch-ac,v 1.1.1.1 2007/12/18 15:35:28 taca Exp $
|
|
|
|
--- lib/python/zope/structuredtext/document.py.orig 2007-03-25 18:51:59.000000000 +0900
|
|
+++ lib/python/zope/structuredtext/document.py
|
|
@@ -556,7 +556,7 @@ class Document:
|
|
|
|
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,):
|
|
r = expr(s)
|
|
if r:
|
|
start, end = r.span(2)
|
|
@@ -564,7 +564,8 @@ class Document:
|
|
|
|
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
|
|
):
|
|
|
|
r=expr(s)
|
|
@@ -605,7 +606,7 @@ class Document:
|
|
|
|
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:
|
|
@@ -617,7 +618,7 @@ class Document:
|
|
|
|
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.
|
|
):
|
|
|
|
@@ -627,19 +628,19 @@ class Document:
|
|
return (stng.StructuredTextStrong(s[start:end]), start-2, end+2)
|
|
|
|
## 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'("[^"]+")' ## double quoted text
|
|
_ABSOLUTE_URL=r'((http|https|ftp|mailto|file|about)[:/]+?[%s0-9_\@\.\,\?\!\/\:\;\-\#\~\=\&\%%\+]+)' % letters
|
|
_ABS_AND_RELATIVE_URL=r'([%s0-9_\@\.\,\?\!\/\:\;\-\#\~\=\&\%%\+]+)' % letters
|
|
|
|
_SPACES = r'(\s*)'
|
|
|
|
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)
|
|
|
|
@@ -693,7 +694,7 @@ class DocumentWithImages(Document):
|
|
|
|
def doc_img(
|
|
self, s,
|
|
- expr1=re.compile('\"([ _a-zA-Z0-9*.:/;,\[\]\'\-\n\~]+)\":img:([a-zA-Z0-9%\_\-.:/\?=;,\n\~]+)').search,
|
|
+ expr1=re.compile('\"((?:\w|[ *.:/;,\-\n\~])+)\":img:([a-zA-Z0-9\_\-.:/;,\n\~]+)', re.U).search,
|
|
):
|
|
|
|
r=expr1(s)
|