1 ============= 0.6.2 release =======================
3 2009-02-04 Thomas Wood <thos@gnome.org>
8 Update for 0.6.2 release
10 2008-09-26 Robert Staudinger <robsta@gnome.org>
12 reviewed by: Dom Lachowicz <domlachowicz@gmail.com>
14 * src/cr-doc-handler.c (cr_doc_handler_new): Bug 553937 - CRDocHandler instances created with reference count of 0
16 2008-03-30 Peter Moulder <pjmoulder@svn.gnome.org>
18 * ChangeLog: Change to UTF-8. I believe this now the preferred
19 charset for Gnome ChangeLogs. (Let me know if gratuitous use of
20 unicode, such as in the following paragraph, causes a problem for
21 you. Would a vim/emacsen mode line at the bottom of the file help?)
23 * src/*: Add ‘const’ to various function prototypes, as discussed at
24 http://www.mail-archive.com/libcroco-list@gnome.org/msg00049.html .
25 This change is a noop in the sense that it has no effect on
26 libcroco's object files, but does affect source-level compatibility,
27 both forwards and backwards — though in practice I'd guess that no
28 existing code will break from this.
30 * src/cr-declaration.c: (cr_declaration_new): Doc.
31 * (cr_declaration_destroy): Simplify implementation (and assert that
32 next/prev elements point to each other before following the links).
34 2007-01-10 Bruno Haible <bruno@clisp.org>
36 * cr-style.h (enum CRPositionType): Remove trailing comma. Needed for
37 compilation on AIX with xlc.
38 * cr-fonts.c (cr_font_weight_get_bolder): Handle FONT_WEIGHT_INHERIT.
39 * cr-sel-eng.c: Bug 395099 - overly agressive rule matching
41 2007-01-09 Benjamin Dauvergne <feanor@tol-eressea.org>
43 * src/cr-tknzr.c: Bug 314831 - Escapes not recognized
45 2007-01-09 Dom Lachowicz <domlachowicz@gmail.com>
47 * src/cr-sel-eng.c: a bug in the class selector code, where it would not require whitespace before the class in a class attribute with multiple classes.
49 2007-01-09 Dom Lachowicz <domlachowicz@gmail.com>
51 From Bruno Haible <bruno@clisp.org>
53 * src/cr-fonts.h: gives syntax errors when included twice
54 * src/cr-fonts.c: the return value of cr_font_family_prepend()
55 should be "the font family list", not CR_OK which is the same as NULL.
56 * src/cr-fonts.c: the logic of cr_font_weight_get_bolder
57 does not take into account the FONT_WEIGHT_INHERIT value, and the
58 shift by 1 can yield out-of-range values. Partial fix
60 2007-01-09 Benjamin Dauvergne <feanor@tol-eressea.org>
62 * src/cr-tknzr.c: Bug 372011 - comments not parsed correctly
63 * src/cr-tknzr.c: Bug 394680 - problem parsing function name starting with 'u' or 'r'
64 * src/cr-parser.c: Bug 139878 - keep end of ruleset parsing location, and give it to the end_selector sac-handler.
65 * src/cr-tknzr.c: Bug 394294 - Escape are wrongly computed
67 2007-01-09 Dom Lachowicz <domlachowicz@gmail.com>
69 * src/cr-tknzr.c: Bug 336621 - cr_tknzr_get_next_token wasn't
70 handling "<!--" correctly
72 2006-11-30 Dom Lachowicz <domlachowicz@gmail.com>
74 * src/cr-num.c: Bug 381040 - floating numbers always output to exactly 3 digits after decimal points.
75 Also fixed a related bug where libcroco wouldn't emit compliant CSS strings if run in a non-C locale.
77 2006-11-29 Dom Lachowicz <domlachowicz@gmail.com>
79 * src/cr-token.c: Bug 380438 - Leak and trace message in cr_token_clear.
80 Fix suggested by Mark Rogers <mark.rogers at electrum.co.uk>
82 2006-11-14 Dom Lachowicz <domlachowicz@gmail.com>
84 * src/cr-rgb.c: Bug 375194 - fix to builtin color processing
86 2006-05-02 Peter Moulder <pmoulder at mail.csse.monash.edu.au>
88 * src/*.[ch]: Bug 340298 - Fixes to documentation markup.
90 2006-05-02 Dom Lachowicz <cinamod@hotmail.com>
92 * src/Makefile.am: Fix linking by adding proper dependencies (bug 148790)
94 * configure.in: Detect Cygwin in addition to Mingw (bug 333834)
95 * csslint/csslint.c: Fix 3 "dereferencing type-punned pointer will break strict-aliasing rules" warnings
97 2006-04-29 Dom Lachowicz <cinamod@hotmail.com>
99 * src/cr-tknzr.c: Revert my previous change and instead use Inkscape's
100 patch in bug #306823, as it improves precision
101 * src/cr-utils.[ch]: Ditto
103 ============= 0.6.1 release =======================
105 dim mar 5 23:32:14 CET 2006 Dodji Seketeli
107 * configure.in,docs/Makefile.am:
108 unwire gtk-doc temporarily. Couldn't make it
110 * tests/Makefile.am: add global-vars.sh.in to EXTRA_DIST files.
111 * confifure.in: increase library REVISION number, for 0.6.1 release.
113 2006-03-01 Dom Lachowicz <cinamod@hotmail.com>
115 * src/cr-tknzr.c: Parse fractional parts of numbers properly (bug 333057)
116 * src/cr-utils.[ch]: Ditto
117 * configure.in: bump version to so that librsvg can depend on its fixes
119 2005-11-16 Tor Lillqvist <tml@novell.com>
121 * libcroco-zip.in: New file. libcroco-zip is used to build a
122 libcroco distribution for Win32.
124 * Makefile.am: Distribute libcroco-zip.in
126 * configure.in: AC_SUBST also LIBCROCO_CURRENT and LIBCROCO_AGE as
127 libcroco-zip needs them to construct the DLL name. Check for
128 Win32, set OS_WIN32 Automake conditional. Expand libcroco-zip.
130 * src/Makefile.am: Use -no-undefined on Win32. Link libcroco with
131 GLIB2_LIBS and LIBXML2_LIBS.
133 Thu May 5 19:15:27 CEST 2005 Dodji Seketeli <dodji@gnome.org>
135 * src/cr-string.h, cr-parser.c: applied a patch from Peter Moulder
136 to fix a typo in cr-parser.c and add G_BEGIN_DECLS/G_END_DECLS to
139 Thu May 5 18:47:10 CEST 2005 Dodji Seketeli <dodji@gnome.org>
141 * docs/reference/tmpl/*.sgml: added these to the archive.
142 * docs/reference/libcroco-docs.sgml: added this to the archive.
144 Thu may 5 18:35:04 CEST 2005 Dodji Seketeli <dodji@gnome.org>
146 * src/*.[ch]: made wak loads of comments change to comply with
147 gtk-doc. Big thanks to Sven Herzberg for the initial work on this
150 2005-04-01 Sven Herzberg <herzi@gnome-de.org>
152 * autogen.sh: require automake 1.7
153 * configure.in: added a check for gtk-doc, build
154 docs/reference/Makefile
155 * docs/Makefile.am: added the reference subdir
156 * src/cr-additional-sel.c: migrated the comments to gtk-doc style (sed
158 * src/cr-additional-sel.h: moved the class description into the .c
161 Sun feb 13 14:10:35 CET 2005 Dodji Seketeli <dodji@gnome.org>
163 * src/cr-simple-sel.h, src/cr-statement.h: added better documentation.
166 * tests/Makefile.am: add the $top_builddir/src to the include search patch.
167 This is is necessary to support building in a directory different from
169 * tests/test-*.sh: adapt these files so that 'make test' works even
170 when building in a directory different from the source dir
171 * tests/testctl: adapt this script to progapate the changes necessary
172 to make the 'test' target work in a directory different from the
174 This entry has been added thanks to the initial
175 work of Peter Moulder. I have
176 modified it a bit so that building and testing
177 from a directory different from the source dir actually works.
179 * Makefile.am: make sure the 'all' target is a prerequisite of the
180 'test' target. This is a patch from [Peter Moulder]
182 Thu feb 10 22:34:57 CET 2005 Dodji Seketeli <dodji@gnome.org>
184 * Makefile.am,test/testctl: applied a patchlet from Peter Moulder
185 to clean the test outputs when issuing 'make clean'.
186 * autogen.sh: force the thingy to use automake 1.7.2. better
189 Mon Sep 20 18:10:50 CEST 2004 Dodji Seketeli <dodji@gnome.org>
191 * src/cr-om-parser.c:
192 (cr_om_parser_parse_paths_into_cascade) :
193 Fixed a nasty memory management bug reported by ArjanV and Daniel
196 2004-06-09 Dodji Seketeli <dodji@gnome.org>
198 ===================== 0.6.0 release ==================================
200 * NEWS: Updated this for 0.6.0
202 * configure.in: fixed the pkg-config and croco-0.6-config output.
203 * docs/exmaples/*.c: updated the comments.
205 2004-06-08 Dodji Seketeli <dodji@gnome.org>
207 * tests/global-vars.sh.in,csslint/Makefile.am,Makefile.am,src/Makefile.am:
208 Make libcroco be parallel installable.
209 That is, make libcroco.so become libcroco-$(major)-$(minor),
210 same thing for the usr/include/libcroco dir, the pkgconfig and
211 croco-config file. Removed tests/global-vars.sh and generate it
212 it from global-vars.sh.in
213 Bump version number to 0.5.2
215 2004-05-31 Dodji Seketeli <dodji@gnome.org>
217 * docs/examples/selection-example-1.c:
218 (print_properties_real):
219 fix some ansi C compilation errors.
221 2004-05-29 Dodji Seketeli <dodji@gnome.org>
223 * tests/test-functional-notation.sh,tests/test-inputs/functional-notation.css,
224 tests/test-output-refs/test-functional-notation.out:
225 Added regression tests for #143308
228 (cr_parser_parse_term): better handling unary operator.
229 * src/cr-stylesheet.c :
230 (cr_stylesheet_dump): fprintf (fd, str) ; doesn't behave
231 correctly when str contains a '%' char. Do fprintf (fd, "%", str)
234 (cr_tknzr_parse_ident):
235 Properly roll back the input stream when an error occurs.
236 This ChangeLog entry fixes
237 http://bugzilla.gnome.org/show_bug.cgi?id=143308.
239 2004-05-01 Dodji Seketeli <dodji@gnome.org>
242 (cr_num_to_string): don't output, say, 24generic when the number
243 is a generic number. Otherwise, this breaks regression tests.
245 2004-04-30 Dodji Seketeli <dodji@gnome.org>
248 (cr_num_to_string): added the serialisation numbers of type
249 NUM_INHERIT, NUM_AUTO, NUM_GENERIC
251 added a "transparent" flag to the CRRgb.
252 added "transparent" to gv_standard_colors.
253 (cr_rgb_is_set_to_transparen):
254 (cr_rgb_set_to_transparent):
255 added these fonction to set/get the rgb transparent property.
256 (cr_rgb_set_from_rgb): deep copy here.
257 (cr_rgb_copy): added this to perform a deep copy.
259 (set_prop_margin_x_from_value): fix a stupid break missing bug.
260 (cr_style_set_props_to_initial_values):
261 set the background-color property initial value to "transparent".
262 (cr_style_num_prop_val_to_string): fix some formating bugs here.
264 2004-04-28 Dodji Seketeli <dodji@gnome.org>
267 (set_prop_font_size_from_value):
268 fix a buglet in here.
269 (cr_style_resolve_inherited_properties):
270 When we resolve inheritance, set the *computed value*, not
272 Resolve inheritance for the "font-size" property.
274 2004-04-27 Dodji Seketeli <dodji@gnome.org>
276 * Makefile.am: fixed a error when launching make test.
278 (cr_font_size_get_smaller_predefined_font_size):
279 (cr_font_size_get_larger_predefined_font_size):
280 (cr_font_size_is_predefined_absolute_font_size):
281 added these new public method.
282 tests/test-inputs/parsing-location.css: updated this test output.
284 2004-04-19 Dodji Seketeli <dodji@gnome.org>
287 (import_style): make this work with null media list.
289 (cr_tknzr_parse_uri): correctly set the parsing location
290 of uris (e.g: url("an-url");). The parsing location
291 points the 'u' of the 'url' keyword.
292 This is an attempt to fix
293 http://bugzilla.gnome.org/show_bug.cgi?id=139881 .
295 2004-04-18 Dodji Seketeli <dodji@gnome.org>
297 * configure.in: bumped version number 0.6.0 and lib version
300 2004-04-17 Dodji Seketeli <dodji@gnome.org>
303 (cr_parser_parse_stylesheet):
304 Correctly detect @import run parsing errors.
305 This fixes http://bugzilla.gnome.org/show_bug.cgi?id=140334 .
308 (cr_parser_parse_simple_selector):
309 correctly detect when class additional selector parsing
311 (cr_parser_parse_simple_sels):
312 Make sure a pointer is not null before derefencing it.
313 append a simple sel to the list of simple sels only if
314 the simple sel is not NULL.
315 This entry fixes http://bugzilla.gnome.org/show_bug.cgi?id=140317
318 * src/cr-statement.[ch]:
319 (cr_statement_list_to_string):
320 added this to "to_string" a list of statements.
321 (cr_statement_media_rule_to_string): dump the
322 *list of statements* contained in the media rule, and
323 not only the first one.
324 This entry fixes http://bugzilla.gnome.org/show_bug.cgi?id=139891 .
325 * tests/*: added the test-several-media.sh regression test.
327 * src/cr-om-parser.c:
328 (end_media): set the "current statement" and
329 "current media statement" context variable to NULL
330 at the end a media statement.
331 This fixes http://bugzilla.gnome.org/show_bug.cgi?id=139889 .
333 2004-04-16 Dodji Seketeli <dodji@gnome.org>
336 remove the '...' construction. This fixes
337 http://bugzilla.gnome.org/show_bug.cgi?id=138267.
339 2004-04-16 Dodji Seketeli <dodji@gnome.org>
342 (cr_tknzr_parse_num): make sure to update the
343 parsing location of the parsed CRNum.
344 (cr_tknzr_get_next_token):
345 record parsing location of number tokens.
346 These fix http://bugzilla.gnome.org/show_bug.cgi?id=139878.
348 2004-04-15 Dodji Seketeli <dodji@gnome.org>
351 (cr_font_size_copy): reflect the CRFont
353 (cr_font_size_set_predefined_absolute_font_size):
354 (cr_font_size_set_relative_font_size):
355 (cr_font_size_set_absolute_font_size):
356 (cr_font_size_set_to_inherit):
358 methods to set the values of a CRFontSize.
359 (cr_font_size_is_set_to_inherit):added this method
360 to set the CRFontSize to the inherit value.
361 (cr_font_weight_get_bolder): added this method to get
362 a bolder font weight than a given one.
364 make CRFont instanciate on the stack.
365 * src/cr-num.h: cleanup.
367 (set_prop_font_size_from_value): reflect the changes
368 Done in the layout of the CRStyle::font_size field.
369 (cr_style_set_props_to_default_values):
370 set font_size specified value to inherit.
371 (cr_style_set_props_to_initial_values):
372 set the 'width' prop to 800px.
373 Set the 'font-size' prop to "medium".
374 (this is to be applied to
376 (cr_style_resolve_inherited_properties):
377 Specified value inherit the *computed* value of
378 their parent style, not the specified one !
379 Started to work on the inheritance resolution
380 of the font_size prop.
381 (cr_style_to_string): updated this to reflect the
382 addition of specified, computed and actual value
385 created struct _CRFontSizeVal. It has a specified,
386 computed and actual value. CRStyle::font_size
387 is now of type struct _CRFontSizeVal.
389 2004-04-11 Dodji Seketeli <dodji@gnome.org>
391 * tests/test-output-refs/test-sel-child-class.out:
392 added the reference output of the new test-sel-child-class
396 * tests/test-inputs/sel-child-class.css
397 * tests/test-inputs/sel-child-class.xml
398 * tests/test-sel-child-class.sh: added these new files.
400 (cr_rgb_set): set the inherit field to FALSE when we set
402 (cr_rgb_set_to_inherit): added this to flag the instance
403 of CRRgb as being set to 'inherit'.
404 (cr_rgb_is_set_to_inherit): added this to test if an instance
405 of CRRgb is set to 'inherit' or not.
406 * src/cr-sel-eng.c: fixed a subtle bug here in the
407 way we evaluate the descendant selector. This bug
408 is catched by regression test test-sel-child-class.sh.
410 (cr_style_set_props_to_default_values): set the rgb properties
412 (cr_style_resolve_inherited_properties): rgb props that are set
413 to 'inherit' must be resolved.
415 2004-04-10 Dodji Seketeli <dodji@gnome.org>
418 (cr_parser_parse_stylesheet):
419 Fixed http://bugzilla.gnome.org/show_bug.cgi?id=139615 .
420 * src/cr-sel-eng.[ch]: made some cleanups here.
422 (set_prop_border_width_from_value):
423 added this to support the "border-width" property.
424 (set_prop_border_style_from_value):
425 added this to support the "border-style" property.
426 (cr_style_new): modify the signature of this constructor
427 to have more control on the properties inheritance process.
428 (cr_style_set_props_to_default_values): renamed
429 cr_style_set_props_to_defaults for better legibility.
430 (cr_style_set_style_from_decl): added the support for
431 "border-style" and "border-width" properties.
433 2004-04-09 Dodji Seketeli <dodji@gnome.org>
435 * src/cr-om-parser.c:
436 (import_style): fixed a minor parsing bug.
438 2004-04-08 Dodji Seketeli <dodji@gnome.org>
440 * this entry is about a patch sent by Benjamin Dauvergne for
441 the support of css properties inheritance. (mainly).
442 * src/cr-additional-sel.c: replaced g_string_append_prinf(),
443 by g_string_append_c() or g_string_append(), when it's relevant.
444 * src/cr-declaration.c: port this over the new CRString.
445 * src/cr-fonts.c: smallish cosmetic changes.
446 * src/cr-fonts.h: added the FONT_FAMILY_INHERIT value to
447 enum CRFontFamilyType and FONT_SIZE_INHERIT to
448 enum CRPredefinedAbsoluteFontSize.
449 * src/cr-num.h: added NUM_INHERIT to enum CRNumType.
450 * src/cr-pseudo.c: same g_string_append_printf() removal scheme
452 * src/cr-rgb.[ch]: I removed the :1 option done on the
453 CRRgb::is_percentage boolean. We will start looking at this
454 kind of optimization when the whole stuff works and after proper
456 (cr_rgb_set_from_term): I made a small fix here:
457 write !strcmp() and not strcmp() otherwise color setting
459 * src/cr-selector.c, src/cr-simple-sel.c, src/cr-statement.c:
460 g_string_append_printf() removal.
461 * src/cr-style.c: a lot of cleanup in the inheritance resolution
463 (cr_style_set_props_to_default): added this new method to set
464 the style of the root element node.
465 (cr_style_resolve_inheritance): (this function was initially named
466 cr_style_propagate_from_parent() by Benjamin, but I renamed
467 it to enhance code legibility at least for people who know the
469 Renamed the CRStyle::relative boolean member by a
470 CRStyle::inherited_props_resolved boolean to enhance code legibility.
472 2004-04-03 Dodji Seketeli <dodji@gnome.org>
474 * src/libcroco-config.h: removed this from archive.
477 (class_add_sel_matches_node): make this correctly handle
478 class list especially when it's the last element that is
480 (attr_add_sel_matches_nod):
481 * in [attr=val] attr selector,
482 make sure [attr=val] doesn't get selected when only
483 [attr=value] should, for instance.
484 * fix [att~=foo bar] making sure that bar
485 can also be selected.
486 * fix [att|=en-US] making sure that the last element
487 of the dash separated list of elements can also be
489 (additional_selector_matches_node):
490 add support for linked additional selectors
491 e.g: [attr=sel][attr=foo].
492 (sel_matches_node_real):
493 Even a selector of type UNVIVERSAL_SELECTOR can have
494 additional selectors. This was a long standing bug.
496 2004-04-01 Dodji Seketeli <dodji@gnome.org>
498 * csslint/csslint.c: much more work on the --dump-location option.
499 This can be tested by users now.
501 (cr_parser_parse_atrule_core): fixed a parsing bug here.
502 (cr_parser_parse_any_core): COMMENT_TK is part of an ANY production.
503 (cr_parser_parse_stylesheet): @charset not located at (1,1) should not
504 make the parser ignore the next statement.
505 (cr_parser_parse_page): better parsing of @page statement.
507 (cr_tknzr_parse_uri): fix parsing location gathering for uris.
508 * src/cr-token.c: added a TODO notice here.
511 2004-03-29 Dodji Seketeli <dodji@gnome.org>
513 * csslint/csslint.c: started to add the --dump-location option.
514 It dumps the parsing location information for selectors and
515 property declarations. I still need to do the same for
516 the other css constructions. Also cleaned up csslint a bit.
517 * src/cr-additional-sel.[ch]:
518 (cr_additional_sel_one_to_string): added this new method to to_string
519 only one additional selector.
520 * src/cr-input.c: initialise the line/col to 1 at the origin.
522 (cr_parser_parse_simple_selector): collect parsing location
523 for the additional attribute selector.
524 * src/cr-parsing-location.[ch]:
525 (cr_parsing_location_to_string): added this method to
526 serialise the CRParsingLocation class.
527 (cr_parsing_location_dump) : added this new method.
528 * src/cr-simple-sel.c:
529 (cr_simple_sel_one_to_string): added this method to serialise
530 only one simple selector.
531 * src/cr-string.[ch]:
532 (cr_string_peek_char_buf): added this method to peek the
533 internal char string owned by CRString.
535 (cr_term_one_to_string): added this method to serialise
538 (cr_tknzr_parse_name): fixed a bug here in the parsing
540 (cr_tknzr_parse_hash): fixed another bug in the parsing
543 2004-03-27 Dodji Seketeli <dodji@gnome.org>
545 * src/cr-attr-sel.h,src/cr-doc-handler.h,
546 src/cr-om-parser.c,src/cr-parser.[ch],
547 src/cr-statement.[ch),src/cr-term.h,
548 tests/test2-main.c,tests/test3-main.c:
549 First attempt to have provide real
550 parsing location information at the SAC level.
551 I still need to write a test app for this and debug
554 2004-03-24 Dodji Seketeli <dodji@gnome.org>
556 * src/cr-input.[ch],src/cr-parser.[ch],
557 src/cr-tknzr.[ch],src/cr-token.[ch],src/cr-parsing-location.c:
558 Enable parsing location retrieval from CRInput, CRTknzr and CRparser.
559 Record parsing location in every single token returned by
560 CRTknzr::get_next_token().
562 2004-03-22 Dodji Seketeli <dodji@gnome.org>
564 * added a field of type CRParsingLocation field to almost
565 any language construction parsed into an abstract
566 datastructure. This is a huge changeset.
568 2004-03-16 Dodji Seketeli <dodji@gnome.org>
570 * ==================== 0.5 release ====================
572 * croco-config.in: fixed this to include libxml2 and glib
573 into cflags and libs.
574 * docs/examples/cssom-example-1.c,docs/examples/sac-example-1.c,
575 docs/examples/sac-example-2.c, docs/examples/selection-example-1.c,src/cr-sel-eng.c:
576 fix the code examples to reflect changes in 0.5, kill some
577 memleaks where needed.
578 * src/cr-sel-eng.c: killed a memleak in the selection engine.
580 2004-03-15 Dodji Seketeli <dodji@gnome.org>
582 * tests/Makefile.am: added the tests/valgrind-version.sh file in
585 * tests/testctl: enforced the use of valgrind 2.1.1 or higher.
586 * tests/valgrind-version.sh: added this file to test the version of
587 the currently installed version of valgrind.
589 2004-03-14 Dodji Seketeli <dodji@gnome.org>
592 (cr_style_set_props_to_defaults): added more default props
594 * src/cr-fonts.h: modified some declarations here to
595 ease the support of the "font-weight: bolder" and
596 "font-weight: lighter" support in sewfox.
598 * src/cr-parser.[ch],src/cr-rgb.[ch],src/cr-style.c:
599 applied a patch from Benjamin Dauvergne to add
600 CRRgb::parse_from_buf() and CRRgb::set_from_term()
601 methods. Modified the patch to comply with libcroco
602 coding style and to kill a compiler warning.
604 2004-03-13 Dodji Seketeli <dodji@gnome.org>
606 * Makefile.am,tests/Makefile.am,tests/test-output-refs/Makefile.am:
607 Added some distribution plumbing.
609 * configure.in: bumped version number to 0.5 and bumped version-info.
611 * src/cr-sel-eng.c,src/cr-stylesheet.c,
612 src/cr-tknzr.c,tests/test5-main.c,tests/testctl:
613 massive mem leaks/corruption killing.
614 * vg.supp: added this to suppress glib normal leaks
615 from the leak report.
617 2004-03-12 Dodji Seketeli <dodji@gnome.org>
619 * src/cr-declaration.c,src/cr-doc-handler.c,
620 src/cr-input.[ch],src/cr-parser.c,src/cr-rgb.c,
621 src/cr-selector.c,src/cr-term.c,src/cr-token.c,
622 tests/test1-main.c,tests/test4-main.c: started to kill mem leaks
625 * tests/testctl: added the --show-reachable=yes flag to valgrind.
627 * tests/testctl: added better valgrind error reporting.
629 2004-03-11 Dodji Seketeli <dodji@gnome.org>
631 * Makefile.am: now, tests are to be run by doing "make test".
632 Also, cleans up the previous test output before actually running.
633 * global-vars.sh: added this sh script that sets variable used
634 in all the test sh scripts based on csslint.
635 * test-prop-ident,test-unknown-at-rule,test-unknown-at-rule2:
636 renamed these into *.sh (e.g) test-prop-ident.sh to reflect
637 that it's a shell script, not a test written in C.
638 Also, make these use global-vars.sh
639 * tests/testctl: added a descent valgrind support when runned
640 with like "./testctl run --valgrind" or RUN_VALGRIND=yes ./testctl run.
641 Puts the valgrind logs in valgrind-logs/ and report their presence
642 to the user. This'll help catch mem leaks/corruption at the
643 regression test level.
644 Also make sure to launch ./libs/testblah and not ./testblah which
645 is actually a shell script.
647 * tests/testctl: don't activate valgrind tests by default.
649 2004-03-10 Dodji Seketeli <dodji@gnome.org>
651 * src/cr-statement.[ch]:
652 (cr_statement_to_string): do not add leading end of lines.
653 * cr-stylesheet.c: added cr_stylesheet_to_string(), handle
654 end of lines between statements here.
655 * tests/test-output-refs/test5.1.css.out: updated non
658 * tests/testctl: added valgrind support in the non regression
659 tests. I think I still need to improve it to make it detect
660 the errors when there are some, and report it in a consistent
663 * tests/testctl: added support for tests that gets
664 called without any argument.
665 * tests/* added csslint based non regression tests for proprietary INDENT and
669 (cr_utils_ucs1_to_utf8): handle zero length input gently.
671 * src/cr-statement.c: finish the coding of the
672 cr_statement_to_string() function and make cr_statement_dump()
674 * src/cr-term.c: merge from libcroco--mainline--0.1
676 2004-03-09 Dodji Seketeli <dodji@gnome.org>
678 * src/cr-term.[ch]: applied a patch from Rob BUIS that adds
680 (cr_term_get_from_list) and (cr_term_get_from_list).
682 * src/cr-statement.c:
683 (cr_statement_font_face_rule_to_string): added this method.
684 (cr_statement_dump_font_face_rule): make this use the new
685 cr_statement_font_face_rule_to_string() function.
686 * tests/testctl: update this to exclude .arch-ids from the diffs.
688 * src/cr-parser.c,src/cr-tknzr.c: droped the way I was handling
689 the vendor proprietary properties and make sure to parse and IDENT by
690 following css3 rules.
693 (cr_parser_parse_any_core): semicolon (';') is not part of the 'any'
695 (cr_parser_parse_ruleset): consider the case where we have an empty ruleset (e.g 'x{}')
696 * {arch}/=tagging-method: changed this to make objects generation by the
697 compilation accepted by tla.
699 2004-03-08 Dodji Seketeli <dodji@gnome.org>
701 * Merged in the following patches:
702 => dodji@seketeli.org--2004-xml-style-d/libcroco--dodji-d--0.1--base-0
703 tag of dodji@gnome.org--xml-style-2004/libcroco--mainline--0.1--base-0
704 => dodji@seketeli.org--2004-xml-style-d/libcroco--dodji-d--0.1--patch-1
705 removed useless files.
707 * files.txt,dirs.txt: removed these files.
709 2004-03-07 Dodji Seketeli <dodji@gnome.org>
711 * src/cr-statement.c:
712 (parse_page_start_page_cb) fixed a memory management bug
713 reported by Rob BUIS.
714 (cr_statement_at_page_rule_to_string): added this new
716 (cr_statement_dump_page): make this use
717 cr_statement_at_page_rule_to_string().
718 * tests/test4-main.c:
719 (test_cr_statement_at_page_rule_parse_from_buf): added this
720 to start debugging a problem related to @page rule parsing.
722 2004-03-07 Dodji Seketeli <dodji@gnome.org>
724 * src/*.c: re-indented the source files to make'em comply
725 with gnome indentation rules.
726 * libcroco-indent: added this indentation script.
728 2004-03-07 Dodji Seketeli <dodji@gnome.org>
730 * src/cr-style.c: applied a patch from
731 Benjamin Dauvergne to support the "color" property.
733 2004-03-07 Dodji Seketeli <dodji@gnome.org>
736 (cr_rgb_compute_from_percentage): added this new convenience
738 2004-03-06 Dodji <dodji@gnome.org>
741 (cr_tknzr_parse_num): when you reach an EOF, don't assume it's
742 an error. Return the already parsed part of the number.
743 Next attempt of parsing will result in an CR_END_OF_INPUT_ERROR.
744 * tests/test4-main.c: udpated this test the fix made above.
745 * Doxyfile: reflect the removal of src/parser src/seleng and
747 * src/cr-declaration.c:
748 (cr_declaration_list_to_string2): added this new method.
749 * src/cr-sel-eng.c: fix a bug in the !important handling
750 in the cascading algorithm.
752 2004-03-06 Dodji Seketeli <dodji@gnome.org>
754 * csslint/csslint.c: applied a patch from Rob BUIS
755 to fix some bugs/memleaks here.
756 Did some cleanups too.
758 (cr_sel_eng_get_matched_rulesets_real):
759 handle the case where the sheet is empty (has no rules). That
760 can happen ! (it actually happened to me during some tests).
761 (put_css_properties_in_props_list):
762 handle the !important keyword in the cascading algorithm.
763 Rob BUIS (again) started this.
765 2004-03-05 Dodji Seketeli <dodji@gnome.org>
768 (parse_cmd_line) fixed silly bug in there.
769 * src/cr-declaration.[ch],src/cr-om-parser.c,
770 src/cr-parser.[ch],src/cr-statement.c,tests/test2-main.c,
772 added the support of the "!important"
773 keyword at the parsing level.
774 * tests/test-inputs/test4.1.css: update nr tests to reflect
775 the new !important thing.
777 (put_css_properties_in_props_list): fix a small subtle
778 bug in here. Selection engine is becoming more and more
781 2004-03-04 Dodji Seketeli <dodji@gnome.org>
783 * src/cr-enc-handler.c:
784 (cr_enc_handler_resolve_enc_alias): applied a patch
785 from Kjartan Maraas to replace the g_strup() g_ascii_strup().
787 * csslint/Makefile.am,src/cr-simple-sel.h,src/cr-term.h
788 src/cr-token.h,tests/Makefile.am:
790 http://bugzilla.gnome.org/showattachment.cgi?attach_id=23422.
791 Modified the patch a little bit so that I use prog_LDFLAGS instead
792 of AM_LDFLAGS. AM_LDFLAGS just seems not to be supported by my
794 This fixes http://bugzilla.gnome.org/show_bug.cgi?id=131643 .
795 * tests/test-output-refs/test4.2.css.out: updated this non
796 regresstion test reference output due to a small modification
797 in the @page rule dump format.
799 2004-03-03 Dodji Seketeli <dodji@gnome.org>
802 (cssom_parse) put a '\n' after dumping the sheet on screen.
804 (cr_parser_parse_page): fixed a small bug in here.
805 This should fix http://bugzilla.gnome.org/show_bug.cgi?id=136109.
806 * src/cr-statement.c:
807 (cr_statement_dump_page): added a white space before dumping
808 the pseudo part of the @page rule.
810 2004-03-03 Dodji Seketeli <dodji@gnome.org>
812 * csslint/csslint.c: added the support of selectors evaluation
813 in csslint. Now, one can do csslint --evaluate --xml <an xml file>
814 --author-sheet <a-css-sheet> --xpath <an xpath expression>.
815 This will show the css properties associated to the xml node(s)
816 refered to by the xpath expression.
817 * src/cr-declaration.[ch]:
818 (cr_declaration_dump_one) added this new api entry to dump
819 the first declaration of the declaration list.
820 * src/cr-prop-list.c:
821 (cr_prop_list_unlink): fixed a stupid bug in there.
822 * src/cr-stylesheet.[ch]:
823 (cr_stylesheets_nr_rules): there is a typo in this
824 function name. Stylesheet's' should not take a leading 's'.
825 Changed that into cr_stylesheet_nr_rules().
827 2004-03-01 Dodji Seketeli <dodji@gnome.org>
829 * src/cr-prop-list.[ch]: added the (cr_prop_list_unlink) function.
831 (put_css_properties_in_props_list): put the properties at the
832 end of the properties list built by this function. This is
833 necessary to keep the properties declaration order. This order
834 is significant for example when you consider short hand
835 properties expansion.
837 2004-02-29 Dodji Seketeli <dodji@gnome.org>
839 * src/cr-input.c,src/cr-num.c,src/cr-prop-list.[ch],
840 src/cr-rgb.c: applied a patch from Rob BUIS that fixes
841 numeros typos. Also adds G_BEGIN_DECL/G_END_DECL to
844 2004-02-29 Dodji Seketeli <dodji@gnome.org>
846 * src/cr-rgb.c,src/cr-tknzr.c: remove the usage of '...' in switch/case statements
847 as this is not portable across c89 compilers.
849 2004-02-29 Dodji Seketeli <dodji@gnome.org>
852 (cr_rgb_set): fixed a stupid bug here.
854 2004-02-29 Dodji Seketeli <dodji@gnome.org>
856 * src/cr-sel-eng.c: applied a patch of Rob BUIS
857 to add the support of the :lang() pseudo class using
858 the pluggable pseudo class system.
859 * tests/test5-main.c,tests/test-inputs/test5.1.css,tests/test-output-refs/test5.1.css.out:
860 Updated the non regression tests suite to test the :lang() pseudo
863 2004-02-29 Dodji Seketeli <dodji@gnome.org>
865 * src/cr-statement.[ch],src/cr-stylesheet.[ch]:
866 applied a patch from Rob BUIS that provides new apis
867 to manipulate CSS statements.
869 2004-02-29 Dodji Seketeli <dodji@gnome.org>
872 (put_css_properties_in_props_list): fixed a small bug in here:
873 Always Initialise output function argument !!!.
875 2004-02-29 Dodji Seketeli <dodji@gnome.org>
877 * src/cr-prop-list.[ch], src/Makefile.am,src/libcroco.h:
878 Created this new CRPropList class.
880 (put_css_properties_in_props_list): added this new helper
882 (cr_sel_eng_get_matched_properties_from_cascade):
883 Created a new version of this function to make it use
884 the new CRPropList instead of a hashtable. Putting
885 properties/declaration in a hashtable make us loose
886 the "order" in which declarations are present in the
887 ruleset. That's why I use a CRPropList instead.
889 (cr_style_set_style_from_decl): fix a silly error that
890 make border-right and border-top switch.
892 2004-02-26 Dodji Seketeli <dodji@gnome.org>
895 (cr_sel_eng_get_matched_properties_from_cascade):
896 Second (or maybe third) attempt to fix the cascading
897 cascading thing. I got *really* confused here.
898 I hope it works this time.
899 Thanks to to Rob BUIS who reported the bug.
902 2004-02-24 Dodji Seketeli <dodji@gnome.org>
905 (cr_parser_parse_import): fixed a parsing bug reported
906 by David A Knight. This should now properly parse
907 sequences of @import rules that without media parts.
908 * src/cr-statement.c: (cr_statement_dump_import_rule):
909 fixed a serialisation bug here.
911 2004-02-24 Dodji Seketeli <dodji@gnome.org>
913 * src/cr-parser.c,src/cr-tknzr.c,src/cr-token.[ch]:
915 vendor specific property names.
917 2004-02-19 Dodji Seketeli <dodji@gnome.org>
920 (cr_sel_eng_get_matched_properties_from_cascade): Fixed a bug
921 that was "forgetting" all the properties gathered during the
922 cascading algorithm but the last ones.
923 * tests/Makefile.am: a bit of cleanup here.
925 2004-02-14 Dodji Seketeli <dodji@gnome.org>
927 * src/cr-declaration.[ch]: applied a patch from
928 Rob BUIS<rwlbuis@xs4all.nl> that does a bunch of cleanup and
929 fixes. It also adds the new cr_declaration_list_to_string() api
931 * AUTHORS: updated this
933 2004-02-14 Dodji Seketeli <dodji@gnome.org>
935 * src/cr-declaration.[ch]:
936 (cr_declaration_nr_props),
937 (cr_declaration_get_from_list),
938 (cr_declaration_get_by_prop_name):
939 applied a patch from Rob BUIS<rwlbuis@xs4all.nl> that adds
940 these api entry points.
942 2004-02-13 Dodji Seketeli <dodji@gnome.org>
944 * src/cr-declaration.c:
945 (cr_declaration_parse_list_from_buf): when we encounter an EOF
946 right after a ';' don't return an error.
948 (CHECK_PARSING_STATUS_ERR): fix a possibly nasty typo.
949 (cr_parser_parse_property): when there is an error here,
950 return the underlying error instead of returning just CR_PARSING_ERROR.
951 (cr_parser_parse_declaration): when we encounter an EOF just at
952 the beginning of parsing, return CR_END_OF_INPUT_ERROR instead
953 of CR_PARSING_ERROR. More generaly, we should always return
954 CR_END_OF_INPUT_ERROR when we encounter that error, and not return
955 CR_PARSING_ERROR instead.
957 (test_cr_declaration_parse_list): updated this to reflect catch
958 trailing ';' at the end of declaration list.
960 2004-02-12 Dodji Seketeli <dodji@gnome.org>
962 * src/cr-declaration.[ch]:
963 (cr_declaration_parse_list_from_buf): added this new api entry point
964 to parse comma separated list of property declarations.
966 (cr_parser_parse_expr): dont return an error when we encounter EOF immediately
967 at the end of an expression.
968 (cr_parser_get_tknzr): added this new api entry point to get
969 the parser's underlying tokenizer.
970 * src/cr-statement.h: fixed a comment here.
971 * tests/test4-main.c: wrote a test for the new
972 cr_declaration_parse_list_from_buf() function.
974 2004-02-11 Dodji Seketeli <dodji@gnome.org>
976 * src/Makefile.am: make sure headers go in $prefix/include/libcroco/libcroco .
978 2004-02-10 Dodji Seketeli <dodji@gnome.org>
980 * src/cr-fonts.c: debugged serialization stuffs
981 * src/cr-style.c: more serialization debugging
983 2004-02-08 dodji <dodji@gnome.org>
985 * src/cr-style.c: more style structure debugging materials.
987 2004-02-08 Dodji Seketeli <dodji@gnome.org>
989 * src/cr-style.c: more style structure debugging materials.
991 2004-02-07 Dodji Seketeli <dodji@gnome.org>
993 * src/cr-fonts.[hc],src/cr-num.h,src/cr-style.[ch]:
994 In the process of adding style structure debugging facilities.
996 2004-02-04 Dodji Seketeli <dodji@gnome.org>
998 * src/cr-style.c: cr_style_to_string() added this prototype.
999 Still have to code it.
1001 2004-01-29 Dodji Seketeli <dodji@gnome.org>
1004 (cr_sel_eng_get_matched_style): make sure to set the fields
1005 of the style structure passed as an argument of the function, when
1008 (cr_style_set_props_to_defaults): make this function public
1010 2004-01-27 Gael CHAMOULAUD <strider@gnome.org>
1012 * configure.in: Removed the old references with libgnomeui and pango !
1013 * csslint/csslint.c: (csslint_show_version): Made smallish cleanup
1015 2004-01-27 Dodji Seketeli <dodji@gnome.org>
1018 (cr_cascade_new) don't forget to set the UA sheet.
1019 * src/cr-cascade.h: add void cr_cascade_ref() entry point.
1021 2004-01-26 Dodji Seketeli <dodji@gnome.org>
1023 * src/cr-cascade.[ch]:
1024 (cr_cascade_ref),(cr_cascade_unref): new convenience function
1025 * src/cr-om-parser.[ch]:
1026 (cr_om_parser_parse_paths_to_cascade),
1027 (cr_om_parser_simply_parse_paths_to_cascade): added these new parsing methods.
1029 2004-01-26 Dodji Seketeli <dodji@gnome.org>
1031 * src/cr-utils.h: added CR_FILE_NOT_FOUND_ERROR to
1034 2004-01-24 Dodji Seketeli <dodji@gnome.org>
1036 * all: separated the library into two projects. Libcroco
1037 is now the combination of the parser and the selection engine.
1038 A new project is born: sewfox. It is basically the
1039 xml rendering/layout engine.
1040 Libcroco now needs libxml2 and glib only.
1041 Sewfox need libgnomecanvas2.
1042 * autogen.sh: updated this to reflect this big change
1043 * tests/test-output-refs/test7.out: removed this test
1044 as it does not belong to libcroco anymore.
1046 2004-01-16 Dodji Seketeli <dodji@gnome.org>
1048 * src/seleng/cr-sel-eng.c: applied a patch from
1049 Rob BUIS<rwlbuis@xs4all.nl> for a better class selector
1052 2004-01-04 Dodji Seketeli <dodji@gnome.org>
1054 * src/parser/cr-declaration.c:
1055 (cr_declaration_unlink): fixed a bug spoted by
1058 2003-12-27 Dodji Seketeli <dodji@gnome.org>
1060 * csslint/csslint.c: did some fixes/cleanup here.
1061 Make sure csslint --help shows a proper help.
1062 * src/parser/cr-statement.c:
1063 (cr_statement_dump): when a NULL statement is given, do
1064 not dump anything, instead considering this as an error.
1065 * src/parser/cr-stylesheet.c:
1066 (cr_stylesheet_dump): give the possibility to dump
1067 empty sheets, instead of considering this case as
1070 2003-12-24 Dodji Seketeli <dodji@gnome.org>
1072 * src/parser/cr-additional-sel.h,src/parser/cr-pseudo.h,
1073 src/parser/cr-utils.h: some light cosmetic changes.
1074 * src/seleng/cr-sel-eng.c: several fixes. Managed to
1075 make the pluggable handler for pseudo class selectors
1076 evaluation work. Wrote a handler for the ":first-child"
1077 pseudo class selector. This class is now officially supported.
1079 2003-12-24 Dodji Seketeli <dodji@gnome.org>
1081 * src/parser/cr-additional-sel.h: small cosmetic changes.
1082 * src/seleng/cr-sel-eng.c: started to work on the
1083 support of a pluggable handler for pseudo class selectors
1084 evaluation. Wrote facilities to register/unregister/lookup
1086 * src/seleng/cr-sel-eng.c:
1087 (pseudo_class_add_sel_matches_node) pluggable pseudo class selection
1088 evaluation architecture is in place. I still have to
1089 writte a real "handle" to handle say ":first-child" pseudo
1090 class so that I can test/debug the whole code.
1092 2003-12-21 Dodji Seketeli <dodji@gnome.org>
1094 * docs/design/parser-architecture.txt: fixed some typos.
1096 2003-12-14 Dodji Seketeli <dodji@gnome.org>
1098 * docs/examples/selection-example-1.c:
1099 * docs/examples/selection-example-1.xml:
1100 * docs/examples/selection-example-1.css: added a test case
1101 for the A + B type of selectors.
1103 * src/seleng/cr-sel-eng.c:
1104 (get_next_element_node)
1105 (get_prev_element_node)
1106 (get_next_parent_element_node): added these helper functions
1107 to help ignore non element nodes in the selector matcher.
1108 (sel_matches_node_real): Do not consider non element nodes
1109 when evaluating a selector.
1111 2003-12-13 Dodji Seketeli <dodji@gnome.org>
1112 ============= 0.4 release ================
1113 * README: updated this.
1114 * docs/examples/sac-example-[12].c: make this compile with g++.
1116 2003-12-12 Dodji Seketeli <dodji@gnome.org>
1118 * docs/examples/selection-example-1.c: a bit of cleanup
1120 * docs/examples/selection-example-1.css: added more test cases.
1121 * src/seleng/cr-sel-eng.c:
1122 (additional_selector_matches_node): added this function to
1123 factorise the evaluation of additional selectors.
1124 (sel_matches_node_real ): use additional_selector_matches_node().
1125 This fixes a selector bug spotted by Stefan Seefeld.
1127 2003-12-11 Dodji Seketeli <dodji@gnome.org>
1129 * configure.in: updated version numbers for 0.4.
1130 * src/layeng/cr-lay-eng.[ch]:
1131 (cr_lay_eng_style_to_pango_font_attribute): added this so
1132 that the pango dependancy comes into the layout engine.
1133 * src/parser/cr-parser.c,src/parser/cr-selector.h,
1134 src/parser/cr-stylesheet.h,src/parser/cr-term.[ch],
1135 src/parser/cr-utils.h:
1136 made sure libcroco headers files
1137 are C++ compilers friendly.
1138 * src/seleng/Makefile.am: remove pango dependancy from the
1139 selection engine. Put it in the layout engine.
1140 * src/seleng/cr-style.[ch]:
1141 (cr_style_to_pango_font_attributes): removed this function
1142 from here and put it in src/layeng/cr-lay-eng.[ch]. This way,
1143 we seleng doesn't depend on pango. Only layout engine does.
1144 * Makefile.am: big cleanup here.
1145 * configure.in: make sure seleng, layeng and tests are
1146 disabled by default. Added makefiles in docs/ docs/example
1147 tests/ tests/test-inputs tests/test-output-refs
1148 * csslint/Makefile.am: cleaned this up. make sure to add
1149 seleng,layeng and glib compile flags whenever needed.
1150 * docs/Makefile.am,docs/examples/Makefile.am: new makefiles.
1151 * src/libcroco.h: removed references to cr-parser-input.h
1152 * src/layeng/Makefile.am: cleanup, make distcheck is happier.
1153 * src/parser/Makefile.am: cleanup, make distcheck is happier.
1154 * src/parser/cr-doc-handler.h: removed reference to cr-parser-input.h
1155 * src/parser/cr-layout-eng.h,src/parser/cr-parser-input.h: removed these.
1156 * src/parser/cr-parser.c:
1157 (cr_parser_new): fixed a typo here.
1158 * src/parser/cr-parser.h,src/parser/cr-tknzr.h:
1159 removed ref to cr-parser-input.h
1160 * src/seleng/Makefile.am: cleanup, make distcheck is happier.
1161 * tests/testctl: exclude makefiles when diffing outputs and re outputs.
1162 * configure.in,src/layeng/Makefile.am,src/seleng/Makefile.am:
1163 Provides libcrseleng and libcrlayeng with version info
1164 different from the one of libcroco.
1165 * src/layeng/Makefile.am,src/seleng/Makefile.am: Fixed more
1166 build system stuffs here.
1167 * docs/examples/cssom-example-1.c,docs/examples/sac-example-1.c: Make these
1169 * src/layeng/Makefile.am: another build system cleanup.
1170 * docs/examples/selection-example-1.c,docs/examples/selection-example-1.css,
1171 docs/examples/selection-example-1.xml: added this code example
1172 from Stefan Seefeld.
1174 2003-08-17 Gaël CHAMOULAUD <strider@gnome.org>
1176 * src/layeng/cr-lay-eng.c: (layout_block_box):
1177 * src/seleng/cr-sel-eng.c: (put_css_properties_in_hashtable):
1178 Applied a patch from Michael Culbertson <Michael.J.Culbertson@wheaton.edu>
1179 -> Compilation failed with gcc 2.95.4 due to declarations after calls to
1180 g_return_val_if_fail and the like.
1182 2003-07-15 Dodji <dodji@gnome.org>
1184 * src/seleng/cr-sel-eng.c (id_add_sel_matches_node):
1185 fixed some stupid error that was making gcc 2.9xxx cry.
1187 2003-07-05 Dodji Seketeli <dodji@gnome.org>
1189 * src/seleng/cr-style.h: rearranged the enum CRNumProp values.
1191 * src/seleng/cr-style.c: fixed the border-x:<a number> bug.
1192 This now support also number and not only symbolic border width
1193 like thin,thick etc ...
1195 * src/parser/cr-num.c: documented the apis here.
1197 * src/layeng/cr-lay-eng.c: Fixed some subtle bugs and finally implemented
1198 the width:15% (set percentage to width).
1200 2003-07-01 Dodji Seketeli <dodji@gnome.org>
1202 * src/layeng/cr-lay-eng.c: put the
1203 call to style_specified_2_computed_values() in the
1204 layout_box() function. It was previously in the create_box_tree_real().
1206 * src/layeng/cr-box-view.c: fixed a compiler warning.
1207 * hmmh first commit after 0.2 release.
1209 2003-06-30 Dodji Seketeli <dodji@gnome.org>
1211 * tests/test-output-refs/test4.1.css.out: updated this
1212 test reference output.
1214 * src/parser/cr-statement.c: fixed a typo that lead to a small
1215 regression detected by the non regression test suite.
1217 * tests/testctl: made sure no to consider the .cvsignore file
1218 during the final diff.
1220 * src/layeng/cr-box-view.[ch]: fixed some compiler warnings.
1222 2003-06-28 Gaël Chamoulaud (strider) <strider@freespiders.org>
1224 * csslint/csslint.c (csslint_show_version): Added CROCO_LAYENG_ENABLED
1225 test in csslint_show_version function.
1227 2003-06-23 Dodji Seketeli <dodji()47()seketeli()dot()org>
1229 * docs/design/parser-architecture.txt: more bits on this.
1231 2003-06-22 Dodji Seketeli <dodji@gnome.org>
1233 * src/parser/cr-statement.c: added
1234 parse_font_face_unrecoverable_error_cb(),
1235 parse_page_unrecoverable_error_cb() ... to handle
1236 parsing error in the cr_statement_xxx_parse() method.
1237 These callback method are not called yet.
1239 * src/parser/cr-tknzr.c: made the cr_tknzr_parse_important() look
1242 * src/parser/cr-parser.c: fixed some bugs in the parser.
1243 It does now parse the w3c forward compatible parsing test sheet
1244 at http://www.w3.org/Style/CSS/Test/CSS1/current/sec71.htm .
1246 * docs/design/parser-architecture.txt: updated this doc.
1247 A lot more is still needed.
1249 * csslint/csslint.c: fixed some small bugs in csslint. Now, --cssom is
1252 2003-06-21 dodji <dodji()seketeli()org>
1254 * src/parser/cr-statement.[ch]:
1255 Changed the prototype of cr_statement_unlink() to
1256 harmonize it with cr_declaration_unlink().
1258 2003-06-20 Dodji Seketeli <dodji@gnome.org>
1260 * src/parser/cr-term.[ch]:
1261 added the cr_term_parse_expression_from_buf() function.
1262 this is new and still needs to be tested.
1264 * src/parser/cr-parser.[hc]:
1265 made cr_parser_parse_expr() public.
1267 * src/parser/cr-declaration.[ch]:
1268 changed cr_declaration_parse() into
1269 cr_declaration_parse_parse_from_buf().
1271 * src/parser/cr-statement.[ch]:
1273 added the function cr_statement_does_buf_parses_against_core() and
1274 cr_statement_ruleset_get_declarations().
1276 * src/parser/cr-parser.[ch]:
1277 made cr_parser_parse_statement_core() public.
1279 * src/parser/cr-om-parser.c:
1282 * src/parser/cr-declaration.[ch]
1283 added a new cr_declaration_unlink() function.
1285 2003-06-19 Dodji Seketeli <dodji@gnome.org>
1287 * tests/test4-main.[ch]: updated this to test
1288 cr_statement_parse_from_buf(). It seems to work now.
1289 Still some memleaks to fix.
1291 * src/parser/cr-statement.[ch]:
1292 some bug fixes in cr_statement_parse_from_buf() +
1293 added a new cr_statement_at_import_rule_parse_from_buf() method.
1295 2003-06-18 Dodji Seketeli <dodji@gnome.org>
1297 * src/parser/cr-statement.[ch]:
1298 added cr_statement_font_face_rule_parse_from_buf () .
1299 and a generic cr_statement_parse_from_buf () that knows
1300 how to a parse virtually any css2 statement. This needs debugging
1303 * src/parser/cr-parser.c: fixed some possible sigsev
1304 that could occur when trying to access a null sac handler.
1306 * tests/test4-main.c: updated the test routine to test
1307 cr_statement_at_charset_rule_parse_from_buf().
1309 * src/parser/cr-statement.[ch]: added a new
1310 cr_statement_at_charset_rule_parse_from_buf() method to
1311 to create an "@charset" statement from a buffer text content.
1313 * src/parser/cr-parser.c:Fixeds a small possibility of memleak
1314 in cr_parser_parse_charse()
1316 * tests/test4-main.c: fixed a small typo in the "@page" rule
1317 embedded in gv_at_page_buf.
1319 * src/parser/cr-parser.c: fixed a small bug in the
1320 cr_parser_parse_page () function.
1322 2003-06-17 Dodji Seketeli <dodji@gnome.org>
1324 * tests/test4-main.c: added test_cr_statement_at_page_rule_parse ()
1325 to test the new cr_statement_at_page_rule_parse_from_buf() function.
1327 * src/parser/cr-statement.[ch]:
1328 added a first version of cr_statement_at_page_rule_parse_from_buf().
1329 This doesn't work. I need to debug it first.
1331 * tests/test4-main.c: updated this to test
1332 cr_statement_at_media_rule_parse_from_buf().
1334 * src/parser/cr-statement.[ch]:
1335 debuged cr_statement_at_media_rule_parse_from_buf() and the functions
1337 cr_statement_new_ruleset()=> fixed this so that it properly
1338 handles the containing "@media" rule.
1339 cr_statement_new_at_media_rule =>fixed this so that it properly
1340 handles the contained rulesets.
1342 * src/parser/cr-statement.[hc]:
1343 coded a first version of cr_statement_at_media_rule_parse_from_buf().
1344 This took the writing of a couple a SAC callback. Pfffew, SAC is a rather
1345 tedious api. cr_statement_at_media_rule_parse_from_buf() does not
1346 work yet, I still have to debug it.
1348 * src/parser/cr-parser.c: use the new cr_tknzr_peek_byte2 () function
1349 in the cr_parser_parse_import() method. This is a cleaner, smaller and
1350 faster than the older approach.
1352 * src/parser/cr-om-parser.c: use the
1353 cr_dup_glist_of_string () helper fonction in the
1354 start media callback.
1356 * src/parser/cr-utils.[ch]: fixed some 'const' omissions here also.
1358 * src/parser/cr-enc-handler.[ch]:
1359 fixed some "const" omissions.
1361 2003-06-16 dodji <dodji@gnome.org>
1363 * src/parser/cr-parser.[ch]: cr_parser_parse_charset(),
1364 cr_parser_parse_import(), cr_parser_parse_page (),
1365 cr_parser_parse_font_face(), cr_parser_parse_media(),
1367 * src/parser/cr-tknzr.[ch]:
1368 added cr_tknzr_peek_byte2() function to export the functionalities
1369 of cr_input_peek_byte2().
1371 2003-06-15 dodji <dodji@gnome.org>
1373 * tests/test4-main.c: updated this to test the new
1374 cr_statement_ruleset_parse_from_buf () method.
1376 * src/parser/cr-statement.[ch]:
1377 Added a cr_statement_ruleset_parse_from_buf () method. This
1378 is based on the changes made in cr-parser.[ch].
1380 * src/parser/cr-selector.[ch]:
1381 added a method cr_selector_parse_from_buf (). This is based
1382 on the changes made in cr-parser.[ch].
1384 * src/parser/cr-parser.[ch]:
1385 Some rather important changes occured here ...
1386 revisited the way selectors and rulesets are parsed
1387 so that one could parse a buffer that contains only a ruleset.
1388 A visible implication of this is that cr_parser_parse_selector () and
1389 cr_parser_parse_ruleset () become public methods callable independantly.
1390 In the past, this was not possible. Only cr_parser_parse_stylesheet ()
1393 * src/parser/cr-om-parser.c: updated this to comply with the
1394 changes made in cr-doc-handler.[ch].
1396 * src/parser/cr-doc-handler.[ch]:
1397 1/ Created an explicitely private field of CRDocHandler
1398 to store parsing context, parsing result and any eventually
1399 needed private data structure. The privates fields are
1400 accessible through getters/setters though.
1401 2/ made sure to increment the ref count of each instance
1402 of CRDocHandler at instanciation time. This may
1403 introduce some memleaks in the working code. I will
1404 fix them in next commits.
1406 * src/parser/cr-declaration.c:
1407 (cr_declaration_append2() ): modified this so that
1408 we can append declaration to a list of declarations that
1409 don't belong to a ruleset.
1411 2003-06-14 dodji <dodji@gnome.org>
1413 * src/parser/cr-term.h (struct _CRTerm): fixed a typo.
1415 * src/layeng/cr-lay-eng.c, src/seleng/cr-style.[hc]:
1416 more fonts selection implementation.
1418 * tests/test7-main.c: updated this to test the font selection implem.
1420 2003-06-12 dodji <dodji@gnome.org>
1422 * src/seleng/Makefile.am: added pango stuffs.
1423 * configure.in: added pango detection.
1424 * src/seleng/cr-fonts.c: a bit more font selection.
1425 * src/layeng/cr-lay-eng.c: a bit more font selection.
1426 * src/seleng/cr-style.c: font selection code again.
1428 2003-06-09 Dodji <dodji@gnome.org>
1429 * tests/test4-main.c: updated this test to test the
1430 new cr_declaration_to_string () api.
1432 * src/parser/cr-declaration.[ch] (cr_declaration_to_string ()):
1433 Added this new api to allow the serialisation of css declarations.
1434 This is not well tested yet, but it works.
1436 * src/parser/cr-parser.c (cr_parser_parse_declaration):
1437 fixed a bug that prevented this parsing function to be called outside
1438 the stylesheet parsing context.
1440 * src/seleng/cr-style.[ch]: went forward in the font properties
1443 * src/parser/cr-tknzr.[ch]: fixed some 'const" related compilation
1446 * src/parser/cr-parser.[ch]: exported the declaration parsing api
1447 so that cr_declaration_parse () can use it.
1449 * src/parser/cr-declaration.[ch]:
1450 added cr_declaration_parse () api. Not tested yet.
1452 * tests/test7-main.c: updated the test to reflect all the changes
1453 that happened today.
1455 * src/parser/cr-enc-handler.[ch], src/parser/cr-input.[ch],
1456 src/parser/cr-om-parser.[hc], src/parser/cr-parser.[ch].
1457 Add the 'const' keyword in to function prototypes.
1460 * src/layeng/cr-lay-eng.c:
1461 (compute_text_box_inner_edge_size ()) revisied this function to
1462 make it append the text label to it's container so that
1463 the size of the text label can be computed. I don't know how
1464 to do this otherwise. I would have liked this not to happen since
1465 compute_text_box_inner_edge_size () is part of the layout process
1466 not the rendering process. Now these two processes are much more
1467 tied than I would like.
1469 * src/layeng/cr-box.c:
1470 updated the cr_box_to_string () method to make it serialise
1471 CRBox->inner_edge.max_width for debug purposes.
1473 * src/layeng/cr-box-view.c:
1474 1/now, the layout code is called
1475 in the "expose-event" signal callback. Trying to isolate the
1476 layout from the rendering appears to be too difficult
1479 2/created a cr_box_view_new_from_xml_css_bufs () method to create
1480 a box view directly from a css buffer and an xml buffer.
1482 2003-06-04 Dodji <dodji@gnome.org>
1484 * tests/test7-main.c: created a new xml/css document to bring the test to
1485 a broader extend. It appeared that libcroco's layout code is
1486 damned bugged... I am debugging it...
1488 * src/seleng/cr-style.c:changed the default element display property
1489 to "block" and not "inline" anymore.
1490 Also made the set_prop_background_color () function support
1491 hex strings (e.g.: #ffffff or #ee)
1493 * src/parser/cr-rgb.[ch]: added cr_rgb_set_from_hex_str ()
1494 to support hash (hex) strings (#ffffff or #eee).
1496 * src/parser/cr-num.c:support of fixed/variable length numbers.
1498 * src/layeng/cr-lay-eng.c: a lot of layout fixes.
1501 2003-05-31 Kang Jeong-Hee <Keizi@mail.co.kr>
1503 * src/parser/*.[ch]: s/void */gpointer/
1505 2003-05-12 Dodji <dodji@gnome.org>
1507 * tests/test7-main.c: updated the test to reflect the new supported
1510 * src/layeng/cr-style.c:
1511 (set_prop_border_x_width_from_value ()) debugged this.
1512 (set_prop_border_x_style_from_value ()) debugged this.
1514 * src/layeng/cr-box-view.c:
1515 (draw_borders ()) debugged this a lot.
1517 2003-05-07 Dodji <dodji@gnome.org>
1519 * tests/test7-main.c: just added a test for the "background-color"
1522 * src/layeng/cr-box-view.c:
1523 (set_color ()) added this function to manage the setting
1524 of rgb color in an easier way than set_background/foreground().
1525 (set_border_line_attrs ()) implemented the border-x-color
1526 property setting in this function. This uses the new set_color ()
1528 (draw_padding ()) revisited this function to make it draw
1529 a padding area that has "background" color.
1532 2003-05-06 Dodji <dodji@gnome.org>
1534 * src/layeng/cr-style.[ch]: started to add the support of
1535 the "color" and "background-color" properties.
1537 * src/layeng/cr-lay-eng.c:
1538 (style_specified_2_computed_value()) updated this function to
1539 compute also the new colors properties (color and background-color).
1541 * src/layeng/cr-box-view.c:
1542 (set_background_color ())
1543 (set_foreground_color ())added these functions to set the box
1544 inner/padding edge color.
1545 also started to use these two functions to test them.
1547 2003-05-05 Dodji <dodji@gnome.org>
1549 * tests/test7-main.c: small update for debug purposes.
1551 * src/layeng/cr-style.h: cleanup.
1553 * src/layeng/cr-lay-eng.c: put in here what is needed to support
1554 border-x and border-style-x properties.
1556 * src/layeng/cr-box.[ch]: make CRBoxModel inherits CRBox.
1558 * src/layeng/cr-box-view.c: start to support the border-style-x and
1559 border-x property. I must test this.
1561 * configure.in: defined a personal environment where I can set
1564 2003-05-04 Dodji <dodji@gnome.org>
1566 * src/parser/cr-tknzr.c:
1567 (cr_tknzr_get_next_token ()) fixed a small bug in here.
1569 * src/layeng/cr-style.[ch]:
1570 Deeply Modified the layout of the CRStyle structure for
1571 1/group all numerical properties together in a table.
1572 2/group all color (rgb) properties together in another table.
1573 3/group all border style properties together in another table.
1574 That way, accessing those properties is more efficient.
1575 4/make sure that each properties can have 3 values:
1576 specified, computed and actual value as specified by the css2 spec.
1577 (I doubt actuall value is usefull
1579 Modified the file to make this be coherent again.
1581 * src/layeng/cr-lay-eng.c :
1582 Made this coherent after the change of the CRStyle structure.
1584 (normalize_num ()):created this function to
1585 normalize numerical properties.
1586 (style_specified_2_computed_values ):
1587 new function to computed css2 "computed values" from specified values.
1588 This is required by the css2 spec in chap 6.1.
1589 (create_box_tree_real): updated this to make it call
1590 style_specified_2_computed_values () before actually building the box.
1592 2003-05-01 Dodji <dodji@gnome.org>
1594 * configure.in, csslint/Makefile.am, src/parser/Makefile.am, src/seleng/Makefile.am, src/layeng/Makefile.am:
1597 2003-04-28 Dodji <dodji@gnome.org>
1599 * tests/test7-main.c: woohoo, this now shows some text.
1600 Okay, it is a crappy design sketch, but this is a milestone.
1602 * src/layeng/cr-lay-eng.c: store the created label widget in the cache.
1604 * src/layeng/cr-box.h:created a box content cache to store the label
1605 widget used to calculate text box size.
1607 * src/layeng/cr-box-view.[hc]: made this simpler and manage to
1608 make it show someting on the screen. Now the box view
1609 is just the view port. To render the box model, we just walk thru it
1610 and draw each box in the box view.
1613 2003-04-26 dodji <dodji@gnome.org>
1615 * configure.in: made sure to include the libgnomeui clflags and
1616 libsflags to croco libs and croco cflags when the layeng is turned
1618 * csslint/Makefile.am: made sure to use the CROCO_LIBS and CROCO_CLFAGS
1620 * src/libcroco.h: added the cr-box-view.h include file
1621 * src/layeng/cr-box-view.c: started to write a draw_box() function that
1622 will draw the box tree on the screen.
1623 * src/layeng/cr-lay-eng.c: removed the adjust_edges_on_inner_edge () function.
1624 * tests/Makefile.am: made sure to include libgnomeui clfags and libs
1625 when layeng is turned on.
1626 * tests/test7-main.c: made started to include a cr-box-view.c test.
1628 2003-04-20 dodji <dodji@gnome.org>
1630 * tests/test7-main.c: updated the test7 code to see the layout in
1633 * src/layeng/cr-style.[ch]: just modified some rule
1634 names for convenience.
1636 * src/layeng/cr-lay-eng.[ch]:
1637 when forward in normal flow layout code. Have now very basic layout code.
1638 Still have to write a canvas code to render the layed out box.
1640 * src/layeng/cr-lay-eng.c (compute_text_box_inner_edge_size): started to work on the
1641 the inner edge size computation based on pango.
1643 * src/layeng/Makefile.am: updated to compile/link against libgnomeui.
1644 * configure.in: updated it to test the presence
1645 of libgnomeui if and only if the layout engine is enabled.
1647 2003-04-15 Alexander Larsson <alexl@redhat.com>
1650 Change _DATA to _HEADERS for header
1653 Only use filename for _HEADERS.
1654 remove libcroco-config.h from _HEADERS
1656 2003-04-12 dodji <dodji@gnome.org>
1658 * src/* made a big change of the source tree.
1659 Now, the whole thing is divided in 3 parts:
1660 the paser, the selection engine and the layout engine.
1661 The parser source files produce a libcroco.so shared lib.
1662 The selection engine source files produce a libcrseleng.so shared
1664 The layout engine source fils produce a libcrlayeng.so shared
1666 The same configure options as before apply.
1668 2003-04-05 Dodji <dodji@gnome.org>
1670 * src/cr-token.h (struct _CRToken):
1671 applied a patch from Greg Lee <greg@ling.lll.hawaii.edu>,
1672 which solves a compilation error under gcc 2.95.3. Basically,
1673 it transforms an implicitly defined union into an explicitly
1674 defined one. Modified all the files impacted.
1676 2003-04-03 Dodji <dodji@gnome.org>
1678 * tests/testctl: can now run one single test. This can also
1679 run all the tests a run a simple report that summarizes the
1680 results of the tests.
1682 * configure.in: make sure this generates the libcroco.spec file.
1683 make sure to test the presence of glib2 during configure.
1685 * libcroco.spec.in: added autoconf magic in this.
1686 Can now generate an rpm by typing make rpm. Before that,
1687 the user that types make rpm must have write acess to
1690 2003-04-02 Gaël Chamoulaud (strider) <strider@freespiders.org>
1692 * croco-config.1: updated the man page
1693 * csslint/csslint.1: updated the man page
1695 2003-04-01 Dodji <dodji@gnome.org>
1697 * tests/testctl: started to code the libcroco test launcher script.
1698 it is not useable yet, but work is in progress.
1700 2003-03-31 Dodji <dodji@gnome.org>
1701 * src/cr-lay-eng.c: started to code the tree annotation process.
1702 I seriously need to debug this.
1704 * configure.in: put in there the list of tests to be compile
1705 and the conditions cause AM_CONDITIONAL() is buggy and does
1706 not seem to fit my needs. Also modified tests/Makefile.am
1707 to take this in account.
1709 * tests/test7-main.c: added this file to debug the layout engine
1712 * croco-config.1: some minor fixes in the man page.
1714 2003-03-30 Christian Schaller <uraeus@gnome.org>
1715 * Fixed disting by adding manpages to EXTRA_DIST
1716 * Added spec.in file, this need to be added to build
1717 system to generate .spec file.
1718 * Remove Makefile.in from CVS, this is a generated file
1720 2003-03-30 Dodji <dodji@gnome.org>
1722 Made sure that in dev mode, the configure scripts
1723 gets called with --enable-tests=yes --enable-seleng=yes
1724 --enable-layeng=yes. This options being set to 'no' by default.
1727 Started to code a layout engine. This is more a design
1728 sketch than real usefull code so far.
1731 Started to code a #CRCascade class to abstract a css2 cascade.
1732 This is more a placeholder (or a design sketch) than real
1735 * tests/Makefile.am: improved the conditional compilation
1736 of the tests; e.g if the selection engine feature is disabled
1737 the selection engine tests won't be compiled.
1738 * configure.in: added --enable-layeng to contionaly compile
1739 the layout engine files. Also improved the handling of
1740 of the enable-xxx arguments => 'yes' forces the feature to
1741 be enabled (the coder knows what he is doing); 'auto' checks
1742 if the features xxx depends on are available and then
1745 2003-03-24 dodji <dodji@gnome.org>
1746 * src/cr-style.c (cr_style_set_style_from_decl):
1747 Have a first hot (and bugged) implem of this function.
1748 I can now, go and get worried about building the annotated
1751 2003-03-20 Gaël Chamoulaud <strider@freespiders.org>
1753 * Makefile.am (SUBDIRS): added man page for croco-config
1755 2003-03-20 Dom Lachowicz <cinamod@hotmail.com>
1757 * COPYING: replace with contents from COPYING.LIB (GNU LGPL)
1759 2003-03-20 Gaël Chamoulaud <strider@freespiders.org>
1761 * configure.in: added conditional compilation of the unit tests
1764 * tests/Makefile.am (INCLUDES): conditional compilation of the unit tests
1767 2003-03-19 Gaël Chamoulaud <strider@freespiders.org>
1769 * Relicense from GPL -> LGPL
1771 2003-03-18 Gaël Chamoulaud <strider@freespiders.org>
1773 * configure.in: fixed a configure bug. Make sure to properly
1774 check the libxml2 versions.
1776 2003-03-18 Dom Lachowicz <cinamod@hotmail.com>
1778 * autogen.sh: Use gnome-autogen (cvs co gnome-common). Creates libtool
1779 and other things properly
1781 * configure.in: better check for LIBXML2, conditional compilation of
1784 * tests/Makefile.am: disable test5 until I can think of a better
1787 2003-03-16 dodji <dodji@gnome.org>
1789 * src/cr-style.c (set_border_x_style_from_value):
1790 new method added to gather 'border_top_style' ... 'border_left_style'
1791 properties value from the css stylesheet.
1793 (set_border_x_width_from_value): completed this function
1794 to properly gather 'border_top_width' ... 'border_left_width'
1795 properties values from the css stylesheet.
1797 * src/cr-num.c (cr_num_set): new method added.
1799 2003-03-15 dodji <dodji@gnome.org>
1802 added some new helper functions/did some cleanups.
1804 * src/cr-tknzr.[ch]:
1805 made the necessary modifs implied by the new CRNum/CRTerm type
1809 big cleanup of the CRTerm/CRNum typing system.
1811 * src/cr-style.[ch]:
1812 went forward in the style data structure population code.
1815 made the necessary modifs implied by the new CRNum type
1819 made the necessary modifs implied by the new CRNum type
1822 * src/cr-num.[ch]: did some big changes for a better
1823 handling of numeric types.
1825 2003-03-05 Dodji <dodji@gnome.org>
1827 * src/cr-parser.c (cr_parser_new_from_buf):
1828 new method to parse stylesheets from in memory buffers.
1830 2003-03-04 Dodji <dodji@seketeli.og>
1832 * src/cr-input.c (cr_input_new_from_buf):
1833 added this new method to instanciate an input stream from
1834 an in memory buffer.
1835 (cr_input_new_from_uri): modified this method to make it
1836 use the new cr_input_new_from_buf() method.
1838 2003-03-03 Dodji <dodji@gnome.org>
1840 * tests/README-description.txt:
1841 added this test description file in the project.
1843 * src/cr-sel-eng.c (cr_sel_eng_get_matched_rulesets_real):
1844 renamed the function cr_sel_eng_get_rulesets_real() into
1845 this new one. Modified it memory management model so that
1846 1/ it does not allocate it output array
1847 2/ caller can use it in a incremental way and get the rulesets
1849 (cr_sel_eng_sel_get_matched_rulesets):
1850 added this public interface based on the private interface
1851 cr_sel_eng_get_matched_rulesets_real().
1854 2003-03-02 Dodji <dodji@gnome.org>
1856 * src/cr-sel-eng.c (cr_sel_eng_get_rulesets_real):
1857 started to code an implementation of a ruleset "requester".
1858 Still have to debug all this.
1860 2002-09-25 dodji <dodji@gnome.org>
1862 * src/cr-utils.h: updated this file to define stuffs needed by
1865 * src/cr-parser-input.c: started to write down code to handle
1866 the stacked parser input.