Print this page
4854 printf(1) doesn't support %b and \c properly

@@ -25,11 +25,11 @@
         print "TEST PASS: ${1}"
 }
 
 test_fail() {
         print "TEST FAIL: ${1}: ${2}"
-#        exit -1
+        exit -1
 }
 
 checkrv() {
         if [[ $? -ne 0 ]]; then
                 test_fail $1 "exit failure"

@@ -141,24 +141,40 @@
 tests[15][desc]="embedded octal escape"
 tests[15][format]='%s\41%s'
 tests[15][args]="one two"
 tests[15][result]='one!two'
 
-# this is not yet supported
-#typeset -A tests[16]=()
-#tests[16][desc]="backslash string (%b)"
-#tests[16][format]='%b'
-#tests[16][args]='\0101\0102\0103'
-#tests[16][result]='ABC'
+typeset -A tests[16]=()
+tests[16][desc]="backslash string (%b)"
+tests[16][format]='%b'
+tests[16][args]='\0101\0102\0103'
+tests[16][result]='ABC'
 
-# nor is this
-#typeset -A tests[17]=()
-#tests[17][desc]="backslash c in %b"
-#tests[17][format]='%b%s'
-#tests[17][args]='\0101\cone two'
-#tests[17][result]='A'
+typeset -A tests[17]=()
+tests[17][desc]="backslash c in %b"
+tests[17][format]='%b%s'
+tests[17][args]='\0101\cone two'
+tests[17][result]='A'
 
+typeset -A tests[18]=()
+tests[18][desc]="backslash octal in format"
+tests[18][format]='HI\1120K\0112tabbed\11again'
+tests[18][args]=
+tests[18][result]='HIJ0K        2tabbed again'
+
+typeset -A tests[19]=()
+tests[19][desc]="backslash octal in %b"
+tests[19][format]="%b"
+tests[19][args]='HI\0112K\011tabbed'
+tests[19][result]='HIJK tabbed'
+
+typeset -A tests[20]=()
+tests[20][desc]="numeric %d and ASCII conversions"
+tests[20][format]='%d '
+tests[20][args]="3 +3 -3 \"3 \"+ '-"
+tests[20][result]='3 3 -3 51 43 45 '
+
 #debug=yes
 
 for i in "${!tests[@]}"; do
         t=test_$i
         desc=${tests[$i][desc]}