~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to test/subi18n.awk

  • Committer: Arnold D. Robbins
  • Date: 2010-07-16 11:49:57 UTC
  • Revision ID: git-v1:6a2caf2157d87b4b582b2494bdd7d6a688dd0b1f
Tags: gawk-3.1.6
Move to gawk-3.1.6.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Date: Mon, 27 Feb 2006 12:35:30 +0900
 
2
# From: KIMURA Koichi <kimura.koichi@canon.co.jp>
 
3
# Subject: gawk: sub_common has multi-byte aware bug
 
4
# To: bug-gawk@gnu.org
 
5
# Message-id: <20060227121045.2198.KIMURA.KOICHI@canon.co.jp>
 
6
 
7
# Hi,
 
8
 
9
# A certain user faced bug of sub builtin function and report to me.
 
10
# Then I investigated the bug.
 
11
 
12
# reproduce script is here.
 
13
 
 
14
BEGIN {
 
15
        str = "type=\"directory\" version=\"1.0\""
 
16
        #print "BEGIN:", str
 
17
 
 
18
        while (str) {
 
19
                sub(/^[^=]*/, "", str);
 
20
                s = substr(str, 2)
 
21
                print s
 
22
                sub(/^="[^"]*"/, "", str)
 
23
                sub(/^[ \t]*/, "", str)
 
24
        }
 
25
}
 
26
 
 
27
# and sample result is here (on GNU/Linux Fedora core 3)
 
28
 
29
# [kbk@skuld gawk-3.1.5]$ LC_ALL=C ./gawk -f subbug.awk
 
30
# "directory" version="1.0"
 
31
# "1.0"
 
32
# [kbk@skuld gawk-3.1.5]$ LC_ALL=en_US.UTF-8 ./gawk -f subbug.awk
 
33
# "directory" version="1.0"
 
34
# "dire
 
35
# [kbk@skuld gawk-3.1.5]$
 
36
 
37
# In my investigation, this bug is cause by don't release wide-string when
 
38
# sub is executed.
 
39
 
40
# patch is here.
 
41
 
42
# --- builtin.c.orig    2005-07-27 03:07:43.000000000 +0900
 
43
# +++ builtin.c 2006-02-26 02:07:52.000000000 +0900
 
44
# @@ -2463,6 +2468,15 @@ sub_common(NODE *tree, long how_many, in
 
45
#       t->stptr = buf;
 
46
#       t->stlen = textlen;
 
47
 
48
# +#ifdef MBS_SUPPORT
 
49
# +    if (t->flags & WSTRCUR) {
 
50
# +        if (t->wstptr != NULL)
 
51
# +            free(t->wstptr);
 
52
# +        t->wstptr = NULL;
 
53
# +        t->wstlen = 0;
 
54
# +        t->flags &= ~WSTRCUR;
 
55
# +    }
 
56
# +#endif
 
57
#       free_temp(s);
 
58
#       if (matches > 0 && lhs) {
 
59
#               if (priv) {
 
60
 
61
 
62
# -- 
 
63
# KIMURA Koichi
 
64
 
65
 
66
# #####################################################################################
 
67
# This Mail Was Scanned by 012.net AntiVirus Service1- Powered by TrendMicro Interscan
 
68