1 import chardataeffect, inkex, string\r
2 \r
3 class C(chardataeffect.CharDataEffect):\r
4 \r
5 sentence_start = True\r
6 was_punctuation = False\r
7 \r
8 def process_chardata(self,text, line, par):\r
9 r = ""\r
10 #inkex.debug(text+str(line)+str(par))
11 for c in text:\r
12 if c == '.' or c == '!' or c == '?':\r
13 self.was_punctuation = True\r
14 elif ((c.isspace() or line == True) and self.was_punctuation) or par == True:\r
15 self.sentence_start = True\r
16 self.was_punctuation = False\r
17 elif c == '"' or c == ')':\r
18 pass\r
19 else:\r
20 self.was_punctuation = False\r
22 if not c.isspace():\r
23 line = False\r
24 par = False\r
25 \r
26 if self.sentence_start and c.isalpha():\r
27 r = r + c.upper()\r
28 self.sentence_start = False\r
29 elif not self.sentence_start and c.isalpha():\r
30 r = r + c.lower()\r
31 else:\r
32 r = r + c\r
33 \r
34 return r\r
35 \r
36 c = C()\r
37 c.affect()\r