diff options
-rw-r--r-- | runtime/string.c | 13 | ||||
-rw-r--r-- | testsuite/systemtap.string/text_str.exp | 36 | ||||
-rw-r--r-- | testsuite/systemtap.string/text_str.stp | 10 |
3 files changed, 26 insertions, 33 deletions
diff --git a/runtime/string.c b/runtime/string.c index b3f81f0e..1d4cb255 100644 --- a/runtime/string.c +++ b/runtime/string.c @@ -102,12 +102,7 @@ static void _stp_text_str(char *outstr, char *in, int len, int quoted, int user) num = 2; break; default: - if (c > 077) - num = 4; - else if (c > 07) - num = 3; - else - num = 2; + num = 4; break; } @@ -144,10 +139,8 @@ static void _stp_text_str(char *outstr, char *in, int len, int quoted, int user) *out++ = '\\'; break; default: /* output octal representation */ - if (c > 077) - *out++ = to_oct_digit(c >> 6); - if (c > 07) - *out++ = to_oct_digit((c & 070) >> 3); + *out++ = to_oct_digit((c >> 6) & 03); + *out++ = to_oct_digit((c >> 3) & 07); *out++ = to_oct_digit(c & 07); break; } diff --git a/testsuite/systemtap.string/text_str.exp b/testsuite/systemtap.string/text_str.exp index 6e9de7fb..46872ddb 100644 --- a/testsuite/systemtap.string/text_str.exp +++ b/testsuite/systemtap.string/text_str.exp @@ -27,31 +27,31 @@ a="1234567890" b="1234567"... c="1234567"... ----- Using text_str ----- -a=\n\nXYZZY\31 -b=?\31\a\n\n\r\n -c=\n\nXYZZY\31?\31\a\n\n\r\n +a=\n\nXYZZY\031 +b=?\231\a\n\n\r\n +c=\n\nXYZZY\031?\231\a\n\n\r\n ----- Using text_strn ----- -a=\n\nXYZZY\31 -b=?\31\a\n\n\r\n -c=\n\nXYZZY\31?\31\a\n\n\r\n +a=\n\nXYZZY\031 +b=?\231\a\n\n\r\n +c=\n\nXYZZY\031?\231\a\n\n\r\n ----- Using text_strn len = 10 ----- a=\n\nXYZZY -b=?\31\a\n\n +b=?\231\a\n c=\n\nXYZZY ----- Using text_strn len = 12 ----- -a=\n\nXYZZY\31 -b=?\31\a\n\n\r -c=\n\nXYZZY\31 +a=\n\nXYZZY +b=?\231\a\n\n +c=\n\nXYZZY ----- Using text_strn quoted ----- -a="\n\nXYZZY\31" -b="?\31\a\n\n\r\n" -c="\n\nXYZZY\31?\31\a\n\n\r\n" +a="\n\nXYZZY\031" +b="?\231\a\n\n\r\n" +c="\n\nXYZZY\031?\231\a\n\n\r\n" ----- Using text_strn len=10, quoted ----- a="\n\nX"... -b="?\31\"... +b="?\231"... c="\n\nX"... ------ Using text_strn len=14, quoted ----- -a="\n\nXYZZY\31" -b="?\31\a\n\"... -c="\n\nXYZZY"...} +----- Using text_strn len=15, quoted ----- +a="\n\nXYZZY\031" +b="?\231\a\n\"... +c="\n\nXYZZY\"...} stap_run2 $srcdir/$subdir/$test.stp diff --git a/testsuite/systemtap.string/text_str.stp b/testsuite/systemtap.string/text_str.stp index 05acc431..d61273ad 100644 --- a/testsuite/systemtap.string/text_str.stp +++ b/testsuite/systemtap.string/text_str.stp @@ -37,7 +37,7 @@ probe begin { printf("c=%s\n", text_strn(c,12,1)) a = "\n\nXYZZY\031" - b = "\077\031\a\n\n\r\n" + b = "\077\231\a\n\n\r\n" c = a.b printf("----- Using text_str -----\n"); @@ -70,10 +70,10 @@ probe begin { printf("b=%s\n", text_strn(b,10,1)) printf("c=%s\n", text_strn(c,10,1)) - printf("----- Using text_strn len=14, quoted -----\n"); - printf("a=%s\n", text_strn(a,14,1)) - printf("b=%s\n", text_strn(b,14,1)) - printf("c=%s\n", text_strn(c,14,1)) + printf("----- Using text_strn len=15, quoted -----\n"); + printf("a=%s\n", text_strn(a,15,1)) + printf("b=%s\n", text_strn(b,15,1)) + printf("c=%s\n", text_strn(c,15,1)) exit() } |