[pango/serialize-attrs-and-tabs: 1/3] tests: Reuse attribute serialization code




commit a91e0816eec53d3fb793d9373f71ca807dc58d58
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Nov 17 00:04:33 2021 -0500

    tests: Reuse attribute serialization code
    
    Update affected test outputs.

 tests/itemize/one.expected      |  14 ++---
 tests/itemize/two.expected      |  14 ++---
 tests/layouts/valid-1.expected  |  14 ++---
 tests/layouts/valid-10.expected |   2 +-
 tests/layouts/valid-11.expected |  24 ++++----
 tests/layouts/valid-13.expected |   6 +-
 tests/layouts/valid-14.expected |   2 +-
 tests/layouts/valid-15.expected |   2 +-
 tests/layouts/valid-16.expected |   2 +-
 tests/layouts/valid-18.expected |   8 +--
 tests/layouts/valid-2.expected  |   6 +-
 tests/layouts/valid-20.expected |  12 ++--
 tests/layouts/valid-22.expected | 132 ++++++++++++++++++++--------------------
 tests/layouts/valid-5.expected  |  10 +--
 tests/layouts/valid-7.expected  |  10 +--
 tests/layouts/valid-9.expected  |  12 ++--
 tests/markups/valid-1.expected  |   6 +-
 tests/markups/valid-10.expected |  22 +++----
 tests/markups/valid-11.expected |  68 ++++++++++-----------
 tests/markups/valid-12.expected |  10 +--
 tests/markups/valid-13.expected |   2 +-
 tests/markups/valid-14.expected |   4 +-
 tests/markups/valid-16.expected |  12 ++--
 tests/markups/valid-17.expected |   2 +-
 tests/markups/valid-18.expected |  22 +++----
 tests/markups/valid-19.expected |  10 +--
 tests/markups/valid-2.expected  |   6 +-
 tests/markups/valid-20.expected |   2 +-
 tests/markups/valid-21.expected |   2 +-
 tests/markups/valid-22.expected |   2 +-
 tests/markups/valid-23.expected |   6 +-
 tests/markups/valid-24.expected |   4 +-
 tests/markups/valid-3.expected  |  24 ++++----
 tests/markups/valid-4.expected  |  38 ++++++------
 tests/markups/valid-5.expected  |   8 +--
 tests/markups/valid-6.expected  |  14 ++---
 tests/markups/valid-7.expected  |   4 +-
 tests/markups/valid-8.expected  |  64 +++++++++----------
 tests/markups/valid-9.expected  |   2 +-
 tests/test-common.c             |  60 +++---------------
 40 files changed, 310 insertions(+), 354 deletions(-)
---
diff --git a/tests/itemize/one.expected b/tests/itemize/one.expected
index aacf60d1..7f5103e1 100644
--- a/tests/itemize/one.expected
+++ b/tests/itemize/one.expected
@@ -1,9 +1,9 @@
 <span font="Cantarell 11" fallback="false">a b
c</span>
 
-Items:  a b            |[0x2028]       |c              
-Chars:  3(0)           |1(3)           |1(4)           
-Font:   Cantarell 11   |Cantarell 11   |Cantarell 11   
-Script: latin          |latin          |latin          
-Lang:   en-us          |en-us          |en-us          
-Bidi:   0              |0              |0              
-Attrs:  [0,7]fallback=0|[0,7]fallback=0|[0,7]fallback=0
+Items:  a b               |[0x2028]          |c                 
+Chars:  3(0)              |1(3)              |1(4)              
+Font:   Cantarell 11      |Cantarell 11      |Cantarell 11      
+Script: latin             |latin             |latin             
+Lang:   en-us             |en-us             |en-us             
+Bidi:   0                 |0                 |0                 
+Attrs:  0 7 fallback false|0 7 fallback false|0 7 fallback false
diff --git a/tests/itemize/two.expected b/tests/itemize/two.expected
index 5abb97b9..f2062a30 100644
--- a/tests/itemize/two.expected
+++ b/tests/itemize/two.expected
@@ -1,9 +1,9 @@
 <span font="Cantarell 11">one <span font_features="tnum=0">tw<u>o</u> <span 
font_features="dlig=1">two</span> </span>th<b>r</b>ee</span>
 
-Items:  one two two th                                                        |r                |ee          
-Chars:  14(0)                                                                 |1(14)            |2(15)       
-Font:   Cantarell 11                                                          |Cantarell Bold 11|Cantarell 11
-Script: latin                                                                 |latin            |latin       
-Lang:   en-us                                                                 |en-us            |en-us       
-Bidi:   0                                                                     |0                |0           
-Attrs:  [8,11]font-features=dlig=1,[6,7]underline=1,[4,12]font-features=tnum=0|                 |            
+Items:  one two two th                                                              |r                |ee    
      
+Chars:  14(0)                                                                       |1(14)            |2(15) 
      
+Font:   Cantarell 11                                                                |Cantarell Bold 
11|Cantarell 11
+Script: latin                                                                       |latin            |latin 
      
+Lang:   en-us                                                                       |en-us            |en-us 
      
+Bidi:   0                                                                           |0                |0     
      
+Attrs:  8 11 font-features "dlig=1",6 7 underline single,4 12 font-features "tnum=0"|                 |      
      
diff --git a/tests/layouts/valid-1.expected b/tests/layouts/valid-1.expected
index 411c7560..96bbed57 100644
--- a/tests/layouts/valid-1.expected
+++ b/tests/layouts/valid-1.expected
@@ -11,8 +11,8 @@ width: 225280
 
 range 0 22
 range 22 41
-[22,41]foreground=#00000000ffff
-[22,41]underline=1
+22 41 foreground #00000000ffff
+22 41 underline single
 range 41 2147483647
 
 --- directions
@@ -33,11 +33,11 @@ i=2, index=49, paragraph-start=1, dir=ltr ''
 
 i=1, index=0, chars=22, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'This 
is a test of the '
 i=2, index=22, chars=11, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 
'automatic e'
-[22,41]foreground=#00000000ffff
-[22,41]underline=1
+22 41 foreground #00000000ffff
+22 41 underline single
 i=3, index=33, chars=15, level=0, gravity=south, flags=2, font=OMITTED, script=common, language=en-us, 
