Subject: Re: bug#64908: 29.1; svg parse failure

From: Eli Zaretskii <[email-masked]>
Date: Sat, 05 Aug 2023 13:07:38 +0300

> Date: Sat, 5 Aug 2023 10:58:26 +0100
> From: Alan Third <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>, [email-masked]
> 
> diff --git a/src/image.c b/src/image.c
> index c9420b48f4a..96e0f2a7225 100644
> --- a/src/image.c
> +++ b/src/image.c
> @@ -11161,6 +11161,21 @@ svg_css_length_to_pixels (RsvgLength length, double dpi, int font_size)
>      case RSVG_UNIT_IN:
>        value *= dpi;
>        break;
> +    case RSVG_UNIT_PERCENT:
> +      /* Percent is a ratio of the containing "viewport".  We don't
> +	 have a viewport, as such, as we try to draw the image to it's
> +	 own desired size rather than dictate the size as if we were
> +	 drawing icons on a toolbar or similar.  This means that
> +	 percent values are useless to us and we are best off just
> +	 drawing the image according to whatever other sizes we can
> +	 derive.
> +
> +	 If we do set explicit width and height values in the image
> +	 spec, this will work out correctly as librsvg will still
> +	 honour the percentage sizes in its final rendering no matter
> +	 what size we make the image.  */
> +      value = 0;
> +      break;

I don't see RSVG_UNIT_PERCENT anywhere in the librsvg headers on my
system, so perhaps this was introduced by some later version, and
should be guarded by LIBRSVG_CHECK_VERSION?