summaryrefslogtreecommitdiff
path: root/Build/source/libs
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2018-03-18 21:59:37 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2018-03-18 21:59:37 +0000
commit7df30ed249a4493833346d2e40ac3fca765602b8 (patch)
tree9103eb2d3686871f71787236bdfd71f508675688 /Build/source/libs
parentfafe0fc6c275d12a264639c9e98dcde0b7c99a8a (diff)
poppler-0.63.0
git-svn-id: svn://tug.org/texlive/trunk@47014 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs')
-rw-r--r--Build/source/libs/README2
-rw-r--r--Build/source/libs/poppler/ChangeLog5
-rw-r--r--Build/source/libs/poppler/Makefile.am1
-rw-r--r--Build/source/libs/poppler/Makefile.in6
-rw-r--r--Build/source/libs/poppler/TLpatches/ChangeLog4
-rw-r--r--Build/source/libs/poppler/TLpatches/TL-Changes7
-rw-r--r--Build/source/libs/poppler/TLpatches/patch-04-ctime9
-rwxr-xr-xBuild/source/libs/poppler/configure22
-rw-r--r--Build/source/libs/poppler/poppler-src/CMakeLists.txt9
-rw-r--r--Build/source/libs/poppler/poppler-src/ChangeLog1315
-rw-r--r--Build/source/libs/poppler/poppler-src/NEWS60
-rw-r--r--Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc10
-rw-r--r--Build/source/libs/poppler/poppler-src/fofi/FoFiBase.h16
-rw-r--r--Build/source/libs/poppler/poppler-src/fofi/FoFiEncodings.cc396
-rw-r--r--Build/source/libs/poppler/poppler-src/fofi/FoFiIdentifier.cc6
-rw-r--r--Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc60
-rw-r--r--Build/source/libs/poppler/poppler-src/fofi/FoFiType1.cc18
-rw-r--r--Build/source/libs/poppler/poppler-src/fofi/FoFiType1C.cc28
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/GooHash.cc24
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/GooMutex.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/GooString.cc16
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/GooTimer.cc6
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/ImgWriter.h6
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/PNGWriter.cc6
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/TiffWriter.cc18
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/gfile.cc94
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/gfile.h17
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/glibc.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/glibc_strtok_r.cc3
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/gmem.cc18
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/grandom.cc4
-rw-r--r--Build/source/libs/poppler/poppler-src/goo/gstrtod.cc10
-rw-r--r--Build/source/libs/poppler/poppler-src/gtkdoc.py23
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Annot.cc336
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Annot.h38
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Array.cc2
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Array.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.cc2
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.h18
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/BuiltinFontTables.cc8374
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CMap.cc22
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CMap.h8
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CachedFile.cc8
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CachedFile.h9
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.cc108
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.h6
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc202
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.h17
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.cc6
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.h4
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Catalog.cc78
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Catalog.h9
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.cc28
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.h8
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CurlCachedFile.cc6
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/DCTStream.cc16
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/DateInfo.cc4
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Decrypt.cc10
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Dict.cc8
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Dict.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Error.cc4
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/ErrorCodes.h16
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/FileSpec.cc18
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/FileSpec.h8
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/FontEncodingTables.cc980
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/FontInfo.cc27
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/FontInfo.h4
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Form.cc72
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Form.h10
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Function.cc26
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Function.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Gfx.cc178
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Gfx.h8
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/GfxFont.cc275
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/GfxFont.h17
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/GfxState.cc452
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/GfxState.h26
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/GlobalParams.cc82
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/GlobalParams.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/GlobalParamsWin.cc172
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Hints.cc18
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Hints.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.cc2
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.h18
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/JBIG2Stream.cc217
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/JPEG2000Stream.cc22
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Lexer.cc25
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Lexer.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Linearization.cc16
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Link.cc54
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Link.h12
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.cc22
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.h4
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Movie.cc2
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Movie.h3
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.cc4
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.h17
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/NameToUnicodeTable.h4
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Object.h14
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/OptionalContent.cc28
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/OptionalContent.h11
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Outline.cc41
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Outline.h14
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/OutputDev.cc6
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/OutputDev.h2
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PDFDoc.cc120
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PDFDoc.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PDFDocBuilder.h8
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PDFDocFactory.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc169
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.h2
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PSTokenizer.cc7
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Page.cc10
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Page.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.cc2
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.h6
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Parser.cc13
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Parser.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc4
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/PopplerCache.h18
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Rendition.cc4
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Rendition.h3
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.cc31
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/SignatureHandler.cc60
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Sound.cc10
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Sound.h5
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc201
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.h10
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/StdinCachedFile.cc2
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/StdinPDFDocBuilder.cc2
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Stream.cc88
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/Stream.h20
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/StructElement.cc81
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/StructElement.h35
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.cc136
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.h27
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc236
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.h33
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/UTF.cc10
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.cc18
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.h7
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/UnicodeMapFuncs.cc88
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/UnicodeMapFuncs.h64
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/UnicodeTypeTable.cc938
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/XRef.cc49
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/XRef.h9
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/poppler-config.h.cmake2
-rw-r--r--Build/source/libs/poppler/version.ac2
149 files changed, 9600 insertions, 7472 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index 9611b0450b1..1df759da9ef 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -49,7 +49,7 @@ mpfr 4.0.1 - checked 10feb18
pixman 0.34.0 - checked 04feb16
http://cairographics.org/releases/
-poppler 0.62.0 - checked 9jan18
+poppler 0.63.0 - checked 18mar18
http://poppler.freedesktop.org/ - used by luatex and xetex
(requires C++11)
diff --git a/Build/source/libs/poppler/ChangeLog b/Build/source/libs/poppler/ChangeLog
index f972855b6d9..df54026e7b3 100644
--- a/Build/source/libs/poppler/ChangeLog
+++ b/Build/source/libs/poppler/ChangeLog
@@ -1,3 +1,8 @@
+2018-03-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Import poppler-0.63.0.
+ * Makefile.am, version.ac: Adjust.
+
2018-03-14 Luigi Scarso <luigi.scarso@gmail.com>
* configure.ac (HAVE_DCT_DECODER, HAVE_JPX_DECODER): hardwire to 1,
diff --git a/Build/source/libs/poppler/Makefile.am b/Build/source/libs/poppler/Makefile.am
index be1c4c22104..f07942a6f09 100644
--- a/Build/source/libs/poppler/Makefile.am
+++ b/Build/source/libs/poppler/Makefile.am
@@ -122,6 +122,7 @@ poppler_libpoppler_a_sources = \
@POPPLER_TREE@/poppler/StructTreeRoot.cc \
@POPPLER_TREE@/poppler/UTF.cc \
@POPPLER_TREE@/poppler/UnicodeMap.cc \
+ @POPPLER_TREE@/poppler/UnicodeMapFuncs.cc \
@POPPLER_TREE@/poppler/UnicodeTypeTable.cc \
@POPPLER_TREE@/poppler/ViewerPreferences.cc \
@POPPLER_TREE@/poppler/XRef.cc \
diff --git a/Build/source/libs/poppler/Makefile.in b/Build/source/libs/poppler/Makefile.in
index 66748099aea..9360b344a27 100644
--- a/Build/source/libs/poppler/Makefile.in
+++ b/Build/source/libs/poppler/Makefile.in
@@ -190,6 +190,7 @@ am__objects_3 = @POPPLER_TREE@/poppler/Annot.$(OBJEXT) \
@POPPLER_TREE@/poppler/StructTreeRoot.$(OBJEXT) \
@POPPLER_TREE@/poppler/UTF.$(OBJEXT) \
@POPPLER_TREE@/poppler/UnicodeMap.$(OBJEXT) \
+ @POPPLER_TREE@/poppler/UnicodeMapFuncs.$(OBJEXT) \
@POPPLER_TREE@/poppler/UnicodeTypeTable.$(OBJEXT) \
@POPPLER_TREE@/poppler/ViewerPreferences.$(OBJEXT) \
@POPPLER_TREE@/poppler/XRef.$(OBJEXT) \
@@ -531,6 +532,7 @@ poppler_libpoppler_a_sources = \
@POPPLER_TREE@/poppler/StructTreeRoot.cc \
@POPPLER_TREE@/poppler/UTF.cc \
@POPPLER_TREE@/poppler/UnicodeMap.cc \
+ @POPPLER_TREE@/poppler/UnicodeMapFuncs.cc \
@POPPLER_TREE@/poppler/UnicodeTypeTable.cc \
@POPPLER_TREE@/poppler/ViewerPreferences.cc \
@POPPLER_TREE@/poppler/XRef.cc \
@@ -852,6 +854,9 @@ clean-noinstLIBRARIES:
@POPPLER_TREE@/poppler/UnicodeMap.$(OBJEXT): \
@POPPLER_TREE@/poppler/$(am__dirstamp) \
@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
+@POPPLER_TREE@/poppler/UnicodeMapFuncs.$(OBJEXT): \
+ @POPPLER_TREE@/poppler/$(am__dirstamp) \
+ @POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
@POPPLER_TREE@/poppler/UnicodeTypeTable.$(OBJEXT): \
@POPPLER_TREE@/poppler/$(am__dirstamp) \
@POPPLER_TREE@/poppler/$(DEPDIR)/$(am__dirstamp)
@@ -954,6 +959,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/StructTreeRoot.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/UTF.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/UnicodeMap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/UnicodeMapFuncs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/UnicodeTypeTable.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/ViewerPreferences.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@@POPPLER_TREE@/poppler/$(DEPDIR)/XRef.Po@am__quote@
diff --git a/Build/source/libs/poppler/TLpatches/ChangeLog b/Build/source/libs/poppler/TLpatches/ChangeLog
index dc56e3f8df6..629722ebf90 100644
--- a/Build/source/libs/poppler/TLpatches/ChangeLog
+++ b/Build/source/libs/poppler/TLpatches/ChangeLog
@@ -1,3 +1,7 @@
+2018-03-18 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * Import poppler-0.63.0.
+
2018-01-15 Karl Berry <karl@tug.org>
* patch-04-ctime: add.
diff --git a/Build/source/libs/poppler/TLpatches/TL-Changes b/Build/source/libs/poppler/TLpatches/TL-Changes
index 5d3ec566f77..1eb93580e20 100644
--- a/Build/source/libs/poppler/TLpatches/TL-Changes
+++ b/Build/source/libs/poppler/TLpatches/TL-Changes
@@ -1,8 +1,11 @@
-Changes applied to the poppler-0.62.0 tree as obtained from:
+Changes applied to the poppler-0.63.0 tree as obtained from:
http://poppler.freedesktop.org/
Removed unused dirs:
- cmake cpp glib m4 qt4 qt5 test utils
+ cmake cpp glib qt5 test utils
+
+Removed unused files in splash:
+ only SplashTypes.h is used
General idea:
update version.ac
diff --git a/Build/source/libs/poppler/TLpatches/patch-04-ctime b/Build/source/libs/poppler/TLpatches/patch-04-ctime
index f59293666a2..3c4a349569f 100644
--- a/Build/source/libs/poppler/TLpatches/patch-04-ctime
+++ b/Build/source/libs/poppler/TLpatches/patch-04-ctime
@@ -1,9 +1,10 @@
To make time_t work on FreeBSD 11.1, per Mojca.
http://tug.org/pipermail/tlbuild/2018q1/003931.html
-
---- Form.h (revision 46316)
-+++ Form.h (working copy)
-@@ -31,6 +31,7 @@
+
+diff -ur poppler-0.63.0/poppler/Form.h poppler-src/poppler/Form.h
+--- poppler-0.63.0/poppler/Form.h Mon Mar 19 03:23:49 2018
++++ poppler-src/poppler/Form.h Mon Mar 19 06:18:51 2018
+@@ -33,6 +33,7 @@
#include <set>
#include <vector>
diff --git a/Build/source/libs/poppler/configure b/Build/source/libs/poppler/configure
index 1bb36bd8b7e..dc3b7b5cfc2 100755
--- a/Build/source/libs/poppler/configure
+++ b/Build/source/libs/poppler/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for poppler (TeX Live) 0.62.0.
+# Generated by GNU Autoconf 2.69 for poppler (TeX Live) 0.63.0.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='poppler (TeX Live)'
PACKAGE_TARNAME='poppler--tex-live-'
-PACKAGE_VERSION='0.62.0'
-PACKAGE_STRING='poppler (TeX Live) 0.62.0'
+PACKAGE_VERSION='0.63.0'
+PACKAGE_STRING='poppler (TeX Live) 0.63.0'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
@@ -1307,7 +1307,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures poppler (TeX Live) 0.62.0 to adapt to many kinds of systems.
+\`configure' configures poppler (TeX Live) 0.63.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1374,7 +1374,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of poppler (TeX Live) 0.62.0:";;
+ short | recursive ) echo "Configuration of poppler (TeX Live) 0.63.0:";;
esac
cat <<\_ACEOF
@@ -1487,7 +1487,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-poppler (TeX Live) configure 0.62.0
+poppler (TeX Live) configure 0.63.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2077,7 +2077,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by poppler (TeX Live) $as_me 0.62.0, which was
+It was created by poppler (TeX Live) $as_me 0.63.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4000,7 +4000,7 @@ fi
# Define the identity of the package.
PACKAGE='poppler--tex-live-'
- VERSION='0.62.0'
+ VERSION='0.63.0'
# Some tools Automake needs.
@@ -7578,7 +7578,7 @@ ac_config_headers="$ac_config_headers poppler-config.h:poppler-src/poppler/poppl
cat >>confdefs.h <<_ACEOF
-#define POPPLER_VERSION "0.62.0"
+#define POPPLER_VERSION "0.63.0"
_ACEOF
@@ -8272,7 +8272,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by poppler (TeX Live) $as_me 0.62.0, which was
+This file was extended by poppler (TeX Live) $as_me 0.63.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -8338,7 +8338,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-poppler (TeX Live) config.status 0.62.0
+poppler (TeX Live) config.status 0.63.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/libs/poppler/poppler-src/CMakeLists.txt b/Build/source/libs/poppler/poppler-src/CMakeLists.txt
index d8072a936c9..eecd41fb9a3 100644
--- a/Build/source/libs/poppler/poppler-src/CMakeLists.txt
+++ b/Build/source/libs/poppler/poppler-src/CMakeLists.txt
@@ -30,7 +30,7 @@ if (ECM_FOUND)
endif()
set(POPPLER_MAJOR_VERSION "0")
-set(POPPLER_MINOR_VERSION "62")
+set(POPPLER_MINOR_VERSION "63")
set(POPPLER_MICRO_VERSION "0")
set(POPPLER_VERSION "${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}")
@@ -378,6 +378,7 @@ set(poppler_SRCS
poppler/StructTreeRoot.cc
poppler/StructElement.cc
poppler/UnicodeMap.cc
+ poppler/UnicodeMapFuncs.cc
poppler/UnicodeTypeTable.cc
poppler/UTF.cc
poppler/XRef.cc
@@ -482,7 +483,7 @@ add_library(poppler STATIC ${poppler_SRCS})
else()
add_library(poppler ${poppler_SRCS})
endif()
-set_target_properties(poppler PROPERTIES VERSION 73.0.0 SOVERSION 73)
+set_target_properties(poppler PROPERTIES VERSION 74.0.0 SOVERSION 74)
if(MINGW)
get_target_property(POPPLER_SOVERSION poppler SOVERSION)
set_target_properties(poppler PROPERTIES SUFFIX "-${POPPLER_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}")
@@ -755,7 +756,7 @@ add_custom_target(dist
COMMAND
COMMAND git log --stat | fmt --split-only > ${CMAKE_BINARY_DIR}/ChangeLog
COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar
- COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar ChangeLog --transform='s,,${ARCHIVE_NAME}/,'
- COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar glib/reference/html --transform='s,,${ARCHIVE_NAME}/,'
+ COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar ChangeLog --transform='s,,${ARCHIVE_NAME}/,' --owner root:0 --group root:0
+ COMMAND tar -C ${CMAKE_BINARY_DIR} -rf ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar glib/reference/html --transform='s,,${ARCHIVE_NAME}/,' --owner root:0 --group root:0
COMMAND xz -9 ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
diff --git a/Build/source/libs/poppler/poppler-src/ChangeLog b/Build/source/libs/poppler/poppler-src/ChangeLog
index 590171350fe..3a1a061026c 100644
--- a/Build/source/libs/poppler/poppler-src/ChangeLog
+++ b/Build/source/libs/poppler/poppler-src/ChangeLog
@@ -1,3 +1,1318 @@
+commit f26285f361478219ea9d3c6de1529ecd5ff96ac9
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Sun Mar 18 19:23:49 2018 +0100
+
+ 0.63
+
+ CMakeLists.txt | 4 ++--
+ NEWS | 60
+ ++++++++++++++++++++++++++++++++++++++++++++++++++
+ cpp/CMakeLists.txt | 2 +-
+ cpp/Doxyfile | 2 +-
+ qt5/src/CMakeLists.txt | 2 +-
+ qt5/src/Doxyfile | 2 +-
+ 6 files changed, 66 insertions(+), 6 deletions(-)
+
+commit 8b2079b7250e037599f6640539f8107d93314919
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Sun Mar 18 19:01:40 2018 +0100
+
+ Update copyrights
+
+ poppler/CairoOutputDev.cc | 2 +-
+ poppler/CairoOutputDev.h | 2 +-
+ poppler/GfxFont.cc | 2 +-
+ poppler/GfxFont.h | 2 +-
+ poppler/Object.h | 2 +-
+ poppler/StructElement.cc | 1 +
+ poppler/StructTreeRoot.cc | 2 +-
+ poppler/StructTreeRoot.h | 1 +
+ poppler/TextOutputDev.cc | 2 +-
+ utils/pdfinfo.cc | 2 +-
+ 10 files changed, 10 insertions(+), 8 deletions(-)
+
+commit 41321580f0a13309e5de44eb42851e3c82a5ef8f
+Author: Adam Reichold <adam.reichold@t-online.de>
+Date: Sun Mar 4 09:17:00 2018 +0100
+
+ Use the detection idiom to handle the non-standard struct stat field
+ name for high-resolution mtime on Mac OS X.
+
+ goo/gfile.cc | 40 +++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 37 insertions(+), 3 deletions(-)
+
+commit b14baefb406b8f08f0702edd686ebc7698cb7f15
+Author: Adam Reichold <adam.reichold@t-online.de>
+Date: Mon Feb 12 08:09:00 2018 +0100
+
+ Explicitly anchor destructor of text_box_data to avoid linker errors
+ using Clang on Mac OS X.
+
+ cpp/poppler-page.cpp | 3 +++
+ cpp/poppler-private.h | 3 +++
+ 2 files changed, 6 insertions(+)
+
+commit 4afe2fb10ab969bfd9895c0ba9d4990c5881b451
+Author: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Sun Mar 4 10:28:57 2018 +0100
+
+ cairo: use GOOD instead of BEST as the default cairo filter for
+ scaling
+
+ The quality is good enough and the performance is much better.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=103136
+
+ poppler/CairoOutputDev.cc | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit 41c61811fdd6efe2bef34d2ce26520fc6b3c4237
+Author: Jason Crain <jason@inspiresomeone.us>
+Date: Fri Feb 23 23:21:03 2018 -0600
+
+ TextPage: Add horizontal scaling to font matrix
+
+ Drawing the text selection sometimes draws text reversed or expanded.
+ This is because the while the current font transformation matrix is
+ saved, the horizontal scaling is not. Include the effect of the
+ horizontal scaling in the transformation matrix.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=105259
+
+ poppler/TextOutputDev.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 2740b3aca81a6a8c690540fc141e5923a1fff460
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Tue Feb 27 00:47:04 2018 +0100
+
+ cpp: Add since
+
+ cpp/poppler-page.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 42a6b8651f040f0960802e705b1aea82a956a63b
+Author: suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+Date: Tue Feb 27 00:46:18 2018 +0100
+
+ cpp: Add page::text_list
+
+ cpp/poppler-page.cpp | 91
+ ++++++++++++++++++++++++++++++++++++++++++++++
+ cpp/poppler-page.h | 55 ++++++++++++++++++++++++++++
+ cpp/poppler-private.h | 9 +++++
+ cpp/tests/poppler-dump.cpp | 34 +++++++++++++++++
+ 4 files changed, 189 insertions(+)
+
+commit e25d4af6ed9b254db3096a2e483798734296376d
+Author: Adam Reichold <adam.reichold@t-online.de>
+Date: Sun Feb 18 09:43:58 2018 +0100
+
+ Fix warnings due to unhandled link types in XML serialization of
+ annotations code in the Qt5 frontend.
+
+ qt5/src/poppler-annotation.cc | 20 ++++++++++++++------
+ 1 file changed, 14 insertions(+), 6 deletions(-)
+
+commit e015ab97c1ee3a4ea386ccc86385aad458827d96
+Author: Adam Reichold <adam.reichold@t-online.de>
+Date: Sun Feb 18 09:42:58 2018 +0100
+
+ Fix warnings due to the use of deprecated overloads of
+ Poppler::Page::Search in tests of Qt5 frontend.
+
+ qt5/tests/check_search.cpp | 38
+ +++++++++++++++++++-------------------
+ qt5/tests/stress-threads-qt5.cpp | 10 +++++-----
+ 2 files changed, 24 insertions(+), 24 deletions(-)
+
+commit 732903ecf1bdb085cac36eb29d330a7970670064
+Author: Adam Reichold <adam.reichold@t-online.de>
+Date: Sun Feb 18 09:42:04 2018 +0100
+
+ Fix buffer size warning due to missing space for null terminator
+ in pdfseparate.
+
+ utils/pdfseparate.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 791e024656212c65d798cb69a134cdd3e30cc79e
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Sun Feb 18 23:05:59 2018 +0100
+
+ Make it work with newer gtk-doc
+
+ Hopefully still works with older versions
+
+ Bug #105075
+
+ gtkdoc.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 948d392d9acc3d82b86a260c952095a603fe767f
+Author: William Bader <william@newspapersystems.com>
+Date: Sun Feb 18 22:06:02 2018 +0100
+
+ Add python3 support to gtkdoc.py
+
+ gtkdoc.py | 19 +++++++++++++------
+ 1 file changed, 13 insertions(+), 6 deletions(-)
+
+commit 73130ae1125c86ebd0ee504d0681d9911ff2cfbd
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Feb 14 17:40:23 2018 +0100
+
+ SplashGouraudPattern: Remove mode member variable
+
+ We don't need it anymore, was introduced in the initial overprint
+ implementation and was forgotten to be removed when merging xpdf 3.03
+
+ poppler/SplashOutputDev.cc | 9 ++-------
+ poppler/SplashOutputDev.h | 5 ++---
+ 2 files changed, 4 insertions(+), 10 deletions(-)
+
+commit 37efb98d77c14c27a22806ec676c13f0a8b99490
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Feb 14 17:43:41 2018 +0100
+
+ SplashOutputDev:: Remove unused maskBitmap member
+
+ poppler/SplashOutputDev.h | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit e3cece1bfc00083637f709f7647b4711b5c6a084
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Fri Feb 2 23:17:11 2018 +0100
+
+ Fix some -Wshadow warnings
+
+ More to come, -Wshadow is interesting but if we enable it we still
+ get too many warnings for it to be useful
+
+ cpp/tests/poppler-dump.cpp | 6 ++--
+ poppler/CachedFile.cc | 8 +++---
+ poppler/CairoFontEngine.cc | 64
+ +++++++++++++++++++++---------------------
+ poppler/CairoOutputDev.cc | 5 ++--
+ poppler/CairoOutputDev.h | 4 +--
+ poppler/Decrypt.cc | 6 ++--
+ poppler/FontInfo.cc | 5 ++--
+ poppler/Gfx.cc | 2 +-
+ poppler/GfxFont.cc | 12 ++++----
+ poppler/GfxState.cc | 31 +++++++++-----------
+ poppler/JBIG2Stream.cc | 11 ++++----
+ poppler/PDFDoc.cc | 4 +--
+ poppler/StructElement.cc | 6 ++--
+ poppler/StructTreeRoot.cc | 8 +++---
+ poppler/TextOutputDev.h | 4 +--
+ poppler/XRef.cc | 4 +--
+ qt5/src/ArthurOutputDev.cc | 4 +--
+ qt5/src/poppler-annotation.cc | 18 ++++++------
+ qt5/src/poppler-media.cc | 4 +--
+ qt5/src/poppler-page.cc | 24 ++++++++--------
+ qt5/tests/test-poppler-qt5.cpp | 10 ++++---
+ splash/SplashFTFontFile.cc | 5 ++--
+ utils/ImageOutputDev.cc | 8 +++---
+ utils/pdfinfo.cc | 7 ++---
+ utils/pdftocairo.cc | 22 +++++++--------
+ utils/pdftoppm.cc | 20 ++++++-------
+ 26 files changed, 149 insertions(+), 153 deletions(-)
+
+commit 8cfe91ae51fa50e66217c6bbcb236ec3a267e45e
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Fri Feb 2 23:22:33 2018 +0100
+
+ CairoOutputDev: Remove two unused member variables
+
+ poppler/CairoOutputDev.h | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit b1016f574ac63fa269ca5125827895220e1df883
+Author: Albert Astals Cid <albert.astals.cid@kdab.com>
+Date: Thu Feb 1 22:46:33 2018 +0100
+
+ Qt5: Add cancellation support to renderToImage and textList
+
+ qt5/src/poppler-page.cc | 148
+ ++++++++++++++++++++++++++++--------------------
+ qt5/src/poppler-qt5.h | 98 +++++++++++++++++++++++++++++++-
+ 2 files changed, 185 insertions(+), 61 deletions(-)
+
+commit 248aa0f5832ce063a9ae061dfcf54596e0ea5fba
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Sun Jan 28 00:25:38 2018 +0100
+
+ Fix build without libpng
+
+ utils/ImageOutputDev.cc | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit f93fa48839be2937cd7ce38c14884428416bcc4b
+Author: Andreas Gruenbacher <agruenba@redhat.com>
+Date: Sat Jan 27 20:24:09 2018 +0100
+
+ Fix build without libtiff
+
+ Bug #104813
+
+ utils/ImageOutputDev.cc | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit f65f60e5d3f5e4109a79212a9994b5096a2a2a8d
+Author: Jason Crain <jason@inspiresomeone.us>
+Date: Thu Jan 18 11:57:33 2018 -0600
+
+ GfxFontDict: merge reference generation from xpdf 4.00
+
+ The GfxFontDict constructor generates a fake indirect reference if the
+ font dictionary doesn't have a real indirect reference. It sometimes
+ assigns the same reference to two different fonts leading to a wrong
+ font being used. XPDF 4.00 fixes this by using the hash of the font
+ data to create the fake reference.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=104565
+
+ poppler/GfxFont.cc | 125
+ +++++++++++++++++++++++++++++++++++++++++++++++++----
+ poppler/GfxFont.h | 4 ++
+ 2 files changed, 120 insertions(+), 9 deletions(-)
+
+commit 7342327039dfc750934f3ce7ff0bdb6bc585151c
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Jan 17 22:33:42 2018 +0100
+
+ Form.h: include time.h for time_t
+
+ poppler/Form.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit a89e7474fcd9e7e6dd1330c585130346aa862598
+Author: suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+Date: Wed Jan 17 00:22:55 2018 +0100
+
+ Enable building all libs as static libs
+
+ if the correct switch is used
+
+ cpp/CMakeLists.txt | 2 +-
+ glib/CMakeLists.txt | 4 ++--
+ qt5/src/CMakeLists.txt | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 7f550e88d86482adcfab6e054ff14588b32b692a
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Sun Jan 14 20:51:19 2018 +0100
+
+ Remove declare but unused Object instances
+
+ poppler/Annot.cc | 36 ------------------------------------
+ poppler/CairoFontEngine.cc | 2 --
+ poppler/Catalog.cc | 1 -
+ poppler/Form.cc | 2 +-
+ poppler/Lexer.cc | 1 -
+ poppler/Link.cc | 2 --
+ poppler/PDFDoc.cc | 1 -
+ poppler/SplashOutputDev.cc | 2 --
+ poppler/XRef.cc | 1 -
+ qt5/src/ArthurOutputDev.cc | 1 -
+ utils/JSInfo.cc | 1 -
+ utils/pdfinfo.cc | 1 -
+ utils/pdfseparate.cc | 1 -
+ 13 files changed, 1 insertion(+), 51 deletions(-)
+
+commit 4b237953b187f38c90b9a747f587cbc277db6d45
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Sun Jan 14 20:17:56 2018 +0100
+
+ pdfsig: Remove "int i = 0;" variable that was shadowing pevious i
+
+ And making us access the wrong sig_widgets element
+
+ utils/pdfsig.cc | 1 -
+ 1 file changed, 1 deletion(-)
+
+commit 08f2cddf18b6ccdc13861b52821cbbf2d3e48472
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Thu Jan 11 19:38:29 2018 +0100
+
+ GfxFunctionShading::parse: Fix abort in malformed document
+
+ Bug #104581
+
+ poppler/GfxState.cc | 32 ++++++++++++++++++++++----------
+ 1 file changed, 22 insertions(+), 10 deletions(-)
+
+commit 10831921281f75b4b2c05ab85f4093331788e6a8
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Thu Jan 11 00:27:50 2018 +0100
+
+ GfxGouraudTriangleShading::parse: Don't abort on malformed documents
+
+ Bug #104567
+
+ poppler/GfxState.cc | 18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+commit a59f61641fcb36859b625749afb4561557e419f6
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Jan 10 23:24:19 2018 +0100
+
+ PDFDoc::setup: Fail early if base stream length is 0
+
+ Bug #103552
+
+ poppler/PDFDoc.cc | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+commit 00c1566e8cc0dacd899ec6dd267265f4b714eae4
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Jan 10 00:49:51 2018 +0100
+
+ UnicodeMapFuncs: Move implementation to .cpp
+
+ With that the last warning i got on poppler core is gone \o/
+
+ CMakeLists.txt | 1 +
+ poppler/UnicodeMapFuncs.cc | 88
+ ++++++++++++++++++++++++++++++++++++++++++++++
+ poppler/UnicodeMapFuncs.h | 64 +++------------------------------
+ 3 files changed, 93 insertions(+), 60 deletions(-)
+
+commit bf6d79b5c6b5bdcc0d79b4eebd85840e8f2e30ef
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Jan 10 00:49:33 2018 +0100
+
+ Forgot C for last commit
+
+ poppler/UTF.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ebf33c2b0c66c456683c189af1b297fe24adcf9d
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Jan 10 00:40:38 2018 +0100
+
+ utf16CountUtf8Bytes: initialize codepoint to 0
+
+ Was tired of seeing the warning
+
+ I actually think the code is a little bit fishy for invalid values,
+ but since we only use it for win32 builds i'm not spending much more
+ time looking at it.
+
+ poppler/UTF.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 43ad7071aa126d3b6754421b544e114d87fdd82a
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Tue Jan 9 23:41:01 2018 +0100
+
+ qt5: Implement operator= for PageTransition
+
+ qt5/src/poppler-page-transition.cc | 10 ++++++++++
+ qt5/src/poppler-page-transition.h | 5 ++++-
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+commit c2711874a4afc00448c21e86fdaf0b7aec40b623
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Tue Jan 9 19:47:29 2018 +0100
+
+ Fix another clazy rule-of-three warning
+
+ We can just use the default copy assignemnt and constructor for Parent
+
+ poppler/StructTreeRoot.h | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+commit 30ccee028213efcf3d3a103ae6003bdcd15e1126
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Tue Jan 9 19:42:53 2018 +0100
+
+ Fix more Wmissing-field-initializer
+
+ by using the default initializer
+
+ goo/gfile.cc | 6 +++---
+ poppler/GlobalParamsWin.cc | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+commit ef4e450c921f4373955def51a74ebffd8f7b4599
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Tue Jan 9 19:36:16 2018 +0100
+
+ Enable no-missing-field-initializers
+
+ cmake/modules/PopplerMacros.cmake | 2 +-
+ glib/poppler-structure-element.cc | 29 +++++++++++++++--------------
+ poppler/GfxFont.cc | 4 ++--
+ poppler/JBIG2Stream.cc | 20 ++++++++++----------
+ test/gtk-test.cc | 2 +-
+ test/pdf-fullrewrite.cc | 2 +-
+ utils/pdfdetach.cc | 3 ++-
+ utils/pdffonts.cc | 4 ++--
+ utils/pdfimages.cc | 4 ++--
+ utils/pdfinfo.cc | 4 ++--
+ utils/pdfseparate.cc | 4 ++--
+ utils/pdfsig.cc | 4 ++--
+ utils/pdftocairo.cc | 4 ++--
+ utils/pdftohtml.cc | 4 ++--
+ utils/pdftoppm.cc | 4 ++--
+ utils/pdftops.cc | 4 ++--
+ utils/pdftotext.cc | 4 ++--
+ utils/pdfunite.cc | 4 ++--
+ 18 files changed, 54 insertions(+), 52 deletions(-)
+
+commit efd2205a0bc9e838fd2184c329f8370aa292c346
+Author: suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+Date: Tue Jan 9 00:03:59 2018 +0100
+
+ add "--owner root:0 --group root:0" options to tar command in
+ dist target
+
+ Because git-archive always uses root:root in the generated tarball,
+ the source tarballs (since 0.60.0) have 2 uid/gids in it.
+ "root:root" by git-archive, and normal users/group by normal tar.
+ For detail, please find the analysis at::
+ https://lists.freedesktop.org/archives/poppler/2017-December/012737.html
+
+ Bug #104398
+
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit cbd864b74fe368c1172974c7040c67ddfbc52cf6
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Mon Jan 8 23:48:57 2018 +0100
+
+ Fix abort in Gfx::opBeginMarkedContent if args[1] is not a name
+
+ Bug #104468
+
+ poppler/Gfx.cc | 23 ++++++++++++-----------
+ 1 file changed, 12 insertions(+), 11 deletions(-)
+
+commit 1aaf621f511ca4c235cb30a5ddbf050acd30fe91
+Author: Ben Timby <btimby@gmail.com>
+Date: Mon Jan 8 23:42:40 2018 +0100
+
+ Check return code of getChar(), abort reading on error.
+
+ Bug #104502
+
+ poppler/PDFDoc.cc | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+commit ad7f6acd3c643b5bc0c9b7f91616f678b178a041
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Mon Jan 8 23:40:25 2018 +0100
+
+ (C) of last commit
+
+ poppler/Lexer.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 582153b68e076c0f2ae71392f7553181c466e849
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Mon Jan 8 23:34:13 2018 +0100
+
+ Lexer: Check curStr is actually a Stream before doing Stream
+ operations
+
+ Bug #104518
+
+ poppler/Lexer.cc | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+commit dea6e03352084361e7c89cff7adaa53110c4e91a
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Mon Jan 8 23:25:39 2018 +0100
+
+ Fix new Object API porting bug
+
+ When doing the XRef::readXRefTable workaround of moving entries[1] to
+ entries[0] set the entries[1] object back to null
+
+ Bug #104517
+
+ poppler/XRef.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 4c9e1b66725051cd4726baf19d891c2d9c710868
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Mon Jan 8 23:09:13 2018 +0100
+
+ A few more nullptr
+
+ poppler/Link.h | 2 +-
+ poppler/Object.h | 4 ++--
+ poppler/OutputDev.h | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+commit e428033c2d7efbbbf89bb2f84c8998521ac7ef8e
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Mon Jan 8 22:55:00 2018 +0100
+
+ Run clang-tidy with modernize nullptr
+
+ Also add two enum values in the qt5 frontend to representate no flags
+ Also mark glib/gtk/cairo system includes so that gcc doesn't report
+ the issues in those headers
+
+ cmake/modules/PopplerMacros.cmake | 2 +-
+ cpp/poppler-document.cpp | 50 +-
+ cpp/poppler-image.cpp | 20 +-
+ cpp/poppler-page.cpp | 8 +-
+ cpp/poppler-private.cpp | 2 +-
+ cpp/poppler-toc.cpp | 4 +-
+ cpp/tests/poppler-dump.cpp | 2 +-
+ cpp/tests/poppler-render.cpp | 2 +-
+ fofi/FoFiBase.cc | 10 +-
+ fofi/FoFiEncodings.cc | 396 +-
+ fofi/FoFiIdentifier.cc | 2 +-
+ fofi/FoFiTrueType.cc | 30 +-
+ fofi/FoFiType1.cc | 18 +-
+ fofi/FoFiType1C.cc | 28 +-
+ glib/CMakeLists.txt | 4 +
+ glib/demo/info.cc | 12 +-
+ glib/poppler-action.cc | 54 +-
+ glib/poppler-annot.cc | 64 +-
+ glib/poppler-attachment.cc | 12 +-
+ glib/poppler-cached-file-loader.cc | 16 +-
+ glib/poppler-document.cc | 246 +-
+ glib/poppler-form-field.cc | 30 +-
+ glib/poppler-input-stream.cc | 14 +-
+ glib/poppler-layer.cc | 16 +-
+ glib/poppler-media.cc | 10 +-
+ glib/poppler-movie.cc | 6 +-
+ glib/poppler-page.cc | 124 +-
+ glib/poppler-structure-element.cc | 200 +-
+ glib/poppler.cc | 8 +-
+ goo/GooHash.cc | 24 +-
+ goo/GooString.cc | 16 +-
+ goo/GooTimer.cc | 6 +-
+ goo/PNGWriter.cc | 6 +-
+ goo/TiffWriter.cc | 18 +-
+ goo/gfile.cc | 26 +-
+ goo/gmem.cc | 18 +-
+ goo/grandom.cc | 4 +-
+ goo/gstrtod.cc | 10 +-
+ poppler/Annot.cc | 300 +-
+ poppler/Array.cc | 2 +-
+ poppler/BuiltinFont.cc | 2 +-
+ poppler/BuiltinFontTables.cc | 8374
+ ++++++++++++++++++------------------
+ poppler/CMap.cc | 22 +-
+ poppler/CairoFontEngine.cc | 42 +-
+ poppler/CairoOutputDev.cc | 108 +-
+ poppler/CairoRescaleBox.cc | 6 +-
+ poppler/Catalog.cc | 76 +-
+ poppler/CharCodeToUnicode.cc | 28 +-
+ poppler/CurlCachedFile.cc | 6 +-
+ poppler/DCTStream.cc | 16 +-
+ poppler/DateInfo.cc | 4 +-
+ poppler/Decrypt.cc | 4 +-
+ poppler/Dict.cc | 8 +-
+ poppler/Error.cc | 4 +-
+ poppler/FileSpec.cc | 18 +-
+ poppler/FontEncodingTables.cc | 980 ++---
+ poppler/FontInfo.cc | 22 +-
+ poppler/Form.cc | 70 +-
+ poppler/Function.cc | 26 +-
+ poppler/Gfx.cc | 146 +-
+ poppler/GfxFont.cc | 134 +-
+ poppler/GfxState.cc | 346 +-
+ poppler/GlobalParams.cc | 76 +-
+ poppler/GlobalParamsWin.cc | 170 +-
+ poppler/Hints.cc | 18 +-
+ poppler/JArithmeticDecoder.cc | 2 +-
+ poppler/JBIG2Stream.cc | 202 +-
+ poppler/JPEG2000Stream.cc | 22 +-
+ poppler/Lexer.cc | 8 +-
+ poppler/Linearization.cc | 16 +-
+ poppler/Link.cc | 52 +-
+ poppler/MarkedContentOutputDev.cc | 22 +-
+ poppler/Movie.cc | 2 +-
+ poppler/NameToCharCode.cc | 4 +-
+ poppler/NameToUnicodeTable.h | 4 +-
+ poppler/OptionalContent.cc | 28 +-
+ poppler/Outline.cc | 10 +-
+ poppler/OutputDev.cc | 6 +-
+ poppler/PDFDoc.cc | 84 +-
+ poppler/PSOutputDev.cc | 162 +-
+ poppler/PSOutputDev.h | 2 +-
+ poppler/Page.cc | 10 +-
+ poppler/PageLabelInfo.cc | 2 +-
+ poppler/Parser.cc | 10 +-
+ poppler/PopplerCache.cc | 4 +-
+ poppler/Rendition.cc | 4 +-
+ poppler/SecurityHandler.cc | 26 +-
+ poppler/SignatureHandler.cc | 60 +-
+ poppler/Sound.cc | 10 +-
+ poppler/SplashOutputDev.cc | 186 +-
+ poppler/StdinCachedFile.cc | 2 +-
+ poppler/StdinPDFDocBuilder.cc | 2 +-
+ poppler/Stream.cc | 70 +-
+ poppler/StructElement.cc | 72 +-
+ poppler/StructElement.h | 30 +-
+ poppler/StructTreeRoot.cc | 4 +-
+ poppler/StructTreeRoot.h | 2 +-
+ poppler/TextOutputDev.cc | 224 +-
+ poppler/UTF.cc | 6 +-
+ poppler/UnicodeMap.cc | 18 +-
+ poppler/UnicodeTypeTable.cc | 938 ++--
+ poppler/XRef.cc | 38 +-
+ qt5/demos/abstractinfodock.h | 2 +-
+ qt5/demos/documentobserver.cpp | 2 +-
+ qt5/demos/embeddedfiles.h | 2 +-
+ qt5/demos/fonts.h | 2 +-
+ qt5/demos/info.h | 2 +-
+ qt5/demos/metadata.h | 2 +-
+ qt5/demos/navigationtoolbar.h | 2 +-
+ qt5/demos/optcontent.cpp | 2 +-
+ qt5/demos/optcontent.h | 2 +-
+ qt5/demos/pageview.h | 2 +-
+ qt5/demos/permissions.h | 2 +-
+ qt5/demos/thumbnails.h | 2 +-
+ qt5/demos/toc.cpp | 4 +-
+ qt5/demos/toc.h | 2 +-
+ qt5/demos/viewer.cpp | 4 +-
+ qt5/src/ArthurOutputDev.cc | 2 +-
+ qt5/src/poppler-annotation.cc | 60 +-
+ qt5/src/poppler-base-converter.cc | 8 +-
+ qt5/src/poppler-document.cc | 18 +-
+ qt5/src/poppler-embeddedfile.cc | 14 +-
+ qt5/src/poppler-form.cc | 6 +-
+ qt5/src/poppler-link.cc | 4 +-
+ qt5/src/poppler-media.cc | 2 +-
+ qt5/src/poppler-movie.cc | 2 +-
+ qt5/src/poppler-optcontent.cc | 16 +-
+ qt5/src/poppler-optcontent.h | 2 +-
+ qt5/src/poppler-page.cc | 36 +-
+ qt5/src/poppler-pdf-converter.cc | 2 +-
+ qt5/src/poppler-private.cc | 16 +-
+ qt5/src/poppler-private.h | 2 +-
+ qt5/src/poppler-ps-converter.cc | 10 +-
+ qt5/src/poppler-qt5.h | 8 +-
+ qt5/src/poppler-sound.cc | 2 +-
+ qt5/tests/check_lexer.cpp | 2 +-
+ qt5/tests/check_metadata.cpp | 8 +-
+ qt5/tests/check_search.cpp | 2 +-
+ qt5/tests/stress-threads-qt5.cpp | 12 +-
+ qt5/tests/test-poppler-qt5.cpp | 2 +-
+ splash/Splash.cc | 110 +-
+ splash/SplashBitmap.cc | 18 +-
+ splash/SplashClip.cc | 12 +-
+ splash/SplashFTFont.cc | 8 +-
+ splash/SplashFTFontEngine.cc | 8 +-
+ splash/SplashFTFontFile.cc | 12 +-
+ splash/SplashFont.cc | 8 +-
+ splash/SplashFontEngine.cc | 22 +-
+ splash/SplashFontFile.cc | 4 +-
+ splash/SplashPath.cc | 8 +-
+ splash/SplashScreen.cc | 4 +-
+ splash/SplashState.cc | 22 +-
+ splash/SplashXPath.cc | 8 +-
+ splash/SplashXPathScanner.cc | 4 +-
+ test/CMakeLists.txt | 5 +-
+ test/gtk-test.cc | 28 +-
+ test/pdf-fullrewrite.cc | 14 +-
+ test/pdf-inspector.cc | 22 +-
+ test/perf-test.cc | 66 +-
+ utils/HtmlFonts.cc | 8 +-
+ utils/HtmlLinks.cc | 6 +-
+ utils/HtmlOutputDev.cc | 94 +-
+ utils/ImageOutputDev.cc | 10 +-
+ utils/JSInfo.cc | 4 +-
+ utils/Win32Console.cc | 2 +-
+ utils/parseargs.cc | 2 +-
+ utils/pdfdetach.cc | 8 +-
+ utils/pdffonts.cc | 6 +-
+ utils/pdfimages.cc | 8 +-
+ utils/pdfinfo.cc | 6 +-
+ utils/pdfseparate.cc | 14 +-
+ utils/pdfsig.cc | 12 +-
+ utils/pdftocairo-win32.cc | 22 +-
+ utils/pdftocairo.cc | 34 +-
+ utils/pdftohtml.cc | 36 +-
+ utils/pdftoppm.cc | 20 +-
+ utils/pdftops.cc | 8 +-
+ utils/pdftotext.cc | 10 +-
+ utils/pdfunite.cc | 16 +-
+ 179 files changed, 7929 insertions(+), 7920 deletions(-)
+
+commit 2e47887616155dee566083e1aac9adab69aa4386
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Mon Jan 8 22:14:34 2018 +0100
+
+ Seems we don't need to set this cmake policies to OLD
+
+ builds fine without warnings
+
+ cmake/modules/PopplerDefaults.cmake | 8 --------
+ 1 file changed, 8 deletions(-)
+
+commit 1ae5d91467663576a5d11add69fa72a2d108f0ad
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Mon Jan 8 18:45:43 2018 +0100
+
+ Remove useless return in a void function
+
+ poppler/SplashOutputDev.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 8794789a72f845b009656e6d7ae6a00b709e09bc
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Mon Jan 8 18:07:38 2018 +0100
+
+ Delete lots of copy constructors and copy assignment operators
+
+ Fixes rule-of-three and copyable-polymorphic warnings reported
+ by clazy.
+
+ The default copy constructor and copy assignment operator are
+ only valid for simple classes so we delete them (i.e. make then
+ not exist)
+ when we have either a virtual class or a destructor, the code still
+ compiles
+ so this doesn't fix any bug, it is more a protection for when you
+ think you
+ can copy a class and don't realize the default copy constrcutor is
+ not doing
+ what you want and you get crashes. Hopefully this helps us in the
+ future :)
+
+ cpp/poppler-document-private.h | 4 ++++
+ cpp/poppler-embedded-file-private.h | 4 ++++
+ cpp/poppler-global.cpp | 3 +++
+ cpp/poppler-image-private.h | 4 ++++
+ cpp/poppler-image.cpp | 4 +++-
+ cpp/poppler-page-private.h | 4 ++++
+ cpp/poppler-toc-private.h | 4 ++++
+ fofi/FoFiBase.h | 16 ++++++++++++++
+ fofi/FoFiIdentifier.cc | 4 ++++
+ goo/GooMutex.h | 5 ++++-
+ goo/ImgWriter.h | 6 +++++-
+ goo/gfile.h | 5 ++++-
+ poppler/Annot.h | 38
+ +++++++++++++++++++++++++++++++++-
+ poppler/Array.h | 5 ++++-
+ poppler/BuiltinFont.h | 18 ++++++++++++++++
+ poppler/CMap.h | 8 ++++++-
+ poppler/CachedFile.h | 9 +++++++-
+ poppler/CairoFontEngine.h | 6 +++++-
+ poppler/CairoOutputDev.h | 4 ++++
+ poppler/CairoRescaleBox.h | 4 ++++
+ poppler/Catalog.h | 9 +++++++-
+ poppler/CharCodeToUnicode.h | 8 ++++++-
+ poppler/Dict.h | 5 ++++-
+ poppler/FileSpec.h | 8 ++++++-
+ poppler/FontInfo.h | 4 +++-
+ poppler/Form.h | 8 ++++++-
+ poppler/Function.h | 5 ++++-
+ poppler/Gfx.cc | 5 ++++-
+ poppler/Gfx.h | 8 ++++++-
+ poppler/GfxFont.h | 11 +++++++++-
+ poppler/GfxState.cc | 2 ++
+ poppler/GfxState.h | 26 ++++++++++++++++++++++-
+ poppler/GlobalParams.cc | 6 +++++-
+ poppler/GlobalParams.h | 5 ++++-
+ poppler/Hints.h | 5 ++++-
+ poppler/JArithmeticDecoder.h | 18 ++++++++++++++++
+ poppler/JBIG2Stream.cc | 4 +++-
+ poppler/Lexer.h | 5 ++++-
+ poppler/Link.h | 10 +++++++++
+ poppler/MarkedContentOutputDev.h | 4 ++++
+ poppler/Movie.h | 3 ++-
+ poppler/NameToCharCode.h | 17 +++++++++++++++
+ poppler/OptionalContent.h | 11 +++++++++-
+ poppler/Outline.h | 8 ++++++-
+ poppler/PDFDoc.h | 5 ++++-
+ poppler/PDFDocBuilder.h | 8 +++++--
+ poppler/PDFDocFactory.h | 5 ++++-
+ poppler/PSOutputDev.cc | 7 ++++++-
+ poppler/Page.h | 5 ++++-
+ poppler/PageLabelInfo.h | 6 +++++-
+ poppler/Parser.h | 5 ++++-
+ poppler/PopplerCache.h | 18 +++++++++++++---
+ poppler/Rendition.h | 3 ++-
+ poppler/SecurityHandler.cc | 5 ++++-
+ poppler/SecurityHandler.h | 5 ++++-
+ poppler/Sound.h | 5 ++++-
+ poppler/SplashOutputDev.cc | 4 +++-
+ poppler/Stream.h | 14 ++++++++++++-
+ poppler/StructElement.h | 5 ++++-
+ poppler/StructTreeRoot.h | 4 ++++
+ poppler/TextOutputDev.cc | 2 ++
+ poppler/TextOutputDev.h | 29 +++++++++++++++++++++++++-
+ poppler/UnicodeMap.h | 7 +++++++
+ poppler/XRef.cc | 5 ++++-
+ poppler/XRef.h | 9 +++++++-
+ qt5/demos/documentobserver.h | 3 +++
+ qt5/src/poppler-annotation-private.h | 5 ++++-
+ qt5/src/poppler-annotation.cc | 14 ++++++++++++-
+ qt5/src/poppler-converter-private.h | 5 ++++-
+ qt5/src/poppler-embeddedfile-private.h | 5 ++++-
+ qt5/src/poppler-link-private.h | 5 ++++-
+ qt5/src/poppler-media.cc | 5 ++++-
+ qt5/src/poppler-movie.cc | 5 ++++-
+ qt5/src/poppler-optcontent-private.h | 5 ++++-
+ qt5/src/poppler-page-transition.cc | 3 +++
+ qt5/src/poppler-page-transition.h | 3 ++-
+ qt5/src/poppler-private.h | 18 +++++++---------
+ qt5/src/poppler-sound.cc | 5 ++++-
+ splash/Splash.h | 5 ++++-
+ splash/SplashBitmap.h | 5 ++++-
+ splash/SplashClip.h | 5 ++++-
+ splash/SplashFTFontEngine.h | 5 ++++-
+ splash/SplashFont.h | 5 ++++-
+ splash/SplashFontEngine.h | 5 ++++-
+ splash/SplashFontFile.h | 8 ++++++-
+ splash/SplashFontFileID.h | 16 ++++++++++++++
+ splash/SplashPath.h | 17 +++++++++++++++
+ splash/SplashPattern.h | 4 ++++
+ splash/SplashScreen.h | 5 ++++-
+ splash/SplashState.h | 4 ++++
+ splash/SplashXPath.h | 4 ++++
+ splash/SplashXPathScanner.h | 4 ++++
+ test/perf-test.cc | 4 ++++
+ utils/HtmlFonts.h | 4 +++-
+ utils/HtmlLinks.h | 5 ++++-
+ utils/HtmlOutputDev.cc | 4 +++-
+ utils/HtmlOutputDev.h | 13 ++++++++++--
+ 97 files changed, 626 insertions(+), 83 deletions(-)
+
+commit 4c7814342806b61fedbb2d45ce74462f9dbc20bc
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Thu Jan 4 23:12:54 2018 +0100
+
+ Fix assert on malformed documents
+
+ Bug #104354
+
+ poppler/GfxState.cc | 23 ++++++++++++-----------
+ 1 file changed, 12 insertions(+), 11 deletions(-)
+
+commit 6233710068e8406cb44741bdc74d1a0e2582e5cf
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Thu Jan 4 15:41:11 2018 +1030
+
+ Remove error for wrong child type for tagged pdf
+
+ It is harmless and as a few PDFs do this it just adds noise to
+ the output.
+
+ Bug #103587
+
+ poppler/StructTreeRoot.cc | 3 ---
+ 1 file changed, 3 deletions(-)
+
+commit 321538259a9c79a99ce846a6ea2d94dd7fa56f61
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Nov 26 20:43:15 2017 +1030
+
+ Fix some bugs in StructTreeRoot parsing of parent tree
+
+ - Add support for parsing child nodes in the number tree
+ - Number tree keys do not have to be consecutive numbers. Use
+ map instead of vector for parentTree.
+ - Due to performance impact of iterating a map instead of
+ vector in parentTreeAdd, add a reverse mapping from Ref
+ to parentTree.
+ - Add mcid parameter to findParentElement() to enable finding
+ the parent when there are multiple MCIDs on the same page.
+ - Move RefCompare from pdfinfo.cc to Object.h so it can be
+ used by other files.
+
+ Bug #103912
+
+ poppler/Object.h | 8 +++
+ poppler/StructElement.cc | 2 +-
+ poppler/StructTreeRoot.cc | 121
+ +++++++++++++++++++++++++++-------------------
+ poppler/StructTreeRoot.h | 14 ++++--
+ utils/pdfinfo.cc | 6 ---
+ 5 files changed, 91 insertions(+), 60 deletions(-)
+
+commit c4cbb4fd5e062544bf34109140266d0b027a512b
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Mon Oct 30 19:21:41 2017 +1030
+
+ Fix pdfimages with flate encoded inline images
+
+ - Remove advance strem pos to end of image code from listImage().
+ getInlineImageLength() already does this.
+
+ - Always EmbedStream in getInlineImageLength() to get size of
+ stored image.
+ The type of encoding does not matter.
+
+ - Use same record EmbeddeStream code for all image types in
+ writeImage()
+
+ - Fix some memory leaks
+
+ Bug #103446
+
+ utils/ImageOutputDev.cc | 54
+ ++++++++++++-------------------------------------
+ 1 file changed, 13 insertions(+), 41 deletions(-)
+
+commit f87238296f7a81f131f2525c4ea3a26d14e8a7ff
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Wed Jan 3 08:36:58 2018 +1030
+
+ Fix EmbedStream replay
+
+ Bug #103446
+
+ poppler/Stream.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit e70990c5b2d95a9099b8f4a1c69ca9e5b2a559a4
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Jan 3 00:46:42 2018 +0100
+
+ qt5: make the check for rendition a bit earlier
+
+ qt5/src/poppler-annotation.cc | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+
+commit 9f08b62ea283ea66b35cfc6dab3e7f45bc4170b9
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Jan 3 00:32:23 2018 +0100
+
+ qt5: Do not assume all Screen annotation actions are Renditions
+
+ Fixes KDE bug #388175
+
+ qt5/src/poppler-annotation.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 15272137daf186114d8dfeb6898d8d90b3ccfd91
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Jan 3 00:14:13 2018 +0100
+
+ Fix undefined sanitizer warning about qsort
+
+ Said the first parameter is defined by spec to not be null and
+ we where
+ passing null when there's no blocks, so add an if
+
+ poppler/TextOutputDev.cc | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+commit 066e6a3e0487f9e011f7b8d1ccff62def8db1e6c
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Jan 3 00:15:14 2018 +0100
+
+ Welcome 2018
+
+ poppler/poppler-config.h.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c9958ecb87de34b923a17521c8bb149569bacca8
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date: Sat Oct 28 21:16:55 2017 +0200
+
+ ArthurOutputDev: Rudimentary support for transparency groups
+
+ This patch adds minimal support for transparency groups. With it,
+ the Arthur backend can render highlight annotations.
+
+ qt5/src/ArthurOutputDev.cc | 46
+ ++++++++++++++++++++++++++++++++++++++++++++++
+ qt5/src/ArthurOutputDev.h | 15 +++++++++++++++
+ 2 files changed, 61 insertions(+)
+
+commit bda1d76fc3c9cf69b2b67d94278e136ac50c3e3b
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date: Fri Dec 29 00:14:44 2017 +0100
+
+ ArthurOutputDev: Replace the QPainter by a stack of QPainters
+
+ This patch lays some groundwork for the support of transparency
+ groups. Transparency groups temporarily create new painters.
+ These get painted upon, and then the resulting new painting
+ will be drawn at once onto the original PaintDevice. To implement
+ this, we need a stack of painters rather than a single one.
+ The first painter on the stack is the original one. Opening a
+ transparency group pushes a new painter onto the stack, and
+ all drawing operations always go to the painter on the top
+ of the stack.
+
+ qt5/src/ArthurOutputDev.cc | 88
+ +++++++++++++++++++++++-----------------------
+ qt5/src/ArthurOutputDev.h | 7 +++-
+ 2 files changed, 50 insertions(+), 45 deletions(-)
+
+commit 71b04b79154a8edd27e73a2360d0c3a901246d8c
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date: Fri Aug 11 22:23:46 2017 +0200
+
+ ArthurOutputDev: Implement updateBlendMode
+
+ qt5/src/ArthurOutputDev.cc | 52
+ ++++++++++++++++++++++++++++++++++++++++++++++
+ qt5/src/ArthurOutputDev.h | 1 +
+ 2 files changed, 53 insertions(+)
+
+commit 9b981f9123fe8c3c8662015de341cff76aa28b07
+Author: Thomas Freitag <Thomas.Freitag@alfa.de>
+Date: Thu Dec 28 00:55:39 2017 +0100
+
+ FoFiTrueType::readPostTable() from xpdf 4.00
+
+ Bug #102880
+
+ fofi/FoFiTrueType.cc | 30 +++++++++++-------------------
+ 1 file changed, 11 insertions(+), 19 deletions(-)
+
+commit 00fc829352716b04d9ab59552daefffed20e2852
+Author: Thomas Freitag <Thomas.Freitag@alfa.de>
+Date: Thu Dec 28 00:55:00 2017 +0100
+
+ Break loop if recursionLimit is reached
+
+ poppler/Parser.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit e41ce80a27b735df8e2ccc17e15adea012543712
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Dec 27 00:18:47 2017 +0100
+
+ OutlineItem: Store parent and refNum
+
+ This way when opening our children we make sure they are not also our
+ parent (i.e. there's a loop)
+
+ Fixes bug #102914
+
+ poppler/Outline.cc | 31 +++++++++++++++++--------------
+ poppler/Outline.h | 6 ++++--
+ 2 files changed, 21 insertions(+), 16 deletions(-)
+
+commit ffefe1c038de555ed39c3d9eca6ef79ac1f97b86
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Tue Dec 26 23:57:21 2017 +0100
+
+ qt5: demo: don't crash if page is malformed
+
+ qt5/demos/pageview.cpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit 81461f4cddf6b8705e6cf24d20084fc71891bb91
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Sat Dec 23 11:20:43 2017 +0100
+
+ Remove another LCMS1 old ifdef
+
+ utils/pdftocairo.cc | 9 +--------
+ 1 file changed, 1 insertion(+), 8 deletions(-)
+
+commit 2556ec0705373a01feffe3ca0cd7147af2fdd2c9
+Author: suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+Date: Sat Dec 23 11:19:17 2017 +0100
+
+ Remove libcms1 crumbs from pdftocairo and qt5 frontend
+
+ Bug #104358
+
+ qt5/src/poppler-document.cc | 5 +----
+ utils/pdftocairo.cc | 6 +-----
+ 2 files changed, 2 insertions(+), 9 deletions(-)
+
+commit 48de59a92a5f88d10a1a53abf7f15f578104e1ed
+Author: Carlos Garcia Campos <cgarcia@igalia.com>
+Date: Thu Dec 21 13:25:37 2017 +0100
+
+ regtest: Add an option to exit after n failures
+
+ Note that running jobs are not cancelled when max failures is reached,
+ so we usually end up getting more failures than the maximum.
+
+ regtest/HTMLReport.py | 2 ++
+ regtest/Printer.py | 15 ++++++++++++++
+ regtest/TestRun.py | 46
+ +++++++++++++++++++++++++++++++++++++++++--
+ regtest/commands/run-tests.py | 8 +++++++-
+ 4 files changed, 68 insertions(+), 3 deletions(-)
+
+commit 79a096a48c735ac301ae4d7439bddf630a559a96
+Author: Vincent Le Garrec <legarrec.vincent@gmail.com>
+Date: Thu Dec 21 00:57:48 2017 +0100
+
+ Fix index out of bounds undefined behaviour in PSTokenizer
+
+ Bug #103583
+
+ poppler/PSTokenizer.cc | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit c138ec620b5084348dc892bf9fd8228ed098970a
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date: Tue Nov 28 16:40:40 2017 +0100
+
+ Arthur: 'clip' should intersect new and old clipping path
+
+ Previously, the 'clip' method of the ArthurOutputDev class
+ replaced the current clipping path with the one given in
+ the GfxState variable. However, the expected behavior is
+ to intersect the new path with the old one, and use the
+ result as the new clipping path.
+
+ qt5/src/ArthurOutputDev.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 7b434a7ad9333a3b2250d636a517c58d9a12bca2
+Author: Pekka Vuorela <pekka.vuorela@jollamobile.com>
+Date: Fri Dec 15 16:56:20 2017 +0200
+
+ Honor configuration for building glibc copy of strtok_r
+
+ config.h didn't get included and HAVE_STRTOK_R was never defined.
+ Now getting via glibc.h.
+
+ goo/glibc_strtok_r.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit c2037af18095bb42dd43bafb42650df469e7e5ef
+Author: Oliver Sander <oliver.sander@tu-dresden.de>
+Date: Wed Oct 18 23:23:50 2017 +0200
+
+ Don't let ArthurOutputDev be friend of SplashPath anymore
+
+ Now that ArthurOutputDev uses Qt glyph rendering, there is
+ not need for it to be friend of SplashPath anymore.
+
+ splash/SplashPath.h | 2 --
+ 1 file changed, 2 deletions(-)
+
+commit 33c3b391dfc3c10b1b63b0b82df4dcb47b71c53a
+Author: Fredrik Fornwall <fredrik@fornwall.net>
+Date: Tue Dec 19 00:37:44 2017 +0100
+
+ PDFDoc: use %c instead of \x to output binary
+
+ Bug #103873
+
+ poppler/PDFDoc.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 15dd674a384c80a8f3d4f0647f6617ba72d9bd26
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Thu Dec 14 15:11:31 2017 +0100
+
+ Remove unused FindLIBOPENJPEG.cmake
+
+ cmake/modules/FindLIBOPENJPEG.cmake | 64
+ -------------------------------------
+ 1 file changed, 64 deletions(-)
+
+commit 65dcc0b9c16c80e6718ada060d7ac0e2c0e39abf
+Author: Albert Astals Cid <albert.astals.cid@kdab.com>
+Date: Wed Dec 13 10:40:50 2017 +0100
+
+ Reset lastAbortCheck on updateLevel reset
+
+ Otherwise we get to a point that the
+ if (updateLevel - lastAbortCheck > 10) {
+ branch is never executed because updateLevel got to 20000 but
+ lastAbortCheck is still at the last value
+
+ poppler/Gfx.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 3690e96154b226025b465ac2260cf1ff2d269abd
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Wed Dec 13 00:07:20 2017 +0100
+
+ Remove the extern C from glib.h
+
+ Apparently this fixes build with MSVC
+
+ Bug #103621
+
+ goo/glibc.h | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+commit f5706275121409887b0e486b896b48cbcccb766a
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Oct 22 10:26:55 2017 +1030
+
+ cairo: limit image size when printing
+
+ 1 bpp image formats can have very large sizes. Even if the maximum
+ cairo image size is not exceeded, it still uses a huge amount
+ of memory
+ and is very slow.
+
+ This limits the image size when printing to 8192x8192 which is
+ sufficient for 300ppi at A2 size. Cairo >= 1.5.10 scales mime images
+ to the same dimensions as the cairo image, so the original mime image
+ can still be embedded.
+
+ Bug 103399
+
+ poppler/CairoOutputDev.cc | 35 ++++++++++++++++++++++++++++++++---
+ 1 file changed, 32 insertions(+), 3 deletions(-)
+
+commit 3f13dd5f04984be1912b4537ffbfacd892750915
+Author: Adrian Johnson <ajohnson@redneon.com>
+Date: Sun Oct 22 09:37:01 2017 +1030
+
+ cairo: support embedding CCITT image data
+
+ Bug 103399
+
+ poppler/CairoOutputDev.cc | 46
+ +++++++++++++++++++++++++++++++++++++++++++---
+ poppler/CairoOutputDev.h | 5 ++++-
+ poppler/Stream.cc | 14 ++++++++++----
+ poppler/Stream.h | 6 +++++-
+ 4 files changed, 62 insertions(+), 9 deletions(-)
+
+commit 3263fa4439e1a09dae6a0332a90b983d25bc218d
+Author: Thomas Freitag <Thomas.Freitag@alfa.de>
+Date: Tue Dec 12 00:26:37 2017 +0100
+
+ windows version for Error out on save if file has changed since we
+ opened it
+
+ goo/gfile.cc | 14 +++++++++++++-
+ goo/gfile.h | 6 ++++--
+ 2 files changed, 17 insertions(+), 3 deletions(-)
+
+commit e4ee1392136188fab0005a0bd7b30c6d9a16d97d
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Tue Dec 12 00:24:31 2017 +0100
+
+ Error out on save if file has changed since we opened it
+
+ In poppler we keep the fd of the file open so the XRef+FileStream can
+ locate objects. This is good since we save lots of memory for
+ not having
+ everything on memory all the time, but that means that when we want to
+ save we need the file to be exactly the same as it was when we created
+ the XRef otherwise we're going to be reading from the wrong part
+ of the
+ "new" file.
+
+ Bug #103793
+
+ goo/gfile.cc | 18 +++++++++++++++++-
+ goo/gfile.h | 10 ++++++++--
+ poppler/ErrorCodes.h | 16 ++++++++++++++++
+ poppler/PDFDoc.cc | 11 +++++++++++
+ 4 files changed, 52 insertions(+), 3 deletions(-)
+
+commit f10359121568409e6062a82de696fe93be615a53
+Author: Albert Astals Cid <aacid@kde.org>
+Date: Sun Dec 3 22:41:32 2017 +0100
+
+ Fix memory leak on error condition
+
+ poppler/Catalog.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
commit 72e0a3a087f160d819f7697a8536bbee12240c7a
Author: Albert Astals Cid <aacid@kde.org>
Date: Sun Dec 3 20:25:06 2017 +0100
diff --git a/Build/source/libs/poppler/poppler-src/NEWS b/Build/source/libs/poppler/poppler-src/NEWS
index 283dfc423b8..8b0af2243c6 100644
--- a/Build/source/libs/poppler/poppler-src/NEWS
+++ b/Build/source/libs/poppler/poppler-src/NEWS
@@ -1,3 +1,63 @@
+Release 0.63.0
+ core:
+ * CairoOutputDev: support embedding CCITT image data. Bug #103399
+ * CairoOutputDev: limit image size when printing. Bug #103399
+ * CairoOutputDev: use GOOD instead of BEST as the default cairo filter for scaling. Bug #103136
+ * Error out on save if file has changed since we opened it. Bug #103793
+ * PDFDoc: use %c instead of \x to output binary. Bug #103873
+ * Fix index out of bounds undefined behaviour in PSTokenizer. Bug #103583
+ * Fix opening files with OutlineItem loops. Bug #102914
+ * Fix some bugs in StructTreeRoot parsing of parent tree. Bug #103912
+ * Remove error for wrong child type for tagged pdf. Bug #103587
+ * FoFiTrueType::readPostTable() from xpdf 4.00. Bug #102880
+ * GfxFontDict: merge reference generation from xpdf 4.00. Bug #104565
+ * Reset lastAbortCheck on updateLevel reset
+ * PDFDoc::setup: Fail early if base stream length is 0. Bug #103552
+ * Check curStr is actually a Stream before doing Stream operations. Bug #104518
+ * Fix new Object API porting bug. Bug #104517
+ * Check return code of getChar(), abort reading on error. Bug #104502
+ * TextPage: Add horizontal scaling to font matrix. Bug #105259
+ * Fix EmbedStream replay. Bug #103446
+ * Fix memory leak on error condition
+ * Fix assert on malformed documents. Bug #104354
+ * Fix abort in Gfx::opBeginMarkedContent if args[1] is not a name. Bug #104468
+ * GfxGouraudTriangleShading::parse: Don't abort on malformed documents. Bug #104567
+ * GfxFunctionShading::parse: Fix abort in malformed document. Bug #104581
+ * Remove the extern C from glib.h. Bug #103621
+ * Don't let ArthurOutputDev be friend of SplashPath anymore
+ * Fix undefined sanitizer warning about qsort
+ * Form.h: include time.h for time_t
+ * Various code improvements
+
+ qt5:
+ * Add cancellation support to renderToImage and textList
+ * Do not assume all Screen annotation actions are Renditions. KDE bug #388175
+ * qt5: Implement operator= for PageTransition
+ * ArthurOutputDev: 'clip' should intersect new and old clipping path
+ * ArthurOutputDev: Implement updateBlendMode
+ * ArthurOutputDev: Replace the QPainter by a stack of QPainters
+ * ArthurOutputDev: Rudimentary support for transparency groups
+ * Remove stale libcms1 code. Bug #104358
+ * demo: don't crash if page is malformed
+ * Fix warnings due to the use of deprecated overloads of Poppler::Page::Search in tests.
+
+ utils:
+ * pdfimages: Fix for files with flate encoded inline images. Bug #103446
+ * pdftocairo: Remove stale libcms1 code. Bug #104358
+ * pdfimages: Fix build without libtiff and libpng
+ * pdfseparate: Fix buffer size warning due to missing space for null terminator
+
+ build system:
+ * Enable building all libs as static libs
+ * Enable no-missing-field-initializers
+ * Remove unused FindLIBOPENJPEG.cmake
+ * add "--owner root:0 --group root:0" options to tar command in dist target. Bug #104398
+ * Add python3 support to gtkdoc.py
+ * gtkdoc.py: Make it work with newer gtk-doc. Bug #105075
+
+ cpp:
+ * Add page::text_list
+
Release 0.62.0
core:
* Stop supporting lcms1, you really want to use lcms2 :)
diff --git a/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc b/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc
index c58231189b1..2fa71d130be 100644
--- a/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc
+++ b/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc
@@ -57,29 +57,29 @@ char *FoFiBase::readFile(char *fileName, int *fileLen) {
if (!(f = fopen(fileName, "rb"))) {
error(errIO, -1, "Cannot open '{0:s}'", fileName);
- return NULL;
+ return nullptr;
}
if (fseek(f, 0, SEEK_END) != 0) {
error(errIO, -1, "Cannot seek to end of '{0:s}'", fileName);
fclose(f);
- return NULL;
+ return nullptr;
}
n = (int)ftell(f);
if (n < 0) {
error(errIO, -1, "Cannot determine length of '{0:s}'", fileName);
fclose(f);
- return NULL;
+ return nullptr;
}
if (fseek(f, 0, SEEK_SET) != 0) {
error(errIO, -1, "Cannot seek to start of '{0:s}'", fileName);
fclose(f);
- return NULL;
+ return nullptr;
}
buf = (char *)gmalloc(n);
if ((int)fread(buf, 1, n, f) != n) {
gfree(buf);
fclose(f);
- return NULL;
+ return nullptr;
}
fclose(f);
*fileLen = n;
diff --git a/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.h b/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.h
index d613acd2bb1..be4e7025336 100644
--- a/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.h
+++ b/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.h
@@ -6,6 +6,20 @@
//
//========================================================================
+//========================================================================
+//
+// Modified under the Poppler project - http://poppler.freedesktop.org
+//
+// All changes made under the Poppler project to this file are licensed
+// under GPL version 2 or later
+//
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
+//
+// To see a description of the changes please see the Changelog file that
+// came with your tarball or type make ChangeLog if you are building from git
+//
+//========================================================================
+
#ifndef FOFIBASE_H
#define FOFIBASE_H
@@ -25,6 +39,8 @@ typedef void (*FoFiOutputFunc)(void *stream, const char *data, int len);
class FoFiBase {
public:
+ FoFiBase(const FoFiBase &) = delete;
+ FoFiBase& operator=(const FoFiBase &other) = delete;
virtual ~FoFiBase();
diff --git a/Build/source/libs/poppler/poppler-src/fofi/FoFiEncodings.cc b/Build/source/libs/poppler/poppler-src/fofi/FoFiEncodings.cc
index 9fad1ebae83..96bd4e950fd 100644
--- a/Build/source/libs/poppler/poppler-src/fofi/FoFiEncodings.cc
+++ b/Build/source/libs/poppler/poppler-src/fofi/FoFiEncodings.cc
@@ -34,38 +34,38 @@
//------------------------------------------------------------------------
const char * const fofiType1StandardEncoding[256] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"space",
"exclam",
"quotedbl",
@@ -161,40 +161,40 @@ const char * const fofiType1StandardEncoding[256] = {
"bar",
"braceright",
"asciitilde",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"exclamdown",
"cent",
"sterling",
@@ -210,12 +210,12 @@ const char * const fofiType1StandardEncoding[256] = {
"guilsinglright",
"fi",
"fl",
- NULL,
+ nullptr,
"endash",
"dagger",
"daggerdbl",
"periodcentered",
- NULL,
+ nullptr,
"paragraph",
"bullet",
"quotesinglbase",
@@ -224,9 +224,9 @@ const char * const fofiType1StandardEncoding[256] = {
"guillemotright",
"ellipsis",
"perthousand",
- NULL,
+ nullptr,
"questiondown",
- NULL,
+ nullptr,
"grave",
"acute",
"circumflex",
@@ -235,100 +235,100 @@ const char * const fofiType1StandardEncoding[256] = {
"breve",
"dotaccent",
"dieresis",
- NULL,
+ nullptr,
"ring",
"cedilla",
- NULL,
+ nullptr,
"hungarumlaut",
"ogonek",
"caron",
"emdash",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"AE",
- NULL,
+ nullptr,
"ordfeminine",
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"Lslash",
"Oslash",
"OE",
"ordmasculine",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"ae",
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
"dotlessi",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"lslash",
"oslash",
"oe",
"germandbls",
- NULL,
- NULL,
- NULL,
- NULL
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr
};
const char * const fofiType1ExpertEncoding[256] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"space",
"exclamsmall",
"Hungarumlautsmall",
- NULL,
+ nullptr,
"dollaroldstyle",
"dollarsuperior",
"ampersandsmall",
@@ -357,35 +357,35 @@ const char * const fofiType1ExpertEncoding[256] = {
"threequartersemdash",
"periodsuperior",
"questionsmall",
- NULL,
+ nullptr,
"asuperior",
"bsuperior",
"centsuperior",
"dsuperior",
"esuperior",
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
"isuperior",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"lsuperior",
"msuperior",
"nsuperior",
"osuperior",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"rsuperior",
"ssuperior",
"tsuperior",
- NULL,
+ nullptr,
"ff",
"fi",
"fl",
"ffi",
"ffl",
"parenleftinferior",
- NULL,
+ nullptr,
"parenrightinferior",
"Circumflexsmall",
"hyphensuperior",
@@ -420,67 +420,67 @@ const char * const fofiType1ExpertEncoding[256] = {
"onefitted",
"rupiah",
"Tildesmall",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"exclamdownsmall",
"centoldstyle",
"Lslashsmall",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"Scaronsmall",
"Zcaronsmall",
"Dieresissmall",
"Brevesmall",
"Caronsmall",
- NULL,
+ nullptr,
"Dotaccentsmall",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"Macronsmall",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"figuredash",
"hypheninferior",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"Ogoneksmall",
"Ringsmall",
"Cedillasmall",
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
"onequarter",
"onehalf",
"threequarters",
@@ -491,8 +491,8 @@ const char * const fofiType1ExpertEncoding[256] = {
"seveneighths",
"onethird",
"twothirds",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"zerosuperior",
"onesuperior",
"twosuperior",
diff --git a/Build/source/libs/poppler/poppler-src/fofi/FoFiIdentifier.cc b/Build/source/libs/poppler/poppler-src/fofi/FoFiIdentifier.cc
index 00b240fdf07..3d41145b15d 100644
--- a/Build/source/libs/poppler/poppler-src/fofi/FoFiIdentifier.cc
+++ b/Build/source/libs/poppler/poppler-src/fofi/FoFiIdentifier.cc
@@ -14,6 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2013 Christoph Duelli <duelli@melosgmbh.de>
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -36,6 +37,9 @@ namespace { // do not pollute global namespace
class Reader {
public:
+ Reader() = default;
+ Reader(const Reader &) = delete;
+ Reader& operator=(const Reader &other) = delete;
virtual ~Reader() {}
@@ -186,7 +190,7 @@ FileReader *FileReader::make(char *fileName) {
FILE *fA;
if (!(fA = fopen(fileName, "rb"))) {
- return NULL;
+ return nullptr;
}
return new FileReader(fA);
}
diff --git a/Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc b/Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc
index 2bbf04680dd..76299acc3d5 100644
--- a/Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc
+++ b/Build/source/libs/poppler/poppler-src/fofi/FoFiTrueType.cc
@@ -277,7 +277,7 @@ FoFiTrueType *FoFiTrueType::make(char *fileA, int lenA, int faceIndexA) {
ff = new FoFiTrueType(fileA, lenA, gFalse, faceIndexA);
if (!ff->parsedOk) {
delete ff;
- return NULL;
+ return nullptr;
}
return ff;
}
@@ -288,12 +288,12 @@ FoFiTrueType *FoFiTrueType::load(char *fileName, int faceIndexA) {
int lenA;
if (!(fileA = FoFiBase::readFile(fileName, &lenA))) {
- return NULL;
+ return nullptr;
}
ff = new FoFiTrueType(fileA, lenA, gTrue, faceIndexA);
if (!ff->parsedOk) {
delete ff;
- return NULL;
+ return nullptr;
}
return ff;
}
@@ -301,11 +301,11 @@ FoFiTrueType *FoFiTrueType::load(char *fileName, int faceIndexA) {
FoFiTrueType::FoFiTrueType(char *fileA, int lenA, GBool freeFileDataA, int faceIndexA):
FoFiBase(fileA, lenA, freeFileDataA)
{
- tables = NULL;
+ tables = nullptr;
nTables = 0;
- cmaps = NULL;
+ cmaps = nullptr;
nCmaps = 0;
- nameToGID = NULL;
+ nameToGID = nullptr;
parsedOk = gFalse;
faceIndex = faceIndexA;
gsubFeatureTable = 0;
@@ -472,10 +472,10 @@ int *FoFiTrueType::getCIDToGIDMap(int *nCIDs) {
*nCIDs = 0;
if (!getCFFBlock(&start, &length)) {
- return NULL;
+ return nullptr;
}
if (!(ff = FoFiType1C::make(start, length))) {
- return NULL;
+ return nullptr;
}
map = ff->getCIDToGIDMap(nCIDs);
delete ff;
@@ -556,7 +556,7 @@ void FoFiTrueType::convertToType42(char *psName, char **encoding,
// write the guts of the dictionary
cvtEncoding(encoding, outputFunc, outputStream);
cvtCharStrings(encoding, codeToGID, outputFunc, outputStream);
- cvtSfnts(outputFunc, outputStream, NULL, gFalse, &maxUsedGlyph);
+ cvtSfnts(outputFunc, outputStream, nullptr, gFalse, &maxUsedGlyph);
// end the dictionary and define the font
(*outputFunc)(outputStream, "FontName currentdict end definefont pop\n", 40);
@@ -701,7 +701,7 @@ void FoFiTrueType::convertToCIDType2(char *psName,
(*outputFunc)(outputStream, " end readonly def\n", 19);
// write the guts of the dictionary
- cvtSfnts(outputFunc, outputStream, NULL, needVerticalMetrics, &maxUsedGlyph);
+ cvtSfnts(outputFunc, outputStream, nullptr, needVerticalMetrics, &maxUsedGlyph);
// end the dictionary and define the font
(*outputFunc)(outputStream,
@@ -1061,7 +1061,7 @@ void FoFiTrueType::cvtSfnts(FoFiOutputFunc outputFunc,
++nNewTables;
}
}
- vmtxTab = NULL; // make gcc happy
+ vmtxTab = nullptr; // make gcc happy
vmtxTabLength = 0;
advance = 0; // make gcc happy
if (needVerticalMetrics) {
@@ -1387,7 +1387,7 @@ void FoFiTrueType::parse() {
nTables = j;
tables = (TrueTypeTable *)greallocn_checkoverflow(tables, nTables, sizeof(TrueTypeTable));
}
- if (!parsedOk || tables == NULL) {
+ if (!parsedOk || tables == nullptr) {
return;
}
@@ -1451,7 +1451,7 @@ void FoFiTrueType::parse() {
void FoFiTrueType::readPostTable() {
GooString *name;
- int tablePos, postFmt, stringIdx, stringPos, savedStringIdx;
+ int tablePos, postFmt, stringIdx, stringPos;
GBool ok;
int i, j, n, m;
@@ -1481,38 +1481,30 @@ void FoFiTrueType::readPostTable() {
stringIdx = 0;
stringPos = tablePos + 34 + 2*n;
for (i = 0; i < n; ++i) {
+ ok = gTrue;
j = getU16BE(tablePos + 34 + 2*i, &ok);
if (j < 258) {
nameToGID->removeInt(macGlyphNames[j]);
nameToGID->add(new GooString(macGlyphNames[j]), i);
} else {
- savedStringIdx = stringIdx;
j -= 258;
if (j != stringIdx) {
for (stringIdx = 0, stringPos = tablePos + 34 + 2*n;
stringIdx < j;
++stringIdx, stringPos += 1 + getU8(stringPos, &ok)) ;
if (!ok) {
- goto err;
+ continue;
}
}
m = getU8(stringPos, &ok);
if (!ok || !checkRegion(stringPos + 1, m)) {
- stringIdx = savedStringIdx;
- if (j < 258) {
- ok = gTrue;
- nameToGID->removeInt(macGlyphNames[j]);
- nameToGID->add(new GooString(macGlyphNames[0]), i);
- } else {
- goto err;
- }
- } else {
- name = new GooString((char *)&file[stringPos + 1], m);
- nameToGID->removeInt(name);
- nameToGID->add(name, i);
- ++stringIdx;
- stringPos += 1 + m;
- }
+ continue;
+ }
+ name = new GooString((char *)&file[stringPos + 1], m);
+ nameToGID->removeInt(name);
+ nameToGID->add(name, i);
+ ++stringIdx;
+ stringPos += 1 + m;
}
}
} else if (postFmt == 0x00028000) {
@@ -1520,7 +1512,7 @@ void FoFiTrueType::readPostTable() {
for (i = 0; i < nGlyphs; ++i) {
j = getU8(tablePos + 32 + i, &ok);
if (!ok) {
- goto err;
+ continue;
}
if (j < 258) {
nameToGID->removeInt(macGlyphNames[j]);
@@ -1534,7 +1526,7 @@ void FoFiTrueType::readPostTable() {
err:
if (nameToGID) {
delete nameToGID;
- nameToGID = NULL;
+ nameToGID = nullptr;
}
}
@@ -1578,7 +1570,7 @@ Guint FoFiTrueType::charToTag(const char *tagName)
*/
int FoFiTrueType::setupGSUB(const char *scriptName)
{
- return setupGSUB(scriptName, NULL);
+ return setupGSUB(scriptName, nullptr);
}
/*
@@ -1603,7 +1595,7 @@ int FoFiTrueType::setupGSUB(const char *scriptName,
int x;
Guint pos;
- if (scriptName == 0) {
+ if (scriptName == nullptr) {
gsubFeatureTable = 0;
return 0;
}
diff --git a/Build/source/libs/poppler/poppler-src/fofi/FoFiType1.cc b/Build/source/libs/poppler/poppler-src/fofi/FoFiType1.cc
index a73b77c2914..dbe95b67174 100644
--- a/Build/source/libs/poppler/poppler-src/fofi/FoFiType1.cc
+++ b/Build/source/libs/poppler/poppler-src/fofi/FoFiType1.cc
@@ -54,7 +54,7 @@ FoFiType1 *FoFiType1::load(char *fileName) {
int lenA;
if (!(fileA = FoFiBase::readFile(fileName, &lenA))) {
- return NULL;
+ return nullptr;
}
return new FoFiType1(fileA, lenA, gTrue);
}
@@ -62,8 +62,8 @@ FoFiType1 *FoFiType1::load(char *fileName) {
FoFiType1::FoFiType1(char *fileA, int lenA, GBool freeFileDataA):
FoFiBase(fileA, lenA, freeFileDataA)
{
- name = NULL;
- encoding = NULL;
+ name = nullptr;
+ encoding = nullptr;
fontMatrix[0] = 0.001;
fontMatrix[1] = 0;
fontMatrix[2] = 0;
@@ -150,7 +150,7 @@ void FoFiType1::writeEncoded(const char **newEncoding,
// skip "/Encoding" + one whitespace char,
// then look for 'def' preceded by PostScript whitespace
p = line + 10;
- line = NULL;
+ line = nullptr;
for (; p < (char *)file + len; ++p) {
if ((*p == ' ' || *p == '\t' || *p == '\x0a' ||
*p == '\x0d' || *p == '\x0c' || *p == '\0') &&
@@ -176,7 +176,7 @@ void FoFiType1::writeEncoded(const char **newEncoding,
// skip "/Encoding" + one whitespace char,
// then look for 'def' preceded by PostScript whitespace
p = line2 + 10;
- line = NULL;
+ line = nullptr;
for (; p < (char *)file + len; ++p) {
if ((*p == ' ' || *p == '\t' || *p == '\x0a' ||
*p == '\x0d' || *p == '\x0c' || *p == '\0') &&
@@ -207,7 +207,7 @@ char *FoFiType1::getNextLine(char *line) {
++line;
}
if (line >= (char *)file + len) {
- return NULL;
+ return nullptr;
}
return line;
}
@@ -243,7 +243,7 @@ void FoFiType1::parse() {
!strncmp(line, "/Encoding 256 array", 19)) {
encoding = (char **)gmallocn(256, sizeof(char *));
for (j = 0; j < 256; ++j) {
- encoding[j] = NULL;
+ encoding[j] = nullptr;
}
continueLine = gFalse;
for (j = 0, line = getNextLine(line);
@@ -324,7 +324,7 @@ void FoFiType1::parse() {
}
} else {
if (strtok_r(buf, " \t", &tokptr) &&
- (p = strtok_r(NULL, " \t\n\r", &tokptr)) && !strcmp(p, "def")) {
+ (p = strtok_r(nullptr, " \t\n\r", &tokptr)) && !strcmp(p, "def")) {
break;
}
}
@@ -339,7 +339,7 @@ void FoFiType1::parse() {
if ((p2 = strchr(p, ']'))) {
*p2 = '\0';
for (j = 0; j < 6; ++j) {
- if ((p = strtok(j == 0 ? p : (char *)NULL, " \t\n\r"))) {
+ if ((p = strtok(j == 0 ? p : (char *)nullptr, " \t\n\r"))) {
fontMatrix[j] = atof(p);
} else {
break;
diff --git a/Build/source/libs/poppler/poppler-src/fofi/FoFiType1C.cc b/Build/source/libs/poppler/poppler-src/fofi/FoFiType1C.cc
index 7c9494f57c6..03e779938f1 100644
--- a/Build/source/libs/poppler/poppler-src/fofi/FoFiType1C.cc
+++ b/Build/source/libs/poppler/poppler-src/fofi/FoFiType1C.cc
@@ -51,7 +51,7 @@ FoFiType1C *FoFiType1C::make(char *fileA, int lenA) {
ff = new FoFiType1C(fileA, lenA, gFalse);
if (!ff->parse()) {
delete ff;
- return NULL;
+ return nullptr;
}
return ff;
}
@@ -62,12 +62,12 @@ FoFiType1C *FoFiType1C::load(char *fileName) {
int lenA;
if (!(fileA = FoFiBase::readFile(fileName, &lenA))) {
- return NULL;
+ return nullptr;
}
ff = new FoFiType1C(fileA, lenA, gTrue);
if (!ff->parse()) {
delete ff;
- return NULL;
+ return nullptr;
}
return ff;
}
@@ -75,11 +75,11 @@ FoFiType1C *FoFiType1C::load(char *fileName) {
FoFiType1C::FoFiType1C(char *fileA, int lenA, GBool freeFileDataA):
FoFiBase(fileA, lenA, freeFileDataA)
{
- name = NULL;
- encoding = NULL;
- privateDicts = NULL;
- fdSelect = NULL;
- charset = NULL;
+ name = nullptr;
+ encoding = nullptr;
+ privateDicts = nullptr;
+ fdSelect = nullptr;
+ charset = nullptr;
charsetLength = 0;
}
@@ -112,7 +112,7 @@ FoFiType1C::~FoFiType1C() {
}
char *FoFiType1C::getName() {
- return name ? name->getCString() : (char *)NULL;
+ return name ? name->getCString() : (char *)nullptr;
}
char **FoFiType1C::getEncoding() {
@@ -125,10 +125,10 @@ GooString *FoFiType1C::getGlyphName(int gid) {
ok = gTrue;
if (gid < 0 || gid >= charsetLength)
- return NULL;
+ return nullptr;
getString(charset[gid], buf, &ok);
if (!ok) {
- return NULL;
+ return nullptr;
}
return new GooString(buf);
}
@@ -140,7 +140,7 @@ int *FoFiType1C::getCIDToGIDMap(int *nCIDs) {
// a CID font's top dict has ROS as the first operator
if (topDict.firstOp != 0x0c1e) {
*nCIDs = 0;
- return NULL;
+ return nullptr;
}
// in a CID font, the charset data is the GID-to-CID mapping, so all
@@ -2412,7 +2412,7 @@ void FoFiType1C::buildEncoding() {
} else {
encoding = (char **)gmallocn(256, sizeof(char *));
for (i = 0; i < 256; ++i) {
- encoding[i] = NULL;
+ encoding[i] = nullptr;
}
pos = topDict.encodingOffset;
encFormat = getU8(pos++, &parsedOk);
@@ -2545,7 +2545,7 @@ GBool FoFiType1C::readCharset() {
}
if (!parsedOk) {
gfree(charset);
- charset = NULL;
+ charset = nullptr;
charsetLength = 0;
return gFalse;
}
diff --git a/Build/source/libs/poppler/poppler-src/goo/GooHash.cc b/Build/source/libs/poppler/poppler-src/goo/GooHash.cc
index 49f58c5f00a..cd39a5aee3f 100644
--- a/Build/source/libs/poppler/poppler-src/goo/GooHash.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/GooHash.cc
@@ -56,7 +56,7 @@ GooHash::GooHash(GBool deleteKeysA) {
size = 7;
tab = (GooHashBucket **)gmallocn(size, sizeof(GooHashBucket *));
for (h = 0; h < size; ++h) {
- tab[h] = NULL;
+ tab[h] = nullptr;
}
len = 0;
}
@@ -149,7 +149,7 @@ void *GooHash::lookup(GooString *key) {
int h;
if (!(p = find(key, &h))) {
- return NULL;
+ return nullptr;
}
return p->val.p;
}
@@ -169,7 +169,7 @@ void *GooHash::lookup(const char *key) {
int h;
if (!(p = find(key, &h))) {
- return NULL;
+ return nullptr;
}
return p->val.p;
}
@@ -191,7 +191,7 @@ void *GooHash::remove(GooString *key) {
int h;
if (!(p = find(key, &h))) {
- return NULL;
+ return nullptr;
}
q = &tab[h];
while (*q != p) {
@@ -237,7 +237,7 @@ void *GooHash::remove(const char *key) {
int h;
if (!(p = find(key, &h))) {
- return NULL;
+ return nullptr;
}
q = &tab[h];
while (*q != p) {
@@ -279,7 +279,7 @@ int GooHash::removeInt(const char *key) {
void GooHash::startIter(GooHashIter **iter) {
*iter = new GooHashIter;
(*iter)->h = -1;
- (*iter)->p = NULL;
+ (*iter)->p = nullptr;
}
GBool GooHash::getNext(GooHashIter **iter, GooString **key, void **val) {
@@ -292,7 +292,7 @@ GBool GooHash::getNext(GooHashIter **iter, GooString **key, void **val) {
while (!(*iter)->p) {
if (++(*iter)->h == size) {
delete *iter;
- *iter = NULL;
+ *iter = nullptr;
return gFalse;
}
(*iter)->p = tab[(*iter)->h];
@@ -312,7 +312,7 @@ GBool GooHash::getNext(GooHashIter **iter, GooString **key, int *val) {
while (!(*iter)->p) {
if (++(*iter)->h == size) {
delete *iter;
- *iter = NULL;
+ *iter = nullptr;
return gFalse;
}
(*iter)->p = tab[(*iter)->h];
@@ -324,7 +324,7 @@ GBool GooHash::getNext(GooHashIter **iter, GooString **key, int *val) {
void GooHash::killIter(GooHashIter **iter) {
delete *iter;
- *iter = NULL;
+ *iter = nullptr;
}
void GooHash::expand() {
@@ -337,7 +337,7 @@ void GooHash::expand() {
size = 2*size + 1;
tab = (GooHashBucket **)gmallocn(size, sizeof(GooHashBucket *));
for (h = 0; h < size; ++h) {
- tab[h] = NULL;
+ tab[h] = nullptr;
}
for (i = 0; i < oldSize; ++i) {
while (oldTab[i]) {
@@ -363,7 +363,7 @@ GooHashBucket *GooHash::find(GooString *key, int *h) {
return p;
}
}
- return NULL;
+ return nullptr;
}
GooHashBucket *GooHash::find(const char *key, int *h) {
@@ -375,7 +375,7 @@ GooHashBucket *GooHash::find(const char *key, int *h) {
return p;
}
}
- return NULL;
+ return nullptr;
}
int GooHash::hash(GooString *key) {
diff --git a/Build/source/libs/poppler/poppler-src/goo/GooMutex.h b/Build/source/libs/poppler/poppler-src/goo/GooMutex.h
index 68dabc4028c..ed0758fa67a 100644
--- a/Build/source/libs/poppler/poppler-src/goo/GooMutex.h
+++ b/Build/source/libs/poppler/poppler-src/goo/GooMutex.h
@@ -17,7 +17,7 @@
//
// Copyright (C) 2009 Kovid Goyal <kovid@kovidgoyal.net>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2013 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2013, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2013 Adam Reichold <adamreichold@myopera.com>
// Copyright (C) 2014 Bogdan Cristea <cristeab@gmail.com>
// Copyright (C) 2014 Peter Breitenlohner <peb@mppmu.mpg.de>
@@ -81,6 +81,9 @@ public:
MutexLocker(GooMutex *mutexA) : mutex(mutexA) { gLockMutex(mutex); }
~MutexLocker() { gUnlockMutex(mutex); }
+ MutexLocker(const MutexLocker &) = delete;
+ MutexLocker& operator=(const MutexLocker &other) = delete;
+
private:
GooMutex *mutex;
};
diff --git a/Build/source/libs/poppler/poppler-src/goo/GooString.cc b/Build/source/libs/poppler/poppler-src/goo/GooString.cc
index e23c2b76d6b..d67b8752622 100644
--- a/Build/source/libs/poppler/poppler-src/goo/GooString.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/GooString.cc
@@ -114,7 +114,7 @@ static const char *formatStrings[] = {
"s",
"t",
"w",
- NULL
+ nullptr
};
//------------------------------------------------------------------------
@@ -185,9 +185,9 @@ GooString* GooString::Set(const char *newStr, int newLen)
}
GooString::GooString() {
- s = NULL;
+ s = nullptr;
length = 0;
- Set(NULL);
+ Set(nullptr);
#if __cplusplus >= 201103L
static_assert(sizeof(GooString) == GooString::STR_FINAL_SIZE, "You should check memory alignment or STR_STATIC_SIZE calculation.");
@@ -195,32 +195,32 @@ GooString::GooString() {
}
GooString::GooString(const char *sA) {
- s = NULL;
+ s = nullptr;
length = 0;
Set(sA, CALC_STRING_LEN);
}
GooString::GooString(const char *sA, int lengthA) {
- s = NULL;
+ s = nullptr;
length = 0;
Set(sA, lengthA);
}
GooString::GooString(GooString *str, int idx, int lengthA) {
- s = NULL;
+ s = nullptr;
length = 0;
assert(idx + lengthA <= str->length);
Set(str->getCString() + idx, lengthA);
}
GooString::GooString(const GooString *str) {
- s = NULL;
+ s = nullptr;
length = 0;
Set(str->getCString(), str->length);
}
GooString::GooString(GooString *str1, GooString *str2) {
- s = NULL;
+ s = nullptr;
length = 0;
resize(str1->length + str2->length);
memcpy(s, str1->getCString(), str1->length);
diff --git a/Build/source/libs/poppler/poppler-src/goo/GooTimer.cc b/Build/source/libs/poppler/poppler-src/goo/GooTimer.cc
index c766c6bf2e4..b1161853f2d 100644
--- a/Build/source/libs/poppler/poppler-src/goo/GooTimer.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/GooTimer.cc
@@ -32,7 +32,7 @@ GooTimer::GooTimer() {
void GooTimer::start() {
#ifdef HAVE_GETTIMEOFDAY
- gettimeofday(&start_time, NULL);
+ gettimeofday(&start_time, nullptr);
#elif defined(_WIN32)
QueryPerformanceCounter(&start_time);
#endif
@@ -41,7 +41,7 @@ void GooTimer::start() {
void GooTimer::stop() {
#ifdef HAVE_GETTIMEOFDAY
- gettimeofday(&end_time, NULL);
+ gettimeofday(&end_time, nullptr);
#elif defined(_WIN32)
QueryPerformanceCounter(&end_time);
#endif
@@ -55,7 +55,7 @@ double GooTimer::getElapsed()
struct timeval elapsed;
if (active)
- gettimeofday(&end_time, NULL);
+ gettimeofday(&end_time, nullptr);
if (start_time.tv_usec > end_time.tv_usec) {
end_time.tv_usec += USEC_PER_SEC;
diff --git a/Build/source/libs/poppler/poppler-src/goo/ImgWriter.h b/Build/source/libs/poppler/poppler-src/goo/ImgWriter.h
index 8feb3511e4d..2ab97cdb4b2 100644
--- a/Build/source/libs/poppler/poppler-src/goo/ImgWriter.h
+++ b/Build/source/libs/poppler/poppler-src/goo/ImgWriter.h
@@ -5,7 +5,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright (C) 2009 Stefan Thomas <thomas@eload24.com>
-// Copyright (C) 2009, 2011 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009, 2011, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2010 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2010 Brian Cameron <brian.cameron@oracle.com>
// Copyright (C) 2011 Thomas Freitag <Thomas.Freitag@alfa.de>
@@ -20,6 +20,10 @@
class ImgWriter
{
public:
+ ImgWriter() = default;
+ ImgWriter(const ImgWriter &) = delete;
+ ImgWriter& operator=(const ImgWriter &other) = delete;
+
virtual ~ImgWriter();
virtual bool init(FILE *f, int width, int height, int hDPI, int vDPI) = 0;
diff --git a/Build/source/libs/poppler/poppler-src/goo/PNGWriter.cc b/Build/source/libs/poppler/poppler-src/goo/PNGWriter.cc
index ed06edb3d15..f230fcaf96f 100644
--- a/Build/source/libs/poppler/poppler-src/goo/PNGWriter.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/PNGWriter.cc
@@ -41,9 +41,9 @@ PNGWriter::PNGWriter(Format formatA)
{
priv = new PNGWriterPrivate;
priv->format = formatA;
- priv->icc_data = NULL;
+ priv->icc_data = nullptr;
priv->icc_data_size = 0;
- priv->icc_name = NULL;
+ priv->icc_name = nullptr;
priv->sRGB_profile = false;
}
@@ -82,7 +82,7 @@ bool PNGWriter::init(FILE *f, int width, int height, int hDPI, int vDPI)
#endif
/* initialize stuff */
- priv->png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ priv->png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr);
if (!priv->png_ptr) {
error(errInternal, -1, "png_create_write_struct failed");
return false;
diff --git a/Build/source/libs/poppler/poppler-src/goo/TiffWriter.cc b/Build/source/libs/poppler/poppler-src/goo/TiffWriter.cc
index 35ceae69f6a..fd2eaa31485 100644
--- a/Build/source/libs/poppler/poppler-src/goo/TiffWriter.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/TiffWriter.cc
@@ -42,10 +42,10 @@ TiffWriter::~TiffWriter()
TiffWriter::TiffWriter(Format formatA)
{
priv = new TiffWriterPrivate;
- priv->f = NULL;
+ priv->f = nullptr;
priv->numRows = 0;
priv->curRow = 0;
- priv->compressionString = NULL;
+ priv->compressionString = nullptr;
priv->format = formatA;
}
@@ -87,12 +87,12 @@ bool TiffWriter::init(FILE *openedFile, int width, int height, int hDPI, int vDP
{ "dcs", COMPRESSION_DCS, "Kodak DCS encoding" },
{ "jbig", COMPRESSION_JBIG, "ISO JBIG" },
{ "jp2000", COMPRESSION_JP2000, "Leadtools JPEG2000" },
- { NULL, 0, NULL }
+ { nullptr, 0, nullptr }
};
// Initialize
- priv->f = NULL;
+ priv->f = nullptr;
priv->curRow = 0;
// Store the number of rows
@@ -103,20 +103,20 @@ bool TiffWriter::init(FILE *openedFile, int width, int height, int hDPI, int vDP
compression = COMPRESSION_NONE;
- if (priv->compressionString == NULL || strcmp(priv->compressionString, "") == 0) {
+ if (priv->compressionString == nullptr || strcmp(priv->compressionString, "") == 0) {
compression = COMPRESSION_NONE;
} else {
int i;
- for (i = 0; compressionList[i].compressionName != NULL; i++) {
+ for (i = 0; compressionList[i].compressionName != nullptr; i++) {
if (strcmp(priv->compressionString, compressionList[i].compressionName) == 0) {
compression = compressionList[i].compressionCode;
break;
}
}
- if (compressionList[i].compressionName == NULL) {
+ if (compressionList[i].compressionName == nullptr) {
fprintf(stderr, "TiffWriter: Unknown compression type '%.10s', using 'none'.\n", priv->compressionString);
fprintf(stderr, "Known compression types (the tiff library might not support every type)\n");
- for (i = 0; compressionList[i].compressionName != NULL; i++) {
+ for (i = 0; compressionList[i].compressionName != nullptr; i++) {
fprintf(stderr, "%10s %s\n", compressionList[i].compressionName, compressionList[i].compressionDescription);
}
}
@@ -157,7 +157,7 @@ bool TiffWriter::init(FILE *openedFile, int width, int height, int hDPI, int vDP
// Open the file
- if (openedFile == NULL) {
+ if (openedFile == nullptr) {
fprintf(stderr, "TiffWriter: No output file given.\n");
return false;
}
diff --git a/Build/source/libs/poppler/poppler-src/goo/gfile.cc b/Build/source/libs/poppler/poppler-src/goo/gfile.cc
index fe05de67b5e..218882d32d7 100644
--- a/Build/source/libs/poppler/poppler-src/goo/gfile.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/gfile.cc
@@ -19,12 +19,12 @@
// Copyright (C) 2006 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2008 Adam Batkin <adam@batkin.net>
// Copyright (C) 2008, 2010, 2012, 2013 Hib Eris <hib@hiberis.nl>
-// Copyright (C) 2009, 2012, 2014 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009, 2012, 2014, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2009 Kovid Goyal <kovid@kovidgoyal.net>
-// Copyright (C) 2013 Adam Reichold <adamreichold@myopera.com>
+// Copyright (C) 2013, 2018 Adam Reichold <adamreichold@myopera.com>
// Copyright (C) 2013, 2017 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2013 Peter Breitenlohner <peb@mppmu.mpg.de>
-// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
+// Copyright (C) 2013, 2017 Thomas Freitag <Thomas.Freitag@alfa.de>
// Copyright (C) 2017 Christoph Cullmann <cullmann@kde.org>
//
// To see a description of the changes please see the Changelog file that
@@ -65,6 +65,40 @@
#define PATH_MAX 1024
#endif
+namespace {
+
+template< typename... >
+struct void_type
+{
+ using type = void;
+};
+
+template< typename... Args >
+using void_t = typename void_type< Args... >::type;
+
+template< typename Stat, typename = void_t<> >
+struct StatMtim
+{
+ static const struct timespec& value(const Stat& stbuf) {
+ return stbuf.st_mtim;
+ }
+};
+
+// Mac OS X uses a different field name than POSIX and this detects it.
+template< typename Stat >
+struct StatMtim< Stat, void_t< decltype ( Stat::st_mtimespec ) > >
+{
+ static const struct timespec& value(const Stat& stbuf) {
+ return stbuf.st_mtimespec;
+ }
+};
+
+inline const struct timespec& mtim(const struct stat& stbuf) {
+ return StatMtim< struct stat >::value(stbuf);
+}
+
+}
+
//------------------------------------------------------------------------
GooString *getCurrentDir() {
@@ -357,7 +391,7 @@ GBool openTempFile(GooString **name, FILE **f, const char *mode) {
}
s->appendf("x_{0:d}_{1:d}_",
(int)GetCurrentProcessId(), (int)GetCurrentThreadId());
- t = (int)time(NULL);
+ t = (int)time(nullptr);
for (i = 0; i < 1000; ++i) {
s2 = s->copy()->appendf("{0:d}", t + i);
if (!(f2 = fopen(s2->getCString(), "r"))) {
@@ -416,7 +450,7 @@ GBool openTempFile(GooString **name, FILE **f, const char *mode) {
#endif // HAVE_MKSTEMP
if (fd < 0 || !(*f = fdopen(fd, mode))) {
delete *name;
- *name = NULL;
+ *name = nullptr;
return gFalse;
}
return gTrue;
@@ -548,7 +582,7 @@ char *getLine(char *buf, int size, FILE *f) {
}
buf[i] = '\0';
if (i == 0) {
- return NULL;
+ return nullptr;
}
return buf;
}
@@ -599,13 +633,17 @@ Goffset GoffsetMax() {
#ifdef _WIN32
+GooFile::GooFile(HANDLE handleA) : handle(handleA) {
+ GetFileTime(handleA, nullptr, nullptr, &modifiedTimeOnOpen);
+}
+
int GooFile::read(char *buf, int n, Goffset offset) const {
DWORD m;
- LARGE_INTEGER largeInteger = {0};
+ LARGE_INTEGER largeInteger = {};
largeInteger.QuadPart = offset;
- OVERLAPPED overlapped = {0};
+ OVERLAPPED overlapped = {};
overlapped.Offset = largeInteger.LowPart;
overlapped.OffsetHigh = largeInteger.HighPart;
@@ -624,22 +662,30 @@ GooFile* GooFile::open(const GooString *fileName) {
HANDLE handle = CreateFileA(fileName->getCString(),
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
- NULL,
+ nullptr,
OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL, NULL);
+ FILE_ATTRIBUTE_NORMAL, nullptr);
- return handle == INVALID_HANDLE_VALUE ? NULL : new GooFile(handle);
+ return handle == INVALID_HANDLE_VALUE ? nullptr : new GooFile(handle);
}
GooFile* GooFile::open(const wchar_t *fileName) {
HANDLE handle = CreateFileW(fileName,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
- NULL,
+ nullptr,
OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL, NULL);
+ FILE_ATTRIBUTE_NORMAL, nullptr);
- return handle == INVALID_HANDLE_VALUE ? NULL : new GooFile(handle);
+ return handle == INVALID_HANDLE_VALUE ? nullptr : new GooFile(handle);
+}
+
+bool GooFile::modificationTimeChangedSinceOpen() const
+{
+ struct _FILETIME lastModified;
+ GetFileTime(handle, nullptr, nullptr, &lastModified);
+
+ return modifiedTimeOnOpen.dwHighDateTime != lastModified.dwHighDateTime || modifiedTimeOnOpen.dwLowDateTime != lastModified.dwLowDateTime;
}
#else
@@ -667,7 +713,23 @@ GooFile* GooFile::open(const GooString *fileName) {
int fd = ::open(fileName->getCString(), O_RDONLY);
#endif
- return fd < 0 ? NULL : new GooFile(fd);
+ return fd < 0 ? nullptr : new GooFile(fd);
+}
+
+GooFile::GooFile(int fdA)
+ : fd(fdA)
+{
+ struct stat statbuf;
+ fstat(fd, &statbuf);
+ modifiedTimeOnOpen = mtim(statbuf);
+}
+
+bool GooFile::modificationTimeChangedSinceOpen() const
+{
+ struct stat statbuf;
+ fstat(fd, &statbuf);
+
+ return modifiedTimeOnOpen.tv_sec != mtim(statbuf).tv_sec || modifiedTimeOnOpen.tv_nsec != mtim(statbuf).tv_nsec;
}
#endif // _WIN32
@@ -749,7 +811,7 @@ GDir::~GDir() {
}
GDirEntry *GDir::getNextEntry() {
- GDirEntry *e = NULL;
+ GDirEntry *e = nullptr;
#if defined(_WIN32)
if (hnd != INVALID_HANDLE_VALUE) {
diff --git a/Build/source/libs/poppler/poppler-src/goo/gfile.h b/Build/source/libs/poppler/poppler-src/goo/gfile.h
index 805e5232262..0741a92df96 100644
--- a/Build/source/libs/poppler/poppler-src/goo/gfile.h
+++ b/Build/source/libs/poppler/poppler-src/goo/gfile.h
@@ -16,13 +16,14 @@
// under GPL version 2 or later
//
// Copyright (C) 2006 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2009, 2011, 2012 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009, 2011, 2012, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2009 Kovid Goyal <kovid@kovidgoyal.net>
// Copyright (C) 2013 Adam Reichold <adamreichold@myopera.com>
// Copyright (C) 2013, 2017 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2014 Bogdan Cristea <cristeab@gmail.com>
// Copyright (C) 2014 Peter Breitenlohner <peb@mppmu.mpg.de>
// Copyright (C) 2017 Christoph Cullmann <cullmann@kde.org>
+// Copyright (C) 2017 Thomas Freitag <Thomas.Freitag@alfa.de>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -136,6 +137,9 @@ extern Goffset GoffsetMax();
class GooFile
{
public:
+ GooFile(const GooFile &) = delete;
+ GooFile& operator=(const GooFile &other) = delete;
+
int read(char *buf, int n, Goffset offset) const;
Goffset size() const;
@@ -145,16 +149,23 @@ public:
static GooFile *open(const wchar_t *fileName);
~GooFile() { CloseHandle(handle); }
+
+ // Asuming than on windows you can't change files that are already open
+ bool modificationTimeChangedSinceOpen() const;
private:
- GooFile(HANDLE handleA): handle(handleA) {}
+ GooFile(HANDLE handleA);
HANDLE handle;
+ struct _FILETIME modifiedTimeOnOpen;
#else
~GooFile() { close(fd); }
+
+ bool modificationTimeChangedSinceOpen() const;
private:
- GooFile(int fdA) : fd(fdA) {}
+ GooFile(int fdA);
int fd;
+ struct timespec modifiedTimeOnOpen;
#endif // _WIN32
};
diff --git a/Build/source/libs/poppler/poppler-src/goo/glibc.h b/Build/source/libs/poppler/poppler-src/goo/glibc.h
index 8b372bcaa30..ccbd87364eb 100644
--- a/Build/source/libs/poppler/poppler-src/goo/glibc.h
+++ b/Build/source/libs/poppler/poppler-src/goo/glibc.h
@@ -7,6 +7,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright (C) 2016, 2017 Adrian Johnson <ajohnson@redneon.com>
+// Copyright (C) 2017 Albert Astals Cid <aacid@kde.org>
//
//========================================================================
@@ -17,8 +18,6 @@
#include <time.h>
-extern "C" {
-
#ifndef HAVE_GMTIME_R
struct tm *gmtime_r(const time_t *timep, struct tm *result);
#endif
@@ -35,7 +34,5 @@ time_t timegm(struct tm *tm);
char * strtok_r (char *s, const char *delim, char **save_ptr);
#endif
-}
-
#endif // GLIBC_H
diff --git a/Build/source/libs/poppler/poppler-src/goo/glibc_strtok_r.cc b/Build/source/libs/poppler/poppler-src/goo/glibc_strtok_r.cc
index e779bf50a2f..e323bc21b4c 100644
--- a/Build/source/libs/poppler/poppler-src/goo/glibc_strtok_r.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/glibc_strtok_r.cc
@@ -50,12 +50,15 @@
// Copyright (C) 2012 Alexey Pavlov <alexpux@gmail.com>
// Copyright (C) 2012 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2017 Adrian Johnson <ajohnson@redneon.com>
+// Copyright (C) 2017 Pekka Vuorela <pekka.vuorela@jollamobile.com>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
//
//========================================================================
+#include "glibc.h"
+
#ifndef HAVE_STRTOK_R
#include <string.h>
diff --git a/Build/source/libs/poppler/poppler-src/goo/gmem.cc b/Build/source/libs/poppler/poppler-src/goo/gmem.cc
index c1c607ac3f3..574997fadda 100644
--- a/Build/source/libs/poppler/poppler-src/goo/gmem.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/gmem.cc
@@ -105,11 +105,11 @@ inline static void *gmalloc(size_t size, bool checkoverflow) {
void *p;
if (size == 0) {
- return NULL;
+ return nullptr;
}
if (!(p = malloc(size))) {
fprintf(stderr, "Out of memory\n");
- if (checkoverflow) return NULL;
+ if (checkoverflow) return nullptr;
else exit(1);
}
return p;
@@ -153,7 +153,7 @@ inline static void *grealloc(void *p, size_t size, bool checkoverflow) {
if (p) {
free(p);
}
- return NULL;
+ return nullptr;
}
if (p) {
q = realloc(p, size);
@@ -162,7 +162,7 @@ inline static void *grealloc(void *p, size_t size, bool checkoverflow) {
}
if (!q) {
fprintf(stderr, "Out of memory\n");
- if (checkoverflow) return NULL;
+ if (checkoverflow) return nullptr;
else exit(1);
}
return q;
@@ -181,12 +181,12 @@ inline static void *gmallocn(int nObjs, int objSize, bool checkoverflow) {
int n;
if (nObjs == 0) {
- return NULL;
+ return nullptr;
}
n = nObjs * objSize;
if (objSize <= 0 || nObjs < 0 || nObjs >= INT_MAX / objSize) {
fprintf(stderr, "Bogus memory allocation size\n");
- if (checkoverflow) return NULL;
+ if (checkoverflow) return nullptr;
else exit(1);
}
return gmalloc(n, checkoverflow);
@@ -204,7 +204,7 @@ inline static void *gmallocn3(int a, int b, int c, bool checkoverflow) {
int n = a * b;
if (b <= 0 || a < 0 || a >= INT_MAX / b) {
fprintf(stderr, "Bogus memory allocation size\n");
- if (checkoverflow) return NULL;
+ if (checkoverflow) return nullptr;
else exit(1);
}
return gmallocn(n, c, checkoverflow);
@@ -225,14 +225,14 @@ inline static void *greallocn(void *p, int nObjs, int objSize, bool checkoverflo
if (p) {
gfree(p);
}
- return NULL;
+ return nullptr;
}
n = nObjs * objSize;
if (objSize <= 0 || nObjs < 0 || nObjs >= INT_MAX / objSize) {
fprintf(stderr, "Bogus memory allocation size\n");
if (checkoverflow) {
gfree(p);
- return NULL;
+ return nullptr;
} else {
exit(1);
}
diff --git a/Build/source/libs/poppler/poppler-src/goo/grandom.cc b/Build/source/libs/poppler/poppler-src/goo/grandom.cc
index 1237175420b..3171af85ec3 100644
--- a/Build/source/libs/poppler/poppler-src/goo/grandom.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/grandom.cc
@@ -22,7 +22,7 @@ static unsigned int seed;
static void initialize() {
if (!initialized) {
- seed = time(NULL);
+ seed = time(nullptr);
initialized = gTrue;
}
}
@@ -49,7 +49,7 @@ static GBool initialized = gFalse;
static void initialize() {
if (!initialized) {
- srand(time(NULL));
+ srand(time(nullptr));
initialized = gTrue;
}
}
diff --git a/Build/source/libs/poppler/poppler-src/goo/gstrtod.cc b/Build/source/libs/poppler/poppler-src/goo/gstrtod.cc
index cd1d5b554f7..a1062821218 100644
--- a/Build/source/libs/poppler/poppler-src/goo/gstrtod.cc
+++ b/Build/source/libs/poppler/poppler-src/goo/gstrtod.cc
@@ -34,7 +34,7 @@
double gatof(const char *nptr)
{
- return gstrtod(nptr, NULL);
+ return gstrtod(nptr, nullptr);
}
double gstrtod(const char *nptr, char **endptr)
@@ -45,17 +45,17 @@ double gstrtod(const char *nptr, char **endptr)
const char *decimal_point;
int decimal_point_len;
const char *p, *decimal_point_pos;
- const char *end = NULL; /* Silence gcc */
+ const char *end = nullptr; /* Silence gcc */
int strtod_errno;
- fail_pos = NULL;
+ fail_pos = nullptr;
locale_data = localeconv ();
decimal_point = locale_data->decimal_point;
decimal_point_len = strlen (decimal_point);
- decimal_point_pos = NULL;
- end = NULL;
+ decimal_point_pos = nullptr;
+ end = nullptr;
if (decimal_point[0] != '.' || decimal_point[1] != 0) {
p = nptr;
diff --git a/Build/source/libs/poppler/poppler-src/gtkdoc.py b/Build/source/libs/poppler/poppler-src/gtkdoc.py
index 48f862a31fa..cc73ffc1bc3 100644
--- a/Build/source/libs/poppler/poppler-src/gtkdoc.py
+++ b/Build/source/libs/poppler/poppler-src/gtkdoc.py
@@ -21,6 +21,7 @@ import os.path
import subprocess
import sys
+PY2 = sys.version_info[0] == 2
class GTKDoc(object):
@@ -194,14 +195,20 @@ class GTKDoc(object):
if print_output:
if stdout:
- try:
- sys.stdout.write(stdout.encode("utf-8"))
- except UnicodeDecodeError:
+ if PY2:
+ try:
+ sys.stdout.write(stdout.encode("utf-8"))
+ except UnicodeDecodeError:
+ sys.stdout.write(stdout)
+ else:
sys.stdout.write(stdout)
if stderr:
- try:
- sys.stderr.write(stderr.encode("utf-8"))
- except UnicodeDecodeError:
+ if PY2:
+ try:
+ sys.stderr.write(stderr.encode("utf-8"))
+ except UnicodeDecodeError:
+ sys.stderr.write(stderr)
+ else:
sys.stderr.write(stderr)
if process.returncode != 0:
@@ -319,9 +326,9 @@ class GTKDoc(object):
ldflags = ' "-L%s" %s ' % (self.library_path, additional_ldflags) + ldflags
current_ld_library_path = env.get('LD_LIBRARY_PATH')
if current_ld_library_path:
- env['RUN'] = 'LD_LIBRARY_PATH="%s:%s" ' % (self.library_path, current_ld_library_path)
+ env['LD_LIBRARY_PATH'] = '%s:%s' % (self.library_path, current_ld_library_path)
else:
- env['RUN'] = 'LD_LIBRARY_PATH="%s" ' % self.library_path
+ env['LD_LIBRARY_PATH'] = self.library_path
if ldflags:
env['LDFLAGS'] = '%s %s' % (ldflags, env.get('LDFLAGS', ''))
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Annot.cc b/Build/source/libs/poppler/poppler-src/poppler/Annot.cc
index 7f249d5a919..15c86a05789 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Annot.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Annot.cc
@@ -114,7 +114,7 @@
#define bezierCircle 0.55228475
static AnnotLineEndingStyle parseAnnotLineEndingStyle(GooString *string) {
- if (string != NULL) {
+ if (string != nullptr) {
if (!string->cmp("Square")) {
return annotLineEndingSquare;
} else if (!string->cmp("Circle")) {
@@ -186,7 +186,7 @@ static AnnotExternalDataType parseAnnotExternalData(Dict* dict) {
}
static PDFRectangle *parseDiffRectangle(Array *array, PDFRectangle *rect) {
- PDFRectangle *newRect = NULL;
+ PDFRectangle *newRect = nullptr;
if (array->getLength() == 4) {
// deltas
Object obj1;
@@ -224,7 +224,7 @@ static LinkAction* getAdditionalAction(Annot::AdditionalActionsType type, Object
type == Annot::actionPageOpening ? "PO" :
type == Annot::actionPageClosing ? "PC" :
type == Annot::actionPageVisible ? "PV" :
- type == Annot::actionPageInvisible ? "PI" : NULL);
+ type == Annot::actionPageInvisible ? "PI" : nullptr);
Object actionObject = additionalActionsObject.dictLookup(key);
if (actionObject.isDict())
@@ -242,7 +242,7 @@ static LinkAction* getFormAdditionalAction(Annot::FormAdditionalActionsType type
const char *key = (type == Annot::actionFieldModified ? "K" :
type == Annot::actionFormatField ? "F" :
type == Annot::actionValidateField ? "V" :
- type == Annot::actionCalculateField ? "C" : NULL);
+ type == Annot::actionCalculateField ? "C" : nullptr);
Object actionObject = additionalActionsObject.dictLookup(key);
if (actionObject.isDict())
@@ -284,12 +284,12 @@ AnnotBorderEffect::AnnotBorderEffect(Dict *dict) {
//------------------------------------------------------------------------
AnnotPath::AnnotPath() {
- coords = NULL;
+ coords = nullptr;
coordsLength = 0;
}
AnnotPath::AnnotPath(Array *array) {
- coords = NULL;
+ coords = nullptr;
coordsLength = 0;
parsePathArray(array);
}
@@ -322,7 +322,7 @@ double AnnotPath::getY(int coord) const {
AnnotCoord *AnnotPath::getCoord(int coord) const {
if (coord >= 0 && coord < coordsLength)
return coords[coord];
- return NULL;
+ return nullptr;
}
void AnnotPath::parsePathArray(Array *array) {
@@ -398,7 +398,7 @@ AnnotQuadrilaterals::AnnotQuadrilaterals(Array *array, PDFRectangle *rect) {
double quadArray[8];
// default values
- quadrilaterals = NULL;
+ quadrilaterals = nullptr;
quadrilateralsLength = 0;
if ((arrayLength % 8) == 0) {
@@ -514,7 +514,7 @@ AnnotQuadrilaterals::AnnotQuadrilateral::AnnotQuadrilateral(double x1, double y1
AnnotBorder::AnnotBorder() {
width = 1;
dashLength = 0;
- dash = NULL;
+ dash = nullptr;
style = borderSolid;
}
@@ -892,7 +892,7 @@ Object AnnotAppearance::getAppearanceStream(AnnotAppearanceType type, const char
}
GooString * AnnotAppearance::getStateKey(int i) {
- GooString * res = NULL;
+ GooString * res = nullptr;
Object obj1 = appearDict.dictLookupNF("N");
if (obj1.isDict())
res = new GooString(obj1.dictGetKey(i));
@@ -1018,10 +1018,10 @@ AnnotAppearanceCharacs::AnnotAppearanceCharacs(Dict *dict) {
if (colorComponents->getLength() > 0) {
borderColor = new AnnotColor(colorComponents);
} else {
- borderColor = NULL;
+ borderColor = nullptr;
}
} else {
- borderColor = NULL;
+ borderColor = nullptr;
}
obj1 = dict->lookup("BG");
@@ -1030,38 +1030,38 @@ AnnotAppearanceCharacs::AnnotAppearanceCharacs(Dict *dict) {
if (colorComponents->getLength() > 0) {
backColor = new AnnotColor(colorComponents);
} else {
- backColor = NULL;
+ backColor = nullptr;
}
} else {
- backColor = NULL;
+ backColor = nullptr;
}
obj1 = dict->lookup("CA");
if (obj1.isString()) {
normalCaption = new GooString(obj1.getString());
} else {
- normalCaption = NULL;
+ normalCaption = nullptr;
}
obj1 = dict->lookup("RC");
if (obj1.isString()) {
rolloverCaption = new GooString(obj1.getString());
} else {
- rolloverCaption = NULL;
+ rolloverCaption = nullptr;
}
obj1 = dict->lookup("AC");
if (obj1.isString()) {
alternateCaption = new GooString(obj1.getString());
} else {
- alternateCaption = NULL;
+ alternateCaption = nullptr;
}
obj1 = dict->lookup("IF");
if (obj1.isDict()) {
iconFit = new AnnotIconFit(obj1.getDict());
} else {
- iconFit = NULL;
+ iconFit = nullptr;
}
obj1 = dict->lookup("TP");
@@ -1198,10 +1198,10 @@ void Annot::initialize(PDFDoc *docA, Dict *dict) {
ok = gTrue;
doc = docA;
xref = doc->getXRef();
- appearStreams = NULL;
- appearBBox = NULL;
- appearState = NULL;
- appearBuf = NULL;
+ appearStreams = nullptr;
+ appearBBox = nullptr;
+ appearState = nullptr;
+ appearBuf = nullptr;
fontSize = 0;
appearance.setToNull();
@@ -1255,14 +1255,14 @@ void Annot::initialize(PDFDoc *docA, Dict *dict) {
if (obj1.isString()) {
name = obj1.getString()->copy();
} else {
- name = NULL;
+ name = nullptr;
}
obj1 = dict->lookup("M");
if (obj1.isString()) {
modified = obj1.getString()->copy();
} else {
- modified = NULL;
+ modified = nullptr;
}
//----- get the flags
@@ -1310,13 +1310,13 @@ void Annot::initialize(PDFDoc *docA, Dict *dict) {
if (obj1.isArray())
border = new AnnotBorderArray(obj1.getArray());
else
- border = NULL;
+ border = nullptr;
obj1 = dict->lookup("C");
if (obj1.isArray()) {
color = new AnnotColor(obj1.getArray());
} else {
- color = NULL;
+ color = nullptr;
}
obj1 = dict->lookup("StructParent");
@@ -1380,7 +1380,7 @@ void Annot::update(const char *key, Object &&value) {
/* Set M to current time, unless we are updating M itself */
if (strcmp(key, "M") != 0) {
delete modified;
- modified = timeToDateString(NULL);
+ modified = timeToDateString(nullptr);
annotObj.dictSet("M", Object(modified->copy()));
}
@@ -1447,7 +1447,7 @@ void Annot::setBorder(AnnotBorder *new_border) {
update(new_border->getType() == AnnotBorder::typeArray ? "Border" : "BS", std::move(obj1));
border = new_border;
} else {
- border = NULL;
+ border = nullptr;
}
invalidateAppearance();
}
@@ -1461,7 +1461,7 @@ void Annot::setColor(AnnotColor *new_color) {
update ("C", std::move(obj1));
color = new_color;
} else {
- color = NULL;
+ color = nullptr;
}
invalidateAppearance();
}
@@ -1493,7 +1493,7 @@ void Annot::setAppearanceState(const char *state) {
appearState = new GooString(state);
delete appearBBox;
- appearBBox = NULL;
+ appearBBox = nullptr;
update ("AS", Object(objName, state));
@@ -1511,13 +1511,13 @@ void Annot::invalidateAppearance() {
appearStreams->removeAllStreams();
}
delete appearStreams;
- appearStreams = NULL;
+ appearStreams = nullptr;
delete appearState;
- appearState = NULL;
+ appearState = nullptr;
delete appearBBox;
- appearBBox = NULL;
+ appearBBox = nullptr;
appearance.setToNull();
@@ -1811,7 +1811,7 @@ GBool Annot::isVisible(GBool printing) {
int Annot::getRotation() const
{
Page *pageobj = doc->getPage(page);
- assert(pageobj != NULL);
+ assert(pageobj != nullptr);
if (flags & flagNoRotate) {
return (360 - pageobj->getRotate()) % 360;
@@ -1827,7 +1827,7 @@ void Annot::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
@@ -1837,8 +1837,6 @@ void Annot::draw(Gfx *gfx, GBool printing) {
AnnotPopup::AnnotPopup(PDFDoc *docA, PDFRectangle *rect) :
Annot(docA, rect) {
- Object obj1;
-
type = typePopup;
annotObj.dictSet ("Subtype", Object(objName, "Popup"));
@@ -1916,7 +1914,7 @@ void AnnotMarkup::initialize(PDFDoc *docA, Dict *dict, Object *obj) {
if (obj1.isString()) {
label = obj1.getString()->copy();
} else {
- label = NULL;
+ label = nullptr;
}
obj1 = dict->lookup("Popup");
@@ -1924,7 +1922,7 @@ void AnnotMarkup::initialize(PDFDoc *docA, Dict *dict, Object *obj) {
if (obj1.isDict() && obj2.isRef()) {
popup = new AnnotPopup(docA, &obj1, &obj2);
} else {
- popup = NULL;
+ popup = nullptr;
}
obj1 = dict->lookup("CA");
@@ -1938,7 +1936,7 @@ void AnnotMarkup::initialize(PDFDoc *docA, Dict *dict, Object *obj) {
if (obj1.isString()) {
date = obj1.getString()->copy();
} else {
- date = NULL;
+ date = nullptr;
}
obj1 = dict->lookupNF("IRT");
@@ -1953,7 +1951,7 @@ void AnnotMarkup::initialize(PDFDoc *docA, Dict *dict, Object *obj) {
if (obj1.isString()) {
subject = obj1.getString()->copy();
} else {
- subject = NULL;
+ subject = nullptr;
}
obj1 = dict->lookup("RT");
@@ -2000,7 +1998,7 @@ void AnnotMarkup::setPopup(AnnotPopup *new_popup) {
// associated with a page, then we need to remove that
// popup annotation from the page. Otherwise we would have
// dangling references to it.
- if (popup != NULL && popup->getPageNum() != 0) {
+ if (popup != nullptr && popup->getPageNum() != 0) {
Page *pageobj = doc->getPage(popup->getPageNum());
if (pageobj) {
pageobj->removeAnnot(popup);
@@ -2019,12 +2017,12 @@ void AnnotMarkup::setPopup(AnnotPopup *new_popup) {
// add the new popup annotation to the same page.
if (page != 0) {
Page *pageobj = doc->getPage(page);
- assert(pageobj != NULL); // pageobj should exist in doc (see setPage())
+ assert(pageobj != nullptr); // pageobj should exist in doc (see setPage())
pageobj->addAnnot(popup);
}
} else {
- popup = NULL;
+ popup = nullptr;
}
}
@@ -2047,7 +2045,7 @@ void AnnotMarkup::setDate(GooString *new_date) {
void AnnotMarkup::removeReferencedObjects() {
Page *pageobj = doc->getPage(page);
- assert(pageobj != NULL); // We're called when removing an annot from a page
+ assert(pageobj != nullptr); // We're called when removing an annot from a page
// Remove popup
if (popup) {
@@ -2163,8 +2161,6 @@ void AnnotText::initialize(PDFDoc *docA, Dict *dict) {
}
void AnnotText::setOpen(GBool openA) {
- Object obj1;
-
open = openA;
update ("Open", Object(open));
}
@@ -2478,7 +2474,7 @@ void AnnotText::draw(Gfx *gfx, GBool printing) {
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, NULL);
+ Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, nullptr);
appearance = createForm(bbox, gFalse, resDict);
}
delete appearBuf;
@@ -2487,12 +2483,12 @@ void AnnotText::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
if (appearBBox) {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
appearBBox->getPageXMin(), appearBBox->getPageYMin(),
appearBBox->getPageXMax(), appearBBox->getPageYMax(),
getRotation());
} else {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
}
@@ -2502,8 +2498,6 @@ void AnnotText::draw(Gfx *gfx, GBool printing) {
//------------------------------------------------------------------------
AnnotLink::AnnotLink(PDFDoc *docA, PDFRectangle *rect) :
Annot(docA, rect) {
- Object obj1;
-
type = typeLink;
annotObj.dictSet ("Subtype", Object(objName, "Link"));
initialize (docA, annotObj.getDict());
@@ -2529,7 +2523,7 @@ AnnotLink::~AnnotLink() {
void AnnotLink::initialize(PDFDoc *docA, Dict *dict) {
Object obj1;
- action = NULL;
+ action = nullptr;
// look for destination
obj1 = dict->lookup("Dest");
@@ -2574,7 +2568,7 @@ void AnnotLink::initialize(PDFDoc *docA, Dict *dict) {
if (obj1.isArray()) {
quadrilaterals = new AnnotQuadrilaterals(obj1.getArray(), rect);
} else {
- quadrilaterals = NULL;
+ quadrilaterals = nullptr;
}
obj1 = dict->lookup("BS");
@@ -2602,8 +2596,6 @@ void AnnotLink::draw(Gfx *gfx, GBool printing) {
//------------------------------------------------------------------------
AnnotFreeText::AnnotFreeText(PDFDoc *docA, PDFRectangle *rect, GooString *da) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
type = typeFreeText;
annotObj.dictSet ("Subtype", Object(objName, "FreeText"));
@@ -2657,7 +2649,7 @@ void AnnotFreeText::initialize(PDFDoc *docA, Dict *dict) {
if (obj1.isString()) {
styleString = obj1.getString()->copy();
} else {
- styleString = NULL;
+ styleString = nullptr;
}
obj1 = dict->lookup("CL");
@@ -2679,7 +2671,7 @@ void AnnotFreeText::initialize(PDFDoc *docA, Dict *dict) {
calloutLine = new AnnotCalloutLine(x1, y1, x2, y2);
}
} else {
- calloutLine = NULL;
+ calloutLine = nullptr;
}
obj1 = dict->lookup("IT");
@@ -2711,14 +2703,14 @@ void AnnotFreeText::initialize(PDFDoc *docA, Dict *dict) {
if (obj1.isDict()) {
borderEffect = new AnnotBorderEffect(obj1.getDict());
} else {
- borderEffect = NULL;
+ borderEffect = nullptr;
}
obj1 = dict->lookup("RD");
if (obj1.isArray()) {
rectangle = parseDiffRectangle(obj1.getArray(), rect);
} else {
- rectangle = NULL;
+ rectangle = nullptr;
}
obj1 = dict->lookup("LE");
@@ -2749,7 +2741,6 @@ void AnnotFreeText::setAppearanceString(GooString *new_string) {
}
void AnnotFreeText::setQuadding(AnnotFreeTextQuadding new_quadding) {
- Object obj1;
quadding = new_quadding;
update ("Q", Object((int)quadding));
invalidateAppearance();
@@ -2775,9 +2766,9 @@ void AnnotFreeText::setCalloutLine(AnnotCalloutLine *line) {
delete calloutLine;
Object obj1;
- if (line == NULL) {
+ if (line == nullptr) {
obj1.setToNull();
- calloutLine = NULL;
+ calloutLine = nullptr;
} else {
double x1 = line->getX1(), y1 = line->getY1();
double x2 = line->getX2(), y2 = line->getY2();
@@ -2834,7 +2825,7 @@ static GfxFont * createAnnotDrawFont(XRef * xref, Dict *fontResDict)
void AnnotFreeText::parseAppearanceString(GooString *da, double &fontsize, AnnotColor* &fontcolor) {
fontsize = -1;
- fontcolor = NULL;
+ fontcolor = nullptr;
if (da) {
GooList * daToks = new GooList();
int i = FormFieldText::tokenizeDA(da, daToks, "Tf");
@@ -2845,7 +2836,7 @@ void AnnotFreeText::parseAppearanceString(GooString *da, double &fontsize, Annot
}
// Scan backwards: we are looking for the last set value
for (i = daToks->getLength()-1; i >= 0; --i) {
- if (fontcolor == NULL) {
+ if (fontcolor == nullptr) {
if (!((GooString *)daToks->get(i))->cmp("g") && i >= 1) {
fontcolor = new AnnotColor(gatof(( (GooString *)daToks->get(i-1) )->getCString()));
} else if (!((GooString *)daToks->get(i))->cmp("rg") && i >= 3) {
@@ -2886,7 +2877,7 @@ void AnnotFreeText::generateFreeTextAppearance()
// Default values
if (fontsize <= 0)
fontsize = 10;
- if (fontcolor == NULL)
+ if (fontcolor == nullptr)
fontcolor = new AnnotColor(0, 0, 0); // Black
if (!contents)
contents = new GooString ();
@@ -2925,7 +2916,7 @@ void AnnotFreeText::generateFreeTextAppearance()
while (i < contents->getLength()) {
GooString out;
double linewidth, xpos;
- layoutText(contents, &out, &i, font, &linewidth, textwidth/fontsize, NULL, gFalse);
+ layoutText(contents, &out, &i, font, &linewidth, textwidth/fontsize, nullptr, gFalse);
linewidth *= fontsize;
switch (quadding) {
case quaddingCentered:
@@ -2960,7 +2951,7 @@ void AnnotFreeText::generateFreeTextAppearance()
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, NULL);
+ Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, nullptr);
appearance = createForm(bbox, gFalse, resDict);
}
delete appearBuf;
@@ -2977,7 +2968,7 @@ void AnnotFreeText::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
@@ -2996,8 +2987,6 @@ Object AnnotFreeText::getAppearanceResDict() {
AnnotLine::AnnotLine(PDFDoc *docA, PDFRectangle *rect) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
type = typeLine;
annotObj.dictSet ("Subtype", Object(objName, "Line"));
@@ -3065,7 +3054,7 @@ void AnnotLine::initialize(PDFDoc *docA, Dict *dict) {
if (obj1.isArray()) {
interiorColor = new AnnotColor(obj1.getArray());
} else {
- interiorColor = NULL;
+ interiorColor = nullptr;
}
obj1 = dict->lookup("LL");
@@ -3134,9 +3123,9 @@ void AnnotLine::initialize(PDFDoc *docA, Dict *dict) {
obj1 = dict->lookup("Measure");
if (obj1.isDict()) {
- measure = NULL;
+ measure = nullptr;
} else {
- measure = NULL;
+ measure = nullptr;
}
obj1 = dict->lookup("CO");
@@ -3202,7 +3191,7 @@ void AnnotLine::setInteriorColor(AnnotColor *new_color) {
update ("IC", std::move(obj1));
interiorColor = new_color;
} else {
- interiorColor = NULL;
+ interiorColor = nullptr;
}
invalidateAppearance();
}
@@ -3289,7 +3278,7 @@ void AnnotLine::generateLineAppearance()
while (i < contents->getLength()) {
GooString out;
double linewidth;
- layoutText(contents, &out, &i, font, &linewidth, 0, NULL, gFalse);
+ layoutText(contents, &out, &i, font, &linewidth, 0, nullptr, gFalse);
linewidth *= fontsize;
if (linewidth > captionwidth) {
captionwidth = linewidth;
@@ -3303,7 +3292,7 @@ void AnnotLine::generateLineAppearance()
}
} else {
fontResDict = nullptr;
- font = NULL;
+ font = nullptr;
}
// Draw main segment
@@ -3358,7 +3347,7 @@ void AnnotLine::generateLineAppearance()
while (i < contents->getLength()) {
GooString out;
double linewidth, xpos;
- layoutText(contents, &out, &i, font, &linewidth, 0, NULL, gFalse);
+ layoutText(contents, &out, &i, font, &linewidth, 0, nullptr, gFalse);
linewidth *= fontsize;
xpos = (captionwidth - linewidth) / 2;
appearBuf->appendf("{0:.2f} {1:.2f} Td\n", xpos - xposPrev, -fontsize);
@@ -3400,7 +3389,7 @@ void AnnotLine::generateLineAppearance()
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, NULL);
+ Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, nullptr);
appearance = createForm(bbox, gFalse, resDict);
}
delete appearBuf;
@@ -3418,12 +3407,12 @@ void AnnotLine::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
if (appearBBox) {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
appearBBox->getPageXMin(), appearBBox->getPageYMin(),
appearBBox->getPageXMax(), appearBBox->getPageYMax(),
getRotation());
} else {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
}
@@ -3442,8 +3431,6 @@ Object AnnotLine::getAppearanceResDict() {
//------------------------------------------------------------------------
AnnotTextMarkup::AnnotTextMarkup(PDFDoc *docA, PDFRectangle *rect, AnnotSubtype subType) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
switch (subType) {
case typeHighlight:
annotObj.dictSet ("Subtype", Object(objName, "Highlight"));
@@ -3500,7 +3487,7 @@ void AnnotTextMarkup::initialize(PDFDoc *docA, Dict *dict) {
quadrilaterals = new AnnotQuadrilaterals(obj1.getArray(), rect);
} else {
error(errSyntaxError, -1, "Bad Annot Text Markup QuadPoints");
- quadrilaterals = NULL;
+ quadrilaterals = nullptr;
ok = gFalse;
}
}
@@ -3695,11 +3682,11 @@ void AnnotTextMarkup::draw(Gfx *gfx, GBool printing) {
bbox[1] = appearBBox->getPageYMin();
bbox[2] = appearBBox->getPageXMax();
bbox[3] = appearBBox->getPageYMax();
- aStream = createForm(bbox, gTrue, NULL);
+ aStream = createForm(bbox, gTrue, nullptr);
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", 1, blendMultiply ? "Multiply" : NULL);
+ Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", 1, blendMultiply ? "Multiply" : nullptr);
if (ca == 1) {
appearance = createForm(bbox, gFalse, resDict);
} else {
@@ -3707,7 +3694,7 @@ void AnnotTextMarkup::draw(Gfx *gfx, GBool printing) {
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict2 = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, NULL);
+ Dict *resDict2 = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, nullptr);
appearance = createForm(bbox, gFalse, resDict2);
}
delete appearBuf;
@@ -3716,12 +3703,12 @@ void AnnotTextMarkup::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
if (appearBBox) {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
appearBBox->getPageXMin(), appearBBox->getPageYMin(),
appearBBox->getPageXMax(), appearBBox->getPageYMax(),
getRotation());
} else {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
}
@@ -3733,7 +3720,7 @@ void AnnotTextMarkup::draw(Gfx *gfx, GBool printing) {
AnnotWidget::AnnotWidget(PDFDoc *docA, Object *dictObject, Object *obj) :
Annot(docA, dictObject, obj) {
type = typeWidget;
- field = NULL;
+ field = nullptr;
initialize(docA, dictObject->getDict());
}
@@ -3781,10 +3768,10 @@ void AnnotWidget::initialize(PDFDoc *docA, Dict *dict) {
if (obj1.isDict()) {
appearCharacs = new AnnotAppearanceCharacs(obj1.getDict());
} else {
- appearCharacs = NULL;
+ appearCharacs = nullptr;
}
- action = NULL;
+ action = nullptr;
obj1 = dict->lookup("A");
if (obj1.isDict()) {
action = LinkAction::parseAction(&obj1, doc->getCatalog()->getBaseURI());
@@ -3794,9 +3781,9 @@ void AnnotWidget::initialize(PDFDoc *docA, Dict *dict) {
obj1 = dict->lookup("Parent");
if (obj1.isDict()) {
- parent = NULL;
+ parent = nullptr;
} else {
- parent = NULL;
+ parent = nullptr;
}
obj1 = dict->lookup("BS");
@@ -4008,13 +3995,13 @@ void Annot::layoutText(GooString *text, GooString *outBuf, int *i,
// Compute the actual width and character count of the final string, based on
// breakpoint, if this information is requested by the caller.
- if (width != NULL || charCount != NULL) {
+ if (width != nullptr || charCount != nullptr) {
char *s = outBuf->getCString();
int len = outBuf->getLength();
- if (width != NULL)
+ if (width != nullptr)
*width = 0.0;
- if (charCount != NULL)
+ if (charCount != nullptr)
*charCount = 0;
while (len > 0) {
@@ -4025,9 +4012,9 @@ void Annot::layoutText(GooString *text, GooString *outBuf, int *i,
break;
}
- if (width != NULL)
+ if (width != nullptr)
*width += dx;
- if (charCount != NULL)
+ if (charCount != nullptr)
*charCount += 1;
s += n;
@@ -4104,7 +4091,7 @@ void AnnotWidget::drawText(GooString *text, GooString *da, GfxResources *resourc
}
}
} else {
- daToks = NULL;
+ daToks = nullptr;
}
// force ZapfDingbats
@@ -4118,7 +4105,7 @@ void AnnotWidget::drawText(GooString *text, GooString *da, GfxResources *resourc
}
}
// get the font and font size
- font = NULL;
+ font = nullptr;
fontSize = 0;
if (tfPos >= 0) {
tok = (GooString *)daToks->get(tfPos);
@@ -4214,7 +4201,7 @@ void AnnotWidget::drawText(GooString *text, GooString *da, GfxResources *resourc
y = dy - 3;
i = 0;
while (i < text->getLength()) {
- layoutText(text, convertedText, &i, font, &w, wMax / fontSize, NULL,
+ layoutText(text, convertedText, &i, font, &w, wMax / fontSize, nullptr,
forceZapfDingbats);
y -= fontSize;
}
@@ -4261,7 +4248,7 @@ void AnnotWidget::drawText(GooString *text, GooString *da, GfxResources *resourc
i = 0;
xPrev = 0;
while (i < text->getLength()) {
- layoutText(text, convertedText, &i, font, &w, wMax / fontSize, NULL,
+ layoutText(text, convertedText, &i, font, &w, wMax / fontSize, nullptr,
forceZapfDingbats);
w *= fontSize;
@@ -4314,7 +4301,7 @@ void AnnotWidget::drawText(GooString *text, GooString *da, GfxResources *resourc
}
i = 0;
- layoutText(text, convertedText, &i, font, NULL, 0.0, &charCount,
+ layoutText(text, convertedText, &i, font, nullptr, 0.0, &charCount,
forceZapfDingbats);
if (charCount > comb)
charCount = comb;
@@ -4391,7 +4378,7 @@ void AnnotWidget::drawText(GooString *text, GooString *da, GfxResources *resourc
// regular (non-comb) formatting
} else {
i = 0;
- layoutText(text, convertedText, &i, font, &w, 0.0, NULL,
+ layoutText(text, convertedText, &i, font, &w, 0.0, nullptr,
forceZapfDingbats);
// compute font autosize
@@ -4508,11 +4495,11 @@ void AnnotWidget::drawListBox(FormFieldChoice *fieldChoice,
}
}
} else {
- daToks = NULL;
+ daToks = nullptr;
}
// get the font and font size
- font = NULL;
+ font = nullptr;
fontSize = 0;
if (tfPos >= 0) {
tok = (GooString *)daToks->get(tfPos);
@@ -4545,7 +4532,7 @@ void AnnotWidget::drawListBox(FormFieldChoice *fieldChoice,
wMax = 0;
for (i = 0; i < fieldChoice->getNumChoices(); ++i) {
j = 0;
- if (fieldChoice->getChoice(i) == NULL) {
+ if (fieldChoice->getChoice(i) == nullptr) {
error(errSyntaxError, -1, "Invalid annotation listbox");
if (daToks) {
deleteGooList(daToks, GooString);
@@ -4553,7 +4540,7 @@ void AnnotWidget::drawListBox(FormFieldChoice *fieldChoice,
delete convertedText;
return;
}
- layoutText(fieldChoice->getChoice(i), convertedText, &j, font, &w, 0.0, NULL, gFalse);
+ layoutText(fieldChoice->getChoice(i), convertedText, &j, font, &w, 0.0, nullptr, gFalse);
if (w > wMax) {
wMax = w;
}
@@ -4591,7 +4578,7 @@ void AnnotWidget::drawListBox(FormFieldChoice *fieldChoice,
// compute text width and start position
j = 0;
- layoutText(fieldChoice->getChoice(i), convertedText, &j, font, &w, 0.0, NULL, gFalse);
+ layoutText(fieldChoice->getChoice(i), convertedText, &j, font, &w, 0.0, nullptr, gFalse);
w *= fontSize;
switch (quadding) {
case quaddingLeftJustified:
@@ -4668,7 +4655,7 @@ void AnnotWidget::drawBorder() {
double dy = rect->y2 - rect->y1;
// radio buttons with no caption have a round border
- GBool hasCaption = appearCharacs->getNormalCaption() != NULL;
+ GBool hasCaption = appearCharacs->getNormalCaption() != nullptr;
if (field->getType() == formButton &&
static_cast<FormFieldButton*>(field)->getButtonType() == formButtonRadio && !hasCaption) {
double r = 0.5 * (dx < dy ? dx : dy);
@@ -4757,7 +4744,7 @@ void AnnotWidget::drawBorder() {
}
void AnnotWidget::drawFormFieldButton(GfxResources *resources, GooString *da) {
- GooString *caption = NULL;
+ GooString *caption = nullptr;
if (appearCharacs)
caption = appearCharacs->getNormalCaption();
@@ -4978,7 +4965,7 @@ void AnnotWidget::draw(Gfx *gfx, GBool printing) {
gfx->pushResources(dict);
delete dict;
}
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
if (addDingbatsResource) {
gfx->popResources();
@@ -4991,8 +4978,6 @@ void AnnotWidget::draw(Gfx *gfx, GBool printing) {
//------------------------------------------------------------------------
AnnotMovie::AnnotMovie(PDFDoc *docA, PDFRectangle *rect, Movie *movieA) :
Annot(docA, rect) {
- Object obj1;
-
type = typeMovie;
annotObj.dictSet ("Subtype", Object(objName, "Movie"));
@@ -5021,7 +5006,7 @@ void AnnotMovie::initialize(PDFDoc *docA, Dict* dict) {
if (obj1.isString()) {
title = obj1.getString()->copy();
} else {
- title = NULL;
+ title = nullptr;
}
Object movieDict = dict->lookup("Movie");
@@ -5033,12 +5018,12 @@ void AnnotMovie::initialize(PDFDoc *docA, Dict* dict) {
movie = new Movie (&movieDict);
if (!movie->isOk()) {
delete movie;
- movie = NULL;
+ movie = nullptr;
ok = gFalse;
}
} else {
error(errSyntaxError, -1, "Bad Annot Movie");
- movie = NULL;
+ movie = nullptr;
ok = gFalse;
}
}
@@ -5118,7 +5103,7 @@ void AnnotMovie::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
@@ -5127,8 +5112,6 @@ void AnnotMovie::draw(Gfx *gfx, GBool printing) {
//------------------------------------------------------------------------
AnnotScreen::AnnotScreen(PDFDoc *docA, PDFRectangle *rect) :
Annot(docA, rect) {
- Object obj1;
-
type = typeScreen;
annotObj.dictSet ("Subtype", Object(objName, "Screen"));
@@ -5150,27 +5133,27 @@ AnnotScreen::~AnnotScreen() {
void AnnotScreen::initialize(PDFDoc *docA, Dict* dict) {
Object obj1;
- title = NULL;
+ title = nullptr;
obj1 = dict->lookup("T");
if (obj1.isString()) {
title = obj1.getString()->copy();
}
- action = NULL;
+ action = nullptr;
obj1 = dict->lookup("A");
if (obj1.isDict()) {
action = LinkAction::parseAction(&obj1, doc->getCatalog()->getBaseURI());
if (action && action->getKind() == actionRendition && page == 0) {
error (errSyntaxError, -1, "Invalid Rendition action: associated screen annotation without P");
delete action;
- action = NULL;
+ action = nullptr;
ok = gFalse;
}
}
additionalActions = dict->lookupNF("AA");
- appearCharacs = NULL;
+ appearCharacs = nullptr;
obj1 = dict->lookup("MK");
if (obj1.isDict()) {
appearCharacs = new AnnotAppearanceCharacs(obj1.getDict());
@@ -5180,7 +5163,7 @@ void AnnotScreen::initialize(PDFDoc *docA, Dict* dict) {
LinkAction* AnnotScreen::getAdditionalAction(AdditionalActionsType type)
{
if (type == actionFocusIn || type == actionFocusOut) // not defined for screen annotation
- return NULL;
+ return nullptr;
return ::getAdditionalAction(type, &additionalActions, doc);
}
@@ -5190,8 +5173,6 @@ LinkAction* AnnotScreen::getAdditionalAction(AdditionalActionsType type)
//------------------------------------------------------------------------
AnnotStamp::AnnotStamp(PDFDoc *docA, PDFRectangle *rect) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
type = typeStamp;
annotObj.dictSet ("Subtype", Object(objName, "Stamp"));
initialize(docA, annotObj.getDict());
@@ -5235,8 +5216,6 @@ void AnnotStamp::setIcon(GooString *new_icon) {
//------------------------------------------------------------------------
AnnotGeometry::AnnotGeometry(PDFDoc *docA, PDFRectangle *rect, AnnotSubtype subType) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
switch (subType) {
case typeSquare:
annotObj.dictSet ("Subtype", Object(objName, "Square"));
@@ -5281,7 +5260,7 @@ void AnnotGeometry::initialize(PDFDoc *docA, Dict* dict) {
if (obj1.isArray()) {
interiorColor = new AnnotColor(obj1.getArray());
} else {
- interiorColor = NULL;
+ interiorColor = nullptr;
}
obj1 = dict->lookup("BS");
@@ -5296,10 +5275,10 @@ void AnnotGeometry::initialize(PDFDoc *docA, Dict* dict) {
if (obj1.isDict()) {
borderEffect = new AnnotBorderEffect(obj1.getDict());
} else {
- borderEffect = NULL;
+ borderEffect = nullptr;
}
- geometryRect = NULL;
+ geometryRect = nullptr;
obj1 = dict->lookup("RD");
if (obj1.isArray()) {
geometryRect = parseDiffRectangle(obj1.getArray(), rect);
@@ -5333,7 +5312,7 @@ void AnnotGeometry::setInteriorColor(AnnotColor *new_color) {
update ("IC", std::move(obj1));
interiorColor = new_color;
} else {
- interiorColor = NULL;
+ interiorColor = nullptr;
}
invalidateAppearance();
}
@@ -5430,7 +5409,7 @@ void AnnotGeometry::draw(Gfx *gfx, GBool printing) {
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, NULL);
+ Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, nullptr);
appearance = createForm(bbox, gFalse, resDict);
}
delete appearBuf;
@@ -5438,7 +5417,7 @@ void AnnotGeometry::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
@@ -5447,8 +5426,6 @@ void AnnotGeometry::draw(Gfx *gfx, GBool printing) {
//------------------------------------------------------------------------
AnnotPolygon::AnnotPolygon(PDFDoc *docA, PDFRectangle *rect, AnnotSubtype subType) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
switch (subType) {
case typePolygon:
annotObj.dictSet ("Subtype", Object(objName, "Polygon"));
@@ -5530,7 +5507,7 @@ void AnnotPolygon::initialize(PDFDoc *docA, Dict* dict) {
if (obj1.isArray()) {
interiorColor = new AnnotColor(obj1.getArray());
} else {
- interiorColor = NULL;
+ interiorColor = nullptr;
}
obj1 = dict->lookup("BS");
@@ -5545,7 +5522,7 @@ void AnnotPolygon::initialize(PDFDoc *docA, Dict* dict) {
if (obj1.isDict()) {
borderEffect = new AnnotBorderEffect(obj1.getDict());
} else {
- borderEffect = NULL;
+ borderEffect = nullptr;
}
obj1 = dict->lookup("IT");
@@ -5618,7 +5595,7 @@ void AnnotPolygon::setInteriorColor(AnnotColor *new_color) {
update ("IC", std::move(obj1));
interiorColor = new_color;
} else {
- interiorColor = NULL;
+ interiorColor = nullptr;
}
invalidateAppearance();
}
@@ -5692,7 +5669,7 @@ void AnnotPolygon::draw(Gfx *gfx, GBool printing) {
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, NULL);
+ Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, nullptr);
appearance = createForm(bbox, gFalse, resDict);
}
delete appearBuf;
@@ -5701,12 +5678,12 @@ void AnnotPolygon::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
if (appearBBox) {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
appearBBox->getPageXMin(), appearBBox->getPageYMin(),
appearBBox->getPageXMax(), appearBBox->getPageYMax(),
getRotation());
} else {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
}
@@ -5716,8 +5693,6 @@ void AnnotPolygon::draw(Gfx *gfx, GBool printing) {
//------------------------------------------------------------------------
AnnotCaret::AnnotCaret(PDFDoc *docA, PDFRectangle *rect) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
type = typeCaret;
annotObj.dictSet ("Subtype", Object(objName, "Caret"));
@@ -5752,7 +5727,7 @@ void AnnotCaret::initialize(PDFDoc *docA, Dict* dict) {
if (obj1.isArray()) {
caretRect = parseDiffRectangle(obj1.getArray(), rect);
} else {
- caretRect = NULL;
+ caretRect = nullptr;
}
}
@@ -5767,14 +5742,11 @@ void AnnotCaret::setSymbol(AnnotCaretSymbol new_symbol) {
//------------------------------------------------------------------------
AnnotInk::AnnotInk(PDFDoc *docA, PDFRectangle *rect) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
type = typeInk;
annotObj.dictSet ("Subtype", Object(objName, "Ink"));
// Store dummy path with one null vertex only
- Object obj3, obj4;
Array *inkList = new Array(doc->getXRef());
Array *vList = new Array(doc->getXRef());
vList->add(Object(0.));
@@ -5803,7 +5775,7 @@ void AnnotInk::initialize(PDFDoc *docA, Dict* dict) {
parseInkList(obj1.getArray());
} else {
inkListLength = 0;
- inkList = NULL;
+ inkList = nullptr;
error(errSyntaxError, -1, "Bad Annot Ink List");
ok = gFalse;
}
@@ -5906,7 +5878,7 @@ void AnnotInk::draw(Gfx *gfx, GBool printing) {
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, NULL);
+ Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, nullptr);
appearance = createForm(bbox, gFalse, resDict);
}
delete appearBuf;
@@ -5915,12 +5887,12 @@ void AnnotInk::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
if (appearBBox) {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
appearBBox->getPageXMin(), appearBBox->getPageYMin(),
appearBBox->getPageXMax(), appearBBox->getPageYMax(),
getRotation());
} else {
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
}
@@ -5930,8 +5902,6 @@ void AnnotInk::draw(Gfx *gfx, GBool printing) {
//------------------------------------------------------------------------
AnnotFileAttachment::AnnotFileAttachment(PDFDoc *docA, PDFRectangle *rect, GooString *filename) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
type = typeFileAttachment;
annotObj.dictSet("Subtype", Object(objName, "FileAttachment"));
@@ -6118,7 +6088,7 @@ void AnnotFileAttachment::draw(Gfx *gfx, GBool printing) {
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, NULL);
+ Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, nullptr);
appearance = createForm(bbox, gFalse, resDict);
}
delete appearBuf;
@@ -6126,7 +6096,7 @@ void AnnotFileAttachment::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
Object obj = appearance.fetch(gfx->getXRef());
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
@@ -6135,8 +6105,6 @@ void AnnotFileAttachment::draw(Gfx *gfx, GBool printing) {
//------------------------------------------------------------------------
AnnotSound::AnnotSound(PDFDoc *docA, PDFRectangle *rect, Sound *soundA) :
AnnotMarkup(docA, rect) {
- Object obj1;
-
type = typeSound;
annotObj.dictSet ("Subtype", Object(objName, "Sound"));
@@ -6271,7 +6239,7 @@ void AnnotSound::draw(Gfx *gfx, GBool printing) {
delete appearBuf;
appearBuf = new GooString ("/GS0 gs\n/Fm0 Do");
- Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, NULL);
+ Dict *resDict = createResourcesDict("Fm0", std::move(aStream), "GS0", ca, nullptr);
appearance = createForm(bbox, gFalse, resDict);
}
delete appearBuf;
@@ -6279,7 +6247,7 @@ void AnnotSound::draw(Gfx *gfx, GBool printing) {
// draw the appearance stream
obj = appearance.fetch(gfx->getXRef());
- gfx->drawAnnot(&obj, (AnnotBorder *)NULL, color,
+ gfx->drawAnnot(&obj, (AnnotBorder *)nullptr, color,
rect->x1, rect->y1, rect->x2, rect->y2, getRotation());
}
@@ -6288,8 +6256,6 @@ void AnnotSound::draw(Gfx *gfx, GBool printing) {
//------------------------------------------------------------------------
Annot3D::Annot3D(PDFDoc *docA, PDFRectangle *rect) :
Annot(docA, rect) {
- Object obj1;
-
type = type3D;
annotObj.dictSet ("Subtype", Object(objName, "3D"));
@@ -6313,7 +6279,7 @@ void Annot3D::initialize(PDFDoc *docA, Dict* dict) {
if (obj1.isDict()) {
activation = new Activation(obj1.getDict());
} else {
- activation = NULL;
+ activation = nullptr;
}
}
@@ -6406,8 +6372,6 @@ Annot3D::Activation::Activation(Dict *dict) {
//------------------------------------------------------------------------
AnnotRichMedia::AnnotRichMedia(PDFDoc *docA, PDFRectangle *rect) :
Annot(docA, rect) {
- Object obj1;
-
type = typeRichMedia;
annotObj.dictSet ("Subtype", Object(objName, "RichMedia"));
@@ -6431,14 +6395,14 @@ void AnnotRichMedia::initialize(PDFDoc *docA, Dict* dict) {
if (obj1.isDict()) {
content = new AnnotRichMedia::Content(obj1.getDict());
} else {
- content = NULL;
+ content = nullptr;
}
obj1 = dict->lookup("RichMediaSettings");
if (obj1.isDict()) {
settings = new AnnotRichMedia::Settings(obj1.getDict());
} else {
- settings = NULL;
+ settings = nullptr;
}
}
@@ -6455,14 +6419,14 @@ AnnotRichMedia::Settings::Settings(Dict *dict) {
if (obj1.isDict()) {
activation = new AnnotRichMedia::Activation(obj1.getDict());
} else {
- activation = NULL;
+ activation = nullptr;
}
obj1 = dict->lookup("Deactivation");
if (obj1.isDict()) {
deactivation = new AnnotRichMedia::Deactivation(obj1.getDict());
} else {
- deactivation = NULL;
+ deactivation = nullptr;
}
}
@@ -6537,16 +6501,16 @@ AnnotRichMedia::Content::Content(Dict *dict) {
if (obj2.isDict()) {
configurations[i] = new AnnotRichMedia::Configuration(obj2.getDict());
} else {
- configurations[i] = NULL;
+ configurations[i] = nullptr;
}
}
} else {
nConfigurations = 0;
- configurations = NULL;
+ configurations = nullptr;
}
nAssets = 0;
- assets = NULL;
+ assets = nullptr;
obj1 = dict->lookup("Assets");
if (obj1.isDict()) {
Object obj2 = obj1.getDict()->lookup("Names");
@@ -6590,7 +6554,7 @@ int AnnotRichMedia::Content::getConfigurationsCount() const {
AnnotRichMedia::Configuration* AnnotRichMedia::Content::getConfiguration(int index) const {
if (index < 0 || index >= nConfigurations)
- return NULL;
+ return nullptr;
return configurations[index];
}
@@ -6601,13 +6565,13 @@ int AnnotRichMedia::Content::getAssetsCount() const {
AnnotRichMedia::Asset* AnnotRichMedia::Content::getAsset(int index) const {
if (index < 0 || index >= nAssets)
- return NULL;
+ return nullptr;
return assets[index];
}
AnnotRichMedia::Asset::Asset()
- : name(NULL)
+ : name(nullptr)
{
}
@@ -6637,18 +6601,18 @@ AnnotRichMedia::Configuration::Configuration(Dict *dict)
if (obj2.isDict()) {
instances[i] = new AnnotRichMedia::Instance(obj2.getDict());
} else {
- instances[i] = NULL;
+ instances[i] = nullptr;
}
}
} else {
- instances = NULL;
+ instances = nullptr;
}
obj1 = dict->lookup("Name");
if (obj1.isString()) {
name = new GooString(obj1.getString());
} else {
- name = NULL;
+ name = nullptr;
}
obj1 = dict->lookup("Subtype");
@@ -6710,7 +6674,7 @@ int AnnotRichMedia::Configuration::getInstancesCount() const {
AnnotRichMedia::Instance* AnnotRichMedia::Configuration::getInstance(int index) const {
if (index < 0 || index >= nInstances)
- return NULL;
+ return nullptr;
return instances[index];
}
@@ -6744,7 +6708,7 @@ AnnotRichMedia::Instance::Instance(Dict *dict)
if (obj1.isDict()) {
params = new AnnotRichMedia::Params(obj1.getDict());
} else {
- params = NULL;
+ params = nullptr;
}
}
@@ -6767,7 +6731,7 @@ AnnotRichMedia::Params::Params(Dict *dict)
if (obj1.isString()) {
flashVars = new GooString(obj1.getString());
} else {
- flashVars = NULL;
+ flashVars = nullptr;
}
}
@@ -6789,7 +6753,7 @@ Annots::Annots(PDFDoc *docA, int page, Object *annotsObj) {
int i;
doc = docA;
- annots = NULL;
+ annots = nullptr;
size = 0;
nAnnots = 0;
@@ -6920,7 +6884,7 @@ Annot *Annots::createAnnot(Object* dictObject, Object *obj) {
if (obj2.isNull())
annot = new AnnotPopup(doc, dictObject, obj);
else
- annot = NULL;
+ annot = nullptr;
} else {
annot = new Annot(doc, dictObject, obj);
}
@@ -6937,7 +6901,7 @@ Annot *Annots::findAnnot(Ref *ref) {
return annots[i];
}
}
- return NULL;
+ return nullptr;
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Annot.h b/Build/source/libs/poppler/poppler-src/poppler/Annot.h
index 82279bdfddf..860d95e9a73 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Annot.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Annot.h
@@ -21,7 +21,7 @@
// Copyright (C) 2008 Hugo Mercier <hmercier31@gmail.com>
// Copyright (C) 2008 Pino Toscano <pino@kde.org>
// Copyright (C) 2008 Tomas Are Haavet <tomasare@gmail.com>
-// Copyright (C) 2009-2011, 2013, 2016, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009-2011, 2013, 2016-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2012, 2013 Fabio D'Urso <fabiodurso@hotmail.it>
// Copyright (C) 2012, 2015 Tobias Koenig <tokoe@kdab.com>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
@@ -105,6 +105,9 @@ public:
AnnotPath(AnnotCoord **coords, int coordLength);
~AnnotPath();
+ AnnotPath(const AnnotPath &) = delete;
+ AnnotPath& operator=(const AnnotPath &other) = delete;
+
double getX(int coord) const;
double getY(int coord) const;
AnnotCoord *getCoord(int coord) const;
@@ -126,6 +129,9 @@ public:
AnnotCalloutLine(double x1, double y1, double x2, double y2);
virtual ~AnnotCalloutLine() { }
+ AnnotCalloutLine(const AnnotCalloutLine &) = delete;
+ AnnotCalloutLine& operator=(const AnnotCalloutLine &other) = delete;
+
double getX1() const { return coord1.getX(); }
double getY1() const { return coord1.getY(); }
double getX2() const { return coord2.getX(); }
@@ -195,6 +201,9 @@ public:
AnnotQuadrilaterals(AnnotQuadrilateral **quads, int quadsLength);
~AnnotQuadrilaterals();
+ AnnotQuadrilaterals(const AnnotQuadrilaterals &) = delete;
+ AnnotQuadrilaterals& operator=(const AnnotQuadrilaterals &other) = delete;
+
double getX1(int quadrilateral);
double getY1(int quadrilateral);
double getX2(int quadrilateral);
@@ -231,6 +240,9 @@ public:
virtual ~AnnotBorder();
+ AnnotBorder(const AnnotBorder &) = delete;
+ AnnotBorder& operator=(const AnnotBorder &other) = delete;
+
virtual void setWidth(double new_width) { width = new_width; }
virtual AnnotBorderType getType() const = 0;
@@ -429,6 +441,9 @@ public:
AnnotAppearanceCharacs(Dict *dict);
~AnnotAppearanceCharacs();
+ AnnotAppearanceCharacs(const AnnotAppearanceCharacs &) = delete;
+ AnnotAppearanceCharacs& operator=(const AnnotAppearanceCharacs &) = delete;
+
int getRotation() { return rotation; }
AnnotColor *getBorderColor() { return borderColor; }
AnnotColor *getBackColor() { return backColor; }
@@ -1420,6 +1435,9 @@ public:
Params(Dict *dict);
~Params();
+ Params(const Params &) = delete;
+ Params& operator=(const Params &) = delete;
+
GooString* getFlashVars() const;
private:
@@ -1439,6 +1457,9 @@ public:
Instance(Dict *dict);
~Instance();
+ Instance(const Instance &) = delete;
+ Instance& operator=(const Instance &) = delete;
+
Type getType() const;
Params* getParams() const;
@@ -1460,6 +1481,9 @@ public:
Configuration(Dict *dict);
~Configuration();
+ Configuration(const Configuration &) = delete;
+ Configuration& operator=(const Configuration &) = delete;
+
Type getType() const;
GooString* getName() const;
int getInstancesCount() const;
@@ -1480,6 +1504,9 @@ public:
Asset();
~Asset();
+ Asset(const Asset &) = delete;
+ Asset& operator=(const Asset &) = delete;
+
GooString* getName() const;
Object* getFileSpec() const;
@@ -1495,6 +1522,9 @@ public:
Content(Dict *dict);
~Content();
+ Content(const Content &) = delete;
+ Content& operator=(const Content &) = delete;
+
int getConfigurationsCount() const;
Configuration* getConfiguration(int index) const;
@@ -1549,6 +1579,9 @@ public:
Settings(Dict *dict);
~Settings();
+ Settings(const Settings &) = delete;
+ Settings& operator=(const Settings &) = delete;
+
Activation* getActivation() const;
Deactivation* getDeactivation() const;
@@ -1589,6 +1622,9 @@ public:
~Annots();
+ Annots(const Annots &) = delete;
+ Annots& operator=(const Annots &) = delete;
+
// Iterate through list of annotations.
int getNumAnnots() { return nAnnots; }
Annot *getAnnot(int i) { return annots[i]; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Array.cc b/Build/source/libs/poppler/poppler-src/poppler/Array.cc
index c6de53ef03e..3276349fbcc 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Array.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Array.cc
@@ -47,7 +47,7 @@
Array::Array(XRef *xrefA) {
xref = xrefA;
- elems = NULL;
+ elems = nullptr;
size = length = 0;
ref = 1;
#ifdef MULTITHREADED
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Array.h b/Build/source/libs/poppler/poppler-src/poppler/Array.h
index 2babc8be52f..cd71c825537 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Array.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Array.h
@@ -16,7 +16,7 @@
// Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2017 Adrian Johnson <ajohnson@redneon.com>
//
// To see a description of the changes please see the Changelog file that
@@ -50,6 +50,9 @@ public:
// Destructor.
~Array();
+ Array(const Array &) = delete;
+ Array& operator=(const Array &) = delete;
+
// Get number of elements.
int getLength() const { return length; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.cc b/Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.cc
index 20a297d6135..b6034752a23 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.cc
@@ -26,7 +26,7 @@ BuiltinFontWidths::BuiltinFontWidths(BuiltinFontWidth *widths, int sizeA) {
size = sizeA;
tab = (BuiltinFontWidth **)gmallocn(size, sizeof(BuiltinFontWidth *));
for (i = 0; i < size; ++i) {
- tab[i] = NULL;
+ tab[i] = nullptr;
}
for (i = 0; i < sizeA; ++i) {
h = hash(widths[i].name);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.h b/Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.h
index bbdd0558e9f..754e736669c 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/BuiltinFont.h
@@ -6,6 +6,20 @@
//
//========================================================================
+//========================================================================
+//
+// Modified under the Poppler project - http://poppler.freedesktop.org
+//
+// All changes made under the Poppler project to this file are licensed
+// under GPL version 2 or later
+//
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
+//
+// To see a description of the changes please see the Changelog file that
+// came with your tarball or type make ChangeLog if you are building from git
+//
+//========================================================================
+
#ifndef BUILTINFONT_H
#define BUILTINFONT_H
@@ -42,6 +56,10 @@ public:
BuiltinFontWidths(BuiltinFontWidth *widths, int sizeA);
~BuiltinFontWidths();
+
+ BuiltinFontWidths(const BuiltinFontWidths &) = delete;
+ BuiltinFontWidths& operator=(const BuiltinFontWidths &) = delete;
+
GBool getWidth(const char *name, Gushort *width);
private:
diff --git a/Build/source/libs/poppler/poppler-src/poppler/BuiltinFontTables.cc b/Build/source/libs/poppler/poppler-src/poppler/BuiltinFontTables.cc
index 5115b7bcf13..c1e636f6ee3 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/BuiltinFontTables.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/BuiltinFontTables.cc
@@ -12,4235 +12,4235 @@
#include "BuiltinFontTables.h"
static BuiltinFontWidth courierWidthsTab[] = {
- { "Ntilde", 600, NULL },
- { "rcaron", 600, NULL },
- { "kcommaaccent", 600, NULL },
- { "Ncommaaccent", 600, NULL },
- { "Zacute", 600, NULL },
- { "comma", 600, NULL },
- { "cedilla", 600, NULL },
- { "plusminus", 600, NULL },
- { "circumflex", 600, NULL },
- { "dotaccent", 600, NULL },
- { "edotaccent", 600, NULL },
- { "asciitilde", 600, NULL },
- { "colon", 600, NULL },
- { "onehalf", 600, NULL },
- { "dollar", 600, NULL },
- { "Lcaron", 600, NULL },
- { "ntilde", 600, NULL },
- { "Aogonek", 600, NULL },
- { "ncommaaccent", 600, NULL },
- { "minus", 600, NULL },
- { "Iogonek", 600, NULL },
- { "zacute", 600, NULL },
- { "yen", 600, NULL },
- { "space", 600, NULL },
- { "Omacron", 600, NULL },
- { "questiondown", 600, NULL },
- { "emdash", 600, NULL },
- { "Agrave", 600, NULL },
- { "three", 600, NULL },
- { "numbersign", 600, NULL },
- { "lcaron", 600, NULL },
- { "A", 600, NULL },
- { "B", 600, NULL },
- { "C", 600, NULL },
- { "aogonek", 600, NULL },
- { "D", 600, NULL },
- { "E", 600, NULL },
- { "onequarter", 600, NULL },
- { "F", 600, NULL },
- { "G", 600, NULL },
- { "H", 600, NULL },
- { "I", 600, NULL },
- { "J", 600, NULL },
- { "K", 600, NULL },
- { "iogonek", 600, NULL },
- { "L", 600, NULL },
- { "backslash", 600, NULL },
- { "periodcentered", 600, NULL },
- { "M", 600, NULL },
- { "N", 600, NULL },
- { "omacron", 600, NULL },
- { "Tcommaaccent", 600, NULL },
- { "O", 600, NULL },
- { "P", 600, NULL },
- { "Q", 600, NULL },
- { "Uhungarumlaut", 600, NULL },
- { "R", 600, NULL },
- { "Aacute", 600, NULL },
- { "caron", 600, NULL },
- { "S", 600, NULL },
- { "T", 600, NULL },
- { "U", 600, NULL },
- { "agrave", 600, NULL },
- { "V", 600, NULL },
- { "W", 600, NULL },
- { "equal", 600, NULL },
- { "question", 600, NULL },
- { "X", 600, NULL },
- { "Y", 600, NULL },
- { "Z", 600, NULL },
- { "four", 600, NULL },
- { "a", 600, NULL },
- { "Gcommaaccent", 600, NULL },
- { "b", 600, NULL },
- { "c", 600, NULL },
- { "d", 600, NULL },
- { "e", 600, NULL },
- { "f", 600, NULL },
- { "g", 600, NULL },
- { "bullet", 600, NULL },
- { "h", 600, NULL },
- { "i", 600, NULL },
- { "Oslash", 600, NULL },
- { "dagger", 600, NULL },
- { "j", 600, NULL },
- { "k", 600, NULL },
- { "l", 600, NULL },
- { "m", 600, NULL },
- { "n", 600, NULL },
- { "tcommaaccent", 600, NULL },
- { "o", 600, NULL },
- { "ordfeminine", 600, NULL },
- { "ring", 600, NULL },
- { "p", 600, NULL },
- { "q", 600, NULL },
- { "uhungarumlaut", 600, NULL },
- { "r", 600, NULL },
- { "twosuperior", 600, NULL },
- { "aacute", 600, NULL },
- { "s", 600, NULL },
- { "OE", 600, NULL },
- { "t", 600, NULL },
- { "divide", 600, NULL },
- { "u", 600, NULL },
- { "Ccaron", 600, NULL },
- { "v", 600, NULL },
- { "w", 600, NULL },
- { "x", 600, NULL },
- { "y", 600, NULL },
- { "z", 600, NULL },
- { "Gbreve", 600, NULL },
- { "commaaccent", 600, NULL },
- { "hungarumlaut", 600, NULL },
- { "Idotaccent", 600, NULL },
- { "Nacute", 600, NULL },
- { "quotedbl", 600, NULL },
- { "gcommaaccent", 600, NULL },
- { "mu", 600, NULL },
- { "greaterequal", 600, NULL },
- { "Scaron", 600, NULL },
- { "Lslash", 600, NULL },
- { "semicolon", 600, NULL },
- { "oslash", 600, NULL },
- { "lessequal", 600, NULL },
- { "lozenge", 600, NULL },
- { "parenright", 600, NULL },
- { "ccaron", 600, NULL },
- { "Ecircumflex", 600, NULL },
- { "gbreve", 600, NULL },
- { "trademark", 600, NULL },
- { "daggerdbl", 600, NULL },
- { "nacute", 600, NULL },
- { "macron", 600, NULL },
- { "Otilde", 600, NULL },
- { "Emacron", 600, NULL },
- { "ellipsis", 600, NULL },
- { "scaron", 600, NULL },
- { "AE", 600, NULL },
- { "Ucircumflex", 600, NULL },
- { "lslash", 600, NULL },
- { "quotedblleft", 600, NULL },
- { "hyphen", 600, NULL },
- { "guilsinglright", 600, NULL },
- { "quotesingle", 600, NULL },
- { "eight", 600, NULL },
- { "exclamdown", 600, NULL },
- { "endash", 600, NULL },
- { "oe", 600, NULL },
- { "Abreve", 600, NULL },
- { "Umacron", 600, NULL },
- { "ecircumflex", 600, NULL },
- { "Adieresis", 600, NULL },
- { "copyright", 600, NULL },
- { "Egrave", 600, NULL },
- { "slash", 600, NULL },
- { "Edieresis", 600, NULL },
- { "otilde", 600, NULL },
- { "Idieresis", 600, NULL },
- { "parenleft", 600, NULL },
- { "one", 600, NULL },
- { "emacron", 600, NULL },
- { "Odieresis", 600, NULL },
- { "ucircumflex", 600, NULL },
- { "bracketleft", 600, NULL },
- { "Ugrave", 600, NULL },
- { "quoteright", 600, NULL },
- { "Udieresis", 600, NULL },
- { "perthousand", 600, NULL },
- { "Ydieresis", 600, NULL },
- { "umacron", 600, NULL },
- { "abreve", 600, NULL },
- { "Eacute", 600, NULL },
- { "adieresis", 600, NULL },
- { "egrave", 600, NULL },
- { "edieresis", 600, NULL },
- { "idieresis", 600, NULL },
- { "Eth", 600, NULL },
- { "ae", 600, NULL },
- { "asterisk", 600, NULL },
- { "odieresis", 600, NULL },
- { "Uacute", 600, NULL },
- { "ugrave", 600, NULL },
- { "five", 600, NULL },
- { "nine", 600, NULL },
- { "udieresis", 600, NULL },
- { "Zcaron", 600, NULL },
- { "Scommaaccent", 600, NULL },
- { "threequarters", 600, NULL },
- { "guillemotright", 600, NULL },
- { "Ccedilla", 600, NULL },
- { "ydieresis", 600, NULL },
- { "tilde", 600, NULL },
- { "at", 600, NULL },
- { "eacute", 600, NULL },
- { "underscore", 600, NULL },
- { "Euro", 600, NULL },
- { "Dcroat", 600, NULL },
- { "zero", 600, NULL },
- { "multiply", 600, NULL },
- { "eth", 600, NULL },
- { "Scedilla", 600, NULL },
- { "Racute", 600, NULL },
- { "Ograve", 600, NULL },
- { "partialdiff", 600, NULL },
- { "uacute", 600, NULL },
- { "braceleft", 600, NULL },
- { "Thorn", 600, NULL },
- { "zcaron", 600, NULL },
- { "scommaaccent", 600, NULL },
- { "ccedilla", 600, NULL },
- { "Dcaron", 600, NULL },
- { "dcroat", 600, NULL },
- { "scedilla", 600, NULL },
- { "Oacute", 600, NULL },
- { "Ocircumflex", 600, NULL },
- { "ogonek", 600, NULL },
- { "ograve", 600, NULL },
- { "racute", 600, NULL },
- { "Tcaron", 600, NULL },
- { "Eogonek", 600, NULL },
- { "thorn", 600, NULL },
- { "degree", 600, NULL },
- { "registered", 600, NULL },
- { "radical", 600, NULL },
- { "Aring", 600, NULL },
- { "percent", 600, NULL },
- { "six", 600, NULL },
- { "paragraph", 600, NULL },
- { "dcaron", 600, NULL },
- { "Uogonek", 600, NULL },
- { "two", 600, NULL },
- { "summation", 600, NULL },
- { "Igrave", 600, NULL },
- { "Lacute", 600, NULL },
- { "ocircumflex", 600, NULL },
- { "oacute", 600, NULL },
- { "Uring", 600, NULL },
- { "Lcommaaccent", 600, NULL },
- { "tcaron", 600, NULL },
- { "eogonek", 600, NULL },
- { "Delta", 600, NULL },
- { "Ohungarumlaut", 600, NULL },
- { "asciicircum", 600, NULL },
- { "aring", 600, NULL },
- { "grave", 600, NULL },
- { "uogonek", 600, NULL },
- { "bracketright", 600, NULL },
- { "ampersand", 600, NULL },
- { "Iacute", 600, NULL },
- { "lacute", 600, NULL },
- { "igrave", 600, NULL },
- { "Ncaron", 600, NULL },
- { "plus", 600, NULL },
- { "uring", 600, NULL },
- { "quotesinglbase", 600, NULL },
- { "lcommaaccent", 600, NULL },
- { "Yacute", 600, NULL },
- { "ohungarumlaut", 600, NULL },
- { "threesuperior", 600, NULL },
- { "acute", 600, NULL },
- { "section", 600, NULL },
- { "dieresis", 600, NULL },
- { "quotedblbase", 600, NULL },
- { "iacute", 600, NULL },
- { "ncaron", 600, NULL },
- { "florin", 600, NULL },
- { "yacute", 600, NULL },
- { "Rcommaaccent", 600, NULL },
- { "fi", 600, NULL },
- { "fl", 600, NULL },
- { "Acircumflex", 600, NULL },
- { "Cacute", 600, NULL },
- { "Icircumflex", 600, NULL },
- { "guillemotleft", 600, NULL },
- { "germandbls", 600, NULL },
- { "seven", 600, NULL },
- { "Amacron", 600, NULL },
- { "Sacute", 600, NULL },
- { "ordmasculine", 600, NULL },
- { "dotlessi", 600, NULL },
- { "sterling", 600, NULL },
- { "notequal", 600, NULL },
- { "Imacron", 600, NULL },
- { "rcommaaccent", 600, NULL },
- { "Zdotaccent", 600, NULL },
- { "acircumflex", 600, NULL },
- { "cacute", 600, NULL },
- { "Ecaron", 600, NULL },
- { "braceright", 600, NULL },
- { "icircumflex", 600, NULL },
- { "quotedblright", 600, NULL },
- { "amacron", 600, NULL },
- { "sacute", 600, NULL },
- { "imacron", 600, NULL },
- { "cent", 600, NULL },
- { "currency", 600, NULL },
- { "logicalnot", 600, NULL },
- { "zdotaccent", 600, NULL },
- { "Atilde", 600, NULL },
- { "breve", 600, NULL },
- { "bar", 600, NULL },
- { "fraction", 600, NULL },
- { "less", 600, NULL },
- { "ecaron", 600, NULL },
- { "guilsinglleft", 600, NULL },
- { "exclam", 600, NULL },
- { "period", 600, NULL },
- { "Rcaron", 600, NULL },
- { "Kcommaaccent", 600, NULL },
- { "greater", 600, NULL },
- { "atilde", 600, NULL },
- { "brokenbar", 600, NULL },
- { "quoteleft", 600, NULL },
- { "Edotaccent", 600, NULL },
- { "onesuperior", 600, NULL }
+ { "Ntilde", 600, nullptr },
+ { "rcaron", 600, nullptr },
+ { "kcommaaccent", 600, nullptr },
+ { "Ncommaaccent", 600, nullptr },
+ { "Zacute", 600, nullptr },
+ { "comma", 600, nullptr },
+ { "cedilla", 600, nullptr },
+ { "plusminus", 600, nullptr },
+ { "circumflex", 600, nullptr },
+ { "dotaccent", 600, nullptr },
+ { "edotaccent", 600, nullptr },
+ { "asciitilde", 600, nullptr },
+ { "colon", 600, nullptr },
+ { "onehalf", 600, nullptr },
+ { "dollar", 600, nullptr },
+ { "Lcaron", 600, nullptr },
+ { "ntilde", 600, nullptr },
+ { "Aogonek", 600, nullptr },
+ { "ncommaaccent", 600, nullptr },
+ { "minus", 600, nullptr },
+ { "Iogonek", 600, nullptr },
+ { "zacute", 600, nullptr },
+ { "yen", 600, nullptr },
+ { "space", 600, nullptr },
+ { "Omacron", 600, nullptr },
+ { "questiondown", 600, nullptr },
+ { "emdash", 600, nullptr },
+ { "Agrave", 600, nullptr },
+ { "three", 600, nullptr },
+ { "numbersign", 600, nullptr },
+ { "lcaron", 600, nullptr },
+ { "A", 600, nullptr },
+ { "B", 600, nullptr },
+ { "C", 600, nullptr },
+ { "aogonek", 600, nullptr },
+ { "D", 600, nullptr },
+ { "E", 600, nullptr },
+ { "onequarter", 600, nullptr },
+ { "F", 600, nullptr },
+ { "G", 600, nullptr },
+ { "H", 600, nullptr },
+ { "I", 600, nullptr },
+ { "J", 600, nullptr },
+ { "K", 600, nullptr },
+ { "iogonek", 600, nullptr },
+ { "L", 600, nullptr },
+ { "backslash", 600, nullptr },
+ { "periodcentered", 600, nullptr },
+ { "M", 600, nullptr },
+ { "N", 600, nullptr },
+ { "omacron", 600, nullptr },
+ { "Tcommaaccent", 600, nullptr },
+ { "O", 600, nullptr },
+ { "P", 600, nullptr },
+ { "Q", 600, nullptr },
+ { "Uhungarumlaut", 600, nullptr },
+ { "R", 600, nullptr },
+ { "Aacute", 600, nullptr },
+ { "caron", 600, nullptr },
+ { "S", 600, nullptr },
+ { "T", 600, nullptr },
+ { "U", 600, nullptr },
+ { "agrave", 600, nullptr },
+ { "V", 600, nullptr },
+ { "W", 600, nullptr },
+ { "equal", 600, nullptr },
+ { "question", 600, nullptr },
+ { "X", 600, nullptr },
+ { "Y", 600, nullptr },
+ { "Z", 600, nullptr },
+ { "four", 600, nullptr },
+ { "a", 600, nullptr },
+ { "Gcommaaccent", 600, nullptr },
+ { "b", 600, nullptr },
+ { "c", 600, nullptr },
+ { "d", 600, nullptr },
+ { "e", 600, nullptr },
+ { "f", 600, nullptr },
+ { "g", 600, nullptr },
+ { "bullet", 600, nullptr },
+ { "h", 600, nullptr },
+ { "i", 600, nullptr },
+ { "Oslash", 600, nullptr },
+ { "dagger", 600, nullptr },
+ { "j", 600, nullptr },
+ { "k", 600, nullptr },
+ { "l", 600, nullptr },
+ { "m", 600, nullptr },
+ { "n", 600, nullptr },
+ { "tcommaaccent", 600, nullptr },
+ { "o", 600, nullptr },
+ { "ordfeminine", 600, nullptr },
+ { "ring", 600, nullptr },
+ { "p", 600, nullptr },
+ { "q", 600, nullptr },
+ { "uhungarumlaut", 600, nullptr },
+ { "r", 600, nullptr },
+ { "twosuperior", 600, nullptr },
+ { "aacute", 600, nullptr },
+ { "s", 600, nullptr },
+ { "OE", 600, nullptr },
+ { "t", 600, nullptr },
+ { "divide", 600, nullptr },
+ { "u", 600, nullptr },
+ { "Ccaron", 600, nullptr },
+ { "v", 600, nullptr },
+ { "w", 600, nullptr },
+ { "x", 600, nullptr },
+ { "y", 600, nullptr },
+ { "z", 600, nullptr },
+ { "Gbreve", 600, nullptr },
+ { "commaaccent", 600, nullptr },
+ { "hungarumlaut", 600, nullptr },
+ { "Idotaccent", 600, nullptr },
+ { "Nacute", 600, nullptr },
+ { "quotedbl", 600, nullptr },
+ { "gcommaaccent", 600, nullptr },
+ { "mu", 600, nullptr },
+ { "greaterequal", 600, nullptr },
+ { "Scaron", 600, nullptr },
+ { "Lslash", 600, nullptr },
+ { "semicolon", 600, nullptr },
+ { "oslash", 600, nullptr },
+ { "lessequal", 600, nullptr },
+ { "lozenge", 600, nullptr },
+ { "parenright", 600, nullptr },
+ { "ccaron", 600, nullptr },
+ { "Ecircumflex", 600, nullptr },
+ { "gbreve", 600, nullptr },
+ { "trademark", 600, nullptr },
+ { "daggerdbl", 600, nullptr },
+ { "nacute", 600, nullptr },
+ { "macron", 600, nullptr },
+ { "Otilde", 600, nullptr },
+ { "Emacron", 600, nullptr },
+ { "ellipsis", 600, nullptr },
+ { "scaron", 600, nullptr },
+ { "AE", 600, nullptr },
+ { "Ucircumflex", 600, nullptr },
+ { "lslash", 600, nullptr },
+ { "quotedblleft", 600, nullptr },
+ { "hyphen", 600, nullptr },
+ { "guilsinglright", 600, nullptr },
+ { "quotesingle", 600, nullptr },
+ { "eight", 600, nullptr },
+ { "exclamdown", 600, nullptr },
+ { "endash", 600, nullptr },
+ { "oe", 600, nullptr },
+ { "Abreve", 600, nullptr },
+ { "Umacron", 600, nullptr },
+ { "ecircumflex", 600, nullptr },
+ { "Adieresis", 600, nullptr },
+ { "copyright", 600, nullptr },
+ { "Egrave", 600, nullptr },
+ { "slash", 600, nullptr },
+ { "Edieresis", 600, nullptr },
+ { "otilde", 600, nullptr },
+ { "Idieresis", 600, nullptr },
+ { "parenleft", 600, nullptr },
+ { "one", 600, nullptr },
+ { "emacron", 600, nullptr },
+ { "Odieresis", 600, nullptr },
+ { "ucircumflex", 600, nullptr },
+ { "bracketleft", 600, nullptr },
+ { "Ugrave", 600, nullptr },
+ { "quoteright", 600, nullptr },
+ { "Udieresis", 600, nullptr },
+ { "perthousand", 600, nullptr },
+ { "Ydieresis", 600, nullptr },
+ { "umacron", 600, nullptr },
+ { "abreve", 600, nullptr },
+ { "Eacute", 600, nullptr },
+ { "adieresis", 600, nullptr },
+ { "egrave", 600, nullptr },
+ { "edieresis", 600, nullptr },
+ { "idieresis", 600, nullptr },
+ { "Eth", 600, nullptr },
+ { "ae", 600, nullptr },
+ { "asterisk", 600, nullptr },
+ { "odieresis", 600, nullptr },
+ { "Uacute", 600, nullptr },
+ { "ugrave", 600, nullptr },
+ { "five", 600, nullptr },
+ { "nine", 600, nullptr },
+ { "udieresis", 600, nullptr },
+ { "Zcaron", 600, nullptr },
+ { "Scommaaccent", 600, nullptr },
+ { "threequarters", 600, nullptr },
+ { "guillemotright", 600, nullptr },
+ { "Ccedilla", 600, nullptr },
+ { "ydieresis", 600, nullptr },
+ { "tilde", 600, nullptr },
+ { "at", 600, nullptr },
+ { "eacute", 600, nullptr },
+ { "underscore", 600, nullptr },
+ { "Euro", 600, nullptr },
+ { "Dcroat", 600, nullptr },
+ { "zero", 600, nullptr },
+ { "multiply", 600, nullptr },
+ { "eth", 600, nullptr },
+ { "Scedilla", 600, nullptr },
+ { "Racute", 600, nullptr },
+ { "Ograve", 600, nullptr },
+ { "partialdiff", 600, nullptr },
+ { "uacute", 600, nullptr },
+ { "braceleft", 600, nullptr },
+ { "Thorn", 600, nullptr },
+ { "zcaron", 600, nullptr },
+ { "scommaaccent", 600, nullptr },
+ { "ccedilla", 600, nullptr },
+ { "Dcaron", 600, nullptr },
+ { "dcroat", 600, nullptr },
+ { "scedilla", 600, nullptr },
+ { "Oacute", 600, nullptr },
+ { "Ocircumflex", 600, nullptr },
+ { "ogonek", 600, nullptr },
+ { "ograve", 600, nullptr },
+ { "racute", 600, nullptr },
+ { "Tcaron", 600, nullptr },
+ { "Eogonek", 600, nullptr },
+ { "thorn", 600, nullptr },
+ { "degree", 600, nullptr },
+ { "registered", 600, nullptr },
+ { "radical", 600, nullptr },
+ { "Aring", 600, nullptr },
+ { "percent", 600, nullptr },
+ { "six", 600, nullptr },
+ { "paragraph", 600, nullptr },
+ { "dcaron", 600, nullptr },
+ { "Uogonek", 600, nullptr },
+ { "two", 600, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 600, nullptr },
+ { "Lacute", 600, nullptr },
+ { "ocircumflex", 600, nullptr },
+ { "oacute", 600, nullptr },
+ { "Uring", 600, nullptr },
+ { "Lcommaaccent", 600, nullptr },
+ { "tcaron", 600, nullptr },
+ { "eogonek", 600, nullptr },
+ { "Delta", 600, nullptr },
+ { "Ohungarumlaut", 600, nullptr },
+ { "asciicircum", 600, nullptr },
+ { "aring", 600, nullptr },
+ { "grave", 600, nullptr },
+ { "uogonek", 600, nullptr },
+ { "bracketright", 600, nullptr },
+ { "ampersand", 600, nullptr },
+ { "Iacute", 600, nullptr },
+ { "lacute", 600, nullptr },
+ { "igrave", 600, nullptr },
+ { "Ncaron", 600, nullptr },
+ { "plus", 600, nullptr },
+ { "uring", 600, nullptr },
+ { "quotesinglbase", 600, nullptr },
+ { "lcommaaccent", 600, nullptr },
+ { "Yacute", 600, nullptr },
+ { "ohungarumlaut", 600, nullptr },
+ { "threesuperior", 600, nullptr },
+ { "acute", 600, nullptr },
+ { "section", 600, nullptr },
+ { "dieresis", 600, nullptr },
+ { "quotedblbase", 600, nullptr },
+ { "iacute", 600, nullptr },
+ { "ncaron", 600, nullptr },
+ { "florin", 600, nullptr },
+ { "yacute", 600, nullptr },
+ { "Rcommaaccent", 600, nullptr },
+ { "fi", 600, nullptr },
+ { "fl", 600, nullptr },
+ { "Acircumflex", 600, nullptr },
+ { "Cacute", 600, nullptr },
+ { "Icircumflex", 600, nullptr },
+ { "guillemotleft", 600, nullptr },
+ { "germandbls", 600, nullptr },
+ { "seven", 600, nullptr },
+ { "Amacron", 600, nullptr },
+ { "Sacute", 600, nullptr },
+ { "ordmasculine", 600, nullptr },
+ { "dotlessi", 600, nullptr },
+ { "sterling", 600, nullptr },
+ { "notequal", 600, nullptr },
+ { "Imacron", 600, nullptr },
+ { "rcommaaccent", 600, nullptr },
+ { "Zdotaccent", 600, nullptr },
+ { "acircumflex", 600, nullptr },
+ { "cacute", 600, nullptr },
+ { "Ecaron", 600, nullptr },
+ { "braceright", 600, nullptr },
+ { "icircumflex", 600, nullptr },
+ { "quotedblright", 600, nullptr },
+ { "amacron", 600, nullptr },
+ { "sacute", 600, nullptr },
+ { "imacron", 600, nullptr },
+ { "cent", 600, nullptr },
+ { "currency", 600, nullptr },
+ { "logicalnot", 600, nullptr },
+ { "zdotaccent", 600, nullptr },
+ { "Atilde", 600, nullptr },
+ { "breve", 600, nullptr },
+ { "bar", 600, nullptr },
+ { "fraction", 600, nullptr },
+ { "less", 600, nullptr },
+ { "ecaron", 600, nullptr },
+ { "guilsinglleft", 600, nullptr },
+ { "exclam", 600, nullptr },
+ { "period", 600, nullptr },
+ { "Rcaron", 600, nullptr },
+ { "Kcommaaccent", 600, nullptr },
+ { "greater", 600, nullptr },
+ { "atilde", 600, nullptr },
+ { "brokenbar", 600, nullptr },
+ { "quoteleft", 600, nullptr },
+ { "Edotaccent", 600, nullptr },
+ { "onesuperior", 600, nullptr }
};
static BuiltinFontWidth courierBoldWidthsTab[] = {
- { "Ntilde", 600, NULL },
- { "rcaron", 600, NULL },
- { "kcommaaccent", 600, NULL },
- { "Ncommaaccent", 600, NULL },
- { "Zacute", 600, NULL },
- { "comma", 600, NULL },
- { "cedilla", 600, NULL },
- { "plusminus", 600, NULL },
- { "circumflex", 600, NULL },
- { "dotaccent", 600, NULL },
- { "edotaccent", 600, NULL },
- { "asciitilde", 600, NULL },
- { "colon", 600, NULL },
- { "onehalf", 600, NULL },
- { "dollar", 600, NULL },
- { "Lcaron", 600, NULL },
- { "ntilde", 600, NULL },
- { "Aogonek", 600, NULL },
- { "ncommaaccent", 600, NULL },
- { "minus", 600, NULL },
- { "Iogonek", 600, NULL },
- { "zacute", 600, NULL },
- { "yen", 600, NULL },
- { "space", 600, NULL },
- { "Omacron", 600, NULL },
- { "questiondown", 600, NULL },
- { "emdash", 600, NULL },
- { "Agrave", 600, NULL },
- { "three", 600, NULL },
- { "numbersign", 600, NULL },
- { "lcaron", 600, NULL },
- { "A", 600, NULL },
- { "B", 600, NULL },
- { "C", 600, NULL },
- { "aogonek", 600, NULL },
- { "D", 600, NULL },
- { "E", 600, NULL },
- { "onequarter", 600, NULL },
- { "F", 600, NULL },
- { "G", 600, NULL },
- { "H", 600, NULL },
- { "I", 600, NULL },
- { "J", 600, NULL },
- { "K", 600, NULL },
- { "iogonek", 600, NULL },
- { "backslash", 600, NULL },
- { "L", 600, NULL },
- { "periodcentered", 600, NULL },
- { "M", 600, NULL },
- { "N", 600, NULL },
- { "omacron", 600, NULL },
- { "Tcommaaccent", 600, NULL },
- { "O", 600, NULL },
- { "P", 600, NULL },
- { "Q", 600, NULL },
- { "Uhungarumlaut", 600, NULL },
- { "R", 600, NULL },
- { "Aacute", 600, NULL },
- { "caron", 600, NULL },
- { "S", 600, NULL },
- { "T", 600, NULL },
- { "U", 600, NULL },
- { "agrave", 600, NULL },
- { "V", 600, NULL },
- { "W", 600, NULL },
- { "X", 600, NULL },
- { "question", 600, NULL },
- { "equal", 600, NULL },
- { "Y", 600, NULL },
- { "Z", 600, NULL },
- { "four", 600, NULL },
- { "a", 600, NULL },
- { "Gcommaaccent", 600, NULL },
- { "b", 600, NULL },
- { "c", 600, NULL },
- { "d", 600, NULL },
- { "e", 600, NULL },
- { "f", 600, NULL },
- { "g", 600, NULL },
- { "bullet", 600, NULL },
- { "h", 600, NULL },
- { "i", 600, NULL },
- { "Oslash", 600, NULL },
- { "dagger", 600, NULL },
- { "j", 600, NULL },
- { "k", 600, NULL },
- { "l", 600, NULL },
- { "m", 600, NULL },
- { "n", 600, NULL },
- { "tcommaaccent", 600, NULL },
- { "o", 600, NULL },
- { "ordfeminine", 600, NULL },
- { "ring", 600, NULL },
- { "p", 600, NULL },
- { "q", 600, NULL },
- { "uhungarumlaut", 600, NULL },
- { "r", 600, NULL },
- { "twosuperior", 600, NULL },
- { "aacute", 600, NULL },
- { "s", 600, NULL },
- { "OE", 600, NULL },
- { "t", 600, NULL },
- { "divide", 600, NULL },
- { "u", 600, NULL },
- { "Ccaron", 600, NULL },
- { "v", 600, NULL },
- { "w", 600, NULL },
- { "x", 600, NULL },
- { "y", 600, NULL },
- { "z", 600, NULL },
- { "Gbreve", 600, NULL },
- { "commaaccent", 600, NULL },
- { "hungarumlaut", 600, NULL },
- { "Idotaccent", 600, NULL },
- { "Nacute", 600, NULL },
- { "quotedbl", 600, NULL },
- { "gcommaaccent", 600, NULL },
- { "mu", 600, NULL },
- { "greaterequal", 600, NULL },
- { "Scaron", 600, NULL },
- { "Lslash", 600, NULL },
- { "semicolon", 600, NULL },
- { "oslash", 600, NULL },
- { "lessequal", 600, NULL },
- { "lozenge", 600, NULL },
- { "parenright", 600, NULL },
- { "ccaron", 600, NULL },
- { "Ecircumflex", 600, NULL },
- { "gbreve", 600, NULL },
- { "trademark", 600, NULL },
- { "daggerdbl", 600, NULL },
- { "nacute", 600, NULL },
- { "macron", 600, NULL },
- { "Otilde", 600, NULL },
- { "Emacron", 600, NULL },
- { "ellipsis", 600, NULL },
- { "scaron", 600, NULL },
- { "AE", 600, NULL },
- { "Ucircumflex", 600, NULL },
- { "lslash", 600, NULL },
- { "quotedblleft", 600, NULL },
- { "guilsinglright", 600, NULL },
- { "hyphen", 600, NULL },
- { "quotesingle", 600, NULL },
- { "eight", 600, NULL },
- { "exclamdown", 600, NULL },
- { "endash", 600, NULL },
- { "oe", 600, NULL },
- { "Abreve", 600, NULL },
- { "Umacron", 600, NULL },
- { "ecircumflex", 600, NULL },
- { "Adieresis", 600, NULL },
- { "copyright", 600, NULL },
- { "Egrave", 600, NULL },
- { "slash", 600, NULL },
- { "Edieresis", 600, NULL },
- { "otilde", 600, NULL },
- { "Idieresis", 600, NULL },
- { "parenleft", 600, NULL },
- { "one", 600, NULL },
- { "emacron", 600, NULL },
- { "Odieresis", 600, NULL },
- { "ucircumflex", 600, NULL },
- { "bracketleft", 600, NULL },
- { "Ugrave", 600, NULL },
- { "quoteright", 600, NULL },
- { "Udieresis", 600, NULL },
- { "perthousand", 600, NULL },
- { "Ydieresis", 600, NULL },
- { "umacron", 600, NULL },
- { "abreve", 600, NULL },
- { "Eacute", 600, NULL },
- { "adieresis", 600, NULL },
- { "egrave", 600, NULL },
- { "edieresis", 600, NULL },
- { "idieresis", 600, NULL },
- { "Eth", 600, NULL },
- { "ae", 600, NULL },
- { "asterisk", 600, NULL },
- { "odieresis", 600, NULL },
- { "Uacute", 600, NULL },
- { "ugrave", 600, NULL },
- { "nine", 600, NULL },
- { "five", 600, NULL },
- { "udieresis", 600, NULL },
- { "Zcaron", 600, NULL },
- { "Scommaaccent", 600, NULL },
- { "threequarters", 600, NULL },
- { "guillemotright", 600, NULL },
- { "Ccedilla", 600, NULL },
- { "ydieresis", 600, NULL },
- { "tilde", 600, NULL },
- { "at", 600, NULL },
- { "eacute", 600, NULL },
- { "underscore", 600, NULL },
- { "Euro", 600, NULL },
- { "Dcroat", 600, NULL },
- { "multiply", 600, NULL },
- { "zero", 600, NULL },
- { "eth", 600, NULL },
- { "Scedilla", 600, NULL },
- { "Ograve", 600, NULL },
- { "Racute", 600, NULL },
- { "partialdiff", 600, NULL },
- { "uacute", 600, NULL },
- { "braceleft", 600, NULL },
- { "Thorn", 600, NULL },
- { "zcaron", 600, NULL },
- { "scommaaccent", 600, NULL },
- { "ccedilla", 600, NULL },
- { "Dcaron", 600, NULL },
- { "dcroat", 600, NULL },
- { "Ocircumflex", 600, NULL },
- { "Oacute", 600, NULL },
- { "scedilla", 600, NULL },
- { "ogonek", 600, NULL },
- { "ograve", 600, NULL },
- { "racute", 600, NULL },
- { "Tcaron", 600, NULL },
- { "Eogonek", 600, NULL },
- { "thorn", 600, NULL },
- { "degree", 600, NULL },
- { "registered", 600, NULL },
- { "radical", 600, NULL },
- { "Aring", 600, NULL },
- { "percent", 600, NULL },
- { "six", 600, NULL },
- { "paragraph", 600, NULL },
- { "dcaron", 600, NULL },
- { "Uogonek", 600, NULL },
- { "two", 600, NULL },
- { "summation", 600, NULL },
- { "Igrave", 600, NULL },
- { "Lacute", 600, NULL },
- { "ocircumflex", 600, NULL },
- { "oacute", 600, NULL },
- { "Uring", 600, NULL },
- { "Lcommaaccent", 600, NULL },
- { "tcaron", 600, NULL },
- { "eogonek", 600, NULL },
- { "Delta", 600, NULL },
- { "Ohungarumlaut", 600, NULL },
- { "asciicircum", 600, NULL },
- { "aring", 600, NULL },
- { "grave", 600, NULL },
- { "uogonek", 600, NULL },
- { "bracketright", 600, NULL },
- { "Iacute", 600, NULL },
- { "ampersand", 600, NULL },
- { "igrave", 600, NULL },
- { "lacute", 600, NULL },
- { "Ncaron", 600, NULL },
- { "plus", 600, NULL },
- { "uring", 600, NULL },
- { "quotesinglbase", 600, NULL },
- { "lcommaaccent", 600, NULL },
- { "Yacute", 600, NULL },
- { "ohungarumlaut", 600, NULL },
- { "threesuperior", 600, NULL },
- { "acute", 600, NULL },
- { "section", 600, NULL },
- { "dieresis", 600, NULL },
- { "iacute", 600, NULL },
- { "quotedblbase", 600, NULL },
- { "ncaron", 600, NULL },
- { "florin", 600, NULL },
- { "yacute", 600, NULL },
- { "Rcommaaccent", 600, NULL },
- { "fi", 600, NULL },
- { "fl", 600, NULL },
- { "Acircumflex", 600, NULL },
- { "Cacute", 600, NULL },
- { "Icircumflex", 600, NULL },
- { "guillemotleft", 600, NULL },
- { "germandbls", 600, NULL },
- { "Amacron", 600, NULL },
- { "seven", 600, NULL },
- { "Sacute", 600, NULL },
- { "ordmasculine", 600, NULL },
- { "dotlessi", 600, NULL },
- { "sterling", 600, NULL },
- { "notequal", 600, NULL },
- { "Imacron", 600, NULL },
- { "rcommaaccent", 600, NULL },
- { "Zdotaccent", 600, NULL },
- { "acircumflex", 600, NULL },
- { "cacute", 600, NULL },
- { "Ecaron", 600, NULL },
- { "icircumflex", 600, NULL },
- { "braceright", 600, NULL },
- { "quotedblright", 600, NULL },
- { "amacron", 600, NULL },
- { "sacute", 600, NULL },
- { "imacron", 600, NULL },
- { "cent", 600, NULL },
- { "currency", 600, NULL },
- { "logicalnot", 600, NULL },
- { "zdotaccent", 600, NULL },
- { "Atilde", 600, NULL },
- { "breve", 600, NULL },
- { "bar", 600, NULL },
- { "fraction", 600, NULL },
- { "less", 600, NULL },
- { "ecaron", 600, NULL },
- { "guilsinglleft", 600, NULL },
- { "exclam", 600, NULL },
- { "period", 600, NULL },
- { "Rcaron", 600, NULL },
- { "Kcommaaccent", 600, NULL },
- { "greater", 600, NULL },
- { "atilde", 600, NULL },
- { "brokenbar", 600, NULL },
- { "quoteleft", 600, NULL },
- { "Edotaccent", 600, NULL },
- { "onesuperior", 600, NULL }
+ { "Ntilde", 600, nullptr },
+ { "rcaron", 600, nullptr },
+ { "kcommaaccent", 600, nullptr },
+ { "Ncommaaccent", 600, nullptr },
+ { "Zacute", 600, nullptr },
+ { "comma", 600, nullptr },
+ { "cedilla", 600, nullptr },
+ { "plusminus", 600, nullptr },
+ { "circumflex", 600, nullptr },
+ { "dotaccent", 600, nullptr },
+ { "edotaccent", 600, nullptr },
+ { "asciitilde", 600, nullptr },
+ { "colon", 600, nullptr },
+ { "onehalf", 600, nullptr },
+ { "dollar", 600, nullptr },
+ { "Lcaron", 600, nullptr },
+ { "ntilde", 600, nullptr },
+ { "Aogonek", 600, nullptr },
+ { "ncommaaccent", 600, nullptr },
+ { "minus", 600, nullptr },
+ { "Iogonek", 600, nullptr },
+ { "zacute", 600, nullptr },
+ { "yen", 600, nullptr },
+ { "space", 600, nullptr },
+ { "Omacron", 600, nullptr },
+ { "questiondown", 600, nullptr },
+ { "emdash", 600, nullptr },
+ { "Agrave", 600, nullptr },
+ { "three", 600, nullptr },
+ { "numbersign", 600, nullptr },
+ { "lcaron", 600, nullptr },
+ { "A", 600, nullptr },
+ { "B", 600, nullptr },
+ { "C", 600, nullptr },
+ { "aogonek", 600, nullptr },
+ { "D", 600, nullptr },
+ { "E", 600, nullptr },
+ { "onequarter", 600, nullptr },
+ { "F", 600, nullptr },
+ { "G", 600, nullptr },
+ { "H", 600, nullptr },
+ { "I", 600, nullptr },
+ { "J", 600, nullptr },
+ { "K", 600, nullptr },
+ { "iogonek", 600, nullptr },
+ { "backslash", 600, nullptr },
+ { "L", 600, nullptr },
+ { "periodcentered", 600, nullptr },
+ { "M", 600, nullptr },
+ { "N", 600, nullptr },
+ { "omacron", 600, nullptr },
+ { "Tcommaaccent", 600, nullptr },
+ { "O", 600, nullptr },
+ { "P", 600, nullptr },
+ { "Q", 600, nullptr },
+ { "Uhungarumlaut", 600, nullptr },
+ { "R", 600, nullptr },
+ { "Aacute", 600, nullptr },
+ { "caron", 600, nullptr },
+ { "S", 600, nullptr },
+ { "T", 600, nullptr },
+ { "U", 600, nullptr },
+ { "agrave", 600, nullptr },
+ { "V", 600, nullptr },
+ { "W", 600, nullptr },
+ { "X", 600, nullptr },
+ { "question", 600, nullptr },
+ { "equal", 600, nullptr },
+ { "Y", 600, nullptr },
+ { "Z", 600, nullptr },
+ { "four", 600, nullptr },
+ { "a", 600, nullptr },
+ { "Gcommaaccent", 600, nullptr },
+ { "b", 600, nullptr },
+ { "c", 600, nullptr },
+ { "d", 600, nullptr },
+ { "e", 600, nullptr },
+ { "f", 600, nullptr },
+ { "g", 600, nullptr },
+ { "bullet", 600, nullptr },
+ { "h", 600, nullptr },
+ { "i", 600, nullptr },
+ { "Oslash", 600, nullptr },
+ { "dagger", 600, nullptr },
+ { "j", 600, nullptr },
+ { "k", 600, nullptr },
+ { "l", 600, nullptr },
+ { "m", 600, nullptr },
+ { "n", 600, nullptr },
+ { "tcommaaccent", 600, nullptr },
+ { "o", 600, nullptr },
+ { "ordfeminine", 600, nullptr },
+ { "ring", 600, nullptr },
+ { "p", 600, nullptr },
+ { "q", 600, nullptr },
+ { "uhungarumlaut", 600, nullptr },
+ { "r", 600, nullptr },
+ { "twosuperior", 600, nullptr },
+ { "aacute", 600, nullptr },
+ { "s", 600, nullptr },
+ { "OE", 600, nullptr },
+ { "t", 600, nullptr },
+ { "divide", 600, nullptr },
+ { "u", 600, nullptr },
+ { "Ccaron", 600, nullptr },
+ { "v", 600, nullptr },
+ { "w", 600, nullptr },
+ { "x", 600, nullptr },
+ { "y", 600, nullptr },
+ { "z", 600, nullptr },
+ { "Gbreve", 600, nullptr },
+ { "commaaccent", 600, nullptr },
+ { "hungarumlaut", 600, nullptr },
+ { "Idotaccent", 600, nullptr },
+ { "Nacute", 600, nullptr },
+ { "quotedbl", 600, nullptr },
+ { "gcommaaccent", 600, nullptr },
+ { "mu", 600, nullptr },
+ { "greaterequal", 600, nullptr },
+ { "Scaron", 600, nullptr },
+ { "Lslash", 600, nullptr },
+ { "semicolon", 600, nullptr },
+ { "oslash", 600, nullptr },
+ { "lessequal", 600, nullptr },
+ { "lozenge", 600, nullptr },
+ { "parenright", 600, nullptr },
+ { "ccaron", 600, nullptr },
+ { "Ecircumflex", 600, nullptr },
+ { "gbreve", 600, nullptr },
+ { "trademark", 600, nullptr },
+ { "daggerdbl", 600, nullptr },
+ { "nacute", 600, nullptr },
+ { "macron", 600, nullptr },
+ { "Otilde", 600, nullptr },
+ { "Emacron", 600, nullptr },
+ { "ellipsis", 600, nullptr },
+ { "scaron", 600, nullptr },
+ { "AE", 600, nullptr },
+ { "Ucircumflex", 600, nullptr },
+ { "lslash", 600, nullptr },
+ { "quotedblleft", 600, nullptr },
+ { "guilsinglright", 600, nullptr },
+ { "hyphen", 600, nullptr },
+ { "quotesingle", 600, nullptr },
+ { "eight", 600, nullptr },
+ { "exclamdown", 600, nullptr },
+ { "endash", 600, nullptr },
+ { "oe", 600, nullptr },
+ { "Abreve", 600, nullptr },
+ { "Umacron", 600, nullptr },
+ { "ecircumflex", 600, nullptr },
+ { "Adieresis", 600, nullptr },
+ { "copyright", 600, nullptr },
+ { "Egrave", 600, nullptr },
+ { "slash", 600, nullptr },
+ { "Edieresis", 600, nullptr },
+ { "otilde", 600, nullptr },
+ { "Idieresis", 600, nullptr },
+ { "parenleft", 600, nullptr },
+ { "one", 600, nullptr },
+ { "emacron", 600, nullptr },
+ { "Odieresis", 600, nullptr },
+ { "ucircumflex", 600, nullptr },
+ { "bracketleft", 600, nullptr },
+ { "Ugrave", 600, nullptr },
+ { "quoteright", 600, nullptr },
+ { "Udieresis", 600, nullptr },
+ { "perthousand", 600, nullptr },
+ { "Ydieresis", 600, nullptr },
+ { "umacron", 600, nullptr },
+ { "abreve", 600, nullptr },
+ { "Eacute", 600, nullptr },
+ { "adieresis", 600, nullptr },
+ { "egrave", 600, nullptr },
+ { "edieresis", 600, nullptr },
+ { "idieresis", 600, nullptr },
+ { "Eth", 600, nullptr },
+ { "ae", 600, nullptr },
+ { "asterisk", 600, nullptr },
+ { "odieresis", 600, nullptr },
+ { "Uacute", 600, nullptr },
+ { "ugrave", 600, nullptr },
+ { "nine", 600, nullptr },
+ { "five", 600, nullptr },
+ { "udieresis", 600, nullptr },
+ { "Zcaron", 600, nullptr },
+ { "Scommaaccent", 600, nullptr },
+ { "threequarters", 600, nullptr },
+ { "guillemotright", 600, nullptr },
+ { "Ccedilla", 600, nullptr },
+ { "ydieresis", 600, nullptr },
+ { "tilde", 600, nullptr },
+ { "at", 600, nullptr },
+ { "eacute", 600, nullptr },
+ { "underscore", 600, nullptr },
+ { "Euro", 600, nullptr },
+ { "Dcroat", 600, nullptr },
+ { "multiply", 600, nullptr },
+ { "zero", 600, nullptr },
+ { "eth", 600, nullptr },
+ { "Scedilla", 600, nullptr },
+ { "Ograve", 600, nullptr },
+ { "Racute", 600, nullptr },
+ { "partialdiff", 600, nullptr },
+ { "uacute", 600, nullptr },
+ { "braceleft", 600, nullptr },
+ { "Thorn", 600, nullptr },
+ { "zcaron", 600, nullptr },
+ { "scommaaccent", 600, nullptr },
+ { "ccedilla", 600, nullptr },
+ { "Dcaron", 600, nullptr },
+ { "dcroat", 600, nullptr },
+ { "Ocircumflex", 600, nullptr },
+ { "Oacute", 600, nullptr },
+ { "scedilla", 600, nullptr },
+ { "ogonek", 600, nullptr },
+ { "ograve", 600, nullptr },
+ { "racute", 600, nullptr },
+ { "Tcaron", 600, nullptr },
+ { "Eogonek", 600, nullptr },
+ { "thorn", 600, nullptr },
+ { "degree", 600, nullptr },
+ { "registered", 600, nullptr },
+ { "radical", 600, nullptr },
+ { "Aring", 600, nullptr },
+ { "percent", 600, nullptr },
+ { "six", 600, nullptr },
+ { "paragraph", 600, nullptr },
+ { "dcaron", 600, nullptr },
+ { "Uogonek", 600, nullptr },
+ { "two", 600, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 600, nullptr },
+ { "Lacute", 600, nullptr },
+ { "ocircumflex", 600, nullptr },
+ { "oacute", 600, nullptr },
+ { "Uring", 600, nullptr },
+ { "Lcommaaccent", 600, nullptr },
+ { "tcaron", 600, nullptr },
+ { "eogonek", 600, nullptr },
+ { "Delta", 600, nullptr },
+ { "Ohungarumlaut", 600, nullptr },
+ { "asciicircum", 600, nullptr },
+ { "aring", 600, nullptr },
+ { "grave", 600, nullptr },
+ { "uogonek", 600, nullptr },
+ { "bracketright", 600, nullptr },
+ { "Iacute", 600, nullptr },
+ { "ampersand", 600, nullptr },
+ { "igrave", 600, nullptr },
+ { "lacute", 600, nullptr },
+ { "Ncaron", 600, nullptr },
+ { "plus", 600, nullptr },
+ { "uring", 600, nullptr },
+ { "quotesinglbase", 600, nullptr },
+ { "lcommaaccent", 600, nullptr },
+ { "Yacute", 600, nullptr },
+ { "ohungarumlaut", 600, nullptr },
+ { "threesuperior", 600, nullptr },
+ { "acute", 600, nullptr },
+ { "section", 600, nullptr },
+ { "dieresis", 600, nullptr },
+ { "iacute", 600, nullptr },
+ { "quotedblbase", 600, nullptr },
+ { "ncaron", 600, nullptr },
+ { "florin", 600, nullptr },
+ { "yacute", 600, nullptr },
+ { "Rcommaaccent", 600, nullptr },
+ { "fi", 600, nullptr },
+ { "fl", 600, nullptr },
+ { "Acircumflex", 600, nullptr },
+ { "Cacute", 600, nullptr },
+ { "Icircumflex", 600, nullptr },
+ { "guillemotleft", 600, nullptr },
+ { "germandbls", 600, nullptr },
+ { "Amacron", 600, nullptr },
+ { "seven", 600, nullptr },
+ { "Sacute", 600, nullptr },
+ { "ordmasculine", 600, nullptr },
+ { "dotlessi", 600, nullptr },
+ { "sterling", 600, nullptr },
+ { "notequal", 600, nullptr },
+ { "Imacron", 600, nullptr },
+ { "rcommaaccent", 600, nullptr },
+ { "Zdotaccent", 600, nullptr },
+ { "acircumflex", 600, nullptr },
+ { "cacute", 600, nullptr },
+ { "Ecaron", 600, nullptr },
+ { "icircumflex", 600, nullptr },
+ { "braceright", 600, nullptr },
+ { "quotedblright", 600, nullptr },
+ { "amacron", 600, nullptr },
+ { "sacute", 600, nullptr },
+ { "imacron", 600, nullptr },
+ { "cent", 600, nullptr },
+ { "currency", 600, nullptr },
+ { "logicalnot", 600, nullptr },
+ { "zdotaccent", 600, nullptr },
+ { "Atilde", 600, nullptr },
+ { "breve", 600, nullptr },
+ { "bar", 600, nullptr },
+ { "fraction", 600, nullptr },
+ { "less", 600, nullptr },
+ { "ecaron", 600, nullptr },
+ { "guilsinglleft", 600, nullptr },
+ { "exclam", 600, nullptr },
+ { "period", 600, nullptr },
+ { "Rcaron", 600, nullptr },
+ { "Kcommaaccent", 600, nullptr },
+ { "greater", 600, nullptr },
+ { "atilde", 600, nullptr },
+ { "brokenbar", 600, nullptr },
+ { "quoteleft", 600, nullptr },
+ { "Edotaccent", 600, nullptr },
+ { "onesuperior", 600, nullptr }
};
static BuiltinFontWidth courierBoldObliqueWidthsTab[] = {
- { "Ntilde", 600, NULL },
- { "rcaron", 600, NULL },
- { "kcommaaccent", 600, NULL },
- { "Ncommaaccent", 600, NULL },
- { "Zacute", 600, NULL },
- { "comma", 600, NULL },
- { "cedilla", 600, NULL },
- { "plusminus", 600, NULL },
- { "circumflex", 600, NULL },
- { "dotaccent", 600, NULL },
- { "edotaccent", 600, NULL },
- { "asciitilde", 600, NULL },
- { "colon", 600, NULL },
- { "onehalf", 600, NULL },
- { "dollar", 600, NULL },
- { "Lcaron", 600, NULL },
- { "ntilde", 600, NULL },
- { "Aogonek", 600, NULL },
- { "ncommaaccent", 600, NULL },
- { "minus", 600, NULL },
- { "Iogonek", 600, NULL },
- { "zacute", 600, NULL },
- { "yen", 600, NULL },
- { "space", 600, NULL },
- { "Omacron", 600, NULL },
- { "questiondown", 600, NULL },
- { "emdash", 600, NULL },
- { "Agrave", 600, NULL },
- { "three", 600, NULL },
- { "numbersign", 600, NULL },
- { "lcaron", 600, NULL },
- { "A", 600, NULL },
- { "B", 600, NULL },
- { "C", 600, NULL },
- { "aogonek", 600, NULL },
- { "D", 600, NULL },
- { "E", 600, NULL },
- { "onequarter", 600, NULL },
- { "F", 600, NULL },
- { "G", 600, NULL },
- { "H", 600, NULL },
- { "I", 600, NULL },
- { "J", 600, NULL },
- { "K", 600, NULL },
- { "iogonek", 600, NULL },
- { "backslash", 600, NULL },
- { "L", 600, NULL },
- { "periodcentered", 600, NULL },
- { "M", 600, NULL },
- { "N", 600, NULL },
- { "omacron", 600, NULL },
- { "Tcommaaccent", 600, NULL },
- { "O", 600, NULL },
- { "P", 600, NULL },
- { "Q", 600, NULL },
- { "Uhungarumlaut", 600, NULL },
- { "R", 600, NULL },
- { "Aacute", 600, NULL },
- { "caron", 600, NULL },
- { "S", 600, NULL },
- { "T", 600, NULL },
- { "U", 600, NULL },
- { "agrave", 600, NULL },
- { "V", 600, NULL },
- { "W", 600, NULL },
- { "X", 600, NULL },
- { "question", 600, NULL },
- { "equal", 600, NULL },
- { "Y", 600, NULL },
- { "Z", 600, NULL },
- { "four", 600, NULL },
- { "a", 600, NULL },
- { "Gcommaaccent", 600, NULL },
- { "b", 600, NULL },
- { "c", 600, NULL },
- { "d", 600, NULL },
- { "e", 600, NULL },
- { "f", 600, NULL },
- { "g", 600, NULL },
- { "bullet", 600, NULL },
- { "h", 600, NULL },
- { "i", 600, NULL },
- { "Oslash", 600, NULL },
- { "dagger", 600, NULL },
- { "j", 600, NULL },
- { "k", 600, NULL },
- { "l", 600, NULL },
- { "m", 600, NULL },
- { "n", 600, NULL },
- { "tcommaaccent", 600, NULL },
- { "o", 600, NULL },
- { "ordfeminine", 600, NULL },
- { "ring", 600, NULL },
- { "p", 600, NULL },
- { "q", 600, NULL },
- { "uhungarumlaut", 600, NULL },
- { "r", 600, NULL },
- { "twosuperior", 600, NULL },
- { "aacute", 600, NULL },
- { "s", 600, NULL },
- { "OE", 600, NULL },
- { "t", 600, NULL },
- { "divide", 600, NULL },
- { "u", 600, NULL },
- { "Ccaron", 600, NULL },
- { "v", 600, NULL },
- { "w", 600, NULL },
- { "x", 600, NULL },
- { "y", 600, NULL },
- { "z", 600, NULL },
- { "Gbreve", 600, NULL },
- { "commaaccent", 600, NULL },
- { "hungarumlaut", 600, NULL },
- { "Idotaccent", 600, NULL },
- { "Nacute", 600, NULL },
- { "quotedbl", 600, NULL },
- { "gcommaaccent", 600, NULL },
- { "mu", 600, NULL },
- { "greaterequal", 600, NULL },
- { "Scaron", 600, NULL },
- { "Lslash", 600, NULL },
- { "semicolon", 600, NULL },
- { "oslash", 600, NULL },
- { "lessequal", 600, NULL },
- { "lozenge", 600, NULL },
- { "parenright", 600, NULL },
- { "ccaron", 600, NULL },
- { "Ecircumflex", 600, NULL },
- { "gbreve", 600, NULL },
- { "trademark", 600, NULL },
- { "daggerdbl", 600, NULL },
- { "nacute", 600, NULL },
- { "macron", 600, NULL },
- { "Otilde", 600, NULL },
- { "Emacron", 600, NULL },
- { "ellipsis", 600, NULL },
- { "scaron", 600, NULL },
- { "AE", 600, NULL },
- { "Ucircumflex", 600, NULL },
- { "lslash", 600, NULL },
- { "quotedblleft", 600, NULL },
- { "guilsinglright", 600, NULL },
- { "hyphen", 600, NULL },
- { "quotesingle", 600, NULL },
- { "eight", 600, NULL },
- { "exclamdown", 600, NULL },
- { "endash", 600, NULL },
- { "oe", 600, NULL },
- { "Abreve", 600, NULL },
- { "Umacron", 600, NULL },
- { "ecircumflex", 600, NULL },
- { "Adieresis", 600, NULL },
- { "copyright", 600, NULL },
- { "Egrave", 600, NULL },
- { "slash", 600, NULL },
- { "Edieresis", 600, NULL },
- { "otilde", 600, NULL },
- { "Idieresis", 600, NULL },
- { "parenleft", 600, NULL },
- { "one", 600, NULL },
- { "emacron", 600, NULL },
- { "Odieresis", 600, NULL },
- { "ucircumflex", 600, NULL },
- { "bracketleft", 600, NULL },
- { "Ugrave", 600, NULL },
- { "quoteright", 600, NULL },
- { "Udieresis", 600, NULL },
- { "perthousand", 600, NULL },
- { "Ydieresis", 600, NULL },
- { "umacron", 600, NULL },
- { "abreve", 600, NULL },
- { "Eacute", 600, NULL },
- { "adieresis", 600, NULL },
- { "egrave", 600, NULL },
- { "edieresis", 600, NULL },
- { "idieresis", 600, NULL },
- { "Eth", 600, NULL },
- { "ae", 600, NULL },
- { "asterisk", 600, NULL },
- { "odieresis", 600, NULL },
- { "Uacute", 600, NULL },
- { "ugrave", 600, NULL },
- { "nine", 600, NULL },
- { "five", 600, NULL },
- { "udieresis", 600, NULL },
- { "Zcaron", 600, NULL },
- { "Scommaaccent", 600, NULL },
- { "threequarters", 600, NULL },
- { "guillemotright", 600, NULL },
- { "Ccedilla", 600, NULL },
- { "ydieresis", 600, NULL },
- { "tilde", 600, NULL },
- { "at", 600, NULL },
- { "eacute", 600, NULL },
- { "underscore", 600, NULL },
- { "Euro", 600, NULL },
- { "Dcroat", 600, NULL },
- { "multiply", 600, NULL },
- { "zero", 600, NULL },
- { "eth", 600, NULL },
- { "Scedilla", 600, NULL },
- { "Ograve", 600, NULL },
- { "Racute", 600, NULL },
- { "partialdiff", 600, NULL },
- { "uacute", 600, NULL },
- { "braceleft", 600, NULL },
- { "Thorn", 600, NULL },
- { "zcaron", 600, NULL },
- { "scommaaccent", 600, NULL },
- { "ccedilla", 600, NULL },
- { "Dcaron", 600, NULL },
- { "dcroat", 600, NULL },
- { "Ocircumflex", 600, NULL },
- { "Oacute", 600, NULL },
- { "scedilla", 600, NULL },
- { "ogonek", 600, NULL },
- { "ograve", 600, NULL },
- { "racute", 600, NULL },
- { "Tcaron", 600, NULL },
- { "Eogonek", 600, NULL },
- { "thorn", 600, NULL },
- { "degree", 600, NULL },
- { "registered", 600, NULL },
- { "radical", 600, NULL },
- { "Aring", 600, NULL },
- { "percent", 600, NULL },
- { "six", 600, NULL },
- { "paragraph", 600, NULL },
- { "dcaron", 600, NULL },
- { "Uogonek", 600, NULL },
- { "two", 600, NULL },
- { "summation", 600, NULL },
- { "Igrave", 600, NULL },
- { "Lacute", 600, NULL },
- { "ocircumflex", 600, NULL },
- { "oacute", 600, NULL },
- { "Uring", 600, NULL },
- { "Lcommaaccent", 600, NULL },
- { "tcaron", 600, NULL },
- { "eogonek", 600, NULL },
- { "Delta", 600, NULL },
- { "Ohungarumlaut", 600, NULL },
- { "asciicircum", 600, NULL },
- { "aring", 600, NULL },
- { "grave", 600, NULL },
- { "uogonek", 600, NULL },
- { "bracketright", 600, NULL },
- { "Iacute", 600, NULL },
- { "ampersand", 600, NULL },
- { "igrave", 600, NULL },
- { "lacute", 600, NULL },
- { "Ncaron", 600, NULL },
- { "plus", 600, NULL },
- { "uring", 600, NULL },
- { "quotesinglbase", 600, NULL },
- { "lcommaaccent", 600, NULL },
- { "Yacute", 600, NULL },
- { "ohungarumlaut", 600, NULL },
- { "threesuperior", 600, NULL },
- { "acute", 600, NULL },
- { "section", 600, NULL },
- { "dieresis", 600, NULL },
- { "iacute", 600, NULL },
- { "quotedblbase", 600, NULL },
- { "ncaron", 600, NULL },
- { "florin", 600, NULL },
- { "yacute", 600, NULL },
- { "Rcommaaccent", 600, NULL },
- { "fi", 600, NULL },
- { "fl", 600, NULL },
- { "Acircumflex", 600, NULL },
- { "Cacute", 600, NULL },
- { "Icircumflex", 600, NULL },
- { "guillemotleft", 600, NULL },
- { "germandbls", 600, NULL },
- { "Amacron", 600, NULL },
- { "seven", 600, NULL },
- { "Sacute", 600, NULL },
- { "ordmasculine", 600, NULL },
- { "dotlessi", 600, NULL },
- { "sterling", 600, NULL },
- { "notequal", 600, NULL },
- { "Imacron", 600, NULL },
- { "rcommaaccent", 600, NULL },
- { "Zdotaccent", 600, NULL },
- { "acircumflex", 600, NULL },
- { "cacute", 600, NULL },
- { "Ecaron", 600, NULL },
- { "icircumflex", 600, NULL },
- { "braceright", 600, NULL },
- { "quotedblright", 600, NULL },
- { "amacron", 600, NULL },
- { "sacute", 600, NULL },
- { "imacron", 600, NULL },
- { "cent", 600, NULL },
- { "currency", 600, NULL },
- { "logicalnot", 600, NULL },
- { "zdotaccent", 600, NULL },
- { "Atilde", 600, NULL },
- { "breve", 600, NULL },
- { "bar", 600, NULL },
- { "fraction", 600, NULL },
- { "less", 600, NULL },
- { "ecaron", 600, NULL },
- { "guilsinglleft", 600, NULL },
- { "exclam", 600, NULL },
- { "period", 600, NULL },
- { "Rcaron", 600, NULL },
- { "Kcommaaccent", 600, NULL },
- { "greater", 600, NULL },
- { "atilde", 600, NULL },
- { "brokenbar", 600, NULL },
- { "quoteleft", 600, NULL },
- { "Edotaccent", 600, NULL },
- { "onesuperior", 600, NULL }
+ { "Ntilde", 600, nullptr },
+ { "rcaron", 600, nullptr },
+ { "kcommaaccent", 600, nullptr },
+ { "Ncommaaccent", 600, nullptr },
+ { "Zacute", 600, nullptr },
+ { "comma", 600, nullptr },
+ { "cedilla", 600, nullptr },
+ { "plusminus", 600, nullptr },
+ { "circumflex", 600, nullptr },
+ { "dotaccent", 600, nullptr },
+ { "edotaccent", 600, nullptr },
+ { "asciitilde", 600, nullptr },
+ { "colon", 600, nullptr },
+ { "onehalf", 600, nullptr },
+ { "dollar", 600, nullptr },
+ { "Lcaron", 600, nullptr },
+ { "ntilde", 600, nullptr },
+ { "Aogonek", 600, nullptr },
+ { "ncommaaccent", 600, nullptr },
+ { "minus", 600, nullptr },
+ { "Iogonek", 600, nullptr },
+ { "zacute", 600, nullptr },
+ { "yen", 600, nullptr },
+ { "space", 600, nullptr },
+ { "Omacron", 600, nullptr },
+ { "questiondown", 600, nullptr },
+ { "emdash", 600, nullptr },
+ { "Agrave", 600, nullptr },
+ { "three", 600, nullptr },
+ { "numbersign", 600, nullptr },
+ { "lcaron", 600, nullptr },
+ { "A", 600, nullptr },
+ { "B", 600, nullptr },
+ { "C", 600, nullptr },
+ { "aogonek", 600, nullptr },
+ { "D", 600, nullptr },
+ { "E", 600, nullptr },
+ { "onequarter", 600, nullptr },
+ { "F", 600, nullptr },
+ { "G", 600, nullptr },
+ { "H", 600, nullptr },
+ { "I", 600, nullptr },
+ { "J", 600, nullptr },
+ { "K", 600, nullptr },
+ { "iogonek", 600, nullptr },
+ { "backslash", 600, nullptr },
+ { "L", 600, nullptr },
+ { "periodcentered", 600, nullptr },
+ { "M", 600, nullptr },
+ { "N", 600, nullptr },
+ { "omacron", 600, nullptr },
+ { "Tcommaaccent", 600, nullptr },
+ { "O", 600, nullptr },
+ { "P", 600, nullptr },
+ { "Q", 600, nullptr },
+ { "Uhungarumlaut", 600, nullptr },
+ { "R", 600, nullptr },
+ { "Aacute", 600, nullptr },
+ { "caron", 600, nullptr },
+ { "S", 600, nullptr },
+ { "T", 600, nullptr },
+ { "U", 600, nullptr },
+ { "agrave", 600, nullptr },
+ { "V", 600, nullptr },
+ { "W", 600, nullptr },
+ { "X", 600, nullptr },
+ { "question", 600, nullptr },
+ { "equal", 600, nullptr },
+ { "Y", 600, nullptr },
+ { "Z", 600, nullptr },
+ { "four", 600, nullptr },
+ { "a", 600, nullptr },
+ { "Gcommaaccent", 600, nullptr },
+ { "b", 600, nullptr },
+ { "c", 600, nullptr },
+ { "d", 600, nullptr },
+ { "e", 600, nullptr },
+ { "f", 600, nullptr },
+ { "g", 600, nullptr },
+ { "bullet", 600, nullptr },
+ { "h", 600, nullptr },
+ { "i", 600, nullptr },
+ { "Oslash", 600, nullptr },
+ { "dagger", 600, nullptr },
+ { "j", 600, nullptr },
+ { "k", 600, nullptr },
+ { "l", 600, nullptr },
+ { "m", 600, nullptr },
+ { "n", 600, nullptr },
+ { "tcommaaccent", 600, nullptr },
+ { "o", 600, nullptr },
+ { "ordfeminine", 600, nullptr },
+ { "ring", 600, nullptr },
+ { "p", 600, nullptr },
+ { "q", 600, nullptr },
+ { "uhungarumlaut", 600, nullptr },
+ { "r", 600, nullptr },
+ { "twosuperior", 600, nullptr },
+ { "aacute", 600, nullptr },
+ { "s", 600, nullptr },
+ { "OE", 600, nullptr },
+ { "t", 600, nullptr },
+ { "divide", 600, nullptr },
+ { "u", 600, nullptr },
+ { "Ccaron", 600, nullptr },
+ { "v", 600, nullptr },
+ { "w", 600, nullptr },
+ { "x", 600, nullptr },
+ { "y", 600, nullptr },
+ { "z", 600, nullptr },
+ { "Gbreve", 600, nullptr },
+ { "commaaccent", 600, nullptr },
+ { "hungarumlaut", 600, nullptr },
+ { "Idotaccent", 600, nullptr },
+ { "Nacute", 600, nullptr },
+ { "quotedbl", 600, nullptr },
+ { "gcommaaccent", 600, nullptr },
+ { "mu", 600, nullptr },
+ { "greaterequal", 600, nullptr },
+ { "Scaron", 600, nullptr },
+ { "Lslash", 600, nullptr },
+ { "semicolon", 600, nullptr },
+ { "oslash", 600, nullptr },
+ { "lessequal", 600, nullptr },
+ { "lozenge", 600, nullptr },
+ { "parenright", 600, nullptr },
+ { "ccaron", 600, nullptr },
+ { "Ecircumflex", 600, nullptr },
+ { "gbreve", 600, nullptr },
+ { "trademark", 600, nullptr },
+ { "daggerdbl", 600, nullptr },
+ { "nacute", 600, nullptr },
+ { "macron", 600, nullptr },
+ { "Otilde", 600, nullptr },
+ { "Emacron", 600, nullptr },
+ { "ellipsis", 600, nullptr },
+ { "scaron", 600, nullptr },
+ { "AE", 600, nullptr },
+ { "Ucircumflex", 600, nullptr },
+ { "lslash", 600, nullptr },
+ { "quotedblleft", 600, nullptr },
+ { "guilsinglright", 600, nullptr },
+ { "hyphen", 600, nullptr },
+ { "quotesingle", 600, nullptr },
+ { "eight", 600, nullptr },
+ { "exclamdown", 600, nullptr },
+ { "endash", 600, nullptr },
+ { "oe", 600, nullptr },
+ { "Abreve", 600, nullptr },
+ { "Umacron", 600, nullptr },
+ { "ecircumflex", 600, nullptr },
+ { "Adieresis", 600, nullptr },
+ { "copyright", 600, nullptr },
+ { "Egrave", 600, nullptr },
+ { "slash", 600, nullptr },
+ { "Edieresis", 600, nullptr },
+ { "otilde", 600, nullptr },
+ { "Idieresis", 600, nullptr },
+ { "parenleft", 600, nullptr },
+ { "one", 600, nullptr },
+ { "emacron", 600, nullptr },
+ { "Odieresis", 600, nullptr },
+ { "ucircumflex", 600, nullptr },
+ { "bracketleft", 600, nullptr },
+ { "Ugrave", 600, nullptr },
+ { "quoteright", 600, nullptr },
+ { "Udieresis", 600, nullptr },
+ { "perthousand", 600, nullptr },
+ { "Ydieresis", 600, nullptr },
+ { "umacron", 600, nullptr },
+ { "abreve", 600, nullptr },
+ { "Eacute", 600, nullptr },
+ { "adieresis", 600, nullptr },
+ { "egrave", 600, nullptr },
+ { "edieresis", 600, nullptr },
+ { "idieresis", 600, nullptr },
+ { "Eth", 600, nullptr },
+ { "ae", 600, nullptr },
+ { "asterisk", 600, nullptr },
+ { "odieresis", 600, nullptr },
+ { "Uacute", 600, nullptr },
+ { "ugrave", 600, nullptr },
+ { "nine", 600, nullptr },
+ { "five", 600, nullptr },
+ { "udieresis", 600, nullptr },
+ { "Zcaron", 600, nullptr },
+ { "Scommaaccent", 600, nullptr },
+ { "threequarters", 600, nullptr },
+ { "guillemotright", 600, nullptr },
+ { "Ccedilla", 600, nullptr },
+ { "ydieresis", 600, nullptr },
+ { "tilde", 600, nullptr },
+ { "at", 600, nullptr },
+ { "eacute", 600, nullptr },
+ { "underscore", 600, nullptr },
+ { "Euro", 600, nullptr },
+ { "Dcroat", 600, nullptr },
+ { "multiply", 600, nullptr },
+ { "zero", 600, nullptr },
+ { "eth", 600, nullptr },
+ { "Scedilla", 600, nullptr },
+ { "Ograve", 600, nullptr },
+ { "Racute", 600, nullptr },
+ { "partialdiff", 600, nullptr },
+ { "uacute", 600, nullptr },
+ { "braceleft", 600, nullptr },
+ { "Thorn", 600, nullptr },
+ { "zcaron", 600, nullptr },
+ { "scommaaccent", 600, nullptr },
+ { "ccedilla", 600, nullptr },
+ { "Dcaron", 600, nullptr },
+ { "dcroat", 600, nullptr },
+ { "Ocircumflex", 600, nullptr },
+ { "Oacute", 600, nullptr },
+ { "scedilla", 600, nullptr },
+ { "ogonek", 600, nullptr },
+ { "ograve", 600, nullptr },
+ { "racute", 600, nullptr },
+ { "Tcaron", 600, nullptr },
+ { "Eogonek", 600, nullptr },
+ { "thorn", 600, nullptr },
+ { "degree", 600, nullptr },
+ { "registered", 600, nullptr },
+ { "radical", 600, nullptr },
+ { "Aring", 600, nullptr },
+ { "percent", 600, nullptr },
+ { "six", 600, nullptr },
+ { "paragraph", 600, nullptr },
+ { "dcaron", 600, nullptr },
+ { "Uogonek", 600, nullptr },
+ { "two", 600, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 600, nullptr },
+ { "Lacute", 600, nullptr },
+ { "ocircumflex", 600, nullptr },
+ { "oacute", 600, nullptr },
+ { "Uring", 600, nullptr },
+ { "Lcommaaccent", 600, nullptr },
+ { "tcaron", 600, nullptr },
+ { "eogonek", 600, nullptr },
+ { "Delta", 600, nullptr },
+ { "Ohungarumlaut", 600, nullptr },
+ { "asciicircum", 600, nullptr },
+ { "aring", 600, nullptr },
+ { "grave", 600, nullptr },
+ { "uogonek", 600, nullptr },
+ { "bracketright", 600, nullptr },
+ { "Iacute", 600, nullptr },
+ { "ampersand", 600, nullptr },
+ { "igrave", 600, nullptr },
+ { "lacute", 600, nullptr },
+ { "Ncaron", 600, nullptr },
+ { "plus", 600, nullptr },
+ { "uring", 600, nullptr },
+ { "quotesinglbase", 600, nullptr },
+ { "lcommaaccent", 600, nullptr },
+ { "Yacute", 600, nullptr },
+ { "ohungarumlaut", 600, nullptr },
+ { "threesuperior", 600, nullptr },
+ { "acute", 600, nullptr },
+ { "section", 600, nullptr },
+ { "dieresis", 600, nullptr },
+ { "iacute", 600, nullptr },
+ { "quotedblbase", 600, nullptr },
+ { "ncaron", 600, nullptr },
+ { "florin", 600, nullptr },
+ { "yacute", 600, nullptr },
+ { "Rcommaaccent", 600, nullptr },
+ { "fi", 600, nullptr },
+ { "fl", 600, nullptr },
+ { "Acircumflex", 600, nullptr },
+ { "Cacute", 600, nullptr },
+ { "Icircumflex", 600, nullptr },
+ { "guillemotleft", 600, nullptr },
+ { "germandbls", 600, nullptr },
+ { "Amacron", 600, nullptr },
+ { "seven", 600, nullptr },
+ { "Sacute", 600, nullptr },
+ { "ordmasculine", 600, nullptr },
+ { "dotlessi", 600, nullptr },
+ { "sterling", 600, nullptr },
+ { "notequal", 600, nullptr },
+ { "Imacron", 600, nullptr },
+ { "rcommaaccent", 600, nullptr },
+ { "Zdotaccent", 600, nullptr },
+ { "acircumflex", 600, nullptr },
+ { "cacute", 600, nullptr },
+ { "Ecaron", 600, nullptr },
+ { "icircumflex", 600, nullptr },
+ { "braceright", 600, nullptr },
+ { "quotedblright", 600, nullptr },
+ { "amacron", 600, nullptr },
+ { "sacute", 600, nullptr },
+ { "imacron", 600, nullptr },
+ { "cent", 600, nullptr },
+ { "currency", 600, nullptr },
+ { "logicalnot", 600, nullptr },
+ { "zdotaccent", 600, nullptr },
+ { "Atilde", 600, nullptr },
+ { "breve", 600, nullptr },
+ { "bar", 600, nullptr },
+ { "fraction", 600, nullptr },
+ { "less", 600, nullptr },
+ { "ecaron", 600, nullptr },
+ { "guilsinglleft", 600, nullptr },
+ { "exclam", 600, nullptr },
+ { "period", 600, nullptr },
+ { "Rcaron", 600, nullptr },
+ { "Kcommaaccent", 600, nullptr },
+ { "greater", 600, nullptr },
+ { "atilde", 600, nullptr },
+ { "brokenbar", 600, nullptr },
+ { "quoteleft", 600, nullptr },
+ { "Edotaccent", 600, nullptr },
+ { "onesuperior", 600, nullptr }
};
static BuiltinFontWidth courierObliqueWidthsTab[] = {
- { "Ntilde", 600, NULL },
- { "rcaron", 600, NULL },
- { "kcommaaccent", 600, NULL },
- { "Ncommaaccent", 600, NULL },
- { "Zacute", 600, NULL },
- { "comma", 600, NULL },
- { "cedilla", 600, NULL },
- { "plusminus", 600, NULL },
- { "circumflex", 600, NULL },
- { "dotaccent", 600, NULL },
- { "edotaccent", 600, NULL },
- { "asciitilde", 600, NULL },
- { "colon", 600, NULL },
- { "onehalf", 600, NULL },
- { "dollar", 600, NULL },
- { "Lcaron", 600, NULL },
- { "ntilde", 600, NULL },
- { "Aogonek", 600, NULL },
- { "ncommaaccent", 600, NULL },
- { "minus", 600, NULL },
- { "Iogonek", 600, NULL },
- { "zacute", 600, NULL },
- { "yen", 600, NULL },
- { "space", 600, NULL },
- { "Omacron", 600, NULL },
- { "questiondown", 600, NULL },
- { "emdash", 600, NULL },
- { "Agrave", 600, NULL },
- { "three", 600, NULL },
- { "numbersign", 600, NULL },
- { "lcaron", 600, NULL },
- { "A", 600, NULL },
- { "B", 600, NULL },
- { "C", 600, NULL },
- { "aogonek", 600, NULL },
- { "D", 600, NULL },
- { "E", 600, NULL },
- { "onequarter", 600, NULL },
- { "F", 600, NULL },
- { "G", 600, NULL },
- { "H", 600, NULL },
- { "I", 600, NULL },
- { "J", 600, NULL },
- { "K", 600, NULL },
- { "iogonek", 600, NULL },
- { "backslash", 600, NULL },
- { "L", 600, NULL },
- { "periodcentered", 600, NULL },
- { "M", 600, NULL },
- { "N", 600, NULL },
- { "omacron", 600, NULL },
- { "Tcommaaccent", 600, NULL },
- { "O", 600, NULL },
- { "P", 600, NULL },
- { "Q", 600, NULL },
- { "Uhungarumlaut", 600, NULL },
- { "R", 600, NULL },
- { "Aacute", 600, NULL },
- { "caron", 600, NULL },
- { "S", 600, NULL },
- { "T", 600, NULL },
- { "U", 600, NULL },
- { "agrave", 600, NULL },
- { "V", 600, NULL },
- { "W", 600, NULL },
- { "X", 600, NULL },
- { "question", 600, NULL },
- { "equal", 600, NULL },
- { "Y", 600, NULL },
- { "Z", 600, NULL },
- { "four", 600, NULL },
- { "a", 600, NULL },
- { "Gcommaaccent", 600, NULL },
- { "b", 600, NULL },
- { "c", 600, NULL },
- { "d", 600, NULL },
- { "e", 600, NULL },
- { "f", 600, NULL },
- { "g", 600, NULL },
- { "bullet", 600, NULL },
- { "h", 600, NULL },
- { "i", 600, NULL },
- { "Oslash", 600, NULL },
- { "dagger", 600, NULL },
- { "j", 600, NULL },
- { "k", 600, NULL },
- { "l", 600, NULL },
- { "m", 600, NULL },
- { "n", 600, NULL },
- { "tcommaaccent", 600, NULL },
- { "o", 600, NULL },
- { "ordfeminine", 600, NULL },
- { "ring", 600, NULL },
- { "p", 600, NULL },
- { "q", 600, NULL },
- { "uhungarumlaut", 600, NULL },
- { "r", 600, NULL },
- { "twosuperior", 600, NULL },
- { "aacute", 600, NULL },
- { "s", 600, NULL },
- { "OE", 600, NULL },
- { "t", 600, NULL },
- { "divide", 600, NULL },
- { "u", 600, NULL },
- { "Ccaron", 600, NULL },
- { "v", 600, NULL },
- { "w", 600, NULL },
- { "x", 600, NULL },
- { "y", 600, NULL },
- { "z", 600, NULL },
- { "Gbreve", 600, NULL },
- { "commaaccent", 600, NULL },
- { "hungarumlaut", 600, NULL },
- { "Idotaccent", 600, NULL },
- { "Nacute", 600, NULL },
- { "quotedbl", 600, NULL },
- { "gcommaaccent", 600, NULL },
- { "mu", 600, NULL },
- { "greaterequal", 600, NULL },
- { "Scaron", 600, NULL },
- { "Lslash", 600, NULL },
- { "semicolon", 600, NULL },
- { "oslash", 600, NULL },
- { "lessequal", 600, NULL },
- { "lozenge", 600, NULL },
- { "parenright", 600, NULL },
- { "ccaron", 600, NULL },
- { "Ecircumflex", 600, NULL },
- { "gbreve", 600, NULL },
- { "trademark", 600, NULL },
- { "daggerdbl", 600, NULL },
- { "nacute", 600, NULL },
- { "macron", 600, NULL },
- { "Otilde", 600, NULL },
- { "Emacron", 600, NULL },
- { "ellipsis", 600, NULL },
- { "scaron", 600, NULL },
- { "AE", 600, NULL },
- { "Ucircumflex", 600, NULL },
- { "lslash", 600, NULL },
- { "quotedblleft", 600, NULL },
- { "guilsinglright", 600, NULL },
- { "hyphen", 600, NULL },
- { "quotesingle", 600, NULL },
- { "eight", 600, NULL },
- { "exclamdown", 600, NULL },
- { "endash", 600, NULL },
- { "oe", 600, NULL },
- { "Abreve", 600, NULL },
- { "Umacron", 600, NULL },
- { "ecircumflex", 600, NULL },
- { "Adieresis", 600, NULL },
- { "copyright", 600, NULL },
- { "Egrave", 600, NULL },
- { "slash", 600, NULL },
- { "Edieresis", 600, NULL },
- { "otilde", 600, NULL },
- { "Idieresis", 600, NULL },
- { "parenleft", 600, NULL },
- { "one", 600, NULL },
- { "emacron", 600, NULL },
- { "Odieresis", 600, NULL },
- { "ucircumflex", 600, NULL },
- { "bracketleft", 600, NULL },
- { "Ugrave", 600, NULL },
- { "quoteright", 600, NULL },
- { "Udieresis", 600, NULL },
- { "perthousand", 600, NULL },
- { "Ydieresis", 600, NULL },
- { "umacron", 600, NULL },
- { "abreve", 600, NULL },
- { "Eacute", 600, NULL },
- { "adieresis", 600, NULL },
- { "egrave", 600, NULL },
- { "edieresis", 600, NULL },
- { "idieresis", 600, NULL },
- { "Eth", 600, NULL },
- { "ae", 600, NULL },
- { "asterisk", 600, NULL },
- { "odieresis", 600, NULL },
- { "Uacute", 600, NULL },
- { "ugrave", 600, NULL },
- { "nine", 600, NULL },
- { "five", 600, NULL },
- { "udieresis", 600, NULL },
- { "Zcaron", 600, NULL },
- { "Scommaaccent", 600, NULL },
- { "threequarters", 600, NULL },
- { "guillemotright", 600, NULL },
- { "Ccedilla", 600, NULL },
- { "ydieresis", 600, NULL },
- { "tilde", 600, NULL },
- { "at", 600, NULL },
- { "eacute", 600, NULL },
- { "underscore", 600, NULL },
- { "Euro", 600, NULL },
- { "Dcroat", 600, NULL },
- { "multiply", 600, NULL },
- { "zero", 600, NULL },
- { "eth", 600, NULL },
- { "Scedilla", 600, NULL },
- { "Ograve", 600, NULL },
- { "Racute", 600, NULL },
- { "partialdiff", 600, NULL },
- { "uacute", 600, NULL },
- { "braceleft", 600, NULL },
- { "Thorn", 600, NULL },
- { "zcaron", 600, NULL },
- { "scommaaccent", 600, NULL },
- { "ccedilla", 600, NULL },
- { "Dcaron", 600, NULL },
- { "dcroat", 600, NULL },
- { "Ocircumflex", 600, NULL },
- { "Oacute", 600, NULL },
- { "scedilla", 600, NULL },
- { "ogonek", 600, NULL },
- { "ograve", 600, NULL },
- { "racute", 600, NULL },
- { "Tcaron", 600, NULL },
- { "Eogonek", 600, NULL },
- { "thorn", 600, NULL },
- { "degree", 600, NULL },
- { "registered", 600, NULL },
- { "radical", 600, NULL },
- { "Aring", 600, NULL },
- { "percent", 600, NULL },
- { "six", 600, NULL },
- { "paragraph", 600, NULL },
- { "dcaron", 600, NULL },
- { "Uogonek", 600, NULL },
- { "two", 600, NULL },
- { "summation", 600, NULL },
- { "Igrave", 600, NULL },
- { "Lacute", 600, NULL },
- { "ocircumflex", 600, NULL },
- { "oacute", 600, NULL },
- { "Uring", 600, NULL },
- { "Lcommaaccent", 600, NULL },
- { "tcaron", 600, NULL },
- { "eogonek", 600, NULL },
- { "Delta", 600, NULL },
- { "Ohungarumlaut", 600, NULL },
- { "asciicircum", 600, NULL },
- { "aring", 600, NULL },
- { "grave", 600, NULL },
- { "uogonek", 600, NULL },
- { "bracketright", 600, NULL },
- { "Iacute", 600, NULL },
- { "ampersand", 600, NULL },
- { "igrave", 600, NULL },
- { "lacute", 600, NULL },
- { "Ncaron", 600, NULL },
- { "plus", 600, NULL },
- { "uring", 600, NULL },
- { "quotesinglbase", 600, NULL },
- { "lcommaaccent", 600, NULL },
- { "Yacute", 600, NULL },
- { "ohungarumlaut", 600, NULL },
- { "threesuperior", 600, NULL },
- { "acute", 600, NULL },
- { "section", 600, NULL },
- { "dieresis", 600, NULL },
- { "iacute", 600, NULL },
- { "quotedblbase", 600, NULL },
- { "ncaron", 600, NULL },
- { "florin", 600, NULL },
- { "yacute", 600, NULL },
- { "Rcommaaccent", 600, NULL },
- { "fi", 600, NULL },
- { "fl", 600, NULL },
- { "Acircumflex", 600, NULL },
- { "Cacute", 600, NULL },
- { "Icircumflex", 600, NULL },
- { "guillemotleft", 600, NULL },
- { "germandbls", 600, NULL },
- { "Amacron", 600, NULL },
- { "seven", 600, NULL },
- { "Sacute", 600, NULL },
- { "ordmasculine", 600, NULL },
- { "dotlessi", 600, NULL },
- { "sterling", 600, NULL },
- { "notequal", 600, NULL },
- { "Imacron", 600, NULL },
- { "rcommaaccent", 600, NULL },
- { "Zdotaccent", 600, NULL },
- { "acircumflex", 600, NULL },
- { "cacute", 600, NULL },
- { "Ecaron", 600, NULL },
- { "icircumflex", 600, NULL },
- { "braceright", 600, NULL },
- { "quotedblright", 600, NULL },
- { "amacron", 600, NULL },
- { "sacute", 600, NULL },
- { "imacron", 600, NULL },
- { "cent", 600, NULL },
- { "currency", 600, NULL },
- { "logicalnot", 600, NULL },
- { "zdotaccent", 600, NULL },
- { "Atilde", 600, NULL },
- { "breve", 600, NULL },
- { "bar", 600, NULL },
- { "fraction", 600, NULL },
- { "less", 600, NULL },
- { "ecaron", 600, NULL },
- { "guilsinglleft", 600, NULL },
- { "exclam", 600, NULL },
- { "period", 600, NULL },
- { "Rcaron", 600, NULL },
- { "Kcommaaccent", 600, NULL },
- { "greater", 600, NULL },
- { "atilde", 600, NULL },
- { "brokenbar", 600, NULL },
- { "quoteleft", 600, NULL },
- { "Edotaccent", 600, NULL },
- { "onesuperior", 600, NULL }
+ { "Ntilde", 600, nullptr },
+ { "rcaron", 600, nullptr },
+ { "kcommaaccent", 600, nullptr },
+ { "Ncommaaccent", 600, nullptr },
+ { "Zacute", 600, nullptr },
+ { "comma", 600, nullptr },
+ { "cedilla", 600, nullptr },
+ { "plusminus", 600, nullptr },
+ { "circumflex", 600, nullptr },
+ { "dotaccent", 600, nullptr },
+ { "edotaccent", 600, nullptr },
+ { "asciitilde", 600, nullptr },
+ { "colon", 600, nullptr },
+ { "onehalf", 600, nullptr },
+ { "dollar", 600, nullptr },
+ { "Lcaron", 600, nullptr },
+ { "ntilde", 600, nullptr },
+ { "Aogonek", 600, nullptr },
+ { "ncommaaccent", 600, nullptr },
+ { "minus", 600, nullptr },
+ { "Iogonek", 600, nullptr },
+ { "zacute", 600, nullptr },
+ { "yen", 600, nullptr },
+ { "space", 600, nullptr },
+ { "Omacron", 600, nullptr },
+ { "questiondown", 600, nullptr },
+ { "emdash", 600, nullptr },
+ { "Agrave", 600, nullptr },
+ { "three", 600, nullptr },
+ { "numbersign", 600, nullptr },
+ { "lcaron", 600, nullptr },
+ { "A", 600, nullptr },
+ { "B", 600, nullptr },
+ { "C", 600, nullptr },
+ { "aogonek", 600, nullptr },
+ { "D", 600, nullptr },
+ { "E", 600, nullptr },
+ { "onequarter", 600, nullptr },
+ { "F", 600, nullptr },
+ { "G", 600, nullptr },
+ { "H", 600, nullptr },
+ { "I", 600, nullptr },
+ { "J", 600, nullptr },
+ { "K", 600, nullptr },
+ { "iogonek", 600, nullptr },
+ { "backslash", 600, nullptr },
+ { "L", 600, nullptr },
+ { "periodcentered", 600, nullptr },
+ { "M", 600, nullptr },
+ { "N", 600, nullptr },
+ { "omacron", 600, nullptr },
+ { "Tcommaaccent", 600, nullptr },
+ { "O", 600, nullptr },
+ { "P", 600, nullptr },
+ { "Q", 600, nullptr },
+ { "Uhungarumlaut", 600, nullptr },
+ { "R", 600, nullptr },
+ { "Aacute", 600, nullptr },
+ { "caron", 600, nullptr },
+ { "S", 600, nullptr },
+ { "T", 600, nullptr },
+ { "U", 600, nullptr },
+ { "agrave", 600, nullptr },
+ { "V", 600, nullptr },
+ { "W", 600, nullptr },
+ { "X", 600, nullptr },
+ { "question", 600, nullptr },
+ { "equal", 600, nullptr },
+ { "Y", 600, nullptr },
+ { "Z", 600, nullptr },
+ { "four", 600, nullptr },
+ { "a", 600, nullptr },
+ { "Gcommaaccent", 600, nullptr },
+ { "b", 600, nullptr },
+ { "c", 600, nullptr },
+ { "d", 600, nullptr },
+ { "e", 600, nullptr },
+ { "f", 600, nullptr },
+ { "g", 600, nullptr },
+ { "bullet", 600, nullptr },
+ { "h", 600, nullptr },
+ { "i", 600, nullptr },
+ { "Oslash", 600, nullptr },
+ { "dagger", 600, nullptr },
+ { "j", 600, nullptr },
+ { "k", 600, nullptr },
+ { "l", 600, nullptr },
+ { "m", 600, nullptr },
+ { "n", 600, nullptr },
+ { "tcommaaccent", 600, nullptr },
+ { "o", 600, nullptr },
+ { "ordfeminine", 600, nullptr },
+ { "ring", 600, nullptr },
+ { "p", 600, nullptr },
+ { "q", 600, nullptr },
+ { "uhungarumlaut", 600, nullptr },
+ { "r", 600, nullptr },
+ { "twosuperior", 600, nullptr },
+ { "aacute", 600, nullptr },
+ { "s", 600, nullptr },
+ { "OE", 600, nullptr },
+ { "t", 600, nullptr },
+ { "divide", 600, nullptr },
+ { "u", 600, nullptr },
+ { "Ccaron", 600, nullptr },
+ { "v", 600, nullptr },
+ { "w", 600, nullptr },
+ { "x", 600, nullptr },
+ { "y", 600, nullptr },
+ { "z", 600, nullptr },
+ { "Gbreve", 600, nullptr },
+ { "commaaccent", 600, nullptr },
+ { "hungarumlaut", 600, nullptr },
+ { "Idotaccent", 600, nullptr },
+ { "Nacute", 600, nullptr },
+ { "quotedbl", 600, nullptr },
+ { "gcommaaccent", 600, nullptr },
+ { "mu", 600, nullptr },
+ { "greaterequal", 600, nullptr },
+ { "Scaron", 600, nullptr },
+ { "Lslash", 600, nullptr },
+ { "semicolon", 600, nullptr },
+ { "oslash", 600, nullptr },
+ { "lessequal", 600, nullptr },
+ { "lozenge", 600, nullptr },
+ { "parenright", 600, nullptr },
+ { "ccaron", 600, nullptr },
+ { "Ecircumflex", 600, nullptr },
+ { "gbreve", 600, nullptr },
+ { "trademark", 600, nullptr },
+ { "daggerdbl", 600, nullptr },
+ { "nacute", 600, nullptr },
+ { "macron", 600, nullptr },
+ { "Otilde", 600, nullptr },
+ { "Emacron", 600, nullptr },
+ { "ellipsis", 600, nullptr },
+ { "scaron", 600, nullptr },
+ { "AE", 600, nullptr },
+ { "Ucircumflex", 600, nullptr },
+ { "lslash", 600, nullptr },
+ { "quotedblleft", 600, nullptr },
+ { "guilsinglright", 600, nullptr },
+ { "hyphen", 600, nullptr },
+ { "quotesingle", 600, nullptr },
+ { "eight", 600, nullptr },
+ { "exclamdown", 600, nullptr },
+ { "endash", 600, nullptr },
+ { "oe", 600, nullptr },
+ { "Abreve", 600, nullptr },
+ { "Umacron", 600, nullptr },
+ { "ecircumflex", 600, nullptr },
+ { "Adieresis", 600, nullptr },
+ { "copyright", 600, nullptr },
+ { "Egrave", 600, nullptr },
+ { "slash", 600, nullptr },
+ { "Edieresis", 600, nullptr },
+ { "otilde", 600, nullptr },
+ { "Idieresis", 600, nullptr },
+ { "parenleft", 600, nullptr },
+ { "one", 600, nullptr },
+ { "emacron", 600, nullptr },
+ { "Odieresis", 600, nullptr },
+ { "ucircumflex", 600, nullptr },
+ { "bracketleft", 600, nullptr },
+ { "Ugrave", 600, nullptr },
+ { "quoteright", 600, nullptr },
+ { "Udieresis", 600, nullptr },
+ { "perthousand", 600, nullptr },
+ { "Ydieresis", 600, nullptr },
+ { "umacron", 600, nullptr },
+ { "abreve", 600, nullptr },
+ { "Eacute", 600, nullptr },
+ { "adieresis", 600, nullptr },
+ { "egrave", 600, nullptr },
+ { "edieresis", 600, nullptr },
+ { "idieresis", 600, nullptr },
+ { "Eth", 600, nullptr },
+ { "ae", 600, nullptr },
+ { "asterisk", 600, nullptr },
+ { "odieresis", 600, nullptr },
+ { "Uacute", 600, nullptr },
+ { "ugrave", 600, nullptr },
+ { "nine", 600, nullptr },
+ { "five", 600, nullptr },
+ { "udieresis", 600, nullptr },
+ { "Zcaron", 600, nullptr },
+ { "Scommaaccent", 600, nullptr },
+ { "threequarters", 600, nullptr },
+ { "guillemotright", 600, nullptr },
+ { "Ccedilla", 600, nullptr },
+ { "ydieresis", 600, nullptr },
+ { "tilde", 600, nullptr },
+ { "at", 600, nullptr },
+ { "eacute", 600, nullptr },
+ { "underscore", 600, nullptr },
+ { "Euro", 600, nullptr },
+ { "Dcroat", 600, nullptr },
+ { "multiply", 600, nullptr },
+ { "zero", 600, nullptr },
+ { "eth", 600, nullptr },
+ { "Scedilla", 600, nullptr },
+ { "Ograve", 600, nullptr },
+ { "Racute", 600, nullptr },
+ { "partialdiff", 600, nullptr },
+ { "uacute", 600, nullptr },
+ { "braceleft", 600, nullptr },
+ { "Thorn", 600, nullptr },
+ { "zcaron", 600, nullptr },
+ { "scommaaccent", 600, nullptr },
+ { "ccedilla", 600, nullptr },
+ { "Dcaron", 600, nullptr },
+ { "dcroat", 600, nullptr },
+ { "Ocircumflex", 600, nullptr },
+ { "Oacute", 600, nullptr },
+ { "scedilla", 600, nullptr },
+ { "ogonek", 600, nullptr },
+ { "ograve", 600, nullptr },
+ { "racute", 600, nullptr },
+ { "Tcaron", 600, nullptr },
+ { "Eogonek", 600, nullptr },
+ { "thorn", 600, nullptr },
+ { "degree", 600, nullptr },
+ { "registered", 600, nullptr },
+ { "radical", 600, nullptr },
+ { "Aring", 600, nullptr },
+ { "percent", 600, nullptr },
+ { "six", 600, nullptr },
+ { "paragraph", 600, nullptr },
+ { "dcaron", 600, nullptr },
+ { "Uogonek", 600, nullptr },
+ { "two", 600, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 600, nullptr },
+ { "Lacute", 600, nullptr },
+ { "ocircumflex", 600, nullptr },
+ { "oacute", 600, nullptr },
+ { "Uring", 600, nullptr },
+ { "Lcommaaccent", 600, nullptr },
+ { "tcaron", 600, nullptr },
+ { "eogonek", 600, nullptr },
+ { "Delta", 600, nullptr },
+ { "Ohungarumlaut", 600, nullptr },
+ { "asciicircum", 600, nullptr },
+ { "aring", 600, nullptr },
+ { "grave", 600, nullptr },
+ { "uogonek", 600, nullptr },
+ { "bracketright", 600, nullptr },
+ { "Iacute", 600, nullptr },
+ { "ampersand", 600, nullptr },
+ { "igrave", 600, nullptr },
+ { "lacute", 600, nullptr },
+ { "Ncaron", 600, nullptr },
+ { "plus", 600, nullptr },
+ { "uring", 600, nullptr },
+ { "quotesinglbase", 600, nullptr },
+ { "lcommaaccent", 600, nullptr },
+ { "Yacute", 600, nullptr },
+ { "ohungarumlaut", 600, nullptr },
+ { "threesuperior", 600, nullptr },
+ { "acute", 600, nullptr },
+ { "section", 600, nullptr },
+ { "dieresis", 600, nullptr },
+ { "iacute", 600, nullptr },
+ { "quotedblbase", 600, nullptr },
+ { "ncaron", 600, nullptr },
+ { "florin", 600, nullptr },
+ { "yacute", 600, nullptr },
+ { "Rcommaaccent", 600, nullptr },
+ { "fi", 600, nullptr },
+ { "fl", 600, nullptr },
+ { "Acircumflex", 600, nullptr },
+ { "Cacute", 600, nullptr },
+ { "Icircumflex", 600, nullptr },
+ { "guillemotleft", 600, nullptr },
+ { "germandbls", 600, nullptr },
+ { "Amacron", 600, nullptr },
+ { "seven", 600, nullptr },
+ { "Sacute", 600, nullptr },
+ { "ordmasculine", 600, nullptr },
+ { "dotlessi", 600, nullptr },
+ { "sterling", 600, nullptr },
+ { "notequal", 600, nullptr },
+ { "Imacron", 600, nullptr },
+ { "rcommaaccent", 600, nullptr },
+ { "Zdotaccent", 600, nullptr },
+ { "acircumflex", 600, nullptr },
+ { "cacute", 600, nullptr },
+ { "Ecaron", 600, nullptr },
+ { "icircumflex", 600, nullptr },
+ { "braceright", 600, nullptr },
+ { "quotedblright", 600, nullptr },
+ { "amacron", 600, nullptr },
+ { "sacute", 600, nullptr },
+ { "imacron", 600, nullptr },
+ { "cent", 600, nullptr },
+ { "currency", 600, nullptr },
+ { "logicalnot", 600, nullptr },
+ { "zdotaccent", 600, nullptr },
+ { "Atilde", 600, nullptr },
+ { "breve", 600, nullptr },
+ { "bar", 600, nullptr },
+ { "fraction", 600, nullptr },
+ { "less", 600, nullptr },
+ { "ecaron", 600, nullptr },
+ { "guilsinglleft", 600, nullptr },
+ { "exclam", 600, nullptr },
+ { "period", 600, nullptr },
+ { "Rcaron", 600, nullptr },
+ { "Kcommaaccent", 600, nullptr },
+ { "greater", 600, nullptr },
+ { "atilde", 600, nullptr },
+ { "brokenbar", 600, nullptr },
+ { "quoteleft", 600, nullptr },
+ { "Edotaccent", 600, nullptr },
+ { "onesuperior", 600, nullptr }
};
static BuiltinFontWidth helveticaWidthsTab[] = {
- { "Ntilde", 722, NULL },
- { "rcaron", 333, NULL },
- { "kcommaaccent", 500, NULL },
- { "Ncommaaccent", 722, NULL },
- { "Zacute", 611, NULL },
- { "comma", 278, NULL },
- { "cedilla", 333, NULL },
- { "plusminus", 584, NULL },
- { "circumflex", 333, NULL },
- { "dotaccent", 333, NULL },
- { "edotaccent", 556, NULL },
- { "asciitilde", 584, NULL },
- { "colon", 278, NULL },
- { "onehalf", 834, NULL },
- { "dollar", 556, NULL },
- { "Lcaron", 556, NULL },
- { "ntilde", 556, NULL },
- { "Aogonek", 667, NULL },
- { "ncommaaccent", 556, NULL },
- { "minus", 584, NULL },
- { "Iogonek", 278, NULL },
- { "zacute", 500, NULL },
- { "yen", 556, NULL },
- { "space", 278, NULL },
- { "Omacron", 778, NULL },
- { "questiondown", 611, NULL },
- { "emdash", 1000, NULL },
- { "Agrave", 667, NULL },
- { "three", 556, NULL },
- { "numbersign", 556, NULL },
- { "lcaron", 299, NULL },
- { "A", 667, NULL },
- { "B", 667, NULL },
- { "C", 722, NULL },
- { "aogonek", 556, NULL },
- { "D", 722, NULL },
- { "E", 667, NULL },
- { "onequarter", 834, NULL },
- { "F", 611, NULL },
- { "G", 778, NULL },
- { "H", 722, NULL },
- { "I", 278, NULL },
- { "J", 500, NULL },
- { "K", 667, NULL },
- { "iogonek", 222, NULL },
- { "backslash", 278, NULL },
- { "L", 556, NULL },
- { "periodcentered", 278, NULL },
- { "M", 833, NULL },
- { "N", 722, NULL },
- { "omacron", 556, NULL },
- { "Tcommaaccent", 611, NULL },
- { "O", 778, NULL },
- { "P", 667, NULL },
- { "Q", 778, NULL },
- { "Uhungarumlaut", 722, NULL },
- { "R", 722, NULL },
- { "Aacute", 667, NULL },
- { "caron", 333, NULL },
- { "S", 667, NULL },
- { "T", 611, NULL },
- { "U", 722, NULL },
- { "agrave", 556, NULL },
- { "V", 667, NULL },
- { "W", 944, NULL },
- { "X", 667, NULL },
- { "question", 556, NULL },
- { "equal", 584, NULL },
- { "Y", 667, NULL },
- { "Z", 611, NULL },
- { "four", 556, NULL },
- { "a", 556, NULL },
- { "Gcommaaccent", 778, NULL },
- { "b", 556, NULL },
- { "c", 500, NULL },
- { "d", 556, NULL },
- { "e", 556, NULL },
- { "f", 278, NULL },
- { "g", 556, NULL },
- { "bullet", 350, NULL },
- { "h", 556, NULL },
- { "i", 222, NULL },
- { "Oslash", 778, NULL },
- { "dagger", 556, NULL },
- { "j", 222, NULL },
- { "k", 500, NULL },
- { "l", 222, NULL },
- { "m", 833, NULL },
- { "n", 556, NULL },
- { "tcommaaccent", 278, NULL },
- { "o", 556, NULL },
- { "ordfeminine", 370, NULL },
- { "ring", 333, NULL },
- { "p", 556, NULL },
- { "q", 556, NULL },
- { "uhungarumlaut", 556, NULL },
- { "r", 333, NULL },
- { "twosuperior", 333, NULL },
- { "aacute", 556, NULL },
- { "s", 500, NULL },
- { "OE", 1000, NULL },
- { "t", 278, NULL },
- { "divide", 584, NULL },
- { "u", 556, NULL },
- { "Ccaron", 722, NULL },
- { "v", 500, NULL },
- { "w", 722, NULL },
- { "x", 500, NULL },
- { "y", 500, NULL },
- { "z", 500, NULL },
- { "Gbreve", 778, NULL },
- { "commaaccent", 250, NULL },
- { "hungarumlaut", 333, NULL },
- { "Idotaccent", 278, NULL },
- { "Nacute", 722, NULL },
- { "quotedbl", 355, NULL },
- { "gcommaaccent", 556, NULL },
- { "mu", 556, NULL },
- { "greaterequal", 549, NULL },
- { "Scaron", 667, NULL },
- { "Lslash", 556, NULL },
- { "semicolon", 278, NULL },
- { "oslash", 611, NULL },
- { "lessequal", 549, NULL },
- { "lozenge", 471, NULL },
- { "parenright", 333, NULL },
- { "ccaron", 500, NULL },
- { "Ecircumflex", 667, NULL },
- { "gbreve", 556, NULL },
- { "trademark", 1000, NULL },
- { "daggerdbl", 556, NULL },
- { "nacute", 556, NULL },
- { "macron", 333, NULL },
- { "Otilde", 778, NULL },
- { "Emacron", 667, NULL },
- { "ellipsis", 1000, NULL },
- { "scaron", 500, NULL },
- { "AE", 1000, NULL },
- { "Ucircumflex", 722, NULL },
- { "lslash", 222, NULL },
- { "quotedblleft", 333, NULL },
- { "guilsinglright", 333, NULL },
- { "hyphen", 333, NULL },
- { "quotesingle", 191, NULL },
- { "eight", 556, NULL },
- { "exclamdown", 333, NULL },
- { "endash", 556, NULL },
- { "oe", 944, NULL },
- { "Abreve", 667, NULL },
- { "Umacron", 722, NULL },
- { "ecircumflex", 556, NULL },
- { "Adieresis", 667, NULL },
- { "copyright", 737, NULL },
- { "Egrave", 667, NULL },
- { "slash", 278, NULL },
- { "Edieresis", 667, NULL },
- { "otilde", 556, NULL },
- { "Idieresis", 278, NULL },
- { "parenleft", 333, NULL },
- { "one", 556, NULL },
- { "emacron", 556, NULL },
- { "Odieresis", 778, NULL },
- { "ucircumflex", 556, NULL },
- { "bracketleft", 278, NULL },
- { "Ugrave", 722, NULL },
- { "quoteright", 222, NULL },
- { "Udieresis", 722, NULL },
- { "perthousand", 1000, NULL },
- { "Ydieresis", 667, NULL },
- { "umacron", 556, NULL },
- { "abreve", 556, NULL },
- { "Eacute", 667, NULL },
- { "adieresis", 556, NULL },
- { "egrave", 556, NULL },
- { "edieresis", 556, NULL },
- { "idieresis", 278, NULL },
- { "Eth", 722, NULL },
- { "ae", 889, NULL },
- { "asterisk", 389, NULL },
- { "odieresis", 556, NULL },
- { "Uacute", 722, NULL },
- { "ugrave", 556, NULL },
- { "nine", 556, NULL },
- { "five", 556, NULL },
- { "udieresis", 556, NULL },
- { "Zcaron", 611, NULL },
- { "Scommaaccent", 667, NULL },
- { "threequarters", 834, NULL },
- { "guillemotright", 556, NULL },
- { "Ccedilla", 722, NULL },
- { "ydieresis", 500, NULL },
- { "tilde", 333, NULL },
- { "at", 1015, NULL },
- { "eacute", 556, NULL },
- { "underscore", 556, NULL },
- { "Euro", 556, NULL },
- { "Dcroat", 722, NULL },
- { "multiply", 584, NULL },
- { "zero", 556, NULL },
- { "eth", 556, NULL },
- { "Scedilla", 667, NULL },
- { "Ograve", 778, NULL },
- { "Racute", 722, NULL },
- { "partialdiff", 476, NULL },
- { "uacute", 556, NULL },
- { "braceleft", 334, NULL },
- { "Thorn", 667, NULL },
- { "zcaron", 500, NULL },
- { "scommaaccent", 500, NULL },
- { "ccedilla", 500, NULL },
- { "Dcaron", 722, NULL },
- { "dcroat", 556, NULL },
- { "Ocircumflex", 778, NULL },
- { "Oacute", 778, NULL },
- { "scedilla", 500, NULL },
- { "ogonek", 333, NULL },
- { "ograve", 556, NULL },
- { "racute", 333, NULL },
- { "Tcaron", 611, NULL },
- { "Eogonek", 667, NULL },
- { "thorn", 556, NULL },
- { "degree", 400, NULL },
- { "registered", 737, NULL },
- { "radical", 453, NULL },
- { "Aring", 667, NULL },
- { "percent", 889, NULL },
- { "six", 556, NULL },
- { "paragraph", 537, NULL },
- { "dcaron", 643, NULL },
- { "Uogonek", 722, NULL },
- { "two", 556, NULL },
- { "summation", 600, NULL },
- { "Igrave", 278, NULL },
- { "Lacute", 556, NULL },
- { "ocircumflex", 556, NULL },
- { "oacute", 556, NULL },
- { "Uring", 722, NULL },
- { "Lcommaaccent", 556, NULL },
- { "tcaron", 317, NULL },
- { "eogonek", 556, NULL },
- { "Delta", 612, NULL },
- { "Ohungarumlaut", 778, NULL },
- { "asciicircum", 469, NULL },
- { "aring", 556, NULL },
- { "grave", 333, NULL },
- { "uogonek", 556, NULL },
- { "bracketright", 278, NULL },
- { "Iacute", 278, NULL },
- { "ampersand", 667, NULL },
- { "igrave", 278, NULL },
- { "lacute", 222, NULL },
- { "Ncaron", 722, NULL },
- { "plus", 584, NULL },
- { "uring", 556, NULL },
- { "quotesinglbase", 222, NULL },
- { "lcommaaccent", 222, NULL },
- { "Yacute", 667, NULL },
- { "ohungarumlaut", 556, NULL },
- { "threesuperior", 333, NULL },
- { "acute", 333, NULL },
- { "section", 556, NULL },
- { "dieresis", 333, NULL },
- { "iacute", 278, NULL },
- { "quotedblbase", 333, NULL },
- { "ncaron", 556, NULL },
- { "florin", 556, NULL },
- { "yacute", 500, NULL },
- { "Rcommaaccent", 722, NULL },
- { "fi", 500, NULL },
- { "fl", 500, NULL },
- { "Acircumflex", 667, NULL },
- { "Cacute", 722, NULL },
- { "Icircumflex", 278, NULL },
- { "guillemotleft", 556, NULL },
- { "germandbls", 611, NULL },
- { "Amacron", 667, NULL },
- { "seven", 556, NULL },
- { "Sacute", 667, NULL },
- { "ordmasculine", 365, NULL },
- { "dotlessi", 278, NULL },
- { "sterling", 556, NULL },
- { "notequal", 549, NULL },
- { "Imacron", 278, NULL },
- { "rcommaaccent", 333, NULL },
- { "Zdotaccent", 611, NULL },
- { "acircumflex", 556, NULL },
- { "cacute", 500, NULL },
- { "Ecaron", 667, NULL },
- { "icircumflex", 278, NULL },
- { "braceright", 334, NULL },
- { "quotedblright", 333, NULL },
- { "amacron", 556, NULL },
- { "sacute", 500, NULL },
- { "imacron", 278, NULL },
- { "cent", 556, NULL },
- { "currency", 556, NULL },
- { "logicalnot", 584, NULL },
- { "zdotaccent", 500, NULL },
- { "Atilde", 667, NULL },
- { "breve", 333, NULL },
- { "bar", 260, NULL },
- { "fraction", 167, NULL },
- { "less", 584, NULL },
- { "ecaron", 556, NULL },
- { "guilsinglleft", 333, NULL },
- { "exclam", 278, NULL },
- { "period", 278, NULL },
- { "Rcaron", 722, NULL },
- { "Kcommaaccent", 667, NULL },
- { "greater", 584, NULL },
- { "atilde", 556, NULL },
- { "brokenbar", 260, NULL },
- { "quoteleft", 222, NULL },
- { "Edotaccent", 667, NULL },
- { "onesuperior", 333, NULL }
+ { "Ntilde", 722, nullptr },
+ { "rcaron", 333, nullptr },
+ { "kcommaaccent", 500, nullptr },
+ { "Ncommaaccent", 722, nullptr },
+ { "Zacute", 611, nullptr },
+ { "comma", 278, nullptr },
+ { "cedilla", 333, nullptr },
+ { "plusminus", 584, nullptr },
+ { "circumflex", 333, nullptr },
+ { "dotaccent", 333, nullptr },
+ { "edotaccent", 556, nullptr },
+ { "asciitilde", 584, nullptr },
+ { "colon", 278, nullptr },
+ { "onehalf", 834, nullptr },
+ { "dollar", 556, nullptr },
+ { "Lcaron", 556, nullptr },
+ { "ntilde", 556, nullptr },
+ { "Aogonek", 667, nullptr },
+ { "ncommaaccent", 556, nullptr },
+ { "minus", 584, nullptr },
+ { "Iogonek", 278, nullptr },
+ { "zacute", 500, nullptr },
+ { "yen", 556, nullptr },
+ { "space", 278, nullptr },
+ { "Omacron", 778, nullptr },
+ { "questiondown", 611, nullptr },
+ { "emdash", 1000, nullptr },
+ { "Agrave", 667, nullptr },
+ { "three", 556, nullptr },
+ { "numbersign", 556, nullptr },
+ { "lcaron", 299, nullptr },
+ { "A", 667, nullptr },
+ { "B", 667, nullptr },
+ { "C", 722, nullptr },
+ { "aogonek", 556, nullptr },
+ { "D", 722, nullptr },
+ { "E", 667, nullptr },
+ { "onequarter", 834, nullptr },
+ { "F", 611, nullptr },
+ { "G", 778, nullptr },
+ { "H", 722, nullptr },
+ { "I", 278, nullptr },
+ { "J", 500, nullptr },
+ { "K", 667, nullptr },
+ { "iogonek", 222, nullptr },
+ { "backslash", 278, nullptr },
+ { "L", 556, nullptr },
+ { "periodcentered", 278, nullptr },
+ { "M", 833, nullptr },
+ { "N", 722, nullptr },
+ { "omacron", 556, nullptr },
+ { "Tcommaaccent", 611, nullptr },
+ { "O", 778, nullptr },
+ { "P", 667, nullptr },
+ { "Q", 778, nullptr },
+ { "Uhungarumlaut", 722, nullptr },
+ { "R", 722, nullptr },
+ { "Aacute", 667, nullptr },
+ { "caron", 333, nullptr },
+ { "S", 667, nullptr },
+ { "T", 611, nullptr },
+ { "U", 722, nullptr },
+ { "agrave", 556, nullptr },
+ { "V", 667, nullptr },
+ { "W", 944, nullptr },
+ { "X", 667, nullptr },
+ { "question", 556, nullptr },
+ { "equal", 584, nullptr },
+ { "Y", 667, nullptr },
+ { "Z", 611, nullptr },
+ { "four", 556, nullptr },
+ { "a", 556, nullptr },
+ { "Gcommaaccent", 778, nullptr },
+ { "b", 556, nullptr },
+ { "c", 500, nullptr },
+ { "d", 556, nullptr },
+ { "e", 556, nullptr },
+ { "f", 278, nullptr },
+ { "g", 556, nullptr },
+ { "bullet", 350, nullptr },
+ { "h", 556, nullptr },
+ { "i", 222, nullptr },
+ { "Oslash", 778, nullptr },
+ { "dagger", 556, nullptr },
+ { "j", 222, nullptr },
+ { "k", 500, nullptr },
+ { "l", 222, nullptr },
+ { "m", 833, nullptr },
+ { "n", 556, nullptr },
+ { "tcommaaccent", 278, nullptr },
+ { "o", 556, nullptr },
+ { "ordfeminine", 370, nullptr },
+ { "ring", 333, nullptr },
+ { "p", 556, nullptr },
+ { "q", 556, nullptr },
+ { "uhungarumlaut", 556, nullptr },
+ { "r", 333, nullptr },
+ { "twosuperior", 333, nullptr },
+ { "aacute", 556, nullptr },
+ { "s", 500, nullptr },
+ { "OE", 1000, nullptr },
+ { "t", 278, nullptr },
+ { "divide", 584, nullptr },
+ { "u", 556, nullptr },
+ { "Ccaron", 722, nullptr },
+ { "v", 500, nullptr },
+ { "w", 722, nullptr },
+ { "x", 500, nullptr },
+ { "y", 500, nullptr },
+ { "z", 500, nullptr },
+ { "Gbreve", 778, nullptr },
+ { "commaaccent", 250, nullptr },
+ { "hungarumlaut", 333, nullptr },
+ { "Idotaccent", 278, nullptr },
+ { "Nacute", 722, nullptr },
+ { "quotedbl", 355, nullptr },
+ { "gcommaaccent", 556, nullptr },
+ { "mu", 556, nullptr },
+ { "greaterequal", 549, nullptr },
+ { "Scaron", 667, nullptr },
+ { "Lslash", 556, nullptr },
+ { "semicolon", 278, nullptr },
+ { "oslash", 611, nullptr },
+ { "lessequal", 549, nullptr },
+ { "lozenge", 471, nullptr },
+ { "parenright", 333, nullptr },
+ { "ccaron", 500, nullptr },
+ { "Ecircumflex", 667, nullptr },
+ { "gbreve", 556, nullptr },
+ { "trademark", 1000, nullptr },
+ { "daggerdbl", 556, nullptr },
+ { "nacute", 556, nullptr },
+ { "macron", 333, nullptr },
+ { "Otilde", 778, nullptr },
+ { "Emacron", 667, nullptr },
+ { "ellipsis", 1000, nullptr },
+ { "scaron", 500, nullptr },
+ { "AE", 1000, nullptr },
+ { "Ucircumflex", 722, nullptr },
+ { "lslash", 222, nullptr },
+ { "quotedblleft", 333, nullptr },
+ { "guilsinglright", 333, nullptr },
+ { "hyphen", 333, nullptr },
+ { "quotesingle", 191, nullptr },
+ { "eight", 556, nullptr },
+ { "exclamdown", 333, nullptr },
+ { "endash", 556, nullptr },
+ { "oe", 944, nullptr },
+ { "Abreve", 667, nullptr },
+ { "Umacron", 722, nullptr },
+ { "ecircumflex", 556, nullptr },
+ { "Adieresis", 667, nullptr },
+ { "copyright", 737, nullptr },
+ { "Egrave", 667, nullptr },
+ { "slash", 278, nullptr },
+ { "Edieresis", 667, nullptr },
+ { "otilde", 556, nullptr },
+ { "Idieresis", 278, nullptr },
+ { "parenleft", 333, nullptr },
+ { "one", 556, nullptr },
+ { "emacron", 556, nullptr },
+ { "Odieresis", 778, nullptr },
+ { "ucircumflex", 556, nullptr },
+ { "bracketleft", 278, nullptr },
+ { "Ugrave", 722, nullptr },
+ { "quoteright", 222, nullptr },
+ { "Udieresis", 722, nullptr },
+ { "perthousand", 1000, nullptr },
+ { "Ydieresis", 667, nullptr },
+ { "umacron", 556, nullptr },
+ { "abreve", 556, nullptr },
+ { "Eacute", 667, nullptr },
+ { "adieresis", 556, nullptr },
+ { "egrave", 556, nullptr },
+ { "edieresis", 556, nullptr },
+ { "idieresis", 278, nullptr },
+ { "Eth", 722, nullptr },
+ { "ae", 889, nullptr },
+ { "asterisk", 389, nullptr },
+ { "odieresis", 556, nullptr },
+ { "Uacute", 722, nullptr },
+ { "ugrave", 556, nullptr },
+ { "nine", 556, nullptr },
+ { "five", 556, nullptr },
+ { "udieresis", 556, nullptr },
+ { "Zcaron", 611, nullptr },
+ { "Scommaaccent", 667, nullptr },
+ { "threequarters", 834, nullptr },
+ { "guillemotright", 556, nullptr },
+ { "Ccedilla", 722, nullptr },
+ { "ydieresis", 500, nullptr },
+ { "tilde", 333, nullptr },
+ { "at", 1015, nullptr },
+ { "eacute", 556, nullptr },
+ { "underscore", 556, nullptr },
+ { "Euro", 556, nullptr },
+ { "Dcroat", 722, nullptr },
+ { "multiply", 584, nullptr },
+ { "zero", 556, nullptr },
+ { "eth", 556, nullptr },
+ { "Scedilla", 667, nullptr },
+ { "Ograve", 778, nullptr },
+ { "Racute", 722, nullptr },
+ { "partialdiff", 476, nullptr },
+ { "uacute", 556, nullptr },
+ { "braceleft", 334, nullptr },
+ { "Thorn", 667, nullptr },
+ { "zcaron", 500, nullptr },
+ { "scommaaccent", 500, nullptr },
+ { "ccedilla", 500, nullptr },
+ { "Dcaron", 722, nullptr },
+ { "dcroat", 556, nullptr },
+ { "Ocircumflex", 778, nullptr },
+ { "Oacute", 778, nullptr },
+ { "scedilla", 500, nullptr },
+ { "ogonek", 333, nullptr },
+ { "ograve", 556, nullptr },
+ { "racute", 333, nullptr },
+ { "Tcaron", 611, nullptr },
+ { "Eogonek", 667, nullptr },
+ { "thorn", 556, nullptr },
+ { "degree", 400, nullptr },
+ { "registered", 737, nullptr },
+ { "radical", 453, nullptr },
+ { "Aring", 667, nullptr },
+ { "percent", 889, nullptr },
+ { "six", 556, nullptr },
+ { "paragraph", 537, nullptr },
+ { "dcaron", 643, nullptr },
+ { "Uogonek", 722, nullptr },
+ { "two", 556, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 278, nullptr },
+ { "Lacute", 556, nullptr },
+ { "ocircumflex", 556, nullptr },
+ { "oacute", 556, nullptr },
+ { "Uring", 722, nullptr },
+ { "Lcommaaccent", 556, nullptr },
+ { "tcaron", 317, nullptr },
+ { "eogonek", 556, nullptr },
+ { "Delta", 612, nullptr },
+ { "Ohungarumlaut", 778, nullptr },
+ { "asciicircum", 469, nullptr },
+ { "aring", 556, nullptr },
+ { "grave", 333, nullptr },
+ { "uogonek", 556, nullptr },
+ { "bracketright", 278, nullptr },
+ { "Iacute", 278, nullptr },
+ { "ampersand", 667, nullptr },
+ { "igrave", 278, nullptr },
+ { "lacute", 222, nullptr },
+ { "Ncaron", 722, nullptr },
+ { "plus", 584, nullptr },
+ { "uring", 556, nullptr },
+ { "quotesinglbase", 222, nullptr },
+ { "lcommaaccent", 222, nullptr },
+ { "Yacute", 667, nullptr },
+ { "ohungarumlaut", 556, nullptr },
+ { "threesuperior", 333, nullptr },
+ { "acute", 333, nullptr },
+ { "section", 556, nullptr },
+ { "dieresis", 333, nullptr },
+ { "iacute", 278, nullptr },
+ { "quotedblbase", 333, nullptr },
+ { "ncaron", 556, nullptr },
+ { "florin", 556, nullptr },
+ { "yacute", 500, nullptr },
+ { "Rcommaaccent", 722, nullptr },
+ { "fi", 500, nullptr },
+ { "fl", 500, nullptr },
+ { "Acircumflex", 667, nullptr },
+ { "Cacute", 722, nullptr },
+ { "Icircumflex", 278, nullptr },
+ { "guillemotleft", 556, nullptr },
+ { "germandbls", 611, nullptr },
+ { "Amacron", 667, nullptr },
+ { "seven", 556, nullptr },
+ { "Sacute", 667, nullptr },
+ { "ordmasculine", 365, nullptr },
+ { "dotlessi", 278, nullptr },
+ { "sterling", 556, nullptr },
+ { "notequal", 549, nullptr },
+ { "Imacron", 278, nullptr },
+ { "rcommaaccent", 333, nullptr },
+ { "Zdotaccent", 611, nullptr },
+ { "acircumflex", 556, nullptr },
+ { "cacute", 500, nullptr },
+ { "Ecaron", 667, nullptr },
+ { "icircumflex", 278, nullptr },
+ { "braceright", 334, nullptr },
+ { "quotedblright", 333, nullptr },
+ { "amacron", 556, nullptr },
+ { "sacute", 500, nullptr },
+ { "imacron", 278, nullptr },
+ { "cent", 556, nullptr },
+ { "currency", 556, nullptr },
+ { "logicalnot", 584, nullptr },
+ { "zdotaccent", 500, nullptr },
+ { "Atilde", 667, nullptr },
+ { "breve", 333, nullptr },
+ { "bar", 260, nullptr },
+ { "fraction", 167, nullptr },
+ { "less", 584, nullptr },
+ { "ecaron", 556, nullptr },
+ { "guilsinglleft", 333, nullptr },
+ { "exclam", 278, nullptr },
+ { "period", 278, nullptr },
+ { "Rcaron", 722, nullptr },
+ { "Kcommaaccent", 667, nullptr },
+ { "greater", 584, nullptr },
+ { "atilde", 556, nullptr },
+ { "brokenbar", 260, nullptr },
+ { "quoteleft", 222, nullptr },
+ { "Edotaccent", 667, nullptr },
+ { "onesuperior", 333, nullptr }
};
static BuiltinFontWidth helveticaBoldWidthsTab[] = {
- { "Ntilde", 722, NULL },
- { "rcaron", 389, NULL },
- { "kcommaaccent", 556, NULL },
- { "Ncommaaccent", 722, NULL },
- { "Zacute", 611, NULL },
- { "comma", 278, NULL },
- { "cedilla", 333, NULL },
- { "plusminus", 584, NULL },
- { "circumflex", 333, NULL },
- { "dotaccent", 333, NULL },
- { "edotaccent", 556, NULL },
- { "asciitilde", 584, NULL },
- { "colon", 333, NULL },
- { "onehalf", 834, NULL },
- { "dollar", 556, NULL },
- { "Lcaron", 611, NULL },
- { "ntilde", 611, NULL },
- { "Aogonek", 722, NULL },
- { "ncommaaccent", 611, NULL },
- { "minus", 584, NULL },
- { "Iogonek", 278, NULL },
- { "zacute", 500, NULL },
- { "yen", 556, NULL },
- { "space", 278, NULL },
- { "Omacron", 778, NULL },
- { "questiondown", 611, NULL },
- { "emdash", 1000, NULL },
- { "Agrave", 722, NULL },
- { "three", 556, NULL },
- { "numbersign", 556, NULL },
- { "lcaron", 400, NULL },
- { "A", 722, NULL },
- { "B", 722, NULL },
- { "C", 722, NULL },
- { "aogonek", 556, NULL },
- { "D", 722, NULL },
- { "E", 667, NULL },
- { "onequarter", 834, NULL },
- { "F", 611, NULL },
- { "G", 778, NULL },
- { "H", 722, NULL },
- { "I", 278, NULL },
- { "J", 556, NULL },
- { "K", 722, NULL },
- { "iogonek", 278, NULL },
- { "backslash", 278, NULL },
- { "L", 611, NULL },
- { "periodcentered", 278, NULL },
- { "M", 833, NULL },
- { "N", 722, NULL },
- { "omacron", 611, NULL },
- { "Tcommaaccent", 611, NULL },
- { "O", 778, NULL },
- { "P", 667, NULL },
- { "Q", 778, NULL },
- { "Uhungarumlaut", 722, NULL },
- { "R", 722, NULL },
- { "Aacute", 722, NULL },
- { "caron", 333, NULL },
- { "S", 667, NULL },
- { "T", 611, NULL },
- { "U", 722, NULL },
- { "agrave", 556, NULL },
- { "V", 667, NULL },
- { "W", 944, NULL },
- { "X", 667, NULL },
- { "question", 611, NULL },
- { "equal", 584, NULL },
- { "Y", 667, NULL },
- { "Z", 611, NULL },
- { "four", 556, NULL },
- { "a", 556, NULL },
- { "Gcommaaccent", 778, NULL },
- { "b", 611, NULL },
- { "c", 556, NULL },
- { "d", 611, NULL },
- { "e", 556, NULL },
- { "f", 333, NULL },
- { "g", 611, NULL },
- { "bullet", 350, NULL },
- { "h", 611, NULL },
- { "i", 278, NULL },
- { "Oslash", 778, NULL },
- { "dagger", 556, NULL },
- { "j", 278, NULL },
- { "k", 556, NULL },
- { "l", 278, NULL },
- { "m", 889, NULL },
- { "n", 611, NULL },
- { "tcommaaccent", 333, NULL },
- { "o", 611, NULL },
- { "ordfeminine", 370, NULL },
- { "ring", 333, NULL },
- { "p", 611, NULL },
- { "q", 611, NULL },
- { "uhungarumlaut", 611, NULL },
- { "r", 389, NULL },
- { "twosuperior", 333, NULL },
- { "aacute", 556, NULL },
- { "s", 556, NULL },
- { "OE", 1000, NULL },
- { "t", 333, NULL },
- { "divide", 584, NULL },
- { "u", 611, NULL },
- { "Ccaron", 722, NULL },
- { "v", 556, NULL },
- { "w", 778, NULL },
- { "x", 556, NULL },
- { "y", 556, NULL },
- { "z", 500, NULL },
- { "Gbreve", 778, NULL },
- { "commaaccent", 250, NULL },
- { "hungarumlaut", 333, NULL },
- { "Idotaccent", 278, NULL },
- { "Nacute", 722, NULL },
- { "quotedbl", 474, NULL },
- { "gcommaaccent", 611, NULL },
- { "mu", 611, NULL },
- { "greaterequal", 549, NULL },
- { "Scaron", 667, NULL },
- { "Lslash", 611, NULL },
- { "semicolon", 333, NULL },
- { "oslash", 611, NULL },
- { "lessequal", 549, NULL },
- { "lozenge", 494, NULL },
- { "parenright", 333, NULL },
- { "ccaron", 556, NULL },
- { "Ecircumflex", 667, NULL },
- { "gbreve", 611, NULL },
- { "trademark", 1000, NULL },
- { "daggerdbl", 556, NULL },
- { "nacute", 611, NULL },
- { "macron", 333, NULL },
- { "Otilde", 778, NULL },
- { "Emacron", 667, NULL },
- { "ellipsis", 1000, NULL },
- { "scaron", 556, NULL },
- { "AE", 1000, NULL },
- { "Ucircumflex", 722, NULL },
- { "lslash", 278, NULL },
- { "quotedblleft", 500, NULL },
- { "guilsinglright", 333, NULL },
- { "hyphen", 333, NULL },
- { "quotesingle", 238, NULL },
- { "eight", 556, NULL },
- { "exclamdown", 333, NULL },
- { "endash", 556, NULL },
- { "oe", 944, NULL },
- { "Abreve", 722, NULL },
- { "Umacron", 722, NULL },
- { "ecircumflex", 556, NULL },
- { "Adieresis", 722, NULL },
- { "copyright", 737, NULL },
- { "Egrave", 667, NULL },
- { "slash", 278, NULL },
- { "Edieresis", 667, NULL },
- { "otilde", 611, NULL },
- { "Idieresis", 278, NULL },
- { "parenleft", 333, NULL },
- { "one", 556, NULL },
- { "emacron", 556, NULL },
- { "Odieresis", 778, NULL },
- { "ucircumflex", 611, NULL },
- { "bracketleft", 333, NULL },
- { "Ugrave", 722, NULL },
- { "quoteright", 278, NULL },
- { "Udieresis", 722, NULL },
- { "perthousand", 1000, NULL },
- { "Ydieresis", 667, NULL },
- { "umacron", 611, NULL },
- { "abreve", 556, NULL },
- { "Eacute", 667, NULL },
- { "adieresis", 556, NULL },
- { "egrave", 556, NULL },
- { "edieresis", 556, NULL },
- { "idieresis", 278, NULL },
- { "Eth", 722, NULL },
- { "ae", 889, NULL },
- { "asterisk", 389, NULL },
- { "odieresis", 611, NULL },
- { "Uacute", 722, NULL },
- { "ugrave", 611, NULL },
- { "nine", 556, NULL },
- { "five", 556, NULL },
- { "udieresis", 611, NULL },
- { "Zcaron", 611, NULL },
- { "Scommaaccent", 667, NULL },
- { "threequarters", 834, NULL },
- { "guillemotright", 556, NULL },
- { "Ccedilla", 722, NULL },
- { "ydieresis", 556, NULL },
- { "tilde", 333, NULL },
- { "dbldaggerumlaut", 556, NULL },
- { "at", 975, NULL },
- { "eacute", 556, NULL },
- { "underscore", 556, NULL },
- { "Euro", 556, NULL },
- { "Dcroat", 722, NULL },
- { "multiply", 584, NULL },
- { "zero", 556, NULL },
- { "eth", 611, NULL },
- { "Scedilla", 667, NULL },
- { "Ograve", 778, NULL },
- { "Racute", 722, NULL },
- { "partialdiff", 494, NULL },
- { "uacute", 611, NULL },
- { "braceleft", 389, NULL },
- { "Thorn", 667, NULL },
- { "zcaron", 500, NULL },
- { "scommaaccent", 556, NULL },
- { "ccedilla", 556, NULL },
- { "Dcaron", 722, NULL },
- { "dcroat", 611, NULL },
- { "Ocircumflex", 778, NULL },
- { "Oacute", 778, NULL },
- { "scedilla", 556, NULL },
- { "ogonek", 333, NULL },
- { "ograve", 611, NULL },
- { "racute", 389, NULL },
- { "Tcaron", 611, NULL },
- { "Eogonek", 667, NULL },
- { "thorn", 611, NULL },
- { "degree", 400, NULL },
- { "registered", 737, NULL },
- { "radical", 549, NULL },
- { "Aring", 722, NULL },
- { "percent", 889, NULL },
- { "six", 556, NULL },
- { "paragraph", 556, NULL },
- { "dcaron", 743, NULL },
- { "Uogonek", 722, NULL },
- { "two", 556, NULL },
- { "summation", 600, NULL },
- { "Igrave", 278, NULL },
- { "Lacute", 611, NULL },
- { "ocircumflex", 611, NULL },
- { "oacute", 611, NULL },
- { "Uring", 722, NULL },
- { "Lcommaaccent", 611, NULL },
- { "tcaron", 389, NULL },
- { "eogonek", 556, NULL },
- { "Delta", 612, NULL },
- { "Ohungarumlaut", 778, NULL },
- { "asciicircum", 584, NULL },
- { "aring", 556, NULL },
- { "grave", 333, NULL },
- { "uogonek", 611, NULL },
- { "bracketright", 333, NULL },
- { "Iacute", 278, NULL },
- { "ampersand", 722, NULL },
- { "igrave", 278, NULL },
- { "lacute", 278, NULL },
- { "Ncaron", 722, NULL },
- { "plus", 584, NULL },
- { "uring", 611, NULL },
- { "quotesinglbase", 278, NULL },
- { "lcommaaccent", 278, NULL },
- { "Yacute", 667, NULL },
- { "ohungarumlaut", 611, NULL },
- { "threesuperior", 333, NULL },
- { "acute", 333, NULL },
- { "section", 556, NULL },
- { "dieresis", 333, NULL },
- { "iacute", 278, NULL },
- { "quotedblbase", 500, NULL },
- { "ncaron", 611, NULL },
- { "florin", 556, NULL },
- { "yacute", 556, NULL },
- { "Rcommaaccent", 722, NULL },
- { "fi", 611, NULL },
- { "fl", 611, NULL },
- { "Acircumflex", 722, NULL },
- { "Cacute", 722, NULL },
- { "Icircumflex", 278, NULL },
- { "guillemotleft", 556, NULL },
- { "germandbls", 611, NULL },
- { "Amacron", 722, NULL },
- { "seven", 556, NULL },
- { "Sacute", 667, NULL },
- { "ordmasculine", 365, NULL },
- { "dotlessi", 278, NULL },
- { "sterling", 556, NULL },
- { "notequal", 549, NULL },
- { "Imacron", 278, NULL },
- { "rcommaaccent", 389, NULL },
- { "Zdotaccent", 611, NULL },
- { "acircumflex", 556, NULL },
- { "cacute", 556, NULL },
- { "Ecaron", 667, NULL },
- { "icircumflex", 278, NULL },
- { "braceright", 389, NULL },
- { "quotedblright", 500, NULL },
- { "amacron", 556, NULL },
- { "sacute", 556, NULL },
- { "imacron", 278, NULL },
- { "cent", 556, NULL },
- { "currency", 556, NULL },
- { "logicalnot", 584, NULL },
- { "zdotaccent", 500, NULL },
- { "Atilde", 722, NULL },
- { "breve", 333, NULL },
- { "bar", 280, NULL },
- { "fraction", 167, NULL },
- { "less", 584, NULL },
- { "ecaron", 556, NULL },
- { "guilsinglleft", 333, NULL },
- { "exclam", 333, NULL },
- { "period", 278, NULL },
- { "Rcaron", 722, NULL },
- { "Kcommaaccent", 722, NULL },
- { "greater", 584, NULL },
- { "atilde", 556, NULL },
- { "brokenbar", 280, NULL },
- { "quoteleft", 278, NULL },
- { "Edotaccent", 667, NULL },
- { "onesuperior", 333, NULL }
+ { "Ntilde", 722, nullptr },
+ { "rcaron", 389, nullptr },
+ { "kcommaaccent", 556, nullptr },
+ { "Ncommaaccent", 722, nullptr },
+ { "Zacute", 611, nullptr },
+ { "comma", 278, nullptr },
+ { "cedilla", 333, nullptr },
+ { "plusminus", 584, nullptr },
+ { "circumflex", 333, nullptr },
+ { "dotaccent", 333, nullptr },
+ { "edotaccent", 556, nullptr },
+ { "asciitilde", 584, nullptr },
+ { "colon", 333, nullptr },
+ { "onehalf", 834, nullptr },
+ { "dollar", 556, nullptr },
+ { "Lcaron", 611, nullptr },
+ { "ntilde", 611, nullptr },
+ { "Aogonek", 722, nullptr },
+ { "ncommaaccent", 611, nullptr },
+ { "minus", 584, nullptr },
+ { "Iogonek", 278, nullptr },
+ { "zacute", 500, nullptr },
+ { "yen", 556, nullptr },
+ { "space", 278, nullptr },
+ { "Omacron", 778, nullptr },
+ { "questiondown", 611, nullptr },
+ { "emdash", 1000, nullptr },
+ { "Agrave", 722, nullptr },
+ { "three", 556, nullptr },
+ { "numbersign", 556, nullptr },
+ { "lcaron", 400, nullptr },
+ { "A", 722, nullptr },
+ { "B", 722, nullptr },
+ { "C", 722, nullptr },
+ { "aogonek", 556, nullptr },
+ { "D", 722, nullptr },
+ { "E", 667, nullptr },
+ { "onequarter", 834, nullptr },
+ { "F", 611, nullptr },
+ { "G", 778, nullptr },
+ { "H", 722, nullptr },
+ { "I", 278, nullptr },
+ { "J", 556, nullptr },
+ { "K", 722, nullptr },
+ { "iogonek", 278, nullptr },
+ { "backslash", 278, nullptr },
+ { "L", 611, nullptr },
+ { "periodcentered", 278, nullptr },
+ { "M", 833, nullptr },
+ { "N", 722, nullptr },
+ { "omacron", 611, nullptr },
+ { "Tcommaaccent", 611, nullptr },
+ { "O", 778, nullptr },
+ { "P", 667, nullptr },
+ { "Q", 778, nullptr },
+ { "Uhungarumlaut", 722, nullptr },
+ { "R", 722, nullptr },
+ { "Aacute", 722, nullptr },
+ { "caron", 333, nullptr },
+ { "S", 667, nullptr },
+ { "T", 611, nullptr },
+ { "U", 722, nullptr },
+ { "agrave", 556, nullptr },
+ { "V", 667, nullptr },
+ { "W", 944, nullptr },
+ { "X", 667, nullptr },
+ { "question", 611, nullptr },
+ { "equal", 584, nullptr },
+ { "Y", 667, nullptr },
+ { "Z", 611, nullptr },
+ { "four", 556, nullptr },
+ { "a", 556, nullptr },
+ { "Gcommaaccent", 778, nullptr },
+ { "b", 611, nullptr },
+ { "c", 556, nullptr },
+ { "d", 611, nullptr },
+ { "e", 556, nullptr },
+ { "f", 333, nullptr },
+ { "g", 611, nullptr },
+ { "bullet", 350, nullptr },
+ { "h", 611, nullptr },
+ { "i", 278, nullptr },
+ { "Oslash", 778, nullptr },
+ { "dagger", 556, nullptr },
+ { "j", 278, nullptr },
+ { "k", 556, nullptr },
+ { "l", 278, nullptr },
+ { "m", 889, nullptr },
+ { "n", 611, nullptr },
+ { "tcommaaccent", 333, nullptr },
+ { "o", 611, nullptr },
+ { "ordfeminine", 370, nullptr },
+ { "ring", 333, nullptr },
+ { "p", 611, nullptr },
+ { "q", 611, nullptr },
+ { "uhungarumlaut", 611, nullptr },
+ { "r", 389, nullptr },
+ { "twosuperior", 333, nullptr },
+ { "aacute", 556, nullptr },
+ { "s", 556, nullptr },
+ { "OE", 1000, nullptr },
+ { "t", 333, nullptr },
+ { "divide", 584, nullptr },
+ { "u", 611, nullptr },
+ { "Ccaron", 722, nullptr },
+ { "v", 556, nullptr },
+ { "w", 778, nullptr },
+ { "x", 556, nullptr },
+ { "y", 556, nullptr },
+ { "z", 500, nullptr },
+ { "Gbreve", 778, nullptr },
+ { "commaaccent", 250, nullptr },
+ { "hungarumlaut", 333, nullptr },
+ { "Idotaccent", 278, nullptr },
+ { "Nacute", 722, nullptr },
+ { "quotedbl", 474, nullptr },
+ { "gcommaaccent", 611, nullptr },
+ { "mu", 611, nullptr },
+ { "greaterequal", 549, nullptr },
+ { "Scaron", 667, nullptr },
+ { "Lslash", 611, nullptr },
+ { "semicolon", 333, nullptr },
+ { "oslash", 611, nullptr },
+ { "lessequal", 549, nullptr },
+ { "lozenge", 494, nullptr },
+ { "parenright", 333, nullptr },
+ { "ccaron", 556, nullptr },
+ { "Ecircumflex", 667, nullptr },
+ { "gbreve", 611, nullptr },
+ { "trademark", 1000, nullptr },
+ { "daggerdbl", 556, nullptr },
+ { "nacute", 611, nullptr },
+ { "macron", 333, nullptr },
+ { "Otilde", 778, nullptr },
+ { "Emacron", 667, nullptr },
+ { "ellipsis", 1000, nullptr },
+ { "scaron", 556, nullptr },
+ { "AE", 1000, nullptr },
+ { "Ucircumflex", 722, nullptr },
+ { "lslash", 278, nullptr },
+ { "quotedblleft", 500, nullptr },
+ { "guilsinglright", 333, nullptr },
+ { "hyphen", 333, nullptr },
+ { "quotesingle", 238, nullptr },
+ { "eight", 556, nullptr },
+ { "exclamdown", 333, nullptr },
+ { "endash", 556, nullptr },
+ { "oe", 944, nullptr },
+ { "Abreve", 722, nullptr },
+ { "Umacron", 722, nullptr },
+ { "ecircumflex", 556, nullptr },
+ { "Adieresis", 722, nullptr },
+ { "copyright", 737, nullptr },
+ { "Egrave", 667, nullptr },
+ { "slash", 278, nullptr },
+ { "Edieresis", 667, nullptr },
+ { "otilde", 611, nullptr },
+ { "Idieresis", 278, nullptr },
+ { "parenleft", 333, nullptr },
+ { "one", 556, nullptr },
+ { "emacron", 556, nullptr },
+ { "Odieresis", 778, nullptr },
+ { "ucircumflex", 611, nullptr },
+ { "bracketleft", 333, nullptr },
+ { "Ugrave", 722, nullptr },
+ { "quoteright", 278, nullptr },
+ { "Udieresis", 722, nullptr },
+ { "perthousand", 1000, nullptr },
+ { "Ydieresis", 667, nullptr },
+ { "umacron", 611, nullptr },
+ { "abreve", 556, nullptr },
+ { "Eacute", 667, nullptr },
+ { "adieresis", 556, nullptr },
+ { "egrave", 556, nullptr },
+ { "edieresis", 556, nullptr },
+ { "idieresis", 278, nullptr },
+ { "Eth", 722, nullptr },
+ { "ae", 889, nullptr },
+ { "asterisk", 389, nullptr },
+ { "odieresis", 611, nullptr },
+ { "Uacute", 722, nullptr },
+ { "ugrave", 611, nullptr },
+ { "nine", 556, nullptr },
+ { "five", 556, nullptr },
+ { "udieresis", 611, nullptr },
+ { "Zcaron", 611, nullptr },
+ { "Scommaaccent", 667, nullptr },
+ { "threequarters", 834, nullptr },
+ { "guillemotright", 556, nullptr },
+ { "Ccedilla", 722, nullptr },
+ { "ydieresis", 556, nullptr },
+ { "tilde", 333, nullptr },
+ { "dbldaggerumlaut", 556, nullptr },
+ { "at", 975, nullptr },
+ { "eacute", 556, nullptr },
+ { "underscore", 556, nullptr },
+ { "Euro", 556, nullptr },
+ { "Dcroat", 722, nullptr },
+ { "multiply", 584, nullptr },
+ { "zero", 556, nullptr },
+ { "eth", 611, nullptr },
+ { "Scedilla", 667, nullptr },
+ { "Ograve", 778, nullptr },
+ { "Racute", 722, nullptr },
+ { "partialdiff", 494, nullptr },
+ { "uacute", 611, nullptr },
+ { "braceleft", 389, nullptr },
+ { "Thorn", 667, nullptr },
+ { "zcaron", 500, nullptr },
+ { "scommaaccent", 556, nullptr },
+ { "ccedilla", 556, nullptr },
+ { "Dcaron", 722, nullptr },
+ { "dcroat", 611, nullptr },
+ { "Ocircumflex", 778, nullptr },
+ { "Oacute", 778, nullptr },
+ { "scedilla", 556, nullptr },
+ { "ogonek", 333, nullptr },
+ { "ograve", 611, nullptr },
+ { "racute", 389, nullptr },
+ { "Tcaron", 611, nullptr },
+ { "Eogonek", 667, nullptr },
+ { "thorn", 611, nullptr },
+ { "degree", 400, nullptr },
+ { "registered", 737, nullptr },
+ { "radical", 549, nullptr },
+ { "Aring", 722, nullptr },
+ { "percent", 889, nullptr },
+ { "six", 556, nullptr },
+ { "paragraph", 556, nullptr },
+ { "dcaron", 743, nullptr },
+ { "Uogonek", 722, nullptr },
+ { "two", 556, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 278, nullptr },
+ { "Lacute", 611, nullptr },
+ { "ocircumflex", 611, nullptr },
+ { "oacute", 611, nullptr },
+ { "Uring", 722, nullptr },
+ { "Lcommaaccent", 611, nullptr },
+ { "tcaron", 389, nullptr },
+ { "eogonek", 556, nullptr },
+ { "Delta", 612, nullptr },
+ { "Ohungarumlaut", 778, nullptr },
+ { "asciicircum", 584, nullptr },
+ { "aring", 556, nullptr },
+ { "grave", 333, nullptr },
+ { "uogonek", 611, nullptr },
+ { "bracketright", 333, nullptr },
+ { "Iacute", 278, nullptr },
+ { "ampersand", 722, nullptr },
+ { "igrave", 278, nullptr },
+ { "lacute", 278, nullptr },
+ { "Ncaron", 722, nullptr },
+ { "plus", 584, nullptr },
+ { "uring", 611, nullptr },
+ { "quotesinglbase", 278, nullptr },
+ { "lcommaaccent", 278, nullptr },
+ { "Yacute", 667, nullptr },
+ { "ohungarumlaut", 611, nullptr },
+ { "threesuperior", 333, nullptr },
+ { "acute", 333, nullptr },
+ { "section", 556, nullptr },
+ { "dieresis", 333, nullptr },
+ { "iacute", 278, nullptr },
+ { "quotedblbase", 500, nullptr },
+ { "ncaron", 611, nullptr },
+ { "florin", 556, nullptr },
+ { "yacute", 556, nullptr },
+ { "Rcommaaccent", 722, nullptr },
+ { "fi", 611, nullptr },
+ { "fl", 611, nullptr },
+ { "Acircumflex", 722, nullptr },
+ { "Cacute", 722, nullptr },
+ { "Icircumflex", 278, nullptr },
+ { "guillemotleft", 556, nullptr },
+ { "germandbls", 611, nullptr },
+ { "Amacron", 722, nullptr },
+ { "seven", 556, nullptr },
+ { "Sacute", 667, nullptr },
+ { "ordmasculine", 365, nullptr },
+ { "dotlessi", 278, nullptr },
+ { "sterling", 556, nullptr },
+ { "notequal", 549, nullptr },
+ { "Imacron", 278, nullptr },
+ { "rcommaaccent", 389, nullptr },
+ { "Zdotaccent", 611, nullptr },
+ { "acircumflex", 556, nullptr },
+ { "cacute", 556, nullptr },
+ { "Ecaron", 667, nullptr },
+ { "icircumflex", 278, nullptr },
+ { "braceright", 389, nullptr },
+ { "quotedblright", 500, nullptr },
+ { "amacron", 556, nullptr },
+ { "sacute", 556, nullptr },
+ { "imacron", 278, nullptr },
+ { "cent", 556, nullptr },
+ { "currency", 556, nullptr },
+ { "logicalnot", 584, nullptr },
+ { "zdotaccent", 500, nullptr },
+ { "Atilde", 722, nullptr },
+ { "breve", 333, nullptr },
+ { "bar", 280, nullptr },
+ { "fraction", 167, nullptr },
+ { "less", 584, nullptr },
+ { "ecaron", 556, nullptr },
+ { "guilsinglleft", 333, nullptr },
+ { "exclam", 333, nullptr },
+ { "period", 278, nullptr },
+ { "Rcaron", 722, nullptr },
+ { "Kcommaaccent", 722, nullptr },
+ { "greater", 584, nullptr },
+ { "atilde", 556, nullptr },
+ { "brokenbar", 280, nullptr },
+ { "quoteleft", 278, nullptr },
+ { "Edotaccent", 667, nullptr },
+ { "onesuperior", 333, nullptr }
};
static BuiltinFontWidth helveticaBoldObliqueWidthsTab[] = {
- { "Ntilde", 722, NULL },
- { "rcaron", 389, NULL },
- { "kcommaaccent", 556, NULL },
- { "Ncommaaccent", 722, NULL },
- { "Zacute", 611, NULL },
- { "comma", 278, NULL },
- { "cedilla", 333, NULL },
- { "plusminus", 584, NULL },
- { "circumflex", 333, NULL },
- { "dotaccent", 333, NULL },
- { "edotaccent", 556, NULL },
- { "asciitilde", 584, NULL },
- { "colon", 333, NULL },
- { "onehalf", 834, NULL },
- { "dollar", 556, NULL },
- { "Lcaron", 611, NULL },
- { "ntilde", 611, NULL },
- { "Aogonek", 722, NULL },
- { "ncommaaccent", 611, NULL },
- { "minus", 584, NULL },
- { "Iogonek", 278, NULL },
- { "zacute", 500, NULL },
- { "yen", 556, NULL },
- { "space", 278, NULL },
- { "Omacron", 778, NULL },
- { "questiondown", 611, NULL },
- { "emdash", 1000, NULL },
- { "Agrave", 722, NULL },
- { "three", 556, NULL },
- { "numbersign", 556, NULL },
- { "lcaron", 400, NULL },
- { "A", 722, NULL },
- { "B", 722, NULL },
- { "C", 722, NULL },
- { "aogonek", 556, NULL },
- { "D", 722, NULL },
- { "E", 667, NULL },
- { "onequarter", 834, NULL },
- { "F", 611, NULL },
- { "G", 778, NULL },
- { "H", 722, NULL },
- { "I", 278, NULL },
- { "J", 556, NULL },
- { "K", 722, NULL },
- { "iogonek", 278, NULL },
- { "backslash", 278, NULL },
- { "L", 611, NULL },
- { "periodcentered", 278, NULL },
- { "M", 833, NULL },
- { "N", 722, NULL },
- { "omacron", 611, NULL },
- { "Tcommaaccent", 611, NULL },
- { "O", 778, NULL },
- { "P", 667, NULL },
- { "Q", 778, NULL },
- { "Uhungarumlaut", 722, NULL },
- { "R", 722, NULL },
- { "Aacute", 722, NULL },
- { "caron", 333, NULL },
- { "S", 667, NULL },
- { "T", 611, NULL },
- { "U", 722, NULL },
- { "agrave", 556, NULL },
- { "V", 667, NULL },
- { "W", 944, NULL },
- { "X", 667, NULL },
- { "question", 611, NULL },
- { "equal", 584, NULL },
- { "Y", 667, NULL },
- { "Z", 611, NULL },
- { "four", 556, NULL },
- { "a", 556, NULL },
- { "Gcommaaccent", 778, NULL },
- { "b", 611, NULL },
- { "c", 556, NULL },
- { "d", 611, NULL },
- { "e", 556, NULL },
- { "f", 333, NULL },
- { "g", 611, NULL },
- { "bullet", 350, NULL },
- { "h", 611, NULL },
- { "i", 278, NULL },
- { "Oslash", 778, NULL },
- { "dagger", 556, NULL },
- { "j", 278, NULL },
- { "k", 556, NULL },
- { "l", 278, NULL },
- { "m", 889, NULL },
- { "n", 611, NULL },
- { "tcommaaccent", 333, NULL },
- { "o", 611, NULL },
- { "ordfeminine", 370, NULL },
- { "ring", 333, NULL },
- { "p", 611, NULL },
- { "q", 611, NULL },
- { "uhungarumlaut", 611, NULL },
- { "r", 389, NULL },
- { "twosuperior", 333, NULL },
- { "aacute", 556, NULL },
- { "s", 556, NULL },
- { "OE", 1000, NULL },
- { "t", 333, NULL },
- { "divide", 584, NULL },
- { "u", 611, NULL },
- { "Ccaron", 722, NULL },
- { "v", 556, NULL },
- { "w", 778, NULL },
- { "x", 556, NULL },
- { "y", 556, NULL },
- { "z", 500, NULL },
- { "Gbreve", 778, NULL },
- { "commaaccent", 250, NULL },
- { "hungarumlaut", 333, NULL },
- { "Idotaccent", 278, NULL },
- { "Nacute", 722, NULL },
- { "quotedbl", 474, NULL },
- { "gcommaaccent", 611, NULL },
- { "mu", 611, NULL },
- { "greaterequal", 549, NULL },
- { "Scaron", 667, NULL },
- { "Lslash", 611, NULL },
- { "semicolon", 333, NULL },
- { "oslash", 611, NULL },
- { "lessequal", 549, NULL },
- { "lozenge", 494, NULL },
- { "parenright", 333, NULL },
- { "ccaron", 556, NULL },
- { "Ecircumflex", 667, NULL },
- { "gbreve", 611, NULL },
- { "trademark", 1000, NULL },
- { "daggerdbl", 556, NULL },
- { "nacute", 611, NULL },
- { "macron", 333, NULL },
- { "Otilde", 778, NULL },
- { "Emacron", 667, NULL },
- { "ellipsis", 1000, NULL },
- { "scaron", 556, NULL },
- { "AE", 1000, NULL },
- { "Ucircumflex", 722, NULL },
- { "lslash", 278, NULL },
- { "quotedblleft", 500, NULL },
- { "guilsinglright", 333, NULL },
- { "hyphen", 333, NULL },
- { "quotesingle", 238, NULL },
- { "eight", 556, NULL },
- { "exclamdown", 333, NULL },
- { "endash", 556, NULL },
- { "oe", 944, NULL },
- { "Abreve", 722, NULL },
- { "Umacron", 722, NULL },
- { "ecircumflex", 556, NULL },
- { "Adieresis", 722, NULL },
- { "copyright", 737, NULL },
- { "Egrave", 667, NULL },
- { "slash", 278, NULL },
- { "Edieresis", 667, NULL },
- { "otilde", 611, NULL },
- { "Idieresis", 278, NULL },
- { "parenleft", 333, NULL },
- { "one", 556, NULL },
- { "emacron", 556, NULL },
- { "Odieresis", 778, NULL },
- { "ucircumflex", 611, NULL },
- { "bracketleft", 333, NULL },
- { "Ugrave", 722, NULL },
- { "quoteright", 278, NULL },
- { "Udieresis", 722, NULL },
- { "perthousand", 1000, NULL },
- { "Ydieresis", 667, NULL },
- { "umacron", 611, NULL },
- { "abreve", 556, NULL },
- { "Eacute", 667, NULL },
- { "adieresis", 556, NULL },
- { "egrave", 556, NULL },
- { "edieresis", 556, NULL },
- { "idieresis", 278, NULL },
- { "Eth", 722, NULL },
- { "ae", 889, NULL },
- { "asterisk", 389, NULL },
- { "odieresis", 611, NULL },
- { "Uacute", 722, NULL },
- { "ugrave", 611, NULL },
- { "nine", 556, NULL },
- { "five", 556, NULL },
- { "udieresis", 611, NULL },
- { "Zcaron", 611, NULL },
- { "Scommaaccent", 667, NULL },
- { "threequarters", 834, NULL },
- { "guillemotright", 556, NULL },
- { "Ccedilla", 722, NULL },
- { "ydieresis", 556, NULL },
- { "tilde", 333, NULL },
- { "at", 975, NULL },
- { "eacute", 556, NULL },
- { "underscore", 556, NULL },
- { "Euro", 556, NULL },
- { "Dcroat", 722, NULL },
- { "multiply", 584, NULL },
- { "zero", 556, NULL },
- { "eth", 611, NULL },
- { "Scedilla", 667, NULL },
- { "Ograve", 778, NULL },
- { "Racute", 722, NULL },
- { "partialdiff", 494, NULL },
- { "uacute", 611, NULL },
- { "braceleft", 389, NULL },
- { "Thorn", 667, NULL },
- { "zcaron", 500, NULL },
- { "scommaaccent", 556, NULL },
- { "ccedilla", 556, NULL },
- { "Dcaron", 722, NULL },
- { "dcroat", 611, NULL },
- { "Ocircumflex", 778, NULL },
- { "Oacute", 778, NULL },
- { "scedilla", 556, NULL },
- { "ogonek", 333, NULL },
- { "ograve", 611, NULL },
- { "racute", 389, NULL },
- { "Tcaron", 611, NULL },
- { "Eogonek", 667, NULL },
- { "thorn", 611, NULL },
- { "degree", 400, NULL },
- { "registered", 737, NULL },
- { "radical", 549, NULL },
- { "Aring", 722, NULL },
- { "percent", 889, NULL },
- { "six", 556, NULL },
- { "paragraph", 556, NULL },
- { "dcaron", 743, NULL },
- { "Uogonek", 722, NULL },
- { "two", 556, NULL },
- { "summation", 600, NULL },
- { "Igrave", 278, NULL },
- { "Lacute", 611, NULL },
- { "ocircumflex", 611, NULL },
- { "oacute", 611, NULL },
- { "Uring", 722, NULL },
- { "Lcommaaccent", 611, NULL },
- { "tcaron", 389, NULL },
- { "eogonek", 556, NULL },
- { "Delta", 612, NULL },
- { "Ohungarumlaut", 778, NULL },
- { "asciicircum", 584, NULL },
- { "aring", 556, NULL },
- { "grave", 333, NULL },
- { "uogonek", 611, NULL },
- { "bracketright", 333, NULL },
- { "Iacute", 278, NULL },
- { "ampersand", 722, NULL },
- { "igrave", 278, NULL },
- { "lacute", 278, NULL },
- { "Ncaron", 722, NULL },
- { "plus", 584, NULL },
- { "uring", 611, NULL },
- { "quotesinglbase", 278, NULL },
- { "lcommaaccent", 278, NULL },
- { "Yacute", 667, NULL },
- { "ohungarumlaut", 611, NULL },
- { "threesuperior", 333, NULL },
- { "acute", 333, NULL },
- { "section", 556, NULL },
- { "dieresis", 333, NULL },
- { "iacute", 278, NULL },
- { "quotedblbase", 500, NULL },
- { "ncaron", 611, NULL },
- { "florin", 556, NULL },
- { "yacute", 556, NULL },
- { "Rcommaaccent", 722, NULL },
- { "fi", 611, NULL },
- { "fl", 611, NULL },
- { "Acircumflex", 722, NULL },
- { "Cacute", 722, NULL },
- { "Icircumflex", 278, NULL },
- { "guillemotleft", 556, NULL },
- { "germandbls", 611, NULL },
- { "Amacron", 722, NULL },
- { "seven", 556, NULL },
- { "Sacute", 667, NULL },
- { "ordmasculine", 365, NULL },
- { "dotlessi", 278, NULL },
- { "sterling", 556, NULL },
- { "notequal", 549, NULL },
- { "Imacron", 278, NULL },
- { "rcommaaccent", 389, NULL },
- { "Zdotaccent", 611, NULL },
- { "acircumflex", 556, NULL },
- { "cacute", 556, NULL },
- { "Ecaron", 667, NULL },
- { "icircumflex", 278, NULL },
- { "braceright", 389, NULL },
- { "quotedblright", 500, NULL },
- { "amacron", 556, NULL },
- { "sacute", 556, NULL },
- { "imacron", 278, NULL },
- { "cent", 556, NULL },
- { "currency", 556, NULL },
- { "logicalnot", 584, NULL },
- { "zdotaccent", 500, NULL },
- { "Atilde", 722, NULL },
- { "breve", 333, NULL },
- { "bar", 280, NULL },
- { "fraction", 167, NULL },
- { "less", 584, NULL },
- { "ecaron", 556, NULL },
- { "guilsinglleft", 333, NULL },
- { "exclam", 333, NULL },
- { "period", 278, NULL },
- { "Rcaron", 722, NULL },
- { "Kcommaaccent", 722, NULL },
- { "greater", 584, NULL },
- { "atilde", 556, NULL },
- { "brokenbar", 280, NULL },
- { "quoteleft", 278, NULL },
- { "Edotaccent", 667, NULL },
- { "onesuperior", 333, NULL }
+ { "Ntilde", 722, nullptr },
+ { "rcaron", 389, nullptr },
+ { "kcommaaccent", 556, nullptr },
+ { "Ncommaaccent", 722, nullptr },
+ { "Zacute", 611, nullptr },
+ { "comma", 278, nullptr },
+ { "cedilla", 333, nullptr },
+ { "plusminus", 584, nullptr },
+ { "circumflex", 333, nullptr },
+ { "dotaccent", 333, nullptr },
+ { "edotaccent", 556, nullptr },
+ { "asciitilde", 584, nullptr },
+ { "colon", 333, nullptr },
+ { "onehalf", 834, nullptr },
+ { "dollar", 556, nullptr },
+ { "Lcaron", 611, nullptr },
+ { "ntilde", 611, nullptr },
+ { "Aogonek", 722, nullptr },
+ { "ncommaaccent", 611, nullptr },
+ { "minus", 584, nullptr },
+ { "Iogonek", 278, nullptr },
+ { "zacute", 500, nullptr },
+ { "yen", 556, nullptr },
+ { "space", 278, nullptr },
+ { "Omacron", 778, nullptr },
+ { "questiondown", 611, nullptr },
+ { "emdash", 1000, nullptr },
+ { "Agrave", 722, nullptr },
+ { "three", 556, nullptr },
+ { "numbersign", 556, nullptr },
+ { "lcaron", 400, nullptr },
+ { "A", 722, nullptr },
+ { "B", 722, nullptr },
+ { "C", 722, nullptr },
+ { "aogonek", 556, nullptr },
+ { "D", 722, nullptr },
+ { "E", 667, nullptr },
+ { "onequarter", 834, nullptr },
+ { "F", 611, nullptr },
+ { "G", 778, nullptr },
+ { "H", 722, nullptr },
+ { "I", 278, nullptr },
+ { "J", 556, nullptr },
+ { "K", 722, nullptr },
+ { "iogonek", 278, nullptr },
+ { "backslash", 278, nullptr },
+ { "L", 611, nullptr },
+ { "periodcentered", 278, nullptr },
+ { "M", 833, nullptr },
+ { "N", 722, nullptr },
+ { "omacron", 611, nullptr },
+ { "Tcommaaccent", 611, nullptr },
+ { "O", 778, nullptr },
+ { "P", 667, nullptr },
+ { "Q", 778, nullptr },
+ { "Uhungarumlaut", 722, nullptr },
+ { "R", 722, nullptr },
+ { "Aacute", 722, nullptr },
+ { "caron", 333, nullptr },
+ { "S", 667, nullptr },
+ { "T", 611, nullptr },
+ { "U", 722, nullptr },
+ { "agrave", 556, nullptr },
+ { "V", 667, nullptr },
+ { "W", 944, nullptr },
+ { "X", 667, nullptr },
+ { "question", 611, nullptr },
+ { "equal", 584, nullptr },
+ { "Y", 667, nullptr },
+ { "Z", 611, nullptr },
+ { "four", 556, nullptr },
+ { "a", 556, nullptr },
+ { "Gcommaaccent", 778, nullptr },
+ { "b", 611, nullptr },
+ { "c", 556, nullptr },
+ { "d", 611, nullptr },
+ { "e", 556, nullptr },
+ { "f", 333, nullptr },
+ { "g", 611, nullptr },
+ { "bullet", 350, nullptr },
+ { "h", 611, nullptr },
+ { "i", 278, nullptr },
+ { "Oslash", 778, nullptr },
+ { "dagger", 556, nullptr },
+ { "j", 278, nullptr },
+ { "k", 556, nullptr },
+ { "l", 278, nullptr },
+ { "m", 889, nullptr },
+ { "n", 611, nullptr },
+ { "tcommaaccent", 333, nullptr },
+ { "o", 611, nullptr },
+ { "ordfeminine", 370, nullptr },
+ { "ring", 333, nullptr },
+ { "p", 611, nullptr },
+ { "q", 611, nullptr },
+ { "uhungarumlaut", 611, nullptr },
+ { "r", 389, nullptr },
+ { "twosuperior", 333, nullptr },
+ { "aacute", 556, nullptr },
+ { "s", 556, nullptr },
+ { "OE", 1000, nullptr },
+ { "t", 333, nullptr },
+ { "divide", 584, nullptr },
+ { "u", 611, nullptr },
+ { "Ccaron", 722, nullptr },
+ { "v", 556, nullptr },
+ { "w", 778, nullptr },
+ { "x", 556, nullptr },
+ { "y", 556, nullptr },
+ { "z", 500, nullptr },
+ { "Gbreve", 778, nullptr },
+ { "commaaccent", 250, nullptr },
+ { "hungarumlaut", 333, nullptr },
+ { "Idotaccent", 278, nullptr },
+ { "Nacute", 722, nullptr },
+ { "quotedbl", 474, nullptr },
+ { "gcommaaccent", 611, nullptr },
+ { "mu", 611, nullptr },
+ { "greaterequal", 549, nullptr },
+ { "Scaron", 667, nullptr },
+ { "Lslash", 611, nullptr },
+ { "semicolon", 333, nullptr },
+ { "oslash", 611, nullptr },
+ { "lessequal", 549, nullptr },
+ { "lozenge", 494, nullptr },
+ { "parenright", 333, nullptr },
+ { "ccaron", 556, nullptr },
+ { "Ecircumflex", 667, nullptr },
+ { "gbreve", 611, nullptr },
+ { "trademark", 1000, nullptr },
+ { "daggerdbl", 556, nullptr },
+ { "nacute", 611, nullptr },
+ { "macron", 333, nullptr },
+ { "Otilde", 778, nullptr },
+ { "Emacron", 667, nullptr },
+ { "ellipsis", 1000, nullptr },
+ { "scaron", 556, nullptr },
+ { "AE", 1000, nullptr },
+ { "Ucircumflex", 722, nullptr },
+ { "lslash", 278, nullptr },
+ { "quotedblleft", 500, nullptr },
+ { "guilsinglright", 333, nullptr },
+ { "hyphen", 333, nullptr },
+ { "quotesingle", 238, nullptr },
+ { "eight", 556, nullptr },
+ { "exclamdown", 333, nullptr },
+ { "endash", 556, nullptr },
+ { "oe", 944, nullptr },
+ { "Abreve", 722, nullptr },
+ { "Umacron", 722, nullptr },
+ { "ecircumflex", 556, nullptr },
+ { "Adieresis", 722, nullptr },
+ { "copyright", 737, nullptr },
+ { "Egrave", 667, nullptr },
+ { "slash", 278, nullptr },
+ { "Edieresis", 667, nullptr },
+ { "otilde", 611, nullptr },
+ { "Idieresis", 278, nullptr },
+ { "parenleft", 333, nullptr },
+ { "one", 556, nullptr },
+ { "emacron", 556, nullptr },
+ { "Odieresis", 778, nullptr },
+ { "ucircumflex", 611, nullptr },
+ { "bracketleft", 333, nullptr },
+ { "Ugrave", 722, nullptr },
+ { "quoteright", 278, nullptr },
+ { "Udieresis", 722, nullptr },
+ { "perthousand", 1000, nullptr },
+ { "Ydieresis", 667, nullptr },
+ { "umacron", 611, nullptr },
+ { "abreve", 556, nullptr },
+ { "Eacute", 667, nullptr },
+ { "adieresis", 556, nullptr },
+ { "egrave", 556, nullptr },
+ { "edieresis", 556, nullptr },
+ { "idieresis", 278, nullptr },
+ { "Eth", 722, nullptr },
+ { "ae", 889, nullptr },
+ { "asterisk", 389, nullptr },
+ { "odieresis", 611, nullptr },
+ { "Uacute", 722, nullptr },
+ { "ugrave", 611, nullptr },
+ { "nine", 556, nullptr },
+ { "five", 556, nullptr },
+ { "udieresis", 611, nullptr },
+ { "Zcaron", 611, nullptr },
+ { "Scommaaccent", 667, nullptr },
+ { "threequarters", 834, nullptr },
+ { "guillemotright", 556, nullptr },
+ { "Ccedilla", 722, nullptr },
+ { "ydieresis", 556, nullptr },
+ { "tilde", 333, nullptr },
+ { "at", 975, nullptr },
+ { "eacute", 556, nullptr },
+ { "underscore", 556, nullptr },
+ { "Euro", 556, nullptr },
+ { "Dcroat", 722, nullptr },
+ { "multiply", 584, nullptr },
+ { "zero", 556, nullptr },
+ { "eth", 611, nullptr },
+ { "Scedilla", 667, nullptr },
+ { "Ograve", 778, nullptr },
+ { "Racute", 722, nullptr },
+ { "partialdiff", 494, nullptr },
+ { "uacute", 611, nullptr },
+ { "braceleft", 389, nullptr },
+ { "Thorn", 667, nullptr },
+ { "zcaron", 500, nullptr },
+ { "scommaaccent", 556, nullptr },
+ { "ccedilla", 556, nullptr },
+ { "Dcaron", 722, nullptr },
+ { "dcroat", 611, nullptr },
+ { "Ocircumflex", 778, nullptr },
+ { "Oacute", 778, nullptr },
+ { "scedilla", 556, nullptr },
+ { "ogonek", 333, nullptr },
+ { "ograve", 611, nullptr },
+ { "racute", 389, nullptr },
+ { "Tcaron", 611, nullptr },
+ { "Eogonek", 667, nullptr },
+ { "thorn", 611, nullptr },
+ { "degree", 400, nullptr },
+ { "registered", 737, nullptr },
+ { "radical", 549, nullptr },
+ { "Aring", 722, nullptr },
+ { "percent", 889, nullptr },
+ { "six", 556, nullptr },
+ { "paragraph", 556, nullptr },
+ { "dcaron", 743, nullptr },
+ { "Uogonek", 722, nullptr },
+ { "two", 556, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 278, nullptr },
+ { "Lacute", 611, nullptr },
+ { "ocircumflex", 611, nullptr },
+ { "oacute", 611, nullptr },
+ { "Uring", 722, nullptr },
+ { "Lcommaaccent", 611, nullptr },
+ { "tcaron", 389, nullptr },
+ { "eogonek", 556, nullptr },
+ { "Delta", 612, nullptr },
+ { "Ohungarumlaut", 778, nullptr },
+ { "asciicircum", 584, nullptr },
+ { "aring", 556, nullptr },
+ { "grave", 333, nullptr },
+ { "uogonek", 611, nullptr },
+ { "bracketright", 333, nullptr },
+ { "Iacute", 278, nullptr },
+ { "ampersand", 722, nullptr },
+ { "igrave", 278, nullptr },
+ { "lacute", 278, nullptr },
+ { "Ncaron", 722, nullptr },
+ { "plus", 584, nullptr },
+ { "uring", 611, nullptr },
+ { "quotesinglbase", 278, nullptr },
+ { "lcommaaccent", 278, nullptr },
+ { "Yacute", 667, nullptr },
+ { "ohungarumlaut", 611, nullptr },
+ { "threesuperior", 333, nullptr },
+ { "acute", 333, nullptr },
+ { "section", 556, nullptr },
+ { "dieresis", 333, nullptr },
+ { "iacute", 278, nullptr },
+ { "quotedblbase", 500, nullptr },
+ { "ncaron", 611, nullptr },
+ { "florin", 556, nullptr },
+ { "yacute", 556, nullptr },
+ { "Rcommaaccent", 722, nullptr },
+ { "fi", 611, nullptr },
+ { "fl", 611, nullptr },
+ { "Acircumflex", 722, nullptr },
+ { "Cacute", 722, nullptr },
+ { "Icircumflex", 278, nullptr },
+ { "guillemotleft", 556, nullptr },
+ { "germandbls", 611, nullptr },
+ { "Amacron", 722, nullptr },
+ { "seven", 556, nullptr },
+ { "Sacute", 667, nullptr },
+ { "ordmasculine", 365, nullptr },
+ { "dotlessi", 278, nullptr },
+ { "sterling", 556, nullptr },
+ { "notequal", 549, nullptr },
+ { "Imacron", 278, nullptr },
+ { "rcommaaccent", 389, nullptr },
+ { "Zdotaccent", 611, nullptr },
+ { "acircumflex", 556, nullptr },
+ { "cacute", 556, nullptr },
+ { "Ecaron", 667, nullptr },
+ { "icircumflex", 278, nullptr },
+ { "braceright", 389, nullptr },
+ { "quotedblright", 500, nullptr },
+ { "amacron", 556, nullptr },
+ { "sacute", 556, nullptr },
+ { "imacron", 278, nullptr },
+ { "cent", 556, nullptr },
+ { "currency", 556, nullptr },
+ { "logicalnot", 584, nullptr },
+ { "zdotaccent", 500, nullptr },
+ { "Atilde", 722, nullptr },
+ { "breve", 333, nullptr },
+ { "bar", 280, nullptr },
+ { "fraction", 167, nullptr },
+ { "less", 584, nullptr },
+ { "ecaron", 556, nullptr },
+ { "guilsinglleft", 333, nullptr },
+ { "exclam", 333, nullptr },
+ { "period", 278, nullptr },
+ { "Rcaron", 722, nullptr },
+ { "Kcommaaccent", 722, nullptr },
+ { "greater", 584, nullptr },
+ { "atilde", 556, nullptr },
+ { "brokenbar", 280, nullptr },
+ { "quoteleft", 278, nullptr },
+ { "Edotaccent", 667, nullptr },
+ { "onesuperior", 333, nullptr }
};
static BuiltinFontWidth helveticaObliqueWidthsTab[] = {
- { "Ntilde", 722, NULL },
- { "rcaron", 333, NULL },
- { "kcommaaccent", 500, NULL },
- { "Ncommaaccent", 722, NULL },
- { "Zacute", 611, NULL },
- { "comma", 278, NULL },
- { "cedilla", 333, NULL },
- { "plusminus", 584, NULL },
- { "circumflex", 333, NULL },
- { "dotaccent", 333, NULL },
- { "edotaccent", 556, NULL },
- { "asciitilde", 584, NULL },
- { "colon", 278, NULL },
- { "onehalf", 834, NULL },
- { "dollar", 556, NULL },
- { "Lcaron", 556, NULL },
- { "ntilde", 556, NULL },
- { "Aogonek", 667, NULL },
- { "ncommaaccent", 556, NULL },
- { "minus", 584, NULL },
- { "Iogonek", 278, NULL },
- { "zacute", 500, NULL },
- { "yen", 556, NULL },
- { "space", 278, NULL },
- { "Omacron", 778, NULL },
- { "questiondown", 611, NULL },
- { "emdash", 1000, NULL },
- { "Agrave", 667, NULL },
- { "three", 556, NULL },
- { "numbersign", 556, NULL },
- { "lcaron", 299, NULL },
- { "A", 667, NULL },
- { "B", 667, NULL },
- { "C", 722, NULL },
- { "aogonek", 556, NULL },
- { "D", 722, NULL },
- { "E", 667, NULL },
- { "onequarter", 834, NULL },
- { "F", 611, NULL },
- { "G", 778, NULL },
- { "H", 722, NULL },
- { "I", 278, NULL },
- { "J", 500, NULL },
- { "K", 667, NULL },
- { "iogonek", 222, NULL },
- { "backslash", 278, NULL },
- { "L", 556, NULL },
- { "periodcentered", 278, NULL },
- { "M", 833, NULL },
- { "N", 722, NULL },
- { "omacron", 556, NULL },
- { "Tcommaaccent", 611, NULL },
- { "O", 778, NULL },
- { "P", 667, NULL },
- { "Q", 778, NULL },
- { "Uhungarumlaut", 722, NULL },
- { "R", 722, NULL },
- { "Aacute", 667, NULL },
- { "caron", 333, NULL },
- { "S", 667, NULL },
- { "T", 611, NULL },
- { "U", 722, NULL },
- { "agrave", 556, NULL },
- { "V", 667, NULL },
- { "W", 944, NULL },
- { "X", 667, NULL },
- { "question", 556, NULL },
- { "equal", 584, NULL },
- { "Y", 667, NULL },
- { "Z", 611, NULL },
- { "four", 556, NULL },
- { "a", 556, NULL },
- { "Gcommaaccent", 778, NULL },
- { "b", 556, NULL },
- { "c", 500, NULL },
- { "d", 556, NULL },
- { "e", 556, NULL },
- { "f", 278, NULL },
- { "g", 556, NULL },
- { "bullet", 350, NULL },
- { "h", 556, NULL },
- { "i", 222, NULL },
- { "Oslash", 778, NULL },
- { "dagger", 556, NULL },
- { "j", 222, NULL },
- { "k", 500, NULL },
- { "l", 222, NULL },
- { "m", 833, NULL },
- { "n", 556, NULL },
- { "tcommaaccent", 278, NULL },
- { "o", 556, NULL },
- { "ordfeminine", 370, NULL },
- { "ring", 333, NULL },
- { "p", 556, NULL },
- { "q", 556, NULL },
- { "uhungarumlaut", 556, NULL },
- { "r", 333, NULL },
- { "twosuperior", 333, NULL },
- { "aacute", 556, NULL },
- { "s", 500, NULL },
- { "OE", 1000, NULL },
- { "t", 278, NULL },
- { "divide", 584, NULL },
- { "u", 556, NULL },
- { "Ccaron", 722, NULL },
- { "v", 500, NULL },
- { "w", 722, NULL },
- { "x", 500, NULL },
- { "y", 500, NULL },
- { "z", 500, NULL },
- { "Gbreve", 778, NULL },
- { "commaaccent", 250, NULL },
- { "hungarumlaut", 333, NULL },
- { "Idotaccent", 278, NULL },
- { "Nacute", 722, NULL },
- { "quotedbl", 355, NULL },
- { "gcommaaccent", 556, NULL },
- { "mu", 556, NULL },
- { "greaterequal", 549, NULL },
- { "Scaron", 667, NULL },
- { "Lslash", 556, NULL },
- { "semicolon", 278, NULL },
- { "oslash", 611, NULL },
- { "lessequal", 549, NULL },
- { "lozenge", 471, NULL },
- { "parenright", 333, NULL },
- { "ccaron", 500, NULL },
- { "Ecircumflex", 667, NULL },
- { "gbreve", 556, NULL },
- { "trademark", 1000, NULL },
- { "daggerdbl", 556, NULL },
- { "nacute", 556, NULL },
- { "macron", 333, NULL },
- { "Otilde", 778, NULL },
- { "Emacron", 667, NULL },
- { "ellipsis", 1000, NULL },
- { "scaron", 500, NULL },
- { "AE", 1000, NULL },
- { "Ucircumflex", 722, NULL },
- { "lslash", 222, NULL },
- { "quotedblleft", 333, NULL },
- { "guilsinglright", 333, NULL },
- { "hyphen", 333, NULL },
- { "quotesingle", 191, NULL },
- { "eight", 556, NULL },
- { "exclamdown", 333, NULL },
- { "endash", 556, NULL },
- { "oe", 944, NULL },
- { "Abreve", 667, NULL },
- { "Umacron", 722, NULL },
- { "ecircumflex", 556, NULL },
- { "Adieresis", 667, NULL },
- { "copyright", 737, NULL },
- { "Egrave", 667, NULL },
- { "slash", 278, NULL },
- { "Edieresis", 667, NULL },
- { "otilde", 556, NULL },
- { "Idieresis", 278, NULL },
- { "parenleft", 333, NULL },
- { "one", 556, NULL },
- { "emacron", 556, NULL },
- { "Odieresis", 778, NULL },
- { "ucircumflex", 556, NULL },
- { "bracketleft", 278, NULL },
- { "Ugrave", 722, NULL },
- { "quoteright", 222, NULL },
- { "Udieresis", 722, NULL },
- { "perthousand", 1000, NULL },
- { "Ydieresis", 667, NULL },
- { "umacron", 556, NULL },
- { "abreve", 556, NULL },
- { "Eacute", 667, NULL },
- { "adieresis", 556, NULL },
- { "egrave", 556, NULL },
- { "edieresis", 556, NULL },
- { "idieresis", 278, NULL },
- { "Eth", 722, NULL },
- { "ae", 889, NULL },
- { "asterisk", 389, NULL },
- { "odieresis", 556, NULL },
- { "Uacute", 722, NULL },
- { "ugrave", 556, NULL },
- { "nine", 556, NULL },
- { "five", 556, NULL },
- { "udieresis", 556, NULL },
- { "Zcaron", 611, NULL },
- { "Scommaaccent", 667, NULL },
- { "threequarters", 834, NULL },
- { "guillemotright", 556, NULL },
- { "Ccedilla", 722, NULL },
- { "ydieresis", 500, NULL },
- { "tilde", 333, NULL },
- { "at", 1015, NULL },
- { "eacute", 556, NULL },
- { "underscore", 556, NULL },
- { "Euro", 556, NULL },
- { "Dcroat", 722, NULL },
- { "multiply", 584, NULL },
- { "zero", 556, NULL },
- { "eth", 556, NULL },
- { "Scedilla", 667, NULL },
- { "Ograve", 778, NULL },
- { "Racute", 722, NULL },
- { "partialdiff", 476, NULL },
- { "uacute", 556, NULL },
- { "braceleft", 334, NULL },
- { "Thorn", 667, NULL },
- { "zcaron", 500, NULL },
- { "scommaaccent", 500, NULL },
- { "ccedilla", 500, NULL },
- { "Dcaron", 722, NULL },
- { "dcroat", 556, NULL },
- { "Ocircumflex", 778, NULL },
- { "Oacute", 778, NULL },
- { "scedilla", 500, NULL },
- { "ogonek", 333, NULL },
- { "ograve", 556, NULL },
- { "racute", 333, NULL },
- { "Tcaron", 611, NULL },
- { "Eogonek", 667, NULL },
- { "thorn", 556, NULL },
- { "degree", 400, NULL },
- { "registered", 737, NULL },
- { "radical", 453, NULL },
- { "Aring", 667, NULL },
- { "percent", 889, NULL },
- { "six", 556, NULL },
- { "paragraph", 537, NULL },
- { "dcaron", 643, NULL },
- { "Uogonek", 722, NULL },
- { "two", 556, NULL },
- { "summation", 600, NULL },
- { "Igrave", 278, NULL },
- { "Lacute", 556, NULL },
- { "ocircumflex", 556, NULL },
- { "oacute", 556, NULL },
- { "Uring", 722, NULL },
- { "Lcommaaccent", 556, NULL },
- { "tcaron", 317, NULL },
- { "eogonek", 556, NULL },
- { "Delta", 612, NULL },
- { "Ohungarumlaut", 778, NULL },
- { "asciicircum", 469, NULL },
- { "aring", 556, NULL },
- { "grave", 333, NULL },
- { "uogonek", 556, NULL },
- { "bracketright", 278, NULL },
- { "Iacute", 278, NULL },
- { "ampersand", 667, NULL },
- { "igrave", 278, NULL },
- { "lacute", 222, NULL },
- { "Ncaron", 722, NULL },
- { "plus", 584, NULL },
- { "uring", 556, NULL },
- { "quotesinglbase", 222, NULL },
- { "lcommaaccent", 222, NULL },
- { "Yacute", 667, NULL },
- { "ohungarumlaut", 556, NULL },
- { "threesuperior", 333, NULL },
- { "acute", 333, NULL },
- { "section", 556, NULL },
- { "dieresis", 333, NULL },
- { "iacute", 278, NULL },
- { "quotedblbase", 333, NULL },
- { "ncaron", 556, NULL },
- { "florin", 556, NULL },
- { "yacute", 500, NULL },
- { "Rcommaaccent", 722, NULL },
- { "fi", 500, NULL },
- { "fl", 500, NULL },
- { "Acircumflex", 667, NULL },
- { "Cacute", 722, NULL },
- { "Icircumflex", 278, NULL },
- { "guillemotleft", 556, NULL },
- { "germandbls", 611, NULL },
- { "Amacron", 667, NULL },
- { "seven", 556, NULL },
- { "Sacute", 667, NULL },
- { "ordmasculine", 365, NULL },
- { "dotlessi", 278, NULL },
- { "sterling", 556, NULL },
- { "notequal", 549, NULL },
- { "Imacron", 278, NULL },
- { "rcommaaccent", 333, NULL },
- { "Zdotaccent", 611, NULL },
- { "acircumflex", 556, NULL },
- { "cacute", 500, NULL },
- { "Ecaron", 667, NULL },
- { "icircumflex", 278, NULL },
- { "braceright", 334, NULL },
- { "quotedblright", 333, NULL },
- { "amacron", 556, NULL },
- { "sacute", 500, NULL },
- { "imacron", 278, NULL },
- { "cent", 556, NULL },
- { "currency", 556, NULL },
- { "logicalnot", 584, NULL },
- { "zdotaccent", 500, NULL },
- { "Atilde", 667, NULL },
- { "breve", 333, NULL },
- { "bar", 260, NULL },
- { "fraction", 167, NULL },
- { "less", 584, NULL },
- { "ecaron", 556, NULL },
- { "guilsinglleft", 333, NULL },
- { "exclam", 278, NULL },
- { "period", 278, NULL },
- { "Rcaron", 722, NULL },
- { "Kcommaaccent", 667, NULL },
- { "greater", 584, NULL },
- { "atilde", 556, NULL },
- { "brokenbar", 260, NULL },
- { "quoteleft", 222, NULL },
- { "Edotaccent", 667, NULL },
- { "onesuperior", 333, NULL }
+ { "Ntilde", 722, nullptr },
+ { "rcaron", 333, nullptr },
+ { "kcommaaccent", 500, nullptr },
+ { "Ncommaaccent", 722, nullptr },
+ { "Zacute", 611, nullptr },
+ { "comma", 278, nullptr },
+ { "cedilla", 333, nullptr },
+ { "plusminus", 584, nullptr },
+ { "circumflex", 333, nullptr },
+ { "dotaccent", 333, nullptr },
+ { "edotaccent", 556, nullptr },
+ { "asciitilde", 584, nullptr },
+ { "colon", 278, nullptr },
+ { "onehalf", 834, nullptr },
+ { "dollar", 556, nullptr },
+ { "Lcaron", 556, nullptr },
+ { "ntilde", 556, nullptr },
+ { "Aogonek", 667, nullptr },
+ { "ncommaaccent", 556, nullptr },
+ { "minus", 584, nullptr },
+ { "Iogonek", 278, nullptr },
+ { "zacute", 500, nullptr },
+ { "yen", 556, nullptr },
+ { "space", 278, nullptr },
+ { "Omacron", 778, nullptr },
+ { "questiondown", 611, nullptr },
+ { "emdash", 1000, nullptr },
+ { "Agrave", 667, nullptr },
+ { "three", 556, nullptr },
+ { "numbersign", 556, nullptr },
+ { "lcaron", 299, nullptr },
+ { "A", 667, nullptr },
+ { "B", 667, nullptr },
+ { "C", 722, nullptr },
+ { "aogonek", 556, nullptr },
+ { "D", 722, nullptr },
+ { "E", 667, nullptr },
+ { "onequarter", 834, nullptr },
+ { "F", 611, nullptr },
+ { "G", 778, nullptr },
+ { "H", 722, nullptr },
+ { "I", 278, nullptr },
+ { "J", 500, nullptr },
+ { "K", 667, nullptr },
+ { "iogonek", 222, nullptr },
+ { "backslash", 278, nullptr },
+ { "L", 556, nullptr },
+ { "periodcentered", 278, nullptr },
+ { "M", 833, nullptr },
+ { "N", 722, nullptr },
+ { "omacron", 556, nullptr },
+ { "Tcommaaccent", 611, nullptr },
+ { "O", 778, nullptr },
+ { "P", 667, nullptr },
+ { "Q", 778, nullptr },
+ { "Uhungarumlaut", 722, nullptr },
+ { "R", 722, nullptr },
+ { "Aacute", 667, nullptr },
+ { "caron", 333, nullptr },
+ { "S", 667, nullptr },
+ { "T", 611, nullptr },
+ { "U", 722, nullptr },
+ { "agrave", 556, nullptr },
+ { "V", 667, nullptr },
+ { "W", 944, nullptr },
+ { "X", 667, nullptr },
+ { "question", 556, nullptr },
+ { "equal", 584, nullptr },
+ { "Y", 667, nullptr },
+ { "Z", 611, nullptr },
+ { "four", 556, nullptr },
+ { "a", 556, nullptr },
+ { "Gcommaaccent", 778, nullptr },
+ { "b", 556, nullptr },
+ { "c", 500, nullptr },
+ { "d", 556, nullptr },
+ { "e", 556, nullptr },
+ { "f", 278, nullptr },
+ { "g", 556, nullptr },
+ { "bullet", 350, nullptr },
+ { "h", 556, nullptr },
+ { "i", 222, nullptr },
+ { "Oslash", 778, nullptr },
+ { "dagger", 556, nullptr },
+ { "j", 222, nullptr },
+ { "k", 500, nullptr },
+ { "l", 222, nullptr },
+ { "m", 833, nullptr },
+ { "n", 556, nullptr },
+ { "tcommaaccent", 278, nullptr },
+ { "o", 556, nullptr },
+ { "ordfeminine", 370, nullptr },
+ { "ring", 333, nullptr },
+ { "p", 556, nullptr },
+ { "q", 556, nullptr },
+ { "uhungarumlaut", 556, nullptr },
+ { "r", 333, nullptr },
+ { "twosuperior", 333, nullptr },
+ { "aacute", 556, nullptr },
+ { "s", 500, nullptr },
+ { "OE", 1000, nullptr },
+ { "t", 278, nullptr },
+ { "divide", 584, nullptr },
+ { "u", 556, nullptr },
+ { "Ccaron", 722, nullptr },
+ { "v", 500, nullptr },
+ { "w", 722, nullptr },
+ { "x", 500, nullptr },
+ { "y", 500, nullptr },
+ { "z", 500, nullptr },
+ { "Gbreve", 778, nullptr },
+ { "commaaccent", 250, nullptr },
+ { "hungarumlaut", 333, nullptr },
+ { "Idotaccent", 278, nullptr },
+ { "Nacute", 722, nullptr },
+ { "quotedbl", 355, nullptr },
+ { "gcommaaccent", 556, nullptr },
+ { "mu", 556, nullptr },
+ { "greaterequal", 549, nullptr },
+ { "Scaron", 667, nullptr },
+ { "Lslash", 556, nullptr },
+ { "semicolon", 278, nullptr },
+ { "oslash", 611, nullptr },
+ { "lessequal", 549, nullptr },
+ { "lozenge", 471, nullptr },
+ { "parenright", 333, nullptr },
+ { "ccaron", 500, nullptr },
+ { "Ecircumflex", 667, nullptr },
+ { "gbreve", 556, nullptr },
+ { "trademark", 1000, nullptr },
+ { "daggerdbl", 556, nullptr },
+ { "nacute", 556, nullptr },
+ { "macron", 333, nullptr },
+ { "Otilde", 778, nullptr },
+ { "Emacron", 667, nullptr },
+ { "ellipsis", 1000, nullptr },
+ { "scaron", 500, nullptr },
+ { "AE", 1000, nullptr },
+ { "Ucircumflex", 722, nullptr },
+ { "lslash", 222, nullptr },
+ { "quotedblleft", 333, nullptr },
+ { "guilsinglright", 333, nullptr },
+ { "hyphen", 333, nullptr },
+ { "quotesingle", 191, nullptr },
+ { "eight", 556, nullptr },
+ { "exclamdown", 333, nullptr },
+ { "endash", 556, nullptr },
+ { "oe", 944, nullptr },
+ { "Abreve", 667, nullptr },
+ { "Umacron", 722, nullptr },
+ { "ecircumflex", 556, nullptr },
+ { "Adieresis", 667, nullptr },
+ { "copyright", 737, nullptr },
+ { "Egrave", 667, nullptr },
+ { "slash", 278, nullptr },
+ { "Edieresis", 667, nullptr },
+ { "otilde", 556, nullptr },
+ { "Idieresis", 278, nullptr },
+ { "parenleft", 333, nullptr },
+ { "one", 556, nullptr },
+ { "emacron", 556, nullptr },
+ { "Odieresis", 778, nullptr },
+ { "ucircumflex", 556, nullptr },
+ { "bracketleft", 278, nullptr },
+ { "Ugrave", 722, nullptr },
+ { "quoteright", 222, nullptr },
+ { "Udieresis", 722, nullptr },
+ { "perthousand", 1000, nullptr },
+ { "Ydieresis", 667, nullptr },
+ { "umacron", 556, nullptr },
+ { "abreve", 556, nullptr },
+ { "Eacute", 667, nullptr },
+ { "adieresis", 556, nullptr },
+ { "egrave", 556, nullptr },
+ { "edieresis", 556, nullptr },
+ { "idieresis", 278, nullptr },
+ { "Eth", 722, nullptr },
+ { "ae", 889, nullptr },
+ { "asterisk", 389, nullptr },
+ { "odieresis", 556, nullptr },
+ { "Uacute", 722, nullptr },
+ { "ugrave", 556, nullptr },
+ { "nine", 556, nullptr },
+ { "five", 556, nullptr },
+ { "udieresis", 556, nullptr },
+ { "Zcaron", 611, nullptr },
+ { "Scommaaccent", 667, nullptr },
+ { "threequarters", 834, nullptr },
+ { "guillemotright", 556, nullptr },
+ { "Ccedilla", 722, nullptr },
+ { "ydieresis", 500, nullptr },
+ { "tilde", 333, nullptr },
+ { "at", 1015, nullptr },
+ { "eacute", 556, nullptr },
+ { "underscore", 556, nullptr },
+ { "Euro", 556, nullptr },
+ { "Dcroat", 722, nullptr },
+ { "multiply", 584, nullptr },
+ { "zero", 556, nullptr },
+ { "eth", 556, nullptr },
+ { "Scedilla", 667, nullptr },
+ { "Ograve", 778, nullptr },
+ { "Racute", 722, nullptr },
+ { "partialdiff", 476, nullptr },
+ { "uacute", 556, nullptr },
+ { "braceleft", 334, nullptr },
+ { "Thorn", 667, nullptr },
+ { "zcaron", 500, nullptr },
+ { "scommaaccent", 500, nullptr },
+ { "ccedilla", 500, nullptr },
+ { "Dcaron", 722, nullptr },
+ { "dcroat", 556, nullptr },
+ { "Ocircumflex", 778, nullptr },
+ { "Oacute", 778, nullptr },
+ { "scedilla", 500, nullptr },
+ { "ogonek", 333, nullptr },
+ { "ograve", 556, nullptr },
+ { "racute", 333, nullptr },
+ { "Tcaron", 611, nullptr },
+ { "Eogonek", 667, nullptr },
+ { "thorn", 556, nullptr },
+ { "degree", 400, nullptr },
+ { "registered", 737, nullptr },
+ { "radical", 453, nullptr },
+ { "Aring", 667, nullptr },
+ { "percent", 889, nullptr },
+ { "six", 556, nullptr },
+ { "paragraph", 537, nullptr },
+ { "dcaron", 643, nullptr },
+ { "Uogonek", 722, nullptr },
+ { "two", 556, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 278, nullptr },
+ { "Lacute", 556, nullptr },
+ { "ocircumflex", 556, nullptr },
+ { "oacute", 556, nullptr },
+ { "Uring", 722, nullptr },
+ { "Lcommaaccent", 556, nullptr },
+ { "tcaron", 317, nullptr },
+ { "eogonek", 556, nullptr },
+ { "Delta", 612, nullptr },
+ { "Ohungarumlaut", 778, nullptr },
+ { "asciicircum", 469, nullptr },
+ { "aring", 556, nullptr },
+ { "grave", 333, nullptr },
+ { "uogonek", 556, nullptr },
+ { "bracketright", 278, nullptr },
+ { "Iacute", 278, nullptr },
+ { "ampersand", 667, nullptr },
+ { "igrave", 278, nullptr },
+ { "lacute", 222, nullptr },
+ { "Ncaron", 722, nullptr },
+ { "plus", 584, nullptr },
+ { "uring", 556, nullptr },
+ { "quotesinglbase", 222, nullptr },
+ { "lcommaaccent", 222, nullptr },
+ { "Yacute", 667, nullptr },
+ { "ohungarumlaut", 556, nullptr },
+ { "threesuperior", 333, nullptr },
+ { "acute", 333, nullptr },
+ { "section", 556, nullptr },
+ { "dieresis", 333, nullptr },
+ { "iacute", 278, nullptr },
+ { "quotedblbase", 333, nullptr },
+ { "ncaron", 556, nullptr },
+ { "florin", 556, nullptr },
+ { "yacute", 500, nullptr },
+ { "Rcommaaccent", 722, nullptr },
+ { "fi", 500, nullptr },
+ { "fl", 500, nullptr },
+ { "Acircumflex", 667, nullptr },
+ { "Cacute", 722, nullptr },
+ { "Icircumflex", 278, nullptr },
+ { "guillemotleft", 556, nullptr },
+ { "germandbls", 611, nullptr },
+ { "Amacron", 667, nullptr },
+ { "seven", 556, nullptr },
+ { "Sacute", 667, nullptr },
+ { "ordmasculine", 365, nullptr },
+ { "dotlessi", 278, nullptr },
+ { "sterling", 556, nullptr },
+ { "notequal", 549, nullptr },
+ { "Imacron", 278, nullptr },
+ { "rcommaaccent", 333, nullptr },
+ { "Zdotaccent", 611, nullptr },
+ { "acircumflex", 556, nullptr },
+ { "cacute", 500, nullptr },
+ { "Ecaron", 667, nullptr },
+ { "icircumflex", 278, nullptr },
+ { "braceright", 334, nullptr },
+ { "quotedblright", 333, nullptr },
+ { "amacron", 556, nullptr },
+ { "sacute", 500, nullptr },
+ { "imacron", 278, nullptr },
+ { "cent", 556, nullptr },
+ { "currency", 556, nullptr },
+ { "logicalnot", 584, nullptr },
+ { "zdotaccent", 500, nullptr },
+ { "Atilde", 667, nullptr },
+ { "breve", 333, nullptr },
+ { "bar", 260, nullptr },
+ { "fraction", 167, nullptr },
+ { "less", 584, nullptr },
+ { "ecaron", 556, nullptr },
+ { "guilsinglleft", 333, nullptr },
+ { "exclam", 278, nullptr },
+ { "period", 278, nullptr },
+ { "Rcaron", 722, nullptr },
+ { "Kcommaaccent", 667, nullptr },
+ { "greater", 584, nullptr },
+ { "atilde", 556, nullptr },
+ { "brokenbar", 260, nullptr },
+ { "quoteleft", 222, nullptr },
+ { "Edotaccent", 667, nullptr },
+ { "onesuperior", 333, nullptr }
};
static BuiltinFontWidth symbolWidthsTab[] = {
- { "bracketleftex", 384, NULL },
- { "alpha", 631, NULL },
- { "union", 768, NULL },
- { "infinity", 713, NULL },
- { "comma", 250, NULL },
- { "copyrightsans", 790, NULL },
- { "plusminus", 549, NULL },
- { "arrowup", 603, NULL },
- { "apple", 790, NULL },
- { "parenleftbt", 384, NULL },
- { "notelement", 713, NULL },
- { "colon", 278, NULL },
- { "beta", 549, NULL },
- { "braceleftbt", 494, NULL },
- { "Lambda", 686, NULL },
- { "Phi", 763, NULL },
- { "minus", 549, NULL },
- { "space", 250, NULL },
- { "Sigma", 592, NULL },
- { "approxequal", 549, NULL },
- { "minute", 247, NULL },
- { "circleplus", 768, NULL },
- { "Omicron", 722, NULL },
- { "three", 500, NULL },
- { "numbersign", 500, NULL },
- { "lambda", 549, NULL },
- { "phi", 521, NULL },
- { "aleph", 823, NULL },
- { "Tau", 611, NULL },
- { "spade", 753, NULL },
- { "logicaland", 603, NULL },
- { "sigma", 603, NULL },
- { "propersuperset", 713, NULL },
- { "omicron", 549, NULL },
- { "question", 444, NULL },
- { "equal", 549, NULL },
- { "Epsilon", 611, NULL },
- { "emptyset", 823, NULL },
- { "diamond", 753, NULL },
- { "four", 500, NULL },
- { "Mu", 889, NULL },
- { "parenlefttp", 384, NULL },
- { "club", 753, NULL },
- { "bullet", 460, NULL },
- { "Omega", 768, NULL },
- { "tau", 439, NULL },
- { "Upsilon", 690, NULL },
- { "bracelefttp", 494, NULL },
- { "heart", 753, NULL },
- { "divide", 549, NULL },
- { "epsilon", 439, NULL },
- { "logicalor", 603, NULL },
- { "parenleftex", 384, NULL },
- { "greaterequal", 549, NULL },
- { "mu", 576, NULL },
- { "Nu", 722, NULL },
- { "therefore", 863, NULL },
- { "notsubset", 713, NULL },
- { "omega", 686, NULL },
- { "semicolon", 278, NULL },
- { "element", 713, NULL },
- { "upsilon", 576, NULL },
- { "existential", 549, NULL },
- { "integralbt", 686, NULL },
- { "lessequal", 549, NULL },
- { "phi1", 603, NULL },
- { "lozenge", 494, NULL },
- { "trademarkserif", 890, NULL },
- { "parenright", 333, NULL },
- { "reflexsuperset", 713, NULL },
- { "sigma1", 439, NULL },
- { "nu", 521, NULL },
- { "Gamma", 603, NULL },
- { "angleright", 329, NULL },
- { "ellipsis", 1000, NULL },
- { "Rho", 556, NULL },
- { "parenrightbt", 384, NULL },
- { "radicalex", 500, NULL },
- { "eight", 500, NULL },
- { "angleleft", 329, NULL },
- { "arrowdbldown", 603, NULL },
- { "congruent", 549, NULL },
- { "Theta", 741, NULL },
- { "intersection", 768, NULL },
- { "Pi", 768, NULL },
- { "slash", 278, NULL },
- { "registerserif", 790, NULL },
- { "parenleft", 333, NULL },
- { "one", 500, NULL },
- { "gamma", 411, NULL },
- { "bracketleft", 333, NULL },
- { "rho", 549, NULL },
- { "circlemultiply", 768, NULL },
- { "Chi", 722, NULL },
- { "theta", 521, NULL },
- { "pi", 549, NULL },
- { "integraltp", 686, NULL },
- { "Eta", 722, NULL },
- { "product", 823, NULL },
- { "nine", 500, NULL },
- { "five", 500, NULL },
- { "propersubset", 713, NULL },
- { "bracketrightbt", 384, NULL },
- { "trademarksans", 786, NULL },
- { "dotmath", 250, NULL },
- { "integralex", 686, NULL },
- { "chi", 549, NULL },
- { "parenrighttp", 384, NULL },
- { "eta", 603, NULL },
- { "underscore", 500, NULL },
- { "Euro", 750, NULL },
- { "multiply", 549, NULL },
- { "zero", 500, NULL },
- { "partialdiff", 494, NULL },
- { "angle", 768, NULL },
- { "arrowdblleft", 987, NULL },
- { "braceleft", 480, NULL },
- { "parenrightex", 384, NULL },
- { "Rfraktur", 795, NULL },
- { "Zeta", 611, NULL },
- { "braceex", 494, NULL },
- { "arrowdblup", 603, NULL },
- { "arrowdown", 603, NULL },
- { "Ifraktur", 686, NULL },
- { "degree", 400, NULL },
- { "Iota", 333, NULL },
- { "perpendicular", 658, NULL },
- { "radical", 549, NULL },
- { "asteriskmath", 500, NULL },
- { "percent", 833, NULL },
- { "zeta", 494, NULL },
- { "six", 500, NULL },
- { "two", 500, NULL },
- { "weierstrass", 987, NULL },
- { "summation", 713, NULL },
- { "bracketrighttp", 384, NULL },
- { "carriagereturn", 658, NULL },
- { "suchthat", 439, NULL },
- { "arrowvertex", 603, NULL },
- { "Delta", 612, NULL },
- { "iota", 329, NULL },
- { "arrowhorizex", 1000, NULL },
- { "bracketrightex", 384, NULL },
- { "bracketright", 333, NULL },
- { "ampersand", 778, NULL },
- { "plus", 549, NULL },
- { "proportional", 713, NULL },
- { "delta", 494, NULL },
- { "copyrightserif", 790, NULL },
- { "bracerightmid", 494, NULL },
- { "arrowleft", 987, NULL },
- { "second", 411, NULL },
- { "arrowdblboth", 1042, NULL },
- { "florin", 500, NULL },
- { "Psi", 795, NULL },
- { "bracerightbt", 494, NULL },
- { "bracketleftbt", 384, NULL },
- { "seven", 500, NULL },
- { "braceleftmid", 494, NULL },
- { "notequal", 549, NULL },
- { "psi", 686, NULL },
- { "equivalence", 549, NULL },
- { "universal", 713, NULL },
- { "arrowdblright", 987, NULL },
- { "braceright", 480, NULL },
- { "reflexsubset", 713, NULL },
- { "Xi", 645, NULL },
- { "theta1", 631, NULL },
- { "logicalnot", 713, NULL },
- { "Kappa", 722, NULL },
- { "similar", 549, NULL },
- { "bar", 200, NULL },
- { "fraction", 167, NULL },
- { "less", 549, NULL },
- { "registersans", 790, NULL },
- { "omega1", 713, NULL },
- { "exclam", 333, NULL },
- { "Upsilon1", 620, NULL },
- { "bracerighttp", 494, NULL },
- { "xi", 493, NULL },
- { "period", 250, NULL },
- { "Alpha", 722, NULL },
- { "arrowright", 987, NULL },
- { "greater", 549, NULL },
- { "bracketlefttp", 384, NULL },
- { "kappa", 549, NULL },
- { "gradient", 713, NULL },
- { "integral", 274, NULL },
- { "arrowboth", 1042, NULL },
- { "Beta", 667, NULL }
+ { "bracketleftex", 384, nullptr },
+ { "alpha", 631, nullptr },
+ { "union", 768, nullptr },
+ { "infinity", 713, nullptr },
+ { "comma", 250, nullptr },
+ { "copyrightsans", 790, nullptr },
+ { "plusminus", 549, nullptr },
+ { "arrowup", 603, nullptr },
+ { "apple", 790, nullptr },
+ { "parenleftbt", 384, nullptr },
+ { "notelement", 713, nullptr },
+ { "colon", 278, nullptr },
+ { "beta", 549, nullptr },
+ { "braceleftbt", 494, nullptr },
+ { "Lambda", 686, nullptr },
+ { "Phi", 763, nullptr },
+ { "minus", 549, nullptr },
+ { "space", 250, nullptr },
+ { "Sigma", 592, nullptr },
+ { "approxequal", 549, nullptr },
+ { "minute", 247, nullptr },
+ { "circleplus", 768, nullptr },
+ { "Omicron", 722, nullptr },
+ { "three", 500, nullptr },
+ { "numbersign", 500, nullptr },
+ { "lambda", 549, nullptr },
+ { "phi", 521, nullptr },
+ { "aleph", 823, nullptr },
+ { "Tau", 611, nullptr },
+ { "spade", 753, nullptr },
+ { "logicaland", 603, nullptr },
+ { "sigma", 603, nullptr },
+ { "propersuperset", 713, nullptr },
+ { "omicron", 549, nullptr },
+ { "question", 444, nullptr },
+ { "equal", 549, nullptr },
+ { "Epsilon", 611, nullptr },
+ { "emptyset", 823, nullptr },
+ { "diamond", 753, nullptr },
+ { "four", 500, nullptr },
+ { "Mu", 889, nullptr },
+ { "parenlefttp", 384, nullptr },
+ { "club", 753, nullptr },
+ { "bullet", 460, nullptr },
+ { "Omega", 768, nullptr },
+ { "tau", 439, nullptr },
+ { "Upsilon", 690, nullptr },
+ { "bracelefttp", 494, nullptr },
+ { "heart", 753, nullptr },
+ { "divide", 549, nullptr },
+ { "epsilon", 439, nullptr },
+ { "logicalor", 603, nullptr },
+ { "parenleftex", 384, nullptr },
+ { "greaterequal", 549, nullptr },
+ { "mu", 576, nullptr },
+ { "Nu", 722, nullptr },
+ { "therefore", 863, nullptr },
+ { "notsubset", 713, nullptr },
+ { "omega", 686, nullptr },
+ { "semicolon", 278, nullptr },
+ { "element", 713, nullptr },
+ { "upsilon", 576, nullptr },
+ { "existential", 549, nullptr },
+ { "integralbt", 686, nullptr },
+ { "lessequal", 549, nullptr },
+ { "phi1", 603, nullptr },
+ { "lozenge", 494, nullptr },
+ { "trademarkserif", 890, nullptr },
+ { "parenright", 333, nullptr },
+ { "reflexsuperset", 713, nullptr },
+ { "sigma1", 439, nullptr },
+ { "nu", 521, nullptr },
+ { "Gamma", 603, nullptr },
+ { "angleright", 329, nullptr },
+ { "ellipsis", 1000, nullptr },
+ { "Rho", 556, nullptr },
+ { "parenrightbt", 384, nullptr },
+ { "radicalex", 500, nullptr },
+ { "eight", 500, nullptr },
+ { "angleleft", 329, nullptr },
+ { "arrowdbldown", 603, nullptr },
+ { "congruent", 549, nullptr },
+ { "Theta", 741, nullptr },
+ { "intersection", 768, nullptr },
+ { "Pi", 768, nullptr },
+ { "slash", 278, nullptr },
+ { "registerserif", 790, nullptr },
+ { "parenleft", 333, nullptr },
+ { "one", 500, nullptr },
+ { "gamma", 411, nullptr },
+ { "bracketleft", 333, nullptr },
+ { "rho", 549, nullptr },
+ { "circlemultiply", 768, nullptr },
+ { "Chi", 722, nullptr },
+ { "theta", 521, nullptr },
+ { "pi", 549, nullptr },
+ { "integraltp", 686, nullptr },
+ { "Eta", 722, nullptr },
+ { "product", 823, nullptr },
+ { "nine", 500, nullptr },
+ { "five", 500, nullptr },
+ { "propersubset", 713, nullptr },
+ { "bracketrightbt", 384, nullptr },
+ { "trademarksans", 786, nullptr },
+ { "dotmath", 250, nullptr },
+ { "integralex", 686, nullptr },
+ { "chi", 549, nullptr },
+ { "parenrighttp", 384, nullptr },
+ { "eta", 603, nullptr },
+ { "underscore", 500, nullptr },
+ { "Euro", 750, nullptr },
+ { "multiply", 549, nullptr },
+ { "zero", 500, nullptr },
+ { "partialdiff", 494, nullptr },
+ { "angle", 768, nullptr },
+ { "arrowdblleft", 987, nullptr },
+ { "braceleft", 480, nullptr },
+ { "parenrightex", 384, nullptr },
+ { "Rfraktur", 795, nullptr },
+ { "Zeta", 611, nullptr },
+ { "braceex", 494, nullptr },
+ { "arrowdblup", 603, nullptr },
+ { "arrowdown", 603, nullptr },
+ { "Ifraktur", 686, nullptr },
+ { "degree", 400, nullptr },
+ { "Iota", 333, nullptr },
+ { "perpendicular", 658, nullptr },
+ { "radical", 549, nullptr },
+ { "asteriskmath", 500, nullptr },
+ { "percent", 833, nullptr },
+ { "zeta", 494, nullptr },
+ { "six", 500, nullptr },
+ { "two", 500, nullptr },
+ { "weierstrass", 987, nullptr },
+ { "summation", 713, nullptr },
+ { "bracketrighttp", 384, nullptr },
+ { "carriagereturn", 658, nullptr },
+ { "suchthat", 439, nullptr },
+ { "arrowvertex", 603, nullptr },
+ { "Delta", 612, nullptr },
+ { "iota", 329, nullptr },
+ { "arrowhorizex", 1000, nullptr },
+ { "bracketrightex", 384, nullptr },
+ { "bracketright", 333, nullptr },
+ { "ampersand", 778, nullptr },
+ { "plus", 549, nullptr },
+ { "proportional", 713, nullptr },
+ { "delta", 494, nullptr },
+ { "copyrightserif", 790, nullptr },
+ { "bracerightmid", 494, nullptr },
+ { "arrowleft", 987, nullptr },
+ { "second", 411, nullptr },
+ { "arrowdblboth", 1042, nullptr },
+ { "florin", 500, nullptr },
+ { "Psi", 795, nullptr },
+ { "bracerightbt", 494, nullptr },
+ { "bracketleftbt", 384, nullptr },
+ { "seven", 500, nullptr },
+ { "braceleftmid", 494, nullptr },
+ { "notequal", 549, nullptr },
+ { "psi", 686, nullptr },
+ { "equivalence", 549, nullptr },
+ { "universal", 713, nullptr },
+ { "arrowdblright", 987, nullptr },
+ { "braceright", 480, nullptr },
+ { "reflexsubset", 713, nullptr },
+ { "Xi", 645, nullptr },
+ { "theta1", 631, nullptr },
+ { "logicalnot", 713, nullptr },
+ { "Kappa", 722, nullptr },
+ { "similar", 549, nullptr },
+ { "bar", 200, nullptr },
+ { "fraction", 167, nullptr },
+ { "less", 549, nullptr },
+ { "registersans", 790, nullptr },
+ { "omega1", 713, nullptr },
+ { "exclam", 333, nullptr },
+ { "Upsilon1", 620, nullptr },
+ { "bracerighttp", 494, nullptr },
+ { "xi", 493, nullptr },
+ { "period", 250, nullptr },
+ { "Alpha", 722, nullptr },
+ { "arrowright", 987, nullptr },
+ { "greater", 549, nullptr },
+ { "bracketlefttp", 384, nullptr },
+ { "kappa", 549, nullptr },
+ { "gradient", 713, nullptr },
+ { "integral", 274, nullptr },
+ { "arrowboth", 1042, nullptr },
+ { "Beta", 667, nullptr }
};
static BuiltinFontWidth timesBoldWidthsTab[] = {
- { "Ntilde", 722, NULL },
- { "rcaron", 444, NULL },
- { "kcommaaccent", 556, NULL },
- { "Ncommaaccent", 722, NULL },
- { "Zacute", 667, NULL },
- { "comma", 250, NULL },
- { "cedilla", 333, NULL },
- { "plusminus", 570, NULL },
- { "circumflex", 333, NULL },
- { "dotaccent", 333, NULL },
- { "edotaccent", 444, NULL },
- { "asciitilde", 520, NULL },
- { "colon", 333, NULL },
- { "onehalf", 750, NULL },
- { "dollar", 500, NULL },
- { "Lcaron", 667, NULL },
- { "ntilde", 556, NULL },
- { "Aogonek", 722, NULL },
- { "ncommaaccent", 556, NULL },
- { "minus", 570, NULL },
- { "Iogonek", 389, NULL },
- { "zacute", 444, NULL },
- { "yen", 500, NULL },
- { "space", 250, NULL },
- { "Omacron", 778, NULL },
- { "questiondown", 500, NULL },
- { "emdash", 1000, NULL },
- { "Agrave", 722, NULL },
- { "three", 500, NULL },
- { "numbersign", 500, NULL },
- { "lcaron", 394, NULL },
- { "A", 722, NULL },
- { "B", 667, NULL },
- { "C", 722, NULL },
- { "aogonek", 500, NULL },
- { "D", 722, NULL },
- { "E", 667, NULL },
- { "onequarter", 750, NULL },
- { "F", 611, NULL },
- { "G", 778, NULL },
- { "H", 778, NULL },
- { "I", 389, NULL },
- { "J", 500, NULL },
- { "K", 778, NULL },
- { "iogonek", 278, NULL },
- { "backslash", 278, NULL },
- { "L", 667, NULL },
- { "periodcentered", 250, NULL },
- { "M", 944, NULL },
- { "N", 722, NULL },
- { "omacron", 500, NULL },
- { "Tcommaaccent", 667, NULL },
- { "O", 778, NULL },
- { "P", 611, NULL },
- { "Q", 778, NULL },
- { "Uhungarumlaut", 722, NULL },
- { "R", 722, NULL },
- { "Aacute", 722, NULL },
- { "caron", 333, NULL },
- { "S", 556, NULL },
- { "T", 667, NULL },
- { "U", 722, NULL },
- { "agrave", 500, NULL },
- { "V", 722, NULL },
- { "W", 1000, NULL },
- { "X", 722, NULL },
- { "question", 500, NULL },
- { "equal", 570, NULL },
- { "Y", 722, NULL },
- { "Z", 667, NULL },
- { "four", 500, NULL },
- { "a", 500, NULL },
- { "Gcommaaccent", 778, NULL },
- { "b", 556, NULL },
- { "c", 444, NULL },
- { "d", 556, NULL },
- { "e", 444, NULL },
- { "f", 333, NULL },
- { "g", 500, NULL },
- { "bullet", 350, NULL },
- { "h", 556, NULL },
- { "i", 278, NULL },
- { "Oslash", 778, NULL },
- { "dagger", 500, NULL },
- { "j", 333, NULL },
- { "k", 556, NULL },
- { "l", 278, NULL },
- { "m", 833, NULL },
- { "n", 556, NULL },
- { "tcommaaccent", 333, NULL },
- { "o", 500, NULL },
- { "ordfeminine", 300, NULL },
- { "ring", 333, NULL },
- { "p", 556, NULL },
- { "q", 556, NULL },
- { "uhungarumlaut", 556, NULL },
- { "r", 444, NULL },
- { "twosuperior", 300, NULL },
- { "aacute", 500, NULL },
- { "s", 389, NULL },
- { "OE", 1000, NULL },
- { "t", 333, NULL },
- { "divide", 570, NULL },
- { "u", 556, NULL },
- { "Ccaron", 722, NULL },
- { "v", 500, NULL },
- { "w", 722, NULL },
- { "x", 500, NULL },
- { "y", 500, NULL },
- { "z", 444, NULL },
- { "Gbreve", 778, NULL },
- { "commaaccent", 250, NULL },
- { "hungarumlaut", 333, NULL },
- { "Idotaccent", 389, NULL },
- { "Nacute", 722, NULL },
- { "quotedbl", 555, NULL },
- { "gcommaaccent", 500, NULL },
- { "mu", 556, NULL },
- { "greaterequal", 549, NULL },
- { "Scaron", 556, NULL },
- { "Lslash", 667, NULL },
- { "semicolon", 333, NULL },
- { "oslash", 500, NULL },
- { "lessequal", 549, NULL },
- { "lozenge", 494, NULL },
- { "parenright", 333, NULL },
- { "ccaron", 444, NULL },
- { "Ecircumflex", 667, NULL },
- { "gbreve", 500, NULL },
- { "trademark", 1000, NULL },
- { "daggerdbl", 500, NULL },
- { "nacute", 556, NULL },
- { "macron", 333, NULL },
- { "Otilde", 778, NULL },
- { "Emacron", 667, NULL },
- { "ellipsis", 1000, NULL },
- { "scaron", 389, NULL },
- { "AE", 1000, NULL },
- { "Ucircumflex", 722, NULL },
- { "lslash", 278, NULL },
- { "quotedblleft", 500, NULL },
- { "guilsinglright", 333, NULL },
- { "hyphen", 333, NULL },
- { "quotesingle", 278, NULL },
- { "eight", 500, NULL },
- { "exclamdown", 333, NULL },
- { "endash", 500, NULL },
- { "oe", 722, NULL },
- { "Abreve", 722, NULL },
- { "Umacron", 722, NULL },
- { "ecircumflex", 444, NULL },
- { "Adieresis", 722, NULL },
- { "copyright", 747, NULL },
- { "Egrave", 667, NULL },
- { "slash", 278, NULL },
- { "Edieresis", 667, NULL },
- { "otilde", 500, NULL },
- { "Idieresis", 389, NULL },
- { "parenleft", 333, NULL },
- { "one", 500, NULL },
- { "emacron", 444, NULL },
- { "Odieresis", 778, NULL },
- { "ucircumflex", 556, NULL },
- { "bracketleft", 333, NULL },
- { "Ugrave", 722, NULL },
- { "quoteright", 333, NULL },
- { "Udieresis", 722, NULL },
- { "perthousand", 1000, NULL },
- { "Ydieresis", 722, NULL },
- { "umacron", 556, NULL },
- { "abreve", 500, NULL },
- { "Eacute", 667, NULL },
- { "adieresis", 500, NULL },
- { "egrave", 444, NULL },
- { "edieresis", 444, NULL },
- { "idieresis", 278, NULL },
- { "Eth", 722, NULL },
- { "ae", 722, NULL },
- { "asterisk", 500, NULL },
- { "odieresis", 500, NULL },
- { "Uacute", 722, NULL },
- { "ugrave", 556, NULL },
- { "nine", 500, NULL },
- { "five", 500, NULL },
- { "udieresis", 556, NULL },
- { "Zcaron", 667, NULL },
- { "Scommaaccent", 556, NULL },
- { "threequarters", 750, NULL },
- { "guillemotright", 500, NULL },
- { "Ccedilla", 722, NULL },
- { "ydieresis", 500, NULL },
- { "tilde", 333, NULL },
- { "at", 930, NULL },
- { "eacute", 444, NULL },
- { "underscore", 500, NULL },
- { "Euro", 500, NULL },
- { "Dcroat", 722, NULL },
- { "multiply", 570, NULL },
- { "zero", 500, NULL },
- { "eth", 500, NULL },
- { "Scedilla", 556, NULL },
- { "Ograve", 778, NULL },
- { "Racute", 722, NULL },
- { "partialdiff", 494, NULL },
- { "uacute", 556, NULL },
- { "braceleft", 394, NULL },
- { "Thorn", 611, NULL },
- { "zcaron", 444, NULL },
- { "scommaaccent", 389, NULL },
- { "ccedilla", 444, NULL },
- { "Dcaron", 722, NULL },
- { "dcroat", 556, NULL },
- { "Ocircumflex", 778, NULL },
- { "Oacute", 778, NULL },
- { "scedilla", 389, NULL },
- { "ogonek", 333, NULL },
- { "ograve", 500, NULL },
- { "racute", 444, NULL },
- { "Tcaron", 667, NULL },
- { "Eogonek", 667, NULL },
- { "thorn", 556, NULL },
- { "degree", 400, NULL },
- { "registered", 747, NULL },
- { "radical", 549, NULL },
- { "Aring", 722, NULL },
- { "percent", 1000, NULL },
- { "six", 500, NULL },
- { "paragraph", 540, NULL },
- { "dcaron", 672, NULL },
- { "Uogonek", 722, NULL },
- { "two", 500, NULL },
- { "summation", 600, NULL },
- { "Igrave", 389, NULL },
- { "Lacute", 667, NULL },
- { "ocircumflex", 500, NULL },
- { "oacute", 500, NULL },
- { "Uring", 722, NULL },
- { "Lcommaaccent", 667, NULL },
- { "tcaron", 416, NULL },
- { "eogonek", 444, NULL },
- { "Delta", 612, NULL },
- { "Ohungarumlaut", 778, NULL },
- { "asciicircum", 581, NULL },
- { "aring", 500, NULL },
- { "grave", 333, NULL },
- { "uogonek", 556, NULL },
- { "bracketright", 333, NULL },
- { "Iacute", 389, NULL },
- { "ampersand", 833, NULL },
- { "igrave", 278, NULL },
- { "lacute", 278, NULL },
- { "Ncaron", 722, NULL },
- { "plus", 570, NULL },
- { "uring", 556, NULL },
- { "quotesinglbase", 333, NULL },
- { "lcommaaccent", 278, NULL },
- { "Yacute", 722, NULL },
- { "ohungarumlaut", 500, NULL },
- { "threesuperior", 300, NULL },
- { "acute", 333, NULL },
- { "section", 500, NULL },
- { "dieresis", 333, NULL },
- { "iacute", 278, NULL },
- { "quotedblbase", 500, NULL },
- { "ncaron", 556, NULL },
- { "florin", 500, NULL },
- { "yacute", 500, NULL },
- { "Rcommaaccent", 722, NULL },
- { "fi", 556, NULL },
- { "fl", 556, NULL },
- { "Acircumflex", 722, NULL },
- { "Cacute", 722, NULL },
- { "Icircumflex", 389, NULL },
- { "guillemotleft", 500, NULL },
- { "germandbls", 556, NULL },
- { "Amacron", 722, NULL },
- { "seven", 500, NULL },
- { "Sacute", 556, NULL },
- { "ordmasculine", 330, NULL },
- { "dotlessi", 278, NULL },
- { "sterling", 500, NULL },
- { "notequal", 549, NULL },
- { "Imacron", 389, NULL },
- { "rcommaaccent", 444, NULL },
- { "Zdotaccent", 667, NULL },
- { "acircumflex", 500, NULL },
- { "cacute", 444, NULL },
- { "Ecaron", 667, NULL },
- { "icircumflex", 278, NULL },
- { "braceright", 394, NULL },
- { "quotedblright", 500, NULL },
- { "amacron", 500, NULL },
- { "sacute", 389, NULL },
- { "imacron", 278, NULL },
- { "cent", 500, NULL },
- { "currency", 500, NULL },
- { "logicalnot", 570, NULL },
- { "zdotaccent", 444, NULL },
- { "Atilde", 722, NULL },
- { "breve", 333, NULL },
- { "bar", 220, NULL },
- { "fraction", 167, NULL },
- { "less", 570, NULL },
- { "ecaron", 444, NULL },
- { "guilsinglleft", 333, NULL },
- { "exclam", 333, NULL },
- { "period", 250, NULL },
- { "Rcaron", 722, NULL },
- { "Kcommaaccent", 778, NULL },
- { "greater", 570, NULL },
- { "atilde", 500, NULL },
- { "brokenbar", 220, NULL },
- { "quoteleft", 333, NULL },
- { "Edotaccent", 667, NULL },
- { "onesuperior", 300, NULL }
+ { "Ntilde", 722, nullptr },
+ { "rcaron", 444, nullptr },
+ { "kcommaaccent", 556, nullptr },
+ { "Ncommaaccent", 722, nullptr },
+ { "Zacute", 667, nullptr },
+ { "comma", 250, nullptr },
+ { "cedilla", 333, nullptr },
+ { "plusminus", 570, nullptr },
+ { "circumflex", 333, nullptr },
+ { "dotaccent", 333, nullptr },
+ { "edotaccent", 444, nullptr },
+ { "asciitilde", 520, nullptr },
+ { "colon", 333, nullptr },
+ { "onehalf", 750, nullptr },
+ { "dollar", 500, nullptr },
+ { "Lcaron", 667, nullptr },
+ { "ntilde", 556, nullptr },
+ { "Aogonek", 722, nullptr },
+ { "ncommaaccent", 556, nullptr },
+ { "minus", 570, nullptr },
+ { "Iogonek", 389, nullptr },
+ { "zacute", 444, nullptr },
+ { "yen", 500, nullptr },
+ { "space", 250, nullptr },
+ { "Omacron", 778, nullptr },
+ { "questiondown", 500, nullptr },
+ { "emdash", 1000, nullptr },
+ { "Agrave", 722, nullptr },
+ { "three", 500, nullptr },
+ { "numbersign", 500, nullptr },
+ { "lcaron", 394, nullptr },
+ { "A", 722, nullptr },
+ { "B", 667, nullptr },
+ { "C", 722, nullptr },
+ { "aogonek", 500, nullptr },
+ { "D", 722, nullptr },
+ { "E", 667, nullptr },
+ { "onequarter", 750, nullptr },
+ { "F", 611, nullptr },
+ { "G", 778, nullptr },
+ { "H", 778, nullptr },
+ { "I", 389, nullptr },
+ { "J", 500, nullptr },
+ { "K", 778, nullptr },
+ { "iogonek", 278, nullptr },
+ { "backslash", 278, nullptr },
+ { "L", 667, nullptr },
+ { "periodcentered", 250, nullptr },
+ { "M", 944, nullptr },
+ { "N", 722, nullptr },
+ { "omacron", 500, nullptr },
+ { "Tcommaaccent", 667, nullptr },
+ { "O", 778, nullptr },
+ { "P", 611, nullptr },
+ { "Q", 778, nullptr },
+ { "Uhungarumlaut", 722, nullptr },
+ { "R", 722, nullptr },
+ { "Aacute", 722, nullptr },
+ { "caron", 333, nullptr },
+ { "S", 556, nullptr },
+ { "T", 667, nullptr },
+ { "U", 722, nullptr },
+ { "agrave", 500, nullptr },
+ { "V", 722, nullptr },
+ { "W", 1000, nullptr },
+ { "X", 722, nullptr },
+ { "question", 500, nullptr },
+ { "equal", 570, nullptr },
+ { "Y", 722, nullptr },
+ { "Z", 667, nullptr },
+ { "four", 500, nullptr },
+ { "a", 500, nullptr },
+ { "Gcommaaccent", 778, nullptr },
+ { "b", 556, nullptr },
+ { "c", 444, nullptr },
+ { "d", 556, nullptr },
+ { "e", 444, nullptr },
+ { "f", 333, nullptr },
+ { "g", 500, nullptr },
+ { "bullet", 350, nullptr },
+ { "h", 556, nullptr },
+ { "i", 278, nullptr },
+ { "Oslash", 778, nullptr },
+ { "dagger", 500, nullptr },
+ { "j", 333, nullptr },
+ { "k", 556, nullptr },
+ { "l", 278, nullptr },
+ { "m", 833, nullptr },
+ { "n", 556, nullptr },
+ { "tcommaaccent", 333, nullptr },
+ { "o", 500, nullptr },
+ { "ordfeminine", 300, nullptr },
+ { "ring", 333, nullptr },
+ { "p", 556, nullptr },
+ { "q", 556, nullptr },
+ { "uhungarumlaut", 556, nullptr },
+ { "r", 444, nullptr },
+ { "twosuperior", 300, nullptr },
+ { "aacute", 500, nullptr },
+ { "s", 389, nullptr },
+ { "OE", 1000, nullptr },
+ { "t", 333, nullptr },
+ { "divide", 570, nullptr },
+ { "u", 556, nullptr },
+ { "Ccaron", 722, nullptr },
+ { "v", 500, nullptr },
+ { "w", 722, nullptr },
+ { "x", 500, nullptr },
+ { "y", 500, nullptr },
+ { "z", 444, nullptr },
+ { "Gbreve", 778, nullptr },
+ { "commaaccent", 250, nullptr },
+ { "hungarumlaut", 333, nullptr },
+ { "Idotaccent", 389, nullptr },
+ { "Nacute", 722, nullptr },
+ { "quotedbl", 555, nullptr },
+ { "gcommaaccent", 500, nullptr },
+ { "mu", 556, nullptr },
+ { "greaterequal", 549, nullptr },
+ { "Scaron", 556, nullptr },
+ { "Lslash", 667, nullptr },
+ { "semicolon", 333, nullptr },
+ { "oslash", 500, nullptr },
+ { "lessequal", 549, nullptr },
+ { "lozenge", 494, nullptr },
+ { "parenright", 333, nullptr },
+ { "ccaron", 444, nullptr },
+ { "Ecircumflex", 667, nullptr },
+ { "gbreve", 500, nullptr },
+ { "trademark", 1000, nullptr },
+ { "daggerdbl", 500, nullptr },
+ { "nacute", 556, nullptr },
+ { "macron", 333, nullptr },
+ { "Otilde", 778, nullptr },
+ { "Emacron", 667, nullptr },
+ { "ellipsis", 1000, nullptr },
+ { "scaron", 389, nullptr },
+ { "AE", 1000, nullptr },
+ { "Ucircumflex", 722, nullptr },
+ { "lslash", 278, nullptr },
+ { "quotedblleft", 500, nullptr },
+ { "guilsinglright", 333, nullptr },
+ { "hyphen", 333, nullptr },
+ { "quotesingle", 278, nullptr },
+ { "eight", 500, nullptr },
+ { "exclamdown", 333, nullptr },
+ { "endash", 500, nullptr },
+ { "oe", 722, nullptr },
+ { "Abreve", 722, nullptr },
+ { "Umacron", 722, nullptr },
+ { "ecircumflex", 444, nullptr },
+ { "Adieresis", 722, nullptr },
+ { "copyright", 747, nullptr },
+ { "Egrave", 667, nullptr },
+ { "slash", 278, nullptr },
+ { "Edieresis", 667, nullptr },
+ { "otilde", 500, nullptr },
+ { "Idieresis", 389, nullptr },
+ { "parenleft", 333, nullptr },
+ { "one", 500, nullptr },
+ { "emacron", 444, nullptr },
+ { "Odieresis", 778, nullptr },
+ { "ucircumflex", 556, nullptr },
+ { "bracketleft", 333, nullptr },
+ { "Ugrave", 722, nullptr },
+ { "quoteright", 333, nullptr },
+ { "Udieresis", 722, nullptr },
+ { "perthousand", 1000, nullptr },
+ { "Ydieresis", 722, nullptr },
+ { "umacron", 556, nullptr },
+ { "abreve", 500, nullptr },
+ { "Eacute", 667, nullptr },
+ { "adieresis", 500, nullptr },
+ { "egrave", 444, nullptr },
+ { "edieresis", 444, nullptr },
+ { "idieresis", 278, nullptr },
+ { "Eth", 722, nullptr },
+ { "ae", 722, nullptr },
+ { "asterisk", 500, nullptr },
+ { "odieresis", 500, nullptr },
+ { "Uacute", 722, nullptr },
+ { "ugrave", 556, nullptr },
+ { "nine", 500, nullptr },
+ { "five", 500, nullptr },
+ { "udieresis", 556, nullptr },
+ { "Zcaron", 667, nullptr },
+ { "Scommaaccent", 556, nullptr },
+ { "threequarters", 750, nullptr },
+ { "guillemotright", 500, nullptr },
+ { "Ccedilla", 722, nullptr },
+ { "ydieresis", 500, nullptr },
+ { "tilde", 333, nullptr },
+ { "at", 930, nullptr },
+ { "eacute", 444, nullptr },
+ { "underscore", 500, nullptr },
+ { "Euro", 500, nullptr },
+ { "Dcroat", 722, nullptr },
+ { "multiply", 570, nullptr },
+ { "zero", 500, nullptr },
+ { "eth", 500, nullptr },
+ { "Scedilla", 556, nullptr },
+ { "Ograve", 778, nullptr },
+ { "Racute", 722, nullptr },
+ { "partialdiff", 494, nullptr },
+ { "uacute", 556, nullptr },
+ { "braceleft", 394, nullptr },
+ { "Thorn", 611, nullptr },
+ { "zcaron", 444, nullptr },
+ { "scommaaccent", 389, nullptr },
+ { "ccedilla", 444, nullptr },
+ { "Dcaron", 722, nullptr },
+ { "dcroat", 556, nullptr },
+ { "Ocircumflex", 778, nullptr },
+ { "Oacute", 778, nullptr },
+ { "scedilla", 389, nullptr },
+ { "ogonek", 333, nullptr },
+ { "ograve", 500, nullptr },
+ { "racute", 444, nullptr },
+ { "Tcaron", 667, nullptr },
+ { "Eogonek", 667, nullptr },
+ { "thorn", 556, nullptr },
+ { "degree", 400, nullptr },
+ { "registered", 747, nullptr },
+ { "radical", 549, nullptr },
+ { "Aring", 722, nullptr },
+ { "percent", 1000, nullptr },
+ { "six", 500, nullptr },
+ { "paragraph", 540, nullptr },
+ { "dcaron", 672, nullptr },
+ { "Uogonek", 722, nullptr },
+ { "two", 500, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 389, nullptr },
+ { "Lacute", 667, nullptr },
+ { "ocircumflex", 500, nullptr },
+ { "oacute", 500, nullptr },
+ { "Uring", 722, nullptr },
+ { "Lcommaaccent", 667, nullptr },
+ { "tcaron", 416, nullptr },
+ { "eogonek", 444, nullptr },
+ { "Delta", 612, nullptr },
+ { "Ohungarumlaut", 778, nullptr },
+ { "asciicircum", 581, nullptr },
+ { "aring", 500, nullptr },
+ { "grave", 333, nullptr },
+ { "uogonek", 556, nullptr },
+ { "bracketright", 333, nullptr },
+ { "Iacute", 389, nullptr },
+ { "ampersand", 833, nullptr },
+ { "igrave", 278, nullptr },
+ { "lacute", 278, nullptr },
+ { "Ncaron", 722, nullptr },
+ { "plus", 570, nullptr },
+ { "uring", 556, nullptr },
+ { "quotesinglbase", 333, nullptr },
+ { "lcommaaccent", 278, nullptr },
+ { "Yacute", 722, nullptr },
+ { "ohungarumlaut", 500, nullptr },
+ { "threesuperior", 300, nullptr },
+ { "acute", 333, nullptr },
+ { "section", 500, nullptr },
+ { "dieresis", 333, nullptr },
+ { "iacute", 278, nullptr },
+ { "quotedblbase", 500, nullptr },
+ { "ncaron", 556, nullptr },
+ { "florin", 500, nullptr },
+ { "yacute", 500, nullptr },
+ { "Rcommaaccent", 722, nullptr },
+ { "fi", 556, nullptr },
+ { "fl", 556, nullptr },
+ { "Acircumflex", 722, nullptr },
+ { "Cacute", 722, nullptr },
+ { "Icircumflex", 389, nullptr },
+ { "guillemotleft", 500, nullptr },
+ { "germandbls", 556, nullptr },
+ { "Amacron", 722, nullptr },
+ { "seven", 500, nullptr },
+ { "Sacute", 556, nullptr },
+ { "ordmasculine", 330, nullptr },
+ { "dotlessi", 278, nullptr },
+ { "sterling", 500, nullptr },
+ { "notequal", 549, nullptr },
+ { "Imacron", 389, nullptr },
+ { "rcommaaccent", 444, nullptr },
+ { "Zdotaccent", 667, nullptr },
+ { "acircumflex", 500, nullptr },
+ { "cacute", 444, nullptr },
+ { "Ecaron", 667, nullptr },
+ { "icircumflex", 278, nullptr },
+ { "braceright", 394, nullptr },
+ { "quotedblright", 500, nullptr },
+ { "amacron", 500, nullptr },
+ { "sacute", 389, nullptr },
+ { "imacron", 278, nullptr },
+ { "cent", 500, nullptr },
+ { "currency", 500, nullptr },
+ { "logicalnot", 570, nullptr },
+ { "zdotaccent", 444, nullptr },
+ { "Atilde", 722, nullptr },
+ { "breve", 333, nullptr },
+ { "bar", 220, nullptr },
+ { "fraction", 167, nullptr },
+ { "less", 570, nullptr },
+ { "ecaron", 444, nullptr },
+ { "guilsinglleft", 333, nullptr },
+ { "exclam", 333, nullptr },
+ { "period", 250, nullptr },
+ { "Rcaron", 722, nullptr },
+ { "Kcommaaccent", 778, nullptr },
+ { "greater", 570, nullptr },
+ { "atilde", 500, nullptr },
+ { "brokenbar", 220, nullptr },
+ { "quoteleft", 333, nullptr },
+ { "Edotaccent", 667, nullptr },
+ { "onesuperior", 300, nullptr }
};
static BuiltinFontWidth timesBoldItalicWidthsTab[] = {
- { "Ntilde", 722, NULL },
- { "rcaron", 389, NULL },
- { "kcommaaccent", 500, NULL },
- { "Ncommaaccent", 722, NULL },
- { "Zacute", 611, NULL },
- { "comma", 250, NULL },
- { "cedilla", 333, NULL },
- { "plusminus", 570, NULL },
- { "circumflex", 333, NULL },
- { "dotaccent", 333, NULL },
- { "edotaccent", 444, NULL },
- { "asciitilde", 570, NULL },
- { "colon", 333, NULL },
- { "onehalf", 750, NULL },
- { "dollar", 500, NULL },
- { "Lcaron", 611, NULL },
- { "ntilde", 556, NULL },
- { "Aogonek", 667, NULL },
- { "ncommaaccent", 556, NULL },
- { "minus", 606, NULL },
- { "Iogonek", 389, NULL },
- { "zacute", 389, NULL },
- { "yen", 500, NULL },
- { "space", 250, NULL },
- { "Omacron", 722, NULL },
- { "questiondown", 500, NULL },
- { "emdash", 1000, NULL },
- { "Agrave", 667, NULL },
- { "three", 500, NULL },
- { "numbersign", 500, NULL },
- { "lcaron", 382, NULL },
- { "A", 667, NULL },
- { "B", 667, NULL },
- { "C", 667, NULL },
- { "aogonek", 500, NULL },
- { "D", 722, NULL },
- { "E", 667, NULL },
- { "onequarter", 750, NULL },
- { "F", 667, NULL },
- { "G", 722, NULL },
- { "H", 778, NULL },
- { "I", 389, NULL },
- { "J", 500, NULL },
- { "K", 667, NULL },
- { "iogonek", 278, NULL },
- { "backslash", 278, NULL },
- { "L", 611, NULL },
- { "periodcentered", 250, NULL },
- { "M", 889, NULL },
- { "N", 722, NULL },
- { "omacron", 500, NULL },
- { "Tcommaaccent", 611, NULL },
- { "O", 722, NULL },
- { "P", 611, NULL },
- { "Q", 722, NULL },
- { "Uhungarumlaut", 722, NULL },
- { "R", 667, NULL },
- { "Aacute", 667, NULL },
- { "caron", 333, NULL },
- { "S", 556, NULL },
- { "T", 611, NULL },
- { "U", 722, NULL },
- { "agrave", 500, NULL },
- { "V", 667, NULL },
- { "W", 889, NULL },
- { "X", 667, NULL },
- { "question", 500, NULL },
- { "equal", 570, NULL },
- { "Y", 611, NULL },
- { "Z", 611, NULL },
- { "four", 500, NULL },
- { "a", 500, NULL },
- { "Gcommaaccent", 722, NULL },
- { "b", 500, NULL },
- { "c", 444, NULL },
- { "d", 500, NULL },
- { "e", 444, NULL },
- { "f", 333, NULL },
- { "g", 500, NULL },
- { "bullet", 350, NULL },
- { "h", 556, NULL },
- { "i", 278, NULL },
- { "Oslash", 722, NULL },
- { "dagger", 500, NULL },
- { "j", 278, NULL },
- { "k", 500, NULL },
- { "l", 278, NULL },
- { "m", 778, NULL },
- { "n", 556, NULL },
- { "tcommaaccent", 278, NULL },
- { "o", 500, NULL },
- { "ordfeminine", 266, NULL },
- { "ring", 333, NULL },
- { "p", 500, NULL },
- { "q", 500, NULL },
- { "uhungarumlaut", 556, NULL },
- { "r", 389, NULL },
- { "twosuperior", 300, NULL },
- { "aacute", 500, NULL },
- { "s", 389, NULL },
- { "OE", 944, NULL },
- { "t", 278, NULL },
- { "divide", 570, NULL },
- { "u", 556, NULL },
- { "Ccaron", 667, NULL },
- { "v", 444, NULL },
- { "w", 667, NULL },
- { "x", 500, NULL },
- { "y", 444, NULL },
- { "z", 389, NULL },
- { "Gbreve", 722, NULL },
- { "commaaccent", 250, NULL },
- { "hungarumlaut", 333, NULL },
- { "Idotaccent", 389, NULL },
- { "Nacute", 722, NULL },
- { "quotedbl", 555, NULL },
- { "gcommaaccent", 500, NULL },
- { "mu", 576, NULL },
- { "greaterequal", 549, NULL },
- { "Scaron", 556, NULL },
- { "Lslash", 611, NULL },
- { "semicolon", 333, NULL },
- { "oslash", 500, NULL },
- { "lessequal", 549, NULL },
- { "lozenge", 494, NULL },
- { "parenright", 333, NULL },
- { "ccaron", 444, NULL },
- { "Ecircumflex", 667, NULL },
- { "gbreve", 500, NULL },
- { "trademark", 1000, NULL },
- { "daggerdbl", 500, NULL },
- { "nacute", 556, NULL },
- { "macron", 333, NULL },
- { "Otilde", 722, NULL },
- { "Emacron", 667, NULL },
- { "ellipsis", 1000, NULL },
- { "scaron", 389, NULL },
- { "AE", 944, NULL },
- { "Ucircumflex", 722, NULL },
- { "lslash", 278, NULL },
- { "quotedblleft", 500, NULL },
- { "guilsinglright", 333, NULL },
- { "hyphen", 333, NULL },
- { "quotesingle", 278, NULL },
- { "eight", 500, NULL },
- { "exclamdown", 389, NULL },
- { "endash", 500, NULL },
- { "oe", 722, NULL },
- { "Abreve", 667, NULL },
- { "Umacron", 722, NULL },
- { "ecircumflex", 444, NULL },
- { "Adieresis", 667, NULL },
- { "copyright", 747, NULL },
- { "Egrave", 667, NULL },
- { "slash", 278, NULL },
- { "Edieresis", 667, NULL },
- { "otilde", 500, NULL },
- { "Idieresis", 389, NULL },
- { "parenleft", 333, NULL },
- { "one", 500, NULL },
- { "emacron", 444, NULL },
- { "Odieresis", 722, NULL },
- { "ucircumflex", 556, NULL },
- { "bracketleft", 333, NULL },
- { "Ugrave", 722, NULL },
- { "quoteright", 333, NULL },
- { "Udieresis", 722, NULL },
- { "perthousand", 1000, NULL },
- { "Ydieresis", 611, NULL },
- { "umacron", 556, NULL },
- { "abreve", 500, NULL },
- { "Eacute", 667, NULL },
- { "adieresis", 500, NULL },
- { "egrave", 444, NULL },
- { "edieresis", 444, NULL },
- { "idieresis", 278, NULL },
- { "Eth", 722, NULL },
- { "ae", 722, NULL },
- { "asterisk", 500, NULL },
- { "odieresis", 500, NULL },
- { "Uacute", 722, NULL },
- { "ugrave", 556, NULL },
- { "nine", 500, NULL },
- { "five", 500, NULL },
- { "udieresis", 556, NULL },
- { "Zcaron", 611, NULL },
- { "Scommaaccent", 556, NULL },
- { "threequarters", 750, NULL },
- { "guillemotright", 500, NULL },
- { "Ccedilla", 667, NULL },
- { "ydieresis", 444, NULL },
- { "tilde", 333, NULL },
- { "at", 832, NULL },
- { "eacute", 444, NULL },
- { "underscore", 500, NULL },
- { "Euro", 500, NULL },
- { "Dcroat", 722, NULL },
- { "multiply", 570, NULL },
- { "zero", 500, NULL },
- { "eth", 500, NULL },
- { "Scedilla", 556, NULL },
- { "Ograve", 722, NULL },
- { "Racute", 667, NULL },
- { "partialdiff", 494, NULL },
- { "uacute", 556, NULL },
- { "braceleft", 348, NULL },
- { "Thorn", 611, NULL },
- { "zcaron", 389, NULL },
- { "scommaaccent", 389, NULL },
- { "ccedilla", 444, NULL },
- { "Dcaron", 722, NULL },
- { "dcroat", 500, NULL },
- { "Ocircumflex", 722, NULL },
- { "Oacute", 722, NULL },
- { "scedilla", 389, NULL },
- { "ogonek", 333, NULL },
- { "ograve", 500, NULL },
- { "racute", 389, NULL },
- { "Tcaron", 611, NULL },
- { "Eogonek", 667, NULL },
- { "thorn", 500, NULL },
- { "degree", 400, NULL },
- { "registered", 747, NULL },
- { "radical", 549, NULL },
- { "Aring", 667, NULL },
- { "percent", 833, NULL },
- { "six", 500, NULL },
- { "paragraph", 500, NULL },
- { "dcaron", 608, NULL },
- { "Uogonek", 722, NULL },
- { "two", 500, NULL },
- { "summation", 600, NULL },
- { "Igrave", 389, NULL },
- { "Lacute", 611, NULL },
- { "ocircumflex", 500, NULL },
- { "oacute", 500, NULL },
- { "Uring", 722, NULL },
- { "Lcommaaccent", 611, NULL },
- { "tcaron", 366, NULL },
- { "eogonek", 444, NULL },
- { "Delta", 612, NULL },
- { "Ohungarumlaut", 722, NULL },
- { "asciicircum", 570, NULL },
- { "aring", 500, NULL },
- { "grave", 333, NULL },
- { "uogonek", 556, NULL },
- { "bracketright", 333, NULL },
- { "Iacute", 389, NULL },
- { "ampersand", 778, NULL },
- { "igrave", 278, NULL },
- { "lacute", 278, NULL },
- { "Ncaron", 722, NULL },
- { "plus", 570, NULL },
- { "uring", 556, NULL },
- { "quotesinglbase", 333, NULL },
- { "lcommaaccent", 278, NULL },
- { "Yacute", 611, NULL },
- { "ohungarumlaut", 500, NULL },
- { "threesuperior", 300, NULL },
- { "acute", 333, NULL },
- { "section", 500, NULL },
- { "dieresis", 333, NULL },
- { "iacute", 278, NULL },
- { "quotedblbase", 500, NULL },
- { "ncaron", 556, NULL },
- { "florin", 500, NULL },
- { "yacute", 444, NULL },
- { "Rcommaaccent", 667, NULL },
- { "fi", 556, NULL },
- { "fl", 556, NULL },
- { "Acircumflex", 667, NULL },
- { "Cacute", 667, NULL },
- { "Icircumflex", 389, NULL },
- { "guillemotleft", 500, NULL },
- { "germandbls", 500, NULL },
- { "Amacron", 667, NULL },
- { "seven", 500, NULL },
- { "Sacute", 556, NULL },
- { "ordmasculine", 300, NULL },
- { "dotlessi", 278, NULL },
- { "sterling", 500, NULL },
- { "notequal", 549, NULL },
- { "Imacron", 389, NULL },
- { "rcommaaccent", 389, NULL },
- { "Zdotaccent", 611, NULL },
- { "acircumflex", 500, NULL },
- { "cacute", 444, NULL },
- { "Ecaron", 667, NULL },
- { "icircumflex", 278, NULL },
- { "braceright", 348, NULL },
- { "quotedblright", 500, NULL },
- { "amacron", 500, NULL },
- { "sacute", 389, NULL },
- { "imacron", 278, NULL },
- { "cent", 500, NULL },
- { "currency", 500, NULL },
- { "logicalnot", 606, NULL },
- { "zdotaccent", 389, NULL },
- { "Atilde", 667, NULL },
- { "breve", 333, NULL },
- { "bar", 220, NULL },
- { "fraction", 167, NULL },
- { "less", 570, NULL },
- { "ecaron", 444, NULL },
- { "guilsinglleft", 333, NULL },
- { "exclam", 389, NULL },
- { "period", 250, NULL },
- { "Rcaron", 667, NULL },
- { "Kcommaaccent", 667, NULL },
- { "greater", 570, NULL },
- { "atilde", 500, NULL },
- { "brokenbar", 220, NULL },
- { "quoteleft", 333, NULL },
- { "Edotaccent", 667, NULL },
- { "onesuperior", 300, NULL }
+ { "Ntilde", 722, nullptr },
+ { "rcaron", 389, nullptr },
+ { "kcommaaccent", 500, nullptr },
+ { "Ncommaaccent", 722, nullptr },
+ { "Zacute", 611, nullptr },
+ { "comma", 250, nullptr },
+ { "cedilla", 333, nullptr },
+ { "plusminus", 570, nullptr },
+ { "circumflex", 333, nullptr },
+ { "dotaccent", 333, nullptr },
+ { "edotaccent", 444, nullptr },
+ { "asciitilde", 570, nullptr },
+ { "colon", 333, nullptr },
+ { "onehalf", 750, nullptr },
+ { "dollar", 500, nullptr },
+ { "Lcaron", 611, nullptr },
+ { "ntilde", 556, nullptr },
+ { "Aogonek", 667, nullptr },
+ { "ncommaaccent", 556, nullptr },
+ { "minus", 606, nullptr },
+ { "Iogonek", 389, nullptr },
+ { "zacute", 389, nullptr },
+ { "yen", 500, nullptr },
+ { "space", 250, nullptr },
+ { "Omacron", 722, nullptr },
+ { "questiondown", 500, nullptr },
+ { "emdash", 1000, nullptr },
+ { "Agrave", 667, nullptr },
+ { "three", 500, nullptr },
+ { "numbersign", 500, nullptr },
+ { "lcaron", 382, nullptr },
+ { "A", 667, nullptr },
+ { "B", 667, nullptr },
+ { "C", 667, nullptr },
+ { "aogonek", 500, nullptr },
+ { "D", 722, nullptr },
+ { "E", 667, nullptr },
+ { "onequarter", 750, nullptr },
+ { "F", 667, nullptr },
+ { "G", 722, nullptr },
+ { "H", 778, nullptr },
+ { "I", 389, nullptr },
+ { "J", 500, nullptr },
+ { "K", 667, nullptr },
+ { "iogonek", 278, nullptr },
+ { "backslash", 278, nullptr },
+ { "L", 611, nullptr },
+ { "periodcentered", 250, nullptr },
+ { "M", 889, nullptr },
+ { "N", 722, nullptr },
+ { "omacron", 500, nullptr },
+ { "Tcommaaccent", 611, nullptr },
+ { "O", 722, nullptr },
+ { "P", 611, nullptr },
+ { "Q", 722, nullptr },
+ { "Uhungarumlaut", 722, nullptr },
+ { "R", 667, nullptr },
+ { "Aacute", 667, nullptr },
+ { "caron", 333, nullptr },
+ { "S", 556, nullptr },
+ { "T", 611, nullptr },
+ { "U", 722, nullptr },
+ { "agrave", 500, nullptr },
+ { "V", 667, nullptr },
+ { "W", 889, nullptr },
+ { "X", 667, nullptr },
+ { "question", 500, nullptr },
+ { "equal", 570, nullptr },
+ { "Y", 611, nullptr },
+ { "Z", 611, nullptr },
+ { "four", 500, nullptr },
+ { "a", 500, nullptr },
+ { "Gcommaaccent", 722, nullptr },
+ { "b", 500, nullptr },
+ { "c", 444, nullptr },
+ { "d", 500, nullptr },
+ { "e", 444, nullptr },
+ { "f", 333, nullptr },
+ { "g", 500, nullptr },
+ { "bullet", 350, nullptr },
+ { "h", 556, nullptr },
+ { "i", 278, nullptr },
+ { "Oslash", 722, nullptr },
+ { "dagger", 500, nullptr },
+ { "j", 278, nullptr },
+ { "k", 500, nullptr },
+ { "l", 278, nullptr },
+ { "m", 778, nullptr },
+ { "n", 556, nullptr },
+ { "tcommaaccent", 278, nullptr },
+ { "o", 500, nullptr },
+ { "ordfeminine", 266, nullptr },
+ { "ring", 333, nullptr },
+ { "p", 500, nullptr },
+ { "q", 500, nullptr },
+ { "uhungarumlaut", 556, nullptr },
+ { "r", 389, nullptr },
+ { "twosuperior", 300, nullptr },
+ { "aacute", 500, nullptr },
+ { "s", 389, nullptr },
+ { "OE", 944, nullptr },
+ { "t", 278, nullptr },
+ { "divide", 570, nullptr },
+ { "u", 556, nullptr },
+ { "Ccaron", 667, nullptr },
+ { "v", 444, nullptr },
+ { "w", 667, nullptr },
+ { "x", 500, nullptr },
+ { "y", 444, nullptr },
+ { "z", 389, nullptr },
+ { "Gbreve", 722, nullptr },
+ { "commaaccent", 250, nullptr },
+ { "hungarumlaut", 333, nullptr },
+ { "Idotaccent", 389, nullptr },
+ { "Nacute", 722, nullptr },
+ { "quotedbl", 555, nullptr },
+ { "gcommaaccent", 500, nullptr },
+ { "mu", 576, nullptr },
+ { "greaterequal", 549, nullptr },
+ { "Scaron", 556, nullptr },
+ { "Lslash", 611, nullptr },
+ { "semicolon", 333, nullptr },
+ { "oslash", 500, nullptr },
+ { "lessequal", 549, nullptr },
+ { "lozenge", 494, nullptr },
+ { "parenright", 333, nullptr },
+ { "ccaron", 444, nullptr },
+ { "Ecircumflex", 667, nullptr },
+ { "gbreve", 500, nullptr },
+ { "trademark", 1000, nullptr },
+ { "daggerdbl", 500, nullptr },
+ { "nacute", 556, nullptr },
+ { "macron", 333, nullptr },
+ { "Otilde", 722, nullptr },
+ { "Emacron", 667, nullptr },
+ { "ellipsis", 1000, nullptr },
+ { "scaron", 389, nullptr },
+ { "AE", 944, nullptr },
+ { "Ucircumflex", 722, nullptr },
+ { "lslash", 278, nullptr },
+ { "quotedblleft", 500, nullptr },
+ { "guilsinglright", 333, nullptr },
+ { "hyphen", 333, nullptr },
+ { "quotesingle", 278, nullptr },
+ { "eight", 500, nullptr },
+ { "exclamdown", 389, nullptr },
+ { "endash", 500, nullptr },
+ { "oe", 722, nullptr },
+ { "Abreve", 667, nullptr },
+ { "Umacron", 722, nullptr },
+ { "ecircumflex", 444, nullptr },
+ { "Adieresis", 667, nullptr },
+ { "copyright", 747, nullptr },
+ { "Egrave", 667, nullptr },
+ { "slash", 278, nullptr },
+ { "Edieresis", 667, nullptr },
+ { "otilde", 500, nullptr },
+ { "Idieresis", 389, nullptr },
+ { "parenleft", 333, nullptr },
+ { "one", 500, nullptr },
+ { "emacron", 444, nullptr },
+ { "Odieresis", 722, nullptr },
+ { "ucircumflex", 556, nullptr },
+ { "bracketleft", 333, nullptr },
+ { "Ugrave", 722, nullptr },
+ { "quoteright", 333, nullptr },
+ { "Udieresis", 722, nullptr },
+ { "perthousand", 1000, nullptr },
+ { "Ydieresis", 611, nullptr },
+ { "umacron", 556, nullptr },
+ { "abreve", 500, nullptr },
+ { "Eacute", 667, nullptr },
+ { "adieresis", 500, nullptr },
+ { "egrave", 444, nullptr },
+ { "edieresis", 444, nullptr },
+ { "idieresis", 278, nullptr },
+ { "Eth", 722, nullptr },
+ { "ae", 722, nullptr },
+ { "asterisk", 500, nullptr },
+ { "odieresis", 500, nullptr },
+ { "Uacute", 722, nullptr },
+ { "ugrave", 556, nullptr },
+ { "nine", 500, nullptr },
+ { "five", 500, nullptr },
+ { "udieresis", 556, nullptr },
+ { "Zcaron", 611, nullptr },
+ { "Scommaaccent", 556, nullptr },
+ { "threequarters", 750, nullptr },
+ { "guillemotright", 500, nullptr },
+ { "Ccedilla", 667, nullptr },
+ { "ydieresis", 444, nullptr },
+ { "tilde", 333, nullptr },
+ { "at", 832, nullptr },
+ { "eacute", 444, nullptr },
+ { "underscore", 500, nullptr },
+ { "Euro", 500, nullptr },
+ { "Dcroat", 722, nullptr },
+ { "multiply", 570, nullptr },
+ { "zero", 500, nullptr },
+ { "eth", 500, nullptr },
+ { "Scedilla", 556, nullptr },
+ { "Ograve", 722, nullptr },
+ { "Racute", 667, nullptr },
+ { "partialdiff", 494, nullptr },
+ { "uacute", 556, nullptr },
+ { "braceleft", 348, nullptr },
+ { "Thorn", 611, nullptr },
+ { "zcaron", 389, nullptr },
+ { "scommaaccent", 389, nullptr },
+ { "ccedilla", 444, nullptr },
+ { "Dcaron", 722, nullptr },
+ { "dcroat", 500, nullptr },
+ { "Ocircumflex", 722, nullptr },
+ { "Oacute", 722, nullptr },
+ { "scedilla", 389, nullptr },
+ { "ogonek", 333, nullptr },
+ { "ograve", 500, nullptr },
+ { "racute", 389, nullptr },
+ { "Tcaron", 611, nullptr },
+ { "Eogonek", 667, nullptr },
+ { "thorn", 500, nullptr },
+ { "degree", 400, nullptr },
+ { "registered", 747, nullptr },
+ { "radical", 549, nullptr },
+ { "Aring", 667, nullptr },
+ { "percent", 833, nullptr },
+ { "six", 500, nullptr },
+ { "paragraph", 500, nullptr },
+ { "dcaron", 608, nullptr },
+ { "Uogonek", 722, nullptr },
+ { "two", 500, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 389, nullptr },
+ { "Lacute", 611, nullptr },
+ { "ocircumflex", 500, nullptr },
+ { "oacute", 500, nullptr },
+ { "Uring", 722, nullptr },
+ { "Lcommaaccent", 611, nullptr },
+ { "tcaron", 366, nullptr },
+ { "eogonek", 444, nullptr },
+ { "Delta", 612, nullptr },
+ { "Ohungarumlaut", 722, nullptr },
+ { "asciicircum", 570, nullptr },
+ { "aring", 500, nullptr },
+ { "grave", 333, nullptr },
+ { "uogonek", 556, nullptr },
+ { "bracketright", 333, nullptr },
+ { "Iacute", 389, nullptr },
+ { "ampersand", 778, nullptr },
+ { "igrave", 278, nullptr },
+ { "lacute", 278, nullptr },
+ { "Ncaron", 722, nullptr },
+ { "plus", 570, nullptr },
+ { "uring", 556, nullptr },
+ { "quotesinglbase", 333, nullptr },
+ { "lcommaaccent", 278, nullptr },
+ { "Yacute", 611, nullptr },
+ { "ohungarumlaut", 500, nullptr },
+ { "threesuperior", 300, nullptr },
+ { "acute", 333, nullptr },
+ { "section", 500, nullptr },
+ { "dieresis", 333, nullptr },
+ { "iacute", 278, nullptr },
+ { "quotedblbase", 500, nullptr },
+ { "ncaron", 556, nullptr },
+ { "florin", 500, nullptr },
+ { "yacute", 444, nullptr },
+ { "Rcommaaccent", 667, nullptr },
+ { "fi", 556, nullptr },
+ { "fl", 556, nullptr },
+ { "Acircumflex", 667, nullptr },
+ { "Cacute", 667, nullptr },
+ { "Icircumflex", 389, nullptr },
+ { "guillemotleft", 500, nullptr },
+ { "germandbls", 500, nullptr },
+ { "Amacron", 667, nullptr },
+ { "seven", 500, nullptr },
+ { "Sacute", 556, nullptr },
+ { "ordmasculine", 300, nullptr },
+ { "dotlessi", 278, nullptr },
+ { "sterling", 500, nullptr },
+ { "notequal", 549, nullptr },
+ { "Imacron", 389, nullptr },
+ { "rcommaaccent", 389, nullptr },
+ { "Zdotaccent", 611, nullptr },
+ { "acircumflex", 500, nullptr },
+ { "cacute", 444, nullptr },
+ { "Ecaron", 667, nullptr },
+ { "icircumflex", 278, nullptr },
+ { "braceright", 348, nullptr },
+ { "quotedblright", 500, nullptr },
+ { "amacron", 500, nullptr },
+ { "sacute", 389, nullptr },
+ { "imacron", 278, nullptr },
+ { "cent", 500, nullptr },
+ { "currency", 500, nullptr },
+ { "logicalnot", 606, nullptr },
+ { "zdotaccent", 389, nullptr },
+ { "Atilde", 667, nullptr },
+ { "breve", 333, nullptr },
+ { "bar", 220, nullptr },
+ { "fraction", 167, nullptr },
+ { "less", 570, nullptr },
+ { "ecaron", 444, nullptr },
+ { "guilsinglleft", 333, nullptr },
+ { "exclam", 389, nullptr },
+ { "period", 250, nullptr },
+ { "Rcaron", 667, nullptr },
+ { "Kcommaaccent", 667, nullptr },
+ { "greater", 570, nullptr },
+ { "atilde", 500, nullptr },
+ { "brokenbar", 220, nullptr },
+ { "quoteleft", 333, nullptr },
+ { "Edotaccent", 667, nullptr },
+ { "onesuperior", 300, nullptr }
};
static BuiltinFontWidth timesItalicWidthsTab[] = {
- { "Ntilde", 667, NULL },
- { "rcaron", 389, NULL },
- { "kcommaaccent", 444, NULL },
- { "Ncommaaccent", 667, NULL },
- { "Zacute", 556, NULL },
- { "comma", 250, NULL },
- { "cedilla", 333, NULL },
- { "plusminus", 675, NULL },
- { "circumflex", 333, NULL },
- { "dotaccent", 333, NULL },
- { "edotaccent", 444, NULL },
- { "asciitilde", 541, NULL },
- { "colon", 333, NULL },
- { "onehalf", 750, NULL },
- { "dollar", 500, NULL },
- { "Lcaron", 611, NULL },
- { "ntilde", 500, NULL },
- { "Aogonek", 611, NULL },
- { "ncommaaccent", 500, NULL },
- { "minus", 675, NULL },
- { "Iogonek", 333, NULL },
- { "zacute", 389, NULL },
- { "yen", 500, NULL },
- { "space", 250, NULL },
- { "Omacron", 722, NULL },
- { "questiondown", 500, NULL },
- { "emdash", 889, NULL },
- { "Agrave", 611, NULL },
- { "three", 500, NULL },
- { "numbersign", 500, NULL },
- { "lcaron", 300, NULL },
- { "A", 611, NULL },
- { "B", 611, NULL },
- { "C", 667, NULL },
- { "aogonek", 500, NULL },
- { "D", 722, NULL },
- { "E", 611, NULL },
- { "onequarter", 750, NULL },
- { "F", 611, NULL },
- { "G", 722, NULL },
- { "H", 722, NULL },
- { "I", 333, NULL },
- { "J", 444, NULL },
- { "K", 667, NULL },
- { "iogonek", 278, NULL },
- { "backslash", 278, NULL },
- { "L", 556, NULL },
- { "periodcentered", 250, NULL },
- { "M", 833, NULL },
- { "N", 667, NULL },
- { "omacron", 500, NULL },
- { "Tcommaaccent", 556, NULL },
- { "O", 722, NULL },
- { "P", 611, NULL },
- { "Q", 722, NULL },
- { "Uhungarumlaut", 722, NULL },
- { "R", 611, NULL },
- { "Aacute", 611, NULL },
- { "caron", 333, NULL },
- { "S", 500, NULL },
- { "T", 556, NULL },
- { "U", 722, NULL },
- { "agrave", 500, NULL },
- { "V", 611, NULL },
- { "W", 833, NULL },
- { "X", 611, NULL },
- { "question", 500, NULL },
- { "equal", 675, NULL },
- { "Y", 556, NULL },
- { "Z", 556, NULL },
- { "four", 500, NULL },
- { "a", 500, NULL },
- { "Gcommaaccent", 722, NULL },
- { "b", 500, NULL },
- { "c", 444, NULL },
- { "d", 500, NULL },
- { "e", 444, NULL },
- { "f", 278, NULL },
- { "g", 500, NULL },
- { "bullet", 350, NULL },
- { "h", 500, NULL },
- { "i", 278, NULL },
- { "Oslash", 722, NULL },
- { "dagger", 500, NULL },
- { "j", 278, NULL },
- { "k", 444, NULL },
- { "l", 278, NULL },
- { "m", 722, NULL },
- { "n", 500, NULL },
- { "tcommaaccent", 278, NULL },
- { "o", 500, NULL },
- { "ordfeminine", 276, NULL },
- { "ring", 333, NULL },
- { "p", 500, NULL },
- { "q", 500, NULL },
- { "uhungarumlaut", 500, NULL },
- { "r", 389, NULL },
- { "twosuperior", 300, NULL },
- { "aacute", 500, NULL },
- { "s", 389, NULL },
- { "OE", 944, NULL },
- { "t", 278, NULL },
- { "divide", 675, NULL },
- { "u", 500, NULL },
- { "Ccaron", 667, NULL },
- { "v", 444, NULL },
- { "w", 667, NULL },
- { "x", 444, NULL },
- { "y", 444, NULL },
- { "z", 389, NULL },
- { "Gbreve", 722, NULL },
- { "commaaccent", 250, NULL },
- { "hungarumlaut", 333, NULL },
- { "Idotaccent", 333, NULL },
- { "Nacute", 667, NULL },
- { "quotedbl", 420, NULL },
- { "gcommaaccent", 500, NULL },
- { "mu", 500, NULL },
- { "greaterequal", 549, NULL },
- { "Scaron", 500, NULL },
- { "Lslash", 556, NULL },
- { "semicolon", 333, NULL },
- { "oslash", 500, NULL },
- { "lessequal", 549, NULL },
- { "lozenge", 471, NULL },
- { "parenright", 333, NULL },
- { "ccaron", 444, NULL },
- { "Ecircumflex", 611, NULL },
- { "gbreve", 500, NULL },
- { "trademark", 980, NULL },
- { "daggerdbl", 500, NULL },
- { "nacute", 500, NULL },
- { "macron", 333, NULL },
- { "Otilde", 722, NULL },
- { "Emacron", 611, NULL },
- { "ellipsis", 889, NULL },
- { "scaron", 389, NULL },
- { "AE", 889, NULL },
- { "Ucircumflex", 722, NULL },
- { "lslash", 278, NULL },
- { "quotedblleft", 556, NULL },
- { "guilsinglright", 333, NULL },
- { "hyphen", 333, NULL },
- { "quotesingle", 214, NULL },
- { "eight", 500, NULL },
- { "exclamdown", 389, NULL },
- { "endash", 500, NULL },
- { "oe", 667, NULL },
- { "Abreve", 611, NULL },
- { "Umacron", 722, NULL },
- { "ecircumflex", 444, NULL },
- { "Adieresis", 611, NULL },
- { "copyright", 760, NULL },
- { "Egrave", 611, NULL },
- { "slash", 278, NULL },
- { "Edieresis", 611, NULL },
- { "otilde", 500, NULL },
- { "Idieresis", 333, NULL },
- { "parenleft", 333, NULL },
- { "one", 500, NULL },
- { "emacron", 444, NULL },
- { "Odieresis", 722, NULL },
- { "ucircumflex", 500, NULL },
- { "bracketleft", 389, NULL },
- { "Ugrave", 722, NULL },
- { "quoteright", 333, NULL },
- { "Udieresis", 722, NULL },
- { "perthousand", 1000, NULL },
- { "Ydieresis", 556, NULL },
- { "umacron", 500, NULL },
- { "abreve", 500, NULL },
- { "Eacute", 611, NULL },
- { "adieresis", 500, NULL },
- { "egrave", 444, NULL },
- { "edieresis", 444, NULL },
- { "idieresis", 278, NULL },
- { "Eth", 722, NULL },
- { "ae", 667, NULL },
- { "asterisk", 500, NULL },
- { "odieresis", 500, NULL },
- { "Uacute", 722, NULL },
- { "ugrave", 500, NULL },
- { "nine", 500, NULL },
- { "five", 500, NULL },
- { "udieresis", 500, NULL },
- { "Zcaron", 556, NULL },
- { "Scommaaccent", 500, NULL },
- { "threequarters", 750, NULL },
- { "guillemotright", 500, NULL },
- { "Ccedilla", 667, NULL },
- { "ydieresis", 444, NULL },
- { "tilde", 333, NULL },
- { "at", 920, NULL },
- { "eacute", 444, NULL },
- { "underscore", 500, NULL },
- { "Euro", 500, NULL },
- { "Dcroat", 722, NULL },
- { "multiply", 675, NULL },
- { "zero", 500, NULL },
- { "eth", 500, NULL },
- { "Scedilla", 500, NULL },
- { "Ograve", 722, NULL },
- { "Racute", 611, NULL },
- { "partialdiff", 476, NULL },
- { "uacute", 500, NULL },
- { "braceleft", 400, NULL },
- { "Thorn", 611, NULL },
- { "zcaron", 389, NULL },
- { "scommaaccent", 389, NULL },
- { "ccedilla", 444, NULL },
- { "Dcaron", 722, NULL },
- { "dcroat", 500, NULL },
- { "Ocircumflex", 722, NULL },
- { "Oacute", 722, NULL },
- { "scedilla", 389, NULL },
- { "ogonek", 333, NULL },
- { "ograve", 500, NULL },
- { "racute", 389, NULL },
- { "Tcaron", 556, NULL },
- { "Eogonek", 611, NULL },
- { "thorn", 500, NULL },
- { "degree", 400, NULL },
- { "registered", 760, NULL },
- { "radical", 453, NULL },
- { "Aring", 611, NULL },
- { "percent", 833, NULL },
- { "six", 500, NULL },
- { "paragraph", 523, NULL },
- { "dcaron", 544, NULL },
- { "Uogonek", 722, NULL },
- { "two", 500, NULL },
- { "summation", 600, NULL },
- { "Igrave", 333, NULL },
- { "Lacute", 556, NULL },
- { "ocircumflex", 500, NULL },
- { "oacute", 500, NULL },
- { "Uring", 722, NULL },
- { "Lcommaaccent", 556, NULL },
- { "tcaron", 300, NULL },
- { "eogonek", 444, NULL },
- { "Delta", 612, NULL },
- { "Ohungarumlaut", 722, NULL },
- { "asciicircum", 422, NULL },
- { "aring", 500, NULL },
- { "grave", 333, NULL },
- { "uogonek", 500, NULL },
- { "bracketright", 389, NULL },
- { "Iacute", 333, NULL },
- { "ampersand", 778, NULL },
- { "igrave", 278, NULL },
- { "lacute", 278, NULL },
- { "Ncaron", 667, NULL },
- { "plus", 675, NULL },
- { "uring", 500, NULL },
- { "quotesinglbase", 333, NULL },
- { "lcommaaccent", 278, NULL },
- { "Yacute", 556, NULL },
- { "ohungarumlaut", 500, NULL },
- { "threesuperior", 300, NULL },
- { "acute", 333, NULL },
- { "section", 500, NULL },
- { "dieresis", 333, NULL },
- { "iacute", 278, NULL },
- { "quotedblbase", 556, NULL },
- { "ncaron", 500, NULL },
- { "florin", 500, NULL },
- { "yacute", 444, NULL },
- { "Rcommaaccent", 611, NULL },
- { "fi", 500, NULL },
- { "fl", 500, NULL },
- { "Acircumflex", 611, NULL },
- { "Cacute", 667, NULL },
- { "Icircumflex", 333, NULL },
- { "guillemotleft", 500, NULL },
- { "germandbls", 500, NULL },
- { "Amacron", 611, NULL },
- { "seven", 500, NULL },
- { "Sacute", 500, NULL },
- { "ordmasculine", 310, NULL },
- { "dotlessi", 278, NULL },
- { "sterling", 500, NULL },
- { "notequal", 549, NULL },
- { "Imacron", 333, NULL },
- { "rcommaaccent", 389, NULL },
- { "Zdotaccent", 556, NULL },
- { "acircumflex", 500, NULL },
- { "cacute", 444, NULL },
- { "Ecaron", 611, NULL },
- { "icircumflex", 278, NULL },
- { "braceright", 400, NULL },
- { "quotedblright", 556, NULL },
- { "amacron", 500, NULL },
- { "sacute", 389, NULL },
- { "imacron", 278, NULL },
- { "cent", 500, NULL },
- { "currency", 500, NULL },
- { "logicalnot", 675, NULL },
- { "zdotaccent", 389, NULL },
- { "Atilde", 611, NULL },
- { "breve", 333, NULL },
- { "bar", 275, NULL },
- { "fraction", 167, NULL },
- { "less", 675, NULL },
- { "ecaron", 444, NULL },
- { "guilsinglleft", 333, NULL },
- { "exclam", 333, NULL },
- { "period", 250, NULL },
- { "Rcaron", 611, NULL },
- { "Kcommaaccent", 667, NULL },
- { "greater", 675, NULL },
- { "atilde", 500, NULL },
- { "brokenbar", 275, NULL },
- { "quoteleft", 333, NULL },
- { "Edotaccent", 611, NULL },
- { "onesuperior", 300, NULL }
+ { "Ntilde", 667, nullptr },
+ { "rcaron", 389, nullptr },
+ { "kcommaaccent", 444, nullptr },
+ { "Ncommaaccent", 667, nullptr },
+ { "Zacute", 556, nullptr },
+ { "comma", 250, nullptr },
+ { "cedilla", 333, nullptr },
+ { "plusminus", 675, nullptr },
+ { "circumflex", 333, nullptr },
+ { "dotaccent", 333, nullptr },
+ { "edotaccent", 444, nullptr },
+ { "asciitilde", 541, nullptr },
+ { "colon", 333, nullptr },
+ { "onehalf", 750, nullptr },
+ { "dollar", 500, nullptr },
+ { "Lcaron", 611, nullptr },
+ { "ntilde", 500, nullptr },
+ { "Aogonek", 611, nullptr },
+ { "ncommaaccent", 500, nullptr },
+ { "minus", 675, nullptr },
+ { "Iogonek", 333, nullptr },
+ { "zacute", 389, nullptr },
+ { "yen", 500, nullptr },
+ { "space", 250, nullptr },
+ { "Omacron", 722, nullptr },
+ { "questiondown", 500, nullptr },
+ { "emdash", 889, nullptr },
+ { "Agrave", 611, nullptr },
+ { "three", 500, nullptr },
+ { "numbersign", 500, nullptr },
+ { "lcaron", 300, nullptr },
+ { "A", 611, nullptr },
+ { "B", 611, nullptr },
+ { "C", 667, nullptr },
+ { "aogonek", 500, nullptr },
+ { "D", 722, nullptr },
+ { "E", 611, nullptr },
+ { "onequarter", 750, nullptr },
+ { "F", 611, nullptr },
+ { "G", 722, nullptr },
+ { "H", 722, nullptr },
+ { "I", 333, nullptr },
+ { "J", 444, nullptr },
+ { "K", 667, nullptr },
+ { "iogonek", 278, nullptr },
+ { "backslash", 278, nullptr },
+ { "L", 556, nullptr },
+ { "periodcentered", 250, nullptr },
+ { "M", 833, nullptr },
+ { "N", 667, nullptr },
+ { "omacron", 500, nullptr },
+ { "Tcommaaccent", 556, nullptr },
+ { "O", 722, nullptr },
+ { "P", 611, nullptr },
+ { "Q", 722, nullptr },
+ { "Uhungarumlaut", 722, nullptr },
+ { "R", 611, nullptr },
+ { "Aacute", 611, nullptr },
+ { "caron", 333, nullptr },
+ { "S", 500, nullptr },
+ { "T", 556, nullptr },
+ { "U", 722, nullptr },
+ { "agrave", 500, nullptr },
+ { "V", 611, nullptr },
+ { "W", 833, nullptr },
+ { "X", 611, nullptr },
+ { "question", 500, nullptr },
+ { "equal", 675, nullptr },
+ { "Y", 556, nullptr },
+ { "Z", 556, nullptr },
+ { "four", 500, nullptr },
+ { "a", 500, nullptr },
+ { "Gcommaaccent", 722, nullptr },
+ { "b", 500, nullptr },
+ { "c", 444, nullptr },
+ { "d", 500, nullptr },
+ { "e", 444, nullptr },
+ { "f", 278, nullptr },
+ { "g", 500, nullptr },
+ { "bullet", 350, nullptr },
+ { "h", 500, nullptr },
+ { "i", 278, nullptr },
+ { "Oslash", 722, nullptr },
+ { "dagger", 500, nullptr },
+ { "j", 278, nullptr },
+ { "k", 444, nullptr },
+ { "l", 278, nullptr },
+ { "m", 722, nullptr },
+ { "n", 500, nullptr },
+ { "tcommaaccent", 278, nullptr },
+ { "o", 500, nullptr },
+ { "ordfeminine", 276, nullptr },
+ { "ring", 333, nullptr },
+ { "p", 500, nullptr },
+ { "q", 500, nullptr },
+ { "uhungarumlaut", 500, nullptr },
+ { "r", 389, nullptr },
+ { "twosuperior", 300, nullptr },
+ { "aacute", 500, nullptr },
+ { "s", 389, nullptr },
+ { "OE", 944, nullptr },
+ { "t", 278, nullptr },
+ { "divide", 675, nullptr },
+ { "u", 500, nullptr },
+ { "Ccaron", 667, nullptr },
+ { "v", 444, nullptr },
+ { "w", 667, nullptr },
+ { "x", 444, nullptr },
+ { "y", 444, nullptr },
+ { "z", 389, nullptr },
+ { "Gbreve", 722, nullptr },
+ { "commaaccent", 250, nullptr },
+ { "hungarumlaut", 333, nullptr },
+ { "Idotaccent", 333, nullptr },
+ { "Nacute", 667, nullptr },
+ { "quotedbl", 420, nullptr },
+ { "gcommaaccent", 500, nullptr },
+ { "mu", 500, nullptr },
+ { "greaterequal", 549, nullptr },
+ { "Scaron", 500, nullptr },
+ { "Lslash", 556, nullptr },
+ { "semicolon", 333, nullptr },
+ { "oslash", 500, nullptr },
+ { "lessequal", 549, nullptr },
+ { "lozenge", 471, nullptr },
+ { "parenright", 333, nullptr },
+ { "ccaron", 444, nullptr },
+ { "Ecircumflex", 611, nullptr },
+ { "gbreve", 500, nullptr },
+ { "trademark", 980, nullptr },
+ { "daggerdbl", 500, nullptr },
+ { "nacute", 500, nullptr },
+ { "macron", 333, nullptr },
+ { "Otilde", 722, nullptr },
+ { "Emacron", 611, nullptr },
+ { "ellipsis", 889, nullptr },
+ { "scaron", 389, nullptr },
+ { "AE", 889, nullptr },
+ { "Ucircumflex", 722, nullptr },
+ { "lslash", 278, nullptr },
+ { "quotedblleft", 556, nullptr },
+ { "guilsinglright", 333, nullptr },
+ { "hyphen", 333, nullptr },
+ { "quotesingle", 214, nullptr },
+ { "eight", 500, nullptr },
+ { "exclamdown", 389, nullptr },
+ { "endash", 500, nullptr },
+ { "oe", 667, nullptr },
+ { "Abreve", 611, nullptr },
+ { "Umacron", 722, nullptr },
+ { "ecircumflex", 444, nullptr },
+ { "Adieresis", 611, nullptr },
+ { "copyright", 760, nullptr },
+ { "Egrave", 611, nullptr },
+ { "slash", 278, nullptr },
+ { "Edieresis", 611, nullptr },
+ { "otilde", 500, nullptr },
+ { "Idieresis", 333, nullptr },
+ { "parenleft", 333, nullptr },
+ { "one", 500, nullptr },
+ { "emacron", 444, nullptr },
+ { "Odieresis", 722, nullptr },
+ { "ucircumflex", 500, nullptr },
+ { "bracketleft", 389, nullptr },
+ { "Ugrave", 722, nullptr },
+ { "quoteright", 333, nullptr },
+ { "Udieresis", 722, nullptr },
+ { "perthousand", 1000, nullptr },
+ { "Ydieresis", 556, nullptr },
+ { "umacron", 500, nullptr },
+ { "abreve", 500, nullptr },
+ { "Eacute", 611, nullptr },
+ { "adieresis", 500, nullptr },
+ { "egrave", 444, nullptr },
+ { "edieresis", 444, nullptr },
+ { "idieresis", 278, nullptr },
+ { "Eth", 722, nullptr },
+ { "ae", 667, nullptr },
+ { "asterisk", 500, nullptr },
+ { "odieresis", 500, nullptr },
+ { "Uacute", 722, nullptr },
+ { "ugrave", 500, nullptr },
+ { "nine", 500, nullptr },
+ { "five", 500, nullptr },
+ { "udieresis", 500, nullptr },
+ { "Zcaron", 556, nullptr },
+ { "Scommaaccent", 500, nullptr },
+ { "threequarters", 750, nullptr },
+ { "guillemotright", 500, nullptr },
+ { "Ccedilla", 667, nullptr },
+ { "ydieresis", 444, nullptr },
+ { "tilde", 333, nullptr },
+ { "at", 920, nullptr },
+ { "eacute", 444, nullptr },
+ { "underscore", 500, nullptr },
+ { "Euro", 500, nullptr },
+ { "Dcroat", 722, nullptr },
+ { "multiply", 675, nullptr },
+ { "zero", 500, nullptr },
+ { "eth", 500, nullptr },
+ { "Scedilla", 500, nullptr },
+ { "Ograve", 722, nullptr },
+ { "Racute", 611, nullptr },
+ { "partialdiff", 476, nullptr },
+ { "uacute", 500, nullptr },
+ { "braceleft", 400, nullptr },
+ { "Thorn", 611, nullptr },
+ { "zcaron", 389, nullptr },
+ { "scommaaccent", 389, nullptr },
+ { "ccedilla", 444, nullptr },
+ { "Dcaron", 722, nullptr },
+ { "dcroat", 500, nullptr },
+ { "Ocircumflex", 722, nullptr },
+ { "Oacute", 722, nullptr },
+ { "scedilla", 389, nullptr },
+ { "ogonek", 333, nullptr },
+ { "ograve", 500, nullptr },
+ { "racute", 389, nullptr },
+ { "Tcaron", 556, nullptr },
+ { "Eogonek", 611, nullptr },
+ { "thorn", 500, nullptr },
+ { "degree", 400, nullptr },
+ { "registered", 760, nullptr },
+ { "radical", 453, nullptr },
+ { "Aring", 611, nullptr },
+ { "percent", 833, nullptr },
+ { "six", 500, nullptr },
+ { "paragraph", 523, nullptr },
+ { "dcaron", 544, nullptr },
+ { "Uogonek", 722, nullptr },
+ { "two", 500, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 333, nullptr },
+ { "Lacute", 556, nullptr },
+ { "ocircumflex", 500, nullptr },
+ { "oacute", 500, nullptr },
+ { "Uring", 722, nullptr },
+ { "Lcommaaccent", 556, nullptr },
+ { "tcaron", 300, nullptr },
+ { "eogonek", 444, nullptr },
+ { "Delta", 612, nullptr },
+ { "Ohungarumlaut", 722, nullptr },
+ { "asciicircum", 422, nullptr },
+ { "aring", 500, nullptr },
+ { "grave", 333, nullptr },
+ { "uogonek", 500, nullptr },
+ { "bracketright", 389, nullptr },
+ { "Iacute", 333, nullptr },
+ { "ampersand", 778, nullptr },
+ { "igrave", 278, nullptr },
+ { "lacute", 278, nullptr },
+ { "Ncaron", 667, nullptr },
+ { "plus", 675, nullptr },
+ { "uring", 500, nullptr },
+ { "quotesinglbase", 333, nullptr },
+ { "lcommaaccent", 278, nullptr },
+ { "Yacute", 556, nullptr },
+ { "ohungarumlaut", 500, nullptr },
+ { "threesuperior", 300, nullptr },
+ { "acute", 333, nullptr },
+ { "section", 500, nullptr },
+ { "dieresis", 333, nullptr },
+ { "iacute", 278, nullptr },
+ { "quotedblbase", 556, nullptr },
+ { "ncaron", 500, nullptr },
+ { "florin", 500, nullptr },
+ { "yacute", 444, nullptr },
+ { "Rcommaaccent", 611, nullptr },
+ { "fi", 500, nullptr },
+ { "fl", 500, nullptr },
+ { "Acircumflex", 611, nullptr },
+ { "Cacute", 667, nullptr },
+ { "Icircumflex", 333, nullptr },
+ { "guillemotleft", 500, nullptr },
+ { "germandbls", 500, nullptr },
+ { "Amacron", 611, nullptr },
+ { "seven", 500, nullptr },
+ { "Sacute", 500, nullptr },
+ { "ordmasculine", 310, nullptr },
+ { "dotlessi", 278, nullptr },
+ { "sterling", 500, nullptr },
+ { "notequal", 549, nullptr },
+ { "Imacron", 333, nullptr },
+ { "rcommaaccent", 389, nullptr },
+ { "Zdotaccent", 556, nullptr },
+ { "acircumflex", 500, nullptr },
+ { "cacute", 444, nullptr },
+ { "Ecaron", 611, nullptr },
+ { "icircumflex", 278, nullptr },
+ { "braceright", 400, nullptr },
+ { "quotedblright", 556, nullptr },
+ { "amacron", 500, nullptr },
+ { "sacute", 389, nullptr },
+ { "imacron", 278, nullptr },
+ { "cent", 500, nullptr },
+ { "currency", 500, nullptr },
+ { "logicalnot", 675, nullptr },
+ { "zdotaccent", 389, nullptr },
+ { "Atilde", 611, nullptr },
+ { "breve", 333, nullptr },
+ { "bar", 275, nullptr },
+ { "fraction", 167, nullptr },
+ { "less", 675, nullptr },
+ { "ecaron", 444, nullptr },
+ { "guilsinglleft", 333, nullptr },
+ { "exclam", 333, nullptr },
+ { "period", 250, nullptr },
+ { "Rcaron", 611, nullptr },
+ { "Kcommaaccent", 667, nullptr },
+ { "greater", 675, nullptr },
+ { "atilde", 500, nullptr },
+ { "brokenbar", 275, nullptr },
+ { "quoteleft", 333, nullptr },
+ { "Edotaccent", 611, nullptr },
+ { "onesuperior", 300, nullptr }
};
static BuiltinFontWidth timesRomanWidthsTab[] = {
- { "Ntilde", 722, NULL },
- { "rcaron", 333, NULL },
- { "kcommaaccent", 500, NULL },
- { "Ncommaaccent", 722, NULL },
- { "Zacute", 611, NULL },
- { "comma", 250, NULL },
- { "cedilla", 333, NULL },
- { "plusminus", 564, NULL },
- { "circumflex", 333, NULL },
- { "dotaccent", 333, NULL },
- { "edotaccent", 444, NULL },
- { "asciitilde", 541, NULL },
- { "colon", 278, NULL },
- { "onehalf", 750, NULL },
- { "dollar", 500, NULL },
- { "Lcaron", 611, NULL },
- { "ntilde", 500, NULL },
- { "Aogonek", 722, NULL },
- { "ncommaaccent", 500, NULL },
- { "minus", 564, NULL },
- { "Iogonek", 333, NULL },
- { "zacute", 444, NULL },
- { "yen", 500, NULL },
- { "space", 250, NULL },
- { "Omacron", 722, NULL },
- { "questiondown", 444, NULL },
- { "emdash", 1000, NULL },
- { "Agrave", 722, NULL },
- { "three", 500, NULL },
- { "numbersign", 500, NULL },
- { "lcaron", 344, NULL },
- { "A", 722, NULL },
- { "B", 667, NULL },
- { "C", 667, NULL },
- { "aogonek", 444, NULL },
- { "D", 722, NULL },
- { "E", 611, NULL },
- { "onequarter", 750, NULL },
- { "F", 556, NULL },
- { "G", 722, NULL },
- { "H", 722, NULL },
- { "I", 333, NULL },
- { "J", 389, NULL },
- { "K", 722, NULL },
- { "iogonek", 278, NULL },
- { "backslash", 278, NULL },
- { "L", 611, NULL },
- { "periodcentered", 250, NULL },
- { "M", 889, NULL },
- { "N", 722, NULL },
- { "omacron", 500, NULL },
- { "Tcommaaccent", 611, NULL },
- { "O", 722, NULL },
- { "P", 556, NULL },
- { "Q", 722, NULL },
- { "Uhungarumlaut", 722, NULL },
- { "R", 667, NULL },
- { "Aacute", 722, NULL },
- { "caron", 333, NULL },
- { "S", 556, NULL },
- { "T", 611, NULL },
- { "U", 722, NULL },
- { "agrave", 444, NULL },
- { "V", 722, NULL },
- { "W", 944, NULL },
- { "X", 722, NULL },
- { "question", 444, NULL },
- { "equal", 564, NULL },
- { "Y", 722, NULL },
- { "Z", 611, NULL },
- { "four", 500, NULL },
- { "a", 444, NULL },
- { "Gcommaaccent", 722, NULL },
- { "b", 500, NULL },
- { "c", 444, NULL },
- { "d", 500, NULL },
- { "e", 444, NULL },
- { "f", 333, NULL },
- { "g", 500, NULL },
- { "bullet", 350, NULL },
- { "h", 500, NULL },
- { "i", 278, NULL },
- { "Oslash", 722, NULL },
- { "dagger", 500, NULL },
- { "j", 278, NULL },
- { "k", 500, NULL },
- { "l", 278, NULL },
- { "m", 778, NULL },
- { "n", 500, NULL },
- { "tcommaaccent", 278, NULL },
- { "o", 500, NULL },
- { "ordfeminine", 276, NULL },
- { "ring", 333, NULL },
- { "p", 500, NULL },
- { "q", 500, NULL },
- { "uhungarumlaut", 500, NULL },
- { "r", 333, NULL },
- { "twosuperior", 300, NULL },
- { "aacute", 444, NULL },
- { "s", 389, NULL },
- { "OE", 889, NULL },
- { "t", 278, NULL },
- { "divide", 564, NULL },
- { "u", 500, NULL },
- { "Ccaron", 667, NULL },
- { "v", 500, NULL },
- { "w", 722, NULL },
- { "x", 500, NULL },
- { "y", 500, NULL },
- { "z", 444, NULL },
- { "Gbreve", 722, NULL },
- { "commaaccent", 250, NULL },
- { "hungarumlaut", 333, NULL },
- { "Idotaccent", 333, NULL },
- { "Nacute", 722, NULL },
- { "quotedbl", 408, NULL },
- { "gcommaaccent", 500, NULL },
- { "mu", 500, NULL },
- { "greaterequal", 549, NULL },
- { "Scaron", 556, NULL },
- { "Lslash", 611, NULL },
- { "semicolon", 278, NULL },
- { "oslash", 500, NULL },
- { "lessequal", 549, NULL },
- { "lozenge", 471, NULL },
- { "parenright", 333, NULL },
- { "ccaron", 444, NULL },
- { "Ecircumflex", 611, NULL },
- { "gbreve", 500, NULL },
- { "trademark", 980, NULL },
- { "daggerdbl", 500, NULL },
- { "nacute", 500, NULL },
- { "macron", 333, NULL },
- { "Otilde", 722, NULL },
- { "Emacron", 611, NULL },
- { "ellipsis", 1000, NULL },
- { "scaron", 389, NULL },
- { "AE", 889, NULL },
- { "Ucircumflex", 722, NULL },
- { "lslash", 278, NULL },
- { "quotedblleft", 444, NULL },
- { "guilsinglright", 333, NULL },
- { "hyphen", 333, NULL },
- { "quotesingle", 180, NULL },
- { "eight", 500, NULL },
- { "exclamdown", 333, NULL },
- { "endash", 500, NULL },
- { "oe", 722, NULL },
- { "Abreve", 722, NULL },
- { "Umacron", 722, NULL },
- { "ecircumflex", 444, NULL },
- { "Adieresis", 722, NULL },
- { "copyright", 760, NULL },
- { "Egrave", 611, NULL },
- { "slash", 278, NULL },
- { "Edieresis", 611, NULL },
- { "otilde", 500, NULL },
- { "Idieresis", 333, NULL },
- { "parenleft", 333, NULL },
- { "one", 500, NULL },
- { "emacron", 444, NULL },
- { "Odieresis", 722, NULL },
- { "ucircumflex", 500, NULL },
- { "bracketleft", 333, NULL },
- { "Ugrave", 722, NULL },
- { "quoteright", 333, NULL },
- { "Udieresis", 722, NULL },
- { "perthousand", 1000, NULL },
- { "Ydieresis", 722, NULL },
- { "umacron", 500, NULL },
- { "abreve", 444, NULL },
- { "Eacute", 611, NULL },
- { "adieresis", 444, NULL },
- { "egrave", 444, NULL },
- { "edieresis", 444, NULL },
- { "idieresis", 278, NULL },
- { "Eth", 722, NULL },
- { "ae", 667, NULL },
- { "asterisk", 500, NULL },
- { "odieresis", 500, NULL },
- { "Uacute", 722, NULL },
- { "ugrave", 500, NULL },
- { "nine", 500, NULL },
- { "five", 500, NULL },
- { "udieresis", 500, NULL },
- { "Zcaron", 611, NULL },
- { "Scommaaccent", 556, NULL },
- { "threequarters", 750, NULL },
- { "guillemotright", 500, NULL },
- { "Ccedilla", 667, NULL },
- { "ydieresis", 500, NULL },
- { "tilde", 333, NULL },
- { "at", 921, NULL },
- { "eacute", 444, NULL },
- { "underscore", 500, NULL },
- { "Euro", 500, NULL },
- { "Dcroat", 722, NULL },
- { "multiply", 564, NULL },
- { "zero", 500, NULL },
- { "eth", 500, NULL },
- { "Scedilla", 556, NULL },
- { "Ograve", 722, NULL },
- { "Racute", 667, NULL },
- { "partialdiff", 476, NULL },
- { "uacute", 500, NULL },
- { "braceleft", 480, NULL },
- { "Thorn", 556, NULL },
- { "zcaron", 444, NULL },
- { "scommaaccent", 389, NULL },
- { "ccedilla", 444, NULL },
- { "Dcaron", 722, NULL },
- { "dcroat", 500, NULL },
- { "Ocircumflex", 722, NULL },
- { "Oacute", 722, NULL },
- { "scedilla", 389, NULL },
- { "ogonek", 333, NULL },
- { "ograve", 500, NULL },
- { "racute", 333, NULL },
- { "Tcaron", 611, NULL },
- { "Eogonek", 611, NULL },
- { "thorn", 500, NULL },
- { "degree", 400, NULL },
- { "registered", 760, NULL },
- { "radical", 453, NULL },
- { "Aring", 722, NULL },
- { "percent", 833, NULL },
- { "six", 500, NULL },
- { "paragraph", 453, NULL },
- { "dcaron", 588, NULL },
- { "Uogonek", 722, NULL },
- { "two", 500, NULL },
- { "summation", 600, NULL },
- { "Igrave", 333, NULL },
- { "Lacute", 611, NULL },
- { "ocircumflex", 500, NULL },
- { "oacute", 500, NULL },
- { "Uring", 722, NULL },
- { "Lcommaaccent", 611, NULL },
- { "tcaron", 326, NULL },
- { "eogonek", 444, NULL },
- { "Delta", 612, NULL },
- { "Ohungarumlaut", 722, NULL },
- { "asciicircum", 469, NULL },
- { "aring", 444, NULL },
- { "grave", 333, NULL },
- { "uogonek", 500, NULL },
- { "bracketright", 333, NULL },
- { "Iacute", 333, NULL },
- { "ampersand", 778, NULL },
- { "igrave", 278, NULL },
- { "lacute", 278, NULL },
- { "Ncaron", 722, NULL },
- { "plus", 564, NULL },
- { "uring", 500, NULL },
- { "quotesinglbase", 333, NULL },
- { "lcommaaccent", 278, NULL },
- { "Yacute", 722, NULL },
- { "ohungarumlaut", 500, NULL },
- { "threesuperior", 300, NULL },
- { "acute", 333, NULL },
- { "section", 500, NULL },
- { "dieresis", 333, NULL },
- { "iacute", 278, NULL },
- { "quotedblbase", 444, NULL },
- { "ncaron", 500, NULL },
- { "florin", 500, NULL },
- { "yacute", 500, NULL },
- { "Rcommaaccent", 667, NULL },
- { "fi", 556, NULL },
- { "fl", 556, NULL },
- { "Acircumflex", 722, NULL },
- { "Cacute", 667, NULL },
- { "Icircumflex", 333, NULL },
- { "guillemotleft", 500, NULL },
- { "germandbls", 500, NULL },
- { "Amacron", 722, NULL },
- { "seven", 500, NULL },
- { "Sacute", 556, NULL },
- { "ordmasculine", 310, NULL },
- { "dotlessi", 278, NULL },
- { "sterling", 500, NULL },
- { "notequal", 549, NULL },
- { "Imacron", 333, NULL },
- { "rcommaaccent", 333, NULL },
- { "Zdotaccent", 611, NULL },
- { "acircumflex", 444, NULL },
- { "cacute", 444, NULL },
- { "Ecaron", 611, NULL },
- { "icircumflex", 278, NULL },
- { "braceright", 480, NULL },
- { "quotedblright", 444, NULL },
- { "amacron", 444, NULL },
- { "sacute", 389, NULL },
- { "imacron", 278, NULL },
- { "cent", 500, NULL },
- { "currency", 500, NULL },
- { "logicalnot", 564, NULL },
- { "zdotaccent", 444, NULL },
- { "Atilde", 722, NULL },
- { "breve", 333, NULL },
- { "bar", 200, NULL },
- { "fraction", 167, NULL },
- { "less", 564, NULL },
- { "ecaron", 444, NULL },
- { "guilsinglleft", 333, NULL },
- { "exclam", 333, NULL },
- { "period", 250, NULL },
- { "Rcaron", 667, NULL },
- { "Kcommaaccent", 722, NULL },
- { "greater", 564, NULL },
- { "atilde", 444, NULL },
- { "brokenbar", 200, NULL },
- { "quoteleft", 333, NULL },
- { "Edotaccent", 611, NULL },
- { "onesuperior", 300, NULL }
+ { "Ntilde", 722, nullptr },
+ { "rcaron", 333, nullptr },
+ { "kcommaaccent", 500, nullptr },
+ { "Ncommaaccent", 722, nullptr },
+ { "Zacute", 611, nullptr },
+ { "comma", 250, nullptr },
+ { "cedilla", 333, nullptr },
+ { "plusminus", 564, nullptr },
+ { "circumflex", 333, nullptr },
+ { "dotaccent", 333, nullptr },
+ { "edotaccent", 444, nullptr },
+ { "asciitilde", 541, nullptr },
+ { "colon", 278, nullptr },
+ { "onehalf", 750, nullptr },
+ { "dollar", 500, nullptr },
+ { "Lcaron", 611, nullptr },
+ { "ntilde", 500, nullptr },
+ { "Aogonek", 722, nullptr },
+ { "ncommaaccent", 500, nullptr },
+ { "minus", 564, nullptr },
+ { "Iogonek", 333, nullptr },
+ { "zacute", 444, nullptr },
+ { "yen", 500, nullptr },
+ { "space", 250, nullptr },
+ { "Omacron", 722, nullptr },
+ { "questiondown", 444, nullptr },
+ { "emdash", 1000, nullptr },
+ { "Agrave", 722, nullptr },
+ { "three", 500, nullptr },
+ { "numbersign", 500, nullptr },
+ { "lcaron", 344, nullptr },
+ { "A", 722, nullptr },
+ { "B", 667, nullptr },
+ { "C", 667, nullptr },
+ { "aogonek", 444, nullptr },
+ { "D", 722, nullptr },
+ { "E", 611, nullptr },
+ { "onequarter", 750, nullptr },
+ { "F", 556, nullptr },
+ { "G", 722, nullptr },
+ { "H", 722, nullptr },
+ { "I", 333, nullptr },
+ { "J", 389, nullptr },
+ { "K", 722, nullptr },
+ { "iogonek", 278, nullptr },
+ { "backslash", 278, nullptr },
+ { "L", 611, nullptr },
+ { "periodcentered", 250, nullptr },
+ { "M", 889, nullptr },
+ { "N", 722, nullptr },
+ { "omacron", 500, nullptr },
+ { "Tcommaaccent", 611, nullptr },
+ { "O", 722, nullptr },
+ { "P", 556, nullptr },
+ { "Q", 722, nullptr },
+ { "Uhungarumlaut", 722, nullptr },
+ { "R", 667, nullptr },
+ { "Aacute", 722, nullptr },
+ { "caron", 333, nullptr },
+ { "S", 556, nullptr },
+ { "T", 611, nullptr },
+ { "U", 722, nullptr },
+ { "agrave", 444, nullptr },
+ { "V", 722, nullptr },
+ { "W", 944, nullptr },
+ { "X", 722, nullptr },
+ { "question", 444, nullptr },
+ { "equal", 564, nullptr },
+ { "Y", 722, nullptr },
+ { "Z", 611, nullptr },
+ { "four", 500, nullptr },
+ { "a", 444, nullptr },
+ { "Gcommaaccent", 722, nullptr },
+ { "b", 500, nullptr },
+ { "c", 444, nullptr },
+ { "d", 500, nullptr },
+ { "e", 444, nullptr },
+ { "f", 333, nullptr },
+ { "g", 500, nullptr },
+ { "bullet", 350, nullptr },
+ { "h", 500, nullptr },
+ { "i", 278, nullptr },
+ { "Oslash", 722, nullptr },
+ { "dagger", 500, nullptr },
+ { "j", 278, nullptr },
+ { "k", 500, nullptr },
+ { "l", 278, nullptr },
+ { "m", 778, nullptr },
+ { "n", 500, nullptr },
+ { "tcommaaccent", 278, nullptr },
+ { "o", 500, nullptr },
+ { "ordfeminine", 276, nullptr },
+ { "ring", 333, nullptr },
+ { "p", 500, nullptr },
+ { "q", 500, nullptr },
+ { "uhungarumlaut", 500, nullptr },
+ { "r", 333, nullptr },
+ { "twosuperior", 300, nullptr },
+ { "aacute", 444, nullptr },
+ { "s", 389, nullptr },
+ { "OE", 889, nullptr },
+ { "t", 278, nullptr },
+ { "divide", 564, nullptr },
+ { "u", 500, nullptr },
+ { "Ccaron", 667, nullptr },
+ { "v", 500, nullptr },
+ { "w", 722, nullptr },
+ { "x", 500, nullptr },
+ { "y", 500, nullptr },
+ { "z", 444, nullptr },
+ { "Gbreve", 722, nullptr },
+ { "commaaccent", 250, nullptr },
+ { "hungarumlaut", 333, nullptr },
+ { "Idotaccent", 333, nullptr },
+ { "Nacute", 722, nullptr },
+ { "quotedbl", 408, nullptr },
+ { "gcommaaccent", 500, nullptr },
+ { "mu", 500, nullptr },
+ { "greaterequal", 549, nullptr },
+ { "Scaron", 556, nullptr },
+ { "Lslash", 611, nullptr },
+ { "semicolon", 278, nullptr },
+ { "oslash", 500, nullptr },
+ { "lessequal", 549, nullptr },
+ { "lozenge", 471, nullptr },
+ { "parenright", 333, nullptr },
+ { "ccaron", 444, nullptr },
+ { "Ecircumflex", 611, nullptr },
+ { "gbreve", 500, nullptr },
+ { "trademark", 980, nullptr },
+ { "daggerdbl", 500, nullptr },
+ { "nacute", 500, nullptr },
+ { "macron", 333, nullptr },
+ { "Otilde", 722, nullptr },
+ { "Emacron", 611, nullptr },
+ { "ellipsis", 1000, nullptr },
+ { "scaron", 389, nullptr },
+ { "AE", 889, nullptr },
+ { "Ucircumflex", 722, nullptr },
+ { "lslash", 278, nullptr },
+ { "quotedblleft", 444, nullptr },
+ { "guilsinglright", 333, nullptr },
+ { "hyphen", 333, nullptr },
+ { "quotesingle", 180, nullptr },
+ { "eight", 500, nullptr },
+ { "exclamdown", 333, nullptr },
+ { "endash", 500, nullptr },
+ { "oe", 722, nullptr },
+ { "Abreve", 722, nullptr },
+ { "Umacron", 722, nullptr },
+ { "ecircumflex", 444, nullptr },
+ { "Adieresis", 722, nullptr },
+ { "copyright", 760, nullptr },
+ { "Egrave", 611, nullptr },
+ { "slash", 278, nullptr },
+ { "Edieresis", 611, nullptr },
+ { "otilde", 500, nullptr },
+ { "Idieresis", 333, nullptr },
+ { "parenleft", 333, nullptr },
+ { "one", 500, nullptr },
+ { "emacron", 444, nullptr },
+ { "Odieresis", 722, nullptr },
+ { "ucircumflex", 500, nullptr },
+ { "bracketleft", 333, nullptr },
+ { "Ugrave", 722, nullptr },
+ { "quoteright", 333, nullptr },
+ { "Udieresis", 722, nullptr },
+ { "perthousand", 1000, nullptr },
+ { "Ydieresis", 722, nullptr },
+ { "umacron", 500, nullptr },
+ { "abreve", 444, nullptr },
+ { "Eacute", 611, nullptr },
+ { "adieresis", 444, nullptr },
+ { "egrave", 444, nullptr },
+ { "edieresis", 444, nullptr },
+ { "idieresis", 278, nullptr },
+ { "Eth", 722, nullptr },
+ { "ae", 667, nullptr },
+ { "asterisk", 500, nullptr },
+ { "odieresis", 500, nullptr },
+ { "Uacute", 722, nullptr },
+ { "ugrave", 500, nullptr },
+ { "nine", 500, nullptr },
+ { "five", 500, nullptr },
+ { "udieresis", 500, nullptr },
+ { "Zcaron", 611, nullptr },
+ { "Scommaaccent", 556, nullptr },
+ { "threequarters", 750, nullptr },
+ { "guillemotright", 500, nullptr },
+ { "Ccedilla", 667, nullptr },
+ { "ydieresis", 500, nullptr },
+ { "tilde", 333, nullptr },
+ { "at", 921, nullptr },
+ { "eacute", 444, nullptr },
+ { "underscore", 500, nullptr },
+ { "Euro", 500, nullptr },
+ { "Dcroat", 722, nullptr },
+ { "multiply", 564, nullptr },
+ { "zero", 500, nullptr },
+ { "eth", 500, nullptr },
+ { "Scedilla", 556, nullptr },
+ { "Ograve", 722, nullptr },
+ { "Racute", 667, nullptr },
+ { "partialdiff", 476, nullptr },
+ { "uacute", 500, nullptr },
+ { "braceleft", 480, nullptr },
+ { "Thorn", 556, nullptr },
+ { "zcaron", 444, nullptr },
+ { "scommaaccent", 389, nullptr },
+ { "ccedilla", 444, nullptr },
+ { "Dcaron", 722, nullptr },
+ { "dcroat", 500, nullptr },
+ { "Ocircumflex", 722, nullptr },
+ { "Oacute", 722, nullptr },
+ { "scedilla", 389, nullptr },
+ { "ogonek", 333, nullptr },
+ { "ograve", 500, nullptr },
+ { "racute", 333, nullptr },
+ { "Tcaron", 611, nullptr },
+ { "Eogonek", 611, nullptr },
+ { "thorn", 500, nullptr },
+ { "degree", 400, nullptr },
+ { "registered", 760, nullptr },
+ { "radical", 453, nullptr },
+ { "Aring", 722, nullptr },
+ { "percent", 833, nullptr },
+ { "six", 500, nullptr },
+ { "paragraph", 453, nullptr },
+ { "dcaron", 588, nullptr },
+ { "Uogonek", 722, nullptr },
+ { "two", 500, nullptr },
+ { "summation", 600, nullptr },
+ { "Igrave", 333, nullptr },
+ { "Lacute", 611, nullptr },
+ { "ocircumflex", 500, nullptr },
+ { "oacute", 500, nullptr },
+ { "Uring", 722, nullptr },
+ { "Lcommaaccent", 611, nullptr },
+ { "tcaron", 326, nullptr },
+ { "eogonek", 444, nullptr },
+ { "Delta", 612, nullptr },
+ { "Ohungarumlaut", 722, nullptr },
+ { "asciicircum", 469, nullptr },
+ { "aring", 444, nullptr },
+ { "grave", 333, nullptr },
+ { "uogonek", 500, nullptr },
+ { "bracketright", 333, nullptr },
+ { "Iacute", 333, nullptr },
+ { "ampersand", 778, nullptr },
+ { "igrave", 278, nullptr },
+ { "lacute", 278, nullptr },
+ { "Ncaron", 722, nullptr },
+ { "plus", 564, nullptr },
+ { "uring", 500, nullptr },
+ { "quotesinglbase", 333, nullptr },
+ { "lcommaaccent", 278, nullptr },
+ { "Yacute", 722, nullptr },
+ { "ohungarumlaut", 500, nullptr },
+ { "threesuperior", 300, nullptr },
+ { "acute", 333, nullptr },
+ { "section", 500, nullptr },
+ { "dieresis", 333, nullptr },
+ { "iacute", 278, nullptr },
+ { "quotedblbase", 444, nullptr },
+ { "ncaron", 500, nullptr },
+ { "florin", 500, nullptr },
+ { "yacute", 500, nullptr },
+ { "Rcommaaccent", 667, nullptr },
+ { "fi", 556, nullptr },
+ { "fl", 556, nullptr },
+ { "Acircumflex", 722, nullptr },
+ { "Cacute", 667, nullptr },
+ { "Icircumflex", 333, nullptr },
+ { "guillemotleft", 500, nullptr },
+ { "germandbls", 500, nullptr },
+ { "Amacron", 722, nullptr },
+ { "seven", 500, nullptr },
+ { "Sacute", 556, nullptr },
+ { "ordmasculine", 310, nullptr },
+ { "dotlessi", 278, nullptr },
+ { "sterling", 500, nullptr },
+ { "notequal", 549, nullptr },
+ { "Imacron", 333, nullptr },
+ { "rcommaaccent", 333, nullptr },
+ { "Zdotaccent", 611, nullptr },
+ { "acircumflex", 444, nullptr },
+ { "cacute", 444, nullptr },
+ { "Ecaron", 611, nullptr },
+ { "icircumflex", 278, nullptr },
+ { "braceright", 480, nullptr },
+ { "quotedblright", 444, nullptr },
+ { "amacron", 444, nullptr },
+ { "sacute", 389, nullptr },
+ { "imacron", 278, nullptr },
+ { "cent", 500, nullptr },
+ { "currency", 500, nullptr },
+ { "logicalnot", 564, nullptr },
+ { "zdotaccent", 444, nullptr },
+ { "Atilde", 722, nullptr },
+ { "breve", 333, nullptr },
+ { "bar", 200, nullptr },
+ { "fraction", 167, nullptr },
+ { "less", 564, nullptr },
+ { "ecaron", 444, nullptr },
+ { "guilsinglleft", 333, nullptr },
+ { "exclam", 333, nullptr },
+ { "period", 250, nullptr },
+ { "Rcaron", 667, nullptr },
+ { "Kcommaaccent", 722, nullptr },
+ { "greater", 564, nullptr },
+ { "atilde", 444, nullptr },
+ { "brokenbar", 200, nullptr },
+ { "quoteleft", 333, nullptr },
+ { "Edotaccent", 611, nullptr },
+ { "onesuperior", 300, nullptr }
};
static BuiltinFontWidth zapfDingbatsWidthsTab[] = {
- { "a81", 438, NULL },
- { "a82", 138, NULL },
- { "a83", 277, NULL },
- { "a84", 415, NULL },
- { "a85", 509, NULL },
- { "a86", 410, NULL },
- { "a87", 234, NULL },
- { "a88", 234, NULL },
- { "a89", 390, NULL },
- { "a140", 788, NULL },
- { "a141", 788, NULL },
- { "a142", 788, NULL },
- { "a143", 788, NULL },
- { "a144", 788, NULL },
- { "a145", 788, NULL },
- { "a146", 788, NULL },
- { "a147", 788, NULL },
- { "a148", 788, NULL },
- { "a149", 788, NULL },
- { "a90", 390, NULL },
- { "a91", 276, NULL },
- { "a92", 276, NULL },
- { "space", 278, NULL },
- { "a93", 317, NULL },
- { "a94", 317, NULL },
- { "a95", 334, NULL },
- { "a96", 334, NULL },
- { "a97", 392, NULL },
- { "a98", 392, NULL },
- { "a99", 668, NULL },
- { "a150", 788, NULL },
- { "a151", 788, NULL },
- { "a152", 788, NULL },
- { "a153", 788, NULL },
- { "a154", 788, NULL },
- { "a155", 788, NULL },
- { "a156", 788, NULL },
- { "a157", 788, NULL },
- { "a158", 788, NULL },
- { "a159", 788, NULL },
- { "a160", 894, NULL },
- { "a161", 838, NULL },
- { "a162", 924, NULL },
- { "a163", 1016, NULL },
- { "a164", 458, NULL },
- { "a165", 924, NULL },
- { "a166", 918, NULL },
- { "a167", 927, NULL },
- { "a168", 928, NULL },
- { "a169", 928, NULL },
- { "a170", 834, NULL },
- { "a171", 873, NULL },
- { "a172", 828, NULL },
- { "a173", 924, NULL },
- { "a174", 917, NULL },
- { "a175", 930, NULL },
- { "a176", 931, NULL },
- { "a177", 463, NULL },
- { "a178", 883, NULL },
- { "a179", 836, NULL },
- { "a180", 867, NULL },
- { "a181", 696, NULL },
- { "a182", 874, NULL },
- { "a183", 760, NULL },
- { "a184", 946, NULL },
- { "a185", 865, NULL },
- { "a186", 967, NULL },
- { "a187", 831, NULL },
- { "a188", 873, NULL },
- { "a189", 927, NULL },
- { "a1", 974, NULL },
- { "a2", 961, NULL },
- { "a3", 980, NULL },
- { "a4", 719, NULL },
- { "a5", 789, NULL },
- { "a6", 494, NULL },
- { "a7", 552, NULL },
- { "a8", 537, NULL },
- { "a9", 577, NULL },
- { "a190", 970, NULL },
- { "a191", 918, NULL },
- { "a192", 748, NULL },
- { "a193", 836, NULL },
- { "a194", 771, NULL },
- { "a195", 888, NULL },
- { "a196", 748, NULL },
- { "a197", 771, NULL },
- { "a198", 888, NULL },
- { "a199", 867, NULL },
- { "a10", 692, NULL },
- { "a11", 960, NULL },
- { "a12", 939, NULL },
- { "a13", 549, NULL },
- { "a14", 855, NULL },
- { "a15", 911, NULL },
- { "a16", 933, NULL },
- { "a17", 945, NULL },
- { "a18", 974, NULL },
- { "a19", 755, NULL },
- { "a20", 846, NULL },
- { "a21", 762, NULL },
- { "a22", 761, NULL },
- { "a23", 571, NULL },
- { "a24", 677, NULL },
- { "a25", 763, NULL },
- { "a26", 760, NULL },
- { "a27", 759, NULL },
- { "a28", 754, NULL },
- { "a29", 786, NULL },
- { "a30", 788, NULL },
- { "a31", 788, NULL },
- { "a32", 790, NULL },
- { "a33", 793, NULL },
- { "a34", 794, NULL },
- { "a35", 816, NULL },
- { "a36", 823, NULL },
- { "a37", 789, NULL },
- { "a38", 841, NULL },
- { "a39", 823, NULL },
- { "a40", 833, NULL },
- { "a41", 816, NULL },
- { "a42", 831, NULL },
- { "a43", 923, NULL },
- { "a44", 744, NULL },
- { "a45", 723, NULL },
- { "a46", 749, NULL },
- { "a47", 790, NULL },
- { "a48", 792, NULL },
- { "a49", 695, NULL },
- { "a100", 668, NULL },
- { "a101", 732, NULL },
- { "a102", 544, NULL },
- { "a103", 544, NULL },
- { "a104", 910, NULL },
- { "a105", 911, NULL },
- { "a106", 667, NULL },
- { "a107", 760, NULL },
- { "a108", 760, NULL },
- { "a109", 626, NULL },
- { "a50", 776, NULL },
- { "a51", 768, NULL },
- { "a52", 792, NULL },
- { "a53", 759, NULL },
- { "a54", 707, NULL },
- { "a55", 708, NULL },
- { "a56", 682, NULL },
- { "a57", 701, NULL },
- { "a58", 826, NULL },
- { "a59", 815, NULL },
- { "a110", 694, NULL },
- { "a111", 595, NULL },
- { "a112", 776, NULL },
- { "a117", 690, NULL },
- { "a118", 791, NULL },
- { "a119", 790, NULL },
- { "a60", 789, NULL },
- { "a61", 789, NULL },
- { "a62", 707, NULL },
- { "a63", 687, NULL },
- { "a64", 696, NULL },
- { "a65", 689, NULL },
- { "a66", 786, NULL },
- { "a67", 787, NULL },
- { "a68", 713, NULL },
- { "a69", 791, NULL },
- { "a200", 696, NULL },
- { "a201", 874, NULL },
- { "a120", 788, NULL },
- { "a121", 788, NULL },
- { "a202", 974, NULL },
- { "a122", 788, NULL },
- { "a203", 762, NULL },
- { "a123", 788, NULL },
- { "a204", 759, NULL },
- { "a124", 788, NULL },
- { "a205", 509, NULL },
- { "a125", 788, NULL },
- { "a206", 410, NULL },
- { "a126", 788, NULL },
- { "a127", 788, NULL },
- { "a128", 788, NULL },
- { "a129", 788, NULL },
- { "a70", 785, NULL },
- { "a71", 791, NULL },
- { "a72", 873, NULL },
- { "a73", 761, NULL },
- { "a74", 762, NULL },
- { "a75", 759, NULL },
- { "a76", 892, NULL },
- { "a77", 892, NULL },
- { "a78", 788, NULL },
- { "a79", 784, NULL },
- { "a130", 788, NULL },
- { "a131", 788, NULL },
- { "a132", 788, NULL },
- { "a133", 788, NULL },
- { "a134", 788, NULL },
- { "a135", 788, NULL },
- { "a136", 788, NULL },
- { "a137", 788, NULL },
- { "a138", 788, NULL },
- { "a139", 788, NULL }
+ { "a81", 438, nullptr },
+ { "a82", 138, nullptr },
+ { "a83", 277, nullptr },
+ { "a84", 415, nullptr },
+ { "a85", 509, nullptr },
+ { "a86", 410, nullptr },
+ { "a87", 234, nullptr },
+ { "a88", 234, nullptr },
+ { "a89", 390, nullptr },
+ { "a140", 788, nullptr },
+ { "a141", 788, nullptr },
+ { "a142", 788, nullptr },
+ { "a143", 788, nullptr },
+ { "a144", 788, nullptr },
+ { "a145", 788, nullptr },
+ { "a146", 788, nullptr },
+ { "a147", 788, nullptr },
+ { "a148", 788, nullptr },
+ { "a149", 788, nullptr },
+ { "a90", 390, nullptr },
+ { "a91", 276, nullptr },
+ { "a92", 276, nullptr },
+ { "space", 278, nullptr },
+ { "a93", 317, nullptr },
+ { "a94", 317, nullptr },
+ { "a95", 334, nullptr },
+ { "a96", 334, nullptr },
+ { "a97", 392, nullptr },
+ { "a98", 392, nullptr },
+ { "a99", 668, nullptr },
+ { "a150", 788, nullptr },
+ { "a151", 788, nullptr },
+ { "a152", 788, nullptr },
+ { "a153", 788, nullptr },
+ { "a154", 788, nullptr },
+ { "a155", 788, nullptr },
+ { "a156", 788, nullptr },
+ { "a157", 788, nullptr },
+ { "a158", 788, nullptr },
+ { "a159", 788, nullptr },
+ { "a160", 894, nullptr },
+ { "a161", 838, nullptr },
+ { "a162", 924, nullptr },
+ { "a163", 1016, nullptr },
+ { "a164", 458, nullptr },
+ { "a165", 924, nullptr },
+ { "a166", 918, nullptr },
+ { "a167", 927, nullptr },
+ { "a168", 928, nullptr },
+ { "a169", 928, nullptr },
+ { "a170", 834, nullptr },
+ { "a171", 873, nullptr },
+ { "a172", 828, nullptr },
+ { "a173", 924, nullptr },
+ { "a174", 917, nullptr },
+ { "a175", 930, nullptr },
+ { "a176", 931, nullptr },
+ { "a177", 463, nullptr },
+ { "a178", 883, nullptr },
+ { "a179", 836, nullptr },
+ { "a180", 867, nullptr },
+ { "a181", 696, nullptr },
+ { "a182", 874, nullptr },
+ { "a183", 760, nullptr },
+ { "a184", 946, nullptr },
+ { "a185", 865, nullptr },
+ { "a186", 967, nullptr },
+ { "a187", 831, nullptr },
+ { "a188", 873, nullptr },
+ { "a189", 927, nullptr },
+ { "a1", 974, nullptr },
+ { "a2", 961, nullptr },
+ { "a3", 980, nullptr },
+ { "a4", 719, nullptr },
+ { "a5", 789, nullptr },
+ { "a6", 494, nullptr },
+ { "a7", 552, nullptr },
+ { "a8", 537, nullptr },
+ { "a9", 577, nullptr },
+ { "a190", 970, nullptr },
+ { "a191", 918, nullptr },
+ { "a192", 748, nullptr },
+ { "a193", 836, nullptr },
+ { "a194", 771, nullptr },
+ { "a195", 888, nullptr },
+ { "a196", 748, nullptr },
+ { "a197", 771, nullptr },
+ { "a198", 888, nullptr },
+ { "a199", 867, nullptr },
+ { "a10", 692, nullptr },
+ { "a11", 960, nullptr },
+ { "a12", 939, nullptr },
+ { "a13", 549, nullptr },
+ { "a14", 855, nullptr },
+ { "a15", 911, nullptr },
+ { "a16", 933, nullptr },
+ { "a17", 945, nullptr },
+ { "a18", 974, nullptr },
+ { "a19", 755, nullptr },
+ { "a20", 846, nullptr },
+ { "a21", 762, nullptr },
+ { "a22", 761, nullptr },
+ { "a23", 571, nullptr },
+ { "a24", 677, nullptr },
+ { "a25", 763, nullptr },
+ { "a26", 760, nullptr },
+ { "a27", 759, nullptr },
+ { "a28", 754, nullptr },
+ { "a29", 786, nullptr },
+ { "a30", 788, nullptr },
+ { "a31", 788, nullptr },
+ { "a32", 790, nullptr },
+ { "a33", 793, nullptr },
+ { "a34", 794, nullptr },
+ { "a35", 816, nullptr },
+ { "a36", 823, nullptr },
+ { "a37", 789, nullptr },
+ { "a38", 841, nullptr },
+ { "a39", 823, nullptr },
+ { "a40", 833, nullptr },
+ { "a41", 816, nullptr },
+ { "a42", 831, nullptr },
+ { "a43", 923, nullptr },
+ { "a44", 744, nullptr },
+ { "a45", 723, nullptr },
+ { "a46", 749, nullptr },
+ { "a47", 790, nullptr },
+ { "a48", 792, nullptr },
+ { "a49", 695, nullptr },
+ { "a100", 668, nullptr },
+ { "a101", 732, nullptr },
+ { "a102", 544, nullptr },
+ { "a103", 544, nullptr },
+ { "a104", 910, nullptr },
+ { "a105", 911, nullptr },
+ { "a106", 667, nullptr },
+ { "a107", 760, nullptr },
+ { "a108", 760, nullptr },
+ { "a109", 626, nullptr },
+ { "a50", 776, nullptr },
+ { "a51", 768, nullptr },
+ { "a52", 792, nullptr },
+ { "a53", 759, nullptr },
+ { "a54", 707, nullptr },
+ { "a55", 708, nullptr },
+ { "a56", 682, nullptr },
+ { "a57", 701, nullptr },
+ { "a58", 826, nullptr },
+ { "a59", 815, nullptr },
+ { "a110", 694, nullptr },
+ { "a111", 595, nullptr },
+ { "a112", 776, nullptr },
+ { "a117", 690, nullptr },
+ { "a118", 791, nullptr },
+ { "a119", 790, nullptr },
+ { "a60", 789, nullptr },
+ { "a61", 789, nullptr },
+ { "a62", 707, nullptr },
+ { "a63", 687, nullptr },
+ { "a64", 696, nullptr },
+ { "a65", 689, nullptr },
+ { "a66", 786, nullptr },
+ { "a67", 787, nullptr },
+ { "a68", 713, nullptr },
+ { "a69", 791, nullptr },
+ { "a200", 696, nullptr },
+ { "a201", 874, nullptr },
+ { "a120", 788, nullptr },
+ { "a121", 788, nullptr },
+ { "a202", 974, nullptr },
+ { "a122", 788, nullptr },
+ { "a203", 762, nullptr },
+ { "a123", 788, nullptr },
+ { "a204", 759, nullptr },
+ { "a124", 788, nullptr },
+ { "a205", 509, nullptr },
+ { "a125", 788, nullptr },
+ { "a206", 410, nullptr },
+ { "a126", 788, nullptr },
+ { "a127", 788, nullptr },
+ { "a128", 788, nullptr },
+ { "a129", 788, nullptr },
+ { "a70", 785, nullptr },
+ { "a71", 791, nullptr },
+ { "a72", 873, nullptr },
+ { "a73", 761, nullptr },
+ { "a74", 762, nullptr },
+ { "a75", 759, nullptr },
+ { "a76", 892, nullptr },
+ { "a77", 892, nullptr },
+ { "a78", 788, nullptr },
+ { "a79", 784, nullptr },
+ { "a130", 788, nullptr },
+ { "a131", 788, nullptr },
+ { "a132", 788, nullptr },
+ { "a133", 788, nullptr },
+ { "a134", 788, nullptr },
+ { "a135", 788, nullptr },
+ { "a136", 788, nullptr },
+ { "a137", 788, nullptr },
+ { "a138", 788, nullptr },
+ { "a139", 788, nullptr }
};
BuiltinFont builtinFonts[] = {
- { "Courier", standardEncoding, 629, -157, { -23, -250, 715, 805}, NULL },
- { "Courier-Bold", standardEncoding, 629, -157, {-113, -250, 749, 801}, NULL },
- { "Courier-BoldOblique", standardEncoding, 629, -157, { -57, -250, 869, 801}, NULL },
- { "Courier-Oblique", standardEncoding, 629, -157, { -27, -250, 849, 805}, NULL },
- { "Helvetica", standardEncoding, 718, -207, {-166, -225, 1000, 931}, NULL },
- { "Helvetica-Bold", standardEncoding, 718, -207, {-170, -228, 1003, 962}, NULL },
- { "Helvetica-BoldOblique", standardEncoding, 718, -207, {-174, -228, 1114, 962}, NULL },
- { "Helvetica-Oblique", standardEncoding, 718, -207, {-170, -225, 1116, 931}, NULL },
- { "Symbol", symbolEncoding, 1010, -293, {-180, -293, 1090, 1010}, NULL },
- { "Times-Bold", standardEncoding, 683, -217, {-168, -218, 1000, 935}, NULL },
- { "Times-BoldItalic", standardEncoding, 683, -217, {-200, -218, 996, 921}, NULL },
- { "Times-Italic", standardEncoding, 683, -217, {-169, -217, 1010, 883}, NULL },
- { "Times-Roman", standardEncoding, 683, -217, {-168, -218, 1000, 898}, NULL },
- { "ZapfDingbats", zapfDingbatsEncoding, 820, -143, { -1, -143, 981, 820}, NULL }
+ { "Courier", standardEncoding, 629, -157, { -23, -250, 715, 805}, nullptr },
+ { "Courier-Bold", standardEncoding, 629, -157, {-113, -250, 749, 801}, nullptr },
+ { "Courier-BoldOblique", standardEncoding, 629, -157, { -57, -250, 869, 801}, nullptr },
+ { "Courier-Oblique", standardEncoding, 629, -157, { -27, -250, 849, 805}, nullptr },
+ { "Helvetica", standardEncoding, 718, -207, {-166, -225, 1000, 931}, nullptr },
+ { "Helvetica-Bold", standardEncoding, 718, -207, {-170, -228, 1003, 962}, nullptr },
+ { "Helvetica-BoldOblique", standardEncoding, 718, -207, {-174, -228, 1114, 962}, nullptr },
+ { "Helvetica-Oblique", standardEncoding, 718, -207, {-170, -225, 1116, 931}, nullptr },
+ { "Symbol", symbolEncoding, 1010, -293, {-180, -293, 1090, 1010}, nullptr },
+ { "Times-Bold", standardEncoding, 683, -217, {-168, -218, 1000, 935}, nullptr },
+ { "Times-BoldItalic", standardEncoding, 683, -217, {-200, -218, 996, 921}, nullptr },
+ { "Times-Italic", standardEncoding, 683, -217, {-169, -217, 1010, 883}, nullptr },
+ { "Times-Roman", standardEncoding, 683, -217, {-168, -218, 1000, 898}, nullptr },
+ { "ZapfDingbats", zapfDingbatsEncoding, 820, -143, { -1, -143, 981, 820}, nullptr }
};
BuiltinFont *builtinFontSubst[] = {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CMap.cc b/Build/source/libs/poppler/poppler-src/poppler/CMap.cc
index 2d2a7d75754..45b4502eb79 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CMap.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/CMap.cc
@@ -77,12 +77,12 @@ CMap *CMap::parse(CMapCache *cache, GooString *collectionA, Object *obj) {
}
delete cMapNameA;
} else if (obj->isStream()) {
- if (!(cMap = CMap::parse(NULL, collectionA, obj->getStream()))) {
+ if (!(cMap = CMap::parse(nullptr, collectionA, obj->getStream()))) {
error(errSyntaxError, -1, "Invalid CMap in Type 0 font");
}
} else {
error(errSyntaxError, -1, "Invalid Encoding in Type 0 font");
- return NULL;
+ return nullptr;
}
return cMap;
}
@@ -105,7 +105,7 @@ CMap *CMap::parse(CMapCache *cache, GooString *collectionA,
error(errSyntaxError, -1,
"Couldn't find '{0:t}' CMap file for '{1:t}' collection",
cMapNameA, collectionA);
- return NULL;
+ return nullptr;
}
cMap = new CMap(collectionA->copy(), cMapNameA->copy());
@@ -117,7 +117,7 @@ CMap *CMap::parse(CMapCache *cache, GooString *collectionA,
}
CMap *CMap::parse(CMapCache *cache, GooString *collectionA, Stream *str) {
- CMap *cMap = new CMap(collectionA->copy(), NULL);
+ CMap *cMap = new CMap(collectionA->copy(), nullptr);
Object obj1 = str->getDict()->lookup("UseCMap");
if (!obj1.isNull()) {
cMap->useCMap(cache, &obj1);
@@ -131,7 +131,7 @@ CMap *CMap::parse(CMapCache *cache, GooString *collectionA, Stream *str) {
CMap *CMap::parse(CMapCache *cache, GooString *collectionA,
GooString *cMapNameA, Stream *stream) {
- FILE *f = NULL;
+ FILE *f = nullptr;
CMap *cmap;
PSTokenizer *pst;
char tok1[256], tok2[256], tok3[256];
@@ -154,7 +154,7 @@ CMap *CMap::parse(CMapCache *cache, GooString *collectionA,
error(errSyntaxError, -1, "Couldn't find '{0:t}' CMap file for '{1:t}' collection",
cMapNameA, collectionA);
- return NULL;
+ return nullptr;
}
pst = new PSTokenizer(&getCharFromFile, f);
}
@@ -323,7 +323,7 @@ CMap::CMap(GooString *collectionA, GooString *cMapNameA, int wModeA) {
cMapName = cMapNameA;
isIdent = gTrue;
wMode = wModeA;
- vector = NULL;
+ vector = nullptr;
refCnt = 1;
#ifdef MULTITHREADED
gInitMutex(&mutex);
@@ -340,7 +340,7 @@ void CMap::useCMap(CMapCache *cache, char *useName) {
// GlobalParams::getCMap() in order to acqure the lock need to use
// GlobalParams::getCMap
if (cache) {
- subCMap = cache->getCMap(collection, useNameStr, NULL);
+ subCMap = cache->getCMap(collection, useNameStr, nullptr);
} else {
subCMap = globalParams->getCMap(collection, useNameStr);
}
@@ -511,7 +511,7 @@ void CMap::setReverseMapVector(Guint startCode, CMapVectorEntry *vec,
Guint *rmap, Guint rmapSize, Guint ncand) {
int i;
- if (vec == 0) return;
+ if (vec == nullptr) return;
for (i = 0;i < 256;i++) {
if (vec[i].isVector) {
setReverseMapVector((startCode+i) << 8,
@@ -547,7 +547,7 @@ CMapCache::CMapCache() {
int i;
for (i = 0; i < cMapCacheSize; ++i) {
- cache[i] = NULL;
+ cache[i] = nullptr;
}
}
@@ -591,5 +591,5 @@ CMap *CMapCache::getCMap(GooString *collection, GooString *cMapName, Stream *str
cmap->incRefCnt();
return cmap;
}
- return NULL;
+ return nullptr;
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CMap.h b/Build/source/libs/poppler/poppler-src/poppler/CMap.h
index e85c086a56d..d1a47e0744d 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CMap.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/CMap.h
@@ -14,7 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2008 Koji Otani <sho@bbr.jp>
-// Copyright (C) 2009 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2012, 2017 Adrian Johnson <ajohnson@redneon.com>
//
// To see a description of the changes please see the Changelog file that
@@ -71,6 +71,9 @@ public:
~CMap();
+ CMap(const CMap &) = delete;
+ CMap& operator=(const CMap &) = delete;
+
void incRefCnt();
void decRefCnt();
@@ -129,6 +132,9 @@ public:
CMapCache();
~CMapCache();
+ CMapCache(const CMapCache &) = delete;
+ CMapCache& operator=(const CMapCache &) = delete;
+
// Get the <cMapName> CMap for the specified character collection.
// Increments its reference count; there will be one reference for
// the cache plus one for the caller of this function.
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CachedFile.cc b/Build/source/libs/poppler/poppler-src/poppler/CachedFile.cc
index b0ae8388113..1e76d913b99 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CachedFile.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/CachedFile.cc
@@ -6,7 +6,7 @@
//
// Copyright 2009 Stefan Thomas <thomas@eload24.com>
// Copyright 2010, 2011 Hib Eris <hib@hiberis.nl>
-// Copyright 2010 Albert Astals Cid <aacid@kde.org>
+// Copyright 2010, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2013 Julien Nabet <serval2412@yahoo.fr>
//
//========================================================================
@@ -172,12 +172,12 @@ size_t CachedFile::read(void *ptr, size_t unitsize, size_t count)
return bytes;
}
-int CachedFile::cache(size_t offset, size_t length)
+int CachedFile::cache(size_t rangeOffset, size_t rangeLength)
{
std::vector<ByteRange> r;
ByteRange range;
- range.offset = offset;
- range.length = length;
+ range.offset = rangeOffset;
+ range.length = rangeLength;
r.push_back(range);
return cache(r);
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CachedFile.h b/Build/source/libs/poppler/poppler-src/poppler/CachedFile.h
index b99ea1ecad4..51edec8ec95 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CachedFile.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/CachedFile.h
@@ -8,7 +8,7 @@
//
// Copyright 2009 Stefan Thomas <thomas@eload24.com>
// Copyright 2010 Hib Eris <hib@hiberis.nl>
-// Copyright 2010 Albert Astals Cid <aacid@kde.org>
+// Copyright 2010, 2018 Albert Astals Cid <aacid@kde.org>
//
//========================================================================
@@ -47,6 +47,9 @@ public:
CachedFile(CachedFileLoader *cacheLoader, GooString *uri);
+ CachedFile(const CachedFile &) = delete;
+ CachedFile& operator=(const CachedFile &) = delete;
+
Guint getLength() { return length; }
long int tell();
int seek(long int offset, int origin);
@@ -127,8 +130,12 @@ class CachedFileLoader {
public:
+ CachedFileLoader() = default;
virtual ~CachedFileLoader() {};
+ CachedFileLoader(const CachedFileLoader &) = delete;
+ CachedFileLoader& operator=(const CachedFileLoader &) = delete;
+
// Initializes the file load.
// Returns the length of the file.
// The caller is responsible for deleting uri and cachedFile.
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.cc b/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.cc
index a375e0afc6a..91deac465d5 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.cc
@@ -17,7 +17,7 @@
// Copyright (C) 2005-2007 Jeff Muizelaar <jeff@infidigm.net>
// Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2005 Martin Kretzschmar <martink@gnome.org>
-// Copyright (C) 2005, 2009, 2012, 2013, 2015, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2009, 2012, 2013, 2015, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2006, 2007, 2010, 2011 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2007 Koji Otani <sho@bbr.jp>
// Copyright (C) 2008, 2009 Chris Wilson <chris@chris-wilson.co.uk>
@@ -70,17 +70,17 @@
// CairoFont
//------------------------------------------------------------------------
-CairoFont::CairoFont(Ref ref,
- cairo_font_face_t *cairo_font_face,
- int *codeToGID,
- Guint codeToGIDLen,
- GBool substitute,
- GBool printing) : ref(ref),
- cairo_font_face(cairo_font_face),
- codeToGID(codeToGID),
- codeToGIDLen(codeToGIDLen),
- substitute(substitute),
- printing(printing) { }
+CairoFont::CairoFont(Ref refA,
+ cairo_font_face_t *cairo_font_faceA,
+ int *codeToGIDA,
+ Guint codeToGIDLenA,
+ GBool substituteA,
+ GBool printingA) : ref(refA),
+ cairo_font_face(cairo_font_faceA),
+ codeToGID(codeToGIDA),
+ codeToGIDLen(codeToGIDLenA),
+ substitute(substituteA),
+ printing(printingA) { }
CairoFont::~CairoFont() {
cairo_font_face_destroy (cairo_font_face);
@@ -181,7 +181,7 @@ _ft_new_face_uncached (FT_Library lib,
FT_Face face;
cairo_font_face_t *font_face;
- if (font_data == NULL) {
+ if (font_data == nullptr) {
if (FT_New_Face (lib, filename, 0, &face))
return gFalse;
} else {
@@ -287,7 +287,7 @@ _ft_new_face (FT_Library lib,
tmpl.fd = -1;
- if (font_data == NULL) {
+ if (font_data == nullptr) {
/* if we fail to mmap the file, just pass it to FreeType instead */
tmpl.fd = open (filename, O_RDONLY);
if (tmpl.fd == -1)
@@ -298,7 +298,7 @@ _ft_new_face (FT_Library lib,
return _ft_new_face_uncached (lib, filename, font_data, font_data_len, face_out, font_face_out);
}
- tmpl.bytes = (unsigned char *) mmap (NULL, st.st_size,
+ tmpl.bytes = (unsigned char *) mmap (nullptr, st.st_size,
PROT_READ, MAP_PRIVATE,
tmpl.fd, 0);
if (tmpl.bytes == MAP_FAILED) {
@@ -352,7 +352,7 @@ _ft_new_face (FT_Library lib,
l = (struct _ft_face_data *) gmallocn (1, sizeof (struct _ft_face_data));
*l = tmpl;
- l->prev = NULL;
+ l->prev = nullptr;
l->next = _ft_open_faces;
if (_ft_open_faces)
_ft_open_faces->prev = l;
@@ -379,22 +379,21 @@ _ft_new_face (FT_Library lib,
#define _ft_new_face _ft_new_face_uncached
#endif
-CairoFreeTypeFont::CairoFreeTypeFont(Ref ref,
- cairo_font_face_t *cairo_font_face,
- int *codeToGID,
- Guint codeToGIDLen,
- GBool substitute) : CairoFont(ref,
- cairo_font_face,
- codeToGID,
- codeToGIDLen,
- substitute,
+CairoFreeTypeFont::CairoFreeTypeFont(Ref refA,
+ cairo_font_face_t *cairo_font_faceA,
+ int *codeToGIDA,
+ Guint codeToGIDLenA,
+ GBool substituteA) : CairoFont(refA,
+ cairo_font_faceA,
+ codeToGIDA,
+ codeToGIDLenA,
+ substituteA,
gTrue) { }
CairoFreeTypeFont::~CairoFreeTypeFont() { }
CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
FT_Library lib, GBool useCIDs) {
- Object refObj, strObj;
GooString *fileName;
char *fileNameC;
char *font_data;
@@ -413,19 +412,19 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
int *codeToGID;
Guint codeToGIDLen;
- codeToGID = NULL;
+ codeToGID = nullptr;
codeToGIDLen = 0;
- font_data = NULL;
+ font_data = nullptr;
font_data_len = 0;
- fileName = NULL;
- fileNameC = NULL;
+ fileName = nullptr;
+ fileNameC = nullptr;
GBool substitute = gFalse;
ref = *gfxFont->getID();
fontType = gfxFont->getType();
- if (!(fontLoc = gfxFont->locateFont(xref, NULL))) {
+ if (!(fontLoc = gfxFont->locateFont(xref, nullptr))) {
error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'",
gfxFont->getName() ? gfxFont->getName()->getCString()
: "(unnamed)");
@@ -435,7 +434,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
// embedded font
if (fontLoc->locType == gfxFontLocEmbedded) {
font_data = gfxFont->readEmbFontFile(xref, &font_data_len);
- if (NULL == font_data)
+ if (nullptr == font_data)
goto err2;
// external font
@@ -445,7 +444,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
substitute = gTrue;
}
- if (fileName != NULL) {
+ if (fileName != nullptr) {
fileNameC = fileName->getCString();
}
@@ -482,7 +481,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
break;
case fontCIDType2:
case fontCIDType2OT:
- codeToGID = NULL;
+ codeToGID = nullptr;
n = 0;
if (((GfxCIDFont *)gfxFont)->getCIDToGID()) {
n = ((GfxCIDFont *)gfxFont)->getCIDToGIDLen();
@@ -492,7 +491,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
n * sizeof(int));
}
} else {
- if (font_data != NULL) {
+ if (font_data != nullptr) {
ff = FoFiTrueType::make(font_data, font_data_len);
} else {
ff = FoFiTrueType::load(fileNameC);
@@ -506,7 +505,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
/* Fall through */
case fontTrueType:
case fontTrueTypeOT:
- if (font_data != NULL) {
+ if (font_data != nullptr) {
ff = FoFiTrueType::make(font_data, font_data_len);
} else {
ff = FoFiTrueType::load(fileNameC);
@@ -530,12 +529,12 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
case fontCIDType0:
case fontCIDType0C:
- codeToGID = NULL;
+ codeToGID = nullptr;
codeToGIDLen = 0;
if (!useCIDs)
{
- if (font_data != NULL) {
+ if (font_data != nullptr) {
ff1c = FoFiType1C::make(font_data, font_data_len);
} else {
ff1c = FoFiType1C::load(fileNameC);
@@ -553,7 +552,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
break;
case fontCIDType0COT:
- codeToGID = NULL;
+ codeToGID = nullptr;
n = 0;
if (((GfxCIDFont *)gfxFont)->getCIDToGID()) {
n = ((GfxCIDFont *)gfxFont)->getCIDToGIDLen();
@@ -567,7 +566,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
if (!codeToGID) {
if (!useCIDs) {
- if (font_data != NULL) {
+ if (font_data != nullptr) {
ff = FoFiTrueType::make(font_data, font_data_len);
} else {
ff = FoFiTrueType::load(fileNameC);
@@ -604,7 +603,7 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *gfxFont, XRef *xref,
gfree (codeToGID);
gfree (font_data);
fprintf (stderr, "some font thing failed\n");
- return NULL;
+ return nullptr;
}
//------------------------------------------------------------------------
@@ -704,7 +703,7 @@ _render_type3_glyph (cairo_scaled_font_t *scaled_font,
box.y1 = mat[1];
box.x2 = mat[2];
box.y2 = mat[3];
- gfx = new Gfx(info->doc, output_dev, resDict, &box, NULL);
+ gfx = new Gfx(info->doc, output_dev, resDict, &box, nullptr);
output_dev->startDoc(info->doc, info->fontEngine);
output_dev->startPage (1, gfx->getState(), gfx->getXRef());
output_dev->setInType3Char(gTrue);
@@ -736,7 +735,6 @@ _render_type3_glyph (cairo_scaled_font_t *scaled_font,
CairoType3Font *CairoType3Font::create(GfxFont *gfxFont, PDFDoc *doc,
CairoFontEngine *fontEngine,
GBool printing, XRef *xref) {
- Object refObj, strObj;
type3_font_info_t *info;
cairo_font_face_t *font_face;
Ref ref;
@@ -779,18 +777,18 @@ CairoType3Font *CairoType3Font::create(GfxFont *gfxFont, PDFDoc *doc,
return new CairoType3Font(ref, doc, font_face, codeToGID, codeToGIDLen, printing, xref);
}
-CairoType3Font::CairoType3Font(Ref ref,
- PDFDoc *doc,
- cairo_font_face_t *cairo_font_face,
- int *codeToGID,
- Guint codeToGIDLen,
- GBool printing, XRef *xref) : CairoFont(ref,
- cairo_font_face,
- codeToGID,
- codeToGIDLen,
+CairoType3Font::CairoType3Font(Ref refA,
+ PDFDoc *docA,
+ cairo_font_face_t *cairo_font_faceA,
+ int *codeToGIDA,
+ Guint codeToGIDLenA,
+ GBool printingA, XRef *xref) : CairoFont(refA,
+ cairo_font_faceA,
+ codeToGIDA,
+ codeToGIDLenA,
gFalse,
- printing),
- doc(doc) { }
+ printingA),
+ doc(docA) { }
CairoType3Font::~CairoType3Font() { }
@@ -809,7 +807,7 @@ CairoFontEngine::CairoFontEngine(FT_Library libA) {
lib = libA;
for (i = 0; i < cairoFontCacheSize; ++i) {
- fontCache[i] = NULL;
+ fontCache[i] = nullptr;
}
FT_Int major, minor, patch;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.h b/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.h
index 12fa598f152..601fbae84c3 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/CairoFontEngine.h
@@ -15,7 +15,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2005 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2006, 2007 Jeff Muizelaar <jeff@infidigm.net>
// Copyright (C) 2006, 2010 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2008, 2017 Adrian Johnson <ajohnson@redneon.com>
@@ -51,6 +51,8 @@ public:
GBool substitute,
GBool printing);
virtual ~CairoFont();
+ CairoFont(const CairoFont &) = delete;
+ CairoFont& operator=(const CairoFont &other) = delete;
virtual GBool matches(Ref &other, GBool printing);
cairo_font_face_t *getFontFace(void);
@@ -114,6 +116,8 @@ public:
// Create a font engine.
CairoFontEngine(FT_Library libA);
~CairoFontEngine();
+ CairoFontEngine(const CairoFontEngine &) = delete;
+ CairoFontEngine& operator=(const CairoFontEngine &other) = delete;
CairoFont *getFont(GfxFont *gfxFont, PDFDoc *doc, GBool printing, XRef *xref);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc
index cc8a161bee3..f0c4b040ab1 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.cc
@@ -16,9 +16,9 @@
//
// Copyright (C) 2005-2008 Jeff Muizelaar <jeff@infidigm.net>
// Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2005, 2009, 2012, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2009, 2012, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2005 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
-// Copyright (C) 2006-2011, 2013, 2014, 2017 Carlos Garcia Campos <carlosgc@gnome.org>
+// Copyright (C) 2006-2011, 2013, 2014, 2017, 2018 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2008 Carl Worth <cworth@cworth.org>
// Copyright (C) 2008-2017 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2008 Michael Vrable <mvrable@cs.ucsd.edu>
@@ -69,6 +69,11 @@
// #define LOG_CAIRO
+// To limit memory usage and improve performance when printing, limit
+// cairo images to this size. 8192 is sufficient for an A2 sized
+// 300ppi image.
+#define MAX_PRINT_IMAGE_SIZE 8192
+
#ifdef LOG_CAIRO
#define LOG(x) (x)
#else
@@ -91,7 +96,7 @@ static inline void printMatrix(cairo_matrix_t *matrix){
//------------------------------------------------------------------------
CairoImage::CairoImage (double x1, double y1, double x2, double y2) {
- this->image = NULL;
+ this->image = nullptr;
this->x1 = x1;
this->y1 = y1;
this->x2 = x2;
@@ -123,26 +128,26 @@ FT_Library CairoOutputDev::ft_lib;
GBool CairoOutputDev::ft_lib_initialized = gFalse;
CairoOutputDev::CairoOutputDev() {
- doc = NULL;
+ doc = nullptr;
if (!ft_lib_initialized) {
FT_Init_FreeType(&ft_lib);
ft_lib_initialized = gTrue;
}
- fontEngine = NULL;
+ fontEngine = nullptr;
fontEngine_owner = gFalse;
- glyphs = NULL;
- fill_pattern = NULL;
+ glyphs = nullptr;
+ fill_pattern = nullptr;
fill_color.r = fill_color.g = fill_color.b = 0;
- stroke_pattern = NULL;
+ stroke_pattern = nullptr;
stroke_color.r = stroke_color.g = stroke_color.b = 0;
stroke_opacity = 1.0;
fill_opacity = 1.0;
- textClipPath = NULL;
- strokePathClip = NULL;
- cairo = NULL;
- currentFont = NULL;
+ textClipPath = nullptr;
+ strokePathClip = nullptr;
+ cairo = nullptr;
+ currentFont = nullptr;
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 14, 0)
prescaleImages = gFalse;
#else
@@ -156,23 +161,23 @@ CairoOutputDev::CairoOutputDev() {
text_matrix_valid = gTrue;
antialias = CAIRO_ANTIALIAS_DEFAULT;
- groupColorSpaceStack = NULL;
- maskStack = NULL;
- group = NULL;
- mask = NULL;
- shape = NULL;
- cairo_shape = NULL;
+ groupColorSpaceStack = nullptr;
+ maskStack = nullptr;
+ group = nullptr;
+ mask = nullptr;
+ shape = nullptr;
+ cairo_shape = nullptr;
knockoutCount = 0;
- text = NULL;
- actualText = NULL;
+ text = nullptr;
+ actualText = nullptr;
// the SA parameter supposedly defaults to false, but Acrobat
// apparently hardwires it to true
stroke_adjust = gTrue;
align_stroke_coords = gFalse;
adjusted_stroke_width = gFalse;
- xref = NULL;
+ xref = nullptr;
}
CairoOutputDev::~CairoOutputDev() {
@@ -198,7 +203,7 @@ CairoOutputDev::~CairoOutputDev() {
void CairoOutputDev::setCairo(cairo_t *cairo)
{
- if (this->cairo != NULL) {
+ if (this->cairo != nullptr) {
cairo_status_t status = cairo_status (this->cairo);
if (status) {
error(errInternal, -1, "cairo context error: {0:s}\n", cairo_status_to_string(status));
@@ -206,15 +211,15 @@ void CairoOutputDev::setCairo(cairo_t *cairo)
cairo_destroy (this->cairo);
assert(!cairo_shape);
}
- if (cairo != NULL) {
+ if (cairo != nullptr) {
this->cairo = cairo_reference (cairo);
/* save the initial matrix so that we can use it for type3 fonts. */
//XXX: is this sufficient? could we miss changes to the matrix somehow?
cairo_get_matrix(cairo, &orig_matrix);
setContextAntialias(cairo, antialias);
} else {
- this->cairo = NULL;
- this->cairo_shape = NULL;
+ this->cairo = nullptr;
+ this->cairo_shape = nullptr;
}
}
@@ -229,8 +234,8 @@ void CairoOutputDev::setTextPage(TextPage *text)
this->text->incRefCnt();
actualText = new ActualText(text);
} else {
- this->text = NULL;
- actualText = NULL;
+ this->text = nullptr;
+ actualText = nullptr;
}
}
@@ -281,7 +286,7 @@ void CairoOutputDev::startPage(int pageNum, GfxState *state, XRef *xrefA) {
if (text)
text->startPage(state);
- if (xrefA != NULL) {
+ if (xrefA != nullptr) {
xref = xrefA;
}
}
@@ -340,7 +345,7 @@ void CairoOutputDev::restoreState(GfxState *state) {
if (strokePathClip->dashes)
gfree (strokePathClip->dashes);
gfree (strokePathClip);
- strokePathClip = NULL;
+ strokePathClip = nullptr;
}
}
@@ -950,11 +955,11 @@ GBool CairoOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *cat
cairo_translate (cairo, -box.x1, -box.y1);
strokePathTmp = strokePathClip;
- strokePathClip = NULL;
+ strokePathClip = nullptr;
adjusted_stroke_width_tmp = adjusted_stroke_width;
maskTmp = mask;
- mask = NULL;
- gfx = new Gfx(doc, this, resDict, &box, NULL, NULL, NULL, gfxA->getXRef());
+ mask = nullptr;
+ gfx = new Gfx(doc, this, resDict, &box, nullptr, nullptr, nullptr, gfxA->getXRef());
if (paintType == 2)
inUncoloredPattern = gTrue;
gfx->display(str);
@@ -1351,7 +1356,7 @@ void CairoOutputDev::clipToStrokePath(GfxState *state) {
strokePathClip->dashes = (double*) gmallocn (sizeof(double), strokePathClip->dash_count);
cairo_get_dash (cairo, strokePathClip->dashes, &strokePathClip->dash_offset);
} else {
- strokePathClip->dashes = NULL;
+ strokePathClip->dashes = nullptr;
}
strokePathClip->cap = cairo_get_line_cap (cairo);
strokePathClip->join = cairo_get_line_join (cairo);
@@ -1503,12 +1508,12 @@ void CairoOutputDev::endString(GfxState *state)
finish:
gfree (glyphs);
- glyphs = NULL;
+ glyphs = nullptr;
if (use_show_text_glyphs) {
gfree (clusters);
- clusters = NULL;
+ clusters = nullptr;
gfree (utf8);
- utf8 = NULL;
+ utf8 = nullptr;
}
}
@@ -1579,7 +1584,7 @@ void CairoOutputDev::endTextObject(GfxState *state) {
cairo_clip (cairo_shape);
}
cairo_path_destroy (textClipPath);
- textClipPath = NULL;
+ textClipPath = nullptr;
}
}
@@ -1611,7 +1616,7 @@ static
cairo_surface_t *cairo_surface_create_similar_clip (cairo_t *cairo, cairo_content_t content)
{
cairo_pattern_t *pattern;
- cairo_surface_t *surface = NULL;
+ cairo_surface_t *surface = nullptr;
cairo_push_group_with_content (cairo, content);
pattern = cairo_pop_group (cairo);
@@ -1723,7 +1728,7 @@ void CairoOutputDev::paintTransparencyGroup(GfxState * /*state*/, double * /*bbo
cairo_paint_with_alpha (cairo, fill_opacity);
}
cairo_pattern_destroy(mask);
- mask = NULL;
+ mask = nullptr;
}
if (shape) {
@@ -1733,7 +1738,7 @@ void CairoOutputDev::paintTransparencyGroup(GfxState * /*state*/, double * /*bbo
cairo_set_source_rgb (cairo_shape, 0, 0, 0);
}
cairo_pattern_destroy (shape);
- shape = NULL;
+ shape = nullptr;
}
popTransparencyGroup();
@@ -1881,7 +1886,7 @@ void CairoOutputDev::popTransparencyGroup() {
/* we don't need to track the shape anymore because
* we are not above any knockout groups */
cairo_destroy(cairo_shape);
- cairo_shape = NULL;
+ cairo_shape = nullptr;
}
}
groupColorSpaceStack = css->next;
@@ -1892,7 +1897,7 @@ void CairoOutputDev::popTransparencyGroup() {
void CairoOutputDev::clearSoftMask(GfxState * /*state*/) {
if (mask)
cairo_pattern_destroy(mask);
- mask = NULL;
+ mask = nullptr;
}
/* Taken from cairo/doc/tutorial/src/singular.c */
@@ -1965,7 +1970,7 @@ CairoOutputDev::getFilterForSurface(cairo_surface_t *image,
GBool interpolate)
{
if (interpolate)
- return CAIRO_FILTER_BEST;
+ return CAIRO_FILTER_GOOD;
int orig_width = cairo_image_surface_get_width (image);
int orig_height = cairo_image_surface_get_height (image);
@@ -1985,7 +1990,7 @@ CairoOutputDev::getFilterForSurface(cairo_surface_t *image,
if (scaled_width / orig_width >= 4 || scaled_height / orig_height >= 4)
return CAIRO_FILTER_NEAREST;
- return CAIRO_FILTER_BEST;
+ return CAIRO_FILTER_GOOD;
}
void CairoOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str,
@@ -2453,7 +2458,7 @@ void CairoOutputDev::drawImageMaskPrescaled(GfxState *state, Object *ref, Stream
* cairo doesn't yet do minifaction filtering causing scaled down
* images with CAIRO_FILTER_NEAREST to look really bad */
cairo_pattern_set_filter (pattern,
- interpolate ? CAIRO_FILTER_BEST : CAIRO_FILTER_FAST);
+ interpolate ? CAIRO_FILTER_GOOD : CAIRO_FILTER_FAST);
if (state->getFillColorSpace()->getMode() == csPattern) {
cairo_matrix_init_translate (&matrix, 0, scaledHeight);
@@ -2761,7 +2766,7 @@ void CairoOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *s
cairo_surface_mark_dirty (image);
- setMimeData(state, str, ref, colorMap, image);
+ setMimeData(state, str, ref, colorMap, image, height);
pattern = cairo_pattern_create_for_surface (image);
cairo_surface_destroy (image);
@@ -2915,7 +2920,7 @@ GBool CairoOutputDev::setMimeDataForJBIG2Globals(Stream *str,
if (!globalsStr->isStream())
return gTrue;
- if (setMimeIdFromRef(image, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, NULL,
+ if (setMimeIdFromRef(image, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, nullptr,
jb2Str->getGlobalsStreamRef()))
return gFalse;
@@ -2935,8 +2940,38 @@ GBool CairoOutputDev::setMimeDataForJBIG2Globals(Stream *str,
}
#endif
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 15, 10)
+GBool CairoOutputDev::setMimeDataForCCITTParams(Stream *str,
+ cairo_surface_t *image, int height)
+{
+ CCITTFaxStream *ccittStr = static_cast<CCITTFaxStream *>(str);
+
+ GooString params;
+ params.appendf("Columns={0:d}", ccittStr->getColumns());
+ params.appendf(" Rows={0:d}", height);
+ params.appendf(" K={0:d}", ccittStr->getEncoding());
+ params.appendf(" EndOfLine={0:d}", ccittStr->getEndOfLine() ? 1 : 0);
+ params.appendf(" EncodedByteAlign={0:d}", ccittStr->getEncodedByteAlign() ? 1 : 0);
+ params.appendf(" EndOfBlock={0:d}", ccittStr->getEndOfBlock() ? 1 : 0);
+ params.appendf(" BlackIs1={0:d}", ccittStr->getBlackIs1() ? 1 : 0);
+ params.appendf(" DamagedRowsBeforeError={0:d}", ccittStr->getDamagedRowsBeforeError());
+
+ char *p = strdup(params.getCString());
+ if (cairo_surface_set_mime_data (image, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS,
+ (const unsigned char*)p,
+ params.getLength(),
+ gfree, (void*)p))
+ {
+ gfree (p);
+ return gFalse;
+ }
+
+ return gTrue;
+}
+#endif
+
void CairoOutputDev::setMimeData(GfxState *state, Stream *str, Object *ref,
- GfxImageColorMap *colorMap, cairo_surface_t *image)
+ GfxImageColorMap *colorMap, cairo_surface_t *image, int height)
{
char *strBuffer;
int len;
@@ -2960,12 +2995,17 @@ void CairoOutputDev::setMimeData(GfxState *state, Stream *str, Object *ref,
mime_type = CAIRO_MIME_TYPE_JBIG2;
break;
#endif
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 15, 10)
+ case strCCITTFax:
+ mime_type = CAIRO_MIME_TYPE_CCITT_FAX;
+ break;
+#endif
default:
return;
}
obj = str->getDict()->lookup("ColorSpace");
- colorSpace = GfxColorSpace::parse(NULL, &obj, this, state);
+ colorSpace = GfxColorSpace::parse(nullptr, &obj, this, state);
// colorspace in stream dict may be different from colorspace in jpx
// data
@@ -3002,6 +3042,11 @@ void CairoOutputDev::setMimeData(GfxState *state, Stream *str, Object *ref,
return;
#endif
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 15, 10)
+ if (strKind == strCCITTFax && !setMimeDataForCCITTParams(str, image, height))
+ return;
+#endif
+
if (getStreamData (str->getNextStream(), &strBuffer, &len)) {
cairo_status_t status = CAIRO_STATUS_SUCCESS;
@@ -3039,10 +3084,10 @@ public:
GBool printing,
GfxImageColorMap *colorMapA,
int *maskColorsA) {
- cairo_surface_t *image = NULL;
+ cairo_surface_t *image = nullptr;
int i;
- lookup = NULL;
+ lookup = nullptr;
colorMap = colorMapA;
maskColors = maskColorsA;
width = widthA;
@@ -3085,7 +3130,22 @@ public:
bool needsCustomDownscaling = true;
#endif
- if (!needsCustomDownscaling || printing || scaledWidth >= width || scaledHeight >= height) {
+ if (printing) {
+ if (width > MAX_PRINT_IMAGE_SIZE || height > MAX_PRINT_IMAGE_SIZE) {
+ if (width > height) {
+ scaledWidth = MAX_PRINT_IMAGE_SIZE;
+ scaledHeight = MAX_PRINT_IMAGE_SIZE * (double)height/width;
+ } else {
+ scaledHeight = MAX_PRINT_IMAGE_SIZE;
+ scaledWidth = MAX_PRINT_IMAGE_SIZE * (double)width/height;
+ }
+ needsCustomDownscaling = true;
+ } else {
+ needsCustomDownscaling = false;
+ }
+ }
+
+ if (!needsCustomDownscaling || scaledWidth >= width || scaledHeight >= height) {
// No downscaling. Create cairo image containing the source image data.
unsigned char *buffer;
ptrdiff_t stride;
@@ -3133,7 +3193,6 @@ public:
}
void getRow(int row_num, uint32_t *row_data) override {
- int i;
Guchar *pix;
if (row_num <= current_row)
@@ -3144,7 +3203,7 @@ public:
current_row++;
}
- if (unlikely(pix == NULL)) {
+ if (unlikely(pix == nullptr)) {
memset(row_data, 0, width*4);
if (!imageError) {
error(errInternal, -1, "Bad image stream");
@@ -3154,7 +3213,7 @@ public:
Guchar *p = pix;
GfxRGB rgb;
- for (i = 0; i < width; i++) {
+ for (int i = 0; i < width; i++) {
rgb = lookup[*p];
row_data[i] =
((int) colToByte(rgb.r) << 16) |
@@ -3199,7 +3258,7 @@ void CairoOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
cairo_matrix_t matrix;
int width, height;
int scaledWidth, scaledHeight;
- cairo_filter_t filter = CAIRO_FILTER_BEST;
+ cairo_filter_t filter = CAIRO_FILTER_GOOD;
RescaleDrawImage rescale;
LOG (printf ("drawImage %dx%d\n", widthA, heightA));
@@ -3215,8 +3274,17 @@ void CairoOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
if (width == widthA && height == heightA)
filter = getFilterForSurface (image, interpolate);
- if (!inlineImg) /* don't read stream twice if it is an inline image */
- setMimeData(state, str, ref, colorMap, image);
+ if (!inlineImg) { /* don't read stream twice if it is an inline image */
+ // cairo 1.15.10 allows mime image data to have different size to cairo image
+ // mime image size will be scaled to same size as cairo image
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 15, 10)
+ bool requireSameSize = false;
+#else
+ bool requireSameSize = true;
+#endif
+ if (!requireSameSize || (width == widthA && height == heightA))
+ setMimeData(state, str, ref, colorMap, image, heightA);
+ }
pattern = cairo_pattern_create_for_surface (image);
cairo_surface_destroy (image);
@@ -3241,7 +3309,7 @@ void CairoOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
} else if (mask) {
maskPattern = cairo_pattern_reference (mask);
} else {
- maskPattern = NULL;
+ maskPattern = nullptr;
}
cairo_save (cairo);
@@ -3286,11 +3354,11 @@ void CairoOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
CairoImageOutputDev::CairoImageOutputDev()
{
- images = NULL;
+ images = nullptr;
numImages = 0;
size = 0;
- imgDrawCbk = NULL;
- imgDrawCbkData = NULL;
+ imgDrawCbk = nullptr;
+ imgDrawCbkData = nullptr;
}
CairoImageOutputDev::~CairoImageOutputDev()
@@ -3363,7 +3431,7 @@ void CairoImageOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *st
CairoOutputDev::drawImageMask(state, ref, str, width, height, invert, interpolate, inlineImg);
image->setImage (surface);
- setCairo (NULL);
+ setCairo (nullptr);
cairo_surface_destroy (surface);
cairo_destroy (cr);
}
@@ -3396,7 +3464,7 @@ void CairoImageOutputDev::setSoftMaskFromImageMask(GfxState *state, Object *ref,
}
image->setImage (surface);
- setCairo (NULL);
+ setCairo (nullptr);
cairo_surface_destroy (surface);
cairo_destroy (cr);
}
@@ -3426,7 +3494,7 @@ void CairoImageOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
CairoOutputDev::drawImage(state, ref, str, width, height, colorMap, interpolate, maskColors, inlineImg);
image->setImage (surface);
- setCairo (NULL);
+ setCairo (nullptr);
cairo_surface_destroy (surface);
cairo_destroy (cr);
}
@@ -3462,7 +3530,7 @@ void CairoImageOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stre
maskStr, maskWidth, maskHeight, maskColorMap, maskInterpolate);
image->setImage (surface);
- setCairo (NULL);
+ setCairo (nullptr);
cairo_surface_destroy (surface);
cairo_destroy (cr);
}
@@ -3497,7 +3565,7 @@ void CairoImageOutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *
maskStr, maskWidth, maskHeight, maskInvert, maskInterpolate);
image->setImage (surface);
- setCairo (NULL);
+ setCairo (nullptr);
cairo_surface_destroy (surface);
cairo_destroy (cr);
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.h b/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.h
index 1fee8121719..ffcb5151e55 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/CairoOutputDev.h
@@ -18,11 +18,12 @@
// Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2005 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
// Copyright (C) 2006-2011, 2013 Carlos Garcia Campos <carlosgc@gnome.org>
-// Copyright (C) 2008, 2009, 2011-2016 Adrian Johnson <ajohnson@redneon.com>
+// Copyright (C) 2008, 2009, 2011-2017 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2008 Michael Vrable <mvrable@cs.ucsd.edu>
// Copyright (C) 2010-2013 Thomas Freitag <Thomas.Freitag@alfa.de>
// Copyright (C) 2015 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
// Copyright (C) 2016 Jason Crain <jason@aquaticape.us>
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -63,6 +64,9 @@ public:
// Destructor.
~CairoImage ();
+ CairoImage(const CairoImage &) = delete;
+ CairoImage& operator=(const CairoImage &) = delete;
+
// Set the image cairo surface
void setImage (cairo_surface_t *image);
@@ -265,10 +269,10 @@ public:
void setCairo (cairo_t *cr);
void setTextPage (TextPage *text);
- void setPrinting (GBool printing) { this->printing = printing; needFontUpdate = gTrue; }
+ void setPrinting (GBool printingA) { printing = printingA; needFontUpdate = gTrue; }
void setAntialias(cairo_antialias_t antialias);
- void setInType3Char(GBool inType3Char) { this->inType3Char = inType3Char; }
+ void setInType3Char(GBool inType3CharA) { inType3Char = inType3CharA; }
void getType3GlyphWidth (double *wx, double *wy) { *wx = t3_glyph_wx; *wy = t3_glyph_wy; }
GBool hasType3GlyphBBox () { return t3_glyph_has_bbox; }
double *getType3GlyphBBox () { return t3_glyph_bbox; }
@@ -283,12 +287,15 @@ protected:
GBool interpolate);
GBool getStreamData (Stream *str, char **buffer, int *length);
void setMimeData(GfxState *state, Stream *str, Object *ref,
- GfxImageColorMap *colorMap, cairo_surface_t *image);
+ GfxImageColorMap *colorMap, cairo_surface_t *image, int height);
void fillToStrokePathClip(GfxState *state);
void alignStrokeCoords(GfxSubpath *subpath, int i, double *x, double *y);
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 14, 0)
GBool setMimeDataForJBIG2Globals (Stream *str, cairo_surface_t *image);
#endif
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 15, 10)
+ GBool setMimeDataForCCITTParams(Stream *str, cairo_surface_t *image, int height);
+#endif
static void setContextAntialias(cairo_t *cr, cairo_antialias_t antialias);
GfxRGB fill_color, stroke_color;
@@ -328,7 +335,6 @@ protected:
GBool printing;
GBool use_show_text_glyphs;
GBool text_matrix_valid;
- cairo_surface_t *surface;
cairo_glyph_t *glyphs;
int glyphCount;
cairo_text_cluster_t *clusters;
@@ -352,7 +358,6 @@ protected:
cairo_pattern_t *shape;
cairo_pattern_t *mask;
cairo_matrix_t mask_matrix;
- cairo_surface_t *cairo_shape_surface;
cairo_t *cairo_shape;
int knockoutCount;
struct ColorSpaceStack {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.cc b/Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.cc
index aa9e9e7d517..f34b1e1c79c 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.cc
@@ -271,9 +271,9 @@ GBool CairoRescaleBox::downScaleImage(unsigned orig_width, unsigned orig_height,
int dest_y;
int src_y = 0;
uint32_t *scanline;
- int *x_coverage = NULL;
- int *y_coverage = NULL;
- uint32_t *temp_buf = NULL;
+ int *x_coverage = nullptr;
+ int *y_coverage = nullptr;
+ uint32_t *temp_buf = nullptr;
GBool retval = gFalse;
unsigned int *dest;
int dst_stride;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.h b/Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.h
index 072e8a9c80c..ca307cb7dc8 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/CairoRescaleBox.h
@@ -30,6 +30,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2012 Adrian Johnson <ajohnson@redneon.com>
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -48,6 +49,9 @@ public:
CairoRescaleBox() {};
virtual ~CairoRescaleBox() {};
+ CairoRescaleBox(const CairoRescaleBox &) = delete;
+ CairoRescaleBox& operator=(const CairoRescaleBox &) = delete;
+
virtual GBool downScaleImage(unsigned orig_width, unsigned orig_height,
signed scaled_width, signed scaled_height,
unsigned short int start_column, unsigned short int start_row,
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Catalog.cc b/Build/source/libs/poppler/poppler-src/poppler/Catalog.cc
index eebbbb42407..c423dea28f0 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Catalog.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Catalog.cc
@@ -80,26 +80,26 @@ Catalog::Catalog(PDFDoc *docA) {
ok = gTrue;
doc = docA;
xref = doc->getXRef();
- pages = NULL;
- pageRefs = NULL;
+ pages = nullptr;
+ pageRefs = nullptr;
numPages = -1;
pagesSize = 0;
- baseURI = NULL;
- pageLabelInfo = NULL;
- form = NULL;
- optContent = NULL;
+ baseURI = nullptr;
+ pageLabelInfo = nullptr;
+ form = nullptr;
+ optContent = nullptr;
pageMode = pageModeNull;
pageLayout = pageLayoutNull;
- destNameTree = NULL;
- embeddedFileNameTree = NULL;
- jsNameTree = NULL;
- viewerPrefs = NULL;
- structTreeRoot = NULL;
-
- pagesList = NULL;
- pagesRefList = NULL;
- attrsList = NULL;
- kidsIdxList = NULL;
+ destNameTree = nullptr;
+ embeddedFileNameTree = nullptr;
+ jsNameTree = nullptr;
+ viewerPrefs = nullptr;
+ structTreeRoot = nullptr;
+
+ pagesList = nullptr;
+ pagesRefList = nullptr;
+ attrsList = nullptr;
+ kidsIdxList = nullptr;
lastCachedPage = 0;
markInfo = markInfoNull;
@@ -127,7 +127,7 @@ Catalog::Catalog(PDFDoc *docA) {
optContent = new OCGs(&optContentProps, xref);
if (!optContent->isOk ()) {
delete optContent;
- optContent = NULL;
+ optContent = nullptr;
}
}
@@ -202,13 +202,13 @@ GooString *Catalog::readMetadata() {
Page *Catalog::getPage(int i)
{
- if (i < 1) return NULL;
+ if (i < 1) return nullptr;
catalogLocker();
if (i > lastCachedPage) {
GBool cached = cachePageTree(i);
if ( cached == gFalse) {
- return NULL;
+ return nullptr;
}
}
return pages[i-1];
@@ -216,13 +216,13 @@ Page *Catalog::getPage(int i)
Ref *Catalog::getPageRef(int i)
{
- if (i < 1) return NULL;
+ if (i < 1) return nullptr;
catalogLocker();
if (i > lastCachedPage) {
GBool cached = cachePageTree(i);
if ( cached == gFalse) {
- return NULL;
+ return nullptr;
}
}
return &pageRefs[i-1];
@@ -230,7 +230,7 @@ Ref *Catalog::getPageRef(int i)
GBool Catalog::cachePageTree(int page)
{
- if (pagesList == NULL) {
+ if (pagesList == nullptr) {
Ref pagesRef;
@@ -262,19 +262,19 @@ GBool Catalog::cachePageTree(int page)
pagesSize = getNumPages();
pages = (Page **)gmallocn_checkoverflow(pagesSize, sizeof(Page *));
pageRefs = (Ref *)gmallocn_checkoverflow(pagesSize, sizeof(Ref));
- if (pages == NULL || pageRefs == NULL ) {
+ if (pages == nullptr || pageRefs == nullptr ) {
error(errSyntaxError, -1, "Cannot allocate page cache");
pagesSize = 0;
return gFalse;
}
for (int i = 0; i < pagesSize; ++i) {
- pages[i] = NULL;
+ pages[i] = nullptr;
pageRefs[i].num = -1;
pageRefs[i].gen = -1;
}
attrsList = new std::vector<PageAttrs *>();
- attrsList->push_back(new PageAttrs(NULL, obj.getDict()));
+ attrsList->push_back(new PageAttrs(nullptr, obj.getDict()));
pagesList = new std::vector<Object>();
pagesList->push_back(std::move(obj));
pagesRefList = new std::vector<Ref>();
@@ -343,6 +343,7 @@ GBool Catalog::cachePageTree(int page)
if (lastCachedPage >= numPages) {
error(errSyntaxError, -1, "Page count in top-level pages object is incorrect");
+ delete p;
return gFalse;
}
@@ -375,7 +376,7 @@ int Catalog::findPage(int num, int gen) {
for (i = 0; i < getNumPages(); ++i) {
Ref *ref = getPageRef(i+1);
- if (ref != NULL && ref->num == num && ref->gen == gen)
+ if (ref != nullptr && ref->num == num && ref->gen == gen)
return i + 1;
}
return 0;
@@ -409,7 +410,7 @@ LinkDest *Catalog::createLinkDest(Object *obj)
}
if (dest && !dest->isOk()) {
delete dest;
- dest = NULL;
+ dest = nullptr;
}
return dest;
@@ -432,7 +433,7 @@ char *Catalog::getDestsName(int i)
obj= getDests();
if (!obj->isDict()) {
- return NULL;
+ return nullptr;
}
return obj->dictGetKey(i);
}
@@ -441,7 +442,7 @@ LinkDest *Catalog::getDestsDest(int i)
{
Object *obj = getDests();
if (!obj->isDict()) {
- return NULL;
+ return nullptr;
}
Object obj1 = obj->dictGetVal(i);
return createLinkDest(&obj1);
@@ -461,10 +462,9 @@ LinkDest *Catalog::getDestNameTreeDest(int i)
FileSpec *Catalog::embeddedFile(int i)
{
- Object efDict;
catalogLocker();
Object *obj = getEmbeddedFileNameTree()->getValue(i);
- FileSpec *embeddedFile = 0;
+ FileSpec *embeddedFile = nullptr;
if (obj->isRef()) {
Object fsDict = obj->fetch(xref);
embeddedFile = new FileSpec(&fsDict);
@@ -580,7 +580,7 @@ NameTree::NameTree()
{
size = 0;
length = 0;
- entries = NULL;
+ entries = nullptr;
}
NameTree::~NameTree()
@@ -690,7 +690,7 @@ Object NameTree::lookup(GooString *name)
entry = (Entry **) bsearch(name, entries,
length, sizeof(Entry *), Entry::cmp);
- if (entry != NULL) {
+ if (entry != nullptr) {
return (*entry)->value.fetch(xref);
} else {
error(errSyntaxError, -1, "failed to look up ({0:s})", name->getCString());
@@ -712,7 +712,7 @@ GooString *NameTree::getName(int index)
if (index < length) {
return &entries[index]->name;
} else {
- return NULL;
+ return nullptr;
}
}
@@ -721,7 +721,7 @@ GBool Catalog::labelToIndex(GooString *label, int *index)
char *end;
PageLabelInfo *pli = getPageLabelInfo();
- if (pli != NULL) {
+ if (pli != nullptr) {
if (!pli->labelToIndex(label, index))
return gFalse;
} else {
@@ -744,7 +744,7 @@ GBool Catalog::indexToLabel(int index, GooString *label)
return gFalse;
PageLabelInfo *pli = getPageLabelInfo();
- if (pli != NULL) {
+ if (pli != nullptr) {
return pli->indexToLabel(index, label);
} else {
snprintf(buffer, sizeof (buffer), "%d", index + 1);
@@ -784,7 +784,7 @@ int Catalog::getNumPages()
Dict *pageDict = pagesDict.getDict();
if (pageRootRef.isRef()) {
const Ref pageRef = pageRootRef.getRef();
- Page *p = new Page(doc, 1, &pagesDict, pageRef, new PageAttrs(NULL, pageDict), form);
+ Page *p = new Page(doc, 1, &pagesDict, pageRef, new PageAttrs(nullptr, pageDict), form);
if (p->isOk()) {
pages = (Page **)gmallocn(1, sizeof(Page *));
pageRefs = (Ref *)gmallocn(1, sizeof(Ref));
@@ -853,7 +853,7 @@ StructTreeRoot *Catalog::getStructTreeRoot()
Object catalog = xref->getCatalog();
if (!catalog.isDict()) {
error(errSyntaxError, -1, "Catalog object is wrong type ({0:s})", catalog.getTypeName());
- return NULL;
+ return nullptr;
}
Object root = catalog.dictLookup("StructTreeRoot");
@@ -1051,7 +1051,7 @@ LinkAction* Catalog::getAdditionalAction(DocumentAdditionalActionsType type) {
type == actionSaveDocumentStart ? "WS" :
type == actionSaveDocumentFinish ? "DS" :
type == actionPrintDocumentStart ? "WP" :
- type == actionPrintDocumentFinish ? "DP" : NULL);
+ type == actionPrintDocumentFinish ? "DP" : nullptr);
Object actionObject = additionalActionsObject.dictLookup(key);
if (actionObject.isDict())
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Catalog.h b/Build/source/libs/poppler/poppler-src/poppler/Catalog.h
index a2dd7fded48..4acb67fcf1d 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Catalog.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Catalog.h
@@ -14,7 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2005, 2007, 2009-2011, 2013, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2007, 2009-2011, 2013, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2005 Jonathan Blandford <jrb@redhat.com>
// Copyright (C) 2005, 2006, 2008 Brad Hards <bradh@frogmouth.net>
// Copyright (C) 2007 Julien Rebetez <julienr@svn.gnome.org>
@@ -68,6 +68,10 @@ class NameTree {
public:
NameTree();
~NameTree();
+
+ NameTree(const NameTree &) = delete;
+ NameTree& operator=(const NameTree &) = delete;
+
void init(XRef *xref, Object *tree);
Object lookup(GooString *name);
int numEntries() { return length; };
@@ -110,6 +114,9 @@ public:
// Destructor.
~Catalog();
+ Catalog(const Catalog &) = delete;
+ Catalog& operator=(const Catalog &) = delete;
+
// Is catalog valid?
GBool isOk() { return ok; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.cc b/Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.cc
index abf5d51c8fc..17df0292c69 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.cc
@@ -137,7 +137,7 @@ CharCodeToUnicode *CharCodeToUnicode::parseCIDToUnicode(GooString *fileName,
if (!(f = openFile(fileName->getCString(), "r"))) {
error(errIO, -1, "Couldn't open cidToUnicode file '{0:t}'",
fileName);
- return NULL;
+ return nullptr;
}
size = 32768;
@@ -161,7 +161,7 @@ CharCodeToUnicode *CharCodeToUnicode::parseCIDToUnicode(GooString *fileName,
fclose(f);
ctu = new CharCodeToUnicode(collection->copy(), mapA, mapLenA, gTrue,
- NULL, 0, 0);
+ nullptr, 0, 0);
gfree(mapA);
return ctu;
}
@@ -185,14 +185,14 @@ CharCodeToUnicode *CharCodeToUnicode::parseUnicodeToUnicode(
gfree(uBuf);
error(errIO, -1, "Couldn't open unicodeToUnicode file '{0:t}'",
fileName);
- return NULL;
+ return nullptr;
}
size = 4096;
mapA = (Unicode *)gmallocn(size, sizeof(Unicode));
memset(mapA, 0, size * sizeof(Unicode));
len = 0;
- sMapA = NULL;
+ sMapA = nullptr;
sMapSizeA = sMapLenA = 0;
line = 0;
@@ -205,7 +205,7 @@ CharCodeToUnicode *CharCodeToUnicode::parseUnicodeToUnicode(
continue;
}
n = 0;
- while ((tok = strtok_r(NULL, " \t\r\n", &tokptr))) {
+ while ((tok = strtok_r(nullptr, " \t\r\n", &tokptr))) {
if (n >= uBufSize)
{
uBufSize += 8;
@@ -262,14 +262,14 @@ CharCodeToUnicode *CharCodeToUnicode::parseUnicodeToUnicode(
}
CharCodeToUnicode *CharCodeToUnicode::make8BitToUnicode(Unicode *toUnicode) {
- return new CharCodeToUnicode(NULL, toUnicode, 256, gTrue, NULL, 0, 0);
+ return new CharCodeToUnicode(nullptr, toUnicode, 256, gTrue, nullptr, 0, 0);
}
CharCodeToUnicode *CharCodeToUnicode::parseCMap(GooString *buf, int nBits) {
CharCodeToUnicode *ctu;
char *p;
- ctu = new CharCodeToUnicode(NULL);
+ ctu = new CharCodeToUnicode(nullptr);
p = buf->getCString();
ctu->parseCMap1(&getCharFromString, &p, nBits);
return ctu;
@@ -280,7 +280,7 @@ CharCodeToUnicode *CharCodeToUnicode::parseCMapFromFile(GooString *fileName,
CharCodeToUnicode *ctu;
FILE *f;
- ctu = new CharCodeToUnicode(NULL);
+ ctu = new CharCodeToUnicode(nullptr);
if ((f = globalParams->findToUnicodeFile(fileName))) {
ctu->parseCMap1(&getCharFromFile, f, nBits);
fclose(f);
@@ -479,10 +479,10 @@ void CharCodeToUnicode::addMapping(CharCode code, char *uStr, int n,
}
CharCodeToUnicode::CharCodeToUnicode() {
- tag = NULL;
- map = NULL;
+ tag = nullptr;
+ map = nullptr;
mapLen = 0;
- sMap = NULL;
+ sMap = nullptr;
sMapLen = sMapSize = 0;
refCnt = 1;
isIdentity = gFalse;
@@ -500,7 +500,7 @@ CharCodeToUnicode::CharCodeToUnicode(GooString *tagA) {
for (i = 0; i < mapLen; ++i) {
map[i] = 0;
}
- sMap = NULL;
+ sMap = nullptr;
sMapLen = sMapSize = 0;
refCnt = 1;
isIdentity = gFalse;
@@ -681,7 +681,7 @@ CharCodeToUnicodeCache::CharCodeToUnicodeCache(int sizeA) {
size = sizeA;
cache = (CharCodeToUnicode **)gmallocn(size, sizeof(CharCodeToUnicode *));
for (i = 0; i < size; ++i) {
- cache[i] = NULL;
+ cache[i] = nullptr;
}
}
@@ -715,7 +715,7 @@ CharCodeToUnicode *CharCodeToUnicodeCache::getCharCodeToUnicode(GooString *tag)
return ctu;
}
}
- return NULL;
+ return nullptr;
}
void CharCodeToUnicodeCache::add(CharCodeToUnicode *ctu) {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.h b/Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.h
index e2b12ae3dd6..13572217aed 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/CharCodeToUnicode.h
@@ -17,7 +17,7 @@
//
// Copyright (C) 2007 Julien Rebetez <julienr@svn.gnome.org>
// Copyright (C) 2007 Koji Otani <sho@bbr.jp>
-// Copyright (C) 2008, 2011, 2012 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008, 2011, 2012, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2017 Adrian Johnson <ajohnson@redneon.com>
//
// To see a description of the changes please see the Changelog file that
@@ -78,6 +78,9 @@ public:
~CharCodeToUnicode();
+ CharCodeToUnicode(const CharCodeToUnicode &) = delete;
+ CharCodeToUnicode& operator=(const CharCodeToUnicode &) = delete;
+
void incRefCnt();
void decRefCnt();
@@ -130,6 +133,9 @@ public:
CharCodeToUnicodeCache(int sizeA);
~CharCodeToUnicodeCache();
+ CharCodeToUnicodeCache(const CharCodeToUnicodeCache &) = delete;
+ CharCodeToUnicodeCache& operator=(const CharCodeToUnicodeCache &) = delete;
+
// Get the CharCodeToUnicode object for <tag>. Increments its
// reference count; there will be one reference for the cache plus
// one for the caller of this function. Returns NULL on failure.
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CurlCachedFile.cc b/Build/source/libs/poppler/poppler-src/poppler/CurlCachedFile.cc
index af4c2b60322..907baafe5af 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/CurlCachedFile.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/CurlCachedFile.cc
@@ -20,9 +20,9 @@
CurlCachedFileLoader::CurlCachedFileLoader()
{
- url = NULL;
- cachedFile = NULL;
- curl = NULL;
+ url = nullptr;
+ cachedFile = nullptr;
+ curl = nullptr;
}
CurlCachedFileLoader::~CurlCachedFileLoader() {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/DCTStream.cc b/Build/source/libs/poppler/poppler-src/poppler/DCTStream.cc
index 7a4d5930ade..4665ca83889 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/DCTStream.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/DCTStream.cc
@@ -64,7 +64,7 @@ static void str_term_source(j_decompress_ptr cinfo)
DCTStream::DCTStream(Stream *strA, int colorXformA, Dict *dict, int recursion) :
FilterStream(strA) {
colorXform = colorXformA;
- if (dict != NULL) {
+ if (dict != nullptr) {
Object obj = dict->lookup("Width", recursion);
err.width = (obj.isInt() && obj.getInt() <= JPEG_MAX_DIMENSION) ? obj.getInt() : 0;
obj = dict->lookup("Height", recursion);
@@ -100,18 +100,18 @@ void DCTStream::init()
src.pub.resync_to_restart = jpeg_resync_to_restart;
src.pub.term_source = str_term_source;
src.pub.bytes_in_buffer = 0;
- src.pub.next_input_byte = NULL;
+ src.pub.next_input_byte = nullptr;
src.str = str;
src.index = 0;
- current = NULL;
- limit = NULL;
+ current = nullptr;
+ limit = nullptr;
cinfo.err = &err.pub;
if (!setjmp(err.setjmp_buffer)) {
jpeg_create_decompress(&cinfo);
cinfo.src = (jpeg_source_mgr *)&src;
}
- row_buffer = NULL;
+ row_buffer = nullptr;
}
void DCTStream::reset() {
@@ -241,7 +241,7 @@ int DCTStream::getChars(int nChars, Guchar *buffer) {
}
int DCTStream::lookChar() {
- if (unlikely(current == NULL)) {
+ if (unlikely(current == nullptr)) {
return EOF;
}
return *current;
@@ -251,10 +251,10 @@ GooString *DCTStream::getPSFilter(int psLevel, const char *indent) {
GooString *s;
if (psLevel < 2) {
- return NULL;
+ return nullptr;
}
if (!(s = str->getPSFilter(psLevel, indent))) {
- return NULL;
+ return nullptr;
}
s->append(indent)->append("<< >> /DCTDecode filter\n");
return s;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/DateInfo.cc b/Build/source/libs/poppler/poppler-src/poppler/DateInfo.cc
index fef3f00a658..532e0070f07 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/DateInfo.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/DateInfo.cc
@@ -32,7 +32,7 @@
/* See PDF Reference 1.3, Section 3.8.2 for PDF Date representation */
GBool parseDateString(const char *dateString, int *year, int *month, int *day, int *hour, int *minute, int *second, char *tz, int *tzHour, int *tzMinute)
{
- if ( dateString == NULL ) return gFalse;
+ if ( dateString == nullptr ) return gFalse;
if ( strlen(dateString) < 2 ) return gFalse;
if ( dateString[0] == 'D' && dateString[1] == ':' )
@@ -82,7 +82,7 @@ GooString *timeToDateString(time_t *timet) {
char s[5];
struct tm *gt;
size_t len;
- time_t timep = timet ? *timet : time(NULL);
+ time_t timep = timet ? *timet : time(nullptr);
struct tm t;
gt = gmtime_r (&timep, &t);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Decrypt.cc b/Build/source/libs/poppler/poppler-src/poppler/Decrypt.cc
index db755812713..bf858cecaf1 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Decrypt.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Decrypt.cc
@@ -14,7 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2008 Julien Rebetez <julien@fhtagn.net>
-// Copyright (C) 2008, 2010, 2016, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008, 2010, 2016-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2009 Matthias Franz <matthias@ktug.or.kr>
// Copyright (C) 2009 David Benjamin <davidben@mit.edu>
// Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
@@ -143,7 +143,7 @@ GBool Decrypt::makeFileKey(int encVersion, int encRevision, int keyLength,
if(encRevision == 6) {
// test contains the initial SHA-256 hash input K.
// user key is not used in checking user password.
- revision6Hash(userPassword, test, NULL);
+ revision6Hash(userPassword, test, nullptr);
}
if (!memcmp(test, userKey->getCString(), 32)) {
@@ -154,7 +154,7 @@ GBool Decrypt::makeFileKey(int encVersion, int encRevision, int keyLength,
if(encRevision == 6) {
//test contains the initial SHA-256 hash input K.
//user key is not used in computing intermediate user key.
- revision6Hash(userPassword, test, NULL);
+ revision6Hash(userPassword, test, nullptr);
}
aes256KeyExpansion(&state, test, 32, gTrue);
for (i = 0; i < 16; ++i) {
@@ -1454,7 +1454,7 @@ static void sha256(Guchar *msg, int msgLen, Guchar *hash) {
// SHA-512 hash (see FIPS 180-4)
//------------------------------------------------------------------------
// SHA 384 and SHA 512 use the same sequence of eighty constant 64 bit words.
-static const uint64_t K[80] = {
+static const uint64_t shaK[80] = {
0x428a2f98d728ae22ull, 0x7137449123ef65cdull, 0xb5c0fbcfec4d3b2full, 0xe9b5dba58189dbbcull, 0x3956c25bf348b538ull,
0x59f111f1b605d019ull, 0x923f82a4af194f9bull, 0xab1c5ed5da6d8118ull, 0xd807aa98a3030242ull, 0x12835b0145706fbeull,
0x243185be4ee4b28cull, 0x550c7dc3d5ffb4e2ull, 0x72be5d74f27b896full, 0x80deb1fe3b1696b1ull, 0x9bdc06a725c71235ull,
@@ -1531,7 +1531,7 @@ static void sha512HashBlock(Guchar *blk, uint64_t *H) {
// 3.
for (t = 0; t < 80; ++t) {
- T1 = h + sha512Sigma1(e) + sha512Ch(e,f,g) + K[t] + W[t];
+ T1 = h + sha512Sigma1(e) + sha512Ch(e,f,g) + shaK[t] + W[t];
T2 = sha512Sigma0(a) + sha512Maj(a,b,c);
h = g;
g = f;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Dict.cc b/Build/source/libs/poppler/poppler-src/poppler/Dict.cc
index 89814708859..a431f7ebf68 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Dict.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Dict.cc
@@ -78,7 +78,7 @@ static int binarySearch(const char *key, DictEntry *entries, int length)
Dict::Dict(XRef *xrefA) {
xref = xrefA;
- entries = NULL;
+ entries = nullptr;
size = length = 0;
ref = 1;
sorted = gFalse;
@@ -185,11 +185,11 @@ inline DictEntry *Dict::find(const char *key) const {
return &entries[i];
}
}
- return NULL;
+ return nullptr;
}
GBool Dict::hasKey(const char *key) const {
- return find(key) != NULL;
+ return find(key) != nullptr;
}
void Dict::remove(const char *key) {
@@ -270,7 +270,7 @@ GBool Dict::lookupInt(const char *key, const char *alt_key, int *value) const
{
GBool success = gFalse;
Object obj1 = lookup ((char *) key);
- if (obj1.isNull () && alt_key != NULL) {
+ if (obj1.isNull () && alt_key != nullptr) {
obj1.free ();
obj1 = lookup ((char *) alt_key);
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Dict.h b/Build/source/libs/poppler/poppler-src/poppler/Dict.h
index 328f422c8e6..9fd732a1561 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Dict.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Dict.h
@@ -16,7 +16,7 @@
// Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2006 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
// Copyright (C) 2007-2008 Julien Rebetez <julienr@svn.gnome.org>
-// Copyright (C) 2010, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2010, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2010 Paweł Wiejacha <pawel.wiejacha@gmail.com>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
// Copyright (C) 2017 Adrian Johnson <ajohnson@redneon.com>
@@ -57,6 +57,9 @@ public:
// Destructor.
~Dict();
+ Dict(const Dict &) = delete;
+ Dict& operator=(const Dict &) = delete;
+
// Get number of entries.
int getLength() const { return length; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Error.cc b/Build/source/libs/poppler/poppler-src/poppler/Error.cc
index ab43654dbeb..356f797260e 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Error.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Error.cc
@@ -50,8 +50,8 @@ static const char *errorCategoryNames[] = {
};
static void (*errorCbk)(void *data, ErrorCategory category,
- Goffset pos, char *msg) = NULL;
-static void *errorCbkData = NULL;
+ Goffset pos, char *msg) = nullptr;
+static void *errorCbkData = nullptr;
void setErrorCallback(void (*cbk)(void *data, ErrorCategory category,
Goffset pos, char *msg),
diff --git a/Build/source/libs/poppler/poppler-src/poppler/ErrorCodes.h b/Build/source/libs/poppler/poppler-src/poppler/ErrorCodes.h
index b28528df564..15b172a7ea0 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/ErrorCodes.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/ErrorCodes.h
@@ -6,6 +6,20 @@
//
//========================================================================
+//========================================================================
+//
+// Modified under the Poppler project - http://poppler.freedesktop.org
+//
+// All changes made under the Poppler project to this file are licensed
+// under GPL version 2 or later
+//
+// Copyright (C) 2017 Albert Astals Cid <aacid@kde.org>
+//
+// To see a description of the changes please see the Changelog file that
+// came with your tarball or type make ChangeLog if you are building from git
+//
+//========================================================================
+
#ifndef ERRORCODES_H
#define ERRORCODES_H
@@ -33,4 +47,6 @@
#define errFileIO 10 // file I/O error
+#define errFileChangedSinceOpen 11 // file has changed since opening and save can't be done
+
#endif
diff --git a/Build/source/libs/poppler/poppler-src/poppler/FileSpec.cc b/Build/source/libs/poppler/poppler-src/poppler/FileSpec.cc
index 5ebef9777f8..89894e238dc 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/FileSpec.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/FileSpec.cc
@@ -30,10 +30,10 @@
EmbFile::EmbFile(Object *efStream)
{
m_size = -1;
- m_createDate = NULL;
- m_modDate = NULL;
- m_checksum = NULL;
- m_mimetype = NULL;
+ m_createDate = nullptr;
+ m_modDate = nullptr;
+ m_checksum = nullptr;
+ m_mimetype = nullptr;
m_objStr = efStream->copy();
@@ -102,10 +102,10 @@ GBool EmbFile::save2(FILE *f) {
FileSpec::FileSpec(Object *fileSpecA)
{
ok = gTrue;
- fileName = NULL;
- platformFileName = NULL;
- embFile = NULL;
- desc = NULL;
+ fileName = nullptr;
+ platformFileName = nullptr;
+ embFile = nullptr;
+ desc = nullptr;
fileSpec = fileSpecA->copy();
Object obj1 = getFileSpecName(fileSpecA);
@@ -146,7 +146,7 @@ FileSpec::~FileSpec()
EmbFile *FileSpec::getEmbeddedFile()
{
if(!ok)
- return NULL;
+ return nullptr;
if (embFile)
return embFile;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/FileSpec.h b/Build/source/libs/poppler/poppler-src/poppler/FileSpec.h
index 6133117b12c..28394650543 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/FileSpec.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/FileSpec.h
@@ -6,7 +6,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org>
-// Copyright (C) 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2017, 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -27,6 +27,9 @@ public:
EmbFile(Object *efStream);
~EmbFile();
+ EmbFile(const EmbFile &) = delete;
+ EmbFile& operator=(const EmbFile &) = delete;
+
int size() { return m_size; }
GooString *modDate() { return m_modDate; }
GooString *createDate() { return m_createDate; }
@@ -53,6 +56,9 @@ public:
FileSpec(Object *fileSpec);
~FileSpec();
+ FileSpec(const FileSpec &) = delete;
+ FileSpec& operator=(const FileSpec &) = delete;
+
GBool isOk() { return ok; }
GooString *getFileName() const { return fileName; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/FontEncodingTables.cc b/Build/source/libs/poppler/poppler-src/poppler/FontEncodingTables.cc
index 6ebef787421..4a1f64a6464 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/FontEncodingTables.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/FontEncodingTables.cc
@@ -11,38 +11,38 @@
#include "FontEncodingTables.h"
const char *macRomanEncoding[256] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"space",
"exclam",
"quotedbl",
@@ -138,7 +138,7 @@ const char *macRomanEncoding[256] = {
"bar",
"braceright",
"asciitilde",
- NULL,
+ nullptr,
"Adieresis",
"Aring",
"Ccedilla",
@@ -270,38 +270,38 @@ const char *macRomanEncoding[256] = {
};
const char *macExpertEncoding[256] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"space",
"exclamsmall",
"Hungarumlautsmall",
@@ -330,17 +330,17 @@ const char *macExpertEncoding[256] = {
"nineoldstyle",
"colon",
"semicolon",
- NULL,
+ nullptr,
"threequartersemdash",
- NULL,
+ nullptr,
"questionsmall",
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"Ethsmall",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"onequarter",
"onehalf",
"threequarters",
@@ -350,19 +350,19 @@ const char *macExpertEncoding[256] = {
"seveneighths",
"onethird",
"twothirds",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"ff",
"fi",
"fl",
"ffi",
"ffl",
"parenleftinferior",
- NULL,
+ nullptr,
"parenrightinferior",
"Circumflexsmall",
"hypheninferior",
@@ -397,14 +397,14 @@ const char *macExpertEncoding[256] = {
"onefitted",
"rupiah",
"Tildesmall",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"asuperior",
"centsuperior",
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"Aacutesmall",
"Agravesmall",
"Acircumflexsmall",
@@ -430,7 +430,7 @@ const char *macExpertEncoding[256] = {
"Ugravesmall",
"Ucircumflexsmall",
"Udieresissmall",
- NULL,
+ nullptr,
"eightsuperior",
"fourinferior",
"threeinferior",
@@ -438,25 +438,25 @@ const char *macExpertEncoding[256] = {
"eightinferior",
"seveninferior",
"Scaronsmall",
- NULL,
+ nullptr,
"centinferior",
"twoinferior",
- NULL,
+ nullptr,
"Dieresissmall",
- NULL,
+ nullptr,
"Caronsmall",
"osuperior",
"fiveinferior",
- NULL,
+ nullptr,
"commainferior",
"periodinferior",
"Yacutesmall",
- NULL,
+ nullptr,
"dollarinferior",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"Thornsmall",
- NULL,
+ nullptr,
"nineinferior",
"zeroinferior",
"Zcaronsmall",
@@ -465,29 +465,29 @@ const char *macExpertEncoding[256] = {
"questiondownsmall",
"oneinferior",
"Lslashsmall",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"Cedillasmall",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"OEsmall",
"figuredash",
"hyphensuperior",
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"exclamdownsmall",
- NULL,
+ nullptr,
"Ydieresissmall",
- NULL,
+ nullptr,
"onesuperior",
"twosuperior",
"threesuperior",
@@ -497,20 +497,20 @@ const char *macExpertEncoding[256] = {
"sevensuperior",
"ninesuperior",
"zerosuperior",
- NULL,
+ nullptr,
"esuperior",
"rsuperior",
"tsuperior",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"isuperior",
"ssuperior",
"dsuperior",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"lsuperior",
"Ogoneksmall",
"Brevesmall",
@@ -522,45 +522,45 @@ const char *macExpertEncoding[256] = {
"periodsuperior",
"Dotaccentsmall",
"Ringsmall",
- NULL,
- NULL,
- NULL,
- NULL
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr
};
const char *winAnsiEncoding[256] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"space",
"exclam",
"quotedbl",
@@ -788,38 +788,38 @@ const char *winAnsiEncoding[256] = {
};
const char *standardEncoding[256] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"space",
"exclam",
"quotedbl",
@@ -915,40 +915,40 @@ const char *standardEncoding[256] = {
"bar",
"braceright",
"asciitilde",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"exclamdown",
"cent",
"sterling",
@@ -964,12 +964,12 @@ const char *standardEncoding[256] = {
"guilsinglright",
"fi",
"fl",
- NULL,
+ nullptr,
"endash",
"dagger",
"daggerdbl",
"periodcentered",
- NULL,
+ nullptr,
"paragraph",
"bullet",
"quotesinglbase",
@@ -978,9 +978,9 @@ const char *standardEncoding[256] = {
"guillemotright",
"ellipsis",
"perthousand",
- NULL,
+ nullptr,
"questiondown",
- NULL,
+ nullptr,
"grave",
"acute",
"circumflex",
@@ -989,100 +989,100 @@ const char *standardEncoding[256] = {
"breve",
"dotaccent",
"dieresis",
- NULL,
+ nullptr,
"ring",
"cedilla",
- NULL,
+ nullptr,
"hungarumlaut",
"ogonek",
"caron",
"emdash",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"AE",
- NULL,
+ nullptr,
"ordfeminine",
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"Lslash",
"Oslash",
"OE",
"ordmasculine",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"ae",
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
"dotlessi",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"lslash",
"oslash",
"oe",
"germandbls",
- NULL,
- NULL,
- NULL,
- NULL
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr
};
const char *expertEncoding[256] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"space",
"exclamsmall",
"Hungarumlautsmall",
- NULL,
+ nullptr,
"dollaroldstyle",
"dollarsuperior",
"ampersandsmall",
@@ -1111,35 +1111,35 @@ const char *expertEncoding[256] = {
"threequartersemdash",
"periodsuperior",
"questionsmall",
- NULL,
+ nullptr,
"asuperior",
"bsuperior",
"centsuperior",
"dsuperior",
"esuperior",
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
"isuperior",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"lsuperior",
"msuperior",
"nsuperior",
"osuperior",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"rsuperior",
"ssuperior",
"tsuperior",
- NULL,
+ nullptr,
"ff",
"fi",
"fl",
"ffi",
"ffl",
"parenleftinferior",
- NULL,
+ nullptr,
"parenrightinferior",
"Circumflexsmall",
"hyphensuperior",
@@ -1174,67 +1174,67 @@ const char *expertEncoding[256] = {
"onefitted",
"rupiah",
"Tildesmall",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"exclamdownsmall",
"centoldstyle",
"Lslashsmall",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"Scaronsmall",
"Zcaronsmall",
"Dieresissmall",
"Brevesmall",
"Caronsmall",
- NULL,
+ nullptr,
"Dotaccentsmall",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"Macronsmall",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"figuredash",
"hypheninferior",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"Ogoneksmall",
"Ringsmall",
"Cedillasmall",
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
"onequarter",
"onehalf",
"threequarters",
@@ -1245,8 +1245,8 @@ const char *expertEncoding[256] = {
"seveneighths",
"onethird",
"twothirds",
- NULL,
- NULL,
+ nullptr,
+ nullptr,
"zerosuperior",
"onesuperior",
"twosuperior",
@@ -1306,38 +1306,38 @@ const char *expertEncoding[256] = {
};
const char *symbolEncoding[256] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"space",
"exclam",
"universal",
@@ -1433,40 +1433,40 @@ const char *symbolEncoding[256] = {
"bar",
"braceright",
"similar",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"Upsilon1",
"minute",
"lessequal",
@@ -1546,7 +1546,7 @@ const char *symbolEncoding[256] = {
"braceleftmid",
"braceleftbt",
"braceex",
- NULL,
+ nullptr,
"angleright",
"integral",
"integraltp",
@@ -1561,42 +1561,42 @@ const char *symbolEncoding[256] = {
"bracerighttp",
"bracerightmid",
"bracerightbt",
- NULL
+ nullptr
};
const char *zapfDingbatsEncoding[256] = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"space",
"a1",
"a2",
@@ -1692,40 +1692,40 @@ const char *zapfDingbatsEncoding[256] = {
"a98",
"a99",
"a100",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
"a101",
"a102",
"a103",
@@ -1805,7 +1805,7 @@ const char *zapfDingbatsEncoding[256] = {
"a181",
"a200",
"a182",
- NULL,
+ nullptr,
"a201",
"a183",
"a184",
@@ -1820,5 +1820,5 @@ const char *zapfDingbatsEncoding[256] = {
"a189",
"a190",
"a191",
- NULL
+ nullptr
};
diff --git a/Build/source/libs/poppler/poppler-src/poppler/FontInfo.cc b/Build/source/libs/poppler/poppler-src/poppler/FontInfo.cc
index 3730f529b30..15019eba55c 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/FontInfo.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/FontInfo.cc
@@ -3,7 +3,7 @@
// FontInfo.cc
//
// Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2005-2008, 2010, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005-2008, 2010, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2005 Brad Hards <bradh@frogmouth.net>
// Copyright (C) 2006 Kouhei Sutou <kou@cozmixng.org>
// Copyright (C) 2009 Pino Toscano <pino@kde.org>
@@ -57,7 +57,7 @@ GooList *FontInfoScanner::scan(int nPages) {
int lastPage;
if (currentPage > doc->getNumPages()) {
- return NULL;
+ return nullptr;
}
result = new GooList();
@@ -92,21 +92,20 @@ GooList *FontInfoScanner::scan(int nPages) {
}
void FontInfoScanner::scanFonts(XRef *xrefA, Dict *resDict, GooList *fontsList) {
- Ref r;
GfxFontDict *gfxFontDict;
GfxFont *font;
// scan the fonts in this resource dictionary
- gfxFontDict = NULL;
+ gfxFontDict = nullptr;
Object obj1 = resDict->lookupNF("Font");
if (obj1.isRef()) {
Object obj2 = obj1.fetch(xrefA);
if (obj2.isDict()) {
- r = obj1.getRef();
+ Ref r = obj1.getRef();
gfxFontDict = new GfxFontDict(xrefA, &r, obj2.getDict());
}
} else if (obj1.isDict()) {
- gfxFontDict = new GfxFontDict(xrefA, NULL, obj1.getDict());
+ gfxFontDict = new GfxFontDict(xrefA, nullptr, obj1.getDict());
}
if (gfxFontDict) {
for (int i = 0; i < gfxFontDict->getNumFonts(); ++i) {
@@ -160,10 +159,10 @@ FontInfo::FontInfo(GfxFont *font, XRef *xref) {
// font name
origName = font->getName();
- if (origName != NULL) {
+ if (origName != nullptr) {
name = font->getName()->copy();
} else {
- name = NULL;
+ name = nullptr;
}
// font type
@@ -176,8 +175,8 @@ FontInfo::FontInfo(GfxFont *font, XRef *xref) {
emb = font->getEmbeddedFontID(&embRef);
}
- file = NULL;
- substituteName = NULL;
+ file = nullptr;
+ substituteName = nullptr;
if (!emb)
{
SysFontType dummy;
@@ -211,10 +210,10 @@ FontInfo::FontInfo(GfxFont *font, XRef *xref) {
}
FontInfo::FontInfo(FontInfo& f) {
- name = f.name ? f.name->copy() : NULL;
- file = f.file ? f.file->copy() : NULL;
- encoding = f.encoding ? f.encoding->copy() : NULL;
- substituteName = f.substituteName ? f.substituteName->copy() : NULL;
+ name = f.name ? f.name->copy() : nullptr;
+ file = f.file ? f.file->copy() : nullptr;
+ encoding = f.encoding ? f.encoding->copy() : nullptr;
+ substituteName = f.substituteName ? f.substituteName->copy() : nullptr;
type = f.type;
emb = f.emb;
subset = f.subset;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/FontInfo.h b/Build/source/libs/poppler/poppler-src/poppler/FontInfo.h
index 615b6793de3..f6501466b52 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/FontInfo.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/FontInfo.h
@@ -3,7 +3,7 @@
// FontInfo.h
//
// Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2005-2008, 2010, 2011 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005-2008, 2010, 2011, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2005 Brad Hards <bradh@frogmouth.net>
// Copyright (C) 2009 Pino Toscano <pino@kde.org>
// Copyright (C) 2012 Adrian Johnson <ajohnson@redneon.com>
@@ -56,6 +56,8 @@ public:
// Destructor.
~FontInfo();
+ FontInfo& operator=(const FontInfo &) = delete;
+
GooString *getName() { return name; };
GooString *getSubstituteName() { return substituteName; };
GooString *getFile() { return file; };
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Form.cc b/Build/source/libs/poppler/poppler-src/poppler/Form.cc
index 3c23dd3f651..11b16c9158b 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Form.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Form.cc
@@ -94,7 +94,7 @@ FormWidget::FormWidget(PDFDoc *docA, Object *aobj, unsigned num, Ref aref, FormF
obj = aobj->copy();
type = formUndef;
field = fieldA;
- widget = NULL;
+ widget = nullptr;
}
FormWidget::~FormWidget()
@@ -168,18 +168,18 @@ GooString *FormWidget::getFullyQualifiedName() {
}
LinkAction *FormWidget::getActivationAction() {
- return widget ? widget->getAction() : NULL;
+ return widget ? widget->getAction() : nullptr;
}
LinkAction *FormWidget::getAdditionalAction(Annot::FormAdditionalActionsType type) {
- return widget ? widget->getFormAdditionalAction(type) : NULL;
+ return widget ? widget->getFormAdditionalAction(type) : nullptr;
}
FormWidgetButton::FormWidgetButton (PDFDoc *docA, Object *aobj, unsigned num, Ref ref, FormField *p) :
FormWidget(docA, aobj, num, ref, p)
{
type = formButton;
- onStr = NULL;
+ onStr = nullptr;
// Find the name of the ON state in the AP dictionnary
// The reference say the Off state, if it existe, _must_ be stored in the AP dict under the name /Off
@@ -205,7 +205,7 @@ char *FormWidgetButton::getOnStr() {
// 12.7.4.2.3 Check Boxes
// Yes should be used as the name for the on state
- return parent()->getButtonType() == formButtonCheck ? (char *)"Yes" : NULL;
+ return parent()->getButtonType() == formButtonCheck ? (char *)"Yes" : nullptr;
}
FormWidgetButton::~FormWidgetButton ()
@@ -376,7 +376,7 @@ GooString* FormWidgetChoice::getEditChoice ()
{
if (!hasEdit()) {
error(errInternal, -1, "FormFieldChoice::getEditChoice called on a non-editable choice\n");
- return NULL;
+ return nullptr;
}
return parent()->getEditChoice();
}
@@ -618,12 +618,12 @@ FormField::FormField(PDFDoc *docA, Object *aobj, const Ref& aref, FormField *par
type = ty;
parent = parentA;
numChildren = 0;
- children = NULL;
+ children = nullptr;
terminal = false;
- widgets = NULL;
+ widgets = nullptr;
readOnly = false;
- defaultAppearance = NULL;
- fullyQualifiedName = NULL;
+ defaultAppearance = nullptr;
+ fullyQualifiedName = nullptr;
quadding = quaddingLeftJustified;
hasQuadding = gFalse;
@@ -715,21 +715,21 @@ FormField::FormField(PDFDoc *docA, Object *aobj, const Ref& aref, FormField *par
if (obj1.isString()) {
partialName = obj1.getString()->copy();
} else {
- partialName = NULL;
+ partialName = nullptr;
}
obj1 = dict->lookup("TU");
if (obj1.isString()) {
alternateUiName = obj1.getString()->copy();
} else {
- alternateUiName = NULL;
+ alternateUiName = nullptr;
}
obj1 = dict->lookup("TM");
if(obj1.isString()) {
mappingName = obj1.getString()->copy();
} else {
- mappingName = NULL;
+ mappingName = nullptr;
}
}
@@ -841,7 +841,7 @@ FormWidget* FormField::findWidgetByRef (Ref aref)
if(result) return result;
}
}
- return NULL;
+ return nullptr;
}
GooString* FormField::getFullyQualifiedName() {
@@ -948,7 +948,7 @@ FormFieldButton::FormFieldButton(PDFDoc *docA, Object *aobj, const Ref& ref, For
Dict* dict = obj.getDict();
active_child = -1;
noAllOff = false;
- siblings = NULL;
+ siblings = nullptr;
numSiblings = 0;
appearanceState.setToNull();
@@ -1011,7 +1011,7 @@ void FormFieldButton::fillChildrenSiblingsID()
if (!terminal) {
for(int i=0; i<numChildren; i++) {
FormFieldButton *child = dynamic_cast<FormFieldButton*>(children[i]);
- if (child != NULL) {
+ if (child != nullptr) {
// Fill the siblings of this node childs
child->setNumSiblings(numChildren-1);
for(int j=0, counter=0; j<numChildren; j++) {
@@ -1116,7 +1116,7 @@ FormFieldText::FormFieldText(PDFDoc *docA, Object *aobj, const Ref& ref, FormFie
{
Dict* dict = obj.getDict();
Object obj1;
- content = NULL;
+ content = nullptr;
multiline = password = fileSelect = doNotSpellCheck = doNotScroll = comb = richText = false;
maxLen = 0;
@@ -1169,14 +1169,14 @@ void FormFieldText::print(int indent)
GooString* FormFieldText::getContentCopy ()
{
- if (!content) return NULL;
+ if (!content) return nullptr;
return new GooString(content);
}
void FormFieldText::setContentCopy (GooString* new_content)
{
delete content;
- content = NULL;
+ content = nullptr;
if (new_content) {
content = new_content->copy();
@@ -1286,8 +1286,8 @@ FormFieldChoice::FormFieldChoice(PDFDoc *docA, Object *aobj, const Ref& ref, For
: FormField(docA, aobj, ref, parent, usedParents, formChoice)
{
numChoices = 0;
- choices = NULL;
- editedChoice = NULL;
+ choices = nullptr;
+ editedChoice = nullptr;
topIdx = 0;
Dict* dict = obj.getDict();
@@ -1433,7 +1433,7 @@ void FormFieldChoice::print(int indent)
#endif
void FormFieldChoice::updateSelection() {
- Object objV, obj1;
+ Object objV;
Object objI(objNull);
if (edit && editedChoice) {
@@ -1501,7 +1501,7 @@ void FormFieldChoice::unselectAll ()
void FormFieldChoice::deselectAll () {
delete editedChoice;
- editedChoice = NULL;
+ editedChoice = nullptr;
unselectAll();
updateSelection();
@@ -1510,7 +1510,7 @@ void FormFieldChoice::deselectAll () {
void FormFieldChoice::toggle (int i)
{
delete editedChoice;
- editedChoice = NULL;
+ editedChoice = nullptr;
choices[i].selected = !choices[i].selected;
updateSelection();
@@ -1519,7 +1519,7 @@ void FormFieldChoice::toggle (int i)
void FormFieldChoice::select (int i)
{
delete editedChoice;
- editedChoice = NULL;
+ editedChoice = nullptr;
if (!multiselect)
unselectAll();
@@ -1531,7 +1531,7 @@ void FormFieldChoice::select (int i)
void FormFieldChoice::setEditChoice (GooString* new_content)
{
delete editedChoice;
- editedChoice = NULL;
+ editedChoice = nullptr;
unselectAll();
@@ -1570,7 +1570,7 @@ GooString *FormFieldChoice::getSelectedChoice() {
return choices[i].optionName;
}
- return NULL;
+ return nullptr;
}
//------------------------------------------------------------------------
@@ -1581,7 +1581,7 @@ FormFieldSignature::FormFieldSignature(PDFDoc *docA, Object *dict, const Ref& re
signature_type(adbe_pkcs7_detached),
signature(nullptr), signature_info(nullptr)
{
- signature = NULL;
+ signature = nullptr;
signature_info = new SignatureInfo();
parseInfo();
@@ -1677,7 +1677,7 @@ SignatureInfo *FormFieldSignature::validateSignature(bool doVerifyCert, bool for
return signature_info;
}
- if (signature == NULL) {
+ if (signature == nullptr) {
error(errSyntaxError, 0, "Invalid or missing Signature string");
return signature_info;
}
@@ -1766,10 +1766,10 @@ Form::Form(PDFDoc *docA, Object* acroFormA)
size = 0;
numFields = 0;
- rootFields = NULL;
+ rootFields = nullptr;
quadding = quaddingLeftJustified;
- defaultAppearance = NULL;
- defaultResources = NULL;
+ defaultAppearance = nullptr;
+ defaultResources = nullptr;
obj1 = acroForm->dictLookup("NeedAppearances");
needAppearances = (obj1.isBool() && obj1.getBool());
@@ -1787,7 +1787,7 @@ Form::Form(PDFDoc *docA, Object* acroFormA)
// At a minimum, this dictionary shall contain a Font entry
obj1 = resDict.dictLookup("Font");
if (obj1.isDict())
- defaultResources = new GfxResources(xref, resDict.getDict(), NULL);
+ defaultResources = new GfxResources(xref, resDict.getDict(), nullptr);
}
if (!defaultResources) {
resDict.setToNull();
@@ -1815,7 +1815,7 @@ Form::Form(PDFDoc *docA, Object* acroFormA)
}
std::set<int> usedParents;
- rootFields[numFields++] = createFieldFromDict (&obj2, doc, oref.getRef(), NULL, &usedParents);
+ rootFields[numFields++] = createFieldFromDict (&obj2, doc, oref.getRef(), nullptr, &usedParents);
}
} else {
@@ -1918,7 +1918,7 @@ FormWidget* Form::findWidgetByRef (Ref aref)
FormWidget *result = rootFields[i]->findWidgetByRef(aref);
if(result) return result;
}
- return NULL;
+ return nullptr;
}
//------------------------------------------------------------------------
@@ -1928,7 +1928,7 @@ FormWidget* Form::findWidgetByRef (Ref aref)
FormPageWidgets::FormPageWidgets (Annots *annots, unsigned int page, Form *form)
{
numWidgets = 0;
- widgets = NULL;
+ widgets = nullptr;
if (annots && annots->getNumAnnots() > 0 && form) {
size = annots->getNumAnnots();
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Form.h b/Build/source/libs/poppler/poppler-src/poppler/Form.h
index f12590fc0db..297929b5d1c 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Form.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Form.h
@@ -6,7 +6,7 @@
//
// Copyright 2006 Julien Rebetez <julienr@svn.gnome.org>
// Copyright 2007, 2008, 2011 Carlos Garcia Campos <carlosgc@gnome.org>
-// Copyright 2007-2010, 2012, 2015-2017 Albert Astals Cid <aacid@kde.org>
+// Copyright 2007-2010, 2012, 2015-2018 Albert Astals Cid <aacid@kde.org>
// Copyright 2010 Mark Riedesel <mark@klowner.com>
// Copyright 2011 Pino Toscano <pino@kde.org>
// Copyright 2012 Fabio D'Urso <fabiodurso@hotmail.it>
@@ -29,6 +29,8 @@
#include "Object.h"
#include "Annot.h"
+#include <time.h>
+
#include <set>
#include <vector>
#include <ctime>
@@ -564,6 +566,9 @@ public:
~Form();
+ Form(const Form &) = delete;
+ Form& operator=(const Form &) = delete;
+
// Look up an inheritable field dictionary entry.
static Object fieldLookup(Dict *field, const char *key);
@@ -612,6 +617,9 @@ public:
FormPageWidgets (Annots* annots, unsigned int page, Form *form);
~FormPageWidgets();
+ FormPageWidgets(const FormPageWidgets &) = delete;
+ FormPageWidgets& operator=(const FormPageWidgets &) = delete;
+
int getNumWidgets() const { return numWidgets; }
FormWidget* getWidget(int i) const { return widgets[i]; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Function.cc b/Build/source/libs/poppler/poppler-src/poppler/Function.cc
index 92ba5f74f5c..5437de35616 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Function.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Function.cc
@@ -76,7 +76,7 @@ Function *Function::parse(Object *funcObj, std::set<int> *usedParents) {
return new IdentityFunction();
} else {
error(errSyntaxError, -1, "Expected function dictionary or stream");
- return NULL;
+ return nullptr;
}
Object obj1 = dict->lookup("FunctionType");
@@ -96,11 +96,11 @@ Function *Function::parse(Object *funcObj, std::set<int> *usedParents) {
func = new PostScriptFunction(funcObj, dict);
} else {
error(errSyntaxError, -1, "Unimplemented function type ({0:d})", funcType);
- return NULL;
+ return nullptr;
}
if (!func->isOk()) {
delete func;
- return NULL;
+ return nullptr;
}
return func;
@@ -222,9 +222,9 @@ SampledFunction::SampledFunction(Object *funcObj, Dict *dict) {
double in[funcMaxInputs];
int i, j, t, bit, idx;
- idxOffset = NULL;
- samples = NULL;
- sBuf = NULL;
+ idxOffset = nullptr;
+ samples = nullptr;
+ sBuf = nullptr;
ok = gFalse;
//----- initialize the generic stuff
@@ -651,10 +651,10 @@ StitchingFunction::StitchingFunction(Object *funcObj, Dict *dict, std::set<int>
int i;
ok = gFalse;
- funcs = NULL;
- bounds = NULL;
- encode = NULL;
- scale = NULL;
+ funcs = nullptr;
+ bounds = nullptr;
+ encode = nullptr;
+ scale = nullptr;
//----- initialize the generic stuff
if (!init(dict)) {
@@ -677,7 +677,7 @@ StitchingFunction::StitchingFunction(Object *funcObj, Dict *dict, std::set<int>
encode = (double *)gmallocn(2 * k, sizeof(double));
scale = (double *)gmallocn(k, sizeof(double));
for (i = 0; i < k; ++i) {
- funcs[i] = NULL;
+ funcs[i] = nullptr;
}
for (i = 0; i < k; ++i) {
std::set<int> usedParentsAux = *usedParents;
@@ -1131,8 +1131,8 @@ PostScriptFunction::PostScriptFunction(Object *funcObj, Dict *dict) {
double in[funcMaxInputs];
int i;
- code = NULL;
- codeString = NULL;
+ code = nullptr;
+ codeString = nullptr;
codeSize = 0;
ok = gFalse;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Function.h b/Build/source/libs/poppler/poppler-src/poppler/Function.h
index 56e5495d958..65b532518c2 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Function.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Function.h
@@ -13,7 +13,7 @@
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
-// Copyright (C) 2009, 2010 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009, 2010, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com>
// Copyright (C) 2011 Andrea Canciani <ranma42@gmail.com>
// Copyright (C) 2012 Thomas Freitag <Thomas.Freitag@alfa.de>
@@ -56,6 +56,9 @@ public:
virtual ~Function();
+ Function(const Function &) = delete;
+ Function& operator=(const Function &other) = delete;
+
// Construct a function. Returns NULL if unsuccessful.
static Function *parse(Object *funcObj);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Gfx.cc b/Build/source/libs/poppler/poppler-src/poppler/Gfx.cc
index 531acbd41a2..4f6c33f8e50 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Gfx.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Gfx.cc
@@ -14,7 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2005 Jonathan Blandford <jrb@redhat.com>
-// Copyright (C) 2005-2013, 2015-2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005-2013, 2015-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2006 Thorkild Stray <thorkild@ifi.uio.no>
// Copyright (C) 2006 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2006-2011 Carlos Garcia Campos <carlosgc@gnome.org>
@@ -38,6 +38,7 @@
// Copyright (C) 2012, 2013 Fabio D'Urso <fabiodurso@hotmail.it>
// Copyright (C) 2012 Lu Wang <coolwanglu@gmail.com>
// Copyright (C) 2014 Jason Crain <jason@aquaticape.us>
+// Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>. Work sponsored by the LiMux project of the city of Munich
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -326,7 +327,7 @@ GfxResources::GfxResources(XRef *xref, Dict *resDictA, GfxResources *nextA) :
// build font dictionary
Dict *resDict = resDictA->copy(xref);
- fonts = NULL;
+ fonts = nullptr;
obj1 = resDict->lookupNF("Font");
if (obj1.isRef()) {
obj2 = obj1.fetch(xref);
@@ -335,7 +336,7 @@ GfxResources::GfxResources(XRef *xref, Dict *resDictA, GfxResources *nextA) :
fonts = new GfxFontDict(xref, &r, obj2.getDict());
}
} else if (obj1.isDict()) {
- fonts = new GfxFontDict(xref, NULL, obj1.getDict());
+ fonts = new GfxFontDict(xref, nullptr, obj1.getDict());
}
// get XObject dictionary
@@ -358,7 +359,7 @@ GfxResources::GfxResources(XRef *xref, Dict *resDictA, GfxResources *nextA) :
delete resDict;
} else {
- fonts = NULL;
+ fonts = nullptr;
xObjDict.setToNull();
colorSpaceDict.setToNull();
patternDict.setToNull();
@@ -385,7 +386,7 @@ GfxFont *GfxResources::lookupFont(char *name) {
}
}
error(errSyntaxError, -1, "Unknown font tag '{0:s}'", name);
- return NULL;
+ return nullptr;
}
Object GfxResources::lookupXObject(char *name) {
@@ -464,7 +465,7 @@ GfxPattern *GfxResources::lookupPattern(char *name, OutputDev *out, GfxState *st
}
}
error(errSyntaxError, -1, "Unknown pattern '{0:s}'", name);
- return NULL;
+ return nullptr;
}
GfxShading *GfxResources::lookupShading(char *name, OutputDev *out, GfxState *state) {
@@ -481,7 +482,7 @@ GfxShading *GfxResources::lookupShading(char *name, OutputDev *out, GfxState *st
}
}
error(errSyntaxError, -1, "ExtGState '{0:s}' is unknown", name);
- return NULL;
+ return nullptr;
}
Object GfxResources::lookupGState(char *name) {
@@ -529,16 +530,16 @@ Gfx::Gfx(PDFDoc *docA, OutputDev *outA, int pageNum, Dict *resDict,
int i;
doc = docA;
- xref = (xrefA == NULL) ? doc->getXRef() : xrefA;
+ xref = (xrefA == nullptr) ? doc->getXRef() : xrefA;
catalog = doc->getCatalog();
subPage = gFalse;
printCommands = globalParams->getPrintCommands();
profileCommands = globalParams->getProfileCommands();
- mcStack = NULL;
- parser = NULL;
+ mcStack = nullptr;
+ parser = nullptr;
// start the resource stack
- res = new GfxResources(xref, resDict, NULL);
+ res = new GfxResources(xref, resDict, nullptr);
// initialize
out = outA;
@@ -556,7 +557,7 @@ Gfx::Gfx(PDFDoc *docA, OutputDev *outA, int pageNum, Dict *resDict,
}
formDepth = 0;
ocState = gTrue;
- parser = NULL;
+ parser = nullptr;
abortCheckCbk = abortCheckCbkA;
abortCheckCbkData = abortCheckCbkDataA;
@@ -584,16 +585,16 @@ Gfx::Gfx(PDFDoc *docA, OutputDev *outA, Dict *resDict,
int i;
doc = docA;
- xref = (xrefA == NULL) ? doc->getXRef() : xrefA;
+ xref = (xrefA == nullptr) ? doc->getXRef() : xrefA;
catalog = doc->getCatalog();
subPage = gTrue;
printCommands = globalParams->getPrintCommands();
profileCommands = globalParams->getProfileCommands();
- mcStack = NULL;
- parser = NULL;
+ mcStack = nullptr;
+ parser = nullptr;
// start the resource stack
- res = new GfxResources(xref, resDict, NULL);
+ res = new GfxResources(xref, resDict, nullptr);
// initialize
out = outA;
@@ -608,7 +609,7 @@ Gfx::Gfx(PDFDoc *docA, OutputDev *outA, Dict *resDict,
}
formDepth = 0;
ocState = gTrue;
- parser = NULL;
+ parser = nullptr;
abortCheckCbk = abortCheckCbkA;
abortCheckCbkData = abortCheckCbkDataA;
@@ -645,7 +646,7 @@ void Gfx::initDisplayProfile() {
int length = 0;
Guchar *profBuf = iccStream->toUnsignedChars(&length, 65536, 65536);
cmsHPROFILE hp = cmsOpenProfileFromMem(profBuf,length);
- if (hp == 0) {
+ if (hp == nullptr) {
error(errSyntaxWarning, -1, "read ICCBased color space profile error");
} else {
state->setDisplayProfile(hp);
@@ -698,7 +699,7 @@ void Gfx::display(Object *obj, GBool topLevel) {
parser = new Parser(xref, new Lexer(xref, obj), gFalse);
go(topLevel);
delete parser;
- parser = NULL;
+ parser = nullptr;
}
void Gfx::go(GBool topLevel) {
@@ -747,7 +748,7 @@ void Gfx::go(GBool topLevel) {
cmd_g = new GooString (obj.getCmd());
data_p = (ProfileData *)hash->lookup (cmd_g);
- if (data_p == NULL) {
+ if (data_p == nullptr) {
data_p = new ProfileData();
hash->add (cmd_g, data_p);
}
@@ -764,6 +765,7 @@ void Gfx::go(GBool topLevel) {
if (++updateLevel >= 20000) {
out->dump();
updateLevel = 0;
+ lastAbortCheck = 0;
}
// did the command throw an exception
@@ -891,7 +893,7 @@ Operator *Gfx::findOp(char *name) {
a = b = m;
}
if (cmp != 0)
- return NULL;
+ return nullptr;
return &opTab[a];
}
@@ -945,7 +947,7 @@ void Gfx::opSetDash(Object args[], int numArgs) {
a = args[0].getArray();
length = a->getLength();
if (length == 0) {
- dash = NULL;
+ dash = nullptr;
} else {
dash = (double *)gmallocn(length, sizeof(double));
for (i = 0; i < length; ++i) {
@@ -1113,7 +1115,7 @@ void Gfx::opSetExtGState(Object args[], int numArgs) {
}
if (obj2.isName("Default") ||
obj2.isName("Identity")) {
- funcs[0] = funcs[1] = funcs[2] = funcs[3] = NULL;
+ funcs[0] = funcs[1] = funcs[2] = funcs[3] = nullptr;
state->setTransfer(funcs);
out->updateTransfer(state);
} else if (obj2.isArray() && obj2.arrayGetLength() == 4) {
@@ -1130,7 +1132,7 @@ void Gfx::opSetExtGState(Object args[], int numArgs) {
}
} else if (obj2.isName() || obj2.isDict() || obj2.isStream()) {
if ((funcs[0] = Function::parse(&obj2))) {
- funcs[1] = funcs[2] = funcs[3] = NULL;
+ funcs[1] = funcs[2] = funcs[3] = nullptr;
state->setTransfer(funcs);
out->updateTransfer(state);
}
@@ -1164,21 +1166,21 @@ void Gfx::opSetExtGState(Object args[], int numArgs) {
} else { // "Luminosity"
alpha = gFalse;
}
- funcs[0] = NULL;
+ funcs[0] = nullptr;
obj3 = obj2.dictLookup("TR");
if (!obj3.isNull()) {
if (obj3.isName("Default") ||
obj3.isName("Identity")) {
- funcs[0] = NULL;
+ funcs[0] = nullptr;
} else {
funcs[0] = Function::parse(&obj3);
- if (funcs[0] == NULL ||
+ if (funcs[0] == nullptr ||
funcs[0]->getInputSize() != 1 ||
funcs[0]->getOutputSize() != 1) {
error(errSyntaxError, getPos(),
"Invalid transfer function in soft mask in ExtGState");
delete funcs[0];
- funcs[0] = NULL;
+ funcs[0] = nullptr;
}
}
}
@@ -1198,7 +1200,7 @@ void Gfx::opSetExtGState(Object args[], int numArgs) {
if (obj3.isStream()) {
Object obj4 = obj3.streamGetDict()->lookup("Group");
if (obj4.isDict()) {
- blendingColorSpace = NULL;
+ blendingColorSpace = nullptr;
isolated = knockout = gFalse;
Object obj5 = obj4.dictLookup("CS");
if (!obj5.isNull()) {
@@ -1350,7 +1352,7 @@ void Gfx::doSoftMask(Object *str, GBool alpha,
// get resources
obj1 = dict->lookup("Resources");
- resDict = obj1.isDict() ? obj1.getDict() : (Dict *)NULL;
+ resDict = obj1.isDict() ? obj1.getDict() : (Dict *)nullptr;
// draw it
++formDepth;
@@ -1374,14 +1376,14 @@ void Gfx::opSetRenderingIntent(Object args[], int numArgs) {
void Gfx::opSetFillGray(Object args[], int numArgs) {
GfxColor color;
- GfxColorSpace *colorSpace = NULL;
+ GfxColorSpace *colorSpace = nullptr;
- state->setFillPattern(NULL);
+ state->setFillPattern(nullptr);
Object obj = res->lookupColorSpace("DefaultGray");
if (!obj.isNull()) {
colorSpace = GfxColorSpace::parse(res, &obj, out, state);
}
- if (colorSpace == NULL) {
+ if (colorSpace == nullptr) {
colorSpace = new GfxDeviceGrayColorSpace();
}
state->setFillColorSpace(colorSpace);
@@ -1393,14 +1395,14 @@ void Gfx::opSetFillGray(Object args[], int numArgs) {
void Gfx::opSetStrokeGray(Object args[], int numArgs) {
GfxColor color;
- GfxColorSpace *colorSpace = NULL;
+ GfxColorSpace *colorSpace = nullptr;
- state->setStrokePattern(NULL);
+ state->setStrokePattern(nullptr);
Object obj = res->lookupColorSpace("DefaultGray");
if (!obj.isNull()) {
colorSpace = GfxColorSpace::parse(res, &obj, out, state);
}
- if (colorSpace == NULL) {
+ if (colorSpace == nullptr) {
colorSpace = new GfxDeviceGrayColorSpace();
}
state->setStrokeColorSpace(colorSpace);
@@ -1412,17 +1414,17 @@ void Gfx::opSetStrokeGray(Object args[], int numArgs) {
void Gfx::opSetFillCMYKColor(Object args[], int numArgs) {
GfxColor color;
- GfxColorSpace *colorSpace = NULL;
+ GfxColorSpace *colorSpace = nullptr;
int i;
Object obj = res->lookupColorSpace("DefaultCMYK");
if (!obj.isNull()) {
colorSpace = GfxColorSpace::parse(res, &obj, out, state);
}
- if (colorSpace == NULL) {
+ if (colorSpace == nullptr) {
colorSpace = new GfxDeviceCMYKColorSpace();
}
- state->setFillPattern(NULL);
+ state->setFillPattern(nullptr);
state->setFillColorSpace(colorSpace);
out->updateFillColorSpace(state);
for (i = 0; i < 4; ++i) {
@@ -1434,15 +1436,15 @@ void Gfx::opSetFillCMYKColor(Object args[], int numArgs) {
void Gfx::opSetStrokeCMYKColor(Object args[], int numArgs) {
GfxColor color;
- GfxColorSpace *colorSpace = NULL;
+ GfxColorSpace *colorSpace = nullptr;
int i;
- state->setStrokePattern(NULL);
+ state->setStrokePattern(nullptr);
Object obj = res->lookupColorSpace("DefaultCMYK");
if (!obj.isNull()) {
colorSpace = GfxColorSpace::parse(res, &obj, out, state);
}
- if (colorSpace == NULL) {
+ if (colorSpace == nullptr) {
colorSpace = new GfxDeviceCMYKColorSpace();
}
state->setStrokeColorSpace(colorSpace);
@@ -1455,16 +1457,16 @@ void Gfx::opSetStrokeCMYKColor(Object args[], int numArgs) {
}
void Gfx::opSetFillRGBColor(Object args[], int numArgs) {
- GfxColorSpace *colorSpace = NULL;
+ GfxColorSpace *colorSpace = nullptr;
GfxColor color;
int i;
- state->setFillPattern(NULL);
+ state->setFillPattern(nullptr);
Object obj = res->lookupColorSpace("DefaultRGB");
if (!obj.isNull()) {
colorSpace = GfxColorSpace::parse(res, &obj, out, state);
}
- if (colorSpace == NULL) {
+ if (colorSpace == nullptr) {
colorSpace = new GfxDeviceRGBColorSpace();
}
state->setFillColorSpace(colorSpace);
@@ -1477,16 +1479,16 @@ void Gfx::opSetFillRGBColor(Object args[], int numArgs) {
}
void Gfx::opSetStrokeRGBColor(Object args[], int numArgs) {
- GfxColorSpace *colorSpace = NULL;
+ GfxColorSpace *colorSpace = nullptr;
GfxColor color;
int i;
- state->setStrokePattern(NULL);
+ state->setStrokePattern(nullptr);
Object obj = res->lookupColorSpace("DefaultRGB");
if (!obj.isNull()) {
colorSpace = GfxColorSpace::parse(res, &obj, out, state);
}
- if (colorSpace == NULL) {
+ if (colorSpace == nullptr) {
colorSpace = new GfxDeviceRGBColorSpace();
}
state->setStrokeColorSpace(colorSpace);
@@ -1509,7 +1511,7 @@ void Gfx::opSetFillColorSpace(Object args[], int numArgs) {
colorSpace = GfxColorSpace::parse(res, &obj, out, state);
}
if (colorSpace) {
- state->setFillPattern(NULL);
+ state->setFillPattern(nullptr);
state->setFillColorSpace(colorSpace);
out->updateFillColorSpace(state);
colorSpace->getDefaultColor(&color);
@@ -1524,7 +1526,7 @@ void Gfx::opSetStrokeColorSpace(Object args[], int numArgs) {
GfxColorSpace *colorSpace;
GfxColor color;
- state->setStrokePattern(NULL);
+ state->setStrokePattern(nullptr);
Object obj = res->lookupColorSpace(args[0].getName());
if (obj.isNull()) {
colorSpace = GfxColorSpace::parse(res, &args[0], out, state);
@@ -1550,7 +1552,7 @@ void Gfx::opSetFillColor(Object args[], int numArgs) {
error(errSyntaxError, getPos(), "Incorrect number of arguments in 'sc' command");
return;
}
- state->setFillPattern(NULL);
+ state->setFillPattern(nullptr);
for (i = 0; i < numArgs; ++i) {
color.c[i] = dblToCol(args[i].getNum());
}
@@ -1566,7 +1568,7 @@ void Gfx::opSetStrokeColor(Object args[], int numArgs) {
error(errSyntaxError, getPos(), "Incorrect number of arguments in 'SC' command");
return;
}
- state->setStrokePattern(NULL);
+ state->setStrokePattern(nullptr);
for (i = 0; i < numArgs; ++i) {
color.c[i] = dblToCol(args[i].getNum());
}
@@ -1609,7 +1611,7 @@ void Gfx::opSetFillColorN(Object args[], int numArgs) {
error(errSyntaxError, getPos(), "Incorrect number of arguments in 'scn' command");
return;
}
- state->setFillPattern(NULL);
+ state->setFillPattern(nullptr);
for (i = 0; i < numArgs && i < gfxColorMaxComps; ++i) {
if (args[i].isNum()) {
color.c[i] = dblToCol(args[i].getNum());
@@ -1660,7 +1662,7 @@ void Gfx::opSetStrokeColorN(Object args[], int numArgs) {
error(errSyntaxError, getPos(), "Incorrect number of arguments in 'SCN' command");
return;
}
- state->setStrokePattern(NULL);
+ state->setStrokePattern(nullptr);
for (i = 0; i < numArgs && i < gfxColorMaxComps; ++i) {
if (args[i].isNum()) {
color.c[i] = dblToCol(args[i].getNum());
@@ -2097,8 +2099,8 @@ void Gfx::doTilingPatternFill(GfxTilingPattern *tPat,
// set underlying color space (for uncolored tiling patterns); set
// various other parameters (stroke color, line width) to match
// Adobe's behavior
- state->setFillPattern(NULL);
- state->setStrokePattern(NULL);
+ state->setFillPattern(nullptr);
+ state->setStrokePattern(nullptr);
if (tPat->getPaintType() == 2 && (cs = patCS->getUnder())) {
state->setFillColorSpace(cs->copy());
out->updateFillColorSpace(state);
@@ -3663,7 +3665,7 @@ void Gfx::opSetFont(Object args[], int numArgs) {
if (!(font = res->lookupFont(args[0].getName()))) {
// unsetting the font (drawing no text) is better than using the
// previous one and drawing random glyphs from it
- state->setFont(NULL, args[1].getNum());
+ state->setFont(nullptr, args[1].getNum());
fontChanged = gTrue;
return;
}
@@ -3873,7 +3875,7 @@ void Gfx::doShowText(GooString *s) {
int wMode;
double riseX, riseY;
CharCode code;
- Unicode *u = NULL;
+ Unicode *u = nullptr;
double x, y, dx, dy, dx2, dy2, curX, curY, tdx, tdy, ddx, ddy;
double originX, originY, tOriginX, tOriginY;
double x0, y0, x1, y1;
@@ -4184,7 +4186,7 @@ void Gfx::opXObject(Object args[], int numArgs) {
} else if (obj2.isName("PS")) {
Object obj3 = obj1.streamGetDict()->lookup("Level1");
out->psXObject(obj1.getStream(),
- obj3.isStream() ? obj3.getStream() : (Stream *)NULL);
+ obj3.isStream() ? obj3.getStream() : (Stream *)nullptr);
} else if (obj2.isName()) {
error(errSyntaxError, getPos(), "Unknown XObject subtype '{0:s}'", obj2.getName());
} else {
@@ -4349,11 +4351,11 @@ void Gfx::doImage(Object *ref, Stream *str, GBool inlineImg) {
}
}
if (!obj1.isNull()) {
- char *tempIntent = NULL;
+ char *tempIntent = nullptr;
Object objIntent = dict->lookup("Intent");
if (objIntent.isName()) {
tempIntent = state->getRenderingIntent();
- if (tempIntent != NULL) {
+ if (tempIntent != nullptr) {
tempIntent = strdup(tempIntent);
}
state->setRenderingIntent(objIntent.getName());
@@ -4385,7 +4387,7 @@ void Gfx::doImage(Object *ref, Stream *str, GBool inlineImg) {
colorSpace = GfxColorSpace::parse(res, &objCS, out, state);
}
} else {
- colorSpace = NULL;
+ colorSpace = nullptr;
}
if (!colorSpace) {
goto err1;
@@ -4401,7 +4403,7 @@ void Gfx::doImage(Object *ref, Stream *str, GBool inlineImg) {
// get the mask
haveColorKeyMask = haveExplicitMask = haveSoftMask = gFalse;
- maskStr = NULL; // make gcc happy
+ maskStr = nullptr; // make gcc happy
maskWidth = maskHeight = 0; // make gcc happy
maskInvert = gFalse; // make gcc happy
std::unique_ptr<GfxImageColorMap> maskColorMap;
@@ -4456,7 +4458,7 @@ void Gfx::doImage(Object *ref, Stream *str, GBool inlineImg) {
obj1 = std::move(obj2);
}
}
- maskColorSpace = GfxColorSpace::parse(NULL, &obj1, out, state);
+ maskColorSpace = GfxColorSpace::parse(nullptr, &obj1, out, state);
if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) {
goto err1;
}
@@ -4587,7 +4589,7 @@ void Gfx::doImage(Object *ref, Stream *str, GBool inlineImg) {
maskStr, maskWidth, maskHeight, maskInvert, maskInterpolate);
} else {
out->drawImage(state, ref, str, width, height, &colorMap, interpolate,
- haveColorKeyMask ? maskColors : (int *)NULL, inlineImg);
+ haveColorKeyMask ? maskColors : (int *)nullptr, inlineImg);
}
}
}
@@ -4609,7 +4611,7 @@ GBool Gfx::checkTransparencyGroup(Dict *resDict) {
GBool transpGroup = gFalse;
double opac;
- if (resDict == NULL)
+ if (resDict == nullptr)
return gFalse;
pushResources(resDict);
Object extGStates = resDict->lookup("ExtGState");
@@ -4730,11 +4732,11 @@ void Gfx::doForm(Object *str) {
// get resources
Object resObj = dict->lookup("Resources");
- resDict = resObj.isDict() ? resObj.getDict() : (Dict *)NULL;
+ resDict = resObj.isDict() ? resObj.getDict() : (Dict *)nullptr;
// check for a transparency group
transpGroup = isolated = knockout = gFalse;
- blendingColorSpace = NULL;
+ blendingColorSpace = nullptr;
obj1 = dict->lookup("Group");
if (obj1.isDict()) {
Object obj2 = obj1.dictLookup("S");
@@ -4890,7 +4892,7 @@ void Gfx::opBeginImage(Object args[], int numArgs) {
// display the image
if (str) {
- doImage(NULL, str, gTrue);
+ doImage(nullptr, str, gTrue);
// skip 'EI' tag
c1 = str->getUndecodedStream()->getChar();
@@ -4926,7 +4928,7 @@ Stream *Gfx::buildImageStream() {
}
if (obj.isEOF()) {
error(errSyntaxError, getPos(), "End of file in inline image");
- return NULL;
+ return nullptr;
}
// make stream
@@ -4934,7 +4936,7 @@ Stream *Gfx::buildImageStream() {
str = new EmbedStream(parser->getStream(), std::move(dict), gFalse, 0, gTrue);
str = str->addFilters(str->getDict());
} else {
- str = NULL;
+ str = nullptr;
}
return str;
@@ -5023,18 +5025,19 @@ void Gfx::opBeginMarkedContent(Object args[], int numArgs) {
char* name0 = args[0].getName();
if ( strncmp( name0, "OC", 2) == 0 && contentConfig) {
if ( numArgs >= 2 ) {
- if (!args[1].isName()) {
- error(errSyntaxError, getPos(), "Unexpected MC Type: {0:d}", args[1].getType());
- }
- char* name1 = args[1].getName();
- MarkedContentStack *mc = mcStack;
- mc->kind = gfxMCOptionalContent;
- Object markedContent = res->lookupMarkedContentNF( name1 );
- if (!markedContent.isNull()) {
- bool visible = contentConfig->optContentIsVisible(&markedContent);
- mc->ocSuppressed = !(visible);
+ if (args[1].isName()) {
+ char* name1 = args[1].getName();
+ MarkedContentStack *mc = mcStack;
+ mc->kind = gfxMCOptionalContent;
+ Object markedContent = res->lookupMarkedContentNF( name1 );
+ if (!markedContent.isNull()) {
+ bool visible = contentConfig->optContentIsVisible(&markedContent);
+ mc->ocSuppressed = !(visible);
+ } else {
+ error(errSyntaxError, getPos(), "DID NOT find {0:s}", name1);
+ }
} else {
- error(errSyntaxError, getPos(), "DID NOT find {0:s}", name1);
+ error(errSyntaxError, getPos(), "Unexpected MC Type: {0:d}", args[1].getType());
}
} else {
error(errSyntaxError, getPos(), "insufficient arguments for Marked Content");
@@ -5060,7 +5063,7 @@ void Gfx::opBeginMarkedContent(Object args[], int numArgs) {
if (numArgs == 2 && args[1].isDict()) {
out->beginMarkedContent(args[0].getName(), args[1].getDict());
} else if(numArgs == 1) {
- out->beginMarkedContent(args[0].getName(), NULL);
+ out->beginMarkedContent(args[0].getName(), nullptr);
}
}
@@ -5105,7 +5108,7 @@ void Gfx::opMarkPoint(Object args[], int numArgs) {
//------------------------------------------------------------------------
struct GfxStackStateSaver {
- GfxStackStateSaver(Gfx *gfx) : gfx(gfx) {
+ GfxStackStateSaver(Gfx *gfxA) : gfx(gfxA) {
gfx->saveState();
}
@@ -5113,6 +5116,9 @@ struct GfxStackStateSaver {
gfx->restoreState();
}
+ GfxStackStateSaver(const GfxStackStateSaver &) = delete;
+ GfxStackStateSaver& operator=(const GfxStackStateSaver &) = delete;
+
Gfx * const gfx;
};
@@ -5271,7 +5277,7 @@ void Gfx::drawAnnot(Object *str, AnnotBorder *border, AnnotColor *aColor,
// get the resources
Object resObj = dict->lookup("Resources");
- resDict = resObj.isDict() ? resObj.getDict() : (Dict *)NULL;
+ resDict = resObj.isDict() ? resObj.getDict() : (Dict *)nullptr;
// draw it
drawForm(str, resDict, m, bbox);
@@ -5280,7 +5286,7 @@ void Gfx::drawAnnot(Object *str, AnnotBorder *border, AnnotColor *aColor,
// draw the border
if (border && border->getWidth() > 0) {
if (state->getStrokeColorSpace()->getMode() != csDeviceRGB) {
- state->setStrokePattern(NULL);
+ state->setStrokePattern(nullptr);
state->setStrokeColorSpace(new GfxDeviceRGBColorSpace());
out->updateStrokeColorSpace(state);
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Gfx.h b/Build/source/libs/poppler/poppler-src/poppler/Gfx.h
index 293f4551eaa..8e2f66ccfcb 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Gfx.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Gfx.h
@@ -17,7 +17,7 @@
// Copyright (C) 2007 Iñigo Martínez <inigomartinez@gmail.com>
// Copyright (C) 2008 Brad Hards <bradh@kde.org>
// Copyright (C) 2008, 2010 Carlos Garcia Campos <carlosgc@gnome.org>
-// Copyright (C) 2009-2013, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009-2013, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2009, 2010, 2012, 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
// Copyright (C) 2010 David Benjamin <davidben@mit.edu>
// Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com>
@@ -112,6 +112,9 @@ public:
GfxResources(XRef *xref, Dict *resDict, GfxResources *nextA);
~GfxResources();
+ GfxResources(const GfxResources &) = delete;
+ GfxResources& operator=(const GfxResources &other) = delete;
+
GfxFont *lookupFont(char *name);
Object lookupXObject(char *name);
Object lookupXObjectNF(char *name);
@@ -161,6 +164,9 @@ public:
#endif
~Gfx();
+ Gfx(const Gfx &) = delete;
+ Gfx& operator=(const Gfx &other) = delete;
+
XRef *getXRef() { return xref; }
// Interpret a stream or array of streams.
diff --git a/Build/source/libs/poppler/poppler-src/poppler/GfxFont.cc b/Build/source/libs/poppler/poppler-src/poppler/GfxFont.cc
index d06eadffbe2..df0328b5297 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/GfxFont.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/GfxFont.cc
@@ -13,7 +13,7 @@
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
-// Copyright (C) 2005, 2006, 2008-2010, 2012, 2014, 2015, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2006, 2008-2010, 2012, 2014, 2015, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
// Copyright (C) 2007 Julien Rebetez <julienr@svn.gnome.org>
@@ -30,7 +30,7 @@
// Copyright (C) 2012 Yi Yang <ahyangyi@gmail.com>
// Copyright (C) 2012 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
// Copyright (C) 2012, 2017 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2013-2016 Jason Crain <jason@aquaticape.us>
+// Copyright (C) 2013-2016, 2018 Jason Crain <jason@aquaticape.us>
// Copyright (C) 2014 Olly Betts <olly@survex.com>
//
// To see a description of the changes please see the Changelog file that
@@ -186,9 +186,9 @@ static int readFromStream(void *data) {
//------------------------------------------------------------------------
GfxFontLoc::GfxFontLoc() {
- path = NULL;
+ path = nullptr;
fontNum = 0;
- encoding = NULL;
+ encoding = nullptr;
substIdx = -1;
}
@@ -212,7 +212,7 @@ GfxFont *GfxFont::makeFont(XRef *xref, const char *tagA, Ref idA, Dict *fontDict
GfxFont *font;
// get base font name
- nameA = NULL;
+ nameA = nullptr;
Object obj1 = fontDict->lookup("BaseFont");
if (obj1.isName()) {
nameA = new GooString(obj1.getName());
@@ -222,7 +222,7 @@ GfxFont *GfxFont::makeFont(XRef *xref, const char *tagA, Ref idA, Dict *fontDict
typeA = getFontType(xref, fontDict, &embFontIDA);
// create the font object
- font = NULL;
+ font = nullptr;
if (typeA < fontCIDType0) {
font = new Gfx8BitFont(xref, tagA, idA, nameA, typeA, embFontIDA,
fontDict);
@@ -242,8 +242,8 @@ GfxFont::GfxFont(const char *tagA, Ref idA, GooString *nameA,
name = nameA;
type = typeA;
embFontID = embFontIDA;
- embFontName = NULL;
- family = NULL;
+ embFontName = nullptr;
+ family = nullptr;
stretch = StretchNotDefined;
weight = WeightNotDefined;
refCnt = 1;
@@ -480,7 +480,7 @@ void GfxFont::readFontDescriptor(XRef *xref, Dict *fontDict) {
if (obj2.isName()) {
embFontName = new GooString(obj2.getName());
}
- if (embFontName == NULL) {
+ if (embFontName == nullptr) {
// get name with typo
obj2 = obj1.dictLookup("Fontname");
if (obj2.isName()) {
@@ -575,7 +575,7 @@ CharCodeToUnicode *GfxFont::readToUnicodeCMap(Dict *fontDict, int nBits,
Object obj1 = fontDict->lookup("ToUnicode");
if (!obj1.isStream()) {
- return NULL;
+ return nullptr;
}
buf = new GooString();
obj1.getStream()->fillGooString(buf);
@@ -598,7 +598,7 @@ GfxFontLoc *GfxFont::locateFont(XRef *xref, PSOutputDev *ps) {
GBool embed;
if (type == fontType3) {
- return NULL;
+ return nullptr;
}
//----- embedded font
@@ -753,11 +753,11 @@ GfxFontLoc *GfxFont::locateFont(XRef *xref, PSOutputDev *ps) {
}
// failed to find a substitute font
- return NULL;
+ return nullptr;
}
// failed to find a substitute font
- return NULL;
+ return nullptr;
}
GfxFontLoc *GfxFont::locateBase14Font(GooString *base14Name) {
@@ -765,7 +765,7 @@ GfxFontLoc *GfxFont::locateBase14Font(GooString *base14Name) {
path = globalParams->findFontFile(base14Name);
if (!path) {
- return NULL;
+ return nullptr;
}
return getExternalFont(path, gFalse);
}
@@ -807,7 +807,7 @@ GfxFontLoc *GfxFont::getExternalFont(GooString *path, GBool cid) {
(cid ? (fontType < fontCIDType0)
: (fontType >= fontCIDType0))) {
delete path;
- return NULL;
+ return nullptr;
}
fontLoc = new GfxFontLoc();
fontLoc->locType = gfxFontLocExternal;
@@ -826,7 +826,7 @@ char *GfxFont::readEmbFontFile(XRef *xref, int *len) {
error(errSyntaxError, -1, "Embedded font file is not a stream");
embFontID.num = -1;
*len = 0;
- return NULL;
+ return nullptr;
}
str = obj2.getStream();
@@ -849,7 +849,7 @@ static const AlternateNameMap alternateNameMap[] =
{ "ff", "f_f" },
{ "ffi", "f_f_i" },
{ "ffl", "f_f_l" },
- { 0, 0 }
+ { nullptr, nullptr }
};
const char *GfxFont::getAlternateName(const char *name) {
@@ -860,7 +860,7 @@ const char *GfxFont::getAlternateName(const char *name) {
}
map++;
}
- return 0;
+ return nullptr;
}
//------------------------------------------------------------------------
@@ -933,7 +933,7 @@ static GBool testForNumericNames(Dict *fontDict, GBool hex) {
numeric = gFalse;
} else if (obj.isName()) {
// All character names must sucessfully parse.
- if (!parseNumericName(obj.getName(), hex, NULL))
+ if (!parseNumericName(obj.getName(), hex, nullptr))
numeric = gFalse;
} else {
numeric = gFalse;
@@ -968,11 +968,11 @@ Gfx8BitFont::Gfx8BitFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA
int n, i, a, b, m;
refCnt = 1;
- ctu = NULL;
+ ctu = nullptr;
// do font name substitution for various aliases of the Base 14 font
// names
- base14 = NULL;
+ base14 = nullptr;
if (name) {
name2 = name->copy();
i = 0;
@@ -1001,7 +1001,7 @@ Gfx8BitFont::Gfx8BitFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA
}
// is it a built-in font?
- builtinFont = NULL;
+ builtinFont = nullptr;
if (base14) {
for (i = 0; i < nBuiltinFonts; ++i) {
if (!strcmp(base14->base14Name, builtinFonts[i].name)) {
@@ -1092,7 +1092,7 @@ Gfx8BitFont::Gfx8BitFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA
// check FontDict for base encoding
hasEncoding = gFalse;
usesMacRomanEnc = gFalse;
- baseEnc = NULL;
+ baseEnc = nullptr;
baseEncFromFontFile = gFalse;
obj1 = fontDict->lookup("Encoding");
if (obj1.isDict()) {
@@ -1123,9 +1123,9 @@ Gfx8BitFont::Gfx8BitFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA
// check embedded font file for base encoding
// (only for Type 1 fonts - trying to get an encoding out of a
// TrueType font is a losing proposition)
- ffT1 = NULL;
- ffT1C = NULL;
- buf = NULL;
+ ffT1 = nullptr;
+ ffT1C = nullptr;
+ buf = nullptr;
if (type == fontType1 && embFontID.num >= 0) {
if ((buf = readEmbFontFile(xref, &len))) {
if ((ffT1 = FoFiType1::make(buf, len))) {
@@ -1288,7 +1288,7 @@ Gfx8BitFont::Gfx8BitFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA
// block (eg "fi", "ffi") to normal form
for (code = 0; code < 256; ++code) {
if (unicodeIsAlphabeticPresentationForm(toUnicode[code])) {
- Unicode *normalized = unicodeNormalizeNFKC(&toUnicode[code], 1, &len, NULL);
+ Unicode *normalized = unicodeNormalizeNFKC(&toUnicode[code], 1, &len, nullptr);
if (len > 1)
ctu->setMapping((CharCode)code, normalized, len);
gfree(normalized);
@@ -1458,7 +1458,7 @@ static int parseCharName(char *charName, Unicode *uBuf, int uLen,
char *var_part = strchr(charName, '.');
if (var_part == charName) {
return 0; // .notdef or similar
- } else if (var_part != NULL) {
+ } else if (var_part != nullptr) {
// parse names of the form 7.oldstyle, P.swash, s.sc, etc.
char *main_part = gstrndup(charName, var_part - charName);
GBool namesRecurse = gTrue, variantsRecurse = gFalse;
@@ -1696,7 +1696,7 @@ int *Gfx8BitFont::getCodeToGIDMap(FoFiTrueType *ff) {
}
Dict *Gfx8BitFont::getCharProcs() {
- return charProcs.isDict() ? charProcs.getDict() : (Dict *)NULL;
+ return charProcs.isDict() ? charProcs.getDict() : (Dict *)nullptr;
}
Object Gfx8BitFont::getCharProc(int code) {
@@ -1716,7 +1716,7 @@ Object Gfx8BitFont::getCharProcNF(int code) {
}
Dict *Gfx8BitFont::getResources() {
- return resources.isDict() ? resources.getDict() : (Dict *)NULL;
+ return resources.isDict() ? resources.getDict() : (Dict *)nullptr;
}
//------------------------------------------------------------------------
@@ -1748,24 +1748,24 @@ GfxCIDFont::GfxCIDFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA,
CharCode c;
Unicode *uBuf;
int c1, c2;
- int excepsSize, i, j, k, n;
+ int excepsSize, j, k, n;
refCnt = 1;
ascent = 0.95;
descent = -0.35;
fontBBox[0] = fontBBox[1] = fontBBox[2] = fontBBox[3] = 0;
- collection = NULL;
- cMap = NULL;
- ctu = NULL;
+ collection = nullptr;
+ cMap = nullptr;
+ ctu = nullptr;
ctuUsesCharCode = gTrue;
widths.defWidth = 1.0;
widths.defHeight = -1.0;
widths.defVY = 0.880;
- widths.exceps = NULL;
+ widths.exceps = nullptr;
widths.nExceps = 0;
- widths.excepsV = NULL;
+ widths.excepsV = nullptr;
widths.nExcepsV = 0;
- cidToGID = NULL;
+ cidToGID = nullptr;
cidToGIDLen = 0;
// get the descendant font
@@ -1801,7 +1801,7 @@ GfxCIDFont::GfxCIDFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA,
collection = obj2.getString()->copy()->append('-')->append(obj3.getString());
// look for a ToUnicode CMap
- if (!(ctu = readToUnicodeCMap(fontDict, 16, NULL))) {
+ if (!(ctu = readToUnicodeCMap(fontDict, 16, nullptr))) {
ctuUsesCharCode = gFalse;
// use an identity mapping for the "Adobe-Identity" and
@@ -1862,7 +1862,7 @@ GfxCIDFont::GfxCIDFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA,
error(errSyntaxError, -1, "Missing Encoding entry in Type 0 font");
return;
}
- if (!(cMap = CMap::parse(NULL, collection, &obj1))) {
+ if (!(cMap = CMap::parse(nullptr, collection, &obj1))) {
return;
}
if (cMap->getCMapName()) {
@@ -1876,7 +1876,7 @@ GfxCIDFont::GfxCIDFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA,
obj1 = desFontDict->lookup("CIDToGIDMap");
if (obj1.isStream()) {
cidToGIDLen = 0;
- i = 64;
+ int i = 64;
cidToGID = (int *)gmallocn(i, sizeof(int));
obj1.streamReset();
while ((c1 = obj1.streamGetChar()) != EOF &&
@@ -1904,7 +1904,7 @@ GfxCIDFont::GfxCIDFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA,
obj1 = desFontDict->lookup("W");
if (obj1.isArray()) {
excepsSize = 0;
- i = 0;
+ int i = 0;
while (i + 1 < obj1.arrayGetLength()) {
obj2 = obj1.arrayGet(i);
obj3 = obj1.arrayGet(i + 1);
@@ -1973,7 +1973,7 @@ GfxCIDFont::GfxCIDFont(XRef *xref, const char *tagA, Ref idA, GooString *nameA,
obj1 = desFontDict->lookup("W2");
if (obj1.isArray()) {
excepsSize = 0;
- i = 0;
+ int i = 0;
while (i + 1 < obj1.arrayGetLength()) {
obj2 = obj1.arrayGet(i);
obj3 = obj1.arrayGet(i+ 1);
@@ -2055,7 +2055,7 @@ int GfxCIDFont::getNextChar(char *s, int len, CharCode *code,
Unicode **u, int *uLen,
double *dx, double *dy, double *ox, double *oy) {
CID cid;
- CharCode c;
+ CharCode dummy;
double w, h, vx, vy;
int n, a, b, m;
@@ -2066,7 +2066,7 @@ int GfxCIDFont::getNextChar(char *s, int len, CharCode *code,
return 1;
}
- *code = (CharCode)(cid = cMap->getCID(s, len, &c, &n));
+ *code = (CharCode)(cid = cMap->getCID(s, len, &dummy, &n));
if (ctu) {
if (hasToUnicode) {
int i = 0, c = 0;
@@ -2133,7 +2133,7 @@ CharCodeToUnicode *GfxCIDFont::getToUnicode() {
}
GooString *GfxCIDFont::getCollection() {
- return cMap ? cMap->getCollection() : (GooString *)NULL;
+ return cMap ? cMap->getCollection() : (GooString *)nullptr;
}
int GfxCIDFont::mapCodeToGID(FoFiTrueType *ff, int cmapi,
@@ -2159,35 +2159,35 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
"UniCNS-UCS2-V",
"UniCNS-UTF32-H",
"UniCNS-UCS2-H",
- 0
+ nullptr
};
static const char *adobe_gb1_cmaps[] = {
"UniGB-UTF32-V",
"UniGB-UCS2-V",
"UniGB-UTF32-H",
"UniGB-UCS2-H",
- 0
+ nullptr
};
static const char *adobe_japan1_cmaps[] = {
"UniJIS-UTF32-V",
"UniJIS-UCS2-V",
"UniJIS-UTF32-H",
"UniJIS-UCS2-H",
- 0
+ nullptr
};
static const char *adobe_japan2_cmaps[] = {
"UniHojo-UTF32-V",
"UniHojo-UCS2-V",
"UniHojo-UTF32-H",
"UniHojo-UCS2-H",
- 0
+ nullptr
};
static const char *adobe_korea1_cmaps[] = {
"UniKS-UTF32-V",
"UniKS-UCS2-V",
"UniKS-UTF32-H",
"UniKS-UCS2-H",
- 0
+ nullptr
};
static struct CMapListEntry {
const char *collection;
@@ -2226,12 +2226,12 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
"Adobe-Korea1-UCS2",
adobe_korea1_cmaps,
},
- {0, 0, 0, 0}
+ {nullptr, nullptr, nullptr, nullptr, nullptr}
};
- Unicode *humap = 0;
- Unicode *vumap = 0;
- Unicode *tumap = 0;
- int *codeToGID = 0;
+ Unicode *humap = nullptr;
+ Unicode *vumap = nullptr;
+ Unicode *tumap = nullptr;
+ int *codeToGID = nullptr;
unsigned long n;
int i;
unsigned long code;
@@ -2244,8 +2244,8 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
Ref embID;
*mapsizep = 0;
- if (!ctu || !getCollection()) return NULL;
- if (getCollection()->cmp("Adobe-Identity") == 0) return NULL;
+ if (!ctu || !getCollection()) return nullptr;
+ if (getCollection()->cmp("Adobe-Identity") == 0) return nullptr;
if (getEmbeddedFontID(&embID)) {
/* if this font is embedded font,
* CIDToGIDMap should be embedded in PDF file
@@ -2273,10 +2273,10 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
}
}
if (cmap < 0)
- return NULL;
+ return nullptr;
wmode = getWMode();
- for (lp = CMapList;lp->collection != 0;lp++) {
+ for (lp = CMapList;lp->collection != nullptr;lp++) {
if (strcmp(lp->collection,getCollection()->getCString()) == 0) {
break;
}
@@ -2285,11 +2285,11 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
tumap = new Unicode[n];
humap = new Unicode[n*N_UCS_CANDIDATES];
memset(humap,0,sizeof(Unicode)*n*N_UCS_CANDIDATES);
- if (lp->collection != 0) {
+ if (lp->collection != nullptr) {
CharCodeToUnicode *tctu;
GooString tname(lp->toUnicodeMap);
- if ((tctu = CharCodeToUnicode::parseCMapFromFile(&tname,16)) != 0) {
+ if ((tctu = CharCodeToUnicode::parseCMapFromFile(&tname,16)) != nullptr) {
CharCode cid;
for (cid = 0;cid < n ;cid++) {
int len;
@@ -2307,11 +2307,11 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
}
vumap = new Unicode[n];
memset(vumap,0,sizeof(Unicode)*n);
- for (cmapName = lp->CMaps;*cmapName != 0;cmapName++) {
+ for (cmapName = lp->CMaps;*cmapName != nullptr;cmapName++) {
GooString cname(*cmapName);
if ((cMap = globalParams->getCMap(getCollection(),&cname))
- != 0) {
+ != nullptr) {
if (cMap->getWMode()) {
cMap->setReverseMap(vumap,n,1);
} else {
@@ -2324,7 +2324,7 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
} else {
error(errSyntaxError, -1, "Unknown character collection {0:t}\n",
getCollection());
- if ((ctu = getToUnicode()) != 0) {
+ if ((ctu = getToUnicode()) != nullptr) {
CharCode cid;
for (cid = 0;cid < n ;cid++) {
Unicode *ucode;
@@ -2348,24 +2348,24 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
unicode = 0;
gid = 0;
- if (humap != 0) {
+ if (humap != nullptr) {
for (i = 0;i < N_UCS_CANDIDATES
&& gid == 0 && (unicode = humap[code*N_UCS_CANDIDATES+i]) != 0;i++) {
gid = mapCodeToGID(ff,cmap,unicode,gFalse);
}
}
- if (gid == 0 && vumap != 0) {
+ if (gid == 0 && vumap != nullptr) {
unicode = vumap[code];
if (unicode != 0) {
gid = mapCodeToGID(ff,cmap,unicode,gTrue);
- if (gid == 0 && tumap != 0) {
+ if (gid == 0 && tumap != nullptr) {
if ((unicode = tumap[code]) != 0) {
gid = mapCodeToGID(ff,cmap,unicode,gTrue);
}
}
}
}
- if (gid == 0 && tumap != 0) {
+ if (gid == 0 && tumap != nullptr) {
if ((unicode = tumap[code]) != 0) {
gid = mapCodeToGID(ff,cmap,unicode,gFalse);
}
@@ -2374,7 +2374,7 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
/* special handling space characters */
const unsigned long *p;
- if (humap != 0) unicode = humap[code];
+ if (humap != nullptr) unicode = humap[code];
if (unicode != 0) {
/* check if code is space character , so map code to 0x0020 */
for (p = spaces;*p != 0;p++) {
@@ -2389,9 +2389,9 @@ int *GfxCIDFont::getCodeToGIDMap(FoFiTrueType *ff, int *mapsizep) {
codeToGID[code] = gid;
}
*mapsizep = n;
- if (humap != 0) delete[] humap;
- if (tumap != 0) delete[] tumap;
- if (vumap != 0) delete[] vumap;
+ if (humap != nullptr) delete[] humap;
+ if (tumap != nullptr) delete[] tumap;
+ if (vumap != nullptr) delete[] vumap;
return codeToGID;
}
@@ -2443,16 +2443,16 @@ GfxFontDict::GfxFontDict(XRef *xref, Ref *fontDictRef, Dict *fontDict) {
if (obj2.isDict()) {
if (obj1.isRef()) {
r = obj1.getRef();
- } else {
- // no indirect reference for this font, so invent a unique one
- // (legal generation numbers are five digits, so any 6-digit
- // number would be safe)
+ } else if (fontDictRef) {
+ // legal generation numbers are five digits, so we use a
+ // 6-digit number here
+ r.gen = 100000 + fontDictRef->num;
r.num = i;
- if (fontDictRef) {
- r.gen = 100000 + fontDictRef->num;
- } else {
- r.gen = 999999;
- }
+ } else {
+ // no indirect reference for this font, or for the containing
+ // font dict, so hash the font and use that
+ r.gen = 100000;
+ r.num = hashFontObject(&obj2);
}
fonts[i] = GfxFont::makeFont(xref, fontDict->getKey(i),
r, obj2.getDict());
@@ -2462,11 +2462,11 @@ GfxFontDict::GfxFontDict(XRef *xref, Ref *fontDictRef, Dict *fontDict) {
// we can tell the difference between a missing font
// and a font that is just !isOk()
fonts[i]->decRefCnt();
- fonts[i] = NULL;
+ fonts[i] = nullptr;
}
} else {
error(errSyntaxError, -1, "font resource is not a dictionary");
- fonts[i] = NULL;
+ fonts[i] = nullptr;
}
}
}
@@ -2490,5 +2490,112 @@ GfxFont *GfxFontDict::lookup(char *tag) {
return fonts[i];
}
}
- return NULL;
+ return nullptr;
+}
+
+// FNV-1a hash
+class FNVHash {
+public:
+
+ FNVHash() {
+ h = 2166136261U;
+ }
+
+ void hash(char c) {
+ h ^= c & 0xff;
+ h *= 16777619;
+ }
+
+ void hash(char *p, int n) {
+ int i;
+ for (i = 0; i < n; ++i) {
+ hash(p[i]);
+ }
+ }
+
+ int get31() {
+ return (h ^ (h >> 31)) & 0x7fffffff;
+ }
+
+private:
+
+ Guint h;
+};
+
+int GfxFontDict::hashFontObject(Object *obj) {
+ FNVHash h;
+
+ hashFontObject1(obj, &h);
+ return h.get31();
+}
+
+void GfxFontDict::hashFontObject1(Object *obj, FNVHash *h) {
+ Object obj2;
+ GooString *s;
+ char *p;
+ double r;
+ int n, i;
+
+ switch (obj->getType()) {
+ case objBool:
+ h->hash('b');
+ h->hash(obj->getBool() ? 1 : 0);
+ break;
+ case objInt:
+ h->hash('i');
+ n = obj->getInt();
+ h->hash((char *)&n, sizeof(int));
+ break;
+ case objReal:
+ h->hash('r');
+ r = obj->getReal();
+ h->hash((char *)&r, sizeof(double));
+ break;
+ case objString:
+ h->hash('s');
+ s = obj->getString();
+ h->hash(s->getCString(), s->getLength());
+ break;
+ case objName:
+ h->hash('n');
+ p = obj->getName();
+ h->hash(p, (int)strlen(p));
+ break;
+ case objNull:
+ h->hash('z');
+ break;
+ case objArray:
+ h->hash('a');
+ n = obj->arrayGetLength();
+ h->hash((char *)&n, sizeof(int));
+ for (i = 0; i < n; ++i) {
+ obj2 = obj->arrayGetNF(i);
+ hashFontObject1(&obj2, h);
+ }
+ break;
+ case objDict:
+ h->hash('d');
+ n = obj->dictGetLength();
+ h->hash((char *)&n, sizeof(int));
+ for (i = 0; i < n; ++i) {
+ p = obj->dictGetKey(i);
+ h->hash(p, (int)strlen(p));
+ obj2 = obj->dictGetValNF(i);
+ hashFontObject1(&obj2, h);
+ }
+ break;
+ case objStream:
+ // this should never happen - streams must be indirect refs
+ break;
+ case objRef:
+ h->hash('f');
+ n = obj->getRefNum();
+ h->hash((char *)&n, sizeof(int));
+ n = obj->getRefGen();
+ h->hash((char *)&n, sizeof(int));
+ break;
+ default:
+ h->hash('u');
+ break;
+ }
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/GfxFont.h b/Build/source/libs/poppler/poppler-src/poppler/GfxFont.h
index 5985912a8c2..c2d881e7b59 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/GfxFont.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/GfxFont.h
@@ -13,7 +13,7 @@
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
-// Copyright (C) 2005, 2008, 2015, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2008, 2015, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
// Copyright (C) 2006 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2007 Julien Rebetez <julienr@svn.gnome.org>
@@ -21,7 +21,7 @@
// Copyright (C) 2007 Koji Otani <sho@bbr.jp>
// Copyright (C) 2011 Axel Strübing <axel.struebing@freenet.de>
// Copyright (C) 2011, 2012, 2014 Adrian Johnson <ajohnson@redneon.com>
-// Copyright (C) 2015 Jason Crain <jason@aquaticape.us>
+// Copyright (C) 2015, 2018 Jason Crain <jason@aquaticape.us>
// Copyright (C) 2015 Thomas Freitag <Thomas.Freitag@alfa.de>
//
// To see a description of the changes please see the Changelog file that
@@ -48,6 +48,7 @@ class FoFiTrueType;
class PSOutputDev;
struct GfxFontCIDWidths;
struct Base14FontMapEntry;
+class FNVHash;
//------------------------------------------------------------------------
// GfxFontType
@@ -114,6 +115,9 @@ public:
GfxFontLoc();
~GfxFontLoc();
+ GfxFontLoc(const GfxFontLoc &) = delete;
+ GfxFontLoc& operator=(const GfxFontLoc &) = delete;
+
GfxFontLocType locType;
GfxFontType fontType;
Ref embFontID; // embedded stream obj ID
@@ -176,6 +180,9 @@ public:
GfxFont(const char *tagA, Ref idA, GooString *nameA,
GfxFontType typeA, Ref embFontIDA);
+ GfxFont(const GfxFont &) = delete;
+ GfxFont& operator=(const GfxFont &other) = delete;
+
GBool isOk() { return ok; }
void incRefCnt();
@@ -440,6 +447,9 @@ public:
// Destructor.
~GfxFontDict();
+ GfxFontDict(const GfxFontDict &) = delete;
+ GfxFontDict& operator=(const GfxFontDict &) = delete;
+
// Get the specified font.
GfxFont *lookup(char *tag);
@@ -449,6 +459,9 @@ public:
private:
+ int hashFontObject(Object *obj);
+ void hashFontObject1(Object *obj, FNVHash *h);
+
GfxFont **fonts; // list of fonts
int numFonts; // number of fonts
};
diff --git a/Build/source/libs/poppler/poppler-src/poppler/GfxState.cc b/Build/source/libs/poppler/poppler-src/poppler/GfxState.cc
index 3ad10381ed8..4cf8d8e32e0 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/GfxState.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/GfxState.cc
@@ -16,7 +16,7 @@
// Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
// Copyright (C) 2006, 2007 Jeff Muizelaar <jeff@infidigm.net>
// Copyright (C) 2006, 2010 Carlos Garcia Campos <carlosgc@gnome.org>
-// Copyright (C) 2006-2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2009, 2012 Koji Otani <sho@bbr.jp>
// Copyright (C) 2009, 2011-2016 Thomas Freitag <Thomas.Freitag@alfa.de>
// Copyright (C) 2009 Christian Persch <chpe@gnome.org>
@@ -210,11 +210,11 @@ unsigned int GfxColorTransform::unref() {
return --refCount;
}
-static cmsHPROFILE RGBProfile = NULL;
-static GooString *displayProfileName = NULL; // display profile file Name
-static cmsHPROFILE displayProfile = NULL; // display profile
+static cmsHPROFILE RGBProfile = nullptr;
+static GooString *displayProfileName = nullptr; // display profile file Name
+static cmsHPROFILE displayProfile = nullptr; // display profile
static unsigned int displayPixelType = 0;
-static GfxColorTransform *XYZ2DisplayTransform = NULL;
+static GfxColorTransform *XYZ2DisplayTransform = nullptr;
// convert color space signature to cmsColor type
static unsigned int getCMSColorSpaceType(cmsColorSpaceSignature cs);
@@ -223,7 +223,7 @@ static cmsHPROFILE loadColorProfile(const char *fileName);
void GfxColorSpace::setDisplayProfile(void *displayProfileA) {
displayProfile = displayProfileA;
- if (displayProfile != NULL) {
+ if (displayProfile != nullptr) {
cmsHTRANSFORM transform;
unsigned int nChannels;
@@ -235,7 +235,7 @@ void GfxColorSpace::setDisplayProfile(void *displayProfileA) {
displayProfile,
COLORSPACE_SH(displayPixelType) |
CHANNELS_SH(nChannels) | BYTES_SH(1),
- INTENT_RELATIVE_COLORIMETRIC,LCMS_FLAGS)) == 0) {
+ INTENT_RELATIVE_COLORIMETRIC,LCMS_FLAGS)) == nullptr) {
error(errSyntaxWarning, -1, "Can't create Lab transform");
} else {
XYZ2DisplayTransform = new GfxColorTransform(transform, INTENT_RELATIVE_COLORIMETRIC, PT_XYZ, displayPixelType);
@@ -264,7 +264,7 @@ cmsHPROFILE GfxColorSpace::getDisplayProfile() {
GfxColorSpace::GfxColorSpace() {
overprintMask = 0x0f;
- mapping = NULL;
+ mapping = nullptr;
}
GfxColorSpace::~GfxColorSpace() {
@@ -276,80 +276,80 @@ GfxColorSpace *GfxColorSpace::parse(GfxResources *res, Object *csObj, OutputDev
if (recursion > colorSpaceRecursionLimit) {
error(errSyntaxError, -1, "Loop detected in color space objects");
- return NULL;
+ return nullptr;
}
- cs = NULL;
+ cs = nullptr;
if (csObj->isName()) {
if (csObj->isName("DeviceGray") || csObj->isName("G")) {
- if (res != NULL) {
+ if (res != nullptr) {
Object objCS = res->lookupColorSpace("DefaultGray");
if (objCS.isNull()) {
cs = new GfxDeviceGrayColorSpace();
} else {
- cs = GfxColorSpace::parse(NULL, &objCS, out, state);
+ cs = GfxColorSpace::parse(nullptr, &objCS, out, state);
}
} else {
cs = new GfxDeviceGrayColorSpace();
}
} else if (csObj->isName("DeviceRGB") || csObj->isName("RGB")) {
- if (res != NULL) {
+ if (res != nullptr) {
Object objCS = res->lookupColorSpace("DefaultRGB");
if (objCS.isNull()) {
cs = new GfxDeviceRGBColorSpace();
} else {
- cs = GfxColorSpace::parse(NULL, &objCS, out, state);
+ cs = GfxColorSpace::parse(nullptr, &objCS, out, state);
}
} else {
cs = new GfxDeviceRGBColorSpace();
}
} else if (csObj->isName("DeviceCMYK") || csObj->isName("CMYK")) {
- if (res != NULL) {
+ if (res != nullptr) {
Object objCS = res->lookupColorSpace("DefaultCMYK");
if (objCS.isNull()) {
cs = new GfxDeviceCMYKColorSpace();
} else {
- cs = GfxColorSpace::parse(NULL, &objCS, out, state);
+ cs = GfxColorSpace::parse(nullptr, &objCS, out, state);
}
} else {
cs = new GfxDeviceCMYKColorSpace();
}
} else if (csObj->isName("Pattern")) {
- cs = new GfxPatternColorSpace(NULL);
+ cs = new GfxPatternColorSpace(nullptr);
} else {
error(errSyntaxWarning, -1, "Bad color space '{0:s}'", csObj->getName());
}
} else if (csObj->isArray() && csObj->arrayGetLength() > 0) {
obj1 = csObj->arrayGet(0);
if (obj1.isName("DeviceGray") || obj1.isName("G")) {
- if (res != NULL) {
+ if (res != nullptr) {
Object objCS = res->lookupColorSpace("DefaultGray");
if (objCS.isNull()) {
cs = new GfxDeviceGrayColorSpace();
} else {
- cs = GfxColorSpace::parse(NULL, &objCS, out, state);
+ cs = GfxColorSpace::parse(nullptr, &objCS, out, state);
}
} else {
cs = new GfxDeviceGrayColorSpace();
}
} else if (obj1.isName("DeviceRGB") || obj1.isName("RGB")) {
- if (res != NULL) {
+ if (res != nullptr) {
Object objCS = res->lookupColorSpace("DefaultRGB");
if (objCS.isNull()) {
cs = new GfxDeviceRGBColorSpace();
} else {
- cs = GfxColorSpace::parse(NULL, &objCS, out, state);
+ cs = GfxColorSpace::parse(nullptr, &objCS, out, state);
}
} else {
cs = new GfxDeviceRGBColorSpace();
}
} else if (obj1.isName("DeviceCMYK") || obj1.isName("CMYK")) {
- if (res != NULL) {
+ if (res != nullptr) {
Object objCS = res->lookupColorSpace("DefaultCMYK");
if (objCS.isNull()) {
cs = new GfxDeviceCMYKColorSpace();
} else {
- cs = GfxColorSpace::parse(NULL, &objCS, out, state);
+ cs = GfxColorSpace::parse(nullptr, &objCS, out, state);
}
} else {
cs = new GfxDeviceCMYKColorSpace();
@@ -376,34 +376,34 @@ GfxColorSpace *GfxColorSpace::parse(GfxResources *res, Object *csObj, OutputDev
} else if (csObj->isDict()) {
obj1 = csObj->dictLookup("ColorSpace");
if (obj1.isName("DeviceGray")) {
- if (res != NULL) {
+ if (res != nullptr) {
Object objCS = res->lookupColorSpace("DefaultGray");
if (objCS.isNull()) {
cs = new GfxDeviceGrayColorSpace();
} else {
- cs = GfxColorSpace::parse(NULL, &objCS, out, state);
+ cs = GfxColorSpace::parse(nullptr, &objCS, out, state);
}
} else {
cs = new GfxDeviceGrayColorSpace();
}
} else if (obj1.isName("DeviceRGB")) {
- if (res != NULL) {
+ if (res != nullptr) {
Object objCS = res->lookupColorSpace("DefaultRGB");
if (objCS.isNull()) {
cs = new GfxDeviceRGBColorSpace();
} else {
- cs = GfxColorSpace::parse(NULL, &objCS, out, state);
+ cs = GfxColorSpace::parse(nullptr, &objCS, out, state);
}
} else {
cs = new GfxDeviceRGBColorSpace();
}
} else if (obj1.isName("DeviceCMYK")) {
- if (res != NULL) {
+ if (res != nullptr) {
Object objCS = res->lookupColorSpace("DefaultCMYK");
if (objCS.isNull()) {
cs = new GfxDeviceCMYKColorSpace();
} else {
- cs = GfxColorSpace::parse(NULL, &objCS, out, state);
+ cs = GfxColorSpace::parse(nullptr, &objCS, out, state);
}
} else {
cs = new GfxDeviceCMYKColorSpace();
@@ -442,13 +442,13 @@ const char *GfxColorSpace::getColorSpaceModeName(int idx) {
#ifdef USE_CMS
cmsHPROFILE loadColorProfile(const char *fileName)
{
- cmsHPROFILE hp = NULL;
+ cmsHPROFILE hp = nullptr;
FILE *fp;
if (fileName[0] == '/') {
// full path
// check if open the file
- if ((fp = fopen(fileName,"r")) != NULL) {
+ if ((fp = fopen(fileName,"r")) != nullptr) {
fclose(fp);
hp = cmsOpenProfileFromFile(fileName,"r");
}
@@ -458,7 +458,7 @@ cmsHPROFILE loadColorProfile(const char *fileName)
GooString *path = new GooString(GLOBAL_COLOR_PROFILE_DIR);
path->append(fileName);
// check if open the file
- if ((fp = fopen(path->getCString(),"r")) != NULL) {
+ if ((fp = fopen(path->getCString(),"r")) != nullptr) {
fclose(fp);
hp = cmsOpenProfileFromFile(path->getCString(),"r");
}
@@ -484,9 +484,9 @@ int GfxColorSpace::setupColorProfiles()
// set error handlor
cmsSetLogErrorHandler(CMSError);
- if (displayProfile == NULL) {
+ if (displayProfile == nullptr) {
// load display profile if it was not already loaded.
- if (displayProfileName == NULL) {
+ if (displayProfileName == nullptr) {
displayProfile = loadColorProfile("display.icc");
} else if (displayProfileName->getLength() > 0) {
displayProfile = loadColorProfile(displayProfileName->getCString());
@@ -494,12 +494,12 @@ int GfxColorSpace::setupColorProfiles()
}
// load RGB profile
RGBProfile = loadColorProfile("RGB.icc");
- if (RGBProfile == NULL) {
+ if (RGBProfile == nullptr) {
/* use built in sRGB profile */
RGBProfile = cmsCreate_sRGBProfile();
}
// create transforms
- if (displayProfile != NULL) {
+ if (displayProfile != nullptr) {
displayPixelType = getCMSColorSpaceType(cmsGetColorSpace(displayProfile));
nChannels = getCMSNChannels(cmsGetColorSpace(displayProfile));
// create transform from XYZ
@@ -508,7 +508,7 @@ int GfxColorSpace::setupColorProfiles()
displayProfile,
COLORSPACE_SH(displayPixelType) |
CHANNELS_SH(nChannels) | BYTES_SH(1),
- INTENT_RELATIVE_COLORIMETRIC,LCMS_FLAGS)) == 0) {
+ INTENT_RELATIVE_COLORIMETRIC,LCMS_FLAGS)) == nullptr) {
error(errSyntaxWarning, -1, "Can't create Lab transform");
} else {
XYZ2DisplayTransform = new GfxColorTransform(transform, INTENT_RELATIVE_COLORIMETRIC, PT_XYZ, displayPixelType);
@@ -734,7 +734,7 @@ GfxCalGrayColorSpace::GfxCalGrayColorSpace() {
GfxCalGrayColorSpace::~GfxCalGrayColorSpace() {
#ifdef USE_CMS
- if (transform != NULL) {
+ if (transform != nullptr) {
if (transform->unref() == 0) delete transform;
}
#endif
@@ -756,7 +756,7 @@ GfxColorSpace *GfxCalGrayColorSpace::copy() {
cs->kb = kb;
#ifdef USE_CMS
cs->transform = transform;
- if (transform != NULL) transform->ref();
+ if (transform != nullptr) transform->ref();
#endif
return cs;
}
@@ -776,7 +776,7 @@ GfxColorSpace *GfxCalGrayColorSpace::parse(Array *arr, GfxState *state) {
obj1 = arr->get(1);
if (!obj1.isDict()) {
error(errSyntaxWarning, -1, "Bad CalGray color space");
- return NULL;
+ return nullptr;
}
cs = new GfxCalGrayColorSpace();
obj2 = obj1.dictLookup("WhitePoint");
@@ -818,8 +818,8 @@ GfxColorSpace *GfxCalGrayColorSpace::parse(Array *arr, GfxState *state) {
xyzrgb[2][1] * cs->whiteY +
xyzrgb[2][2] * cs->whiteZ);
#ifdef USE_CMS
- cs->transform = (state != NULL) ? state->getXYZ2DisplayTransform() : XYZ2DisplayTransform;
- if (cs->transform != NULL) cs->transform->ref();
+ cs->transform = (state != nullptr) ? state->getXYZ2DisplayTransform() : XYZ2DisplayTransform;
+ if (cs->transform != nullptr) cs->transform->ref();
#endif
return cs;
}
@@ -839,7 +839,7 @@ void GfxCalGrayColorSpace::getGray(GfxColor *color, GfxGray *gray) {
GfxRGB rgb;
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_GRAY) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_GRAY) {
Guchar out[gfxColorMaxComps];
double in[gfxColorMaxComps];
double X, Y, Z;
@@ -865,7 +865,7 @@ void GfxCalGrayColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
getXYZ(color,&X,&Y,&Z);
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_RGB) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_RGB) {
Guchar out[gfxColorMaxComps];
double in[gfxColorMaxComps];
@@ -896,7 +896,7 @@ void GfxCalGrayColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) {
GfxColorComp c, m, y, k;
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_CMYK) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_CMYK) {
double in[gfxColorMaxComps];
Guchar out[gfxColorMaxComps];
double X, Y, Z;
@@ -1105,7 +1105,7 @@ GfxCalRGBColorSpace::GfxCalRGBColorSpace() {
GfxCalRGBColorSpace::~GfxCalRGBColorSpace() {
#ifdef USE_CMS
- if (transform != NULL) {
+ if (transform != nullptr) {
if (transform->unref() == 0) delete transform;
}
#endif
@@ -1133,7 +1133,7 @@ GfxColorSpace *GfxCalRGBColorSpace::copy() {
}
#ifdef USE_CMS
cs->transform = transform;
- if (transform != NULL) transform->ref();
+ if (transform != nullptr) transform->ref();
#endif
return cs;
}
@@ -1146,7 +1146,7 @@ GfxColorSpace *GfxCalRGBColorSpace::parse(Array *arr, GfxState *state) {
obj1 = arr->get(1);
if (!obj1.isDict()) {
error(errSyntaxWarning, -1, "Bad CalRGB color space");
- return NULL;
+ return nullptr;
}
cs = new GfxCalRGBColorSpace();
obj2 = obj1.dictLookup("WhitePoint");
@@ -1205,8 +1205,8 @@ GfxColorSpace *GfxCalRGBColorSpace::parse(Array *arr, GfxState *state) {
xyzrgb[2][2] * cs->whiteZ);
#ifdef USE_CMS
- cs->transform = (state != NULL) ? state->getXYZ2DisplayTransform() : XYZ2DisplayTransform;
- if (cs->transform != NULL) cs->transform->ref();
+ cs->transform = (state != nullptr) ? state->getXYZ2DisplayTransform() : XYZ2DisplayTransform;
+ if (cs->transform != nullptr) cs->transform->ref();
#endif
return cs;
}
@@ -1228,7 +1228,7 @@ void GfxCalRGBColorSpace::getGray(GfxColor *color, GfxGray *gray) {
GfxRGB rgb;
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_GRAY) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_GRAY) {
Guchar out[gfxColorMaxComps];
double in[gfxColorMaxComps];
double X, Y, Z;
@@ -1254,7 +1254,7 @@ void GfxCalRGBColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
getXYZ(color,&X,&Y,&Z);
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_RGB) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_RGB) {
Guchar out[gfxColorMaxComps];
double in[gfxColorMaxComps];
@@ -1282,7 +1282,7 @@ void GfxCalRGBColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) {
GfxColorComp c, m, y, k;
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_CMYK) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_CMYK) {
double in[gfxColorMaxComps];
Guchar out[gfxColorMaxComps];
double X, Y, Z;
@@ -1479,7 +1479,7 @@ GfxLabColorSpace::GfxLabColorSpace() {
GfxLabColorSpace::~GfxLabColorSpace() {
#ifdef USE_CMS
- if (transform != NULL) {
+ if (transform != nullptr) {
if (transform->unref() == 0) delete transform;
}
#endif
@@ -1504,7 +1504,7 @@ GfxColorSpace *GfxLabColorSpace::copy() {
cs->kb = kb;
#ifdef USE_CMS
cs->transform = transform;
- if (transform != NULL) transform->ref();
+ if (transform != nullptr) transform->ref();
#endif
return cs;
}
@@ -1516,7 +1516,7 @@ GfxColorSpace *GfxLabColorSpace::parse(Array *arr, GfxState *state) {
obj1 = arr->get(1);
if (!obj1.isDict()) {
error(errSyntaxWarning, -1, "Bad Lab color space");
- return NULL;
+ return nullptr;
}
cs = new GfxLabColorSpace();
bool ok = true;
@@ -1570,8 +1570,8 @@ GfxColorSpace *GfxLabColorSpace::parse(Array *arr, GfxState *state) {
xyzrgb[2][2] * cs->whiteZ);
#ifdef USE_CMS
- cs->transform = (state != NULL) ? state->getXYZ2DisplayTransform() : XYZ2DisplayTransform;
- if (cs->transform != NULL) cs->transform->ref();
+ cs->transform = (state != nullptr) ? state->getXYZ2DisplayTransform() : XYZ2DisplayTransform;
+ if (cs->transform != nullptr) cs->transform->ref();
#endif
return cs;
}
@@ -1580,7 +1580,7 @@ void GfxLabColorSpace::getGray(GfxColor *color, GfxGray *gray) {
GfxRGB rgb;
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_GRAY) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_GRAY) {
Guchar out[gfxColorMaxComps];
double in[gfxColorMaxComps];
@@ -1628,11 +1628,10 @@ void GfxLabColorSpace::getXYZ(GfxColor *color,
void GfxLabColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
double X, Y, Z;
- double r, g, b;
getXYZ(color, &X, &Y, &Z);
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_RGB) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_RGB) {
Guchar out[gfxColorMaxComps];
double in[gfxColorMaxComps];
@@ -1644,7 +1643,7 @@ void GfxLabColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
rgb->g = byteToCol(out[1]);
rgb->b = byteToCol(out[2]);
return;
- } else if (transform != NULL && transform->getTransformPixelType() == PT_CMYK) {
+ } else if (transform != nullptr && transform->getTransformPixelType() == PT_CMYK) {
Guchar out[gfxColorMaxComps];
double in[gfxColorMaxComps];
double c, m, y, k, c1, m1, y1, k1, r, g, b;
@@ -1672,9 +1671,9 @@ void GfxLabColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
Y *= whiteY;
Z *= whiteZ;
// convert XYZ to RGB, including gamut mapping and gamma correction
- r = xyzrgb[0][0] * X + xyzrgb[0][1] * Y + xyzrgb[0][2] * Z;
- g = xyzrgb[1][0] * X + xyzrgb[1][1] * Y + xyzrgb[1][2] * Z;
- b = xyzrgb[2][0] * X + xyzrgb[2][1] * Y + xyzrgb[2][2] * Z;
+ const double r = xyzrgb[0][0] * X + xyzrgb[0][1] * Y + xyzrgb[0][2] * Z;
+ const double g = xyzrgb[1][0] * X + xyzrgb[1][1] * Y + xyzrgb[1][2] * Z;
+ const double b = xyzrgb[2][0] * X + xyzrgb[2][1] * Y + xyzrgb[2][2] * Z;
rgb->r = dblToCol(sqrt(clip01(r * kr)));
rgb->g = dblToCol(sqrt(clip01(g * kg)));
rgb->b = dblToCol(sqrt(clip01(b * kb)));
@@ -1685,7 +1684,7 @@ void GfxLabColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) {
GfxColorComp c, m, y, k;
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_CMYK) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_CMYK) {
double in[gfxColorMaxComps];
Guchar out[gfxColorMaxComps];
@@ -1798,18 +1797,18 @@ GfxICCBasedColorSpace::GfxICCBasedColorSpace(int nCompsA, GfxColorSpace *altA,
rangeMin[0] = rangeMin[1] = rangeMin[2] = rangeMin[3] = 0;
rangeMax[0] = rangeMax[1] = rangeMax[2] = rangeMax[3] = 1;
#ifdef USE_CMS
- transform = NULL;
- lineTransform = NULL;
+ transform = nullptr;
+ lineTransform = nullptr;
#endif
}
GfxICCBasedColorSpace::~GfxICCBasedColorSpace() {
delete alt;
#ifdef USE_CMS
- if (transform != NULL) {
+ if (transform != nullptr) {
if (transform->unref() == 0) delete transform;
}
- if (lineTransform != NULL) {
+ if (lineTransform != nullptr) {
if (lineTransform->unref() == 0) delete lineTransform;
}
#endif
@@ -1826,9 +1825,9 @@ GfxColorSpace *GfxICCBasedColorSpace::copy() {
}
#ifdef USE_CMS
cs->transform = transform;
- if (transform != NULL) transform->ref();
+ if (transform != nullptr) transform->ref();
cs->lineTransform = lineTransform;
- if (lineTransform != NULL) lineTransform->ref();
+ if (lineTransform != nullptr) lineTransform->ref();
#endif
return cs;
}
@@ -1844,7 +1843,7 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
if (arr->getLength() < 2) {
error(errSyntaxError, -1, "Bad ICCBased color space");
- return NULL;
+ return nullptr;
}
obj1 = arr->getNF(1);
if (obj1.isRef()) {
@@ -1858,14 +1857,14 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
if (out && iccProfileStreamA.num > 0) {
GfxICCBasedColorSpaceKey k(iccProfileStreamA.num, iccProfileStreamA.gen);
GfxICCBasedColorSpaceItem *item = static_cast<GfxICCBasedColorSpaceItem *>(out->getIccColorSpaceCache()->lookup(k));
- if (item != NULL)
+ if (item != nullptr)
{
cs = static_cast<GfxICCBasedColorSpace*>(item->cs->copy());
int transformIntent = cs->getIntent();
int cmsIntent = INTENT_RELATIVE_COLORIMETRIC;
- if (state != NULL) {
+ if (state != nullptr) {
const char *intent = state->getRenderingIntent();
- if (intent != NULL) {
+ if (intent != nullptr) {
if (strcmp(intent, "AbsoluteColorimetric") == 0) {
cmsIntent = INTENT_ABSOLUTE_COLORIMETRIC;
} else if (strcmp(intent, "Saturation") == 0) {
@@ -1885,7 +1884,7 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
obj1 = arr->get(1);
if (!obj1.isStream()) {
error(errSyntaxWarning, -1, "Bad ICCBased color space (stream)");
- return NULL;
+ return nullptr;
}
dict = obj1.streamGetDict();
obj2 = dict->lookup("N");
@@ -1902,7 +1901,7 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
}
obj2 = dict->lookup("Alternate");
if (obj2.isNull() ||
- !(altA = GfxColorSpace::parse(NULL, &obj2, out, state, recursion + 1))) {
+ !(altA = GfxColorSpace::parse(nullptr, &obj2, out, state, recursion + 1))) {
switch (nCompsA) {
case 1:
altA = new GfxDeviceGrayColorSpace();
@@ -1915,13 +1914,13 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
break;
default:
error(errSyntaxWarning, -1, "Bad ICCBased color space - invalid N");
- return NULL;
+ return nullptr;
}
}
if (altA->getNComps() != nCompsA) {
error(errSyntaxWarning, -1, "Bad ICCBased color space - N doesn't match alt color space");
delete altA;
- return NULL;
+ return nullptr;
}
cs = new GfxICCBasedColorSpace(nCompsA, altA, &iccProfileStreamA);
obj2 = dict->lookup("Range");
@@ -1946,12 +1945,12 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
profBuf = iccStream->toUnsignedChars(&length, 65536, 65536);
cmsHPROFILE hp = cmsOpenProfileFromMem(profBuf,length);
gfree(profBuf);
- if (hp == 0) {
+ if (hp == nullptr) {
error(errSyntaxWarning, -1, "read ICCBased color space profile error");
} else {
- cmsHPROFILE dhp = (state != NULL && state->getDisplayProfile() != NULL) ? state->getDisplayProfile() : displayProfile;
- if (dhp == NULL) {
- if (unlikely(RGBProfile == NULL)) {
+ cmsHPROFILE dhp = (state != nullptr && state->getDisplayProfile() != nullptr) ? state->getDisplayProfile() : displayProfile;
+ if (dhp == nullptr) {
+ if (unlikely(RGBProfile == nullptr)) {
GfxColorSpace::setupColorProfiles();
}
dhp = RGBProfile;
@@ -1962,9 +1961,9 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
cmsHTRANSFORM transform;
int cmsIntent = INTENT_RELATIVE_COLORIMETRIC;
- if (state != NULL) {
+ if (state != nullptr) {
const char *intent = state->getRenderingIntent();
- if (intent != NULL) {
+ if (intent != nullptr) {
if (strcmp(intent, "AbsoluteColorimetric") == 0) {
cmsIntent = INTENT_ABSOLUTE_COLORIMETRIC;
} else if (strcmp(intent, "Saturation") == 0) {
@@ -1979,9 +1978,9 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
dhp,
COLORSPACE_SH(dcst) |
CHANNELS_SH(dNChannels) | BYTES_SH(1),
- cmsIntent, LCMS_FLAGS)) == 0) {
+ cmsIntent, LCMS_FLAGS)) == nullptr) {
error(errSyntaxWarning, -1, "Can't create transform");
- cs->transform = NULL;
+ cs->transform = nullptr;
} else {
cs->transform = new GfxColorTransform(transform, cmsIntent, cst, dcst);
}
@@ -1989,9 +1988,9 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
// create line transform only when the display is RGB type color space
if ((transform = cmsCreateTransform(hp,
CHANNELS_SH(nCompsA) | BYTES_SH(1),dhp,
- (dcst == PT_RGB) ? TYPE_RGB_8 : TYPE_CMYK_8, cmsIntent, LCMS_FLAGS)) == 0) {
+ (dcst == PT_RGB) ? TYPE_RGB_8 : TYPE_CMYK_8, cmsIntent, LCMS_FLAGS)) == nullptr) {
error(errSyntaxWarning, -1, "Can't create transform");
- cs->lineTransform = NULL;
+ cs->lineTransform = nullptr;
} else {
cs->lineTransform = new GfxColorTransform(transform, cmsIntent, cst, dcst);
}
@@ -2010,7 +2009,7 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr, OutputDev *out, GfxState
void GfxICCBasedColorSpace::getGray(GfxColor *color, GfxGray *gray) {
#ifdef USE_CMS
- if (transform != 0 && transform->getTransformPixelType() == PT_GRAY) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_GRAY) {
Guchar in[gfxColorMaxComps];
Guchar out[gfxColorMaxComps];
@@ -2059,7 +2058,7 @@ void GfxICCBasedColorSpace::getGray(GfxColor *color, GfxGray *gray) {
void GfxICCBasedColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
#ifdef USE_CMS
- if (transform != 0 && transform->getTransformPixelType() == PT_RGB) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_RGB) {
Guchar in[gfxColorMaxComps];
Guchar out[gfxColorMaxComps];
@@ -2098,7 +2097,7 @@ void GfxICCBasedColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
unsigned int value = (out[0] << 16) + (out[1] << 8) + out[2];
cmsCache.insert(std::pair<unsigned int, unsigned int>(key, value));
}
- } else if (transform != NULL && transform->getTransformPixelType() == PT_CMYK) {
+ } else if (transform != nullptr && transform->getTransformPixelType() == PT_CMYK) {
Guchar in[gfxColorMaxComps];
Guchar out[gfxColorMaxComps];
double c, m, y, k, c1, m1, y1, k1, r, g, b;
@@ -2158,7 +2157,7 @@ void GfxICCBasedColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) {
void GfxICCBasedColorSpace::getRGBLine(Guchar *in, unsigned int *out,
int length) {
#ifdef USE_CMS
- if (lineTransform != 0 && lineTransform->getTransformPixelType() == PT_RGB) {
+ if (lineTransform != nullptr && lineTransform->getTransformPixelType() == PT_RGB) {
Guchar* tmp = (Guchar *)gmallocn(3 * length, sizeof(Guchar));
lineTransform->doTransform(in, tmp, length);
for (int i = 0; i < length; ++i) {
@@ -2176,7 +2175,7 @@ void GfxICCBasedColorSpace::getRGBLine(Guchar *in, unsigned int *out,
void GfxICCBasedColorSpace::getRGBLine(Guchar *in, Guchar *out, int length) {
#ifdef USE_CMS
- if (lineTransform != 0 && lineTransform->getTransformPixelType() == PT_RGB) {
+ if (lineTransform != nullptr && lineTransform->getTransformPixelType() == PT_RGB) {
Guchar* tmp = (Guchar *)gmallocn(3 * length, sizeof(Guchar));
lineTransform->doTransform(in, tmp, length);
Guchar *current = tmp;
@@ -2186,7 +2185,7 @@ void GfxICCBasedColorSpace::getRGBLine(Guchar *in, Guchar *out, int length) {
*out++ = *current++;
}
gfree(tmp);
- } else if (lineTransform != NULL && lineTransform->getTransformPixelType() == PT_CMYK) {
+ } else if (lineTransform != nullptr && lineTransform->getTransformPixelType() == PT_CMYK) {
Guchar* tmp = (Guchar *)gmallocn(4 * length, sizeof(Guchar));
lineTransform->doTransform(in, tmp, length);
Guchar *current = tmp;
@@ -2216,7 +2215,7 @@ void GfxICCBasedColorSpace::getRGBLine(Guchar *in, Guchar *out, int length) {
void GfxICCBasedColorSpace::getRGBXLine(Guchar *in, Guchar *out, int length) {
#ifdef USE_CMS
- if (lineTransform != 0 && lineTransform->getTransformPixelType() == PT_RGB) {
+ if (lineTransform != nullptr && lineTransform->getTransformPixelType() == PT_RGB) {
Guchar* tmp = (Guchar *)gmallocn(3 * length, sizeof(Guchar));
lineTransform->doTransform(in, tmp, length);
Guchar *current = tmp;
@@ -2237,9 +2236,9 @@ void GfxICCBasedColorSpace::getRGBXLine(Guchar *in, Guchar *out, int length) {
void GfxICCBasedColorSpace::getCMYKLine(Guchar *in, Guchar *out, int length) {
#ifdef USE_CMS
- if (lineTransform != NULL && lineTransform->getTransformPixelType() == PT_CMYK) {
+ if (lineTransform != nullptr && lineTransform->getTransformPixelType() == PT_CMYK) {
transform->doTransform(in,out,length);
- } else if (lineTransform != NULL && nComps != 4) {
+ } else if (lineTransform != nullptr && nComps != 4) {
GfxColorComp c, m, y, k;
Guchar* tmp = (Guchar *)gmallocn(3 * length, sizeof(Guchar));
getRGBLine(in, tmp, length);
@@ -2271,7 +2270,7 @@ void GfxICCBasedColorSpace::getCMYKLine(Guchar *in, Guchar *out, int length) {
void GfxICCBasedColorSpace::getDeviceNLine(Guchar *in, Guchar *out, int length) {
#ifdef USE_CMS
- if (lineTransform != NULL && lineTransform->getTransformPixelType() == PT_CMYK) {
+ if (lineTransform != nullptr && lineTransform->getTransformPixelType() == PT_CMYK) {
Guchar* tmp = (Guchar *)gmallocn(4 * length, sizeof(Guchar));
transform->doTransform(in,tmp,length);
Guchar *p = tmp;
@@ -2282,7 +2281,7 @@ void GfxICCBasedColorSpace::getDeviceNLine(Guchar *in, Guchar *out, int length)
*out++ = 0;
}
gfree(tmp);
- } else if (lineTransform != NULL && nComps != 4) {
+ } else if (lineTransform != nullptr && nComps != 4) {
GfxColorComp c, m, y, k;
Guchar* tmp = (Guchar *)gmallocn(3 * length, sizeof(Guchar));
getRGBLine(in, tmp, length);
@@ -2317,7 +2316,7 @@ void GfxICCBasedColorSpace::getDeviceNLine(Guchar *in, Guchar *out, int length)
void GfxICCBasedColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) {
#ifdef USE_CMS
- if (transform != NULL && transform->getTransformPixelType() == PT_CMYK) {
+ if (transform != nullptr && transform->getTransformPixelType() == PT_CMYK) {
Guchar in[gfxColorMaxComps];
Guchar out[gfxColorMaxComps];
@@ -2358,7 +2357,7 @@ void GfxICCBasedColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) {
unsigned int value = (out[0] << 24) + (out[1] << 16) + (out[2] << 8) + out[3];
cmsCache.insert(std::pair<unsigned int, unsigned int>(key, value));
}
- } else if (nComps != 4 && transform != NULL && transform->getTransformPixelType() == PT_RGB) {
+ } else if (nComps != 4 && transform != nullptr && transform->getTransformPixelType() == PT_RGB) {
GfxRGB rgb;
GfxColorComp c, m, y, k;
@@ -2387,7 +2386,7 @@ void GfxICCBasedColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) {
GBool GfxICCBasedColorSpace::useGetRGBLine() {
#ifdef USE_CMS
- return lineTransform != NULL || alt->useGetRGBLine();
+ return lineTransform != nullptr || alt->useGetRGBLine();
#else
return alt->useGetRGBLine();
#endif
@@ -2395,7 +2394,7 @@ GBool GfxICCBasedColorSpace::useGetRGBLine() {
GBool GfxICCBasedColorSpace::useGetCMYKLine() {
#ifdef USE_CMS
- return lineTransform != NULL || alt->useGetCMYKLine();
+ return lineTransform != nullptr || alt->useGetCMYKLine();
#else
return alt->useGetCMYKLine();
#endif
@@ -2403,7 +2402,7 @@ GBool GfxICCBasedColorSpace::useGetCMYKLine() {
GBool GfxICCBasedColorSpace::useGetDeviceNLine() {
#ifdef USE_CMS
- return lineTransform != NULL || alt->useGetDeviceNLine();
+ return lineTransform != nullptr || alt->useGetDeviceNLine();
#else
return alt->useGetDeviceNLine();
#endif
@@ -2722,13 +2721,13 @@ GfxSeparationColorSpace::~GfxSeparationColorSpace() {
delete name;
delete alt;
delete func;
- if (mapping != NULL)
+ if (mapping != nullptr)
gfree(mapping);
}
GfxColorSpace *GfxSeparationColorSpace::copy() {
- int *mappingA = NULL;
- if (mapping != NULL) {
+ int *mappingA = nullptr;
+ if (mapping != nullptr) {
mappingA = (int *) gmalloc(sizeof(int));
*mappingA = *mapping;
}
@@ -2857,7 +2856,7 @@ void GfxSeparationColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) {
void GfxSeparationColorSpace::getDeviceN(GfxColor *color, GfxColor *deviceN) {
for (int i = 0; i < gfxColorMaxComps; i++)
deviceN->c[i] = 0;
- if (mapping == NULL || mapping[0] == -1) {
+ if (mapping == nullptr || mapping[0] == -1) {
GfxCMYK cmyk;
getCMYK(color, &cmyk);
@@ -2900,7 +2899,7 @@ void GfxSeparationColorSpace::createMapping(GooList *separationList, int maxSepC
error(errSyntaxWarning, -1,
"Different functions found for '{0:t}', convert immediately", name);
gfree(mapping);
- mapping = NULL;
+ mapping = nullptr;
return;
}
*mapping = i+4;
@@ -2913,7 +2912,7 @@ void GfxSeparationColorSpace::createMapping(GooList *separationList, int maxSepC
error(errSyntaxWarning, -1,
"Too many ({0:d}) spots, convert '{1:t}' immediately", maxSepComps, name);
gfree(mapping);
- mapping = NULL;
+ mapping = nullptr;
return;
}
*mapping = separationList->getLength() + 4;
@@ -2940,7 +2939,7 @@ GfxDeviceNColorSpace::GfxDeviceNColorSpace(int nCompsA,
sepsCS = sepsCSA;
nonMarking = gTrue;
overprintMask = 0;
- mapping = NULL;
+ mapping = nullptr;
for (i = 0; i < nComps; ++i) {
names[i] = namesA[i];
if (names[i]->cmp("None")) {
@@ -2993,22 +2992,22 @@ GfxDeviceNColorSpace::~GfxDeviceNColorSpace() {
delete alt;
delete func;
deleteGooList(sepsCS, GfxSeparationColorSpace);
- if (mapping != NULL)
+ if (mapping != nullptr)
gfree(mapping);
}
GfxColorSpace *GfxDeviceNColorSpace::copy() {
int i;
- int *mappingA = NULL;
+ int *mappingA = nullptr;
GooList *sepsCSA = new GooList(sepsCS->getLength());
for (i = 0; i < sepsCS->getLength(); i++) {
GfxSeparationColorSpace *scs = (GfxSeparationColorSpace *) sepsCS->get(i);
- if (likely(scs != NULL)) {
+ if (likely(scs != nullptr)) {
sepsCSA->append(scs->copy());
}
}
- if (mapping != NULL) {
+ if (mapping != nullptr) {
mappingA = (int *)gmalloc(sizeof(int) * nComps);
for (i = 0; i < nComps; i++)
mappingA[i] = mapping[i];
@@ -3092,7 +3091,7 @@ GfxColorSpace *GfxDeviceNColorSpace::parse(GfxResources *res, Array *arr, Output
}
err1:
delete separationList;
- return NULL;
+ return nullptr;
}
void GfxDeviceNColorSpace::getGray(GfxColor *color, GfxGray *gray) {
@@ -3143,7 +3142,7 @@ void GfxDeviceNColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) {
void GfxDeviceNColorSpace::getDeviceN(GfxColor *color, GfxColor *deviceN) {
for (int i = 0; i < gfxColorMaxComps; i++)
deviceN->c[i] = 0;
- if (mapping == NULL) {
+ if (mapping == nullptr) {
GfxCMYK cmyk;
getCMYK(color, &cmyk);
@@ -3189,7 +3188,7 @@ void GfxDeviceNColorSpace::createMapping(GooList *separationList, int maxSepComp
} else {
Guint startOverprintMask = 0x10;
GBool found = gFalse;
- Function *sepFunc = NULL;
+ Function *sepFunc = nullptr;
if (nComps == 1)
sepFunc = func;
else {
@@ -3204,11 +3203,11 @@ void GfxDeviceNColorSpace::createMapping(GooList *separationList, int maxSepComp
for (int j = 0; j < separationList->getLength(); j++) {
GfxSeparationColorSpace *sepCS = (GfxSeparationColorSpace *)separationList->get(j);
if (!sepCS->getName()->cmp(names[i])) {
- if (sepFunc != NULL && sepCS->getFunc()->hasDifferentResultSet(sepFunc)) {
+ if (sepFunc != nullptr && sepCS->getFunc()->hasDifferentResultSet(sepFunc)) {
error(errSyntaxWarning, -1,
"Different functions found for '{0:t}', convert immediately", names[i]);
gfree(mapping);
- mapping = NULL;
+ mapping = nullptr;
overprintMask = 0xffffffff;
return;
}
@@ -3224,7 +3223,7 @@ void GfxDeviceNColorSpace::createMapping(GooList *separationList, int maxSepComp
error(errSyntaxWarning, -1,
"Too many ({0:d}) spots, convert '{1:t}' immediately", maxSepComps, names[i]);
gfree(mapping);
- mapping = NULL;
+ mapping = nullptr;
overprintMask = 0xffffffff;
return;
}
@@ -3244,7 +3243,7 @@ void GfxDeviceNColorSpace::createMapping(GooList *separationList, int maxSepComp
if(!found) {
error(errSyntaxWarning, -1, "DeviceN has no suitable colorant");
gfree(mapping);
- mapping = NULL;
+ mapping = nullptr;
overprintMask = 0xffffffff;
return;
}
@@ -3271,7 +3270,7 @@ GfxPatternColorSpace::~GfxPatternColorSpace() {
GfxColorSpace *GfxPatternColorSpace::copy() {
return new GfxPatternColorSpace(under ? under->copy() :
- (GfxColorSpace *)NULL);
+ (GfxColorSpace *)nullptr);
}
GfxColorSpace *GfxPatternColorSpace::parse(GfxResources *res, Array *arr, OutputDev *out, GfxState *state, int recursion) {
@@ -3281,14 +3280,14 @@ GfxColorSpace *GfxPatternColorSpace::parse(GfxResources *res, Array *arr, Output
if (arr->getLength() != 1 && arr->getLength() != 2) {
error(errSyntaxWarning, -1, "Bad Pattern color space");
- return NULL;
+ return nullptr;
}
- underA = NULL;
+ underA = nullptr;
if (arr->getLength() == 2) {
obj1 = arr->get(1);
if (!(underA = GfxColorSpace::parse(res, &obj1, out, state, recursion + 1))) {
error(errSyntaxWarning, -1, "Bad Pattern color space (underlying color space)");
- return NULL;
+ return nullptr;
}
}
cs = new GfxPatternColorSpace(underA);
@@ -3343,7 +3342,7 @@ GfxPattern *GfxPattern::parse(GfxResources *res, Object *obj, OutputDev *out, Gf
} else {
return nullptr;
}
- pattern = NULL;
+ pattern = nullptr;
if (obj1.isInt() && obj1.getInt() == 1) {
pattern = GfxTilingPattern::parse(obj, patternRefNum);
} else if (obj1.isInt() && obj1.getInt() == 2) {
@@ -3366,7 +3365,7 @@ GfxTilingPattern *GfxTilingPattern::parse(Object *patObj, int patternRefNum) {
int i;
if (!patObj->isStream()) {
- return NULL;
+ return nullptr;
}
dict = patObj->streamGetDict();
@@ -3474,14 +3473,14 @@ GfxShadingPattern *GfxShadingPattern::parse(GfxResources *res, Object *patObj, O
int i;
if (!patObj->isDict()) {
- return NULL;
+ return nullptr;
}
dict = patObj->getDict();
obj1 = dict->lookup("Shading");
shadingA = GfxShading::parse(res, &obj1, out, state);
if (!shadingA) {
- return NULL;
+ return nullptr;
}
matrixA[0] = 1; matrixA[1] = 0;
@@ -3525,7 +3524,7 @@ GfxPattern *GfxShadingPattern::copy() {
GfxShading::GfxShading(int typeA) {
type = typeA;
- colorSpace = NULL;
+ colorSpace = nullptr;
}
GfxShading::GfxShading(GfxShading *shading) {
@@ -3561,13 +3560,13 @@ GfxShading *GfxShading::parse(GfxResources *res, Object *obj, OutputDev *out, Gf
} else if (obj->isStream()) {
dict = obj->streamGetDict();
} else {
- return NULL;
+ return nullptr;
}
obj1 = dict->lookup("ShadingType");
if (!obj1.isInt()) {
error(errSyntaxWarning, -1, "Invalid ShadingType in shading dictionary");
- return NULL;
+ return nullptr;
}
typeA = obj1.getInt();
@@ -3621,7 +3620,7 @@ GfxShading *GfxShading::parse(GfxResources *res, Object *obj, OutputDev *out, Gf
return shading;
err1:
- return NULL;
+ return nullptr;
}
GBool GfxShading::init(GfxResources *res, Dict *dict, OutputDev *out, GfxState *state) {
@@ -3742,11 +3741,17 @@ GfxFunctionShading *GfxFunctionShading::parse(GfxResources *res, Dict *dict, Out
x1A = y1A = 1;
obj1 = dict->lookup("Domain");
if (obj1.isArray() && obj1.arrayGetLength() == 4) {
+ bool decodeOk = true;
Object obj2;
- x0A = (obj2 = obj1.arrayGet(0), obj2.getNum());
- x1A = (obj2 = obj1.arrayGet(1), obj2.getNum());
- y0A = (obj2 = obj1.arrayGet(2), obj2.getNum());
- y1A = (obj2 = obj1.arrayGet(3), obj2.getNum());
+ x0A = (obj2 = obj1.arrayGet(0), obj2.getNum(&decodeOk));
+ x1A = (obj2 = obj1.arrayGet(1), obj2.getNum(&decodeOk));
+ y0A = (obj2 = obj1.arrayGet(2), obj2.getNum(&decodeOk));
+ y1A = (obj2 = obj1.arrayGet(3), obj2.getNum(&decodeOk));
+
+ if (!decodeOk) {
+ error(errSyntaxWarning, -1, "Invalid Domain array in function shading dictionary");
+ return nullptr;
+ }
}
matrixA[0] = 1; matrixA[1] = 0;
@@ -3754,13 +3759,19 @@ GfxFunctionShading *GfxFunctionShading::parse(GfxResources *res, Dict *dict, Out
matrixA[4] = 0; matrixA[5] = 0;
obj1 = dict->lookup("Matrix");
if (obj1.isArray() && obj1.arrayGetLength() == 6) {
+ bool decodeOk = true;
Object obj2;
- matrixA[0] = (obj2 = obj1.arrayGet(0), obj2.getNum());
- matrixA[1] = (obj2 = obj1.arrayGet(1), obj2.getNum());
- matrixA[2] = (obj2 = obj1.arrayGet(2), obj2.getNum());
- matrixA[3] = (obj2 = obj1.arrayGet(3), obj2.getNum());
- matrixA[4] = (obj2 = obj1.arrayGet(4), obj2.getNum());
- matrixA[5] = (obj2 = obj1.arrayGet(5), obj2.getNum());
+ matrixA[0] = (obj2 = obj1.arrayGet(0), obj2.getNum(&decodeOk));
+ matrixA[1] = (obj2 = obj1.arrayGet(1), obj2.getNum(&decodeOk));
+ matrixA[2] = (obj2 = obj1.arrayGet(2), obj2.getNum(&decodeOk));
+ matrixA[3] = (obj2 = obj1.arrayGet(3), obj2.getNum(&decodeOk));
+ matrixA[4] = (obj2 = obj1.arrayGet(4), obj2.getNum(&decodeOk));
+ matrixA[5] = (obj2 = obj1.arrayGet(5), obj2.getNum(&decodeOk));
+
+ if (!decodeOk) {
+ error(errSyntaxWarning, -1, "Invalid Matrix array in function shading dictionary");
+ return nullptr;
+ }
}
obj1 = dict->lookup("Function");
@@ -3787,7 +3798,7 @@ GfxFunctionShading *GfxFunctionShading::parse(GfxResources *res, Dict *dict, Out
funcsA, nFuncsA);
if (!shading->init(res, dict, out, state)) {
delete shading;
- return NULL;
+ return nullptr;
}
return shading;
}
@@ -3838,9 +3849,9 @@ GfxUnivariateShading::GfxUnivariateShading(int typeA,
cacheSize = 0;
lastMatch = 0;
- cacheBounds = NULL;
- cacheCoeff = NULL;
- cacheValues = NULL;
+ cacheBounds = nullptr;
+ cacheCoeff = nullptr;
+ cacheValues = nullptr;
}
GfxUnivariateShading::GfxUnivariateShading(GfxUnivariateShading *shading):
@@ -3859,9 +3870,9 @@ GfxUnivariateShading::GfxUnivariateShading(GfxUnivariateShading *shading):
cacheSize = 0;
lastMatch = 0;
- cacheBounds = NULL;
- cacheCoeff = NULL;
- cacheValues = NULL;
+ cacheBounds = nullptr;
+ cacheCoeff = nullptr;
+ cacheValues = nullptr;
}
GfxUnivariateShading::~GfxUnivariateShading() {
@@ -3876,7 +3887,6 @@ GfxUnivariateShading::~GfxUnivariateShading() {
void GfxUnivariateShading::getColor(double t, GfxColor *color) {
double out[gfxColorMaxComps];
- int i;
// NB: there can be one function with n outputs or n functions with
// one output each (where n = number of color components)
@@ -3906,14 +3916,14 @@ void GfxUnivariateShading::getColor(double t, GfxColor *color) {
u = cacheValues + lastMatch * nComps;
l = u - nComps;
- for (i = 0; i < nComps; ++i) {
+ for (int i = 0; i < nComps; ++i) {
out[i] = ix * l[i] + x * u[i];
}
} else {
- for (i = 0; i < nComps; ++i) {
+ for (int i = 0; i < nComps; ++i) {
out[i] = 0;
}
- for (i = 0; i < nFuncs; ++i) {
+ for (int i = 0; i < nFuncs; ++i) {
if (funcs[i]->getInputSize() != 1) {
error(errSyntaxWarning, -1, "Invalid shading function (input != 1)");
break;
@@ -3922,7 +3932,7 @@ void GfxUnivariateShading::getColor(double t, GfxColor *color) {
}
}
- for (i = 0; i < nComps; ++i) {
+ for (int i = 0; i < nComps; ++i) {
color->c[i] = dblToCol(out[i]);
}
}
@@ -3934,7 +3944,7 @@ void GfxUnivariateShading::setupCache(const Matrix *ctm,
int i, j, nComps, maxSize;
gfree (cacheBounds);
- cacheBounds = NULL;
+ cacheBounds = nullptr;
cacheSize = 0;
if (unlikely(nFuncs < 1))
@@ -4240,12 +4250,13 @@ GfxRadialShading *GfxRadialShading::parse(GfxResources *res, Dict *dict, OutputD
obj1 = dict->lookup("Coords");
if (obj1.isArray() && obj1.arrayGetLength() == 6) {
Object obj2;
- x0A = (obj2 = obj1.arrayGet(0), obj2.getNum());
- y0A = (obj2 = obj1.arrayGet(1), obj2.getNum());
- r0A = (obj2 = obj1.arrayGet(2), obj2.getNum());
- x1A = (obj2 = obj1.arrayGet(3), obj2.getNum());
- y1A = (obj2 = obj1.arrayGet(4), obj2.getNum());
- r1A = (obj2 = obj1.arrayGet(5), obj2.getNum());
+ bool dummy; // just so that we can use the getNum that returns 0 on obj2 not being a num instead of aborting
+ x0A = (obj2 = obj1.arrayGet(0), obj2.getNum(&dummy));
+ y0A = (obj2 = obj1.arrayGet(1), obj2.getNum(&dummy));
+ r0A = (obj2 = obj1.arrayGet(2), obj2.getNum(&dummy));
+ x1A = (obj2 = obj1.arrayGet(3), obj2.getNum(&dummy));
+ y1A = (obj2 = obj1.arrayGet(4), obj2.getNum(&dummy));
+ r1A = (obj2 = obj1.arrayGet(5), obj2.getNum(&dummy));
} else {
error(errSyntaxWarning, -1, "Missing or invalid Coords in shading dictionary");
return nullptr;
@@ -4256,8 +4267,8 @@ GfxRadialShading *GfxRadialShading::parse(GfxResources *res, Dict *dict, OutputD
obj1 = dict->lookup("Domain");
if (obj1.isArray() && obj1.arrayGetLength() == 2) {
Object obj2;
- t0A = (obj2 = obj1.arrayGet(0), obj2.getNum());
- t1A = (obj2 = obj1.arrayGet(1), obj2.getNum());
+ t0A = (obj2 = obj1.arrayGet(0), obj2.isNum() ? obj2.getNum() : 0);
+ t1A = (obj2 = obj1.arrayGet(1), obj2.isNum() ? obj2.getNum() : 1);
}
obj1 = dict->lookup("Function");
@@ -4284,15 +4295,15 @@ GfxRadialShading *GfxRadialShading::parse(GfxResources *res, Dict *dict, OutputD
obj1 = dict->lookup("Extend");
if (obj1.isArray() && obj1.arrayGetLength() == 2) {
Object obj2;
- extend0A = (obj2 = obj1.arrayGet(0), obj2.getBool());
- extend1A = (obj2 = obj1.arrayGet(1), obj2.getBool());
+ extend0A = (obj2 = obj1.arrayGet(0), obj2.isBool() ? obj2.getBool() : gFalse);
+ extend1A = (obj2 = obj1.arrayGet(1), obj2.isBool() ? obj2.getBool() : gFalse);
}
shading = new GfxRadialShading(x0A, y0A, r0A, x1A, y1A, r1A, t0A, t1A,
funcsA, nFuncsA, extend0A, extend1A);
if (!shading->init(res, dict, out, state)) {
delete shading;
- return NULL;
+ return nullptr;
}
return shading;
}
@@ -4619,6 +4630,8 @@ public:
GfxShadingBitBuf(Stream *strA);
~GfxShadingBitBuf();
+ GfxShadingBitBuf(const GfxShadingBitBuf &) = delete;
+ GfxShadingBitBuf& operator=(const GfxShadingBitBuf &) = delete;
GBool getBits(int n, Guint *val);
void flushBits();
@@ -4784,18 +4797,24 @@ GfxGouraudTriangleShading *GfxGouraudTriangleShading::parse(GfxResources *res, i
obj1 = dict->lookup("Decode");
if (obj1.isArray() && obj1.arrayGetLength() >= 6) {
Object obj2;
- xMin = (obj2 = obj1.arrayGet(0), obj2.getNum());
- xMax = (obj2 = obj1.arrayGet(1), obj2.getNum());
+ bool decodeOk = true;
+ xMin = (obj2 = obj1.arrayGet(0), obj2.getNum(&decodeOk));
+ xMax = (obj2 = obj1.arrayGet(1), obj2.getNum(&decodeOk));
xMul = (xMax - xMin) / (pow(2.0, coordBits) - 1);
- yMin = (obj2 = obj1.arrayGet(2), obj2.getNum());
- yMax = (obj2 = obj1.arrayGet(3), obj2.getNum());
+ yMin = (obj2 = obj1.arrayGet(2), obj2.getNum(&decodeOk));
+ yMax = (obj2 = obj1.arrayGet(3), obj2.getNum(&decodeOk));
yMul = (yMax - yMin) / (pow(2.0, coordBits) - 1);
for (i = 0; 5 + 2*i < obj1.arrayGetLength() && i < gfxColorMaxComps; ++i) {
- cMin[i] = (obj2 = obj1.arrayGet(4 + 2*i), obj2.getNum());
- cMax[i] = (obj2 = obj1.arrayGet(5 + 2*i), obj2.getNum());
+ cMin[i] = (obj2 = obj1.arrayGet(4 + 2*i), obj2.getNum(&decodeOk));
+ cMax[i] = (obj2 = obj1.arrayGet(5 + 2*i), obj2.getNum(&decodeOk));
cMul[i] = (cMax[i] - cMin[i]) / (double)((1 << compBits) - 1);
}
nComps = i;
+
+ if (!decodeOk) {
+ error(errSyntaxWarning, -1, "Missing or invalid Decode array in shading dictionary");
+ return nullptr;
+ }
} else {
error(errSyntaxWarning, -1, "Missing or invalid Decode array in shading dictionary");
return nullptr;
@@ -4826,8 +4845,8 @@ GfxGouraudTriangleShading *GfxGouraudTriangleShading::parse(GfxResources *res, i
}
nVerticesA = nTrianglesA = 0;
- verticesA = NULL;
- trianglesA = NULL;
+ verticesA = nullptr;
+ trianglesA = nullptr;
vertSize = triSize = 0;
state = 0;
flag = 0; // make gcc happy
@@ -4919,7 +4938,7 @@ GfxGouraudTriangleShading *GfxGouraudTriangleShading::parse(GfxResources *res, i
funcsA, nFuncsA);
if (!shading->init(res, dict, out, gfxState)) {
delete shading;
- return NULL;
+ return nullptr;
}
return shading;
}
@@ -5157,7 +5176,7 @@ GfxPatchMeshShading *GfxPatchMeshShading::parse(GfxResources *res, int typeA, Di
}
nPatchesA = 0;
- patchesA = NULL;
+ patchesA = nullptr;
patchesSize = 0;
bitBuf = new GfxShadingBitBuf(str);
while (1) {
@@ -5640,10 +5659,10 @@ GfxImageColorMap::GfxImageColorMap(int bitsA, Object *decode,
// initialize
for (k = 0; k < gfxColorMaxComps; ++k) {
- lookup[k] = NULL;
- lookup2[k] = NULL;
+ lookup[k] = nullptr;
+ lookup2[k] = nullptr;
}
- byte_lookup = NULL;
+ byte_lookup = nullptr;
// get decode map
if (decode->isNull()) {
@@ -5689,7 +5708,7 @@ GfxImageColorMap::GfxImageColorMap(int bitsA, Object *decode,
// Optimization: for Indexed and Separation color spaces (which have
// only one component), we pre-compute a second lookup table with
// color values
- colorSpace2 = NULL;
+ colorSpace2 = nullptr;
nComps2 = 0;
useByteLookup = gFalse;
switch (colorSpace->getMode()) {
@@ -5786,9 +5805,9 @@ GfxImageColorMap::GfxImageColorMap(GfxImageColorMap *colorMap) {
nComps2 = colorMap->nComps2;
useMatte = colorMap->useMatte;
matteColor = colorMap->matteColor;
- colorSpace2 = NULL;
+ colorSpace2 = nullptr;
for (k = 0; k < gfxColorMaxComps; ++k) {
- lookup[k] = NULL;
+ lookup[k] = nullptr;
}
n = 1 << bits;
if (colorSpace->getMode() == csIndexed) {
@@ -6090,14 +6109,13 @@ void GfxImageColorMap::getCMYKLine(Guchar *in, Guchar *out, int length) {
}
void GfxImageColorMap::getDeviceNLine(Guchar *in, Guchar *out, int length) {
- int i, j;
Guchar *inp, *tmp_line;
if (!useDeviceNLine()) {
GfxColor deviceN;
inp = in;
- for (i = 0; i < length; i++) {
+ for (int i = 0; i < length; i++) {
getDeviceN (inp, &deviceN);
for (int j = 0; j < SPOT_NCOMPS+4; j++)
*out++ = deviceN.c[j];
@@ -6110,8 +6128,8 @@ void GfxImageColorMap::getDeviceNLine(Guchar *in, Guchar *out, int length) {
case csIndexed:
case csSeparation:
tmp_line = (Guchar *) gmallocn (length, nComps2);
- for (i = 0; i < length; i++) {
- for (j = 0; j < nComps2; j++) {
+ for (int i = 0; i < length; i++) {
+ for (int j = 0; j < nComps2; j++) {
tmp_line[i * nComps2 + j] = byte_lookup[in[i] * nComps2 + j];
}
}
@@ -6121,8 +6139,8 @@ void GfxImageColorMap::getDeviceNLine(Guchar *in, Guchar *out, int length) {
default:
inp = in;
- for (j = 0; j < length; j++)
- for (i = 0; i < nComps; i++) {
+ for (int j = 0; j < length; j++)
+ for (int i = 0; i < nComps; i++) {
*inp = byte_lookup[*inp * nComps + i];
inp++;
}
@@ -6375,12 +6393,12 @@ void GfxPath::offset(double dx, double dy) {
//------------------------------------------------------------------------
//
//------------------------------------------------------------------------
-GfxState::ReusablePathIterator::ReusablePathIterator(GfxPath *path)
- : path(path),
+GfxState::ReusablePathIterator::ReusablePathIterator(GfxPath *pathA)
+ : path(pathA),
subPathOff(0),
coordOff(0),
numCoords(0),
- curSubPath(NULL)
+ curSubPath(nullptr)
{
if( path->getNumSubpaths() ) {
curSubPath = path->getSubpath(subPathOff);
@@ -6471,18 +6489,18 @@ GfxState::GfxState(double hDPIA, double vDPIA, PDFRectangle *pageBox,
strokeColorSpace = new GfxDeviceGrayColorSpace();
fillColor.c[0] = 0;
strokeColor.c[0] = 0;
- fillPattern = NULL;
- strokePattern = NULL;
+ fillPattern = nullptr;
+ strokePattern = nullptr;
blendMode = gfxBlendNormal;
fillOpacity = 1;
strokeOpacity = 1;
fillOverprint = gFalse;
strokeOverprint = gFalse;
overprintMode = 0;
- transfer[0] = transfer[1] = transfer[2] = transfer[3] = NULL;
+ transfer[0] = transfer[1] = transfer[2] = transfer[3] = nullptr;
lineWidth = 1;
- lineDash = NULL;
+ lineDash = nullptr;
lineDashLength = 0;
lineDashStart = 0;
flatness = 1;
@@ -6493,7 +6511,7 @@ GfxState::GfxState(double hDPIA, double vDPIA, PDFRectangle *pageBox,
alphaIsShape = gFalse;
textKnockout = gFalse;
- font = NULL;
+ font = nullptr;
fontSize = 0;
textMat[0] = 1; textMat[1] = 0;
textMat[2] = 0; textMat[3] = 1;
@@ -6516,14 +6534,14 @@ GfxState::GfxState(double hDPIA, double vDPIA, PDFRectangle *pageBox,
renderingIntent[0] = 0;
- saved = NULL;
+ saved = nullptr;
#ifdef USE_CMS
GfxColorSpace::setupColorProfiles();
- XYZ2DisplayTransformRelCol = NULL;
- XYZ2DisplayTransformAbsCol = NULL;
- XYZ2DisplayTransformSat = NULL;
- XYZ2DisplayTransformPerc = NULL;
- localDisplayProfile = NULL;
+ XYZ2DisplayTransformRelCol = nullptr;
+ XYZ2DisplayTransformAbsCol = nullptr;
+ XYZ2DisplayTransformSat = nullptr;
+ XYZ2DisplayTransformPerc = nullptr;
+ localDisplayProfile = nullptr;
displayProfileRef = 0;
#endif
}
@@ -6573,7 +6591,7 @@ GfxState::~GfxState() {
if (XYZ2DisplayTransformPerc->unref() == 0)
delete XYZ2DisplayTransformPerc;
}
- if (--displayProfileRef == 0 && localDisplayProfile != NULL) {
+ if (--displayProfileRef == 0 && localDisplayProfile != nullptr) {
cmsCloseProfile(localDisplayProfile);
}
#endif
@@ -6611,7 +6629,7 @@ GfxState::GfxState(GfxState *state, GBool copyPath) {
if (copyPath) {
path = state->path->copy();
}
- saved = NULL;
+ saved = nullptr;
#ifdef USE_CMS
if (XYZ2DisplayTransformRelCol) {
XYZ2DisplayTransformRelCol->ref();
@@ -6633,11 +6651,11 @@ GfxState::GfxState(GfxState *state, GBool copyPath) {
#ifdef USE_CMS
void GfxState::setDisplayProfile(cmsHPROFILE localDisplayProfileA) {
- if (localDisplayProfile != NULL) {
+ if (localDisplayProfile != nullptr) {
cmsCloseProfile(localDisplayProfile);
}
localDisplayProfile = localDisplayProfileA;
- if (localDisplayProfileA != NULL) {
+ if (localDisplayProfileA != nullptr) {
cmsHTRANSFORM transform;
unsigned int nChannels;
unsigned int localDisplayPixelType;
@@ -6651,7 +6669,7 @@ void GfxState::setDisplayProfile(cmsHPROFILE localDisplayProfileA) {
localDisplayProfile,
COLORSPACE_SH(localDisplayPixelType) |
CHANNELS_SH(nChannels) | BYTES_SH(1),
- INTENT_RELATIVE_COLORIMETRIC,LCMS_FLAGS)) == 0) {
+ INTENT_RELATIVE_COLORIMETRIC,LCMS_FLAGS)) == nullptr) {
error(errSyntaxWarning, -1, "Can't create Lab transform");
} else {
XYZ2DisplayTransformRelCol = new GfxColorTransform(transform, INTENT_RELATIVE_COLORIMETRIC, PT_XYZ, localDisplayPixelType);
@@ -6660,7 +6678,7 @@ void GfxState::setDisplayProfile(cmsHPROFILE localDisplayProfileA) {
localDisplayProfile,
COLORSPACE_SH(localDisplayPixelType) |
CHANNELS_SH(nChannels) | BYTES_SH(1),
- INTENT_ABSOLUTE_COLORIMETRIC,LCMS_FLAGS)) == 0) {
+ INTENT_ABSOLUTE_COLORIMETRIC,LCMS_FLAGS)) == nullptr) {
error(errSyntaxWarning, -1, "Can't create Lab transform");
} else {
XYZ2DisplayTransformAbsCol = new GfxColorTransform(transform, INTENT_ABSOLUTE_COLORIMETRIC, PT_XYZ, localDisplayPixelType);
@@ -6669,7 +6687,7 @@ void GfxState::setDisplayProfile(cmsHPROFILE localDisplayProfileA) {
localDisplayProfile,
COLORSPACE_SH(localDisplayPixelType) |
CHANNELS_SH(nChannels) | BYTES_SH(1),
- INTENT_SATURATION,LCMS_FLAGS)) == 0) {
+ INTENT_SATURATION,LCMS_FLAGS)) == nullptr) {
error(errSyntaxWarning, -1, "Can't create Lab transform");
} else {
XYZ2DisplayTransformSat = new GfxColorTransform(transform, INTENT_SATURATION, PT_XYZ, localDisplayPixelType);
@@ -6678,7 +6696,7 @@ void GfxState::setDisplayProfile(cmsHPROFILE localDisplayProfileA) {
localDisplayProfile,
COLORSPACE_SH(localDisplayPixelType) |
CHANNELS_SH(nChannels) | BYTES_SH(1),
- INTENT_PERCEPTUAL,LCMS_FLAGS)) == 0) {
+ INTENT_PERCEPTUAL,LCMS_FLAGS)) == nullptr) {
error(errSyntaxWarning, -1, "Can't create Lab transform");
} else {
XYZ2DisplayTransformPerc = new GfxColorTransform(transform, INTENT_PERCEPTUAL, PT_XYZ, localDisplayPixelType);
@@ -6698,7 +6716,7 @@ GfxColorTransform *GfxState::getXYZ2DisplayTransform() {
} else if (strcmp(renderingIntent, "Perceptual") == 0) {
transform = XYZ2DisplayTransformPerc;
}
- if (transform == NULL) {
+ if (transform == nullptr) {
transform = XYZ2DisplayTransform;
}
return transform;
@@ -7084,8 +7102,8 @@ GfxState *GfxState::restore() {
oldState->lineX = lineX;
oldState->lineY = lineY;
- path = NULL;
- saved = NULL;
+ path = nullptr;
+ saved = nullptr;
delete this;
} else {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/GfxState.h b/Build/source/libs/poppler/poppler-src/poppler/GfxState.h
index bfbf53cd64f..6f4ae9a7c90 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/GfxState.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/GfxState.h
@@ -17,7 +17,7 @@
// Copyright (C) 2006, 2007 Jeff Muizelaar <jeff@infidigm.net>
// Copyright (C) 2006 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2009 Koji Otani <sho@bbr.jp>
-// Copyright (C) 2009-2011, 2013, 2016, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009-2011, 2013, 2016-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com>
// Copyright (C) 2011 Andrea Canciani <ranma42@gmail.com>
// Copyright (C) 2011-2014, 2016 Thomas Freitag <Thomas.Freitag@alfa.de>
@@ -196,6 +196,8 @@ public:
// transformA should be a cmsHTRANSFORM
GfxColorTransform(void *transformA, int cmsIntent, unsigned int inputPixelType, unsigned int transformPixelType);
~GfxColorTransform();
+ GfxColorTransform(const GfxColorTransform &) = delete;
+ GfxColorTransform& operator=(const GfxColorTransform &) = delete;
int getIntent() { return cmsIntent; }
int getInputPixelType() { return inputPixelType; }
int getTransformPixelType() { return transformPixelType; }
@@ -215,6 +217,10 @@ public:
GfxColorSpace();
virtual ~GfxColorSpace();
+
+ GfxColorSpace(const GfxColorSpace &) = delete;
+ GfxColorSpace& operator=(const GfxColorSpace &other) = delete;
+
virtual GfxColorSpace *copy() = 0;
virtual GfxColorSpaceMode getMode() = 0;
@@ -766,6 +772,9 @@ public:
GfxPattern(int typeA, int patternRefNumA);
virtual ~GfxPattern();
+ GfxPattern(const GfxPattern &) = delete;
+ GfxPattern& operator=(const GfxPattern &other) = delete;
+
static GfxPattern *parse(GfxResources *res, Object *obj, OutputDev *out, GfxState *state, int patternRefNum);
virtual GfxPattern *copy() = 0;
@@ -852,6 +861,9 @@ public:
GfxShading(GfxShading *shading);
virtual ~GfxShading();
+ GfxShading(const GfxShading &) = delete;
+ GfxShading& operator=(const GfxShading &other) = delete;
+
static GfxShading *parse(GfxResources *res, Object *obj, OutputDev *out, GfxState *state);
virtual GfxShading *copy() = 0;
@@ -1175,6 +1187,9 @@ public:
// Destructor.
~GfxImageColorMap();
+ GfxImageColorMap(const GfxImageColorMap &) = delete;
+ GfxImageColorMap& operator=(const GfxImageColorMap &) = delete;
+
// Return a copy of this color map.
GfxImageColorMap *copy() { return new GfxImageColorMap(this); }
@@ -1248,6 +1263,9 @@ public:
// Destructor.
~GfxSubpath();
+ GfxSubpath(const GfxSubpath &) = delete;
+ GfxSubpath& operator=(const GfxSubpath &) = delete;
+
// Copy.
GfxSubpath *copy() { return new GfxSubpath(this); }
@@ -1299,6 +1317,9 @@ public:
// Destructor.
~GfxPath();
+ GfxPath(const GfxPath &) = delete;
+ GfxPath& operator=(const GfxPath &) = delete;
+
// Copy.
GfxPath *copy()
{ return new GfxPath(justMoved, firstX, firstY, subpaths, n, size); }
@@ -1419,6 +1440,9 @@ public:
// Destructor.
~GfxState();
+ GfxState(const GfxState &) = delete;
+ GfxState& operator=(const GfxState &) = delete;
+
// Copy.
GfxState *copy(GBool copyPath = gFalse)
{ return new GfxState(this, copyPath); }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/GlobalParams.cc b/Build/source/libs/poppler/poppler-src/poppler/GlobalParams.cc
index 1f2b4ec07d6..50b7eee2b5a 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/GlobalParams.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/GlobalParams.cc
@@ -15,7 +15,7 @@
//
// Copyright (C) 2005 Martin Kretzschmar <martink@gnome.org>
// Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2005, 2007-2010, 2012, 2015, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2007-2010, 2012, 2015, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2005 Jonathan Blandford <jrb@redhat.com>
// Copyright (C) 2006, 2007 Jeff Muizelaar <jeff@infidigm.net>
// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
@@ -127,7 +127,7 @@ extern XpdfPluginVecTable xpdfPluginVecTable;
//------------------------------------------------------------------------
-GlobalParams *globalParams = NULL;
+GlobalParams *globalParams = nullptr;
#if defined(ENABLE_RELOCATABLE) && defined(_WIN32)
@@ -210,6 +210,8 @@ public:
SysFontInfo(GooString *nameA, GBool boldA, GBool italicA, GBool obliqueA, GBool fixedWidthA,
GooString *pathA, SysFontType typeA, int fontNumA, GooString *substituteNameA);
~SysFontInfo();
+ SysFontInfo(const SysFontInfo &) = delete;
+ SysFontInfo& operator=(const SysFontInfo&) = delete;
GBool match(SysFontInfo *fi);
GBool match(GooString *nameA, GBool boldA, GBool italicA, GBool obliqueA, GBool fixedWidthA);
GBool match(GooString *nameA, GBool boldA, GBool italicA);
@@ -258,6 +260,8 @@ public:
SysFontList();
~SysFontList();
+ SysFontList(const SysFontList &) = delete;
+ SysFontList& operator=(const SysFontList &) = delete;
SysFontInfo *find(GooString *name, GBool isFixedWidth, GBool exact);
#ifdef _WIN32
@@ -363,13 +367,13 @@ SysFontInfo *SysFontList::find(GooString *name, GBool fixedWidth, GBool exact) {
}
// search for the font
- fi = NULL;
+ fi = nullptr;
for (i = 0; i < fonts->getLength(); ++i) {
fi = (SysFontInfo *)fonts->get(i);
if (fi->match(name2, bold, italic, oblique, fixedWidth)) {
break;
}
- fi = NULL;
+ fi = nullptr;
}
if (!fi && !exact && bold) {
// try ignoring the bold flag
@@ -378,7 +382,7 @@ SysFontInfo *SysFontList::find(GooString *name, GBool fixedWidth, GBool exact) {
if (fi->match(name2, gFalse, italic)) {
break;
}
- fi = NULL;
+ fi = nullptr;
}
}
if (!fi && !exact && (bold || italic)) {
@@ -388,7 +392,7 @@ SysFontInfo *SysFontList::find(GooString *name, GBool fixedWidth, GBool exact) {
if (fi->match(name2, gFalse, gFalse)) {
break;
}
- fi = NULL;
+ fi = nullptr;
}
}
@@ -648,7 +652,7 @@ void GlobalParams::scanEncodingDirs() {
snprintf(dataPathBuffer, bufSize, "%s/nameToUnicode", dataRoot);
dir = new GDir(dataPathBuffer, gTrue);
- while (entry = dir->getNextEntry(), entry != NULL) {
+ while (entry = dir->getNextEntry(), entry != nullptr) {
if (!entry->isDir()) {
parseNameToUnicode(entry->getFullPath());
}
@@ -658,7 +662,7 @@ void GlobalParams::scanEncodingDirs() {
snprintf(dataPathBuffer, bufSize, "%s/cidToUnicode", dataRoot);
dir = new GDir(dataPathBuffer, gFalse);
- while (entry = dir->getNextEntry(), entry != NULL) {
+ while (entry = dir->getNextEntry(), entry != nullptr) {
addCIDToUnicode(entry->getName(), entry->getFullPath());
delete entry;
}
@@ -666,7 +670,7 @@ void GlobalParams::scanEncodingDirs() {
snprintf(dataPathBuffer, bufSize, "%s/unicodeMap", dataRoot);
dir = new GDir(dataPathBuffer, gFalse);
- while (entry = dir->getNextEntry(), entry != NULL) {
+ while (entry = dir->getNextEntry(), entry != nullptr) {
addUnicodeMap(entry->getName(), entry->getFullPath());
delete entry;
}
@@ -674,7 +678,7 @@ void GlobalParams::scanEncodingDirs() {
snprintf(dataPathBuffer, bufSize, "%s/cMap", dataRoot);
dir = new GDir(dataPathBuffer, gFalse);
- while (entry = dir->getNextEntry(), entry != NULL) {
+ while (entry = dir->getNextEntry(), entry != nullptr) {
addCMapDir(entry->getName(), entry->getFullPath());
toUnicodeDirs->append(entry->getFullPath()->copy());
delete entry;
@@ -700,7 +704,7 @@ void GlobalParams::parseNameToUnicode(GooString *name) {
line = 1;
while (getLine(buf, sizeof(buf), f)) {
tok1 = strtok_r(buf, " \t\r\n", &tokptr);
- tok2 = strtok_r(NULL, " \t\r\n", &tokptr);
+ tok2 = strtok_r(nullptr, " \t\r\n", &tokptr);
if (tok1 && tok2) {
sscanf(tok1, "%x", &u);
nameToUnicodeText->add(tok2, u);
@@ -842,7 +846,7 @@ FILE *GlobalParams::getUnicodeMapFile(GooString *encodingName) {
if ((fileName = (GooString *)unicodeMaps->lookup(encodingName))) {
f = openFile(fileName->getCString(), "r");
} else {
- f = NULL;
+ f = nullptr;
}
unlockGlobalParams;
return f;
@@ -858,7 +862,7 @@ FILE *GlobalParams::findCMapFile(GooString *collection, GooString *cMapName) {
lockGlobalParams;
if (!(list = (GooList *)cMapDirs->lookup(collection))) {
unlockGlobalParams;
- return NULL;
+ return nullptr;
}
for (i = 0; i < list->getLength(); ++i) {
dir = (GooString *)list->get(i);
@@ -871,7 +875,7 @@ FILE *GlobalParams::findCMapFile(GooString *collection, GooString *cMapName) {
}
}
unlockGlobalParams;
- return NULL;
+ return nullptr;
}
FILE *GlobalParams::findToUnicodeFile(GooString *name) {
@@ -891,7 +895,7 @@ FILE *GlobalParams::findToUnicodeFile(GooString *name) {
}
}
unlockGlobalParams;
- return NULL;
+ return nullptr;
}
#ifdef WITH_FONTCONFIGURATION_FONTCONFIG
@@ -899,12 +903,12 @@ static GBool findModifier(const char *name, const char *modifier, const char **s
{
const char *match;
- if (name == NULL)
+ if (name == nullptr)
return gFalse;
match = strstr(name, modifier);
if (match) {
- if (*start == NULL || match < *start)
+ if (*start == nullptr || match < *start)
*start = match;
return gTrue;
}
@@ -961,10 +965,10 @@ static FcPattern *buildFcPattern(GfxFont *font, GooString *base14Name)
FcPattern *p;
// this is all heuristics will be overwritten if font had proper info
- name = (base14Name == NULL) ? font->getName()->getCString() : base14Name->getCString();
+ name = (base14Name == nullptr) ? font->getName()->getCString() : base14Name->getCString();
modifiers = strchr (name, ',');
- if (modifiers == NULL)
+ if (modifiers == nullptr)
modifiers = strchr (name, '-');
// remove the - from the names, for some reason, Fontconfig does not
@@ -973,7 +977,7 @@ static FcPattern *buildFcPattern(GfxFont *font, GooString *base14Name)
for (int i = 0; i < len; i++)
name[i] = (name[i] == '-' ? ' ' : name[i]);
- start = NULL;
+ start = nullptr;
findModifier(modifiers, "Regular", &start);
findModifier(modifiers, "Roman", &start);
@@ -1052,7 +1056,7 @@ static FcPattern *buildFcPattern(GfxFont *font, GooString *base14Name)
const char *lang = getFontLang(font);
- p = FcPatternBuild(NULL,
+ p = FcPatternBuild(nullptr,
FC_FAMILY, FcTypeString, family,
FC_LANG, FcTypeString, lang,
NULL);
@@ -1070,7 +1074,7 @@ static FcPattern *buildFcPattern(GfxFont *font, GooString *base14Name)
GooString *GlobalParams::findFontFile(GooString *fontName) {
GooString *path;
- setupBaseFonts(NULL);
+ setupBaseFonts(nullptr);
lockGlobalParams;
if ((path = (GooString *)fontFiles->lookup(fontName))) {
path = path->copy();
@@ -1078,7 +1082,7 @@ GooString *GlobalParams::findFontFile(GooString *fontName) {
return path;
}
unlockGlobalParams;
- return NULL;
+ return nullptr;
}
/* if you can't or don't want to use Fontconfig, you need to implement
@@ -1093,18 +1097,18 @@ GooString *GlobalParams::findBase14FontFile(GooString *base14Name, GfxFont *font
SysFontType type;
int fontNum;
- return findSystemFontFile(font, &type, &fontNum, NULL, base14Name);
+ return findSystemFontFile(font, &type, &fontNum, nullptr, base14Name);
}
GooString *GlobalParams::findSystemFontFile(GfxFont *font,
SysFontType *type,
int *fontNum, GooString *substituteFontName, GooString *base14Name) {
- SysFontInfo *fi = NULL;
- FcPattern *p=0;
- GooString *path = NULL;
+ SysFontInfo *fi = nullptr;
+ FcPattern *p=nullptr;
+ GooString *path = nullptr;
GooString *fontName = font->getName();
GooString substituteName;
- if (!fontName) return NULL;
+ if (!fontName) return nullptr;
lockGlobalParams;
if ((fi = sysFonts->find(fontName, font->isFixedWidth(), gTrue))) {
@@ -1118,14 +1122,14 @@ GooString *GlobalParams::findSystemFontFile(GfxFont *font,
FcResult res;
FcFontSet *set;
int i;
- FcLangSet *lb = NULL;
+ FcLangSet *lb = nullptr;
p = buildFcPattern(font, base14Name);
if (!p)
goto fin;
- FcConfigSubstitute(NULL, p, FcMatchPattern);
+ FcConfigSubstitute(nullptr, p, FcMatchPattern);
FcDefaultSubstitute(p);
- set = FcFontSort(NULL, p, FcFalse, NULL, &res);
+ set = FcFontSort(nullptr, p, FcFalse, nullptr, &res);
if (!set)
goto fin;
@@ -1141,14 +1145,14 @@ GooString *GlobalParams::findSystemFontFile(GfxFont *font,
first: fonts support the language
second: all fonts (fall back)
*/
- while (fi == NULL)
+ while (fi == nullptr)
{
for (i = 0; i < set->nfont; ++i)
{
res = FcPatternGetString(set->fonts[i], FC_FILE, 0, &s);
if (res != FcResultMatch || !s)
continue;
- if (lb != NULL) {
+ if (lb != nullptr) {
FcLangSet *l;
res = FcPatternGetLangSet(set->fonts[i], FC_LANG, 0, &l);
if (res != FcResultMatch || !FcLangSetContains(l,lb)) {
@@ -1233,9 +1237,9 @@ GooString *GlobalParams::findSystemFontFile(GfxFont *font,
continue;
break;
}
- if (lb != NULL) {
+ if (lb != nullptr) {
FcLangSetDestroy(lb);
- lb = NULL;
+ lb = nullptr;
} else {
/* scan all fonts of the list */
break;
@@ -1243,7 +1247,7 @@ GooString *GlobalParams::findSystemFontFile(GfxFont *font,
}
FcFontSetDestroy(set);
}
- if (path == NULL && (fi = sysFonts->find(fontName, font->isFixedWidth(), gFalse))) {
+ if (path == nullptr && (fi = sysFonts->find(fontName, font->isFixedWidth(), gFalse))) {
path = fi->path->copy();
*type = fi->type;
*fontNum = fi->fontNum;
@@ -1467,7 +1471,7 @@ CharCodeToUnicode *GlobalParams::getUnicodeToUnicode(GooString *fontName) {
lockGlobalParams;
GooHashIter *iter;
unicodeToUnicodes->startIter(&iter);
- GooString *fileName = NULL;
+ GooString *fileName = nullptr;
GooString *fontPattern;
void *val;
while (!fileName && unicodeToUnicodes->getNext(&iter, &fontPattern, &val)) {
@@ -1476,7 +1480,7 @@ CharCodeToUnicode *GlobalParams::getUnicodeToUnicode(GooString *fontName) {
fileName = (GooString*)val;
}
}
- CharCodeToUnicode *ctu = NULL;
+ CharCodeToUnicode *ctu = nullptr;
if (fileName) {
ctu = unicodeToUnicodeCache->getCharCodeToUnicode(fileName);
if (!ctu) {
@@ -1666,7 +1670,7 @@ XpdfSecurityHandler *GlobalParams::getSecurityHandler(char *name) {
(void)name;
#endif
- return NULL;
+ return nullptr;
}
#ifdef ENABLE_PLUGINS
diff --git a/Build/source/libs/poppler/poppler-src/poppler/GlobalParams.h b/Build/source/libs/poppler/poppler-src/poppler/GlobalParams.h
index 7c61ae44781..e3d660cfcf9 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/GlobalParams.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/GlobalParams.h
@@ -13,7 +13,7 @@
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
-// Copyright (C) 2005, 2007-2010, 2012, 2015, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2007-2010, 2012, 2015, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2005 Jonathan Blandford <jrb@redhat.com>
// Copyright (C) 2006 Takashi Iwai <tiwai@suse.de>
// Copyright (C) 2006 Kristian Høgsberg <krh@redhat.com>
@@ -108,6 +108,9 @@ public:
~GlobalParams();
+ GlobalParams(const GlobalParams &) = delete;
+ GlobalParams& operator=(const GlobalParams &) = delete;
+
void setupBaseFonts(char *dir);
//----- accessors
diff --git a/Build/source/libs/poppler/poppler-src/poppler/GlobalParamsWin.cc b/Build/source/libs/poppler/poppler-src/poppler/GlobalParamsWin.cc
index f122fcb6f1b..1734f6eb9a6 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/GlobalParamsWin.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/GlobalParamsWin.cc
@@ -9,7 +9,7 @@
// Copyright (C) 2013 Adam Reichold <adamreichold@myopera.com>
// Copyright (C) 2013 Dmytro Morgun <lztoad@gmail.com>
// Copyright (C) 2017 Christoph Cullmann <cullmann@kde.org>
- // Copyright (C) 2017 Albert Astals Cid <aacid@kde.org>
+ // Copyright (C) 2017, 2018 Albert Astals Cid <aacid@kde.org>
TODO: instead of a fixed mapping defined in displayFontTab, it could
scan the whole fonts directory, parse TTF files and build font
@@ -103,78 +103,78 @@ static const struct {
// those seem to be frequently accessed by PDF files and I kind of guess
// which font file do the refer to
- {"Palatino", NULL, "pala.ttf", gTrue},
- {"Palatino-Roman", NULL, "pala.ttf", gTrue},
- {"Palatino-Bold", NULL, "palab.ttf", gTrue},
- {"Palatino-Italic", NULL, "palai.ttf", gTrue},
- {"Palatino,Italic", NULL, "palai.ttf", gTrue},
- {"Palatino-BoldItalic", NULL, "palabi.ttf", gTrue},
-
- {"ArialBlack", NULL, "arialbd.ttf", gTrue},
-
- {"ArialNarrow", NULL, "arialn.ttf", gTrue},
- {"ArialNarrow,Bold", NULL, "arialnb.ttf", gTrue},
- {"ArialNarrow,Italic", NULL, "arialni.ttf", gTrue},
- {"ArialNarrow,BoldItalic", NULL, "arialnbi.ttf", gTrue},
- {"ArialNarrow-Bold", NULL, "arialnb.ttf", gTrue},
- {"ArialNarrow-Italic", NULL, "arialni.ttf", gTrue},
- {"ArialNarrow-BoldItalic", NULL, "arialnbi.ttf", gTrue},
-
- {"HelveticaNarrow", NULL, "arialn.ttf", gTrue},
- {"HelveticaNarrow,Bold", NULL, "arialnb.ttf", gTrue},
- {"HelveticaNarrow,Italic", NULL, "arialni.ttf", gTrue},
- {"HelveticaNarrow,BoldItalic", NULL, "arialnbi.ttf", gTrue},
- {"HelveticaNarrow-Bold", NULL, "arialnb.ttf", gTrue},
- {"HelveticaNarrow-Italic", NULL, "arialni.ttf", gTrue},
- {"HelveticaNarrow-BoldItalic", NULL, "arialnbi.ttf", gTrue},
-
- {"BookAntiqua", NULL, "bkant.ttf", gTrue},
- {"BookAntiqua,Bold", NULL, "bkant.ttf", gTrue},
- {"BookAntiqua,Italic", NULL, "bkant.ttf", gTrue},
- {"BookAntiqua,BoldItalic", NULL, "bkant.ttf", gTrue},
- {"BookAntiqua-Bold", NULL, "bkant.ttf", gTrue},
- {"BookAntiqua-Italic", NULL, "bkant.ttf", gTrue},
- {"BookAntiqua-BoldItalic", NULL, "bkant.ttf", gTrue},
-
- {"Verdana", NULL, "verdana.ttf", gTrue},
- {"Verdana,Bold", NULL, "verdanab.ttf", gTrue},
- {"Verdana,Italic", NULL, "verdanai.ttf", gTrue},
- {"Verdana,BoldItalic", NULL, "verdanaz.ttf", gTrue},
- {"Verdana-Bold", NULL, "verdanab.ttf", gTrue},
- {"Verdana-Italic", NULL, "verdanai.ttf", gTrue},
- {"Verdana-BoldItalic", NULL, "verdanaz.ttf", gTrue},
-
- {"Tahoma", NULL, "tahoma.ttf", gTrue},
- {"Tahoma,Bold", NULL, "tahomabd.ttf", gTrue},
- {"Tahoma,Italic", NULL, "tahoma.ttf", gTrue},
- {"Tahoma,BoldItalic", NULL, "tahomabd.ttf", gTrue},
- {"Tahoma-Bold", NULL, "tahomabd.ttf", gTrue},
- {"Tahoma-Italic", NULL, "tahoma.ttf", gTrue},
- {"Tahoma-BoldItalic", NULL, "tahomabd.ttf", gTrue},
-
- {"CCRIKH+Verdana", NULL, "verdana.ttf", gTrue},
- {"CCRIKH+Verdana,Bold", NULL, "verdanab.ttf", gTrue},
- {"CCRIKH+Verdana,Italic", NULL, "verdanai.ttf", gTrue},
- {"CCRIKH+Verdana,BoldItalic", NULL, "verdanaz.ttf", gTrue},
- {"CCRIKH+Verdana-Bold", NULL, "verdanab.ttf", gTrue},
- {"CCRIKH+Verdana-Italic", NULL, "verdanai.ttf", gTrue},
- {"CCRIKH+Verdana-BoldItalic", NULL, "verdanaz.ttf", gTrue},
-
- {"Georgia", NULL, "georgia.ttf", gTrue},
- {"Georgia,Bold", NULL, "georgiab.ttf", gTrue},
- {"Georgia,Italic", NULL, "georgiai.ttf", gTrue},
- {"Georgia,BoldItalic", NULL, "georgiaz.ttf", gTrue},
- {"Georgia-Bold", NULL, "georgiab.ttf", gTrue},
- {"Georgia-Italic", NULL, "georgiai.ttf", gTrue},
- {"Georgia-BoldItalic", NULL, "georgiaz.ttf", gTrue},
+ {"Palatino", nullptr, "pala.ttf", gTrue},
+ {"Palatino-Roman", nullptr, "pala.ttf", gTrue},
+ {"Palatino-Bold", nullptr, "palab.ttf", gTrue},
+ {"Palatino-Italic", nullptr, "palai.ttf", gTrue},
+ {"Palatino,Italic", nullptr, "palai.ttf", gTrue},
+ {"Palatino-BoldItalic", nullptr, "palabi.ttf", gTrue},
+
+ {"ArialBlack", nullptr, "arialbd.ttf", gTrue},
+
+ {"ArialNarrow", nullptr, "arialn.ttf", gTrue},
+ {"ArialNarrow,Bold", nullptr, "arialnb.ttf", gTrue},
+ {"ArialNarrow,Italic", nullptr, "arialni.ttf", gTrue},
+ {"ArialNarrow,BoldItalic", nullptr, "arialnbi.ttf", gTrue},
+ {"ArialNarrow-Bold", nullptr, "arialnb.ttf", gTrue},
+ {"ArialNarrow-Italic", nullptr, "arialni.ttf", gTrue},
+ {"ArialNarrow-BoldItalic", nullptr, "arialnbi.ttf", gTrue},
+
+ {"HelveticaNarrow", nullptr, "arialn.ttf", gTrue},
+ {"HelveticaNarrow,Bold", nullptr, "arialnb.ttf", gTrue},
+ {"HelveticaNarrow,Italic", nullptr, "arialni.ttf", gTrue},
+ {"HelveticaNarrow,BoldItalic", nullptr, "arialnbi.ttf", gTrue},
+ {"HelveticaNarrow-Bold", nullptr, "arialnb.ttf", gTrue},
+ {"HelveticaNarrow-Italic", nullptr, "arialni.ttf", gTrue},
+ {"HelveticaNarrow-BoldItalic", nullptr, "arialnbi.ttf", gTrue},
+
+ {"BookAntiqua", nullptr, "bkant.ttf", gTrue},
+ {"BookAntiqua,Bold", nullptr, "bkant.ttf", gTrue},
+ {"BookAntiqua,Italic", nullptr, "bkant.ttf", gTrue},
+ {"BookAntiqua,BoldItalic", nullptr, "bkant.ttf", gTrue},
+ {"BookAntiqua-Bold", nullptr, "bkant.ttf", gTrue},
+ {"BookAntiqua-Italic", nullptr, "bkant.ttf", gTrue},
+ {"BookAntiqua-BoldItalic", nullptr, "bkant.ttf", gTrue},
+
+ {"Verdana", nullptr, "verdana.ttf", gTrue},
+ {"Verdana,Bold", nullptr, "verdanab.ttf", gTrue},
+ {"Verdana,Italic", nullptr, "verdanai.ttf", gTrue},
+ {"Verdana,BoldItalic", nullptr, "verdanaz.ttf", gTrue},
+ {"Verdana-Bold", nullptr, "verdanab.ttf", gTrue},
+ {"Verdana-Italic", nullptr, "verdanai.ttf", gTrue},
+ {"Verdana-BoldItalic", nullptr, "verdanaz.ttf", gTrue},
+
+ {"Tahoma", nullptr, "tahoma.ttf", gTrue},
+ {"Tahoma,Bold", nullptr, "tahomabd.ttf", gTrue},
+ {"Tahoma,Italic", nullptr, "tahoma.ttf", gTrue},
+ {"Tahoma,BoldItalic", nullptr, "tahomabd.ttf", gTrue},
+ {"Tahoma-Bold", nullptr, "tahomabd.ttf", gTrue},
+ {"Tahoma-Italic", nullptr, "tahoma.ttf", gTrue},
+ {"Tahoma-BoldItalic", nullptr, "tahomabd.ttf", gTrue},
+
+ {"CCRIKH+Verdana", nullptr, "verdana.ttf", gTrue},
+ {"CCRIKH+Verdana,Bold", nullptr, "verdanab.ttf", gTrue},
+ {"CCRIKH+Verdana,Italic", nullptr, "verdanai.ttf", gTrue},
+ {"CCRIKH+Verdana,BoldItalic", nullptr, "verdanaz.ttf", gTrue},
+ {"CCRIKH+Verdana-Bold", nullptr, "verdanab.ttf", gTrue},
+ {"CCRIKH+Verdana-Italic", nullptr, "verdanai.ttf", gTrue},
+ {"CCRIKH+Verdana-BoldItalic", nullptr, "verdanaz.ttf", gTrue},
+
+ {"Georgia", nullptr, "georgia.ttf", gTrue},
+ {"Georgia,Bold", nullptr, "georgiab.ttf", gTrue},
+ {"Georgia,Italic", nullptr, "georgiai.ttf", gTrue},
+ {"Georgia,BoldItalic", nullptr, "georgiaz.ttf", gTrue},
+ {"Georgia-Bold", nullptr, "georgiab.ttf", gTrue},
+ {"Georgia-Italic", nullptr, "georgiai.ttf", gTrue},
+ {"Georgia-BoldItalic", nullptr, "georgiaz.ttf", gTrue},
// fallback for Adobe CID fonts:
- {"MingLiU", NULL, "mingliu.ttf", gFalse},
- {"SimSun", NULL, "simsun.ttf", gFalse},
- {"MS-Mincho", NULL, "msmincho.ttf", gFalse},
- {"Batang", NULL, "batang.ttf", gFalse},
- {"ArialUnicode", NULL, "arialuni.ttf", gTrue},
- {NULL}
+ {"MingLiU", nullptr, "mingliu.ttf", gFalse},
+ {"SimSun", nullptr, "simsun.ttf", gFalse},
+ {"MS-Mincho", nullptr, "msmincho.ttf", gFalse},
+ {"Batang", nullptr, "batang.ttf", gFalse},
+ {"ArialUnicode", nullptr, "arialuni.ttf", gTrue},
+ { }
};
#define FONTS_SUBDIR "\\fonts"
@@ -200,14 +200,14 @@ static void GetWindowsFontDir(char *winFontDir, int cbWinFontDirLen)
SHGetFolderPathFunc = (HRESULT (__stdcall *)(HWND, int, HANDLE, DWORD, LPSTR))
GetProcAddress(hLib, "SHGetFolderPathA");
if (SHGetFolderPathFunc)
- (*SHGetFolderPathFunc)(NULL, CSIDL_FONTS, NULL, SHGFP_TYPE_CURRENT, winFontDir);
+ (*SHGetFolderPathFunc)(nullptr, CSIDL_FONTS, nullptr, SHGFP_TYPE_CURRENT, winFontDir);
if (!winFontDir[0]) {
// Try an older function
SHGetSpecialFolderPathFunc = (BOOL (__stdcall *)(HWND, LPSTR, int, BOOL))
GetProcAddress(hLib, "SHGetSpecialFolderPathA");
if (SHGetSpecialFolderPathFunc)
- (*SHGetSpecialFolderPathFunc)(NULL, winFontDir, CSIDL_FONTS, FALSE);
+ (*SHGetSpecialFolderPathFunc)(nullptr, winFontDir, CSIDL_FONTS, FALSE);
}
FreeLibrary(hLib);
}
@@ -220,7 +220,7 @@ static void GetWindowsFontDir(char *winFontDir, int cbWinFontDirLen)
SHGetFolderPathFunc = (HRESULT (__stdcall *)(HWND, int, HANDLE, DWORD, LPSTR))
GetProcAddress(hLib, "SHGetFolderPathA");
if (SHGetFolderPathFunc)
- (*SHGetFolderPathFunc)(NULL, CSIDL_FONTS, NULL, SHGFP_TYPE_CURRENT, winFontDir);
+ (*SHGetFolderPathFunc)(nullptr, CSIDL_FONTS, nullptr, SHGFP_TYPE_CURRENT, winFontDir);
FreeLibrary(hLib);
}
if (winFontDir[0])
@@ -268,7 +268,7 @@ void SysFontList::scanWindowsFonts(GooString *winFontDir) {
while (1) {
valNameLen = sizeof(valName) - 1;
dataLen = sizeof(data) - 1;
- if (RegEnumValueA(regKey, idx, valName, &valNameLen, NULL,
+ if (RegEnumValueA(regKey, idx, valName, &valNameLen, nullptr,
&type, (LPBYTE)data, &dataLen) != ERROR_SUCCESS) {
break;
}
@@ -411,7 +411,7 @@ static GooString* replaceSuffix(GooString *path,
void GlobalParams::setupBaseFonts(char * dir)
{
const char *dataRoot = popplerDataDir ? popplerDataDir : POPPLER_DATADIR;
- GooString *fileName = NULL;
+ GooString *fileName = nullptr;
GooFile *file;
if (baseFontsInitialized)
@@ -462,10 +462,10 @@ void GlobalParams::setupBaseFonts(char * dir)
// try to open file
file = GooFile::open(fileName);
- if (file != NULL) {
+ if (file != nullptr) {
Parser *parser;
- parser = new Parser(NULL,
- new Lexer(NULL,
+ parser = new Parser(nullptr,
+ new Lexer(nullptr,
new FileStream(file, 0, gFalse, file->size(), Object(objNull))),
gTrue);
Object obj1 = parser->getObj();
@@ -501,7 +501,7 @@ static const char *findSubstituteName(GfxFont *font, GooHash *fontFiles,
const char *origName)
{
assert(origName);
- if (!origName) return NULL;
+ if (!origName) return nullptr;
GooString *name2 = new GooString(origName);
int n = strlen(origName);
// remove trailing "-Identity-H"
@@ -515,7 +515,7 @@ static const char *findSubstituteName(GfxFont *font, GooHash *fontFiles,
n -= 11;
}
GooString *substName = (GooString *)substFiles->lookup(name2);
- if (substName != NULL) {
+ if (substName != nullptr) {
delete name2;
return substName->getCString();
}
@@ -525,7 +525,7 @@ static const char *findSubstituteName(GfxFont *font, GooHash *fontFiles,
if (font->isCIDFont()) {
GooString *collection = ((GfxCIDFont *)font)->getCollection();
- const char* name3 = NULL;
+ const char* name3 = nullptr;
if ( !collection->cmp("Adobe-CNS1") )
name3 = DEFAULT_CID_FONT_AC1_MSWIN;
else if ( !collection->cmp("Adobe-GB1") )
@@ -552,11 +552,11 @@ GooString *GlobalParams::findSystemFontFile(GfxFont *font,
int *fontNum, GooString *substituteFontName,
GooString *base14Name) {
SysFontInfo *fi;
- GooString *path = NULL;
+ GooString *path = nullptr;
GooString *fontName = font->getName();
- if (!fontName) return NULL;
+ if (!fontName) return nullptr;
lockGlobalParams;
- setupBaseFonts(NULL);
+ setupBaseFonts(nullptr);
// TODO: base14Name should be changed?
// In the system using FontConfig, findSystemFontFile() uses
@@ -572,7 +572,7 @@ GooString *GlobalParams::findSystemFontFile(GfxFont *font,
GooString *substFontName = new GooString(findSubstituteName(font, fontFiles,
substFiles,
fontName->getCString()));
- GooString *path2 = NULL;
+ GooString *path2 = nullptr;
error(errSyntaxError, -1, "Couldn't find a font for '{0:t}', subst is '{1:t}'", fontName, substFontName);
if ((path2 = (GooString *)fontFiles->lookup(substFontName))) {
path = new GooString(path2);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Hints.cc b/Build/source/libs/poppler/poppler-src/poppler/Hints.cc
index 270b6e43d3d..2f5fec6ccdd 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Hints.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Hints.cc
@@ -141,11 +141,11 @@ Hints::Hints(BaseStream *str, Linearization *linearization, XRef *xref, Security
memset(numSharedObject, 0, nPages * sizeof(Guint));
memset(pageObjectNum, 0, nPages * sizeof(int));
- groupLength = NULL;
- groupOffset = NULL;
- groupHasSignature = NULL;
- groupNumObjects = NULL;
- groupXRefOffset = NULL;
+ groupLength = nullptr;
+ groupOffset = nullptr;
+ groupHasSignature = nullptr;
+ groupNumObjects = nullptr;
+ groupXRefOffset = nullptr;
ok = gTrue;
readTables(str, linearization, xref, secHdlr);
@@ -209,7 +209,7 @@ void Hints::readTables(BaseStream *str, Linearization *linearization, XRef *xref
(num = obj.getInt(), obj = parser->getObj(), obj.isInt()) &&
(gen = obj.getInt(), obj = parser->getObj(), obj.isCmd("obj")) &&
(obj = parser->getObj(gFalse,
- secHdlr ? secHdlr->getFileKey() : (Guchar *)NULL,
+ secHdlr ? secHdlr->getFileKey() : (Guchar *)nullptr,
secHdlr ? secHdlr->getEncAlgorithm() : cryptRC4,
secHdlr ? secHdlr->getFileKeyLength() : 0,
num, gen, 0, gTrue), obj.isStream())) {
@@ -217,7 +217,7 @@ void Hints::readTables(BaseStream *str, Linearization *linearization, XRef *xref
Dict *hintsDict = obj.streamGetDict();
int sharedStreamOffset = 0;
- if (hintsDict->lookupInt("S", NULL, &sharedStreamOffset) &&
+ if (hintsDict->lookupInt("S", nullptr, &sharedStreamOffset) &&
sharedStreamOffset > 0) {
hintsStream->reset();
@@ -307,7 +307,7 @@ GBool Hints::readPageOffsetTable(Stream *str)
sbr.resetInputBits(); // reset on byte boundary. Not in specs!
numSharedObject[0] = sbr.readBits(nBitsNumShared);
numSharedObject[0] = 0; // Do not trust the read value to be 0.
- sharedObjectId[0] = NULL;
+ sharedObjectId[0] = nullptr;
for (int i = 1; i < nPages && !sbr.atEOF(); i++) {
numSharedObject[i] = sbr.readBits(nBitsNumShared);
if (numSharedObject[i] >= INT_MAX / (int)sizeof(Guint)) {
@@ -457,7 +457,7 @@ Goffset Hints::getPageOffset(int page)
std::vector<ByteRange>* Hints::getPageRanges(int page)
{
- if ((page < 1) || (page > nPages)) return NULL;
+ if ((page < 1) || (page > nPages)) return nullptr;
int idx;
if (page-1 > pageFirst)
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Hints.h b/Build/source/libs/poppler/poppler-src/poppler/Hints.h
index f9d05daefa7..a9062265365 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Hints.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Hints.h
@@ -5,7 +5,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright 2010 Hib Eris <hib@hiberis.nl>
-// Copyright 2010, 2013, 2016 Albert Astals Cid <aacid@kde.org>
+// Copyright 2010, 2013, 2016, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright 2013 Adrian Johnson <ajohnson@redneon.com>
//
//========================================================================
@@ -33,6 +33,9 @@ public:
Hints(BaseStream *str, Linearization *linearization, XRef *xref, SecurityHandler *secHdlr);
~Hints();
+ Hints(const Hints &) = delete;
+ Hints& operator=(const Hints &) = delete;
+
GBool isOk() const;
int getPageObjectNum(int page);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.cc b/Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.cc
index d23f7ea3887..b8bb3b90825 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.cc
@@ -88,7 +88,7 @@ int JArithmeticDecoder::switchTab[47] = {
};
JArithmeticDecoder::JArithmeticDecoder() {
- str = NULL;
+ str = nullptr;
dataLen = 0;
limitStream = gFalse;
nBytesRead = 0;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.h b/Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.h
index 3c3e6fed0e5..cb8f481f9b4 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/JArithmeticDecoder.h
@@ -8,6 +8,20 @@
//
//========================================================================
+//========================================================================
+//
+// Modified under the Poppler project - http://poppler.freedesktop.org
+//
+// All changes made under the Poppler project to this file are licensed
+// under GPL version 2 or later
+//
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
+//
+// To see a description of the changes please see the Changelog file that
+// came with your tarball or type make ChangeLog if you are building from git
+//
+//========================================================================
+
#ifndef JARITHMETICDECODER_H
#define JARITHMETICDECODER_H
@@ -28,6 +42,8 @@ public:
JArithmeticDecoderStats(int contextSizeA);
~JArithmeticDecoderStats();
+ JArithmeticDecoderStats(const JArithmeticDecoderStats &) = delete;
+ JArithmeticDecoderStats& operator=(const JArithmeticDecoderStats &) = delete;
JArithmeticDecoderStats *copy();
void reset();
int getContextSize() { return contextSize; }
@@ -51,6 +67,8 @@ public:
JArithmeticDecoder();
~JArithmeticDecoder();
+ JArithmeticDecoder(const JArithmeticDecoder &) = delete;
+ JArithmeticDecoder& operator=(const JArithmeticDecoder &) = delete;
void setStream(Stream *strA)
{ str = strA; dataLen = 0; limitStream = gFalse; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/JBIG2Stream.cc b/Build/source/libs/poppler/poppler-src/poppler/JBIG2Stream.cc
index bda7f42eb7c..ac7e7382c73 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/JBIG2Stream.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/JBIG2Stream.cc
@@ -15,7 +15,7 @@
//
// Copyright (C) 2006 Raj Kumar <rkumar@archive.org>
// Copyright (C) 2006 Paul Walmsley <paul@booyaka.com>
-// Copyright (C) 2006-2010, 2012, 2014-2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006-2010, 2012, 2014-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2009 David Benjamin <davidben@mit.edu>
// Copyright (C) 2011 Edward Jiang <ejiang@google.com>
// Copyright (C) 2012 William Bader <williambader@hotmail.com>
@@ -339,7 +339,7 @@ private:
};
JBIG2HuffmanDecoder::JBIG2HuffmanDecoder() {
- str = NULL;
+ str = nullptr;
reset();
}
@@ -482,7 +482,7 @@ private:
};
JBIG2MMRDecoder::JBIG2MMRDecoder() {
- str = NULL;
+ str = nullptr;
reset();
}
@@ -651,6 +651,8 @@ public:
JBIG2Segment(Guint segNumA) { segNum = segNumA; }
virtual ~JBIG2Segment() {}
+ JBIG2Segment(const JBIG2Segment &) = delete;
+ JBIG2Segment& operator=(const JBIG2Segment &) = delete;
void setSegNum(Guint segNumA) { segNum = segNumA; }
Guint getSegNum() { return segNum; }
virtual JBIG2SegmentType getType() = 0;
@@ -697,7 +699,7 @@ public:
void combine(JBIG2Bitmap *bitmap, int x, int y, Guint combOp);
Guchar *getDataPtr() { return data; }
int getDataSize() { return h * line; }
- GBool isOk() { return data != NULL; }
+ GBool isOk() { return data != nullptr; }
private:
@@ -716,12 +718,12 @@ JBIG2Bitmap::JBIG2Bitmap(Guint segNumA, int wA, int hA):
if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) {
error(errSyntaxError, -1, "invalid width/height");
- data = NULL;
+ data = nullptr;
return;
}
// need to allocate one extra guard byte for use in combine()
data = (Guchar *)gmalloc_checkoverflow(h * line + 1);
- if (data != NULL) {
+ if (data != nullptr) {
data[h * line] = 0;
}
}
@@ -729,10 +731,10 @@ JBIG2Bitmap::JBIG2Bitmap(Guint segNumA, int wA, int hA):
JBIG2Bitmap::JBIG2Bitmap(Guint segNumA, JBIG2Bitmap *bitmap):
JBIG2Segment(segNumA)
{
- if (unlikely(bitmap == NULL)) {
+ if (unlikely(bitmap == nullptr)) {
error(errSyntaxError, -1, "NULL bitmap in JBIG2Bitmap");
w = h = line = 0;
- data = NULL;
+ data = nullptr;
return;
}
@@ -742,7 +744,7 @@ JBIG2Bitmap::JBIG2Bitmap(Guint segNumA, JBIG2Bitmap *bitmap):
if (w <= 0 || h <= 0 || line <= 0 || h >= (INT_MAX - 1) / line) {
error(errSyntaxError, -1, "invalid width/height");
- data = NULL;
+ data = nullptr;
return;
}
// need to allocate one extra guard byte for use in combine()
@@ -776,7 +778,7 @@ JBIG2Bitmap *JBIG2Bitmap::getSlice(Guint x, Guint y, Guint wA, Guint hA) {
}
} else {
delete slice;
- slice = NULL;
+ slice = nullptr;
}
return slice;
}
@@ -785,7 +787,7 @@ void JBIG2Bitmap::expand(int newH, Guint pixel) {
if (newH <= h || line <= 0 || newH >= (INT_MAX - 1) / line) {
error(errSyntaxError, -1, "invalid width/height");
gfree(data);
- data = NULL;
+ data = nullptr;
return;
}
// need to allocate one extra guard byte for use in combine()
@@ -809,7 +811,7 @@ void JBIG2Bitmap::clearToOne() {
inline void JBIG2Bitmap::getPixelPtr(int x, int y, JBIG2BitmapPtr *ptr) {
if (y < 0 || y >= h || x >= w) {
- ptr->p = NULL;
+ ptr->p = nullptr;
ptr->shift = 0; // make gcc happy
ptr->x = 0; // make gcc happy
} else if (x < 0) {
@@ -834,7 +836,7 @@ inline int JBIG2Bitmap::nextPixel(JBIG2BitmapPtr *ptr) {
} else {
pix = (*ptr->p >> ptr->shift) & 1;
if (++ptr->x == w) {
- ptr->p = NULL;
+ ptr->p = nullptr;
} else if (ptr->shift == 0) {
++ptr->p;
ptr->shift = 7;
@@ -1055,7 +1057,7 @@ public:
Guint getSize() { return size; }
void setBitmap(Guint idx, JBIG2Bitmap *bitmap) { bitmaps[idx] = bitmap; }
JBIG2Bitmap *getBitmap(Guint idx) { return bitmaps[idx]; }
- GBool isOk() { return bitmaps != NULL; }
+ GBool isOk() { return bitmaps != nullptr; }
void setGenericRegionStats(JArithmeticDecoderStats *stats)
{ genericRegionStats = stats; }
void setRefinementRegionStats(JArithmeticDecoderStats *stats)
@@ -1082,10 +1084,10 @@ JBIG2SymbolDict::JBIG2SymbolDict(Guint segNumA, Guint sizeA):
bitmaps = (JBIG2Bitmap **)gmallocn_checkoverflow(size, sizeof(JBIG2Bitmap *));
if (!bitmaps) size = 0;
for (i = 0; i < size; ++i) {
- bitmaps[i] = NULL;
+ bitmaps[i] = nullptr;
}
- genericRegionStats = NULL;
- refinementRegionStats = NULL;
+ genericRegionStats = nullptr;
+ refinementRegionStats = nullptr;
}
JBIG2SymbolDict::~JBIG2SymbolDict() {
@@ -1115,7 +1117,7 @@ public:
JBIG2SegmentType getType() override { return jbig2SegPatternDict; }
Guint getSize() { return size; }
void setBitmap(Guint idx, JBIG2Bitmap *bitmap) { if (likely(idx < size)) bitmaps[idx] = bitmap; }
- JBIG2Bitmap *getBitmap(Guint idx) { return (idx < size) ? bitmaps[idx] : NULL; }
+ JBIG2Bitmap *getBitmap(Guint idx) { return (idx < size) ? bitmaps[idx] : nullptr; }
private:
@@ -1178,7 +1180,7 @@ JBIG2CodeTable::~JBIG2CodeTable() {
JBIG2Stream::JBIG2Stream(Stream *strA, Object *globalsStreamA, Object *globalsStreamRefA):
FilterStream(strA)
{
- pageBitmap = NULL;
+ pageBitmap = nullptr;
arithDecoder = new JArithmeticDecoder();
genericRegionStats = new JArithmeticDecoderStats(1 << 1);
@@ -1206,9 +1208,9 @@ JBIG2Stream::JBIG2Stream(Stream *strA, Object *globalsStreamA, Object *globalsSt
globalsStreamRef = globalsStreamRefA->getRef();
}
- segments = globalSegments = NULL;
- curStr = NULL;
- dataPtr = dataEnd = NULL;
+ segments = globalSegments = nullptr;
+ curStr = nullptr;
+ dataPtr = dataEnd = nullptr;
}
JBIG2Stream::~JBIG2Stream() {
@@ -1262,24 +1264,24 @@ void JBIG2Stream::reset() {
dataPtr = pageBitmap->getDataPtr();
dataEnd = dataPtr + pageBitmap->getDataSize();
} else {
- dataPtr = dataEnd = NULL;
+ dataPtr = dataEnd = nullptr;
}
}
void JBIG2Stream::close() {
if (pageBitmap) {
delete pageBitmap;
- pageBitmap = NULL;
+ pageBitmap = nullptr;
}
if (segments) {
deleteGooList(segments, JBIG2Segment);
- segments = NULL;
+ segments = nullptr;
}
if (globalSegments) {
deleteGooList(globalSegments, JBIG2Segment);
- globalSegments = NULL;
+ globalSegments = nullptr;
}
- dataPtr = dataEnd = NULL;
+ dataPtr = dataEnd = nullptr;
FilterStream::close();
}
@@ -1298,7 +1300,7 @@ int JBIG2Stream::lookChar() {
}
Goffset JBIG2Stream::getPos() {
- if (pageBitmap == NULL) {
+ if (pageBitmap == nullptr) {
return 0;
}
return dataPtr - pageBitmap->getDataPtr();
@@ -1322,7 +1324,7 @@ int JBIG2Stream::getChars(int nChars, Guchar *buffer) {
}
GooString *JBIG2Stream::getPSFilter(int psLevel, const char *indent) {
- return NULL;
+ return nullptr;
}
GBool JBIG2Stream::isBinary(GBool last) {
@@ -1335,7 +1337,6 @@ void JBIG2Stream::readSegments() {
Guint *refSegs;
Goffset segDataPos;
int c1, c2, c3;
- Guint i;
while (readULong(&segNum)) {
@@ -1358,7 +1359,7 @@ void JBIG2Stream::readSegments() {
}
refFlags = (refFlags << 24) | (c1 << 16) | (c2 << 8) | c3;
nRefSegs = refFlags & 0x1fffffff;
- for (i = 0; i < (nRefSegs + 9) >> 3; ++i) {
+ for (Guint i = 0; i < (nRefSegs + 9) >> 3; ++i) {
if ((c1 = curStr->getChar()) == EOF) {
goto eofError1;
}
@@ -1368,19 +1369,19 @@ void JBIG2Stream::readSegments() {
// referred-to segment numbers
refSegs = (Guint *)gmallocn(nRefSegs, sizeof(Guint));
if (segNum <= 256) {
- for (i = 0; i < nRefSegs; ++i) {
+ for (Guint i = 0; i < nRefSegs; ++i) {
if (!readUByte(&refSegs[i])) {
goto eofError2;
}
}
} else if (segNum <= 65536) {
- for (i = 0; i < nRefSegs; ++i) {
+ for (Guint i = 0; i < nRefSegs; ++i) {
if (!readUWord(&refSegs[i])) {
goto eofError2;
}
}
} else {
- for (i = 0; i < nRefSegs; ++i) {
+ for (Guint i = 0; i < nRefSegs; ++i) {
if (!readULong(&refSegs[i])) {
goto eofError2;
}
@@ -1482,7 +1483,7 @@ void JBIG2Stream::readSegments() {
break;
default:
error(errSyntaxError, curStr->getPos(), "Unknown segment type in JBIG2 stream");
- for (i = 0; i < segLength; ++i) {
+ for (Guint i = 0; i < segLength; ++i) {
if ((c1 = curStr->getChar()) == EOF) {
goto eofError2;
}
@@ -1567,7 +1568,7 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
Guint i, j, k;
Guchar *p;
- symWidths = NULL;
+ symWidths = nullptr;
// symbol dictionary flags
if (!readUWord(&flags)) {
@@ -1674,13 +1675,13 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
goto eofError;
}
for (i = 0; i < numInputSyms + numNewSyms; ++i) {
- bitmaps[i] = NULL;
+ bitmaps[i] = nullptr;
}
k = 0;
- inputSymbolDict = NULL;
+ inputSymbolDict = nullptr;
for (i = 0; i < nRefSegs; ++i) {
seg = findSegment(refSegs[i]);
- if (seg != NULL && seg->getType() == jbig2SegSymbolDict) {
+ if (seg != nullptr && seg->getType() == jbig2SegSymbolDict) {
inputSymbolDict = (JBIG2SymbolDict *)seg;
for (j = 0; j < inputSymbolDict->getSize(); ++j) {
bitmaps[k++] = inputSymbolDict->getBitmap(j);
@@ -1689,8 +1690,8 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
}
// get the Huffman tables
- huffDHTable = huffDWTable = NULL; // make gcc happy
- huffBMSizeTable = huffAggInstTable = NULL; // make gcc happy
+ huffDHTable = huffDWTable = nullptr; // make gcc happy
+ huffBMSizeTable = huffAggInstTable = nullptr; // make gcc happy
i = 0;
if (huff) {
if (huffDH == 0) {
@@ -1743,7 +1744,7 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
if (contextUsed && inputSymbolDict) {
resetGenericStats(sdTemplate, inputSymbolDict->getGenericRegionStats());
} else {
- resetGenericStats(sdTemplate, NULL);
+ resetGenericStats(sdTemplate, nullptr);
}
resetIntStats(symCodeLen);
arithDecoder->start();
@@ -1755,7 +1756,7 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
resetRefinementStats(sdrTemplate,
inputSymbolDict->getRefinementRegionStats());
} else {
- resetRefinementStats(sdrTemplate, NULL);
+ resetRefinementStats(sdrTemplate, nullptr);
}
}
@@ -1850,7 +1851,7 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
goto syntaxError;
}
refBitmap = bitmaps[symID];
- if (unlikely(refBitmap == NULL)) {
+ if (unlikely(refBitmap == nullptr)) {
error(errSyntaxError, curStr->getPos(), "Invalid ref bitmap for symbol ID {0:ud} in JBIG2 symbol dictionary", symID);
goto syntaxError;
}
@@ -1863,7 +1864,7 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
} else {
bitmaps[numInputSyms + i] =
readTextRegion(huff, gTrue, symWidth, symHeight,
- refAggNum, 0, numInputSyms + i, NULL,
+ refAggNum, 0, numInputSyms + i, nullptr,
symCodeLen, bitmaps, 0, 0, 0, 1, 0,
huffTableF, huffTableH, huffTableK, huffTableO,
huffTableO, huffTableO, huffTableO, huffTableA,
@@ -1874,7 +1875,7 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
} else {
bitmaps[numInputSyms + i] =
readGenericBitmap(gFalse, symWidth, symHeight,
- sdTemplate, gFalse, gFalse, NULL,
+ sdTemplate, gFalse, gFalse, nullptr,
sdATX, sdATY, 0);
}
@@ -1889,7 +1890,7 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
collBitmap = new JBIG2Bitmap(0, totalWidth, symHeight);
bmSize = symHeight * ((totalWidth + 7) >> 3);
p = collBitmap->getDataPtr();
- if (unlikely(p == NULL)) {
+ if (unlikely(p == nullptr)) {
delete collBitmap;
goto syntaxError;
}
@@ -1901,10 +1902,10 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
}
} else {
collBitmap = readGenericBitmap(gTrue, totalWidth, symHeight,
- 0, gFalse, gFalse, NULL, NULL, NULL,
+ 0, gFalse, gFalse, nullptr, nullptr, nullptr,
bmSize);
}
- if (likely(collBitmap != NULL)) {
+ if (likely(collBitmap != nullptr)) {
x = 0;
for (; j < i; ++j) {
bitmaps[numInputSyms + j] =
@@ -1938,7 +1939,7 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
if (i + run > numInputSyms + numNewSyms ||
(ex && j + run > numExSyms)) {
error(errSyntaxError, curStr->getPos(), "Too many exported symbols in JBIG2 symbol dictionary");
- for ( ; j < numExSyms; ++j) symbolDict->setBitmap(j, NULL);
+ for ( ; j < numExSyms; ++j) symbolDict->setBitmap(j, nullptr);
delete symbolDict;
goto syntaxError;
}
@@ -1953,7 +1954,7 @@ GBool JBIG2Stream::readSymbolDictSeg(Guint segNum, Guint length,
}
if (j != numExSyms) {
error(errSyntaxError, curStr->getPos(), "Too few symbols in JBIG2 symbol dictionary");
- for ( ; j < numExSyms; ++j) symbolDict->setBitmap(j, NULL);
+ for ( ; j < numExSyms; ++j) symbolDict->setBitmap(j, nullptr);
delete symbolDict;
goto syntaxError;
}
@@ -2117,9 +2118,9 @@ void JBIG2Stream::readTextRegionSeg(Guint segNum, GBool imm,
}
// get the Huffman tables
- huffFSTable = huffDSTable = huffDTTable = NULL; // make gcc happy
- huffRDWTable = huffRDHTable = NULL; // make gcc happy
- huffRDXTable = huffRDYTable = huffRSizeTable = NULL; // make gcc happy
+ huffFSTable = huffDSTable = huffDTTable = nullptr; // make gcc happy
+ huffRDWTable = huffRDHTable = nullptr; // make gcc happy
+ huffRDXTable = huffRDYTable = huffRSizeTable = nullptr; // make gcc happy
i = 0;
if (huff) {
if (huffFS == 0) {
@@ -2258,12 +2259,12 @@ void JBIG2Stream::readTextRegionSeg(Guint segNum, GBool imm,
// set up the arithmetic decoder
} else {
- symCodeTab = NULL;
+ symCodeTab = nullptr;
resetIntStats(symCodeLen);
arithDecoder->start();
}
if (refine) {
- resetRefinementStats(templ, NULL);
+ resetRefinementStats(templ, nullptr);
}
bitmap = readTextRegion(huff, refine, w, h, numInstances,
@@ -2344,7 +2345,7 @@ JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine,
bitmap = new JBIG2Bitmap(0, w, h);
if (!bitmap->isOk()) {
delete bitmap;
- return NULL;
+ return nullptr;
}
if (defPixel) {
bitmap->clearToOne();
@@ -2413,12 +2414,12 @@ JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine,
if (unlikely(numInstances - inst > 0x800)) {
// don't loop too often with damaged JBIg2 streams
delete bitmap;
- return NULL;
+ return nullptr;
}
} else {
// get the symbol bitmap
- symbolBitmap = NULL;
+ symbolBitmap = nullptr;
if (refine) {
if (huff) {
ri = (int)huffDecoder->readBit();
@@ -2472,7 +2473,7 @@ JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine,
delete symbolBitmap;
}
delete bitmap;
- return NULL;
+ return nullptr;
}
bh = symbolBitmap->getHeight() - 1;
if (transposed) {
@@ -2482,7 +2483,7 @@ JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine,
delete symbolBitmap;
}
delete bitmap;
- return NULL;
+ return nullptr;
}
switch (refCorner) {
case 0: // bottom left
@@ -2508,7 +2509,7 @@ JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine,
delete symbolBitmap;
}
delete bitmap;
- return NULL;
+ return nullptr;
}
bitmap->combine(symbolBitmap, s, tt - bh, combOp);
break;
@@ -2519,7 +2520,7 @@ JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine,
delete symbolBitmap;
}
delete bitmap;
- return NULL;
+ return nullptr;
}
bitmap->combine(symbolBitmap, s, tt, combOp);
break;
@@ -2530,7 +2531,7 @@ JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine,
delete symbolBitmap;
}
delete bitmap;
- return NULL;
+ return nullptr;
}
bitmap->combine(symbolBitmap, s, tt - bh, combOp);
break;
@@ -2541,7 +2542,7 @@ JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine,
delete symbolBitmap;
}
delete bitmap;
- return NULL;
+ return nullptr;
}
bitmap->combine(symbolBitmap, s, tt, combOp);
break;
@@ -2554,7 +2555,7 @@ JBIG2Bitmap *JBIG2Stream::readTextRegion(GBool huff, GBool refine,
} else {
// NULL symbolBitmap only happens on error
delete bitmap;
- return NULL;
+ return nullptr;
}
}
@@ -2597,7 +2598,7 @@ void JBIG2Stream::readPatternDictSeg(Guint segNum, Guint length) {
// set up the arithmetic decoder
if (!mmr) {
- resetGenericStats(templ, NULL);
+ resetGenericStats(templ, nullptr);
arithDecoder->start();
}
@@ -2607,7 +2608,7 @@ void JBIG2Stream::readPatternDictSeg(Guint segNum, Guint length) {
atx[2] = 2; aty[2] = -2;
atx[3] = -2; aty[3] = -2;
bitmap = readGenericBitmap(mmr, (grayMax + 1) * patternW, patternH,
- templ, gFalse, gFalse, NULL,
+ templ, gFalse, gFalse, nullptr,
atx, aty, length - 7);
if (!bitmap)
@@ -2688,7 +2689,7 @@ void JBIG2Stream::readHalftoneRegionSeg(Guint segNum, GBool imm,
return;
}
seg = findSegment(refSegs[0]);
- if (seg == NULL || seg->getType() != jbig2SegPatternDict) {
+ if (seg == nullptr || seg->getType() != jbig2SegPatternDict) {
error(errSyntaxError, curStr->getPos(), "Bad symbol dictionary reference in JBIG2 halftone segment");
return;
}
@@ -2707,7 +2708,7 @@ void JBIG2Stream::readHalftoneRegionSeg(Guint segNum, GBool imm,
}
}
patternBitmap = patternDict->getBitmap(0);
- if (unlikely(patternBitmap == NULL)) {
+ if (unlikely(patternBitmap == nullptr)) {
error(errSyntaxError, curStr->getPos(), "Bad pattern bitmap");
return;
}
@@ -2716,7 +2717,7 @@ void JBIG2Stream::readHalftoneRegionSeg(Guint segNum, GBool imm,
// set up the arithmetic decoder
if (!mmr) {
- resetGenericStats(templ, NULL);
+ resetGenericStats(templ, nullptr);
arithDecoder->start();
}
@@ -2729,7 +2730,7 @@ void JBIG2Stream::readHalftoneRegionSeg(Guint segNum, GBool imm,
}
// compute the skip bitmap
- skipBitmap = NULL;
+ skipBitmap = nullptr;
if (enableSkip) {
skipBitmap = new JBIG2Bitmap(0, gridW, gridH);
skipBitmap->clearToZero();
@@ -2774,7 +2775,7 @@ void JBIG2Stream::readHalftoneRegionSeg(Guint segNum, GBool imm,
for (n = 0; n < gridW; ++n) {
if (!(enableSkip && skipBitmap->getPixel(n, m))) {
patternBitmap = patternDict->getBitmap(grayImg[i]);
- if (unlikely(patternBitmap == NULL)) {
+ if (unlikely(patternBitmap == nullptr)) {
delete skipBitmap;
delete bitmap;
gfree(grayImg);
@@ -2859,13 +2860,13 @@ void JBIG2Stream::readGenericRegionSeg(Guint segNum, GBool imm,
// set up the arithmetic decoder
if (!mmr) {
- resetGenericStats(templ, NULL);
+ resetGenericStats(templ, nullptr);
arithDecoder->start();
}
// read the bitmap
bitmap = readGenericBitmap(mmr, w, h, templ, tpgdOn, gFalse,
- NULL, atx, aty, mmr ? length - 18 : 0);
+ nullptr, atx, aty, mmr ? length - 18 : 0);
if (!bitmap)
return;
@@ -2953,7 +2954,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
bitmap = new JBIG2Bitmap(0, w, h);
if (!bitmap->isOk()) {
delete bitmap;
- return NULL;
+ return nullptr;
}
bitmap->clearToZero();
@@ -2965,7 +2966,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
if (w > INT_MAX - 2) {
error(errSyntaxError, curStr->getPos(), "Bad width in JBIG2 generic bitmap");
delete bitmap;
- return NULL;
+ return nullptr;
}
// 0 <= codingLine[0] < codingLine[1] < ... < codingLine[n] = w
// ---> max codingLine size = w + 1
@@ -3224,11 +3225,11 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
p0 = bitmap->getDataPtr() + (y - 2) * bitmap->getLineSize();
buf0 = *p0++ << 8;
} else {
- p0 = NULL;
+ p0 = nullptr;
buf0 = 0;
}
} else {
- p1 = p0 = NULL;
+ p1 = p0 = nullptr;
buf1 = buf0 = 0;
}
@@ -3241,7 +3242,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
atP0 = bitmap->getDataPtr() + (y + aty[0]) * bitmap->getLineSize();
atBuf0 = *atP0++ << 8;
} else {
- atP0 = NULL;
+ atP0 = nullptr;
atBuf0 = 0;
}
atShift0 = 15 - atx[0];
@@ -3249,7 +3250,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
atP1 = bitmap->getDataPtr() + (y + aty[1]) * bitmap->getLineSize();
atBuf1 = *atP1++ << 8;
} else {
- atP1 = NULL;
+ atP1 = nullptr;
atBuf1 = 0;
}
atShift1 = 15 - atx[1];
@@ -3257,7 +3258,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
atP2 = bitmap->getDataPtr() + (y + aty[2]) * bitmap->getLineSize();
atBuf2 = *atP2++ << 8;
} else {
- atP2 = NULL;
+ atP2 = nullptr;
atBuf2 = 0;
}
atShift2 = 15 - atx[2];
@@ -3265,7 +3266,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
atP3 = bitmap->getDataPtr() + (y + aty[3]) * bitmap->getLineSize();
atBuf3 = *atP3++ << 8;
} else {
- atP3 = NULL;
+ atP3 = nullptr;
atBuf3 = 0;
}
atShift3 = 15 - atx[3];
@@ -3393,11 +3394,11 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
p0 = bitmap->getDataPtr() + (y - 2) * bitmap->getLineSize();
buf0 = *p0++ << 8;
} else {
- p0 = NULL;
+ p0 = nullptr;
buf0 = 0;
}
} else {
- p1 = p0 = NULL;
+ p1 = p0 = nullptr;
buf1 = buf0 = 0;
}
@@ -3408,7 +3409,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
atP0 = bitmap->getDataPtr() + atY * bitmap->getLineSize();
atBuf0 = *atP0++ << 8;
} else {
- atP0 = NULL;
+ atP0 = nullptr;
atBuf0 = 0;
}
atShift0 = 15 - atx[0];
@@ -3509,11 +3510,11 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
p0 = bitmap->getDataPtr() + (y - 2) * bitmap->getLineSize();
buf0 = *p0++ << 8;
} else {
- p0 = NULL;
+ p0 = nullptr;
buf0 = 0;
}
} else {
- p1 = p0 = NULL;
+ p1 = p0 = nullptr;
buf1 = buf0 = 0;
}
@@ -3524,7 +3525,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
atP0 = bitmap->getDataPtr() + atY * bitmap->getLineSize();
atBuf0 = *atP0++ << 8;
} else {
- atP0 = NULL;
+ atP0 = nullptr;
atBuf0 = 0;
}
atShift0 = 15 - atx[0];
@@ -3622,7 +3623,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
p1 = bitmap->getDataPtr() + (y - 1) * bitmap->getLineSize();
buf1 = *p1++ << 8;
} else {
- p1 = NULL;
+ p1 = nullptr;
buf1 = 0;
}
@@ -3633,7 +3634,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericBitmap(GBool mmr, int w, int h,
atP0 = bitmap->getDataPtr() + atY * bitmap->getLineSize();
atBuf0 = *atP0++ << 8;
} else {
- atP0 = NULL;
+ atP0 = nullptr;
atBuf0 = 0;
}
atShift0 = 15 - atx[0];
@@ -3765,7 +3766,7 @@ void JBIG2Stream::readGenericRefinementRegionSeg(Guint segNum, GBool imm,
}
if (nRefSegs == 1) {
seg = findSegment(refSegs[0]);
- if (seg == NULL || seg->getType() != jbig2SegBitmap) {
+ if (seg == nullptr || seg->getType() != jbig2SegBitmap) {
error(errSyntaxError, curStr->getPos(), "Bad bitmap reference in JBIG2 generic refinement segment");
return;
}
@@ -3775,7 +3776,7 @@ void JBIG2Stream::readGenericRefinementRegionSeg(Guint segNum, GBool imm,
}
// set up the arithmetic decoder
- resetRefinementStats(templ, NULL);
+ resetRefinementStats(templ, nullptr);
arithDecoder->start();
// read
@@ -3818,16 +3819,16 @@ JBIG2Bitmap *JBIG2Stream::readGenericRefinementRegion(int w, int h,
JBIG2Bitmap *bitmap;
GBool ltp;
Guint ltpCX, cx, cx0, cx2, cx3, cx4, tpgrCX0, tpgrCX1, tpgrCX2;
- JBIG2BitmapPtr cxPtr0 = {0};
- JBIG2BitmapPtr cxPtr1 = {0};
- JBIG2BitmapPtr cxPtr2 = {0};
- JBIG2BitmapPtr cxPtr3 = {0};
- JBIG2BitmapPtr cxPtr4 = {0};
- JBIG2BitmapPtr cxPtr5 = {0};
- JBIG2BitmapPtr cxPtr6 = {0};
- JBIG2BitmapPtr tpgrCXPtr0 = {0};
- JBIG2BitmapPtr tpgrCXPtr1 = {0};
- JBIG2BitmapPtr tpgrCXPtr2 = {0};
+ JBIG2BitmapPtr cxPtr0 = {nullptr, 0, 0};
+ JBIG2BitmapPtr cxPtr1 = {nullptr, 0, 0};
+ JBIG2BitmapPtr cxPtr2 = {nullptr, 0, 0};
+ JBIG2BitmapPtr cxPtr3 = {nullptr, 0, 0};
+ JBIG2BitmapPtr cxPtr4 = {nullptr, 0, 0};
+ JBIG2BitmapPtr cxPtr5 = {nullptr, 0, 0};
+ JBIG2BitmapPtr cxPtr6 = {nullptr, 0, 0};
+ JBIG2BitmapPtr tpgrCXPtr0 = {nullptr, 0, 0};
+ JBIG2BitmapPtr tpgrCXPtr1 = {nullptr, 0, 0};
+ JBIG2BitmapPtr tpgrCXPtr2 = {nullptr, 0, 0};
int x, y, pix;
if (!refBitmap) {
@@ -3838,7 +3839,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericRefinementRegion(int w, int h,
if (!bitmap->isOk())
{
delete bitmap;
- return NULL;
+ return nullptr;
}
bitmap->clearToZero();
@@ -3881,7 +3882,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericRefinementRegion(int w, int h,
tpgrCX2 = (tpgrCX2 << 1) | refBitmap->nextPixel(&tpgrCXPtr2);
tpgrCX2 = (tpgrCX2 << 1) | refBitmap->nextPixel(&tpgrCXPtr2);
} else {
- tpgrCXPtr0.p = tpgrCXPtr1.p = tpgrCXPtr2.p = NULL; // make gcc happy
+ tpgrCXPtr0.p = tpgrCXPtr1.p = tpgrCXPtr2.p = nullptr; // make gcc happy
tpgrCXPtr0.shift = tpgrCXPtr1.shift = tpgrCXPtr2.shift = 0;
tpgrCXPtr0.x = tpgrCXPtr1.x = tpgrCXPtr2.x = 0;
}
@@ -3956,7 +3957,7 @@ JBIG2Bitmap *JBIG2Stream::readGenericRefinementRegion(int w, int h,
tpgrCX2 = (tpgrCX2 << 1) | refBitmap->nextPixel(&tpgrCXPtr2);
tpgrCX2 = (tpgrCX2 << 1) | refBitmap->nextPixel(&tpgrCXPtr2);
} else {
- tpgrCXPtr0.p = tpgrCXPtr1.p = tpgrCXPtr2.p = NULL; // make gcc happy
+ tpgrCXPtr0.p = tpgrCXPtr1.p = tpgrCXPtr2.p = nullptr; // make gcc happy
tpgrCXPtr0.shift = tpgrCXPtr1.shift = tpgrCXPtr2.shift = 0;
tpgrCXPtr0.x = tpgrCXPtr1.x = tpgrCXPtr2.x = 0;
}
@@ -4026,7 +4027,7 @@ void JBIG2Stream::readPageInfoSeg(Guint length) {
if (!pageBitmap->isOk()) {
delete pageBitmap;
- pageBitmap = NULL;
+ pageBitmap = nullptr;
return;
}
@@ -4156,7 +4157,7 @@ JBIG2Segment *JBIG2Stream::findSegment(Guint segNum) {
return seg;
}
}
- return NULL;
+ return nullptr;
}
void JBIG2Stream::discardSegment(Guint segNum) {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/JPEG2000Stream.cc b/Build/source/libs/poppler/poppler-src/poppler/JPEG2000Stream.cc
index 078465a0393..93793d16960 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/JPEG2000Stream.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/JPEG2000Stream.cc
@@ -78,7 +78,7 @@ static inline int doGetChar(JPXStreamPrivate* priv) {
JPXStream::JPXStream(Stream *strA) : FilterStream(strA) {
priv = new JPXStreamPrivate;
priv->inited = gFalse;
- priv->image = NULL;
+ priv->image = nullptr;
priv->npixels = 0;
priv->ncomps = 0;
priv->indexed = gFalse;
@@ -96,9 +96,9 @@ void JPXStream::reset() {
}
void JPXStream::close() {
- if (priv->image != NULL) {
+ if (priv->image != nullptr) {
opj_image_destroy(priv->image);
- priv->image = NULL;
+ priv->image = nullptr;
priv->npixels = 0;
}
}
@@ -131,7 +131,7 @@ int JPXStream::lookChar() {
}
GooString *JPXStream::getPSFilter(int psLevel, const char *indent) {
- return NULL;
+ return nullptr;
}
GBool JPXStream::isBinary(GBool last) {
@@ -250,7 +250,7 @@ void JPXStream::init()
priv->ncomps = priv->image->numcomps;
if (alpha == 1 && priv->smaskInData == 0) priv->ncomps--;
for (int component = 0; component < priv->ncomps; component++) {
- if (priv->image->comps[component].data == NULL) {
+ if (priv->image->comps[component].data == nullptr) {
close();
break;
}
@@ -289,7 +289,7 @@ void JPXStreamPrivate::init2(OPJ_CODEC_FORMAT format, unsigned char *buf, int le
stream = opj_stream_default_create(OPJ_TRUE);
#if OPENJPEG_VERSION >= OPENJPEG_VERSION_ENCODE(2, 1, 0)
- opj_stream_set_user_data (stream, &jpxData, NULL);
+ opj_stream_set_user_data (stream, &jpxData, nullptr);
#else
opj_stream_set_user_data (stream, &jpxData);
#endif
@@ -310,14 +310,14 @@ void JPXStreamPrivate::init2(OPJ_CODEC_FORMAT format, unsigned char *buf, int le
/* Get the decoder handle of the format */
decoder = opj_create_decompress(format);
- if (decoder == NULL) {
+ if (decoder == nullptr) {
error(errSyntaxWarning, -1, "Unable to create decoder");
goto error;
}
/* Catch events using our callbacks */
- opj_set_warning_handler(decoder, libopenjpeg_warning_callback, NULL);
- opj_set_error_handler(decoder, libopenjpeg_error_callback, NULL);
+ opj_set_warning_handler(decoder, libopenjpeg_warning_callback, nullptr);
+ opj_set_error_handler(decoder, libopenjpeg_error_callback, nullptr);
/* Setup the decoder decoding parameters */
if (!opj_setup_decoder(decoder, &parameters)) {
@@ -326,7 +326,7 @@ void JPXStreamPrivate::init2(OPJ_CODEC_FORMAT format, unsigned char *buf, int le
}
/* Decode the stream and fill the image structure */
- image = NULL;
+ image = nullptr;
if (!opj_read_header(stream, decoder, &image)) {
error(errSyntaxWarning, -1, "Unable to read header");
goto error;
@@ -348,7 +348,7 @@ void JPXStreamPrivate::init2(OPJ_CODEC_FORMAT format, unsigned char *buf, int le
opj_destroy_codec(decoder);
opj_stream_destroy(stream);
- if (image != NULL)
+ if (image != nullptr)
return;
error:
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Lexer.cc b/Build/source/libs/poppler/poppler-src/poppler/Lexer.cc
index d2329b53631..a5090838e07 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Lexer.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Lexer.cc
@@ -13,7 +13,7 @@
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
-// Copyright (C) 2006-2010, 2012-2014, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006-2010, 2012-2014, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2006 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
// Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2012, 2013 Adrian Johnson <ajohnson@redneon.com>
@@ -86,7 +86,6 @@ Lexer::Lexer(XRef *xrefA, Object *obj) {
xref = xrefA;
if (obj->isStream()) {
- Object obj2;
streams = new Array(xref);
freeArray = gTrue;
streams->add(obj->copy());
@@ -97,12 +96,14 @@ Lexer::Lexer(XRef *xrefA, Object *obj) {
strPtr = 0;
if (streams->getLength() > 0) {
curStr = streams->get(strPtr);
- curStr.streamReset();
+ if (curStr.isStream()) {
+ curStr.streamReset();
+ }
}
}
Lexer::~Lexer() {
- if (!curStr.isNone()) {
+ if (curStr.isStream()) {
curStr.streamClose();
}
if (freeArray) {
@@ -120,7 +121,7 @@ int Lexer::getChar(GBool comesFromLook) {
}
c = EOF;
- while (!curStr.isNone() && (c = curStr.streamGetChar()) == EOF) {
+ while (curStr.isStream() && (c = curStr.streamGetChar()) == EOF) {
if (comesFromLook == gTrue) {
return EOF;
} else {
@@ -128,8 +129,10 @@ int Lexer::getChar(GBool comesFromLook) {
curStr = Object();
++strPtr;
if (strPtr < streams->getLength()) {
- curStr = streams->get(strPtr);
- curStr.streamReset();
+ curStr = streams->get(strPtr);
+ if (curStr.isStream()) {
+ curStr.streamReset();
+ }
}
}
}
@@ -279,7 +282,7 @@ Object Lexer::getObj(int objNum) {
n = 0;
numParen = 1;
done = gFalse;
- s = NULL;
+ s = nullptr;
do {
c2 = EOF;
switch (c = getChar()) {
@@ -376,7 +379,7 @@ Object Lexer::getObj(int objNum) {
n = 0;
// we are growing see if the document is not malformed and we are growing too much
- if (objNum > 0 && xref != NULL)
+ if (objNum > 0 && xref != nullptr)
{
int newObjNum = xref->getNumEntry(curStr.streamGetPos());
if (newObjNum != objNum)
@@ -407,7 +410,7 @@ Object Lexer::getObj(int objNum) {
case '/':
p = tokBuf;
n = 0;
- s = NULL;
+ s = nullptr;
while ((c = lookChar()) != EOF && !specialChars[c]) {
getChar();
if (c == '#') {
@@ -483,7 +486,7 @@ Object Lexer::getObj(int objNum) {
p = tokBuf;
m = n = 0;
c2 = 0;
- s = NULL;
+ s = nullptr;
while (1) {
c = getChar();
if (c == '>') {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Lexer.h b/Build/source/libs/poppler/poppler-src/poppler/Lexer.h
index ac3334c500f..eb692a5c248 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Lexer.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Lexer.h
@@ -13,7 +13,7 @@
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
-// Copyright (C) 2006, 2007, 2010, 2013, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006, 2007, 2010, 2013, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2006 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
// Copyright (C) 2013 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
@@ -55,6 +55,9 @@ public:
// Destructor.
~Lexer();
+ Lexer(const Lexer &) = delete;
+ Lexer& operator=(const Lexer &) = delete;
+
// Get the next object from the input stream.
Object getObj(int objNum = -1);
Object getObj(const char *cmdA, int objNum);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Linearization.cc b/Build/source/libs/poppler/poppler-src/poppler/Linearization.cc
index 49008a31086..8886894f1ad 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Linearization.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Linearization.cc
@@ -23,8 +23,8 @@ Linearization::Linearization (BaseStream *str)
Parser *parser;
str->reset();
- parser = new Parser(NULL,
- new Lexer(NULL, str->makeSubStream(str->getStart(), gFalse, 0, Object(objNull))),
+ parser = new Parser(nullptr,
+ new Lexer(nullptr, str->makeSubStream(str->getStart(), gFalse, 0, Object(objNull))),
gFalse);
Object obj1 = parser->getObj();
Object obj2 = parser->getObj();
@@ -48,7 +48,7 @@ Guint Linearization::getLength()
if (!linDict.isDict()) return 0;
int length;
- if (linDict.getDict()->lookupInt("L", NULL, &length) &&
+ if (linDict.getDict()->lookupInt("L", nullptr, &length) &&
length > 0) {
return length;
} else {
@@ -139,7 +139,7 @@ int Linearization::getObjectNumberFirst()
{
int objectNumberFirst = 0;
if (linDict.isDict() &&
- linDict.getDict()->lookupInt("O", NULL, &objectNumberFirst) &&
+ linDict.getDict()->lookupInt("O", nullptr, &objectNumberFirst) &&
objectNumberFirst > 0) {
return objectNumberFirst;
} else {
@@ -152,7 +152,7 @@ Guint Linearization::getEndFirst()
{
int pageEndFirst = 0;
if (linDict.isDict() &&
- linDict.getDict()->lookupInt("E", NULL, &pageEndFirst) &&
+ linDict.getDict()->lookupInt("E", nullptr, &pageEndFirst) &&
pageEndFirst > 0) {
return pageEndFirst;
} else {
@@ -165,7 +165,7 @@ int Linearization::getNumPages()
{
int numPages = 0;
if (linDict.isDict() &&
- linDict.getDict()->lookupInt("N", NULL, &numPages) &&
+ linDict.getDict()->lookupInt("N", nullptr, &numPages) &&
numPages > 0) {
return numPages;
} else {
@@ -178,7 +178,7 @@ Guint Linearization::getMainXRefEntriesOffset()
{
int mainXRefEntriesOffset = 0;
if (linDict.isDict() &&
- linDict.getDict()->lookupInt("T", NULL, &mainXRefEntriesOffset) &&
+ linDict.getDict()->lookupInt("T", nullptr, &mainXRefEntriesOffset) &&
mainXRefEntriesOffset > 0) {
return mainXRefEntriesOffset;
} else {
@@ -192,7 +192,7 @@ int Linearization::getPageFirst()
int pageFirst = 0; // Optional, defaults to 0.
if (linDict.isDict()) {
- linDict.getDict()->lookupInt("P", NULL, &pageFirst);
+ linDict.getDict()->lookupInt("P", nullptr, &pageFirst);
}
if ((pageFirst < 0) || (pageFirst >= getNumPages())) {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Link.cc b/Build/source/libs/poppler/poppler-src/poppler/Link.cc
index a927c214f9a..326cfb97903 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Link.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Link.cc
@@ -57,7 +57,7 @@ LinkAction *LinkAction::parseDest(Object *obj) {
action = new LinkGoTo(obj);
if (!action->isOk()) {
delete action;
- return NULL;
+ return nullptr;
}
return action;
}
@@ -68,7 +68,7 @@ LinkAction *LinkAction::parseAction(Object *obj, GooString *baseURI) {
if (!obj->isDict()) {
error(errSyntaxWarning, -1, "parseAction: Bad annotation action for URI '{0:s}'",
baseURI ? baseURI->getCString() : "NULL");
- return NULL;
+ return nullptr;
}
Object obj2 = obj->dictLookup("S");
@@ -127,12 +127,12 @@ LinkAction *LinkAction::parseAction(Object *obj, GooString *baseURI) {
} else {
error(errSyntaxWarning, -1, "parseAction: Unknown annotation action object: URI = '{0:s}'",
baseURI ? baseURI->getCString() : "NULL");
- action = NULL;
+ action = nullptr;
}
if (action && !action->isOk()) {
delete action;
- return NULL;
+ return nullptr;
}
return action;
}
@@ -362,8 +362,8 @@ LinkDest::LinkDest(LinkDest *dest) {
//------------------------------------------------------------------------
LinkGoTo::LinkGoTo(Object *destObj) {
- dest = NULL;
- namedDest = NULL;
+ dest = nullptr;
+ namedDest = nullptr;
// named destination
if (destObj->isName()) {
@@ -376,7 +376,7 @@ LinkGoTo::LinkGoTo(Object *destObj) {
dest = new LinkDest(destObj->getArray());
if (!dest->isOk()) {
delete dest;
- dest = NULL;
+ dest = nullptr;
}
// error
@@ -397,9 +397,9 @@ LinkGoTo::~LinkGoTo() {
//------------------------------------------------------------------------
LinkGoToR::LinkGoToR(Object *fileSpecObj, Object *destObj) {
- fileName = NULL;
- dest = NULL;
- namedDest = NULL;
+ fileName = nullptr;
+ dest = nullptr;
+ namedDest = nullptr;
// get file name
Object obj1 = getFileSpecNameForPlatform (fileSpecObj);
@@ -418,7 +418,7 @@ LinkGoToR::LinkGoToR(Object *fileSpecObj, Object *destObj) {
dest = new LinkDest(destObj->getArray());
if (!dest->isOk()) {
delete dest;
- dest = NULL;
+ dest = nullptr;
}
// error
@@ -443,8 +443,8 @@ LinkGoToR::~LinkGoToR() {
LinkLaunch::LinkLaunch(Object *actionObj) {
- fileName = NULL;
- params = NULL;
+ fileName = nullptr;
+ params = nullptr;
if (actionObj->isDict()) {
Object obj1 = actionObj->dictLookup("F");
@@ -494,7 +494,7 @@ LinkURI::LinkURI(Object *uriObj, GooString *baseURI) {
int n;
char c;
- uri = NULL;
+ uri = nullptr;
if (uriObj->isString()) {
uri2 = uriObj->getString();
n = (int)strcspn(uri2->getCString(), "/:");
@@ -539,7 +539,7 @@ LinkURI::~LinkURI() {
//------------------------------------------------------------------------
LinkNamed::LinkNamed(Object *nameObj) {
- name = NULL;
+ name = nullptr;
if (nameObj->isName()) {
name = new GooString(nameObj->getName());
}
@@ -557,7 +557,7 @@ LinkNamed::~LinkNamed() {
LinkMovie::LinkMovie(Object *obj) {
annotRef.num = -1;
- annotTitle = NULL;
+ annotTitle = nullptr;
Object tmp = obj->dictLookupNF("Annotation");
if (tmp.isRef()) {
@@ -569,7 +569,7 @@ LinkMovie::LinkMovie(Object *obj) {
annotTitle = tmp.getString()->copy();
}
- if ((annotTitle == NULL) && (annotRef.num == -1)) {
+ if ((annotTitle == nullptr) && (annotRef.num == -1)) {
error(errSyntaxError, -1,
"Movie action is missing both the Annot and T keys");
}
@@ -608,7 +608,7 @@ LinkSound::LinkSound(Object *soundObj) {
sync = gFalse;
repeat = gFalse;
mix = gFalse;
- sound = NULL;
+ sound = nullptr;
if (soundObj->isDict())
{
// volume
@@ -647,8 +647,8 @@ LinkSound::~LinkSound() {
LinkRendition::LinkRendition(Object *obj) {
operation = NoRendition;
- media = NULL;
- js = NULL;
+ media = nullptr;
+ js = nullptr;
int operationCode = -1;
if (obj->isDict()) {
@@ -671,8 +671,6 @@ LinkRendition::LinkRendition(Object *obj) {
if (!js && (operationCode < 0 || operationCode > 4)) {
error(errSyntaxWarning, -1, "Invalid Rendition Action: unrecognized operation valued: {0:d}", operationCode);
} else {
- Object obj1;
-
// retrieve rendition object
renditionObj = obj->dictLookup("R");
if (renditionObj.isDict()) {
@@ -723,7 +721,7 @@ LinkRendition::~LinkRendition() {
//------------------------------------------------------------------------
LinkJavaScript::LinkJavaScript(Object *jsObj) {
- js = NULL;
+ js = nullptr;
if (jsObj->isString()) {
js = new GooString(jsObj->getString());
@@ -750,7 +748,7 @@ LinkOCGState::LinkOCGState(Object *obj) {
Object obj1 = obj->dictLookup("State");
if (obj1.isArray()) {
- StateList *stList = NULL;
+ StateList *stList = nullptr;
for (int i = 0; i < obj1.arrayGetLength(); ++i) {
Object obj2 = obj1.arrayGetNF(i);
@@ -770,7 +768,7 @@ LinkOCGState::LinkOCGState(Object *obj) {
} else {
error(errSyntaxWarning, -1, "Invalid name '{0:s}' in OCG Action state array", name);
delete stList;
- stList = NULL;
+ stList = nullptr;
}
} else if (obj2.isRef()) {
if (stList) {
@@ -792,7 +790,7 @@ LinkOCGState::LinkOCGState(Object *obj) {
} else {
error(errSyntaxWarning, -1, "Invalid OCGState action");
delete stateList;
- stateList = NULL;
+ stateList = nullptr;
}
obj1 = obj->dictLookup("PreserveRB");
@@ -831,7 +829,7 @@ Links::Links(Annots *annots) {
int size;
int i;
- links = NULL;
+ links = nullptr;
size = 0;
numLinks = 0;
@@ -870,7 +868,7 @@ LinkAction *Links::find(double x, double y) const {
return links[i]->getAction();
}
}
- return NULL;
+ return nullptr;
}
GBool Links::onLink(double x, double y) const {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Link.h b/Build/source/libs/poppler/poppler-src/poppler/Link.h
index df44a49ff41..05892cff43a 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Link.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Link.h
@@ -17,6 +17,7 @@
// Copyright (C) 2008 Hugo Mercier <hmercier31@gmail.com>
// Copyright (C) 2010, 2011 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2012 Tobias Koening <tobias.koenig@kdab.com>
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -62,6 +63,10 @@ enum LinkActionKind {
class LinkAction {
public:
+ LinkAction() = default;
+ LinkAction(const LinkAction &) = delete;
+ LinkAction& operator=(const LinkAction &other) = delete;
+
// Destructor.
virtual ~LinkAction() {}
@@ -429,8 +434,10 @@ public:
enum State { On, Off, Toggle};
struct StateList {
- StateList() { list = NULL; }
+ StateList() { list = nullptr; }
~StateList();
+ StateList(const StateList &) = delete;
+ StateList& operator=(const StateList &) = delete;
State st;
GooList *list;
};
@@ -481,6 +488,9 @@ public:
// Destructor.
~Links();
+ Links(const Links &) = delete;
+ Links& operator=(const Links &) = delete;
+
// Iterate through list of links.
int getNumLinks() const { return numLinks; }
AnnotLink *getLink(int i) const { return links[i]; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.cc
index 7fdd8f54c53..4920ad32526 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.cc
@@ -18,12 +18,12 @@
MarkedContentOutputDev::MarkedContentOutputDev(int mcidA):
- currentFont(NULL),
- currentText(NULL),
+ currentFont(nullptr),
+ currentText(nullptr),
mcid(mcidA),
pageWidth(0.0),
pageHeight(0.0),
- unicodeMap(NULL)
+ unicodeMap(nullptr)
{
currentColor.r = currentColor.g = currentColor.b = 0;
}
@@ -48,7 +48,7 @@ void MarkedContentOutputDev::endSpan()
currentFont,
currentColor));
}
- currentText = NULL;
+ currentText = nullptr;
}
@@ -73,7 +73,7 @@ void MarkedContentOutputDev::beginMarkedContent(char *name, Dict *properties)
{
int id = -1;
if (properties)
- properties->lookupInt("MCID", NULL, &id);
+ properties->lookupInt("MCID", nullptr, &id);
if (id == -1)
return;
@@ -102,9 +102,9 @@ bool MarkedContentOutputDev::needFontChange(GfxFont* font) const
return gFalse;
if (!currentFont)
- return font != NULL && font->isOk();
+ return font != nullptr && font->isOk();
- if (font == NULL)
+ if (font == nullptr)
return gTrue;
// Two non-null valid fonts are the same if they point to the same Ref
@@ -154,11 +154,11 @@ void MarkedContentOutputDev::drawChar(GfxState *state,
currentColor = color;
if (fontChange) {
- if (currentFont != NULL) {
+ if (currentFont != nullptr) {
currentFont->decRefCnt();
- currentFont = NULL;
+ currentFont = nullptr;
}
- if (state->getFont() != NULL) {
+ if (state->getFont() != nullptr) {
currentFont = state->getFont();
currentFont->incRefCnt();
}
@@ -197,7 +197,7 @@ void MarkedContentOutputDev::drawChar(GfxState *state,
char buf[8];
int n = unicodeMap->mapUnicode(u[i], buf, sizeof(buf));
if (n > 0) {
- if (currentText == NULL)
+ if (currentText == nullptr)
currentText = new GooString();
currentText->append(buf, n);
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.h b/Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.h
index 5b9de05fdbf..e2b69aede5a 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/MarkedContentOutputDev.h
@@ -5,6 +5,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright 2013 Igalia S.L.
+// Copyright 2018 Albert Astals Cid <aacid@kde.org>
//
//========================================================================
@@ -72,6 +73,9 @@ private:
font->decRefCnt();
delete text;
}
+
+ Data(const Data &) = delete;
+ Data& operator=(const Data &) = delete;
};
Data *data;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Movie.cc b/Build/source/libs/poppler/poppler-src/poppler/Movie.cc
index fa709b3b7db..3cc922ff378 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Movie.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Movie.cc
@@ -173,7 +173,7 @@ void MovieActivationParameters::parseMovieActivation(Object* aDict) {
}
void Movie::parseMovie (Object *movieDict) {
- fileName = NULL;
+ fileName = nullptr;
rotationAngle = 0;
width = -1;
height = -1;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Movie.h b/Build/source/libs/poppler/poppler-src/poppler/Movie.h
index c0fcd8f4ce5..65379167da1 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Movie.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Movie.h
@@ -5,7 +5,7 @@
//---------------------------------------------------------------------------------
// Hugo Mercier <hmercier31[at]gmail.com> (c) 2008
// Carlos Garcia Campos <carlosgc@gnome.org> (c) 2010
-// Albert Astals Cid <aacid@kde.org> (c) 2017
+// Albert Astals Cid <aacid@kde.org> (c) 2017, 2018
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -74,6 +74,7 @@ class Movie {
Movie(Object *objMovie);
Movie(const Movie &movie);
~Movie();
+ Movie& operator=(const Movie &) = delete;
GBool isOk() { return ok; }
MovieActivationParameters* getActivationParameters() { return &MA; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.cc b/Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.cc
index 5448dc4ce10..0ac7c7b6278 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.cc
@@ -32,7 +32,7 @@ NameToCharCode::NameToCharCode() {
len = 0;
tab = (NameToCharCodeEntry *)gmallocn(size, sizeof(NameToCharCodeEntry));
for (i = 0; i < size; ++i) {
- tab[i].name = NULL;
+ tab[i].name = nullptr;
}
}
@@ -58,7 +58,7 @@ void NameToCharCode::add(const char *name, CharCode c) {
size = 2*size + 1;
tab = (NameToCharCodeEntry *)gmallocn(size, sizeof(NameToCharCodeEntry));
for (h = 0; h < size; ++h) {
- tab[h].name = NULL;
+ tab[h].name = nullptr;
}
for (i = 0; i < oldSize; ++i) {
if (oldTab[i].name) {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.h b/Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.h
index 5b1092bb96b..da4c9c6ae7d 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/NameToCharCode.h
@@ -6,6 +6,20 @@
//
//========================================================================
+//========================================================================
+//
+// Modified under the Poppler project - http://poppler.freedesktop.org
+//
+// All changes made under the Poppler project to this file are licensed
+// under GPL version 2 or later
+//
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
+//
+// To see a description of the changes please see the Changelog file that
+// came with your tarball or type make ChangeLog if you are building from git
+//
+//========================================================================
+
#ifndef NAMETOCHARCODE_H
#define NAMETOCHARCODE_H
@@ -25,6 +39,9 @@ public:
NameToCharCode();
~NameToCharCode();
+ NameToCharCode(const NameToCharCode &) = delete;
+ NameToCharCode& operator=(const NameToCharCode &) = delete;
+
void add(const char *name, CharCode c);
CharCode lookup(const char *name);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/NameToUnicodeTable.h b/Build/source/libs/poppler/poppler-src/poppler/NameToUnicodeTable.h
index 827edbaee60..7345eabc6ba 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/NameToUnicodeTable.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/NameToUnicodeTable.h
@@ -4274,7 +4274,7 @@ static struct NameToUnicodeTab nameToUnicodeTextTab[] = {
{0x007c, "|"},
{0x007d, "}"},
{0x007e, "~"},
- { 0, NULL }
+ { 0, nullptr }
};
// map ZapfDingbats names to Unicode
@@ -4480,5 +4480,5 @@ static struct NameToUnicodeTab nameToUnicodeZapfDingbatsTab[] = {
{0x275c, "a98"},
{0x275d, "a99"},
{0x2720, "a9"},
- { 0, NULL }
+ { 0, nullptr }
};
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Object.h b/Build/source/libs/poppler/poppler-src/poppler/Object.h
index f2ca20d1559..87f1b24adc0 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Object.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Object.h
@@ -19,7 +19,7 @@
// Copyright (C) 2009 Jakub Wilk <jwilk@jwilk.net>
// Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
-// Copyright (C) 2013, 2017 Adrian Johnson <ajohnson@redneon.com>
+// Copyright (C) 2013, 2017, 2018 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2013 Adrian Perez de Castro <aperez@igalia.com>
// Copyright (C) 2016 Jakub Alba <jakubalba@gmail.com>
//
@@ -86,6 +86,14 @@ struct Ref {
int gen; // generation number
};
+struct RefCompare {
+ bool operator() (const Ref& lhs, const Ref& rhs) const {
+ if (lhs.num != rhs.num)
+ return lhs.num < rhs.num;
+ return lhs.gen < rhs.gen;
+ }
+};
+
//------------------------------------------------------------------------
// object types
//------------------------------------------------------------------------
@@ -137,7 +145,7 @@ enum ObjType {
class Object {
public:
// clear the anonymous union as best we can -- clear at least a pointer
- void zeroUnion() { this->cString = NULL; }
+ void zeroUnion() { this->cString = nullptr; }
// Default constructor.
Object():
@@ -232,7 +240,7 @@ public:
// After takeString() the only method that should be called for the object is free()
// because the object it's not expected to have a NULL string.
GooString *takeString() {
- OBJECT_TYPE_CHECK(objString); GooString *s = string; string = NULL; return s; }
+ OBJECT_TYPE_CHECK(objString); GooString *s = string; string = nullptr; return s; }
char *getName() const { OBJECT_TYPE_CHECK(objName); return cString; }
Array *getArray() const { OBJECT_TYPE_CHECK(objArray); return array; }
Dict *getDict() const { OBJECT_TYPE_CHECK(objDict); return dict; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/OptionalContent.cc b/Build/source/libs/poppler/poppler-src/poppler/OptionalContent.cc
index d2e878e4257..b42ae56f879 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/OptionalContent.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/OptionalContent.cc
@@ -41,7 +41,7 @@ OCGs::OCGs(Object *ocgObject, XRef *xref) :
// we need to parse the dictionary here, and build optionalContentGroups
ok = gTrue;
optionalContentGroups = new GooList();
- display = NULL;
+ display = nullptr;
Object ocgList = ocgObject->dictLookup("OCGs");
if (!ocgList.isArray()) {
@@ -141,7 +141,7 @@ bool OCGs::hasOCGs()
OptionalContentGroup* OCGs::findOcgByRef( const Ref &ref)
{
//TODO: make this more efficient
- OptionalContentGroup *ocg = NULL;
+ OptionalContentGroup *ocg = nullptr;
for (int i=0; i < optionalContentGroups->getLength(); ++i) {
ocg = (OptionalContentGroup*)optionalContentGroups->get(i);
if ( (ocg->getRef().num == ref.num) && (ocg->getRef().gen == ref.gen) ) {
@@ -150,7 +150,7 @@ OptionalContentGroup* OCGs::findOcgByRef( const Ref &ref)
}
// not found
- return NULL;
+ return nullptr;
}
OCDisplayNode *OCGs::getDisplayRoot()
@@ -331,7 +331,7 @@ bool OCGs::anyOff( Array *ocgArray )
//------------------------------------------------------------------------
-OptionalContentGroup::OptionalContentGroup(Dict *ocgDict) : m_name(NULL)
+OptionalContentGroup::OptionalContentGroup(Dict *ocgDict) : m_name(nullptr)
{
Object ocgName = ocgDict->lookup("Name");
if (!ocgName.isString()) {
@@ -404,7 +404,7 @@ OCDisplayNode *OCDisplayNode::parse(Object *obj, OCGs *oc,
if (recursion > displayNodeRecursionLimit) {
error(errSyntaxError, -1, "Loop detected in optional content order");
- return NULL;
+ return nullptr;
}
if (obj->isRef()) {
if ((ocgA = oc->findOcgByRef(obj->getRef()))) {
@@ -413,7 +413,7 @@ OCDisplayNode *OCDisplayNode::parse(Object *obj, OCGs *oc,
}
Object obj2 = obj->fetch(xref);
if (!obj2.isArray()) {
- return NULL;
+ return nullptr;
}
i = 0;
if (obj2.arrayGetLength() >= 1) {
@@ -442,21 +442,21 @@ OCDisplayNode *OCDisplayNode::parse(Object *obj, OCGs *oc,
}
OCDisplayNode::OCDisplayNode() {
- name = NULL;
- ocg = NULL;
- children = NULL;
+ name = nullptr;
+ ocg = nullptr;
+ children = nullptr;
}
OCDisplayNode::OCDisplayNode(GooString *nameA) {
name = new GooString(nameA);
- ocg = NULL;
- children = NULL;
+ ocg = nullptr;
+ children = nullptr;
}
OCDisplayNode::OCDisplayNode(OptionalContentGroup *ocgA) {
- name = (ocgA->getName()) ? ocgA->getName()->copy() : NULL;
+ name = (ocgA->getName()) ? ocgA->getName()->copy() : nullptr;
ocg = ocgA;
- children = NULL;
+ children = nullptr;
}
void OCDisplayNode::addChild(OCDisplayNode *child) {
@@ -478,7 +478,7 @@ GooList *OCDisplayNode::takeChildren() {
GooList *childrenA;
childrenA = children;
- children = NULL;
+ children = nullptr;
return childrenA;
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/OptionalContent.h b/Build/source/libs/poppler/poppler-src/poppler/OptionalContent.h
index 2e416462003..a8c05b30f85 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/OptionalContent.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/OptionalContent.h
@@ -4,7 +4,7 @@
//
// Copyright 2007 Brad Hards <bradh@kde.org>
// Copyright 2008 Carlos Garcia Campos <carlosgc@gnome.org>
-// Copyright 2013 Albert Astals Cid <aacid@kde.org>
+// Copyright 2013, 2018 Albert Astals Cid <aacid@kde.org>
//
// Released under the GPL (version 2, or later, at your option)
//
@@ -35,6 +35,9 @@ public:
OCGs(Object *ocgObject, XRef *xref);
~OCGs();
+ OCGs(const OCGs &) = delete;
+ OCGs& operator=(const OCGs &) = delete;
+
// Is OCGS valid?
GBool isOk() { return ok; }
@@ -90,6 +93,9 @@ public:
~OptionalContentGroup();
+ OptionalContentGroup(const OptionalContentGroup &) = delete;
+ OptionalContentGroup& operator=(const OptionalContentGroup &) = delete;
+
GooString* getName() const;
Ref getRef() const;
@@ -118,6 +124,9 @@ public:
OCDisplayNode();
~OCDisplayNode();
+ OCDisplayNode(const OCDisplayNode &) = delete;
+ OCDisplayNode& operator=(const OCDisplayNode &) = delete;
+
GooString *getName() { return name; }
OptionalContentGroup *getOCG() { return ocg; }
int getNumChildren();
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Outline.cc b/Build/source/libs/poppler/poppler-src/poppler/Outline.cc
index 82f286633e7..bc8768f1501 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Outline.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Outline.cc
@@ -47,7 +47,7 @@ Outline::Outline(Object *outlineObj, XRef *xref) {
return;
}
Object first = outlineObj->dictLookupNF("First");
- items = OutlineItem::readItemList(&first, xref);
+ items = OutlineItem::readItemList(nullptr, &first, xref);
}
Outline::~Outline() {
@@ -58,13 +58,15 @@ Outline::~Outline() {
//------------------------------------------------------------------------
-OutlineItem::OutlineItem(Dict *dict, XRef *xrefA) {
+OutlineItem::OutlineItem(Dict *dict, int refNumA, OutlineItem *parentA, XRef *xrefA) {
Object obj1;
+ refNum = refNumA;
+ parent = parentA;
xref = xrefA;
- title = NULL;
- action = NULL;
- kids = NULL;
+ title = nullptr;
+ action = nullptr;
+ kids = nullptr;
obj1 = dict->lookup("Title");
@@ -108,28 +110,29 @@ OutlineItem::~OutlineItem() {
}
}
-GooList *OutlineItem::readItemList(Object *firstItemRef, XRef *xrefA) {
- GooList *items;
- char* alreadyRead;
- OutlineItem *item;
- Object *p;
+GooList *OutlineItem::readItemList(OutlineItem *parent, Object *firstItemRef, XRef *xrefA) {
+ GooList *items = new GooList();
- items = new GooList();
-
- alreadyRead = (char *)gmalloc(xrefA->getNumObjects());
+ char* alreadyRead = (char *)gmalloc(xrefA->getNumObjects());
memset(alreadyRead, 0, xrefA->getNumObjects());
- p = firstItemRef;
+ OutlineItem *parentO = parent;
+ while (parentO) {
+ alreadyRead[parentO->refNum] = 1;
+ parentO = parentO->parent;
+ }
+
+ Object *p = firstItemRef;
while (p->isRef() &&
(p->getRefNum() >= 0) &&
- (p->getRefNum() < xrefA->getNumObjects()) &&
+ (p->getRefNum() < xrefA->getNumObjects()) &&
!alreadyRead[p->getRefNum()]) {
Object obj = p->fetch(xrefA);
if (!obj.isDict()) {
break;
}
alreadyRead[p->getRefNum()] = 1;
- item = new OutlineItem(obj.getDict(), xrefA);
+ OutlineItem *item = new OutlineItem(obj.getDict(), p->getRefNum(), parent, xrefA);
items->append(item);
p = &item->nextRef;
}
@@ -138,7 +141,7 @@ GooList *OutlineItem::readItemList(Object *firstItemRef, XRef *xrefA) {
if (!items->getLength()) {
delete items;
- items = NULL;
+ items = nullptr;
}
return items;
@@ -146,13 +149,13 @@ GooList *OutlineItem::readItemList(Object *firstItemRef, XRef *xrefA) {
void OutlineItem::open() {
if (!kids) {
- kids = readItemList(&firstRef, xref);
+ kids = readItemList(this, &firstRef, xref);
}
}
void OutlineItem::close() {
if (kids) {
deleteGooList(kids, OutlineItem);
- kids = NULL;
+ kids = nullptr;
}
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Outline.h b/Build/source/libs/poppler/poppler-src/poppler/Outline.h
index 46775d597a1..1584ddcb129 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Outline.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Outline.h
@@ -14,7 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2005 Marco Pesenti Gritti <mpg@redhat.com>
-// Copyright (C) 2016 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2016, 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -44,6 +44,9 @@ public:
Outline(Object *outlineObj, XRef *xref);
~Outline();
+ Outline(const Outline &) = delete;
+ Outline& operator=(const Outline &) = delete;
+
GooList *getItems() { return items; }
private:
@@ -57,10 +60,13 @@ private:
class OutlineItem {
public:
- OutlineItem(Dict *dict, XRef *xrefA);
+ OutlineItem(Dict *dict, int refNumA, OutlineItem *parentA, XRef *xrefA);
~OutlineItem();
- static GooList *readItemList(Object *firstItemRef, XRef *xrefA);
+ OutlineItem(const OutlineItem &) = delete;
+ OutlineItem& operator=(const OutlineItem &) = delete;
+
+ static GooList *readItemList(OutlineItem *parent, Object *firstItemRef, XRef *xrefA);
void open();
void close();
@@ -74,6 +80,8 @@ public:
private:
+ int refNum;
+ OutlineItem *parent;
XRef *xref;
Unicode *title;
int titleLen;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/OutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/OutputDev.cc
index 0acdcbdeb80..8afa7052894 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/OutputDev.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/OutputDev.cc
@@ -143,7 +143,7 @@ void OutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *str,
int maskWidth, int maskHeight,
GBool maskInvert,
GBool maskInterpolate) {
- drawImage(state, ref, str, width, height, colorMap, interpolate, NULL, gFalse);
+ drawImage(state, ref, str, width, height, colorMap, interpolate, nullptr, gFalse);
}
void OutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,
@@ -154,7 +154,7 @@ void OutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,
int maskWidth, int maskHeight,
GfxImageColorMap *maskColorMap,
GBool maskInterpolate) {
- drawImage(state, ref, str, width, height, colorMap, interpolate, NULL, gFalse);
+ drawImage(state, ref, str, width, height, colorMap, interpolate, nullptr, gFalse);
}
void OutputDev::endMarkedContent(GfxState *state) {
@@ -188,7 +188,7 @@ void OutputDev::startProfile() {
GooHash *OutputDev::endProfile() {
GooHash *profile = profileHash;
- profileHash = NULL;
+ profileHash = nullptr;
return profile;
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/OutputDev.h b/Build/source/libs/poppler/poppler-src/poppler/OutputDev.h
index 107c94d2a2d..aca84cdab5e 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/OutputDev.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/OutputDev.h
@@ -79,7 +79,7 @@ public:
: iccColorSpaceCache(5)
#endif
{
- profileHash = NULL;
+ profileHash = nullptr;
}
// Destructor.
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.cc b/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.cc
index 90f039d8ec8..6789c39f19d 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.cc
@@ -14,7 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2005, 2006, 2008 Brad Hards <bradh@frogmouth.net>
-// Copyright (C) 2005, 2007-2009, 2011-2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2007-2009, 2011-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2008 Julien Rebetez <julienr@svn.gnome.org>
// Copyright (C) 2008, 2010 Pino Toscano <pino@kde.org>
// Copyright (C) 2008, 2010, 2011 Carlos Garcia Campos <carlosgc@gnome.org>
@@ -36,6 +36,8 @@
// Copyright (C) 2015 André Esser <bepandre@hotmail.com>
// Copyright (C) 2016 Jakub Alba <jakubalba@gmail.com>
// Copyright (C) 2017 Jean Ghali <jghali@libertysurf.fr>
+// Copyright (C) 2017 Fredrik Fornwall <fredrik@fornwall.net>
+// Copyright (C) 2018 Ben Timby <btimby@gmail.com>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -115,19 +117,19 @@ void PDFDoc::init()
#endif
ok = gFalse;
errCode = errNone;
- fileName = NULL;
- file = NULL;
- str = NULL;
- xref = NULL;
- linearization = NULL;
- catalog = NULL;
- hints = NULL;
+ fileName = nullptr;
+ file = nullptr;
+ str = nullptr;
+ xref = nullptr;
+ linearization = nullptr;
+ catalog = nullptr;
+ hints = nullptr;
#ifndef DISABLE_OUTLINE
- outline = NULL;
+ outline = nullptr;
#endif
startXRefPos = -1;
- secHdlr = NULL;
- pageCache = NULL;
+ secHdlr = nullptr;
+ pageCache = nullptr;
}
PDFDoc::PDFDoc()
@@ -162,7 +164,7 @@ PDFDoc::PDFDoc(GooString *fileNameA, GooString *ownerPassword,
#else
file = GooFile::open(fileName);
#endif
- if (file == NULL) {
+ if (file == nullptr) {
// fopen() has failed.
// Keep a copy of the errno returned by fopen so that it can be
// referred to later.
@@ -238,7 +240,7 @@ PDFDoc::PDFDoc(BaseStream *strA, GooString *ownerPassword,
fileNameU[n] = L'\0';
#endif
} else {
- fileName = NULL;
+ fileName = nullptr;
#ifdef _WIN32
fileNameU = NULL;
#endif
@@ -249,6 +251,13 @@ PDFDoc::PDFDoc(BaseStream *strA, GooString *ownerPassword,
GBool PDFDoc::setup(GooString *ownerPassword, GooString *userPassword) {
pdfdocLocker();
+
+ if (str->getLength() <= 0)
+ {
+ error(errSyntaxError, -1, "Document stream is empty");
+ return gFalse;
+ }
+
str->setPos(0, -1);
if (str->getPos() < 0)
{
@@ -296,7 +305,7 @@ GBool PDFDoc::setup(GooString *ownerPassword, GooString *userPassword) {
// try one more time to contruct the Catalog, maybe the problem is damaged XRef
delete catalog;
delete xref;
- xref = new XRef(str, 0, 0, NULL, true);
+ xref = new XRef(str, 0, 0, nullptr, true);
catalog = new Catalog(this);
}
@@ -400,11 +409,16 @@ void PDFDoc::checkHeader() {
char *p;
char *tokptr;
int i;
+ int c;
pdfMajorVersion = 0;
pdfMinorVersion = 0;
for (i = 0; i < headerSearchSize; ++i) {
- hdrBuf[i] = str->getChar();
+ if ((c = str->getChar()) == EOF) {
+ error(errSyntaxWarning, -1, "EOF while reading header (continuing anyway)");
+ return;
+ }
+ hdrBuf[i] = c;
}
hdrBuf[headerSearchSize] = '\0';
for (i = 0; i < headerSearchSize - 5; ++i) {
@@ -463,14 +477,14 @@ GBool PDFDoc::checkEncryption(GooString *ownerPassword, GooString *userPassword)
std::vector<FormWidgetSignature*> PDFDoc::getSignatureWidgets()
{
int num_pages = getNumPages();
- FormPageWidgets *page_widgets = NULL;
+ FormPageWidgets *page_widgets = nullptr;
std::vector<FormWidgetSignature*> widget_vector;
for (int i = 1; i <= num_pages; i++) {
Page *p = getCatalog()->getPage(i);
if (p) {
page_widgets = p->getFormWidgets();
- for (int j = 0; page_widgets != NULL && j < page_widgets->getNumWidgets(); j++) {
+ for (int j = 0; page_widgets != nullptr && j < page_widgets->getNumWidgets(); j++) {
if (page_widgets->getWidget(j)->getType() == formSignature) {
widget_vector.push_back(static_cast<FormWidgetSignature*>(page_widgets->getWidget(j)));
}
@@ -536,7 +550,7 @@ void PDFDoc::displayPageSlice(OutputDev *out, int page,
Links *PDFDoc::getLinks(int page) {
Page *p = getPage(page);
if (!p) {
- return new Links (NULL);
+ return new Links (nullptr);
}
return p->getLinks();
}
@@ -556,7 +570,7 @@ Linearization *PDFDoc::getLinearization()
}
GBool PDFDoc::checkLinearization() {
- if (linearization == NULL)
+ if (linearization == nullptr)
return gFalse;
if (linearizationState == 1)
return gTrue;
@@ -645,7 +659,7 @@ void PDFDoc::setDocInfoStringEntry(const char *key, GooString *value)
GooString *PDFDoc::getDocInfoStringEntry(const char *key) {
Object infoObj = getDocInfo();
if (!infoObj.isDict()) {
- return NULL;
+ return nullptr;
}
Object entryObj = infoObj.dictLookup(key);
@@ -655,7 +669,7 @@ GooString *PDFDoc::getDocInfoStringEntry(const char *key) {
if (entryObj.isString()) {
result = entryObj.takeString();
} else {
- result = NULL;
+ result = nullptr;
}
return result;
@@ -730,6 +744,11 @@ int PDFDoc::savePageAs(GooString *name, int pageNo)
FILE *f;
OutStream *outStr;
XRef *yRef, *countRef;
+
+ if (file && file->modificationTimeChangedSinceOpen())
+ return errFileChangedSinceOpen;
+
+
int rootNum = getXRef()->getNumObjects() + 1;
// Make sure that special flags are set, because we are going to read
@@ -745,7 +764,7 @@ int PDFDoc::savePageAs(GooString *name, int pageNo)
error(errInternal, -1, "Illegal pageNo: {0:d}({1:d})", pageNo, getNumPages() );
return errOpenFile;
}
- PDFRectangle *cropBox = NULL;
+ PDFRectangle *cropBox = nullptr;
if (getCatalog()->getPage(pageNo)->isCropped()) {
cropBox = getCatalog()->getPage(pageNo)->getCropBox();
}
@@ -764,7 +783,7 @@ int PDFDoc::savePageAs(GooString *name, int pageNo)
yRef = new XRef(getXRef()->getTrailerDict());
- if (secHdlr != NULL && !secHdlr->isUnencrypted()) {
+ if (secHdlr != nullptr && !secHdlr->isUnencrypted()) {
yRef->setEncryption(secHdlr->getPermissionFlags(),
secHdlr->getOwnerPasswordOk(), fileKey, keyLength, secHdlr->getEncVersion(), secHdlr->getEncRevision(), encAlgorithm);
}
@@ -835,7 +854,7 @@ int PDFDoc::savePageAs(GooString *name, int pageNo)
if (j > 0) outStr->printf(" ");
Object value = catDict->getValNF(j);
outStr->printf("/%s ", key);
- writeObject(&value, outStr, getXRef(), 0, NULL, cryptRC4, 0, 0, 0);
+ writeObject(&value, outStr, getXRef(), 0, nullptr, cryptRC4, 0, 0, 0);
}
}
outStr->printf(">>\nendobj\n");
@@ -845,7 +864,7 @@ int PDFDoc::savePageAs(GooString *name, int pageNo)
outStr->printf("<< /Type /Pages /Kids [ %d 0 R ] /Count 1 ", rootNum + 2);
if (resourcesObj.isDict()) {
outStr->printf("/Resources ");
- writeObject(&resourcesObj, outStr, getXRef(), 0, NULL, cryptRC4, 0, 0, 0);
+ writeObject(&resourcesObj, outStr, getXRef(), 0, nullptr, cryptRC4, 0, 0, 0);
}
outStr->printf(">>\n");
outStr->printf("endobj\n");
@@ -861,7 +880,7 @@ int PDFDoc::savePageAs(GooString *name, int pageNo)
outStr->printf("/Parent %d 0 R", rootNum + 1);
} else {
outStr->printf("/%s ", key);
- writeObject(&value, outStr, getXRef(), 0, NULL, cryptRC4, 0, 0, 0);
+ writeObject(&value, outStr, getXRef(), 0, nullptr, cryptRC4, 0, 0, 0);
}
}
outStr->printf(" >>\nendobj\n");
@@ -901,6 +920,9 @@ int PDFDoc::saveAs(GooString *name, PDFWriteMode mode) {
}
int PDFDoc::saveAs(OutStream *outStr, PDFWriteMode mode) {
+ if (file && file->modificationTimeChangedSinceOpen())
+ return errFileChangedSinceOpen;
+
if (!xref->isModified() && mode == writeStandard) {
// simply copy the original file
saveWithoutChangesAs (outStr);
@@ -934,6 +956,9 @@ int PDFDoc::saveWithoutChangesAs(GooString *name) {
int PDFDoc::saveWithoutChangesAs(OutStream *outStr) {
int c;
+
+ if (file && file->modificationTimeChangedSinceOpen())
+ return errFileChangedSinceOpen;
BaseStream *copyStr = str->copy();
copyStr->reset();
@@ -997,7 +1022,7 @@ void PDFDoc::saveIncrementalUpdate (OutStream* outStr)
Goffset uxrefOffset = outStr->getPos();
int numobjects = xref->getNumObjects();
- const char *fileNameA = fileName ? fileName->getCString() : NULL;
+ const char *fileNameA = fileName ? fileName->getCString() : nullptr;
Ref rootRef, uxrefStreamRef;
rootRef.num = getXRef()->getRootNum();
rootRef.gen = getXRef()->getRootGen();
@@ -1059,7 +1084,7 @@ void PDFDoc::saveCompleteRewrite (OutStream* outStr)
Goffset offset = writeObjectHeader(&ref, outStr);
// Write unencrypted objects in unencrypted form
if (xref->getEntry(i)->getFlag(XRefEntry::Unencrypted)) {
- writeObject(&obj1, outStr, NULL, cryptRC4, 0, 0, 0);
+ writeObject(&obj1, outStr, nullptr, cryptRC4, 0, 0, 0);
} else {
writeObject(&obj1, outStr, fileKey, encAlgorithm, keyLength, ref.num, ref.gen);
}
@@ -1157,7 +1182,7 @@ void PDFDoc::writeString (GooString* s, OutStream* outStr, Guchar *fileKey,
CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen)
{
// Encrypt string if encryption is enabled
- GooString *sEnc = NULL;
+ GooString *sEnc = nullptr;
if (fileKey) {
EncryptStream *enc = new EncryptStream(new MemStream(s->getCString(), 0, s->getLength(), Object(objNull)),
fileKey, encAlgorithm, keyLength, objNum, objGen);
@@ -1272,7 +1297,7 @@ void PDFDoc::writeObject (Object* obj, OutStream* outStr, XRef *xRef, Guint numO
//we write the stream unencoded => TODO: write stream encoder
// Encrypt stream
- EncryptStream *encStream = NULL;
+ EncryptStream *encStream = nullptr;
GBool removeFilter = gTrue;
if (stream->getKind() == strWeird && fileKey) {
Object filter = stream->getDict()->lookup("Filter");
@@ -1298,7 +1323,7 @@ void PDFDoc::writeObject (Object* obj, OutStream* outStr, XRef *xRef, Guint numO
} else {
removeFilter = gFalse;
}
- } else if (fileKey != NULL) { // Encrypt stream
+ } else if (fileKey != nullptr) { // Encrypt stream
encStream = new EncryptStream(stream, fileKey, encAlgorithm, keyLength, objNum, objGen);
encStream->setAutoDelete(gFalse);
stream = encStream;
@@ -1378,7 +1403,7 @@ Object PDFDoc::createTrailerDict(int uxrefSize, GBool incrUpdate, Goffset startx
// - values of entry in information dictionnary
GooString message;
char buffer[256];
- sprintf(buffer, "%i", (int)time(NULL));
+ sprintf(buffer, "%i", (int)time(nullptr));
message.append(buffer);
if (fileName)
@@ -1455,7 +1480,7 @@ void PDFDoc::writeXRefTableTrailer(Object &&trailerDict, XRef *uxref, GBool writ
{
uxref->writeTableToFile( outStr, writeAllEntries );
outStr->printf( "trailer\r\n");
- writeDictionnary(trailerDict.getDict(), outStr, xRef, 0, NULL, cryptRC4, 0, 0, 0, nullptr);
+ writeDictionnary(trailerDict.getDict(), outStr, xRef, 0, nullptr, cryptRC4, 0, 0, 0, nullptr);
outStr->printf( "\r\nstartxref\r\n");
outStr->printf( "%lli\r\n", uxrefOffset);
outStr->printf( "%%%%EOF\r\n");
@@ -1472,7 +1497,7 @@ void PDFDoc::writeXRefStreamTrailer (Object &&trailerDict, XRef *uxref, Ref *uxr
MemStream *mStream = new MemStream( stmData.getCString(), 0, stmData.getLength(), std::move(trailerDict) );
writeObjectHeader(uxrefStreamRef, outStr);
Object obj1(static_cast<Stream*>(mStream));
- writeObject(&obj1, outStr, xRef, 0, NULL, cryptRC4, 0, 0, 0);
+ writeObject(&obj1, outStr, xRef, 0, nullptr, cryptRC4, 0, 0, 0);
writeObjectFooter(outStr);
outStr->printf( "startxref\r\n");
@@ -1483,7 +1508,7 @@ void PDFDoc::writeXRefStreamTrailer (Object &&trailerDict, XRef *uxref, Ref *uxr
void PDFDoc::writeXRefTableTrailer(Goffset uxrefOffset, XRef *uxref, GBool writeAllEntries,
int uxrefSize, OutStream* outStr, GBool incrUpdate)
{
- const char *fileNameA = fileName ? fileName->getCString() : NULL;
+ const char *fileNameA = fileName ? fileName->getCString() : nullptr;
// file size (doesn't include the trailer)
unsigned int fileSize = 0;
int c;
@@ -1503,7 +1528,7 @@ void PDFDoc::writeXRefTableTrailer(Goffset uxrefOffset, XRef *uxref, GBool write
void PDFDoc::writeHeader(OutStream *outStr, int major, int minor)
{
outStr->printf("%%PDF-%d.%d\n", major, minor);
- outStr->printf("%%\xE2\xE3\xCF\xD3\n");
+ outStr->printf("%%%c%c%c%c\n", 0xE2, 0xE3, 0xCF, 0xD3);
}
void PDFDoc::markDictionnary (Dict* dict, XRef * xRef, XRef *countRef, Guint numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts)
@@ -1522,7 +1547,6 @@ void PDFDoc::markDictionnary (Dict* dict, XRef * xRef, XRef *countRef, Guint num
alreadyMarkedDicts->insert(dict);
}
- Object obj1;
for (int i=0; i<dict->getLength(); i++) {
const char *key = dict->getKey(i);
if (strcmp(key, "Annots") != 0) {
@@ -1614,7 +1638,7 @@ void PDFDoc::replacePageDict(int pageNo, int rotate,
Object mediaBoxObject(mediaBoxArray);
Object trimBoxObject = mediaBoxObject.copy();
pageDict->add(copyString("MediaBox"), std::move(mediaBoxObject));
- if (cropBox != NULL) {
+ if (cropBox != nullptr) {
Array *cropBoxArray = new Array(getXRef());
cropBoxArray->add(Object(cropBox->x1));
cropBoxArray->add(Object(cropBox->y1));
@@ -1673,8 +1697,8 @@ GBool PDFDoc::markAnnotations(Object *annotsObj, XRef *xRef, XRef *countRef, Gui
} else {
Object page = getXRef()->fetch(obj2.getRef().num, obj2.getRef().gen);
if (page.isDict()) {
- Dict *dict = page.getDict();
- Object pagetype = dict->lookup("Type");
+ Dict *pageDict = page.getDict();
+ Object pagetype = pageDict->lookup("Type");
if (!pagetype.isName() || strcmp(pagetype.getName(), "Page") != 0) {
continue;
}
@@ -1789,9 +1813,9 @@ Guint PDFDoc::writePageObjects(OutStream *outStr, XRef *xRef, Guint numOffset, G
Object obj = getXRef()->fetch(ref.num - numOffset, ref.gen);
Goffset offset = writeObjectHeader(&ref, outStr);
if (combine) {
- writeObject(&obj, outStr, getXRef(), numOffset, NULL, cryptRC4, 0, 0, 0);
+ writeObject(&obj, outStr, getXRef(), numOffset, nullptr, cryptRC4, 0, 0, 0);
} else if (xRef->getEntry(n)->getFlag(XRefEntry::Unencrypted)) {
- writeObject(&obj, outStr, NULL, cryptRC4, 0, 0, 0);
+ writeObject(&obj, outStr, nullptr, cryptRC4, 0, 0, 0);
} else {
writeObject(&obj, outStr, fileKey, encAlgorithm, keyLength, ref.num, ref.gen);
}
@@ -1938,37 +1962,37 @@ Page *PDFDoc::parsePage(int page)
pageRef.num = getHints()->getPageObjectNum(page);
if (!pageRef.num) {
error(errSyntaxWarning, -1, "Failed to get object num from hint tables for page {0:d}", page);
- return NULL;
+ return nullptr;
}
// check for bogus ref - this can happen in corrupted PDF files
if (pageRef.num < 0 || pageRef.num >= xref->getNumObjects()) {
error(errSyntaxWarning, -1, "Invalid object num ({0:d}) for page {1:d}", pageRef.num, page);
- return NULL;
+ return nullptr;
}
pageRef.gen = xref->getEntry(pageRef.num)->gen;
Object obj = xref->fetch(pageRef.num, pageRef.gen);
if (!obj.isDict("Page")) {
error(errSyntaxWarning, -1, "Object ({0:d} {1:d}) is not a pageDict", pageRef.num, pageRef.gen);
- return NULL;
+ return nullptr;
}
Dict *pageDict = obj.getDict();
return new Page(this, page, &obj, pageRef,
- new PageAttrs(NULL, pageDict), catalog->getForm());
+ new PageAttrs(nullptr, pageDict), catalog->getForm());
}
Page *PDFDoc::getPage(int page)
{
- if ((page < 1) || page > getNumPages()) return NULL;
+ if ((page < 1) || page > getNumPages()) return nullptr;
if (isLinearized() && checkLinearization()) {
pdfdocLocker();
if (!pageCache) {
pageCache = (Page **) gmallocn(getNumPages(), sizeof(Page *));
for (int i = 0; i < getNumPages(); i++) {
- pageCache[i] = NULL;
+ pageCache[i] = nullptr;
}
}
if (!pageCache[page-1]) {
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.h b/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.h
index 48d8dcf779e..5af547778c4 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/PDFDoc.h
@@ -14,7 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2005, 2006, 2008 Brad Hards <bradh@frogmouth.net>
-// Copyright (C) 2005, 2009, 2014, 2015, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2009, 2014, 2015, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2008 Julien Rebetez <julienr@svn.gnome.org>
// Copyright (C) 2008 Pino Toscano <pino@kde.org>
// Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org>
@@ -92,6 +92,9 @@ public:
GooString *userPassword = NULL, void *guiDataA = NULL);
~PDFDoc();
+ PDFDoc(const PDFDoc &) = delete;
+ PDFDoc& operator=(const PDFDoc &) = delete;
+
static PDFDoc *ErrorPDFDoc(int errorCode, GooString *fileNameA = NULL);
// Was PDF document successfully opened?
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PDFDocBuilder.h b/Build/source/libs/poppler/poppler-src/poppler/PDFDocBuilder.h
index d6eccf5487a..8239f6829b2 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PDFDocBuilder.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/PDFDocBuilder.h
@@ -5,7 +5,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright 2010 Hib Eris <hib@hiberis.nl>
-// Copyright 2010 Albert Astals Cid <aacid@kde.org>
+// Copyright 2010, 2018 Albert Astals Cid <aacid@kde.org>
//
//========================================================================
@@ -26,7 +26,11 @@ class PDFDocBuilder {
public:
- virtual ~PDFDocBuilder() {};
+ PDFDocBuilder() = default;
+ virtual ~PDFDocBuilder() = default;
+
+ PDFDocBuilder(const PDFDocBuilder &) = delete;
+ PDFDocBuilder& operator=(const PDFDocBuilder &) = delete;
// Builds a new PDFDoc. Returns a PDFDoc. You should check this PDFDoc
// with PDFDoc::isOk() for failures.
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PDFDocFactory.h b/Build/source/libs/poppler/poppler-src/poppler/PDFDocFactory.h
index dbceaa567ee..8e14fd6b74f 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PDFDocFactory.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/PDFDocFactory.h
@@ -5,7 +5,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright 2010 Hib Eris <hib@hiberis.nl>
-// Copyright 2010 Albert Astals Cid <aacid@kde.org>
+// Copyright 2010, 2018 Albert Astals Cid <aacid@kde.org>
//
//========================================================================
@@ -37,6 +37,9 @@ public:
PDFDocFactory(GooList *pdfDocBuilders = NULL);
~PDFDocFactory();
+ PDFDocFactory(const PDFDocFactory &) = delete;
+ PDFDocFactory& operator=(const PDFDocFactory &) = delete;
+
// Create a PDFDoc. Returns a PDFDoc. You should check this PDFDoc
// with PDFDoc::isOk() for failures.
// The caller is responsible for deleting ownerPassword, userPassWord and guiData.
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc
index ac4f028f120..2f55557c14d 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.cc
@@ -15,7 +15,7 @@
//
// Copyright (C) 2005 Martin Kretzschmar <martink@gnome.org>
// Copyright (C) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2006-2009, 2011-2013, 2015-2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006-2009, 2011-2013, 2015-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2006 Jeff Muizelaar <jeff@infidigm.net>
// Copyright (C) 2007, 2008 Brad Hards <bradh@kde.org>
// Copyright (C) 2008, 2009 Koji Otani <sho@bbr.jp>
@@ -830,7 +830,7 @@ static const char *prolog[] = {
"} def",
"~123sn",
"end",
- NULL
+ nullptr
};
static const char *cmapProlog[] = {
@@ -875,7 +875,7 @@ static const char *cmapProlog[] = {
" currentdict CMapName exch /CMap defineresource pop",
"end",
"end",
- NULL
+ nullptr
};
//------------------------------------------------------------------------
@@ -946,6 +946,9 @@ public:
double yA, double kA, GooString *nameA);
~PSOutCustomColor();
+ PSOutCustomColor(const PSOutCustomColor &) = delete;
+ PSOutCustomColor& operator=(const PSOutCustomColor &) = delete;
+
double c, m, y, k;
GooString *name;
PSOutCustomColor *next;
@@ -958,7 +961,7 @@ PSOutCustomColor::PSOutCustomColor(double cA, double mA,
y = yA;
k = kA;
name = nameA;
- next = NULL;
+ next = nullptr;
}
PSOutCustomColor::~PSOutCustomColor() {
@@ -976,6 +979,8 @@ struct PSOutImgClipRect {
struct PSOutPaperSize {
PSOutPaperSize(GooString *nameA, int wA, int hA) { name = nameA; w = wA; h = hA; }
~PSOutPaperSize() { delete name; }
+ PSOutPaperSize(const PSOutPaperSize &) = delete;
+ PSOutPaperSize& operator=(const PSOutPaperSize &) = delete;
GooString *name;
int w, h;
};
@@ -996,7 +1001,7 @@ public:
{ return (bufIdx >= bufSize && !fillBuf()) ? EOF : buf[bufIdx++]; }
int lookChar() override
{ return (bufIdx >= bufSize && !fillBuf()) ? EOF : buf[bufIdx]; }
- GooString *getPSFilter(int psLevel, const char *indent) override { return NULL; }
+ GooString *getPSFilter(int psLevel, const char *indent) override { return nullptr; }
GBool isBinary(GBool last = gTrue) override { return gTrue; }
GBool isEncoder() override { return gTrue; }
@@ -1020,7 +1025,7 @@ DeviceNRecoder::DeviceNRecoder(Stream *strA, int widthA, int heightA,
width = widthA;
height = heightA;
colorMap = colorMapA;
- imgStr = NULL;
+ imgStr = nullptr;
pixelIdx = 0;
bufIdx = gfxColorMaxComps;
bufSize = ((GfxDeviceNColorSpace *)colorMap->getColorSpace())->
@@ -1094,28 +1099,28 @@ PSOutputDev::PSOutputDev(const char *fileName, PDFDoc *doc,
FILE *f;
PSFileType fileTypeA;
- underlayCbk = NULL;
- underlayCbkData = NULL;
- overlayCbk = NULL;
- overlayCbkData = NULL;
+ underlayCbk = nullptr;
+ underlayCbkData = nullptr;
+ overlayCbk = nullptr;
+ overlayCbkData = nullptr;
customCodeCbk = customCodeCbkA;
customCodeCbkData = customCodeCbkDataA;
- fontIDs = NULL;
+ fontIDs = nullptr;
fontNames = new GooHash(gTrue);
fontMaxValidGlyph = new GooHash(gTrue);
- t1FontNames = NULL;
- font8Info = NULL;
- font16Enc = NULL;
- imgIDs = NULL;
- formIDs = NULL;
- paperSizes = NULL;
- embFontList = NULL;
- customColors = NULL;
+ t1FontNames = nullptr;
+ font8Info = nullptr;
+ font16Enc = nullptr;
+ imgIDs = nullptr;
+ formIDs = nullptr;
+ paperSizes = nullptr;
+ embFontList = nullptr;
+ customColors = nullptr;
haveTextClip = gFalse;
- t3String = NULL;
+ t3String = nullptr;
forceRasterize = forceRasterizeA;
- psTitle = NULL;
+ psTitle = nullptr;
// open file or pipe
if (!strcmp(fileName, "-")) {
@@ -1163,28 +1168,28 @@ PSOutputDev::PSOutputDev(PSOutputFunc outputFuncA, void *outputStreamA,
GBool manualCtrlA,
PSOutCustomCodeCbk customCodeCbkA,
void *customCodeCbkDataA) {
- underlayCbk = NULL;
- underlayCbkData = NULL;
- overlayCbk = NULL;
- overlayCbkData = NULL;
+ underlayCbk = nullptr;
+ underlayCbkData = nullptr;
+ overlayCbk = nullptr;
+ overlayCbkData = nullptr;
customCodeCbk = customCodeCbkA;
customCodeCbkData = customCodeCbkDataA;
- fontIDs = NULL;
+ fontIDs = nullptr;
fontNames = new GooHash(gTrue);
fontMaxValidGlyph = new GooHash(gTrue);
- t1FontNames = NULL;
- font8Info = NULL;
- font16Enc = NULL;
- imgIDs = NULL;
- formIDs = NULL;
- paperSizes = NULL;
- embFontList = NULL;
- customColors = NULL;
+ t1FontNames = nullptr;
+ font8Info = nullptr;
+ font16Enc = nullptr;
+ imgIDs = nullptr;
+ formIDs = nullptr;
+ paperSizes = nullptr;
+ embFontList = nullptr;
+ customColors = nullptr;
haveTextClip = gFalse;
- t3String = NULL;
+ t3String = nullptr;
forceRasterize = forceRasterizeA;
- psTitle = NULL;
+ psTitle = nullptr;
init(outputFuncA, outputStreamA, psGeneric, psTitleA,
doc, pages, modeA,
@@ -1217,7 +1222,7 @@ static const StandardMedia standardMedia[] =
{ "Folio", 612, 936 },
{ "Quarto", 610, 780 },
{ "10x14", 720, 1008 },
- { NULL, 0, 0 }
+ { nullptr, 0, 0 }
};
/* PLRM specifies a tolerance of 5 points when matching page sizes */
@@ -1266,7 +1271,7 @@ void PSOutputDev::init(PSOutputFunc outputFuncA, void *outputStreamA,
outputFunc = outputFuncA;
outputStream = outputStreamA;
fileType = fileTypeA;
- psTitle = (psTitleA? strdup(psTitleA): NULL);
+ psTitle = (psTitleA? strdup(psTitleA): nullptr);
doc = docA;
level = globalParams->getPSLevel();
pages = pagesA;
@@ -1281,7 +1286,7 @@ void PSOutputDev::init(PSOutputFunc outputFuncA, void *outputStreamA,
imgURY = imgURYA;
manualCtrl = manualCtrlA;
- xref = NULL;
+ xref = nullptr;
processColors = 0;
inType3Char = gFalse;
@@ -1333,7 +1338,7 @@ void PSOutputDev::postInit()
for (size_t pgi = 0; pgi < pages.size(); ++pgi) {
const int pg = pages[pgi];
page = catalog->getPage(pg);
- if (page == NULL)
+ if (page == nullptr)
paperMatch = gFalse;
if (!paperMatch) {
w = paperWidth;
@@ -1368,7 +1373,7 @@ void PSOutputDev::postInit()
}
if (i == paperSizes->getLength()) {
const StandardMedia *media = standardMedia;
- GooString *name = NULL;
+ GooString *name = nullptr;
while (media->name) {
if (pageDimensionEqual(w, media->width) && pageDimensionEqual(h, media->height)) {
name = new GooString(media->name);
@@ -1872,7 +1877,7 @@ void PSOutputDev::setupFonts(Dict *resDict) {
gfxFontDict = new GfxFontDict(xref, &r, obj2.getDict());
}
} else if (obj1.isDict()) {
- gfxFontDict = new GfxFontDict(xref, NULL, obj1.getDict());
+ gfxFontDict = new GfxFontDict(xref, nullptr, obj1.getDict());
}
if (gfxFontDict) {
for (i = 0; i < gfxFontDict->getNumFonts(); ++i) {
@@ -1911,7 +1916,7 @@ void PSOutputDev::setupFont(GfxFont *font, Dict *parentResDict) {
}
fontIDs[fontIDLen++] = *font->getID();
- psName = NULL;
+ psName = nullptr;
xs = ys = 1;
subst = gFalse;
@@ -1921,7 +1926,7 @@ void PSOutputDev::setupFont(GfxFont *font, Dict *parentResDict) {
setupType3Font(font, psName, parentResDict);
} else {
fontLoc = font->locateFont(xref, this);
- if (fontLoc != NULL) {
+ if (fontLoc != nullptr) {
switch (fontLoc->locType) {
case gfxFontLocEmbedded:
switch (fontLoc->fontType) {
@@ -2011,7 +2016,7 @@ void PSOutputDev::setupFont(GfxFont *font, Dict *parentResDict) {
sizeof(PSFont16Enc));
}
font16Enc[font16EncLen].fontID = *font->getID();
- font16Enc[font16EncLen].enc = NULL;
+ font16Enc[font16EncLen].enc = nullptr;
++font16EncLen;
} else {
error(errSyntaxError, -1,
@@ -2063,7 +2068,7 @@ void PSOutputDev::setupFont(GfxFont *font, Dict *parentResDict) {
error(errSyntaxError, -1,
"Couldn't find Unicode map for 16-bit font encoding '{0:t}'",
fontLoc->encoding);
- font16Enc[font16EncLen].enc = NULL;
+ font16Enc[font16EncLen].enc = nullptr;
}
++font16EncLen;
}
@@ -2402,7 +2407,7 @@ void PSOutputDev::setupEmbeddedType1CFont(GfxFont *font, Ref *id,
// convert it to a Type 1 font
if ((fontBuf = font->readEmbFontFile(xref, &fontLen))) {
if ((ffT1C = FoFiType1C::make(fontBuf, fontLen))) {
- ffT1C->convertToType1(psName->getCString(), NULL, gTrue,
+ ffT1C->convertToType1(psName->getCString(), nullptr, gTrue,
outputFunc, outputStream);
delete ffT1C;
}
@@ -2448,7 +2453,7 @@ void PSOutputDev::setupEmbeddedOpenTypeT1CFont(GfxFont *font, Ref *id,
if ((fontBuf = font->readEmbFontFile(xref, &fontLen))) {
if ((ffTT = FoFiTrueType::make(fontBuf, fontLen))) {
if (ffTT->isOpenTypeCFF()) {
- ffTT->convertToType1(psName->getCString(), NULL, gTrue,
+ ffTT->convertToType1(psName->getCString(), nullptr, gTrue,
outputFunc, outputStream);
}
delete ffTT;
@@ -2480,7 +2485,7 @@ void PSOutputDev::setupEmbeddedTrueTypeFont(GfxFont *font, Ref *id,
ffTT->convertToType42(psName->getCString(),
((Gfx8BitFont *)font)->getHasEncoding()
? ((Gfx8BitFont *)font)->getEncoding()
- : (char **)NULL,
+ : (char **)nullptr,
codeToGID, outputFunc, outputStream);
if (codeToGID) {
if (font8InfoLen >= font8InfoSize) {
@@ -2519,7 +2524,7 @@ void PSOutputDev::setupExternalTrueTypeFont(GfxFont *font, GooString *fileName,
ffTT->convertToType42(psName->getCString(),
((Gfx8BitFont *)font)->getHasEncoding()
? ((Gfx8BitFont *)font)->getEncoding()
- : (char **)NULL,
+ : (char **)nullptr,
codeToGID, outputFunc, outputStream);
if (codeToGID) {
if (font8InfoLen >= font8InfoSize) {
@@ -2567,7 +2572,7 @@ void PSOutputDev::setupExternalCIDTrueTypeFont(GfxFont *font,
// check for embedding permission
if (ffTT->getEmbeddingRights() >= 1) {
- codeToGID = NULL;
+ codeToGID = nullptr;
codeToGIDLen = 0;
if (((GfxCIDFont *)font)->getCIDToGID()) {
codeToGIDLen = ((GfxCIDFont *)font)->getCIDToGIDLen();
@@ -2649,11 +2654,11 @@ void PSOutputDev::setupEmbeddedCIDType0Font(GfxFont *font, Ref *id,
if ((ffT1C = FoFiType1C::make(fontBuf, fontLen))) {
if (globalParams->getPSLevel() >= psLevel3) {
// Level 3: use a CID font
- ffT1C->convertToCIDType0(psName->getCString(), NULL, 0,
+ ffT1C->convertToCIDType0(psName->getCString(), nullptr, 0,
outputFunc, outputStream);
} else {
// otherwise: use a non-CID composite font
- ffT1C->convertToType0(psName->getCString(), NULL, 0,
+ ffT1C->convertToType0(psName->getCString(), nullptr, 0,
outputFunc, outputStream);
}
delete ffT1C;
@@ -2818,7 +2823,7 @@ void PSOutputDev::setupType3Font(GfxFont *font, GooString *psName,
box.y1 = m[1];
box.x2 = m[2];
box.y2 = m[3];
- gfx = new Gfx(doc, this, resDict, &box, NULL);
+ gfx = new Gfx(doc, this, resDict, &box, nullptr);
inType3Char = gTrue;
for (i = 0; i < charProcs->getLength(); ++i) {
t3FillColorOnly = gFalse;
@@ -2841,7 +2846,7 @@ void PSOutputDev::setupType3Font(GfxFont *font, GooString *psName,
(*outputFunc)(outputStream, t3String->getCString(),
t3String->getLength());
delete t3String;
- t3String = NULL;
+ t3String = nullptr;
}
if (t3NeedsRestore) {
(*outputFunc)(outputStream, "Q\n", 2);
@@ -3191,7 +3196,7 @@ void PSOutputDev::setupForm(Ref id, Object *strObj) {
// get resources
Object resObj = dict->lookup("Resources");
- resDict = resObj.isDict() ? resObj.getDict() : (Dict *)NULL;
+ resDict = resObj.isDict() ? resObj.getDict() : (Dict *)nullptr;
writePSFmt("/f_{0:d}_{1:d} {{\n", id.num, id.gen);
writePS("q\n");
@@ -3746,7 +3751,7 @@ void PSOutputDev::startPage(int pageNum, GfxState *state, XRef *xrefA) {
(*underlayCbk)(this, underlayCbkData);
}
if (overlayCbk) {
- saveState(NULL);
+ saveState(nullptr);
}
xScale = yScale = 1;
@@ -3960,7 +3965,7 @@ void PSOutputDev::startPage(int pageNum, GfxState *state, XRef *xrefA) {
void PSOutputDev::endPage() {
if (overlayCbk) {
- restoreState(NULL);
+ restoreState(nullptr);
(*overlayCbk)(this, overlayCbkData);
}
@@ -4411,7 +4416,7 @@ GBool PSOutputDev::tilingPatternFillL1(GfxState *state, Catalog *cat, Object *st
box.y1 = bbox[1];
box.x2 = bbox[2];
box.y2 = bbox[3];
- gfx = new Gfx(doc, this, resDict, &box, NULL);
+ gfx = new Gfx(doc, this, resDict, &box, nullptr);
writePS("/x {\n");
if (paintType == 2) {
writePSFmt("{0:.6g} 0 {1:.6g} {2:.6g} {3:.6g} {4:.6g} setcachedevice\n",
@@ -4484,7 +4489,7 @@ GBool PSOutputDev::tilingPatternFillL2(GfxState *state, Catalog *cat, Object *st
box.y1 = bbox[1];
box.x2 = bbox[2];
box.y2 = bbox[3];
- gfx = new Gfx(doc, this, resDict, &box, NULL);
+ gfx = new Gfx(doc, this, resDict, &box, nullptr);
inType3Char = gTrue;
if (paintType == 2) {
inUncoloredPattern = gTrue;
@@ -4529,7 +4534,7 @@ GBool PSOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *cat, O
box.y1 = bbox[1];
box.x2 = bbox[2];
box.y2 = bbox[3];
- gfx = new Gfx(doc, this, resDict, &box, NULL, NULL, NULL, gfxA->getXRef());
+ gfx = new Gfx(doc, this, resDict, &box, nullptr, nullptr, nullptr, gfxA->getXRef());
writePSFmt("[{0:.6g} {1:.6g} {2:.6g} {3:.6g} {4:.6g} {5:.6g}] cm\n", mat[0], mat[1], mat[2], mat[3], tx, ty);
inType3Char = gTrue;
gfx->display(str);
@@ -5042,8 +5047,8 @@ void PSOutputDev::drawString(GfxState *state, GooString *s) {
wMode = font->getWMode();
// check for a subtitute 16-bit font
- uMap = NULL;
- codeToGID = NULL;
+ uMap = nullptr;
+ codeToGID = nullptr;
if (font->isCIDFont()) {
for (i = 0; i < font16EncLen; ++i) {
if (font->getID()->num == font16Enc[i].fontID.num &&
@@ -5185,18 +5190,18 @@ void PSOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str,
switch (level) {
case psLevel1:
case psLevel1Sep:
- doImageL1(ref, NULL, invert, inlineImg, str, width, height, len,
- NULL, NULL, 0, 0, gFalse);
+ doImageL1(ref, nullptr, invert, inlineImg, str, width, height, len,
+ nullptr, nullptr, 0, 0, gFalse);
break;
case psLevel2:
case psLevel2Sep:
- doImageL2(ref, NULL, invert, inlineImg, str, width, height, len,
- NULL, NULL, 0, 0, gFalse);
+ doImageL2(ref, nullptr, invert, inlineImg, str, width, height, len,
+ nullptr, nullptr, 0, 0, gFalse);
break;
case psLevel3:
case psLevel3Sep:
- doImageL3(ref, NULL, invert, inlineImg, str, width, height, len,
- NULL, NULL, 0, 0, gFalse);
+ doImageL3(ref, nullptr, invert, inlineImg, str, width, height, len,
+ nullptr, nullptr, 0, 0, gFalse);
break;
}
}
@@ -5225,22 +5230,22 @@ void PSOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
switch (level) {
case psLevel1:
doImageL1(ref, colorMap, gFalse, inlineImg, str,
- width, height, len, maskColors, NULL, 0, 0, gFalse);
+ width, height, len, maskColors, nullptr, 0, 0, gFalse);
break;
case psLevel1Sep:
//~ handle indexed, separation, ... color spaces
doImageL1Sep(ref, colorMap, gFalse, inlineImg, str,
- width, height, len, maskColors, NULL, 0, 0, gFalse);
+ width, height, len, maskColors, nullptr, 0, 0, gFalse);
break;
case psLevel2:
case psLevel2Sep:
doImageL2(ref, colorMap, gFalse, inlineImg, str,
- width, height, len, maskColors, NULL, 0, 0, gFalse);
+ width, height, len, maskColors, nullptr, 0, 0, gFalse);
break;
case psLevel3:
case psLevel3Sep:
doImageL3(ref, colorMap, gFalse, inlineImg, str,
- width, height, len, maskColors, NULL, 0, 0, gFalse);
+ width, height, len, maskColors, nullptr, 0, 0, gFalse);
break;
}
t3Cacheable = gFalse;
@@ -5260,22 +5265,22 @@ void PSOutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *str,
switch (level) {
case psLevel1:
doImageL1(ref, colorMap, gFalse, gFalse, str, width, height, len,
- NULL, maskStr, maskWidth, maskHeight, maskInvert);
+ nullptr, maskStr, maskWidth, maskHeight, maskInvert);
break;
case psLevel1Sep:
//~ handle indexed, separation, ... color spaces
doImageL1Sep(ref, colorMap, gFalse, gFalse, str, width, height, len,
- NULL, maskStr, maskWidth, maskHeight, maskInvert);
+ nullptr, maskStr, maskWidth, maskHeight, maskInvert);
break;
case psLevel2:
case psLevel2Sep:
doImageL2(ref, colorMap, gFalse, gFalse, str, width, height, len,
- NULL, maskStr, maskWidth, maskHeight, maskInvert);
+ nullptr, maskStr, maskWidth, maskHeight, maskInvert);
break;
case psLevel3:
case psLevel3Sep:
doImageL3(ref, colorMap, gFalse, gFalse, str, width, height, len,
- NULL, maskStr, maskWidth, maskHeight, maskInvert);
+ nullptr, maskStr, maskWidth, maskHeight, maskInvert);
break;
}
t3Cacheable = gFalse;
@@ -5988,7 +5993,7 @@ void PSOutputDev::doImageL2(Object *ref, GfxImageColorMap *colorMap,
// filters
if ((mode == psModeForm || inType3Char || preloadImagesForms) &&
uncompressPreloadedImages) {
- s = NULL;
+ s = nullptr;
useLZW = useRLE = gFalse;
useCompressed = gFalse;
useASCII = gFalse;
@@ -6162,7 +6167,7 @@ void PSOutputDev::doImageL3(Object *ref, GfxImageColorMap *colorMap,
useFlate = useLZW = useRLE = useASCII = useCompressed = gFalse;
maskUseFlate = maskUseLZW = maskUseRLE = maskUseASCII = maskUseCompressed = gFalse;
- maskFilters = NULL; // make gcc happy
+ maskFilters = nullptr; // make gcc happy
// explicit masking
if (maskStr) {
@@ -6170,7 +6175,7 @@ void PSOutputDev::doImageL3(Object *ref, GfxImageColorMap *colorMap,
// mask data source
if ((mode == psModeForm || inType3Char || preloadImagesForms) &&
uncompressPreloadedImages) {
- s = NULL;
+ s = nullptr;
} else {
s = maskStr->getPSFilter(3, " ");
if (!s) {
@@ -6409,7 +6414,7 @@ void PSOutputDev::doImageL3(Object *ref, GfxImageColorMap *colorMap,
if ((mode == psModeForm || inType3Char || preloadImagesForms) &&
uncompressPreloadedImages) {
- s = NULL;
+ s = nullptr;
} else {
s = str->getPSFilter(level < psLevel2 ? 1 : level < psLevel3 ? 2 : 3,
" ");
@@ -6720,7 +6725,7 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace,
if (((GfxDeviceNColorSpace *)baseCS)->getAlt()->getMode() == csLab) {
labCS = (GfxLabColorSpace *)((GfxDeviceNColorSpace *)baseCS)->getAlt();
} else {
- labCS = NULL;
+ labCS = nullptr;
}
numAltComps = ((GfxDeviceNColorSpace *)baseCS)->getAlt()->getNComps();
p = lookup;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.h b/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.h
index fd1bea17b06..330b81b3ab2 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/PSOutputDev.h
@@ -433,7 +433,7 @@ private:
void writePSFmt(const char *fmt, ...);
void writePSString(GooString *s);
void writePSName(const char *s);
- GooString *filterPSLabel(GooString *label, GBool *needParens=0);
+ GooString *filterPSLabel(GooString *label, GBool *needParens=nullptr);
void writePSTextLine(GooString *s);
PSLevel level; // PostScript level (1, 2, separation)
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PSTokenizer.cc b/Build/source/libs/poppler/poppler-src/poppler/PSTokenizer.cc
index 05127f0d03c..ddde6bc1c1d 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PSTokenizer.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/PSTokenizer.cc
@@ -15,6 +15,7 @@
//
// Copyright (C) 2006 Scott Turner <scotty1024@mac.com>
// Copyright (C) 2008 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2017 Vincent Le Garrec <legarrec.vincent@gmail.com>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -84,7 +85,7 @@ GBool PSTokenizer::getToken(char *buf, int size, int *length) {
}
} else if (c == '%') {
comment = gTrue;
- } else if (specialChars[c] != 1) {
+ } else if (specialChars[static_cast<unsigned char>(c)] != 1) {
break;
}
}
@@ -113,7 +114,7 @@ GBool PSTokenizer::getToken(char *buf, int size, int *length) {
} else if (c == '<') {
while ((c = lookChar()) != EOF) {
consumeChar();
- if (i < size && specialChars[c] != 1) {
+ if (i < size && specialChars[static_cast<unsigned char>(c)] != 1) {
buf[i++] = c;
}
if (c == '>') {
@@ -121,7 +122,7 @@ GBool PSTokenizer::getToken(char *buf, int size, int *length) {
}
}
} else if (c != '[' && c != ']') {
- while ((c = lookChar()) != EOF && !specialChars[c]) {
+ while ((c = lookChar()) != EOF && !specialChars[static_cast<unsigned char>(c)]) {
consumeChar();
if (i < size) {
buf[i++] = c;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Page.cc b/Build/source/libs/poppler/poppler-src/poppler/Page.cc
index ca4a5a6d4d0..d4799dd14bd 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Page.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Page.cc
@@ -257,7 +257,7 @@ Page::Page(PDFDoc *docA, int numA, Object *pageDict, Ref pageRefA, PageAttrs *at
xref = doc->getXRef();
num = numA;
duration = -1;
- annots = NULL;
+ annots = nullptr;
pageObj = pageDict->copy();
pageRef = pageRefA;
@@ -345,7 +345,7 @@ Object *Page::getResourceDictObject()
Dict *Page::getResourceDictCopy(XRef *xrefA) {
pageLocker();
Dict *dict = attrs->getResourceDict();
- return dict ? dict->copy(xrefA) : NULL;
+ return dict ? dict->copy(xrefA) : nullptr;
}
void Page::replaceXRef(XRef *xrefA) {
@@ -517,7 +517,7 @@ Gfx *Page::createGfx(OutputDev *out, double hDPI, double vDPI,
crop = (box == *cropBox) && out->needClipToCropBox();
}
gfx = new Gfx(doc, out, num, attrs->getResourceDict(),
- hDPI, vDPI, &box, crop ? cropBox : (PDFRectangle *)NULL,
+ hDPI, vDPI, &box, crop ? cropBox : (PDFRectangle *)nullptr,
rotate, abortCheckCbk, abortCheckCbkData, xrefA);
return gfx;
@@ -641,7 +641,7 @@ GBool Page::loadThumb(unsigned char **data_out,
if (obj1.isNull ()) {
obj1 = dict->lookup ("CS");
}
- colorSpace = GfxColorSpace::parse(NULL, &obj1, NULL, NULL);
+ colorSpace = GfxColorSpace::parse(nullptr, &obj1, nullptr, nullptr);
if (!colorSpace) {
fprintf (stderr, "Error: Cannot parse color space\n");
goto fail1;
@@ -794,7 +794,7 @@ LinkAction* Page::getAdditionalAction(PageAdditionalActionsType type) {
Object additionalActionsObject = actions.fetch(doc->getXRef());
if (additionalActionsObject.isDict()) {
const char *key = (type == actionOpenPage ? "O" :
- type == actionClosePage ? "C" : NULL);
+ type == actionClosePage ? "C" : nullptr);
Object actionObject = additionalActionsObject.dictLookup(key);
if (actionObject.isDict())
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Page.h b/Build/source/libs/poppler/poppler-src/poppler/Page.h
index 97b70a0cb02..615707917e4 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Page.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Page.h
@@ -20,7 +20,7 @@
// Copyright (C) 2007 Julien Rebetez <julienr@svn.gnome.org>
// Copyright (C) 2008 Iñigo Martínez <inigomartinez@gmail.com>
// Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
-// Copyright (C) 2012, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2012, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
// Copyright (C) 2013, 2017 Adrian Johnson <ajohnson@redneon.com>
//
@@ -148,6 +148,9 @@ public:
// Destructor.
~Page();
+ Page(const Page &) = delete;
+ Page& operator=(const Page &) = delete;
+
// Is page valid?
GBool isOk() { return ok; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.cc b/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.cc
index d771024bbb3..57232f72f6c 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.cc
@@ -166,7 +166,7 @@ GBool PageLabelInfo::indexToLabel(int index, GooString *label)
GooString number_string;
base = 0;
- interval = NULL;
+ interval = nullptr;
for (i = 0; i < intervals.getLength(); i++) {
interval = (Interval *) intervals.get(i);
if (base <= index && index < base + interval->length)
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.h b/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.h
index 960e710069d..60b2ea9457d 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/PageLabelInfo.h
@@ -3,7 +3,7 @@
// This file is under the GPLv2 or later license
//
// Copyright (C) 2005-2006 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2005 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2005, 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -25,6 +25,8 @@ class PageLabelInfo {
public:
PageLabelInfo(Object *tree, int numPages);
~PageLabelInfo();
+ PageLabelInfo(const PageLabelInfo &) = delete;
+ PageLabelInfo& operator=(const PageLabelInfo &) = delete;
GBool labelToIndex(GooString *label, int *index);
GBool indexToLabel(int index, GooString *label);
@@ -35,6 +37,8 @@ private:
struct Interval {
Interval(Object *dict, int baseA);
~Interval();
+ Interval(const Interval &) = delete;
+ Interval& operator=(const Interval &) = delete;
GooString *prefix;
enum NumberStyle {
None,
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Parser.cc b/Build/source/libs/poppler/poppler-src/poppler/Parser.cc
index 4b399028105..dc777b02447 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Parser.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Parser.cc
@@ -60,7 +60,7 @@ Parser::~Parser() {
Object Parser::getObj(int recursion)
{
- return getObj(gFalse, NULL, cryptRC4, 0, 0, 0, recursion);
+ return getObj(gFalse, nullptr, cryptRC4, 0, 0, 0, recursion);
}
Object Parser::getObj(GBool simpleOnly,
@@ -89,10 +89,11 @@ Object Parser::getObj(GBool simpleOnly,
if (!simpleOnly && buf1.isCmd("[")) {
shift();
obj = Object(new Array(xref));
- while (!buf1.isCmd("]") && !buf1.isEOF()) {
+ while (!buf1.isCmd("]") && !buf1.isEOF() && recursion + 1 < recursionLimit) {
Object obj2 = getObj(gFalse, fileKey, encAlgorithm, keyLength, objNum, objGen, recursion + 1);
obj.arrayAdd(std::move(obj2));
}
+ if (recursion + 1 >= recursionLimit && strict) goto err;
if (buf1.isEOF()) {
error(errSyntaxError, getPos(), "End of file inside array");
if (strict) goto err;
@@ -198,7 +199,7 @@ Stream *Parser::makeStream(Object &&dict, Guchar *fileKey,
// get stream start position
lexer->skipToNextLine();
if (!(str = lexer->getStream())) {
- return NULL;
+ return nullptr;
}
pos = str->getPos();
@@ -210,7 +211,7 @@ Stream *Parser::makeStream(Object &&dict, Guchar *fileKey,
length = obj.getInt64();
} else {
error(errSyntaxError, getPos(), "Bad 'Length' attribute in stream");
- if (strict) return NULL;
+ if (strict) return nullptr;
length = 0;
}
@@ -222,7 +223,7 @@ Stream *Parser::makeStream(Object &&dict, Guchar *fileKey,
// in badly damaged PDF files, we can run off the end of the input
// stream immediately after the "stream" token
if (!lexer->getStream()) {
- return NULL;
+ return nullptr;
}
baseStr = lexer->getStream()->getBaseStream();
@@ -241,7 +242,7 @@ Stream *Parser::makeStream(Object &&dict, Guchar *fileKey,
shift();
} else {
error(errSyntaxError, getPos(), "Missing 'endstream' or incorrect stream length");
- if (strict) return NULL;
+ if (strict) return nullptr;
if (xref && lexer->getStream()) {
// shift until we find the proper endstream or we change to another object or reach eof
length = lexer->getPos() - pos;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Parser.h b/Build/source/libs/poppler/poppler-src/poppler/Parser.h
index d27511080a7..c85effc41d4 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Parser.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Parser.h
@@ -13,7 +13,7 @@
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
-// Copyright (C) 2006, 2010, 2013, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006, 2010, 2013, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2012 Hib Eris <hib@hiberis.nl>
// Copyright (C) 2013 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
@@ -45,6 +45,9 @@ public:
// Destructor.
~Parser();
+ Parser(const Parser &) = delete;
+ Parser& operator=(const Parser &) = delete;
+
// Get the next object from the input stream. If <simpleOnly> is
// true, do not parse compound objects (arrays, dictionaries, or
// streams).
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc b/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc
index 4fa0a44461a..5832d437951 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.cc
@@ -43,7 +43,7 @@ PopplerCache::~PopplerCache()
PopplerCacheItem *PopplerCache::lookup(const PopplerCacheKey &key)
{
if (lastValidCacheIndex < 0)
- return 0;
+ return nullptr;
if (*keys[0] == key) {
return items[0];
@@ -63,7 +63,7 @@ PopplerCacheItem *PopplerCache::lookup(const PopplerCacheKey &key)
return itemHit;
}
}
- return 0;
+ return nullptr;
}
void PopplerCache::put(PopplerCacheKey *key, PopplerCacheItem *item)
diff --git a/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.h b/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.h
index f9d8a1dc9b6..ecc983ac6ca 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/PopplerCache.h
@@ -5,7 +5,7 @@
// This file is licensed under the GPLv2 or later
//
// Copyright (C) 2009 Koji Otani <sho@bbr.jp>
-// Copyright (C) 2009, 2010, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009, 2010, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org>
//
//========================================================================
@@ -18,14 +18,22 @@
class PopplerCacheItem
{
public:
+ PopplerCacheItem() = default;
virtual ~PopplerCacheItem();
+
+ PopplerCacheItem(const PopplerCacheItem &) = delete;
+ PopplerCacheItem& operator=(const PopplerCacheItem &other) = delete;
};
class PopplerCacheKey
{
public:
+ PopplerCacheKey() = default;
virtual ~PopplerCacheKey();
virtual bool operator==(const PopplerCacheKey &key) const = 0;
+
+ PopplerCacheKey(const PopplerCacheKey &) = delete;
+ PopplerCacheKey& operator=(const PopplerCacheKey &other) = delete;
};
class PopplerCache
@@ -34,6 +42,9 @@ class PopplerCache
PopplerCache(int cacheSizeA);
~PopplerCache();
+ PopplerCache(const PopplerCache &) = delete;
+ PopplerCache& operator=(const PopplerCache &other) = delete;
+
/* The item returned is owned by the cache */
PopplerCacheItem *lookup(const PopplerCacheKey &key);
@@ -53,8 +64,6 @@ class PopplerCache
PopplerCacheKey *key(int index);
private:
- PopplerCache(const PopplerCache &cache); // not allowed
-
PopplerCacheKey **keys;
PopplerCacheItem **items;
int lastValidCacheIndex;
@@ -67,6 +76,9 @@ class PopplerObjectCache
PopplerObjectCache (int cacheSizeA, XRef *xrefA);
~PopplerObjectCache();
+ PopplerObjectCache(const PopplerObjectCache &) = delete;
+ PopplerObjectCache& operator=(const PopplerObjectCache &other) = delete;
+
Object *put(const Ref &ref);
Object lookup(const Ref &ref);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Rendition.cc b/Build/source/libs/poppler/poppler-src/poppler/Rendition.cc
index 89bf1a50cf5..f090a99a0f0 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Rendition.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Rendition.cc
@@ -254,8 +254,8 @@ MediaRendition::MediaRendition(Object* obj) {
GBool hasClip = gFalse;
ok = gTrue;
- fileName = NULL;
- contentType = NULL;
+ fileName = nullptr;
+ contentType = nullptr;
isEmbedded = gFalse;
//
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Rendition.h b/Build/source/libs/poppler/poppler-src/poppler/Rendition.h
index 5a937f2cc5e..d84505ffa24 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Rendition.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Rendition.h
@@ -5,7 +5,7 @@
//---------------------------------------------------------------------------------
// Hugo Mercier <hmercier31[at]gmail.com> (c) 2008
// Carlos Garcia Campos <carlosgc@gnome.org> (c) 2010
-// Albert Astals Cid <aacid@kde.org> (C) 2017
+// Albert Astals Cid <aacid@kde.org> (C) 2017, 2018
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@@ -121,6 +121,7 @@ class MediaRendition {
MediaRendition(Object *obj);
MediaRendition(const MediaRendition &other);
~MediaRendition();
+ MediaRendition& operator=(const MediaRendition &) = delete;
GBool isOk () { return ok; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.cc b/Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.cc
index f774ce83771..a643f45fa3a 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.cc
@@ -13,7 +13,7 @@
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
-// Copyright (C) 2010, 2012, 2015, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2010, 2012, 2015, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2013 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2014 Fabio D'Urso <fabiodurso@hotmail.it>
// Copyright (C) 2016 Alok Anand <alok4nand@gmail.com>
@@ -62,14 +62,14 @@ SecurityHandler *SecurityHandler::make(PDFDoc *docA, Object *encryptDictA) {
#endif
error(errSyntaxError, -1, "Couldn't find the '{0:s}' security handler",
filterObj.getName());
- secHdlr = NULL;
+ secHdlr = nullptr;
#ifdef ENABLE_PLUGINS
}
#endif
} else {
error(errSyntaxError, -1,
"Missing or invalid 'Filter' entry in encryption dictionary");
- secHdlr = NULL;
+ secHdlr = nullptr;
}
return secHdlr;
}
@@ -90,7 +90,7 @@ GBool SecurityHandler::checkEncryption(GooString *ownerPassword,
if (ownerPassword || userPassword) {
authData = makeAuthData(ownerPassword, userPassword);
} else {
- authData = NULL;
+ authData = nullptr;
}
ok = authorize(authData);
if (authData) {
@@ -137,6 +137,9 @@ public:
}
}
+ StandardAuthData(const StandardAuthData &) = delete;
+ StandardAuthData& operator=(const StandardAuthData &) = delete;
+
GooString *ownerPassword;
GooString *userPassword;
};
@@ -146,11 +149,11 @@ StandardSecurityHandler::StandardSecurityHandler(PDFDoc *docA,
SecurityHandler(docA)
{
ok = gFalse;
- fileID = NULL;
- ownerKey = NULL;
- userKey = NULL;
- ownerEnc = NULL;
- userEnc = NULL;
+ fileID = nullptr;
+ ownerKey = nullptr;
+ userKey = nullptr;
+ ownerEnc = nullptr;
+ userEnc = nullptr;
fileKeyLength = 0;
Object versionObj = encryptDictA->dictLookup("V");
@@ -318,13 +321,13 @@ GBool StandardSecurityHandler::isUnencrypted() {
void *StandardSecurityHandler::makeAuthData(GooString *ownerPassword,
GooString *userPassword) {
return new StandardAuthData(ownerPassword ? ownerPassword->copy()
- : (GooString *)NULL,
+ : (GooString *)nullptr,
userPassword ? userPassword->copy()
- : (GooString *)NULL);
+ : (GooString *)nullptr);
}
void *StandardSecurityHandler::getAuthData() {
- return NULL;
+ return nullptr;
}
void StandardSecurityHandler::freeAuthData(void *authData) {
@@ -341,8 +344,8 @@ GBool StandardSecurityHandler::authorize(void *authData) {
ownerPassword = ((StandardAuthData *)authData)->ownerPassword;
userPassword = ((StandardAuthData *)authData)->userPassword;
} else {
- ownerPassword = NULL;
- userPassword = NULL;
+ ownerPassword = nullptr;
+ userPassword = nullptr;
}
if (!Decrypt::makeFileKey(encVersion, encRevision, fileKeyLength,
ownerKey, userKey, ownerEnc, userEnc,
diff --git a/Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.h b/Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.h
index f363d3f7267..cc21b2ca09e 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/SecurityHandler.h
@@ -13,7 +13,7 @@
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
-// Copyright (C) 2012 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2012, 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -48,6 +48,9 @@ public:
SecurityHandler(PDFDoc *docA);
virtual ~SecurityHandler();
+ SecurityHandler(const SecurityHandler &) = delete;
+ SecurityHandler& operator=(const SecurityHandler &) = delete;
+
// Returns true if the file is actually unencrypted.
virtual GBool isUnencrypted() { return gFalse; }
diff --git a/Build/source/libs/poppler/poppler-src/poppler/SignatureHandler.cc b/Build/source/libs/poppler/poppler-src/poppler/SignatureHandler.cc
index bddc45fe258..6ddd1a84a39 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/SignatureHandler.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/SignatureHandler.cc
@@ -42,7 +42,7 @@ unsigned int SignatureHandler::digestLength(SECOidTag digestAlgId)
char *SignatureHandler::getSignerName()
{
if (!CMSSignerInfo)
- return NULL;
+ return nullptr;
CERTCertificate *cert = NSS_CMSSignerInfo_GetSigningCertificate(CMSSignerInfo, CERT_GetDefaultCertDB());
return CERT_GetCommonName(&cert->subject);
@@ -81,31 +81,31 @@ time_t SignatureHandler::getSigningTime()
GooString *SignatureHandler::getDefaultFirefoxCertDB_Linux()
{
- GooString * finalPath = NULL;
+ GooString * finalPath = nullptr;
DIR *toSearchIn;
struct dirent *subFolder;
GooString * homePath = new GooString(getenv("HOME"));
homePath = homePath->append("/.mozilla/firefox/");
- if ((toSearchIn = opendir(homePath->getCString())) == NULL) {
+ if ((toSearchIn = opendir(homePath->getCString())) == nullptr) {
error(errInternal, 0, "couldn't find default Firefox Folder");
delete homePath;
- return NULL;
+ return nullptr;
}
do {
- if ((subFolder = readdir(toSearchIn)) != NULL) {
- if (strstr(subFolder->d_name, "default") != NULL) {
+ if ((subFolder = readdir(toSearchIn)) != nullptr) {
+ if (strstr(subFolder->d_name, "default") != nullptr) {
finalPath = homePath->append(subFolder->d_name);
closedir(toSearchIn);
return finalPath;
}
}
- } while (subFolder != NULL);
+ } while (subFolder != nullptr);
closedir(toSearchIn);
delete homePath;
- return NULL;
+ return nullptr;
}
/**
@@ -114,7 +114,7 @@ GooString *SignatureHandler::getDefaultFirefoxCertDB_Linux()
void SignatureHandler::init_nss()
{
GooString *certDBPath = getDefaultFirefoxCertDB_Linux();
- if (certDBPath == NULL) {
+ if (certDBPath == nullptr) {
NSS_Init("sql:/etc/pki/nssdb");
} else {
NSS_Init(certDBPath->getCString());
@@ -127,11 +127,11 @@ void SignatureHandler::init_nss()
SignatureHandler::SignatureHandler(unsigned char *p7, int p7_length)
- : hash_context(NULL),
- CMSMessage(NULL),
- CMSSignedData(NULL),
- CMSSignerInfo(NULL),
- temp_certs(NULL)
+ : hash_context(nullptr),
+ CMSMessage(nullptr),
+ CMSSignedData(nullptr),
+ CMSSignerInfo(nullptr),
+ temp_certs(nullptr)
{
init_nss();
CMSitem.data = p7;
@@ -183,11 +183,11 @@ SignatureHandler::~SignatureHandler()
NSSCMSMessage *SignatureHandler::CMS_MessageCreate(SECItem * cms_item)
{
if (cms_item->data){
- return NSS_CMSMessage_CreateFromDER(cms_item, NULL, NULL /* Content callback */
- , NULL, NULL /*Password callback*/
- , NULL, NULL /*Decrypt callback*/);
+ return NSS_CMSMessage_CreateFromDER(cms_item, nullptr, nullptr /* Content callback */
+ , nullptr, nullptr /*Password callback*/
+ , nullptr, nullptr /*Decrypt callback*/);
} else {
- return NULL;
+ return nullptr;
}
}
@@ -195,19 +195,19 @@ NSSCMSSignedData *SignatureHandler::CMS_SignedDataCreate(NSSCMSMessage * cms_msg
{
if (!NSS_CMSMessage_IsSigned(cms_msg)) {
error(errInternal, 0, "Input couldn't be parsed as a CMS signature");
- return NULL;
+ return nullptr;
}
NSSCMSContentInfo *cinfo = NSS_CMSMessage_ContentLevel(cms_msg, 0);
if (!cinfo) {
error(errInternal, 0, "Error in NSS_CMSMessage_ContentLevel");
- return NULL;
+ return nullptr;
}
NSSCMSSignedData *signedData = (NSSCMSSignedData*) NSS_CMSContentInfo_GetContent(cinfo);
if (!signedData) {
error(errInternal, 0, "CError in NSS_CMSContentInfo_GetContent()");
- return NULL;
+ return nullptr;
}
if (signedData->rawCerts)
@@ -220,12 +220,12 @@ NSSCMSSignedData *SignatureHandler::CMS_SignedDataCreate(NSSCMSMessage * cms_msg
memset(signedData->tempCerts, 0, (i+1) * sizeof(CERTCertificate *));
// store the adresses of these temporary certificates for future release
for (i = 0; signedData->rawCerts[i]; ++i)
- signedData->tempCerts[i] = CERT_NewTempCertificate(CERT_GetDefaultCertDB(), signedData->rawCerts[i], NULL, 0, 0);
+ signedData->tempCerts[i] = CERT_NewTempCertificate(CERT_GetDefaultCertDB(), signedData->rawCerts[i], nullptr, 0, 0);
temp_certs = signedData->tempCerts;
return signedData;
} else {
- return NULL;
+ return nullptr;
}
}
@@ -234,7 +234,7 @@ NSSCMSSignerInfo *SignatureHandler::CMS_SignerInfoCreate(NSSCMSSignedData * cms_
NSSCMSSignerInfo *signerInfo = NSS_CMSSignedData_GetSignerInfo(cms_sig_data, 0);
if (!signerInfo) {
printf("Error in NSS_CMSSignedData_GetSignerInfo()\n");
- return NULL;
+ return nullptr;
} else {
return signerInfo;
}
@@ -242,7 +242,7 @@ NSSCMSSignerInfo *SignatureHandler::CMS_SignerInfoCreate(NSSCMSSignedData * cms_
NSSCMSVerificationStatus SignatureHandler::validateSignature()
{
- unsigned char *digest_buffer = NULL;
+ unsigned char *digest_buffer = nullptr;
if (!CMSSignedData)
return NSSCMSVS_MalformedSignature;
@@ -256,11 +256,11 @@ NSSCMSVerificationStatus SignatureHandler::validateSignature()
digest.data = digest_buffer;
digest.len = hash_length;
- if ((NSS_CMSSignerInfo_GetSigningCertificate(CMSSignerInfo, CERT_GetDefaultCertDB())) == NULL)
+ if ((NSS_CMSSignerInfo_GetSigningCertificate(CMSSignerInfo, CERT_GetDefaultCertDB())) == nullptr)
CMSSignerInfo->verificationStatus = NSSCMSVS_SigningCertNotFound;
SECItem * content_info_data = CMSSignedData->contentInfo.content.data;
- if (content_info_data != NULL && content_info_data->data != NULL)
+ if (content_info_data != nullptr && content_info_data->data != nullptr)
{
/*
This means it's not a detached type signature
@@ -279,7 +279,7 @@ NSSCMSVerificationStatus SignatureHandler::validateSignature()
}
}
- else if (NSS_CMSSignerInfo_Verify(CMSSignerInfo, &digest, NULL) != SECSuccess)
+ else if (NSS_CMSSignerInfo_Verify(CMSSignerInfo, &digest, nullptr) != SECSuccess)
{
PORT_Free(digest_buffer);
@@ -300,7 +300,7 @@ SECErrorCodes SignatureHandler::validateCertificate(time_t validation_time)
if (!CMSSignerInfo)
return (SECErrorCodes) -1; //error code to avoid matching error codes defined in SECErrorCodes
- if ((cert = NSS_CMSSignerInfo_GetSigningCertificate(CMSSignerInfo, CERT_GetDefaultCertDB())) == NULL)
+ if ((cert = NSS_CMSSignerInfo_GetSigningCertificate(CMSSignerInfo, CERT_GetDefaultCertDB())) == nullptr)
CMSSignerInfo->verificationStatus = NSSCMSVS_SigningCertNotFound;
PRTime vTime = 0; // time in microseconds since the epoch, special value 0 means now
@@ -313,7 +313,7 @@ SECErrorCodes SignatureHandler::validateCertificate(time_t validation_time)
inParams[1].value.scalar.time = vTime;
inParams[2].type = cert_pi_end;
- CERT_PKIXVerifyCert(cert, certificateUsageEmailSigner, inParams, NULL,
+ CERT_PKIXVerifyCert(cert, certificateUsageEmailSigner, inParams, nullptr,
CMSSignerInfo->cmsg->pwfn_arg);
retVal = (SECErrorCodes) PORT_GetError();
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Sound.cc b/Build/source/libs/poppler/poppler-src/poppler/Sound.cc
index c0dd6ccbf77..4a59d3fe04a 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Sound.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Sound.cc
@@ -27,17 +27,17 @@ Sound *Sound::parseSound(Object *obj)
{
// let's try to see if this Object is a Sound, according to the PDF specs
// (section 9.2)
- Stream *str = NULL;
+ Stream *str = nullptr;
// the Object must be a Stream
if (obj->isStream()) {
str = obj->getStream();
} else {
- return NULL;
+ return nullptr;
}
// the Stream must have a Dict
Dict *dict = str->getDict();
- if (dict == NULL)
- return NULL;
+ if (dict == nullptr)
+ return nullptr;
// the Dict must have the 'R' key of type num
Object tmp = dict->lookup("R");
if (tmp.isNum()) {
@@ -51,7 +51,7 @@ Sound::Sound(Object *obj, bool readAttrs)
{
streamObj = obj->copy();
- fileName = NULL;
+ fileName = nullptr;
samplingRate = 0.0;
channels = 1;
bitsPerSample = 8;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Sound.h b/Build/source/libs/poppler/poppler-src/poppler/Sound.h
index 5e33cb51e79..e88de4d62f9 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Sound.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Sound.h
@@ -1,6 +1,6 @@
/* Sound.h - an object that holds the sound structure
* Copyright (C) 2006-2007, Pino Toscano <pino@kde.org>
- * Copyright (C) 2017, Albert Astals Cid <aacid@kde.org>
+ * Copyright (C) 2017, 2018, Albert Astals Cid <aacid@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -47,6 +47,9 @@ public:
// Destructor
~Sound();
+ Sound(const Sound &) = delete;
+ Sound& operator=(const Sound &) = delete;
+
Object *getObject() { return &streamObj; }
Stream *getStream();
diff --git a/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc
index 28174356949..efc0aaece1e 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.cc
@@ -15,7 +15,7 @@
//
// Copyright (C) 2005 Takashi Iwai <tiwai@suse.de>
// Copyright (C) 2006 Stefan Schweizer <genstef@gentoo.org>
-// Copyright (C) 2006-2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2006 Krzysztof Kowalczyk <kkowalczyk@gmail.com>
// Copyright (C) 2006 Scott Turner <scotty1024@mac.com>
// Copyright (C) 2007 Koji Otani <sho@bbr.jp>
@@ -197,15 +197,10 @@ static inline void convertGfxShortColor(SplashColorPtr dest,
// SplashGouraudPattern
//------------------------------------------------------------------------
SplashGouraudPattern::SplashGouraudPattern(GBool bDirectColorTranslationA,
- GfxState *stateA, GfxGouraudTriangleShading *shadingA, SplashColorMode modeA) {
- SplashColor defaultColor;
- GfxColor srcColor;
+ GfxState *stateA, GfxGouraudTriangleShading *shadingA) {
state = stateA;
shading = shadingA;
- mode = modeA;
bDirectColorTranslation = bDirectColorTranslationA;
- shadingA->getColorSpace()->getDefaultColor(&srcColor);
- convertGfxColor(defaultColor, mode, shadingA->getColorSpace(), &srcColor);
gfxMode = shadingA->getColorSpace()->getMode();
}
@@ -1176,7 +1171,7 @@ static void splashOutBlendLuminosity(SplashColorPtr src, SplashColorPtr dest,
// NB: This must match the GfxBlendMode enum defined in GfxState.h.
static const SplashBlendFunc splashOutBlendFuncs[] = {
- NULL,
+ nullptr,
&splashOutBlendMultiply,
&splashOutBlendScreen,
&splashOutBlendOverlay,
@@ -1232,6 +1227,8 @@ public:
int glyphXA, int glyphYA, int glyphWA, int glyphHA,
GBool aa, GBool validBBoxA);
~T3FontCache();
+ T3FontCache(const T3FontCache &) = delete;
+ T3FontCache& operator=(const T3FontCache &) = delete;
GBool matches(Ref *idA, double m11A, double m12A,
double m21A, double m22A)
{ return fontID.num == idA->num && fontID.gen == idA->gen &&
@@ -1289,9 +1286,9 @@ T3FontCache::T3FontCache(Ref *fontIDA, double m11A, double m12A,
" This could teoretically result in wrong rendering,\n"
" but most probably the document is bogus.\n"
" Please report a bug if you think the rendering may be wrong because of this.");
- cacheData = NULL;
+ cacheData = nullptr;
}
- if (cacheData != NULL)
+ if (cacheData != nullptr)
{
cacheTags = (T3FontCacheTag *)gmallocn(cacheSets * cacheAssoc,
sizeof(T3FontCacheTag));
@@ -1301,7 +1298,7 @@ T3FontCache::T3FontCache(Ref *fontIDA, double m11A, double m12A,
}
else
{
- cacheTags = NULL;
+ cacheTags = nullptr;
}
}
@@ -1376,16 +1373,16 @@ SplashOutputDev::SplashOutputDev(SplashColorMode colorModeA,
enableSlightHinting = gFalse;
setupScreenParams(72.0, 72.0);
reverseVideo = reverseVideoA;
- if (paperColorA != NULL) {
+ if (paperColorA != nullptr) {
splashColorCopy(paperColor, paperColorA);
} else {
splashClearColor(paperColor);
}
skipHorizText = gFalse;
skipRotatedText = gFalse;
- keepAlphaChannel = paperColorA == NULL;
+ keepAlphaChannel = paperColorA == nullptr;
- doc = NULL;
+ doc = nullptr;
bitmap = new SplashBitmap(1, 1, bitmapRowPad, colorMode,
colorMode != splashModeMono1, bitmapTopDown);
@@ -1394,17 +1391,17 @@ SplashOutputDev::SplashOutputDev(SplashColorMode colorModeA,
splash->setThinLineMode(thinLineMode);
splash->clear(paperColor, 0);
- fontEngine = NULL;
+ fontEngine = nullptr;
nT3Fonts = 0;
- t3GlyphStack = NULL;
+ t3GlyphStack = nullptr;
- font = NULL;
+ font = nullptr;
needFontUpdate = gFalse;
- textClipPath = NULL;
- transpGroupStack = NULL;
+ textClipPath = nullptr;
+ transpGroupStack = nullptr;
nestCount = 0;
- xref = NULL;
+ xref = nullptr;
}
void SplashOutputDev::setupScreenParams(double hDPI, double vDPI) {
@@ -1492,12 +1489,12 @@ void SplashOutputDev::startPage(int pageNum, GfxState *state, XRef *xrefA) {
if (splash) {
thinLineMode = splash->getThinLineMode();
delete splash;
- splash = NULL;
+ splash = nullptr;
}
if (!bitmap || w != bitmap->getWidth() || h != bitmap->getHeight()) {
if (bitmap) {
delete bitmap;
- bitmap = NULL;
+ bitmap = nullptr;
}
bitmap = new SplashBitmap(w, h, bitmapRowPad, colorMode,
colorMode != splashModeMono1, bitmapTopDown);
@@ -1547,7 +1544,7 @@ void SplashOutputDev::startPage(int pageNum, GfxState *state, XRef *xrefA) {
splash->setFillPattern(new SplashSolidColor(color));
splash->setLineCap(splashLineCapButt);
splash->setLineJoin(splashLineJoinMiter);
- splash->setLineDash(NULL, 0, 0);
+ splash->setLineDash(nullptr, 0, 0);
splash->setMiterLimit(10);
splash->setFlatness(1);
// the SA parameter supposedly defaults to false, but Acrobat
@@ -1907,14 +1904,14 @@ void SplashOutputDev::updateBlendMode(GfxState *state) {
void SplashOutputDev::updateFillOpacity(GfxState *state) {
splash->setFillAlpha((SplashCoord)state->getFillOpacity());
- if (transpGroupStack != NULL && (SplashCoord)state->getFillOpacity() < transpGroupStack->knockoutOpacity) {
+ if (transpGroupStack != nullptr && (SplashCoord)state->getFillOpacity() < transpGroupStack->knockoutOpacity) {
transpGroupStack->knockoutOpacity = (SplashCoord)state->getFillOpacity();
}
}
void SplashOutputDev::updateStrokeOpacity(GfxState *state) {
splash->setStrokeAlpha((SplashCoord)state->getStrokeOpacity());
- if (transpGroupStack != NULL && (SplashCoord)state->getStrokeOpacity() < transpGroupStack->knockoutOpacity) {
+ if (transpGroupStack != nullptr && (SplashCoord)state->getStrokeOpacity() < transpGroupStack->knockoutOpacity) {
transpGroupStack->knockoutOpacity = (SplashCoord)state->getStrokeOpacity();
}
}
@@ -1992,11 +1989,10 @@ void SplashOutputDev::doUpdateFont(GfxState *state) {
GfxFont *gfxFont;
GfxFontLoc *fontLoc;
GfxFontType fontType;
- SplashOutFontFileID *id = NULL;
+ SplashOutFontFileID *id = nullptr;
SplashFontFile *fontFile;
- SplashFontSrc *fontsrc = NULL;
+ SplashFontSrc *fontsrc = nullptr;
FoFiTrueType *ff;
- Object refObj, strObj;
GooString *fileName;
char *tmpBuf;
int tmpBufLen;
@@ -2010,10 +2006,10 @@ void SplashOutputDev::doUpdateFont(GfxState *state) {
GBool doAdjustFontMatrix = gFalse;
needFontUpdate = gFalse;
- font = NULL;
- fileName = NULL;
- tmpBuf = NULL;
- fontLoc = NULL;
+ font = nullptr;
+ fileName = nullptr;
+ tmpBuf = nullptr;
+ fontLoc = nullptr;
if (!(gfxFont = state->getFont())) {
goto err1;
@@ -2034,7 +2030,7 @@ void SplashOutputDev::doUpdateFont(GfxState *state) {
reload:
delete id;
delete fontLoc;
- fontLoc = NULL;
+ fontLoc = nullptr;
if (fontsrc && !fontsrc->isFile) {
fontsrc->unref();
fontsrc = nullptr;
@@ -2046,7 +2042,7 @@ reload:
} else {
- if (!(fontLoc = gfxFont->locateFont((xref) ? xref : doc->getXRef(), NULL))) {
+ if (!(fontLoc = gfxFont->locateFont((xref) ? xref : doc->getXRef(), nullptr))) {
error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'",
gfxFont->getName() ? gfxFont->getName()->getCString()
: "(unnamed)");
@@ -2133,7 +2129,7 @@ reload:
}
}
} else {
- codeToGID = NULL;
+ codeToGID = nullptr;
n = 0;
}
if (!(fontFile = fontEngine->loadTrueTypeFont(
@@ -2166,7 +2162,7 @@ reload:
memcpy(codeToGID, ((GfxCIDFont *)gfxFont)->getCIDToGID(),
n * sizeof(int));
} else {
- codeToGID = NULL;
+ codeToGID = nullptr;
n = 0;
}
if (!(fontFile = fontEngine->loadOpenTypeCFFFont(
@@ -2182,7 +2178,7 @@ reload:
break;
case fontCIDType2:
case fontCIDType2OT:
- codeToGID = NULL;
+ codeToGID = nullptr;
n = 0;
if (((GfxCIDFont *)gfxFont)->getCIDToGID()) {
n = ((GfxCIDFont *)gfxFont)->getCIDToGIDLen();
@@ -2430,7 +2426,7 @@ void SplashOutputDev::drawChar(GfxState *state, double x, double y,
!state->getStrokeColorSpace()->isNonMarking();
doClip = render & 4;
- path = NULL;
+ path = nullptr;
SplashCoord lineWidth = splash->getLineWidth();
if (doStroke && lineWidth == 0.0)
splash->setLineWidth(1 / state->getVDPI());
@@ -2487,7 +2483,7 @@ void SplashOutputDev::drawChar(GfxState *state, double x, double y,
textClipPath->append(path);
} else {
textClipPath = path;
- path = NULL;
+ path = nullptr;
}
}
}
@@ -2551,7 +2547,7 @@ GBool SplashOutputDev::beginType3Char(GfxState *state, double x, double y,
// create new entry in the font cache
if (nT3Fonts == splashOutT3FontCacheSize) {
t3gs = t3GlyphStack;
- while (t3gs != NULL) {
+ while (t3gs != nullptr) {
if (t3gs->cache == t3FontCache[nT3Fonts - 1]) {
error(errSyntaxWarning, -1, "t3FontCache reaches limit but font still on stack in SplashOutputDev::beginType3Char");
return gTrue;
@@ -2626,7 +2622,7 @@ GBool SplashOutputDev::beginType3Char(GfxState *state, double x, double y,
// is the glyph in the cache?
i = (code & (t3Font->cacheSets - 1)) * t3Font->cacheAssoc;
for (j = 0; j < t3Font->cacheAssoc; ++j) {
- if (t3Font->cacheTags != NULL) {
+ if (t3Font->cacheTags != nullptr) {
if ((t3Font->cacheTags[i+j].mru & 0x8000) &&
t3Font->cacheTags[i+j].code == code) {
drawType3Glyph(state, t3Font, &t3Font->cacheTags[i+j],
@@ -2642,8 +2638,8 @@ GBool SplashOutputDev::beginType3Char(GfxState *state, double x, double y,
t3GlyphStack = t3gs;
t3GlyphStack->code = code;
t3GlyphStack->cache = t3Font;
- t3GlyphStack->cacheTag = NULL;
- t3GlyphStack->cacheData = NULL;
+ t3GlyphStack->cacheTag = nullptr;
+ t3GlyphStack->cacheData = nullptr;
t3GlyphStack->haveDx = gFalse;
t3GlyphStack->doNotCache = gFalse;
@@ -2700,17 +2696,17 @@ void SplashOutputDev::type3D1(GfxState *state, double wx, double wy,
return;
}
- if (unlikely(t3GlyphStack == NULL)) {
+ if (unlikely(t3GlyphStack == nullptr)) {
error(errSyntaxWarning, -1, "t3GlyphStack was null in SplashOutputDev::type3D1");
return;
}
- if (unlikely(t3GlyphStack->origBitmap != NULL)) {
+ if (unlikely(t3GlyphStack->origBitmap != nullptr)) {
error(errSyntaxWarning, -1, "t3GlyphStack origBitmap was not null in SplashOutputDev::type3D1");
return;
}
- if (unlikely(t3GlyphStack->origSplash != NULL)) {
+ if (unlikely(t3GlyphStack->origSplash != nullptr)) {
error(errSyntaxWarning, -1, "t3GlyphStack origSplash was not null in SplashOutputDev::type3D1");
return;
}
@@ -2765,7 +2761,7 @@ void SplashOutputDev::type3D1(GfxState *state, double wx, double wy,
return;
}
- if (t3Font->cacheTags == NULL)
+ if (t3Font->cacheTags == nullptr)
return;
// allocate a cache entry
@@ -2840,7 +2836,7 @@ void SplashOutputDev::endTextObject(GfxState *state) {
if (textClipPath) {
splash->clipToPath(textClipPath, gFalse);
delete textClipPath;
- textClipPath = NULL;
+ textClipPath = nullptr;
}
}
@@ -2900,7 +2896,7 @@ void SplashOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str,
imgMaskData.height = height;
imgMaskData.y = 0;
- splash->fillImageMask(&imageMaskSrc, &imgMaskData, width, height, mat, t3GlyphStack != NULL);
+ splash->fillImageMask(&imageMaskSrc, &imgMaskData, width, height, mat, t3GlyphStack != nullptr);
if (inlineImg) {
while (imgMaskData.y < height) {
imgMaskData.imgStr->getLine();
@@ -2933,7 +2929,7 @@ void SplashOutputDev::setSoftMaskFromImageMask(GfxState *state,
if (!std::isfinite(ctm[i])) return;
}
- beginTransparencyGroup(state, bbox, NULL, gFalse, gFalse, gFalse);
+ beginTransparencyGroup(state, bbox, nullptr, gFalse, gFalse, gFalse);
baseMatrix[4] -= transpGroupStack->tx;
baseMatrix[5] -= transpGroupStack->ty;
@@ -2957,7 +2953,7 @@ void SplashOutputDev::setSoftMaskFromImageMask(GfxState *state,
maskSplash->clear(maskColor);
maskColor[0] = 0xff;
maskSplash->setFillPattern(new SplashSolidColor(maskColor));
- maskSplash->fillImageMask(&imageMaskSrc, &imgMaskData, width, height, mat, t3GlyphStack != NULL);
+ maskSplash->fillImageMask(&imageMaskSrc, &imgMaskData, width, height, mat, t3GlyphStack != nullptr);
delete maskSplash;
delete imgMaskData.imgStr;
str->close();
@@ -2969,14 +2965,14 @@ void SplashOutputDev::unsetSoftMaskFromImageMask(GfxState *state, double *baseMa
/* transfer mask to alpha channel! */
// memcpy(maskBitmap->getAlphaPtr(), maskBitmap->getDataPtr(), bitmap->getRowSize() * bitmap->getHeight());
// memset(maskBitmap->getDataPtr(), 0, bitmap->getRowSize() * bitmap->getHeight());
- if (transpGroupStack->softmask != NULL) {
+ if (transpGroupStack->softmask != nullptr) {
Guchar *dest = bitmap->getAlphaPtr();
Guchar *src = transpGroupStack->softmask->getDataPtr();
for (int c= 0; c < transpGroupStack->softmask->getRowSize() * transpGroupStack->softmask->getHeight(); c++) {
dest[c] = src[c];
}
delete transpGroupStack->softmask;
- transpGroupStack->softmask = NULL;
+ transpGroupStack->softmask = nullptr;
}
endTransparencyGroup(state);
baseMatrix[4] += transpGroupStack->tx;
@@ -3005,13 +3001,13 @@ GBool SplashOutputDev::useIccImageSrc(void *data) {
switch (imgData->colorMode) {
case splashModeMono1:
case splashModeMono8:
- if (colorSpace->getAlt() != NULL && colorSpace->getAlt()->getMode() == csDeviceGray)
+ if (colorSpace->getAlt() != nullptr && colorSpace->getAlt()->getMode() == csDeviceGray)
return gTrue;
break;
case splashModeXBGR8:
case splashModeRGB8:
case splashModeBGR8:
- if (colorSpace->getAlt() != NULL && colorSpace->getAlt()->getMode() == csDeviceRGB)
+ if (colorSpace->getAlt() != nullptr && colorSpace->getAlt()->getMode() == csDeviceRGB)
return gTrue;
break;
#ifdef SPLASH_CMYK
@@ -3175,7 +3171,7 @@ GBool SplashOutputDev::imageSrc(void *data, SplashColorPtr colorLine,
}
}
- if (imgData->maskStr != NULL && (p = imgData->maskStr->getLine()) != NULL) {
+ if (imgData->maskStr != nullptr && (p = imgData->maskStr->getLine()) != nullptr) {
int destComps = splashColorModeNComps[imgData->colorMode];
int convComps = (imgData->colorMode == splashModeXBGR8) ? 3 : destComps;
imgData->maskColorMap->getGrayLine(p, p, imgData->width);
@@ -3238,7 +3234,7 @@ void SplashOutputDev::iccTransform(void *data, SplashBitmap *bitmap) {
int nComps = imgData->colorMap->getNumPixelComps();
Guchar *colorLine = (Guchar *) gmalloc(nComps * bitmap->getWidth());
- Guchar *rgbxLine = (imgData->colorMode == splashModeXBGR8) ? (Guchar *) gmalloc(3 * bitmap->getWidth()) : NULL;
+ Guchar *rgbxLine = (imgData->colorMode == splashModeXBGR8) ? (Guchar *) gmalloc(3 * bitmap->getWidth()) : nullptr;
for (int i = 0; i < bitmap->getHeight(); i++) {
Guchar *p = bitmap->getDataPtr() + i * bitmap->getRowSize();
switch (imgData->colorMode) {
@@ -3278,7 +3274,7 @@ void SplashOutputDev::iccTransform(void *data, SplashBitmap *bitmap) {
}
}
gfree(colorLine);
- if (rgbxLine != NULL)
+ if (rgbxLine != nullptr)
gfree(rgbxLine);
}
#endif
@@ -3435,7 +3431,7 @@ GBool SplashOutputDev::tilingBitmapSrc(void *data, SplashColorPtr colorLine,
}
}
}
- if (alphaLine != NULL) {
+ if (alphaLine != nullptr) {
SplashColorPtr aq = alphaLine;
SplashColorPtr p;
const int n = imgData->bitmap->getWidth() - 1;
@@ -3467,7 +3463,7 @@ GBool SplashOutputDev::tilingBitmapSrc(void *data, SplashColorPtr colorLine,
dest += splashColorModeNComps[imgData->colorMode];
}
}
- if (alphaLine != NULL) {
+ if (alphaLine != nullptr) {
const int y = (imgData->y == imgData->bitmap->getHeight() - 1 && imgData->y > 50) ? imgData->y - 1 : imgData->y;
SplashColorPtr aq = alphaLine;
SplashColorPtr p;
@@ -3525,13 +3521,13 @@ void SplashOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
imgData.colorMode = colorMode;
imgData.width = width;
imgData.height = height;
- imgData.maskStr = NULL;
- imgData.maskColorMap = NULL;
+ imgData.maskStr = nullptr;
+ imgData.maskColorMap = nullptr;
imgData.y = 0;
// special case for one-channel (monochrome/gray/separation) images:
// build a lookup table here
- imgData.lookup = NULL;
+ imgData.lookup = nullptr;
if (colorMap->getNumPixelComps() == 1) {
n = 1 << colorMap->getBits();
switch (colorMode) {
@@ -3606,7 +3602,7 @@ void SplashOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
state->getOverprintMode(), NULL, grayIndexed);
#else
setOverprintMask(colorMap->getColorSpace(), state->getFillOverprint(),
- state->getOverprintMode(), NULL);
+ state->getOverprintMode(), nullptr);
#endif
if (colorMode == splashModeMono1) {
@@ -3616,7 +3612,7 @@ void SplashOutputDev::drawImage(GfxState *state, Object *ref, Stream *str,
}
#ifdef USE_CMS
src = maskColors ? &alphaImageSrc : useIccImageSrc(&imgData) ? &iccImageSrc : &imageSrc;
- tf = maskColors == NULL && useIccImageSrc(&imgData) ? &iccTransform : NULL;
+ tf = maskColors == nullptr && useIccImageSrc(&imgData) ? &iccTransform : nullptr;
#else
src = maskColors ? &alphaImageSrc : &imageSrc;
tf = NULL;
@@ -3763,7 +3759,6 @@ void SplashOutputDev::drawMaskedImage(GfxState *state, Object *ref,
int maskHeight, GBool maskInvert,
GBool maskInterpolate) {
GfxImageColorMap *maskColorMap;
- Object decodeLow, decodeHigh;
double *ctm;
SplashCoord mat[6];
SplashOutMaskedImageData imgData;
@@ -3785,7 +3780,7 @@ void SplashOutputDev::drawMaskedImage(GfxState *state, Object *ref,
colorMap->getColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
#endif
setOverprintMask(colorMap->getColorSpace(), state->getFillOverprint(),
- state->getOverprintMode(), NULL);
+ state->getOverprintMode(), nullptr);
// If the mask is higher resolution than the image, use
// drawSoftMaskedImage() instead.
@@ -3860,7 +3855,7 @@ void SplashOutputDev::drawMaskedImage(GfxState *state, Object *ref,
// special case for one-channel (monochrome/gray/separation) images:
// build a lookup table here
- imgData.lookup = NULL;
+ imgData.lookup = nullptr;
if (colorMap->getNumPixelComps() == 1) {
n = 1 << colorMap->getBits();
switch (colorMode) {
@@ -3925,7 +3920,7 @@ void SplashOutputDev::drawMaskedImage(GfxState *state, Object *ref,
} else {
srcMode = colorMode;
}
- splash->drawImage(&maskedImageSrc, NULL, &imgData, srcMode, gTrue,
+ splash->drawImage(&maskedImageSrc, nullptr, &imgData, srcMode, gTrue,
width, height, mat, interpolate);
delete maskBitmap;
gfree(imgData.lookup);
@@ -3963,7 +3958,7 @@ void SplashOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref,
colorMap->getColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
#endif
setOverprintMask(colorMap->getColorSpace(), state->getFillOverprint(),
- state->getOverprintMode(), NULL);
+ state->getOverprintMode(), nullptr);
ctm = state->getCTM();
for (i = 0; i < 6; ++i) {
@@ -3978,7 +3973,7 @@ void SplashOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref,
//----- set up the soft mask
- if (maskColorMap->getMatteColor() != NULL) {
+ if (maskColorMap->getMatteColor() != nullptr) {
Guchar *data = (Guchar *) gmalloc(maskWidth * maskHeight);
maskStr->reset();
maskStr->doGetChars(maskWidth * maskHeight, data);
@@ -3991,13 +3986,13 @@ void SplashOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref,
maskColorMap->getBits());
imgMaskData.imgStr->reset();
imgMaskData.colorMap = maskColorMap;
- imgMaskData.maskColors = NULL;
+ imgMaskData.maskColors = nullptr;
imgMaskData.colorMode = splashModeMono8;
imgMaskData.width = maskWidth;
imgMaskData.height = maskHeight;
imgMaskData.y = 0;
- imgMaskData.maskStr = NULL;
- imgMaskData.maskColorMap = NULL;
+ imgMaskData.maskStr = nullptr;
+ imgMaskData.maskColorMap = nullptr;
n = 1 << maskColorMap->getBits();
imgMaskData.lookup = (SplashColorPtr)gmalloc(n);
for (i = 0; i < n; ++i) {
@@ -4010,10 +4005,10 @@ void SplashOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref,
maskSplash = new Splash(maskBitmap, vectorAntialias);
maskColor[0] = 0;
maskSplash->clear(maskColor);
- maskSplash->drawImage(&imageSrc, NULL, &imgMaskData, splashModeMono8, gFalse,
+ maskSplash->drawImage(&imageSrc, nullptr, &imgMaskData, splashModeMono8, gFalse,
maskWidth, maskHeight, mat, maskInterpolate);
delete imgMaskData.imgStr;
- if (maskColorMap->getMatteColor() == NULL) {
+ if (maskColorMap->getMatteColor() == nullptr) {
maskStr->close();
}
gfree(imgMaskData.lookup);
@@ -4027,13 +4022,13 @@ void SplashOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref,
colorMap->getBits());
imgData.imgStr->reset();
imgData.colorMap = colorMap;
- imgData.maskColors = NULL;
+ imgData.maskColors = nullptr;
imgData.colorMode = colorMode;
imgData.width = width;
imgData.height = height;
- imgData.maskStr = NULL;
- imgData.maskColorMap = NULL;
- if (maskColorMap->getMatteColor() != NULL) {
+ imgData.maskStr = nullptr;
+ imgData.maskColorMap = nullptr;
+ if (maskColorMap->getMatteColor() != nullptr) {
getMatteColor(colorMode, colorMap, maskColorMap->getMatteColor(), imgData.matteColor);
imgData.maskColorMap = maskColorMap;
imgData.maskStr = new ImageStream(maskStr, maskWidth,
@@ -4045,7 +4040,7 @@ void SplashOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref,
// special case for one-channel (monochrome/gray/separation) images:
// build a lookup table here
- imgData.lookup = NULL;
+ imgData.lookup = nullptr;
if (colorMap->getNumPixelComps() == 1) {
n = 1 << colorMap->getBits();
switch (colorMode) {
@@ -4110,12 +4105,12 @@ void SplashOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref,
} else {
srcMode = colorMode;
}
- splash->drawImage(&imageSrc, NULL, &imgData, srcMode, gFalse, width, height, mat, interpolate);
- splash->setSoftMask(NULL);
+ splash->drawImage(&imageSrc, nullptr, &imgData, srcMode, gFalse, width, height, mat, interpolate);
+ splash->setSoftMask(nullptr);
gfree(imgData.lookup);
delete imgData.maskStr;
delete imgData.imgStr;
- if (maskColorMap->getMatteColor() != NULL) {
+ if (maskColorMap->getMatteColor() != nullptr) {
maskStr->close();
delete maskStr;
}
@@ -4127,10 +4122,10 @@ GBool SplashOutputDev::checkTransparencyGroup(GfxState *state, GBool knockout) {
state->getStrokeOpacity() != 1 ||
state->getAlphaIsShape() ||
state->getBlendMode() != gfxBlendNormal ||
- splash->getSoftMask() != NULL ||
+ splash->getSoftMask() != nullptr ||
knockout)
return gTrue;
- return transpGroupStack != NULL && transpGroupStack->shape != NULL;
+ return transpGroupStack != nullptr && transpGroupStack->shape != nullptr;
}
void SplashOutputDev::beginTransparencyGroup(GfxState *state, double *bbox,
@@ -4208,12 +4203,12 @@ void SplashOutputDev::beginTransparencyGroup(GfxState *state, double *bbox,
// push a new stack entry
transpGroup = new SplashTransparencyGroup();
- transpGroup->softmask = NULL;
+ transpGroup->softmask = nullptr;
transpGroup->tx = tx;
transpGroup->ty = ty;
transpGroup->blendingColorSpace = blendingColorSpace;
transpGroup->isolated = isolated;
- transpGroup->shape = (knockout && !isolated) ? SplashBitmap::copy(bitmap) : NULL;
+ transpGroup->shape = (knockout && !isolated) ? SplashBitmap::copy(bitmap) : nullptr;
transpGroup->knockout = (knockout && isolated);
transpGroup->knockoutOpacity = 1.0;
transpGroup->next = transpGroupStack;
@@ -4259,7 +4254,7 @@ void SplashOutputDev::beginTransparencyGroup(GfxState *state, double *bbox,
}
splash = new Splash(bitmap, vectorAntialias,
transpGroup->origSplash->getScreen());
- if (transpGroup->next != NULL && transpGroup->next->knockout) {
+ if (transpGroup->next != nullptr && transpGroup->next->knockout) {
fontEngine->setAA(gFalse);
}
splash->setThinLineMode(transpGroup->origSplash->getThinLineMode());
@@ -4279,11 +4274,11 @@ void SplashOutputDev::beginTransparencyGroup(GfxState *state, double *bbox,
splash->clear(color, 0);
} else {
SplashBitmap *shape = (knockout) ? transpGroup->shape :
- (transpGroup->next != NULL && transpGroup->next->shape != NULL) ? transpGroup->next->shape : transpGroup->origBitmap;
+ (transpGroup->next != nullptr && transpGroup->next->shape != nullptr) ? transpGroup->next->shape : transpGroup->origBitmap;
int shapeTx = (knockout) ? tx :
- (transpGroup->next != NULL && transpGroup->next->shape != NULL) ? transpGroup->next->tx + tx : tx;
+ (transpGroup->next != nullptr && transpGroup->next->shape != nullptr) ? transpGroup->next->tx + tx : tx;
int shapeTy = (knockout) ? ty :
- (transpGroup->next != NULL && transpGroup->next->shape != NULL) ? transpGroup->next->ty + ty : ty;
+ (transpGroup->next != nullptr && transpGroup->next->shape != nullptr) ? transpGroup->next->ty + ty : ty;
splash->blitTransparent(transpGroup->origBitmap, tx, ty, 0, 0, w, h);
splash->setInNonIsolatedGroup(shape, shapeTx, shapeTy);
}
@@ -4318,14 +4313,14 @@ void SplashOutputDev::paintTransparencyGroup(GfxState *state, double *bbox) {
// paint the transparency group onto the parent bitmap
// - the clip path was set in the parent's state)
if (tx < bitmap->getWidth() && ty < bitmap->getHeight()) {
- SplashCoord knockoutOpacity = (transpGroupStack->next != NULL) ? transpGroupStack->next->knockoutOpacity
+ SplashCoord knockoutOpacity = (transpGroupStack->next != nullptr) ? transpGroupStack->next->knockoutOpacity
: transpGroupStack->knockoutOpacity;
splash->setOverprintMask(0xffffffff, gFalse);
splash->composite(tBitmap, 0, 0, tx, ty,
tBitmap->getWidth(), tBitmap->getHeight(),
- gFalse, !isolated, transpGroupStack->next != NULL && transpGroupStack->next->knockout, knockoutOpacity);
+ gFalse, !isolated, transpGroupStack->next != nullptr && transpGroupStack->next->knockout, knockoutOpacity);
fontEngine->setAA(transpGroupStack->fontAA);
- if (transpGroupStack->next != NULL && transpGroupStack->next->shape != NULL) {
+ if (transpGroupStack->next != nullptr && transpGroupStack->next->shape != nullptr) {
transpGroupStack->next->knockout = gTrue;
}
}
@@ -4333,7 +4328,7 @@ void SplashOutputDev::paintTransparencyGroup(GfxState *state, double *bbox) {
// pop the stack
transpGroup = transpGroupStack;
transpGroupStack = transpGroup->next;
- if (transpGroupStack != NULL && transpGroup->knockoutOpacity < transpGroupStack->knockoutOpacity) {
+ if (transpGroupStack != nullptr && transpGroup->knockoutOpacity < transpGroupStack->knockoutOpacity) {
transpGroupStack->knockoutOpacity = transpGroup->knockoutOpacity;
}
delete transpGroup->shape;
@@ -4483,7 +4478,7 @@ void SplashOutputDev::setSoftMask(GfxState *state, double *bbox,
}
void SplashOutputDev::clearSoftMask(GfxState *state) {
- splash->setSoftMask(NULL);
+ splash->setSoftMask(nullptr);
}
void SplashOutputDev::setPaperColor(SplashColorPtr paperColorA) {
@@ -4657,7 +4652,7 @@ GBool SplashOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *ca
bitmap = new SplashBitmap(surface_width, surface_height, 1,
(paintType == 1) ? colorMode : splashModeMono8, gTrue);
- if (bitmap->getDataPtr() == NULL) {
+ if (bitmap->getDataPtr() == nullptr) {
SplashBitmap *tBitmap = bitmap;
bitmap = formerBitmap;
delete tBitmap;
@@ -4681,7 +4676,7 @@ GBool SplashOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *ca
box.x1 = bbox[0]; box.y1 = bbox[1];
box.x2 = bbox[2]; box.y2 = bbox[3];
- gfx = new Gfx(doc, this, resDict, &box, NULL, NULL, NULL, gfxA->getXRef());
+ gfx = new Gfx(doc, this, resDict, &box, nullptr, nullptr, nullptr, gfxA->getXRef());
// set pattern transformation matrix
gfx->getState()->setCTM(m1.m[0], m1.m[1], m1.m[2], m1.m[3], m1.m[4], m1.m[5]);
updateCTM(gfx->getState(), m1.m[0], m1.m[1], m1.m[2], m1.m[3], m1.m[4], m1.m[5]);
@@ -4728,7 +4723,7 @@ GBool SplashOutputDev::tilingPatternFill(GfxState *state, Gfx *gfxA, Catalog *ca
}
retValue = gTrue;
} else {
- retValue = splash->drawImage(&tilingBitmapSrc, NULL, &imgData, colorMode, gTrue, result_width, result_height, matc, gFalse, gTrue) == splashOk;
+ retValue = splash->drawImage(&tilingBitmapSrc, nullptr, &imgData, colorMode, gTrue, result_width, result_height, matc, gFalse, gTrue) == splashOk;
}
delete tBitmap;
delete gfx;
@@ -4754,7 +4749,7 @@ GBool SplashOutputDev::gouraudTriangleShadedFill(GfxState *state, GfxGouraudTria
}
// restore vector antialias because we support it here
if (shading->isParameterized()) {
- SplashGouraudColor *splashShading = new SplashGouraudPattern(bDirectColorTranslation, state, shading, colorMode);
+ SplashGouraudColor *splashShading = new SplashGouraudPattern(bDirectColorTranslation, state, shading);
GBool vaa = getVectorAntialias();
GBool retVal = gFalse;
setVectorAntialias(gTrue);
@@ -4821,7 +4816,7 @@ GBool SplashOutputDev::univariateShadedFill(GfxState *state, SplashUnivariatePat
pattern->getShading()->getColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
#endif
setOverprintMask(pattern->getShading()->getColorSpace(), state->getFillOverprint(),
- state->getOverprintMode(), NULL);
+ state->getOverprintMode(), nullptr);
retVal = (splash->shadedFill(path, pattern->getShading()->getHasBBox(), pattern) == splashOk);
state->clearPath();
setVectorAntialias(vaa);
@@ -4886,7 +4881,7 @@ GBool SplashOutputDev::functionShadedFill(GfxState *state, GfxFunctionShading *s
pattern->getShading()->getColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
#endif
setOverprintMask(pattern->getShading()->getColorSpace(), state->getFillOverprint(),
- state->getOverprintMode(), NULL);
+ state->getOverprintMode(), nullptr);
retVal = (splash->shadedFill(path, pattern->getShading()->getHasBBox(), pattern) == splashOk);
state->clearPath();
setVectorAntialias(vaa);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.h b/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.h
index 05b7e9433b1..3a5883c421a 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/SplashOutputDev.h
@@ -20,7 +20,7 @@
// Copyright (C) 2011 Andreas Hartmetz <ahartmetz@gmail.com>
// Copyright (C) 2011 Andrea Canciani <ranma42@gmail.com>
// Copyright (C) 2011, 2017 Adrian Johnson <ajohnson@redneon.com>
-// Copyright (C) 2012, 2015 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2012, 2015, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2015, 2016 William Bader <williambader@hotmail.com>
//
// To see a description of the changes please see the Changelog file that
@@ -135,9 +135,9 @@ private:
class SplashGouraudPattern: public SplashGouraudColor {
public:
- SplashGouraudPattern(GBool bDirectColorTranslation, GfxState *state, GfxGouraudTriangleShading *shading, SplashColorMode mode);
+ SplashGouraudPattern(GBool bDirectColorTranslation, GfxState *state, GfxGouraudTriangleShading *shading);
- SplashPattern *copy() override { return new SplashGouraudPattern(bDirectColorTranslation, state, shading, mode); }
+ SplashPattern *copy() override { return new SplashGouraudPattern(bDirectColorTranslation, state, shading); }
~SplashGouraudPattern();
@@ -154,7 +154,7 @@ public:
void getTriangle(int i, double *x0, double *y0, double *color0,
double *x1, double *y1, double *color1,
double *x2, double *y2, double *color2) override
- { return shading->getTriangle(i, x0, y0, color0, x1, y1, color1, x2, y2, color2); }
+ { shading->getTriangle(i, x0, y0, color0, x1, y1, color1, x2, y2, color2); }
void getParameterizedColor(double t, SplashColorMode mode, SplashColorPtr c) override;
@@ -162,7 +162,6 @@ private:
GfxGouraudTriangleShading *shading;
GfxState *state;
GBool bDirectColorTranslation;
- SplashColorMode mode;
GfxColorSpaceMode gfxMode;
};
@@ -466,7 +465,6 @@ private:
SplashTransparencyGroup * // transparency group stack
transpGroupStack;
- SplashBitmap *maskBitmap; // for image masks in pattern colorspace
int nestCount;
};
diff --git a/Build/source/libs/poppler/poppler-src/poppler/StdinCachedFile.cc b/Build/source/libs/poppler/poppler-src/poppler/StdinCachedFile.cc
index db966377bb0..328c0a1e994 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/StdinCachedFile.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/StdinCachedFile.cc
@@ -29,7 +29,7 @@ size_t StdinCacheLoader::init(GooString *dummy, CachedFile *cachedFile)
setmode(fileno(stdin), O_BINARY);
#endif
- CachedFileWriter writer = CachedFileWriter (cachedFile, NULL);
+ CachedFileWriter writer = CachedFileWriter (cachedFile, nullptr);
do {
read = fread(buf, 1, CachedFileChunkSize, stdin);
(writer.write) (buf, CachedFileChunkSize);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/StdinPDFDocBuilder.cc b/Build/source/libs/poppler/poppler-src/poppler/StdinPDFDocBuilder.cc
index f4aa12cf8ef..c7b08b723ad 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/StdinPDFDocBuilder.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/StdinPDFDocBuilder.cc
@@ -23,7 +23,7 @@ PDFDoc *
StdinPDFDocBuilder::buildPDFDoc(const GooString &uri, GooString *ownerPassword,
GooString *userPassword, void *guiDataA)
{
- CachedFile *cachedFile = new CachedFile(new StdinCacheLoader(), NULL);
+ CachedFile *cachedFile = new CachedFile(new StdinCacheLoader(), nullptr);
return new PDFDoc(new CachedFileStream(cachedFile, 0, gFalse,
cachedFile->getLength(), Object(objNull)),
ownerPassword, userPassword);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Stream.cc b/Build/source/libs/poppler/poppler-src/poppler/Stream.cc
index da1d92675e2..0602c7bb556 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Stream.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/Stream.cc
@@ -27,7 +27,7 @@
// Copyright (C) 2012 Oliver Sander <sander@mi.fu-berlin.de>
// Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
// Copyright (C) 2012 Even Rouault <even.rouault@mines-paris.org>
-// Copyright (C) 2013, 2017 Adrian Johnson <ajohnson@redneon.com>
+// Copyright (C) 2013, 2017, 2018 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2013 Adam Reichold <adamreichold@myopera.com>
// Copyright (C) 2013 Pino Toscano <pino@kde.org>
// Copyright (C) 2015 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
@@ -150,7 +150,7 @@ char *Stream::getLine(char *buf, int size) {
int c;
if (lookChar() == EOF || size < 0)
- return NULL;
+ return nullptr;
for (i = 0; i < size - 1; ++i) {
c = getChar();
if (c == EOF || c == '\n')
@@ -214,7 +214,7 @@ Stream *Stream::makeFilter(char *name, Stream *str, Object *params, int recursio
int bits;
int early;
int encoding;
- GBool endOfLine, byteAlign, endOfBlock, black;
+ GBool endOfLine, byteAlign, endOfBlock, black, damagedRowsBeforeError;
int columns, rows;
Object globals, obj;
@@ -256,7 +256,8 @@ Stream *Stream::makeFilter(char *name, Stream *str, Object *params, int recursio
rows = 0;
endOfBlock = gTrue;
black = gFalse;
- if (params->isDict()) {
+ damagedRowsBeforeError = 0;
+ if (params->isDict()) {
obj = params->dictLookup("K", recursion);
if (obj.isInt()) {
encoding = obj.getInt();
@@ -285,9 +286,13 @@ Stream *Stream::makeFilter(char *name, Stream *str, Object *params, int recursio
if (obj.isBool()) {
black = obj.getBool();
}
+ obj = params->dictLookup("DamagedRowsBeforeError", recursion);
+ if (obj.isInt()) {
+ damagedRowsBeforeError = obj.getInt();
+ }
}
str = new CCITTFaxStream(str, encoding, endOfLine, byteAlign,
- columns, rows, endOfBlock, black);
+ columns, rows, endOfBlock, black, damagedRowsBeforeError);
} else if (!strcmp(name, "DCTDecode") || !strcmp(name, "DCT")) {
#ifdef HAVE_DCT_DECODER
int colorXform = -1;
@@ -500,8 +505,8 @@ Guchar *ImageStream::getLine() {
int i;
Guchar *p;
- if (unlikely(inputLine == NULL)) {
- return NULL;
+ if (unlikely(inputLine == nullptr)) {
+ return nullptr;
}
int readChars = str->doGetChars(inputLineSize, inputLine);
@@ -563,7 +568,7 @@ StreamPredictor::StreamPredictor(Stream *strA, int predictorA,
width = widthA;
nComps = nCompsA;
nBits = nBitsA;
- predLine = NULL;
+ predLine = nullptr;
ok = gFalse;
nVals = width * nComps;
@@ -1056,13 +1061,13 @@ EmbedStream::~EmbedStream() {
BaseStream *EmbedStream::copy() {
error(errInternal, -1, "Called copy() on EmbedStream");
- return NULL;
+ return nullptr;
}
Stream *EmbedStream::makeSubStream(Goffset start, GBool limitedA,
Goffset lengthA, Object &&dictA) {
error(errInternal, -1, "Called makeSubStream() on EmbedStream");
- return NULL;
+ return nullptr;
}
void EmbedStream::rewind() {
@@ -1132,7 +1137,7 @@ int EmbedStream::getChars(int nChars, Guchar *buffer) {
len = bufLen - bufPos;
if (nChars > len)
nChars = len;
- memcpy(buffer, bufData, len);
+ memcpy(buffer, bufData, nChars);
return len;
} else {
if (limited && length < nChars) {
@@ -1245,10 +1250,10 @@ GooString *ASCIIHexStream::getPSFilter(int psLevel, const char *indent) {
GooString *s;
if (psLevel < 2) {
- return NULL;
+ return nullptr;
}
if (!(s = str->getPSFilter(psLevel, indent))) {
- return NULL;
+ return nullptr;
}
s->append(indent)->append("/ASCIIHexDecode filter\n");
return s;
@@ -1326,10 +1331,10 @@ GooString *ASCII85Stream::getPSFilter(int psLevel, const char *indent) {
GooString *s;
if (psLevel < 2) {
- return NULL;
+ return nullptr;
}
if (!(s = str->getPSFilter(psLevel, indent))) {
- return NULL;
+ return nullptr;
}
s->append(indent)->append("/ASCII85Decode filter\n");
return s;
@@ -1350,10 +1355,10 @@ LZWStream::LZWStream(Stream *strA, int predictor, int columns, int colors,
pred = new StreamPredictor(this, predictor, columns, colors, bits);
if (!pred->isOk()) {
delete pred;
- pred = NULL;
+ pred = nullptr;
}
} else {
- pred = NULL;
+ pred = nullptr;
}
early = earlyA;
eof = gFalse;
@@ -1534,10 +1539,10 @@ GooString *LZWStream::getPSFilter(int psLevel, const char *indent) {
GooString *s;
if (psLevel < 2 || pred) {
- return NULL;
+ return nullptr;
}
if (!(s = str->getPSFilter(psLevel, indent))) {
- return NULL;
+ return nullptr;
}
s->append(indent)->append("<< ");
if (!early) {
@@ -1596,10 +1601,10 @@ GooString *RunLengthStream::getPSFilter(int psLevel, const char *indent) {
GooString *s;
if (psLevel < 2) {
- return NULL;
+ return nullptr;
}
if (!(s = str->getPSFilter(psLevel, indent))) {
- return NULL;
+ return nullptr;
}
s->append(indent)->append("/RunLengthDecode filter\n");
return s;
@@ -1641,12 +1646,13 @@ GBool RunLengthStream::fillBuf() {
CCITTFaxStream::CCITTFaxStream(Stream *strA, int encodingA, GBool endOfLineA,
GBool byteAlignA, int columnsA, int rowsA,
- GBool endOfBlockA, GBool blackA):
+ GBool endOfBlockA, GBool blackA, int damagedRowsBeforeErrorA):
FilterStream(strA) {
encoding = encodingA;
endOfLine = endOfLineA;
byteAlign = byteAlignA;
columns = columnsA;
+ damagedRowsBeforeError = damagedRowsBeforeErrorA;
if (columns < 1) {
columns = 1;
} else if (columns > INT_MAX - 2) {
@@ -1662,7 +1668,7 @@ CCITTFaxStream::CCITTFaxStream(Stream *strA, int encodingA, GBool endOfLineA,
codingLine = (int *)gmallocn_checkoverflow(columns + 1, sizeof(int));
refLine = (int *)gmallocn_checkoverflow(columns + 2, sizeof(int));
- if (codingLine != NULL && refLine != NULL) {
+ if (codingLine != nullptr && refLine != nullptr) {
eof = gFalse;
codingLine[0] = columns;
} else {
@@ -1706,7 +1712,7 @@ void CCITTFaxStream::reset() {
ccittReset(gFalse);
- if (codingLine != NULL && refLine != NULL) {
+ if (codingLine != nullptr && refLine != nullptr) {
eof = gFalse;
codingLine[0] = columns;
} else {
@@ -2407,10 +2413,10 @@ GooString *CCITTFaxStream::getPSFilter(int psLevel, const char *indent) {
char s1[50];
if (psLevel < 2) {
- return NULL;
+ return nullptr;
}
if (!(s = str->getPSFilter(psLevel, indent))) {
- return NULL;
+ return nullptr;
}
s->append(indent)->append("<< ");
if (encoding != 0) {
@@ -4567,13 +4573,13 @@ FlateStream::FlateStream(Stream *strA, int predictor, int columns,
pred = new StreamPredictor(this, predictor, columns, colors, bits);
if (!pred->isOk()) {
delete pred;
- pred = NULL;
+ pred = nullptr;
}
} else {
- pred = NULL;
+ pred = nullptr;
}
- litCodeTab.codes = NULL;
- distCodeTab.codes = NULL;
+ litCodeTab.codes = nullptr;
+ distCodeTab.codes = nullptr;
memset(buf, 0, flateWindow);
}
@@ -4685,10 +4691,10 @@ GooString *FlateStream::getPSFilter(int psLevel, const char *indent) {
GooString *s;
if (psLevel < 3 || pred) {
- return NULL;
+ return nullptr;
}
if (!(s = str->getPSFilter(psLevel, indent))) {
- return NULL;
+ return nullptr;
}
s->append(indent)->append("<< >> /FlateDecode filter\n");
return s;
@@ -4772,11 +4778,11 @@ GBool FlateStream::startBlock() {
if (litCodeTab.codes != fixedLitCodeTab.codes) {
gfree(litCodeTab.codes);
}
- litCodeTab.codes = NULL;
+ litCodeTab.codes = nullptr;
if (distCodeTab.codes != fixedDistCodeTab.codes) {
gfree(distCodeTab.codes);
}
- distCodeTab.codes = NULL;
+ distCodeTab.codes = nullptr;
// read block header
blockHdr = getCodeWord(3);
@@ -4846,7 +4852,7 @@ GBool FlateStream::readDynamicCodes() {
int len, repeat, code;
int i;
- codeLenCodeTab.codes = NULL;
+ codeLenCodeTab.codes = nullptr;
// read lengths
if ((numLitCodes = getCodeWord(5)) == EOF) {
@@ -5387,8 +5393,8 @@ void LZWEncoder::reset() {
// initialize code table
for (i = 0; i < 256; ++i) {
table[i].byte = i;
- table[i].next = NULL;
- table[i].children = NULL;
+ table[i].next = nullptr;
+ table[i].children = nullptr;
}
nextSeq = 258;
codeLen = 9;
@@ -5472,11 +5478,11 @@ void LZWEncoder::fillBuf() {
// update the table
table[nextSeq].byte = seqLen < inBufLen ? inBuf[seqLen] : 0;
- table[nextSeq].children = NULL;
+ table[nextSeq].children = nullptr;
if (table[code].children) {
table[nextSeq].next = table[code].children;
} else {
- table[nextSeq].next = NULL;
+ table[nextSeq].next = nullptr;
}
table[code].children = table + nextSeq;
++nextSeq;
@@ -5493,8 +5499,8 @@ void LZWEncoder::fillBuf() {
outBuf = (outBuf << 12) | 256;
outBufLen += 12;
for (i = 0; i < 256; ++i) {
- table[i].next = NULL;
- table[i].children = NULL;
+ table[i].next = nullptr;
+ table[i].children = nullptr;
}
nextSeq = 258;
codeLen = 9;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Stream.h b/Build/source/libs/poppler/poppler-src/poppler/Stream.h
index 152dbb0fea1..b58da825cea 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/Stream.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/Stream.h
@@ -15,7 +15,7 @@
//
// Copyright (C) 2005 Jeff Muizelaar <jeff@infidigm.net>
// Copyright (C) 2008 Julien Rebetez <julien@fhtagn.net>
-// Copyright (C) 2008, 2010, 2011, 2016, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008, 2010, 2011, 2016-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2009 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2009 Stefan Thomas <thomas@eload24.com>
// Copyright (C) 2010 Hib Eris <hib@hiberis.nl>
@@ -105,6 +105,9 @@ public:
// Destructor.
virtual ~Stream();
+ Stream(const Stream &) = delete;
+ Stream& operator=(const Stream &other) = delete;
+
// Get kind of stream.
virtual StreamKind getKind() = 0;
@@ -257,6 +260,9 @@ public:
// Desctructor.
virtual ~OutStream ();
+ OutStream(const OutStream &) = delete;
+ OutStream& operator=(const OutStream &other) = delete;
+
// Close the stream
virtual void close() = 0;
@@ -368,6 +374,9 @@ public:
~ImageStream();
+ ImageStream(const ImageStream &) = delete;
+ ImageStream& operator=(const ImageStream &other) = delete;
+
// Reset the stream.
void reset();
@@ -412,6 +421,9 @@ public:
~StreamPredictor();
+ StreamPredictor(const StreamPredictor &) = delete;
+ StreamPredictor& operator=(const StreamPredictor &) = delete;
+
GBool isOk() { return ok; }
int lookChar();
@@ -794,7 +806,7 @@ public:
CCITTFaxStream(Stream *strA, int encodingA, GBool endOfLineA,
GBool byteAlignA, int columnsA, int rowsA,
- GBool endOfBlockA, GBool blackA);
+ GBool endOfBlockA, GBool blackA, int damagedRowsBeforeErrorA);
~CCITTFaxStream();
StreamKind getKind() override { return strCCITTFax; }
void reset() override;
@@ -808,8 +820,11 @@ public:
int getEncoding() { return encoding; }
GBool getEndOfLine() { return endOfLine; }
+ GBool getEncodedByteAlign() { return byteAlign; }
+ GBool getEndOfBlock() { return endOfBlock; }
int getColumns() { return columns; }
GBool getBlackIs1() { return black; }
+ int getDamagedRowsBeforeError() { return damagedRowsBeforeError; }
private:
@@ -821,6 +836,7 @@ private:
int rows; // 'Rows' parameter
GBool endOfBlock; // 'EndOfBlock' parameter
GBool black; // 'BlackIs1' parameter
+ int damagedRowsBeforeError; // 'DamagedRowsBeforeError' parameter
GBool eof; // true if at eof
GBool nextLine2D; // true if next line uses 2D encoding
int row; // current row
diff --git a/Build/source/libs/poppler/poppler-src/poppler/StructElement.cc b/Build/source/libs/poppler/poppler-src/poppler/StructElement.cc
index 62925474350..5bf3a33f446 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/StructElement.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/StructElement.cc
@@ -6,8 +6,9 @@
//
// Copyright 2013, 2014 Igalia S.L.
// Copyright 2014 Luigi Scarso <luigi.scarso@gmail.com>
-// Copyright 2014, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright 2014, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright 2015 Dmytro Morgun <lztoad@gmail.com>
+// Copyright 2018 Adrian Johnson <ajohnson@redneon.com>
//
//========================================================================
@@ -267,7 +268,7 @@ static const AttributeDefaults attributeDefaults;
#define ATTR_LIST_END \
- { Attribute::Unknown, NULL, NULL, gFalse, NULL }
+ { Attribute::Unknown, nullptr, nullptr, gFalse, nullptr }
#define ATTR_WITH_DEFAULT(name, inherit, check, defval) \
{ Attribute::name, \
@@ -279,7 +280,7 @@ static const AttributeDefaults attributeDefaults;
#define ATTR(name, inherit, check) \
{ Attribute::name, \
#name, \
- NULL, \
+ nullptr, \
inherit, \
check }
@@ -382,24 +383,24 @@ static const AttributeMapEntry *attributeMapAll[] = {
attributeMapCommonPrintField,
attributeMapCommonTable,
attributeMapCommonTableCell,
- NULL,
+ nullptr,
};
static const AttributeMapEntry *attributeMapShared[] = {
attributeMapCommonShared,
- NULL,
+ nullptr,
};
static const AttributeMapEntry *attributeMapBlock[] = {
attributeMapCommonShared,
attributeMapCommonBlock,
- NULL,
+ nullptr,
};
static const AttributeMapEntry *attributeMapInline[] = {
attributeMapCommonShared,
attributeMapCommonInline,
- NULL,
+ nullptr,
};
static const AttributeMapEntry *attributeMapTableCell[] = {
@@ -407,34 +408,34 @@ static const AttributeMapEntry *attributeMapTableCell[] = {
attributeMapCommonBlock,
attributeMapCommonTable,
attributeMapCommonTableCell,
- NULL,
+ nullptr,
};
static const AttributeMapEntry *attributeMapRubyText[] = {
attributeMapCommonShared,
attributeMapCommonInline,
attributeMapCommonRubyText,
- NULL,
+ nullptr,
};
static const AttributeMapEntry *attributeMapColumns[] = {
attributeMapCommonShared,
attributeMapCommonInline,
attributeMapCommonColumns,
- NULL,
+ nullptr,
};
static const AttributeMapEntry *attributeMapList[] = {
attributeMapCommonShared,
attributeMapCommonList,
- NULL,
+ nullptr,
};
static const AttributeMapEntry *attributeMapTable[] = {
attributeMapCommonShared,
attributeMapCommonBlock,
attributeMapCommonTable,
- NULL,
+ nullptr,
};
static const AttributeMapEntry *attributeMapIllustration[] = {
@@ -444,7 +445,7 @@ static const AttributeMapEntry *attributeMapIllustration[] = {
attributeMapCommonShared,
attributeMapCommonBlock,
attributeMapCommonInline,
- NULL,
+ nullptr,
};
// Table mapping owners of attributes to their names.
@@ -571,7 +572,7 @@ getAttributeMapEntry(const AttributeMapEntry **entryList, Attribute::Type type)
}
entryList++;
}
- return NULL;
+ return nullptr;
}
static inline const AttributeMapEntry *
@@ -588,7 +589,7 @@ getAttributeMapEntry(const AttributeMapEntry **entryList, const char *name)
}
entryList++;
}
- return NULL;
+ return nullptr;
}
static inline const OwnerMapEntry *getOwnerMapEntry(Attribute::Owner owner)
@@ -597,7 +598,7 @@ static inline const OwnerMapEntry *getOwnerMapEntry(Attribute::Owner owner)
if (owner == ownerMap[i].owner)
return &ownerMap[i];
}
- return NULL;
+ return nullptr;
}
static inline const OwnerMapEntry *getOwnerMapEntry(const char *name)
@@ -606,7 +607,7 @@ static inline const OwnerMapEntry *getOwnerMapEntry(const char *name)
if (strcmp(name, ownerMap[i].name) == 0)
return &ownerMap[i];
}
- return NULL;
+ return nullptr;
}
static const char *ownerToName(Attribute::Owner owner)
@@ -627,7 +628,7 @@ static inline const TypeMapEntry *getTypeMapEntry(StructElement::Type type)
if (type == typeMap[i].type)
return &typeMap[i];
}
- return NULL;
+ return nullptr;
}
static inline const TypeMapEntry *getTypeMapEntry(const char *name)
@@ -636,7 +637,7 @@ static inline const TypeMapEntry *getTypeMapEntry(const char *name)
if (strcmp(name, typeMap[i].name) == 0)
return &typeMap[i];
}
- return NULL;
+ return nullptr;
}
static const char *typeToName(StructElement::Type type)
@@ -668,20 +669,20 @@ Attribute::Attribute(const char *nameA, int nameLenA, Object *valueA):
name(nameA, nameLenA),
value(),
hidden(gFalse),
- formatted(NULL)
+ formatted(nullptr)
{
assert(valueA);
value = valueA->copy();
}
-Attribute::Attribute(Type type, Object *valueA):
- type(type),
+Attribute::Attribute(Type typeA, Object *valueA):
+ type(typeA),
owner(UserProperties), // TODO: Determine corresponding owner from Type
revision(0),
name(),
value(),
hidden(gFalse),
- formatted(NULL)
+ formatted(nullptr)
{
assert(valueA);
@@ -716,7 +717,7 @@ const char *Attribute::getOwnerName() const
Object *Attribute::getDefaultValue(Attribute::Type type)
{
const AttributeMapEntry *entry = getAttributeMapEntry(attributeMapAll, type);
- return entry ? const_cast<Object*>(entry->defval) : NULL;
+ return entry ? const_cast<Object*>(entry->defval) : nullptr;
}
void Attribute::setFormattedValue(const char *formattedA)
@@ -728,7 +729,7 @@ void Attribute::setFormattedValue(const char *formattedA)
formatted = new GooString(formattedA);
} else {
delete formatted;
- formatted = NULL;
+ formatted = nullptr;
}
}
@@ -816,12 +817,12 @@ Attribute *Attribute::parseUserProperty(Dict *property)
//------------------------------------------------------------------------
StructElement::StructData::StructData():
- altText(0),
- actualText(0),
- id(0),
- title(0),
- expandedAbbr(0),
- language(0),
+ altText(nullptr),
+ actualText(nullptr),
+ id(nullptr),
+ title(nullptr),
+ expandedAbbr(nullptr),
+ language(nullptr),
revision(0)
{
}
@@ -930,9 +931,9 @@ const Attribute *StructElement::findAttribute(Attribute::Type attributeType, GBo
return parent->findAttribute(attributeType, inherit, attributeOwner);
if (attributeType == Attribute::Unknown || attributeType == Attribute::UserProperty)
- return NULL;
+ return nullptr;
- const Attribute *result = NULL;
+ const Attribute *result = nullptr;
if (attributeOwner == Attribute::UnknownOwner) {
// Search for the attribute, no matter who the owner is
@@ -967,7 +968,7 @@ const Attribute *StructElement::findAttribute(Attribute::Type attributeType, GBo
return parent->findAttribute(attributeType, inherit, attributeOwner);
}
- return NULL;
+ return nullptr;
}
GooString* StructElement::appendSubTreeText(GooString *string, GBool recursive) const
@@ -986,7 +987,7 @@ GooString* StructElement::appendSubTreeText(GooString *string, GBool recursive)
}
if (!recursive)
- return NULL;
+ return nullptr;
// Do a depth-first traversal, to get elements in logical order
if (!string)
@@ -1065,7 +1066,7 @@ void StructElement::parse(Dict *element)
// Type name may not be standard, resolve through RoleMap first.
if (treeRoot->getRoleMap()) {
- type = roleMapResolve(treeRoot->getRoleMap(), obj.getName(), NULL);
+ type = roleMapResolve(treeRoot->getRoleMap(), obj.getName(), nullptr);
}
// Resolving through RoleMap may leave type as Unknown, e.g. for types
@@ -1188,7 +1189,7 @@ StructElement *StructElement::parseChild(Object *ref,
assert(childObj);
assert(ref);
- StructElement *child = NULL;
+ StructElement *child = nullptr;
if (childObj->isInt()) {
child = new StructElement(childObj->getInt(), treeRoot, this);
@@ -1198,9 +1199,9 @@ StructElement *StructElement::parseChild(Object *ref,
* page will be always scanned when calling StructElement::getText().
*/
Object mcidObj = childObj->dictLookup("MCID");
- if (mcidObj.isInt()) {
+ if (!mcidObj.isInt()) {
error(errSyntaxError, -1, "MCID object is wrong type ({0:s})", mcidObj.getTypeName());
- return NULL;
+ return nullptr;
}
child = new StructElement(mcidObj.getInt(), treeRoot, this);
@@ -1246,7 +1247,7 @@ StructElement *StructElement::parseChild(Object *ref,
treeRoot->parentTreeAdd(ref->getRef(), child);
} else {
delete child;
- child = NULL;
+ child = nullptr;
}
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/StructElement.h b/Build/source/libs/poppler/poppler-src/poppler/StructElement.h
index cd89a970ddb..f5fcc524fc1 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/StructElement.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/StructElement.h
@@ -6,7 +6,7 @@
//
// Copyright 2013, 2014 Igalia S.L.
// Copyright 2014 Luigi Scarso <luigi.scarso@gmail.com>
-// Copyright 2014 Albert Astals Cid <aacid@kde.org>
+// Copyright 2014, 2018 Albert Astals Cid <aacid@kde.org>
//
//========================================================================
@@ -169,8 +169,8 @@ public:
StructTreeRoot *getStructTreeRoot() { return treeRoot; }
// Optional element identifier.
- const GooString *getID() const { return isContent() ? NULL : s->id; }
- GooString *getID() { return isContent() ? NULL : s->id; }
+ const GooString *getID() const { return isContent() ? nullptr : s->id; }
+ GooString *getID() { return isContent() ? nullptr : s->id; }
// Optional ISO language name, e.g. en_US
GooString *getLanguage() {
@@ -187,16 +187,16 @@ public:
void setRevision(Guint revision) { if (isContent()) s->revision = revision; }
// Optional element title, in human-readable form.
- const GooString *getTitle() const { return isContent() ? NULL : s->title; }
- GooString *getTitle() { return isContent() ? NULL : s->title; }
+ const GooString *getTitle() const { return isContent() ? nullptr : s->title; }
+ GooString *getTitle() { return isContent() ? nullptr : s->title; }
// Optional element expanded abbreviation text.
- const GooString *getExpandedAbbr() const { return isContent() ? NULL : s->expandedAbbr; }
- GooString *getExpandedAbbr() { return isContent() ? NULL : s->expandedAbbr; }
+ const GooString *getExpandedAbbr() const { return isContent() ? nullptr : s->expandedAbbr; }
+ GooString *getExpandedAbbr() { return isContent() ? nullptr : s->expandedAbbr; }
unsigned getNumChildren() const { return isContent() ? 0 : s->elements.size(); }
- const StructElement *getChild(int i) const { return isContent() ? NULL : s->elements.at(i); }
- StructElement *getChild(int i) { return isContent() ? NULL : s->elements.at(i); }
+ const StructElement *getChild(int i) const { return isContent() ? nullptr : s->elements.at(i); }
+ StructElement *getChild(int i) { return isContent() ? nullptr : s->elements.at(i); }
void appendChild(StructElement *element) {
if (!isContent() && element && element->isOk()) {
@@ -205,8 +205,8 @@ public:
}
unsigned getNumAttributes() const { return isContent() ? 0 : s->attributes.size(); }
- const Attribute *getAttribute(int i) const { return isContent() ? NULL : s->attributes.at(i); }
- Attribute *getAttribute(int i) { return isContent() ? NULL : s->attributes.at(i); }
+ const Attribute *getAttribute(int i) const { return isContent() ? nullptr : s->attributes.at(i); }
+ Attribute *getAttribute(int i) { return isContent() ? nullptr : s->attributes.at(i); }
void appendAttribute(Attribute *attribute) {
if (!isContent() && attribute) {
@@ -217,11 +217,11 @@ public:
const Attribute* findAttribute(Attribute::Type attributeType, GBool inherit = gFalse,
Attribute::Owner owner = Attribute::UnknownOwner) const;
- const GooString *getAltText() const { return isContent() ? NULL : s->altText; }
- GooString *getAltText() { return isContent() ? NULL : s->altText; }
+ const GooString *getAltText() const { return isContent() ? nullptr : s->altText; }
+ GooString *getAltText() { return isContent() ? nullptr : s->altText; }
- const GooString *getActualText() const { return isContent() ? NULL : s->actualText; }
- GooString *getActualText() { return isContent() ? NULL : s->actualText; }
+ const GooString *getActualText() const { return isContent() ? nullptr : s->actualText; }
+ GooString *getActualText() { return isContent() ? nullptr : s->actualText; }
// Content text referenced by the element:
//
@@ -237,7 +237,7 @@ public:
// A new string is returned, and the ownership passed to the caller.
//
GooString *getText(GBool recursive = gTrue) const {
- return appendSubTreeText(NULL, recursive);
+ return appendSubTreeText(nullptr, recursive);
}
const TextSpanArray getTextSpans() const {
@@ -270,6 +270,9 @@ private:
StructData();
~StructData();
+
+ StructData(const StructData &) = delete;
+ StructData& operator=(const StructData &) = delete;
};
// Data in content elements (MCID, MCR)
diff --git a/Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.cc b/Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.cc
index 5f56111581e..9a53d9c9e97 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.cc
@@ -7,8 +7,8 @@
// Copyright 2013, 2014 Igalia S.L.
// Copyright 2014 Fabio D'Urso <fabiodurso@hotmail.it>
// Copyright 2017 Jan-Erik S <janerik234678@gmail.com>
-// Copyright 2017 Albert Astals Cid <aacid@kde.org>
-// Copyright 2017 Adrian Johnson <ajohnson@redneon.com>
+// Copyright 2017, 2018 Albert Astals Cid <aacid@kde.org>
+// Copyright 2017, 2018 Adrian Johnson <ajohnson@redneon.com>
//
//========================================================================
@@ -53,52 +53,9 @@ void StructTreeRoot::parse(Dict *root)
// corresponsing structure element. Here only the references are
// loaded into the array, the pointers to the StructElements will
// be filled-in later when parsing them.
- Object obj = root->lookup("ParentTree");
- if (obj.isDict()) {
- Object nums = obj.dictLookup("Nums");
- if (nums.isArray()) {
- if (nums.arrayGetLength() % 2 == 0) {
- parentTree.resize(nums.arrayGetLength() / 2);
- // Index numbers in even positions, references in odd ones
- for (int i = 0; i < nums.arrayGetLength(); i += 2) {
- Object index = nums.arrayGet(i);
-
- if (!index.isInt()) {
- error(errSyntaxError, -1, "Nums item at position {0:d} is wrong type ({1:s})", i, index.getTypeName());
- continue;
- }
- const int idx = index.getInt();
- if (idx < 0 || idx >= (int)parentTree.size()) {
- error(errSyntaxError, -1, "Nums item at position {0:d} is invalid value ({1:d}): [0..{2:d}]", i, idx, parentTree.size() - 1);
- continue;
- }
-
- Object value = nums.arrayGetNF(i + 1);
- if (value.isRef()) {
- parentTree[idx].resize(1);
- parentTree[idx][0].ref = value.getRef();
- } else {
- value = nums.arrayGet(i + 1);
- if (value.isArray()) {
- parentTree[idx].resize(value.arrayGetLength());
- for (int j = 0; j < value.arrayGetLength(); j++) {
- Object itemvalue = value.arrayGetNF(j);
- if (itemvalue.isRef())
- parentTree[idx][j].ref = itemvalue.getRef();
- else
- error(errSyntaxError, -1, "Nums array item at position {0:d}/{1:d} is invalid type ({2:s})", i, j, itemvalue.getTypeName());
- }
- } else {
- error(errSyntaxError, -1, "Nums item at position {0:d} is wrong type ({1:s})", i + 1, value.getTypeName());
- }
- }
- }
- } else {
- error(errSyntaxError, -1, "Nums array length is not a even ({0:d})", nums.arrayGetLength());
- }
- } else {
- error(errSyntaxError, -1, "Nums object is wrong type ({0:s})", nums.getTypeName());
- }
+ const Object parentTreeObj = root->lookup("ParentTree");
+ if (parentTreeObj.isDict()) {
+ parseNumberTreeNode(parentTreeObj.getDict());
}
std::set<int> seenElements;
@@ -117,7 +74,7 @@ void StructTreeRoot::parse(Dict *root)
}
Object obj = kids.arrayGet(i);
if (obj.isDict()) {
- StructElement *child = new StructElement(obj.getDict(), this, NULL, seenElements);
+ StructElement *child = new StructElement(obj.getDict(), this, nullptr, seenElements);
if (child->isOk()) {
if (marked && !(child->getType() == StructElement::Document ||
child->getType() == StructElement::Part ||
@@ -138,10 +95,7 @@ void StructTreeRoot::parse(Dict *root)
}
}
} else if (kids.isDict()) {
- if (marked) {
- error(errSyntaxWarning, -1, "K has a child of wrong type for a tagged PDF ({0:s})", kids.getTypeName());
- }
- StructElement *child = new StructElement(kids.getDict(), this, NULL, seenElements);
+ StructElement *child = new StructElement(kids.getDict(), this, nullptr, seenElements);
if (child->isOk()) {
appendChild(child);
Object ref = root->lookupNF("K");
@@ -154,14 +108,80 @@ void StructTreeRoot::parse(Dict *root)
} else if (!kids.isNull()) {
error(errSyntaxWarning, -1, "K in StructTreeRoot is wrong type ({0:s})", kids.getTypeName());
}
+
+ // refToParentMap is only used during parsing. Ensure all memory used by it is freed.
+ std::multimap<Ref, Parent*, RefCompare>().swap(refToParentMap);
}
-void StructTreeRoot::parentTreeAdd(const Ref &objectRef, StructElement *element)
+void StructTreeRoot::parseNumberTreeNode(Dict *node)
{
- for (std::vector< std::vector<Parent> >::iterator i = parentTree.begin(); i != parentTree.end(); ++i) {
- for (std::vector<Parent>::iterator j = i->begin(); j != i->end(); ++j) {
- if (j->ref.num == objectRef.num && j->ref.gen == objectRef.gen)
- j->element = element;
+ Object kids = node->lookup("Kids");
+ if (kids.isArray()) {
+ for (int i = 0; i < kids.arrayGetLength(); i++) {
+ Object obj = kids.arrayGet(i);
+ if (obj.isDict()) {
+ parseNumberTreeNode(obj.getDict());
+ } else {
+ error(errSyntaxError, -1, "Kids item at position {0:d} is wrong type ({1:s})", i, obj.getTypeName());
+ }
}
+ return;
+ } else if (!kids.isNull()) {
+ error(errSyntaxError, -1, "Kids object is wrong type ({0:s})", kids.getTypeName());
}
+
+ Object nums = node->lookup("Nums");
+ if (nums.isArray()) {
+ if (nums.arrayGetLength() % 2 == 0) {
+ // keys in even positions, references in odd ones
+ for (int i = 0; i < nums.arrayGetLength(); i += 2) {
+ Object key = nums.arrayGet(i);
+
+ if (!key.isInt()) {
+ error(errSyntaxError, -1, "Nums item at position {0:d} is wrong type ({1:s})", i, key.getTypeName());
+ continue;
+ }
+ int keyVal = key.getInt();
+ std::vector<Parent>& vec = parentTree[keyVal];
+
+ Object value = nums.arrayGet(i + 1);
+ if (value.isArray()) {
+ vec.resize(value.arrayGetLength());
+ memset(vec.data(), 0, vec.size()*sizeof(Parent*));
+ for (int j = 0; j < value.arrayGetLength(); j++) {
+ Object itemvalue = value.arrayGetNF(j);
+ if (itemvalue.isRef()) {
+ Ref ref = itemvalue.getRef();
+ vec[j].ref = ref;
+ refToParentMap.insert(std::pair<Ref, Parent*>(ref, &vec[j]));
+ } else if (!itemvalue.isNull()) {
+ error(errSyntaxError, -1, "Nums array item at position {0:d}/{1:d} is invalid type ({2:s})", i, j, itemvalue.getTypeName());
+ }
+ }
+ } else {
+ value = nums.arrayGetNF(i + 1);
+ if (value.isRef()) {
+ Ref ref = value.getRef();
+ vec.resize(1);
+ vec[0].ref = ref;
+ refToParentMap.insert(std::pair<Ref, Parent*>(ref, &vec[0]));
+ } else {
+ error(errSyntaxError, -1, "Nums item at position {0:d} is wrong type ({1:s})", i + 1, value.getTypeName());
+ }
+ }
+ }
+ } else {
+ error(errSyntaxError, -1, "Nums array length is not a even ({0:d})", nums.arrayGetLength());
+ }
+ } else {
+ error(errSyntaxError, -1, "Nums object is wrong type ({0:s})", nums.getTypeName());
+ }
+}
+
+
+void StructTreeRoot::parentTreeAdd(const Ref &objectRef, StructElement *element)
+{
+ auto range = refToParentMap.equal_range(objectRef);
+ for (auto it = range.first; it !=range.second; ++it)
+ it->second->element = element;
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.h b/Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.h
index 3b1f3c84421..89c7941cebf 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/StructTreeRoot.h
@@ -5,6 +5,8 @@
// This file is licensed under the GPLv2 or later
//
// Copyright 2013, 2014 Igalia S.L.
+// Copyright 2018 Albert Astals Cid <aacid@kde.org>
+// Copyright 2018 Adrian Johnson <ajohnson@redneon.com>
//
//========================================================================
@@ -18,6 +20,7 @@
#include "goo/gtypes.h"
#include "Object.h"
#include "StructElement.h"
+#include <map>
#include <vector>
class Dict;
@@ -30,6 +33,9 @@ public:
StructTreeRoot(PDFDoc *docA, Dict *rootDict);
~StructTreeRoot();
+ StructTreeRoot& operator=(const StructTreeRoot &) = delete;
+ StructTreeRoot(const StructTreeRoot &) = delete;
+
PDFDoc *getDoc() { return doc; }
Dict *getRoleMap() { return roleMap.isDict() ? roleMap.getDict() : NULL; }
Dict *getClassMap() { return classMap.isDict() ? classMap.getDict() : NULL; }
@@ -43,9 +49,12 @@ public:
}
}
- const StructElement *findParentElement(unsigned index) const {
- if (index < parentTree.size() && parentTree[index].size() == 1) {
- return parentTree[index][0].element;
+ const StructElement *findParentElement(int key, unsigned mcid = 0) const {
+ auto it = parentTree.find(key);
+ if (it != parentTree.end()) {
+ if (mcid < it->second.size()) {
+ return it->second[mcid].element;
+ }
}
return NULL;
}
@@ -59,11 +68,9 @@ private:
Ref ref;
StructElement *element;
- Parent(): element(NULL) { ref.num = ref.gen = -1; }
- Parent(const Parent &p): element(p.element) {
- ref.num = p.ref.num;
- ref.gen = p.ref.gen;
- }
+ Parent(): element(nullptr) { ref.num = ref.gen = -1; }
+ Parent(const Parent &p) = default;
+ Parent& operator=(const Parent &) = default;
~Parent() {}
};
@@ -71,9 +78,11 @@ private:
Object roleMap;
Object classMap;
ElemPtrArray elements;
- std::vector< std::vector<Parent> > parentTree;
+ std::map<int, std::vector<Parent> > parentTree;
+ std::multimap<Ref, Parent*, RefCompare> refToParentMap;
void parse(Dict *rootDict);
+ void parseNumberTreeNode(Dict *node);
void parentTreeAdd(const Ref &objectRef, StructElement *element);
friend class StructElement;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc b/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc
index 9a77d050005..4397e49718c 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.cc
@@ -20,7 +20,7 @@
// Copyright (C) 2006 Jeff Muizelaar <jeff@infidigm.net>
// Copyright (C) 2007, 2008, 2012, 2017 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2008 Koji Otani <sho@bbr.jp>
-// Copyright (C) 2008, 2010-2012, 2014-2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008, 2010-2012, 2014-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2008 Pino Toscano <pino@kde.org>
// Copyright (C) 2008, 2010 Hib Eris <hib@hiberis.nl>
// Copyright (C) 2009 Ross Moore <ross@maths.mq.edu.au>
@@ -30,7 +30,7 @@
// Copyright (C) 2010 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
// Copyright (C) 2011 Sam Liao <phyomh@gmail.com>
// Copyright (C) 2012 Horst Prote <prote@fmi.uni-stuttgart.de>
-// Copyright (C) 2012, 2013-2017 Jason Crain <jason@aquaticape.us>
+// Copyright (C) 2012, 2013-2018 Jason Crain <jason@aquaticape.us>
// Copyright (C) 2012 Peter Breitenlohner <peb@mppmu.mpg.de>
// Copyright (C) 2013 José Aliste <jaliste@src.gnome.org>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
@@ -308,7 +308,7 @@ TextFontInfo::TextFontInfo(GfxState *state) {
gfxFont->incRefCnt();
#ifdef TEXTOUT_WORD_LIST
fontName = (gfxFont && gfxFont->getName()) ? gfxFont->getName()->copy()
- : (GooString *)NULL;
+ : (GooString *)nullptr;
flags = gfxFont ? gfxFont->getFlags() : 0;
#endif
}
@@ -350,15 +350,15 @@ int TextFontInfo::getWMode() {
TextWord::TextWord(GfxState *state, int rotA, double fontSizeA) {
rot = rotA;
fontSize = fontSizeA;
- text = NULL;
- charcode = NULL;
- edge = NULL;
- charPos = NULL;
- font = NULL;
- textMat = NULL;
+ text = nullptr;
+ charcode = nullptr;
+ edge = nullptr;
+ charPos = nullptr;
+ font = nullptr;
+ textMat = nullptr;
len = size = 0;
spaceAfter = gFalse;
- next = NULL;
+ next = nullptr;
#ifdef TEXTOUT_WORD_LIST
GfxRGB rgb;
@@ -374,7 +374,7 @@ TextWord::TextWord(GfxState *state, int rotA, double fontSizeA) {
#endif
underlined = gFalse;
- link = NULL;
+ link = nullptr;
}
TextWord::~TextWord() {
@@ -852,8 +852,8 @@ void TextWord::getCharBBox(int charIdx, double *xMinA, double *yMinA,
TextPool::TextPool() {
minBaseIdx = 0;
maxBaseIdx = -1;
- pool = NULL;
- cursor = NULL;
+ pool = nullptr;
+ cursor = nullptr;
cursorBaseIdx = -1;
}
@@ -901,14 +901,14 @@ void TextPool::addWord(TextWord *word) {
pool = (TextWord **)gmallocn(maxBaseIdx - minBaseIdx + 1,
sizeof(TextWord *));
for (baseIdx = minBaseIdx; baseIdx <= maxBaseIdx; ++baseIdx) {
- pool[baseIdx - minBaseIdx] = NULL;
+ pool[baseIdx - minBaseIdx] = nullptr;
}
} else if (wordBaseIdx < minBaseIdx) {
newMinBaseIdx = wordBaseIdx - 128;
newPool = (TextWord **)gmallocn(maxBaseIdx - newMinBaseIdx + 1,
sizeof(TextWord *));
for (baseIdx = newMinBaseIdx; baseIdx < minBaseIdx; ++baseIdx) {
- newPool[baseIdx - newMinBaseIdx] = NULL;
+ newPool[baseIdx - newMinBaseIdx] = nullptr;
}
memcpy(&newPool[minBaseIdx - newMinBaseIdx], pool,
(maxBaseIdx - minBaseIdx + 1) * sizeof(TextWord *));
@@ -920,7 +920,7 @@ void TextPool::addWord(TextWord *word) {
pool = (TextWord **)greallocn(pool, newMaxBaseIdx - minBaseIdx + 1,
sizeof(TextWord *));
for (baseIdx = maxBaseIdx + 1; baseIdx <= newMaxBaseIdx; ++baseIdx) {
- pool[baseIdx - minBaseIdx] = NULL;
+ pool[baseIdx - minBaseIdx] = nullptr;
}
maxBaseIdx = newMaxBaseIdx;
}
@@ -931,7 +931,7 @@ void TextPool::addWord(TextWord *word) {
w0 = cursor;
w1 = cursor->next;
} else {
- w0 = NULL;
+ w0 = nullptr;
w1 = pool[wordBaseIdx - minBaseIdx];
}
for (; w1 && word->primaryCmp(w1) > 0; w0 = w1, w1 = w1->next) ;
@@ -953,19 +953,19 @@ TextLine::TextLine(TextBlock *blkA, int rotA, double baseA) {
blk = blkA;
rot = rotA;
base = baseA;
- words = lastWord = NULL;
- text = NULL;
- edge = NULL;
- col = NULL;
+ words = lastWord = nullptr;
+ text = nullptr;
+ edge = nullptr;
+ col = nullptr;
len = 0;
convertedLen = 0;
hyphenated = gFalse;
- next = NULL;
+ next = nullptr;
xMin = yMin = 0;
xMax = yMax = -1;
- normalized = NULL;
+ normalized = nullptr;
normalized_len = 0;
- normalized_idx = NULL;
+ normalized_idx = nullptr;
}
TextLine::~TextLine() {
@@ -1499,10 +1499,10 @@ TextBlock::TextBlock(TextPage *pageA, int rotA) {
priMin = 0;
priMax = page->pageWidth;
pool = new TextPool();
- lines = NULL;
- curLine = NULL;
- next = NULL;
- stackNext = NULL;
+ lines = nullptr;
+ curLine = nullptr;
+ next = nullptr;
+ stackNext = nullptr;
tableId = -1;
tableEnd = gFalse;
}
@@ -1561,13 +1561,13 @@ void TextBlock::coalesce(UnicodeMap *uMap, double fixedPitch) {
secDelta = dupMaxSecDelta * word0->fontSize;
maxBaseIdx = pool->getBaseIdx(word0->base + secDelta);
found = gFalse;
- word1 = word2 = NULL; // make gcc happy
+ word1 = word2 = nullptr; // make gcc happy
for (idx1 = idx0; idx1 <= maxBaseIdx; ++idx1) {
if (idx1 == idx0) {
word1 = word0;
word2 = word0->next;
} else {
- word1 = NULL;
+ word1 = nullptr;
word2 = pool->getPool(idx1);
}
for (; word2; word1 = word2, word2 = word2->next) {
@@ -1613,7 +1613,7 @@ void TextBlock::coalesce(UnicodeMap *uMap, double fixedPitch) {
}
// build the lines
- curLine = NULL;
+ curLine = nullptr;
poolMinBaseIdx = pool->minBaseIdx;
charCount = 0;
nLines = 0;
@@ -1645,7 +1645,7 @@ void TextBlock::coalesce(UnicodeMap *uMap, double fixedPitch) {
// create a new line
word0 = pool->getPool(startBaseIdx);
pool->setPool(startBaseIdx, word0->next);
- word0->next = NULL;
+ word0->next = nullptr;
line = new TextLine(this, word0->rot, word0->base);
line->addWord(word0);
lastWord = word0;
@@ -1664,12 +1664,12 @@ void TextBlock::coalesce(UnicodeMap *uMap, double fixedPitch) {
// find the left-most word whose baseline is in the range for
// this line
bestWordBaseIdx = 0;
- bestWord0 = bestWord1 = NULL;
+ bestWord0 = bestWord1 = nullptr;
overlap = gFalse;
for (baseIdx = minBaseIdx;
!overlap && baseIdx <= maxBaseIdx;
++baseIdx) {
- for (word0 = NULL, word1 = pool->getPool(baseIdx);
+ for (word0 = nullptr, word1 = pool->getPool(baseIdx);
word1;
word0 = word1, word1 = word1->next) {
if (word1->base >= minBase &&
@@ -1700,7 +1700,7 @@ void TextBlock::coalesce(UnicodeMap *uMap, double fixedPitch) {
} else {
pool->setPool(bestWordBaseIdx, bestWord1->next);
}
- bestWord1->next = NULL;
+ bestWord1->next = nullptr;
line->addWord(bestWord1);
lastWord = bestWord1;
}
@@ -1710,7 +1710,7 @@ void TextBlock::coalesce(UnicodeMap *uMap, double fixedPitch) {
line0 = curLine;
line1 = curLine->next;
} else {
- line0 = NULL;
+ line0 = nullptr;
line1 = lines;
}
for (;
@@ -2174,7 +2174,7 @@ int TextBlock::visitDepthFirst(TextBlock *blkList, int pos1,
GBool* visited) {
const int blockCacheSize = 4;
TextBlock *blockCache[blockCacheSize];
- std::fill(blockCache, blockCache + blockCacheSize, (TextBlock*)NULL);
+ std::fill(blockCache, blockCache + blockCacheSize, (TextBlock*)nullptr);
return visitDepthFirst(blkList, pos1, sorted, sortPos, visited, blockCache,
blockCacheSize);
}
@@ -2192,7 +2192,7 @@ TextFlow::TextFlow(TextPage *pageA, TextBlock *blk) {
priMin = blk->priMin;
priMax = blk->priMax;
blocks = lastBlk = blk;
- next = NULL;
+ next = nullptr;
}
TextFlow::~TextFlow() {
@@ -2326,7 +2326,7 @@ int TextWordList::getLength() {
TextWord *TextWordList::get(int idx) {
if (idx < 0 || idx >= words->getLength()) {
- return NULL;
+ return nullptr;
}
return (TextWord *)words->get(idx);
}
@@ -2342,9 +2342,9 @@ TextPage::TextPage(GBool rawOrderA) {
refCnt = 1;
rawOrder = rawOrderA;
- curWord = NULL;
+ curWord = nullptr;
charPos = 0;
- curFont = NULL;
+ curFont = nullptr;
curFontSize = 0;
nest = 0;
nTinyChars = 0;
@@ -2354,10 +2354,10 @@ TextPage::TextPage(GBool rawOrderA) {
pools[rot] = new TextPool();
}
}
- flows = NULL;
- blocks = NULL;
- rawWords = NULL;
- rawLastWord = NULL;
+ flows = nullptr;
+ blocks = nullptr;
+ rawWords = nullptr;
+ rawLastWord = nullptr;
fonts = new GooList();
lastFindXMin = lastFindYMin = 0;
haveLastFind = gFalse;
@@ -2412,7 +2412,7 @@ void TextPage::clear() {
if (curWord) {
delete curWord;
- curWord = NULL;
+ curWord = nullptr;
}
if (rawOrder) {
while (rawWords) {
@@ -2435,9 +2435,9 @@ void TextPage::clear() {
deleteGooList(underlines, TextUnderline);
deleteGooList(links, TextLink);
- curWord = NULL;
+ curWord = nullptr;
charPos = 0;
- curFont = NULL;
+ curFont = nullptr;
curFontSize = 0;
nest = 0;
nTinyChars = 0;
@@ -2446,10 +2446,10 @@ void TextPage::clear() {
pools[rot] = new TextPool();
}
}
- flows = NULL;
- blocks = NULL;
- rawWords = NULL;
- rawLastWord = NULL;
+ flows = nullptr;
+ blocks = nullptr;
+ rawWords = nullptr;
+ rawLastWord = nullptr;
fonts = new GooList();
underlines = new GooList();
links = new GooList();
@@ -2464,13 +2464,13 @@ void TextPage::updateFont(GfxState *state) {
int i;
// get the font info object
- curFont = NULL;
+ curFont = nullptr;
for (i = 0; i < fonts->getLength(); ++i) {
curFont = (TextFontInfo *)fonts->get(i);
if (curFont->matches(state)) {
break;
}
- curFont = NULL;
+ curFont = nullptr;
}
if (!curFont) {
curFont = new TextFontInfo(state);
@@ -2618,6 +2618,8 @@ void TextPage::addChar(GfxState *state, double x, double y,
}
state->getFontTransMat(&mat.m[0], &mat.m[1], &mat.m[2], &mat.m[3]);
+ mat.m[0] *= state->getHorizScaling();
+ mat.m[1] *= state->getHorizScaling();
mat.m[4] = x1;
mat.m[5] = y1;
@@ -2724,7 +2726,7 @@ void TextPage::endWord() {
if (curWord) {
addWord(curWord);
- curWord = NULL;
+ curWord = nullptr;
}
}
@@ -2781,8 +2783,8 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
}
uMap = globalParams->getTextEncoding();
- blkList = NULL;
- lastBlk = NULL;
+ blkList = nullptr;
+ lastBlk = nullptr;
nBlocks = 0;
primaryRot = 0;
@@ -2989,7 +2991,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
// create a new block
word0 = pool->getPool(startBaseIdx);
pool->setPool(startBaseIdx, word0->next);
- word0->next = NULL;
+ word0->next = nullptr;
blk = new TextBlock(this, rot);
blk->addWord(word0);
@@ -3010,7 +3012,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
for (baseIdx = pool->getBaseIdx(minBase);
baseIdx >= pool->getBaseIdx(minBase - lineSpace);
--baseIdx) {
- word0 = NULL;
+ word0 = nullptr;
word1 = pool->getPool(baseIdx);
while (word1) {
if (word1->base < minBase &&
@@ -3027,7 +3029,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
pool->setPool(baseIdx, word1->next);
}
word1 = word1->next;
- word2->next = NULL;
+ word2->next = nullptr;
blk->addWord(word2);
found = gTrue;
newMinBase = word2->base;
@@ -3045,7 +3047,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
for (baseIdx = pool->getBaseIdx(maxBase);
baseIdx <= pool->getBaseIdx(maxBase + lineSpace);
++baseIdx) {
- word0 = NULL;
+ word0 = nullptr;
word1 = pool->getPool(baseIdx);
while (word1) {
if (word1->base > maxBase &&
@@ -3062,7 +3064,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
pool->setPool(baseIdx, word1->next);
}
word1 = word1->next;
- word2->next = NULL;
+ word2->next = nullptr;
blk->addWord(word2);
found = gTrue;
newMaxBase = word2->base;
@@ -3079,7 +3081,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
for (baseIdx = pool->getBaseIdx(minBase - intraLineSpace);
baseIdx <= pool->getBaseIdx(maxBase + intraLineSpace);
++baseIdx) {
- word0 = NULL;
+ word0 = nullptr;
word1 = pool->getPool(baseIdx);
while (word1) {
if (word1->base >= minBase - intraLineSpace &&
@@ -3098,7 +3100,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
pool->setPool(baseIdx, word1->next);
}
word1 = word1->next;
- word2->next = NULL;
+ word2->next = nullptr;
blk->addWord(word2);
found = gTrue;
} else {
@@ -3142,7 +3144,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
for (baseIdx = pool->getBaseIdx(minBase - intraLineSpace);
baseIdx <= pool->getBaseIdx(maxBase + intraLineSpace);
++baseIdx) {
- word0 = NULL;
+ word0 = nullptr;
word1 = pool->getPool(baseIdx);
while (word1) {
if (word1->base >= minBase - intraLineSpace &&
@@ -3161,7 +3163,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
pool->setPool(baseIdx, word1->next);
}
word1 = word1->next;
- word2->next = NULL;
+ word2->next = nullptr;
blk->addWord(word2);
if (word2->base < minBase) {
minBase = word2->base;
@@ -3206,7 +3208,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
for (baseIdx = pool->getBaseIdx(minBase - intraLineSpace);
baseIdx <= pool->getBaseIdx(maxBase + intraLineSpace);
++baseIdx) {
- word0 = NULL;
+ word0 = nullptr;
word1 = pool->getPool(baseIdx);
while (word1) {
if (word1->base >= minBase - intraLineSpace &&
@@ -3225,7 +3227,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
pool->setPool(baseIdx, word1->next);
}
word1 = word1->next;
- word2->next = NULL;
+ word2->next = nullptr;
blk->addWord(word2);
if (word2->base < minBase) {
minBase = word2->base;
@@ -3358,7 +3360,9 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
for (blk = blkList, i = 0; blk; blk = blk->next, ++i) {
blocks[i] = blk;
}
- qsort(blocks, nBlocks, sizeof(TextBlock *), &TextBlock::cmpXYPrimaryRot);
+ if (blocks) {
+ qsort(blocks, nBlocks, sizeof(TextBlock *), &TextBlock::cmpXYPrimaryRot);
+ }
// column assignment
for (i = 0; i < nBlocks; ++i) {
@@ -3479,7 +3483,7 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
double xCentre1, yCentre1, xCentre2, yCentre2;
double xCentre3, yCentre3, xCentre4, yCentre4;
double deltaX, deltaY;
- TextBlock *fblk2 = NULL, *fblk3 = NULL, *fblk4 = NULL;
+ TextBlock *fblk2 = nullptr, *fblk3 = nullptr, *fblk4 = nullptr;
for (blk1 = blkList; blk1; blk1 = blk1->next) {
blk1->ExMin = blk1->xMin;
@@ -3492,9 +3496,9 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
bxMin1 = DBL_MAX;
byMin1 = DBL_MAX;
- fblk2 = NULL;
- fblk3 = NULL;
- fblk4 = NULL;
+ fblk2 = nullptr;
+ fblk3 = nullptr;
+ fblk4 = nullptr;
/* find fblk2, fblk3 and fblk4 so that
* fblk2 is on the right of blk1 and overlap with blk1 in y axis
@@ -3531,25 +3535,25 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
* fblk2 can not overlap with fblk3 in x and y
* fblk4 has to overlap with fblk3 in y and with fblk2 in x
*/
- if (fblk2 != NULL &&
- fblk3 != NULL &&
- fblk4 != NULL) {
+ if (fblk2 != nullptr &&
+ fblk3 != nullptr &&
+ fblk4 != nullptr) {
if (((fblk3->xMin <= fblk4->xMax && fblk3->xMax >= fblk4->xMin) ||
(fblk2->yMin <= fblk4->yMax && fblk2->yMax >= fblk4->yMin) ||
(fblk2->xMin <= fblk3->xMax && fblk2->xMax >= fblk3->xMin) ||
(fblk2->yMin <= fblk3->yMax && fblk2->yMax >= fblk3->yMin)) ||
!(fblk4->xMin <= fblk2->xMax && fblk4->xMax >= fblk2->xMin &&
fblk4->yMin <= fblk3->yMax && fblk4->yMax >= fblk3->yMin)) {
- fblk2 = NULL;
- fblk3 = NULL;
- fblk4 = NULL;
+ fblk2 = nullptr;
+ fblk3 = nullptr;
+ fblk4 = nullptr;
}
}
// if we found any then look whether they form a table
- if (fblk2 != NULL &&
- fblk3 != NULL &&
- fblk4 != NULL) {
+ if (fblk2 != nullptr &&
+ fblk3 != nullptr &&
+ fblk4 != nullptr) {
tableId = -1;
correspondenceX = 0;
correspondenceY = 0;
@@ -3772,13 +3776,13 @@ void TextPage::coalesce(GBool physLayout, double fixedPitch, GBool doHTML) {
flows = flows->next;
delete flow;
}
- flow = NULL;
- flows = lastFlow = NULL;
+ flow = nullptr;
+ flows = lastFlow = nullptr;
// assume blocks are already in reading order,
// and construct flows accordingly.
for (i = 0; i < nBlocks; i++) {
blk = blocks[i];
- blk->next = NULL;
+ blk->next = nullptr;
if (flow) {
blk1 = blocks[i - 1];
blkSpace = maxBlockSpacing * blk1->lines->words->fontSize;
@@ -3854,10 +3858,10 @@ GBool TextPage::findText(Unicode *s, int len,
// handle right-to-left text
reordered = (Unicode*)gmallocn(len, sizeof(Unicode));
- reorderText(s, len, NULL, primaryLR, NULL, reordered);
+ reorderText(s, len, nullptr, primaryLR, nullptr, reordered);
// normalize the search string
- s2 = unicodeNormalizeNFKC(reordered, len, &len, NULL);
+ s2 = unicodeNormalizeNFKC(reordered, len, &len, nullptr);
// convert the search string to uppercase
if (!caseSensitive) {
@@ -3866,7 +3870,7 @@ GBool TextPage::findText(Unicode *s, int len,
}
}
- txt = NULL;
+ txt = nullptr;
txtSize = 0;
xStart = yStart = xStop = yStop = 0;
@@ -4301,6 +4305,8 @@ class TextSelectionVisitor {
public:
TextSelectionVisitor (TextPage *page);
virtual ~TextSelectionVisitor () { }
+ TextSelectionVisitor(const TextSelectionVisitor &) = delete;
+ TextSelectionVisitor& operator=(const TextSelectionVisitor &) = delete;
virtual void visitBlock (TextBlock *block,
TextLine *begin,
TextLine *end,
@@ -4366,8 +4372,8 @@ TextSelectionDumper::TextSelectionDumper(TextPage *page)
nLines = 0;
tableId = -1;
- currentBlock = NULL;
- words = NULL;
+ currentBlock = nullptr;
+ words = nullptr;
}
TextSelectionDumper::~TextSelectionDumper()
@@ -4394,7 +4400,7 @@ void TextSelectionDumper::finishLine()
lines[nLines++] = words;
else if (words)
delete words;
- words = NULL;
+ words = nullptr;
}
void TextSelectionDumper::visitLine (TextLine *line,
@@ -4412,7 +4418,7 @@ void TextSelectionDumper::visitLine (TextLine *line,
finishLine();
tableId = -1;
- currentBlock = NULL;
+ currentBlock = nullptr;
}
if (frag.line->blk->tableId >= 0) { // a table
@@ -4485,10 +4491,10 @@ GooList **TextSelectionDumper::takeWordList(int *nLinesOut)
*nLinesOut = nLines;
if (nLines == 0)
- return NULL;
+ return nullptr;
nLines = 0;
- lines = NULL;
+ lines = nullptr;
return returnValue;
}
@@ -4600,7 +4606,7 @@ TextSelectionPainter::TextSelectionPainter(TextPage *page,
state->getCTM(&ctm);
ctm.invertTo(&ictm);
- out->startPage(0, state, NULL);
+ out->startPage(0, state, nullptr);
out->setDefaultCTM (state->getCTM());
state->setFillColorSpace(new GfxDeviceRGBColorSpace());
@@ -4696,7 +4702,7 @@ void TextSelectionPainter::endPage()
continue;
out->drawChar(state, sel->word->textMat[i].m[4], sel->word->textMat[i].m[5], 0, 0, 0, 0,
- sel->word->charcode[i], 1, NULL, 0);
+ sel->word->charcode[i], 1, nullptr, 0);
}
out->endString(state);
delete string;
@@ -4740,29 +4746,29 @@ void TextLine::visitSelection(TextSelectionVisitor *visitor,
int i, edge_begin, edge_end;
PDFRectangle child_selection;
- begin = NULL;
- end = NULL;
- current = NULL;
- for (p = words; p != NULL; p = p->next) {
+ begin = nullptr;
+ end = nullptr;
+ current = nullptr;
+ for (p = words; p != nullptr; p = p->next) {
if (blk->page->primaryLR) {
if ((selection->x1 < p->xMax) ||
(selection->x2 < p->xMax))
- if (begin == NULL)
+ if (begin == nullptr)
begin = p;
if (((selection->x1 > p->xMin) ||
- (selection->x2 > p->xMin)) && (begin != NULL)) {
+ (selection->x2 > p->xMin)) && (begin != nullptr)) {
end = p->next;
current = p;
}
} else {
if ((selection->x1 > p->xMin) ||
(selection->x2 > p->xMin))
- if (begin == NULL)
+ if (begin == nullptr)
begin = p;
if (((selection->x1 < p->xMax) ||
- (selection->x2 < p->xMax)) && (begin != NULL)) {
+ (selection->x2 < p->xMax)) && (begin != nullptr)) {
end = p->next;
current = p;
}
@@ -4829,7 +4835,7 @@ void TextBlock::visitSelection(TextSelectionVisitor *visitor,
best_line[i] = this->lines;
best_count[i] = 1;
} else {
- best_line[i] = NULL;
+ best_line[i] = nullptr;
best_count[i] = 0;
}
} else {
@@ -4838,7 +4844,7 @@ void TextBlock::visitSelection(TextSelectionVisitor *visitor,
best_line[i] = this->lines;
best_count[i] = 1;
} else {
- best_line[i] = NULL;
+ best_line[i] = nullptr;
best_count[i] = 0;
}
}
@@ -4941,8 +4947,8 @@ void TextPage::visitSelection(TextSelectionVisitor *visitor,
yMax = 0.0;
for (i = 0; i < 2; i++) {
- best_block[i] = NULL;
- best_flow[i] = NULL;
+ best_block[i] = nullptr;
+ best_flow[i] = nullptr;
best_count[i] = 0;
best_d[i] = 0;
}
@@ -5455,7 +5461,7 @@ void TextPage::assignColumns(TextLineFrag *frags, int nFrags, GBool oneRot) {
int TextPage::dumpFragment(Unicode *text, int len, UnicodeMap *uMap,
GooString *s) {
if (uMap->isUnicode()) {
- return reorderText(text, len, uMap, primaryLR, s, NULL);
+ return reorderText(text, len, uMap, primaryLR, s, nullptr);
} else {
int nCols = 0;
@@ -5484,7 +5490,7 @@ TextWordList *TextPage::makeWordList(GBool physLayout) {
ActualText::ActualText(TextPage *out) {
out->incRefCnt();
text = out;
- actualText = NULL;
+ actualText = nullptr;
actualTextNBytes = 0;
}
@@ -5524,7 +5530,7 @@ void ActualText::end(GfxState *state) {
// extents of all the glyphs inside the span
if (actualTextNBytes) {
- Unicode *uni = NULL;
+ Unicode *uni = nullptr;
int length;
// now that we have the position info for all of the text inside
@@ -5538,7 +5544,7 @@ void ActualText::end(GfxState *state) {
}
delete actualText;
- actualText = NULL;
+ actualText = nullptr;
actualTextNBytes = 0;
}
@@ -5553,7 +5559,7 @@ static void TextOutputDev_outputToFile(void *stream, const char *text, int len)
TextOutputDev::TextOutputDev(char *fileName, GBool physLayoutA,
double fixedPitchA, GBool rawOrderA,
GBool append) {
- text = NULL;
+ text = nullptr;
physLayout = physLayoutA;
fixedPitch = physLayout ? fixedPitchA : 0;
rawOrder = rawOrderA;
@@ -5574,12 +5580,12 @@ TextOutputDev::TextOutputDev(char *fileName, GBool physLayoutA,
} else {
error(errIO, -1, "Couldn't open text file '{0:s}'", fileName);
ok = gFalse;
- actualText = NULL;
+ actualText = nullptr;
return;
}
outputFunc = &TextOutputDev_outputToFile;
} else {
- outputStream = NULL;
+ outputStream = nullptr;
}
// set up text object
diff --git a/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.h b/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.h
index 380301fdeeb..b5a6088c08a 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/TextOutputDev.h
@@ -17,7 +17,7 @@
// Copyright (C) 2006 Ed Catmur <ed@catmur.co.uk>
// Copyright (C) 2007, 2008, 2011, 2013 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2007, 2017 Adrian Johnson <ajohnson@redneon.com>
-// Copyright (C) 2008, 2010, 2015, 2016 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2008, 2010, 2015, 2016, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2010 Brian Ewins <brian.ewins@gmail.com>
// Copyright (C) 2012, 2013, 2015, 2016 Jason Crain <jason@aquaticape.us>
// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
@@ -79,6 +79,9 @@ public:
TextFontInfo(GfxState *state);
~TextFontInfo();
+ TextFontInfo(const TextFontInfo &) = delete;
+ TextFontInfo& operator=(const TextFontInfo &) = delete;
+
GBool matches(GfxState *state);
GBool matches(TextFontInfo *fontInfo);
@@ -129,6 +132,9 @@ public:
// Destructor.
~TextWord();
+ TextWord(const TextWord &) = delete;
+ TextWord& operator=(const TextWord &) = delete;
+
// Add a character to the word.
void addChar(GfxState *state, TextFontInfo *fontA, double x, double y,
double dx, double dy, int charPosA, int charLen,
@@ -244,6 +250,9 @@ public:
TextPool();
~TextPool();
+ TextPool(const TextPool &) = delete;
+ TextPool& operator=(const TextPool &) = delete;
+
TextWord *getPool(int baseIdx) { return pool[baseIdx - minBaseIdx]; }
void setPool(int baseIdx, TextWord *p) { pool[baseIdx - minBaseIdx] = p; }
@@ -276,6 +285,9 @@ public:
TextLine(TextBlock *blkA, int rotA, double baseA);
~TextLine();
+ TextLine(const TextLine &) = delete;
+ TextLine& operator=(const TextLine &) = delete;
+
void addWord(TextWord *word);
// Return the distance along the primary axis between <this> and
@@ -353,6 +365,9 @@ public:
TextBlock(TextPage *pageA, int rotA);
~TextBlock();
+ TextBlock(const TextBlock &) = delete;
+ TextBlock& operator=(const TextBlock &) = delete;
+
void addWord(TextWord *word);
void coalesce(UnicodeMap *uMap, double fixedPitch);
@@ -442,6 +457,9 @@ public:
TextFlow(TextPage *pageA, TextBlock *blk);
~TextFlow();
+ TextFlow(const TextFlow &) = delete;
+ TextFlow& operator=(const TextFlow &) = delete;
+
// Add a block to the end of this flow.
void addBlock(TextBlock *blk);
@@ -488,6 +506,9 @@ public:
~TextWordList();
+ TextWordList(const TextWordList &) = delete;
+ TextWordList& operator=(const TextWordList &) = delete;
+
// Return the number of words on the list.
int getLength();
@@ -503,8 +524,8 @@ private:
class TextWordSelection {
public:
- TextWordSelection(TextWord *word, int begin, int end)
- : word(word), begin(begin), end(end)
+ TextWordSelection(TextWord *wordA, int beginA, int endA)
+ : word(wordA), begin(beginA), end(endA)
{
}
@@ -531,6 +552,9 @@ public:
// Constructor.
TextPage(GBool rawOrderA);
+ TextPage(const TextPage &) = delete;
+ TextPage& operator=(const TextPage &) = delete;
+
void incRefCnt();
void decRefCnt();
@@ -702,6 +726,9 @@ public:
ActualText(TextPage *out);
~ActualText();
+ ActualText(const ActualText &) = delete;
+ ActualText& operator=(const ActualText &) = delete;
+
void addChar(GfxState *state, double x, double y,
double dx, double dy,
CharCode c, int nBytes, Unicode *u, int uLen);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/UTF.cc b/Build/source/libs/poppler/poppler-src/poppler/UTF.cc
index 878837a8831..da2faad1c3f 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/UTF.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/UTF.cc
@@ -16,7 +16,7 @@
// Copyright (C) 2008 Koji Otani <sho@bbr.jp>
// Copyright (C) 2012, 2017 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2012 Hib Eris <hib@hiberis.nl>
-// Copyright (C) 2016 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2016, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2016 Jason Crain <jason@aquaticape.us>
//
// To see a description of the changes please see the Changelog file that
@@ -52,7 +52,7 @@ int UTF16toUCS4(const Unicode *utf16, int utf16Len, Unicode **ucs4)
}
len++;
}
- if (ucs4 == NULL)
+ if (ucs4 == nullptr)
return len;
u = (Unicode*)gmallocn(len, sizeof(Unicode));
@@ -94,7 +94,7 @@ int TextStringToUCS4(GooString *textStr, Unicode **ucs4)
len = textStr->getLength();
s = textStr->getCString();
if (len == 0) {
- *ucs4 = 0;
+ *ucs4 = nullptr;
return 0;
}
@@ -109,7 +109,7 @@ int TextStringToUCS4(GooString *textStr, Unicode **ucs4)
len = UTF16toUCS4(utf16, len, &u);
delete[] utf16;
} else {
- u = NULL;
+ u = nullptr;
}
} else {
u = (Unicode*)gmallocn(len, sizeof(Unicode));
@@ -331,7 +331,7 @@ inline uint32_t decodeUtf16(uint32_t* state, uint32_t* codePoint, uint16_t codeU
// UTF-8 (excluding terminating NULL).
int utf16CountUtf8Bytes(const uint16_t *utf16)
{
- uint32_t codepoint;
+ uint32_t codepoint = 0;
uint32_t state = 0;
int count = 0;
diff --git a/Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.cc b/Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.cc
index 25b3de13d52..dabdce2ad3c 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.cc
@@ -67,7 +67,7 @@ UnicodeMap *UnicodeMap::parse(GooString *encodingNameA) {
error(errSyntaxError, -1,
"Couldn't find unicodeMap file for the '{0:t}' encoding",
encodingNameA);
- return NULL;
+ return nullptr;
}
map = new UnicodeMap(encodingNameA->copy());
@@ -79,8 +79,8 @@ UnicodeMap *UnicodeMap::parse(GooString *encodingNameA) {
line = 1;
while (getLine(buf, sizeof(buf), f)) {
if ((tok1 = strtok_r(buf, " \t\r\n", &tokptr)) &&
- (tok2 = strtok_r(NULL, " \t\r\n", &tokptr))) {
- if (!(tok3 = strtok_r(NULL, " \t\r\n", &tokptr))) {
+ (tok2 = strtok_r(nullptr, " \t\r\n", &tokptr))) {
+ if (!(tok3 = strtok_r(nullptr, " \t\r\n", &tokptr))) {
tok3 = tok2;
tok2 = tok1;
}
@@ -134,9 +134,9 @@ UnicodeMap::UnicodeMap(GooString *encodingNameA) {
encodingName = encodingNameA;
unicodeOut = gFalse;
kind = unicodeMapUser;
- ranges = NULL;
+ ranges = nullptr;
len = 0;
- eMaps = NULL;
+ eMaps = nullptr;
eMapsLen = 0;
refCnt = 1;
#ifdef MULTITHREADED
@@ -151,7 +151,7 @@ UnicodeMap::UnicodeMap(const char *encodingNameA, GBool unicodeOutA,
kind = unicodeMapResident;
ranges = rangesA;
len = lenA;
- eMaps = NULL;
+ eMaps = nullptr;
eMapsLen = 0;
refCnt = 1;
#ifdef MULTITHREADED
@@ -165,7 +165,7 @@ UnicodeMap::UnicodeMap(const char *encodingNameA, GBool unicodeOutA,
unicodeOut = unicodeOutA;
kind = unicodeMapFunc;
func = funcA;
- eMaps = NULL;
+ eMaps = nullptr;
eMapsLen = 0;
refCnt = 1;
#ifdef MULTITHREADED
@@ -268,7 +268,7 @@ UnicodeMapCache::UnicodeMapCache() {
int i;
for (i = 0; i < unicodeMapCacheSize; ++i) {
- cache[i] = NULL;
+ cache[i] = nullptr;
}
}
@@ -312,5 +312,5 @@ UnicodeMap *UnicodeMapCache::getUnicodeMap(GooString *encodingName) {
map->incRefCnt();
return map;
}
- return NULL;
+ return nullptr;
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.h b/Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.h
index 46b4c0f95ed..f3444aa5d43 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/UnicodeMap.h
@@ -16,6 +16,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2017 Adrian Johnson <ajohnson@redneon.com>
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -76,6 +77,9 @@ public:
~UnicodeMap();
+ UnicodeMap(const UnicodeMap &) = delete;
+ UnicodeMap& operator=(const UnicodeMap &) = delete;
+
void incRefCnt();
void decRefCnt();
@@ -123,6 +127,9 @@ public:
UnicodeMapCache();
~UnicodeMapCache();
+ UnicodeMapCache(const UnicodeMapCache &) = delete;
+ UnicodeMapCache& operator=(const UnicodeMapCache &) = delete;
+
// Get the UnicodeMap for <encodingName>. Increments its reference
// count; there will be one reference for the cache plus one for the
// caller of this function. Returns NULL on failure.
diff --git a/Build/source/libs/poppler/poppler-src/poppler/UnicodeMapFuncs.cc b/Build/source/libs/poppler/poppler-src/poppler/UnicodeMapFuncs.cc
new file mode 100644
index 00000000000..3eb82d501e8
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-src/poppler/UnicodeMapFuncs.cc
@@ -0,0 +1,88 @@
+//========================================================================
+//
+// UnicodeMapFuncs.cc
+//
+// Copyright 2001-2003 Glyph & Cog, LLC
+//
+//========================================================================
+
+//========================================================================
+//
+// Modified under the Poppler project - http://poppler.freedesktop.org
+//
+// All changes made under the Poppler project to this file are licensed
+// under GPL version 2 or later
+//
+// Copyright (C) 2008 Koji Otani <sho@bbr.jp>
+// Copyright (C) 2017 Adrian Johnson <ajohnson@redneon.com>
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
+//
+// To see a description of the changes please see the Changelog file that
+// came with your tarball or type make ChangeLog if you are building from git
+//
+//========================================================================
+
+#include "UnicodeMapFuncs.h"
+
+int mapUTF8(Unicode u, char *buf, int bufSize) {
+ if (u <= 0x0000007f) {
+ if (bufSize < 1) {
+ return 0;
+ }
+ buf[0] = (char)u;
+ return 1;
+ } else if (u <= 0x000007ff) {
+ if (bufSize < 2) {
+ return 0;
+ }
+ buf[0] = (char)(0xc0 + (u >> 6));
+ buf[1] = (char)(0x80 + (u & 0x3f));
+ return 2;
+ } else if (u <= 0x0000ffff) {
+ if (bufSize < 3) {
+ return 0;
+ }
+ buf[0] = (char)(0xe0 + (u >> 12));
+ buf[1] = (char)(0x80 + ((u >> 6) & 0x3f));
+ buf[2] = (char)(0x80 + (u & 0x3f));
+ return 3;
+ } else if (u <= 0x0010ffff) {
+ if (bufSize < 4) {
+ return 0;
+ }
+ buf[0] = (char)(0xf0 + (u >> 18));
+ buf[1] = (char)(0x80 + ((u >> 12) & 0x3f));
+ buf[2] = (char)(0x80 + ((u >> 6) & 0x3f));
+ buf[3] = (char)(0x80 + (u & 0x3f));
+ return 4;
+ } else {
+ return 0;
+ }
+}
+
+int mapUTF16(Unicode u, char *buf, int bufSize) {
+ if (u <= 0xffff) {
+ if (bufSize < 2) {
+ return 0;
+ }
+ buf[0] = (char)((u >> 8) & 0xff);
+ buf[1] = (char)(u & 0xff);
+ return 2;
+ } else if (u < 0x110000) {
+ Unicode uu;
+
+ /* using surrogate pair */
+ if (bufSize < 4) {
+ return 0;
+ }
+ uu = ((u - 0x10000) >> 10) + 0xd800;
+ buf[0] = (char)((uu >> 8) & 0xff);
+ buf[1] = (char)(uu & 0xff);
+ uu = (u & 0x3ff)+0xdc00;
+ buf[2] = (char)((uu >> 8) & 0xff);
+ buf[3] = (char)(uu & 0xff);
+ return 4;
+ } else {
+ return 0;
+ }
+}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/UnicodeMapFuncs.h b/Build/source/libs/poppler/poppler-src/poppler/UnicodeMapFuncs.h
index b89ee6ebecc..613363967f1 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/UnicodeMapFuncs.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/UnicodeMapFuncs.h
@@ -15,71 +15,15 @@
//
// Copyright (C) 2008 Koji Otani <sho@bbr.jp>
// Copyright (C) 2017 Adrian Johnson <ajohnson@redneon.com>
+// Copyright (C) 2018 Albert Astals Cid <aacid@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
//
//========================================================================
-static int mapUTF8(Unicode u, char *buf, int bufSize) {
- if (u <= 0x0000007f) {
- if (bufSize < 1) {
- return 0;
- }
- buf[0] = (char)u;
- return 1;
- } else if (u <= 0x000007ff) {
- if (bufSize < 2) {
- return 0;
- }
- buf[0] = (char)(0xc0 + (u >> 6));
- buf[1] = (char)(0x80 + (u & 0x3f));
- return 2;
- } else if (u <= 0x0000ffff) {
- if (bufSize < 3) {
- return 0;
- }
- buf[0] = (char)(0xe0 + (u >> 12));
- buf[1] = (char)(0x80 + ((u >> 6) & 0x3f));
- buf[2] = (char)(0x80 + (u & 0x3f));
- return 3;
- } else if (u <= 0x0010ffff) {
- if (bufSize < 4) {
- return 0;
- }
- buf[0] = (char)(0xf0 + (u >> 18));
- buf[1] = (char)(0x80 + ((u >> 12) & 0x3f));
- buf[2] = (char)(0x80 + ((u >> 6) & 0x3f));
- buf[3] = (char)(0x80 + (u & 0x3f));
- return 4;
- } else {
- return 0;
- }
-}
+#include "UTF.h"
-static int mapUTF16(Unicode u, char *buf, int bufSize) {
- if (u <= 0xffff) {
- if (bufSize < 2) {
- return 0;
- }
- buf[0] = (char)((u >> 8) & 0xff);
- buf[1] = (char)(u & 0xff);
- return 2;
- } else if (u < 0x110000) {
- Unicode uu;
+int mapUTF8(Unicode u, char *buf, int bufSize);
- /* using surrogate pair */
- if (bufSize < 4) {
- return 0;
- }
- uu = ((u - 0x10000) >> 10) + 0xd800;
- buf[0] = (char)((uu >> 8) & 0xff);
- buf[1] = (char)(uu & 0xff);
- uu = (u & 0x3ff)+0xdc00;
- buf[2] = (char)((uu >> 8) & 0xff);
- buf[3] = (char)(uu & 0xff);
- return 4;
- } else {
- return 0;
- }
-}
+int mapUTF16(Unicode u, char *buf, int bufSize);
diff --git a/Build/source/libs/poppler/poppler-src/poppler/UnicodeTypeTable.cc b/Build/source/libs/poppler/poppler-src/poppler/UnicodeTypeTable.cc
index cd423c9f585..2d1bd7680b9 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/UnicodeTypeTable.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/UnicodeTypeTable.cc
@@ -40,14 +40,14 @@ struct UnicodeCaseTableVector {
static const UnicodeMapTableEntry typeTable[256] = {
{ "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN###NNNNN################NNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN#N####NNNNLNNNNN####NLNNN#LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL", 'X' },
- { NULL, 'L' },
+ { nullptr, 'L' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLNNNNNNNNNNNNNNLLNNNNNNNNNNNNNNLLLLLNNNNNNNNNLNNNNNNNNNNNNNNNNN", 'X' },
{ "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLNNNNNNNNNNNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLL", 'X' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRNRNNRNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", 'X' },
{ "RRRR#########RNNNNNNNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNNNNNNNN####################RRRNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNRNNNNNNNRRNNNNNNNRR##########RRRRRR", 'X' },
{ "RRRRRRRRRRRRRRNNRNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNNNNNNNNNNNNNNNNNNNNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNNNNNNNNNNRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
- { NULL, 'N' },
+ { nullptr, 'N' },
{ "NNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLNNNNNNNNLLLLNLLLNNNNLLLLLLLLLLLLLNNLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLNNNNLLLLLLLLNLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLL##LLLLLLLNNNNN", 'X' },
{ "NNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLNNNNNNNNLLLLNLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLL##NNNNNNNNNNNNNN", 'X' },
{ "NNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLNLNNNLLLLLLLLLNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNN#NLLLLL", 'X' },
@@ -56,242 +56,242 @@ static const UnicodeMapTableEntry typeTable[256] = {
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLNNNNNNN#####LLLLLLLNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLNNNNNNNNNLLLLLLLLLLNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLNLNLNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNLNNNNNLNNLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNLNNNNNNLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
{ "LLLLLLLLLLLLLLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNLLLLLLLLNLLNNNNNNNNNNNLLLLLLL#LNLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNN", 'X' },
{ "NNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLNNNNNLLLLLLNLLLLLLNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLNNNLLLLLLLLLLLNNNLLLLLLLLLLLLNNNNLLLLLLLLLLLLLNNNLLLLLLLLLLLLLNNN", 'X' },
{ "NNNNNNNNNNNNNNLRNNNNNNNNNNNNNNNNNNNNNNNNNNLRNLRN#####NNNNNNNNNNNNNNN#NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN#L##########NNNL############NNN###################################NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
{ "NNLNNNNLNNLLLLLLLLLLNLNNNLLLLLNNNNNNLNLNLNLLLL#LLLNLLLLLLLNNLLLLNNNNNLLLLLNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
{ "NNNNNNNNNNNNNNNNNN##NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
{ "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
{ "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN####################LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNN", 'X' },
- { NULL, 'N' },
- { NULL, 'N' },
- { NULL, 'N' },
- { NULL, 'L' },
- { NULL, 'N' },
- { NULL, 'N' },
- { NULL, 'N' },
- { NULL, 'N' },
- { NULL, 'N' },
- { NULL, 'N' },
- { NULL, 'N' },
+ { nullptr, 'N' },
+ { nullptr, 'N' },
+ { nullptr, 'N' },
+ { nullptr, 'L' },
+ { nullptr, 'N' },
+ { nullptr, 'N' },
+ { nullptr, 'N' },
+ { nullptr, 'N' },
+ { nullptr, 'N' },
+ { nullptr, 'N' },
+ { nullptr, 'N' },
{ "NNNNNLLLNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLNNNNNNNLLLLLNNLLLLLNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLL", 'X' },
- { NULL, 'L' },
+ { nullptr, 'L' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNLLLLLLLLLLLLNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN", 'X' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 'X' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL", 'X' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
- { NULL, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
+ { nullptr, 'L' },
{ "LLLLLLLLLLLLLLLLLLLLLLLLRRRRRRNRRRRRRRRRR#RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR", 'X' },
- { NULL, 'R' },
+ { nullptr, 'R' },
{ "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNN", 'X' },
{ "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN#N#NN#NNNNNNNNN#NN##NNNNN##NRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRNNN", 'X' },
{ "NNN###NNNNN################NNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL#####NNN##NNNNNNNNNNNNNNNNNNNNNNNLL", 'X' }
@@ -678,255 +678,255 @@ static const UnicodeCaseTableVector *caseTable[256] = {
&caseTable03,
&caseTable04,
&caseTable05,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
&caseTable1e,
&caseTable1f,
- NULL,
+ nullptr,
&caseTable21,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
&caseTable24,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
+ nullptr,
&caseTableff
};
@@ -1143,13 +1143,13 @@ Unicode *unicodeNormalizeNFKC(Unicode *in, int len,
int *out_len, int **indices,
GBool reverseRTL) {
Unicode *out;
- int i, o, *classes, *idx = NULL;
+ int i, o, *classes, *idx = nullptr;
for (i = 0, o = 0; i < len; ++i) {
if (HANGUL_IS_L(in[i]) || HANGUL_IS_SYLLABLE(in[i])) {
o += 1;
} else
- o += decomp_compat(in[i], NULL);
+ o += decomp_compat(in[i], nullptr);
}
out = (Unicode *) gmallocn(o, sizeof(Unicode));
diff --git a/Build/source/libs/poppler/poppler-src/poppler/XRef.cc b/Build/source/libs/poppler/poppler-src/poppler/XRef.cc
index f04a31fc1ed..5d3b98ffaec 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/XRef.cc
+++ b/Build/source/libs/poppler/poppler-src/poppler/XRef.cc
@@ -15,7 +15,7 @@
//
// Copyright (C) 2005 Dan Sheridan <dan.sheridan@postman.org.uk>
// Copyright (C) 2005 Brad Hards <bradh@frogmouth.net>
-// Copyright (C) 2006, 2008, 2010, 2012-2014, 2016, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006, 2008, 2010, 2012-2014, 2016-2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2007-2008 Julien Rebetez <julienr@svn.gnome.org>
// Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2009, 2010 Ilya Gorenbein <igorenbein@finjan.com>
@@ -95,6 +95,9 @@ public:
~ObjectStream();
+ ObjectStream(const ObjectStream &) = delete;
+ ObjectStream& operator=(const ObjectStream &) = delete;
+
// Return the object number of this object stream.
int getObjStrNum() { return objStrNum; }
@@ -152,8 +155,8 @@ ObjectStream::ObjectStream(XRef *xref, int objStrNumA, int recursion) {
objStrNum = objStrNumA;
nObjects = 0;
- objs = NULL;
- objNums = NULL;
+ objs = nullptr;
+ objNums = nullptr;
ok = gFalse;
objStr = xref->fetch(objStrNum, 0, recursion);
@@ -267,11 +270,11 @@ void XRef::init() {
#endif
ok = gTrue;
errCode = errNone;
- entries = NULL;
+ entries = nullptr;
capacity = 0;
size = 0;
modified = gFalse;
- streamEnds = NULL;
+ streamEnds = nullptr;
streamEndsLen = 0;
objStrs = new PopplerCache(5);
mainXRefEntriesOffset = 0;
@@ -326,7 +329,7 @@ XRef::XRef(BaseStream *strA, Goffset pos, Goffset mainXRefEntriesOffsetA, GBool
// read the xref table
} else {
std::vector<Goffset> followedXRefStm;
- readXRef(&prevXRefOffset, &followedXRefStm, NULL);
+ readXRef(&prevXRefOffset, &followedXRefStm, nullptr);
// if there was a problem with the xref table,
// try to reconstruct it
@@ -418,7 +421,7 @@ XRef *XRef::copy() {
if (xref->reserve(size) == 0) {
error(errSyntaxError, -1, "unable to allocate {0:d} entries", size);
delete xref;
- return NULL;
+ return nullptr;
}
xref->size = size;
for (int i = 0; i < size; ++i) {
@@ -452,7 +455,7 @@ int XRef::reserve(int newSize)
}
void *p = greallocn_checkoverflow(entries, realNewSize, sizeof(XRefEntry));
- if (p == NULL) {
+ if (p == nullptr) {
return 0;
}
@@ -507,8 +510,8 @@ GBool XRef::readXRef(Goffset *pos, std::vector<Goffset> *followedXRefStm, std::v
GBool more;
// start up a parser, parse one token
- parser = new Parser(NULL,
- new Lexer(NULL,
+ parser = new Parser(nullptr,
+ new Lexer(nullptr,
str->makeSubStream(start + *pos, gFalse, 0, Object(objNull))),
gTrue);
obj = parser->getObj(gTrue);
@@ -555,7 +558,7 @@ GBool XRef::readXRefTable(Parser *parser, Goffset *pos, std::vector<Goffset> *fo
GBool more;
Object obj, obj2;
Goffset pos2;
- int first, n, i;
+ int first, n;
while (1) {
obj = parser->getObj(gTrue);
@@ -580,7 +583,7 @@ GBool XRef::readXRefTable(Parser *parser, Goffset *pos, std::vector<Goffset> *fo
goto err0;
}
}
- for (i = first; i < first + n; ++i) {
+ for (int i = first; i < first + n; ++i) {
obj = parser->getObj(gTrue);
if (obj.isInt()) {
entry.offset = obj.getInt();
@@ -624,6 +627,7 @@ GBool XRef::readXRefTable(Parser *parser, Goffset *pos, std::vector<Goffset> *fo
entries[0].obj = std::move(entries[1].obj);
entries[1].offset = -1;
+ entries[1].obj.setToNull();
}
}
}
@@ -866,7 +870,7 @@ GBool XRef::constructXRef(GBool *wasReconstructed, GBool needCatalogDict) {
int streamEndsSize;
char *p;
GBool gotRoot;
- char* token = NULL;
+ char* token = nullptr;
bool oneCycle = true;
int offset = 0;
@@ -874,7 +878,7 @@ GBool XRef::constructXRef(GBool *wasReconstructed, GBool needCatalogDict) {
gfree(entries);
capacity = 0;
size = 0;
- entries = NULL;
+ entries = nullptr;
gotRoot = gFalse;
streamEndsLen = streamEndsSize = 0;
@@ -909,8 +913,8 @@ GBool XRef::constructXRef(GBool *wasReconstructed, GBool needCatalogDict) {
// got trailer dictionary
if (!strncmp(p, "trailer", 7)) {
- parser = new Parser(NULL,
- new Lexer(NULL,
+ parser = new Parser(nullptr,
+ new Lexer(nullptr,
str->makeSubStream(pos + 7, gFalse, 0, Object(objNull))),
gFalse);
Object newTrailerDict = parser->getObj();
@@ -1047,7 +1051,7 @@ void XRef::getEncryptionParameters(Guchar **fileKeyA, CryptAlgorithm *encAlgorit
*keyLengthA = keyLength;
} else {
// null encryption parameters
- *fileKeyA = NULL;
+ *fileKeyA = nullptr;
*encAlgorithmA = cryptRC4;
*keyLengthA = 0;
}
@@ -1167,7 +1171,7 @@ Object XRef::fetch(int num, int gen, int recursion) {
delete parser;
goto err;
}
- Object obj = parser->getObj(gFalse, (encrypted && !e->getFlag(XRefEntry::Unencrypted)) ? fileKey : NULL,
+ Object obj = parser->getObj(gFalse, (encrypted && !e->getFlag(XRefEntry::Unencrypted)) ? fileKey : nullptr,
encAlgorithm, keyLength, num, gen, recursion);
delete parser;
return obj;
@@ -1186,7 +1190,7 @@ Object XRef::fetch(int num, int gen, int recursion) {
goto err;
}
- ObjectStream *objStr = NULL;
+ ObjectStream *objStr = nullptr;
ObjectStreamKey key(e->offset);
PopplerCacheItem *item = objStrs->lookup(key);
if (item) {
@@ -1198,7 +1202,7 @@ Object XRef::fetch(int num, int gen, int recursion) {
objStr = new ObjectStream(this, e->offset, recursion + 1);
if (!objStr->isOk()) {
delete objStr;
- objStr = NULL;
+ objStr = nullptr;
goto err;
} else {
// XRef could be reconstructed in constructor of ObjectStream:
@@ -1534,7 +1538,7 @@ GBool XRef::parseEntry(Goffset offset, XRefEntry *entry)
if (unlikely(entry == nullptr))
return gFalse;
- Parser parser(NULL, new Lexer(NULL,
+ Parser parser(nullptr, new Lexer(nullptr,
str->makeSubStream(offset, gFalse, 20, Object(objNull))), gTrue);
Object obj1, obj2, obj3;
@@ -1575,7 +1579,7 @@ void XRef::readXRefUntil(int untilEntryNum, std::vector<int> *xrefStreamObjsNum)
}
if (followed) {
error(errSyntaxError, -1, "Circular XRef");
- if (!(ok = constructXRef(NULL))) {
+ if (!(ok = constructXRef(nullptr))) {
errCode = errDamaged;
}
break;
@@ -1718,7 +1722,6 @@ void XRef::scanSpecialFlags() {
}
// Mark objects referred from the Encrypt dict as Unencrypted
- Object obj = trailerDict.dictLookupNF("Encrypt");
markUnencrypted();
}
diff --git a/Build/source/libs/poppler/poppler-src/poppler/XRef.h b/Build/source/libs/poppler/poppler-src/poppler/XRef.h
index 9306a99b9e2..686b3eb7cd9 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/XRef.h
+++ b/Build/source/libs/poppler/poppler-src/poppler/XRef.h
@@ -14,7 +14,7 @@
// under GPL version 2 or later
//
// Copyright (C) 2005 Brad Hards <bradh@frogmouth.net>
-// Copyright (C) 2006, 2008, 2010-2013, 2017 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006, 2008, 2010-2013, 2017, 2018 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2007-2008 Julien Rebetez <julienr@svn.gnome.org>
// Copyright (C) 2007 Carlos Garcia Campos <carlosgc@gnome.org>
// Copyright (C) 2010 Ilya Gorenbein <igorenbein@finjan.com>
@@ -104,6 +104,9 @@ public:
// Destructor.
~XRef();
+ XRef(const XRef &) = delete;
+ XRef& operator=(const XRef &) = delete;
+
// Copy xref but with new base stream!
XRef *copy();
@@ -253,9 +256,13 @@ private:
class XRefWriter {
public:
+ XRefWriter() = default;
virtual void startSection(int first, int count) = 0;
virtual void writeEntry(Goffset offset, int gen, XRefEntryType type) = 0;
virtual ~XRefWriter() {};
+
+ XRefWriter(const XRefWriter &) = delete;
+ XRefWriter& operator=(const XRefWriter &other) = delete;
};
// XRefWriter subclass that writes a XRef table
diff --git a/Build/source/libs/poppler/poppler-src/poppler/poppler-config.h.cmake b/Build/source/libs/poppler/poppler-src/poppler/poppler-config.h.cmake
index 3a13e811554..f6a6c27ff6b 100644
--- a/Build/source/libs/poppler/poppler-src/poppler/poppler-config.h.cmake
+++ b/Build/source/libs/poppler/poppler-src/poppler/poppler-config.h.cmake
@@ -129,7 +129,7 @@
//------------------------------------------------------------------------
// copyright notice
-#define popplerCopyright "Copyright 2005-2017 The Poppler Developers - http://poppler.freedesktop.org"
+#define popplerCopyright "Copyright 2005-2018 The Poppler Developers - http://poppler.freedesktop.org"
#define xpdfCopyright "Copyright 1996-2011 Glyph & Cog, LLC"
//------------------------------------------------------------------------
diff --git a/Build/source/libs/poppler/version.ac b/Build/source/libs/poppler/version.ac
index 679a2251748..eb247b919ef 100644
--- a/Build/source/libs/poppler/version.ac
+++ b/Build/source/libs/poppler/version.ac
@@ -9,4 +9,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current poppler version
-m4_define([poppler_version], [0.62.0])
+m4_define([poppler_version], [0.63.0])