~mdw
/
sgt
/
halibut
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make the Deflate decoder correctly handle the special case of a
[sgt/halibut]
/
bk_pdf.c
diff --git
a/bk_pdf.c
b/bk_pdf.c
index
6f6349e
..
5ebf67e
100644
(file)
--- a/
bk_pdf.c
+++ b/
bk_pdf.c
@@
-50,7
+50,6
@@
void pdf_backend(paragraph *sourceform, keywordlist *keywords,
int font_index;
font_encoding *fe;
page_data *page;
int font_index;
font_encoding *fe;
page_data *page;
- int pageno;
FILE *fp;
char *filename;
paragraph *p;
FILE *fp;
char *filename;
paragraph *p;
@@
-258,6
+257,7
@@
void pdf_backend(paragraph *sourceform, keywordlist *keywords,
sprintf(buf, "<%02X>", i + ranges[i] - 1);
objstream(cmap, buf);
sprintf(buf, "%hu\n",
sprintf(buf, "<%02X>", i + ranges[i] - 1);
objstream(cmap, buf);
sprintf(buf, "%hu\n",
+ (unsigned short)
sfnt_glyphtoindex(fe->font->info->fontfile,
fe->vector[i]));
objstream(cmap, buf);
sfnt_glyphtoindex(fe->font->info->fontfile,
fe->vector[i]));
objstream(cmap, buf);
@@
-279,6
+279,7
@@
void pdf_backend(paragraph *sourceform, keywordlist *keywords,
sprintf(buf, "<%02X>", i);
objstream(cmap, buf);
sprintf(buf, "%hu\n",
sprintf(buf, "<%02X>", i);
objstream(cmap, buf);
sprintf(buf, "%hu\n",
+ (unsigned short)
sfnt_glyphtoindex(fe->font->info->fontfile,
fe->vector[i]));
objstream(cmap, buf);
sfnt_glyphtoindex(fe->font->info->fontfile,
fe->vector[i]));
objstream(cmap, buf);
@@
-427,7
+428,6
@@
void pdf_backend(paragraph *sourceform, keywordlist *keywords,
/*
* Create and render the individual pages.
*/
/*
* Create and render the individual pages.
*/
- pageno = 0;
for (page = doc->pages; page; page = page->next) {
object *opage, *cstr;
rect *r;
for (page = doc->pages; page; page = page->next) {
object *opage, *cstr;
rect *r;
@@
-665,7
+665,10
@@
void pdf_backend(paragraph *sourceform, keywordlist *keywords,
* Write out the PDF file.
*/
* Write out the PDF file.
*/
- fp = fopen(filename, "wb");
+ if (!strcmp(filename, "-"))
+ fp = stdout;
+ else
+ fp = fopen(filename, "wb");
if (!fp) {
error(err_cantopenw, filename);
return;
if (!fp) {
error(err_cantopenw, filename);
return;
@@
-712,7
+715,8
@@
void pdf_backend(paragraph *sourceform, keywordlist *keywords,
olist.tail->number + 1, cat->number, info->number);
fprintf(fp, "startxref\n%d\n%%%%EOF\n", fileoff);
olist.tail->number + 1, cat->number, info->number);
fprintf(fp, "startxref\n%d\n%%%%EOF\n", fileoff);
- fclose(fp);
+ if (fp != stdout)
+ fclose(fp);
sfree(filename);
}
sfree(filename);
}