summaryrefslogtreecommitdiff
path: root/solenv/gdb
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedric.bosdonnat.ooo@free.fr>2011-08-29 11:31:28 +0200
committerCédric Bosdonnat <cedric.bosdonnat.ooo@free.fr>2011-08-29 11:32:12 +0200
commitbcc461789442cc38df2801b38dc1161d2940fba6 (patch)
tree28a2ec9425168b323d7f9a5918fe0a29a6c36cd6 /solenv/gdb
parent7c4b75cfeabb988ba975283fa58a53cb3b67bd8e (diff)
Added SwPosition, SwPaM gdb pretty-printers
Diffstat (limited to 'solenv/gdb')
-rw-r--r--solenv/gdb/libreoffice/sw.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/solenv/gdb/libreoffice/sw.py b/solenv/gdb/libreoffice/sw.py
index 761c153b1917..0b2ff7f94dbd 100644
--- a/solenv/gdb/libreoffice/sw.py
+++ b/solenv/gdb/libreoffice/sw.py
@@ -27,6 +27,34 @@
from libreoffice.util import printing
+class SwPositionPrinter(object):
+ '''Prints SwPosition.'''
+
+ def __init__(self, typename, value):
+ self.typename = typename
+ self.value = value
+
+ def to_string(self):
+ node = self.value['nNode']['pNd'].dereference();
+ offset = self.value['nContent']['nIndex']
+ return "%s (node %d, offset %d)" % (self.typename, node['nOffset'], offset)
+
+class SwPaMPrinter(object):
+ '''Prints SwPaM.'''
+
+ def __init__(self, typename, value):
+ self.typename = typename
+ self.value = value
+
+ def to_string(self):
+ return "%s" % (self.typename)
+
+ def children(self):
+ point = self.value['m_pPoint'].dereference()
+ mark = self.value['m_pMark'].dereference()
+ children = [ ( 'point', point), ( 'mark', mark ) ]
+ return children.__iter__()
+
class BigPtrArrayPrinter(object):
'''Prints BigPtrArray.'''
@@ -110,6 +138,8 @@ def build_pretty_printers():
printer = printing.Printer("libreoffice/sw")
printer.add('BigPtrArray', BigPtrArrayPrinter)
+ printer.add('SwPosition', SwPositionPrinter)
+ printer.add('SwPaM', SwPaMPrinter)
def register_pretty_printers(obj):
printing.register_pretty_printer(printer, obj)