ALTKEYS.LST 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136
  1. Listing:
  2. 1 IMPLEMENTATION MODULE AltKeys;
  3. 2 (*
  4. 3 * REPERTOIRE
  5. 4 * Release 1.6
  6. 5 * By Charles Bradford and Cole Brecheen
  7. 6 * (c) Copyright 1985-1992 PMI
  8. 7 * Green Bay, Wisconsin
  9. 8 * All rights reserved
  10. 9 * (414) 468-6040
  11. 10 *
  12. 11 * $Header: D:/logfiles/mods/altkeys.mov 1.5 10 Mar 1991 15:24:44 coleb $
  13. 12 *
  14. 13 *)
  15. 14
  16. 15
  17. 16 IMPORT ErrorNames;
  18. 17 IMPORT GenLists;
  19. 18 IMPORT ListUtils;
  20. 19 IMPORT LowLevel;
  21. 20 IMPORT M2Strings;
  22. 21 IMPORT NdxBones;
  23. 22 IMPORT NdxFiles;
  24. 23 IMPORT NdxTypes;
  25. 24 IMPORT PosUtils;
  26. 25 IMPORT StrEdit;
  27. 26 IMPORT StrLogic;
  28. 27 IMPORT SYSTEM;
  29. 28
  30. 29 VAR
  31. 30 Initialized : BOOLEAN;
  32. 31
  33. 32 PROCEDURE Init();
  34. 33 BEGIN
  35. 34 IF Initialized THEN
  36. 35 RETURN;
  37. 36 ELSE
  38. 37 Initialized := TRUE;
  39. 38 END;
  40. 39 ErrorNames.Init();
  41. ***** ^ not supported yet
  42. ***** ^ not supported yet
  43. ***** ^ not supported yet
  44. 40 GenLists.Init();
  45. ***** ^ not supported yet
  46. ***** ^ not supported yet
  47. ***** ^ not supported yet
  48. 41 ListUtils.Init();
  49. ***** ^ not supported yet
  50. ***** ^ not supported yet
  51. ***** ^ not supported yet
  52. 42 LowLevel.Init();
  53. ***** ^ not supported yet
  54. ***** ^ not supported yet
  55. ***** ^ not supported yet
  56. 43 M2Strings.Init();
  57. ***** ^ not supported yet
  58. ***** ^ not supported yet
  59. ***** ^ not supported yet
  60. 44 NdxBones.Init();
  61. ***** ^ not supported yet
  62. ***** ^ not supported yet
  63. ***** ^ not supported yet
  64. 45 NdxFiles.Init();
  65. ***** ^ not supported yet
  66. ***** ^ not supported yet
  67. ***** ^ not supported yet
  68. 46 NdxTypes.Init();
  69. ***** ^ not supported yet
  70. ***** ^ not supported yet
  71. ***** ^ not supported yet
  72. 47 PosUtils.Init();
  73. ***** ^ not supported yet
  74. ***** ^ not supported yet
  75. ***** ^ not supported yet
  76. 48 StrEdit.Init();
  77. ***** ^ not supported yet
  78. ***** ^ not supported yet
  79. ***** ^ not supported yet
  80. 49 StrLogic.Init();
  81. ***** ^ not supported yet
  82. ***** ^ not supported yet
  83. ***** ^ not supported yet
  84. 50 END Init;
  85. ***** ^ not supported yet
  86. 51
  87. 52
  88. 53 PROCEDURE FieldLoaded( NdxFile: NdxTypes.NdxFileType; FieldName:
  89. ***** ^ not supported yet
  90. 54 ARRAY OF CHAR; VAR spot: CARDINAL): BOOLEAN;
  91. ***** ^ not supported yet
  92. 55 (*FieldLoaded returns true if FieldName is found, false if not.
  93. 56 If it returns a true, spot will represent the actual position
  94. 57 of FieldName in the NameList. If false, spot will represent
  95. 58 the length of the NameList.*)
  96. 59
  97. 60 VAR
  98. 61 NameList: GenLists.GenList;
  99. ***** ^ not supported yet
  100. 62 TypeCode, NameListLen, TmpSpot: CARDINAL;
  101. 63 TmpName: ARRAY [0..127] OF CHAR;
  102. ***** ^ not supported yet
  103. ***** ^ not supported yet
  104. 64 BEGIN
  105. 65 spot := 1;
  106. 66 WITH NdxFile^ DO
  107. ***** ^ not supported yet
  108. 67 IF (NOT GenLists.Initialized(AltKeys))
  109. ***** ^ not supported yet
  110. ***** ^ not supported yet
  111. ***** ^ not supported yet
  112. 68 OR (GenLists.ListLength(AltKeys) = 0) THEN
  113. ***** ^ not supported yet
  114. ***** ^ not supported yet
  115. ***** ^ not supported yet
  116. 69 spot := 0;
  117. 70 RETURN FALSE;
  118. 71 END;
  119. 72 GenLists.GetChildList( NdxFile^.AltKeys, 1, NameList );
  120. ***** ^ not supported yet
  121. ***** ^ not supported yet
  122. ***** ^ not supported yet
  123. ***** ^ not supported yet
  124. ***** ^ not supported yet
  125. 73 END;
  126. ***** ^ not supported yet
  127. 74 TmpSpot := 1;
  128. ***** ^ undeclared identifier
  129. 75 NameListLen := GenLists.ListLength( NameList );
  130. ***** ^ undeclared identifier
  131. ***** ^ not supported yet
  132. ***** ^ not supported yet
  133. ***** ^ undeclared identifier
  134. 76 IF NameListLen > 0 THEN
  135. ***** ^ undeclared identifier
  136. 77 REPEAT
  137. 78 GenLists.GetElmt( NameList, TmpSpot, TmpName, TypeCode );
  138. ***** ^ not supported yet
  139. ***** ^ not supported yet
  140. ***** ^ undeclared identifier
  141. ***** ^ undeclared identifier
  142. ***** ^ undeclared identifier
  143. ***** ^ undeclared identifier
  144. 79 IF PosUtils.Equal( FieldName, TmpName ) THEN
  145. ***** ^ not supported yet
  146. ***** ^ not supported yet
  147. ***** ^ undeclared identifier
  148. ***** ^ undeclared identifier
  149. 80 spot := TmpSpot;
  150. ***** ^ undeclared identifier
  151. ***** ^ undeclared identifier
  152. 81 RETURN TRUE;
  153. 82 END;
  154. 83 INC(TmpSpot);
  155. ***** ^ undeclared identifier
  156. ***** ^ undeclared identifier
  157. 84 UNTIL TmpSpot > NameListLen;
  158. ***** ^ undeclared identifier
  159. ***** ^ undeclared identifier
  160. 85 END;
  161. 86 spot := NameListLen;
  162. ***** ^ undeclared identifier
  163. ***** ^ undeclared identifier
  164. 87 RETURN FALSE;
  165. 88 END FieldLoaded;
  166. ***** ^ not supported yet
  167. 89
  168. 90
  169. 91 PROCEDURE CreateAltList( VAR NdxFile: NdxTypes.NdxFileType; FieldName:
  170. ***** ^ not supported yet
  171. 92 ARRAY OF CHAR; VAR SpotUsed: CARDINAL);
  172. ***** ^ not supported yet
  173. 93 (*Each element of the AltKey list is, in turn, a list. The
  174. 94 first one contains a list of the field names associated with
  175. 95 the others. The others are lists of selected field values,
  176. 96 each of which contains in its first two bytes a CARDINAL
  177. 97 indicating the position of the corresponding record in the
  178. 98 file's main Ndx list. CreateAltList returns in its SpotUsed
  179. 99 parameter the position in NdxFile^.AltKeys where it put the
  180. 100 AltList.*)
  181. 101 VAR
  182. 102 FieldList, NameList: GenLists.GenList;
  183. ***** ^ not supported yet
  184. 103 spot, AltKeysLen: CARDINAL;
  185. 104 BEGIN
  186. 105 IF NOT GenLists.Initialized( NdxFile^.AltKeys ) THEN
  187. ***** ^ not supported yet
  188. ***** ^ not supported yet
  189. ***** ^ not supported yet
  190. ***** ^ not supported yet
  191. 106 GenLists.NewList( NdxFile^.AltKeys );
  192. ***** ^ not supported yet
  193. ***** ^ not supported yet
  194. ***** ^ not supported yet
  195. ***** ^ not supported yet
  196. 107 END;
  197. 108 AltKeysLen := GenLists.ListLength( NdxFile^.AltKeys );
  198. ***** ^ not supported yet
  199. ***** ^ not supported yet
  200. ***** ^ not supported yet
  201. ***** ^ not supported yet
  202. 109 IF AltKeysLen = 0 THEN
  203. 110 (*Create the first list.*)
  204. 111 GenLists.NewList( NameList );
  205. ***** ^ not supported yet
  206. ***** ^ not supported yet
  207. ***** ^ not supported yet
  208. 112 GenLists.ListInsert( NameList, GenLists.ListCode, NdxFile^.AltKeys, 1 );
  209. ***** ^ not supported yet
  210. ***** ^ not supported yet
  211. ***** ^ not supported yet
  212. ***** ^ not supported yet
  213. ***** ^ not supported yet
  214. ***** ^ not supported yet
  215. ***** ^ not supported yet
  216. ***** ^ not supported yet
  217. 113 INC(AltKeysLen);
  218. ***** ^ undeclared identifier
  219. ***** ^ not supported yet
  220. 114 ELSE
  221. 115 GenLists.GetChildList( NdxFile^.AltKeys, 1, NameList );
  222. ***** ^ not supported yet
  223. ***** ^ not supported yet
  224. ***** ^ not supported yet
  225. ***** ^ not supported yet
  226. ***** ^ not supported yet
  227. 116 IF GenLists.ListLength(NameList) # (AltKeysLen - 1) THEN
  228. ***** ^ not supported yet
  229. ***** ^ not supported yet
  230. ***** ^ not supported yet
  231. 117 (*You could take this check out if you're not worried about
  232. 118 corruption.*)
  233. 119 ErrorNames.WarningName( 'BadAlt' );
  234. ***** ^ not supported yet
  235. ***** ^ not supported yet
  236. ***** ^ not supported yet
  237. 120 RETURN;
  238. 121 END;
  239. 122 END;
  240. 123 GenLists.NewList( FieldList );
  241. ***** ^ not supported yet
  242. ***** ^ not supported yet
  243. ***** ^ not supported yet
  244. 124 IF FieldLoaded( NdxFile, FieldName, spot ) THEN
  245. ***** ^ not supported yet
  246. ***** ^ not supported yet
  247. ***** ^ not supported yet
  248. ***** ^ not supported yet
  249. 125 SpotUsed := spot;
  250. 126 GenLists.ListReplace(FieldList, GenLists.ListCode,
  251. ***** ^ not supported yet
  252. ***** ^ not supported yet
  253. ***** ^ not supported yet
  254. ***** ^ not supported yet
  255. ***** ^ not supported yet
  256. 127 NdxFile^.AltKeys, SpotUsed + 1);
  257. ***** ^ not supported yet
  258. ***** ^ not supported yet
  259. ***** ^ not supported yet
  260. 128 (*ListReplace will dispose of the old list.*)
  261. 129 ELSE
  262. 130 GenLists.ListInsert( FieldName, GenLists.StrCode, NameList,
  263. ***** ^ not supported yet
  264. ***** ^ not supported yet
  265. ***** ^ not supported yet
  266. ***** ^ not supported yet
  267. ***** ^ not supported yet
  268. ***** ^ not supported yet
  269. 131 spot + 1);
  270. ***** ^ not supported yet
  271. 132 SpotUsed := spot + 1;
  272. 133 GenLists.ListInsert( FieldList, GenLists.ListCode,
  273. ***** ^ not supported yet
  274. ***** ^ not supported yet
  275. ***** ^ not supported yet
  276. ***** ^ not supported yet
  277. ***** ^ not supported yet
  278. 134 NdxFile^.AltKeys, SpotUsed + 1 );
  279. ***** ^ not supported yet
  280. ***** ^ not supported yet
  281. ***** ^ not supported yet
  282. 135 END;
  283. 136 END CreateAltList;
  284. ***** ^ not supported yet
  285. 137
  286. 138
  287. 139 PROCEDURE CriteriaMet( NdxFile: NdxTypes.NdxFileType; Criteria:
  288. ***** ^ not supported yet
  289. 140 GenLists.GenList; VAR CriteriaValid: BOOLEAN ): BOOLEAN;
  290. ***** ^ not supported yet
  291. 141 VAR
  292. 142 FieldSize, FieldSpot, lngth, ListSpot, TypeCode: CARDINAL;
  293. 143 TmpCriterion: Criterion;
  294. ***** ^ undeclared identifier
  295. 144 RunningResult, TmpResult: BOOLEAN;
  296. 145 FieldList: GenLists.GenList;
  297. ***** ^ not supported yet
  298. 146 FieldAdr: SYSTEM.ADDRESS;
  299. ***** ^ not supported yet
  300. 147 BEGIN
  301. 148 CriteriaValid := TRUE;
  302. 149 IF (NOT GenLists.Initialized(Criteria))
  303. ***** ^ not supported yet
  304. ***** ^ not supported yet
  305. ***** ^ not supported yet
  306. 150 OR (GenLists.ListLength(Criteria) = 0) THEN
  307. ***** ^ not supported yet
  308. ***** ^ not supported yet
  309. ***** ^ not supported yet
  310. 151 RETURN TRUE;
  311. 152 (*Means that if you don't pass a criteria list, everything
  312. 153 will match.*)
  313. 154 END;
  314. 155 ListSpot := 1;
  315. 156 lngth := GenLists.ListLength(Criteria);
  316. ***** ^ not supported yet
  317. ***** ^ not supported yet
  318. ***** ^ not supported yet
  319. 157 RunningResult := FALSE;
  320. 158 REPEAT
  321. 159 GenLists.GetElmt( Criteria, ListSpot, TmpCriterion, TypeCode );
  322. ***** ^ not supported yet
  323. ***** ^ not supported yet
  324. ***** ^ not supported yet
  325. ***** ^ not supported yet
  326. ***** ^ not supported yet
  327. 160 FieldList := NdxFile^.ListBuf;
  328. ***** ^ not supported yet
  329. ***** ^ not supported yet
  330. ***** ^ not supported yet
  331. 161 FieldSpot := 0;
  332. 162 IF (GenLists.ErrorFlag # GenLists.NoListError) OR
  333. ***** ^ not supported yet
  334. ***** ^ not supported yet
  335. ***** ^ not supported yet
  336. ***** ^ not supported yet
  337. 163 (TypeCode # CriterionCode) THEN
  338. ***** ^ undeclared identifier
  339. 164 ErrorNames.WarningName( 'Crit' );
  340. ***** ^ not supported yet
  341. ***** ^ not supported yet
  342. ***** ^ not supported yet
  343. 165 TmpResult := FALSE;
  344. 166 ELSIF NdxFiles.FindField(NdxFile^.StructLst,
  345. ***** ^ not supported yet
  346. ***** ^ not supported yet
  347. ***** ^ not supported yet
  348. ***** ^ not supported yet
  349. 167 TmpCriterion.field, FieldList, FieldSpot) THEN
  350. ***** ^ not supported yet
  351. ***** ^ not supported yet
  352. ***** ^ not supported yet
  353. ***** ^ not supported yet
  354. 168 GenLists.GetElmtAdr( FieldList, FieldSpot, FieldAdr,
  355. ***** ^ not supported yet
  356. ***** ^ not supported yet
  357. ***** ^ not supported yet
  358. ***** ^ not supported yet
  359. 169 FieldSize, TypeCode );
  360. ***** ^ not supported yet
  361. 170 TmpResult := TmpCriterion.determiner( FieldAdr,
  362. ***** ^ not supported yet
  363. ***** ^ not supported yet
  364. ***** ^ not supported yet
  365. 171 FieldSize, TypeCode, TmpCriterion.rule, CriteriaValid );
  366. ***** ^ not supported yet
  367. ***** ^ not supported yet
  368. ***** ^ not supported yet
  369. 172 ELSE
  370. 173 TmpResult := FALSE;
  371. 174 END;
  372. 175 CASE TmpCriterion.operator OF
  373. ***** ^ not supported yet
  374. ***** ^ not supported yet
  375. 176 and: RunningResult := RunningResult AND TmpResult;
  376. ***** ^ undeclared identifier
  377. 177 | or: RunningResult := RunningResult OR TmpResult;
  378. ***** ^ undeclared identifier
  379. 178 | AndNot: RunningResult := RunningResult AND (NOT TmpResult);
  380. ***** ^ undeclared identifier
  381. 179 ELSE
  382. 180 (*I'm assuming we can get here if range-checking is off.*)
  383. 181 ErrorNames.WarningName( 'Crit' );
  384. ***** ^ not supported yet
  385. ***** ^ not supported yet
  386. ***** ^ not supported yet
  387. 182 END;
  388. 183 INC( ListSpot );
  389. ***** ^ undeclared identifier
  390. ***** ^ not supported yet
  391. 184 UNTIL ListSpot > lngth;
  392. 185 RETURN RunningResult;
  393. 186 END CriteriaMet;
  394. ***** ^ not supported yet
  395. 187
  396. 188
  397. 189 PROCEDURE AddFieldContents( NdxFile: NdxTypes.NdxFileType; RecName,
  398. ***** ^ not supported yet
  399. 190 FieldName: ARRAY OF CHAR; ElmtAdr: SYSTEM.ADDRESS; ElmtSize: CARDINAL );
  400. ***** ^ not supported yet
  401. ***** ^ not supported yet
  402. 191 VAR
  403. 192 FieldList: GenLists.GenList;
  404. ***** ^ not supported yet
  405. 193 duml: LONGINT;
  406. 194 TypeCode, spot, dumc: CARDINAL;
  407. 195 BEGIN
  408. 196 IF NOT FieldLoaded( NdxFile, FieldName, spot ) THEN
  409. ***** ^ not supported yet
  410. ***** ^ not supported yet
  411. ***** ^ not supported yet
  412. ***** ^ not supported yet
  413. 197 ErrorNames.WarningName( 'AFC' );
  414. ***** ^ not supported yet
  415. ***** ^ not supported yet
  416. ***** ^ not supported yet
  417. 198 RETURN;
  418. 199 END;
  419. 200 IF NOT NdxBones.FindRecord(NdxFile, RecName, duml, dumc, dumc) THEN
  420. ***** ^ not supported yet
  421. ***** ^ not supported yet
  422. ***** ^ not supported yet
  423. ***** ^ not supported yet
  424. ***** ^ not supported yet
  425. 201 ErrorNames.WarningName( 'RecNam' );
  426. ***** ^ not supported yet
  427. ***** ^ not supported yet
  428. ***** ^ not supported yet
  429. 202 RETURN;
  430. 203 END;
  431. 204 GenLists.GetChildList( NdxFile^.AltKeys, spot + 1, FieldList );
  432. ***** ^ not supported yet
  433. ***** ^ not supported yet
  434. ***** ^ not supported yet
  435. ***** ^ not supported yet
  436. ***** ^ not supported yet
  437. 205 dumc := GenLists.ElmtNow( NdxFile^.Ndx );
  438. ***** ^ not supported yet
  439. ***** ^ not supported yet
  440. ***** ^ not supported yet
  441. ***** ^ not supported yet
  442. 206 GenLists.ListInsertAdr( ElmtAdr, ElmtSize + 2, TypeCode, FieldList,
  443. ***** ^ not supported yet
  444. ***** ^ not supported yet
  445. ***** ^ not supported yet
  446. ***** ^ not supported yet
  447. 207 GenLists.ListLength(FieldList) + 1 );
  448. ***** ^ not supported yet
  449. ***** ^ not supported yet
  450. ***** ^ not supported yet
  451. ***** ^ not supported yet
  452. 208 GenLists.GetElmtAdr( FieldList, GenLists.ListLength(FieldList), ElmtAdr,
  453. ***** ^ not supported yet
  454. ***** ^ not supported yet
  455. ***** ^ not supported yet
  456. ***** ^ not supported yet
  457. ***** ^ not supported yet
  458. ***** ^ not supported yet
  459. ***** ^ not supported yet
  460. 209 ElmtSize, TypeCode );
  461. ***** ^ not supported yet
  462. 210 (*Get the element's new data area.*)
  463. 211 LowLevel.ShiftArrayRight( ElmtAdr, ElmtSize, 2 );
  464. ***** ^ not supported yet
  465. ***** ^ not supported yet
  466. ***** ^ not supported yet
  467. ***** ^ not supported yet
  468. 212 (*Make room for the record identifier at the start of the
  469. 213 element's data area.*)
  470. 214 LowLevel.PokeWord( dumc, LowLevel.seg(ElmtAdr), LowLevel.ofs(ElmtAdr) );
  471. ***** ^ not supported yet
  472. ***** ^ not supported yet
  473. ***** ^ not supported yet
  474. ***** ^ not supported yet
  475. ***** ^ not supported yet
  476. ***** ^ not supported yet
  477. ***** ^ not supported yet
  478. ***** ^ not supported yet
  479. 215 (*Put the record identifier in the first two bytes of the
  480. 216 data area.*)
  481. 217 END AddFieldContents;
  482. ***** ^ not supported yet
  483. 218
  484. 219
  485. 220 PROCEDURE LoadAltList( VAR NdxFile: NdxTypes.NdxFileType;
  486. ***** ^ not supported yet
  487. 221 InList: GenLists.GenList; FieldName: ARRAY OF CHAR; Criteria:
  488. ***** ^ not supported yet
  489. ***** ^ not supported yet
  490. 222 GenLists.GenList): BOOLEAN;
  491. ***** ^ not supported yet
  492. 223 VAR
  493. 224 ListType, ListSpot, NameListLength, InListLength, TypeCode,
  494. 225 ElmtSize, AltFieldSpot, AltKeyListSpot: CARDINAL;
  495. 226 ElmtAdr: SYSTEM.ADDRESS;
  496. ***** ^ not supported yet
  497. 227 AltFieldList, AltKeyList: GenLists.GenList;
  498. ***** ^ not supported yet
  499. 228 TmpNdxRec: NdxTypes.NdxElement;
  500. ***** ^ not supported yet
  501. 229 CriteriaValid: BOOLEAN;
  502. 230 RecName: ARRAY [0..(NdxTypes.RecNameLength - 1)] OF CHAR;
  503. ***** ^ not supported yet
  504. ***** ^ not supported yet
  505. ***** ^ not supported yet
  506. ***** ^ not supported yet
  507. 231 BEGIN
  508. 232 (*LoadAltList*)
  509. 233 CriteriaValid := TRUE;
  510. 234 AltKeyListSpot := 1;
  511. 235 InListLength := GenLists.ListLength(InList);
  512. ***** ^ not supported yet
  513. ***** ^ not supported yet
  514. ***** ^ not supported yet
  515. 236 IF InListLength = 0 THEN
  516. 237 NameListLength := GenLists.ListLength(NdxFile^.Ndx);
  517. ***** ^ not supported yet
  518. ***** ^ not supported yet
  519. ***** ^ not supported yet
  520. ***** ^ not supported yet
  521. 238 ListType := NdxTypes.NdxTypeCode;
  522. ***** ^ not supported yet
  523. ***** ^ not supported yet
  524. 239 (*We set ListType to NdxTypeCode if there's no InList
  525. 240 because we're going to use the file's entire Ndx in this
  526. 241 situation.*)
  527. 242 ELSE
  528. 243 NameListLength := GenLists.ListLength(InList);
  529. ***** ^ not supported yet
  530. ***** ^ not supported yet
  531. ***** ^ not supported yet
  532. 244 ListType := ListUtils.TypeCheck( InList, 1 );
  533. ***** ^ not supported yet
  534. ***** ^ not supported yet
  535. ***** ^ not supported yet
  536. ***** ^ not supported yet
  537. 245 END;
  538. 246 ListSpot := 1;
  539. 247 REPEAT
  540. 248 CASE ListType OF
  541. 249 NdxTypes.NdxTypeCode:
  542. ***** ^ not supported yet
  543. ***** ^ not supported yet
  544. 250 IF GenLists.ListLength( NdxFile^.Ndx ) > 0 THEN
  545. ***** ^ not supported yet
  546. ***** ^ not supported yet
  547. ***** ^ not supported yet
  548. ***** ^ not supported yet
  549. 251 GenLists.GetElmt( NdxFile^.Ndx, ListSpot, TmpNdxRec, TypeCode );
  550. ***** ^ not supported yet
  551. ***** ^ not supported yet
  552. ***** ^ not supported yet
  553. ***** ^ not supported yet
  554. ***** ^ not supported yet
  555. ***** ^ not supported yet
  556. 252 StrEdit.AssignStr( TmpNdxRec.RecName, RecName );
  557. ***** ^ not supported yet
  558. ***** ^ not supported yet
  559. ***** ^ not supported yet
  560. ***** ^ not supported yet
  561. ***** ^ not supported yet
  562. 253 ELSE
  563. 254 RETURN FALSE;
  564. 255 END;
  565. 256 | AltKeyCode:
  566. ***** ^ undeclared identifier
  567. 257 GetMatchingKey( NdxFile, InList, ListSpot, RecName );
  568. ***** ^ undeclared identifier
  569. ***** ^ not supported yet
  570. ***** ^ not supported yet
  571. ***** ^ not supported yet
  572. 258 ELSE
  573. 259 (*We assume we have a list of valid record names.*)
  574. 260 GenLists.GetElmt( InList, ListSpot, RecName, TypeCode );
  575. ***** ^ not supported yet
  576. ***** ^ not supported yet
  577. ***** ^ not supported yet
  578. ***** ^ not supported yet
  579. ***** ^ not supported yet
  580. 261 END;
  581. 262 IF (M2Strings.Length( RecName ) > 0) AND
  582. ***** ^ not supported yet
  583. ***** ^ not supported yet
  584. ***** ^ not supported yet
  585. 263 NdxBones.InitBuffer( NdxFile, RecName) THEN
  586. ***** ^ not supported yet
  587. ***** ^ not supported yet
  588. ***** ^ not supported yet
  589. ***** ^ not supported yet
  590. 264 (*If Length(RecName) = 0, it's a garbage record.*)
  591. 265 (*InitBuffer does the actual record read, and returns
  592. 266 FALSE if the record does not exist *)
  593. 267 IF NOT FieldLoaded( NdxFile, FieldName, AltKeyListSpot ) THEN
  594. ***** ^ not supported yet
  595. ***** ^ not supported yet
  596. ***** ^ not supported yet
  597. ***** ^ not supported yet
  598. 268 (*AltKeyListSpot now represents the length of the
  599. 269 NameList, but CreateAltList will INC it.*)
  600. 270 CreateAltList( NdxFile, FieldName, AltKeyListSpot );
  601. ***** ^ not supported yet
  602. ***** ^ not supported yet
  603. ***** ^ not supported yet
  604. ***** ^ not supported yet
  605. 271 END;
  606. 272 IF PosUtils.Equal('KEY', FieldName) THEN
  607. ***** ^ not supported yet
  608. ***** ^ not supported yet
  609. ***** ^ not supported yet
  610. ***** ^ not supported yet
  611. 273 (*They just want the matching record names.*)
  612. 274 GenLists.GetChildList( NdxFile^.AltKeys, AltKeyListSpot + 1,
  613. ***** ^ not supported yet
  614. ***** ^ not supported yet
  615. ***** ^ not supported yet
  616. ***** ^ not supported yet
  617. 275 AltKeyList );
  618. ***** ^ not supported yet
  619. 276 IF CriteriaMet(NdxFile, Criteria, CriteriaValid) THEN
  620. ***** ^ not supported yet
  621. ***** ^ not supported yet
  622. ***** ^ not supported yet
  623. ***** ^ not supported yet
  624. 277 GenLists.ListInsert( RecName, GenLists.StrCode, AltKeyList,
  625. ***** ^ not supported yet
  626. ***** ^ not supported yet
  627. ***** ^ not supported yet
  628. ***** ^ not supported yet
  629. ***** ^ not supported yet
  630. ***** ^ not supported yet
  631. 278 GenLists.ListLength(AltKeyList) + 1 );
  632. ***** ^ not supported yet
  633. ***** ^ not supported yet
  634. ***** ^ not supported yet
  635. ***** ^ not supported yet
  636. 279 END;
  637. 280 ELSE
  638. 281 AltFieldList := NdxFile^.ListBuf;
  639. ***** ^ not supported yet
  640. ***** ^ not supported yet
  641. ***** ^ not supported yet
  642. 282 AltFieldSpot := 0;
  643. 283 IF NdxFiles.FindField(NdxFile^.StructLst, FieldName, AltFieldList,
  644. ***** ^ not supported yet
  645. ***** ^ not supported yet
  646. ***** ^ not supported yet
  647. ***** ^ not supported yet
  648. ***** ^ not supported yet
  649. ***** ^ not supported yet
  650. 284 AltFieldSpot) THEN
  651. ***** ^ not supported yet
  652. 285 IF CriteriaMet( NdxFile, Criteria, CriteriaValid ) THEN
  653. ***** ^ not supported yet
  654. ***** ^ not supported yet
  655. ***** ^ not supported yet
  656. ***** ^ not supported yet
  657. 286 GenLists.GetElmtAdr( AltFieldList, AltFieldSpot, ElmtAdr,
  658. ***** ^ not supported yet
  659. ***** ^ not supported yet
  660. ***** ^ not supported yet
  661. ***** ^ not supported yet
  662. 287 ElmtSize, TypeCode );
  663. ***** ^ not supported yet
  664. 288 IF (NOT (TypeCode = GenLists.ListCode)) THEN
  665. ***** ^ not supported yet
  666. ***** ^ not supported yet
  667. 289 AddFieldContents( NdxFile, RecName, FieldName,
  668. ***** ^ not supported yet
  669. ***** ^ not supported yet
  670. ***** ^ not supported yet
  671. ***** ^ not supported yet
  672. 290 ElmtAdr, ElmtSize );
  673. ***** ^ not supported yet
  674. ***** ^ not supported yet
  675. 291 ELSE
  676. 292 ErrorNames.WarningName( 'LstAlt' );
  677. ***** ^ not supported yet
  678. ***** ^ not supported yet
  679. ***** ^ not supported yet
  680. 293 END;
  681. 294 END;
  682. 295 END;
  683. 296 END;
  684. 297 END;
  685. 298 INC(ListSpot);
  686. ***** ^ undeclared identifier
  687. ***** ^ not supported yet
  688. 299 UNTIL (ListSpot > NameListLength) OR (NOT CriteriaValid);
  689. 300 (*We're at the end of the InList.*)
  690. 301 RETURN TRUE;
  691. 302 END LoadAltList;
  692. ***** ^ not supported yet
  693. 303
  694. 304
  695. 305 PROCEDURE DisposeAltList( VAR NdxFile: NdxTypes.NdxFileType; FieldName:
  696. ***** ^ not supported yet
  697. 306 ARRAY OF CHAR);
  698. ***** ^ not supported yet
  699. 307 VAR
  700. 308 NameList: GenLists.GenList;
  701. ***** ^ not supported yet
  702. 309 spot: CARDINAL;
  703. 310 BEGIN
  704. 311 IF NOT GenLists.Initialized( NdxFile^.AltKeys ) THEN
  705. ***** ^ not supported yet
  706. ***** ^ not supported yet
  707. ***** ^ not supported yet
  708. ***** ^ not supported yet
  709. 312 ErrorNames.WarningName('BadLst');
  710. ***** ^ not supported yet
  711. ***** ^ not supported yet
  712. ***** ^ not supported yet
  713. 313 RETURN;
  714. 314 END;
  715. 315 IF GenLists.ListLength( NdxFile^.AltKeys ) > 0 THEN
  716. ***** ^ not supported yet
  717. ***** ^ not supported yet
  718. ***** ^ not supported yet
  719. ***** ^ not supported yet
  720. 316 IF FieldLoaded( NdxFile, FieldName, spot ) THEN
  721. ***** ^ not supported yet
  722. ***** ^ not supported yet
  723. ***** ^ not supported yet
  724. ***** ^ not supported yet
  725. 317 GenLists.GetChildList( NdxFile^.AltKeys, 1, NameList );
  726. ***** ^ not supported yet
  727. ***** ^ not supported yet
  728. ***** ^ not supported yet
  729. ***** ^ not supported yet
  730. ***** ^ not supported yet
  731. 318 GenLists.ListDelete( NameList, spot, 1 );
  732. ***** ^ not supported yet
  733. ***** ^ not supported yet
  734. ***** ^ not supported yet
  735. ***** ^ not supported yet
  736. 319 (*Delete the FieldName.*)
  737. 320 GenLists.ListDelete( NdxFile^.AltKeys, spot + 1, 1 );
  738. ***** ^ not supported yet
  739. ***** ^ not supported yet
  740. ***** ^ not supported yet
  741. ***** ^ not supported yet
  742. ***** ^ not supported yet
  743. 321 (*Delete the list itself.*)
  744. 322 RETURN;
  745. 323 END;
  746. 324 END;
  747. 325 ErrorNames.WarningName( 'AltNam' );
  748. ***** ^ not supported yet
  749. ***** ^ not supported yet
  750. ***** ^ not supported yet
  751. 326 END DisposeAltList;
  752. ***** ^ not supported yet
  753. 327
  754. 328
  755. 329 PROCEDURE TallyAltLists(NdxFile: NdxTypes.NdxFileType; VAR
  756. ***** ^ not supported yet
  757. 330 TheList: GenLists.GenList);
  758. ***** ^ not supported yet
  759. 331 (*Returns a list of the field names that have AltLists
  760. 332 presently loaded.*)
  761. 333 VAR
  762. 334 NameList: GenLists.GenList;
  763. ***** ^ not supported yet
  764. 335 BEGIN
  765. 336 IF (GenLists.Initialized( NdxFile^.AltKeys ))
  766. ***** ^ not supported yet
  767. ***** ^ not supported yet
  768. ***** ^ not supported yet
  769. ***** ^ not supported yet
  770. 337 AND (GenLists.ListLength( NdxFile^.AltKeys ) > 0) THEN
  771. ***** ^ not supported yet
  772. ***** ^ not supported yet
  773. ***** ^ not supported yet
  774. ***** ^ not supported yet
  775. 338 GenLists.GetChildList( NdxFile^.AltKeys, 1, NameList );
  776. ***** ^ not supported yet
  777. ***** ^ not supported yet
  778. ***** ^ not supported yet
  779. ***** ^ not supported yet
  780. ***** ^ not supported yet
  781. 339 GenLists.CopyList( NameList, TheList );
  782. ***** ^ not supported yet
  783. ***** ^ not supported yet
  784. ***** ^ not supported yet
  785. ***** ^ not supported yet
  786. 340 ELSE
  787. 341 ErrorNames.WarningName( 'AltNam' );
  788. ***** ^ not supported yet
  789. ***** ^ not supported yet
  790. ***** ^ not supported yet
  791. 342 END;
  792. 343 END TallyAltLists;
  793. ***** ^ not supported yet
  794. 344
  795. 345
  796. 346 PROCEDURE GetAltList( NdxFile: NdxTypes.NdxFileType; FieldName: ARRAY OF
  797. ***** ^ not supported yet
  798. 347 CHAR; VAR AltList: GenLists.GenList): BOOLEAN;
  799. ***** ^ not supported yet
  800. ***** ^ not supported yet
  801. 348 (*Note that this returns the real AltList, so the first two
  802. 349 bytes of each data area will be the record identifier. You
  803. 350 have to get rid of those things with ShiftArrayLeft.*)
  804. 351 VAR
  805. 352 spot: CARDINAL;
  806. 353 BEGIN
  807. 354 IF FieldLoaded( NdxFile, FieldName, spot ) THEN
  808. ***** ^ not supported yet
  809. ***** ^ not supported yet
  810. ***** ^ not supported yet
  811. ***** ^ not supported yet
  812. 355 GenLists.GetChildList( NdxFile^.AltKeys, spot + 1, AltList );
  813. ***** ^ not supported yet
  814. ***** ^ not supported yet
  815. ***** ^ not supported yet
  816. ***** ^ not supported yet
  817. ***** ^ not supported yet
  818. 356 IF GenLists.ErrorFlag = GenLists.NoListError THEN
  819. ***** ^ not supported yet
  820. ***** ^ not supported yet
  821. ***** ^ not supported yet
  822. ***** ^ not supported yet
  823. 357 RETURN TRUE;
  824. 358 ELSE
  825. 359 RETURN FALSE;
  826. 360 END;
  827. 361 ELSE
  828. 362 RETURN FALSE;
  829. 363 END;
  830. 364 END GetAltList;
  831. ***** ^ not supported yet
  832. 365
  833. 366
  834. 367 PROCEDURE GetMatchingKey( NdxFile: NdxTypes.NdxFileType; AltList:
  835. ***** ^ not supported yet
  836. 368 GenLists.GenList; spot: CARDINAL; VAR RecName: ARRAY OF CHAR );
  837. ***** ^ not supported yet
  838. ***** ^ not supported yet
  839. 369
  840. 370 (*Pass this procedure an AltKeyList (i.e., the kind of list
  841. 371 that has a record number and a field value in every
  842. 372 element) and the position of an element in that list, and
  843. 373 it returns in RecName the name of the record from which the
  844. 374 field value was read.*)
  845. 375 VAR
  846. 376 RecordNumber, AltKeySize, TypeCode: CARDINAL;
  847. 377 AltKeyAdr: SYSTEM.ADDRESS;
  848. ***** ^ not supported yet
  849. 378 TmpNdxRec: NdxTypes.NdxElement;
  850. ***** ^ not supported yet
  851. 379 BEGIN
  852. 380 GenLists.GetElmtAdr( AltList, spot, AltKeyAdr, AltKeySize, TypeCode );
  853. ***** ^ not supported yet
  854. ***** ^ not supported yet
  855. ***** ^ not supported yet
  856. ***** ^ not supported yet
  857. ***** ^ not supported yet
  858. 381 IF (TypeCode # AltKeyCode) THEN
  859. ***** ^ undeclared identifier
  860. 382 LowLevel.Move( AltKeyAdr, SYSTEM.ADR(RecName), AltKeySize );
  861. ***** ^ not supported yet
  862. ***** ^ not supported yet
  863. ***** ^ not supported yet
  864. ***** ^ not supported yet
  865. ***** ^ not supported yet
  866. ***** ^ not supported yet
  867. ***** ^ not supported yet
  868. 383 (* 28 Nov 88: added this so that GetMatchingKey can be
  869. 384 used with AltKeyLists that contain only record names. *)
  870. 385 ELSE
  871. 386 LowLevel.Move( AltKeyAdr, SYSTEM.ADR(RecordNumber), 2 );
  872. ***** ^ not supported yet
  873. ***** ^ not supported yet
  874. ***** ^ not supported yet
  875. ***** ^ not supported yet
  876. ***** ^ not supported yet
  877. ***** ^ not supported yet
  878. ***** ^ not supported yet
  879. 387 GenLists.GetElmt( NdxFile^.Ndx, RecordNumber, TmpNdxRec, TypeCode );
  880. ***** ^ not supported yet
  881. ***** ^ not supported yet
  882. ***** ^ not supported yet
  883. ***** ^ not supported yet
  884. ***** ^ not supported yet
  885. ***** ^ not supported yet
  886. 388 StrEdit.AssignStr( TmpNdxRec.RecName, RecName );
  887. ***** ^ not supported yet
  888. ***** ^ not supported yet
  889. ***** ^ not supported yet
  890. ***** ^ not supported yet
  891. ***** ^ not supported yet
  892. 389 END;
  893. 390 END GetMatchingKey;
  894. ***** ^ not supported yet
  895. 391
  896. 392
  897. 393 PROCEDURE GetMatchingKeys( NdxFile: NdxTypes.NdxFileType; AltList:
  898. ***** ^ not supported yet
  899. 394 GenLists.GenList; VAR KeyList: GenLists.GenList): BOOLEAN;
  900. ***** ^ not supported yet
  901. ***** ^ not supported yet
  902. 395 (*Returns a RecNameList that contains only records presently in
  903. 396 the AltList.*)
  904. 397 VAR
  905. 398 spot, lngth: CARDINAL;
  906. 399 RecName: ARRAY [0..(NdxTypes.RecNameLength - 1)] OF CHAR;
  907. ***** ^ not supported yet
  908. ***** ^ not supported yet
  909. ***** ^ not supported yet
  910. ***** ^ not supported yet
  911. 400 BEGIN
  912. 401 IF NOT GenLists.Initialized(AltList) THEN
  913. ***** ^ not supported yet
  914. ***** ^ not supported yet
  915. ***** ^ not supported yet
  916. 402 ErrorNames.WarningName('BadLst');
  917. ***** ^ not supported yet
  918. ***** ^ not supported yet
  919. ***** ^ not supported yet
  920. 403 RETURN FALSE;
  921. 404 END;
  922. 405 lngth := GenLists.ListLength( AltList );
  923. ***** ^ not supported yet
  924. ***** ^ not supported yet
  925. ***** ^ not supported yet
  926. 406 FOR spot := 1 TO lngth DO
  927. 407 GetMatchingKey( NdxFile, AltList, spot, RecName );
  928. ***** ^ not supported yet
  929. ***** ^ not supported yet
  930. ***** ^ not supported yet
  931. ***** ^ not supported yet
  932. 408 IF GenLists.ErrorFlag = GenLists.NoListError THEN
  933. ***** ^ not supported yet
  934. ***** ^ not supported yet
  935. ***** ^ not supported yet
  936. ***** ^ not supported yet
  937. 409 GenLists.ListInsert( RecName, RecNameCode, KeyList, spot );
  938. ***** ^ not supported yet
  939. ***** ^ not supported yet
  940. ***** ^ not supported yet
  941. ***** ^ undeclared identifier
  942. ***** ^ not supported yet
  943. ***** ^ not supported yet
  944. 410 END;
  945. 411 END;
  946. 412 RETURN TRUE;
  947. 413 END GetMatchingKeys;
  948. ***** ^ not supported yet
  949. 414
  950. 415
  951. 416 PROCEDURE StrSelector( TheAdr: SYSTEM.ADDRESS; TheSize, TypeCode:
  952. ***** ^ not supported yet
  953. 417 CARDINAL; TheRule: ARRAY OF CHAR; VAR CriteriaValid:
  954. ***** ^ not supported yet
  955. 418 BOOLEAN): BOOLEAN;
  956. 419 (*This will be assigned to a SelectProc variable.*)
  957. 420 VAR
  958. 421 TmpStr: ARRAY [0..255] OF CHAR;
  959. ***** ^ not supported yet
  960. ***** ^ not supported yet
  961. 422 TmpResult, SubSize, SubType, leng, cnt: CARDINAL;
  962. 423 SubAddr: SYSTEM.ADDRESS;
  963. ***** ^ not supported yet
  964. 424 SubList: GenLists.GenList;
  965. ***** ^ not supported yet
  966. 425 found: BOOLEAN;
  967. 426 BEGIN
  968. 427 IF (TypeCode = GenLists.StrCode) THEN
  969. ***** ^ not supported yet
  970. ***** ^ not supported yet
  971. 428 IF M2Strings.Length( TheRule ) = 0 THEN
  972. ***** ^ not supported yet
  973. ***** ^ not supported yet
  974. ***** ^ not supported yet
  975. 429 RETURN TRUE;
  976. 430 END;
  977. 431 IF TheSize > (HIGH(TmpStr)+1) THEN
  978. ***** ^ undeclared identifier
  979. ***** ^ not supported yet
  980. 432 TheSize := (HIGH(TmpStr)+1);
  981. ***** ^ undeclared identifier
  982. ***** ^ not supported yet
  983. 433 END;
  984. 434 LowLevel.Move( TheAdr, SYSTEM.ADR(TmpStr), TheSize );
  985. ***** ^ not supported yet
  986. ***** ^ not supported yet
  987. ***** ^ not supported yet
  988. ***** ^ not supported yet
  989. ***** ^ not supported yet
  990. ***** ^ not supported yet
  991. ***** ^ not supported yet
  992. 435 TmpResult := StrLogic.ExpressionTest( TmpStr, TheRule );
  993. ***** ^ not supported yet
  994. ***** ^ not supported yet
  995. ***** ^ not supported yet
  996. ***** ^ not supported yet
  997. 436 CriteriaValid := StrLogic.StrLogicErrorLevel = 0;
  998. ***** ^ not supported yet
  999. ***** ^ not supported yet
  1000. 437 RETURN ( TmpResult > 0);
  1001. 438 ELSIF (TypeCode = GenLists.ListCode) THEN
  1002. ***** ^ not supported yet
  1003. ***** ^ not supported yet
  1004. 439 IF NOT GenLists.AdrToList( TheAdr, TheSize, SubList ) THEN
  1005. ***** ^ not supported yet
  1006. ***** ^ not supported yet
  1007. ***** ^ not supported yet
  1008. ***** ^ not supported yet
  1009. 440 RETURN FALSE;
  1010. 441 END;
  1011. 442 leng := GenLists.ListLength(SubList);
  1012. ***** ^ not supported yet
  1013. ***** ^ not supported yet
  1014. ***** ^ not supported yet
  1015. 443 found := FALSE;
  1016. 444 cnt := 1;
  1017. 445 WHILE (cnt <= leng) AND (NOT found) DO
  1018. 446 GenLists.GetElmtAdr( SubList, cnt, SubAddr, SubSize, SubType );
  1019. ***** ^ not supported yet
  1020. ***** ^ not supported yet
  1021. ***** ^ not supported yet
  1022. ***** ^ not supported yet
  1023. ***** ^ not supported yet
  1024. 447 (*We ought to be able to do a recursive call here, but for
  1025. 448 some reason it causes a stack overflow.*)
  1026. 449 IF (SubType = GenLists.StrCode) THEN
  1027. ***** ^ not supported yet
  1028. ***** ^ not supported yet
  1029. 450 IF M2Strings.Length( TheRule ) = 0 THEN
  1030. ***** ^ not supported yet
  1031. ***** ^ not supported yet
  1032. ***** ^ not supported yet
  1033. 451 RETURN TRUE;
  1034. 452 END;
  1035. 453 IF SubSize > (HIGH(TmpStr)+1) THEN
  1036. ***** ^ undeclared identifier
  1037. ***** ^ not supported yet
  1038. 454 SubSize := (HIGH(TmpStr)+1);
  1039. ***** ^ undeclared identifier
  1040. ***** ^ not supported yet
  1041. 455 END;
  1042. 456 LowLevel.Move( SubAddr, SYSTEM.ADR(TmpStr), SubSize );
  1043. ***** ^ not supported yet
  1044. ***** ^ not supported yet
  1045. ***** ^ not supported yet
  1046. ***** ^ not supported yet
  1047. ***** ^ not supported yet
  1048. ***** ^ not supported yet
  1049. ***** ^ not supported yet
  1050. 457 TmpResult := StrLogic.ExpressionTest( TmpStr, TheRule );
  1051. ***** ^ not supported yet
  1052. ***** ^ not supported yet
  1053. ***** ^ not supported yet
  1054. ***** ^ not supported yet
  1055. 458 CriteriaValid := StrLogic.StrLogicErrorLevel = 0;
  1056. ***** ^ not supported yet
  1057. ***** ^ not supported yet
  1058. 459 found := TmpResult > 0;
  1059. 460 END;
  1060. 461 INC(cnt);
  1061. ***** ^ undeclared identifier
  1062. ***** ^ not supported yet
  1063. 462 END;
  1064. 463 RETURN found;
  1065. 464 END;
  1066. 465 RETURN FALSE;
  1067. 466 END StrSelector;
  1068. ***** ^ not supported yet
  1069. 467
  1070. 468
  1071. 469 PROCEDURE AddCriteria( CriteriaList: GenLists.GenList; op: LogicOperator;
  1072. ***** ^ not supported yet
  1073. ***** ^ undeclared identifier
  1074. 470 TheSelectProc: SelectProc; TheRule, FieldName: ARRAY OF CHAR );
  1075. ***** ^ undeclared identifier
  1076. ***** ^ not supported yet
  1077. 471 VAR
  1078. 472 TmpCriterion: Criterion;
  1079. ***** ^ undeclared identifier
  1080. 473 BEGIN
  1081. 474 IF NOT GenLists.Initialized( CriteriaList ) THEN
  1082. ***** ^ not supported yet
  1083. ***** ^ not supported yet
  1084. ***** ^ not supported yet
  1085. 475 ErrorNames.WarningName('BadLst');
  1086. ***** ^ not supported yet
  1087. ***** ^ not supported yet
  1088. ***** ^ not supported yet
  1089. 476 RETURN;
  1090. 477 END;
  1091. 478 StrEdit.AssignStr( FieldName, TmpCriterion.field );
  1092. ***** ^ not supported yet
  1093. ***** ^ not supported yet
  1094. ***** ^ not supported yet
  1095. ***** ^ not supported yet
  1096. ***** ^ not supported yet
  1097. 479 StrEdit.AssignStr( TheRule, TmpCriterion.rule );
  1098. ***** ^ not supported yet
  1099. ***** ^ not supported yet
  1100. ***** ^ not supported yet
  1101. ***** ^ not supported yet
  1102. ***** ^ not supported yet
  1103. 480 TmpCriterion.operator := op;
  1104. ***** ^ not supported yet
  1105. ***** ^ not supported yet
  1106. ***** ^ not supported yet
  1107. 481 TmpCriterion.determiner := TheSelectProc;
  1108. ***** ^ not supported yet
  1109. ***** ^ not supported yet
  1110. ***** ^ not supported yet
  1111. 482 GenLists.ListInsert( TmpCriterion, CriterionCode,
  1112. ***** ^ not supported yet
  1113. ***** ^ not supported yet
  1114. ***** ^ not supported yet
  1115. ***** ^ undeclared identifier
  1116. 483 CriteriaList, GenLists.ListLength(CriteriaList) + 1 );
  1117. ***** ^ not supported yet
  1118. ***** ^ not supported yet
  1119. ***** ^ not supported yet
  1120. ***** ^ not supported yet
  1121. ***** ^ not supported yet
  1122. 484 END AddCriteria;
  1123. ***** ^ not supported yet
  1124. 485
  1125. 486 BEGIN
  1126. 487 Initialized := FALSE;
  1127. 488 Init();
  1128. ***** ^ not supported yet
  1129. ***** ^ not supported yet
  1130. 489 END AltKeys.
  1131. ***** ^ not supported yet
  1132. 641 errors