355 if cell.id == selected_node: |
355 if cell.id == selected_node: |
356 s += '<td class="tree_cell" rowspan="2"><div id="selected" class="tree_cell">%s</div></td>' % (render_node(cell.id)) |
356 s += '<td class="tree_cell" rowspan="2"><div id="selected" class="tree_cell">%s</div></td>' % (render_node(cell.id)) |
357 else: |
357 else: |
358 s += '<td class="tree_cell" rowspan="2"><div class="tree_cell">%s</div></td>' % (render_node(cell.id)) |
358 s += '<td class="tree_cell" rowspan="2"><div class="tree_cell">%s</div></td>' % (render_node(cell.id)) |
359 else: |
359 else: |
360 s += '<td rowspan="2"> </td>' |
360 s += '<td rowspan="2"> </td>' |
361 s += '<td class="tree_cell_%d_1"> </td>' % link_cell |
361 s += '<td class="tree_cell_%d_1"> </td>' % link_cell |
362 s += '<td class="tree_cell_%d_2"> </td>' % link_cell |
362 s += '<td class="tree_cell_%d_2"> </td>' % link_cell |
363 |
363 |
364 cell = line[-1] |
364 cell = line[-1] |
365 if cell: |
365 if cell: |
366 if cell.id == selected_node: |
366 if cell.id == selected_node: |
367 s += '<td class="tree_cell" rowspan="2"><div id="selected" class="tree_cell">%s</div></td>' % (render_node(cell.id)) |
367 s += '<td class="tree_cell" rowspan="2"><div id="selected" class="tree_cell">%s</div></td>' % (render_node(cell.id)) |
368 else: |
368 else: |
369 s += '<td class="tree_cell" rowspan="2"><div class="tree_cell">%s</div></td>' % (render_node(cell.id)) |
369 s += '<td class="tree_cell" rowspan="2"><div class="tree_cell">%s</div></td>' % (render_node(cell.id)) |
370 else: |
370 else: |
371 s += '<td rowspan="2"> </td>' |
371 s += '<td rowspan="2"> </td>' |
372 |
372 |
373 s += '</tr>\n' |
373 s += '</tr>\n' |
374 if link_line: |
374 if link_line: |
375 s += '<tr>' |
375 s += '<tr>' |
376 for j, link_cell in enumerate(link_line): |
376 for j, link_cell in enumerate(link_line): |
377 s += '<td class="tree_cell_%d_3"> </td>' % link_cell |
377 s += '<td class="tree_cell_%d_3"> </td>' % link_cell |
378 s += '<td class="tree_cell_%d_4"> </td>' % link_cell |
378 s += '<td class="tree_cell_%d_4"> </td>' % link_cell |
379 s += '</tr>\n' |
379 s += '</tr>\n' |
380 |
380 |
381 s += '</table>' |
381 s += '</table>' |
382 return s |
382 return s |
383 |
383 |
426 u'<b class="line">%s</b>, <b>function</b> ' |
426 u'<b class="line">%s</b>, <b>function</b> ' |
427 u'<b class="function">%s</b>:<br/>'%( |
427 u'<b class="function">%s</b>:<br/>'%( |
428 xml_escape(stackentry[0]), stackentry[1], xml_escape(stackentry[2]))) |
428 xml_escape(stackentry[0]), stackentry[1], xml_escape(stackentry[2]))) |
429 if stackentry[3]: |
429 if stackentry[3]: |
430 string = xml_escape(stackentry[3]).decode('utf-8', 'replace') |
430 string = xml_escape(stackentry[3]).decode('utf-8', 'replace') |
431 strings.append(u' %s<br/>\n' % (string)) |
431 strings.append(u'  %s<br/>\n' % (string)) |
432 # add locals info for each entry |
432 # add locals info for each entry |
433 try: |
433 try: |
434 local_context = tcbk.tb_frame.f_locals |
434 local_context = tcbk.tb_frame.f_locals |
435 html_info = [] |
435 html_info = [] |
436 chars = 0 |
436 chars = 0 |