Revision | 666 (tree) |
---|---|
Time | 2017-07-16 10:38:10 |
Author | y-moriguchi |
fixed bugs about quotation in JavaScript
@@ -142,7 +142,7 @@ | ||
142 | 142 | StringBuffer b0, b1 = null, b2 = null; |
143 | 143 | String s, nm = null, s1; |
144 | 144 | S0 st = S0.INI; |
145 | - int c, l = 0; | |
145 | + int c, l = 0, qch = -1; | |
146 | 146 | |
147 | 147 | b0 = new StringBuffer(); |
148 | 148 | while(true) { |
@@ -154,8 +154,10 @@ | ||
154 | 154 | st = S0.EX1; |
155 | 155 | } else if(c == '#') { |
156 | 156 | st = S0.SH1; |
157 | - } else if(c == '"') { | |
158 | - b0.append('"'); st = S0.DQ1; | |
157 | + } else if(c == '"' || c == '\'') { | |
158 | + b0.appendCodePoint(c); | |
159 | + qch = c; | |
160 | + st = S0.DQ1; | |
159 | 161 | } else if(c < 0) { |
160 | 162 | return b0.toString(); |
161 | 163 | } else { |
@@ -333,7 +335,7 @@ | ||
333 | 335 | case DQ1: |
334 | 336 | if(c < 0) return b0.toString(); |
335 | 337 | b0.appendCodePoint(c); |
336 | - if(c == '"') { | |
338 | + if(c == qch) { | |
337 | 339 | st = S0.INI; |
338 | 340 | } else if(c == '\\') { |
339 | 341 | st = S0.DQ2; |
@@ -52,7 +52,7 @@ | ||
52 | 52 | StringBuffer b0, b1 = null; |
53 | 53 | S2 st = S2.INI; |
54 | 54 | String t; |
55 | - int c; | |
55 | + int c, qch = -1; | |
56 | 56 | |
57 | 57 | b0 = new StringBuffer(); |
58 | 58 | while(true) { |
@@ -62,8 +62,9 @@ | ||
62 | 62 | if(CpreUtils.isCMacroIdentifierStart(c)) { |
63 | 63 | b1 = new StringBuffer().appendCodePoint(c); |
64 | 64 | st = S2.EX1; |
65 | - } else if(c == '"') { | |
65 | + } else if(c == '"' || c == '\'') { | |
66 | 66 | b0.appendCodePoint(c); |
67 | + qch = c; | |
67 | 68 | st = S2.DQ1; |
68 | 69 | } else if(c == '#') { |
69 | 70 | b1 = new StringBuffer(); |
@@ -81,8 +82,9 @@ | ||
81 | 82 | t = args.get(b1.toString().trim()); |
82 | 83 | b0.append(t != null ? t : b1); |
83 | 84 | if(c < 0) return b0.toString(); |
84 | - if(c == '"') { | |
85 | + if(c == '"' || c == '\'') { | |
85 | 86 | b0.appendCodePoint(c); |
87 | + qch = c; | |
86 | 88 | st = S2.DQ1; |
87 | 89 | } else if(c == '#') { |
88 | 90 | b1 = new StringBuffer(); |
@@ -111,8 +113,9 @@ | ||
111 | 113 | b0.append(t); |
112 | 114 | b0.append('"'); |
113 | 115 | if(c < 0) return b0.toString(); |
114 | - if(c == '"') { | |
116 | + if(c == '"' || c == '\'') { | |
115 | 117 | b0.appendCodePoint(c); |
118 | + qch = c; | |
116 | 119 | st = S2.DQ1; |
117 | 120 | } else if(c == '#') { |
118 | 121 | b1 = new StringBuffer(); |
@@ -124,8 +127,9 @@ | ||
124 | 127 | } else { |
125 | 128 | b0.append('#'); |
126 | 129 | if(c < 0) return b0.toString(); |
127 | - if(c == '"') { | |
130 | + if(c == '"' || c == '\'') { | |
128 | 131 | b0.appendCodePoint(c); |
132 | + qch = c; | |
129 | 133 | st = S2.DQ1; |
130 | 134 | } else if(c == '#') { |
131 | 135 | b1 = new StringBuffer(); |
@@ -137,7 +141,7 @@ | ||
137 | 141 | } |
138 | 142 | break; |
139 | 143 | case DQ1: |
140 | - if(c == '"') { | |
144 | + if(c == qch) { | |
141 | 145 | st = S2.INI; |
142 | 146 | } else if(c == '\\') { |
143 | 147 | st = S2.DQ2; |