diff --git a/src/display/font_loader.js b/src/display/font_loader.js index e52847fb33497..b74349ac0f6fc 100644 --- a/src/display/font_loader.js +++ b/src/display/font_loader.js @@ -436,7 +436,7 @@ class FontFaceObject { } catch (ex) { warn(`getPathGenerator - ignoring character: "${ex}".`); } - const path = makePathFromDrawOPS(cmds.path); + const path = makePathFromDrawOPS(cmds?.path); if (!this.fontExtraProperties) { // Remove the raw path-string, since we don't need it anymore. diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 6bef34dd94d3b..352366971bffa 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -765,4 +765,5 @@ !two_paragraphs.pdf !paragraph_and_link.pdf !issue20225.pdf +!issue20513.pdf !issue20516.pdf diff --git a/test/pdfs/issue20513.pdf b/test/pdfs/issue20513.pdf new file mode 100644 index 0000000000000..dafedc3e3fe46 Binary files /dev/null and b/test/pdfs/issue20513.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index a912fb1b35516..c9b9a5400c321 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -13099,5 +13099,12 @@ "enableXfa": true, "lastPage": 1, "type": "eq" + }, + { + "id": "issue20513", + "file": "pdfs/issue20513.pdf", + "md5": "19a3a347773518242fa3cf1c04a9a1e4", + "rounds": 1, + "type": "eq" } ] diff --git a/web/pdf_find_controller.js b/web/pdf_find_controller.js index 0f3f04c551371..47a66946a3785 100644 --- a/web/pdf_find_controller.js +++ b/web/pdf_find_controller.js @@ -77,7 +77,6 @@ const DIACRITICS_EXCEPTION = new Set([ let DIACRITICS_EXCEPTION_STR; // Lazily initialized, see below. const DIACRITICS_REG_EXP = /\p{M}+/gu; -const SPECIAL_PUNCTUATION_CHARACTERS = /[.?*{}()[\]\\]/g; const SPECIAL_CHARS_REG_EXP = /([+^$|])|(\p{P}+)|(\s+)|(\p{M})|(\p{L})/gu; const NOT_DIACRITIC_FROM_END_REG_EXP = /([^\p{M}])\p{M}*$/u; const NOT_DIACRITIC_FROM_START_REG_EXP = /^\p{M}*([^\p{M}])/u; @@ -735,14 +734,11 @@ class PDFFindController { if (p1) { // Escape characters like *+?... to not interfere with regexp syntax. - return addExtraWhitespaces(p1, `\\${p1}`); + return addExtraWhitespaces(p1, RegExp.escape(p1)); } if (p2) { // Allow whitespaces around group of punctuation signs. - return addExtraWhitespaces( - p2, - p2.replaceAll(SPECIAL_PUNCTUATION_CHARACTERS, "\\$&") - ); + return addExtraWhitespaces(p2, RegExp.escape(p2)); } if (p3) { // Replace spaces by \s+ to be sure to match any spaces. diff --git a/web/pdf_thumbnail_view.js b/web/pdf_thumbnail_view.js index 74ea937d32967..9e4a7df66c8e1 100644 --- a/web/pdf_thumbnail_view.js +++ b/web/pdf_thumbnail_view.js @@ -449,7 +449,6 @@ class PDFThumbnailView { */ setPageLabel(label) { this.pageLabel = typeof label === "string" ? label : null; - this.anchor.setAttribute("data-l10n-args", this.#pageL10nArgs); this.image.setAttribute("data-l10n-args", this.#pageL10nArgs); } }