commit f822e90c7a91f12c76793ffe8e349584d4d813f8 Author: Federico Mena Quintero Date: Fri Dec 8 15:56:15 2017 -0600 doc/Makefile.am: Generate in xml mode doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c6540063264b2a1012486327c55eaeb9bdf4a220 Author: Federico Mena Quintero Date: Fri Dec 8 15:52:08 2017 -0600 Fix the source path in doc/Makefile.am doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4262b205027ff5cc7a5a0b66d578dc9f9ed02215 Author: Federico Mena Quintero Date: Fri Dec 8 14:25:51 2017 -0600 Fix the documentation infrastructure a bit doc/Makefile.am | 39 ++++++++++++++++++++------------------- doc/rsvg-sections.txt | 2 -- doc/rsvg.types | 3 --- rsvg.h | 15 ++++++++------- 4 files changed, 28 insertions(+), 31 deletions(-) commit effcf2bc3f9b2388df3bf2e42bf711e3a656ea91 Author: Federico Mena Quintero Date: Fri Dec 8 12:11:47 2017 -0600 Add missing files to the distribution Makefile.am | 6 +++++- tests/Makefile.am | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) commit 05182acf3da1f9d5d0092e3114db22014eff06f0 Author: Federico Mena Quintero Date: Fri Dec 8 12:09:25 2017 -0600 Remove TODO from the Makefile.am; it no longer exists Makefile.am | 1 - 1 file changed, 1 deletion(-) commit 80ba307b92164eccf0ef4687ac0a4d5caf83260a Author: Federico Mena Quintero Date: Thu Dec 7 20:22:48 2017 -0600 Update NEWS NEWS | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit e2a7485adad4a17efdc58beb60dbc9ebde0d524d Author: Federico Mena Quintero Date: Thu Dec 7 19:05:13 2017 -0600 COMPILING.md - fix the example of how cross-compilation variables get passed Thanks to David Michael for noticing this. COMPILING.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) commit 2a4d8289218cba82f3bafcd39312476090b034c2 Author: Federico Mena Quintero Date: Thu Dec 7 12:15:50 2017 -0600 Reimplement normalize_default() with the magic of iterators Figuring out whether this is faster/slower than the old one is left as an exercise to the reader. rust/src/space.rs | 40 +++++++--------------------------------- 1 file changed, 7 insertions(+), 33 deletions(-) commit f1512cdbdf8b8de92a3c3a5f018f5cabe711072c Author: Federico Mena Quintero Date: Thu Dec 7 11:20:14 2017 -0600 Remove the "lastwasspace" tracking from rsvg-text.c Now this is all handled in the whitespace normalization function. rsvg-text.c | 46 +++++++++++----------------------------------- 1 file changed, 11 insertions(+), 35 deletions(-) commit a768f7ae81a9d8ef3933fdc6b729123e783c0ddf Author: Federico Mena Quintero Date: Thu Dec 7 11:16:10 2017 -0600 Regenerate two test reference files after whitespace changes The affected files were in fact wrong before the changes to the whitespace normalization code. The old C code wasn't removing trailing spaces from XML character data with xml:space="default". tests/fixtures/reftests/bugs/340047-ref.png | Bin 4761 -> 4752 bytes .../reftests/svg1.1/coords-viewattr-03-b-ref.png | Bin 24224 -> 24225 bytes 2 files changed, 0 insertions(+), 0 deletions(-) commit 54c264a43d61c26a3c99824cc4decb3066f5f389 Author: Federico Mena Quintero Date: Thu Dec 7 11:00:29 2017 -0600 Use rsvg_xml_space_normalize() instead of _rsvg_text_chomp() rsvg-text.c | 63 ++++++++++++++++++++----------------------------------------- 1 file changed, 20 insertions(+), 43 deletions(-) commit 62a7689d17976e7aabcb5560422252d9713f39fa Author: Federico Mena Quintero Date: Thu Dec 7 11:00:09 2017 -0600 Export rsvg_xml_space_normalize() from Rust to C rsvg-text.c | 9 +++++++++ rust/src/lib.rs | 4 ++++ rust/src/space.rs | 11 +++++++++++ 3 files changed, 24 insertions(+) commit 7a113a9eb366fc4b5ec395a21380f57961388459 Author: Federico Mena Quintero Date: Thu Dec 7 09:28:07 2017 -0600 space.rs: Include the relevant portions of the spec rust/src/space.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 6ecccdfe2beaece2890acaf0461856001115b6d4 Author: Federico Mena Quintero Date: Thu Dec 7 09:24:47 2017 -0600 space::normalize_preserve() - Use iterator functions instead of making fire by rubbing sticks rust/src/space.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) commit c9c01b5b1ef4e6898b1492df64755de31f54ebb2 Author: Federico Mena Quintero Date: Thu Dec 7 08:39:02 2017 -0600 space.rs: New file to deal with xml:space normalization Makefile.am | 1 + rust/src/lib.rs | 1 + rust/src/space.rs | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) commit 9f4a802bd26f6eb5ce4c798207c4e63fcfd6b2ec Author: Federico Mena Quintero Date: Wed Dec 6 18:55:43 2017 -0600 Add text-text-10-t.svg from the SVG 1.1 test suite This tests text rotation .../reftests/svg1.1/text-text-10-t-ref.png | Bin 0 -> 45339 bytes tests/fixtures/reftests/svg1.1/text-text-10-t.svg | 76 +++++++++++++++++++++ 2 files changed, 76 insertions(+) commit a86aca8ca2f8c5d3eb5635546e522f11cda72443 Author: Federico Mena Quintero Date: Wed Dec 6 18:50:17 2017 -0600 Add text-text-08-b.svg from the SVG 1.1 test suite This tests stroke and fill opacities for text .../reftests/svg1.1/text-text-08-b-ref.png | Bin 0 -> 40082 bytes tests/fixtures/reftests/svg1.1/text-text-08-b.svg | 64 +++++++++++++++++++++ 2 files changed, 64 insertions(+) commit e0ea43f27e6b9f8e2d28512964bb7da7cfce39cd Author: Federico Mena Quintero Date: Wed Dec 6 18:45:39 2017 -0600 Add text-text-03-b.svg from the SVG 1.1 test suite This tests font-weight (regular/bold) and font-style (italic) .../reftests/svg1.1/text-text-03-b-ref.png | Bin 0 -> 19989 bytes tests/fixtures/reftests/svg1.1/text-text-03-b.svg | 94 +++++++++++++++++++++ 2 files changed, 94 insertions(+) commit 2ced10432cc19c429b28bc081e18a246801e5db3 Author: Federico Mena Quintero Date: Wed Dec 6 18:43:29 2017 -0600 Add Roboto fonts, remove LiberationSans, and normalize reference tests We'll need regular/bold/italic/bold-italic fonts for the text tests. rsvg-cairo-draw.c | 5 ++++- tests/fixtures/reftests/bugs/340047-ref.png | Bin 4779 -> 4761 bytes .../reftests/bugs/587721-text-transform-ref.png | Bin 3910 -> 3898 bytes tests/fixtures/reftests/bugs/749415-ref.png | Bin 21862 -> 20607 bytes tests/fixtures/reftests/bugs/760180-ref.png | Bin 8640 -> 8715 bytes .../bugs/776297-marker-on-non-path-elements-ref.png | Bin 1203 -> 1205 bytes .../bugs/777834-empty-text-children-ref.png | Bin 9386 -> 8477 bytes .../reftests/svg1.1/coords-trans-01-b-ref.png | Bin 11819 -> 11820 bytes .../reftests/svg1.1/coords-trans-02-t-ref.png | Bin 8286 -> 8110 bytes .../reftests/svg1.1/coords-trans-03-t-ref.png | Bin 7889 -> 7743 bytes .../reftests/svg1.1/coords-trans-04-t-ref.png | Bin 6654 -> 6589 bytes .../reftests/svg1.1/coords-trans-05-t-ref.png | Bin 8105 -> 7854 bytes .../reftests/svg1.1/coords-trans-06-t-ref.png | Bin 8493 -> 8249 bytes .../reftests/svg1.1/coords-trans-07-t-ref.png | Bin 11482 -> 11131 bytes .../reftests/svg1.1/coords-trans-08-t-ref.png | Bin 13265 -> 13223 bytes .../reftests/svg1.1/coords-trans-09-t-ref.png | Bin 17268 -> 17163 bytes .../reftests/svg1.1/coords-viewattr-01-b-ref.png | Bin 16515 -> 16264 bytes .../reftests/svg1.1/coords-viewattr-02-b-ref.png | Bin 37569 -> 37198 bytes .../reftests/svg1.1/coords-viewattr-03-b-ref.png | Bin 24302 -> 24224 bytes .../reftests/svg1.1/filters-color-02-b-ref.png | Bin 6231 -> 6047 bytes .../reftests/svg1.1/filters-composite-02-b-ref.png | Bin 16613 -> 15874 bytes .../reftests/svg1.1/masking-intro-01-f-ref.png | Bin 14528 -> 14172 bytes .../reftests/svg1.1/masking-mask-01-b-ref.png | Bin 17887 -> 17856 bytes .../reftests/svg1.1/masking-mask-02-f-ref.png | Bin 4512 -> 4347 bytes .../reftests/svg1.1/masking-opacity-01-b-ref.png | Bin 30924 -> 29991 bytes .../reftests/svg1.1/masking-path-01-b-ref.png | Bin 12226 -> 11354 bytes .../reftests/svg1.1/masking-path-02-b-ref.png | Bin 13294 -> 12489 bytes .../reftests/svg1.1/masking-path-03-b-ref.png | Bin 23263 -> 21313 bytes .../reftests/svg1.1/masking-path-04-b-ref.png | Bin 92911 -> 91469 bytes .../reftests/svg1.1/masking-path-05-f-ref.png | Bin 7225 -> 7090 bytes .../reftests/svg1.1/painting-marker-01-f-ref.png | Bin 8454 -> 8597 bytes .../reftests/svg1.1/painting-marker-02-f-ref.png | Bin 9172 -> 9185 bytes .../reftests/svg1.1/painting-marker-03-f-ref.png | Bin 29006 -> 28073 bytes .../reftests/svg1.1/painting-marker-04-f-ref.png | Bin 27598 -> 26712 bytes .../reftests/svg1.1/painting-marker-06-f-ref.png | Bin 8640 -> 8715 bytes .../reftests/svg1.1/painting-marker-07-f-ref.png | Bin 5158 -> 4989 bytes .../svg1.1/painting-marker-properties-01-f-ref.png | Bin 6175 -> 6113 bytes .../reftests/svg1.1/paths-data-01-t-ref.png | Bin 25436 -> 25402 bytes .../reftests/svg1.1/paths-data-02-t-ref.png | Bin 32917 -> 32826 bytes .../reftests/svg1.1/paths-data-03-f-ref.png | Bin 30956 -> 30706 bytes .../reftests/svg1.1/paths-data-04-t-ref.png | Bin 18138 -> 17850 bytes .../reftests/svg1.1/paths-data-05-t-ref.png | Bin 16037 -> 15891 bytes .../reftests/svg1.1/paths-data-06-t-ref.png | Bin 7242 -> 7189 bytes .../reftests/svg1.1/paths-data-07-t-ref.png | Bin 6628 -> 6443 bytes .../reftests/svg1.1/paths-data-08-t-ref.png | Bin 19317 -> 18892 bytes .../reftests/svg1.1/paths-data-09-t-ref.png | Bin 17595 -> 17272 bytes .../reftests/svg1.1/paths-data-10-t-ref.png | Bin 20995 -> 20604 bytes .../reftests/svg1.1/paths-data-12-t-ref.png | Bin 9704 -> 9595 bytes .../reftests/svg1.1/paths-data-13-t-ref.png | Bin 4526 -> 4395 bytes .../reftests/svg1.1/paths-data-14-t-ref.png | Bin 12525 -> 12377 bytes .../reftests/svg1.1/paths-data-15-t-ref.png | Bin 6001 -> 5852 bytes .../reftests/svg1.1/paths-data-16-t-ref.png | Bin 7879 -> 7644 bytes .../reftests/svg1.1/paths-data-17-f-ref.png | Bin 4464 -> 4283 bytes .../reftests/svg1.1/paths-data-18-f-ref.png | Bin 4781 -> 4633 bytes .../reftests/svg1.1/paths-data-19-f-ref.png | Bin 23515 -> 23394 bytes .../reftests/svg1.1/paths-data-20-f-ref.png | Bin 9144 -> 8991 bytes .../reftests/svg1.1/pservers-grad-01-b-ref.png | Bin 9758 -> 9202 bytes .../reftests/svg1.1/pservers-grad-02-b-ref.png | Bin 22622 -> 21995 bytes .../reftests/svg1.1/pservers-grad-03-b-ref.png | Bin 9805 -> 9495 bytes .../reftests/svg1.1/pservers-grad-04-b-ref.png | Bin 24018 -> 23330 bytes .../reftests/svg1.1/pservers-grad-05-b-ref.png | Bin 65037 -> 63416 bytes .../reftests/svg1.1/pservers-grad-06-b-ref.png | Bin 21260 -> 20571 bytes .../reftests/svg1.1/pservers-grad-07-b-ref.png | Bin 11051 -> 10623 bytes .../reftests/svg1.1/pservers-grad-08-b-ref.png | Bin 38874 -> 37161 bytes .../reftests/svg1.1/pservers-grad-09-b-ref.png | Bin 6207 -> 5874 bytes .../reftests/svg1.1/pservers-grad-10-b-ref.png | Bin 9229 -> 8918 bytes .../reftests/svg1.1/pservers-grad-11-b-ref.png | Bin 56357 -> 54921 bytes .../reftests/svg1.1/pservers-grad-12-b-ref.png | Bin 23747 -> 23251 bytes .../reftests/svg1.1/pservers-grad-13-b-ref.png | Bin 93434 -> 93210 bytes .../reftests/svg1.1/pservers-grad-14-b-ref.png | Bin 24537 -> 24407 bytes .../reftests/svg1.1/pservers-grad-15-b-ref.png | Bin 10180 -> 10014 bytes .../reftests/svg1.1/pservers-grad-16-b-ref.png | Bin 4738 -> 4608 bytes .../reftests/svg1.1/pservers-grad-18-b-ref.png | Bin 4733 -> 4603 bytes .../reftests/svg1.1/pservers-grad-21-b-ref.png | Bin 11549 -> 11374 bytes .../reftests/svg1.1/pservers-grad-22-b-ref.png | Bin 7605 -> 7414 bytes .../reftests/svg1.1/pservers-grad-23-f-ref.png | Bin 6129 -> 6131 bytes .../reftests/svg1.1/pservers-grad-24-f-ref.png | Bin 7313 -> 7251 bytes .../svg1.1/pservers-grad-stops-01-f-ref.png | Bin 6356 -> 6353 bytes .../reftests/svg1.1/pservers-pattern-01-b-ref.png | Bin 20788 -> 19967 bytes .../reftests/svg1.1/pservers-pattern-02-f-ref.png | Bin 35135 -> 34951 bytes .../reftests/svg1.1/pservers-pattern-03-f-ref.png | Bin 6074 -> 6079 bytes .../reftests/svg1.1/pservers-pattern-04-f-ref.png | Bin 6160 -> 5998 bytes .../reftests/svg1.1/pservers-pattern-05-f-ref.png | Bin 7148 -> 7154 bytes .../reftests/svg1.1/pservers-pattern-06-f-ref.png | Bin 6103 -> 6043 bytes .../reftests/svg1.1/pservers-pattern-07-f-ref.png | Bin 7651 -> 7606 bytes .../reftests/svg1.1/pservers-pattern-08-f-ref.png | Bin 7654 -> 7609 bytes .../reftests/svg1.1/pservers-pattern-09-f-ref.png | Bin 5840 -> 5846 bytes .../reftests/svg1.1/struct-cond-01-t-ref.png | Bin 4498 -> 4367 bytes .../reftests/svg1.1/struct-cond-03-t-ref.png | Bin 4433 -> 4244 bytes .../reftests/svg1.1/struct-svg-03-f-ref.png | Bin 5890 -> 5892 bytes .../reftests/svg1.1/struct-symbol-01-b-ref.png | Bin 52263 -> 52108 bytes .../reftests/svg1.1/struct-use-01-t-ref.png | Bin 15253 -> 14391 bytes .../reftests/svg1.1/struct-use-03-t-ref.png | Bin 7785 -> 7627 bytes .../reftests/svg1.1/struct-use-04-b-ref.png | Bin 19927 -> 19669 bytes .../reftests/svg1.1/struct-use-09-b-ref.png | Bin 6556 -> 6586 bytes .../reftests/svg1.1/text-align-01-b-ref.png | Bin 18922 -> 17897 bytes .../reftests/svg1.1/text-align-03-b-ref.png | Bin 15648 -> 14668 bytes tests/resources/LiberationSans-Regular.ttf | Bin 139764 -> 0 bytes tests/resources/Roboto-Bold.ttf | Bin 0 -> 353376 bytes tests/resources/Roboto-BoldItalic.ttf | Bin 0 -> 380912 bytes tests/resources/Roboto-Italic.ttf | Bin 0 -> 379588 bytes tests/resources/Roboto-Regular.ttf | Bin 0 -> 353888 bytes 102 files changed, 4 insertions(+), 1 deletion(-) commit 8bb9f95be4b086a389b3642fa843a5f8d625a977 Author: Federico Mena Quintero Date: Wed Dec 6 18:18:57 2017 -0600 Allow having more than one font for the testing machinery We only have one right now, but we'll want to have more font files, to allow testing bold/italic/right-to-left, etc. rsvg-cairo-draw.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 6f43215b6d575d2bc1ee5ee911c69604e0b47112 Author: Federico Mena Quintero Date: Wed Dec 6 18:16:11 2017 -0600 Add text-align-01-b and text-align-03-b from the SVG 1.1 test suite .../reftests/svg1.1/text-align-01-b-ref.png | Bin 0 -> 18922 bytes tests/fixtures/reftests/svg1.1/text-align-01-b.svg | 80 ++++++++++++++++++++ .../reftests/svg1.1/text-align-03-b-ref.png | Bin 0 -> 15648 bytes tests/fixtures/reftests/svg1.1/text-align-03-b.svg | 82 +++++++++++++++++++++ 4 files changed, 162 insertions(+) commit 205cf3bb96cf4123ca93f6281980d1d157d5ed5d Author: Federico Mena Quintero Date: Wed Dec 6 10:39:29 2017 -0600 measure_text(): Don't frob the ctx->render->pango_context here rsvg-text.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit f5676471664a14004359acc20aa8a7e49b52101b Author: Federico Mena Quintero Date: Wed Dec 6 10:33:58 2017 -0600 s/create_pango_context/get_pango_context throughout rsvg-cairo-clip.c | 2 +- rsvg-cairo-draw.c | 2 +- rsvg-cairo-draw.h | 2 +- rsvg-cairo-render.c | 2 +- rsvg-private.h | 4 ++-- rsvg-text.c | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) commit fa421d2297490dd912a2ecb3ac4bbbf628ed7ab2 Author: Federico Mena Quintero Date: Wed Dec 6 10:05:18 2017 -0600 rsvg_text_length_text_as_string -> measure_text rsvg-text.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1eaf391ca8165469ed800e2bbeed1bb0ab58d5c6 Author: Federico Mena Quintero Date: Wed Dec 6 10:03:18 2017 -0600 Remove RsvgTextLayout; make rsvg_text_length_text_as_string() standalone rsvg-text.c | 63 ++++++++++--------------------------------------------------- 1 file changed, 10 insertions(+), 53 deletions(-) commit fbc2f28866e0f93c3a3770d49ce546998736b7d2 Author: Federico Mena Quintero Date: Wed Dec 6 09:31:18 2017 -0600 Align argument lists to make it easier to see differences rsvg-text.c | 56 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 18 deletions(-) commit 7fa7105129c510981aebe1772bf613abac33ce81 Author: Federico Mena Quintero Date: Wed Dec 6 09:27:34 2017 -0600 _rsvg_node_text_type_tref -> draw_tref rsvg-text.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) commit 4eb2a9d9751447714cd60b753d13f6df71023aab Author: Federico Mena Quintero Date: Wed Dec 6 09:27:02 2017 -0600 _rsvg_node_text_type_tspan -> draw_tspan rsvg-text.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 8fdb010deb7989ec01ac99e8316f82c3b00d016f Author: Federico Mena Quintero Date: Wed Dec 6 09:25:49 2017 -0600 _rsvg_node_text_type_children -> draw_from_children rsvg-text.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) commit a045e56f1aee1462cb67a16859ea8dececbecd84 Author: Federico Mena Quintero Date: Wed Dec 6 09:24:07 2017 -0600 Align argument lists to make it easier to see differences rsvg-text.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) commit a7e1e5fba5db697a53ad56ff23972526d1907d81 Author: Federico Mena Quintero Date: Wed Dec 6 09:20:47 2017 -0600 _rsvg_node_text_length_tspan -> length_from_tspan rsvg-text.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) commit 616ebab38342d875c4ceff28f51377f9bd38fab3 Author: Federico Mena Quintero Date: Wed Dec 6 09:14:54 2017 -0600 _rsvg_node_text_length_tref -> length_from_tref rsvg-text.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 4183272bb23fb1e5eb8f20bc4a912f910265104f Author: Federico Mena Quintero Date: Wed Dec 6 09:12:20 2017 -0600 _rsvg_node_text_length_children -> compute_length_from_children rsvg-text.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 5ed37a3702c4018eba58a582f653bce4f0ad20a9 Author: Federico Mena Quintero Date: Wed Dec 6 08:53:02 2017 -0600 _rsvg_node_text_type_tspan(): Push/pop the current state here, not in the caller rsvg-text.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit e297b3427b761529b2581628acacdf622e16b040 Author: Federico Mena Quintero Date: Wed Dec 6 07:48:43 2017 -0600 Use g_utf8_make_valid() instead of our own; require glib 2.52.0 configure.ac | 2 +- rsvg-base.c | 2 +- rsvg-text.c | 38 -------------------------------------- rsvg-text.h | 2 -- 4 files changed, 2 insertions(+), 42 deletions(-) commit c9a47b67c186eb67ce6e06487f96e15851b54ee8 Author: Federico Mena Quintero Date: Wed Dec 6 07:36:58 2017 -0600 rsvg_characters_impl(): Extract function to create a new chars child node rsvg-base.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) commit 034eccecd53490124537becc428e5b3b7956973d Author: Federico Mena Quintero Date: Wed Dec 6 07:32:41 2017 -0600 rsvg_characters_impl(): Remove redundant check rsvg-base.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit f85fb2749be295925752e0e8a58c9d1a6906f736 Author: Federico Mena Quintero Date: Wed Dec 6 07:29:58 2017 -0600 rsvg-base.c: Factor out node_is_text_or_tspan() rsvg-base.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit 60f6025bbc1d7e38343a3adb7c35418ac23b29db Author: Federico Mena Quintero Date: Wed Dec 6 07:24:20 2017 -0600 find_last_chars_child_in_text_or_tspan(): Extract this from rsvg_characters_impl() rsvg-base.c | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) commit 2c29b87d2a4b77da8a2dff9541dd1ccb3320b673 Author: Federico Mena Quintero Date: Wed Dec 6 07:13:00 2017 -0600 Limit the "const xmlChar *ch, int len" madness to libxml callbacks Things that plug to libxml use its weird types; things on our side use "const char *foo, gssize len" per glib's conventions. rsvg-base.c | 20 ++++++++++---------- rsvg-private.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) commit 9f38deb1a59a4f5d643e64d3db0efb2cfce9a885 Author: Federico Mena Quintero Date: Tue Dec 5 19:47:23 2017 -0600 close_impl(): Internal function renamed from rsvg_handle_close_impl() rsvg-base.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 36b42b641f04b206d29e56c5f6588a862de3e344 Author: Federico Mena Quintero Date: Tue Dec 5 19:46:30 2017 -0600 write_impl(): Internal function renamed from rsvg_handle_write_impl() rsvg-base.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 323cb2798dcf9e9cd42cfaf66e502e113dd81fdb Author: Federico Mena Quintero Date: Tue Dec 5 19:45:44 2017 -0600 rsvg-handle.c: Move more RsvgHandle methods here rsvg-base.c | 562 --------------------------------------------------------- rsvg-handle.c | 565 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 565 insertions(+), 562 deletions(-) commit 78874a1102d891cba57264b8f5ca804f8cd55d85 Author: Federico Mena Quintero Date: Tue Dec 5 19:39:43 2017 -0600 rsvg-handle.c: Move the constructors here from rsvg-base.c rsvg-base.c | 88 ----------------------------------------------------------- rsvg-handle.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 88 deletions(-) commit e39a066df1d5b42c0cf6b0324797822c9123e5b0 Author: Federico Mena Quintero Date: Tue Dec 5 19:35:55 2017 -0600 Rename rsvg-gobject.c to rsvg-handle.c After all, that's where RsvgHandle is instantiated... Makefile.am | 2 +- rsvg-gobject.c => rsvg-handle.c | 0 2 files changed, 1 insertion(+), 1 deletion(-) commit 2104a7053b30952a0d3d66405483fdd719840c2b Author: Federico Mena Quintero Date: Tue Dec 5 19:33:09 2017 -0600 Makefile.am: sort the lists of source files Makefile.am | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 9b2b5ba5cf8a1d5efdafdbc06040460dc9f7895f Author: Federico Mena Quintero Date: Tue Dec 5 19:25:39 2017 -0600 Port NodeChars to Rust. Yay! Makefile.am | 1 + rsvg-base.c | 85 +++------------------------------------ rsvg-private.h | 1 + rust/src/chars.rs | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ rust/src/lib.rs | 7 ++++ 5 files changed, 132 insertions(+), 80 deletions(-) commit dc4f567e80b69769ce475095613fe42898fbcd92 Author: Federico Mena Quintero Date: Tue Dec 5 19:24:31 2017 -0600 Provide and bind rsvg_state_set_cond_true() to Rust rsvg-styles.c | 6 ++++++ rsvg-styles.h | 3 +++ rust/src/drawing_ctx.rs | 5 +++++ 3 files changed, 14 insertions(+) commit e4a3de8455d944346c1062895a97d3186e2e9cb2 Author: Federico Mena Quintero Date: Tue Dec 5 17:44:21 2017 -0600 RsvgNodeChars: Make private; provide an accessor rsvg_node_chars_get_string() rsvg-base.c | 16 ++++++++++++++++ rsvg-private.h | 6 ++---- rsvg-text.c | 34 ++++++++++++++++++++++++++-------- 3 files changed, 44 insertions(+), 12 deletions(-) commit 12c34a83c860b911979e4d6ff550edba731fd549 Author: Federico Mena Quintero Date: Tue Dec 5 16:18:59 2017 -0600 Simplify the code flow in rsvg_characters_impl() rsvg-base.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit 1ab84e99917a9bbc765d8257a6321236a9889542 Author: Federico Mena Quintero Date: Tue Dec 5 16:13:31 2017 -0600 rsvg_node_chars_new(): Make the caller use rsvg_node_chars_append() for the initial contents rsvg-base.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) commit 1cb7ee643f849f0751e72f48dc782d4a2e1304f7 Author: Federico Mena Quintero Date: Tue Dec 5 16:10:52 2017 -0600 rsvg_node_chars_append(): Factor out a way to append characters to a chars node rsvg-base.c | 58 ++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 26 deletions(-) commit 6226cb05e3ab1ddc4f8eede5449d823faab48bf9 Author: Federico Mena Quintero Date: Tue Dec 5 16:10:01 2017 -0600 rsvg_make_valid_utf8(): Take a "gssize len", like glib functions do rsvg-text.c | 4 ++-- rsvg-text.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 1cb6bf7f4ee47e4b9c38cf429bb2d1d2619f3b06 Author: Federico Mena Quintero Date: Tue Dec 5 15:10:34 2017 -0600 rsvg_text_render_text(): Make static rsvg-text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6feb907439f298c7c5f39c422bd9ab8edf6ce6c8 Author: Federico Mena Quintero Date: Sat Nov 11 04:52:09 2017 -0600 bgo#761175 - Allow masks to (re)use a node being referenced If a element acquires a node for drawing, then it needs to release the node before calling pop_discrete_layer(). Mask generation occurs in that function, and the mask may in turn reuse the referenced node. If the node is still acquired at that time, the mask will not be able to use it. We also regenerate the test reference file; this seems to have changed due to the the changes to the mask's default bounds when NodeMask was ported to Rust. https://bugzilla.gnome.org/show_bug.cgi?id=761175 rust/src/structure.rs | 5 +++-- .../reftests/bugs/761175-recursive-masks-ref.png | Bin 513 -> 460 bytes 2 files changed, 3 insertions(+), 2 deletions(-) commit dab133e89f0f708b7c9f6c6caef55090f792f6b8 Author: Federico Mena Quintero Date: Tue Dec 5 07:01:53 2017 -0600 Add reftests/bugs/761175-recursive-masks.svg for the previous commit .../reftests/bugs/761175-recursive-masks-ref.png | Bin 0 -> 513 bytes .../reftests/bugs/761175-recursive-masks.svg | 50 +++++++++++++++++++++ 2 files changed, 50 insertions(+) commit f7157475844abb20f9a894893053bf2df6795f17 Author: Federico Mena Quintero Date: Mon Dec 4 21:04:57 2017 -0600 Some test files were not in git!? tests/fixtures/reftests/bugs/760180-ref.png | Bin 0 -> 8640 bytes tests/fixtures/reftests/bugs/760180.svg | 159 +++++++++++++++++++++ .../reftests/svg1.1/masking-path-05-f-ref.png | Bin 0 -> 7225 bytes .../fixtures/reftests/svg1.1/masking-path-05-f.svg | 78 ++++++++++ 4 files changed, 237 insertions(+) commit d535a8f21f218f81c79a2749a54237d0bf526e8f Author: Federico Mena Quintero Date: Mon Dec 4 21:00:21 2017 -0600 mask.rs: Port NodeMask completely to Rust. Yay! Removed rsvg-mask.c. Makefile.am | 2 +- rsvg-base.c | 2 +- rsvg-cairo-draw.c | 12 ++-- rsvg-mask.c | 128 ---------------------------------------- rsvg-mask.h | 24 ++++---- rust/src/lib.rs | 11 ++++ rust/src/mask.rs | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 204 insertions(+), 147 deletions(-) commit d0b7a3779f42271b02f394fe0f4016c349df4db0 Author: Federico Mena Quintero Date: Mon Dec 4 20:01:49 2017 -0600 RsvgMask: make private; provide accessor functions rsvg-cairo-draw.c | 29 ++++++++++++++++++++--------- rsvg-mask.c | 42 ++++++++++++++++++++++++++++++++++++++++++ rsvg-mask.h | 25 ++++++++++++++++++------- 3 files changed, 80 insertions(+), 16 deletions(-) commit 2aac81d91b17350389ebdee29194422e319525e0 Author: Federico Mena Quintero Date: Mon Dec 4 19:35:17 2017 -0600 rsvg_cairo_generate_mask(): Rename variable rsvg-cairo-draw.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) commit c6ddf2ed4d768fd88adbea2b63f575cd523022ea Merge: 75c1080 5fc44d9 Author: Federico Mena Quintero Date: Mon Dec 4 18:55:28 2017 -0600 Merge branch 'no-xrefs-in-paint-servers' commit 5fc44d9cf5e3b20ac06264d93554bd7fa701f788 Author: Federico Mena Quintero Date: Mon Dec 4 18:29:46 2017 -0600 Clean up rsvg-defs a bit rsvg-defs.c | 54 ++++++++++++++++++++++++++---------------------------- rsvg-io.c | 2 +- rsvg-io.h | 4 ---- 3 files changed, 27 insertions(+), 33 deletions(-) commit 5d171cf4f4b3c1e34956c704bb190ca73b90dbb5 Author: Federico Mena Quintero Date: Mon Dec 4 18:28:43 2017 -0600 rsvg-io - Don't resolve relative filenames here; do it in the caller rsvg-io.c | 47 ++++++++++++----------------------------------- 1 file changed, 12 insertions(+), 35 deletions(-) commit b49acf81cc50dd5a812c4afb3a5bbf68295d37fe Author: Federico Mena Quintero Date: Mon Dec 4 18:27:59 2017 -0600 rsvg_get_base_uri_from_filename(): Make private rsvg-base.c | 3 +-- rsvg-private.h | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) commit 4de19d9fdddf81773125b04a4defe1ffd0d3bfe0 Author: Federico Mena Quintero Date: Mon Dec 4 18:26:39 2017 -0600 rsvg_handle_new_from_file(): Use the GFile machinery to convert a filename to a URI rsvg-base-file-util.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit ea4c0821269ccce62bcaf368f21d9edd0dbd51e8 Author: Federico Mena Quintero Date: Mon Dec 4 18:25:20 2017 -0600 rsvg_handle_resolve_uri(): Make public rsvg-base.c | 10 +++++----- rsvg-private.h | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) commit a3c375ffc85d3759d01841bc7489bddd1876a0da Author: Federico Mena Quintero Date: Mon Dec 4 13:23:17 2017 -0600 rsvg_decode_data_uri(): Renamed from rsvg_acquire_data_data() rsvg-io.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 6efc43c86b8c4ec0598b7fd9ceb0d274fe1a7ca6 Author: Federico Mena Quintero Date: Mon Dec 4 13:22:54 2017 -0600 Add emacs indentation magic rsvg-io.c | 1 + 1 file changed, 1 insertion(+) commit 89c40a0838b35cfc1dd8a93c68589e094ea28516 Author: Federico Mena Quintero Date: Mon Dec 4 13:21:27 2017 -0600 rsvg_acquire_data_data(): Remove unused argument rsvg-io.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 5c55192f48b7ac094a5f4486f20af5124701694d Author: Federico Mena Quintero Date: Mon Dec 4 13:11:37 2017 -0600 rsvg_allow_load(): Rename from _rsvg_handle_allow_load(); make it public rsvg-base.c | 14 ++++++++------ rsvg-private.h | 5 +++++ 2 files changed, 13 insertions(+), 6 deletions(-) commit 72a4f0584e08bcb16b189eb8b395e193fdc3f88a Author: Federico Mena Quintero Date: Mon Dec 4 13:06:39 2017 -0600 Make _rsvg_handle_allow_load() take a GFile for the base uri, not a handle rsvg-base.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) commit 75c1080d640ea925c5057efd1052105f37625c13 Author: Federico Mena Quintero Date: Sun Dec 3 21:12:14 2017 -0600 Remove the C binding to AspectRatio; it's no longer used This also lets us remove the dependency on the bitflags crate. rsvg-css.h | 27 --------- rust/Cargo.lock | 1 - rust/Cargo.toml | 1 - rust/src/aspect_ratio.rs | 139 +---------------------------------------------- rust/src/lib.rs | 7 --- 5 files changed, 1 insertion(+), 174 deletions(-) commit 900f8e2007a2552fc43dc6c7865853d4ead590d0 Author: Federico Mena Quintero Date: Fri Dec 1 10:23:21 2017 -0600 coord_units.rs: Test the default value and converter rust/src/coord_units.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) commit f06ae87ff5910ea4bba9e8fd99b18a7e2d93f906 Author: Federico Mena Quintero Date: Fri Dec 1 08:00:39 2017 -0600 New macro coord_units! to create newtypes over CoordUnits with a default value Different SVG elements have attributes that can take "userSpaceOnUse" or "objectBoundingBox" as a value; that's our CoordUnits enum. However, those different SVG elements/attributes have different defaults among those two possible values. Now we have a macro coord_units! that defines a newtype around CoordUnits, and provides an `impl Default` with a user-provided default value. The idea is that each SVG element/attribute will call coord_units! to create a suitable type for itself, with the default value it needs. Makefile.am | 1 + rust/src/clip_path.rs | 11 +++---- rust/src/coord_units.rs | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ rust/src/gradient.rs | 25 ++++++++------- rust/src/lib.rs | 3 ++ rust/src/paint_server.rs | 43 ------------------------- rust/src/pattern.rs | 54 ++++++++----------------------- 7 files changed, 119 insertions(+), 101 deletions(-) commit a30570a8cefa37d61c0fbee99e3b85f0b745bea6 Author: Federico Mena Quintero Date: Thu Nov 30 20:37:59 2017 -0600 Rename PaintServerUnits to CoordUnits rust/src/clip_path.rs | 6 +++--- rust/src/gradient.rs | 14 +++++++------- rust/src/paint_server.rs | 26 ++++++++++++++------------ rust/src/pattern.rs | 30 +++++++++++++++--------------- 4 files changed, 39 insertions(+), 37 deletions(-) commit 027cc7d98d833cb6fb14534c17e890c0275b6f29 Author: Federico Mena Quintero Date: Thu Nov 30 13:40:37 2017 -0600 Fix links to code_of_conduct.md README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb13ddb7498f46aeffcf4008840b60d1f8f1db7e Author: Federico Mena Quintero Date: Thu Nov 30 13:38:47 2017 -0600 Fix links to code_of_conduct.md CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1872206d3878746d3cdeb5c1b4b09b5bb3a5711a Author: Federico Mena Quintero Date: Thu Nov 30 13:37:38 2017 -0600 CONTRIBUTING.md: markup fixes CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ed38d1c814239fb8f562ad853f302f7bd7d79221 Author: Federico Mena Quintero Date: Thu Nov 30 11:32:11 2017 -0600 Update Cargo.lock rust/Cargo.lock | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit 388870e1fc285bd951c1a13f594672cb10750cc2 Author: Federico Mena Quintero Date: Thu Nov 30 11:31:20 2017 -0600 clip_path.rs: Move the clipPath implementation to Rust. Yay! Makefile.am | 1 + rsvg-base.c | 2 +- rsvg-mask.c | 54 ------------------------------------------- rsvg-mask.h | 4 +++- rsvg-private.h | 4 ++-- rust/src/clip_path.rs | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ rust/src/lib.rs | 6 +++++ rust/src/paint_server.rs | 1 + rust/src/pattern.rs | 2 +- 9 files changed, 75 insertions(+), 59 deletions(-) commit e5c96861042cab22d86a818fba9b341c5b19979a Author: Federico Mena Quintero Date: Thu Nov 30 09:59:12 2017 -0600 Make RsvgClipPath private; provide an accessor for its only field rsvg-cairo-clip.c | 8 ++++---- rsvg-cairo-draw.c | 8 ++------ rsvg-mask.c | 17 +++++++++++++++++ rsvg-mask.h | 9 +++------ rsvg-private.h | 3 ++- 5 files changed, 28 insertions(+), 17 deletions(-) commit 19cac818cacc4bbb31f891a7566d36fa2e420955 Author: Federico Mena Quintero Date: Thu Nov 30 09:47:32 2017 -0600 Makefile.am: Oops, I deleted a "cargo" command Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5a291f9800ba1c8a8fb15cf118dc9f3ee456867 Merge: 5c4cca0 98c624b Author: Federico Mena Quintero Date: Thu Nov 30 09:26:42 2017 -0600 Merge remote-tracking branch 'origin/master' commit 5c4cca0d7050148b1d1010e299cd1351e69d5b0d Merge: d55929b ef4f54f Author: Federico Mena Quintero Date: Thu Nov 30 09:24:21 2017 -0600 Merge branch 'hospitality' commit ef4f54f32a010dc8b81d3f1e19359505a06f77aa Author: Federico Mena Quintero Date: Thu Nov 30 09:20:43 2017 -0600 COMPILING.md: Mention Cargo's shenanigans of downloading sources COMPILING.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit c657a638622b7e21f9f32761ba47b2d548f32fe2 Author: Federico Mena Quintero Date: Thu Nov 30 09:18:45 2017 -0600 Again... COMPILING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 229edfa4a32077ada0d82b9b48569cd39b5f1651 Author: Federico Mena Quintero Date: Thu Nov 30 09:18:03 2017 -0600 Try to fix internal links in COMPILING.md COMPILING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit c1386f105b20a7c5c6747858e678e4fd5d97b4ec Author: Federico Mena Quintero Date: Thu Nov 30 09:15:55 2017 -0600 COMPILING.md: New file with details on compilation options COMPILING.md | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 9 +++++ 2 files changed, 120 insertions(+) commit d55929b1fa6cf596ed512ddc2d7336d1a31ae835 Author: Federico Mena Quintero Date: Thu Nov 30 08:32:08 2017 -0600 Makefile.am: Refactor some variable substitutions Makefile.am | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 98c624b6a04c74323dd6a3e8075db81ec40c4582 Author: Philip Withnall Date: Thu Nov 30 14:29:19 2017 +0000 rsvg-styles: Fix indentation Signed-off-by: Philip Withnall rsvg-styles.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da7f6e859102cc1c99fab3d5894ad2ce28b3b60c Author: Federico Mena Quintero Date: Thu Nov 30 08:26:47 2017 -0600 Makefile.am: Indent the cargo build command more nicely Makefile.am | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 429f65c6074aca60722a30342aeec07f9bea06a4 Author: Federico Mena Quintero Date: Thu Nov 30 08:20:01 2017 -0600 configure.ac: Put the cross-compiling machinery all together configure.ac | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit ac59670ca8d8f648f1718cd25b68b97a0feb0baf Author: Philip Withnall Date: Thu Nov 30 10:41:58 2017 +0000 rsvg-styles: Fix badly structured comparisons It looks like someone ported from g_strcmp0() to g_str_equal() at some point and forgot to remove the return value comparison, leaving two comparisons against the g_str_equal() return value in the condition. Drop one of the comparisons, hoping it’s the right one based on the context. Spotted with -Wlogical-not-parentheses. Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=791017 rsvg-styles.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 28982201975343028d1610f36ebe839b4497a420 Author: Philip Withnall Date: Thu Nov 30 10:41:22 2017 +0000 rsvg-filter: Use fabs() instead of abs() for floats Fixes a compiler warning (-Wabsolute-value). Signed-off-by: Philip Withnall https://bugzilla.gnome.org/show_bug.cgi?id=791017 rsvg-filter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e8cb72021b073c60c16108a5d2d5ab28a791695e Author: Federico Mena Quintero Date: Mon Nov 27 08:32:33 2017 -0600 Markup fixes CONTRIBUTING.md | 3 ++- tests/README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit 0a02f6a60e07167649997bd5fab2edc65942bc66 Author: Federico Mena Quintero Date: Mon Nov 27 08:24:44 2017 -0600 tests/README.md: Update for the new test types tests/README.md | 147 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 92 insertions(+), 55 deletions(-) commit a4ff444420543d167896ac36f96aa758061cac95 Author: Federico Mena Quintero Date: Mon Nov 27 07:56:42 2017 -0600 Make CONTRIBUTING.md friendlier to non-git.gnome.org users CONTRIBUTING.md | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) commit 109b57365829789fd84c54b24231435d79340ef9 Author: Federico Mena Quintero Date: Mon Nov 27 07:48:57 2017 -0600 README.md: light editing README.md | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) commit d22248d3502fe0a1f2988fc60157941cb14ab79f Author: Federico Mena Quintero Date: Sat Nov 25 11:49:46 2017 -0600 Cross-link between README.md and CONTRIBUTING.md CONTRIBUTING.md | 5 ++++- README.md | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) commit b5986d8b00f79d79e47da9703fa3ffa6cce859c3 Author: Federico Mena Quintero Date: Sat Nov 25 11:38:42 2017 -0600 Make the toplevel README.md more hospitable README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) commit e56b240c02d3a32429bd3013ec08246e685a9f02 Author: Federico Mena Quintero Date: Wed Nov 22 09:38:09 2017 -0600 No need to test parse_Num() from lalrpop rust/src/parse_transform.lalrpop | 2 +- rust/src/transform.rs | 19 ------------------- 2 files changed, 1 insertion(+), 20 deletions(-) commit 6f3b8b8c056507ea11728ed0999c9609e549ea6a Author: Federico Mena Quintero Date: Wed Nov 22 09:37:49 2017 -0600 Fix some compiler warnings rust/src/error.rs | 2 ++ rust/src/marker.rs | 2 -- rust/src/parsers.rs | 2 +- rust/src/structure.rs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) commit 6d16b4647f81ad122b0f2317880fce9b3466fd86 Author: Federico Mena Quintero Date: Wed Nov 22 09:24:15 2017 -0600 Test the toplevel parse_transform(), not the lalrpop-generated implementation We'll move to a parser for transformations based on rust-cssparser, instead of lalrpop: * To reduce the number of dependencies a bit. Also, to avoid bootstrapping lalrpop, which currently has issues on build systems with read-only source trees - https://github.com/nikomatsakis/lalrpop/issues/272 * Because lalrpop has trouble with parsers that get called thousands of times during the process; it seems to recompile the regexps each time - https://github.com/nikomatsakis/lalrpop/issues/273 This is *MUCH* faster if built in release mode, but still not as fast as the old librsvg. * SVG Transformations are pretty simple, anwyay, and they don't require an industrial-strength yacc-like parser. rust/src/transform.rs | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) commit b5c642f781726f4402813890ffd8294fb83b4b3a Author: Federico Mena Quintero Date: Wed Nov 22 09:12:22 2017 -0600 Fix "/*" inside comments rsvg-gobject.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dac7a7b243f1acdf6776022e3ab288f8d2426fdb Author: Federico Mena Quintero Date: Tue Nov 21 10:56:26 2017 -0600 RsvgHandle: Add useful toplevel docs .gitignore | 3 ++ rsvg-gobject.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 93 insertions(+), 14 deletions(-) commit 7a3c3fb724f864edc83f63c4aa5c382153a65502 Author: Federico Mena Quintero Date: Tue Nov 21 07:50:32 2017 -0600 Mention the ability to render a subset of the SVG doc/overview.xml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit a0a1147168fca0b3f4b0b872685d6d53796d764e Author: Federico Mena Quintero Date: Mon Nov 20 17:00:21 2017 -0600 Add an overview to the docs doc/Makefile.am | 3 ++- doc/overview.xml | 37 +++++++++++++++++++++++++++++++++++++ doc/rsvg-docs.xml | 2 ++ 3 files changed, 41 insertions(+), 1 deletion(-) commit 438acfed22789bf5013fd7916a79fa2cd7dad070 Author: Federico Mena Quintero Date: Mon Nov 20 16:53:17 2017 -0600 Update the toplevel docs with a better description of what librsvg is doc/rsvg-docs.xml | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 4 deletions(-) commit 51be631322d46b090a0c5bed1f234e6af595eb37 Author: Federico Mena Quintero Date: Mon Nov 20 16:38:27 2017 -0600 Convert the toplevel rsvg-docs.xml to DocBook 5.1 Kinda sorta using http://docbook.org/docs/howto/howto.html#convert4to5 doc/rsvg-docs.xml | 68 +++++++++++++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 35 deletions(-) commit 5b163ba368fa928055331c33e2b0b078a63195fb Author: Federico Mena Quintero Date: Fri Nov 17 18:35:34 2017 -0600 Delete TODO; it's obsolete TODO | 40 ---------------------------------------- 1 file changed, 40 deletions(-) commit fd9541ad05f9a4f795242dfde75a1ccf233c2d8b Author: David Michael Date: Sat Nov 4 22:50:15 2017 -0400 Support cross-compiling with Rust The primary change here is to add the --target=$(host) option to the cargo build command, so the Rust components are compiled for the target host system specified by the configure command. The cargo target subdirectory also needed to be prefixed with the host triplet for cross-compiling. Some of the crates' build scripts require cross-pkg-config settings in the environment, so they are set for the cargo build command. It's worth noting that Rust targets are limited to built-in values by default, so the --host value given to configure may not be supported. Built in targets can be found by listing the directory src/librustc_back/target in the rustc source. When building with an unsupported target, the user will have to write a target JSON definition file and set the environment variable RUST_TARGET_PATH to its directory (as with building any Rust project). This also sneaks in prefixing the Rust library recipe line with a "+" character to pass the GNU Make jobserver environment and file descriptors, which cargo supports to act as a jobserver client. Makefile.am | 10 +++++++--- configure.ac | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) commit 0f12c89ec13db0bf321e7bcd54798581600f1d14 Author: Chun-wei Fan Date: Fri Oct 20 18:09:21 2017 +0800 Visual Studio builds: Enhance security of x64 binaries Use the HIGHENTROPYVA linker option on x64 builds to enhance the security of the built binaries. Pointed out by Ignacio Casal Quinteiro. win32/vs12/rsvg-build-defines.props | 1 + 1 file changed, 1 insertion(+) commit f49facaa0aae457489a4538684a6a4fcd201f921 Author: Federico Mena Quintero Date: Tue Oct 3 19:50:28 2017 -0500 Factor out create_xml_stream_parser() rsvg-base.c | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) commit 6d94c6c99a08d0e657a728501813be329e8ca497 Author: Federico Mena Quintero Date: Tue Oct 3 19:49:59 2017 -0500 Rename create_xml_push_parser() rsvg-base.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit dee021ebd02a6b976e416cfdd36c4271018252d5 Author: Federico Mena Quintero Date: Tue Oct 3 19:43:08 2017 -0500 bgo#787895 - Use xmlCreateIOParserCtxt() for I/O callbacks instead of a push parser We were using libxml2 incorrectly since 2010 (!). We have to use xmlCreatePushParserCtxt() with xmlParseChunk(), *OR* xmlCreateIOParserCtxt(io_callbacks) with xmlParseDocument(). https://bugzilla.gnome.org/show_bug.cgi?id=787895 rsvg-base.c | 42 +++++++++++++++++++----------------------- rsvg-xml.c | 45 +++++++++++++++++++++++++++------------------ rsvg-xml.h | 11 ++++++++--- 3 files changed, 54 insertions(+), 44 deletions(-) commit 65cc957c4e2bd91fa57a14cdfd280e1ff011b396 Author: Federico Mena Quintero Date: Tue Oct 3 19:12:53 2017 -0500 Un-inline a function (we'll change the callers), and tighten assertions rsvg-base.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 8f4b2e5ee003d0369f64a6759ff90a13073285b8 Author: Federico Mena Quintero Date: Tue Oct 3 19:02:54 2017 -0500 Centralize a function to create an libxml2 parser rsvg-base.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit a589ee8d957a4aba07be64370112afa457de4ef9 Author: Federico Mena Quintero Date: Tue Oct 3 18:54:38 2017 -0500 Remove unnecessary argument rsvg-base.c | 4 ++-- rsvg-xml.c | 3 +-- rsvg-xml.h | 1 - 3 files changed, 3 insertions(+), 5 deletions(-) commit 18773041f17c8de0a8bdd6a02135fd842fddc8f1 Author: Federico Mena Quintero Date: Tue Oct 3 18:43:29 2017 -0500 Set replaceEntities where we set the rest of the XML parser's options It's a bit iffy that we do it by directly poking inside the xmlParserCtxPtr... rsvg-base.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 9aedfb93de1666ffae65b1ba6608655efe02ba1c Author: Federico Mena Quintero Date: Tue Oct 3 18:33:29 2017 -0500 Use xmlCtxtUseOptions() instead of setting ctxt->options directly (!) We now require libxml2 version 2.9.0 or later. That release is from 2012, so we should be okay. configure.ac | 2 +- rsvg-base.c | 21 ++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) commit 1d467e45ca8d56836b7f2b48f6f7be5bd2ae9e8f Author: Federico Mena Quintero Date: Tue Oct 3 17:52:58 2017 -0500 Comment about having to slurp the whole compressed file if using write()/close() rsvg-base.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 63c245ec654559da25c8fe5fa4522e560b2c9eaf Author: Federico Mena Quintero Date: Tue Oct 3 15:10:27 2017 -0500 Use a different reading state when reading compressed data This is to avoid having special cases everywhere if priv->compressed_input_stream is present. rsvg-base.c | 19 +++++++++---------- rsvg-private.h | 1 + 2 files changed, 10 insertions(+), 10 deletions(-) commit 2f75588d304fb579d7b2e8416f863c6a2b954ab4 Author: Federico Mena Quintero Date: Tue Oct 3 15:06:08 2017 -0500 Create the compressed_input_stream in a separate function rsvg-base.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) commit d0e169e94a925fe7596b9e2c6edba513320fa0c2 Author: Federico Mena Quintero Date: Tue Oct 3 15:01:52 2017 -0500 Rename data_input_stream to compressed_input_stream for clarity rsvg-base.c | 17 +++++++++-------- rsvg-gobject.c | 8 ++++---- rsvg-private.h | 2 +- 3 files changed, 14 insertions(+), 13 deletions(-) commit 639d9ab28c55def69434231a368601619869d6eb Author: Federico Mena Quintero Date: Tue Oct 3 15:01:18 2017 -0500 Rename the loading tests to have a "/loading/" prefix tests/loading.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit c10be488e2a267b077f0d95dbf9ee9572ad3a38e Author: Federico Mena Quintero Date: Tue Oct 3 14:55:08 2017 -0500 Test reading compressed SVGs one and two bytes at a time To test reading the 2-byte GZ header one byte at a time, and also in a single shot. tests/loading.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) commit 8005b3bf87569d7f20e660988fe827780890b463 Author: Federico Mena Quintero Date: Tue Oct 3 14:54:48 2017 -0500 Run the loading tests first... they are kind of the basic smokee tests tests/Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 1e89624e4ae8dd01cc628a66b6ffded76e42eb38 Author: Federico Mena Quintero Date: Tue Oct 3 14:45:37 2017 -0500 Allow loading one byte at a time with rsvg_handle_write() This hadn't worked for a long time for compressed files, since we weren't holding the state of reading the gzip header. Now we have a test for it. rsvg-base.c | 57 ++++++++++++++++++++++++++++++++++++++++++++------------- rsvg-private.h | 1 + tests/loading.c | 9 +++++++-- 3 files changed, 52 insertions(+), 15 deletions(-) commit 6e7114d4464af636a86961c4cfe5072f66abd408 Author: Federico Mena Quintero Date: Tue Oct 3 14:22:58 2017 -0500 rsvg-base.c: Use constants for the gzip header magic rsvg-base.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit cc669a6f28290b25720235212b13c515a83936b6 Author: Federico Mena Quintero Date: Tue Oct 3 14:16:06 2017 -0500 tests/loading.c: New tests for the loading machinery We start with a test to load an SVG one byte at a time, using rsvg_handle_write(). tests/Makefile.am | 7 ++++++- tests/loading.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) commit 71a55ede7148ef05dbf8877b114227e8c0b0f435 Author: Federico Mena Quintero Date: Tue Oct 3 14:07:40 2017 -0500 Add new test files to tests/Makefile.am tests/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 6735f17abbcfbd2bca91a3fdd32a9f85553756ce Author: Federico Mena Quintero Date: Tue Oct 3 13:47:48 2017 -0500 Add compressed version of the last test file tests/fixtures/loading/gnome-cool.svgz | Bin 0 -> 5183 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 31ae0c5ef2bc38635cd939eb332da582904f53dd Author: Federico Mena Quintero Date: Tue Oct 3 13:45:04 2017 -0500 Update an out-of-date Sodipodi (!) file to plain SVG to use for testing tests/fixtures/loading/gnome-cool.svg | 66 +++++++++++++++++++++++++++++++ tests/samples/gnome-sodi2.svg | 73 ----------------------------------- 2 files changed, 66 insertions(+), 73 deletions(-) commit 0c0c26c8eeabd215fc11bff5a32595d241be1f59 Author: Federico Mena Quintero Date: Thu Sep 28 13:19:16 2017 -0500 ViewBox::new() - new constructor rust/src/viewbox.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit 4a6db6c804d600cb0f65ec28498348537283924f Author: Federico Mena Quintero Date: Thu Sep 28 09:50:46 2017 -0500 Remove test for 760180.svg - it is the same SVG as painting-marker-06-f.svg tests/fixtures/reftests/bugs/760180-ref.png | Bin 8640 -> 0 bytes tests/fixtures/reftests/bugs/760180.svg | 159 ---------------------------- 2 files changed, 159 deletions(-) commit 1e5331ae39244472da178a91f78fa044b0359cd7 Author: Federico Mena Quintero Date: Thu Sep 28 09:27:07 2017 -0500 wip: marker.rs: make order consistent with viewport rust/src/marker.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1bc6a60d85354650b8da9f4bfc5d3e32853b530d Author: Federico Mena Quintero Date: Thu Sep 28 09:13:34 2017 -0500 viewport.rs: Give better names to the test functions rust/src/viewport.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e9cd4983e2197e8fdefefbe30b5e2c9903903359 Author: Federico Mena Quintero Date: Thu Sep 28 09:05:28 2017 -0500 viewport.rs: Make the order of operations consistent rust/src/viewport.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit d2b9b0d53932ab52166f0c45f5f66261893e37c1 Author: Federico Mena Quintero Date: Thu Sep 28 09:04:52 2017 -0500 viewport.rs: Disable rendering if the viewBox size is 0, per the spec rust/src/viewport.rs | 5 +++++ 1 file changed, 5 insertions(+) commit 62f31feec7d7bb94b9e9fa0e525b67bbd4042414 Author: Federico Mena Quintero Date: Thu Sep 28 08:50:19 2017 -0500 draw_in_viewport(): Take in a ClipMode enum instead of an obscure boolean I'm starting to understand https://www.w3.org/TR/SVG/masking.html#AutoClipAtViewportNotViewBox which mentions the difference between clipping to the viewport (the x/y/width/heigth attributes in the element being rendered), and clipping to the vbox (the viewBox attribute). rust/src/structure.rs | 6 +++--- rust/src/viewport.rs | 44 +++++++++++++++++++++++++++----------------- 2 files changed, 30 insertions(+), 20 deletions(-) commit dab8c13002ed27eab6245dcac992435a3cd962a0 Author: Federico Mena Quintero Date: Wed Sep 27 19:10:16 2017 -0500 marker.rs: Start directly with the state's current transformation, not an identity rust/src/marker.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 3f1a03f9db26d265f8089322e817d00be00d8d46 Author: Federico Mena Quintero Date: Wed Sep 27 19:07:58 2017 -0500 marker.rs: Compute the rotation with less code rust/src/marker.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) commit 01a4b0a2d4985c7dc25afcfac0709e9d5eefb439 Author: Federico Mena Quintero Date: Wed Sep 27 14:40:08 2017 -0500 viewport.rs: Start adding tests rust/src/viewport.rs | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) commit a4d8b49128bea1a2f513e8661351a4482ee8f30a Author: Federico Mena Quintero Date: Wed Sep 27 13:10:39 2017 -0500 Implement draw_in_viewport() indirectly so we can have some tests rust/src/viewport.rs | 75 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 67 insertions(+), 8 deletions(-) commit 02a27e9eb780422ca6ba04d748c097e18b71da39 Author: Federico Mena Quintero Date: Wed Sep 27 11:35:06 2017 -0500 draw_in_viewport(): Don't pass an affine to the callback; it's implicit now rust/src/structure.rs | 4 ++-- rust/src/viewport.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit d2ebff93d900dd33758cd88013b2d0da59102b93 Author: Federico Mena Quintero Date: Wed Sep 27 11:00:26 2017 -0500 NodeUse::draw(): use draw_in_viewport() rust/src/structure.rs | 50 ++++++++++++++++---------------------------------- 1 file changed, 16 insertions(+), 34 deletions(-) commit c658b84f04df09825a11ef78084b42d404536536 Author: Federico Mena Quintero Date: Wed Sep 27 10:58:49 2017 -0500 draw_in_viewport(): Take in a clip_before_layer_push argument I'm not sure if this is because adding the clip rect before pushing a layer is different from pushing after, *OR* if it is because the clip should be set from the vbox (when it exists) vs. setting it from the viewport area. rust/src/structure.rs | 1 + rust/src/viewport.rs | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) commit b59206625d998cdc45d63019937c09d03c31d2e8 Author: Federico Mena Quintero Date: Wed Sep 27 10:20:31 2017 -0500 Set the current state's affine in the generic function rust/src/structure.rs | 1 - rust/src/viewport.rs | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 7fd11755ee0d148bd5caa4c26ed8c4b91c6df52a Author: Federico Mena Quintero Date: Wed Sep 27 08:47:50 2017 -0500 structure.rs: Factor out some duplicated code rust/src/structure.rs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit 2a66e60257225b6d784431097d4aba47df7af9f8 Author: Federico Mena Quintero Date: Wed Sep 27 08:44:40 2017 -0500 viewport.rs: new draw_in_viewport() function The general "establish a new viewport" pattern is done in different ways in several places in the code. We capture this pattern in a single function which takes care of setting up a clipping rectangle and a transformation matrix, and call a lambda to actually draw the contents. Makefile.am | 3 ++- rust/src/lib.rs | 1 + rust/src/structure.rs | 68 ++++++++++++--------------------------------------- rust/src/viewport.rs | 60 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 78 insertions(+), 54 deletions(-) commit ecb670f459069a8ec7c18cb3f8b451d0c06d17e4 Author: Federico Mena Quintero Date: Mon Sep 25 19:36:46 2017 -0500 Move utility function in rsvg-image.[ch] to rsvg-base.c. With this, rsvg-image.[ch] are no more. Yay! Makefile.am | 2 -- rsvg-base.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++- rsvg-cairo-draw.c | 1 - rsvg-filter.c | 1 - rsvg-paint-server.c | 1 - rsvg-private.h | 3 +++ rsvg-structure.h | 4 +++ rsvg.c | 1 - 8 files changed, 83 insertions(+), 7 deletions(-) commit 6c66c98e2d529372db180b32d1a5a7199547174e Author: Federico Mena Quintero Date: Mon Sep 25 19:14:23 2017 -0500 image.rs: Move NodeImage over to Rust. Yay! Makefile.am | 1 + rsvg-base.c | 4 +- rsvg-image.c | 213 ------------------------------------------------------ rsvg-image.h | 55 -------------- rust/src/image.rs | 126 ++++++++++++++++++++++++++++++++ rust/src/lib.rs | 5 ++ 6 files changed, 134 insertions(+), 270 deletions(-) commit c058eb67d5c0768f3c20997ca9bcefa825fe6708 Author: Federico Mena Quintero Date: Mon Sep 25 19:13:36 2017 -0500 Remove unused imports rust/src/gradient.rs | 1 - rust/src/property_bag.rs | 1 - rust/src/stop.rs | 1 - rust/src/structure.rs | 1 - 4 files changed, 4 deletions(-) commit 2045fdab2455ff155e888daeaa1aee2d41a9be0c Author: Federico Mena Quintero Date: Mon Sep 25 18:36:52 2017 -0500 drawing_ctx.rs: Bind rsvg_render_surface() rust/src/drawing_ctx.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 0b98b376a56eec86b6a30ea0fbe16367ade3d17c Author: Federico Mena Quintero Date: Mon Sep 11 10:25:19 2017 -0500 Makefile.am: Oops, list README.md in dist_doc_DATA Since we renamed it to README.md, it wasn't automatically included in the dist tarball. Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit 5409facf6dfa3deac900a53b9345b4bbd9657d30 Author: Federico Mena Quintero Date: Tue Sep 5 10:10:41 2017 -0500 parse_or_value(): implement in terms of Option::unwrap_or() rust/src/property_bag.rs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) commit f46c92493a95c6a223fef138e16400cfe9756a00 Author: Federico Mena Quintero Date: Tue Sep 5 09:21:17 2017 -0500 NodeStop: validate "offset" using a validation function rust/src/stop.rs | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) commit 193dff84bab963ced8e945c855cf9d08486ab696 Author: Federico Mena Quintero Date: Tue Sep 5 09:20:36 2017 -0500 RsvgLength::new() - new method. Why didn't I do this a long time ago? rust/src/length.rs | 68 ++++++++++++++++-------------------------------------- 1 file changed, 20 insertions(+), 48 deletions(-) commit d7d38937e569486ac447ca0835b48469b73a190b Author: Federico Mena Quintero Date: Tue Sep 5 08:58:40 2017 -0500 Move all the RsvgLength::check_nonnegative() calls to the validation function This lets us remove the duplicated code that validates nonnegative lengths and converts the result to the appropriate error. rust/src/marker.rs | 8 ++------ rust/src/shapes.rs | 15 ++++++--------- rust/src/structure.rs | 33 ++++++--------------------------- 3 files changed, 14 insertions(+), 42 deletions(-) commit 6be9e887e0e752d72d051069fdb0965f8ac749aa Author: Federico Mena Quintero Date: Tue Sep 5 08:57:59 2017 -0500 RsvgLength::check_nonnegative(): Take ownership of self It's Copy, anyway... rust/src/length.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5c9b8bb3114047da98b11b29541def1fcba1e706 Author: Federico Mena Quintero Date: Tue Sep 5 08:32:49 2017 -0500 parse_or_*() - Take an extra argument, a validation function We'll use this to contain the extraction/parsing/validation of an attribute into a single function call, instead of making the caller implement the validation separately. rust/src/gradient.rs | 25 +++++++++++++------------ rust/src/marker.rs | 20 +++++++++++--------- rust/src/pattern.rs | 18 +++++++++--------- rust/src/property_bag.rs | 35 ++++++++++++++++++++++++++--------- rust/src/shapes.rs | 34 +++++++++++++++++----------------- rust/src/stop.rs | 2 +- rust/src/structure.rs | 32 ++++++++++++++++++++------------ 7 files changed, 97 insertions(+), 69 deletions(-) commit 91ceafdee6e0a369c72f66f250246c3e36d7332d Author: Federico Mena Quintero Date: Mon Sep 4 21:34:58 2017 -0500 Remove unused imports rust/src/property_bag.rs | 2 -- 1 file changed, 2 deletions(-) commit a3323e71aff2fe71f2eff25ba1f3eda646a4dd53 Author: Federico Mena Quintero Date: Mon Sep 4 21:34:45 2017 -0500 impl Parse for Color rust/src/color.rs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) commit 9a2a5e516281ca99bb53a0d194fc970e4c12136f Author: Federico Mena Quintero Date: Mon Sep 4 21:29:06 2017 -0500 Remove property_bag::length_or_*(); use parse_or_() instead Now that we have impl Parse for RsvgLength, this works. rust/src/gradient.rs | 18 +++++++++--------- rust/src/marker.rs | 28 ++++++++++++++-------------- rust/src/pattern.rs | 8 ++++---- rust/src/property_bag.rs | 31 ------------------------------- rust/src/shapes.rs | 40 ++++++++++++++++++++-------------------- rust/src/stop.rs | 2 +- rust/src/structure.rs | 16 ++++++++-------- 7 files changed, 56 insertions(+), 87 deletions(-) commit 0cd2fb2145c25898f296fe2c268f7527f58834c8 Author: Federico Mena Quintero Date: Mon Sep 4 21:18:04 2017 -0500 impl Parse for RsvgLength rust/src/gradient.rs | 1 + rust/src/length.rs | 10 ++++++++-- rust/src/structure.rs | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) commit 1ce008c7d0efed475ee567c42253d70845f3071a Author: Federico Mena Quintero Date: Mon Sep 4 21:13:25 2017 -0500 impl Parse for cairo::Matrix; remove property_bag::transform_or_none() We can now use the normal property_bag::parse_or_none() insted. rust/src/gradient.rs | 2 +- rust/src/pattern.rs | 2 +- rust/src/property_bag.rs | 10 ---------- rust/src/transform.rs | 12 ++++++++++++ 4 files changed, 14 insertions(+), 12 deletions(-) commit 5510e4c3f9c9c84bac4a05f6d93a09c9b4862544 Author: Federico Mena Quintero Date: Mon Sep 4 21:09:38 2017 -0500 parsers::Parse - new trait; we'll use this instead of std::FromStr This has a Data associated type, which is passed to parse(&str, data) -> Result<> We'll use that Data to pass RsvgLength's auxiliary data for parsing. Hopefully this way we can have a unified way to parse attribute values from strings, without having exceptions just because: a) RsvgLength needs to know the direction upon parsing/construction; b) We can't impl FromStr for cairo::Matrix because they both come from extern traits. rust/src/aspect_ratio.rs | 77 ++++++++++++++++++++++++------------------------ rust/src/gradient.rs | 4 +-- rust/src/marker.rs | 48 +++++++++++++++--------------- rust/src/paint_server.rs | 31 ++++++++++--------- rust/src/parsers.rs | 7 +++++ rust/src/pattern.rs | 17 ++++++----- rust/src/property_bag.rs | 21 +++++++------ rust/src/structure.rs | 8 ++--- rust/src/viewbox.rs | 23 +++++++-------- 9 files changed, 121 insertions(+), 115 deletions(-) commit d996f28269b7b66c1bc0d9042e2e809d2114ea3f Author: Federico Mena Quintero Date: Mon Sep 4 16:53:41 2017 -0500 test-utils.c: Fix a leak tests/test-utils.c | 1 + 1 file changed, 1 insertion(+) commit e92a377e9ce1e183268aba4e7d7a106f94d1cff3 Author: Federico Mena Quintero Date: Mon Sep 4 16:30:33 2017 -0500 Oops, unref nodes after boxing them and using them. box_node() returns a raw pointer, and Rust can't track the lifetime of those. rust/src/stop.rs | 4 +++- rust/src/structure.rs | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) commit 4c4fc481e3751405f20cd608a8cd9052840f15a8 Author: Federico Mena Quintero Date: Mon Sep 4 16:08:17 2017 -0500 property_bag.rs: Implement parse_or_default() in terms of parse_or_value() rust/src/property_bag.rs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) commit 3baaa2047b554ff6ada85800250b724ae0b8f8ea Author: Federico Mena Quintero Date: Mon Sep 4 16:03:05 2017 -0500 shapes.rs: Use property_bag::length_or_none() in a spot that was missing rust/src/shapes.rs | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) commit f0fa29290f3188c38c8e94909f020d06050c57dc Author: Federico Mena Quintero Date: Mon Sep 4 14:06:52 2017 -0500 marker.rs: Per the spec, check that markerWidth/markerHeight are nonnegative rust/src/marker.rs | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) commit f3495c00da98ae8c389b138456710e8537564f6d Author: Federico Mena Quintero Date: Mon Sep 4 13:51:25 2017 -0500 structure.rs: Use RsvgLength::check_nonnegative() rust/src/structure.rs | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) commit b8da0ba2201646205f58dfcf09e1ae93f608ef3a Author: Federico Mena Quintero Date: Mon Sep 4 13:09:51 2017 -0500 shapes.rs: Use RsvgLength::check_nonnegative() rust/src/shapes.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit d195b547080996b31a6fab84987ab710b9304a16 Author: Federico Mena Quintero Date: Mon Sep 4 13:09:01 2017 -0500 marker.rs: Use the correct horizontal/vertical default size Otherwise LengthDir::Both will cause us to normalize the length incorrectly. rust/src/marker.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit e7be0cc58798157ce2703a5ddd4f979b20fd96f9 Author: Federico Mena Quintero Date: Mon Sep 4 12:42:04 2017 -0500 structure.rs: Use RsvgLength::check_nonnegative() instead of doing it by hand rust/src/structure.rs | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) commit e75d807011f9ed46ab8545dfe534a76f11fd26ab Author: Federico Mena Quintero Date: Mon Sep 4 12:29:48 2017 -0500 RsvgLength::check_nonnegative(): New method rust/src/length.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 55dae39a0cdcddfd69d826ed59b6413cbddcea97 Author: Federico Mena Quintero Date: Mon Sep 4 11:43:26 2017 -0500 lib.rs: sort the list of modules rust/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 971f6ce7b1ddf28b324a726996e224556fca63fe Author: Federico Mena Quintero Date: Mon Sep 4 10:12:39 2017 -0500 parse_transform.lalrpop: Only make parse_Num and parse_TransformList public We'll adjust the tests for individual transformations so that they use the toplevel parse_TransformList(). rust/src/parse_transform.lalrpop | 12 ++++++------ rust/src/transform.rs | 28 ++++++++++++++-------------- 2 files changed, 20 insertions(+), 20 deletions(-) commit 4583ec9efab99e8b36107fb718d0c193b4c85326 Author: Federico Mena Quintero Date: Mon Sep 4 10:08:04 2017 -0500 Remove unused imports rust/src/lib.rs | 1 - rust/src/marker.rs | 1 - rust/src/parse_transform.lalrpop | 3 +-- rust/src/path_builder.rs | 1 - rust/src/path_parser.rs | 7 ------- rust/src/transform.rs | 1 - 6 files changed, 1 insertion(+), 13 deletions(-) commit ef7c00daae26d3365c180604cddd8949ec61c9d6 Author: Federico Mena Quintero Date: Fri Sep 1 19:02:44 2017 -0500 Post-release version bump to 2.41.2. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0a4afff7549525060bdff7ba5e1604c9ee10861f Author: Federico Mena Quintero Date: Fri Sep 1 16:45:33 2017 -0500 Have "make V=1" pass --verbose to "cargo build" Makefile.am | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)