summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-11-14 00:48:08 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-11-14 00:48:08 +0000
commit64322869cd45fa0029198b6ef544363a0cf49eb6 (patch)
treefaa34b755a1bd7b9b5ca4a66d204deebf841d119 /Build/source/texk/web2c/luatexdir/pdf/pdfrule.w
parent6d37525a79984eea934633c34944113831e3fecb (diff)
web2c/luatexdir: Sync with the upstream trunk.
git-svn-id: svn://tug.org/texlive/trunk@38844 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/pdf/pdfrule.w')
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfrule.w69
1 files changed, 39 insertions, 30 deletions
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w
index 2dac756ddde..a9d670c1154 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w
@@ -29,36 +29,45 @@ void pdf_place_rule(PDF pdf, halfword q, scaledpos size)
pdfpos dim;
pdfstructure *p = pdf->pstruct;
scaledpos pos = pdf->posstruct->pos;
- (void) q;
- pdf_goto_pagemode(pdf);
- dim.h.m = i64round(size.h * p->k1);
- dim.h.e = p->pdf.h.e;
- dim.v.m = i64round(size.v * p->k1);
- dim.v.e = p->pdf.v.e;
- pdf_puts(pdf, "q\n");
- if (size.v <= one_bp) {
- pos.v += i32round(0.5 * size.v);
- pdf_set_pos_temp(pdf, pos);
- pdf_puts(pdf, "[]0 d 0 J ");
- print_pdffloat(pdf, dim.v);
- pdf_puts(pdf, " w 0 0 m ");
- print_pdffloat(pdf, dim.h);
- pdf_puts(pdf, " 0 l S\n");
- } else if (size.h <= one_bp) {
- pos.h += i32round(0.5 * size.h);
- pdf_set_pos_temp(pdf, pos);
- pdf_puts(pdf, "[]0 d 0 J ");
- print_pdffloat(pdf, dim.h);
- pdf_puts(pdf, " w 0 0 m 0 ");
- print_pdffloat(pdf, dim.v);
- pdf_puts(pdf, " l S\n");
+ /* (void) q; */
+ if (subtype(q) == box_rule) {
+ pdf_place_form(pdf,q);
+ } else if (subtype(q) == image_rule) {
+ pdf_place_image(pdf,q);
+ } else if (subtype(q) == empty_rule) {
+ /* place nothing, only take space */
} else {
- pdf_set_pos_temp(pdf, pos);
- pdf_puts(pdf, "0 0 ");
- print_pdffloat(pdf, dim.h);
- pdf_out(pdf, ' ');
- print_pdffloat(pdf, dim.v);
- pdf_puts(pdf, " re f\n");
+ /* normal_rule or >= 100 being a leader rule */
+ pdf_goto_pagemode(pdf);
+ dim.h.m = i64round(size.h * p->k1);
+ dim.h.e = p->pdf.h.e;
+ dim.v.m = i64round(size.v * p->k1);
+ dim.v.e = p->pdf.v.e;
+ pdf_puts(pdf, "q\n");
+ if (size.v <= one_bp) {
+ pos.v += i32round(0.5 * size.v);
+ pdf_set_pos_temp(pdf, pos);
+ pdf_puts(pdf, "[]0 d 0 J ");
+ print_pdffloat(pdf, dim.v);
+ pdf_puts(pdf, " w 0 0 m ");
+ print_pdffloat(pdf, dim.h);
+ pdf_puts(pdf, " 0 l S\n");
+ } else if (size.h <= one_bp) {
+ pos.h += i32round(0.5 * size.h);
+ pdf_set_pos_temp(pdf, pos);
+ pdf_puts(pdf, "[]0 d 0 J ");
+ print_pdffloat(pdf, dim.h);
+ pdf_puts(pdf, " w 0 0 m 0 ");
+ print_pdffloat(pdf, dim.v);
+ pdf_puts(pdf, " l S\n");
+ } else {
+ pdf_set_pos_temp(pdf, pos);
+ pdf_puts(pdf, "0 0 ");
+ print_pdffloat(pdf, dim.h);
+ pdf_out(pdf, ' ');
+ print_pdffloat(pdf, dim.v);
+ pdf_puts(pdf, " re f\n");
+ }
+ pdf_puts(pdf, "Q\n");
}
- pdf_puts(pdf, "Q\n");
}