summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/image
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-07-24 22:43:11 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2016-07-24 22:43:11 +0000
commit7b14b75626befe976530136bcf3158a16bd95df0 (patch)
tree9aefff9670d456ac7402074ffddb1a7f2d7b036d /Build/source/texk/web2c/luatexdir/image
parentb7f40e4f685e941ac062cac36728a4cad0faab6c (diff)
luatexdir: Sync with the upstream
git-svn-id: svn://tug.org/texlive/trunk@41755 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/image')
-rw-r--r--Build/source/texk/web2c/luatexdir/image/pdftoepdf.w4
-rw-r--r--Build/source/texk/web2c/luatexdir/image/writeimg.w27
2 files changed, 20 insertions, 11 deletions
diff --git a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w
index d86504f82bc..0f3e75d002c 100644
--- a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w
+++ b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w
@@ -596,6 +596,10 @@ void read_pdf_info(image_dict * idict)
pdf_doc = refPdfDocument(img_filepath(idict), FE_FAIL);
else if (img_type(idict) == IMG_TYPE_PDFMEMSTREAM) {
pdf_doc = findPdfDocument(img_filepath(idict)) ;
+ if (pdf_doc == NULL )
+ normal_error("pdf inclusion", "memstream not initialized");
+ if (pdf_doc->doc == NULL)
+ normal_error("pdf inclusion", "memstream document is empty");
pdf_doc->occurences++;
} else {
normal_error("pdf inclusion","unknown document");
diff --git a/Build/source/texk/web2c/luatexdir/image/writeimg.w b/Build/source/texk/web2c/luatexdir/image/writeimg.w
index f8e035f549d..0944509c044 100644
--- a/Build/source/texk/web2c/luatexdir/image/writeimg.w
+++ b/Build/source/texk/web2c/luatexdir/image/writeimg.w
@@ -281,15 +281,22 @@ void read_img(image_dict * idict)
callback_id = callback_defined(find_image_file_callback);
if (img_filepath(idict) == NULL) {
if (callback_id > 0) {
+ /* we always callback, also for a mem stream */
if (run_callback(callback_id, "S->S", img_filename(idict),&filepath)) {
if (filepath && (strlen(filepath) > 0)) {
img_filepath(idict) = strdup(filepath);
}
}
- } else {
+ }
+ if (img_filepath(idict) == NULL && (strstr(img_filename(idict),"data:application/pdf,") != NULL)) {
+ /* we need to check here for a pdf memstream */
+ img_filepath(idict) = strdup(img_filename(idict));
+ } else if (callback_id == 0) {
+ /* otherwise we use kpse but only when we don't callback */
img_filepath(idict) = kpse_find_file(img_filename(idict), kpse_tex_format, true);
}
if (img_filepath(idict) == NULL) {
+ /* in any case we need a name */
formatted_error("pdf backend","cannot find image file '%s'", img_filename(idict));
}
}
@@ -420,8 +427,6 @@ void scan_pdfximage(PDF pdf) /* static_pdf */
}
@ @c
-#define tail cur_list.tail_field
-
void scan_pdfrefximage(PDF pdf)
{
int transform = 0; /* one could scan transform as well */
@@ -434,20 +439,20 @@ void scan_pdfrefximage(PDF pdf)
idict = idict_array[obj_data_ptr(pdf, cur_val)];
if (img_state(idict) == DICT_NEW) {
normal_warning("image","don't rely on the image data to be okay");
- width(tail) = 0;
- height(tail) = 0;
- depth(tail) = 0;
+ width(tail_par) = 0;
+ height(tail_par) = 0;
+ depth(tail_par) = 0;
} else {
if (alt_rule.wd != null_flag || alt_rule.ht != null_flag || alt_rule.dp != null_flag) {
dim = scale_img(idict, alt_rule, transform);
} else {
dim = scale_img(idict, img_dimen(idict), img_transform(idict));
}
- width(tail) = dim.wd;
- height(tail) = dim.ht;
- depth(tail) = dim.dp;
- rule_transform(tail) = transform;
- rule_index(tail) = img_index(idict);
+ width(tail_par) = dim.wd;
+ height(tail_par) = dim.ht;
+ depth(tail_par) = dim.dp;
+ rule_transform(tail_par) = transform;
+ rule_index(tail_par) = img_index(idict);
}
}