/[suikacvs]/markup/html/whatpm/Whatpm/ChangeLog
Suika

Diff of /markup/html/whatpm/Whatpm/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by wakaba, Tue May 1 10:36:06 2007 UTC revision 1.91 by wakaba, Sun Aug 5 09:24:56 2007 UTC
# Line 1  Line 1 
1    2007-08-05  Wakaba  <wakaba@suika.fam.cx>
2    
3            * H2H.pm: |b|, |i|, and |sub| are added to the
4            list of allowed HTML elements.
5    
6    2007-08-05  Wakaba  <wakaba@suika.fam.cx>
7    
8            * H2H.pm: |samp| is added to the list of allowed
9            HTML elements.
10    
11            * URIChecker.pm (check_iri): New.
12            (check_iri_reference): Error type for IRI reference
13            syntax error is changed.
14    
15    2007-08-04  Wakaba  <wakaba@suika.fam.cx>
16    
17            * ContentChecker.pm: Reference to the |Whatpm::ContentChecker::Atom|
18            is added.
19            (check_document): Load appropriate module before validation.
20    
21    2007-08-04  Wakaba  <wakaba@suika.fam.cx>
22    
23            * ContentChecker/: New directory.
24    
25    2007-08-04  Wakaba  <wakaba@suika.fam.cx>
26    
27            * ContentChecker.pm: HTML |time| element is implemented.
28    
29            * HTMLTable.pm: Comments are updated as HTML5 is revised.
30    
31    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
32    
33            * ContentChecker.pm (check_document): Return value
34            even if no document element is found.
35    
36    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
37    
38            * HTML.pm.src: |$in_body| is no longer a function.
39    
40    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
41    
42            * HTML.pm.src: The |$in_body| code has been moved down.
43    
44    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
45    
46            * HTML.pm.src: The "trailing end" insertion mode
47            is split into "after html body" and "after html frameset"
48            insertion modes.  Their codes are merged with "after body"
49            and "after frameset" codes.  |$previous_insertion_mode|
50            has been removed.  "after frameset" code is
51            merged with "in frameset" code.
52    
53    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
54    
55            * HTML.pm.src: The "before head" insertion mode is
56            merged with the "in head" insertion mode.
57    
58    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
59    
60            * HTML.pm.src: Cases in "in head" insertion mode are
61            reorganized.
62    
63    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
64    
65            * HTML.pm.src: Some cases in "in table" insertion mode
66            are merged.
67    
68    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
69    
70            * HTML.pm.src: The "in row" insertion mode is merged
71            with "in table" insertion mode.
72    
73    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
74    
75            * HTML.pm.src: The "in table" and "in table body" insertion
76            modes are merged.
77    
78    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
79    
80            * HTML.pm.src: There is no "in table head" or "in table foot"
81            insertion mode!
82    
83    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
84    
85            * HTML.pm.src: |<noframes>| "in frameset" and "in noframes"
86            now directly invoke the handler.
87    
88    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
89    
90            * HTML.pm.src: Codes for "in cell" insertion mode
91            is merged to the "in body" insertion mode code.
92    
93    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
94    
95            * HTML.pm.src: Codes for "in body" and "in caption"
96            insertion modes are merged.
97    
98    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
99    
100            * HTML.pm.src: Two |!!!next-token|s were missing.
101    
102    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
103    
104            * HTML.pm.src: Use numeric constant for |{content_mode}|
105            instead of string constant for |{content_model_flag}|.
106    
107    2007-07-21  Wakaba  <wakaba@suika.fam.cx>
108    
109            * HTML.pm.src: Add the name of the attribute
110            to the "duplicate attribute" error.
111    
112    2007-07-17  Wakaba  <wakaba@suika.fam.cx>
113    
114            * ContentChecker.pm: Return the |class| node list.
115    
116    2007-07-17  Wakaba  <wakaba@suika.fam.cx>
117    
118            * ContentChecker.pm: Return the |id| node list.
119    
120            * HTML.pm.src: A typo is fixed.
121    
122    2007-07-16  Wakaba  <wakaba@suika.fam.cx>
123    
124            * ContentChecker.pm: Drop wrong |level => 'error'| specification
125            from "in HTML:xml:lang" error.  Character position
126            is now the last part of the error type in the URI error
127            description.  Report "unsupported" status for language
128            tags, media queries, script codes, and style sheets.
129    
130    2007-07-16  Wakaba  <wakaba@suika.fam.cx>
131    
132            * ContentChecker.pm: Report error if |xml:lang|
133            in HTML, |lang| in XML, |xmlns| in XML, and |meta| |charset|
134            in XML.
135    
136            * NanoDOM.pm (Attr.owner_document): New attribute.
137    
138    2007-07-16  Wakaba  <wakaba@suika.fam.cx>
139    
140            * HTML.pm.src: The character immediately following
141            a bare |hcro| was discarded.  Fix handling of
142            entity references in attribute values.
143    
144    2007-07-16  Wakaba  <wakaba@suika.fam.cx>
145    
146            * HTML.pm.src (main and trailin end phases): Token
147            types |DOCTYPE|, |comment|, |end-of-file|, and |<html>| are
148            factored out.  Error types |in html:#DOCTYPE|
149            and |after html:#DOCTYPE| are merged
150            into |DOCTYPE in the middle|.  |</frameset>|
151            in fragment parsing mode changed the
152            insertion mode.
153    
154    2007-07-16  Wakaba  <wakaba@suika.fam.cx>
155    
156            * HTML.pm.src: |$phase| has been removed; The |trailing end|
157            phase is now an insertion mode.  Treatments for white
158            space character tokens were incorrect for some
159            insertion modes.  An old |meta| case was not removed.
160    
161    2007-07-16  Wakaba  <wakaba@suika.fam.cx>
162    
163            * HTML.pm.src: |meta| charset declaration extraction
164            implemented (but changing the encoding is not yet:-).
165    
166    2007-07-15  Wakaba  <wakaba@suika.fam.cx>
167    
168            * Charset/: New directory.
169    
170    2007-07-15  Wakaba  <wakaba@suika.fam.cx>
171    
172            * H2H.pm: New Perl module (created from
173            manakai's H2H.dis).
174    
175    2007-07-15  Wakaba  <wakaba@suika.fam.cx>
176    
177            * XMLSerializer.pm: New Perl module (created from
178            manakai's SimpleLS.dis).
179    
180    2007-07-07  Wakaba  <wakaba@suika.fam.cx>
181    
182            * HTML.pm.src: |<!---x-->| was not processed correctly.
183    
184    2007-07-01  Wakaba  <wakaba@suika.fam.cx>
185    
186            * HTML.pm.src: Report correct error message
187            for |<body></div></body>|.
188    
189    2007-07-01  Wakaba  <wakaba@suika.fam.cx>
190    
191            * HTMLTable.pm: An error description was incorrect.
192    
193    2007-06-30  Wakaba  <wakaba@suika.fam.cx>
194    
195            * ContentChecker.pm: Return |{term}| list.
196    
197    2007-06-30  Wakaba  <wakaba@suika.fam.cx>
198    
199            * HTML.pm.src: HTML5 revisions 961-966 (</p>, </br>,
200            nested <nobr>, implied </tbody>, </tfoot>, and </thead>,
201            and <title> outside of head).
202    
203    2007-06-30  Wakaba  <wakaba@suika.fam.cx>
204    
205            * IMTChecker.pm: Report warning for unregistered
206            and private types/subtypes.
207    
208            * ContentChecker.pm, HTML.pm.src, IMTChecker.pm,
209            URIChecker.pm, HTMLTable.pm: Error messages are now
210            consistent; they are all listed in
211            <http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types>.
212    
213    2007-06-25  Wakaba  <wakaba@suika.fam.cx>
214    
215            * ContentChecker.pm: |<img ismap>| not in |<a></a>|
216            is now erred.  |<datalist>| is implemented.
217            Attribute checker for |<command>| and |<menu>| are
218            added.  Support for |contextmenu| global attribute
219            is added.
220    
221    2007-06-25  Wakaba  <wakaba@suika.fam.cx>
222    
223            * HTML.pm.src (_reset_insertion_mode): Interpretation
224            of Step 3 has been changed.
225    
226    2007-06-25  Wakaba  <wakaba@suika.fam.cx>
227    
228            * HTML.pm.src: Late |<html>| parse error is implemented.
229    
230    2007-06-24  Wakaba  <wakaba@suika.fam.cx>
231    
232            * URIChecker.pm (check_iri_reference): A |decode| method name was
233            incorrect.
234    
235            * ContentChecker.pm: Support for the |footer| element.
236            Check URI syntax for space-separated URI attributes.
237            Support for the |tabindex| attribute.  Support
238            for |datetime| attribute.
239    
240    2007-06-24  Wakaba  <wakaba@suika.fam.cx>
241    
242            * HTML.pm.src: HTML5 revision 1.144 (&#x0D;) and 1.145 (invalid
243            character references).  HTML5 revision 1.146 (white space
244            characters before root start tag).  HTML5 revision
245            1.148 (named character references in attribute values).
246            HTML5 revision 1.152 (<plaintext>.innerHTML get).
247    
248    2007-06-24  Wakaba  <wakaba@suika.fam.cx>
249    
250            * HTML.pm.src: HTML5 revisions 1.142 and 1.143 (<noscript>
251            in <head>).
252    
253    2007-06-24  Wakaba  <wakaba@suika.fam.cx>
254    
255            * HTML.pm.src: HTML5 revision 935 (<base>, <link>, <meta>
256            in body).
257    
258            * ContentChecker.pm: HTML5 revision 938 (scoped="").
259    
260    2007-06-24  Wakaba  <wakaba@suika.fam.cx>
261    
262            * HTML.pm.src: HTML5 revision 923 (matching end tag in CDATA
263            or RCDATA in fragment parsing mode).  HTML5 revision
264            924 (<!--> and <!--->).  HTML5 revision 926 (hn in hn).
265    
266    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
267    
268            * HTML.pm.src (get_inner_html): HTML5 revision 922 (inner_html
269            for <pre> and <textarea>).
270    
271    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
272    
273            * HTML.pm.src: HTML5 revision 920 (<isindex>).
274    
275    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
276    
277            * HTML.pm.src: HTML5 revision 918 (</head>, </body>, </html>).
278    
279    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
280    
281            * HTML.pm.src: HTML5 revision 916 (</body>).
282            HTML5 revision 917 (conforming bare &).
283    
284    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
285    
286            * NanoDOM.pm (manakai_is_html): Setting to false did not work.
287    
288            * HTML.pm.src: HTML5 revision 914 (</ in CDATA, RCDATA).
289            HTML5 revision 915 (<nobr>).
290    
291    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
292    
293            * HTML.pm.src: HTML5 revisions 908, 909, 912, and 913 (quirks mode).
294            
295            * NanoDOM.pm (manakai_is_html, manakai_compat_mode, compat_mode):
296            New attributes.
297    
298    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
299    
300            * HTML.pm.src: HTML5 revisions 900, 901, 902, and 911 (<
301            in tags).
302    
303    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
304    
305            * .cvsignore: |Entities.html| is added.
306    
307            * HTML.pm.src: |$entity_char| is removed and
308            requires |Whatpm::_NamedEntityList| instead.
309            HTML5 revision 898 (refc), except that lack of refc
310            is parse error.
311    
312            * mkentitylist.pl: New script.
313    
314            * Makefile (all): |_NamedEntityList.pm| is added.
315            (_NamedEntityList.pm, Entities.html): New rules.
316    
317    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
318    
319            * HTML.pm.src: Parse errors immediately after U+000D
320            were ignored and U+000D immediately following another
321            U+000D was not converted to U+000A.
322    
323    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
324    
325            * HTML.pm.src (set_inner_html): HTML5 revision 892 (adopt
326            nodes before appended).  Parser was not ready for NULL
327            parse error and escape flag.
328    
329            * NanoDOM.pm (adopt_node): New.
330    
331    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
332    
333            * HTML.pm.src: HTML5 revision 886 (insane comment in
334            CDATA and RCDATA).  Note that current implementation
335            is simply repeating what the spec says and it is maybe not
336            a best way to do it.
337    
338    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
339    
340            * HTML.pm.src: HTML5 revision 884 (</form> don't close
341            the form element if a descendant element without implied end tag has
342            still been open).
343    
344    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
345    
346            * ContentChecker.pm: HTML5 revision 881 (Make |id| attribute with
347            space characters non-conforming).
348    
349    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
350    
351            * HTML.pm.src: An error message was incorrect.
352            HTML5 revision 869 (C1 character references).
353            
354    2007-06-23  Wakaba  <wakaba@suika.fam.cx>
355    
356            * HTML.pm.src: HTML5 revision 867 (a LF at the beginning of
357            a |textarea| is removed).
358    
359    2007-06-05  Wakaba  <wakaba@suika.fam.cx>
360    
361            * NanoDOM.pm (get_attribute_node_ns): New method.
362    
363            * ContentChecker.pm: |script| |async| and |defer|
364            no longer require |src|.  |async| MUST NOT be
365            specified if |defer|.  (HTML5 revision 858).
366    
367    2007-05-30  Wakaba  <wakaba@suika.fam.cx>
368    
369            * HTML.pm.src: |<form><form>| went to inifinite loop.
370    
371    2007-05-27  Wakaba  <wakaba@suika.fam.cx>
372    
373            * ContentChecker.pm (html): Set |is_root| (allowed
374            as a document element) flag on.
375            (new): Removed.
376            (check_document): New method.
377    
378    2007-05-27  Wakaba  <wakaba@suika.fam.cx>
379    
380            * ContentChecker.pm (thead, tfoot): Checker specifications
381            were incorrect.
382    
383    2007-05-27  Wakaba  <wakaba@suika.fam.cx>
384    
385            * ContentChecker.pm ($HTMLURIAttrChecker): Include
386            error position in the |type| option of the error.
387    
388            * HTMLTable.pm (form_table): The |$onerror| parameter
389            is now optional.  Some bugs are fixed.
390    
391    2007-05-27  Wakaba  <wakaba@suika.fam.cx>
392    
393            * HTMLTable.pm: New module.
394    
395            * ContentChecker.pm (table): Invoke table model error checker.
396    
397            * NanoDOM.pm (first_child, get_attribute_ns): New.
398    
399    2007-05-26  Wakaba  <wakaba@suika.fam.cx>
400    
401            * ContentChecker.pm ($HTMLLinkTypesAttrChecker): New checker.
402            (link/@rel, a/@rel, area/@rel): Use new checker.
403    
404            * Makefile (_LinkTypeList.pm, RelExtensions.html): New rules.
405    
406            * _LinkTypeList.pm: New file.
407    
408            * mklinktypelist.pl: New file.
409    
410            * .cvsignore: |RelExtensions.html| added.
411    
412            * NanoDOM.pm (child_nodes): Returns an empty array
413            for non-child-containing node types.
414            (text_content): New attribute.
415    
416    2007-05-26  Wakaba  <wakaba@suika.fam.cx>
417    
418            * IMTChecker.pm: New module.
419    
420            * ContentChecker.pm ($HTMLIMTAttrChecker): Call IMTChecker
421            to test parameter value validity.
422    
423            * HTML.pm.src ($style_start_tag): Attributes were
424            discarded.
425    
426    2007-05-25  Wakaba  <wakaba@suika.fam.cx>
427    
428            * ContentChecker.pm ($HTMLURIAttrChecker): Implemented.
429    
430    2007-05-25  Wakaba  <wakaba@suika.fam.cx>
431    
432            * URIChecker.pm: All recommendations from RFC 3986
433            and RFC 3987 are listed (not all testable items are checked yet).
434    
435    2007-05-25  Wakaba  <wakaba@suika.fam.cx>
436    
437            * URIChecker.pm: New module.
438    
439    2007-05-20  Wakaba  <wakaba@suika.fam.cx>
440    
441            * ContentChecker.pm: Now most attributes are implemented
442            or associated to some placeholder.
443            ($ElementDefault): Warn unknown attributes
444            for unknown elements as "attribute not supported".
445            ($HTMLLanguageTagAttrChecker, $HTMLMQAttrChecker): New placeholders.
446            ($HTMLUsemapAttrChecker, $HTMLTargetAttrChecker): New checkers.
447            (|a| attribute checker): Reimplemented.
448    
449    2007-05-20  Wakaba  <wakaba@suika.fam.cx>
450    
451            * ContentChecker.pm ($HTMLEventHandlerAttrChecker): New placeholder.
452            ($HTMLAttrChecker): Event handler content attributes
453            are added.
454            (link, embed): Required attribute is now checked.
455            (embed): Unknown local attributes are no longer warned.
456    
457    2007-05-20  Wakaba  <wakaba@suika.fam.cx>
458    
459            * ContentChecker.pm ($HTMLSpaceURIsAttrChecker): New placeholder.
460            ($HTMLIMTAttrChecker): New checker.
461            (link@rel, link@href, link@type, style@type,
462            a@href, a@ping, a@ping, a@type, embed@src, embed@type,
463            object@data, object@type, source@src, source@type, area@alt,
464            area@shape, area@coords, area@href,
465            area@ping, area@rel, area@type, script@src,
466            script@defer, script@async, script@type): Checkers added.
467    
468    2007-05-20  Wakaba  <wakaba@suika.fam.cx>
469    
470            * ContentChecker.pm: Descendant checking was incorrect.
471    
472    2007-05-19  Wakaba  <wakaba@suika.fam.cx>
473    
474            * ContentChecker.pm: Support |xml:*| and |xmlns:*|
475            attributes.  Report an error if |Element.prefix|
476            is |xmlns|.
477    
478            * NanoDOM.pm (prefix): New attribute.
479    
480    2007-05-19  Wakaba  <wakaba@suika.fam.cx>
481    
482            * HTML.pm.src: In |main| phase, |in body| insertion
483            mode, action for |<iframe>| was missing.
484    
485    2007-05-19  Wakaba  <wakaba@suika.fam.cx>
486    
487            * ContentChecker.pm: Support for many of HTML5 elements.
488            ($GetHTMLNonNegativeIntegerAttrChecker): New.
489    
490    2007-05-19  Wakaba  <wakaba@suika.fam.cx>
491    
492            * ContentChecker.pm: Support for most elements up to |progress|.
493            ($HTMLURIAttrChecker): Placeholder.
494            ($HTMLIntegerAttrChecker, $GetHTMLFloatingPointNumberAttrChecker):
495            New.
496    
497    2007-05-19  Wakaba  <wakaba@suika.fam.cx>
498    
499            * ContentChecker.pm: Attribute checkers
500            for global attributes, |html|, |base|, |style|, and |meta|.
501    
502            * NanoDOM.pm (insert_before): Weaken reference
503            to the parent node.
504            (Attr::new): Set |owner_element| attribute.
505            (namespace_uri, manakai_local_name): New attribute implementations.
506            (owner_element): New attribute.
507    
508    2007-05-19  Wakaba  <wakaba@suika.fam.cx>
509    
510            * ContentChecker.pm ($AttrChecker, $HTMLAttrChecker,
511            $AnyChecker->{attr_checker}, $HTMLAttrsChecker,
512            $Element->{$HTML_NS}->{''}): New.
513            (check_element): Invoke attrs_checker for each element.
514    
515    2007-05-13  Wakaba  <wakaba@suika.fam.cx>
516    
517            * ContentChecker.pm: Don't use |manakai_element_type_match|.
518    
519    2007-05-13  Wakaba  <wakaba@suika.fam.cx>
520    
521            * ContentChecker.pm: Use hashs rather than lists for
522            element type testings.
523    
524    2007-05-13  Wakaba  <wakaba@suika.fam.cx>
525    
526            * ContentChecker.pm: Don't generate duplicate
527            error when an element type is put in the "minus" list
528            and the element type is not allowed explicitly in the particular
529            element content model.
530            (html:a checker): New checker.
531            (html:details, html:datagrid): New checkers.
532            (html:legend): New checker.
533    
534    2007-05-13  Wakaba  <wakaba@suika.fam.cx>
535    
536            * ContentChecker.pm (html:li checker): Implemented.
537    
538    2007-05-13  Wakaba  <wakaba@suika.fam.cx>
539    
540            * ContentChecker.pm ($HTMLInlineOrStriclyInlineChecker): New
541            checker.
542            (html:dd checker): New checker.
543            (html:q, html:em, html:strong, html:small,
544            html:m, html:dfn, html:code, html:samp, html:span): New checkers.
545    
546    2007-05-13  Wakaba  <wakaba@suika.fam.cx>
547    
548            * ContentChecker.pm ($AnyChecker): Renamed
549            from |$ElementDefault->{checker}|.
550            ($ElementDefault->{checker}): Throw an error that
551            the element type is not supported by the checker.
552            ($HTMLMetadataElement): |html:base| was missing.
553            ($HTMLEmptyChecker): Don't throw an error
554            for inter-element whitespace nodes.
555            (html:html checker): Errors were not
556            thrown even if |html:head| and/or |html:body|
557            children were missing.
558            (html:head checker): An error was not
559            thrown if <meta charset> appered after other
560            elements.
561    
562    2007-05-05  Wakaba  <wakaba@suika.fam.cx>
563    
564            * ContentChecker.pm: |footer|, |video|, |audio|, |script|,
565            and |noscript| elements are implemented.
566            (new): New method.
567    
568    2007-05-04  Wakaba  <wakaba@suika.fam.cx>
569    
570            * ContentChecker.pm: New module.
571    
572    2007-05-04  Wakaba  <wakaba@suika.fam.cx>
573    
574            * NanoDOM.pm (manakai_parent_element,
575            document_element, manakai_local_name,
576            manakai_element_type_match): New method.
577    
578    2007-05-03  Wakaba  <wakaba@suika.fam.cx>
579    
580            * HTML.pm.src: Replace decimal and hexadecimal numeric
581            entities in C1 range using Windows-1252 mapping.  Bare LF
582            did not count as new line for error reporting.
583    
584    2007-05-02  Wakaba  <wakaba@suika.fam.cx>
585    
586            * NanoDOM.pm (DOMImplementation): New class.
587            (append_child): Weaken the |parent_node| reference.
588            (create_element_ns, Element new): Set the |owner_document|
589            reference.
590            (implementation): New attribute.
591            (owner_document, local_name, namespace_uri): New attributes.
592    
593            * HTML.pm.src (parse_string): Line and column numbers
594            are now provided to error handler.
595            (!!!parse-error): Short descriptions are added.
596            (_construct_tree): Split into three methods; support
597            for innerHTML mode.
598            (set_inner_html): New method.
599    
600  2007-05-01  Wakaba  <wakaba@suika.fam.cx>  2007-05-01  Wakaba  <wakaba@suika.fam.cx>
601    
602          * NanoDOM.html: Documentation is added.          * NanoDOM.html: Documentation is added.

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.91

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24