summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2017-04-21 16:22:20 +0200
committerTor Andersson <tor.andersson@artifex.com>2017-04-27 15:12:01 +0200
commit9534243f6849d1938195c1f27adaa5745056f138 (patch)
treebc992482d97560154af0a576d052c78cda6bb4ab
parent78c1264e14804a06c6d03072c8c57820fde4e148 (diff)
downloadmupdf-9534243f6849d1938195c1f27adaa5745056f138.tar.xz
Include required system headers.
-rw-r--r--include/mupdf/fitz/output.h1
-rw-r--r--platform/gl/gl-font.c5
-rw-r--r--platform/gl/gl-input.c2
-rw-r--r--platform/gl/gl-main.c8
-rw-r--r--platform/x11/curl_stream.c4
-rw-r--r--platform/x11/jstest_main.c3
-rw-r--r--platform/x11/pdfapp.c5
-rw-r--r--platform/x11/pdfapp.h2
-rw-r--r--platform/x11/x11_image.c4
-rw-r--r--platform/x11/x11_main.c4
-rw-r--r--scripts/cmapdump.c2
-rw-r--r--source/cbz/mucbz.c3
-rw-r--r--source/cbz/muimg.c2
-rw-r--r--source/cbz/mutiff.c2
-rw-r--r--source/fitz/bbox-device.c2
-rw-r--r--source/fitz/bidi-std.c2
-rw-r--r--source/fitz/bidi.c1
-rw-r--r--source/fitz/bitmap.c2
-rw-r--r--source/fitz/buffer.c3
-rw-r--r--source/fitz/colorspace.c4
-rw-r--r--source/fitz/context.c4
-rw-r--r--source/fitz/crypt-aes.c2
-rw-r--r--source/fitz/crypt-md5.c2
-rw-r--r--source/fitz/crypt-sha2.c2
-rw-r--r--source/fitz/device.c3
-rw-r--r--source/fitz/directory.c8
-rw-r--r--source/fitz/document.c2
-rw-r--r--source/fitz/draw-affine.c4
-rw-r--r--source/fitz/draw-blend.c4
-rw-r--r--source/fitz/draw-device.c7
-rw-r--r--source/fitz/draw-edge.c6
-rw-r--r--source/fitz/draw-glyph.c3
-rw-r--r--source/fitz/draw-mesh.c3
-rw-r--r--source/fitz/draw-paint.c3
-rw-r--r--source/fitz/draw-path.c4
-rw-r--r--source/fitz/draw-scale-simple.c5
-rw-r--r--source/fitz/draw-unpack.c2
-rw-r--r--source/fitz/error.c6
-rw-r--r--source/fitz/filter-basic.c2
-rw-r--r--source/fitz/filter-fax.c3
-rw-r--r--source/fitz/filter-flate.c2
-rw-r--r--source/fitz/filter-leech.c2
-rw-r--r--source/fitz/filter-lzw.c2
-rw-r--r--source/fitz/filter-predict.c3
-rw-r--r--source/fitz/filter-sgi.c7
-rw-r--r--source/fitz/filter-thunder.c4
-rw-r--r--source/fitz/font.c6
-rw-r--r--source/fitz/ftoa.c2
-rw-r--r--source/fitz/geometry.c4
-rw-r--r--source/fitz/glyph-cache-imp.h9
-rw-r--r--source/fitz/glyph.c2
-rw-r--r--source/fitz/halftone.c3
-rw-r--r--source/fitz/harfbuzz.c2
-rw-r--r--source/fitz/hash.c3
-rw-r--r--source/fitz/image.c4
-rw-r--r--source/fitz/list-device.c3
-rw-r--r--source/fitz/load-bmp.c3
-rw-r--r--source/fitz/load-gif.c3
-rw-r--r--source/fitz/load-jpeg.c3
-rw-r--r--source/fitz/load-jpx.c3
-rw-r--r--source/fitz/load-png.c2
-rw-r--r--source/fitz/load-pnm.c3
-rw-r--r--source/fitz/load-tiff.c4
-rw-r--r--source/fitz/memento.c1
-rw-r--r--source/fitz/memory.c4
-rw-r--r--source/fitz/noto.c2
-rw-r--r--source/fitz/output-pcl.c3
-rw-r--r--source/fitz/output-pwg.c3
-rw-r--r--source/fitz/output-tga.c2
-rw-r--r--source/fitz/output.c10
-rw-r--r--source/fitz/path.c3
-rw-r--r--source/fitz/pixmap.c5
-rw-r--r--source/fitz/pool.c2
-rw-r--r--source/fitz/printf.c5
-rw-r--r--source/fitz/shade.c3
-rw-r--r--source/fitz/stext-device.c4
-rw-r--r--source/fitz/stext-paragraph.c5
-rw-r--r--source/fitz/stext-search.c2
-rw-r--r--source/fitz/stream-open.c4
-rw-r--r--source/fitz/stream-prog.c8
-rw-r--r--source/fitz/stream-read.c2
-rw-r--r--source/fitz/string.c6
-rw-r--r--source/fitz/strtod.c2
-rw-r--r--source/fitz/strtof.c4
-rw-r--r--source/fitz/svg-device.c3
-rw-r--r--source/fitz/tempfile.c4
-rw-r--r--source/fitz/text.c2
-rw-r--r--source/fitz/transition.c2
-rw-r--r--source/fitz/tree.c2
-rw-r--r--source/fitz/ucdn.c2
-rw-r--r--source/fitz/untar.c3
-rw-r--r--source/fitz/unzip.c2
-rw-r--r--source/fitz/util.c2
-rw-r--r--source/fitz/writer.c2
-rw-r--r--source/fitz/xml.c3
-rw-r--r--source/fitz/zip.c3
-rw-r--r--source/html/css-apply.c4
-rw-r--r--source/html/css-parse.c2
-rw-r--r--source/html/epub-doc.c3
-rw-r--r--source/html/html-doc.c3
-rw-r--r--source/html/html-font.c2
-rw-r--r--source/html/html-layout.c2
-rw-r--r--source/pdf/pdf-annot-edit.c3
-rw-r--r--source/pdf/pdf-annot.c3
-rw-r--r--source/pdf/pdf-appearance.c4
-rw-r--r--source/pdf/pdf-clean-file.c3
-rw-r--r--source/pdf/pdf-clean.c1
-rw-r--r--source/pdf/pdf-cmap-load.c1
-rw-r--r--source/pdf/pdf-cmap-parse.c3
-rw-r--r--source/pdf/pdf-cmap-table.c3
-rw-r--r--source/pdf/pdf-cmap.c4
-rw-r--r--source/pdf/pdf-colorspace.c3
-rw-r--r--source/pdf/pdf-crypt.c3
-rw-r--r--source/pdf/pdf-device.c1
-rw-r--r--source/pdf/pdf-encoding.c4
-rw-r--r--source/pdf/pdf-field.c3
-rw-r--r--source/pdf/pdf-font.c3
-rw-r--r--source/pdf/pdf-form.c3
-rw-r--r--source/pdf/pdf-function.c12
-rw-r--r--source/pdf/pdf-graft.c1
-rw-r--r--source/pdf/pdf-image.c3
-rw-r--r--source/pdf/pdf-interpret.c4
-rw-r--r--source/pdf/pdf-js.c4
-rw-r--r--source/pdf/pdf-layer.c3
-rw-r--r--source/pdf/pdf-lex.c3
-rw-r--r--source/pdf/pdf-metrics.c3
-rw-r--r--source/pdf/pdf-nametree.c1
-rw-r--r--source/pdf/pdf-object.c5
-rw-r--r--source/pdf/pdf-op-buffer.c1
-rw-r--r--source/pdf/pdf-op-filter.c3
-rw-r--r--source/pdf/pdf-op-run.c4
-rw-r--r--source/pdf/pdf-outline.c1
-rw-r--r--source/pdf/pdf-page.c5
-rw-r--r--source/pdf/pdf-parse.c3
-rw-r--r--source/pdf/pdf-pattern.c1
-rw-r--r--source/pdf/pdf-pkcs7.c3
-rw-r--r--source/pdf/pdf-portfolio.c3
-rw-r--r--source/pdf/pdf-repair.c4
-rw-r--r--source/pdf/pdf-resources.c1
-rw-r--r--source/pdf/pdf-run.c1
-rw-r--r--source/pdf/pdf-shade.c1
-rw-r--r--source/pdf/pdf-store.c3
-rw-r--r--source/pdf/pdf-stream.c3
-rw-r--r--source/pdf/pdf-type3.c1
-rw-r--r--source/pdf/pdf-unicode.c3
-rw-r--r--source/pdf/pdf-write.c8
-rw-r--r--source/pdf/pdf-xobject.c1
-rw-r--r--source/pdf/pdf-xref.c8
-rw-r--r--source/svg/svg-color.c2
-rw-r--r--source/svg/svg-parse.c27
-rw-r--r--source/svg/svg-run.c4
-rw-r--r--source/tools/muconvert.c3
-rw-r--r--source/tools/mudraw.c5
-rw-r--r--source/tools/muraster.c12
-rw-r--r--source/tools/murun.c4
-rw-r--r--source/tools/mutool.c3
-rw-r--r--source/tools/pdfclean.c5
-rw-r--r--source/tools/pdfcreate.c5
-rw-r--r--source/tools/pdfextract.c4
-rw-r--r--source/tools/pdfinfo.c5
-rw-r--r--source/tools/pdfmerge.c4
-rw-r--r--source/tools/pdfpages.c4
-rw-r--r--source/tools/pdfportfolio.c4
-rw-r--r--source/tools/pdfposter.c5
-rw-r--r--source/tools/pdfshow.c4
-rw-r--r--source/xps/xps-common.c3
-rw-r--r--source/xps/xps-doc.c3
-rw-r--r--source/xps/xps-gradient.c5
-rw-r--r--source/xps/xps-image.c2
-rw-r--r--source/xps/xps-link.c3
-rw-r--r--source/xps/xps-outline.c3
-rw-r--r--source/xps/xps-path.c4
-rw-r--r--source/xps/xps-resource.c2
-rw-r--r--source/xps/xps-tile.c3
-rw-r--r--source/xps/xps-zip.c2
175 files changed, 572 insertions, 41 deletions
diff --git a/include/mupdf/fitz/output.h b/include/mupdf/fitz/output.h
index 9dd3de57..fb024960 100644
--- a/include/mupdf/fitz/output.h
+++ b/include/mupdf/fitz/output.h
@@ -187,6 +187,7 @@ static inline void fz_write_data(fz_context *ctx, fz_output *out, const void *da
*/
static inline void fz_write_string(fz_context *ctx, fz_output *out, const char *s)
{
+ extern size_t strlen(const char *s); /* avoid including string.h in public header */
if (out)
out->write(ctx, out->state, s, strlen(s));
}
diff --git a/platform/gl/gl-font.c b/platform/gl/gl-font.c
index 64c26711..efbba42a 100644
--- a/platform/gl/gl-font.c
+++ b/platform/gl/gl-font.c
@@ -14,6 +14,11 @@
#include "gl-app.h"
+#include <string.h>
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+
#define PADDING 1 /* set to 0 to save some space but disallow arbitrary transforms */
#define MAXGLYPHS 4093 /* prime number for hash table goodness */
diff --git a/platform/gl/gl-input.c b/platform/gl/gl-input.c
index 59aa37ac..7ea9bafa 100644
--- a/platform/gl/gl-input.c
+++ b/platform/gl/gl-input.c
@@ -1,5 +1,7 @@
#include "gl-app.h"
+#include <string.h>
+
static void draw_string_part(float x, float y, const char *s, const char *e)
{
int c;
diff --git a/platform/gl/gl-main.c b/platform/gl/gl-main.c
index 1d37a26c..338ed0dc 100644
--- a/platform/gl/gl-main.c
+++ b/platform/gl/gl-main.c
@@ -2,6 +2,14 @@
#include "mupdf/pdf.h" /* for pdf specifics and forms */
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#ifndef _WIN32
+#include <unistd.h> /* for fork and exec */
+#endif
+
enum
{
/* Screen furniture: aggregate size of unusable space from title bars, task bars, window borders, etc */
diff --git a/platform/x11/curl_stream.c b/platform/x11/curl_stream.c
index 5bf87de0..db5a1413 100644
--- a/platform/x11/curl_stream.c
+++ b/platform/x11/curl_stream.c
@@ -1,6 +1,10 @@
/* Simple example fz_stream implementation using curl */
#include "mupdf/fitz.h"
+
+#include <string.h>
+#include <stdlib.h>
+
#include "curl_stream.h"
#define CURL_STATICLIB
diff --git a/platform/x11/jstest_main.c b/platform/x11/jstest_main.c
index 36b32155..bdac8be5 100644
--- a/platform/x11/jstest_main.c
+++ b/platform/x11/jstest_main.c
@@ -1,6 +1,9 @@
#include "pdfapp.h"
+#include <string.h>
#include <ctype.h>
+#include <stdlib.h>
+#include <stdio.h>
/*
A useful bit of bash script to call this is:
diff --git a/platform/x11/pdfapp.c b/platform/x11/pdfapp.c
index 6d2ca473..e3485489 100644
--- a/platform/x11/pdfapp.c
+++ b/platform/x11/pdfapp.c
@@ -1,6 +1,11 @@
#include "pdfapp.h"
#include "curl_stream.h"
+#include <string.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <stdio.h>
+
#define BEYOND_THRESHHOLD 40
#ifndef PATH_MAX
#define PATH_MAX (1024)
diff --git a/platform/x11/pdfapp.h b/platform/x11/pdfapp.h
index 8dd6e6f1..54e99f95 100644
--- a/platform/x11/pdfapp.h
+++ b/platform/x11/pdfapp.h
@@ -4,6 +4,8 @@
#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <time.h>
+
/*
* Utility object for handling a pdf application / view
* Takes care of PDF loading and displaying and navigation,
diff --git a/platform/x11/x11_image.c b/platform/x11/x11_image.c
index 96bd298f..4c10987c 100644
--- a/platform/x11/x11_image.c
+++ b/platform/x11/x11_image.c
@@ -14,6 +14,10 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <sys/ipc.h>
diff --git a/platform/x11/x11_main.c b/platform/x11/x11_main.c
index 421672de..4c96ecc9 100644
--- a/platform/x11/x11_main.c
+++ b/platform/x11/x11_main.c
@@ -7,6 +7,10 @@
#include <X11/keysym.h>
#include <X11/XF86keysym.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
#include <sys/select.h>
#include <sys/time.h>
#include <sys/types.h>
diff --git a/scripts/cmapdump.c b/scripts/cmapdump.c
index e8ed5742..d1bd041d 100644
--- a/scripts/cmapdump.c
+++ b/scripts/cmapdump.c
@@ -9,6 +9,7 @@
#include <stdio.h>
#include <string.h>
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
#include "../source/fitz/context.c"
@@ -76,6 +77,7 @@ main(int argc, char **argv)
}
fprintf(fo, "/* This is an automatically generated file. Do not edit. */\n\n");
+ fprintf(fo, "#include \"mupdf/fitz.h\"\n");
fprintf(fo, "#include \"mupdf/pdf.h\"\n");
for (i = 2; i < argc; i++)
diff --git a/source/cbz/mucbz.c b/source/cbz/mucbz.c
index d5f62aa2..0c3f61e9 100644
--- a/source/cbz/mucbz.c
+++ b/source/cbz/mucbz.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <stdlib.h>
+
#define DPI 72.0f
typedef struct cbz_document_s cbz_document;
diff --git a/source/cbz/muimg.c b/source/cbz/muimg.c
index 088dee22..8d93d881 100644
--- a/source/cbz/muimg.c
+++ b/source/cbz/muimg.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
#define DPI 72.0f
typedef struct img_document_s img_document;
diff --git a/source/cbz/mutiff.c b/source/cbz/mutiff.c
index 06c7a837..82420090 100644
--- a/source/cbz/mutiff.c
+++ b/source/cbz/mutiff.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
typedef struct tiff_document_s tiff_document;
typedef struct tiff_page_s tiff_page;
diff --git a/source/fitz/bbox-device.c b/source/fitz/bbox-device.c
index 26268712..99c46953 100644
--- a/source/fitz/bbox-device.c
+++ b/source/fitz/bbox-device.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <assert.h>
+
#define STACK_SIZE 96
typedef struct fz_bbox_device_s
diff --git a/source/fitz/bidi-std.c b/source/fitz/bidi-std.c
index b56c0a8e..6da91877 100644
--- a/source/fitz/bidi-std.c
+++ b/source/fitz/bidi-std.c
@@ -6,6 +6,8 @@
#include "mupdf/fitz.h"
#include "bidi-imp.h"
+#include <assert.h>
+
#ifndef TRUE
#define TRUE (1)
#endif
diff --git a/source/fitz/bidi.c b/source/fitz/bidi.c
index 8c56f23e..7c9607d9 100644
--- a/source/fitz/bidi.c
+++ b/source/fitz/bidi.c
@@ -37,6 +37,7 @@
#include "mupdf/fitz.h"
#include "mupdf/ucdn.h"
#include "bidi-imp.h" /* standard bidi code interface */
+#include <assert.h>
/*
* Macros...
diff --git a/source/fitz/bitmap.c b/source/fitz/bitmap.c
index 9780b1dd..eefaebd7 100644
--- a/source/fitz/bitmap.c
+++ b/source/fitz/bitmap.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
static const unsigned char pkm[256*8] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
diff --git a/source/fitz/buffer.c b/source/fitz/buffer.c
index d432e810..8212f782 100644
--- a/source/fitz/buffer.c
+++ b/source/fitz/buffer.c
@@ -1,5 +1,8 @@
#include "fitz-imp.h"
+#include <string.h>
+#include <stdarg.h>
+
fz_buffer *
fz_new_buffer(fz_context *ctx, size_t size)
{
diff --git a/source/fitz/colorspace.c b/source/fitz/colorspace.c
index c7385a60..eb24fb04 100644
--- a/source/fitz/colorspace.c
+++ b/source/fitz/colorspace.c
@@ -2,6 +2,10 @@
#include "colorspace-imp.h"
+#include <assert.h>
+#include <math.h>
+#include <string.h>
+
#define SLOWCMYK
void
diff --git a/source/fitz/context.c b/source/fitz/context.c
index f62cd9d7..d0326270 100644
--- a/source/fitz/context.c
+++ b/source/fitz/context.c
@@ -1,5 +1,9 @@
#include "fitz-imp.h"
+#include <assert.h>
+#include <string.h>
+#include <stdio.h>
+
struct fz_id_context_s
{
int refs;
diff --git a/source/fitz/crypt-aes.c b/source/fitz/crypt-aes.c
index 87af5626..6cfca151 100644
--- a/source/fitz/crypt-aes.c
+++ b/source/fitz/crypt-aes.c
@@ -38,6 +38,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
#define aes_context fz_aes
/* AES block cipher implementation from XYSSL */
diff --git a/source/fitz/crypt-md5.c b/source/fitz/crypt-md5.c
index 6826fedd..46925b72 100644
--- a/source/fitz/crypt-md5.c
+++ b/source/fitz/crypt-md5.c
@@ -25,6 +25,8 @@ documentation and/or software.
#include "mupdf/fitz.h"
+#include <string.h>
+
/* Constants for MD5Transform routine */
enum
{
diff --git a/source/fitz/crypt-sha2.c b/source/fitz/crypt-sha2.c
index 20f827fe..27b6c277 100644
--- a/source/fitz/crypt-sha2.c
+++ b/source/fitz/crypt-sha2.c
@@ -11,6 +11,8 @@ SHA-384 and SHA-512 were also taken from Crypto++ and adapted for fitz.
#include "mupdf/fitz.h"
+#include <string.h>
+
static inline int isbigendian(void)
{
static const int one = 1;
diff --git a/source/fitz/device.c b/source/fitz/device.c
index f79c8edf..21f74f65 100644
--- a/source/fitz/device.c
+++ b/source/fitz/device.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "fitz-imp.h"
+#include <string.h>
+
fz_device *
fz_new_device_of_size(fz_context *ctx, int size)
{
diff --git a/source/fitz/directory.c b/source/fitz/directory.c
index 6e2750b9..6e216c94 100644
--- a/source/fitz/directory.c
+++ b/source/fitz/directory.c
@@ -1,5 +1,13 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <errno.h>
+#include <sys/stat.h>
+
+#ifdef _MSC_VER
+#define stat _stat
+#endif
+
typedef struct fz_directory_s fz_directory;
struct fz_directory_s
{
diff --git a/source/fitz/document.c b/source/fitz/document.c
index 8563196f..8f34026a 100644
--- a/source/fitz/document.c
+++ b/source/fitz/document.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
enum
{
FZ_DOCUMENT_HANDLER_MAX = 10
diff --git a/source/fitz/draw-affine.c b/source/fitz/draw-affine.c
index 6e562ada..3b6e7ebd 100644
--- a/source/fitz/draw-affine.c
+++ b/source/fitz/draw-affine.c
@@ -1,6 +1,10 @@
#include "mupdf/fitz.h"
#include "draw-imp.h"
+#include <math.h>
+#include <float.h>
+#include <assert.h>
+
typedef unsigned char byte;
typedef void (paintfn_t)(byte * restrict dp, int da, const byte * restrict sp, int sw, int sh, int ss, int sa, int u, int v, int fa, int fb, int w, int n, int alpha, const byte * restrict color, byte * restrict hp);
diff --git a/source/fitz/draw-blend.c b/source/fitz/draw-blend.c
index e8d71932..f4a9fe96 100644
--- a/source/fitz/draw-blend.c
+++ b/source/fitz/draw-blend.c
@@ -1,6 +1,10 @@
#include "mupdf/fitz.h"
#include "draw-imp.h"
+#include <string.h>
+#include <math.h>
+#include <assert.h>
+
/* PDF 1.4 blend modes. These are slow. */
typedef unsigned char byte;
diff --git a/source/fitz/draw-device.c b/source/fitz/draw-device.c
index 63ea7a03..f4425558 100644
--- a/source/fitz/draw-device.c
+++ b/source/fitz/draw-device.c
@@ -2,6 +2,10 @@
#include "glyph-cache-imp.h"
#include "draw-imp.h"
+#include <string.h>
+#include <assert.h>
+#include <math.h>
+
#define STACK_SIZE 96
/* Enable the following to attempt to support knockout and/or isolated
@@ -50,6 +54,9 @@ struct fz_draw_device_s
};
#ifdef DUMP_GROUP_BLENDS
+
+#include <stdio.h>
+
static int group_dump_count = 0;
static void fz_dump_blend(fz_context *ctx, fz_pixmap *pix, const char *s)
diff --git a/source/fitz/draw-edge.c b/source/fitz/draw-edge.c
index bffb86d3..cb641b21 100644
--- a/source/fitz/draw-edge.c
+++ b/source/fitz/draw-edge.c
@@ -1,6 +1,12 @@
#include "mupdf/fitz.h"
#include "draw-imp.h"
+#include <string.h>
+#include <math.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <assert.h>
+
#define BBOX_MIN -(1<<20)
#define BBOX_MAX (1<<20)
diff --git a/source/fitz/draw-glyph.c b/source/fitz/draw-glyph.c
index ffe0d44b..7a6b9126 100644
--- a/source/fitz/draw-glyph.c
+++ b/source/fitz/draw-glyph.c
@@ -2,6 +2,9 @@
#include "draw-imp.h"
#include "glyph-cache-imp.h"
+#include <string.h>
+#include <math.h>
+
#define MAX_GLYPH_SIZE 256
#define MAX_CACHE_SIZE (1024*1024)
diff --git a/source/fitz/draw-mesh.c b/source/fitz/draw-mesh.c
index 233a2108..846e6bbc 100644
--- a/source/fitz/draw-mesh.c
+++ b/source/fitz/draw-mesh.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "draw-imp.h"
+#include <assert.h>
+#include <math.h>
+
enum { MAXN = 2 + FZ_MAX_COLORS };
static void paint_scan(fz_pixmap *restrict pix, int y, int fx0, int fx1, int cx0, int cx1, const int *restrict v0, const int *restrict v1, int n)
diff --git a/source/fitz/draw-paint.c b/source/fitz/draw-paint.c
index 2ec7d7d9..4d5ed9d1 100644
--- a/source/fitz/draw-paint.c
+++ b/source/fitz/draw-paint.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "draw-imp.h"
+#include <string.h>
+#include <assert.h>
+
/*
The functions in this file implement various flavours of Porter-Duff blending.
diff --git a/source/fitz/draw-path.c b/source/fitz/draw-path.c
index b339a92a..0dec60b8 100644
--- a/source/fitz/draw-path.c
+++ b/source/fitz/draw-path.c
@@ -1,6 +1,10 @@
#include "mupdf/fitz.h"
#include "draw-imp.h"
+#include <math.h>
+#include <float.h>
+#include <assert.h>
+
#define MAX_DEPTH 8
static void
diff --git a/source/fitz/draw-scale-simple.c b/source/fitz/draw-scale-simple.c
index 1d590922..16605079 100644
--- a/source/fitz/draw-scale-simple.c
+++ b/source/fitz/draw-scale-simple.c
@@ -13,6 +13,11 @@ intermediate results rather than ints.
#include "mupdf/fitz.h"
#include "draw-imp.h"
+#include <math.h>
+#include <string.h>
+#include <assert.h>
+#include <limits.h>
+
/* Do we special case handling of single pixel high/wide images? The
* 'purest' handling is given by not special casing them, but certain
* files that use such images 'stack' them to give full images. Not
diff --git a/source/fitz/draw-unpack.c b/source/fitz/draw-unpack.c
index 414e68b7..e3c4c5b2 100644
--- a/source/fitz/draw-unpack.c
+++ b/source/fitz/draw-unpack.c
@@ -1,6 +1,8 @@
#include "mupdf/fitz.h"
#include "draw-imp.h"
+#include <string.h>
+
/* Unpack image samples and optionally pad pixels with opaque alpha */
#define get1(buf,x) ((buf[x >> 3] >> ( 7 - (x & 7) ) ) & 1 )
diff --git a/source/fitz/error.c b/source/fitz/error.c
index ac54e010..9c52d204 100644
--- a/source/fitz/error.c
+++ b/source/fitz/error.c
@@ -1,5 +1,11 @@
#include "mupdf/fitz.h"
+#include <assert.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
#ifdef _MSC_VER
#ifndef NDEBUG
#define USE_OUTPUT_DEBUG_STRING
diff --git a/source/fitz/filter-basic.c b/source/fitz/filter-basic.c
index e3fa1ffa..8f3b18ac 100644
--- a/source/fitz/filter-basic.c
+++ b/source/fitz/filter-basic.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
/* Pretend we have a filter that just copies data forever */
fz_stream *
diff --git a/source/fitz/filter-fax.c b/source/fitz/filter-fax.c
index 74297936..a4ca8ab5 100644
--- a/source/fitz/filter-fax.c
+++ b/source/fitz/filter-fax.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <limits.h>
+
/* Fax G3/G4 decoder */
/* TODO: uncompressed */
diff --git a/source/fitz/filter-flate.c b/source/fitz/filter-flate.c
index 562c9546..6154041b 100644
--- a/source/fitz/filter-flate.c
+++ b/source/fitz/filter-flate.c
@@ -2,6 +2,8 @@
#include <zlib.h>
+#include <string.h>
+
typedef struct fz_flate_s fz_flate;
struct fz_flate_s
diff --git a/source/fitz/filter-leech.c b/source/fitz/filter-leech.c
index b6d139e2..cc98b972 100644
--- a/source/fitz/filter-leech.c
+++ b/source/fitz/filter-leech.c
@@ -2,6 +2,8 @@
#include <zlib.h>
+#include <string.h>
+
typedef struct fz_leech_s fz_leech;
struct fz_leech_s
diff --git a/source/fitz/filter-lzw.c b/source/fitz/filter-lzw.c
index d7b97407..a7d7d430 100644
--- a/source/fitz/filter-lzw.c
+++ b/source/fitz/filter-lzw.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <assert.h>
+
/* TODO: error checking */
#define LZW_CLEAR(lzw) (1 << ((lzw)->min_bits - 1))
diff --git a/source/fitz/filter-predict.c b/source/fitz/filter-predict.c
index 02475c41..d0b2717c 100644
--- a/source/fitz/filter-predict.c
+++ b/source/fitz/filter-predict.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <limits.h>
+
/* TODO: check if this works with 16bpp images */
typedef struct fz_predict_s fz_predict;
diff --git a/source/fitz/filter-sgi.c b/source/fitz/filter-sgi.c
index ceb2a548..c0946df2 100644
--- a/source/fitz/filter-sgi.c
+++ b/source/fitz/filter-sgi.c
@@ -1,6 +1,7 @@
-#include "mupdf/fitz/system.h"
-#include "mupdf/fitz/context.h"
-#include "mupdf/fitz/stream.h"
+#include "mupdf/fitz.h"
+
+#include <math.h>
+#include <string.h>
/* Table stolen from LibTiff */
#define UV_SQSIZ 0.003500f
diff --git a/source/fitz/filter-thunder.c b/source/fitz/filter-thunder.c
index 6e11ac5f..82d313a0 100644
--- a/source/fitz/filter-thunder.c
+++ b/source/fitz/filter-thunder.c
@@ -1,6 +1,4 @@
-#include "mupdf/fitz/system.h"
-#include "mupdf/fitz/context.h"
-#include "mupdf/fitz/stream.h"
+#include "mupdf/fitz.h"
/* 4bit greyscale Thunderscan decoding */
diff --git a/source/fitz/font.c b/source/fitz/font.c
index 95f0933e..1ce8c89f 100644
--- a/source/fitz/font.c
+++ b/source/fitz/font.c
@@ -1,12 +1,14 @@
-#include "fitz-imp.h"
+#include "mupdf/fitz.h"
#include "mupdf/ucdn.h"
-
+#include "fitz-imp.h"
#include "font-imp.h"
#include <ft2build.h>
#include "hb.h"
#include "hb-ft.h"
+#include <assert.h>
+
#include FT_FREETYPE_H
#include FT_ADVANCES_H
#include FT_STROKER_H
diff --git a/source/fitz/ftoa.c b/source/fitz/ftoa.c
index 6cbf7f7e..134e2a0b 100644
--- a/source/fitz/ftoa.c
+++ b/source/fitz/ftoa.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <assert.h>
+
/*
Convert IEEE single precision numbers into decimal ASCII strings, while
satisfying the following two properties:
diff --git a/source/fitz/geometry.c b/source/fitz/geometry.c
index 7a8d162b..1940b417 100644
--- a/source/fitz/geometry.c
+++ b/source/fitz/geometry.c
@@ -1,5 +1,9 @@
#include "mupdf/fitz.h"
+#include <math.h>
+#include <float.h>
+#include <limits.h>
+
#define MAX4(a,b,c,d) fz_max(fz_max(a,b), fz_max(c,d))
#define MIN4(a,b,c,d) fz_min(fz_min(a,b), fz_min(c,d))
diff --git a/source/fitz/glyph-cache-imp.h b/source/fitz/glyph-cache-imp.h
index 8e3945fd..f21cfbb1 100644
--- a/source/fitz/glyph-cache-imp.h
+++ b/source/fitz/glyph-cache-imp.h
@@ -1,15 +1,6 @@
#ifndef MUPDF_FITZ_GLYPH_CACHE_IMP_H
#define MUPDF_FITZ_GLYPH_CACHE_IMP_H
-#include "mupdf/fitz/system.h"
-#include "mupdf/fitz/context.h"
-#include "mupdf/fitz/geometry.h"
-#include "mupdf/fitz/font.h"
-#include "mupdf/fitz/path.h"
-#include "mupdf/fitz/pixmap.h"
-#include "mupdf/fitz/device.h"
-#include "mupdf/fitz/glyph-cache.h"
-
fz_path *fz_outline_glyph(fz_context *ctx, fz_font *font, int gid, const fz_matrix *ctm);
fz_path *fz_outline_ft_glyph(fz_context *ctx, fz_font *font, int gid, const fz_matrix *trm);
fz_glyph *fz_render_ft_glyph(fz_context *ctx, fz_font *font, int cid, const fz_matrix *trm, int aa);
diff --git a/source/fitz/glyph.c b/source/fitz/glyph.c
index efe5bed1..f5d97768 100644
--- a/source/fitz/glyph.c
+++ b/source/fitz/glyph.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
#define RLE_THRESHOLD 256
fz_glyph *
diff --git a/source/fitz/halftone.c b/source/fitz/halftone.c
index 58153fcf..ff7e9cb1 100644
--- a/source/fitz/halftone.c
+++ b/source/fitz/halftone.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "fitz-imp.h"
+#include <assert.h>
+
struct fz_halftone_s
{
int refs;
diff --git a/source/fitz/harfbuzz.c b/source/fitz/harfbuzz.c
index 319e2b65..d2ff3bf5 100644
--- a/source/fitz/harfbuzz.c
+++ b/source/fitz/harfbuzz.c
@@ -7,6 +7,8 @@
#include "hb.h"
+#include <assert.h>
+
/* Harfbuzz has some major design flaws.
*
* It is utterly thread unsafe. It uses statics to hold
diff --git a/source/fitz/hash.c b/source/fitz/hash.c
index 9ebb0b31..38393caf 100644
--- a/source/fitz/hash.c
+++ b/source/fitz/hash.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <assert.h>
+
/*
Simple hashtable with open addressing linear probe.
Unlike text book examples, removing entries works
diff --git a/source/fitz/image.c b/source/fitz/image.c
index 2ee1cfbb..057d6480 100644
--- a/source/fitz/image.c
+++ b/source/fitz/image.c
@@ -1,5 +1,9 @@
#include "fitz-imp.h"
+#include <string.h>
+#include <math.h>
+#include <assert.h>
+
#define SANE_DPI 72.0f
#define INSANE_DPI 4800.0f
diff --git a/source/fitz/list-device.c b/source/fitz/list-device.c
index 1f0d19d6..49a93c20 100644
--- a/source/fitz/list-device.c
+++ b/source/fitz/list-device.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <assert.h>
+#include <string.h>
+
typedef struct fz_display_node_s fz_display_node;
typedef struct fz_list_device_s fz_list_device;
diff --git a/source/fitz/load-bmp.c b/source/fitz/load-bmp.c
index 21852128..fabc61ed 100644
--- a/source/fitz/load-bmp.c
+++ b/source/fitz/load-bmp.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <limits.h>
+
static const unsigned char web_palette[] = {
0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x66, 0x00, 0x00, 0x99, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x33, 0x33, 0x00, 0x33, 0x66, 0x00, 0x33, 0x99, 0x00, 0x33, 0xCC, 0x00, 0x33, 0xFF, 0x00, 0x33,
diff --git a/source/fitz/load-gif.c b/source/fitz/load-gif.c
index c8835774..546bd1a8 100644
--- a/source/fitz/load-gif.c
+++ b/source/fitz/load-gif.c
@@ -1,5 +1,8 @@
#include "fitz-imp.h"
+#include <string.h>
+#include <limits.h>
+
struct info
{
int gif89a;
diff --git a/source/fitz/load-jpeg.c b/source/fitz/load-jpeg.c
index c9b83465..4a0992b7 100644
--- a/source/fitz/load-jpeg.c
+++ b/source/fitz/load-jpeg.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <limits.h>
+
#include <jpeglib.h>
#ifdef SHARE_JPEG
diff --git a/source/fitz/load-jpx.c b/source/fitz/load-jpx.c
index d01de585..4dadface 100644
--- a/source/fitz/load-jpx.c
+++ b/source/fitz/load-jpx.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <assert.h>
+#include <string.h>
+
#if FZ_ENABLE_JPX
typedef struct fz_jpxd_s fz_jpxd;
diff --git a/source/fitz/load-png.c b/source/fitz/load-png.c
index 74af414e..65935b8d 100644
--- a/source/fitz/load-png.c
+++ b/source/fitz/load-png.c
@@ -2,6 +2,8 @@
#include <zlib.h>
+#include <string.h>
+
struct info
{
unsigned int width, height, depth, n;
diff --git a/source/fitz/load-pnm.c b/source/fitz/load-pnm.c
index 21bf939c..cf48da60 100644
--- a/source/fitz/load-pnm.c
+++ b/source/fitz/load-pnm.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <limits.h>
+
enum
{
PAM_UNKNOWN = 0,
diff --git a/source/fitz/load-tiff.c b/source/fitz/load-tiff.c
index 8d759254..4bc8be75 100644
--- a/source/fitz/load-tiff.c
+++ b/source/fitz/load-tiff.c
@@ -1,5 +1,9 @@
#include "mupdf/fitz.h"
+#include <limits.h>
+#include <assert.h>
+#include <string.h>
+
/*
* TIFF image loader. Should be enough to support TIFF files in XPS.
* Baseline TIFF 6.0 plus CMYK, LZW, Flate and JPEG support.
diff --git a/source/fitz/memento.c b/source/fitz/memento.c
index 5676cafd..46fbbe75 100644
--- a/source/fitz/memento.c
+++ b/source/fitz/memento.c
@@ -50,6 +50,7 @@ int atexit(void (*)(void));
#endif
#include <stdlib.h>
+#include <stdarg.h>
#ifdef __ANDROID__
#define MEMENTO_ANDROID
diff --git a/source/fitz/memory.c b/source/fitz/memory.c
index 10e6f318..42ac1d50 100644
--- a/source/fitz/memory.c
+++ b/source/fitz/memory.c
@@ -1,5 +1,9 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
/* Enable FITZ_DEBUG_LOCKING_TIMES below if you want to check the times
* for which locks are held too. */
#ifdef FITZ_DEBUG_LOCKING
diff --git a/source/fitz/noto.c b/source/fitz/noto.c
index 226cb885..eb070261 100644
--- a/source/fitz/noto.c
+++ b/source/fitz/noto.c
@@ -1,6 +1,8 @@
#include "mupdf/fitz.h"
#include "mupdf/ucdn.h"
+#include <string.h>
+
/*
Base 14 PDF fonts from URW.
Noto fonts from Google.
diff --git a/source/fitz/output-pcl.c b/source/fitz/output-pcl.c
index 99cc819f..da0b8f1b 100644
--- a/source/fitz/output-pcl.c
+++ b/source/fitz/output-pcl.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <limits.h>
+
/* Lifted from ghostscript gdevjlm.h */
/*
* The notion that there is such a thing as a "PCL printer" is a fiction: no
diff --git a/source/fitz/output-pwg.c b/source/fitz/output-pwg.c
index 9d31f2a5..1b5f3812 100644
--- a/source/fitz/output-pwg.c
+++ b/source/fitz/output-pwg.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <assert.h>
+#include <string.h>
+
typedef struct {
fz_band_writer super;
fz_pwg_options pwg;
diff --git a/source/fitz/output-tga.c b/source/fitz/output-tga.c
index e6e9a4a5..712f82fe 100644
--- a/source/fitz/output-tga.c
+++ b/source/fitz/output-tga.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
/*
* Write pixmap to TGA file (with or without alpha channel)
*/
diff --git a/source/fitz/output.c b/source/fitz/output.c
index 961bafe5..a8194aed 100644
--- a/source/fitz/output.c
+++ b/source/fitz/output.c
@@ -1,5 +1,11 @@
+#include "mupdf/fitz.h"
#include "fitz-imp.h"
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+
struct fz_output_context_s
{
int refs;
@@ -304,11 +310,7 @@ fz_save_buffer(fz_context *ctx, fz_buffer *buf, const char *filename)
fz_band_writer *fz_new_band_writer_of_size(fz_context *ctx, size_t size, fz_output *out)
{
fz_band_writer *writer = fz_calloc(ctx, size, 1);
-
- assert(size >= sizeof(*writer));
-
writer->out = out;
-
return writer;
}
diff --git a/source/fitz/path.c b/source/fitz/path.c
index 120d2e9e..31ede8ec 100644
--- a/source/fitz/path.c
+++ b/source/fitz/path.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <assert.h>
+
// Thoughts for further optimisations:
// All paths start with MoveTo. We could probably avoid most cases where
// we store that. The next thing after a close must be a move.
diff --git a/source/fitz/pixmap.c b/source/fitz/pixmap.c
index f1291dc2..ab7d068f 100644
--- a/source/fitz/pixmap.c
+++ b/source/fitz/pixmap.c
@@ -1,5 +1,10 @@
#include "mupdf/fitz.h"
+#include <assert.h>
+#include <limits.h>
+#include <string.h>
+#include <math.h>
+
fz_pixmap *
fz_keep_pixmap(fz_context *ctx, fz_pixmap *pix)
{
diff --git a/source/fitz/pool.c b/source/fitz/pool.c
index 59e4a0f2..a2cb6ffe 100644
--- a/source/fitz/pool.c
+++ b/source/fitz/pool.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
typedef struct fz_pool_node_s fz_pool_node;
struct fz_pool_s
diff --git a/source/fitz/printf.c b/source/fitz/printf.c
index ddb8f17c..010c9298 100644
--- a/source/fitz/printf.c
+++ b/source/fitz/printf.c
@@ -1,5 +1,10 @@
#include "mupdf/fitz.h"
+#include <float.h>
+#include <math.h>
+#include <stdarg.h>
+#include <stdio.h>
+
static const char *fz_hex_digits = "0123456789abcdef";
struct fmtbuf
diff --git a/source/fitz/shade.c b/source/fitz/shade.c
index 4e5b9a19..783a8630 100644
--- a/source/fitz/shade.c
+++ b/source/fitz/shade.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <math.h>
+
typedef struct fz_mesh_processor_s fz_mesh_processor;
struct fz_mesh_processor_s {
diff --git a/source/fitz/stext-device.c b/source/fitz/stext-device.c
index 677ac4d6..0890043f 100644
--- a/source/fitz/stext-device.c
+++ b/source/fitz/stext-device.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "mupdf/ucdn.h"
+#include <math.h>
+#include <float.h>
+
/* Extract text into an unsorted span soup. */
#define LINE_DIST 0.9f
@@ -8,6 +11,7 @@
#define SPACE_MAX_DIST 0.8f
#define PARAGRAPH_DIST 0.5f
+#include <stdio.h> /* for debug printing */
#undef DEBUG_SPANS
#undef DEBUG_INTERNALS
#undef DEBUG_LINE_HEIGHTS
diff --git a/source/fitz/stext-paragraph.c b/source/fitz/stext-paragraph.c
index 91f71040..0a717c1b 100644
--- a/source/fitz/stext-paragraph.c
+++ b/source/fitz/stext-paragraph.c
@@ -1,9 +1,14 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <assert.h>
+#include <math.h>
+
/* Assemble span soup into blocks and lines. */
#define MY_EPSILON 0.001f
+#include <stdio.h> /* for debug printing */
#undef DEBUG_LINE_HEIGHTS
#undef DEBUG_MASKS
#undef DEBUG_ALIGN
diff --git a/source/fitz/stext-search.c b/source/fitz/stext-search.c
index 6a3ea526..00705208 100644
--- a/source/fitz/stext-search.c
+++ b/source/fitz/stext-search.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
static inline int fz_tolower(int c)
{
/* TODO: proper unicode case folding */
diff --git a/source/fitz/stream-open.c b/source/fitz/stream-open.c
index d1d35cbb..3fe58712 100644
--- a/source/fitz/stream-open.c
+++ b/source/fitz/stream-open.c
@@ -1,5 +1,9 @@
#include "fitz-imp.h"
+#include <string.h>
+#include <errno.h>
+#include <stdio.h>
+
int
fz_file_exists(fz_context *ctx, const char *path)
{
diff --git a/source/fitz/stream-prog.c b/source/fitz/stream-prog.c
index 579c7c4f..dab746e0 100644
--- a/source/fitz/stream-prog.c
+++ b/source/fitz/stream-prog.c
@@ -1,5 +1,9 @@
-#include "mupdf/fitz/stream.h"
-#include "mupdf/fitz/string-util.h"
+#include "mupdf/fitz.h"
+
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
/* File stream - progressive reading to simulate http download */
diff --git a/source/fitz/stream-read.c b/source/fitz/stream-read.c
index 2d2f28b1..118589f9 100644
--- a/source/fitz/stream-read.c
+++ b/source/fitz/stream-read.c
@@ -1,5 +1,7 @@
#include "fitz-imp.h"
+#include <string.h>
+
#define MIN_BOMB (100 << 20)
size_t
diff --git a/source/fitz/string.c b/source/fitz/string.c
index e406cb03..9872d114 100644
--- a/source/fitz/string.c
+++ b/source/fitz/string.c
@@ -1,5 +1,11 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <errno.h>
+#include <math.h>
+#include <float.h>
+#include <stdlib.h>
+
static inline int
fz_tolower(int c)
{
diff --git a/source/fitz/strtod.c b/source/fitz/strtod.c
index 35ddd6ed..1db6c155 100644
--- a/source/fitz/strtod.c
+++ b/source/fitz/strtod.c
@@ -13,11 +13,9 @@
#include "mupdf/fitz.h"
-#include <stdio.h>
#include <math.h>
#include <float.h>
#include <string.h>
-#include <stdlib.h>
#include <errno.h>
#ifndef INFINITY
diff --git a/source/fitz/strtof.c b/source/fitz/strtof.c
index c929ded2..2786a794 100644
--- a/source/fitz/strtof.c
+++ b/source/fitz/strtof.c
@@ -1,5 +1,9 @@
#include "mupdf/fitz.h"
+#include <assert.h>
+#include <errno.h>
+#include <float.h>
+
#ifndef INFINITY
#define INFINITY (DBL_MAX+DBL_MAX)
#endif
diff --git a/source/fitz/svg-device.c b/source/fitz/svg-device.c
index 9ae4f189..0ac96105 100644
--- a/source/fitz/svg-device.c
+++ b/source/fitz/svg-device.c
@@ -1,6 +1,9 @@
#include "fitz-imp.h"
#include "glyph-cache-imp.h"
+#include <string.h>
+#include <float.h>
+
typedef struct svg_device_s svg_device;
typedef struct tile_s tile;
diff --git a/source/fitz/tempfile.c b/source/fitz/tempfile.c
index fd7d0f5f..7c2bb1ff 100644
--- a/source/fitz/tempfile.c
+++ b/source/fitz/tempfile.c
@@ -7,6 +7,10 @@
* if required.
*/
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h> /* for tempnam */
+
/* For now, put temporary files with the hint. */
#define USE_HINT_FOR_DIR
diff --git a/source/fitz/text.c b/source/fitz/text.c
index 454963b0..cf0b68be 100644
--- a/source/fitz/text.c
+++ b/source/fitz/text.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
fz_text *
fz_new_text(fz_context *ctx)
{
diff --git a/source/fitz/transition.c b/source/fitz/transition.c
index ec7d3f19..49207592 100644
--- a/source/fitz/transition.c
+++ b/source/fitz/transition.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
/*
FIXME: Currently transitions only work with alpha. Our app only
uses alpha.
diff --git a/source/fitz/tree.c b/source/fitz/tree.c
index 897e6914..070bbc71 100644
--- a/source/fitz/tree.c
+++ b/source/fitz/tree.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
/* AA-tree */
struct fz_tree_s
diff --git a/source/fitz/ucdn.c b/source/fitz/ucdn.c
index 0ea99083..d6b4135e 100644
--- a/source/fitz/ucdn.c
+++ b/source/fitz/ucdn.c
@@ -17,6 +17,8 @@
#include "mupdf/fitz.h"
#include "mupdf/ucdn.h"
+#include <stdlib.h>
+
typedef struct {
unsigned char category;
unsigned char combining;
diff --git a/source/fitz/untar.c b/source/fitz/untar.c
index e8d5f183..90b6f24d 100644
--- a/source/fitz/untar.c
+++ b/source/fitz/untar.c
@@ -1,5 +1,8 @@
#include "fitz-imp.h"
+#include <string.h>
+#include <stdio.h>
+
typedef struct tar_entry_s tar_entry;
typedef struct fz_tar_archive_s fz_tar_archive;
diff --git a/source/fitz/unzip.c b/source/fitz/unzip.c
index 0e595c05..b0907fe8 100644
--- a/source/fitz/unzip.c
+++ b/source/fitz/unzip.c
@@ -2,6 +2,8 @@
#include <zlib.h>
+#include <string.h>
+
#if !defined (INT32_MAX)
#define INT32_MAX 2147483647L
#endif
diff --git a/source/fitz/util.c b/source/fitz/util.c
index 346ebaeb..23dab179 100644
--- a/source/fitz/util.c
+++ b/source/fitz/util.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <float.h>
+
fz_display_list *
fz_new_display_list_from_page(fz_context *ctx, fz_page *page)
{
diff --git a/source/fitz/writer.c b/source/fitz/writer.c
index 6c774d47..bfac38c7 100644
--- a/source/fitz/writer.c
+++ b/source/fitz/writer.c
@@ -1,5 +1,7 @@
#include "mupdf/fitz.h"
+#include <string.h>
+
/* Return non-null terminated pointers to key/value entries in comma separated
* option string. A plain key has the default value 'yes'. Use strncmp to compare
* key/value strings. */
diff --git a/source/fitz/xml.c b/source/fitz/xml.c
index a81ab66d..989d65b6 100644
--- a/source/fitz/xml.c
+++ b/source/fitz/xml.c
@@ -1,5 +1,8 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <stdlib.h>
+
static const struct { const char *ent; int ucs; } html_entities[] = {
{"nbsp",160}, {"iexcl",161}, {"cent",162}, {"pound",163},
{"curren",164}, {"yen",165}, {"brvbar",166}, {"sect",167},
diff --git a/source/fitz/zip.c b/source/fitz/zip.c
index 6b7dca34..45ce4488 100644
--- a/source/fitz/zip.c
+++ b/source/fitz/zip.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "fitz-imp.h"
+#include <string.h>
+
#include <zlib.h>
#if !defined (INT32_MAX)
diff --git a/source/html/css-apply.c b/source/html/css-apply.c
index e1ad46ff..65323baa 100644
--- a/source/html/css-apply.c
+++ b/source/html/css-apply.c
@@ -1,6 +1,10 @@
#include "mupdf/fitz.h"
#include "html-imp.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
static const char *inherit_list[] = {
"color",
"direction",
diff --git a/source/html/css-parse.c b/source/html/css-parse.c
index d92e3d7b..8dbc4dae 100644
--- a/source/html/css-parse.c
+++ b/source/html/css-parse.c
@@ -1,6 +1,8 @@
#include "mupdf/fitz.h"
#include "html-imp.h"
+#include <string.h>
+
struct lexbuf
{
fz_context *ctx;
diff --git a/source/html/epub-doc.c b/source/html/epub-doc.c
index 495b397f..20b5c2ef 100644
--- a/source/html/epub-doc.c
+++ b/source/html/epub-doc.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "html-imp.h"
+#include <string.h>
+#include <math.h>
+
enum { T, R, B, L };
typedef struct epub_document_s epub_document;
diff --git a/source/html/html-doc.c b/source/html/html-doc.c
index 825e3958..67587fa1 100644
--- a/source/html/html-doc.c
+++ b/source/html/html-doc.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "html-imp.h"
+#include <string.h>
+#include <math.h>
+
enum { T, R, B, L };
typedef struct html_document_s html_document;
diff --git a/source/html/html-font.c b/source/html/html-font.c
index 640c8565..cf572440 100644
--- a/source/html/html-font.c
+++ b/source/html/html-font.c
@@ -1,6 +1,8 @@
#include "mupdf/fitz.h"
#include "html-imp.h"
+#include <string.h>
+
static fz_font *
fz_load_html_default_font(fz_context *ctx, fz_html_font_set *set, const char *family, int is_bold, int is_italic)
{
diff --git a/source/html/html-layout.c b/source/html/html-layout.c
index 8caf7e34..b4ec17a0 100644
--- a/source/html/html-layout.c
+++ b/source/html/html-layout.c
@@ -6,6 +6,8 @@
#include "hb-ft.h"
#include <ft2build.h>
+#include <math.h>
+
#undef DEBUG_HARFBUZZ
enum { T, R, B, L };
diff --git a/source/pdf/pdf-annot-edit.c b/source/pdf/pdf-annot-edit.c
index 1dc14ac2..10fd717b 100644
--- a/source/pdf/pdf-annot-edit.c
+++ b/source/pdf/pdf-annot-edit.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
#define TEXT_ANNOT_SIZE (25.0)
const char *pdf_string_from_annot_type(fz_context *ctx, fz_annot_type type)
diff --git a/source/pdf/pdf-annot.c b/source/pdf/pdf-annot.c
index f6b3223b..981e7a5d 100644
--- a/source/pdf/pdf-annot.c
+++ b/source/pdf/pdf-annot.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
static pdf_obj *
resolve_dest_rec(fz_context *ctx, pdf_document *doc, pdf_obj *dest, int depth)
{
diff --git a/source/pdf/pdf-appearance.c b/source/pdf/pdf-appearance.c
index 829b5917..e421b8dc 100644
--- a/source/pdf/pdf-appearance.c
+++ b/source/pdf/pdf-appearance.c
@@ -1,5 +1,9 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <float.h>
+#include <math.h>
+
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_ADVANCES_H
diff --git a/source/pdf/pdf-clean-file.c b/source/pdf/pdf-clean-file.c
index 8b8f96ba..f9311064 100644
--- a/source/pdf/pdf-clean-file.c
+++ b/source/pdf/pdf-clean-file.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
typedef struct globals_s
{
pdf_document *doc;
diff --git a/source/pdf/pdf-clean.c b/source/pdf/pdf-clean.c
index 680795a1..f74a3359 100644
--- a/source/pdf/pdf-clean.c
+++ b/source/pdf/pdf-clean.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
static void
diff --git a/source/pdf/pdf-cmap-load.c b/source/pdf/pdf-cmap-load.c
index d73749cd..76421e99 100644
--- a/source/pdf/pdf-cmap-load.c
+++ b/source/pdf/pdf-cmap-load.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
size_t
diff --git a/source/pdf/pdf-cmap-parse.c b/source/pdf/pdf-cmap-parse.c
index 6237629d..594d43c8 100644
--- a/source/pdf/pdf-cmap-parse.c
+++ b/source/pdf/pdf-cmap-parse.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
/*
* CMap parser
*/
diff --git a/source/pdf/pdf-cmap-table.c b/source/pdf/pdf-cmap-table.c
index 8b2a62c4..20e7758b 100644
--- a/source/pdf/pdf-cmap-table.c
+++ b/source/pdf/pdf-cmap-table.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
#ifdef NOCJK
#define CJK_CMAPS 0
#endif
diff --git a/source/pdf/pdf-cmap.c b/source/pdf/pdf-cmap.c
index 10e36ba2..755cc0a1 100644
--- a/source/pdf/pdf-cmap.c
+++ b/source/pdf/pdf-cmap.c
@@ -1,5 +1,9 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <assert.h>
+#include <string.h>
+
#undef CHECK_SPLAY
#undef DUMP_SPLAY
diff --git a/source/pdf/pdf-colorspace.c b/source/pdf/pdf-colorspace.c
index eb120a5a..820ae713 100644
--- a/source/pdf/pdf-colorspace.c
+++ b/source/pdf/pdf-colorspace.c
@@ -1,7 +1,10 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
#include "../fitz/colorspace-imp.h"
+#include <string.h>
+
/* ICCBased */
static fz_colorspace *
diff --git a/source/pdf/pdf-crypt.c b/source/pdf/pdf-crypt.c
index 0d78844b..9baefae5 100644
--- a/source/pdf/pdf-crypt.c
+++ b/source/pdf/pdf-crypt.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
enum
{
PDF_CRYPT_NONE,
diff --git a/source/pdf/pdf-device.c b/source/pdf/pdf-device.c
index ec247cec..bbfe06d2 100644
--- a/source/pdf/pdf-device.c
+++ b/source/pdf/pdf-device.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
#include <ft2build.h>
diff --git a/source/pdf/pdf-encoding.c b/source/pdf/pdf-encoding.c
index 25843c12..f23747dc 100644
--- a/source/pdf/pdf-encoding.c
+++ b/source/pdf/pdf-encoding.c
@@ -1,8 +1,12 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
#include "pdf-encodings.h"
#include "pdf-glyphlist.h"
+#include <string.h>
+#include <stdlib.h>
+
void
pdf_load_encoding(const char **estrings, char *encoding)
{
diff --git a/source/pdf/pdf-field.c b/source/pdf/pdf-field.c
index 00f4205a..4d36c4d6 100644
--- a/source/pdf/pdf-field.c
+++ b/source/pdf/pdf-field.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
pdf_obj *pdf_get_inheritable(fz_context *ctx, pdf_document *doc, pdf_obj *obj, pdf_obj *key)
{
pdf_obj *fobj = NULL;
diff --git a/source/pdf/pdf-font.c b/source/pdf/pdf-font.c
index 27679130..cee094b9 100644
--- a/source/pdf/pdf-font.c
+++ b/source/pdf/pdf-font.c
@@ -1,7 +1,10 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
#include "../fitz/font-imp.h"
+#include <assert.h>
+
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_ADVANCES_H
diff --git a/source/pdf/pdf-form.c b/source/pdf/pdf-form.c
index 02f0d87d..1eef8af6 100644
--- a/source/pdf/pdf-form.c
+++ b/source/pdf/pdf-form.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
/* Must be kept in sync with definitions in pdf_util.js */
enum
{
diff --git a/source/pdf/pdf-function.c b/source/pdf/pdf-function.c
index 866a4f75..1c1b4454 100644
--- a/source/pdf/pdf-function.c
+++ b/source/pdf/pdf-function.c
@@ -1,5 +1,13 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+#include <math.h>
+#include <float.h>
+#include <limits.h>
+
+#define DIV_BY_ZERO(a, b, min, max) (((a) < 0) ^ ((b) < 0) ? (min) : (max))
+
enum
{
MAX_N = FZ_MAX_COLORS,
@@ -341,9 +349,9 @@ ps_run(fz_context *ctx, psobj *code, ps_stack *st, int pc)
{
case PS_OP_ABS:
if (ps_is_type(st, PS_INT))
- ps_push_int(st, abs(ps_pop_int(st)));
+ ps_push_int(st, fz_absi(ps_pop_int(st)));
else
- ps_push_real(st, fabsf(ps_pop_real(st)));
+ ps_push_real(st, fz_abs(ps_pop_real(st)));
break;
case PS_OP_ADD:
diff --git a/source/pdf/pdf-graft.c b/source/pdf/pdf-graft.c
index 04bb6b68..d2276ccc 100644
--- a/source/pdf/pdf-graft.c
+++ b/source/pdf/pdf-graft.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
struct pdf_graft_map_s
diff --git a/source/pdf/pdf-image.c b/source/pdf/pdf-image.c
index d2c610be..524284e8 100644
--- a/source/pdf/pdf-image.c
+++ b/source/pdf/pdf-image.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
static fz_image *pdf_load_jpx(fz_context *ctx, pdf_document *doc, pdf_obj *dict, int forcemask);
static fz_image *
diff --git a/source/pdf/pdf-interpret.c b/source/pdf/pdf-interpret.c
index 8d2f6c57..ef06b312 100644
--- a/source/pdf/pdf-interpret.c
+++ b/source/pdf/pdf-interpret.c
@@ -1,5 +1,9 @@
+#include "mupdf/fitz.h"
+#include "mupdf/pdf.h"
#include "pdf-imp.h"
+#include <string.h>
+
/* Maximum number of errors before aborting */
#define MAX_SYNTAX_ERRORS 100
diff --git a/source/pdf/pdf-js.c b/source/pdf/pdf-js.c
index 84938d30..e4bccc28 100644
--- a/source/pdf/pdf-js.c
+++ b/source/pdf/pdf-js.c
@@ -1,9 +1,13 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
#if FZ_ENABLE_JS
#include "mujs.h"
+#include <stdarg.h>
+#include <string.h>
+
struct pdf_js_s
{
fz_context *ctx;
diff --git a/source/pdf/pdf-layer.c b/source/pdf/pdf-layer.c
index bf81a5c1..db0b0c1d 100644
--- a/source/pdf/pdf-layer.c
+++ b/source/pdf/pdf-layer.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
+#include "mupdf/pdf.h"
#include "pdf-imp.h"
+#include <string.h>
+
/*
Notes on OCGs etc.
diff --git a/source/pdf/pdf-lex.c b/source/pdf/pdf-lex.c
index 6a9ca906..ca4e42cf 100644
--- a/source/pdf/pdf-lex.c
+++ b/source/pdf/pdf-lex.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
#define IS_NUMBER \
'+':case'-':case'.':case'0':case'1':case'2':case'3':\
case'4':case'5':case'6':case'7':case'8':case'9'
diff --git a/source/pdf/pdf-metrics.c b/source/pdf/pdf-metrics.c
index 8a4b7d11..caf0a2a7 100644
--- a/source/pdf/pdf-metrics.c
+++ b/source/pdf/pdf-metrics.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <stdlib.h>
+
void
pdf_set_font_wmode(fz_context *ctx, pdf_font_desc *font, int wmode)
{
diff --git a/source/pdf/pdf-nametree.c b/source/pdf/pdf-nametree.c
index 178f1cea..71ee4ba7 100644
--- a/source/pdf/pdf-nametree.c
+++ b/source/pdf/pdf-nametree.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
static pdf_obj *
diff --git a/source/pdf/pdf-object.c b/source/pdf/pdf-object.c
index 86a204a6..3a903699 100644
--- a/source/pdf/pdf-object.c
+++ b/source/pdf/pdf-object.c
@@ -1,7 +1,12 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
#include "pdf-name-table.h"
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+
typedef enum pdf_objkind_e
{
PDF_INT = 'i',
diff --git a/source/pdf/pdf-op-buffer.c b/source/pdf/pdf-op-buffer.c
index e3becc13..6ae7f8fc 100644
--- a/source/pdf/pdf-op-buffer.c
+++ b/source/pdf/pdf-op-buffer.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
typedef struct pdf_output_processor_s pdf_output_processor;
diff --git a/source/pdf/pdf-op-filter.c b/source/pdf/pdf-op-filter.c
index e3cbf4ce..731cabf2 100644
--- a/source/pdf/pdf-op-filter.c
+++ b/source/pdf/pdf-op-filter.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
typedef struct filter_gstate_s filter_gstate;
typedef enum
diff --git a/source/pdf/pdf-op-run.c b/source/pdf/pdf-op-run.c
index f1eac8d3..a71309d8 100644
--- a/source/pdf/pdf-op-run.c
+++ b/source/pdf/pdf-op-run.c
@@ -1,5 +1,9 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+#include <math.h>
+
#define TILE
/*
diff --git a/source/pdf/pdf-outline.c b/source/pdf/pdf-outline.c
index 708f7087..7a774a13 100644
--- a/source/pdf/pdf-outline.c
+++ b/source/pdf/pdf-outline.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
static fz_outline *
diff --git a/source/pdf/pdf-page.c b/source/pdf/pdf-page.c
index f3860e52..39792c70 100644
--- a/source/pdf/pdf-page.c
+++ b/source/pdf/pdf-page.c
@@ -1,5 +1,10 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
int
pdf_count_pages(fz_context *ctx, pdf_document *doc)
{
diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c
index 7e67171b..fc1503bb 100644
--- a/source/pdf/pdf-parse.c
+++ b/source/pdf/pdf-parse.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
fz_rect *
pdf_to_rect(fz_context *ctx, pdf_obj *array, fz_rect *r)
{
diff --git a/source/pdf/pdf-pattern.c b/source/pdf/pdf-pattern.c
index 2091f400..0fb01d06 100644
--- a/source/pdf/pdf-pattern.c
+++ b/source/pdf/pdf-pattern.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
pdf_pattern *
diff --git a/source/pdf/pdf-pkcs7.c b/source/pdf/pdf-pkcs7.c
index 3fac2c72..26db7909 100644
--- a/source/pdf/pdf-pkcs7.c
+++ b/source/pdf/pdf-pkcs7.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
#ifdef HAVE_LIBCRYPTO
/* Generated from resources/certs/AdobeCA.p7c */
diff --git a/source/pdf/pdf-portfolio.c b/source/pdf/pdf-portfolio.c
index 9235880c..761b7c51 100644
--- a/source/pdf/pdf-portfolio.c
+++ b/source/pdf/pdf-portfolio.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
+#include "mupdf/pdf.h"
#include "pdf-imp.h"
+#include <string.h>
+
/*
PDF Portfolio is just a sorted list of schema entries.
*/
diff --git a/source/pdf/pdf-repair.c b/source/pdf/pdf-repair.c
index b9ed4b8d..e8413b06 100644
--- a/source/pdf/pdf-repair.c
+++ b/source/pdf/pdf-repair.c
@@ -1,5 +1,9 @@
+#include "mupdf/fitz.h"
+#include "mupdf/pdf.h"
#include "pdf-imp.h"
+#include <string.h>
+
/* Scan file for objects and reconstruct xref table */
/* Define in PDF 1.7 to be 8388607, but mupdf is more lenient. */
diff --git a/source/pdf/pdf-resources.c b/source/pdf/pdf-resources.c
index 002906f8..024beae3 100644
--- a/source/pdf/pdf-resources.c
+++ b/source/pdf/pdf-resources.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
static void
diff --git a/source/pdf/pdf-run.c b/source/pdf/pdf-run.c
index e00ad02b..4fa1071f 100644
--- a/source/pdf/pdf-run.c
+++ b/source/pdf/pdf-run.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
static void
diff --git a/source/pdf/pdf-shade.c b/source/pdf/pdf-shade.c
index 362c8c94..cc665fc7 100644
--- a/source/pdf/pdf-shade.c
+++ b/source/pdf/pdf-shade.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
/* FIXME: Remove this somehow */
diff --git a/source/pdf/pdf-store.c b/source/pdf/pdf-store.c
index c2d0669e..15828d79 100644
--- a/source/pdf/pdf-store.c
+++ b/source/pdf/pdf-store.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <assert.h>
+
static int
pdf_make_hash_key(fz_context *ctx, fz_store_hash *hash, void *key_)
{
diff --git a/source/pdf/pdf-stream.c b/source/pdf/pdf-stream.c
index d9b14405..871ea40e 100644
--- a/source/pdf/pdf-stream.c
+++ b/source/pdf/pdf-stream.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
/*
* Check if an object is a stream or not.
*/
diff --git a/source/pdf/pdf-type3.c b/source/pdf/pdf-type3.c
index bc61b289..7432c4cd 100644
--- a/source/pdf/pdf-type3.c
+++ b/source/pdf/pdf-type3.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
#include "../fitz/font-imp.h"
diff --git a/source/pdf/pdf-unicode.c b/source/pdf/pdf-unicode.c
index fdff47ba..11b1aea8 100644
--- a/source/pdf/pdf-unicode.c
+++ b/source/pdf/pdf-unicode.c
@@ -1,5 +1,8 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+
/* Load or synthesize ToUnicode map for fonts */
static void
diff --git a/source/pdf/pdf-write.c b/source/pdf/pdf-write.c
index 5477fa07..9a066430 100644
--- a/source/pdf/pdf-write.c
+++ b/source/pdf/pdf-write.c
@@ -1,7 +1,13 @@
+#include "mupdf/fitz.h"
+#include "mupdf/pdf.h"
#include "pdf-imp.h"
#include <zlib.h>
+#include <assert.h>
+#include <string.h>
+
+#include <stdio.h> /* for debug printing */
/* #define DEBUG_LINEARIZATION */
/* #define DEBUG_HEAP_SORT */
/* #define DEBUG_WRITING */
@@ -2817,7 +2823,7 @@ pdf_parse_write_options(fz_context *ctx, pdf_write_options *opts, const char *ar
else if (fz_option_eq(val, "deduplicate"))
opts->do_garbage = 3;
else
- opts->do_garbage = atoi(val);
+ opts->do_garbage = fz_atoi(val);
}
return opts;
diff --git a/source/pdf/pdf-xobject.c b/source/pdf/pdf-xobject.c
index 9904570d..34d8edd8 100644
--- a/source/pdf/pdf-xobject.c
+++ b/source/pdf/pdf-xobject.c
@@ -1,3 +1,4 @@
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
pdf_xobject *
diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
index e24da9a1..e5385ce8 100644
--- a/source/pdf/pdf-xref.c
+++ b/source/pdf/pdf-xref.c
@@ -1,5 +1,11 @@
+#include "mupdf/fitz.h"
+#include "mupdf/pdf.h"
#include "pdf-imp.h"
-#include "mupdf/fitz/document.h"
+
+#include <assert.h>
+#include <string.h>
+#include <limits.h>
+#include <stdio.h>
#undef DEBUG_PROGESSIVE_ADVANCE
diff --git a/source/svg/svg-color.c b/source/svg/svg-color.c
index d1139475..4b3f872c 100644
--- a/source/svg/svg-color.c
+++ b/source/svg/svg-color.c
@@ -1,6 +1,8 @@
#include "mupdf/fitz.h"
#include "svg-imp.h"
+#include <string.h>
+
/* Color keywords (white, blue, fuchsia)
* System color keywords (ActiveBorder, ButtonFace -- need to find reasonable defaults)
* #fb0 (expand to #ffbb00)
diff --git a/source/svg/svg-parse.c b/source/svg/svg-parse.c
index 0a066ed1..56f2a1cf 100644
--- a/source/svg/svg-parse.c
+++ b/source/svg/svg-parse.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "svg-imp.h"
+#include <string.h>
+#include <math.h>
+
int svg_is_whitespace_or_comma(int c)
{
return (c == 0x20) || (c == 0x9) || (c == 0xD) || (c == 0xA) || (c == ',');
@@ -256,12 +259,12 @@ svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix *tr
if (nargs != 1)
fz_throw(ctx, FZ_ERROR_GENERIC, "wrong number of arguments to skewX(): %d", nargs);
- m.a = 1.0;
- m.b = 0.0;
- m.c = tan(args[0] * 0.0174532925);
- m.d = 1.0;
- m.e = 0.0;
- m.f = 0.0;
+ m.a = 1;
+ m.b = 0;
+ m.c = tanf(args[0] * 0.0174532925);
+ m.d = 1;
+ m.e = 0;
+ m.f = 0;
fz_concat(transform, transform, &m);
}
@@ -273,12 +276,12 @@ svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix *tr
if (nargs != 1)
fz_throw(ctx, FZ_ERROR_GENERIC, "wrong number of arguments to skewY(): %d", nargs);
- m.a = 1.0;
- m.b = tan(args[0] * 0.0174532925);
- m.c = 0.0;
- m.d = 1.0;
- m.e = 0.0;
- m.f = 0.0;
+ m.a = 1;
+ m.b = tanf(args[0] * 0.0174532925);
+ m.c = 0;
+ m.d = 1;
+ m.e = 0;
+ m.f = 0;
fz_concat(transform, transform, &m);
}
diff --git a/source/svg/svg-run.c b/source/svg/svg-run.c
index 1f3c44e7..d113fd13 100644
--- a/source/svg/svg-run.c
+++ b/source/svg/svg-run.c
@@ -1,6 +1,10 @@
#include "mupdf/fitz.h"
#include "svg-imp.h"
+#include <string.h>
+#include <stdio.h> /* for sscanf */
+#include <math.h>
+
/* default page size */
#define DEF_WIDTH 12
#define DEF_HEIGHT 792
diff --git a/source/tools/muconvert.c b/source/tools/muconvert.c
index 054f8b25..99d5c774 100644
--- a/source/tools/muconvert.c
+++ b/source/tools/muconvert.c
@@ -4,6 +4,9 @@
#include "mupdf/fitz.h"
+#include <stdlib.h>
+#include <stdio.h>
+
/* input options */
static const char *password = "";
static int alphabits = 8;
diff --git a/source/tools/mudraw.c b/source/tools/mudraw.c
index f1d085ec..a2edd524 100644
--- a/source/tools/mudraw.c
+++ b/source/tools/mudraw.c
@@ -12,6 +12,11 @@
#include "mupdf/helpers/mu-threads.h"
#endif
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/time.h> /* for gettimeofday */
+
/* Enable for helpful threading debug */
/* #define DEBUG_THREADS(A) do { printf A; fflush(stdout); } while (0) */
#define DEBUG_THREADS(A) do { } while (0)
diff --git a/source/tools/muraster.c b/source/tools/muraster.c
index b8d9a4d9..12b81ac3 100644
--- a/source/tools/muraster.c
+++ b/source/tools/muraster.c
@@ -139,6 +139,18 @@
#include "mupdf/fitz.h"
#include "mupdf/helpers/mu-threads.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#ifdef _MSC_VER
+struct timeval;
+struct timezone;
+int gettimeofday(struct timeval *tv, struct timezone *tz);
+#else
+#include <sys/time.h>
+#endif
+
/*
After this point, we convert the #defines set (or not set)
above into sensible values we can work with. Don't edit
diff --git a/source/tools/murun.c b/source/tools/murun.c
index 76cb54e4..f0deaf60 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -8,6 +8,10 @@
#include "mujs.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
#define PS1 "> "
FZ_NORETURN static void rethrow(js_State *J)
diff --git a/source/tools/mutool.c b/source/tools/mutool.c
index 8cba3cff..68c647a4 100644
--- a/source/tools/mutool.c
+++ b/source/tools/mutool.c
@@ -4,6 +4,9 @@
#include "mupdf/fitz.h"
+#include <string.h>
+#include <stdio.h>
+
#ifdef _MSC_VER
#define main main_utf8
#endif
diff --git a/source/tools/pdfclean.c b/source/tools/pdfclean.c
index 5dd0d700..ff60bbb5 100644
--- a/source/tools/pdfclean.c
+++ b/source/tools/pdfclean.c
@@ -9,8 +9,13 @@
* TODO: linearize document for fast web view
*/
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
static void usage(void)
{
fprintf(stderr,
diff --git a/source/tools/pdfcreate.c b/source/tools/pdfcreate.c
index d7d8e4a9..f4fec946 100644
--- a/source/tools/pdfcreate.c
+++ b/source/tools/pdfcreate.c
@@ -4,8 +4,13 @@
* Simple test bed to work with adding content and creating PDFs
*/
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
static void usage(void)
{
fprintf(stderr,
diff --git a/source/tools/pdfextract.c b/source/tools/pdfextract.c
index c7390392..49a2747e 100644
--- a/source/tools/pdfextract.c
+++ b/source/tools/pdfextract.c
@@ -2,8 +2,12 @@
* pdfextract -- the ultimate way to extract images and fonts from pdfs
*/
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <stdlib.h>
+#include <stdio.h>
+
static pdf_document *doc = NULL;
static fz_context *ctx = NULL;
static int dorgb = 0;
diff --git a/source/tools/pdfinfo.c b/source/tools/pdfinfo.c
index 8fac93f6..585279b1 100644
--- a/source/tools/pdfinfo.c
+++ b/source/tools/pdfinfo.c
@@ -3,8 +3,13 @@
* Print information about the input pdf.
*/
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
enum
{
DIMENSIONS = 0x01,
diff --git a/source/tools/pdfmerge.c b/source/tools/pdfmerge.c
index 153d87ff..7e38f0e1 100644
--- a/source/tools/pdfmerge.c
+++ b/source/tools/pdfmerge.c
@@ -4,8 +4,12 @@
* Simple test bed to work with merging pages from multiple PDFs into a single PDF.
*/
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <stdlib.h>
+#include <stdio.h>
+
static void usage(void)
{
fprintf(stderr,
diff --git a/source/tools/pdfpages.c b/source/tools/pdfpages.c
index 598f7594..9e8f6050 100644
--- a/source/tools/pdfpages.c
+++ b/source/tools/pdfpages.c
@@ -3,8 +3,12 @@
* Print information about pages of a pdf.
*/
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <stdlib.h>
+#include <stdio.h>
+
static void
infousage(void)
{
diff --git a/source/tools/pdfportfolio.c b/source/tools/pdfportfolio.c
index b4488cd4..b1dc71bd 100644
--- a/source/tools/pdfportfolio.c
+++ b/source/tools/pdfportfolio.c
@@ -2,8 +2,12 @@
* pdfportfolio -- manipulate embedded files in a PDF
*/
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <stdlib.h>
+#include <stdio.h>
+
static pdf_document *doc = NULL;
static fz_context *ctx = NULL;
diff --git a/source/tools/pdfposter.c b/source/tools/pdfposter.c
index 66eaa3a5..753a4da3 100644
--- a/source/tools/pdfposter.c
+++ b/source/tools/pdfposter.c
@@ -2,8 +2,13 @@
* PDF posteriser; split pages within a PDF file into smaller lumps.
*/
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
static int x_factor = 0;
static int y_factor = 0;
diff --git a/source/tools/pdfshow.c b/source/tools/pdfshow.c
index 03c93da8..71d2b4ca 100644
--- a/source/tools/pdfshow.c
+++ b/source/tools/pdfshow.c
@@ -2,8 +2,12 @@
* pdfshow -- the ultimate pdf debugging tool
*/
+#include "mupdf/fitz.h"
#include "mupdf/pdf.h"
+#include <stdlib.h>
+#include <stdio.h>
+
static pdf_document *doc = NULL;
static fz_context *ctx = NULL;
static fz_output *out = NULL;
diff --git a/source/xps/xps-common.c b/source/xps/xps-common.c
index 1843a41c..9e590788 100644
--- a/source/xps/xps-common.c
+++ b/source/xps/xps-common.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <string.h>
+#include <stdio.h> /* for sscanf */
+
static inline int unhex(int a)
{
if (a >= 'A' && a <= 'F') return a - 'A' + 0xA;
diff --git a/source/xps/xps-doc.c b/source/xps/xps-doc.c
index 23ecf17c..d13e8fb0 100644
--- a/source/xps/xps-doc.c
+++ b/source/xps/xps-doc.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <string.h>
+#include <stdlib.h>
+
#define REL_START_PART \
"http://schemas.microsoft.com/xps/2005/06/fixedrepresentation"
#define REL_DOC_STRUCTURE \
diff --git a/source/xps/xps-gradient.c b/source/xps/xps-gradient.c
index c33352e0..02279677 100644
--- a/source/xps/xps-gradient.c
+++ b/source/xps/xps-gradient.c
@@ -1,6 +1,11 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <string.h>
+#include <math.h>
+#include <float.h>
+#include <stdlib.h>
+
#define MAX_STOPS 256
enum { SPREAD_PAD, SPREAD_REPEAT, SPREAD_REFLECT };
diff --git a/source/xps/xps-image.c b/source/xps/xps-image.c
index aa495566..2996b4ee 100644
--- a/source/xps/xps-image.c
+++ b/source/xps/xps-image.c
@@ -1,6 +1,8 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <string.h>
+
static fz_image *
xps_load_image(fz_context *ctx, xps_document *doc, xps_part *part)
{
diff --git a/source/xps/xps-link.c b/source/xps/xps-link.c
index 1b2423ad..c574fe35 100644
--- a/source/xps/xps-link.c
+++ b/source/xps/xps-link.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <string.h>
+#include <stdlib.h>
+
/* Quick parsing of document to find links. */
static void
diff --git a/source/xps/xps-outline.c b/source/xps/xps-outline.c
index 472af0c3..6244a83d 100644
--- a/source/xps/xps-outline.c
+++ b/source/xps/xps-outline.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <stdlib.h>
+#include <math.h>
+
/*
* Parse the document structure / outline parts referenced from fixdoc relationships.
*/
diff --git a/source/xps/xps-path.c b/source/xps/xps-path.c
index 750a8309..3f22ce29 100644
--- a/source/xps/xps-path.c
+++ b/source/xps/xps-path.c
@@ -1,6 +1,10 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+
static char *
xps_parse_float_array(fz_context *ctx, xps_document *doc, char *s, int num, float *x)
{
diff --git a/source/xps/xps-resource.c b/source/xps/xps-resource.c
index 139d5b5c..dcc83fb3 100644
--- a/source/xps/xps-resource.c
+++ b/source/xps/xps-resource.c
@@ -1,6 +1,8 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <string.h>
+
static fz_xml *
xps_lookup_resource(fz_context *ctx, xps_document *doc, xps_resource *dict, char *name, char **urip)
{
diff --git a/source/xps/xps-tile.c b/source/xps/xps-tile.c
index 925eed40..53e223ee 100644
--- a/source/xps/xps-tile.c
+++ b/source/xps/xps-tile.c
@@ -1,6 +1,9 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <math.h>
+#include <string.h>
+
#define TILE
/*
diff --git a/source/xps/xps-zip.c b/source/xps/xps-zip.c
index 0e8d8edc..83de8ac4 100644
--- a/source/xps/xps-zip.c
+++ b/source/xps/xps-zip.c
@@ -1,6 +1,8 @@
#include "mupdf/fitz.h"
#include "xps-imp.h"
+#include <string.h>
+
static void xps_init_document(fz_context *ctx, xps_document *doc);
static xps_part *