226: #line 244 "text_weaver.ipk" 227: def writecode(self,line): 228: self._flush() 229: self._writeline(line) 230: 231: def echotangle(self,count,data): 232: self.writecode("%6d: %s" % (count,data)) 233: 234: def _write_word(self,word): 235: if self.c == 0: 236: self._write((' '*self.margin)+word) 237: elif self.c + len(word) < self.width: 238: self._write(' '+word) 239: else: 240: self._writeline() 241: self._write((' '*self.margin)+word) 242: 243: def _flush(self): 244: words = self.string.split(self.buffer) 245: for w in words: 246: self._write_word(w) 247: self.buffer = '' 248: 249: def write(self,line): 250: if self.translating: 251: if self.strong: line = string.upper(line) 252: self.buffer = self.buffer + line 253: else: 254: self._write(line) 255: 256: def writeline(self,line = ''): 257: if self.translating: 258: self.write(line) 259: if self.code: 260: self._writeline(self.buffer) 261: self.buffer = '' 262: else: 263: self._flush() 264: else: 265: self._writeline(line) 266: 267: def par(self): 268: self.line_break() 269: if not self.sop: 270: self._writeline() 271: self.sop = 1 272: 273: def line_break(self): 274: self._flush() 275: if self.c != 0: self._writeline() 276: 277: def page_break(self): 278: self.par() 279: self._writeline() 280: self._writeline('-' * self.width) 281: self._writeline() 282: self.sop = 1 283: 284: def begin_emphasize(self): 285: self.write('_') 286: 287: def end_emphasize(self): 288: self.write('_') 289: 290: def begin_strong(self): 291: self.strong = 1 292: 293: def end_strong(self): 294: self.strong = 0 295: 296: def begin_displayed_code(self): 297: self.par() 298: self.code = 1 299: 300: def end_displayed_code(self): 301: self.par() 302: self.code = 0 303: 304: def begin_displayed_text(self): 305: self.par() 306: self.margin = self.margin + 4 307: 308: def end_displayed_text(self): 309: self.par() 310: self.margin = self.margin - 4 311: 312: def new_heading(self,level): 313: while level>len(self.hcount): self.hcount.append(0) 314: while level<len(self.hcount): del self.hcount[-1] 315: counter = self.hcount[level-1]+1 316: self.hcount[level-1] = counter 317: return counter 318: 319: def get_formatted_heading_number(self, sep): 320: hnumber = '' 321: for i in range(0,len(self.hcount)-1): 322: hnumber = hnumber + str(self.hcount[i])+sep 323: hnumber = hnumber + str(self.hcount[-1]) 324: return hnumber 325: 326: def head(self,level, text, atext='', anchor=''): 327: self.par() 328: self.strong = 0 329: self.new_heading(level) 330: h = self.get_formatted_heading_number('.')+'. '+text 331: self.toc.append((level,text,self.sink.lines_written)) 332: self._writeline(h) 333: self._writeline('-'*len(h)) 334: self._writeline() 335: 336: def code_head(self,tangler, secno): 337: if tangler: 338: self.par() 339: language = tangler.get_language() 340: filename =tangler.sink.get_sink_name() 341: self._writeline( 'Start '+language+' section to '+\ 342: filename+'['+str(secno)+']') 343: self._writeline() 344: 345: def code_foot(self,tangler,secno): 346: if tangler: 347: self.par() 348: language = tangler.get_language() 349: filename =tangler.sink.get_sink_name() 350: self._writeline() 351: self._writeline( 'End '+language+' section to '+filename+\ 352: '['+str(secno)+']') 353: self.par() 354: 355: def test_output_head(self,command, status): 356: self.par() 357: self._writeline( 'Start output section of '+command) 358: if status: 359: self._writeline( 'Command returned '+str(status)) 360: self.par() 361: 362: def test_output_foot(self,command,status): 363: self.par() 364: self._writeline('End output section of '+command) 365: self.par() 366: 367: def expected_head(self,command): 368: self.par() 369: self._writeline( 'Start expected section of '+command) 370: self.par() 371: 372: def expected_foot(self,command): 373: self.par() 374: self._writeline('End expected section of '+command) 375: self.par() 376: 377: def diff_head(self,command): 378: self.par() 379: self._writeline( 'Start diff section of '+command) 380: self.par() 381: 382: def diff_foot(self,command): 383: self.par() 384: self._writeline('End diff section of '+command) 385: self.par() 386: 387: def __del__(self): 388: self._flush() 389: if self.c != 0: 390: self._writeline() 391: self.persistent_frame['contents']=self.toc 392: