[librsvg] Created tag 2.41.1



The signed tag '2.41.1' was created.

Tagger: Federico Mena Quintero <federico gnome org>
Date: Fri Sep 1 14:45:12 2017 -0500

    Tag for version 2.41.1

Changes since the last tag '2.41.0':

Chun-wei Fan (10):
      Visual Studio builds: Support Visual Studio 2017
      Visual Studio builds: Move projects to win32/
      Visual Studio builds: Fix Cargo output path
      Visual Studio builds: Add facilities to build with FontConfig
      Visual Studio builds: Include package version in property sheets
      Visual Studio builds: Add scripts to generate .pc files
      Visual Studio builds: Generate .pc files upon "install"
      win32/replace.py: Fix replacing items in files with UTF-8 content
      win32/rsvg-rust.mak: Streamline Rust build process
      build: Check for PangoFT2/FontConfig availability

Federico Mena Quintero (357):
      Post-release version bump to 2.41.1
      Use a separate function to set PangoContext font options for testing
      Use a hard-coded font file to render test images, for predictable font rendering
      tests/render-crash: New test for things that crash the rendering code
      bgo#777155 - Ignore patterns that have close-to-zero dimensions
      Add Cargo.lock to git
      rsvg-filter: Remove the 'upself' nonsense
      rsvg-filter.c: Iterate the children of nodes with rsvg_node_foreach_child()
      pattern_apply_fallback(): Don't access node->children->len directly
      marker.rs: Factor out function to bisect the incoming/outgoing angles
      Add RSVG_ASPECT_RATIO_DEFER even if it is not supported right now
      aspect_ratio.rs: New module to parse preserveAspectRatio attributes
      aspect_ratio.rs: Initial docs
      Make aspect_ratio.rs's types public
      aspect_ratio.rs: New function for the C code, rsvg_aspect_ratio_parse()
      Removed rsvg_css_parse_aspect_ratio(); use the Rust rsvg_aspect_ratio_parse() instead
      aspect_ratio.rs: New method AspectRatio.compute() to do the actual fitting
      Use rsvg_aspect_ratio_compute() from Rust throughout; remove rsvg_preserve_aspect_ratio()
      viewbox.rs: Rust equivalent to RsvgViewBox
      util.rs: Move double_equals() and the renamed DBL_EPSILON here
      draw_ctx.rs: New functions to get/set the current state's affine
      util.rs: Move clone_fallback_name() here
      Update Cargo.toml and Cargo.lock
      Fix: cargo.lock
      pattern.rs: Beginning of the Pattern code in Rust
      AspectRatio: make to_u32() and from_u32() methods of AspectRatio
      aspect_ratio.rs: Add test for parsing "none"
      Cargo.toml: oops, don't point to files in my homedir...
      Remove unused prototypes
      marker.rs: Remove unused mut
      Oops, update Cargo.lock
      pattern.rs: New file; resolution of pattern fallbacks is now done in Rust
      Add two tests of SVG patterns
      rsvg_get_url_string(): Add argument to return the rest of the string after the IRI
      Allow pattern specifications to have a fallback color, per the spec
      Use the alternate solid color if a pattern cannot be acquired
      Add more test files for patterns
      Oops, actually allow recursive fallbacks for patterns and gradients.
      More test files for patterns
      Test pservers-pattern-09-f.svg from the official test suite
      gradient.rs, pattern.rs: Do the fallbacks with a macro for less verbosity
      New function rsvg_node_set_atts()
      Rename rsvg_node_draw() to rsvg_node_draw_from_stack()
      New function rsvg_node_draw() just to call the vmethod
      node.rs: Start implementing the basic Node struct in Rust
      cnode.rs: New stub for having a node implemented in C, accessible from Rust
      The C-side representation of Nodes is a Box<Rc<Node>>
      Implement more generic RsvgNode methods in Rust to replace the C functions
      Remove RsvgNode's declaration from the C code
      node.rs: Free the node.state in our Drop impl
      cnode.rs: New function rsvg_rust_cnode_get_impl() to fetch the C-side implementation
      pattern.rs: Remove unused imports
      rsvg-filter.[ch]: Move over to rsvg_rust_cnode_new()
      rsvg-paint-server.[ch]: Move over to rsvg_rust_cnode_new()
      rsvg-image.[ch]: Move over to rsvg_rust_cnode_new()
      Move the RsvgNodeChars implementation over to rsvg_rust_cnode_new()
      rsvg-marker.[ch]: Move over to rsvg_rust_cnode_new()
      rsvg-mask.[ch]: Move over to rsvg_rust_cnode_new()
      rsvg-text.[ch]: Move over to rsvg_rust_cnode_new()
      Audit casts in callers of rsvg_drawing_ctx_acquire_node_of_type()
      Don't try to access a node->state directly, use rsvg_node_get_state() instead
      Use rsvg_node_unref() to get rid of the nodes
      node.rs: Implement rsvg_node_ref() and rsvg_node_unref()
      node.rs: New function rsvg_node_is_same() to compare node pointers
      Ref/unref the nodes at the toplevel rsvg-base
      Unref the parent node after calling rsvg_node_get_parent()
      fix: implement rsvg_node_add_child()
      Don't use node1 == node2; use rsvg_node_is_same()
      Disable tests/styles for now, as rsvg_node_get_state() is not exported
      Oops, don't assert on null nodes
      Ref the found node when iterating through children to find a specific node
      Remove unused import.
      rsvg_characters_impl(): Unref the chars node we just created
      Don't leak the PangoFontMap we create only for tests
      rsvg-test.c: Fix a couple of leaked strings
      test-utils.c: Fix a string leak
      find_last_chars_node(): Unref the last chars node we found if a tspan overrides it
      shapes.rs: Render the path's markers
      drawing_ctx.rs: Bring in rsvg_state_new()
      cnode.rs: Factor out function to convert a *const RsvgNode into an Option<Weak<Node>>
      shapes.rs: Fully implement NodePath in Rust.  Yay!
      shapes.rs: Factor out function to render a path builder
      Remove an unused unsafe block
      length.rs: Implement trait Default for RsvgLength
      shapes.rs: NodeLine completely implemented in Rust.  Yay!
      node.rs: Remove unused mut
      shapes.rs: NodeRect completely implemented in Rust!
      shapes.rs: NodeCircle fully implemented in Rust!
      shapes.rs: NodeEllipse fully implemented in Rust!
      Update Cargo.toml for cairo-rs upstream
      rust/src: Remove unused muts, modules, etc.
      parsers.rs: New parser for the viewBox attribute
      node.rs: New utility function boxed_node_new() for the node creators
      viewbox.rs: Implement FromStr for RsvgViewBox based on the parsers
      parsers.rs: Start a parser for SVG's list-of-points
      rsvg-shapes.c is gone now; all the basic shapes are in shapes.rs now
      viewbox.rs: Trim whitespace before parsing the viewBox string
      shapes.rs: Trim whitespace from the list-of-points string before parsing it
      Remove unused rsvg_render_markers()
      parsers.rs: Add parser for angle_degrees()
      Unfinished: Move the rest of rsvg-marker.c to Rust
      New helper function rsvg_state_is_overflow()
      Rename and export rsvg_drawing_ctx_add_clipping_rect() to Rust
      drawing_ctx.rs: Import rsvg_drawing_ctx_acquire_node_of_type()
      node.rs: Add a Node::with_impl() method, to access the NodeTrait impl out of band
      marker.rs: Fully implement markers in Rust.  rsvg-marker.c is gone!
      property_bag.rs: New functions lookup_and_parse(), lookup_length()
      length.rs: Be more explicit about what we match for default units
      parsers.rs: make the angle() nom parser number_and_units() instead
      RsvgLength::parse() - return a Result, not an RsvgLength
      Make the get_c_impl() implementations unreachable for nodes implemented in Rust
      pattern.rs: Remove rsvg_pattern_node_has_children(); implement in Rust
      lib.rs: Don't include strtod.rs for now
      marker.rs: Move declarations closer to their use
      marker.rs: Rename the render_marker_*() functions to emit_marker_()
      marker.rs: Add a type definition for a MarkerRenderFn
      marker.rs: Extract marker positions from segments in separate functions
      marker.rs: Pass around MarkerType values, not marker names
      marker.rs: Implement render_markers_for_path_builder() in terms of an emitter
      marker.rs: Inline a couple of functions that only get used once
      marker.rs: Use a single emit_marker() function, not one for each endpoint
      marker.rs: Split tests into modules for parser tests and directionality tests
      marker.rs: Add initial tests for the generated markers and their angles
      bgo#777834: Don't try to render text whose PangoLayout has zero extents
      node.rs: Start defining node::Error type
      node.rs: Implement fmt::Display and error::Error for node::Error
      Make NodeTrait::set_atts() return a NodeResult
      Node::draw(): Don't draw nodes that are in error
      parsers.rs: Removed example code
      Remove unused imports
      Shuffle around node::Error and AttributeError
      node.rs: Only drop the RsvgState if *not* in testing mode
      error.rs: Move the NodeError machinery here, so other files can use it
      ParseError: Remove the description field; only leave the display field
      parsers.rs: New helper ParseError::new() which duplicates the description string itself
      lib.rs: Remove exports that don't need to be exported
      error.rs: Implement From<ParseError> for AttributeError
      error.rs: Fix is_parse_error() and is_value_error()
      property_bag.rs: New function parse_or_default()
      error.rs: Remove unused argument
      length.rs: Make Length::parse()'s Result have a ParseError
      property_bag.rs: Make parse_or_default() know only about AttributeError, not ParseError
      property_bag.rs: Turn lookup_length() into length_or_default(); return errors
      marker.rs: Implement error handling for parsing MarkerUnits and MarkerOrient
      property_bag.rs: Remove unused lookup_and_parse()
      tests: Add the coords-trans-{01-08} tests from the SVG 1.1 test suite
      rsvg_parse_style_attrs(): Take a full RsvgNode, not an RsvgState
      NodeError: use a String for the attr_name, not a &'static str
      node.rs: New function rsvg_node_set_attribute_parse_error()
      Remove unused imports
      rsvg-styles.c: Set a node's error when the transform can't be parsed
      bgo#776932: Don't render nodes whose "transform" attribute is invalid
      Rename rsvg_node_draw_from_stack() to rsvg_drawing_ctx_draw_node_from_stack()
      rsvg_handle_render_cairo_sub(): Traverse and ref ancestors correctly
      Factor out a function to add a node and its ancestors to the RsvgDrawingCtx's stack
      drawing_ctx.rs: Wrap rsvg_drawing_ctx_draw_node_from_stack()
      node.rs: new method Node::draw_children()
      Wrap Node::draw_children() with rsvg_node_draw_children() and use that
      marker.rs: Don't convert from *const RsvgNode to RsvgNode twice
      Add struct-svg-03-f.svg from the SVG 1.1 test suite
      Add a C getter for rsvg_state_get_cond_true()
      structure.rs: Port NodeGroup, NodeDefs, NodeSwitch to Rust
      Check the result on all uses of rsvg_parse_transform() and propagate errors
      paint_server.rs: New file with a PaintServerUnits enum
      Implement Default for PaintServerUnits, to yield ObjectBoundingBox
      gradient.rs: Use PaintServerUnits instead of obj_bbox boolean values
      pattern.rs: Define a PatternContentUnits newtype
      pattern.rs: Use PaintServerUnits instead of obj_bbox boolean values
      pattern.rs: Use PatternContentUnits instead of obj_cbbox boolean values
      pattern.rs: Implement FromStr for PatternContentUnits
      paint_server.rs: Fix errors
      property_bag.rs: Implement parse_or_none(), length_or_none()
      pattern.rs: Organize the used modules a bit
      parse_transform.rs: Start a lalrpop parser for the "transform" attribute
      parse_transform.lalrpop: Parse the "matrix" transform
      parse_transform.lalrpop: Parse the "translate" transform
      parse_transform.lalrpop: Parse the "scale" transform
      parse_transform.lalrpop: Point to the correct section of the spec
      parse_transform.lalrpop: Parse the "rotate" transform
      parse_transform.lalrpop: Parse the "skewX" and "skewY" transforms
      parse_transform.lalrpop: Parse chained transform lists
      transform.rs: Move the transform parsing tests from parsers.rs to here
      transform.rs: New public function parse_transform()
      transform.rs: Implement rsvg_parse_transform() fully in Rust
      rsvg_parse_style_pair(): remove unused "ctx" argument
      rsvg_lookup_parse_style_pair(): remove unused "ctx" argument
      rsvg_parse_style_pairs(): remove unused "ctx" argument
      Oops, add the build file for lalrpop
      rsvg-structure: Make RsvgNodeSvg an opaque structure
      property_bag.rs: New functions length_or_value(), parse_or_value()
      property_bag.rs: Wrap rsvg_property_bag_dup() and rsvg_property_bag_free() in Rust
      Node.get_parent() - new method; returns a strong Rc<Node>
      structure.rs: Finish moving NodeSvg over to Rust.  Yay!
      NodeSvg: Only access self.atts if it is non-null
      NodeSvg: Don't inline the computation of the SVG's affine
      Oops, list all the new Rust files in the toplevel Makefile.am
      rsvg-filter.c: "azimuth", "elevation", "limitingConeAngle" are numbers, not angles
      Remove unused rsvg_css_parse_angle() function.
      Remove unused rsvg_css_parse_time() function.
      Remove unused rsvg_css_parse_frequency() function.
      parse_transform.lalrpop: Don't use "comma?" everywhere; use a helper production
      Add struct-symbol-01-b.svg from the SVG 1.1 test suite
      Add struct-use-01-t.svg from the SVG 1.1 test suite
      Add struct-use-03-t.svg from the SVG 1.1 test suite
      Add struct-use-04-b.svg from the SVG 1.1 test suite
      Make NodeError::value_error() take two &str arguments, for convenience
      NodeSvg: validate the width and height attributes
      Node: new function Node::is_ancestor()
      parse_transform.lalrpop: Use a maybe_comma construct instead of Num2
      Update .gitignore
      bgo#634324 - Gaussian blur with negative-scaling transformation matrix is not rendered
      Add test files for the previous commit
      Shorten filenames so tar can grok them, sigh
      viewbox.rs: Use gboolean, not bool for field in a repr(C) struct
      bbox.rs: Use glib_sys::gboolean, not bool for repr(C) structs
      drawing_ctx.rs: Return values of gboolean map to glib_sys::gboolean, not bool
      gradient.rs: bool -> glib_sys::gboolean
      node.rs: bool -> glib_sys::gboolean
      Remove a bunch of unused rsvg_path_builder_*() functions
      pattern.rs: bool -> glib_sys::gboolean
      transform.rs: bool -> glib_sys::gboolean
      property_bag.rs: Remove unused function
      Export rsvg_state_has_overflow() to Rust
      structure.rs: Completely move NodeUse, NodeSymbol to Rust
      Replace g_new() with g_new0() throughout
      Sanitize the indentation specifiers for Emacs/Vim
      color.rs: Start a parser for color specifications
      RawColor: Add new_rgb() and new_argb() constructors to make callers nicer
      Start using the servo/rust-cssparser crate to parse colors
      color.rs: Declare ColorKind and ColorSpec that we can represent in C
      color.rs: Convert directly from cssparser's Result to our ColorSpec
      color.rs: Implement the new version of rsvg_css_parse_color() in Rust
      Fully move rsvg_css_parse_color() to Rust.  Yay!
      Makefile.am: Oops, put the target directory under rust
      Cargo.toml: Turn on link-time optimizations in release mode
      property_bag.rs: New function transform_or_none() to parse transformation matrixes
      structure.rs: Fix passing a dangling pointer (!)
      pattern.rs: Fully implement NodePattern in Rust. Yay!
      Make RsvgState.stop_color be an RsvgCssColorSpec; don't have an auxiliary StopColorMode anymore
      rsvg_css_parse_vbox(): Remove unused function
      StopColor: Remove unused enum
      Remove redundant STOP_OPACITY_UNSPECIFIED
      rsvg_state_get_stop_color(): New helper function to expose state->stop_color to Rust
      rsvg_state_get_current_color(): Expose to Rust
      StopOpacity: Turn into a struct; put both the "kind" enum and the actual opacity value here
      opacity.rs: Implement an Opacity struct and a parser for it
      StopOpacity: Rename to RsvgOpacitySpec
      rsvg_css_parse_opacity(): Move entirely to Rust. Yay!
      Remove unused prototype
      rsvg_state_get_stop_opacity(): New function to expose this property to Rust
      Color::from_color_spec() - Turn a ColorSpec from C back into a Result<Color>
      drawing_ctx::state_get_stop_color(): Return a Result<Color>, not a ColorSpec
      Opacity::from_opacity_spec(): New function, to deal only in Result<Opacity, ...>
      drawing_ctx::state_get_stop_opacity() - Analogous to ::state_get_stop_color()
      Length: make the length and unit fields public
      opacity_to_u8(): Make public
      drawing_ctx::state_free() - Bind rsvg_state_free() for Rust
      drawing_ctx::state_get_current_color() - Promote the u32 result to a full Color value
      stop.rs: Start porting the gradient stop element to Rust
      NodeStop: add get_offset() and get_rgba() functions
      Move NodeStop over to Rust.  Yay!
      rsvg_state_inherit_run(): When inheriting stop_color, mark the presence of the new color
      pt.rs: Remove auxiliary file for parse_transform.lalrpop
      *.rs - get rid of unused imports
      PaintServerSpread: Use this instead of plain cairo::enums::Extend for gradients
      gradient.rs: Fully move gradients to Rust.  Yay!
      Gradient: Factor out method to add color stops from a Node
      parsers::number_optional_number(): New parser
      transform.rs: Add missing 'extern'
      rsvg_css_parse_number_optional_number(): Move to Rust
      Handle parse errors in all calls to rsvg_css_parse_number_optional_number()
      parsers::number_list() - New function to replace rsvg_css_parse_number_list()
      parsers.rs: Add tests for garbage in number lists
      Make rsvg_css_parse_number_list() correspond to the Rust version
      Little update to NEWS
      Move rsvg_css_parse_number_list() completely to Rust.  Yay!
      rsvg_css_parse_number_list(): Copy the array with copy_from_slice(), not manually
      Merge remote-tracking branch 'origin/master'
      rsvg-convert.1 - Remove references to Sourceforge
      Add a CONTRIBUTING.md in preparation for gitlab.gnome.org
      Move README to README.md and mark it up a bit
      feConvolveMatrix: Use an enum for edgeMode, not ints
      bgo#783835 - Don't divide by zero in box_blur_line() for gaussian blurs
      feTile: don't divide by zero if the input surface has empty bounds
      feGaussianBlur: Don't try to blur an invalid surface
      rsvg-filter: Return NULL for invalid surfaces in rsvg_filter_get_{result,in}()
      rsvg-filter: Deal with errors in all callers to rsvg_filter_get_result()
      aspect_ratio.rs: Sigh, use the correct capitalization for xMinYMin et al
      coords-viewattr-01-b.svg - New test for the preserveAspectRatio attribute
      Makefile.am: Oops, add rust/build.rs to the sources
      tests/README.md: Fix the markup a bit
      parsers::list_of_points() - take a &str, not a &[u8]
      parsers::number_and_units() - Deal in &str and plain Result, not &[u8] and nom::IResult
      parsers::coordinate_pair() - This doesn't need to be public
      parsers::view_box() - Deal in &str and Result, not in &[u8] and nom::IResult
      parsers: Test that number_and_units() can parse percentages and units beginning with "e"
      length.rs: Implement Length::parse() with rust-cssparser, not with nom
      parsers::angle_degrees(): Implement with rust-cssparser instead of nom
      property_bag::parse_or_none() doesn't need T to implement Default
      RsvgViewBox::from_str(): Implement in terms of parsers::number_list()
      parsers::list_of_points() - Implement with cssparser instead of nom
      Remove the nom dependency.  So long, and thanks for all the fish.
      path_parser.rs: Use a shorter name for the declared lifetime of the chars_enumerator
      Cargo.toml: Use the upstream cairo-rs now that Matrix::try_invert() is merged
      Cargo.toml: make more compact; use crates.io
      Cargo.toml: Move other crates to crates.io
      aspect_ratio.rs: Update to the macro syntax in bitflags 0.9.1
      Update to cairo-rs changes
      Adjust to rust-cssparser API changes
      Cargo.toml: Explicitly use the master branch of cairo-rs and friends
      Adjust for rust-cssparser API changes
      length.rs: Refactor parser to not have Ok() all over the place
      opacity.rs: Refactor to not have Ok() all over the place
      Refactor some more to avoid Ok() all over the place
      Remove unused imports
      De-reference Parser's tokens when matching, for legibility
      bgo#779489 - Link to pangoft2 as well
      Update Cargo.lock
      rsvg-gobject.c: Tighten an assertion
      rsvg-gobject.c: Use FALSE, not 0
      rsvg_free_xml_parser_and_doc(): New function; we'll use it instead of freeing things by hand
      rsvg-base.c: Use rsvg_free_xml_parser_and_doc() throughout
      RsvgHandle: use a state field instead of finished/is_closed/first_write flags
      rsvg_handle_dispose(): Free the libxml2 parser context
      Update NEWS
      rsvg_standard_element_start(): Remove unnecessary check
      rsvg_handle_get_position_sub(): test for the presence of a toplevel node as soon as possible
      bgo#786372 - In the style element, the type attribute should default to "text/css"
      Update to the released cairo-rs 0.2.0
      Require lalrpop 0.13.1 - now we can build on Rust nightly as well
      path_builder.rs: Declare a PathCommand enum
      Switch from cairo::PathSegment to our own PathCommand throughout
      PathCommand: derive PartialEq so we can remove a custom comparison function
      PathBuilder: use LargeArc and Sweep types instead of plain booleans
      bgo#634514: Don't render unknown elements and their sub-elements
      Add struct-cond-01-t.svg from the SVG test suite
      bgo#785276: Don't crash on empty or single-byte files
      Oops, sort the list of supported SVG features so <switch> works
      Regenerate test reference files now that text rendering is fixed
      Remove unnecessary includes
      NodeUse: normalize to default values as early as possible
      ViewBox: Represent unspecified view boxes as Option<ViewBox>
      Add struct-use-09-b.svg and coords-viewattr-02-b.svg to the test suite
      NodeUse: Unconditionally push a viewbox, to make this easier to refactor
      Add coords-viewattr-03-b.svg to the test suite
      marker.rs: Unconditionally push a viewbox, to make this easier to refactor
      marker: Pop the things in the same order as NodeSvg and NodeUse, to make this easier to refactor
      rsvg-cairo-draw: Comment on how we should be computing bounding boxes for viewports/clipping
      Add a bunch of masking/clipping tests from the SVG test suite
      Remove unused prototype
      bgo#621088: rsvg_cairo_clip_render_new(): Don't leave uninitialized fields in the parent RsvgCairoRender
      RsvgCairoClipRender: Implement the ::render_pango_layout() method, so we can clip text
      pattern.rs: shorten the way we map option values
      Makefile.am: Add "cargo vendor" to dist-hook
      Don't pass --verbose to cargo build
      Update NEWS
      Oops, distribute the svg1.1/resources for the tests as well.

Jeremy Bicha (1):
      bgo#778666 - Use our own thumbnailer specification file

Massimo (2):
      marker.rs: New tests for angle bisection, and fix larger-than-half-turn angles
      bgo#587721: Update the PangoLayout for the new matrix before rendering

Philip Withnall (2):
      tools: Fix an incorrect g_new() call
      tools: Fix a minor memory leak of command line arguments

Sebastian Dröge (1):
      Add the start of a nom-based parser for floating-point numbers

Ting-Wei Lan (1):
      bgo#782098 - Don't pass deprecated --nogtkinit to gtkdoc-scangobj


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]