summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/libs/README2
-rw-r--r--Build/source/libs/cairo/ChangeLog5
-rw-r--r--Build/source/libs/cairo/README4
-rw-r--r--Build/source/libs/cairo/TLpatches/ChangeLog4
-rw-r--r--Build/source/libs/cairo/TLpatches/TL-Changes4
-rw-r--r--Build/source/libs/cairo/cairo-src/NEWS43
-rwxr-xr-xBuild/source/libs/cairo/cairo-src/autogen.sh2
-rw-r--r--Build/source/libs/cairo/cairo-src/build/aclocal.gtk-doc.m439
-rw-r--r--Build/source/libs/cairo/cairo-src/build/configure.ac.system8
-rw-r--r--Build/source/libs/cairo/cairo-src/build/gtk-doc.m488
-rw-r--r--Build/source/libs/cairo/cairo-src/cairo-version.h2
-rw-r--r--Build/source/libs/cairo/cairo-src/config.h.in3
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-bentley-ottmann-rectangular.c8
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-cff-subset.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-fixed-private.h2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-ft-font.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-output-stream.c12
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-boxes.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-polygon.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-tristrip.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-path-stroke.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-pdf-surface.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-png.c17
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-ps-surface.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-scaled-font-subsets.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c7
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-svg-surface.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-toy-font-face.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c29
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-type1-fallback.c2
-rw-r--r--Build/source/libs/cairo/cairo-src/src/cairo-type1-subset.c2
-rwxr-xr-xBuild/source/libs/cairo/configure20
-rw-r--r--Build/source/libs/cairo/version.ac2
33 files changed, 233 insertions, 94 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README
index 2aa2addb967..421d43486d3 100644
--- a/Build/source/libs/README
+++ b/Build/source/libs/README
@@ -9,7 +9,7 @@ bypassing or using the original one.
See also comments in ../texk/README.
-cairo 1.14.10 - checked 20jun17
+cairo 1.14.12 - checked 07dec17
http://cairographics.org/releases/
freetype2 2.8.1 - checked 16sep17
diff --git a/Build/source/libs/cairo/ChangeLog b/Build/source/libs/cairo/ChangeLog
index c9ca2d7db28..fce379febab 100644
--- a/Build/source/libs/cairo/ChangeLog
+++ b/Build/source/libs/cairo/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-07 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Import cairo-1.14.12.
+ * version.ac: Adapted.
+
2017-06-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
Import cairo-1.14.10.
diff --git a/Build/source/libs/cairo/README b/Build/source/libs/cairo/README
index aa562e334cb..297acbcd9be 100644
--- a/Build/source/libs/cairo/README
+++ b/Build/source/libs/cairo/README
@@ -1,4 +1,4 @@
- Building cairo-1.14.10 as part of the TL tree
+ Building cairo-1.14.12 as part of the TL tree
============================================
This directory libs/cairo/ uses a proxy Makefile.am to build the cairo
@@ -12,4 +12,4 @@ been translated into equivalent test in libs/cairo/configure.ac.
2012-11-10 Taco Hoekwater <taco@metatex.org>
2013-04-15 Peter Breitenlohner <peb@mppmu.mpg.de>
-2016-12-09 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+2017-12-07 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
diff --git a/Build/source/libs/cairo/TLpatches/ChangeLog b/Build/source/libs/cairo/TLpatches/ChangeLog
index 9ff71139b77..b8ee20cf6b0 100644
--- a/Build/source/libs/cairo/TLpatches/ChangeLog
+++ b/Build/source/libs/cairo/TLpatches/ChangeLog
@@ -1,3 +1,7 @@
+2017-12-07 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ Import cairo-1.14.12.
+
2017-06-20 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
Import cairo-1.14.10.
diff --git a/Build/source/libs/cairo/TLpatches/TL-Changes b/Build/source/libs/cairo/TLpatches/TL-Changes
index d7f402d25bd..94ffe89d6ac 100644
--- a/Build/source/libs/cairo/TLpatches/TL-Changes
+++ b/Build/source/libs/cairo/TLpatches/TL-Changes
@@ -1,5 +1,5 @@
-Changes applied to the cairo-1.14.10/ tree as obtained from:
- http://cairographics.org/releases/cairo-1.14.10.tar.xz
+Changes applied to the cairo-1.14.12/ tree as obtained from:
+ http://cairographics.org/releases/cairo-1.14.12.tar.xz
Removed:
Makefile.in
diff --git a/Build/source/libs/cairo/cairo-src/NEWS b/Build/source/libs/cairo/cairo-src/NEWS
index 16381fbb01d..c0b5db5b1a6 100644
--- a/Build/source/libs/cairo/cairo-src/NEWS
+++ b/Build/source/libs/cairo/cairo-src/NEWS
@@ -1,3 +1,46 @@
+Release 1.14.12 (2017-06-13 Bryce Harrington <bryce@osg.samsung.com>)
+========================================================================
+Another bugfix release rolling up backported fixes for the past half year.
+
+For a complete log of changes since 1.14.10, please see:
+
+ http://cairographics.org/releases/ChangeLog.cairo-1.14.12
+
+
+Features
+--------
+None
+
+API Changes
+-----------
+None
+
+Dependency Changes
+------------------
+None
+
+Performance Optimizations
+-------------------------
+None
+
+Bug Fixes
+---------
+* Fix assertion hit with PDFs using Type 4 fonts rendered with user
+ fonts, due to error when destroying glyph page.
+ (Bug #103335)
+* Fix build error with util/font-view
+* Fix handling of truetype fonts with excessively long font names
+ (Bug #103249)
+* Fix falling back to system font with PDFs using certain embedded
+ fonts, due to truncated font names.
+ (Bug #103249)
+* Fix sigabrt printing documents with fonts lacking the mandatory .nodef
+ glyph.
+ (Bug #102922)
+* Fix undefined-behavior with integer math.
+* Fix various warnings and typos
+
+
Release 1.14.10 (2017-06-13 Bryce Harrington <bryce@osg.samsung.com>)
========================================================================
Bugfix release rolling up backported fixes for the past half year.
diff --git a/Build/source/libs/cairo/cairo-src/autogen.sh b/Build/source/libs/cairo/cairo-src/autogen.sh
index 4d113f8be5f..4b10251db94 100755
--- a/Build/source/libs/cairo/cairo-src/autogen.sh
+++ b/Build/source/libs/cairo/cairo-src/autogen.sh
@@ -9,7 +9,7 @@ cd $srcdir
AUTORECONF=`which autoreconf`
if test -z $AUTORECONF; then
- echo "*** No autoreconf found, please intall it ***"
+ echo "*** No autoreconf found, please install it ***"
exit 1
fi
diff --git a/Build/source/libs/cairo/cairo-src/build/aclocal.gtk-doc.m4 b/Build/source/libs/cairo/cairo-src/build/aclocal.gtk-doc.m4
deleted file mode 100644
index bfdfa1da69a..00000000000
--- a/Build/source/libs/cairo/cairo-src/build/aclocal.gtk-doc.m4
+++ /dev/null
@@ -1,39 +0,0 @@
-dnl -*- mode: autoconf -*-
-
-# serial 1
-
-dnl Usage:
-dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
-AC_DEFUN([GTK_DOC_CHECK],
-[
- AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
- AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
- dnl for overriding the documentation installation directory
- AC_ARG_WITH([html-dir],
- AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
- [with_html_dir='${datadir}/gtk-doc/html'])
- HTML_DIR="$with_html_dir"
- AC_SUBST([HTML_DIR])
-
- dnl enable/disable documentation building
- AC_ARG_ENABLE([gtk-doc],
- AS_HELP_STRING([--enable-gtk-doc],
- [use gtk-doc to build documentation [[default=no]]]),,
- [enable_gtk_doc=no])
-
- if test x$enable_gtk_doc = xyes; then
- ifelse([$1],[],
- [PKG_CHECK_EXISTS([gtk-doc],,
- AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
- [PKG_CHECK_EXISTS([gtk-doc >= $1],,
- AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))])
- fi
-
- AC_MSG_CHECKING([whether to build gtk-doc documentation])
- AC_MSG_RESULT($enable_gtk_doc)
-
- AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,)
-
- AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
- AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
-])
diff --git a/Build/source/libs/cairo/cairo-src/build/configure.ac.system b/Build/source/libs/cairo/cairo-src/build/configure.ac.system
index b9d71c8d783..915b42b4636 100644
--- a/Build/source/libs/cairo/cairo-src/build/configure.ac.system
+++ b/Build/source/libs/cairo/cairo-src/build/configure.ac.system
@@ -110,9 +110,11 @@ dnl check for misc headers and functions
AC_CHECK_HEADERS([libgen.h byteswap.h signal.h setjmp.h fenv.h sys/wait.h])
AC_CHECK_FUNCS([ctime_r drand48 flockfile funlockfile getline link strndup])
-dnl check for win32 headers (this detects mingw as well)
-AC_CHECK_HEADERS([windows.h], have_windows=yes, have_windows=no)
-
+dnl Check if the runtime platform is a native Win32 host.
+AC_COMPILE_IFELSE([[
+#ifdef _WIN32
+ choke me
+#endif]], [have_windows=no], [have_windows=yes])
dnl Possible headers for mkdir
AC_CHECK_HEADERS([sys/stat.h io.h])
diff --git a/Build/source/libs/cairo/cairo-src/build/gtk-doc.m4 b/Build/source/libs/cairo/cairo-src/build/gtk-doc.m4
new file mode 100644
index 00000000000..36755432b50
--- /dev/null
+++ b/Build/source/libs/cairo/cairo-src/build/gtk-doc.m4
@@ -0,0 +1,88 @@
+dnl -*- mode: autoconf -*-
+
+# serial 2
+
+dnl Usage:
+dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
+AC_DEFUN([GTK_DOC_CHECK],
+[
+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+
+ ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
+ AC_MSG_CHECKING([for gtk-doc])
+ PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
+ AC_MSG_RESULT($have_gtk_doc)
+
+ if test "$have_gtk_doc" = "no"; then
+ AC_MSG_WARN([
+ You will not be able to create source packages with 'make dist'
+ because $gtk_doc_requires is not found.])
+ fi
+
+ dnl check for tools we added during development
+ dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that
+ dnl may not be writable by the user. Currently, automake requires that the
+ dnl test name must end in '.test'.
+ dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638
+ AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test])
+ AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check])
+ AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
+ AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
+
+ dnl for overriding the documentation installation directory
+ AC_ARG_WITH([html-dir],
+ AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
+ [with_html_dir='${datadir}/gtk-doc/html'])
+ HTML_DIR="$with_html_dir"
+ AC_SUBST([HTML_DIR])
+
+ dnl enable/disable documentation building
+ AC_ARG_ENABLE([gtk-doc],
+ AS_HELP_STRING([--enable-gtk-doc],
+ [use gtk-doc to build documentation [[default=no]]]),,
+ [enable_gtk_doc=no])
+
+ AC_MSG_CHECKING([whether to build gtk-doc documentation])
+ AC_MSG_RESULT($enable_gtk_doc)
+
+ if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+ AC_MSG_ERROR([
+ You must have $gtk_doc_requires installed to build documentation for
+ $PACKAGE_NAME. Please install gtk-doc or disable building the
+ documentation by adding '--disable-gtk-doc' to '[$]0'.])
+ fi
+
+ dnl don't check for glib if we build glib
+ if test "x$PACKAGE_NAME" != "xglib"; then
+ dnl don't fail if someone does not have glib
+ PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:])
+ fi
+
+ dnl enable/disable output formats
+ AC_ARG_ENABLE([gtk-doc-html],
+ AS_HELP_STRING([--enable-gtk-doc-html],
+ [build documentation in html format [[default=yes]]]),,
+ [enable_gtk_doc_html=yes])
+ AC_ARG_ENABLE([gtk-doc-pdf],
+ AS_HELP_STRING([--enable-gtk-doc-pdf],
+ [build documentation in pdf format [[default=no]]]),,
+ [enable_gtk_doc_pdf=no])
+
+ if test -z "$GTKDOC_MKPDF"; then
+ enable_gtk_doc_pdf=no
+ fi
+
+ if test -z "$AM_DEFAULT_VERBOSITY"; then
+ AM_DEFAULT_VERBOSITY=1
+ fi
+ AC_SUBST([AM_DEFAULT_VERBOSITY])
+
+ AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes])
+ AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
+ AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
+ AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
+ AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
+ AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
+])
diff --git a/Build/source/libs/cairo/cairo-src/cairo-version.h b/Build/source/libs/cairo/cairo-src/cairo-version.h
index dd31ba2f1c5..1f17dd6c6ba 100644
--- a/Build/source/libs/cairo/cairo-src/cairo-version.h
+++ b/Build/source/libs/cairo/cairo-src/cairo-version.h
@@ -3,6 +3,6 @@
#define CAIRO_VERSION_MAJOR 1
#define CAIRO_VERSION_MINOR 14
-#define CAIRO_VERSION_MICRO 10
+#define CAIRO_VERSION_MICRO 12
#endif
diff --git a/Build/source/libs/cairo/cairo-src/config.h.in b/Build/source/libs/cairo/cairo-src/config.h.in
index 22bb980b493..5bb49725685 100644
--- a/Build/source/libs/cairo/cairo-src/config.h.in
+++ b/Build/source/libs/cairo/cairo-src/config.h.in
@@ -258,9 +258,6 @@
/* Define to 1 if you have the `waitpid' function. */
#undef HAVE_WAITPID
-/* Define to 1 if you have the <windows.h> header file. */
-#undef HAVE_WINDOWS_H
-
/* Define to 1 if you have the <X11/extensions/shmproto.h> header file. */
#undef HAVE_X11_EXTENSIONS_SHMPROTO_H
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-bentley-ottmann-rectangular.c b/Build/source/libs/cairo/cairo-src/src/cairo-bentley-ottmann-rectangular.c
index 5541bdc3a2d..cb2e30c8a96 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-bentley-ottmann-rectangular.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-bentley-ottmann-rectangular.c
@@ -593,6 +593,12 @@ sweep_line_insert (sweep_line_t *sweep, rectangle_t *rectangle)
pqueue_push (sweep, rectangle);
}
+static int
+sweep_line_setjmp (sweep_line_t *sweep_line)
+{
+ return setjmp (sweep_line->unwind);
+}
+
static cairo_status_t
_cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles,
int num_rectangles,
@@ -609,7 +615,7 @@ _cairo_bentley_ottmann_tessellate_rectangular (rectangle_t **rectangles,
rectangles, num_rectangles,
fill_rule,
do_traps, container);
- if ((status = setjmp (sweep_line.unwind)))
+ if ((status = sweep_line_setjmp (&sweep_line)))
return status;
rectangle = rectangle_pop_start (&sweep_line);
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-cff-subset.c b/Build/source/libs/cairo/cairo-src/src/cairo-cff-subset.c
index 775ca61befc..c93a8bd8696 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-cff-subset.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-cff-subset.c
@@ -41,7 +41,7 @@
* http://www.adobe.com/content/dam/Adobe/en/devnet/font/pdfs/5177.Type2.pdf
*/
-#define _BSD_SOURCE /* for snprintf(), strdup() */
+#define _DEFAULT_SOURCE /* for snprintf(), strdup() */
#include "cairoint.h"
#include "cairo-array-private.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-fixed-private.h b/Build/source/libs/cairo/cairo-src/src/cairo-fixed-private.h
index 9ff8f750392..5f9ce684c3f 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-fixed-private.h
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-fixed-private.h
@@ -223,7 +223,7 @@ _cairo_fixed_integer_ceil (cairo_fixed_t f)
if (f > 0)
return ((f - 1)>>CAIRO_FIXED_FRAC_BITS) + 1;
else
- return - (-f >> CAIRO_FIXED_FRAC_BITS);
+ return - ((cairo_fixed_t)(-(cairo_fixed_unsigned_t)f) >> CAIRO_FIXED_FRAC_BITS);
}
/* A bunch of explicit 16.16 operators; we need these
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-ft-font.c b/Build/source/libs/cairo/cairo-src/src/cairo-ft-font.c
index a997b93bfe9..462d1e25fd8 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-ft-font.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-ft-font.c
@@ -38,7 +38,7 @@
* Carl Worth <cworth@cworth.org>
*/
-#define _BSD_SOURCE /* for strdup() */
+#define _DEFAULT_SOURCE /* for strdup() */
#include "cairoint.h"
#include "cairo-error-private.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-output-stream.c b/Build/source/libs/cairo/cairo-src/src/cairo-output-stream.c
index 369a59bfba8..05d9a2a005d 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-output-stream.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-output-stream.c
@@ -33,7 +33,7 @@
* Kristian Høgsberg <krh@redhat.com>
*/
-#define _BSD_SOURCE /* for snprintf() */
+#define _DEFAULT_SOURCE /* for snprintf() */
#include "cairoint.h"
#include "cairo-output-stream-private.h"
@@ -490,9 +490,13 @@ _cairo_output_stream_vprintf (cairo_output_stream_t *stream,
single_fmt, va_arg (ap, long int));
}
break;
- case 's':
- snprintf (buffer, sizeof buffer,
- single_fmt, va_arg (ap, const char *));
+ case 's': {
+ /* Write out strings as they may be larger than the buffer. */
+ const char *s = va_arg (ap, const char *);
+ int len = strlen(s);
+ _cairo_output_stream_write (stream, s, len);
+ buffer[0] = 0;
+ }
break;
case 'f':
_cairo_dtostr (buffer, sizeof buffer, va_arg (ap, double), FALSE);
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-boxes.c b/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-boxes.c
index 7f25bf76cf7..fba170c638a 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-boxes.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-boxes.c
@@ -36,7 +36,7 @@
* Chris Wilson <chris@chris-wilson.co.uk>
*/
-#define _BSD_SOURCE /* for hypot() */
+#define _DEFAULT_SOURCE /* for hypot() */
#include "cairoint.h"
#include "cairo-box-inline.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-polygon.c b/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-polygon.c
index e5082bbec68..29050fa7692 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-polygon.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-polygon.c
@@ -37,7 +37,7 @@
* Chris Wilson <chris@chris-wilson.co.uk>
*/
-#define _BSD_SOURCE /* for hypot() */
+#define _DEFAULT_SOURCE /* for hypot() */
#include "cairoint.h"
#include "cairo-box-inline.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-tristrip.c b/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-tristrip.c
index 6ce4131cc0f..3178765608d 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-tristrip.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke-tristrip.c
@@ -37,7 +37,7 @@
* Chris Wilson <chris@chris-wilson.co.uk>
*/
-#define _BSD_SOURCE /* for hypot() */
+#define _DEFAULT_SOURCE /* for hypot() */
#include "cairoint.h"
#include "cairo-box-inline.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke.c b/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke.c
index 4d4ede81361..64cec8f272e 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-path-stroke.c
@@ -36,7 +36,7 @@
* Chris Wilson <chris@chris-wilson.co.uk>
*/
-#define _BSD_SOURCE /* for hypot() */
+#define _DEFAULT_SOURCE /* for hypot() */
#include "cairoint.h"
#include "cairo-box-inline.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-pdf-surface.c b/Build/source/libs/cairo/cairo-src/src/cairo-pdf-surface.c
index ef94e39fd10..fd7dc7d5606 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-pdf-surface.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-pdf-surface.c
@@ -39,7 +39,7 @@
* Adrian Johnson <ajohnson@redneon.com>
*/
-#define _BSD_SOURCE /* for snprintf() */
+#define _DEFAULT_SOURCE /* for snprintf() */
#include "cairoint.h"
#include "cairo-pdf.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-png.c b/Build/source/libs/cairo/cairo-src/src/cairo-png.c
index 068617d588d..e64b14a5fc0 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-png.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-png.c
@@ -158,6 +158,14 @@ png_simple_warning_callback (png_structp png,
*/
}
+static int
+png_setjmp (png_struct *png)
+{
+#ifdef PNG_SETJMP_SUPPORTED
+ return setjmp (png_jmpbuf (png));
+#endif
+ return 0;
+}
/* Starting with libpng-1.2.30, we must explicitly specify an output_flush_fn.
* Otherwise, we will segfault if we are writing to a stream. */
@@ -229,10 +237,8 @@ write_png (cairo_surface_t *surface,
goto BAIL4;
}
-#ifdef PNG_SETJMP_SUPPORTED
- if (setjmp (png_jmpbuf (png)))
+ if (png_setjmp (png))
goto BAIL4;
-#endif
png_set_write_fn (png, closure, write_func, png_simple_output_flush_fn);
@@ -571,12 +577,11 @@ read_png (struct png_read_closure_t *png_closure)
png_set_read_fn (png, png_closure, stream_read_func);
status = CAIRO_STATUS_SUCCESS;
-#ifdef PNG_SETJMP_SUPPORTED
- if (setjmp (png_jmpbuf (png))) {
+
+ if (png_setjmp (png)) {
surface = _cairo_surface_create_in_error (status);
goto BAIL;
}
-#endif
png_read_info (png, info);
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-ps-surface.c b/Build/source/libs/cairo/cairo-src/src/cairo-ps-surface.c
index fbec9f2915b..3b66b275d82 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-ps-surface.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-ps-surface.c
@@ -53,7 +53,7 @@
* 2. Using gs to do PS -> PDF and PDF -> PS will always work well.
*/
-#define _BSD_SOURCE /* for ctime_r(), snprintf(), strdup() */
+#define _DEFAULT_SOURCE /* for ctime_r(), snprintf(), strdup() */
#include "cairoint.h"
#include "cairo-ps.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font-subsets.c b/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font-subsets.c
index bf05fbd55d4..a239ec9b33e 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font-subsets.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font-subsets.c
@@ -40,7 +40,7 @@
* Adrian Johnson <ajohnson@redneon.com>
*/
-#define _BSD_SOURCE /* for snprintf(), strdup() */
+#define _DEFAULT_SOURCE /* for snprintf(), strdup() */
#include "cairoint.h"
#include "cairo-error-private.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c b/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c
index a22b36eef19..53a370d3acc 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-scaled-font.c
@@ -2907,6 +2907,7 @@ _cairo_scaled_font_free_last_glyph (cairo_scaled_font_t *scaled_font,
{
cairo_scaled_glyph_page_t *page;
+ assert (scaled_font->cache_frozen);
assert (! cairo_list_is_empty (&scaled_font->glyph_pages));
page = cairo_list_last_entry (&scaled_font->glyph_pages,
cairo_scaled_glyph_page_t,
@@ -2916,6 +2917,9 @@ _cairo_scaled_font_free_last_glyph (cairo_scaled_font_t *scaled_font,
_cairo_scaled_glyph_fini (scaled_font, scaled_glyph);
if (--page->num_glyphs == 0) {
+ _cairo_scaled_font_thaw_cache (scaled_font);
+ CAIRO_MUTEX_LOCK (scaled_font->mutex);
+
CAIRO_MUTEX_LOCK (_cairo_scaled_glyph_page_cache_mutex);
/* Temporarily disconnect callback to avoid recursive locking */
cairo_scaled_glyph_page_cache.entry_destroy = NULL;
@@ -2924,6 +2928,9 @@ _cairo_scaled_font_free_last_glyph (cairo_scaled_font_t *scaled_font,
_cairo_scaled_glyph_page_destroy (scaled_font, page);
cairo_scaled_glyph_page_cache.entry_destroy = _cairo_scaled_glyph_page_pluck;
CAIRO_MUTEX_UNLOCK (_cairo_scaled_glyph_page_cache_mutex);
+
+ CAIRO_MUTEX_UNLOCK (scaled_font->mutex);
+ _cairo_scaled_font_freeze_cache (scaled_font);
}
}
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-svg-surface.c b/Build/source/libs/cairo/cairo-src/src/cairo-svg-surface.c
index 372ef45b86e..d9f4b92652e 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-svg-surface.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-svg-surface.c
@@ -39,7 +39,7 @@
* Carl Worth <cworth@cworth.org>
*/
-#define _BSD_SOURCE /* for snprintf() */
+#define _DEFAULT_SOURCE /* for snprintf() */
#include "cairoint.h"
#include "cairo-svg.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-toy-font-face.c b/Build/source/libs/cairo/cairo-src/src/cairo-toy-font-face.c
index 4fe94ab0919..516f391953f 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-toy-font-face.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-toy-font-face.c
@@ -39,7 +39,7 @@
* Behdad Esfahbod <behdad@behdad.org>
*/
-#define _BSD_SOURCE /* for strdup() */
+#define _DEFAULT_SOURCE /* for strdup() */
#include "cairoint.h"
#include "cairo-error-private.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c b/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c
index e3449a0d13b..b650ebe8678 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-truetype-subset.c
@@ -40,7 +40,7 @@
* http://www.microsoft.com/typography/specs/default.htm
*/
-#define _BSD_SOURCE /* for snprintf(), strdup() */
+#define _DEFAULT_SOURCE /* for snprintf(), strdup() */
#include "cairoint.h"
#include "cairo-array-private.h"
@@ -202,13 +202,17 @@ _cairo_truetype_font_create (cairo_scaled_font_subset_t *scaled_font_subset,
if (unlikely (status))
goto fail1;
- font->glyphs = calloc (font->num_glyphs_in_face + 1, sizeof (subset_glyph_t));
+ /* Add 2: +1 case font does not contain .notdef, and +1 because an extra
+ * entry is required to contain the end location of the last glyph.
+ */
+ font->glyphs = calloc (font->num_glyphs_in_face + 2, sizeof (subset_glyph_t));
if (unlikely (font->glyphs == NULL)) {
status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
goto fail1;
}
- font->parent_to_subset = calloc (font->num_glyphs_in_face, sizeof (int));
+ /* Add 1 in case font does not contain .notdef */
+ font->parent_to_subset = calloc (font->num_glyphs_in_face + 1, sizeof (int));
if (unlikely (font->parent_to_subset == NULL)) {
status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
goto fail2;
@@ -247,7 +251,8 @@ _cairo_truetype_font_create (cairo_scaled_font_subset_t *scaled_font_subset,
scaled_font_subset->subset_id);
}
- font->base.widths = calloc (font->num_glyphs_in_face, sizeof (int));
+ /* Add 1 in case font does not contain .notdef */
+ font->base.widths = calloc (font->num_glyphs_in_face + 1, sizeof (int));
if (unlikely (font->base.widths == NULL)) {
status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
goto fail4;
@@ -1420,6 +1425,12 @@ cleanup:
return status;
}
+/*
+ * Sanity check on font name length as some broken fonts may return very long
+ * strings of garbage. 127 is maximum length of a PS name.
+ */
+#define MAX_FONT_NAME_LENGTH 127
+
static cairo_status_t
find_name (tt_name_t *name, int name_id, int platform, int encoding, int language, char **str_out)
{
@@ -1438,11 +1449,17 @@ find_name (tt_name_t *name, int name_id, int platform, int encoding, int languag
be16_to_cpu (record->encoding) == encoding &&
(language == -1 || be16_to_cpu (record->language) == language)) {
- str = malloc (be16_to_cpu (record->length) + 1);
+ len = be16_to_cpu (record->length);
+ if (platform == 3 && len > MAX_FONT_NAME_LENGTH*2) /* UTF-16 name */
+ break;
+
+ if (len > MAX_FONT_NAME_LENGTH)
+ break;
+
+ str = malloc (len + 1);
if (str == NULL)
return _cairo_error (CAIRO_STATUS_NO_MEMORY);
- len = be16_to_cpu (record->length);
memcpy (str,
((char*)name) + be16_to_cpu (name->strings_offset) + be16_to_cpu (record->offset),
len);
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-type1-fallback.c b/Build/source/libs/cairo/cairo-src/src/cairo-type1-fallback.c
index 4a657413e48..c8e7e908bb6 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-type1-fallback.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-type1-fallback.c
@@ -33,7 +33,7 @@
* Adrian Johnson <ajohnson@redneon.com>
*/
-#define _BSD_SOURCE /* for snprintf(), strdup() */
+#define _DEFAULT_SOURCE /* for snprintf(), strdup() */
#include "cairoint.h"
#include "cairo-array-private.h"
diff --git a/Build/source/libs/cairo/cairo-src/src/cairo-type1-subset.c b/Build/source/libs/cairo/cairo-src/src/cairo-type1-subset.c
index b15663509d3..feac2836f00 100644
--- a/Build/source/libs/cairo/cairo-src/src/cairo-type1-subset.c
+++ b/Build/source/libs/cairo/cairo-src/src/cairo-type1-subset.c
@@ -40,7 +40,7 @@
*/
-#define _BSD_SOURCE /* for snprintf(), strdup() */
+#define _DEFAULT_SOURCE /* for snprintf(), strdup() */
#include "cairoint.h"
#include "cairo-array-private.h"
diff --git a/Build/source/libs/cairo/configure b/Build/source/libs/cairo/configure
index 6333b0dcf91..df02aae03cd 100755
--- a/Build/source/libs/cairo/configure
+++ b/Build/source/libs/cairo/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for cairo (TeX Live) 1.14.10.
+# Generated by GNU Autoconf 2.69 for cairo (TeX Live) 1.14.12.
#
# Report bugs to <tex-k@tug.org>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='cairo (TeX Live)'
PACKAGE_TARNAME='cairo--tex-live-'
-PACKAGE_VERSION='1.14.10'
-PACKAGE_STRING='cairo (TeX Live) 1.14.10'
+PACKAGE_VERSION='1.14.12'
+PACKAGE_STRING='cairo (TeX Live) 1.14.12'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
@@ -1349,7 +1349,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 cairo (TeX Live) 1.14.10 to adapt to many kinds of systems.
+\`configure' configures cairo (TeX Live) 1.14.12 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1420,7 +1420,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of cairo (TeX Live) 1.14.10:";;
+ short | recursive ) echo "Configuration of cairo (TeX Live) 1.14.12:";;
esac
cat <<\_ACEOF
@@ -1523,7 +1523,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-cairo (TeX Live) configure 1.14.10
+cairo (TeX Live) configure 1.14.12
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2129,7 +2129,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 cairo (TeX Live) $as_me 1.14.10, which was
+It was created by cairo (TeX Live) $as_me 1.14.12, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4383,7 +4383,7 @@ fi
# Define the identity of the package.
PACKAGE='cairo--tex-live-'
- VERSION='1.14.10'
+ VERSION='1.14.12'
cat >>confdefs.h <<_ACEOF
@@ -7274,7 +7274,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 cairo (TeX Live) $as_me 1.14.10, which was
+This file was extended by cairo (TeX Live) $as_me 1.14.12, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7340,7 +7340,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="\\
-cairo (TeX Live) config.status 1.14.10
+cairo (TeX Live) config.status 1.14.12
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/libs/cairo/version.ac b/Build/source/libs/cairo/version.ac
index 5d0b041f6be..07c577c5867 100644
--- a/Build/source/libs/cairo/version.ac
+++ b/Build/source/libs/cairo/version.ac
@@ -8,4 +8,4 @@ dnl
dnl --------------------------------------------------------
dnl
dnl m4-include this file to define the current cairo version
-m4_define([cairo_version], [1.14.10])
+m4_define([cairo_version], [1.14.12])