% % get template and caption info % % stack: caption % trim %%% dup !Shooter.OrigCap true !Shooter.ValidCap *twiflgof _Arching.Itype < |L _Arching.Atype "temcatype" log)( < |FirstOf |Mosaic > { % % mosaic or firstof must ignore template type % trim isnull { pop "Need Caption" } if } { % % see if one or more letters at left of space % dup " " slice trim exch length % % stack: raw-caption post-space pre-space len % "preln" log)( < > not { *twinonca } if trim isnull { pop "Need Caption" } if "adjcapr" log)( _Arching.Atype < |FirstOf _Sms.MM { } { dup "Need Caption" eq$ { pop _Shooter.OrigCap true !Shooter.ValidCap } if % % if the single caption letter is built, then it should be one char % more commonly the single letter will be a prebuilt later % %%% 1 left } ifelse > not { } if } ifelse > not { % % see if one or more letters at left of space % dup " " slice trim exch length % % stack: raw-caption post-space pre-space len % "preln" log)( < > not { *twinonca } if trim isnull { pop "Need Caption" } if "adjcapc" log)( } if % % stack: adj-caption % dup "Need Caption" eq$ { pop %%% _Arching.Ctype empty } { cap1st } ifelse