aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/python
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2016-12-14 16:07:29 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2016-12-14 16:07:29 +0000
commitd33c00e1ceb82fa46561ee076b9cb40ad44dc0dc (patch)
treec923fb7a40da6938459bdbe00266f38ccce2a7e9 /libstdc++-v3/python
parent3c760f4a79c221408122b3f265a8039b04ce697e (diff)
downloadgcc-d33c00e1ceb82fa46561ee076b9cb40ad44dc0dc.zip
gcc-d33c00e1ceb82fa46561ee076b9cb40ad44dc0dc.tar.gz
gcc-d33c00e1ceb82fa46561ee076b9cb40ad44dc0dc.tar.bz2
Make printers use singular noun for a single element
* python/libstdcxx/v6/printers.py (num_elements): New function. (StdMapPrinter.to_string, StdSetPrinter.to_string) (StdDequePrinter.to_string, Tr1UnorderedSetPrinter.to_string) (Tr1UnorderedMapPrinter.to_string): Use num_elements. * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected results to use singular noun when there is only one element. * testsuite/libstdc++-prettyprinters/debug.cc: Likewise. * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise. * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. * testsuite/libstdc++-prettyprinters/tr1.cc: Likewise. From-SVN: r243652
Diffstat (limited to 'libstdc++-v3/python')
-rw-r--r--libstdc++-v3/python/libstdcxx/v6/printers.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
index 8ac4a37..3a111d7 100644
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
@@ -508,6 +508,10 @@ class StdDebugIteratorPrinter:
itype = self.val.type.template_argument(0)
return self.val.cast(itype)
+def num_elements(num):
+ """Return either "1 element" or "N elements" depending on the argument."""
+ return '1 element' if num == 1 else '%d elements' % num
+
class StdMapPrinter:
"Print a std::map or std::multimap"
@@ -539,8 +543,8 @@ class StdMapPrinter:
self.val = val
def to_string (self):
- return '%s with %d elements' % (self.typename,
- len (RbtreeIterator (self.val)))
+ return '%s with %s' % (self.typename,
+ num_elements(len(RbtreeIterator (self.val))))
def children (self):
rep_type = find_type(self.val.type, '_Rep_type')
@@ -579,8 +583,8 @@ class StdSetPrinter:
self.val = val
def to_string (self):
- return '%s with %d elements' % (self.typename,
- len (RbtreeIterator (self.val)))
+ return '%s with %s' % (self.typename,
+ num_elements(len(RbtreeIterator (self.val))))
def children (self):
rep_type = find_type(self.val.type, '_Rep_type')
@@ -681,7 +685,7 @@ class StdDequePrinter:
size = self.buffer_size * delta_n + delta_s + delta_e
- return '%s with %d elements' % (self.typename, long (size))
+ return '%s with %s' % (self.typename, num_elements(long(size)))
def children(self):
start = self.val['_M_impl']['_M_start']
@@ -795,7 +799,8 @@ class Tr1UnorderedSetPrinter:
return self.val['_M_h']
def to_string (self):
- return '%s with %d elements' % (self.typename, self.hashtable()['_M_element_count'])
+ count = self.hashtable()['_M_element_count']
+ return '%s with %s' % (self.typename, num_elements(count))
@staticmethod
def format_count (i):
@@ -820,7 +825,8 @@ class Tr1UnorderedMapPrinter:
return self.val['_M_h']
def to_string (self):
- return '%s with %d elements' % (self.typename, self.hashtable()['_M_element_count'])
+ count = self.hashtable()['_M_element_count']
+ return '%s with %s' % (self.typename, num_elements(count))
@staticmethod
def flatten (list):