Skip to content

Commit 547cb70

Browse files
authored
Merge pull request fontforge#3873 from skef/islin
Only run WithinMinMax when spline is single-dimensional
2 parents b6a4cb4 + ff42dfa commit 547cb70

1 file changed

Lines changed: 16 additions & 16 deletions

File tree

fontforge/splineutil2.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -276,27 +276,27 @@ return( true );
276276
if ( RealNear(spline->from->me.x,spline->to->me.x) ) {
277277
ret = RealNear(spline->from->me.x,spline->from->nextcp.x) &&
278278
RealNear(spline->from->me.x,spline->to->prevcp.x);
279-
if ( ! ((spline->from->nextcp.y >= spline->from->me.y &&
280-
spline->from->nextcp.y <= spline->to->me.y &&
281-
spline->to->prevcp.y >= spline->from->me.y &&
282-
spline->to->prevcp.y <= spline->to->me.y ) ||
283-
(spline->from->nextcp.y <= spline->from->me.y &&
284-
spline->from->nextcp.y >= spline->to->me.y &&
285-
spline->to->prevcp.y <= spline->from->me.y &&
286-
spline->to->prevcp.y >= spline->to->me.y )) )
279+
if ( ret && ! ((spline->from->nextcp.y >= spline->from->me.y &&
280+
spline->from->nextcp.y <= spline->to->me.y &&
281+
spline->to->prevcp.y >= spline->from->me.y &&
282+
spline->to->prevcp.y <= spline->to->me.y ) ||
283+
(spline->from->nextcp.y <= spline->from->me.y &&
284+
spline->from->nextcp.y >= spline->to->me.y &&
285+
spline->to->prevcp.y <= spline->from->me.y &&
286+
spline->to->prevcp.y >= spline->to->me.y )) )
287287
ret = MinMaxWithin(spline);
288288
/* Horizontal lines */
289289
} else if ( RealNear(spline->from->me.y,spline->to->me.y) ) {
290290
ret = RealNear(spline->from->me.y,spline->from->nextcp.y) &&
291291
RealNear(spline->from->me.y,spline->to->prevcp.y);
292-
if ( ! ((spline->from->nextcp.x >= spline->from->me.x &&
293-
spline->from->nextcp.x <= spline->to->me.x &&
294-
spline->to->prevcp.x >= spline->from->me.x &&
295-
spline->to->prevcp.x <= spline->to->me.x) ||
296-
(spline->from->nextcp.x <= spline->from->me.x &&
297-
spline->from->nextcp.x >= spline->to->me.x &&
298-
spline->to->prevcp.x <= spline->from->me.x &&
299-
spline->to->prevcp.x >= spline->to->me.x)) )
292+
if ( ret && ! ((spline->from->nextcp.x >= spline->from->me.x &&
293+
spline->from->nextcp.x <= spline->to->me.x &&
294+
spline->to->prevcp.x >= spline->from->me.x &&
295+
spline->to->prevcp.x <= spline->to->me.x) ||
296+
(spline->from->nextcp.x <= spline->from->me.x &&
297+
spline->from->nextcp.x >= spline->to->me.x &&
298+
spline->to->prevcp.x <= spline->from->me.x &&
299+
spline->to->prevcp.x >= spline->to->me.x)) )
300300
ret = MinMaxWithin(spline);
301301
} else {
302302
ret = true;

0 commit comments

Comments
 (0)