$search
00001 """ 00002 WordWrapping 00003 """ 00004 00005 00006 import os, sys, string, time, getopt 00007 import re 00008 00009 def WordWrap(text, cols=70, detect_paragraphs = 0, is_header = 0): 00010 text = string.replace(text,"\r\n", "\n") # remove CRLF 00011 def nlrepl(matchobj): 00012 if matchobj.group(1) != ' ' and matchobj.group(2) != ' ': 00013 repl_with = ' ' 00014 else: 00015 repl_with = '' 00016 00017 return matchobj.group(1) + repl_with + matchobj.group(2) 00018 00019 if detect_paragraphs: 00020 text = re.sub("([^\n])\n([^\n])",nlrepl,text) 00021 00022 body = [] 00023 i = 0 00024 j = 0 00025 ltext = len(text) 00026 00027 while i<ltext: 00028 if i+cols < ltext: 00029 r = string.find(text, "\n", i, i+cols) 00030 j = r 00031 if r == -1: 00032 j = string.rfind(text, " ", i, i+cols) 00033 if j == -1: 00034 r = string.find(text, "\n", i+cols) 00035 if r == -1: r = ltext 00036 j = string.find(text, " ", i+cols) 00037 if j == -1: j = ltext 00038 j = min(j, r) 00039 else: 00040 j = ltext 00041 00042 body.append(string.strip(text[i:j])) 00043 i = j+1 00044 00045 if is_header: 00046 body = string.join(body, "\n ") 00047 else: 00048 body = string.join(body, "\n") 00049 return body 00050