Metodissa etsi_indeksit muutetaan wildmat - kutsu kutsuksi tutki_tasmaako. Aliohjelma tarvitsee muutaman lisäparametrin, jotta tarpeen vaatiessa osataan muuttaa kenttiä avaimiksi. Miksikö avaimiksi? No tietysti siksi, että avain rakennettiin siten, että aakkosjärjestys, sotujen järjestys yms. pitävät paikkansa.
Aliohjelman aluksi etsitään onko kyse jostakin erikoisoperaatiosta. Mikäli ei ole toimitaan kuten ennenkin. Mikäli on kyse jostakin erikoisesta operaatiosta, poistetaan hakumaskin alusta operaatio.
/****************************************************************************/ int /* 1 = ei täsmää */ cJasen::tutki_tasmaako( /* 0 = täsmää */ const string &maski ,/* s Maski muutettuna isoiksi kirjaimeksi */ int knro /* s Kentän numero. */ ) { int i,tulos,ehto_ind=0; string m; cJasen mjasen; string ikentta; // Kentän knro sisältö isoksi muutettuna merkkijonona ikentta = kentta_jonoksi(knro); jono_isoksi(ikentta); for (i=1; EHDOT[i].ehto; i++) if (maski.find(EHDOT[i].ehto) == 0 ) { ehto_ind = i; break; } m = maski.substr(EHDOT[ehto_ind].pit); switch ( EHDOT[ehto_ind].kasky ) { case YHT: return wildmat(ikentta,m); case ERIS: return !wildmat(ikentta,m); case PIEN: case PIENYHT: case SUUR: case SUURYHT: mjasen.sijoita(knro,m); mjasen.tee_avain(knro); tee_avain(knro); tulos = Avain().compare(mjasen.Avain()); switch ( EHDOT[ehto_ind].kasky ) { case PIEN: return !(tulos<0); case PIENYHT: return !(tulos<=0); case SUUR: return !(tulos>0); case SUURYHT: return !(tulos>=0); } default: return 1; } }