'mergency brake!'
-[0,2147483647]fallback=0
-[22,41]foreground=#00000000ffff
-[22,41]underline=1
+0 2147483647 fallback false
+22 41 foreground #00000000ffff
+22 41 underline single
 i=4, index=48, no run, line end
 i=5, index=49, no run, line end
diff --git a/tests/layouts/valid-10.expected b/tests/layouts/valid-10.expected
index 137024b7..6eb02946 100644
--- a/tests/layouts/valid-10.expected
+++ b/tests/layouts/valid-10.expected
@@ -32,6 +32,6 @@ i=2, index=12, chars=4, level=1, gravity=south, flags=0, font=OMITTED, script=he
 i=3, index=14, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=hebrew, language=he, ' '
 i=4, index=15, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=greek, language=el, 'Γ'
 i=5, index=17, chars=7, level=0, gravity=south, flags=2, font=OMITTED, script=common, language=en-us, 'ειά 
σας'
-[0,2147483647]fallback=0
+0 2147483647 fallback false
 i=6, index=30, no run, line end
 i=7, index=31, no run, line end
diff --git a/tests/layouts/valid-11.expected b/tests/layouts/valid-11.expected
index a1fafc31..c22daf87 100644
--- a/tests/layouts/valid-11.expected
+++ b/tests/layouts/valid-11.expected
@@ -10,16 +10,16 @@ width: 225280
 --- attributes
 
 range 0 6
-[0,6]underline=2
-[0,6]overline=1
+0 6 underline double
+0 6 overline single
 range 6 7
 range 7 10
-[7,10]underline=3
-[7,10]strikethrough=1
+7 10 underline low
+7 10 strikethrough true
 range 10 11
 range 11 16
-[11,16]underline=4
-[11,16]rise=1024
+11 16 underline error
+11 16 rise 1024
 range 16 2147483647
 
 --- directions
@@ -39,15 +39,15 @@ i=2, index=17, paragraph-start=1, dir=ltr ''
 --- runs
 
 i=1, index=0, chars=6, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'double'
-[0,6]underline=2
-[0,6]overline=1
+0 6 underline double
+0 6 overline single
 i=2, index=6, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, ' '
 i=3, index=7, chars=3, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'low'
-[7,10]underline=3
-[7,10]strikethrough=1
+7 10 underline low
+7 10 strikethrough true
 i=4, index=10, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, ' '
 i=5, index=11, chars=5, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'error'
-[11,16]rise=1024
-[11,16]underline=4
+11 16 rise 1024
+11 16 underline error
 i=6, index=16, no run, line end
 i=7, index=17, no run, line end
diff --git a/tests/layouts/valid-13.expected b/tests/layouts/valid-13.expected
index 3064610d..cc435a88 100644
--- a/tests/layouts/valid-13.expected
+++ b/tests/layouts/valid-13.expected
@@ -26,10 +26,10 @@ i=1, index=0, paragraph-start=1, dir=ltr 'a       b       c       d
e     f
 --- runs
 
 i=1, index=0, chars=25, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'a      
 b       c       d'
-[0,-1]show=2
+0 4294967295 show 2
 i=2, index=25, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, '
'
-[0,-1]show=2
+0 4294967295 show 2
 i=3, index=28, chars=24, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'e     
f       g       h
 '
-[0,-1]show=2
+0 4294967295 show 2
 i=4, index=52, no run, line end
diff --git a/tests/layouts/valid-14.expected b/tests/layouts/valid-14.expected
index 5f15fa9f..89172781 100644
--- a/tests/layouts/valid-14.expected
+++ b/tests/layouts/valid-14.expected
@@ -28,7 +28,7 @@ i=2, index=38, paragraph-start=1, dir=ltr ''
 --- runs
 
 i=1, index=0, chars=1, level=0, gravity=south, flags=2, font=OMITTED, script=common, language=en-us, '你'
-[0,2147483647]fallback=1
+0 2147483647 fallback true
 i=2, index=3, chars=2, level=0, gravity=south, flags=0, font=OMITTED, script=han, language=xx, '好 '
 i=3, index=7, chars=6, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'Hello '
 i=4, index=19, chars=4, level=1, gravity=south, flags=0, font=OMITTED, script=hebrew, language=he, 'שלום'
diff --git a/tests/layouts/valid-15.expected b/tests/layouts/valid-15.expected
index 2711dfd8..f029482a 100644
--- a/tests/layouts/valid-15.expected
+++ b/tests/layouts/valid-15.expected
@@ -32,5 +32,5 @@ i=1, index=0, chars=25, level=0, gravity=south, flags=0, font=OMITTED, script=la
 i=2, index=25, no run, line end
 i=3, index=25, chars=20, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'long 
enough to wrap '
 i=4, index=45, chars=53, level=0, gravity=south, flags=2, font=OMITTED, script=common, language=en-us, 'due 
to height limitations. It might, or it might not.'
-[0,2147483647]fallback=0
+0 2147483647 fallback false
 i=5, index=98, no run, line end
diff --git a/tests/layouts/valid-16.expected b/tests/layouts/valid-16.expected
index 7ae3ae62..01af96cf 100644
--- a/tests/layouts/valid-16.expected
+++ b/tests/layouts/valid-16.expected
@@ -32,6 +32,6 @@ i=1, index=0, chars=25, level=0, gravity=south, flags=0, font=OMITTED, script=la
 i=2, index=25, no run, line end
 i=3, index=25, chars=20, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'long 
enough to wrap '
 i=4, index=45, chars=53, level=0, gravity=south, flags=2, font=OMITTED, script=common, language=en-us, 'due 
to height limitations. It might, or it might not.'
-[0,2147483647]fallback=0
+0 2147483647 fallback false
 i=5, index=98, no run, line end
 i=6, index=99, no run, line end
diff --git a/tests/layouts/valid-18.expected b/tests/layouts/valid-18.expected
index 614321b3..ea6aabeb 100644
--- a/tests/layouts/valid-18.expected
+++ b/tests/layouts/valid-18.expected
@@ -9,7 +9,7 @@ lines: 3
 --- attributes
 
 range 0 57
