Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!snorkelwacker!apple!apple.com!kevina From: kevina@apple.com (This space for rent) Newsgroups: comp.lang.postscript Subject: Re: Pathforall returns "undefinedresult" Message-ID: <9986@goofy.Apple.COM> Date: 30 Aug 90 15:32:06 GMT References: <1990Aug30.004154.23677@metro.ucc.su.OZ.AU> Sender: usenet@Apple.COM Organization: Apple Computer, Inc. Lines: 29 In article <1990Aug30.004154.23677@metro.ucc.su.OZ.AU> rossc@extro.ucc.su.oz.au (Ross Cartlidge) writes: > ... > Part of the "conversion" is mapping paths and clippaths - this uses > pathforall. Someone has given me a PostScript file which, when > multi.ps is prepended, gives an "undefinedresult" for operator "pathforall" > > What conditions can make this happen? PostScript paths are mapped to device space (i.e. the resolution of the underlying pixels) as they are created. However, operators like "currentpoint" and "pathforall" operate in user space. In the case of pathforall, each point in the path must be mapped from device space to user space (as if by itransform) and placed on the stack for use by the appropriate callback procedure. A "undefinedresult" error probably means that somewhere in the combination of the original program and multi.ps, a singular (non-invertible) current transformation matrix (CTM) is getting established. The net result is usually a divide by zero error. (Either that or your points are getting out of range, but most Adobe interpreters are fairly lenient about infinity conditions.) One way to debug is to print out the matrix before pathforall is called and see if "invertmatrix" works on it. Good luck! --Kevin Andresen [kevina@apple.com] "It's a small world, but I wouldn't want to paint it."