Annotation of embedaddon/pcre/testdata/testoutput14, revision 1.1.1.5
1.1.1.5 ! misho 1: /-- This set of tests is run only with the 8-bit library. They do not require
! 2: UTF-8 or Unicode property support. The file starts with all the tests of
! 3: the POSIX interface, because that is supported only with the 8-bit library.
! 4: --/
! 5:
! 6: < forbid 8W
1.1 misho 7:
1.1.1.2 misho 8: /abc/P
9: abc
10: 0: abc
11: *** Failers
12: No match: POSIX code 17: match failed
13:
14: /^abc|def/P
15: abcdef
16: 0: abc
17: abcdef\B
18: 0: def
19:
20: /.*((abc)$|(def))/P
21: defabc
22: 0: defabc
23: 1: abc
24: 2: abc
25: \Zdefabc
26: 0: def
27: 1: def
28: 3: def
29:
30: /the quick brown fox/P
31: the quick brown fox
32: 0: the quick brown fox
33: *** Failers
34: No match: POSIX code 17: match failed
35: The Quick Brown Fox
36: No match: POSIX code 17: match failed
37:
38: /the quick brown fox/Pi
39: the quick brown fox
40: 0: the quick brown fox
41: The Quick Brown Fox
42: 0: The Quick Brown Fox
43:
44: /abc.def/P
45: *** Failers
46: No match: POSIX code 17: match failed
47: abc\ndef
48: No match: POSIX code 17: match failed
49:
50: /abc$/P
51: abc
52: 0: abc
53: abc\n
54: 0: abc
55:
56: /(abc)\2/P
57: Failed: POSIX code 15: bad back reference at offset 7
58:
59: /(abc\1)/P
60: abc
61: No match: POSIX code 17: match failed
62:
63: /a*(b+)(z)(z)/P
64: aaaabbbbzzzz
65: 0: aaaabbbbzz
66: 1: bbbb
67: 2: z
68: 3: z
69: aaaabbbbzzzz\O0
70: aaaabbbbzzzz\O1
71: 0: aaaabbbbzz
72: aaaabbbbzzzz\O2
73: 0: aaaabbbbzz
74: 1: bbbb
75: aaaabbbbzzzz\O3
76: 0: aaaabbbbzz
77: 1: bbbb
78: 2: z
79: aaaabbbbzzzz\O4
80: 0: aaaabbbbzz
81: 1: bbbb
82: 2: z
83: 3: z
84: aaaabbbbzzzz\O5
85: 0: aaaabbbbzz
86: 1: bbbb
87: 2: z
88: 3: z
89:
90: /ab.cd/P
91: ab-cd
92: 0: ab-cd
93: ab=cd
94: 0: ab=cd
95: ** Failers
96: No match: POSIX code 17: match failed
97: ab\ncd
98: No match: POSIX code 17: match failed
99:
100: /ab.cd/Ps
101: ab-cd
102: 0: ab-cd
103: ab=cd
104: 0: ab=cd
105: ab\ncd
106: 0: ab\x0acd
107:
108: /a(b)c/PN
109: abc
110: Matched with REG_NOSUB
111:
112: /a(?P<name>b)c/PN
113: abc
114: Matched with REG_NOSUB
115:
116: /a?|b?/P
117: abc
118: 0: a
119: ** Failers
120: 0:
121: ddd\N
122: No match: POSIX code 17: match failed
123:
124: /\w+A/P
125: CDAAAAB
126: 0: CDAAAA
127:
128: /\w+A/PU
129: CDAAAAB
130: 0: CDA
131:
132: /\Biss\B/I+P
133: Mississippi
134: 0: iss
135: 0+ issippi
136:
137: /abc/\P
138: Failed: POSIX code 9: bad escape sequence at offset 4
139:
140: /-- End of POSIX tests --/
141:
142: /a\Cb/
143: aXb
144: 0: aXb
145: a\nb
146: 0: a\x0ab
147: ** Failers (too big char)
148: No match
149: A\x{123}B
150: ** Character \x{123} is greater than 255 and UTF-8 mode is not enabled.
151: ** Truncation will probably give the wrong result.
152: No match
1.1.1.5 ! misho 153: A\o{443}B
! 154: ** Character \x{123} is greater than 255 and UTF-8 mode is not enabled.
! 155: ** Truncation will probably give the wrong result.
! 156: No match
1.1.1.2 misho 157:
158: /\x{100}/I
1.1.1.5 ! misho 159: Failed: character value in \x{} or \o{} is too large at offset 6
! 160:
! 161: /\o{400}/I
! 162: Failed: character value in \x{} or \o{} is too large at offset 6
1.1.1.2 misho 163:
164: / (?: [\040\t] | \(
165: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
166: \) )* # optional leading comment
167: (?: (?:
168: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
169: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
170: |
171: " (?: # opening quote...
172: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
173: | # or
174: \\ [^\x80-\xff] # Escaped something (something != CR)
175: )* " # closing quote
176: ) # initial word
177: (?: (?: [\040\t] | \(
178: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
179: \) )* \. (?: [\040\t] | \(
180: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
181: \) )* (?:
182: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
183: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
184: |
185: " (?: # opening quote...
186: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
187: | # or
188: \\ [^\x80-\xff] # Escaped something (something != CR)
189: )* " # closing quote
190: ) )* # further okay, if led by a period
191: (?: [\040\t] | \(
192: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
193: \) )* @ (?: [\040\t] | \(
194: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
195: \) )* (?:
196: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
197: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
198: | \[ # [
199: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
200: \] # ]
201: ) # initial subdomain
202: (?: #
203: (?: [\040\t] | \(
204: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
205: \) )* \. # if led by a period...
206: (?: [\040\t] | \(
207: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
208: \) )* (?:
209: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
210: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
211: | \[ # [
212: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
213: \] # ]
214: ) # ...further okay
215: )*
216: # address
217: | # or
218: (?:
219: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
220: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
221: |
222: " (?: # opening quote...
223: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
224: | # or
225: \\ [^\x80-\xff] # Escaped something (something != CR)
226: )* " # closing quote
227: ) # one word, optionally followed by....
228: (?:
229: [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
230: \(
231: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
232: \) | # comments, or...
233:
234: " (?: # opening quote...
235: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
236: | # or
237: \\ [^\x80-\xff] # Escaped something (something != CR)
238: )* " # closing quote
239: # quoted strings
240: )*
241: < (?: [\040\t] | \(
242: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
243: \) )* # leading <
244: (?: @ (?: [\040\t] | \(
245: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
246: \) )* (?:
247: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
248: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
249: | \[ # [
250: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
251: \] # ]
252: ) # initial subdomain
253: (?: #
254: (?: [\040\t] | \(
255: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
256: \) )* \. # if led by a period...
257: (?: [\040\t] | \(
258: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
259: \) )* (?:
260: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
261: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
262: | \[ # [
263: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
264: \] # ]
265: ) # ...further okay
266: )*
267:
268: (?: (?: [\040\t] | \(
269: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
270: \) )* , (?: [\040\t] | \(
271: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
272: \) )* @ (?: [\040\t] | \(
273: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
274: \) )* (?:
275: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
276: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
277: | \[ # [
278: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
279: \] # ]
280: ) # initial subdomain
281: (?: #
282: (?: [\040\t] | \(
283: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
284: \) )* \. # if led by a period...
285: (?: [\040\t] | \(
286: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
287: \) )* (?:
288: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
289: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
290: | \[ # [
291: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
292: \] # ]
293: ) # ...further okay
294: )*
295: )* # further okay, if led by comma
296: : # closing colon
297: (?: [\040\t] | \(
298: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
299: \) )* )? # optional route
300: (?:
301: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
302: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
303: |
304: " (?: # opening quote...
305: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
306: | # or
307: \\ [^\x80-\xff] # Escaped something (something != CR)
308: )* " # closing quote
309: ) # initial word
310: (?: (?: [\040\t] | \(
311: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
312: \) )* \. (?: [\040\t] | \(
313: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
314: \) )* (?:
315: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
316: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
317: |
318: " (?: # opening quote...
319: [^\\\x80-\xff\n\015"] # Anything except backslash and quote
320: | # or
321: \\ [^\x80-\xff] # Escaped something (something != CR)
322: )* " # closing quote
323: ) )* # further okay, if led by a period
324: (?: [\040\t] | \(
325: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
326: \) )* @ (?: [\040\t] | \(
327: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
328: \) )* (?:
329: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
330: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
331: | \[ # [
332: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
333: \] # ]
334: ) # initial subdomain
335: (?: #
336: (?: [\040\t] | \(
337: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
338: \) )* \. # if led by a period...
339: (?: [\040\t] | \(
340: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
341: \) )* (?:
342: [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
343: (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
344: | \[ # [
345: (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
346: \] # ]
347: ) # ...further okay
348: )*
349: # address spec
350: (?: [\040\t] | \(
351: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
352: \) )* > # trailing >
353: # name and address
354: ) (?: [\040\t] | \(
355: (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
356: \) )* # optional trailing comment
357: /xSI
1.1 misho 358: Capturing subpattern count = 0
1.1.1.2 misho 359: Contains explicit CR or LF match
360: Options: extended
361: No first char
362: No need char
1.1 misho 363: Subject length lower bound = 3
1.1.1.2 misho 364: Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
365: 9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e
366: f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
367:
368: /-- Although this saved pattern was compiled with link-size=2, it does no harm
369: to run this test with other link sizes because it is going to generated a
370: "compiled in wrong mode" error as soon as it is loaded, so the link size does
371: not matter. --/
1.1 misho 372:
1.1.1.2 misho 373: <!testsaved16
374: Compiled pattern loaded from testsaved16
375: No study data
376: Error -28 from pcre_fullinfo(0)
377: Running in 8-bit mode but pattern was compiled in 16-bit mode
378:
1.1.1.4 misho 379: <!testsaved32
380: Compiled pattern loaded from testsaved32
381: No study data
382: Error -28 from pcre_fullinfo(0)
383: Running in 8-bit mode but pattern was compiled in 32-bit mode
384:
1.1.1.2 misho 385: /\h/SI
1.1 misho 386: Capturing subpattern count = 0
387: No options
1.1.1.2 misho 388: No first char
389: No need char
390: Subject length lower bound = 1
391: Starting byte set: \x09 \x20 \xa0
1.1 misho 392:
1.1.1.5 ! misho 393: /\H/SI
! 394: Capturing subpattern count = 0
! 395: No options
! 396: No first char
! 397: No need char
! 398: Subject length lower bound = 1
! 399: No set of starting bytes
! 400:
1.1.1.2 misho 401: /\v/SI
1.1 misho 402: Capturing subpattern count = 0
403: No options
1.1.1.2 misho 404: No first char
405: No need char
406: Subject length lower bound = 1
407: Starting byte set: \x0a \x0b \x0c \x0d \x85
1.1 misho 408:
1.1.1.5 ! misho 409: /\V/SI
! 410: Capturing subpattern count = 0
! 411: No options
! 412: No first char
! 413: No need char
! 414: Subject length lower bound = 1
! 415: No set of starting bytes
! 416:
1.1.1.2 misho 417: /\R/SI
1.1 misho 418: Capturing subpattern count = 0
419: No options
420: No first char
421: No need char
1.1.1.2 misho 422: Subject length lower bound = 1
423: Starting byte set: \x0a \x0b \x0c \x0d \x85
424:
425: /[\h]/BZ
426: ------------------------------------------------------------------
427: Bra
428: [\x09 \xa0]
429: Ket
430: End
431: ------------------------------------------------------------------
432: >\x09<
433: 0: \x09
434:
435: /[\h]+/BZ
436: ------------------------------------------------------------------
437: Bra
1.1.1.5 ! misho 438: [\x09 \xa0]++
1.1.1.2 misho 439: Ket
440: End
441: ------------------------------------------------------------------
442: >\x09\x20\xa0<
443: 0: \x09 \xa0
444:
445: /[\v]/BZ
446: ------------------------------------------------------------------
447: Bra
448: [\x0a-\x0d\x85]
449: Ket
450: End
451: ------------------------------------------------------------------
452:
453: /[\H]/BZ
454: ------------------------------------------------------------------
455: Bra
456: [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]
457: Ket
458: End
459: ------------------------------------------------------------------
460:
461: /[^\h]/BZ
462: ------------------------------------------------------------------
463: Bra
464: [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)
465: Ket
466: End
467: ------------------------------------------------------------------
468:
469: /[\V]/BZ
470: ------------------------------------------------------------------
471: Bra
472: [\x00-\x09\x0e-\x84\x86-\xff]
473: Ket
474: End
475: ------------------------------------------------------------------
476:
477: /[\x0a\V]/BZ
478: ------------------------------------------------------------------
479: Bra
480: [\x00-\x0a\x0e-\x84\x86-\xff]
481: Ket
482: End
483: ------------------------------------------------------------------
1.1 misho 484:
1.1.1.2 misho 485: /\777/I
486: Failed: octal value is greater than \377 in 8-bit non-UTF-8 mode at offset 3
1.1 misho 487:
1.1.1.3 misho 488: /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/K
489: Failed: name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN) at offset 259
490:
491: /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/K
492: XX
493: 0: XX
494: MK: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE
495:
496: /\u0100/<JS>
497: Failed: character value in \u.... sequence is too large at offset 5
498:
499: /[\u0100-\u0200]/<JS>
500: Failed: character value in \u.... sequence is too large at offset 6
501:
1.1.1.5 ! misho 502: /[^\x00-a]{12,}[^b-\xff]*/BZ
! 503: ------------------------------------------------------------------
! 504: Bra
! 505: [b-\xff] (neg){12,}+
! 506: [\x00-a] (neg)*+
! 507: Ket
! 508: End
! 509: ------------------------------------------------------------------
! 510:
! 511: /[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/BZ
! 512: ------------------------------------------------------------------
! 513: Bra
! 514: [\x00-\x08\x0e-\x1f!-\xff] (neg)*+
! 515: \s*
! 516:
! 517: [0-9A-Z_a-z]++
! 518: \W+
! 519:
! 520: [\x00-/:-\xff] (neg)*+
! 521: \d
! 522: 0
! 523: [\x00-/:-@[-^`{-\xff] (neg){4,6}+
! 524: \w*
! 525: A
! 526: Ket
! 527: End
! 528: ------------------------------------------------------------------
! 529:
1.1 misho 530: /-- End of testinput14 --/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>