-[0,57]show=7
+0 57 show 7
 range 57 2147483647
 
 --- directions
@@ -30,11 +30,11 @@ i=3, index=58, paragraph-start=1, dir=ltr ''
 --- runs
 
 i=1, index=0, chars=16, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'some 
line breaks'
-[0,57]show=7
+0 57 show 7
 i=2, index=16, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, '
'
-[0,57]show=7
+0 57 show 7
 i=3, index=19, no run, line end
 i=4, index=19, chars=32, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'and 
mis­ce­llaneous ignora‌bles'
-[0,57]show=7
+0 57 show 7
 i=5, index=57, no run, line end
 i=6, index=58, no run, line end
diff --git a/tests/layouts/valid-2.expected b/tests/layouts/valid-2.expected
index b71f5da3..76c4f453 100644
--- a/tests/layouts/valid-2.expected
+++ b/tests/layouts/valid-2.expected
@@ -10,10 +10,10 @@ lines: 2
 
 range 0 9
 range 9 13
-[9,13]style=2
+9 13 style italic
 range 13 20
 range 20 25
-[20,25]underline=1
+20 25 underline single
 range 25 2147483647
 
 --- directions
@@ -36,7 +36,7 @@ i=1, index=0, chars=9, level=0, gravity=south, flags=0, font=OMITTED, script=lat
 i=2, index=9, chars=4, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'blue'
 i=3, index=13, chars=7, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, ' drink 
'
 i=4, index=20, chars=5, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'after'
-[20,25]underline=1
+20 25 underline single
 i=5, index=25, chars=7, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, ' 
dinner'
 i=6, index=32, no run, line end
 i=7, index=33, no run, line end
diff --git a/tests/layouts/valid-20.expected b/tests/layouts/valid-20.expected
index 6939260b..e3a68815 100644
--- a/tests/layouts/valid-20.expected
+++ b/tests/layouts/valid-20.expected
@@ -9,10 +9,10 @@ lines: 2
 --- attributes
 
 range 0 3
-[0,3]gravity=1
-[0,3]gravity-hint=1
+0 3 gravity east
+0 3 gravity-hint strong
 range 3 6
-[3,6]gravity=0
+3 6 gravity south
 range 6 2147483647
 
 --- directions
@@ -32,9 +32,9 @@ i=2, index=7, paragraph-start=1, dir=ltr ''
 --- runs
 
 i=1, index=0, chars=3, level=0, gravity=east, flags=0, font=OMITTED, script=latin, language=en-us, 'abc'
-[0,3]gravity=1
-[0,3]gravity-hint=1
+0 3 gravity east
+0 3 gravity-hint strong
 i=2, index=3, chars=3, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'def'
-[3,6]gravity=0
+3 6 gravity south
 i=3, index=6, no run, line end
 i=4, index=7, no run, line end
diff --git a/tests/layouts/valid-22.expected b/tests/layouts/valid-22.expected
index 69c09b04..c3279452 100644
--- a/tests/layouts/valid-22.expected
+++ b/tests/layouts/valid-22.expected
@@ -10,45 +10,45 @@ lines: 2
 
 range 0 1
 range 1 2
-[1,2]font-desc=Italic
-[1,2]font-scale=2
-[1,2]baseline-shift=2
+1 2 font-desc "Italic"
+1 2 font-scale subscript
+1 2 baseline-shift subscript
 range 2 6
 range 6 7
