summaryrefslogtreecommitdiff
path: root/metapost
diff options
context:
space:
mode:
Diffstat (limited to 'metapost')
-rw-r--r--metapost/context/base/mp-core.mp32
1 files changed, 25 insertions, 7 deletions
diff --git a/metapost/context/base/mp-core.mp b/metapost/context/base/mp-core.mp
index eb038163e..7845649fc 100644
--- a/metapost/context/base/mp-core.mp
+++ b/metapost/context/base/mp-core.mp
@@ -720,14 +720,24 @@ fi ;
% fallback
- multipar :=
-
- llxy[fpos] --
- lrxy[tpos] --
+ % multipar :=
+ % llxy[fpos] --
+ % lrxy[tpos] --
+ % urxy[tpos] --
+ % ulxy[fpos] -- cycle ;
+ %
+ % save_multipar (1,1,multipar) ;
+
+ % we need to take the boundingbox because there can be
+ % more lines and we want a proper rectange
+
+ multipar :=
+ ulxy[fpos] --
urxy[tpos] --
- ulxy[fpos] -- cycle ;
+ lrxy[fpos] --
+ llxy[tpos] -- cycle ;
- save_multipar (1,1,multipar) ;
+ save_multipar (1,1,boundingbox(multipar)) ;
else :
@@ -963,6 +973,14 @@ fi ;
endgroup ;
fi ;
+ % potential safeguard:
+
+ % for i=1 upto nofmultipars :
+ % if length p <= 4 :
+ % multipars[i] := boundingbox(multipars[i]) ;
+ % fi ;
+ % end ;
+
% quick hack for gb:
one_piece_multi_par := (nofmultipars=1) and (pn=tn) ;
@@ -1349,4 +1367,4 @@ def ProcessSyncTask(expr p, c) =
fill p withcolor c ;
enddef ;
-endinput ; \ No newline at end of file
+endinput ;