% % load psconstant list % /* %%%empty !builder "Allf_final results.txt" here ^ read !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 second _builder <> { % % already in results % _Pho.CmntA &"*duplicate*" quoter & &" !Pho.Cmnt" } { % % not yet in results % _Pho.CmntA any? { quoter & &" !Pho.Cmnt" } if } ifelse &; &_builder !builder } if pop } for _builder "Allf_final results.txt" here ^ write */ /* % % load psconstant list % %%%empty !builder "Allf_final results.txt" here ^ read !builder "Allb" 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 "Allb" 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 "Alla" look { % % found in a, already processed % } { % % not found in a, output b 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 empty !Pho.Name empty !Pho.Code empty !Pho.Val empty !Pho.Cmnt empty !Pho.Kind second _builder <> { % % already in results % _Pho.KindA _Pho.Kind ne$ { _Pho.Kind quoter & &" !Pho.KindA " } if _Pho.NameA _Pho.Name ne$ { _Pho.Name quoter & &" !Pho.NameA " } if _Pho.CodeA _Pho.Code ne$ { _Pho.Code quoter & &" !Pho.CodeA " } if _Pho.ValA _Pho.Val ne$ { _Pho.Val 10000 gt { _Pho.Val quoter & &" !Pho.ValA " } if } if } { % % not yet in results % } ifelse &; &_builder !builder } ifelse } if pop } for _builder "Allg_final results.txt" here ^ write */ empty !bKey empty !bClass empty !bUnit empty !bForm empty !bEnum empty !bEvent empty !bType empty !bRun "Allh" look_ countup { "--> " &3 &" " log)( pop empty !Pho.Name empty !Pho.Code empty !Pho.Val empty !Pho.Cmnt empty !Pho.Kind empty !Pho.NameA empty !Pho.CodeA empty !Pho.ValA empty !Pho.KindA empty !Pho.NameB empty !Pho.CodeB empty !Pho.ValB empty !Pho.KindB 0 !counter dup "Allh" look pop dup ^"|" &" " _Pho.Kind quoter & &" !Pho.Kind " &_counter &" !Pho.Count " _Pho.Name quoter & &" !Pho.Name " _Pho.Code any? { quoter & &" !Pho.Code " } if _Pho.Val any? { quoter & &" !Pho.Val " } if _Pho.KindB any? { quoter & &" !Pho.KindB " } if _Pho.NameB any? { quoter & &" !Pho.NameB " } if _Pho.CodeB any? { quoter & &" !Pho.CodeB " } if _Pho.ValB any? { quoter & &" !Pho.ValB " } if _Pho.KindA any? { quoter & &" !Pho.KindA " } if _Pho.NameA any? { quoter & &" !Pho.NameA " } if _Pho.CodeA any? { quoter & &" !Pho.CodeA " } if _Pho.ValA any? { quoter & &" !Pho.ValA " } if _Pho.Cmnt any? { quoter & &" !Pho.Cmnt" } if &; _Pho.Kind ^"b" dup _ ^3) exch ! pop } for _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 "Allz_photoshop all.txt" here ^ write _bClass "Allz_photoshop all.txt" here ^ append _bUnit "Allz_photoshop all.txt" here ^ append _bForm "Allz_photoshop all.txt" here ^ append _bEnum "Allz_photoshop all.txt" here ^ append _bEvent "Allz_photoshop all.txt" here ^ append _bType "Allz_photoshop all.txt" here ^ append _bRun "Allz_photoshop all.txt" here ^ append