-[6,11]font-scale=1
-[6,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
 range 7 8
-[6,11]font-scale=1
-[6,11]baseline-shift=1
-[7,11]font-scale=1
-[7,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
+7 11 font-scale superscript
+7 11 baseline-shift superscript
 range 8 9
-[6,11]font-scale=1
-[6,11]baseline-shift=1
-[7,11]font-scale=1
-[7,11]baseline-shift=1
-[8,11]font-scale=1
-[8,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
+7 11 font-scale superscript
+7 11 baseline-shift superscript
+8 11 font-scale superscript
+8 11 baseline-shift superscript
 range 9 10
-[6,11]font-scale=1
-[6,11]baseline-shift=1
-[7,11]font-scale=1
-[7,11]baseline-shift=1
-[8,11]font-scale=1
-[8,11]baseline-shift=1
-[9,11]font-scale=1
-[9,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
+7 11 font-scale superscript
+7 11 baseline-shift superscript
+8 11 font-scale superscript
+8 11 baseline-shift superscript
+9 11 font-scale superscript
+9 11 baseline-shift superscript
 range 10 11
-[6,11]font-scale=1
-[6,11]baseline-shift=1
-[7,11]font-scale=1
-[7,11]baseline-shift=1
-[8,11]font-scale=1
-[8,11]baseline-shift=1
-[9,11]font-scale=1
-[9,11]baseline-shift=1
-[10,11]font-scale=1
-[10,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
+7 11 font-scale superscript
+7 11 baseline-shift superscript
+8 11 font-scale superscript
+8 11 baseline-shift superscript
+9 11 font-scale superscript
+9 11 baseline-shift superscript
+10 11 font-scale superscript
+10 11 baseline-shift superscript
 range 11 2147483647
 
 --- directions
@@ -57,7 +57,7 @@ range 11 2147483647
 
 --- cursor positions
 
-0(0) 1(0) 2(0) 3(0) 4(0) 5(0) 6(0) 7(0) 8(0) 9(0) 10(1) 12(0) 
+0(0) 1(0) 2(0) 3(0) 4(0) 5(0) 6(0) 7(0) 8(0) 9(0) 10(0) 10(1) 12(0) 
 
 --- lines
 
@@ -69,43 +69,43 @@ i=2, index=12, paragraph-start=1, dir=ltr ''
 
 i=1, index=0, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'e'
 i=2, index=1, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, '0'
-[1,2]font-scale=2
-[1,2]baseline-shift=2
+1 2 font-scale subscript
+1 2 baseline-shift subscript
 i=3, index=2, chars=4, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, ' = o'
 i=4, index=6, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'o'
-[6,11]font-scale=1
-[6,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
 i=5, index=7, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'o'
-[6,11]font-scale=1
-[6,11]baseline-shift=1
-[7,11]font-scale=1
-[7,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
+7 11 font-scale superscript
+7 11 baseline-shift superscript
 i=6, index=8, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, '.'
-[6,11]font-scale=1
-[6,11]baseline-shift=1
-[7,11]font-scale=1
-[7,11]baseline-shift=1
-[8,11]font-scale=1
-[8,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
+7 11 font-scale superscript
+7 11 baseline-shift superscript
+8 11 font-scale superscript
+8 11 baseline-shift superscript
 i=7, index=9, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, '.'
-[6,11]font-scale=1
-[6,11]baseline-shift=1
-[7,11]font-scale=1
-[7,11]baseline-shift=1
-[8,11]font-scale=1
-[8,11]baseline-shift=1
-[9,11]font-scale=1
-[9,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
+7 11 font-scale superscript
+7 11 baseline-shift superscript
+8 11 font-scale superscript
+8 11 baseline-shift superscript
+9 11 font-scale superscript
+9 11 baseline-shift superscript
 i=8, index=10, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, '.'
-[6,11]font-scale=1
-[6,11]baseline-shift=1
-[7,11]font-scale=1
-[7,11]baseline-shift=1
-[8,11]font-scale=1
-[8,11]baseline-shift=1
-[9,11]font-scale=1
-[9,11]baseline-shift=1
-[10,11]font-scale=1
-[10,11]baseline-shift=1
+6 11 font-scale superscript
+6 11 baseline-shift superscript
+7 11 font-scale superscript
+7 11 baseline-shift superscript
+8 11 font-scale superscript
+8 11 baseline-shift superscript
+9 11 font-scale superscript
+9 11 baseline-shift superscript
+10 11 font-scale superscript
+10 11 baseline-shift superscript
 i=9, index=11, no run, line end
 i=10, index=12, no run, line end
diff --git a/tests/layouts/valid-5.expected b/tests/layouts/valid-5.expected
index 82f413c9..20627955 100644
--- a/tests/layouts/valid-5.expected
+++ b/tests/layouts/valid-5.expected
@@ -12,7 +12,7 @@ width: 194560
 
 range 0 21
 range 21 31
-[21,31]font-features=tnum=1
+21 31 font-features "tnum=1"
 range 31 2147483647
 
 --- directions
@@ -38,16 +38,16 @@ i=7, index=125, paragraph-start=1, dir=ltr ''
 --- runs
 
 i=1, index=0, chars=21, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'A test 
with multiple '
-[21,31]font-features=tnum=1
+21 31 font-features "tnum=1"
 i=2, index=21, no run, line end
 i=3, index=21, chars=23, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 
'paragraphs and with no-'
-[21,31]font-features=tnum=1
+21 31 font-features "tnum=1"
 i=4, index=44, no run, line end
 i=5, index=44, chars=30, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'break 
attributes, which might '
-[21,31]font-features=tnum=1
+21 31 font-features "tnum=1"
 i=6, index=74, no run, line end
 i=7, index=74, chars=16, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 
'trigger a crash.'
-[21,31]font-features=tnum=1
+21 31 font-features "tnum=1"
 i=8, index=90, no run, line end
 i=9, index=91, chars=26, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'If it 
doesn't the fix has '
 i=10, index=117, no run, line end
diff --git a/tests/layouts/valid-7.expected b/tests/layouts/valid-7.expected
index 7560a9cc..13595a75 100644
--- a/tests/layouts/valid-7.expected
+++ b/tests/layouts/valid-7.expected
@@ -12,8 +12,8 @@ indent: 51200
 
 range 0 22
 range 22 41
-[22,41]foreground=#00000000ffff
-[22,41]underline=1
+22 41 foreground #00000000ffff
+22 41 underline single
 range 41 2147483647
 
 --- directions
@@ -34,10 +34,10 @@ i=2, index=49, paragraph-start=1, dir=ltr ''
 
 i=1, index=0, chars=12, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'This 
is a te'
 i=2, index=12, chars=26, level=0, gravity=south, flags=2, font=OMITTED, script=common, language=en-us, 'st 
of the automatic emerge'
-[0,2147483647]fallback=0
+0 2147483647 fallback false
 i=3, index=38, chars=3, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'ncy'
-[22,41]foreground=#00000000ffff
-[22,41]underline=1
+22 41 foreground #00000000ffff
+22 41 underline single
 i=4, index=41, chars=7, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, ' 
brake!'
 i=5, index=48, no run, line end
 i=6, index=49, no run, line end
diff --git a/tests/layouts/valid-9.expected b/tests/layouts/valid-9.expected
index d1388f62..5cbbf8fc 100644
--- a/tests/layouts/valid-9.expected
+++ b/tests/layouts/valid-9.expected
@@ -10,7 +10,7 @@ width: 102400
 --- attributes
 
 range 0 30
-[0,30]letter-spacing=8888
+0 30 letter-spacing 8888
 range 30 2147483647
 
 --- directions
@@ -33,17 +33,17 @@ i=5, index=31, paragraph-start=1, dir=ltr ''
 --- runs
 
 i=1, index=0, chars=6, level=0, gravity=south, flags=0, font=OMITTED, script=latin, language=en-us, 'Hello '
-[0,30]letter-spacing=8888
+0 30 letter-spacing 8888
 i=2, index=6, no run, line end
 i=3, index=12, chars=4, level=1, gravity=south, flags=0, font=OMITTED, script=hebrew, language=he, 'שלום'
-[0,30]letter-spacing=8888
+0 30 letter-spacing 8888
 i=4, index=14, chars=1, level=0, gravity=south, flags=0, font=OMITTED, script=hebrew, language=he, ' '
-[0,30]letter-spacing=8888
+0 30 letter-spacing 8888
 i=5, index=15, no run, line end
 i=6, index=15, chars=5, level=0, gravity=south, flags=0, font=OMITTED, script=greek, language=el, 'Γειά '
-[0,30]letter-spacing=8888
+0 30 letter-spacing 8888
 i=7, index=24, no run, line end
 i=8, index=24, chars=3, level=0, gravity=south, flags=0, font=OMITTED, script=greek, language=el, 'σας'
-[0,30]letter-spacing=8888
+0 30 letter-spacing 8888
 i=9, index=30, no run, line end
 i=10, index=31, no run, line end
diff --git a/tests/markups/valid-1.expected b/tests/markups/valid-1.expected
index 6ad9a22a..be01bfaf 100644
--- a/tests/markups/valid-1.expected
+++ b/tests/markups/valid-1.expected
@@ -4,11 +4,11 @@ Blue text is cool!
 ---
 
 range 0 9
-[0,9]scale=1.440000
-[0,9]foreground=#00000000ffff
+0 9 scale  1.440000
+0 9 foreground #00000000ffff
 range 9 13
 range 13 17
-[13,17]style=2
+13 17 style italic
 range 17 2147483647
 
 
diff --git a/tests/markups/valid-10.expected b/tests/markups/valid-10.expected
index 28f53835..24f3f8e3 100644
--- a/tests/markups/valid-10.expected
+++ b/tests/markups/valid-10.expected
@@ -4,17 +4,17 @@ Lots of attrs
 ---
 
 range 0 13
-[0,13]font-desc=Sans Italic 12 @wdth=100,wght=200
-[0,13]foreground=#0000ffff0000
-[0,13]background=#f0f0f0f0f0f0
-[0,13]underline=2
-[0,13]underline-color=#ffff00000000
-[0,13]gravity=0
-[0,13]gravity-hint=1
-[0,13]strikethrough=1
-[0,13]strikethrough-color=#00000000ffff
-[0,13]fallback=0
-[0,13]language=de
+0 13 font-desc "Sans Italic 12 @wdth=100,wght=200"
+0 13 foreground #0000ffff0000
+0 13 background #f0f0f0f0f0f0
+0 13 underline double
+0 13 underline-color #ffff00000000
+0 13 gravity south
+0 13 gravity-hint strong
+0 13 strikethrough true
+0 13 strikethrough-color #00000000ffff
+0 13 fallback false
+0 13 language de
 range 13 2147483647
 
 
diff --git a/tests/markups/valid-11.expected b/tests/markups/valid-11.expected
index 797ef399..2a551850 100644
--- a/tests/markups/valid-11.expected
+++ b/tests/markups/valid-11.expected
@@ -4,42 +4,42 @@ Lots of attrs
 ---
 
 range 0 5
-[0,13]font-desc=Sans Italic 12 @wdth=100,wght=200
-[0,13]foreground=#0000ffff0000
-[0,13]background=#f0f0f0f0f0f0
-[0,13]underline=2
-[0,13]underline-color=#ffff00000000
-[0,13]gravity=0
-[0,13]gravity-hint=1
-[0,13]strikethrough=1
-[0,13]strikethrough-color=#00000000ffff
-[0,13]fallback=0
-[0,13]language=de
+0 13 font-desc "Sans Italic 12 @wdth=100,wght=200"
+0 13 foreground #0000ffff0000
+0 13 background #f0f0f0f0f0f0
+0 13 underline double
+0 13 underline-color #ffff00000000
+0 13 gravity south
+0 13 gravity-hint strong
+0 13 strikethrough true
+0 13 strikethrough-color #00000000ffff
+0 13 fallback false
+0 13 language de
 range 5 7
-[0,13]font-desc=Sans Italic 12 @wdth=100,wght=200
-[0,13]foreground=#0000ffff0000
-[0,13]background=#f0f0f0f0f0f0
-[0,13]underline=2
-[0,13]underline-color=#ffff00000000
-[0,13]gravity=0
-[0,13]gravity-hint=1
-[0,13]strikethrough=1
-[0,13]strikethrough-color=#00000000ffff
-[0,13]fallback=0
-[0,13]language=de
-[5,7]font-desc=Bold
+0 13 font-desc "Sans Italic 12 @wdth=100,wght=200"
+0 13 foreground #0000ffff0000
+0 13 background #f0f0f0f0f0f0
+0 13 underline double
+0 13 underline-color #ffff00000000
+0 13 gravity south
+0 13 gravity-hint strong
+0 13 strikethrough true
+0 13 strikethrough-color #00000000ffff
+0 13 fallback false
+0 13 language de
+5 7 font-desc "Bold"
 range 7 13
-[0,13]font-desc=Sans Italic 12 @wdth=100,wght=200
-[0,13]foreground=#0000ffff0000
-[0,13]background=#f0f0f0f0f0f0
-[0,13]underline=2
-[0,13]underline-color=#ffff00000000
-[0,13]gravity=0
-[0,13]gravity-hint=1
-[0,13]strikethrough=1
-[0,13]strikethrough-color=#00000000ffff
-[0,13]fallback=0
-[0,13]language=de
+0 13 font-desc "Sans Italic 12 @wdth=100,wght=200"
+0 13 foreground #0000ffff0000
+0 13 background #f0f0f0f0f0f0
+0 13 underline double
+0 13 underline-color #ffff00000000
+0 13 gravity south
+0 13 gravity-hint strong
+0 13 strikethrough true
+0 13 strikethrough-color #00000000ffff
+0 13 fallback false
+0 13 language de
 range 13 2147483647
 
 
diff --git a/tests/markups/valid-12.expected b/tests/markups/valid-12.expected
index b6587ee8..45bbc10c 100644
--- a/tests/markups/valid-12.expected
+++ b/tests/markups/valid-12.expected
@@ -8,19 +8,19 @@ error-line
 ---
 
 range 0 8
-[0,8]overline=1
+0 8 overline single
 range 8 9
 range 9 23
-[9,23]overline-color=#ffff00000000
+9 23 overline-color #ffff00000000
 range 23 24
 range 24 35
-[24,35]underline=5
+24 35 underline single-line
 range 35 36
 range 36 47
-[36,47]underline=6
+36 47 underline double-line
 range 47 48
 range 48 58
-[48,58]underline=7
+48 58 underline error-line
 range 58 2147483647
 
 
diff --git a/tests/markups/valid-13.expected b/tests/markups/valid-13.expected
index c63a71c4..c573dd3d 100644
--- a/tests/markups/valid-13.expected
+++ b/tests/markups/valid-13.expected
@@ -5,7 +5,7 @@ abc def
 
 range 0 4
 range 4 5
-[4,5]underline=3
+4 5 underline low
 range 5 2147483647
 
 
diff --git a/tests/markups/valid-14.expected b/tests/markups/valid-14.expected
index 4aa87977..580f9166 100644
--- a/tests/markups/valid-14.expected
+++ b/tests/markups/valid-14.expected
@@ -4,10 +4,10 @@ abc def _x_
 ---
 
 range 0 1
-[0,1]underline=3
+0 1 underline low
 range 1 4
 range 4 5
-[4,5]underline=3
+4 5 underline low
 range 5 2147483647
 
 
diff --git a/tests/markups/valid-16.expected b/tests/markups/valid-16.expected
index c8b000a8..a8a0dcd2 100644
--- a/tests/markups/valid-16.expected
+++ b/tests/markups/valid-16.expected
@@ -4,16 +4,16 @@ larger and smaller and smaller now with base
 ---
 
 range 0 11
-[0,44]scale=1.200000
+0 44 scale  1.200000
 range 11 19
-[11,30]scale=1.000000
+11 30 scale  1.000000
 range 19 30
-[19,30]scale=0.833333
+19 30 scale  0.833333
 range 30 31
-[0,44]scale=1.200000
+0 44 scale  1.200000
 range 31 44
-[0,44]scale=1.200000
-[31,44]size=15360
+0 44 scale  1.200000
+31 44 size 15360
 range 44 2147483647
 
 
diff --git a/tests/markups/valid-17.expected b/tests/markups/valid-17.expected
index 8b9ce039..7614fde3 100644
--- a/tests/markups/valid-17.expected
+++ b/tests/markups/valid-17.expected
@@ -4,7 +4,7 @@ test
 ---
 
 range 0 4
-[0,4]show=3
+0 4 show 3
 range 4 2147483647
 
 
diff --git a/tests/markups/valid-18.expected b/tests/markups/valid-18.expected
index 6f372b15..78731074 100644
--- a/tests/markups/valid-18.expected
+++ b/tests/markups/valid-18.expected
@@ -4,17 +4,17 @@ Lots of attrs
 ---
 
 range 0 13
-[0,13]font-desc=Sans Italic 12
-[0,13]foreground=#0000ffff0000
-[0,13]background=#f0f0f0f0f0f0
-[0,13]underline=2
-[0,13]underline-color=#ffff00000000
-[0,13]gravity=0
-[0,13]gravity-hint=1
-[0,13]strikethrough=1
-[0,13]strikethrough-color=#00000000ffff
-[0,13]fallback=0
-[0,13]language=de
+0 13 font-desc "Sans Italic 12"
+0 13 foreground #0000ffff0000
+0 13 background #f0f0f0f0f0f0
+0 13 underline double
+0 13 underline-color #ffff00000000
+0 13 gravity south
+0 13 gravity-hint strong
+0 13 strikethrough true
+0 13 strikethrough-color #00000000ffff
+0 13 fallback false
+0 13 language de
 range 13 2147483647
 
 
diff --git a/tests/markups/valid-19.expected b/tests/markups/valid-19.expected
index ea561c9d..5b84133f 100644
--- a/tests/markups/valid-19.expected
+++ b/tests/markups/valid-19.expected
@@ -4,11 +4,11 @@ test
 ---
 
 range 0 4
-[0,4]family=Times
-[0,4]weight=700
-[0,4]foreground=#ffff00000000
-[0,4]letter-spacing=1024
-[0,4]insert-hyphens=1
+0 4 family Times
+0 4 weight bold
+0 4 foreground #ffff00000000
+0 4 letter-spacing 1024
+0 4 insert-hyphens true
 range 4 2147483647
 
 
diff --git a/tests/markups/valid-2.expected b/tests/markups/valid-2.expected
index c372666a..63da62d4 100644
--- a/tests/markups/valid-2.expected
+++ b/tests/markups/valid-2.expected
@@ -4,11 +4,11 @@ Blue text is cool!
 ---
 
 range 0 9
-[0,9]scale=1.728000
-[0,9]foreground=#00000000ffff
+0 9 scale  1.728000
+0 9 foreground #00000000ffff
 range 9 13
 range 13 17
-[13,17]style=2
+13 17 style italic
 range 17 2147483647
 
 
diff --git a/tests/markups/valid-20.expected b/tests/markups/valid-20.expected
index bd3ac65f..e00c9ba3 100644
--- a/tests/markups/valid-20.expected
+++ b/tests/markups/valid-20.expected
@@ -4,7 +4,7 @@ test
 ---
 
 range 0 4
-[0,4]size=20480
+0 4 size 20480
 range 4 2147483647
 
 
diff --git a/tests/markups/valid-21.expected b/tests/markups/valid-21.expected
index 9dc37dc1..55b9bfb1 100644
--- a/tests/markups/valid-21.expected
+++ b/tests/markups/valid-21.expected
@@ -4,7 +4,7 @@ test
 ---
 
 range 0 4
-[0,4]rise=2560
+0 4 rise 2560
 range 4 2147483647
 
 
diff --git a/tests/markups/valid-22.expected b/tests/markups/valid-22.expected
index 194c1960..cb4ae998 100644
--- a/tests/markups/valid-22.expected
+++ b/tests/markups/valid-22.expected
@@ -4,7 +4,7 @@ test
 ---
 
 range 0 4
-[0,4]rise=-5000
+0 4 rise -5000
 range 4 2147483647
 
 
diff --git a/tests/markups/valid-23.expected b/tests/markups/valid-23.expected
index 43621301..296faf0a 100644
--- a/tests/markups/valid-23.expected
+++ b/tests/markups/valid-23.expected
@@ -4,10 +4,10 @@ test test
 ---
 
 range 0 5
-[0,9]font-desc=Cantarell 11
+0 9 font-desc "Cantarell 11"
 range 5 9
-[0,9]font-desc=Cantarell 11
-[5,9]scale=2.000000
+0 9 font-desc "Cantarell 11"
+5 9 scale  2.000000
 range 9 2147483647
 
 
diff --git a/tests/markups/valid-24.expected b/tests/markups/valid-24.expected
index 06eb6e0c..5e966bdc 100644
--- a/tests/markups/valid-24.expected
+++ b/tests/markups/valid-24.expected
@@ -4,10 +4,10 @@ straße up, up and away
 ---
 
 range 0 7
-[0,7]text-transform=2
+0 7 text-transform uppercase
 range 7 8
 range 8 23
-[8,23]text-transform=3
+8 23 text-transform capitalize
 range 23 2147483647
 
 
diff --git a/tests/markups/valid-3.expected b/tests/markups/valid-3.expected
index 3b69c218..bfc14213 100644
--- a/tests/markups/valid-3.expected
+++ b/tests/markups/valid-3.expected
@@ -4,18 +4,18 @@ Lots of attrs
 ---
 
 range 0 13
-[0,13]font-desc=Sans Italic 12
-[0,13]foreground=#0000ffff0000
-[0,13]background=#f0f0f0f0f0f0
-[0,13]underline=2
-[0,13]underline-color=#ffff00000000
-[0,13]gravity=0
-[0,13]gravity-hint=1
-[0,13]strikethrough=1
-[0,13]strikethrough-color=#00000000ffff
-[0,13]fallback=0
-[0,13]language=de
-[0,13]allow-breaks=1
+0 13 font-desc "Sans Italic 12"
+0 13 foreground #0000ffff0000
+0 13 background #f0f0f0f0f0f0
+0 13 underline double
+0 13 underline-color #ffff00000000
+0 13 gravity south
+0 13 gravity-hint strong
+0 13 strikethrough true
+0 13 strikethrough-color #00000000ffff
+0 13 fallback false
+0 13 language de
+0 13 allow-breaks true
 range 13 2147483647
 
 
diff --git a/tests/markups/valid-4.expected b/tests/markups/valid-4.expected
index a9e16728..615e2adc 100644
--- a/tests/markups/valid-4.expected
+++ b/tests/markups/valid-4.expected
@@ -4,37 +4,37 @@ bold big italic strikethroughsub smallsup tt underline
 ---
 
 range 0 5
-[0,15]weight=700
+0 15 weight bold
 range 5 8
-[0,15]weight=700
-[5,8]scale=1.200000
+0 15 weight bold
+5 8 scale  1.200000
 range 8 9
-[0,15]weight=700
+0 15 weight bold
 range 9 15
-[0,15]weight=700
-[9,15]style=2
+0 15 weight bold
+9 15 style italic
 range 15 16
 range 16 29
-[16,41]strikethrough=1
+16 41 strikethrough true
 range 29 32
-[16,41]strikethrough=1
-[29,32]font-scale=2
-[29,32]baseline-shift=2
+16 41 strikethrough true
+29 32 font-scale subscript
+29 32 baseline-shift subscript
 range 32 33
-[16,41]strikethrough=1
+16 41 strikethrough true
 range 33 38
-[16,41]strikethrough=1
-[33,38]scale=0.833333
+16 41 strikethrough true
+33 38 scale  0.833333
 range 38 41
-[16,41]strikethrough=1
-[38,41]font-scale=1
-[38,41]baseline-shift=1
+16 41 strikethrough true
+38 41 font-scale superscript
+38 41 baseline-shift superscript
 range 41 42
 range 42 45
-[42,54]family=Monospace
+42 54 family Monospace
 range 45 54
-[42,54]family=Monospace
-[45,54]underline=1
+42 54 family Monospace
+45 54 underline single
 range 54 2147483647
 
 
diff --git a/tests/markups/valid-5.expected b/tests/markups/valid-5.expected
index a26c4f71..d6e17249 100644
--- a/tests/markups/valid-5.expected
+++ b/tests/markups/valid-5.expected
@@ -7,16 +7,16 @@ Text
 ---
 
 range 0 4
-[0,4]foreground=#222233334444
+0 4 foreground #222233334444
 range 4 5
 range 5 9
-[5,9]foreground=#222233334444
+5 9 foreground #222233334444
 range 9 10
 range 10 14
-[10,14]foreground=#222233334444
+10 14 foreground #222233334444
 range 14 15
 range 15 19
-[15,19]foreground=#222233334444
+15 19 foreground #222233334444
 range 19 2147483647
 
 
diff --git a/tests/markups/valid-6.expected b/tests/markups/valid-6.expected
index 40807607..4f1920ad 100644
--- a/tests/markups/valid-6.expected
+++ b/tests/markups/valid-6.expected
@@ -7,19 +7,19 @@ Text
 ---
 
 range 0 4
-[0,4]foreground=#222233334444
-[0,4]foreground-alpha=21845
+0 4 foreground #222233334444
+0 4 foreground-alpha 21845
 range 4 5
 range 5 9
-[5,9]foreground=#222233334444
-[5,9]foreground-alpha=21845
+5 9 foreground #222233334444
+5 9 foreground-alpha 21845
 range 9 10
 range 10 14
-[10,14]foreground=#222233334444
+10 14 foreground #222233334444
 range 14 15
 range 15 19
-[15,19]foreground=#222233334444
-[15,19]foreground-alpha=21845
+15 19 foreground #222233334444
+15 19 foreground-alpha 21845
 range 19 2147483647
 
 
diff --git a/tests/markups/valid-7.expected b/tests/markups/valid-7.expected
index 0658ab27..71ba77a9 100644
--- a/tests/markups/valid-7.expected
+++ b/tests/markups/valid-7.expected
@@ -5,10 +5,10 @@ Text
 ---
 
 range 0 4
-[0,4]underline-color=#222233334444
+0 4 underline-color #222233334444
 range 4 5
 range 5 9
-[5,9]strikethrough-color=#222233334444
+5 9 strikethrough-color #222233334444
 range 9 2147483647
 
 
diff --git a/tests/markups/valid-8.expected b/tests/markups/valid-8.expected
index 79a0f01d..89310b78 100644
--- a/tests/markups/valid-8.expected
+++ b/tests/markups/valid-8.expected
@@ -12,54 +12,54 @@ Text
 ---
 
 range 0 4
-[0,4]scale=0.578704
-[0,4]variant=0
-[0,4]stretch=0
-[0,4]foreground=#00000000ffff
-[0,4]foreground-alpha=65535
+0 4 scale  0.578704
+0 4 variant normal
+0 4 stretch ultra-condensed
+0 4 foreground #00000000ffff
+0 4 foreground-alpha 65535
 range 4 5
 range 5 9
-[5,9]scale=0.694444
-[5,9]variant=1
-[5,9]stretch=1
-[5,9]foreground=#00000000ffff
-[5,9]foreground-alpha=32767
+5 9 scale  0.694444
+5 9 variant small-caps
+5 9 stretch extra-condensed
+5 9 foreground #00000000ffff
+5 9 foreground-alpha 32767
 range 9 10
 range 10 14
-[10,14]scale=0.833333
-[10,14]stretch=2
-[10,14]background=#00000000ffff
-[10,14]background-alpha=1
+10 14 scale  0.833333
+10 14 stretch condensed
+10 14 background #00000000ffff
+10 14 background-alpha 1
 range 14 15
 range 15 19
-[15,19]scale=1.000000
-[15,19]stretch=3
-[15,19]background=#00000000ffff
-[15,19]background-alpha=21626
+15 19 scale  1.000000
+15 19 stretch semi-condensed
+15 19 background #00000000ffff
+15 19 background-alpha 21626
 range 19 20
 range 20 24
-[20,24]scale=1.200000
-[20,24]stretch=4
-[20,24]background=#00000000ffff
-[20,24]background-alpha=21626
+20 24 scale  1.200000
+20 24 stretch normal
+20 24 background #00000000ffff
+20 24 background-alpha 21626
 range 24 25
 range 25 29
-[25,29]scale=1.440000
-[25,29]stretch=5
-[25,29]background=#00000000ffff
-[25,29]background-alpha=43690
+25 29 scale  1.440000
+25 29 stretch semi-expanded
+25 29 background #00000000ffff
+25 29 background-alpha 43690
 range 29 30
 range 30 34
-[30,34]scale=1.728000
-[30,34]stretch=6
+30 34 scale  1.728000
+30 34 stretch expanded
 range 34 35
 range 35 39
-[35,39]scale=1.728000
-[35,39]stretch=7
+35 39 scale  1.728000
+35 39 stretch extra-expanded
 range 39 40
 range 40 44
-[40,44]scale=1.728000
-[40,44]stretch=8
+40 44 scale  1.728000
+40 44 stretch ultra-expanded
 range 44 2147483647
 
 
diff --git a/tests/markups/valid-9.expected b/tests/markups/valid-9.expected
index 71c370b2..cec75f68 100644
--- a/tests/markups/valid-9.expected
+++ b/tests/markups/valid-9.expected
@@ -4,7 +4,7 @@ Blue text
 ---
 
 range 0 9
-[0,9]font-features=kern 0, dlig, lnum 1, -pnum
+0 9 font-features "kern 0, dlig, lnum 1, -pnum"
 range 9 2147483647
 
 
diff --git a/tests/test-common.c b/tests/test-common.c
index b59ca4a0..e9e094ba 100644
--- a/tests/test-common.c
+++ b/tests/test-common.c
@@ -104,58 +104,14 @@ file_has_prefix (const char  *filename,
 void
 print_attribute (PangoAttribute *attr, GString *string)
 {
-  GEnumClass *class;
-  GEnumValue *value;
-  PangoAttrString *str;
-  PangoAttrLanguage *lang;
-  PangoAttrInt *integer;
-  PangoAttrFloat *flt;
-  PangoAttrFontDesc *font;
-  PangoAttrColor *color;
-  PangoAttrShape *shape;
-  PangoAttrSize *size;
-  PangoAttrFontFeatures *features;
-
-  g_string_append_printf (string, "[%d,%d]", attr->start_index, attr->end_index);
-
-  class = g_type_class_ref (pango_attr_type_get_type ());
-  value = g_enum_get_value (class, attr->klass->type);
-  g_string_append_printf (string, "%s=", value->value_nick);
-  g_type_class_unref (class);
-
-  if ((str = pango_attribute_as_string (attr)) != NULL)
-    g_string_append (string, str->value);
-  else if ((lang = pango_attribute_as_language (attr)) != NULL)
-    g_string_append (string, pango_language_to_string (lang->value));
-  else if ((integer = pango_attribute_as_int (attr)) != NULL)
-    g_string_append_printf (string, "%d", integer->value);
-  else if ((flt = pango_attribute_as_float (attr)) != NULL)
-    {
-        char val[20];
-
-        g_ascii_formatd (val, 20, "%f", flt->value);
-        g_string_append (string, val);
-     }
-  else if ((font = pango_attribute_as_font_desc (attr)) != NULL)
-    {
-      char *text = pango_font_description_to_string (font->desc);
-      g_string_append (string, text);
-      g_free (text);
-    }
-  else if ((color = pango_attribute_as_color (attr)) != NULL)
-    {
-      char *text = pango_color_to_string (&color->color);
-      g_string_append (string, text);
-      g_free (text);
-    }
-  else if ((shape = pango_attribute_as_shape (attr)) != NULL)
-    g_string_append_printf (string, "shape");
-  else if ((size = pango_attribute_as_size (attr)) != NULL)
-    g_string_append_printf (string, "%d", size->size);
-  else if ((features = pango_attribute_as_font_features (attr)) != NULL)
-    g_string_append_printf (string, "%s", features->features);
-  else
-    g_assert_not_reached ();
+  PangoAttrList *l = pango_attr_list_new ();
+  char *s;
+
+  pango_attr_list_insert (l, pango_attribute_copy (attr));
+  s = pango_attr_list_to_string (l);
+  g_string_append (string, s);
+  g_free (s);
+  pango_attr_list_unref (l);
 }
 
 void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]