@@ -52,12 +52,18 @@ int readUntilAttributeValue(ResizableCharBuilder builder, int quoteChar, boolean
5252 return readUntilAttributeValueInternal (builder , quoteChar , stopAtAmpersand );
5353 }
5454
55+ private static boolean mustStopReadUntilAttributeValueUnquoted (int chr ) {
56+ return Common .isTabLfFfCrOrSpace (chr ) || chr == Characters .AMPERSAND || chr == Characters .GREATERTHAN_SIGN
57+ || chr == Characters .NULL || chr == Characters .QUOTATION_MARK ||
58+ chr == Characters .APOSTROPHE || chr == Characters .LESSTHAN_SIGN ||
59+ chr == Characters .EQUALS_SIGN || chr == Characters .GRAVE_ACCENT || chr == Characters .EOF ;
60+ }
61+
5562 int readUntilAttributeValueUnquoted (ResizableCharBuilder builder ) {
5663 int chr ;
5764 while (!buffer .isEmpty ) {
5865 chr = buffer .removeFirst ();
59- if (Common .isTabLfFfCrOrSpace (chr ) || chr == Characters .AMPERSAND || chr == '>' || chr == Characters .NULL ||
60- chr == '"' || chr == '\'' || chr == Characters .LESSTHAN_SIGN || chr == '=' || chr == '`' || chr == Characters .EOF ) {
66+ if (mustStopReadUntilAttributeValueUnquoted (chr )) {
6167 return chr ;
6268 }
6369 builder .append ((char ) chr );
@@ -77,12 +83,16 @@ int readUntilTagName(ResizableCharBuilder builder) {
7783 return readUntilTagNameInternal (builder );
7884 }
7985
86+ private static boolean mustStopReadUntilAttributeName (int chr ) {
87+ return Common .isTabLfFfCrOrSpace (chr ) || chr == Characters .SOLIDUS || chr == Characters .EQUALS_SIGN || chr == Characters .GREATERTHAN_SIGN || chr == Characters .NULL ||
88+ chr == Characters .QUOTATION_MARK || chr == Characters .APOSTROPHE || chr == Characters .LESSTHAN_SIGN || chr == Characters .EOF ;
89+ }
90+
8091 int readUntilAttributeName (ResizableCharBuilder builder ) {
8192 int chr ;
8293 while (!buffer .isEmpty ) {
8394 chr = buffer .removeFirst ();
84- if (Common .isTabLfFfCrOrSpace (chr ) || chr == Characters .SOLIDUS || chr == '=' || chr == '>' || chr == Characters .NULL ||
85- chr == '"' || chr == '\'' || chr == Characters .LESSTHAN_SIGN || chr == Characters .EOF ) {
95+ if (mustStopReadUntilAttributeName (chr )) {
8696 return chr ;
8797 }
8898 builder .append ((char ) chr );
@@ -94,7 +104,7 @@ int readUntilComment(ResizableCharBuilder builder) {
94104 int chr ;
95105 while (!buffer .isEmpty ) {
96106 chr = buffer .removeFirst ();
97- if (chr == '-' || chr == Characters .NULL || chr == Characters .EOF ) {
107+ if (chr == Characters . HYPHEN_MINUS || chr == Characters .NULL || chr == Characters .EOF ) {
98108 return chr ;
99109 }
100110 builder .append ((char ) chr );
@@ -104,70 +114,68 @@ int readUntilComment(ResizableCharBuilder builder) {
104114
105115 protected int readUntilInternal (ResizableCharBuilder builder , boolean stopAtAmpersand , boolean stopAtLessThan ) {
106116 int chr ;
107- while ((chr = read ()) != - 1 ) {
117+ while ((chr = read ()) != Characters . EOF ) {
108118 if ((stopAtAmpersand && chr == Characters .AMPERSAND ) || (stopAtLessThan && chr == Characters .LESSTHAN_SIGN ) || chr == Characters .NULL ) {
109119 return chr ;
110120 }
111121 builder .append ((char ) chr );
112122 }
113- return - 1 ;
123+ return Characters . EOF ;
114124 }
115125
116126 protected int readUntilAttributeValueInternal (ResizableCharBuilder builder , int quoteChar , boolean stopAtAmpersand ) {
117127 int chr ;
118- while ((chr = read ()) != - 1 ) {
128+ while ((chr = read ()) != Characters . EOF ) {
119129 if (chr == quoteChar || (stopAtAmpersand && chr == Characters .AMPERSAND ) || chr == Characters .NULL ) {
120130 return chr ;
121131 }
122132 builder .append ((char ) chr );
123133 }
124- return - 1 ;
134+ return Characters . EOF ;
125135 }
126136
127137 protected int readUntilAttributeValueUnquotedInternal (ResizableCharBuilder builder ) {
128138 int chr ;
129- while ((chr = read ()) != -1 ) {
130- if (Common .isTabLfFfCrOrSpace (chr ) || chr == Characters .AMPERSAND || chr == '>' || chr == Characters .NULL ||
131- chr == '"' || chr == '\'' || chr == Characters .LESSTHAN_SIGN || chr == '=' || chr == '`' ) {
139+ while ((chr = read ()) != Characters .EOF ) {
140+ if (mustStopReadUntilAttributeValueUnquoted (chr )) {
132141 return chr ;
133142 }
134143 builder .append ((char ) chr );
135144 }
136- return - 1 ;
145+ return Characters . EOF ;
137146 }
138147
139148 protected int readUntilTagNameInternal (ResizableCharBuilder builder ) {
140149 int chr ;
141- while ((chr = read ()) != - 1 ) {
150+ while ((chr = read ()) != Characters . EOF ) {
142151 if (Common .isTabLfFfCrOrSpace (chr ) || chr == Characters .SOLIDUS || chr == Characters .GREATERTHAN_SIGN || chr == Characters .NULL ) {
143152 return chr ;
144153 }
145154 builder .append ((char ) chr );
146155 }
147- return - 1 ;
156+ return Characters . EOF ;
148157 }
149158
150159 protected int readUntilAttributeNameInternal (ResizableCharBuilder builder ) {
151160 int chr ;
152- while ((chr = read ()) != -1 ) {
153- if (Common .isTabLfFfCrOrSpace (chr ) || chr == Characters .SOLIDUS || chr == '=' || chr == '>' || chr == Characters .NULL ||
154- chr == '"' || chr == '\'' || chr == Characters .LESSTHAN_SIGN ) {
161+ while ((chr = read ()) != Characters .EOF ) {
162+ if (mustStopReadUntilAttributeName (chr )) {
155163 return chr ;
156164 }
157165 builder .append ((char ) chr );
158166 }
159- return - 1 ;
167+ return Characters . EOF ;
160168 }
161169
162170 protected int readUntilCommentInternal (ResizableCharBuilder builder ) {
163171 int chr ;
164- while ((chr = read ()) != - 1 ) {
165- if (chr == '-' || chr == Characters .NULL ) {
172+ while ((chr = read ()) != Characters . EOF ) {
173+ if (chr == Characters . HYPHEN_MINUS || chr == Characters .NULL ) {
166174 return chr ;
167175 }
168176 builder .append ((char ) chr );
169177 }
170- return - 1 ;
178+ return Characters . EOF ;
171179 }
172180
173181 //
@@ -234,7 +242,7 @@ static class StringProcessedInputStream extends ProcessedInputStream {
234242 // used for test
235243 protected int getCharAt (int pos ) {
236244 if (pos >= length ) {
237- return - 1 ;
245+ return Characters . EOF ;
238246 }
239247 return input [pos ];
240248 }
@@ -244,7 +252,7 @@ protected int read() {
244252 if (pos < length ) {
245253 return input [pos ++];
246254 }
247- return - 1 ;
255+ return Characters . EOF ;
248256 }
249257
250258 @ Override
@@ -262,7 +270,7 @@ protected int readUntilInternal(ResizableCharBuilder builder, boolean stopAtAmpe
262270 }
263271 builder .append (input , pos , n - pos );
264272 pos = n ;
265- return - 1 ;
273+ return Characters . EOF ;
266274 }
267275
268276 @ Override
@@ -280,7 +288,7 @@ protected int readUntilAttributeValueInternal(ResizableCharBuilder builder, int
280288 }
281289 builder .append (input , pos , n - pos );
282290 pos = n ;
283- return - 1 ;
291+ return Characters . EOF ;
284292 }
285293
286294 @ Override
@@ -289,8 +297,7 @@ protected int readUntilAttributeValueUnquotedInternal(ResizableCharBuilder build
289297 int i = pos ;
290298 while (i < n ) {
291299 char c = input [i ];
292- if (Common .isTabLfFfCrOrSpace (c ) || c == Characters .AMPERSAND || c == '>' || c == Characters .NULL ||
293- c == '"' || c == '\'' || c == Characters .LESSTHAN_SIGN || c == '=' || c == '`' ) {
300+ if (mustStopReadUntilAttributeValueUnquoted (c )) {
294301 builder .append (input , pos , i - pos );
295302 pos = i + 1 ;
296303 return c ;
@@ -299,7 +306,7 @@ protected int readUntilAttributeValueUnquotedInternal(ResizableCharBuilder build
299306 }
300307 builder .append (input , pos , n - pos );
301308 pos = n ;
302- return - 1 ;
309+ return Characters . EOF ;
303310 }
304311
305312 @ Override
@@ -317,7 +324,7 @@ protected int readUntilTagNameInternal(ResizableCharBuilder builder) {
317324 }
318325 builder .append (input , pos , n - pos );
319326 pos = n ;
320- return - 1 ;
327+ return Characters . EOF ;
321328 }
322329
323330 @ Override
@@ -326,17 +333,16 @@ protected int readUntilAttributeNameInternal(ResizableCharBuilder builder) {
326333 int i = pos ;
327334 while (i < n ) {
328335 char c = input [i ];
329- if (Common .isTabLfFfCrOrSpace (c ) || c == Characters .SOLIDUS || c == '=' || c == '>' || c == Characters .NULL ||
330- c == '"' || c == '\'' || c == Characters .LESSTHAN_SIGN ) {
331- builder .append (input , pos , i - pos );
336+ if (mustStopReadUntilAttributeName (c )) {
337+ builder .append (input , pos , i - pos ); // append remaining
332338 pos = i + 1 ;
333339 return c ;
334340 }
335341 i ++;
336342 }
337343 builder .append (input , pos , n - pos );
338344 pos = n ;
339- return - 1 ;
345+ return Characters . EOF ;
340346 }
341347
342348 @ Override
@@ -354,7 +360,7 @@ protected int readUntilCommentInternal(ResizableCharBuilder builder) {
354360 }
355361 builder .append (input , pos , n - pos );
356362 pos = n ;
357- return - 1 ;
363+ return Characters . EOF ;
358364 }
359365 }
360366
0 commit comments