% % load psconstant list % empty !builder "Alla" look_ countup { "--> " &3 &" " log)( pop % % skip any runtime numeric lookup item % dup numeric { dup 10000 gt } { true } ifelse { % % is alpha or numeric of code, not runtime numeric % empty !Pho.Name empty !Pho.Code empty !Pho.Val empty !Pho.Cmnt empty !Pho.Kind dup "Alla" look pop _Pho.Name !Pho.NameA _Pho.Code !Pho.CodeA _Pho.Val !Pho.ValA _Pho.Cmnt !Pho.CmntA _Pho.Kind !Pho.KindA empty !Pho.Name empty !Pho.Code empty !Pho.Val empty !Pho.Cmnt empty !Pho.Kind dup "Allb" look { % % found in b, construct lookup, compare fields % dup ^"|" &" " _Pho.KindA quoter & &" !Pho.Kind " _Pho.NameA quoter & &" !Pho.Name " _Pho.CodeA any? { quoter & &" !Pho.Code " } if _Pho.ValA any? { 10000 gt { _Pho.ValA quoter & &" !Pho.Val " } if } if _Pho.KindA _Pho.Kind ne$ { _Pho.Kind quoter & &" !Pho.KindB " } if _Pho.NameA _Pho.Name ne$ { _Pho.Name quoter & &" !Pho.NameB " } if _Pho.CodeA _Pho.Code ne$ { _Pho.Code any? { quoter & &" !Pho.CodeB " } if } if _Pho.ValA _Pho.Val ne$ { _Pho.Val any? { 10000 gt { _Pho.Val quoter & &" !Pho.ValB " } if } if } if } { % % not found in b, output a fields % dup ^"|" &" " _Pho.KindA quoter & &" !Pho.Kind " _Pho.NameA quoter & &" !Pho.Name " _Pho.CodeA any? { quoter & &" !Pho.Code " } if _Pho.ValA any? { 10000 gt { _Pho.ValA quoter & &" !Pho.Val " } if } if } ifelse _Pho.CmntA any? { quoter & &" !Pho.Cmnt" } if &; &_builder !builder } ifelse pop } for _builder "Allc_final results.txt" here ^ write _Pho.Name _Pho.NameA eq$ _Pho.Code _Pho.CodeA eq$ and _Pho.Val _Pho.ValA eq$ and %%%_Pho.Cmnt _Pho.CmntA _Pho.Kind _Pho.KindA eq$ and { % % fields match % dup ^"|" &" " _Pho.KindA quoter & &" !Pho.Kind " _Pho.NameA quoter & &" !Pho.Name " _Pho.CodeA quoter & &" !Pho.Code " _Pho.ValA quoter & &" !Pho.Val " second _builder <> { % % already in results % _Pho.CmntA &"*duplicate*" quoter & &" !Pho.Cmnt" } { % % not yet in results % _Pho.CmntA quoter & &" !Pho.Cmnt" } ifelse &; &_builder !builder } { % % fields don't match % dup ^"|" &" " _Pho.KindA quoter & &" !Pho.Kind " _Pho.NameA quoter & &" !Pho.Name " _Pho.CodeA quoter & &" !Pho.Code " _Pho.ValA quoter & &" !Pho.Val " _Pho.Kind quoter & &" !Pho.KindB " _Pho.Name quoter & &" !Pho.NameB " _Pho.Code quoter & &" !Pho.CodeB " _Pho.Val quoter & &" !Pho.ValB " second _builder <> { % % already in results % _Pho.CmntA &"*unmatch**duplicate*" quoter & &" !Pho.Cmnt" } { % % not yet in results % _Pho.CmntA &"*unmatch*" quoter & &" !Pho.Cmnt" } ifelse &; &_builder !builder } ifelse } { % % not found in b % dup ^"|" &" " _Pho.KindA quoter & &" !Pho.Kind " _Pho.NameA quoter & &" !Pho.Name " _Pho.CodeA quoter & &" !Pho.Code " _Pho.ValA quoter & &" !Pho.Val " second _builder <> { % % already in results % _Pho.CmntA &"*notinb**duplicate*" quoter & &" !Pho.Cmnt" } { % % not yet in results % _Pho.CmntA &"*notinb*" quoter & &" !Pho.Cmnt" } ifelse &; &_builder !builder } ifelse true ? pop } for _builder "Allc_final results.txt" here ^ write /* empty !builder "Allc" look_ countup { "- - > " &3 &" " log)( pop empty !Pho.Name empty !Pho.Code empty !Pho.Val empty !Pho.Cmnt empty !Pho.Kind empty !Pho.NameB empty !Pho.CodeB empty !Pho.ValB empty !Pho.KindB dup "Allc" look pop dup numeric { % % numeric entry % dup 10000 lt { % % don't put this line in the new file % } { % % has regular val % dup ^"|" &" " _Pho.Kind quoter & &" !Pho.Kind " _Pho.Name quoter & &" !Pho.Name " _Pho.Code quoter & &" !Pho.Code " _Pho.Cmnt "*nomatch*" empty replall !Pho.Cmnt quoter & &" !Pho.Val " "*nomatch" _Pho.Cmnt Str.Found zero { % % fully matched % } { % % not matched % _Pho.KindB _Pho.Kind ne$ { _Pho.KindB quoter & &" !Pho.KindB " } if _Pho.NameB _Pho.Name ne$ { _Pho.NameB quoter & &" !Pho.NameB " } if _Pho.CodeB _Pho.Code ne$ { _Pho.CodeB quoter & &" !Pho.CodeB " } if _Pho.ValB _Pho.Val ne$ { _Pho.ValB quoter & &" !Pho.ValB " } if } ifelse _Pho.Cmnt quoter & &" !Pho.Cmnt" &; &_builder !builder } ifelse } { % % not numeric % dup ^"|" &" " _Pho.Kind quoter & &" !Pho.Kind " _Pho.Name quoter & &" !Pho.Name " _Pho.Code quoter & &" !Pho.Code " _Pho.Val isnull { } { dup 10000 lt { % % runtime value % empty)( _Pho.Cmnt "*nomatch*" empty replall !Pho.Cmnt } if quoter & &" !Pho.Val " "*nomatch" _Pho.Cmnt Str.Found zero { % % fully matched % } { % % not matched % _Pho.KindB _Pho.Kind ne$ { _Pho.KindB quoter & &" !Pho.KindB " } if _Pho.NameB _Pho.Name ne$ { _Pho.NameB quoter & &" !Pho.NameB " } if _Pho.CodeB _Pho.Code ne$ { _Pho.CodeB quoter & &" !Pho.CodeB " } if _Pho.ValB _Pho.Val ne$ { _Pho.ValB quoter & &" !Pho.ValB " } if } ifelse } ifelse _Pho.Cmnt quoter & &" !Pho.Cmnt" &; &_builder !builder } ifelse pop } for _builder "Alle_final results.txt" here ^ write "Allc_final results.txt" here ^ read !builder "Alla" look_ countup { "- - > " &3 &" " log)( pop empty !Pho.Name empty !Pho.Code empty !Pho.Val empty !Pho.Cmnt empty !Pho.Kind dup "Allb" look pop _Pho.Name !Pho.NameB _Pho.Code !Pho.CodeB _Pho.Val !Pho.ValB _Pho.Cmnt !Pho.CmntB _Pho.Kind !Pho.KindB dup "Alla" look { % % found in a, already processed % } { % % not found in a, check if in builder % dup ^"|" &" " _Pho.KindB quoter & &" !Pho.Kind " _Pho.NameB quoter & &" !Pho.Name " _Pho.CodeB quoter & &" !Pho.Code " _Pho.ValB quoter & &" !Pho.Val " second _builder <> { % % not tracked yet in builder % "*notina*" quoter & &" !Pho.Cmnt" } { % % already tracked in builder % "*notina**duplicatb*" quoter & &" !Pho.Cmnt" } ifelse &; &_builder !builder } ifelse pop } for _builder "Alld_final results.txt" here ^ write empty !bKey empty !bClass empty !bUnit empty !bForm empty !bEnum empty !bEvent empty !bType empty !bRun empty empty empty empty empty "PSconstant.txt" ofdesk exec { % % kind string-id val code comment % !Pho.Cmnt !Pho.Code !Pho.Val !Pho.Name dup !Pho.Kind isnull ? < |Key *jsptmake &_bKey !bKey |Class *jsptmake &_bClass !bClass |Unit *jsptmake &_bUnit !bUnit |Form *jsptmake &_bForm !bForm |Enum *jsptmake &_bEnum !bEnum |Event *jsptmake &_bEvent !bEvent |Type *jsptmake &_bType !bType |Run *jsptrunr &_bRun !bRun > not { stop } if } loop pop _bKey "Key_photoshop keys.txt" here ^ write _bClass "Class_photoshop classes.txt" here ^ write _bUnit "Unit_photoshop units.txt" here ^ write _bForm "Form_photoshop forms.txt" here ^ write _bEnum "Enum_photoshop enumerations.txt" here ^ write _bEvent "Event_photoshop events.txt" here ^ write _bType "Type_photoshop types.txt" here ^ write _bRun "Run_photoshop runtime ids.txt" here ^ write _bKey "Alla_photoshop all.txt" here ^ write _bClass "Alla_photoshop all.txt" here ^ append _bUnit "Alla_photoshop all.txt" here ^ append _bForm "Alla_photoshop all.txt" here ^ append _bEnum "Alla_photoshop all.txt" here ^ append _bEvent "Alla_photoshop all.txt" here ^ append _bType "Alla_photoshop all.txt" here ^ append _bRun "Alla_photoshop all.txt" here ^ append */