Fix bug with special chars in filenames

When exporting svg, if an image file name contains a "&", it
will be escaped as "&" following html encoding. But when then asked
to embed the png into the svg for export, the file won't be found with
the sequence escaped. The solution is to unescape (using
html.parser.unescape) the line before extracting the png url.
master
Lertsenem 2021-01-27 00:58:56 +01:00
parent 44aa8cb9c1
commit 53429428e9
1 changed files with 3 additions and 0 deletions

View File

@ -1,4 +1,5 @@
import base64 import base64
import html
import io import io
import os import os
import subprocess import subprocess
@ -57,6 +58,7 @@ def generate_outfile(
if ( l.startswith("xlink:href=\"file://") if ( l.startswith("xlink:href=\"file://")
and l.endswith(".png\"") ): and l.endswith(".png\"") ):
l = html.parser.unescape(l)
image_url = urllib.parse.urlparse( image_url = urllib.parse.urlparse(
"=".join( l.split("=")[1:] )[1:-1], "=".join( l.split("=")[1:] )[1:-1],
) )
@ -234,6 +236,7 @@ def generate_pic(
if ( l.startswith("xlink:href=\"") if ( l.startswith("xlink:href=\"")
and l.endswith(".png\"") ): and l.endswith(".png\"") ):
l = html.parser.unescape(l)
image_url = urllib.parse.urlparse( image_url = urllib.parse.urlparse(
"=".join( l.split("=")[1:] )[1:-1], "=".join( l.split("=")[1:] )[1:-1],
) )