summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/mplibdir/pngout.w
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2014-01-30 14:57:09 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2014-01-30 14:57:09 +0000
commita2f64a193fa3d36e97770a8254b905bd2d009d05 (patch)
treec14b54cd6b5a5590a5bf37485e8a22c16c6a2fd4 /Build/source/texk/web2c/mplibdir/pngout.w
parent32b702a53c4af5beb62fcc2915147b8202ead01f (diff)
Import from MetaPost trunk
git-svn-id: svn://tug.org/texlive/trunk@32823 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/mplibdir/pngout.w')
-rw-r--r--Build/source/texk/web2c/mplibdir/pngout.w9
1 files changed, 8 insertions, 1 deletions
diff --git a/Build/source/texk/web2c/mplibdir/pngout.w b/Build/source/texk/web2c/mplibdir/pngout.w
index c4ce4d82567..7255baec115 100644
--- a/Build/source/texk/web2c/mplibdir/pngout.w
+++ b/Build/source/texk/web2c/mplibdir/pngout.w
@@ -340,13 +340,19 @@ boolean mp_is_curved(mp_gr_knot p, mp_gr_knot q) {
}
-@ @c
+@ Cairo does not want to draw a path that consists of only a moveto,
+so make sure there is some kind of line even for single-pair paths.
+@c
static void mp_png_path_out (MP mp, mp_gr_knot h) {
mp_gr_knot p, q; /* for scanning the path */
+ int steps = 0;
cairo_move_to (mp->png->cr, gr_x_coord(h),gr_y_coord(h));
p=h;
do {
if ( gr_right_type(p)==mp_endpoint ) {
+ if (steps==0) {
+ cairo_line_to (mp->png->cr, gr_x_coord(p),gr_y_coord(p));
+ }
return;
}
q=gr_next_knot(p);
@@ -358,6 +364,7 @@ static void mp_png_path_out (MP mp, mp_gr_knot h) {
cairo_line_to (mp->png->cr, gr_x_coord(q),gr_y_coord(q));
}
p=q;
+ steps++;
} while (p!=h);
}