home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Visual Database / Visual Foxpro 6.0 (Ent. Edition) / Vf6ent Extractor.EXE / COVERAGE.APP (.txt) < prev    next >
Encoding:
MS Visual FoxPro App  |  1998-05-26  |  454.0 KB  |  11,123 lines

  1. TALKv
  2. cov_standard
  3. COVERAGE.VCX
  4. oTemp.BaseClassb
  5. Your coverage analysis is saved asC
  6. Some source files could not be located;
  7. their names are saved in a second table
  8. Coverage Profiler
  9. cov_standard
  10. TCFILE
  11. TLUNATTENDED
  12. TCADDIN
  13. OTEMP
  14. CALIAS
  15. LSUCCESS
  16. LSETTALKBACKON
  17. CAPPFILE
  18. CLIBS
  19. CUNATTENDEDMESSAGE
  20. CSAVEDTARGET
  21. CSAVEDSKIPPEDFILES
  22. FINDAPPFILE
  23. CSAVEDTARGETDBF
  24. CSAVEDSKIPFILES
  25. RELEASE
  26. PROCEDURE
  27. CFILENAME
  28. CSYS16
  29. ILEVEL
  30. FindAppFile
  31. PLATFORM
  32. UNIQUEID
  33. TIMESTAMP
  34. CLASS
  35. CLASSLOC
  36. BASECLASS
  37. OBJNAME
  38. PARENT
  39. PROPERTIES
  40. PROTECTED
  41. METHODS
  42. OBJCODE
  43. RESERVED1
  44. RESERVED2
  45. RESERVED3
  46. RESERVED4
  47. RESERVED5
  48. RESERVED6
  49. RESERVED7
  50. RESERVED8
  51.  COMMENT Class               
  52.  WINDOWS _RKB0NOW1Y 582513910
  53.  COMMENT RESERVED            
  54.  WINDOWS _RKC0TLT43 584276765
  55.  COMMENT RESERVED            
  56.  WINDOWS _RKC0TK86D 584276775
  57.  COMMENT RESERVED            
  58.  WINDOWS _RKA168O8P 584276786
  59.  COMMENT RESERVED            
  60.  WINDOWS _RKA15Q5XG 584276815
  61.  COMMENT RESERVED            
  62.  WINDOWS _RKA16D662 584276848
  63.  COMMENT RESERVED            
  64.  WINDOWS _RKC0TP7PY 584276856
  65.  COMMENT RESERVED            
  66.  WINDOWS _RKA169PDA 584276868
  67.  COMMENT RESERVED            
  68.  WINDOWS _RKA16ADRP 584276875
  69.  COMMENT RESERVED            
  70.  WINDOWS _RKD0PKSSY 584276882
  71.  WINDOWS _RKD0PMCPR 584276882
  72.  COMMENT RESERVED            
  73.  WINDOWS _RKA16FYVN 584276913
  74.  COMMENT RESERVED            
  75.  WINDOWS _RKA1679VC 584276922
  76.  COMMENT RESERVED            
  77.  WINDOWS _RKB0N1P9K 584276941V
  78.  COMMENT RESERVED            
  79.  WINDOWS _RKA16ESVS 584276949>
  80.  COMMENT RESERVED            
  81.  WINDOWS _RKA16ED68 584276960&
  82.  COMMENT RESERVED            
  83.  WINDOWS _RKC0T0X5H 584276968
  84.  COMMENT RESERVED            
  85.  WINDOWS _RKV01GTSG 584418232>
  86.  WINDOWS _RKV01O98J 582487188
  87.  COMMENT RESERVED            
  88.  WINDOWS _RKI0UFURT 591950576+
  89.  WINDOWS _RKI0VVV94 591950576W
  90.  WINDOWS _RKI0VVV9L 584273240P
  91.  WINDOWS _RKI0VVVAF 591950576
  92.  WINDOWS _RKI0VVVBK 584273240
  93.  WINDOWS _RKI0VVVCD 584273240
  94.  WINDOWS _RKT0V2HLQ 591950577E
  95.  COMMENT RESERVED            
  96.  WINDOWS _RKC10MKO8 593252865S
  97.  COMMENT RESERVED            
  98.  WINDOWS _RKI06PTSJ 609582447
  99.  WINDOWS _RKA16ESVS 583229544
  100.  WINDOWS _RKU0OQYO9 583229544
  101.  WINDOWS _RKA16ESVS 609582447}
  102.  WINDOWS _RKA169PDA 609582447v
  103.  WINDOWS _RKA169PDA 6095824478
  104.  WINDOWS _RKA169PDA 584276532.
  105.  WINDOWS _RKA169PDA 609582447
  106.  WINDOWS _RKI1BJPDQ 609582447
  107.  WINDOWS _RKA169PDA 609582447
  108.  WINDOWS _RKA169PDA 584276532
  109.  WINDOWS _RKI1BJPF8 584276532
  110.  WINDOWS _RKI1BJPFP 609582447y
  111.  WINDOWS _RKA169PDA 609582447q
  112.  WINDOWS _RKA169PDA 583229545i
  113.  WINDOWS _RKI1BJPHM 583229545V
  114.  WINDOWS _RKI1BJPGN 609582447I
  115.  WINDOWS _RKA169PDA 609582447
  116.  WINDOWS _RKI1CJHHU 609582447
  117.  WINDOWS _RKT0VSUM8 609582447
  118.  WINDOWS _RKT0VSUN2 609582447
  119.  WINDOWS _RKA169PDA 609582447
  120.  WINDOWS _RKT0VSUNY 609582447
  121.  WINDOWS RESERVED   609582447
  122.  WINDOWS _RKU0OQYPQ 609582447
  123.  COMMENT RESERVED            
  124.  WINDOWS _RKG0YPXRA 611480161[
  125.  WINDOWS _RKA169PDA 611480161
  126.  WINDOWS RESERVED   611480161
  127.  WINDOWS _RKT0WW9CV 611480161
  128.  WINDOWS _RKA169PDA 611480161a
  129.  WINDOWS _RKG0YZK30 584276737#
  130.  WINDOWS _RKG0YZK42 609112424
  131.  WINDOWS _RKA16D662 584276737    
  132.  WINDOWS _RKI0JF4K7 611480161y
  133.  WINDOWS _RKI0JF4LM 611480161q
  134.  COMMENT RESERVED            
  135.  WINDOWS _RKI0IS45F 611482027
  136.  WINDOWS _RKI0J3OT4 5831410389
  137.  WINDOWS _RKI0J3OTN 583141038#
  138.  WINDOWS _RKI0J3OU6 583141038
  139.  WINDOWS _RKI0J3OV7 583141038
  140.  WINDOWS _RKI0J3OVQ 583141038
  141.  WINDOWS _RKI0J3OW9 583141038z
  142.  WINDOWS _RKI0J3OWS 583141038i
  143.  WINDOWS _RKI0J3OXC 583141038a
  144.  WINDOWS _RKI0J3OYE 583141038#
  145.  WINDOWS _RKI0J3OXU 611480044
  146.  COMMENT RESERVED            
  147.  WINDOWS _RKI05X4G2 612080728
  148.  WINDOWS _RKI062JGR 612080728
  149.  COMMENT RESERVED            
  150.  WINDOWS _RKA141JIM 612110498]
  151.  COMMENT RESERVED            
  152.  WINDOWS _RKV021YA2 612112522
  153.  COMMENT RESERVED            
  154.  WINDOWS _RKD0WHP62 612114153k
  155.  WINDOWS _RKA16D662 612114153
  156.  WINDOWS _RKV0HM1ZK 591566010
  157.  WINDOWS _RKV0HM211 584276398
  158.  WINDOWS _RKV0HM23P 612114153t
  159.  WINDOWS _RKV0HM24V 582514056P
  160.  WINDOWS _RKV0HM26T 612068303
  161.  WINDOWS _RKV0HM298 582514056
  162.  WINDOWS _RKV0HM2B6 612114153&
  163.  WINDOWS _RKV0HM2CB 591568326
  164.  WINDOWS _RKA16ESVS 612114153
  165.  WINDOWS _RKV0HM2GR 584276398l
  166.  WINDOWS _RKD12GENE 596135458N
  167.  WINDOWS _RKD12GEO5 612114153E
  168.  WINDOWS _RKD12GEOK 588096153
  169.  COMMENT RESERVED            
  170.  WINDOWS _RKC0TULUO 612115882
  171.  COMMENT RESERVED            
  172.  WINDOWS _RKV02Q18N 612848714
  173.  COMMENT RESERVED            
  174.  WINDOWS _RKD0XE6V6 612852471S
  175.  WINDOWS _RKD0YU5E1 612852472Y
  176.  COMMENT RESERVED            
  177. VERSION =   3.00
  178. U(8~f
  179. scov_toolbar
  180. PixelsqL
  181. qt%6M
  182. coverage superclass
  183. Class
  184. toolbar
  185. scov_toolbar
  186. lerror
  187. coverage.h
  188. cov_char.h
  189. cov_locs.h&
  190. cov_dlgs.h.
  191. cov_spec.h6
  192. cov_regs.h>
  193. cov_tune.hF
  194. JMS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  195. Arial, 1, 9, 6, 15, 12, 13, 3, 0
  196. cov_addindialog
  197. coverage.h
  198. Pixels
  199. $PROCEDURE Init
  200.    RETURN NOT THIS.lError
  201. ENDPROC
  202. PROCEDURE Error
  203.    LPARAMETERS nError, cMethod, nLine
  204.    THIS.lError = .T.
  205.    IF TYPE("THISFORMSET.BaseClass") = "C"
  206.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  207.    ELSE
  208.       Error nError
  209.    ENDIF
  210. ENDPROC
  211. -Caption = "Toolbar1"
  212. Name = "scov_toolbar"
  213. toolbar
  214. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  215. scov_textbox
  216. Pixels
  217. coverage superclass
  218. Class
  219. textbox
  220. scov_textbox
  221. lerror
  222. Class
  223. cov_modaldialog
  224. cov_addindialog
  225. AutoSize = .T.
  226. BackStyle = 1
  227. Caption = "Add-Ins"
  228. Height = 15
  229. Left = 16
  230. Top = 10
  231. Width = 38
  232. TabIndex = 3
  233. Name = "lblTitle"
  234. cov_maindialog_standard0.000,,frmemployee.pageframe1.pag
  235. )PROCEDURE Init
  236.    RETURN NOT THIS.lError
  237. ENDPROC
  238. PROCEDURE Error
  239.    LPARAMETERS nError, cMethod, nLine
  240.    THIS.lError = .T.
  241.    IF TYPE("THISFORMSET.BaseClass") = "C"
  242.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  243.    ELSE
  244.       Error nError
  245.    ENDIF
  246. ENDPROC
  247. [FontName = "MS Sans Serif"
  248. FontSize = 8
  249. Height = 23
  250. Width = 100
  251. Name = "scov_textbox"
  252. textbox
  253. scov_shapeW
  254. zQ[K"
  255. Pixels
  256. coverage superclass
  257. 1    c!Sy
  258. Class.
  259. shapeG 6
  260. scov_shape
  261. lerror
  262. cov_addindialog.
  263. lblTitle
  264. label
  265. coverage.vcx
  266. scov_label
  267. coverage.h
  268. cov_char.h
  269. cov_locs.h&
  270. cov_dlgs.h.
  271. cov_spec.h6
  272. cov_regs.h>
  273. cov_tune.hF
  274. #PROCEDURE Error
  275.    LPARAMETERS nError, cMethod, nLine
  276.    THIS.lError = .T.
  277.    IF TYPE("THISFORMSET.BaseClass") = "C"
  278.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  279.    ELSE
  280.       Error nError
  281.    ENDIF
  282. ENDPROC
  283. PROCEDURE Init
  284.    RETURN NOT THIS.lError
  285. ENDPROC
  286. .Height = 68
  287. Width = 68
  288. Name = "scov_shape"
  289. shape
  290. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  291. scov_optiongroup
  292. Pixels
  293. coverage superclass
  294. Classl
  295. optiongroup
  296. scov_optiongroup
  297. lerror
  298. PROCEDURE Error
  299.    LPARAMETERS nError, cMethod, nLine
  300.    THIS.lError = .T.
  301.    THISFORM.Error(nError, THIS.Name+":"+cMethod, nLine)
  302. ENDPROC
  303. PROCEDURE Click
  304.    THISFORM.GetAddIn()
  305. ENDPROC
  306. PROCEDURE Init
  307.    THIS.Caption = "..."
  308. ENDPROC
  309. cov_addindialog.
  310. cmdPicKFile
  311. cov_statistics
  312. Pixels
  313. 0container holding statistics on a file or object
  314. AutoSize = .F.
  315. Top = 31
  316. Left = 322
  317. Height = 21
  318. Width = 21
  319. Caption = "..."
  320. TabIndex = 5
  321. ZOrderSet = 5
  322. Name = "cmdPicKFile"
  323. OMS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  324. Courier New, 0, 8, 7, 14, 11, 7, 3, 0
  325. coverage.h,c:\program files\studio98\vfp98\samples\tastr
  326. 9PROCEDURE Error
  327.    LPARAMETERS nError, cMethod, nLine
  328.    THIS.lError = .T.
  329.    IF TYPE("THISFORMSET.BaseClass") = "C"
  330.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  331.    ELSE
  332.       Error nError
  333.    ENDIF
  334. ENDPROC
  335. PROCEDURE Option1.Error
  336.    LPARAMETERS nError, cMethod, nLine
  337.    THIS.Parent.Error(nError, cMethod, nLine)
  338. ENDPROC
  339. PROCEDURE Option1.Init
  340.    IF EMPTY(THIS.Caption+THIS.Picture) AND ;
  341.          (NOT EMPTY(THIS.ToolTipText) )
  342.       THIS.Caption = THIS.ToolTipText
  343.    ENDIF
  344. ENDPROC
  345. PROCEDURE Option2.Init
  346.    IF EMPTY(THIS.Caption+THIS.Picture) AND ;
  347.          (NOT EMPTY(THIS.ToolTipText) )
  348.       THIS.Caption = THIS.ToolTipText
  349.    ENDIF
  350. ENDPROC
  351. PROCEDURE Option2.Error
  352.    LPARAMETERS nError, cMethod, nLine
  353.    THIS.Parent.Error(nError, cMethod, nLine)
  354. ENDPROC
  355. ButtonCount = 2
  356. Value = 1
  357. Height = 46
  358. Width = 71
  359. Name = "scov_optiongroup"
  360. Option1.FontName = "MS Sans Serif"
  361. Option1.FontSize = 8
  362. Option1.Caption = "Option1"
  363. Option1.Value = 1
  364. Option1.Height = 17
  365. Option1.Left = 5
  366. Option1.Top = 5
  367. Option1.Width = 61
  368. Option1.Name = "Option1"
  369. Option2.FontName = "MS Sans Serif"
  370. Option2.FontSize = 8
  371. Option2.Caption = "Option2"
  372. Option2.Height = 17
  373. Option2.Left = 5
  374. Option2.Top = 24
  375. Option2.Width = 61
  376. Option2.Name = "Option2"
  377. optiongroupQ
  378. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  379. scov_listbox#*sI
  380. Pixels
  381. coverage superclass
  382. Class
  383. listbox
  384. scov_listbox
  385. lerror
  386. commandbutton
  387. coverage.vcx
  388. scov_commandbutton
  389. FontBold = .T.
  390. Value = ("")
  391. Height = 22
  392. Left = 16
  393. TabIndex = 4
  394. Top = 31
  395. Width = 302
  396. ZOrderSet = 4
  397. Name = "cboFileToRun"
  398. Class
  399. cov_addindialog.
  400. $PROCEDURE Error
  401.    LPARAMETERS nError, cMethod, nLine
  402.    THIS.lError = .T.
  403.    IF TYPE("THISFORMSET.BaseClass") = "C"
  404.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  405.    ELSE
  406.       Error nError
  407.    ENDIF
  408. ENDPROC
  409. PROCEDURE Init
  410.    RETURN NOT THIS.lError
  411. ENDPROC
  412. \FontName = "MS Sans Serif"
  413. FontSize = 8
  414. Height = 170
  415. Width = 100
  416. Name = "scov_listbox"
  417. listbox
  418. scov_label
  419. Pixels
  420. coverage superclass
  421. Class
  422. label
  423. scov_label
  424. lerror
  425. cboFileToRun
  426. combobox
  427. coverage.vcx
  428. scov_combobox
  429. scov_container
  430. cov_addindialog.
  431. chkRegisterAddIns
  432. $PROCEDURE Init
  433.    RETURN NOT THIS.lError
  434. ENDPROC
  435. PROCEDURE Error
  436.    LPARAMETERS nError, cMethod, nLine
  437.    THIS.lError = .T.
  438.    IF TYPE("THISFORMSET.BaseClass") = "C"
  439.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  440.    ELSE
  441.       Error nError
  442.    ENDIF
  443. ENDPROC
  444. {FontName = "MS Sans Serif"
  445. FontSize = 8
  446. BackStyle = 0
  447. Caption = "Label1"
  448. Height = 17
  449. Width = 40
  450. Name = "scov_label"
  451. label
  452. coverage.hf
  453. cov_char.hn
  454. cov_locs.hv
  455. cov_dlgs.h~
  456. cov_spec.h
  457. cov_regs.h
  458. cov_tune.h
  459. scov_formset
  460. coverage.h
  461. coverage superclass
  462. Class
  463. formset
  464. scov_formset
  465. BHeight = 22
  466. Left = 0
  467. Top = 0
  468. Width = 33
  469. Name = "cov_toolbar"
  470. scov_formset.
  471. cov_toolbar
  472. Pixels
  473. toolbar
  474. coverage.vcx
  475. scov_toolbar
  476. lerror
  477. iPROCEDURE InteractiveChange
  478.    THISFORM.CheckOKToRun()
  479. ENDPROC
  480. PROCEDURE Error
  481.    LPARAMETERS nError, cMethod, nLine
  482.    THIS.lError = .T.
  483.    THISFORM.Error(nError, THIS.Name+":"+cMethod, nLine)
  484. ENDPROC
  485. PROCEDURE ProgrammaticChange
  486.    THISFORM.CheckOKToRun()
  487. ENDPROC
  488. PROCEDURE Valid
  489.    THISFORM.CheckOKToRun()
  490. ENDPROC
  491. PROCEDURE Init
  492.    RETURN NOT THIS.lError
  493. ENDPROC
  494. PROCEDURE Error
  495.    LPARAMETERS nError, cMethod, nLine
  496.    COV_DEBUG_MESSAGE
  497.    COV_DEBUG_ACTION
  498.    THIS.lError = .T.
  499. ENDPROC
  500. Name = "scov_formset"
  501. eyValues[m.nKeyEntry,2] = REG_UNK
  502. formsetou will need to use ASC() to check values here.
  503. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  504.      aKeyValues
  505.     scov_formm.lpbData,m.lpcbData-1)
  506.       CASE lpdwType = 
  507. Pixels CASE lpdwType = REG_SZ
  508.          aKeyValues[m.nKe
  509. coverage superclasseft(m.lpszValue,m.lpcchValue)
  510.       
  511. Class
  512.     scov_form
  513. lerror
  514. cov_statistics
  515. FontBold = .T.
  516. BackStyle = 1
  517. Caption = "File or Class Name"
  518. Height = 15
  519. Left = 5
  520. Top = 0
  521. Width = 233
  522. ZOrderSet = 9
  523. Name = "lblName"
  524. cov_statistics.
  525. lblName
  526. label
  527. coverage.vcx
  528. $PROCEDURE Init
  529.    RETURN NOT THIS.lError
  530. ENDPROC
  531. PROCEDURE Error
  532.    LPARAMETERS nError, cMethod, nLine
  533.    THIS.lError = .T.
  534.    IF TYPE("THISFORMSET.BaseClass") = "C"
  535.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  536.    ELSE
  537.       Error nError
  538.    ENDIF
  539. ENDPROC
  540. nDoCreate = .T.
  541. Caption = "Coverage Base Form"
  542. FontName = "MS Sans Serif"
  543. FontSize = 8
  544. Name = "scov_form"
  545.    IF m.nE
  546. form   EXIT
  547.       ENDCASE
  548.       cNewKey = ALLTRIM(m.
  549. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  550.   CASE m.nErrCo
  551. scov_editboxnCurrentKey,m.nKeyEntry,@cNewKey,@nKeySize,0
  552. Pixelsf)
  553.       cRetTime=SPACE(100)
  554.       m.nErrCode 
  555. coverage superclassey)
  556.       cbuf=SPACE(100)
  557.       nbu
  558. Class
  559.       nKeySize = 0
  560.       cNewKey = SPACE(100)
  561. 1etTime
  562.    nKeyEntry = 0
  563.    DIMENSION aKeyNames[1]
  564. editboxmes
  565.    LOCAL nKeyEntry,cNewKey,cNewSize,cbuf,n
  566. scov_editbox  &&close key
  567.    RETURN m.nErrNum
  568.    LPA
  569. lerror
  570. scov_label
  571. MHeight = 0
  572. Left = 27
  573. Top = 53
  574. Width = 52
  575. ZOrderSet = 10
  576. Name = "Line2"
  577. cov_statistics.
  578. Line2
  579. PROCEDURE Error
  580.    LPARAMETERS nError, cMethod, nLine
  581.    THIS.lError = .T.
  582.    THISFORM.Error(nError, THIS.Name+":"+cMethod, nLine)
  583. ENDPROC
  584. $PROCEDURE Error
  585.    LPARAMETERS nError, cMethod, nLine
  586.    THIS.lError = .T.
  587.    IF TYPE("THISFORMSET.BaseClass") = "C"
  588.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  589.    ELSE
  590.       Error nError
  591.    ENDIF
  592. ENDPROC
  593. PROCEDURE Init
  594.    RETURN NOT THIS.lError
  595. ENDPROC
  596. [FontName = "MS Sans Serif"
  597. FontSize = 8
  598. Height = 53
  599. Width = 100
  600. Name = "scov_editbox"
  601. editbox cOptName,cOptVal,cKeyPath,nUserKey
  602.    LOCAL iPo
  603. scov_custom"ResWidth",@cValue,;
  604.    *      "Software\Mic
  605. Pixels * This routine gets a registry key setting
  606.    * 
  607. coverage superclassKey()      &&close key
  608.    RETURN m.n
  609. ClassIS.SetKeyValue(m.cOptName,m.cOptVal)
  610.    * Close 
  611. 1   RETURN m.nErrNum
  612.    ENDIF
  613.    * Set Key value
  614. custom
  615. scov_custom
  616. lerror
  617. Top = 61
  618. Left = 16
  619. Height = 15
  620. Width = 172
  621. AutoSize = .T.
  622. BackStyle = 0
  623. Caption = "Register this Add-In after running"
  624. TabIndex = 6
  625. ZOrderSet = 3
  626. Name = "chkRegisterAddIns"
  627. checkbox
  628. coverage.vcx
  629. scov_checkbox
  630. cov_addindialog.
  631.     cmdCancel
  632. !PROCEDURE Init
  633.    RETURN NOT THIS.lError
  634. ENDPROC
  635. PROCEDURE Error
  636.    LPARAMETERS nError, cMethod, nLine
  637.    THIS.lError = .T.
  638.    IF TYPE("THISFORMSET.BaseClass") = "C"
  639.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  640.    ELSE
  641.       Error nError
  642.    ENDIF
  643. ENDPROC
  644. Name = "scov_custom"
  645.   RETURN m.nErrNum
  646.    ENDIF
  647. custom"L"
  648.       lEnumKeys = .F.
  649.    ENDIF
  650.    * Open 
  651. scov_containertion,nErrNum
  652.    iPos = 0
  653.    cOption = ""
  654. PixelsARAMETER aRegOpts,cOptPath,nUserKey,lEnumKeys
  655. coverage superclassgh all entries for a key and populate
  656. ClassDeleteKey(m.nUserKey,m.cKeyPath)
  657.    RETURN m.nErrN
  658.     container
  659. scov_container
  660. cov_optionsdialog
  661. AutoSize = .T.
  662. Alignment = 0
  663. Caption = "% Coverage"
  664. Left = 87
  665. Top = 73
  666. Width = 59
  667. ZOrderSet = 8
  668. Name = "lblPercentCaption"
  669. cov_statistics.
  670. lblPercentCaption
  671. label
  672. coverage.vcx
  673. PROCEDURE Error
  674.    LPARAMETERS nError, cMethod, nLine
  675.    THIS.lError = .T.
  676.    THISFORM.Error(nError, THIS.Name+":"+cMethod, nLine)
  677. ENDPROC
  678. PROCEDURE Click
  679.    THISFORM.SetAddIn("")
  680.    THISFORM.oCoverageEngine = .NULL.
  681.    THISFORM.Release()
  682. ENDPROC
  683. commandbutton
  684. APROCEDURE synchsizes
  685.    LOCAL nContainerWidth, nContainerWidth, ;
  686.       nContainerSpacer, oControl
  687.    #DEFINE nContainerTopMargin SYSMETRIC(3)
  688.    nContainerWidth =  THIS.BorderWidth
  689.    nContainerHeight = THIS.BorderWidth * 2
  690.    nContainerSpacer = (THIS.BorderWidth*2) + nContainerTopMargin
  691.    FOR EACH oControl IN THIS.Controls
  692.       nContainerHeight = MAX(nContainerHeight, ;
  693.          (oControl.Height  + ;
  694.          nContainerSpacer) )
  695.       oControl.Left    = nContainerWidth
  696.       oControl.Top     = nContainerTopMargin
  697.       nContainerWidth  = nContainerWidth + oControl.WIDTH
  698.    ENDFOR
  699.    WITH THIS
  700.       .WIDTH = nContainerWidth
  701.       .Height = nContainerHeight
  702.    ENDWITH
  703.    THISFORM.nToolCount = THIS.ControlCount
  704.    RETURN NOT THIS.lError
  705. ENDPROC
  706. PROCEDURE Error
  707.    LPARAMETERS nError, cMethod, nLine
  708.    THIS.lError = .T.
  709.    IF TYPE("THISFORMSET.BaseClass") = "C"
  710.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  711.    ELSE
  712.       Error nError
  713.    ENDIF
  714. ENDPROC
  715. PROCEDURE Init
  716.    RETURN NOT THIS.lError
  717. ENDPROC
  718. 4Width = 200
  719. Height = 200
  720. Name = "scov_container"
  721.     container Windows 95
  722.       THIS.ncurrentos = OS_WIN95
  723. Pixels\employee.sct,3
  724.       0.000,,frmemployee.pageframe
  725. $main dialog for coverage standard UIdio98\vfp98\samples\
  726. Class\forms\employee.sct,6
  727.       0.014,,frmemployee.page
  728. Top = 0
  729. Left = 0
  730. Height = 191
  731. Width = 305
  732. ShowWindow = 1
  733. DoCreate = .T.
  734. Caption = "Zoom Marked Code"
  735. Visible = .F.
  736. Icon = ("coverage.ico")
  737. KeyPreview = .T.
  738. Name = "cov_zoomdialog"
  739. reate = .T.
  740. Caption = "Form1"
  741. Name = "Form1"
  742. Mode)
  743. AutoSize = .F.
  744. Top = 46
  745. Left = 361
  746. Height = 23
  747. Width = 75
  748. Cancel = .T.
  749. Caption = "Cancel"
  750. TabIndex = 2
  751. ZOrderSet = 2
  752. Name = "cmdCancel"
  753. coverage.vcx
  754. scov_commandbutton
  755. fTop = 17
  756. Left = 7
  757. Height = 71
  758. Width = 346
  759. SpecialEffect = 0
  760. ZOrderSet = 0
  761. Name = "SCOV_SHAPE1"
  762. cov_addindialog.
  763. SCOV_SHAPE1
  764. shape
  765. coverage.vcx
  766. scov_shape
  767. coverage.h
  768. EHeight = 95
  769. Width = 443
  770. DoCreate = .T.
  771. Caption = "Coverage Add-Ins"
  772. HelpContextID = 1895825780
  773. Name = "cov_addindialog"
  774. CMDOK.AutoSize = .F.
  775. CMDOK.Top = 17
  776. CMDOK.Left = 361
  777. CMDOK.Height = 23
  778. CMDOK.Width = 75
  779. CMDOK.Cancel = .F.
  780. CMDOK.Caption = "Run"
  781. CMDOK.TabIndex = 1
  782. CMDOK.ZOrderSet = 1
  783. CMDOK.Name = "CMDOK"
  784. formred to the data table used by the app.
  785. > -----Ori
  786. coverage.vcxo keep meta since folks might think that cAp
  787. scov_label
  788. AutoSize = .T.
  789. Alignment = 0
  790. Caption = "Missed"
  791. Height = 15
  792. Left = 87
  793. Top = 38
  794. Width = 35
  795. BackColor = 0,0,0
  796. ZOrderSet = 7
  797. Name = "lblNotCoveredCaption"
  798. cov_statistics.
  799. lblNotCoveredCaption
  800. label
  801. coverage.vcx
  802. scov_label
  803. 15mployee.refresh,11,c:\program files\studio98\vfp98\sam
  804. cov_maindialogples\tastrade\forms\employee.sct,6
  805.       0
  806. cov_maindialog_standard
  807. jFontName = "Courier New"
  808. Height = 228
  809. Left = 0
  810. TabIndex = 3
  811. Top = 167
  812. Width = 392
  813. Name = "edtCode"
  814. .028,,frmemplo
  815. AutoSize = .F.
  816. Alignment = 1
  817. Caption = "0"
  818. Height = 17
  819. Left = 31
  820. Top = 73
  821. Width = 48
  822. ZOrderSet = 6
  823. Name = "lblPercent"
  824. cov_statistics.
  825. lblPercent
  826. label
  827. olecontrol
  828. CAPTION
  829. coverage.vcx
  830. :Height = 43
  831. Width = 151
  832. Name = "scov_commonfiledialog"
  833. NERROR
  834. CMETHOD
  835. NLINE
  836. coverage.vcx
  837. scov_label
  838. |AutoSize = .T.
  839. Alignment = 0
  840. Caption = "Total"
  841. Left = 87
  842. Top = 58
  843. Width = 26
  844. ZOrderSet = 5
  845. Name = "lblTotalCaption"
  846. cov_statistics.
  847. lblTotalCaption
  848. label
  849. coverage.vcx
  850. scov_label
  851. cov_statistics.
  852. vAutoSize = .F.
  853. BackStyle = 0
  854. BorderStyle = 0
  855. Value = 1
  856. Height = 22
  857. SpecialEffect = 1
  858. WIDTH = 46
  859. Name = "cov_picturetoggle"
  860. Option1.FontName = "MS Sans Serif"
  861. Option1.FontSize = 8
  862. Option1.Caption = ("")
  863. Option1.Value = 1
  864. Option1.Height = 22
  865. Option1.Left = 0
  866. Option1.SpecialEffect = 1
  867. Option1.Style = 1
  868. Option1.Top = 0
  869. Option1.WIDTH = 23
  870. Option1.Name = "Option1"
  871. Option2.FontName = "MS Sans Serif"
  872. Option2.FontSize = 8
  873. Option2.Caption = ("")
  874. Option2.Value = 0
  875. Option2.Height = 22
  876. Option2.Left = 23
  877. Option2.SpecialEffect = 1
  878. Option2.Style = 1
  879. Option2.Top = 0
  880. Option2.WIDTH = 23
  881. Option2.Name = "Option2"
  882. AutoSize = .T.
  883. Alignment = 0
  884. Caption = "Hit"
  885. Height = 15
  886. Left = 87
  887. Top = 23
  888. Width = 15
  889. ZOrderSet = 4
  890. Name = "lblCoveredCaption"
  891. lblCoveredCaption
  892. label
  893. ,OLEObject = C:\WINDOWS\SYSTEM\COMDLG32.OCX
  894. lforcesearch Forces .InitDir to "" when the dialog shows up rather than allowing the calling method to guess at it based on current surroundings.
  895. cov_dlgs.h
  896. scov_commondialog
  897. cov_dlgs.h
  898. Pixels
  899. OBASELA
  900. MS CommDlg (<-OLEControl)
  901. Class
  902. FontName
  903. FontNam
  904. olecontrol
  905. scov_commondialog
  906. lerror
  907. (OLEObject = C:\WIN\SYSTEM\COMDLG32.OCX
  908. 28C4C820-401A-101B-A3C9-08002B2F49FB
  909. PROCEDURE DragDrop
  910.    LPARAMETERS oSource, nXCoord, nYCoord
  911.    THISFORM.RespondToSplitter(nYCoord - THISFORM.shpSplitter.Height)
  912.    RETURN NOT THIS.lError
  913. ENDPROC
  914. PROCEDURE RightClick
  915.    THISFORMSET.StandardRightClick()
  916. ENDPROC
  917. cov_maindialog_standard.tastrade\forms\employee.sct,4
  918. edtCode4
  919.       0.000,,frmemployee.refreshform,5,c:\progr
  920. coverage.vcx
  921. scov_label
  922. cov_statistics.
  923. lblTotal
  924. PROCEDURE Error
  925.    LPARAMETERS nError, cMethod, nLine
  926.    THIS.lError = .T.
  927.    IF TYPE("THISFORMSET.BaseClass") = "C"
  928.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  929.    ELSE
  930.       Error nError
  931.    ENDIF
  932. ENDPROC
  933. PROCEDURE Init
  934.    RETURN (NOT THIS.lError)
  935. ENDPROC
  936. PROCEDURE SHOWOPEN
  937.    *** OLE Control Method ***
  938. ENDPROC
  939. PROCEDURE SHOWSAVE
  940.    *** OLE Control Method ***
  941. ENDPROC
  942. PROCEDURE ShowHelp
  943.    *** OLE Control Method ***
  944. ENDPROC
  945. 7Height = 100
  946. Width = 100
  947. Name = "scov_commondialog"
  948. olecontrol
  949. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  950. scov_commandbutton
  951. Pixels
  952. coverage superclass
  953. Class
  954. commandbutton
  955. scov_commandbutton
  956. lerror
  957. editbox
  958. coverage.vcx
  959. scov_editbox
  960. cov_maindialog_standard.
  961. AutoSize = .F.
  962. Alignment = 1
  963. Caption = "0"
  964. Height = 17
  965. Left = 31
  966. Top = 58
  967. Width = 48
  968. BackColor = 0,0,0
  969. ZOrderSet = 3
  970. Name = "lblTotal"
  971. label
  972. coverage.vcx
  973. PROCEDURE Init
  974.    IF EMPTY(THIS.Picture) AND ;
  975.          (NOT EMPTY(THIS.ToolTipText) )
  976.       THIS.Caption = THIS.ToolTipText
  977.    ELSE
  978.       THIS.Caption = ""
  979.    ENDIF
  980.    RETURN NOT THIS.lError
  981. ENDPROC
  982. PROCEDURE Error
  983.    LPARAMETERS nError, cMethod, nLine
  984.    THIS.lError = .T.
  985.    IF TYPE("THISFORMSET.BaseClass") = "C"
  986.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  987.    ELSE
  988.       Error nError
  989.    ENDIF
  990. ENDPROC
  991. AutoSize = .T.
  992. Height = 23
  993. Width = 148
  994. FontName = "MS Sans Serif"
  995. FontSize = 8
  996. WordWrap = .F.
  997. Caption = "Coverage Command Button"
  998. Style = 0
  999. Name = "scov_commandbutton"
  1000. commandbutton
  1001. !Arial, 0, 9, 5, 15, 12, 13, 3, 0
  1002. scov_combobox
  1003. Pixels
  1004. coverage superclass
  1005. Class
  1006. *MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  1007. combobox
  1008. scov_combobox
  1009. lerror
  1010. scov_label
  1011. AutoSize = .F.
  1012. Alignment = 1
  1013. Caption = "0"
  1014. Height = 17
  1015. Left = 31
  1016. Top = 23
  1017. Width = 48
  1018. ZOrderSet = 2
  1019. Name = "lblCovered"
  1020. cov_statistics.
  1021. lblCovered
  1022. label
  1023. coverage.vcx
  1024. !PROCEDURE Error
  1025.    LPARAMETERS nError, cMethod, nLine
  1026.    THIS.lError = .T.
  1027.    IF TYPE("THISFORMSET.BaseClass") = "C"
  1028.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  1029.    ELSE
  1030.       Error nError
  1031.    ENDIF
  1032. ENDPROC
  1033. PROCEDURE Init
  1034.    RETURN NOT THIS.lError
  1035. ENDPROC
  1036. ocs.Width
  1037. THIS.Adjus
  1038. 2Height = 24
  1039. Width = 100
  1040. Name = "scov_combobox"
  1041. nLine)
  1042. comboboxMinWidth)
  1043. THIS.MinHeight = MAX(nHeight,THIS.Min
  1044. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  1045. ".Top") + ;
  1046. scov_checkboxme+".Width") + ;
  1047.             EVAL("THIS."+
  1048. Pixelsidth, nHeight
  1049. IF DODEFAULT(cName,cClass)
  1050.    nWid
  1051. coverage superclassDURE AddObject
  1052. LPARAMETERS cName, cC
  1053. ClassLLTR(STR(.Width - THIS.iLeftListColWidth))
  1054. ENDWITH
  1055. 1umnWidths =  ;
  1056.     ALLTR(STR(THIS.iLeftListColWidth))+
  1057. checkboxumnwidths
  1058. WITH THIS.lstAvailableObjectsAndProcs
  1059. scov_checkbox
  1060. lerror
  1061. PROCEDURE Init
  1062.    STORE THISFORM.BackColor TO THIS.BackColor, ;
  1063.       THIS.BorderColor, ;
  1064.       THIS.FillColor
  1065.       
  1066.       
  1067. ENDPROC
  1068. PROCEDURE RightClick
  1069.    THISFORMSET.StandardRightClick()
  1070. ENDPROC
  1071. scov_label
  1072. AutoSize = .F.
  1073. Alignment = 1
  1074. Caption = "0"
  1075. Height = 17
  1076. Left = 31
  1077. Top = 38
  1078. Width = 48
  1079. ZOrderSet = 1
  1080. Name = "lblNotCovered"
  1081. cov_statistics.
  1082. PROCEDURE Init
  1083.    IF EMPTY(THIS.Caption+THIS.Picture) AND ;
  1084.          (NOT EMPTY(THIS.ToolTipText) )
  1085.       THIS.Caption = THIS.ToolTipText
  1086.    ENDIF
  1087.    RETURN NOT THIS.lError
  1088. ENDPROC
  1089. PROCEDURE Error
  1090.    LPARAMETERS nError, cMethod, nLine
  1091.    THIS.lError = .T.
  1092.    IF TYPE("THISFORMSET.BaseClass") = "C"
  1093.       THISFORMSET.Error(nError,THIS.Name+":"+cMethod,nLine)
  1094.    ELSE
  1095.       Error nError
  1096.    ENDIF
  1097. ENDPROC
  1098. oHeight = 17
  1099. Width = 60
  1100. FontName = "MS Sans Serif"
  1101. FontSize = 8
  1102. Caption = "Check1"
  1103. Name = "scov_checkbox"
  1104. checkboxHIS.cntTools.Height TO ;
  1105.       THIS.lstAvailabl
  1106. lblNotCovered
  1107. label
  1108. DragMode = 1
  1109. DragIcon = ("ho_split.cur")
  1110. DefLeft = 
  1111. Top = 161
  1112. Left = (-THISFORM.nmargin)
  1113. Height = 2
  1114. Width = 404
  1115. BorderWidth = 0
  1116. FillStyle = 0
  1117. MousePointer = 7
  1118. Name = "shpSplitter"
  1119. coverage.vcx
  1120. scov_label
  1121. *setfileorclassnamecaption Sets lblName caption from a passed string, evaluating width.  If string is too long for lblName's width, truncates value on left side with ".." before assigning the value to the label caption.  Shows as much as possible of the original value.
  1122. )MS Sans Serif, 0, 8, 7, 16, 13, 14, 3, 0
  1123. stry}
  1124. cov_statisticsdialogr
  1125. markonetargetrecord
  1126. cov_engine
  1127. shpSplitter
  1128. shape
  1129. coverage.vcx
  1130. scov_shape
  1131. ColumnCount = 2
  1132. ColumnWidths = (STR(THISFORM.WIDTH/2)+","+STR(THISFORM.WIDTH*2))
  1133. RowSourceType = 6
  1134. Value = 1
  1135. Height = 132
  1136. Left = 0
  1137. TabIndex = 2
  1138. Top = 37
  1139. Width = 392
  1140. IntegralHeight = .T.
  1141. Name = "lstAvailableObjectsAndProcs"
  1142. cov_maindialog_standard.
  1143. lstAvailableObjectsAndProcs
  1144. listbox
  1145. coverage.vcx
  1146. scov_listbox
  1147.  cov_maindialog_standard.cntTools.
  1148. coverage.h
  1149. cov_char.h
  1150. cov_locs.h&
  1151. cov_dlgs.h.
  1152. cov_spec.h6
  1153. cov_regs.h>
  1154. cov_tune.hF
  1155. Unloadm
  1156. Error
  1157. coverage.h
  1158. clearstatus
  1159. markalltargetreco
  1160. Pixels
  1161. lockscreens
  1162. getregisteredaddins
  1163. opgPreviewZoomMode
  1164. optiongroup
  1165. coverage.vcx
  1166. *statistics dialog for coverage standard UIsa
  1167. Class
  1168. cov_modaldialog
  1169. cov_statisticsdialog
  1170. cov_statisticsdialog.ursor
  1171. setupworkfiles
  1172. cntClassesCoveredileislog
  1173. fillfiletypearray
  1174.     containerogfile
  1175. suspendcoverage
  1176. resume
  1177. OMS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  1178. Courier New, 0, 8, 7, 14, 11, 7, 3, 0
  1179. coverage.h
  1180. cov_char.h
  1181. cov_locs.h&
  1182. cov_dlgs.h.
  1183. cov_spec.h6
  1184. cov_regs.h>
  1185. cov_tune.hF
  1186. /*setaddin Sets engine settings for current addin and whether to register addin based on choices in this dialog.
  1187. *getaddin Calls engine GetResourceLocation() method to get the name of a file to run as an addin.
  1188. *checkoktorun Disables run button if no addin filename has been indicated in the textbox.
  1189. Pixels
  1190. 'options dialog for coverage standard UI
  1191. cov_picturetoggle
  1192. coverage.h
  1193. Class
  1194. 4PROCEDURE Init
  1195.    THIS.Visible = .F.
  1196. ENDPROC
  1197. coverage.vcx
  1198. setuioptions
  1199. passedproperpar
  1200. cov_statistics
  1201. cov_statisticsdialog.
  1202. cntLinesCovered
  1203. UTop = 0
  1204. Left = 189
  1205. Height = 17
  1206. Width = 6
  1207. BackColor = 0,0,0
  1208. Name = "shpSpacer3"
  1209. .fxp,6
  1210.       0.000,,toolbarenabled,
  1211.  cov_maindialog_standard.cntTools.,toolbarenabled,71,util
  1212.     container
  1213. coverage.vcx
  1214. cov_statistics
  1215. PROCEDURE setaddin
  1216.    LPARAMETERS tcFile
  1217.    LOCAL cFile
  1218.    cFile = ALLTR(tcFile)
  1219.    WITH THIS.oCoverageEngine
  1220.       .caddin = cFile
  1221.       IF (.lUsingRegistry AND THIS.chkRegisterAddIns.Value)
  1222.          .lRegisterAddIn = .T.
  1223.       ELSE
  1224.          .lRegisterAddIn = .F.
  1225.       ENDIF
  1226.    ENDWITH
  1227. ENDPROC
  1228. PROCEDURE getaddin
  1229.    THIS.cboFileToRun.DisplayValue = ;
  1230.       THIS.oCoverageEngine.GetResourceLocation(;
  1231.       "", ;
  1232.       COV_GETADDINFILE_TITLE_LOC, ;
  1233.       COV_ALLFILES_LOC+" (*.*)|*.*", ;
  1234.       THIS.cboFileToRun.DisplayValue, ;
  1235.       "GETFILE")
  1236. ENDPROC
  1237. PROCEDURE checkoktorun
  1238.    THIS.cmdOK.Enabled = (NOT EMPTY(THIS.cboFileToRun.DisplayValue))
  1239. ENDPROC
  1240. PROCEDURE Error
  1241.    LPARAMETERS nError, cMethod, nLine
  1242.    THIS.oCoverageEngine.Error(nError, THIS.Name+":"+cMethod, nLine)
  1243. ENDPROC
  1244. PROCEDURE Init
  1245.    LPARAMETERS toEngineRef
  1246.    LOCAL lReturn, cAddInFile
  1247.    lReturn = DODEFAULT(toEngineRef)
  1248.    IF lReturn
  1249.       THIS.Caption = COV_DIALOG_CAPTION_LOC +" "+COV_ADDINS_LOC
  1250.       THIS.chkRegisterAddIns.Caption = COV_ADDIN_REGISTER_LOC
  1251.       THIS.cmdOK.Caption = COV_ADDIN_RUN_LOC
  1252.       THIS.cmdCancel.Caption = COV_CANCEL_LOC
  1253.       THIS.lblTitle.Caption = COV_ADDINS_LOC
  1254.       IF NOT THIS.oCoverageEngine.lUsingRegistry
  1255.          THIS.chkRegisterAddIns.Enabled = .F.
  1256.       ELSE
  1257.          FOR EACH cAddInFile IN THIS.oCoverageEngine.aAddIns
  1258.             IF TYPE("cAddInFile") = "C" AND NOT EMPTY(cAddInFile)
  1259.                THIS.cboFileToRun.AddItem(cAddInFile)
  1260.             ENDIF
  1261.          ENDFOR
  1262.          THIS.chkRegisterAddIns.Value = THIS.oCoverageEngine.lRegisterAddIn
  1263.       ENDIF
  1264.       STORE THIS.oCoverageEngine.cAddIn TO ;
  1265.          THIS.cboFileToRun.DisplayValue
  1266.    ENDIF
  1267. ENDPROC
  1268. PROCEDURE CMDOK.Error
  1269.    LPARAMETERS nError, cMethod, nLine
  1270.    THIS.lError = .T.
  1271.    THISFORM.Error(nError, THIS.Name+":"+cMethod, nLine)
  1272. ENDPROC
  1273. PROCEDURE CMDOK.Click
  1274.    THISFORM.SetAddIn(THISFORM.cboFileToRun.DisplayValue)
  1275.    THISFORM.oCoverageEngine = .NULL.
  1276.    THISFORM.Release()
  1277. ENDPROC
  1278. coverage.h
  1279. cov_char.h
  1280. cov_locs.h
  1281. cov_dlgs.h
  1282. cov_spec.h
  1283. cov_regs.h
  1284. cov_tune.h
  1285. Class
  1286. shpSpacer3toolbarenabled,76,utility.fxp,6
  1287.       0.000,,f
  1288. shape
  1289. coverage.vcx
  1290. DWidth = 243
  1291. Height = 89
  1292. BorderWidth = 0
  1293. Name = "cov_statistics"
  1294. FORM.FontName OR ;
  1295.    THIS.lblName.FontSize # THISF
  1296. scov_shape
  1297. cov_modaldialog
  1298. cov_optionsdialog
  1299. cov_optionsdialog.
  1300. PROCEDURE Click
  1301.    THISFORM.oCoverageEngine.ShowSkippedFiles()
  1302. ENDPROC
  1303. PROCEDURE Init
  1304.    THIS.Caption = COV_STATS_VIEW_FILES_SKIPPED_LOC
  1305. ENDPROC
  1306. cov_statisticsdialog.
  1307. AutoSize = .T.
  1308. FontBold = .F.
  1309. BackStyle = 1
  1310. Caption = "Environment"
  1311. Height = 15
  1312. Left = 200
  1313. Top = 168
  1314. Width = 61
  1315. TabIndex = 15
  1316. ZOrderSet = 23
  1317. Name = "lblEnvironment"
  1318. lblEnvironment
  1319. label
  1320. AutoSize = .F.
  1321. Top = 159
  1322. Left = 307
  1323. Height = 23
  1324. Width = 138
  1325. Caption = "Source Files Skipped"
  1326. TabIndex = 8
  1327. ZOrderSet = 5
  1328. Name = "cmdSkipped"
  1329. coverage.vcx
  1330. scov_label
  1331. AutoSize = .T.
  1332. FontBold = .F.
  1333. BackStyle = 1
  1334. Caption = "Start mode"
  1335. Height = 15
  1336. Left = 200
  1337. Top = 101
  1338. Width = 53
  1339. TabIndex = 13
  1340. ZOrderSet = 23
  1341. Name = "lblStartMode"
  1342. cov_optionsdialog.
  1343. lblStartMode
  1344. label
  1345. coverage.vcx
  1346. scov_label
  1347. AutoSize = .T.
  1348. FontBold = .F.
  1349. BackStyle = 1
  1350. Caption = "Options"
  1351. Height = 15
  1352. Left = 16
  1353. Top = 10
  1354. Width = 38
  1355. TabIndex = 3
  1356. ZOrderSet = 22
  1357. Name = "lblOptions"
  1358. cov_optionsdialog.
  1359. cmdSkipped
  1360. coverage.vcxmaindialogectstatistics
  1361.    LPARAMETERS tcSo
  1362. lblOptions
  1363. label
  1364. coverage.vcx
  1365. scov_label
  1366. AutoSize = .T.
  1367. FontBold = .F.
  1368. BackStyle = 1
  1369. Caption = "Fonts"
  1370. Height = 15
  1371. Left = 16
  1372. Top = 235
  1373. Width = 28
  1374. TabIndex = 17
  1375. ZOrderSet = 21
  1376. Name = "lblFonts"
  1377. cov_optionsdialog.
  1378. lblFonts
  1379. label
  1380. coverage.vcx
  1381. scov_label
  1382. AutoSize = .T.
  1383. Alignment = 0
  1384. Caption = "Not executed:"
  1385. Height = 15
  1386. Left = 16
  1387. Top = 157
  1388. Width = 69
  1389. TabIndex = 10
  1390. ZOrderSet = 20
  1391. Name = "lblNotExecuted"
  1392. cov_optionsdialog.
  1393. wPROCEDURE InteractiveChange
  1394.    IF THISFORM.TogglePreviewZoomMode()
  1395.       THISFORMSET.NotifyTargetRecordChanged()
  1396.    ENDIF
  1397.    RETURN NOT THIS.lError
  1398. ENDPROC
  1399. PROCEDURE Option1.Init
  1400.    THIS.ToolTipText = COV_PREVIEW_MODE_LOC
  1401.    RETURN DODEFAULT()
  1402. ENDPROC
  1403. PROCEDURE Option2.Init
  1404.    THIS.ToolTipText = COV_ZOOM_MODE_LOC
  1405.    RETURN DODEFAULT()
  1406. ENDPROC
  1407.  cov_maindialog_standard.cntTools.
  1408. opgCoverageProfileMode
  1409. optiongroup
  1410. coverage.vcx
  1411. lblNotExecuted
  1412. label
  1413. coverage.vcx
  1414. scov_label
  1415. AutoSize = .T.
  1416. Alignment = 0
  1417. Caption = "Executed:"
  1418. Height = 15
  1419. Left = 16
  1420. Top = 127
  1421. Width = 50
  1422. TabIndex = 8
  1423. ZOrderSet = 19
  1424. Name = "lblExecuted"
  1425. cov_optionsdialog.
  1426. lblExecuted
  1427. label
  1428. coverage.vcx
  1429. scov_label
  1430. cov_optionsdialog.
  1431. lblShowFixedFont
  1432. cov_zoomdialog = MAX(LEN(THIS.cMarkExecuted), ;
  1433.       L
  1434. label
  1435. coverage.vcx
  1436. custom
  1437. AutoSize = .F.
  1438. FontName = "Courier New"
  1439. Caption = "Courier New 8"
  1440. Height = 23
  1441. Left = 113
  1442. Top = 287
  1443. Width = 423
  1444. TabIndex = 21
  1445. ZOrderSet = 18
  1446. Name = "lblShowFixedFont"
  1447. coverage.vcx
  1448. scov_label
  1449. AutoSize = .F.
  1450. Caption = "MS Sans Serif 8"
  1451. Height = 26
  1452. Left = 113
  1453. Top = 259
  1454. Width = 423
  1455. TabIndex = 19
  1456. ZOrderSet = 17
  1457. Name = "lblShowBaseFont"
  1458. cov_optionsdialog.
  1459. lblShowBaseFont
  1460. .Left = 196
  1461. Top = 0
  1462. TabIndex = 7
  1463. Name = "opgPreviewZoomMode"
  1464. Option1.Picture = ("preview.bmp")
  1465. Option1.Caption = ("")
  1466. Option1.Left = 0
  1467. Option1.Top = 0
  1468. Option1.Name = "Option1"
  1469. Option2.Picture = ("zoom.bmp")
  1470. Option2.Caption = ("")
  1471. Option2.Left = 23
  1472. Option2.Top = 0
  1473. Option2.Name = "Option2"
  1474. cov_picturetoggle
  1475. 6PROCEDURE Init
  1476.    THIS.Visible = .F.
  1477. ENDPROC
  1478. UTop = 0
  1479. Left = 135
  1480. Height = 17
  1481. Width = 6
  1482. BackColor = 0,0,0
  1483. Name = "shpSpacer2"
  1484.       0.000,,toolbarenabled,73
  1485. form = "cov_standardmaindialog"
  1486. cNo, cTarget
  1487. editbox
  1488. commandbutton
  1489. coverage.vcx
  1490. scov_commandbutton
  1491. cov_statisticsdialog.
  1492. _oCoverage
  1493. cmdLogHIS
  1494. LTURNEDOFFTRACE
  1495. LERRORt
  1496. TRBETWEENv
  1497. editbox
  1498. commandbutton
  1499. label
  1500. coverage.vcx
  1501. scov_label
  1502. cov_optionsdialog.
  1503. TCSOURCE
  1504. TCTARGET
  1505. CSOURCE
  1506. lblMarksMatched
  1507. iFontName = "Courier New"
  1508. Alignment = 0
  1509. Height = 172
  1510. Left = 0
  1511. Top = 0
  1512. Width = 280
  1513. Name = "edtCode"
  1514. PROCEDURE InteractiveChange
  1515.    * this formset is assuming one set of
  1516.    * files, one main dialog, no real need to pass aliases...
  1517.    THISFORMSET.ToggleCoverageProfileMode()
  1518.    THISFORM.lstAvailableObjectsAndProcs.Valid()     
  1519.    RETURN NOT THIS.lError
  1520. ENDPROC
  1521. PROCEDURE Option1.Init
  1522.    THIS.ToolTipText = COV_COVERAGE_MODE_LOC
  1523.    RETURN DODEFAULT()
  1524. ENDPROC
  1525. PROCEDURE Option2.Init
  1526.    THIS.ToolTipText = COV_PROFILE_MODE_LOC
  1527.    RETURN DODEFAULT()
  1528. ENDPROC
  1529. 6Left = 142
  1530. Top = 0
  1531. TabIndex = 6
  1532. Name = "opgCoverageProfileMode"
  1533. Option1.Picture = ("coverage.bmp")
  1534. Option1.Caption = ("")
  1535. Option1.Left = 0
  1536. Option1.Top = 0
  1537. Option1.Name = "Option1"
  1538. Option2.Picture = ("profile.bmp")
  1539. Option2.Caption = ("")
  1540. Option2.Left = 23
  1541. Option2.Top = 0
  1542. Option2.Name = "Option2"
  1543.  cov_maindialog_standard.cntTools.,formisobject,65,utilit
  1544. shpSpacer2olbarenabled,73,utility.fxp,6
  1545.       0.000,,too
  1546. shapety.fxp,6
  1547.       0.000,,toolbarenabled,72,utility.fxp
  1548. coverage.vcx
  1549. scov_shape
  1550. Top = 34
  1551. Left = 231
  1552. Width = 217
  1553. Height = 89
  1554. TabIndex = 4
  1555. Name = "cntClassesCovered"
  1556. lblNotCovered.Name = "lblNotCovered"
  1557. lblCovered.Name = "lblCovered"
  1558. lblTotal.Name = "lblTotal"
  1559. lblCoveredCaption.Name = "lblCoveredCaption"
  1560. lblTotalCaption.Name = "lblTotalCaption"
  1561. lblPercent.Name = "lblPercent"
  1562. lblNotCoveredCaption.Name = "lblNotCoveredCaption"
  1563. lblPercentCaption.Name = "lblPercentCaption"
  1564. Line2.Name = "Line2"
  1565. lblName.Name = "lblName"
  1566. savedbasefontname Saved engine font attribute for later restoration if dialog is cancelled
  1567. savedbasefontsize Saved engine font attribute for later restoration if dialog is cancelled
  1568. savedbasefontitalic Saved engine font attribute for later restoration if dialog is cancelled
  1569. savedbasefontbold Saved engine font attribute for later restoration if dialog is cancelled
  1570. savedfixedfontname Saved engine font attribute for later restoration if dialog is cancelled
  1571. savedfixedfontsize Saved engine font attribute for later restoration if dialog is cancelled
  1572. savedfixedfontitalic Saved engine font attribute for later restoration if dialog is cancelled
  1573. savedfixedfontbold Saved engine font attribute for later restoration if dialog is cancelled
  1574. *setoptions Send all appropriate engine properties to appropriate values from the dialog -  NB fonts are already done automatically,  and have to be un-done if we cancel.
  1575. *getoptions Get dialog values from current engine values
  1576. *restoreenginefonts Restore engine font values that may have been re-set by users' choices if the option dialog is cancelled.
  1577. *disablefontsettingbuttons Not currenty used, can disable font setting capabilities if OCXs are not available and you do not wish to allow GetFont() use.
  1578. type.
  1579. Cover
  1580. AutoSize = .T.
  1581. FontItalic = .F.
  1582. BackStyle = 1
  1583. Caption = "Mark lengths will be matched"
  1584. Height = 15
  1585. Left = 16
  1586. Top = 188
  1587. Width = 139
  1588. TabIndex = 12
  1589. ZOrderSet = 16
  1590. Name = "lblMarksMatched"
  1591. ADJUSTTARGETCURSOR
  1592. STANDARD
  1593. IFDEL
  1594. CLEARSTAT
  1595. label
  1596. coverage.vcx
  1597. scov_label
  1598. cov_optionsdialog.
  1599. vHeight = 15
  1600. Width = 65
  1601. nuserkey = 0
  1602. ncurrentos = 0
  1603. ncurrentkey = 0
  1604. lcreatekeyonset = .T.
  1605. Name = "cov_registry"
  1606. FontName = "Courier New"
  1607. Height = 22
  1608. Left = 112
  1609. TabIndex = 11
  1610. Top = 154
  1611. Width = 59
  1612. ZOrderSet = 15
  1613. Name = "txtNotExecuted"
  1614. txtNotExecuted
  1615. textbox
  1616. cov_registry
  1617. scov_custom
  1618. coverage.vcx
  1619. Creating tar
  1620. scov_textboxT
  1621. Target
  1622. cov_optionsdialog.NOBJCLASS    
  1623. EXECUTING
  1624. ILENEXECUTING
  1625. formset= 454
  1626. Width = 633
  1627. ShowWindow = 2
  1628. DoCreate = .T
  1629. cov_registry
  1630. custom
  1631. Rcoverage base engine (<- scov_formset, containing toolbar but no visible elements)
  1632. coverage.vcx
  1633. LERROR
  1634. formframeseClassb
  1635. Height = 454
  1636. Width = 633
  1637. ShowWindow = 2
  1638. DoCreate = .T.
  1639. AutoCenter = .T.
  1640. Caption = "Coverage Frame"
  1641. Icon = ("coverage.ico")
  1642. KeyPreview = .T.
  1643. ColorSource = 5
  1644. ocoverageengine = .NULL.
  1645. Name = "cov_frame"
  1646.     THIS.oCoverageEngine.StandardRigh
  1647. ~FontName = "Courier New"
  1648. Height = 22
  1649. Left = 112
  1650. TabIndex = 9
  1651. Top = 124
  1652. Width = 59
  1653. ZOrderSet = 14
  1654. Name = "txtExecuted"
  1655. TCSOURCE
  1656. LERROR'
  1657. txtExecutedN
  1658. CSOURCE
  1659. GETALIAS
  1660. LVFP5
  1661. DURATION
  1662. textbox
  1663. coverage.vcx& 
  1664. scov_textboxndexing source records...
  1665. AutoSize = .T.
  1666. FontBold = .F.
  1667. BackStyle = 1
  1668. Caption = "Coverage marks"
  1669. Height = 15
  1670. Left = 16
  1671. Top = 101
  1672. Width = 79
  1673. TabIndex = 7
  1674. ZOrderSet = 13
  1675. Name = "lblCoverageMarks"
  1676. cov_optionsdialog.
  1677. lblCoverageMarks
  1678. labelC
  1679. Source
  1680. coverage.vcxNAME
  1681. LERROR
  1682. CSAVEDSKIPFILESL
  1683. scov_label    
  1684. TCSKIPPED
  1685. CSKIPPED
  1686. CDBFNAME
  1687. ISELECT
  1688. Top = 323
  1689. Left = 7
  1690. Height = 15
  1691. Width = 83
  1692. AutoSize = .T.
  1693. BackStyle = 0
  1694. Caption = "Set as default"
  1695. Value = .F.
  1696. TabIndex = 22
  1697. ZOrderSet = 12
  1698. Name = "chkRegisterDefaults"
  1699. cov_optionsdialog.NHOSTFILE
  1700. LERROR
  1701. chkRegisterDefaultsE
  1702. ISELECT
  1703. GETALIAS
  1704. HOSTFILE
  1705. checkbox
  1706. TCSOURCE    
  1707. coverage.vcxG
  1708. scov_checkbox
  1709. PROCEDURE Click
  1710.    THISFORMSET.GetOptionsFromUser()
  1711.    RETURN NOT THIS.lError
  1712. ENDPROC
  1713. PROCEDURE Init
  1714.    THIS.ToolTipText = COV_OPTIONS_LOC
  1715.    RETURN DODEFAULT()
  1716. ENDPROC
  1717. AutoSize = .F.
  1718. Top = 0
  1719. Left = 111
  1720. Height = 22
  1721. Width = 23
  1722. Picture = ("options.bmp")
  1723. Caption = ("")
  1724. TabIndex = 5
  1725. Name = "cmdOptions"
  1726.  cov_maindialog_standard.cntTools.
  1727. cmdOptions
  1728. commandbutton
  1729. coverage.vcx
  1730. PROCEDURE Click
  1731.    LOCAL oLabel
  1732.    oLabel = THISFORM.lblShowFixedFont
  1733.    WITH THISFORM.oCoverageEngine
  1734.       .lError = .F.
  1735.       DO CASE
  1736.       CASE .GetFontsFromUser(.T.)
  1737.          oLabel.FontName   = .cBaseMonoFontName
  1738.          oLabel.FontSize   = .nBaseMonoFontSize
  1739.          oLabel.FontItalic = .lBaseMonoFontItalic
  1740.          oLabel.FontBold   = .lBaseMonoFontBold
  1741.          oLabel.Caption    = oLabel.FontName+" "+ ;
  1742.             ALLTR(STR(oLabel.FontSize))
  1743.       CASE .lError 
  1744.          * did something happen on this call?
  1745.          THISFORM.DisableFontSettingButtons()
  1746.       OTHERWISE
  1747.          *nothing to do
  1748.       ENDCASE
  1749.    ENDWITH
  1750. ENDPROC
  1751. AutoSize = .F.
  1752. Top = 283
  1753. Left = 16
  1754. Height = 23
  1755. Width = 90
  1756. WordWrap = .F.
  1757. Caption = "Code Font..."
  1758. TabIndex = 20
  1759. ZOrderSet = 11
  1760. Name = "cmdFixedFont"
  1761. cov_optionsdialog.
  1762. scov_commandbutton
  1763. cmdFixedFont
  1764. commandbutton
  1765. coverage.vcx
  1766. scov_commandbutton
  1767. GPROCEDURE Click
  1768.    LOCAL lReturn
  1769.    lReturn = THISFORMSET.ShowModalDialog(COV_ADDINDIALOG, COV_ADDIN_CLASSLIB)
  1770.    IF lReturn
  1771.       lReturn = THISFORMSET.RunAddIn()
  1772.    ENDIF
  1773.    RETURN lReturn AND NOT THIS.lError
  1774. ENDPROC
  1775. PROCEDURE Init
  1776.    THIS.ToolTipText = COV_ADDINS_LOC
  1777.    RETURN DODEFAULT()
  1778. ENDPROC
  1779. AutoSize = .F.
  1780. Top = 0
  1781. Left = 87
  1782. Height = 22
  1783. Width = 23
  1784. Picture = ("addins.bmp")
  1785. Caption = ("")
  1786. TabIndex = 4
  1787. Name = "cmdAddIns"
  1788. ty.fxp,6
  1789.       0.000,,toolbarenabled,73,utility
  1790.  cov_maindialog_standard.cntTools.vfp98\samples\tastrade\
  1791. PROCEDURE Click
  1792.    LOCAL oLabel
  1793.    oLabel = THISFORM.lblShowBaseFont
  1794.    WITH THISFORM.oCoverageEngine
  1795.       DO CASE
  1796.       CASE .GetFontsFromUser(.F.)
  1797.          oLabel.FontName   = .cBaseFontName
  1798.          oLabel.FontSize   = .nBaseFontSize
  1799.          oLabel.FontItalic = .lBaseFontItalic
  1800.          oLabel.FontBold   = .lBaseFontBold
  1801.          oLabel.Caption    =  oLabel.FontName+" "+ ;
  1802.             ALLTR(STR(oLabel.FontSize))
  1803.       CASE .lError 
  1804.          * did something happen on this call?
  1805.          THISFORM.DisableFontSettingButtons()
  1806.       OTHERWISE
  1807.          *nothing to do
  1808.       ENDCASE
  1809.    ENDWITH
  1810. ENDPROC
  1811. AutoSize = .F.
  1812. Top = 254
  1813. Left = 16
  1814. Height = 23
  1815. Width = 90
  1816. WordWrap = .F.
  1817. Caption = "Display Font..."
  1818. TabIndex = 18
  1819. ZOrderSet = 10
  1820. Name = "cmdBaseFont"
  1821. cov_optionsdialog.
  1822. cmdBaseFont
  1823. commandbutton
  1824. coverage.vcx
  1825. scov_commandbutton
  1826. cov_optionsdialog.
  1827. chkMarkAllOnLoad
  1828. checkbox
  1829. edtCode
  1830. Top = 71
  1831. Left = 16
  1832. Height = 15
  1833. Width = 154
  1834. AutoSize = .T.
  1835. Alignment = 0
  1836. BackStyle = 0
  1837. Caption = "Mark all code while log loads"
  1838. TabIndex = 6
  1839. ZOrderSet = 9
  1840. Name = "chkMarkAllOnLoad"
  1841. coverage.vcx
  1842. scov_checkbox
  1843. cov_optionsdialog.
  1844. chkRegisterAddIns
  1845. checkbox
  1846. coverage.hon = ("coverage.ico")
  1847. Name = "cov_modaldialog
  1848. coverage.vcxIPOS
  1849. CSUFFIX
  1850. CDBFSTEM
  1851. CTABLENAME
  1852. cov_dlgs.hN
  1853. coverage.vcx
  1854. kPROCEDURE Init
  1855.    LOCAL lReturn
  1856.    lReturn = DODEFAULT()
  1857.    IF lReturn
  1858.       
  1859.       THIS.CancelError = .T.
  1860.       * force an error if Cancel or Esc is chosen
  1861.       THIS.lForceSearch = .F.
  1862.       * this custom property can be altered on a
  1863.       * type-of-dialog basis -- will force
  1864.       * .InitDir to "" when the dialog shows up
  1865.       * rather than allowing the calling method
  1866.       * to guess at it based on current surroundings.
  1867.       THIS.Flags = cdlOFNPathMustExist + ;
  1868.          cdlOFNNoChangeDir   + ;
  1869.          cdlOFNHideReadOnly  + ;
  1870.          cdlOFNExplorer
  1871.    ENDIF
  1872.    RETURN lReturn AND NOT THIS.lError
  1873. ENDPROC
  1874. PROCEDURE SHOWOPEN
  1875.    *** OLE Control Method ***
  1876.    IF THIS.lForceSearch
  1877.       THIS.InitDir = ""
  1878.    ENDIF
  1879.    THIS.Object.ShowOpen
  1880.    NODEFAULT
  1881. ENDPROC
  1882. PROCEDURE SHOWSAVE
  1883.    *** OLE Control Method ***
  1884.    IF THIS.lForceSearch
  1885.       THIS.InitDir = ""
  1886.    ENDIF
  1887.    THIS.Object.ShowSave
  1888.    NODEFAULT
  1889. ENDPROC
  1890. PROCEDURE ShowHelp
  1891.    *** OLE Control Method ***
  1892.    IF THIS.lForceSearch
  1893.       THIS.InitDir = ""
  1894.    ENDIF
  1895.    THIS.Object.ShowHelp
  1896.    NODEFAULT
  1897. ENDPROC
  1898. PROCEDURE Error
  1899. LPARAMETERS nError, cMethod, nLine
  1900. IF ATC("SHOW",cMethod) > 0 AND THIS.CancelError
  1901.    * we've forced an error on Esc or Cancel press
  1902.    THIS.FileName = ""
  1903.    NODEFAULT
  1904.    DODEFAULT(nError,cMethod,nLine)   
  1905. ENDIF   
  1906. ENDPROC
  1907. scov_commonfiledialog
  1908. scov_commondialog
  1909. PROCEDURE setfileorclassnamecaption
  1910. LPARAMETERS tcCaption
  1911. IF TYPE("tcCaption") # "C" OR TYPE("THISFORM") # "O"
  1912.    * toolbar doesn't support TextWidth() although _SCREEN does
  1913.    RETURN .F.
  1914. ENDIF   
  1915. LOCAL lcDisplayText, ;
  1916.       liStartChar, liLabelWidth, liMargin, ;
  1917.       lvFontName, lvFontSize
  1918. IF THIS.lblName.FontName # THISFORM.FontName OR ;
  1919.    THIS.lblName.FontSize # THISFORM.FontSize
  1920.    * not a problem for the cov_statisticsdialog
  1921.    * but I am not sure how else this container 
  1922.    * might be used
  1923.    lvFontName = THISFORM.FontName
  1924.    lvFontSize = THISFORM.FontSize
  1925.    THISFORM.FontName = THIS.lblName.FontName
  1926.    THISFORM.FontSize = THIS.lblName.FontSize
  1927. ENDIF      
  1928. lcDisplayText = tcCaption
  1929. liMargin = THISFORM.TextWidth("WWW")*2
  1930. liStartChar = 1
  1931. liLabelWidth = THIS.lblName.Width
  1932. DO WHILE liLabelWidth < ;
  1933.          THISFORM.TextWidth(lcDisplayText)+ liMargin 
  1934.    liStartChar = liStartChar + 1   
  1935.    lcDisplayText = ".. "+SUBSTR(tcCaption,liStartChar)
  1936. ENDDO
  1937. THIS.lblName.Caption = lcDisplayText
  1938. IF NOT EMPTY(lvFontName)
  1939.    THISFORM.FontName = lvFontName
  1940.    THISFORM.FontSize = lvFontSize
  1941. ENDIF   
  1942. ENDPROC
  1943. coverage.vcx
  1944. CAPTION
  1945. scov_commonfiledialog
  1946. cov_dlgs.h
  1947. JPROCEDURE RightClick
  1948.    THISFORMSET.StandardRightClick()
  1949. ENDPROC
  1950. scov_commandbuttonC
  1951. scov_optiongroup
  1952. coverage.vcx
  1953. optiongroup
  1954. cov_picturetoggle
  1955. PROCEDURE Click
  1956.    THISFORM.oCoverageEngine.ShowTextLog(.T.)
  1957. ENDPROC
  1958. PROCEDURE Init
  1959.    THIS.Caption = COV_STATS_VIEW_SOURCE_LOG_LOC
  1960. ENDPROC
  1961. cov_statisticsdialog.
  1962. coverage.hf!@
  1963. cov_char.hn"@
  1964. cov_locs.hv#@
  1965. cov_dlgs.h~$@
  1966. cov_spec.h
  1967. cov_regs.h
  1968. cov_tune.h
  1969. $neRef
  1970.    *&* THIS.SetAll("FontName",THIS.oCoverageEng
  1971. cmdProject
  1972. NBASEMONOFONTSIZE
  1973. LBASEMONOFONTBOLD
  1974. LBASEM
  1975. scov_checkbox
  1976. cov_optionsdialog.
  1977. Class
  1978. Pixels
  1979. "graphical option button group of 2
  1980. cov_picturetoggle
  1981.     cmdAddInsorms\chngpswd.sct,4
  1982.       0.042,,frmchangepassw
  1983. commandbuttonc.click,4,c:\program files\studio98\vfp98\s
  1984. coverage.vcx
  1985. scov_commandbutton
  1986.  cov_maindialog_standard.cntTools.
  1987. cmdStatistics
  1988. commandbuttonSEFONTSIZE
  1989. LBASEFONTBOLD
  1990. LBASEFONTITALIC
  1991. Top = 50
  1992. Left = 16
  1993. Height = 15
  1994. Width = 143
  1995. AutoSize = .T.
  1996. Alignment = 0
  1997. BackStyle = 0
  1998. Caption = "Register Add-Ins when run"
  1999. TabIndex = 5
  2000. ZOrderSet = 8
  2001. Name = "chkRegisterAddIns"
  2002. Top = 29
  2003. Left = 16
  2004. Height = 15
  2005. Width = 106
  2006. AutoSize = .T.
  2007. Alignment = 0
  2008. BackStyle = 0
  2009. Caption = "Use Smart Pathing"
  2010. TabIndex = 4
  2011. ZOrderSet = 7
  2012. Name = "chkSmartPath"
  2013. chkSmartPath
  2014. checkbox
  2015. coverage.vcx
  2016. coverage.vcxARKEXECUTED
  2017. CMARKNOTEXECUTED
  2018. LREGISTERADDI
  2019. cov_regs.h
  2020. scov_checkbox
  2021. PROCEDURE Click
  2022.    THISFORMSET.ShowStatistics()
  2023.    RETURN NOT THIS.lError
  2024. ENDPROC
  2025. PROCEDURE Init
  2026.    THIS.ToolTipText = COV_STATISTICS_LOC
  2027.    RETURN DODEFAULT()
  2028. ENDPROC
  2029. scov_commandbutton
  2030. ~PROCEDURE Click
  2031.    THISFORM.RestoreEngineFonts()
  2032.    THISFORM.oCoverageEngine = .NULL.
  2033.    THISFORM.Release()
  2034. ENDPROC
  2035. AutoSize = .F.
  2036. Top = 45
  2037. Left = 350
  2038. Height = 23
  2039. Width = 75
  2040. Cancel = .T.
  2041. Caption = "Cancel"
  2042. TabIndex = 2
  2043. ZOrderSet = 6
  2044. Name = "cmdCancel"
  2045. cov_optionsdialog.
  2046.     cmdCancel
  2047. commandbutton
  2048. coverage.vcx
  2049. scov_commandbutton
  2050. yTop = 16
  2051. Left = 7
  2052. Height = 79
  2053. Width = 335
  2054. BackStyle = 0
  2055. SpecialEffect = 0
  2056. ZOrderSet = 4
  2057. Name = "shpOptionsFrame"
  2058. cov_optionsdialog.
  2059. shpOptionsFrame
  2060. shape
  2061. cPROCEDURE Init
  2062.    THIS.Caption = COV_STATS_VIEW_DETAILS_LOC
  2063.    RETURN DODEFAULT()
  2064. ENDPROC
  2065. coverage.vcx
  2066. scov_shape
  2067. wTop = 241
  2068. Left = 7
  2069. Height = 75
  2070. Width = 335
  2071. BackStyle = 0
  2072. SpecialEffect = 0
  2073. ZOrderSet = 3
  2074. Name = "shpFontFrame"
  2075. cov_optionsdialog.
  2076. shpFontFrame
  2077. shape
  2078. cov_statisticsdialog.
  2079. coverage.vcx
  2080. Top = 34
  2081. Left = 10
  2082. Width = 217
  2083. Height = 89
  2084. TabIndex = 3
  2085. Name = "cntLinesCovered"
  2086. lblNotCovered.Name = "lblNotCovered"
  2087. lblCovered.Name = "lblCovered"
  2088. lblTotal.Name = "lblTotal"
  2089. lblCoveredCaption.Name = "lblCoveredCaption"
  2090. lblTotalCaption.Name = "lblTotalCaption"
  2091. lblPercent.Name = "lblPercent"
  2092. lblNotCoveredCaption.Name = "lblNotCoveredCaption"
  2093. lblPercentCaption.Name = "lblPercentCaption"
  2094. Line2.Name = "Line2"
  2095. lblName.Name = "lblName"
  2096. AutoSize = .F.
  2097. Top = 159
  2098. Left = 162
  2099. Height = 23
  2100. Width = 138
  2101. Caption = "Source Text Log"
  2102. TabIndex = 7
  2103. ZOrderSet = 4
  2104. Name = "cmdLog"
  2105. RESUMECOVERAGE
  2106. AutoSize = .F.
  2107. Top = 0
  2108. Left = 63
  2109. Height = 22
  2110. Width = 23
  2111. Picture = ("stats.bmp")
  2112. Caption = ("")
  2113. TabIndex = 3
  2114. Name = "cmdStatistics"
  2115. commandbutton
  2116. coverage.vcx
  2117. scov_commandbutton
  2118. PROCEDURE Click
  2119.    THISFORM.oCoverageEngine.ShowProjectStatistics()
  2120. ENDPROC
  2121. PROCEDURE Init
  2122.    THIS.Caption = COV_STATS_VIEW_PROJECT_LOC
  2123. ENDPROC
  2124. AutoSize = .F.
  2125. Top = 159
  2126. Left = 17
  2127. Height = 23
  2128. Width = 138
  2129. Caption = "Statistics By Project..."
  2130. TabIndex = 6
  2131. ZOrderSet = 3
  2132. Name = "cmdProject"
  2133. LUSINGREGISTRY
  2134. AADDINS
  2135. SETREGI
  2136. lerror
  2137. *synchsizes Designed to allow tools added into the Coverage standard UI to maintain size and position consistency with original member set.
  2138. istbytime 
  2139. *setclasslibtoalias 
  2140.  cov_maindialog_standard.cntTools.rmbehindsc.cmdclose.cli
  2141. AutoSize = .T.
  2142. BackStyle = 1
  2143. Caption = "View Details"
  2144. Height = 18
  2145. Left = 19
  2146. Top = 140
  2147. Width = 76
  2148. TabIndex = 5
  2149. ZOrderSet = 2
  2150. Name = "lblView"
  2151. lblView
  2152. label
  2153. coverage.vcx
  2154. scov_label
  2155. <PROCEDURE Init
  2156.    THIS.Visible = .F.
  2157. ENDPROC
  2158. 00,,frmbehindsc.destroy,1,c:\program files\studio98\vfp98\sa
  2159. TTop = 0
  2160. Left = 56
  2161. Height = 17
  2162. Width = 6
  2163. BackColor = 0,0,0
  2164. Name = "shpSpacer1"
  2165. ehindsc.cmdclose.click,5,c:\program 
  2166. cPROCEDURE Init
  2167.    THIS.Caption = COV_STATS_VIEW_DETAILS_LOC
  2168.    RETURN DODEFAULT()
  2169. ENDPROC
  2170. cov_statisticsdialog.
  2171. lblStatistics
  2172. shpSpacer1olbarenabled,74,utility.fxp,6
  2173.       0.000,,for
  2174. shapety.fxp,6
  2175.       0.000,,toolbarenabled,73,utility.fxp
  2176. coverage.vcxled,71,utility.fxp,6
  2177.       0.000,,toolbarena
  2178.     containers in _SCREEN or something
  2179.    RETURN .F.
  2180. ENDIF
  2181. coverage.vcxtion") # "C" OR TYPE("THISFORM") # "O"
  2182. nuserkey
  2183. cregdllfile
  2184. ncurrentos
  2185. ncurrentkey
  2186. lloadeddlls
  2187. lcreatekey
  2188. lcreatekeyonset
  2189. *loadregfuncs 
  2190. *openkey 
  2191. *closekey
  2192. *setregkey 
  2193. *getregkey 
  2194. *getkeyvalue 
  2195. *setkeyvalue 
  2196. *deletekey
  2197. *enumoptions 
  2198. *iskey 
  2199. *enumkeys 
  2200. *enumkeyvalues 
  2201. $blignorecoveragefilenames Indicates whether files in the 
  2202. scov_shape
  2203.  cov_maindialog_standard.cntTools.ange,26,c:\program file
  2204. scov_shape
  2205. xTop = 107
  2206. Left = 7
  2207. Height = 122
  2208. Width = 175
  2209. BackStyle = 0
  2210. SpecialEffect = 0
  2211. ZOrderSet = 2
  2212. Name = "shpMarkFrame"
  2213. cov_optionsdialog.
  2214. shpMarkFrame
  2215. shape
  2216. coverage.vcx
  2217. scov_shape
  2218. cBackStyle = 0
  2219. Height = 55
  2220. Left = 192
  2221. Top = 174
  2222. Width = 150
  2223. TabIndex = 16
  2224. ZOrderSet = 1
  2225. Name = "opgFrame"
  2226. Option1.Caption = "Coverage frame"
  2227. Option1.Left = 8
  2228. Option1.Top = 12
  2229. Option1.AutoSize = .T.
  2230. Option1.Name = "Option1"
  2231. Option2.Caption = "FoxPro frame"
  2232. Option2.Left = 8
  2233. Option2.Top = 32
  2234. Option2.AutoSize = .T.
  2235. Option2.Name = "Option2"
  2236. cov_optionsdialog.
  2237. opgFrame
  2238. optiongroup
  2239. coverage.vcx
  2240. scov_optiongroup
  2241. BackStyle = 0
  2242. Height = 55
  2243. Left = 192
  2244. Top = 107
  2245. Width = 150
  2246. TabIndex = 14
  2247. ZOrderSet = 1
  2248. Name = "opgStartMode"
  2249. Option1.Caption = "Coverage"
  2250. Option1.Height = 15
  2251. Option1.Left = 8
  2252. Option1.Top = 12
  2253. Option1.Width = 64
  2254. Option1.AutoSize = .T.
  2255. Option1.Name = "Option1"
  2256. Option2.Caption = "Profile"
  2257. Option2.Height = 15
  2258. Option2.Left = 8
  2259. Option2.Top = 32
  2260. Option2.AutoSize = .T.
  2261. Option2.Name = "Option2"
  2262. cov_optionsdialog.    CASE UPPER(oForm.BaseClass) # "TOO
  2263. opgStartModeT) NOWAIT
  2264.       oForm = EVAL(aTemp[1]+".For
  2265. optiongroup
  2266. coverage.vcx
  2267. scov_optiongroup
  2268. formsage)
  2269.       THIS.lUsingStatusBar = ;
  2270.          ( (S
  2271. AutoSize = .T.
  2272. BackStyle = 1
  2273. Caption = "Statistics"
  2274. Height = 18
  2275. Left = 16
  2276. Top = 10
  2277. Width = 55
  2278. TabIndex = 2
  2279. ZOrderSet = 2
  2280. Name = "lblStatistics"
  2281. 1Height = 344
  2282. Width = 432
  2283. DoCreate = .T.
  2284. Caption = "Coverage Options"
  2285. HelpContextID = 1895825779
  2286. Name = "cov_optionsdialog"
  2287. cmdOK.AutoSize = .F.
  2288. cmdOK.Top = 16
  2289. cmdOK.Left = 350
  2290. cmdOK.Height = 23
  2291. cmdOK.Width = 75
  2292. cmdOK.Cancel = .F.
  2293. cmdOK.TabIndex = 1
  2294. cmdOK.ZOrderSet = 5
  2295. cmdOK.Name = "cmdOK"
  2296. coverage.vcxwstatus
  2297.    LPARAMETERS cMessage
  2298.    IF NO
  2299. PROCEDURE DragDrop
  2300.    LPARAMETERS oSource, nXCoord, nYCoord
  2301.    THISFORM.RespondToSplitter(nYCoord)
  2302.    RETURN NOT THIS.lError
  2303. ENDPROC
  2304. PROCEDURE MouseMove
  2305.    LPARAMETERS nButton, nShift, nXCoord, nYCoord
  2306.    WITH THISFORM
  2307.       IF BETWEEN(nXCoord,;
  2308.             .ileftlistcolwidth - (.nMargin*2), ;
  2309.             .ileftlistcolwidth + (.nMargin*2))
  2310.          THIS.MousePointer = MOUSEPOINTER_ARROW_EW
  2311.       ELSE
  2312.          THIS.MousePointer = MOUSEPOINTER_DEFAULT
  2313.       ENDIF
  2314.       
  2315.       IF nButton = 1 AND (nXCoord < (THIS.WIDTH-SYSM(5)))
  2316.          .ileftlistcolwidth = ;
  2317.             .ileftlistcolwidth - ;
  2318.             (.ilistmousestart - nXCoord)
  2319.          .ilistmousestart = nXCoord
  2320.          .AdjustListColumnWidths()
  2321.       ENDIF         
  2322.    ENDWITH
  2323. ENDPROC
  2324. PROCEDURE MouseDown
  2325.    LPARAMETERS nButton, nShift, nXCoord, nYCoord
  2326.    THISFORM.iListMouseStart = nXCoord      
  2327.    RETURN
  2328. ENDPROC
  2329. PROCEDURE InteractiveChange
  2330. THISFORMSET.NotifyTargetRecordChanged()      
  2331. ENDPROC
  2332. PROCEDURE Valid
  2333.    THISFORMSET.MarkOneTargetRecord()
  2334.    THISFORMSET.NotifyTargetRecordChanged()
  2335. ENDPROC
  2336. PROCEDURE RightClick
  2337.    THISFORMSET.StandardRightClick()
  2338. ENDPROC
  2339. label
  2340. PROCEDURE Click
  2341.    THISFORMSET.SaveTargetToDisk()
  2342.    RETURN NOT THIS.lError
  2343. ENDPROC
  2344. PROCEDURE Init
  2345.    THIS.ToolTipText = COV_SAVE_LOC
  2346.    RETURN DODEFAULT()
  2347. ENDPROC
  2348. AutoSize = .F.
  2349. Top = 0
  2350. Left = 0
  2351. Height = 22
  2352. Width = 23
  2353. Picture = ("save.bmp")
  2354. Caption = ""
  2355. TabIndex = 2
  2356. Name = "cmdSave"
  2357. p98\samples\tastrade\forms\behindsc.sct,7
  2358.       0.000,
  2359. cmdSavefp98\samples\tastrade\forms\behindsc.sct,8
  2360.       
  2361. coverage.vcx
  2362. cov_registry
  2363. .from Randy Brown's REGISTRY.PRG, <-scov_custom
  2364. Class
  2365. commandbutton
  2366. coverage.vcx
  2367. scov_commandbutton
  2368.  cov_maindialog_standard.cntTools.
  2369. scov_label
  2370. PROCEDURE Click
  2371.    THISFORMSET.SetUpWorkFiles()
  2372.    RETURN NOT THIS.lError
  2373. ENDPROC
  2374. PROCEDURE Init
  2375.    THIS.ToolTipText = COV_OPEN_LOC
  2376.    RETURN DODEFAULT()
  2377. ENDPROC
  2378. AutoSize = .F.
  2379. Top = 0
  2380. Left = 27
  2381. Height = 22
  2382. Width = 23
  2383. Picture = ("open.bmp")
  2384. Caption = ("")
  2385. TabIndex = 1
  2386. Name = "cmdOpen"
  2387. cmdOpen
  2388. cov_regs.h
  2389. jTop = 147
  2390. Left = 7
  2391. Height = 46
  2392. Width = 447
  2393. SpecialEffect = 0
  2394. ZOrderSet = 1
  2395. Name = "shpDetailFrame"
  2396. cov_statisticsdialog.
  2397. Pixels
  2398. 0common FileOpen/FileSave dialog for coverage use
  2399. Class
  2400. commandbutton
  2401. coverage.vcx
  2402. scov_commandbutton
  2403. shpDetailFrame
  2404. eLeft = 0
  2405. Width = 392
  2406. Height = 34
  2407. BackStyle = 0
  2408. BorderWidth = 0
  2409. TabIndex = 1
  2410. Name = "cntTools"
  2411. shape
  2412. coverage.vcxct
  2413. scov_shape
  2414. cov_maindialog_standard.
  2415. cntTools
  2416. cov_statisticsdialog.
  2417. Hostfile
  2418. PROCEDURE Error
  2419.    LPARAMETERS nError, cMethod, nLine
  2420.    DODEFAULT(nError,cMethod,nLine)
  2421. ENDPROC
  2422. PROCEDURE synchsizes
  2423.    IF DODEFAULT()
  2424.       THISFORM.MinWidth   = MAX(THIS.WIDTH + (THIS.Left*2), ;
  2425.          THISFORM.MinWidth )
  2426.       THISFORM.MinHeight  = THIS.Height *  2
  2427.    ENDIF
  2428. ENDPROC
  2429. PROCEDURE Init
  2430.    THIS.SynchSizes()
  2431.    RETURN NOT THIS.lError
  2432. ENDPROC
  2433. PROCEDURE RightClick
  2434.    THISFORMSET.StandardRightClick()
  2435. ENDPROC
  2436. Pixels
  2437. shpFrame
  2438. Target
  2439.     container
  2440. coverage.vcx
  2441. sTop = 17
  2442. Left = 7
  2443. Height = 117
  2444. Width = 447
  2445. BackStyle = 0
  2446. SpecialEffect = 0
  2447. ZOrderSet = 0
  2448. Name = "shpFrame"
  2449. shape
  2450. formLTIPTEXT
  2451. LERROR
  2452. Height = 250
  2453. Width = 450
  2454. ShowWindow = 1
  2455. DoCreate = .T.
  2456. AutoCenter = .T.
  2457. BorderStyle = 2
  2458. Caption = "Dialog for Modal Calls from within Coverage Engine Formset"
  2459. MaxButton = .F.
  2460. MinButton = .F.
  2461. Icon = ("coverage.ico")
  2462. Name = "cov_modaldialog"
  2463. ocoverageengine
  2464. scov_commandbutton
  2465. coverage.vcx
  2466. commandbutton
  2467. cmdOK
  2468. cov_modaldialog.
  2469. AutoSize = .F.
  2470. Top = 12
  2471. Left = 348
  2472. Height = 23
  2473. Width = 75
  2474. Cancel = .T.
  2475. Caption = "OK"
  2476. Default = .T.
  2477. ToolTipText = "OK"
  2478. Name = "cmdOK"
  2479. YPROCEDURE Click
  2480.    THISFORM.oCoverageEngine = .NULL.
  2481.    THISFORM.Release()
  2482. ENDPROC
  2483. cov_modaldialog
  2484.     scov_form
  2485. coverage.vcx
  2486. scov_container
  2487. cov_zoomdialog.
  2488. scov_shape
  2489. formnge,1,c:\program files\studio98\vfp98\samples\tastra
  2490. coverage.vcx     0.000,,frmorderentry.cbocustomer_id.pro
  2491. coverage.h
  2492. cov_char.h
  2493. cov_locs.h&C@
  2494. cov_dlgs.h.D@
  2495. cov_spec.h6E@
  2496. cov_regs.h>F@
  2497. cov_tune.hFG@
  2498. cov_standard
  2499. formed does not exist.
  2500. Coverage Profiler
  2501. coverage.vcx
  2502. Height = 398
  2503. Width = 399
  2504. ShowWindow = 1
  2505. DoCreate = .T.
  2506. ShowTips = .T.
  2507. AutoCenter = .T.
  2508. Caption = "Coverage Main Dialog Standard UI"
  2509. Icon = ("coverage.ico")
  2510. KeyPreview = .T.
  2511. HelpContextID = 1895825777
  2512. nmargin = (SYSMETRIC(3))
  2513. nlastsplitterposition = 0
  2514. ntoolcount = 0
  2515. ileftlistcolwidth = (THIS.WIDTH/2)
  2516. ilistmousestart = 0
  2517. nlistrowheight = 0
  2518. Name = "cov_maindialog_standard"
  2519. Height = 231
  2520. Width = 461
  2521. DoCreate = .T.
  2522. Caption = "Coverage Statistics"
  2523. HelpContextID = 1895825781
  2524. Name = "cov_statisticsdialog"
  2525. cmdOK.AutoSize = .F.
  2526. cmdOK.Top = 201
  2527. cmdOK.Left = 379
  2528. cmdOK.Height = 23
  2529. cmdOK.Width = 75
  2530. cmdOK.TabIndex = 1
  2531. cmdOK.Name = "cmdOK"
  2532. coverage.h
  2533. 5subclass of cov_engine to invoke coverage standard UI
  2534. Class
  2535. cov_engine
  2536. cov_standard
  2537. /lincoverageframe = .T.
  2538. oframe = .NULL.
  2539. Name = "cov_standard"
  2540. cov_toolbar.cusRegistry.Top = 5
  2541. cov_toolbar.cusRegistry.Left = 5
  2542. cov_toolbar.cusRegistry.Name = "cusRegistry"
  2543. cov_toolbar.Height = 24
  2544. cov_toolbar.Left = 0
  2545. cov_toolbar.Top = 0
  2546. cov_toolbar.Width = 33
  2547. cov_toolbar.Name = "cov_toolbar"
  2548. \samples\
  2549. formset
  2550. coverage.vcx
  2551. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  2552. ,utility.fxp,5
  2553. cov_maindialog5,utility.fxp,5
  2554.       0.000,,toolbarenable
  2555. Pixelsithin Coverage Engine Formset"
  2556. MaxButton = .F.
  2557. nmargin Stores standard margin for use when sizing and positioning various dialog elements.
  2558. nlastsplitterposition
  2559. linzoommode Stores current zoom versus preview mode status.
  2560. ntoolcount Stores number of items in tool container.
  2561. ileftlistcolwidth Stores leftmost listbox column width for custom sizing.
  2562. ilistmousestart Stores initial mouse position when mouse is dragged to size list columns.
  2563. nlistrowheight Stores current listbox rowheight.
  2564. *setinitialcontrolproperties Initializes relative sizes and positions of listbox, editbox, and splitter object.
  2565. *setinitialformproperties Initializes appropriate form attributes given current SYSMETRIC()s.
  2566. *respondtosplitter Evaluates appropriate action when the splitter object is dragged, so listbox and editbox sizes and positions can be synchronized.
  2567. *togglepreviewzoommode Changes disposition of dialog when Preview/Zoom mode is toggled.
  2568. *adjustlistcolumnwidths Adjusts list columns in response to dialog resize or mouse-dragging of the list columns.
  2569. *addtool Adds a member object to the tool-holding container in this dialog.
  2570. *setlistrowheight Sets list rowheight to correspond to current font attributes.
  2571. cov_zoomdialog
  2572.     scov_formdialog back to original defaults,
  2573.       * sinc
  2574. =DataSession = 2
  2575. AutoRelease = .T.
  2576. lignorecoveragefilenames = .T.
  2577. lusingocxs = .T.
  2578. lvfp5 = ((ATC("FoxPro 05",VERSION()) > 0))
  2579. csourcefile = ("")
  2580. cdefaultwritepath = ("")
  2581. csuspendedlog = ("")
  2582. csavedtargetdbf = ("")
  2583. csourcealias = ("FromLog")
  2584. ctargetalias = ("MarkedCode")
  2585. cskippedalias = ("SkippedFiles")
  2586. ccovfilesalias = ("IgnoredFiles")
  2587. cmarknotexecuted = ("|"+SPACE(3))
  2588. cmarkexecuted = ("")
  2589. lsmartpath = .T.
  2590. nbasefontsize = 8
  2591. cbasefontname = ("MS Sans Serif")
  2592. cbasemonofontname = ("Courier New")
  2593. nbasemonofontsize = 8
  2594. lusingregistry = .T.
  2595. capphome = ("")
  2596. cprojectalias = ("PJXFiles")
  2597. caddin = ("")
  2598. oframe = .NULL.
  2599. csavedskipfiles = ("")
  2600. itargetreccount = 0
  2601. ilenhostfile = 115
  2602. ilenobjclass = 115
  2603. ilenexecuting = 115
  2604. Name = "cov_engine"
  2605. COV_TOOLBAR.Caption = "Invisible Custom Obj Holder"
  2606. COV_TOOLBAR.Height = 24
  2607. COV_TOOLBAR.Left = 0
  2608. COV_TOOLBAR.Movable = .F.
  2609. COV_TOOLBAR.ShowTips = .F.
  2610. COV_TOOLBAR.Sizable = .F.
  2611. COV_TOOLBAR.Top = 0
  2612. COV_TOOLBAR.Visible = .F.
  2613. COV_TOOLBAR.Width = 33
  2614. COV_TOOLBAR.ControlBox = .F.
  2615. COV_TOOLBAR.Name = "COV_TOOLBAR"
  2616. coverage.vcxlassb
  2617. coverage.vcx
  2618. scov_formset
  2619. coverage.h
  2620. cov_char.h&
  2621. cov_locs.h.
  2622. cov_dlgs.h6
  2623. cov_spec.h>
  2624. cov_regs.hF
  2625. cov_tune.hN
  2626. $   0.013,,toolbarenabled,71,utility.fxp,5
  2627.       0.000,,t
  2628. coverage.h  0.000,,toolbarenabled,74,utility.fxp,5
  2629.      
  2630. 5modal dialog to run add ins from coverage standard UI
  2631. Pixelsd,72,utility.fxp,5
  2632.       0.000,,toolbarenabled,73,
  2633. 0suggested base-level main dialog for coverage UI
  2634. Class
  2635.     scov_form
  2636. OMS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  2637. Courier New, 0, 9, 7, 15, 12, 8, 3, 0
  2638. ERT TYPE("toEngineRef.Baseclass") = "C" A
  2639. cov_maindialog
  2640. *synchsizes 
  2641. form.fxp,5
  2642.       0.000,,toolbarenabled,71,utility.fxp,5
  2643. Class = .T.
  2644. BorderStyle = 2
  2645. Caption = "Dialog for Moda
  2646. 9PROCEDURE Init
  2647.    LOCAL lReturn
  2648.    lReturn = DODEFAULT()
  2649.    IF lReturn
  2650.       THIS.Caption = COV_DIALOG_CAPTION_LOC
  2651.    ENDIF
  2652.    RETURN lReturn AND NOT THIS.lError
  2653. ENDPROC
  2654. PROCEDURE Unload
  2655.    LOCAL oForm, lOtherMainDialogs
  2656.    IF TYPE("THISFORMSET.cSourceFile") # "C" OR EMPTY(THISFORMSET.cSourceFile)
  2657.       RETURN
  2658.    ENDIF
  2659.    FOR EACH oForm IN THISFORMSET.Forms
  2660.       IF oForm.CLASS == THIS.CLASS
  2661.          lOtherMainDialogs = .T.
  2662.          EXIT
  2663.       ENDIF
  2664.    ENDFOR
  2665.    IF NOT lOtherMainDialogs
  2666.       RELEASE THISFORMSET
  2667.    ENDIF
  2668. ENDPROC
  2669. wHeight = 93
  2670. Width = 269
  2671. DoCreate = .T.
  2672. AutoCenter = .T.
  2673. Caption = "Coverage Main Dialog"
  2674. Name = "cov_maindialog"
  2675. 2eight = 250
  2676. Width = 450
  2677. ShowWindow = 1
  2678. DoCreate = .T
  2679. lfastzoommode In Zoom mode, indicates whether Coverage should refrain from marking a record unless specifically indicated by the user, to avoid unnecessary processing.
  2680. *notifyzoomwindowclosed Puts interface elements into Preview mode and synchronizes these elements as necessary when the Zoom window is closed.
  2681. *synchzoomwindowstate Makes sure that state of Zoom window matches current Preview/Zoom mode.
  2682. *notifytargetrecordchanged Synchronizes all coverage UI elements when the record pointer has moved in the target workfile.
  2683. *showmodaldialog Instantiates modal dialogs as part of coverage standard UI.
  2684. *getoptionsfromuser Invokes Options dialog and applies results of user's selections, if appropriate.
  2685. *standardrightclick Displays context menu.
  2686. *showtextlog Displays the original Coverage source log.
  2687. *showskippedfiles Displays browse of source files that weren't Located or that are weren't parsed because they're ignored as part of the coverage app's own file list.
  2688. *arrangeframewindows Cascades all windows within the frame when Coverage is running in Coverage frame.
  2689. *togglefastzoommode Signals interface elements that Fast Zoom mode has been toggled on or off.
  2690. coverage.vcxed,74,utility.fxp,5
  2691.       0.000,,formisobjec
  2692. BTop = 5
  2693. Left = 5
  2694. Height = 15
  2695. Width = 22
  2696. Name = "cusRegistry"
  2697. Class
  2698. cov_engine
  2699. :separate code window for coverage standard UI in Zoom mode
  2700. cov_enginedd
  2701.    cFileToAdd = LOWER(tcFileToAdd)
  2702. 1superclass for coverage standard UI modal dialogs
  2703. Pixels
  2704. coverage.h
  2705. cov_modaldialog their automated test went nowhere!
  2706. )MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
  2707.       THIS
  2708. coverage.h
  2709. cov_char.h
  2710. cov_locs.h&
  2711. cov_dlgs.h.
  2712. cov_spec.h6
  2713. cov_regs.h>
  2714. cov_tune.hF
  2715.    LOCAL lReturn, lcFile, liAnswer, loHost
  2716. cusRegistry
  2717. ocoverageengine
  2718. cov_engine.COV_TOOLBAR.
  2719. coverage.h
  2720. cov_char.h
  2721. cov_locs.h&S@
  2722. cov_dlgs.h.T@
  2723. cov_spec.h6U@
  2724. cov_regs.h>V@
  2725. cov_tune.hFW@
  2726. $VJLPE 612463970 8  0
  2727. 65833.173 2125.000 1875.0004
  2728. )MS Sans Serif, 0, 8, 7, 16, 13, 14, 3, 0
  2729.     cov_frame
  2730.  WINDOWS _RTL0VJLP4 612463970 5  0
  2731. coverage.h 1       TFFFF00T 0     0  0          0  0    
  2732. Pixels
  2733.    -1   -1   -1   -1   -1   -1        
  2734. 8top form for coverage standard UI in coverage frame mode
  2735. Class
  2736.     scov_form
  2737.     cov_frame
  2738.  PROCEDURE RightClick
  2739. THIS.oCoverageEngine.StandardRightClick()
  2740. NODEFAULT     
  2741. ENDPROC
  2742. PROCEDURE Deactivate
  2743.    IF TYPE("THIS.oCoverageEngine.Class") = "C"
  2744.       THIS.oCoverageEngine.Deactivate()
  2745.    ENDIF
  2746. ENDPROC
  2747. PROCEDURE Destroy
  2748.    THIS.oCoverageEngine = .NULL.
  2749. ENDPROC
  2750. PROCEDURE Init
  2751.    LPARAMETERS toEngineRef
  2752.    LOCAL ARRAY aTemp[1]
  2753.    ASSERT TYPE("toEngineRef.Baseclass") = "C" AND ;
  2754.       AMEMBERS(aTemp,toEngineRef) > 0 ;
  2755.       AND ASCAN(aTemp,"LIGNORECOVERAGEFILENAMES") > 0
  2756.    THIS.oCoverageEngine = toEngineRef
  2757.    THIS.Caption = _VFP.Name + " " + COV_APPLICATION_NAME_LOC
  2758.    DECLARE INTEGER GetSysColor IN Win32API INTEGER nColorAspect
  2759.    THIS.BackColor = GetSysColor(12) && MDI Workspace
  2760. ENDPROC
  2761. PROCEDURE QueryUnload
  2762.    IF THIS.ReleaseType = 1
  2763.       IF TYPE("THIS.oCoverageEngine.BaseClass") = "C"
  2764.          THIS.oCoverageEngine = .NULL.
  2765.          _oCoverage.Release()
  2766.       ENDIF
  2767.    ENDIF
  2768. ENDPROC
  2769. PROCEDURE Activate
  2770.    IF TYPE("THIS.oCoverageEngine.Forms(2).Class") = "C"
  2771.       THIS.oCoverageEngine.Forms(2).Activate()
  2772.       NODEFAULT
  2773.    ENDIF
  2774. ENDPROC
  2775. PROCEDURE KeyPress
  2776.    LPARAMETERS nKeyCode, nShiftAltCtrl
  2777.    IF nKeyCode = 93
  2778.       THIS.oCoverageEngine.StandardRightClick()
  2779.       NODEFAULT
  2780.    ENDIF
  2781. ENDPROC
  2782. `PROCEDURE KeyPress
  2783.    LPARAMETERS nKeyCode, nShiftAltCtrl
  2784.    IF nKeyCode = 93
  2785.       THISFORMSET.StandardRightClick()
  2786.       NODEFAULT
  2787.    ENDIF
  2788. ENDPROC
  2789. PROCEDURE Resize
  2790.    THIS.edtCode.WIDTH = THIS.WIDTH
  2791.    THIS.edtCode.Height = THIS.Height
  2792. ENDPROC
  2793. PROCEDURE RightClick
  2794.    THISFORMSET.StandardRightClick()
  2795. ENDPROC
  2796. PROCEDURE QueryUnload
  2797.    IF THIS.ReleaseType = 1
  2798.       THIS.Hide()
  2799.       THISFORMSET.NotifyZoomWindowClosed()
  2800.       NODEFAULT
  2801.    ENDIF
  2802. ENDPROC
  2803. PROCEDURE Init
  2804.    LOCAL ARRAY aTemp[1]
  2805.    ASSERT TYPE("THISFORMSET") = "O" AND ;
  2806.       AMEMBERS(aTemp,THISFORMSET,1) > 0 ;
  2807.       AND ASCAN(aTemp,"LIGNORECOVERAGEFILENAMES") > 0
  2808.    LOCAL lReturn
  2809.    lReturn = DODEFAULT()
  2810.    IF lReturn
  2811.       WITH THIS
  2812.          IF THIS.Parent.lInCoverageFrame
  2813.             .WIDTH   = THIS.Parent.oFrame.WIDTH - (SYSMETRIC(3)*2)
  2814.             .Height  = THIS.Parent.oFrame.Height * .25
  2815.             .Left    = SYSMETRIC(3)
  2816.             .Top     = THIS.Parent.frmMainDialog.Top + ;
  2817.                THIS.Parent.frmMainDialog.Height + ;
  2818.                (SYSMETRIC(9) * 2)
  2819.          ELSE
  2820.             THIS.Left = THIS.Parent.frmMainDialog.Left - SYSMETRIC(9)
  2821.             THIS.Top =  THIS.Parent.frmMainDialog.Top - SYSMETRIC(9)
  2822.          ENDIF
  2823.       ENDWITH
  2824.       THIS.Resize()
  2825.    ENDIF
  2826.    RETURN lReturn
  2827. ENDPROC
  2828. PROCEDURE loadregfuncs
  2829.    * Loads funtions needed for Registry
  2830.    LOCAL nHKey,cSubKey,nResult
  2831.    LOCAL hKey,iValue,lpszValue,lpcchValue,lpdwType,lpbData,lpcbData
  2832.    LOCAL lpcStr,lpszVal,nLen,lpdwReserved
  2833.    LOCAL lpszValueName,dwReserved,fdwType
  2834.    LOCAL iSubKey,lpszName,cchName
  2835.    IF THIS.lLoadedDLLs
  2836.       RETURN ERROR_SUCCESS
  2837.    ENDIF
  2838.    DECLARE Integer RegOpenKey IN Win32API ;
  2839.       Integer nHKey, String @cSubKey, Integer @nResult
  2840.    IF THIS.lError && error loading library
  2841.       RETURN -1
  2842.    ENDIF
  2843.    DECLARE Integer RegCreateKey IN Win32API ;
  2844.       Integer nHKey, String @cSubKey, Integer @nResult
  2845.    DECLARE Integer RegDeleteKey IN Win32API ;
  2846.       Integer nHKey, String @cSubKey
  2847.    DECLARE Integer RegDeleteValue IN Win32API ;
  2848.       Integer nHKey, String cSubKey
  2849.    DECLARE Integer RegCloseKey IN Win32API ;
  2850.       Integer nHKey
  2851.    DECLARE Integer RegSetValueEx IN Win32API ;
  2852.       Integer hKey, String lpszValueName, Integer dwReserved,;
  2853.       Integer fdwType, String lpbData, Integer cbData
  2854.    DECLARE Integer RegQueryValueEx IN Win32API ;
  2855.       Integer nHKey, String lpszValueName, Integer dwReserved,;
  2856.       Integer @lpdwType, String @lpbData, Integer @lpcbData
  2857.    DECLARE Integer RegEnumKey IN Win32API ;
  2858.       Integer nHKey,Integer iSubKey, String @lpszName, Integer @cchName
  2859.    DECLARE Integer RegEnumKeyEx IN Win32API ;
  2860.       Integer nHKey,Integer iSubKey, String @lpszName, Integer @cchName,;
  2861.       Integer dwReserved,String @lpszName, Integer @cchName,String @cchName
  2862.    DECLARE Integer RegEnumValue IN Win32API ;
  2863.       Integer hKey, Integer iValue, String @lpszValue, ;
  2864.       Integer @lpcchValue, Integer lpdwReserved, Integer @lpdwType, ;
  2865.       String @lpbData, Integer @lpcbData
  2866.    THIS.lLoadedDLLs = .T.
  2867.    * Need error check here
  2868.    RETURN ERROR_SUCCESS
  2869. ENDPROC
  2870. PROCEDURE openkey
  2871.    * Opens a registry key
  2872.    LPARAMETER cLookUpKey,nRegKey,lCreateKey
  2873.    LOCAL nSubKey,nErrCode,nPCount,lSaveCreateKey
  2874.    nSubKey = 0
  2875.    nPCount = PARAMETERS()
  2876.    IF TYPE("m.nRegKey") # "N" OR EMPTY(m.nRegKey)
  2877.       *&* m.nRegKey = HKEY_CLASSES_ROOT
  2878.       m.nRegKey = THIS.nUserKey
  2879.    ENDIF
  2880.    * Load API functions
  2881.    nErrCode = THIS.loadregfuncs()
  2882.    IF m.nErrCode # ERROR_SUCCESS
  2883.       RETURN m.nErrCode
  2884.    ENDIF
  2885.    lSaveCreateKey = THIS.lCreateKey
  2886.    IF m.nPCount>2 AND TYPE("m.lCreateKey") = "L"
  2887.       THIS.lCreateKey = m.lCreateKey
  2888.    ENDIF
  2889.    IF THIS.lCreateKey
  2890.       * Try to open or create registry key
  2891.       nErrCode = RegCreateKey(m.nRegKey,m.cLookUpKey,@nSubKey)
  2892.    ELSE
  2893.       * Try to open registry key
  2894.       nErrCode = RegOpenKey(m.nRegKey,m.cLookUpKey,@nSubKey)
  2895.    ENDIF
  2896.    THIS.lCreateKey = m.lSaveCreateKey
  2897.    IF nErrCode # ERROR_SUCCESS
  2898.       RETURN m.nErrCode
  2899.    ENDIF
  2900.    THIS.nCurrentKey = m.nSubKey
  2901.    RETURN ERROR_SUCCESS
  2902. ENDPROC
  2903. PROCEDURE closekey
  2904.    * Closes a registry key
  2905.    =RegCloseKey(THIS.nCurrentKey)
  2906.    THIS.nCurrentKey =0
  2907.    RETURN NOT THIS.lError
  2908. ENDPROC
  2909. PROCEDURE setregkey
  2910.    * This routine sets a registry key setting
  2911.    * ex. THIS.SetRegKey("ResWidth","640",;
  2912.    *      "Software\Microsoft\VisualFoxPro\4.0\Options",;
  2913.    *      HKEY_CURRENT_USER)
  2914.    LPARAMETER cOptName,cOptVal,cKeyPath,nUserKey
  2915.    LOCAL iPos,cOptKey,cOption,nErrNum
  2916.    iPos = 0
  2917.    cOption = ""
  2918.    nErrNum = ERROR_SUCCESS
  2919.    * Open registry key 
  2920.    m.nErrNum = THIS.OpenKey(m.cKeyPath,m.nUserKey,THIS.lCreateKeyOnSet)
  2921.    IF m.nErrNum # ERROR_SUCCESS
  2922.       RETURN m.nErrNum
  2923.    ENDIF
  2924.    * Set Key value
  2925.    nErrNum = THIS.SetKeyValue(m.cOptName,m.cOptVal)
  2926.    * Close registry key
  2927.    THIS.CloseKey()      &&close key
  2928.    RETURN m.nErrNum
  2929. ENDPROC
  2930. PROCEDURE getregkey
  2931.    * This routine gets a registry key setting
  2932.    * ex. THIS.GetRegKey("ResWidth",@cValue,;
  2933.    *      "Software\Microsoft\VisualFoxPro\4.0\Options",;
  2934.    *      HKEY_CURRENT_USER)
  2935.    LPARAMETER cOptName,cOptVal,cKeyPath,nUserKey
  2936.    LOCAL iPos,cOptKey,cOption,nErrNum
  2937.    iPos = 0
  2938.    cOption = ""
  2939.    nErrNum = ERROR_SUCCESS
  2940.    * Open registry key
  2941.    m.nErrNum = THIS.OpenKey(m.cKeyPath,m.nUserKey)
  2942.    IF m.nErrNum # ERROR_SUCCESS
  2943.       RETURN m.nErrNum
  2944.    ENDIF
  2945.    * Get the key value
  2946.    nErrNum = THIS.GetKeyValue(cOptName,@cOptVal)
  2947.    * Close registry key
  2948.    THIS.CloseKey()      &&close key
  2949.    RETURN m.nErrNum
  2950. ENDPROC
  2951. PROCEDURE getkeyvalue
  2952.    * Obtains a value from a registry key
  2953.    * Note: this routine only handles Data strings (REG_SZ)
  2954.    LPARAMETER cValueName,cKeyValue
  2955.    LOCAL lpdwReserved,lpdwType,lpbData,lpcbData,nErrCode
  2956.    STORE 0 TO lpdwReserved,lpdwType
  2957.    STORE SPACE(256) TO lpbData
  2958.    STORE LEN(m.lpbData) TO m.lpcbData
  2959.    DO CASE
  2960.    CASE TYPE("THIS.nCurrentKey")#'N' OR THIS.nCurrentKey = 0
  2961.       RETURN ERROR_BADKEY
  2962.    CASE TYPE("m.cValueName") #"C"
  2963.       RETURN ERROR_BADPARM
  2964.    ENDCASE
  2965.    m.nErrCode=RegQueryValueEx(THIS.nCurrentKey,m.cValueName,;
  2966.       m.lpdwReserved,@lpdwType,@lpbData,@lpcbData)
  2967.    * Check for error
  2968.    IF m.nErrCode # ERROR_SUCCESS
  2969.       RETURN m.nErrCode
  2970.    ENDIF
  2971.    * Make sure we have a data string data type
  2972.    IF lpdwType # REG_SZ
  2973.       RETURN ERROR_NONSTR_DATA
  2974.    ENDIF
  2975.    m.cKeyValue = Left(m.lpbData,m.lpcbData-1)
  2976.    RETURN ERROR_SUCCESS
  2977. ENDPROC
  2978. PROCEDURE setkeyvalue
  2979.    * This routine sets a key value
  2980.    * Note: this routine only handles data strings (REG_SZ)
  2981.    LPARAMETER cValueName,cValue
  2982.    LOCAL nValueSize,nErrCode
  2983.    DO CASE
  2984.    CASE TYPE("THIS.nCurrentKey")#'N' OR THIS.nCurrentKey = 0
  2985.       RETURN ERROR_BADKEY
  2986.    CASE TYPE("m.cValueName") #"C" OR TYPE("m.cValue")#"C"
  2987.       RETURN ERROR_BADPARM
  2988.    CASE EMPTY(m.cValueName) OR EMPTY(m.cValue)
  2989.       RETURN ERROR_BADPARM
  2990.    ENDCASE
  2991.    * Make sure we null terminate this guy
  2992.    cValue = m.cValue+CHR(0)
  2993.    nValueSize = LEN(m.cValue)
  2994.    * Set the key value here
  2995.    m.nErrCode = RegSetValueEx(THIS.nCurrentKey,m.cValueName,0,;
  2996.       REG_SZ,m.cValue,m.nValueSize)
  2997.    * Check for error
  2998.    IF m.nErrCode # ERROR_SUCCESS
  2999.       RETURN m.nErrCode
  3000.    ENDIF
  3001.    RETURN ERROR_SUCCESS
  3002. ENDPROC
  3003. PROCEDURE deletekey
  3004.    * This routine deletes a Registry Key
  3005.    LPARAMETER nUserKey,cKeyPath
  3006.    LOCAL nErrNum
  3007.    nErrNum = ERROR_SUCCESS
  3008.    * Delete key
  3009.    m.nErrNum = RegDeleteKey(m.nUserKey,m.cKeyPath)
  3010.    RETURN m.nErrNum
  3011. ENDPROC
  3012. PROCEDURE enumoptions
  3013.    * Enumerates through all entries for a key and populates array
  3014.    LPARAMETER aRegOpts,cOptPath,nUserKey,lEnumKeys
  3015.    LOCAL iPos,cOptKey,cOption,nErrNum
  3016.    iPos = 0
  3017.    cOption = ""
  3018.    nErrNum = ERROR_SUCCESS
  3019.    IF PARAMETERS()<4 OR TYPE("m.lEnumKeys") # "L"
  3020.       lEnumKeys = .F.
  3021.    ENDIF
  3022.    * Open key
  3023.    m.nErrNum = THIS.OpenKey(m.cOptPath,m.nUserKey)
  3024.    IF m.nErrNum # ERROR_SUCCESS
  3025.       RETURN m.nErrNum
  3026.    ENDIF
  3027.    * Enumerate through keys
  3028.    IF m.lEnumKeys
  3029.       * Enumerate and get key names
  3030.       nErrNum = THIS.EnumKeys(@aRegOpts)
  3031.    ELSE
  3032.       * Enumerate and get all key values
  3033.       nErrNum = THIS.EnumKeyValues(@aRegOpts)
  3034.    ENDIF
  3035.    * Close key
  3036.    THIS.CloseKey()      &&close key
  3037.    RETURN m.nErrNum
  3038. ENDPROC
  3039. PROCEDURE iskey
  3040.    * Checks to see if a key exists
  3041.    LPARAMETER cKeyName,nRegKey
  3042.    * Open extension key
  3043.    nErrNum = THIS.OpenKey(m.cKeyName,m.nRegKey)
  3044.    IF m.nErrNum  = ERROR_SUCCESS
  3045.       * Close extension key
  3046.       THIS.CloseKey()
  3047.    ENDIF
  3048.    RETURN m.nErrNum = ERROR_SUCCESS
  3049. ENDPROC
  3050. PROCEDURE enumkeys
  3051.    LPARAMETERS aKeyNames
  3052.    LOCAL nKeyEntry,cNewKey,cNewSize,cbuf,nbuflen,cRetTime
  3053.    nKeyEntry = 0
  3054.    DIMENSION aKeyNames[1]
  3055.    DO WHILE .T.
  3056.       nKeySize = 0
  3057.       cNewKey = SPACE(100)
  3058.       nKeySize = LEN(m.cNewKey)
  3059.       cbuf=SPACE(100)
  3060.       nbuflen=LEN(m.cbuf)
  3061.       cRetTime=SPACE(100)
  3062.       m.nErrCode = RegEnumKeyEx(THIS.nCurrentKey,m.nKeyEntry,@cNewKey,@nKeySize,0,@cbuf,@nbuflen,@cRetTime)
  3063.       DO CASE
  3064.       CASE m.nErrCode = ERROR_EOF
  3065.          EXIT
  3066.       CASE m.nErrCode # ERROR_SUCCESS
  3067.          EXIT
  3068.       ENDCASE
  3069.       cNewKey = ALLTRIM(m.cNewKey)
  3070.       cNewKey = Left(m.cNewKey,LEN(m.cNewKey)-1)
  3071.       IF !EMPTY(aKeyNames[1])
  3072.          DIMENSION aKeyNames[ALEN(aKeyNames)+1]
  3073.       ENDIF
  3074.       aKeyNames[ALEN(aKeyNames)] = m.cNewKey
  3075.       nKeyEntry = m.nKeyEntry + 1
  3076.    ENDDO
  3077.    IF m.nErrCode = ERROR_EOF AND m.nKeyEntry # 0
  3078.       m.nErrCode = ERROR_SUCCESS
  3079.    ENDIF
  3080.    RETURN m.nErrCode
  3081. ENDPROC
  3082. PROCEDURE enumkeyvalues
  3083.    * enumerates through values of a registry key
  3084.    LPARAMETER aKeyValues
  3085.    LOCAL lpszValue,lpcchValue,lpdwReserved
  3086.    LOCAL lpdwType,lpbData,lpcbData
  3087.    LOCAL nErrCode,nKeyEntry,lArrayPassed
  3088.    STORE 0 TO nKeyEntry
  3089.    IF TYPE("THIS.nCurrentKey")#'N' OR THIS.nCurrentKey = 0
  3090.       RETURN ERROR_BADKEY
  3091.    ENDIF
  3092.    * Sorry, Win32s does not support this one!
  3093.    IF THIS.nCurrentOS = OS_W32S
  3094.       RETURN ERROR_BADPLAT
  3095.    ENDIF
  3096.    DO WHILE .T.
  3097.       STORE 0 TO lpdwReserved,lpdwType,nErrCode
  3098.       STORE SPACE(256) TO lpbData, lpszValue
  3099.       STORE LEN(lpbData) TO m.lpcchValue
  3100.       STORE LEN(lpszValue) TO m.lpcbData
  3101.       nErrCode=RegEnumValue(THIS.nCurrentKey,m.nKeyEntry,@lpszValue,;
  3102.          @lpcchValue,m.lpdwReserved,@lpdwType,@lpbData,@lpcbData)
  3103.       DO CASE
  3104.       CASE m.nErrCode = ERROR_EOF
  3105.          EXIT
  3106.       CASE m.nErrCode # ERROR_SUCCESS
  3107.          EXIT
  3108.       ENDCASE
  3109.       nKeyEntry = m.nKeyEntry + 1
  3110.       * Set array values
  3111.       DIMENSION aKeyValues[m.nKeyEntry,2]
  3112.       aKeyValues[m.nKeyEntry,1] = Left(m.lpszValue,m.lpcchValue)
  3113.       DO CASE
  3114.       CASE lpdwType = REG_SZ
  3115.          aKeyValues[m.nKeyEntry,2] = Left(m.lpbData,m.lpcbData-1)
  3116.       CASE lpdwType = REG_BINARY
  3117.          * Don't support binary
  3118.          aKeyValues[m.nKeyEntry,2] = REG_BINARY_LOC
  3119.       CASE lpdwType = REG_DWORD
  3120.          * You will need to use ASC() to check values here.
  3121.          aKeyValues[m.nKeyEntry,2] = Left(m.lpbData,m.lpcbData-1)
  3122.       OTHERWISE
  3123.          aKeyValues[m.nKeyEntry,2] = REG_UNKNOWN_LOC
  3124.       ENDCASE
  3125.    ENDDO
  3126.    IF m.nErrCode = ERROR_EOF AND m.nKeyEntry # 0
  3127.       m.nErrCode = ERROR_SUCCESS
  3128.    ENDIF
  3129.    RETURN m.nErrCode
  3130. ENDPROC
  3131. PROCEDURE Init
  3132.    THIS.nUserKey = HKEY_CURRENT_USER
  3133.    DO CASE
  3134.    CASE _DOS OR _UNIX OR _MAC OR ;
  3135.          ATC("Windows 3",OS(1)) # 0
  3136.       RETURN .F.
  3137.    CASE ATC("Windows NT",OS(1)) # 0
  3138.       THIS.nCurrentOS = OS_NT
  3139.       THIS.cRegDLLFile = DLL_ADVAPI_NT
  3140.    OTHERWISE
  3141.       * Windows 95
  3142.       THIS.nCurrentOS = OS_WIN95
  3143.       THIS.cRegDLLFile = DLL_ADVAPI_WIN95
  3144.    ENDCASE
  3145.    RETURN NOT THIS.lError
  3146. ENDPROC
  3147. PROCEDURE Init
  3148.    LPARAMETERS toEngineRef
  3149.    LOCAL lReturn, cTarget, iSelect, cHost, iPos
  3150.    lReturn = DODEFAULT(toEngineRef)
  3151.    IF lReturn
  3152.       THIS.Caption = COV_DIALOG_CAPTION_LOC+" "+ ;
  3153.          COV_STATISTICS_LOC+ ": "+ ;
  3154.          SUBSTR(THIS.oCoverageEngine.cSourceFile, ;
  3155.          RAT("\",THIS.oCoverageEngine.cSourceFile) + 1)
  3156.       THIS.lblStatistics.Caption = COV_STATISTICS_LOC
  3157.       THIS.lblView.Caption = COV_STATS_VIEW_DETAILS_LOC
  3158.       cTarget = THIS.oCoverageEngine.GetAlias(,"Target")
  3159.       iSelect = SELECT()
  3160.       SELECT (cTarget)
  3161.       cHost = UPPER(ALLTR(Hostfile))
  3162.       WITH THIS.cntLinesCovered
  3163.          .SetAll("FontName", THIS.FontName)
  3164.          .SetAll("FontSize", THIS.FontSize)
  3165.          .lblCovered.Caption = STR(Covered)
  3166.          .lblNotCovered.Caption = STR(Coverable-Covered)
  3167.          .lblTotal.Caption = STR(Coverable)
  3168.          .lblPercent.Caption = STR((Covered/Coverable)*100,10,2)
  3169.          .lblCoveredCaption.Caption = ;
  3170.             COV_STATS_LINES_HIT_LOC
  3171.          .lblNotCoveredCaption.Caption =  ;
  3172.             COV_STATS_LINES_MISSED_LOC
  3173.          .lblTotalCaption.Caption = ;
  3174.             COV_STATS_LINES_COVERABLE_LOC
  3175.          .lblPercentCaption.Caption = ;
  3176.             COV_STATS_PCT_LINES_LOC
  3177.       ENDWITH
  3178.       IF (NOT COV_TOPSPEED) AND INLIST(FileType,".vct", ".sct", ".frt", ".lbt")
  3179.          WITH THIS.cntClassesCovered
  3180.             .SetAll("FontName", THIS.FontName)
  3181.             .SetAll("FontSize", THIS.FontSize)
  3182.             .SetFileOrClassNameCaption(cHost)
  3183.             .lblCovered.Caption = STR(ObjHits)
  3184.             .lblNotCovered.Caption = STR(ObjTotal-ObjHits)
  3185.             .lblTotal.Caption = STR(ObjTotal)
  3186.             .lblPercent.Caption = STR((ObjHits/ObjTotal)*100,10,2)
  3187.             .lblCoveredCaption.Caption = ;
  3188.                COV_STATS_OBJS_HIT_LOC
  3189.             .lblNotCoveredCaption.Caption = ;
  3190.                COV_STATS_OBJS_MISSED_LOC
  3191.             .lblTotalCaption.Caption = ;
  3192.                COV_STATS_OBJS_COVERABLE_LOC
  3193.             .lblPercentCaption.Caption = ;
  3194.                COV_STATS_PCT_OBJS_LOC
  3195.          ENDWITH
  3196.          
  3197.          cHost =UPPER(ALLTR(ObjClass))         
  3198.          iPos = AT("!",cHost)
  3199.          DO CASE
  3200.          CASE iPos = 0
  3201.             * okay
  3202.          CASE iPos = 1
  3203.             * shouldn't happen but JIC
  3204.             cHost = SUBSTR(cHost,2)
  3205.          CASE iPos = LEN(cHost)
  3206.             * ditto
  3207.             cHost = LEFT(cHost,iPos-1)
  3208.          OTHERWISE
  3209.             cHost = SUBSTR(cHost,iPos + 1)
  3210.          ENDCASE
  3211.          
  3212.          THIS.cntLinesCovered.SetFileOrClassNameCaption(cHost)
  3213.       ELSE
  3214.          WITH THIS.cntLinesCovered
  3215.             .Width = THIS.shpFrame.Width -((.Left-THIS.shpFrame.Left)*2)
  3216.             .lblName.Width = .Width - (.lblName.Left*2)
  3217.             .SetFileOrClassNameCaption(cHost)
  3218.          ENDWITH
  3219.          THIS.cntClassesCovered.Visible = .F.
  3220.       ENDIF
  3221.       SELECT (iSelect)
  3222.    ENDIF
  3223.    RETURN lReturn AND NOT THIS.lError
  3224. ENDPROC
  3225. PROCEDURE Error
  3226.    LPARAMETERS nError, cMethod, nLine
  3227.    DODEFAULT(nError,cMethod,nLine)
  3228. ENDPROC
  3229. PROCEDURE cmdOK.Init
  3230.    LOCAL lReturn
  3231.    lReturn = DODEFAULT()
  3232.    THIS.Caption = COV_OKCLOSE_LOC
  3233.    RETURN lReturn
  3234. ENDPROC
  3235. PROCEDURE Destroy
  3236.    THIS.oCoverageEngine = .NULL.
  3237. ENDPROC
  3238. PROCEDURE Error
  3239.    LPARAMETERS nError, cMethod, nLine
  3240.    THIS.lError = .T.
  3241.    THIS.oCoverageEngine.Error(nError,THIS.Name+":"+cMethod,nLine)
  3242. ENDPROC
  3243. PROCEDURE Init
  3244. LPARAMETERS toEngineRef
  3245. LOCAL ARRAY aTemp[1]
  3246. ASSERT TYPE("toEngineRef.Baseclass") = "C" AND ;
  3247.    AMEMBERS(aTemp,toEngineRef) > 0 ;
  3248.    AND ASCAN(aTemp,"LIGNORECOVERAGEFILENAMES") > 0
  3249. THIS.oCoverageEngine = toEngineRef
  3250.    *&* THIS.SetAll("FontName",THIS.oCoverageEngine.cBaseFontName)
  3251.    *&* removed so that Coverage font properties do not
  3252.    *&* presently affect modal dialog base fonts.
  3253.    *&* Note that, even if this is put back in,
  3254.    *&* it's not advisable for the modal dialog font sizes and
  3255.    *&* styles to obey Coverage font information, just the font.
  3256.    *&* Instead, according to MS code and specs, the following
  3257.    *&* should handle standard dialog attributes:
  3258. *&* add here for recursion into containers?   
  3259. *&* toEngineRef.SetStandardDialogAttributes() 
  3260. IF FONTMETRIC(1, 'MS Sans Serif', 8, '') # 13 OR ;
  3261.    FONTMETRIC(4, 'MS Sans Serif', 8, '') # 2 OR ;
  3262.    FONTMETRIC(6, 'MS Sans Serif', 8, '') # 5 OR ;
  3263.    FONTMETRIC(7, 'MS Sans Serif', 8, '') # 11
  3264.   THIS.SetAll('fontname', 'Arial')
  3265.   THIS.FontName = 'Arial'
  3266.   THIS.SetAll('fontname','MS Sans Serif')
  3267.   THIS.FontName = 'MS Sans Serif'
  3268. ENDIF
  3269. THIS.SetAll('fontsize',8)
  3270. THIS.FontSize = 8
  3271. ENDPROC
  3272. PROCEDURE setinitialcontrolproperties
  3273.    STORE THIS.nMargin TO ;
  3274.       THIS.edtCode.Left, ;
  3275.       THIS.lstAvailableObjectsAndProcs.Left, ;
  3276.       THIS.cntTools.Left
  3277.    WITH THIS.lstAvailableObjectsAndProcs      
  3278.       STORE THIS.nMargin+THIS.cntTools.Height TO ;
  3279.          .Top
  3280.       STORE THIS.WIDTH - (THIS.nMargin*2) TO ;
  3281.          THIS.edtCode.Width, ;
  3282.          .Width
  3283.    ENDWITH
  3284.    WITH THIS.shpSplitter
  3285.       .Left = -THIS.nMargin
  3286.       .Width = THIS.Width + (THIS.nMargin * 2)
  3287.    ENDWITH
  3288.    STORE THIS.WIDTH + (THIS.nMargin*2) TO THIS.shpSplitter.WIDTH
  3289.    STORE THIS.shpSplitter.Top TO THIS.nLastSplitterPosition
  3290.    THIS.AdjustListColumnWidths()
  3291. ENDPROC
  3292. PROCEDURE setinitialformproperties
  3293.    WITH THIS
  3294.       .MaxHeight  = SYSMETRIC(2) - .nMargin
  3295.       .MaxWidth   = SYSMETRIC(1) - .nMargin
  3296.       IF THIS.Parent.lInCoverageFrame
  3297.          .WIDTH   = MIN(.MaxWidth, ;
  3298.             THIS.Parent.oFrame.WIDTH - (SYSMETRIC(3)*2))
  3299.          .Height  = MIN(.MaxHeight, ;
  3300.             THIS.Parent.oFrame.Height * .5)
  3301.          .Left    = SYSMETRIC(3)
  3302.          .Top     = SYSMETRIC(9)
  3303.       ELSE
  3304.          .WIDTH   = MIN(.MaxWidth, _SCREEN.WIDTH * .5)
  3305.          .Height  = MIN(.MaxHeight,_SCREEN.Height * .5)
  3306.       ENDIF
  3307.    ENDWITH
  3308.    RETURN NOT THIS.lError
  3309. ENDPROC
  3310. PROCEDURE respondtosplitter
  3311.    LPARAMETERS nYCoord
  3312.    LOCAL lnHighestAllowable
  3313.    lnHighestAllowable = (THIS.nListRowHeight * 1.5) ;
  3314.                         + THIS.lstAvailableObjectsAndProcs.Top
  3315.    DO CASE 
  3316.    CASE nYCoord < lnHighestAllowable
  3317.       * too high
  3318.       THIS.shpSplitter.Top = lnHighestAllowable
  3319.       
  3320.    CASE BETWEEN(nYCoord, lnHighestAllowable,THIS.Height-THIS.nMargin)
  3321.       * we're okay
  3322.       THIS.shpSplitter.Top = nYCoord      
  3323.    OTHERWISE
  3324.       * too low
  3325.       THIS.shpSplitter.Top = (THIS.Height - THIS.nMargin)
  3326.    ENDCASE
  3327.    THIS.SynchSizes()
  3328.    RETURN NOT THIS.lError
  3329. ENDPROC
  3330. PROCEDURE togglepreviewzoommode
  3331.    THIS.lInZoomMode = ! THIS.lInZoomMode
  3332.    IF THIS.lInZoomMode
  3333.       THIS.RespondToSplitter(THIS.Height - THIS.nMargin)
  3334.      
  3335.    ELSE
  3336.       IF THIS.nLastSplitterPosition >= THIS.Height-THIS.nMargin
  3337.          THIS.nLastSplitterPosition = (THIS.lstAvailableObjectsandProcs.Top + ;
  3338.                                        THIS.lstAvailableObjectsandProcs.Height) - ;
  3339.                                        THIS.nMargin
  3340.       ENDIF
  3341.       THIS.RespondToSplitter(THIS.nLastSplitterPosition)
  3342.       IF THIS.edtCode.Height < THIS.lstAvailableObjectsandProcs.Height
  3343.          THIS.Height = THIS.edtCode.Top + ;
  3344.                        THIS.lstAvailableObjectsandProcs.Height + ;
  3345.                        THIS.nMargin
  3346.       ENDIF
  3347.    ENDIF
  3348. *   THISFORMSET.SynchZoomWindowState()
  3349. * the above is going to be called by synchsizes,
  3350. * from RespondToSplitter, at all times 
  3351.    RETURN NOT THIS.lError
  3352. ENDPROC
  3353. PROCEDURE adjustlistcolumnwidths
  3354.    LPARAMETERS nLeftColumnWidth
  3355.    IF TYPE("nLeftColumnWidth") = "N"
  3356.       THIS.iLeftListColWidth = nLeftColumnWidth
  3357.    ENDIF
  3358.    WITH THIS.lstAvailableObjectsAndProcs
  3359.       .ColumnWidths =  ;
  3360.          ALLTR(STR(THIS.iLeftListColWidth))+","+ ;
  3361.          ALLTR(STR(.WIDTH - THIS.iLeftListColWidth))
  3362.    ENDWITH
  3363. ENDPROC
  3364. PROCEDURE addtool
  3365. LPARAMETERS tcClass
  3366. ASSERT TYPE("tcClass") = "C" 
  3367. LOCAL cName
  3368. cName = "tool"+SYS(2015)
  3369. THIS.cntTools.AddObject(cName,tcClass)
  3370. IF TYPE("THIS.cntTools."+cName+".Name") = "C"
  3371.    STORE .T. TO ("THIS.cntTools."+cName+".Visible")
  3372.    THIS.cntTools.SynchSizes()
  3373. ENDIF
  3374. RETURN (NOT THIS.lError)   
  3375.       
  3376. ENDPROC
  3377. PROCEDURE setlistrowheight
  3378. WITH THIS.lstAvailableObjectsandProcs
  3379.    THIS.nListRowHeight = FONTM(1,.FontName,.FontSize) + ;
  3380.                          FONTM(5,.FontName,.FontSize) + ;
  3381.                          FONTM(4,.FontName,.FontSize)
  3382. ENDWITH                         
  3383. ENDPROC
  3384. PROCEDURE KeyPress
  3385.    LPARAMETERS nKeyCode, nShiftAltCtrl
  3386.    IF nKeyCode = 93
  3387.       THISFORMSET.StandardRightClick()
  3388.       NODEFAULT
  3389.    ENDIF
  3390. ENDPROC
  3391. PROCEDURE AddObject
  3392.    LPARAMETERS cName, cClass
  3393.    LOCAL nWidth, nHeight
  3394.    IF DODEFAULT(cName,cClass)
  3395.       nWidth = EVAL("THIS."+cName+".Width") + ;
  3396.          EVAL("THIS."+cName+".Left")
  3397.       nHeight =  EVAL("THIS."+cName+".Top") + ;
  3398.          EVAL("THIS."+cName+".Height")
  3399.       THIS.MinWidth = MAX(nWidth,THIS.MinWidth)
  3400.    ENDIF
  3401.    NODEFAULT
  3402.    RETURN NOT THIS.lError
  3403. ENDPROC
  3404. PROCEDURE Error
  3405.    LPARAMETERS nError, cMethod, nLine
  3406.    DODEFAULT(nError,cMethod,nLine)
  3407. ENDPROC
  3408. PROCEDURE Resize
  3409.    DODEFAULT()
  3410.    IF THIS.cntTools.ControlCount # THIS.nToolCount
  3411.       THIS.cntTools.SynchSizes()
  3412.       THIS.nToolCount = THIS.cnTools.ControlCount
  3413.    ENDIF
  3414.    STORE THIS.WIDTH - (THIS.nMargin*2) TO ;
  3415.       THIS.edtCode.WIDTH, ;
  3416.       THIS.lstAvailableObjectsAndProcs.WIDTH
  3417.    THIS.AdjustListColumnWidths()
  3418.    THIS.shpSplitter.WIDTH = THIS.WIDTH+(THIS.nMargin*2)
  3419.    IF THIS.nLastSplitterPosition > ;
  3420.          (THIS.Height - THIS.nMargin)
  3421.       THIS.nLastSplitterPosition = ;
  3422.          (THIS.Height - (THIS.nMargin * 2))
  3423.    ENDIF
  3424.    THIS.RespondToSplitter(THIS.shpSplitter.Top)
  3425.    RETURN NOT THIS.lError
  3426. ENDPROC
  3427. PROCEDURE Init
  3428.    LOCAL ARRAY aTemp[1]
  3429.    ASSERT TYPE("THISFORMSET") = "O" AND ;
  3430.       AMEMBERS(aTemp,THISFORMSET,1) > 0 ;
  3431.       AND ASCAN(aTemp,"LIGNORECOVERAGEFILENAMES") > 0
  3432.    LOCAL lReturn, irow, icol
  3433.    * this is to avoid showing the splitter-mouse-pointer
  3434.    * during start up
  3435.    irow = MROW("",3)
  3436.    icol = MCOL("",3)
  3437.    MOUSE AT 0,0 PIXELS WINDOW (_SCREEN.Name)
  3438.    lReturn = DODEFAULT()
  3439.    IF lReturn
  3440.       THIS.SetInitialFormProperties()
  3441.       THIS.SetInitialControlProperties()
  3442.    ENDIF
  3443.    MOUSE AT irow,icol PIXELS WINDOW (_SCREEN.Name)
  3444.    RETURN lReturn AND NOT THIS.lError
  3445. ENDPROC
  3446. PROCEDURE DragDrop
  3447.    LPARAMETERS oSource, nXCoord, nYCoord
  3448.    IF nYCoord > (THIS.Height - THIS.nMargin)
  3449.       THISFORM.RespondToSplitter(nYCoord)
  3450.    ENDIF
  3451.    RETURN NOT THIS.lError
  3452. ENDPROC
  3453. PROCEDURE synchsizes
  3454.    * make sure that the list hasn't gotten too
  3455.    * large for the number of items in it
  3456.    * because the part under the real items is
  3457.    * difficult to manage (can't get mouseclicks etc)
  3458.    LOCAL lnMaxListHeight, lnProposedListHeight,lnMinimumListHeight , liCount
  3459.    IF THIS.nListRowHeight = 0
  3460.       THIS.SetListRowHeight()
  3461.    ENDIF
  3462.    IF THIS.Parent.iTargetReccount < 1
  3463.       THIS.Parent.iTargetReccount = 1
  3464.    ENDIF
  3465.   THIS.lInZoomMode = ( THIS.shpSplitter.Top >= ;
  3466.                       (THIS.Height - THIS.nMargin) )
  3467.    WITH THIS.lstAvailableObjectsAndProcs
  3468.        
  3469.        * this property can change as the font does...       
  3470.        IF TYPE("THIS.Parent.iTargetReccount") = "N"
  3471.           liCount = THIS.Parent.iTargetReccount
  3472.        ELSE
  3473.           liCount = .ListCount
  3474.        ENDIF
  3475.        lnMinimumListHeight = THIS.nListRowHeight * 1.5
  3476.        THIS.Height = MAX(THIS.Height, ;
  3477.                          (lnMinimumListHeight + .Top + THIS.nMargin + 2))
  3478.        
  3479.        DO CASE
  3480.        CASE liCount < 3
  3481.           lnMaxListHeight = MAX(liCount,1) * (THIS.nListRowHeight * 1.5)
  3482.        CASE liCount = 3
  3483.           lnMaxListHeight = 3 * THIS.nListRowHeight
  3484.        OTHERWISE
  3485.           lnMaxListHeight = (liCount-1) * THIS.nListRowHeight
  3486.        ENDCASE
  3487.        
  3488.        lnProposedListHeight = THIS.shpSplitter.Top - .Top
  3489.        
  3490.        DO CASE
  3491.        CASE liCount < 2
  3492.            .Height = lnMinimumListHeight
  3493.        CASE lnProposedListHeight < lnMinimumListHeight
  3494.            .Height = lnMinimumListHeight
  3495.        CASE BETWEEN(lnProposedListHeight,lnMinimumListHeight, lnMaxListHeight)
  3496.            .Height = lnProposedListHeight
  3497.        OTHERWISE
  3498.            .Height = lnMaxListHeight
  3499.        ENDCASE
  3500.        THIS.shpSplitter.Top = .Height + .Top
  3501.    ENDWITH
  3502.    * ENDDOUG_ER <g>
  3503.    THIS.edtCode.Visible = (NOT THIS.lInZoomMode)
  3504.    IF THIS.lInZoomMode
  3505.       THIS.shpSplitter.MousePointer = MOUSEPOINTER_ARROW_UP
  3506.       THIS.Height = THIS.shpSplitter.Top + THIS.nMargin
  3507.    ELSE
  3508.       THIS.nLastSplitterPosition = THIS.shpSplitter.Top  
  3509.       THIS.edtCode.Top = ;
  3510.          THIS.lstAvailableObjectsAndProcs.Top+ ;
  3511.          THIS.lstAvailableObjectsAndProcs.Height+ ;         
  3512.          THIS.nMargin
  3513.       THIS.edtCode.Height = MAX(THIS.nMargin/2, ;
  3514.                                THIS.Height -(THIS.edtCode.Top+THIS.nMargin))
  3515.                                
  3516.       IF THIS.edtCode.Height < THIS.lstAvailableObjectsandProcs.Height
  3517.          THIS.Height = THIS.edtCode.Top + ;
  3518.                        THIS.lstAvailableObjectsandProcs.Height + ;
  3519.                        THIS.nMargin
  3520.          THIS.edtCode.Height = THIS.lstAvailableObjectsandProcs.Height              
  3521.       ENDIF                               
  3522.       THIS.shpSplitter.MousePointer = MOUSEPOINTER_SIZE_NS
  3523.    ENDIF
  3524.    THIS.cntTools.opgPreviewZoomMode.Value = IIF(THIS.lInZoomMode,2,1)
  3525.    THISFORMSET.SynchZoomWindowState()
  3526.    RETURN NOT THIS.lError
  3527. ENDPROC
  3528. PROCEDURE RightClick
  3529.    THISFORMSET.StandardRightClick()
  3530. ENDPROC
  3531. 28C4C820-401A-101B-A3C9-08002B2F49FB
  3532. [PROCEDURE setoptions
  3533.    * send all appropriate engine properties to
  3534.    * appropriate values from the dialog -
  3535.    * NB fonts are already done automatically,
  3536.    * have to be un-done if we cancel.
  3537.    WITH THIS.oCoverageEngine
  3538.       .lSmartPath          = THIS.chkSmartPath.Value
  3539.       .lRegisterAddIn      = THIS.chkRegisterAddIns.Value
  3540.       .lMarkAllOnLoad      = THIS.chkMarkAllOnLoad.Value
  3541.       .lStartInProfileMode = (THIS.opgStartMode.Value = 2)
  3542.       * the following takes care of the rare care where
  3543.       * they store numbers as a mark -- this will screw up
  3544.       * in the registry handling stuff which will think
  3545.       * it's a numeric value and pull it out of the saved 
  3546.       * string that way :
  3547.       .cMarkExecuted       = IIF(NOT EMPTY(THIS.txtExecuted.Value) AND ;
  3548.                                  VAL(THIS.txtExecuted.Value) > 0, ;
  3549.                                  "_"+THIS.txtExecuted.Value, ;
  3550.                                  THIS.txtExecuted.Value)
  3551.       .cMarkNotExecuted    = IIF(NOT EMPTY(THIS.txtNotExecuted.Value) AND ;
  3552.                                  VAL(THIS.txtNotExecuted.Value) > 0, ;
  3553.                                  "_"+THIS.txtNotExecuted.Value, ;
  3554.                                  THIS.txtNotExecuted.Value)
  3555.    ENDWITH
  3556.    RETURN NOT THIS.lError
  3557. ENDPROC
  3558. PROCEDURE getoptions
  3559.    * get dialog values from current engine values
  3560.    LOCAL oBaseLabel, oFixedLabel
  3561.    oBaseLabel  = THIS.lblShowBaseFont
  3562.    oFixedLabel = THIS.lblShowFixedFont
  3563.    WITH THIS.oCoverageEngine
  3564.       THIS.chkSmartPath.Value          = .lSmartPath
  3565.       THIS.chkRegisterAddIns.Value     = .lRegisterAddIn
  3566.       THIS.chkMarkAllOnLoad.Value      = .lMarkAllOnLoad
  3567.       THIS.opgStartMode.Value          =  IIF(.lStartInProfileMode,2,1)
  3568.       THIS.opgFrame.Value              =  IIF(.lInCoverageFrame,1,2)
  3569.       THIS.txtExecuted.Value           = .cMarkExecuted
  3570.       THIS.txtNotExecuted.Value        = .cMarkNotExecuted
  3571.       oBaseLabel.FontName              = .cBaseFontName
  3572.       oBaseLabel.FontSize              = .nBaseFontSize
  3573.       oBaseLabel.FontItalic            = .lBaseFontItalic
  3574.       oBaseLabel.FontBold              = .lBaseFontBold
  3575.       oFixedLabel.FontSize             = .nBaseMonoFontSize
  3576.       oFixedLabel.FontItalic           = .lBaseMonoFontItalic
  3577.       oFixedLabel.FontBold             = .lBaseMonoFontBold
  3578.       THIS.SavedBaseFontName           = .cBaseFontName
  3579.       THIS.SavedBaseFontSize           = .nBaseFontSize
  3580.       THIS.SavedBaseFontItalic         = .lBaseFontItalic
  3581.       THIS.SavedBaseFontBold           = .lBaseFontBold
  3582.       THIS.SavedFixedFontName          = .cBaseMonoFontName
  3583.       THIS.SavedFixedFontSize          = .nBaseMonoFontSize
  3584.       THIS.SavedFixedFontItalic        = .lBaseMonoFontItalic
  3585.       THIS.SavedFixedFontBold          = .lBaseMonoFontBold
  3586.       THIS.SetAll("FontName",.cBaseMonoFontName,"textbox")
  3587.       oFixedLabel.FontName             = .cBaseMonoFontName
  3588.    ENDWITH
  3589.    oBaseLabel.Caption = oBaseLabel.FontName+" "+ ;
  3590.       ALLTR(STR(oBaseLabel.FontSize))
  3591.    oFixedLabel.Caption = oFixedLabel.FontName+" "+ ;
  3592.       ALLTR(STR(oFixedLabel.FontSize))
  3593. ENDPROC
  3594. PROCEDURE restoreenginefonts
  3595.    WITH THIS.oCoverageEngine
  3596.       .cBaseFontName       = THIS.SavedBaseFontName
  3597.       .nBaseFontSize       = THIS.SavedBaseFontSize
  3598.       .lBaseFontItalic     = THIS.SavedBaseFontItalic
  3599.       .lBaseFontBold       = THIS.SavedBaseFontBold
  3600.       .cBaseMonoFontName   = THIS.SavedFixedFontName
  3601.       .nBaseMonoFontSize   = THIS.SavedFixedFontSize
  3602.       .lBaseMonoFontItalic = THIS.SavedFixedFontItalic
  3603.       .lBaseMonoFontBold   = THIS.SavedFixedFontBold
  3604.    ENDWITH
  3605.    RETURN NOT THIS.lError
  3606. ENDPROC
  3607. PROCEDURE disablefontsettingbuttons
  3608.    STORE .F. TO ;
  3609.       THIS.cmdBaseFont.Enabled, ;
  3610.       THIS.cmdFixedFont.Enabled
  3611. ENDPROC
  3612. PROCEDURE Error
  3613.    LPARAMETERS nError, cMethod, nLine
  3614.    THIS.oCoverageEngine.Error(nError,cMethod,nLine)
  3615. ENDPROC
  3616. PROCEDURE Init
  3617.    LPARAMETERS toEngineRef
  3618.    LOCAL lReturn
  3619.    lReturn = DODEFAULT(toEngineRef)
  3620.    IF lReturn
  3621.       THIS.Caption = COV_DIALOG_CAPTION_LOC +" "+COV_OPTIONS_LOC
  3622.       THIS.cmdOK.Caption = COV_OKCLOSE_LOC
  3623.       THIS.cmdCancel.Caption = COV_CANCEL_LOC
  3624.       THIS.lblOptions.Caption = COV_OPTIONS_LOC
  3625.       THIS.chkSmartPath.Caption = COV_OPT_SMARTPATH_LOC
  3626.       THIS.chkRegisterAddIns.Caption = COV_OPT_REGISTER_ADDINS_LOC
  3627.       THIS.chkMarkAllOnLoad.Caption = COV_OPT_MARKALL_LOC
  3628.       THIS.lblStartMode.Caption = COV_OPT_START_IN_LOC
  3629.       THIS.opgStartMode.Buttons(1).Caption = COV_OPT_START_COVERAGE_LOC
  3630.       THIS.opgStartMode.Buttons(2).Caption = COV_OPT_START_PROFILE_LOC
  3631.       THIS.lblEnvironment.Caption = COV_OPT_ENVIRONMENT_LOC
  3632.       THIS.opgFrame.Buttons(1).Caption = COV_OPT_COVFRAME_LOC
  3633.       THIS.opgFrame.Buttons(2).Caption = COV_OPT_VFPFRAME_LOC
  3634.       THIS.lblCoverageMarks.Caption = COV_OPT_COVERAGE_MARKS_LOC
  3635.       THIS.lblExecuted.Caption = COV_OPT_MARK_EXECUTED_LOC
  3636.       THIS.lblNotExecuted.Caption = COV_OPT_MARK_NOT_EXECUTED_LOC
  3637.       THIS.lblMarksMatched.Caption = COV_OPT_MARKS_WILL_BE_MATCHED_LOC
  3638.       THIS.lblFonts.Caption = COV_OPT_FONTS_LOC
  3639.       THIS.cmdBaseFont.Caption = COV_OPT_GETFONT_LOC
  3640.       THIS.cmdFixedFont.Caption = COV_OPT_GETFIXEDFONT_LOC
  3641.       THIS.chkRegisterDefaults.Caption = COV_OPT_SET_DEFAULTS_LOC
  3642.       IF NOT THIS.oCoverageEngine.lUsingRegistry
  3643.          THIS.chkRegisterDefaults.Enabled = .F.
  3644.          THIS.chkRegisterAddIns.Enabled = .F.
  3645.       ENDIF
  3646.       *&*       IF NOT THIS.oCoverageEngine.lUsingOCXs
  3647.       *&*          THIS.DisableFontSettingButtons()
  3648.       *&*       ENDIF
  3649.       lReturn = THIS.GetOptions()
  3650.    ENDIF
  3651.    RETURN lReturn AND NOT THIS.lError
  3652. ENDPROC
  3653. PROCEDURE cmdOK.Click
  3654.    WITH THISFORM
  3655.       .SetOptions()
  3656.       IF .oCoverageEngine.lUsingRegistry 
  3657.          * this happens whether we're Setting As Default
  3658.          * or not, because it doesn't make any sense outside
  3659.          * of Startup, it can't be changed during the
  3660.          * life of the Coverage object
  3661.          .oCoverageEngine.SetRegistryKeyValue("CoverageFrame", (.opgFrame.Value = 1))
  3662.       
  3663.          IF .chkRegisterDefaults.Enabled AND ;
  3664.             .chkRegisterDefaults.Value
  3665.             .oCoverageEngine.SaveOptionsToRegistry()
  3666.          ENDIF
  3667.       ENDIF
  3668.    ENDWITH
  3669.    THISFORM.oCoverageEngine = .NULL.
  3670.    THISFORM.Release()
  3671. ENDPROC
  3672. PROCEDURE notifyzoomwindowclosed
  3673.    IF TYPE("THIS.frmMainDialog.Class") = "C"
  3674.       LOCAL cTarget
  3675.          
  3676.       cTarget = THIS.GetAlias(, "Target")
  3677.       * it's possible that we're on our way out at this point
  3678.       * and have just closed the zoom window, triggering this notification
  3679.       THIS.frmMainDialog.TogglePreviewZoomMode()
  3680.       IF USED(cTarget) AND NOT EOF(cTarget)
  3681.          GO RECNO() IN (cTarget)
  3682.       ENDIF
  3683.       THIS.NotifyTargetRecordChanged()                  
  3684.    ENDIF
  3685. ENDPROC
  3686. PROCEDURE synchzoomwindowstate
  3687.    DO CASE
  3688.    CASE TYPE("THIS.frmZoom.BaseClass") # "C"
  3689.       * we may be starting up and the window
  3690.       * is not yet available
  3691.    CASE (NOT THIS.frmMainDialog.lInZoomMode) AND ;
  3692.          THIS.frmZoom.Visible
  3693.       THIS.frmZoom.Hide()
  3694.    CASE THIS.frmMainDialog.lInZoomMode AND ;
  3695.          (NOT THIS.frmZoom.Visible)
  3696.       IF THIS.frmMainDialog.WindowState = 2
  3697.          THIS.frmMainDialog.WindowState = 0
  3698.       ENDIF
  3699.       IF NOT THIS.frmMainDialog.Visible 
  3700.          THIS.frmMainDialog.Show()
  3701.       ENDIF
  3702.       
  3703.       WITH THIS.frmZoom
  3704.          IF BETWEEN(.Top, ;
  3705.             THIS.frmMainDialog.Top, ;
  3706.             THIS.frmMainDialog.Top+THIS.frmMainDialog.Height) OR ;
  3707.             BETWEEN(.Left, ;
  3708.             THIS.frmMainDialog.Left, ;
  3709.             THIS.frmMainDialog.Left+THIS.frmMainDialog.WIDTH)
  3710.             .Top = THIS.frmMainDialog.Top + ;
  3711.                    THIS.frmMainDialog.Height + ;
  3712.                    SYSMETRIC(9) + SYSMETRIC(20)
  3713.             .Left = THIS.frmMainDialog.Left
  3714.          ENDIF
  3715.       ENDWITH
  3716.       THIS.frmZoom.Show()
  3717.    OTHERWISE
  3718.      * nothing to do here as currently designed
  3719.    ENDCASE
  3720.    RETURN NOT THIS.lError
  3721. ENDPROC
  3722. PROCEDURE notifytargetrecordchanged
  3723.    LOCAL cTarget, lNoCodeYet
  3724.    cTarget = THIS.GetAlias(,"Target")
  3725.    IF THIS.lInProfileMode
  3726.       lNoCodeYet = EMPTY(&cTarget..Profiled)
  3727.    ELSE
  3728.       lNoCodeYet = EMPTY(&cTarget..Marked)
  3729.    ENDIF
  3730.    IF lNoCodeYet AND ;
  3731.       THIS.frmMainDialog.lInZoomMode AND ;
  3732.       THIS.lFastZoomMode
  3733.          *&* could do a windowstate check in here also...
  3734.    ELSE
  3735.       lNoCodeYet = (NOT THIS.MarkOneTargetRecord())
  3736.    ENDIF
  3737.    IF THIS.frmMainDialog.lInZoomMode
  3738.       cCaption = ALLTR(&cTarget..ObjClass)
  3739.       IF EMPTY(cCaption)
  3740.          cCaption = COV_FULL_SOURCE_FILE_LOC
  3741.       ELSE
  3742.          IF "!" $ cCaption
  3743.              cCaption = SUBSTR(cCaption,AT("!",cCaption)+1)
  3744.          ENDIF
  3745.       ENDIF
  3746.       WITH THIS.frmZoom
  3747.       
  3748.          IF lNoCodeYet
  3749.             .Caption = COV_ZOOM_GET_CODE_LOC
  3750.            
  3751.          ELSE
  3752.             .Caption = COV_ZOOM_MARKED_CODE_FOR_LOC+ ;
  3753.                +" "+ALLTR(&cTarget..Hostfile)+ ;
  3754.                ": "+cCaption
  3755.          ENDIF
  3756.          .edtCode.SelStart = 0
  3757.          .Refresh()
  3758. *!*             IF BETWEEN(.Top, ;
  3759. *!*                   THIS.frmMainDialog.Top, ;
  3760. *!*                   THIS.frmMainDialog.Top+THIS.frmMainDialog.Height) AND ;
  3761. *!*                   BETWEEN(.Left, ;
  3762. *!*                   THIS.frmMainDialog.Left, ;
  3763. *!*                   THIS.frmMainDialog.Left+THIS.frmMainDialog.WIDTH)
  3764. *!*                .Top = THIS.frmMainDialog.Top - SYSMETRIC(9)
  3765. *!*                .Left = THIS.frmMainDialog.Left - SYSMETRIC(9)
  3766. *!*             ENDIF
  3767.          IF NOT .Visible
  3768.             .Visible = .T.
  3769.          ENDIF
  3770.          
  3771.       ENDWITH
  3772.    ELSE
  3773.       THIS.frmMainDialog.Refresh()
  3774.       THIS.frmMainDialog.edtCode.SelStart = 0
  3775.    ENDIF
  3776.    RETURN NOT THIS.lError
  3777. ENDPROC
  3778. PROCEDURE showmodaldialog
  3779.    LPARAMETERS tcWhichDialogClass, tcWhichClassLib
  3780.    ASSERT NOT EMPTY(tcWhichDialogClass)
  3781.    ASSERT NOT EMPTY(tcWhichClassLib)
  3782.    ASSERT TYPE("tcWhichDialogClass") = "C"
  3783.    ASSERT TYPE("tcWhichClassLib") = "C"
  3784.    LOCAL oFormRef,cAlias,cLog, cLibs
  3785.    #IF COV_COMPILED_IN_VFP5 
  3786.       cLibs = SET("CLASSLIB")
  3787.       cAlias = THIS.SetClassLibToAlias(tcWhichClassLib,THIS.cAppName)
  3788.    #ENDIF
  3789.    IF THIS.lInCoverageFrame
  3790.       THIS.oFrame.Show()
  3791.    ELSE
  3792.       ACTIVATE SCREEN
  3793.    ENDIF
  3794.    #IF COV_COMPILED_IN_VFP5
  3795.       oFormRef = CREATEOBJECT(cAlias+"."+tcWhichDialogClass, THIS)
  3796.    #ELSE
  3797.       oFormRef = NEWOBJECT(tcWhichDialogClass,tcWhichClassLib,THIS.cAppName,THIS)
  3798.    #ENDIF
  3799.    cLog = THIS.cSuspendedLog
  3800.    * avoid attempt to resume logging
  3801.    * during this modal dialog
  3802.    THIS.cSuspendedLog = ""
  3803.    oFormRef.Show(1)
  3804.    IF NOT EMPTY(cAlias) AND ;
  3805.          (ATC("ALIAS "+cAlias, SET("CLASSLIB")) > 0)
  3806.       RELEASE CLASSLIB ALIAS (cAlias)
  3807.       SET CLASSLIB TO &cLibs
  3808.    ENDIF
  3809.    THIS.cSuspendedLog = cLog
  3810.    RETURN NOT THIS.lError
  3811. ENDPROC
  3812. PROCEDURE getoptionsfromuser
  3813.    LOCAL lReturn, lProfileMode, cMark, cMarkNot, ;
  3814.       cTarget, iSelect, iRecNo, lMarkAll, lAlreadyReMarked
  3815.    cMark = THIS.cMarkExecuted
  3816.    cMarkNot = THIS.cMarkNotExecuted
  3817.    lMarkAll = THIS.lMarkAllOnLoad
  3818.    lReturn = THIS.ShowModalDialog(COV_OPTIONSDIALOG, COV_OPTIONS_CLASSLIB)
  3819.    IF lReturn
  3820.       THIS.SetUiFonts()
  3821.       IF NOT ((cMark+cMarkNot)==(THIS.cMarkExecuted+THIS.cMarkNotExecuted))
  3822.          * a change has happened
  3823.          THIS.SetMarks() && make them of comparable length
  3824.          iSelect = SELECT()
  3825.          cTarget = THIS.GetAlias(,"Target")
  3826.          SELECT (cTarget)
  3827.          iRecNo = RECNO()
  3828.          COUNT FOR NOT EMPTY(Marked)
  3829.          IF _TALLY > 0
  3830.             IF MESSAGEBOX(COV_MARKS_CHANGED_LOC, ;
  3831.                   COV_WARNING_YESNO_MESSAGEBOX) ;
  3832.                   = IDNO
  3833.                REPLACE ALL Marked WITH ""
  3834.                IF THIS.lMarkAllOnLoad AND (NOT THIS.lInProfileMode)
  3835.                   THIS.MarkAllTargetRecords()
  3836.                   lAlreadyReMarked = .T.
  3837.                ENDIF
  3838.             ENDIF
  3839.          ENDIF
  3840.          GO iRecNo
  3841.          SELECT (iSelect)
  3842.          THIS.NotifyTargetRecordChanged()
  3843.       ENDIF
  3844.       IF (NOT lMarkAll) AND ;
  3845.             THIS.lMarkAllOnLoad AND ;
  3846.             (NOT lAlreadyReMarked) AND ;
  3847.             (MESSAGEBOX(COV_MARK_ALL_NOW_LOC, ;
  3848.             COV_WARNING_YESNO_MESSAGEBOX) ;
  3849.             = IDYES)
  3850.          THIS.MarkAllTargetRecords()
  3851.          THIS.NotifyTargetRecordChanged()
  3852.       ENDIF
  3853.    ENDIF
  3854.    RETURN lReturn AND NOT THIS.lError
  3855. ENDPROC
  3856. PROCEDURE standardrightclick
  3857. SET TOPIC ID TO 1895825783
  3858. DO COVSHORT.MPR
  3859. SET TOPIC ID TO
  3860. RELEASE POPUP COVSHORT
  3861. ENDPROC
  3862. PROCEDURE showtextlog
  3863.    LPARAMETERS tlFromModalDialog
  3864.    LOCAL wOnTopWind, wSourceLog
  3865.    IF tlFromModalDialog
  3866.       wOnTopWind = WONTOP()
  3867.    ENDIF
  3868.    IF THIS.lInCoverageFrame
  3869.       MODI COMM (THIS.cSourceFile) NOWAIT NOEDIT IN WINDOW (THIS.oFrame.Name)
  3870.    ELSE
  3871.       MODI COMM (THIS.cSourceFile) NOWAIT NOEDIT IN SCREEN
  3872.    ENDIF
  3873.    IF NOT EMPTY(wOnTopWind)
  3874.       ACTIVATE WINDOW (wOnTopWind)
  3875.       wSourceLog = (SUBSTR(THIS.cSourceFile,RAT("\",THIS.cSourceFile)+1))
  3876.       IF RIGHT(THIS.cSourceFile,1) = "."
  3877.          wSourceLog = LEFT(wSourceLog,LEN(wSourceLog)-1)
  3878.       ENDIF        
  3879.       IF WEXIST(wSourceLog) && it should!
  3880.          MOVE WINDOW (wSourceLog) TO 1,1
  3881.       ENDIF
  3882.    ENDIF
  3883. ENDPROC
  3884. PROCEDURE showskippedfiles
  3885.    LOCAL cSource,cAlias, iSelect, wOnTopWind
  3886.    cSource = THIS.GetAlias(,"Source")
  3887.    cAlias = THIS.GetAlias(,"Skipped")
  3888.    IF THIS.CreateSkippedCursor(cSource, cAlias)
  3889.       IF USED(cAlias) AND NOT EMPTY(RECC(cAlias))
  3890.          iSelect = SELECT()
  3891.          wOnTopWind = WONTOP()
  3892.          SELECT (cAlias)
  3893.          IF THIS.lInCoverageFrame
  3894.             BROWSE NOWAIT IN WINDOW (THIS.oFrame.Name) TITLE cAlias
  3895.          ELSE
  3896.             BROWSE NOWAIT IN SCREEN TITLE cAlias
  3897.          ENDIF
  3898.          MOVE WINDOW (cAlias) TO 1,1
  3899.          SELECT (iSelect)
  3900.          IF NOT EMPTY(wOnTopWind)
  3901.             ACTIVATE WINDOW (wOnTopWind)
  3902.          ENDIF
  3903.       ELSE
  3904.          MESSAGEBOX(COV_NO_LOG_ENTRIES_SKIPPED_LOC, ;
  3905.             64,COV_DIALOG_CAPTION_LOC+" "+COV_INFO_LOC)
  3906.       ENDIF
  3907.    ENDIF
  3908.    RETURN NOT THIS.lError
  3909. ENDPROC
  3910. PROCEDURE arrangeframewindows
  3911.    IF THIS.lInCoverageFrame
  3912.       LOCAL wFrame, iChild, wChildWindow, nPos, nPosFoxels;
  3913.             cAlias, cSourceWind, iNumberWindows, ;
  3914.             wOnTopWind, wFrameTopWind, oForm, nStagger
  3915.             
  3916.       LOCAL ARRAY aWindowCollection[1]
  3917.       iChild = 0
  3918.       wFrame = UPPER(THIS.oFrame.Name)
  3919.       nStagger = SYSMETRIC(9)
  3920.       cAlias = UPPER(THIS.GetAlias(,"Skipped"))
  3921.       IF NOT WVISIBLE(cAlias)
  3922.          cAlias = ""
  3923.       ENDIF
  3924.       cSourceWind = UPPER(SUBSTR(THIS.cSourceFile, RAT("\",THIS.cSourceFile)+1))
  3925.       IF NOT WVISIBLE(cSourceWind)
  3926.          cSourceWind = ""
  3927.       ENDIF
  3928.      
  3929.       wOnTopWind = UPPER(WONTOP())     
  3930.       iNumberWindows = 0
  3931.       
  3932.       * first find any forms that are in this frame,
  3933.       * which will be in the stack before the frame:
  3934.       FOR EACH oForm IN _SCREEN.Forms
  3935.          DO CASE
  3936.          CASE oForm.ShowWindow = 0 OR ;
  3937.               (! oForm.Visible) OR ;
  3938.               (oForm.WindowState # 0) OR ;
  3939.               UPPER(oForm.BaseClass) == "TOOLBAR" 
  3940.               * skip it
  3941.          CASE oForm.ShowWindow = 1
  3942.               * add to the collection           
  3943.              iNumberWindows = iNumberWindows + 1
  3944.              DIME aWindowCollection[iNumberWindows]
  3945.              aWindowCollection[iNumberWindows] = oForm
  3946.          OTHERWISE && oForm.ShowWindow = 2
  3947.              * is it the right frame?
  3948.              IF UPPER(oForm.Name) == UPPER(THIS.oFrame.Name)
  3949.                 EXIT
  3950.              ELSE
  3951.                 iNumberWindows = 0
  3952.                 * start again with the next batch,
  3953.                 * in the stack, recreating the array
  3954.              ENDIF
  3955.           ENDCASE
  3956.       ENDFOR
  3957.      
  3958.       nPos = 0
  3959.       IF NOT EMPTY(cAlias) 
  3960.          IF (cAlias == wOnTopWind)
  3961.             wFrameTopWind = cAlias
  3962.          ELSE
  3963.             nPos = nPos + 1
  3964.          ENDIF
  3965.       ENDIF
  3966.       IF NOT EMPTY(cSourceWind)
  3967.          IF (cSourceWind == wOnTopWind)      
  3968.             wFrameTopWind = cSourceWind
  3969.          ELSE
  3970.             nPos = nPos + 1
  3971.          ENDIF
  3972.       ENDIF
  3973.      
  3974.       FOR iChild = iNumberWindows TO 1 STEP -1
  3975.          aWindowCollection[iChild].Left = nPos * nStagger
  3976.          aWindowCollection[iChild].Top = nPos * nStagger          
  3977.          nPos = nPos + 1
  3978.       ENDFOR
  3979.      
  3980.      * Now add the ones that won't show up in _SCREEN.Forms()
  3981.      * -- we can't depend on the stack order, 
  3982.      * to give us these windows so unless they are WONTOP()
  3983.      * we have to create one arbitrarily, putting these at the back.
  3984.      * Skipped Files Browse:
  3985.      
  3986.      nPosFoxels = nStagger/ FONTM(1,THIS.oFrame.FontName, THIS.oFrame.FontSize)     
  3987.      
  3988.      IF (NOT EMPTY(cAlias)) AND ;
  3989.         (NOT (cAlias == wOnTopWind))
  3990.          SHOW WINDOW (cAlias) ;
  3991.             IN WINDOW (THIS.oFrame.Name) BOTTOM
  3992.          IF (NOT EMPTY(cSourceWind)) AND ; 
  3993.             (NOT (cSourceWind == wOnTopWind))
  3994.             MOVE WINDOW (cAlias) TO nPosFoxels, nPosFoxels
  3995.          ELSE
  3996.             MOVE WINDOW (cAlias) TO 0,0          
  3997.          ENDIF
  3998.      ENDIF
  3999.      * Text Log MODI window:     
  4000.      IF NOT EMPTY(cSourceWind)  AND ;
  4001.         (NOT (cSourceWind == wOnTopWind))
  4002.         SHOW WINDOW (cSourceWind) ;
  4003.              IN WINDOW (THIS.oFrame.Name) BOTTOM
  4004.         MOVE WINDOW (cSourceWind) TO 0,0
  4005.       ENDIF
  4006.      IF NOT EMPTY(wFrameTopWind)
  4007.         SHOW WINDOW (wFrameTopWind) ;
  4008.             IN WINDOW (THIS.oFrame.Name) 
  4009.         MOVE WINDOW (wFrameTopWind) TO ;
  4010.                     nPos * nPosFoxels, ;
  4011.                    (nPos * nStagger)/FONTM(6,THIS.oFrame.FontName, THIS.oFrame.FontSize)        
  4012.      ENDIF
  4013.    ENDIF
  4014.    RETURN (NOT THIS.lError)         
  4015. ENDPROC
  4016. PROCEDURE togglefastzoommode
  4017. THIS.lFastZoomMode = NOT THIS.lFastZoomMode
  4018. IF NOT THIS.lFastZoomMode
  4019.    THIS.NotifyTargetRecordChanged()
  4020. ENDIF   
  4021. ENDPROC
  4022. PROCEDURE showprojectstatistics
  4023.    LPARAMETERS tcSource, tcTarget, tcProject
  4024.    LOCAL iRecNo, cTarget
  4025.    cTarget = THIS.GetAlias(tcTarget,"Target")
  4026.    iRecNo = RECNO(cTarget)
  4027.    DODEFAULT(tcSource, tcTarget, tcProject)
  4028.    GO iRecNo IN (cTarget)
  4029.    IF NOT THIS.lError
  4030.       THIS.NotifyTargetRecordChanged()
  4031.    ENDIF
  4032. ENDPROC
  4033. PROCEDURE displayprojectstatistics
  4034.    LPARAMETERS tcSource, tcTarget, tcProject
  4035.    LOCAL cProject, iSelect, iState, wOnTopWind, cClauses, oForm
  4036.    cProject = THIS.GetAlias(tcProject, "Project")
  4037.    IF DODEFAULT(tcSource, tcTarget, tcProject)
  4038.       oForm = CREATEOBJECT("FORM")
  4039.       oForm.Caption = COV_APPLICATION_NAME_LOC + ;
  4040.                       COV_STATS_VIEW_PROJECT_LOC 
  4041.       * because I am re-using a LOC from
  4042.       * a button which may have a hotkey:
  4043.       oForm.Caption = STRTRAN(oForm.Caption,"\<","")
  4044.       iSelect = SELECT()
  4045.       SELECT (cProject)
  4046.       wOnTopWind = WONTOP()
  4047.      
  4048.       IF THIS.lVFP5
  4049.          iState = _SCREEN.WindowState
  4050.          _SCREEN.WindowState = 2
  4051.          ACTIVATE SCREEN
  4052.       ENDIF
  4053.       
  4054.       cClauses = " WINDOW (oForm.Name) "
  4055.       IF ((NOT THIS.lVFP5) AND THIS.lInCoverageFrame)
  4056.          cClauses = cClauses + ;
  4057.                     " IN WINDOW " + THIS.oFrame.Name
  4058.       ENDIF
  4059.             
  4060.       REPORT FORM (COV_PROJECT_FRX) PREVIEW &cClauses
  4061.       IF THIS.lVFP5
  4062.          _SCREEN.WindowState = iState
  4063.       ENDIF
  4064.       
  4065.       IF THIS.lInCoverageFrame
  4066.          THIS.oFrame.Show()
  4067.       ENDIF
  4068.       IF NOT EMPTY(wOnTopWind)
  4069.          ACTIVATE WINDOW (wOnTopWind) TOP
  4070.       ELSE 
  4071.          ACTIVATE SCREEN
  4072.       ENDIF
  4073.       SELECT (iSelect)
  4074.    ENDIF
  4075.    RETURN NOT THIS.lError
  4076. ENDPROC
  4077. PROCEDURE showstatistics
  4078.    IF DODEFAULT()
  4079.       THIS.MarkOneTargetRecord() && JIC
  4080.       THIS.ShowModalDialog(COV_STATISTICSDIALOG, COV_STATISTICS_CLASSLIB)
  4081.    ENDIF
  4082. ENDPROC
  4083. PROCEDURE togglecoverageprofilemode
  4084.    LPARAMETERS tcSource,tcTarget
  4085.    IF DODEFAULT(tcSource,tcTarget)
  4086.       THIS.SetUIToShowCode(tcSource,tcTarget)
  4087.       THIS.NotifyTargetRecordChanged()
  4088.    ENDIF
  4089.    RETURN NOT THIS.lError
  4090. ENDPROC
  4091. PROCEDURE setuifonts
  4092.    THIS.frmMainDialog.lstAvailableObjectsAndProcs.FontName =  ;
  4093.         THIS.cBaseFontName
  4094.    THIS.frmMainDialog.lstAvailableObjectsAndProcs.FontSize =  ;
  4095.         THIS.nBaseFontSize
  4096.    THIS.frmMainDialog.lstAvailableObjectsAndProcs.FontItalic =  ;
  4097.         THIS.lBaseFontItalic
  4098.    THIS.frmMainDialog.lstAvailableObjectsAndProcs.FontBold =  ;
  4099.         THIS.lBaseFontBold
  4100.    THIS.frmMainDialog.SetListRowHeight()
  4101.    STORE THIS.cBaseMonoFontName TO ;
  4102.       THIS.frmMainDialog.edtCode.FontName, ;
  4103.       THIS.frmZoom.edtCode.FontName
  4104.    STORE THIS.nBaseMonoFontSize TO ;
  4105.       THIS.frmMainDialog.edtCode.FontSize, ;
  4106.       THIS.frmZoom.edtCode.FontSize
  4107.    STORE THIS.lBaseMonoFontItalic TO ;
  4108.       THIS.frmMainDialog.edtCode.FontItalic, ;
  4109.       THIS.frmZoom.edtCode.FontItalic
  4110.    STORE THIS.lBaseMonoFontBold TO ;
  4111.       THIS.frmMainDialog.edtCode.FontBold, ;
  4112.       THIS.frmZoom.edtCode.FontBold
  4113.       
  4114.    THIS.frmMainDialog.SynchSizes()
  4115.          
  4116. ENDPROC
  4117. PROCEDURE setuitoshowfilestates
  4118.    LPARAMETERS tcSource, tcTarget
  4119.    IF DODEFAULT(tcSource, tcTarget) 
  4120.       IF EMPTY(tcTarget) OR (UPPER(tcTarget) == UPPER(THIS.cTargetAlias))
  4121.          THIS.frmMainDialog.cntTools.opgCoverageProfileMode.Value = ;
  4122.             IIF(THIS.lInProfileMode,2,1)
  4123.          THIS.frmMainDialog.Caption = THIS.cSourceFile+" - "+ ;
  4124.             COV_DIALOG_CAPTION_LOC
  4125.          THIS.frmMainDialog.lstAvailableObjectsAndProcs.Value = 1
  4126.          THIS.NotifyTargetRecordChanged()
  4127.          THIS.frmMainDialog.Show()
  4128.       ELSE
  4129.          * we're in the middle of getting the Engine to parse some
  4130.          * other files we don't want to show in the standard UI 
  4131.          * and we don't want to disturb the standard Main Dialog
  4132.          * during this process
  4133.       ENDIF
  4134.    ENDIF
  4135.    RETURN NOT THIS.lError
  4136. ENDPROC
  4137. PROCEDURE setuitoshowcode
  4138.    LPARAMETERS tcSource,tcTarget
  4139.    LOCAL cSource,cTarget
  4140.    cSource = THIS.GetAlias(tcSource,"Source")
  4141.    cTarget = THIS.GetAlias(tcTarget,"Target")
  4142.    IF cTarget == THIS.cTargetAlias
  4143.       STORE "IIF(EMPTY("+cTarget+".ObjClass),["+;
  4144.                  COV_FULL_SOURCE_FILE_LOC+"], "+;
  4145.                  "IIF([!] $ "+cTarget+".ObjClass, "+ ;
  4146.                      "SUBSTR("+cTarget+".ObjClass,AT([!],"+cTarget+".ObjClass)+1),"+ ;
  4147.                      cTarget+".ObjClass)), "+ ;
  4148.                  "IIF(.T.,SPACE(1) +"+ cTarget+".HostFile,[])" TO ;
  4149.          THIS.frmMainDialog.lstAvailableObjectsAndProcs.RowSource
  4150.          
  4151.       STORE cTarget+ ;
  4152.          IIF(THIS.lInProfileMode, ".Profiled",".Marked")   ;
  4153.          TO ;
  4154.          THIS.frmMainDialog.edtCode.ControlSource, ;
  4155.          THIS.frmZoom.edtCode.ControlSource
  4156.       THIS.frmMainDialog.SynchSizes()
  4157.       
  4158.       * because of IntegralHeight and MaxHeight that we 
  4159.       * want for list, which depends on number of source entries         
  4160.   ELSE
  4161.      * we're in the middle of getting the Engine to parse some
  4162.      * other files we don't want to show in the standard UI         
  4163.   ENDIF
  4164.   * the following simply makes sure that UI objects required by the
  4165.   * cov_standard component get built into any project that instantiates
  4166.   * cov_standard:
  4167.   EXTERNAL REPORT COV_PROJECT_FRX   
  4168.   EXTERNAL CLASS COV_MAINFORM_CLASSLIB
  4169.   EXTERNAL CLASS COV_ZOOMFORM_CLASSLIB
  4170.   EXTERNAL CLASS COV_STATISTICS_CLASSLIB
  4171.   EXTERNAL CLASS COV_OPTIONS_CLASSLIB
  4172.   EXTERNAL CLASS COV_ADDIN_CLASSLIB
  4173.   EXTERNAL FILE COVERAGE.ICO
  4174.   EXTERNAL FILE HO_SPLIT.CUR
  4175.   EXTERNAL FILE COVERAGE.BMP
  4176.   EXTERNAL FILE ADDINS.BMP
  4177.   EXTERNAL FILE OPEN.BMP
  4178.   EXTERNAL FILE PROFILE.BMP
  4179.   EXTERNAL FILE ZOOM.BMP
  4180.   EXTERNAL FILE OPTIONS.BMP
  4181.   EXTERNAL FILE SAVE.BMP
  4182.   EXTERNAL FILE PREVIEW.BMP
  4183.   EXTERNAL FILE STATS.BMP
  4184.   EXTERNAL FILE COVERAGE.MSK
  4185.   EXTERNAL FILE ADDINS.MSK
  4186.   EXTERNAL FILE OPEN.MSK
  4187.   EXTERNAL FILE PROFILE.MSK
  4188.   EXTERNAL FILE ZOOM.MSK
  4189.   EXTERNAL FILE OPTIONS.MSK
  4190.   EXTERNAL FILE SAVE.MSK
  4191.   EXTERNAL FILE PREVIEW.MSK
  4192.   EXTERNAL FILE STATS.MSK
  4193. ENDPROC
  4194. PROCEDURE markonetargetrecord
  4195.    LPARAMETERS tcSource, tcTarget, tlDoingAll
  4196.    LOCAL lReturn
  4197.    lReturn = DODEFAULT(tcSource, tcTarget, tlDoingAll)
  4198.    IF NOT lReturn
  4199.       IF THIS.iTargetReccount > 0
  4200.          THIS.iTargetReccount = THIS.iTargetReccount - 1
  4201.       ENDIF
  4202.       THIS.SetUIToShowCode(tcSource, tcTarget)      
  4203.    ENDIF
  4204.    RETURN lReturn
  4205. ENDPROC
  4206. PROCEDURE createforms
  4207.    LOCAL lReturn, laCheck[1], cMainAlias, cZoomAlias,cLibs
  4208.    lReturn = DODEFAULT()
  4209.    IF lReturn
  4210.       IF THIS.lInCoverageFrame
  4211.          THIS.oFrame.Show()
  4212.       ELSE
  4213.          ACTIVATE SCREEN
  4214.       ENDIF
  4215.       #IF COV_COMPILED_IN_VFP5 
  4216.          cLibs = SET("CLASSLIB")
  4217.          cMainAlias = THIS.SetClassLibToAlias(COV_MAINFORM_CLASSLIB,THIS.cAppName)
  4218.          cZoomAlias = THIS.SetClassLibToAlias(COV_ZOOMFORM_CLASSLIB,THIS.cAppName)
  4219.          THIS.AddObject("frmMainDialog",cMainAlias+"."+COV_MAINFORM)         
  4220.          THIS.AddObject("frmZoom",cZoomAlias+"."+COV_ZOOMFORM) 
  4221.          IF NOT EMPTY(cMainAlias+cZoomAlias)         
  4222.             IF NOT EMPTY(cLibs)        
  4223.                SET CLASSLIB TO &cLibs
  4224.             ELSE
  4225.                SET CLASSLIB TO
  4226.             ENDIF
  4227.          ENDIF
  4228.       #ELSE
  4229.          THIS.NewObject("frmMainDialog",COV_MAINFORM,COV_MAINFORM_CLASSLIB,THIS.cAppName)      
  4230.          THIS.NewObject("frmZoom",COV_ZOOMFORM,COV_ZOOMFORM_CLASSLIB,THIS.cAppName)      
  4231.       #ENDIF
  4232.       IF TYPE("THIS.frmMainDialog.Name") # "C" OR ;
  4233.          ACLASS(laCheck,THIS.frmMainDialog) = 0 OR ;
  4234.          ASCAN(laCheck,"COV_MAINDIALOG_STANDARD") = 0 OR ;
  4235.          TYPE("THIS.frmZoom.Name") # "C" OR ;
  4236.          ACLASS(laCheck,THIS.frmZoom) = 0 OR ;
  4237.          ASCAN(laCheck,"COV_ZOOMDIALOG") = 0 
  4238.          MESSAGEBOX(COV_BADDIALOGS_LOC,COV_STOP_MESSAGEBOX)
  4239.          lReturn = .F.
  4240.       ENDIF
  4241.    ENDIF
  4242.    RETURN lReturn AND NOT THIS.lError
  4243. ENDPROC
  4244. PROCEDURE domessage
  4245.    LPARAMETERS tcMessage, tnMessageBoxOptions, tcMessageBoxTitle
  4246.    ASSERT TYPE("tcMessage") = "C"
  4247.    LOCAL liReturn
  4248.    liReturn = 0
  4249.    IF TYPE("tnMessageBoxOptions") # "N"
  4250.       tnMessageBoxOptions = 0
  4251.    ENDIF
  4252.    IF TYPE("tcMessageBoxTitle") # "C"
  4253.       tcMessageBoxTitle = COV_DIALOG_CAPTION_LOC
  4254.    ENDIF
  4255.    IF THIS.lUnattended
  4256.       WAIT WINDOW LEFT(tcMessage,COV_MESSAGE_LIMIT);
  4257.            TIMEOUT COV_TIMEOUT_SECS
  4258.    ELSE
  4259.       liReturn = MESSAGEBOX(tcMessage, tnMessageBoxOptions, tcMessageBoxTitle)
  4260.    ENDIF
  4261.    RETURN liReturn
  4262. ENDPROC
  4263. PROCEDURE setuitoshowfilestates
  4264.    LPARAMETERS tcSource,tcTarget
  4265.    * abstract in the engine by design
  4266.    RETURN NOT THIS.lError
  4267. ENDPROC
  4268. PROCEDURE setmarks
  4269.    LOCAL iMarkLength
  4270.    * make sure that we've got valid marks
  4271.    IF TYPE("THIS.cMarkExecuted") # "C" OR ;
  4272.          TYPE("THIS.cMarkNotExecuted") # "C" OR ;
  4273.          EMPTY(THIS.cMarkExecuted + THIS.cMarkNotExecuted)
  4274.       * go back to original defaults,
  4275.       * since these are critical entities:
  4276.       THIS.cMarkExecuted = ;
  4277.          THIS.GetRegistryKeyValue("MarkExecuted",COV_DEFAULT_MARKEXECUTED)
  4278.       THIS.cMarkNotExecuted = ;
  4279.          THIS.GetRegistryKeyValue("MarkNotExecuted", COV_DEFAULT_MARKNOTEXECUTED)
  4280.    ENDIF
  4281.    iMarkLength = MAX(LEN(THIS.cMarkExecuted), ;
  4282.       LEN(THIS.cMarkNotExecuted), ;
  4283.       COV_DEFAULT_MARKSPACING)
  4284.    THIS.cMarkExecuted = PADR(THIS.cMarkExecuted,iMarkLength,SPACE(1))
  4285.    THIS.cMarkNotExecuted = PADR(THIS.cMarkNotExecuted,iMarkLength,SPACE(1))
  4286.    RETURN NOT THIS.lError
  4287. ENDPROC
  4288. PROCEDURE setuitoshowcode
  4289.    LPARAMETERS tcSource,tcTarget
  4290.    * abstract in the engine by design
  4291.    RETURN NOT THIS.lError
  4292. ENDPROC
  4293. PROCEDURE setuifonts
  4294.    * abstract in the engine class by design
  4295.    * this is where the font property values,
  4296.    * cBaseFont and nBaseFontSize,
  4297.    * cBaseMonoFont and nBaseMonoFontSize,
  4298.    * get translated to the interface as required in
  4299.    * a given interface
  4300.    RETURN NOT THIS.lError
  4301. ENDPROC
  4302. PROCEDURE setuioptions
  4303.    LOCAL lReturn
  4304.    lReturn = THIS.SetFontValues()
  4305.    IF lReturn
  4306.       lReturn = THIS.SetUiFonts()
  4307.    ENDIF
  4308.    IF lReturn
  4309.       lReturn = THIS.GetRegisteredAddins()
  4310.       IF TYPE("THIS.aAddIns[1]") = "C"
  4311.          THIS.cAddIn = THIS.aAddIns[1]
  4312.       ENDIF
  4313.    ENDIF
  4314.    RETURN lReturn AND NOT THIS.lError
  4315. ENDPROC
  4316. PROCEDURE passedproperparams
  4317.    LPARAMETERS tcFile,tlUnattended,tcAddIn
  4318.    LOCAL lReturn
  4319.    lReturn = ( (EMPTY(tcFile) OR TYPE("tcFile") = "C")   AND ;
  4320.       (EMPTY(tcAddIn) OR TYPE("tcAddIn") = "C") AND ;
  4321.       (EMPTY(tlUnattended) OR TYPE("tlUnattended") = "L") )
  4322.    IF NOT lReturn
  4323.       * This will actually result in a
  4324.       * messagebox even in
  4325.       * unattended mode, 
  4326.       * because that value isn't set yet,
  4327.       * but that's okay --
  4328.       * we want them to know their automated test went nowhere!
  4329.       * No way to do this except by "getting stuck"...
  4330.       THIS.DoMessage(COV_BAD_PARAMS_LOC,COV_STOP_MESSAGEBOX)
  4331.    ENDIF
  4332.    RETURN lReturn
  4333. ENDPROC
  4334. PROCEDURE setlogfile
  4335.    LPARAMETERS tcFile
  4336.    LOCAL lReturn, lcFile, liAnswer, loHost
  4337.    IF TYPE("tcFile") # "C"
  4338.       * there is no SET COVERAGE ON/OFF
  4339.       * SET("COVERAGE") is how you get the filename:
  4340.       lcFile = SET("COVERAGE")
  4341.    ELSE
  4342.       lcFile = ALLTRIM(tcFile)
  4343.       IF NOT EMPTY(lcFile) 
  4344.          IF AT(".",SUBSTR(lcFile,RAT("\",lcFile))) = 0
  4345.             * have to substr, because a relative path 
  4346.             * might have been passed with .'s on the left end
  4347.             lcFile = lcFile+".log"
  4348.             IF EMPTY(SYS(2000,FULLPATH(lcFile))) AND THIS.lVFP5
  4349.                lcFile = STRTRAN(lcFile,".log",".txt")
  4350.             ENDIF
  4351.          ENDIF
  4352.          lcFile = FULLPATH(lcFile)        
  4353.       ENDIF
  4354.    ENDIF
  4355.    IF EMPTY(lcFile) OR EMPTY(SYS(2000,lcFile))
  4356.       * offer a chance to find one:
  4357.        lcFile = THIS.GetResourceLocation("", ;
  4358.          COV_GETLOGFILE_TITLE_LOC, ;
  4359.          COV_LOGFILES_LOC+" (*.log;*.txt)|*.log;*.txt|" + ;
  4360.          COV_ALLFILES_LOC+" (*.*)|*.*",;
  4361.          "", ;
  4362.          "getfile" )
  4363.    ENDIF
  4364.    DO CASE
  4365.    CASE EMPTY(lcFile) AND (NOT EMPTY(THIS.cSourceFile))
  4366.       * do nothing, just return
  4367.    CASE EMPTY(lcFile)
  4368.       * called from Init, no log has yet been set
  4369.       * but the OCX isn't generating an appropriate
  4370.       * trappable error
  4371. *!*          IF THIS.lUsingOCXs
  4372. *!*             THIS.lUsingOCXs = .F.
  4373. *!*             lcFile = THIS.GetResourceLocation("", ;
  4374. *!*                           COV_GETLOGFILE_TITLE_LOC, ;
  4375. *!*                           COV_LOGFILES_LOC+" (*.log;*.txt)|*.log;*.txt|" + ;
  4376. *!*                           COV_ALLFILES_LOC+" (*.*)|*.*",;
  4377. *!*                           "", ;
  4378. *!*                           "getfile" )
  4379. *!*          ENDIF
  4380.       IF EMPTY(lcFile) OR EMPTY(SYS(2000,lcFile))
  4381.          THIS.DoMessage(COV_LOG_NOT_SPECIFIED_LOC, ;
  4382.                         COV_STOP_MESSAGEBOX)
  4383.       ELSE
  4384.          lReturn = .T.
  4385.          THIS.cSourceFile = LOWER(lcFile)         
  4386.       ENDIF
  4387.    CASE EMPTY(SYS(2000,lcFile))
  4388.       liAnswer = THIS.DoMessage(COV_START_LOGGING_LOC, ;
  4389.                  COV_YESNOCANCEL_MESSAGEBOX )
  4390.       DO CASE
  4391.       CASE liAnswer = IDYES
  4392.          SET COVERAGE TO (lcFile)
  4393.          THIS.Release()
  4394.       CASE liAnswer = IDNO
  4395.          lReturn = THIS.SetLogFile() && recursive call
  4396.       OTHERWISE && cancel
  4397.          IF EMPTY(THIS.cSourceFile)
  4398.             THIS.Release()
  4399.          ELSE
  4400.             * go back to previous log
  4401.          ENDIF
  4402.       ENDCASE                 
  4403.    OTHERWISE
  4404.       lReturn = .T.
  4405.       THIS.cSourceFile = LOWER(lcFile)
  4406.    ENDCASE
  4407.    RETURN lReturn
  4408. ENDPROC
  4409. PROCEDURE suspendcoverage
  4410.    IF EMPTY(THIS.cSuspendedLog)
  4411.       THIS.cSuspendedLog = UPPER(SET("COVERAGE"))
  4412.       SET COVERAGE TO
  4413.    ELSE
  4414.       * Coverage is already suspended --
  4415.       * probably first Activate() after suspension
  4416.       * on startup or we've gone into a modal
  4417.       * dialog associated with this program
  4418.    ENDIF
  4419.    RETURN NOT THIS.lError
  4420. ENDPROC
  4421. PROCEDURE resumecoverage
  4422.    LOCAL lReturn
  4423.    IF NOT EMPTY(THIS.cSuspendedLog)
  4424.       LOCAL iResponse
  4425.       IF THIS.lUnattended
  4426.          iResponse = IDYES
  4427.       ELSE
  4428.          iResponse = ;
  4429.             MESSAGEBOX(COV_RESUME_LOC, COV_YESNOCANCEL_MESSAGEBOX)
  4430.       ENDIF
  4431.       IF INLIST(iResponse, IDYES, IDNO)
  4432.          * make an attempt to close any file-editing
  4433.          * windows that the user may have opened, either
  4434.          * through the Coverage app or otherwise, to
  4435.          * view the log -- of course this won't help if
  4436.          * they opened it in Notepad <g>
  4437.          RELEASE WINDOW (SUBSTR(THIS.cSuspendedLog,RAT("\",THIS.cSuspendedLog)+1))
  4438.       ENDIF
  4439.       THIS.lError = .F.
  4440.       DO CASE
  4441.       CASE iResponse = IDYES
  4442.          SET COVERAGE TO (THIS.cSuspendedLog) ADDITIVE
  4443.       CASE iResponse = IDNO
  4444.          SET COVERAGE TO (THIS.cSuspendedLog)
  4445.       OTHERWISE && IDCANCEL
  4446.          * leave coverage off
  4447.       ENDCASE
  4448.       lReturn = NOT THIS.lError
  4449.       IF THIS.lError
  4450.          * they may have it open in Notepad, or elsewhere...
  4451.          THIS.lError = .F.
  4452.          SET COVERAGE TO
  4453.          MESSAGEBOX(COV_CANNOT_RESUME_LOC, COV_STOP_MESSAGEBOX)
  4454.       ENDIF
  4455.       THIS.cSuspendedLog = "" 
  4456.    ENDIF
  4457.    RETURN lReturn
  4458. ENDPROC
  4459. PROCEDURE sourcefileislog
  4460.    ASSERT NOT (EMPTY(THIS.cSourceFile) OR ;
  4461.       EMPTY(SYS(2000,THIS.cSourceFile)) )
  4462.       
  4463.    THIS.ShowStatus(COV_CHECKING_FOR_VALID_LOG_LOC)      
  4464.    LOCAL lReturn, iSelect, liFieldCount, iHandle, iLineCount, cLine
  4465.    liFieldCount = IIF(THIS.lVFP5, ;
  4466.                       N_COVLOG_FIELDCOUNT_V5, ;
  4467.                       N_COVLOG_FIELDCOUNT_V6)
  4468.    lReturn = .T.                      
  4469.    * check number of commas per line
  4470.    * and check that it isn't empty
  4471.    IF .F. 
  4472.       * This code may be dangerous if the
  4473.       * log is too big -- or it may simply
  4474.       * take too long and it's difficult to 
  4475.       * give feedback
  4476.       * However it *is* more thorough
  4477.       * a check than the alternative
  4478.       * we're currently using, below,
  4479.       * so it's left in to give
  4480.       * developers a chance to 
  4481.       * evaluate this possibility:
  4482.       
  4483.       iSelect = SELECT()
  4484.       CREATE CURSOR Test (onefield m)
  4485.       APPEND BLANK
  4486.       APPEND MEMO onefield FROM (THIS.cSourceFile)
  4487.       * There is currently
  4488.       * an empty header line in the file,
  4489.       * which I don't want to depend on, but
  4490.       * for now subtract one from the number of lines
  4491.       * for that line:
  4492.                       
  4493.       lReturn = OCCURS( [COV_LOG_DELIMITER], ;
  4494.          Test.onefield) = ;
  4495.          ((MEMLINES(Test.onefield)-1) *  ;
  4496.          (liFieldCount - 1) )
  4497.       IF NOT lReturn
  4498.          * one more chance; this time w/o empty header line!
  4499.          lReturn = OCCURS( [COV_LOG_DELIMITER], ;
  4500.             Test.onefield) = ;
  4501.             (MEMLINES(Test.onefield) *  ;
  4502.             (liFieldCount - 1) )
  4503.       ENDIF
  4504.       USE IN Test
  4505.       SELECT (iSelect)
  4506.    ELSE
  4507.       * check a spec'd, limited
  4508.       * number of lines in the 
  4509.       * log for the proper structure
  4510.       iHandle = FOPEN(THIS.cSourceFile)
  4511.       
  4512.       IF iHandle > -1
  4513.       
  4514.          iLineCount = 0
  4515.       
  4516.          DO WHILE NOT FEOF(iHandle) AND ;
  4517.                   lReturn AND ;
  4518.                   iLineCount < COV_LINES_TO_VALIDATE
  4519.       
  4520.             cLine = FGETS(iHandle,1024)
  4521.             iLineCount = iLineCount + 1
  4522.             lReturn = EMPTY(cLine) OR ;
  4523.                      (OCCURS([COV_LOG_DELIMITER],cLine) = liFieldCount -1)
  4524.                   
  4525.          ENDDO
  4526.       
  4527.       ELSE
  4528.         lReturn = .F.
  4529.       ENDIF
  4530.       =FCLOSE(iHandle)
  4531.    ENDIF      
  4532.    IF THIS.lError OR (NOT lReturn)
  4533.       lReturn = .F.
  4534.       THIS.lError = .F.
  4535.       THIS.DoMessage(COV_LOG_WRONG_FORMAT_LOC, ;
  4536.           COV_STOP_MESSAGEBOX )
  4537.    ENDIF
  4538.    THIS.ClearStatus()
  4539.    RETURN lReturn
  4540. ENDPROC
  4541. PROCEDURE fillfiletypearray
  4542.    * known source types --
  4543.    * first column is what the coverage
  4544.    * log has in it and the second column
  4545.    * is what we need to translate to:
  4546.    DIME THIS.aFileTypes[9,2]
  4547.    THIS.aFileTypes[1,1] = ".fxp"
  4548.    THIS.aFileTypes[1,2] = ".prg"
  4549.    THIS.aFileTypes[2,1] = ".dct"
  4550.    THIS.aFileTypes[2,2] = ".dbc"
  4551.    THIS.aFileTypes[3,1] = ".vct"
  4552.    THIS.aFileTypes[3,2] = ".vcx"
  4553.    THIS.aFileTypes[4,1] = ".sct"
  4554.    THIS.aFileTypes[4,2] = ".scx"
  4555.    THIS.aFileTypes[5,1] = ".mpx"
  4556.    THIS.aFileTypes[5,2] = ".mpr"
  4557.    THIS.aFileTypes[6,1] = ".qpx"
  4558.    THIS.aFileTypes[6,2] = ".qpr"
  4559.    THIS.aFileTypes[7,1] = ".spx"
  4560.    THIS.aFileTypes[7,2] = ".spr"
  4561.    THIS.aFileTypes[8,1] = ".frt"
  4562.    THIS.aFileTypes[8,2] = ".frx"
  4563.    THIS.aFileTypes[9,1] = ".lbt"
  4564.    THIS.aFileTypes[9,2] = ".lbx"
  4565.    * note that FRXs will be ignored in 5.0x,
  4566.    * since the source log does not
  4567.    * report on them properly until 6.0
  4568.    RETURN NOT (EMPTY(THIS.aFileTypes[1,1]) OR THIS.lError)
  4569. ENDPROC
  4570. PROCEDURE createcoveragefilenamecursor
  4571.    * this one should not need to change
  4572.    * during the life of the coverage browser
  4573.    * object, unlike all the other workfiles...
  4574.    LOCAL lReturn
  4575.    IF USED(THIS.cCovFilesAlias)
  4576.       lReturn = .T.
  4577.    ELSE
  4578.       CREATE CURSOR (THIS.cCovFilesAlias) ;
  4579.          (FName c(COV_LEN_HOSTFILE))
  4580.       lReturn = THIS.FillCoverageFileNameCursor()
  4581.       IF lReturn
  4582.          INDEX ON UPPER(FName) TAG FName
  4583.       ENDIF
  4584.    ENDIF
  4585.    RETURN lReturn AND NOT THIS.lError
  4586. ENDPROC
  4587. PROCEDURE setupworkfiles
  4588.    LPARAMETERS tcLogFile, tcSource,tcTarget
  4589.    * alias names are passed here because it's possible
  4590.    * to have more than one set of files in
  4591.    * use at once by the engine. You'd have to keep
  4592.    * track of the source, target, and skipped cursor
  4593.    * aliases for each set as you parsed multiple sets.
  4594.    * one set would be the "current set of files" for
  4595.    * each instance of the main dialog within the
  4596.    * coverage formset.
  4597.    LOCAL lReturn, cCurrentSourceFile, cOldPath
  4598.    cCurrentSourceFile = THIS.cSourceFile
  4599.    IF NOT THIS.CreateCoverageFilenameCursor()
  4600.       RETURN .F.
  4601.    ENDIF
  4602.    IF THIS.SetLogFile(tcLogFile)
  4603.       lReturn = .T.
  4604.    ELSE
  4605.       RETURN .F.
  4606.    ENDIF
  4607.    IF lReturn AND (cCurrentSourceFile == THIS.cSourceFile)
  4608.       ASSERT (NOT THIS.lUnattended)
  4609.       * if we're unattended, we're starting
  4610.       * with a log file and going straight through --
  4611.       * there should be no reason to be setting up
  4612.       * a logfile twice
  4613.       IF MESSAGEBOX(COV_REOPEN_SAME_LOG_FILE_LOC, ;
  4614.             COV_WARNING_YESNO_MESSAGEBOX) = ;
  4615.             IDNO
  4616.          RETURN .T.
  4617.       ENDIF
  4618.    ENDIF
  4619.    * make an attempt to close it, in case it is open:
  4620.    RELEASE WINDOW (SUBSTR(THIS.cSourceFile,RAT("\",THIS.cSourceFile)+1))
  4621.    THIS.LockScreens(.T.)
  4622.    cOldPath = SET("PATH")
  4623.    IF lReturn
  4624.       lReturn = THIS.SourceFileIsLog()
  4625.    ENDIF
  4626.    IF lReturn
  4627.       THIS.ShowStatus(COV_CREATING_FILES_FROM_LOC+" "+ ;
  4628.          THIS.cSourceFile+"... ")
  4629.       lReturn = ;
  4630.          THIS.CreateSourceCursor(tcSource)
  4631.    ENDIF
  4632.    IF lReturn
  4633.       lReturn = ;
  4634.          THIS.CreateTargetCursor(tcSource, tcTarget)
  4635.    ENDIF
  4636.    THIS.cSavedTargetDBF = ""
  4637.    THIS.lInProfileMode = THIS.lStartInProfileMode   
  4638.    IF lReturn AND ;
  4639.          (THIS.lUnattended OR THIS.lMarkAllOnLoad)
  4640.       lReturn = THIS.MarkAllTargetRecords(tcSource, tcTarget)
  4641.    ENDIF
  4642.    IF lReturn AND THIS.lUnattended
  4643.       THIS.lInProfileMode = ! THIS.lInProfileMode
  4644.       lReturn = THIS.MarkAllTargetRecords(tcSource, tcTarget)
  4645.       * create both types of markedsource
  4646.    ENDIF
  4647.    DO CASE
  4648.    CASE (NOT lReturn) OR THIS.lError
  4649.       lReturn = .F.
  4650.       THIS.lError = .F.
  4651.       THIS.cSourceFile = cCurrentSourceFile
  4652.    CASE THIS.lUnattended
  4653.       * do nothing
  4654.    OTHERWISE
  4655.       * we're good!
  4656.       THIS.cDefaultWritePath = SUBSTR(THIS.cSourceFile,1,RAT("\",THIS.cSourceFile))      
  4657.       THIS.SetUIToShowCode(tcSource,tcTarget)
  4658.       THIS.SetUIToShowFileStates(tcSource,tcTarget)
  4659.    ENDCASE
  4660.    SET PATH TO (cOldPath)
  4661.    THIS.ClearStatus()
  4662.    THIS.LockScreens(.F.)
  4663.    RETURN lReturn
  4664. ENDPROC
  4665. PROCEDURE createskippedcursor
  4666.    LPARAMETERS tcSource, tcSkipped
  4667.    LOCAL cSkipped, cSource, iSelect
  4668.    iSelect = SELECT()
  4669.    cSource = THIS.GetAlias(tcSource,"Source")
  4670.    cSkipped = THIS.GetAlias(tcSkipped,"Skipped")
  4671.    IF USED(cSkipped)
  4672.       USE IN (cSkipped)
  4673.    ENDIF
  4674.    SET DELETED OFF
  4675.    * LOWER() tags...
  4676.    SELECT Hostfile AS Skipped FROM (cSource)  ;
  4677.       WHERE DELETED() AND ;
  4678.       (LOWER(Hostfile) # SPACE(COV_LEN_HOSTFILE)) ;
  4679.       INTO CURSOR (cSkipped) ;
  4680.       GROUP BY Skipped
  4681.    SET DELETED ON
  4682.    SELECT (iSelect)
  4683.    RETURN NOT THIS.lError
  4684. ENDPROC
  4685. PROCEDURE saveskippedcursor
  4686.    LPARAMETERS tcSkipped
  4687.    LOCAL cSkipped, cDBFName, iSelect
  4688.    iSelect = SELECT()
  4689.    cSkipped = THIS.GetAlias(tcSkipped,"Skipped")
  4690.    IF RECCOUNT(cSkipped) = 0
  4691.       RETURN .T.
  4692.    ENDIF
  4693.    cDBFName = THIS.GetTableName(COV_SKIPFILEDBF_SUFFIX)   
  4694.    SELECT * FROM (cSkipped) INTO TABLE (cDBFName)
  4695.    SELECT (iSelect)
  4696.    IF NOT THIS.lError
  4697.       THIS.cSavedSkipFiles = cDBFName
  4698.    ELSE
  4699.       THIS.cSavedSkipFiles = ""
  4700.    ENDIF
  4701.    RETURN NOT THIS.lError
  4702. ENDPROC
  4703. PROCEDURE createsourcecursor
  4704.    LPARAMETERS tcSource
  4705.    LOCAL lReturn, cSource
  4706.    cSource = THIS.GetAlias(tcSource,"Source")
  4707.    IF USED(cSource)
  4708.       USE IN (cSource)
  4709.    ENDIF
  4710.    IF THIS.lVFP5
  4711.       CREATE CURSOR (cSource) ;
  4712.                  (Duration n(7,3), ;
  4713.                   ObjClass c(COV_LEN_OBJCLASS), ;
  4714.                   Executing c(COV_LEN_EXECUTING), ;
  4715.                   Procline i, ;
  4716.                   Hostfile c(COV_LEN_HOSTFILE), ;
  4717.                   FileType c(4) )
  4718.    ELSE
  4719.       CREATE CURSOR (cSource) ;
  4720.                  (Duration n(7,3), ;
  4721.                   ObjClass c(COV_LEN_OBJCLASS), ;
  4722.                   Executing c(COV_LEN_EXECUTING), ;
  4723.                   Procline i, ;
  4724.                   Hostfile c(COV_LEN_HOSTFILE), ;
  4725.                   Stacklevel i, ;
  4726.                   FileType c(4) )
  4727.    ENDIF         
  4728.    * all this except last column
  4729.    * is ordained by structure of the log file
  4730.    * and matches what you'll find in the docs, except
  4731.    * that I've increased field lens & removed reserved
  4732.    * words from the field names used in the docs!
  4733.    * -- however, see function called below, you aren't
  4734.    * limited to this structure, you can add extra fields
  4735.    SELECT (cSource)
  4736.    THIS.AdjustSourceCursor(cSource)
  4737.    * -- add additional flag/filter columns, indexes for
  4738.    * processing or whatever you want; see notes in this
  4739.    * absract method for usage
  4740.    INDEX ON LOWER(Hostfile) TAG Hostfile
  4741.    * this tag needed when the cursor is filled
  4742.    SET ORDER TO 0
  4743.    lReturn = THIS.FillSourceCursor(cSource)
  4744.    THIS.ShowStatus(COV_INDEXING_SOURCE_RECORDS_LOC)
  4745.    IF lReturn
  4746.       * The tags below are all going to be
  4747.       * used for LOCATEs or FOR conditions at some point.
  4748.       * INDEX ON LOWER(Hostfile) TAG Hostfile && already done
  4749.       INDEX ON LOWER(ObjClass) TAG ObjClass
  4750.       INDEX ON Procline TAG Procline
  4751.       INDEX ON LOWER(Executing) TAG Executing
  4752.       * INDEX ON LOWER(ALLTRIM(ObjClass)+"."+Executing) TAG VCXObject
  4753.       * INDEX ON SUBSTR(Executing,1,AT(".",Executing)) TAG TopContainer
  4754.       INDEX ON DELETED() TAG IfDel
  4755.    ENDIF
  4756.    SET ORDER TO 0
  4757.    THIS.ClearStatus()
  4758.    RETURN lReturn AND NOT THIS.lError
  4759. ENDPROC
  4760. PROCEDURE adjustsourcecursor
  4761.    LPARAMETERS tcSource
  4762.    * abstract in the engine by design
  4763.    * called twice, during CreateSourceCursor() and
  4764.    * FillSourceCursor().
  4765.    * you can tell which call it is by checking 
  4766.    * EMPTY(RECCOUNT()) and TAGCOUNT(); the first call in 
  4767.    * CreateSourceCursor, after the structure
  4768.    * exists, is designed to allow you 
  4769.    * to do stuff like this:
  4770.    * LOCAL cSource
  4771.    * cSource = THIS.GetAlias(tcSource,"Source")
  4772.    * ALTER TABLE (cSource) ;
  4773.    *       ADD COLUMN Flag i
  4774.    * ... the second one, after the APPEND
  4775.    * of the text log records, would allow you to
  4776.    * remove some before FillSourceCursor goes
  4777.    * on to massage the record set by calling
  4778.    * SourceAvailable(), etc.
  4779.    * You can, additionally, augment SourceAvailable()
  4780.    * to massage the "valid" log records for which
  4781.    * source code has been found, filling your
  4782.    * flag fields, for example.
  4783.    RETURN NOT THIS.lError
  4784. ENDPROC
  4785. PROCEDURE createtargetcursor
  4786.    LPARAMETERS tcSource, tcTarget
  4787.    LOCAL cSource, cTarget, lReturn
  4788.    cTarget = THIS.GetAlias(tcTarget,"Target")
  4789.    cSource = THIS.GetAlias(tcSource,"Source")
  4790.    IF USED(cTarget)
  4791.       USE IN (cTarget)
  4792.    ENDIF
  4793.    * we're adding together the class and executing
  4794.    * information for visual classes, 
  4795.    * although we're going to have to take
  4796.    * some of this information out again when we
  4797.    * actually try to match up this information with
  4798.    * vcx records in the next step.
  4799.    * For programmatic code, we just need the Executing
  4800.    * information:
  4801.    THIS.ShowStatus(COV_CREATING_TARGET_ITEMS_LOC)   
  4802.    IF THIS.lVFP5
  4803.       SELECT Hostfile , ;
  4804.             PADR(ALLTR(ObjClass)+ ;
  4805.                  IIF((NOT EMPTY(ObjClass) ) AND ;
  4806.                      AT(".",Executing) > 0, ;
  4807.                      ".","")+ ;
  4808.                      SUBSTR(Executing,1,RAT(".",Executing)-1), ;
  4809.                  COV_LEN_OBJCLASS) ;
  4810.          AS ObjClass,;
  4811.          FileType ;
  4812.          DISTINCT ;
  4813.          FROM (cSource) WHERE NOT DELETED() ;
  4814.          INTO CURSOR Temp ;
  4815.          ORDER BY 1,2
  4816.    ELSE
  4817.        SELECT Hostfile , ;
  4818.             PADR(IIF(INLIST(FileType,".fxp",".mpx",".qpx",".spx"), ;
  4819.                      SUBSTR(Executing,1,RAT(".",Executing)-1), ;
  4820.                      ALLTR(ObjClass)+ ;
  4821.                      IIF((NOT EMPTY(ObjClass) ) AND ;
  4822.                          AT(".",Executing) > 0, ;
  4823.                          "!","")+ ;
  4824.                          SUBSTR(Executing,1,RAT(".",Executing)-1)), ;
  4825.                  COV_LEN_OBJCLASS) ;
  4826.          AS ObjClass,;
  4827.          FileType ;
  4828.          DISTINCT ;
  4829.          FROM (cSource) WHERE NOT DELETED() ;
  4830.          INTO CURSOR Temp ;
  4831.          ORDER BY 1,2
  4832.          
  4833.    ENDIF
  4834.    CREATE CURSOR (cTarget) ;
  4835.       (Hostfile c(COV_LEN_HOSTFILE), ;
  4836.       ObjClass c(COV_LEN_OBJCLASS), ;
  4837.       FileType c(4), ;
  4838.       Marked     m, ;
  4839.       Profiled   m, ;
  4840.       SourceCode m, ;
  4841.       Coverable i, ;
  4842.       Covered i, ;
  4843.       ObjTotal i, ;
  4844.       ObjHits i)
  4845.       *&* change from n(8) for all i fields above
  4846.    SELECT (cTarget) && JIC
  4847.    APPEND FROM (DBF("Temp"))
  4848.    USE IN Temp
  4849.    THIS.AdjustTargetCursor(cTarget)
  4850.    * -- add additional flag/filter columns, indexes for
  4851.    * processing or whatever you want
  4852.    SELECT (cTarget) && JIC
  4853.    INDEX ON Hostfile+ObjClass TAG Standard
  4854.    INDEX ON Hostfile TAG Hostfile
  4855.    INDEX ON DELETED() TAG IfDel
  4856.    SET ORDER TO 0
  4857.    THIS.ClearStatus()
  4858.    lReturn = THIS.FillTargetCursor(cSource, cTarget)
  4859.    RETURN lReturn AND NOT THIS.lError
  4860. ENDPROC
  4861. PROCEDURE adjusttargetcursor
  4862.    LPARAMETERS tcTarget
  4863.    * abstract in the engine by design
  4864.    RETURN NOT THIS.lError
  4865. ENDPROC
  4866. PROCEDURE adjustcoveragefilenamecursor
  4867.    * abstract in the engine by design
  4868.    * note: no filename is passed because
  4869.    * there is only supposed to be one of
  4870.    * these.
  4871.    RETURN NOT THIS.lError
  4872. ENDPROC
  4873. PROCEDURE savetargettodisk
  4874.    LPARAMETERS tcTarget
  4875.    LOCAL cDBFDefaultName, lReturn, iSelect, cTarget, cDetritus, iPos
  4876.    lReturn = .T.
  4877.    cTarget = THIS.GetAlias(tcTarget,"Target")
  4878.    cDBFDefaultName = THIS.GetTableName(COV_TARGETDBF_SUFFIX)
  4879.    IF THIS.lUnattended
  4880.       THIS.cSavedTargetDBF = cDBFDefaultName
  4881.    ELSE
  4882.       THIS.cSavedTargetDBF = ;
  4883.          THIS.GetResourceLocation(THIS.cSourceFile, ;
  4884.          COV_SETTARGETDBF_TITLE_LOC, ;
  4885.          COV_DBFSONLY_LOC + " (*.dbf)|*.dbf", ;
  4886.          cDBFDefaultName, ;
  4887.          "PUTFILE")
  4888.       lReturn = (NOT(EMPTY(THIS.cSavedTargetDBF)))
  4889.    ENDIF
  4890.    IF lReturn
  4891.       iSelect = SELECT()
  4892.       SELECT (cTarget)
  4893.       COPY TO (THIS.cSavedTargetDBF) 
  4894.       IF NOT THIS.lError
  4895.          SELE 0
  4896.          USE (THIS.cSavedTargetDBF) ALIAS Temp EXCLU
  4897.          ALTER TABLE Temp DROP COLUMN SourceCode
  4898.          ALTER TABLE Temp DROP COLUMN FileType
  4899.          USE IN Temp
  4900.          * now get rid of any trash
  4901.          * ALTER TABLE may leave behind:
  4902.          cDetritus = LOWER(THIS.cSavedTargetDBF)
  4903.          iPos = AT(".",cDetritus)
  4904.          IF iPos > 0
  4905.             cDetritus = SUBSTR(cDetritus,1,iPos -1)
  4906.          ENDIF
  4907.          IF NOT EMPTY(SYS(2000,cDetritus+".bak"))
  4908.             ERASE (cDetritus+".bak") NORECYCLE
  4909.          ENDIF
  4910.          IF NOT EMPTY(SYS(2000,cDetritus+".tbk"))
  4911.             ERASE (cDetritus+".tbk") NORECYCLE
  4912.          ENDIF
  4913.       ENDIF
  4914.       SELECT (iSelect)
  4915.    ENDIF
  4916.    IF THIS.lError
  4917.       THIS.cSavedTargetDBF = ""
  4918.    ENDIF
  4919.    RETURN lReturn AND NOT THIS.lError
  4920. ENDPROC
  4921. PROCEDURE fillonetargetrecord
  4922.    LPARAMETERS tcSource, tcTarget, tlFillingAll
  4923.    LOCAL cSource, cTarget, iSelect, cFile, cObject , cClass, ;
  4924.       cMemo, lMemofield, iPos, lReturn, cFileType, ;
  4925.       iObjTotal, iRecNo, cSourceOrder;
  4926.       lAlreadyHadSourceCode, cContainer, iDots, aTemp[1]
  4927.    ASSERT (EMPTY(tcSource) AND EMPTY(tcTarget)) OR ;
  4928.       (TYPE("tcSource") = "C" AND USED(tcSource) AND ;
  4929.       TYPE("tcTarget") = "C" AND USED(tcTarget))
  4930.    IF EMPTY(tcSource)
  4931.       cSource = THIS.GetAlias(tcSource,"Source")
  4932.       cTarget = THIS.GetAlias(tcTarget,"Target")
  4933.    ELSE
  4934.       cSource = tcSource
  4935.       cTarget = tcTarget
  4936.    ENDIF
  4937.    iSelect = SELECT()
  4938.    SELECT (cTarget)
  4939.    iRecNo = RECNO()
  4940.    cObject =   ALLTR(LOWER(ObjClass))   
  4941.    IF "!" $ cObject
  4942.       cClass = LEFT(cObject,AT("!",cObject)-1)
  4943.       cObject = SUBSTR(cObject,LEN(cClass)+2)
  4944.    ELSE
  4945.       cClass = ""
  4946.    ENDIF
  4947.    cFile =     ALLTR(LOWER(Hostfile))
  4948.    cFileType = FileType
  4949.    iObjTotal = ObjTotal
  4950.    cMemo = ""
  4951.    DO CASE
  4952.    CASE EMPTY(Hostfile)
  4953.       * Problem !
  4954.    CASE NOT EMPTY(SourceCode)
  4955.       lAlreadyHadSourceCode = .T.
  4956.    OTHERWISE
  4957.       * fill it
  4958.       IF NOT tlFillingAll
  4959.          THIS.LockScreens(.T.)
  4960.       ENDIF
  4961.       THIS.ShowStatus(COV_GETTING_SOURCECODE_FROM_LOC+" "+ ;
  4962.          ALLTR(cFile)+"."+cObject+"...")
  4963.       lMemofield = ;
  4964.          INLIST(cFileType,".vct",".sct",".dct",".frt",".lbt")
  4965.       IF lMemofield
  4966.          * it's a memofield
  4967.          IF tlFillingAll AND USED("Temp")
  4968.             IF LOWER(DBF("Temp")) == LOWER(cFile)
  4969.                SELECT Temp
  4970.             ELSE
  4971.                USE IN Temp
  4972.             ENDIF
  4973.          ENDIF
  4974.          IF NOT USED("Temp")
  4975.             SELECT 0
  4976.             USE (cFile) NOUPDATE SHARED ALIAS Temp
  4977.          ENDIF
  4978.          IF NOT THIS.lError
  4979.             DO CASE
  4980.             CASE cFileType = ".dct"
  4981.                * it's a dbc
  4982.                LOCATE FOR ALLTR(LOWER(objectname)) == ;
  4983.                   "storedproceduressource"
  4984.                cMemo = Code
  4985.             CASE INLIST(cFileType,".sct",".vct")
  4986.                LOCATE FOR IIF(EMPTY(Parent), LOWER(ALLTR(objName)), ;
  4987.                   LOWER(ALLTR(Parent)+"."+ALLTR(objName)) );
  4988.                   == cObject
  4989.                IF FOUND()
  4990.                   cMemo = Methods
  4991.                   
  4992.                ELSE
  4993.                   * Is it a DE object or DE member object?
  4994.                   * For DE objects, the log treats them as members of
  4995.                   * the form or formset, but the SCX does not
  4996.                   * list them as member objects of the form or formset.
  4997.                   LOCATE FOR INLIST(LOWER(ALLTR(BaseClass)), ;
  4998.                       "dataenvironment","relation","cursor") ;
  4999.                       AND IIF(EMPTY(Parent), LOWER(ALLTR(objName)), ;
  5000.                       LOWER(ALLTR(Parent)+"."+ALLTR(objName)) ) ==  ;
  5001.                       RIGHT(cObject,LEN(IIF(EMPTY(Parent), LOWER(ALLTR(objName)), ;
  5002.                       LOWER(ALLTR(Parent)+"."+ALLTR(objName)) )))
  5003.                   IF FOUND()
  5004.                      cMemo = Methods
  5005.                   ELSE
  5006.                      * the current contents of the Target cObject
  5007.                      * information can be difficult to interpret,
  5008.                      * since it shows all containership in one field.
  5009.                      * For example, an AddObject or a CreateObject
  5010.                      * may have create container levels in the third
  5011.                      * field of the log that have nothing to do with
  5012.                      * reality as far as the classes in the actual VCX
  5013.                      * are concerned. 
  5014.                      
  5015.                      * look for the parent record this member really
  5016.                      * belongs in:
  5017.                      IF THIS.lVFP5
  5018.                      
  5019.                         cContainer = cObject
  5020.                         FOR iDots = 1 TO OCCURS(".",cObject)
  5021.                            cContainer = SUBSTR(cContainer,1,RAT(".",cObject)-1)
  5022.                            LOCATE FOR IIF(EMPTY(Parent), LOWER(ALLTR(objName)), ;
  5023.                               LOWER(ALLTR(Parent)+"."+ALLTR(objName)) );
  5024.                               = cContainer AND NOT EMPTY(Methods)
  5025.                            IF FOUND()
  5026.                               * does this container's record
  5027.                               * already exist in the Target file?
  5028.                               cMemo = Methods
  5029.                               IF SEEK(PADR(cFile, COV_LEN_HOSTFILE)+ ;
  5030.                                     PADR(cContainer,COV_LEN_OBJCLASS), ;
  5031.                                     cTarget,"Standard")
  5032.                                  * this record will take care of it
  5033.                                  REPLACE SourceCode WITH cMemo IN (cTarget)
  5034.                                  GO iRecNo IN (cTarget)
  5035.                                  IF FOUND(cTarget)
  5036.                                     * call this an unsuccessful "go"
  5037.                                     * so that the record will be deleted:
  5038.                                     cMemo = ""
  5039.                                  ENDIF
  5040.                               ELSE
  5041.                                  GO iRecNo IN (cTarget)
  5042.                                  REPLACE ObjClass WITH cContainer IN (cTarget)
  5043.                               ENDIF
  5044.                               EXIT
  5045.                            ENDIF
  5046.                         ENDFOR
  5047.            
  5048.                      ELSE
  5049.                     
  5050.                         FOR iDots = OCCURS(".",cObject) TO 0 STEP -1 
  5051.                            IF iDots = 0
  5052.                               cContainer = SUBSTR(cObject,1,AT(".",cObject)-1)
  5053.                            ELSE
  5054.                               iPos = AT(".",cObject,iDots)
  5055.                               IF iDots = OCCURS(".",cObject)
  5056.                                  cContainer = SUBSTR(cObject,iPos+1)
  5057.                               ELSE
  5058.                                  cContainer = SUBSTR(cObject,iPos+1,AT(".",cObject,iDots+1)-iPos-1)
  5059.                               ENDIF
  5060.                            ENDIF
  5061.                            LOCATE FOR ;
  5062.                                  LOWER(ALLTR(Parent)+"."+ALLTR(objName)) ;
  5063.                                  == ALLTR(cClass)+"."+cContainer AND ;
  5064.                                  NOT EMPTY(Methods)
  5065.                            IF FOUND()
  5066.                               * does this container's record
  5067.                               * already exist in the Target file?
  5068.                               cMemo = Methods
  5069.                               IF SEEK(PADR(cFile, COV_LEN_HOSTFILE)+ ;
  5070.                                     PADR(cContainer,COV_LEN_OBJCLASS), ;
  5071.                                     cTarget,"Standard")
  5072.                                  * this record will take care of it, ;
  5073.                                  * let's pre-fill this record wherever
  5074.                                  * it is, so as not to waste time when
  5075.                                  * we find this record later in the pass
  5076.                                  IF EMPTY(&cTarget..SourceCode)
  5077.                                     REPLACE SourceCode WITH cMemo IN (cTarget)
  5078.                                  ENDIF
  5079.                                  GO iRecNo IN (cTarget)
  5080.                               ELSE
  5081.                                  GO iRecNo IN (cTarget)
  5082.                               ENDIF
  5083.                               * call this an unsuccessful "go"
  5084.                               * so that the record will be deleted:
  5085.                               cMemo = ""
  5086.                               EXIT
  5087.                            ENDIF
  5088.                         ENDFOR
  5089.                      
  5090.                      ENDIF
  5091.                   ENDIF
  5092.                ENDIF
  5093.             CASE INLIST(cFileType,".frt",".lbt")
  5094.                * dataenvironment,relation,cursor objects only
  5095.                iPos = AT(".",cObject)
  5096.                IF iPos = 0
  5097.                   * dataenvironment object
  5098.                   LOCATE FOR ObjType = N_FRX_DATAENVIRONMENT_OBJTYPE
  5099.                ELSE
  5100.                   cObject = [name="]+SUBSTR(cObject,iPos+1)+["]
  5101.                   LOCATE FOR ObjType = N_FRX_CURSOR_RELATION_OBJTYPE AND ;
  5102.                      ATC(cObject,STRTRAN(Expr,SPACE(1),"")) > 0
  5103.                ENDIF
  5104.                cMemo = TAG
  5105.             OTHERWISE
  5106.                * no other possibilities yet...
  5107.             ENDCASE
  5108.          ELSE
  5109.             cMemo = ""
  5110.          ENDIF
  5111.       ELSE
  5112.          * it's a text source file... we've already
  5113.          * validated these filenames...
  5114.          IF AT(".",cObject) > 0
  5115.             * a member object with no DEFINE CLASS
  5116.             * of its own in this file -- its
  5117.             * code will be in its container DEFINE CLASS
  5118.             * this is only likely to happen in cFileType = ".fxp"
  5119.             * but theoretically this could also be in an ".mpx" etc...
  5120.             cMemo = ""
  5121.          ELSE
  5122.             CREATE CURSOR Temp (onefield m)
  5123.             SELECT Temp
  5124.             APPEND BLANK
  5125.             APPEND MEMO onefield FROM (cFile)
  5126.             cMemo = onefield
  5127.          ENDIF
  5128.       ENDIF
  5129.       IF THIS.lError
  5130.          THIS.DoMessage(COV_SOURCE_CANNOT_BE_OPENED_LOC + ;
  5131.             C_DOUBLE_CR+ ;
  5132.             "("+cFile+")", ;
  5133.             COV_STOP_MESSAGEBOX)
  5134.          * insure that the file will show up in the
  5135.          * Skipped files list:
  5136.          SEEK PADR(cFile,COV_LEN_HOSTFILE) ;
  5137.             IN (cSource) ;
  5138.             ORDER Hostfile
  5139.          DELETE IN (cSource)
  5140.       ELSE
  5141.          *&* Note: Statistics may be removed
  5142.          *&* for performance boost using COV_TOPSPEED #define
  5143.          IF (NOT COV_TOPSPEED) AND ;
  5144.                EMPTY(iObjTotal) AND ;
  5145.                INLIST(cFileType,".vct",".sct", ".frt", ".lbt")
  5146.             * first object hit from this file:
  5147.             * some objects may not have been touched at all,
  5148.             * figure out how many classes containing
  5149.             * code were actually touched,
  5150.             * for accurate file and project statistics:
  5151.             IF INLIST(cFileType,".vct",".sct")
  5152.                COUNT ALL FOR (NOT EMPTY(Methods)) AND (NOT DELETED()) ;
  5153.                   TO iObjTotal
  5154.             ELSE && report or label
  5155.                COUNT ALL FOR ;
  5156.                   INLIST(ObjType,;
  5157.                   N_FRX_DATAENVIRONMENT_OBJTYPE, ;
  5158.                   N_FRX_CURSOR_RELATION_OBJTYPE)   AND ;
  5159.                   (NOT EMPTY(TAG)) AND ;
  5160.                   (NOT DELETED()) ;
  5161.                   TO iObjTotal
  5162.             ENDIF
  5163.             SELE (cTarget)
  5164.             SEEK cFile
  5165.             REPLACE ObjTotal WITH iObjTotal ;
  5166.                WHILE LOWER(Hostfile) = PADR(cFile,COV_LEN_HOSTFILE)
  5167.             GO iRecNo  && we don't have to worry about EOF()
  5168.                        && because we never would have gotten
  5169.                        && into this case...
  5170.          ENDIF
  5171.          * statistics on hits in the target file
  5172.          * on this total number of objects
  5173.          * can't be handled until
  5174.          * we've checked all target records
  5175.          * for containership (which target records
  5176.          * belong to which actual VCX/VCT records)
  5177.          SELECT (cTarget)
  5178.          REPLACE SourceCode WITH cMemo
  5179.       ENDIF
  5180.       IF USED("Temp") AND (NOT tlFillingAll)
  5181.          * if it was a memofield type source and
  5182.          * an error occurred opening the field,
  5183.          * it won't be open...
  5184.          * if we're filling all records, we don't
  5185.          * want to close the source file yet
  5186.          USE IN Temp
  5187.       ENDIF
  5188.       IF (NOT tlFillingAll)
  5189.          THIS.LockScreens(.F.)
  5190.          THIS.ClearStatus()
  5191.       ENDIF
  5192.    ENDCASE
  5193.    lReturn = (lAlreadyHadSourceCode OR ;
  5194.       NOT EMPTY(cMemo)) AND ;
  5195.       NOT THIS.lError
  5196.    THIS.lError = .F.
  5197.    SELECT (iSelect)
  5198.    RETURN lReturn
  5199. ENDPROC
  5200. PROCEDURE fillsourcecursor
  5201.    LPARAMETERS tcSource
  5202.    LOCAL cCoverageFileName, lReturn, ;
  5203.       cSource, cOrder, iSelect, ;
  5204.       cThisHost, cNewHost, cFileType, iRecNo, lRecordOK, ;
  5205.       iOdometer, cTalkWindow
  5206.    cSource = THIS.GetAlias(tcSource,"Source")
  5207.    cCoverageFileName = LOWER(_COVERAGE)
  5208.    iSelect = SELECT()
  5209.    THIS.ShowStatus(COV_CHECKING_SOURCE_AVAIL_FROM_LOC+;
  5210.       " "+THIS.cSourceFile)
  5211.    SELECT (cSource)
  5212.    cOrder = ORDER()
  5213.    SET ORDER TO 0
  5214.    * TALK is scoped to the datasesion, 
  5215.    * but the following are *not* scoped
  5216.    * to the datasession:
  5217.    iOdometer = SET("ODOMETER")
  5218.    cTalkWindow = SET("TALK",1)
  5219.    SET ODOMETER TO 1000
  5220.    SET TALK ON
  5221.    IF THIS.lInCoverageFrame
  5222.       SET TALK WINDOW (THIS.oFrame.Name)
  5223.    ELSE
  5224.       SET TALK NOWINDOW
  5225.       ACTI SCREEN
  5226.       * the ACTI SCREEN
  5227.       * appears to be necessary
  5228.       * when SET("STATUS BAR") is "OFF"
  5229.    ENDIF
  5230.    APPEND FROM (THIS.cSourceFile) ;
  5231.       TYPE DELIMITED WITH CHARACTER COV_LOG_DELIMITER ;
  5232.       FOR Procline > 0 AND ;
  5233.       (LOWER(Hostfile) # SPACE(COV_LEN_HOSTFILE))
  5234.    SET TALK OFF
  5235.    SET ODOMETER TO iOdometer
  5236.    SET TALK &cTalkWindow
  5237.    THIS.AdjustSourceCursor(cSource)
  5238.    * a second call -- see notes in this abstract
  5239.    * method for usage.   
  5240.    GO TOP   
  5241.    DO CASE
  5242.    CASE THIS.lInCoverageFrame
  5243.       THIS.oFrame.Cls()
  5244.    CASE SET("STATUS BAR") = "OFF"
  5245.       _SCREEN.Cls()
  5246.    OTHERWISE
  5247.       SET MESSAGE TO
  5248.    ENDCASE
  5249.      
  5250.    SCAN
  5251.       IF EMPTY(FileType)
  5252.          cThisHost = LOWER(Hostfile)
  5253.          THIS.ShowStatus(ALLTR(Hostfile))
  5254.          lRecordOK = THIS.SourceAvailable()
  5255.          cNewHost = Hostfile
  5256.          cFileType = FileType
  5257.          iRecNo = RECNO()
  5258.          IF NOT lRecordOK
  5259.             DELETE REST FOR LOWER(Hostfile) = cThisHost
  5260.          ELSE
  5261.             REPLACE Hostfile WITH cNewHost, ;
  5262.                FileType WITH cFileType ;
  5263.                REST FOR LOWER(Hostfile) = cThisHost
  5264.          ENDIF
  5265.          GO iRecNo
  5266.       ENDIF
  5267.    ENDSCAN
  5268.    SET ORDER TO (cOrder)
  5269.    LOCATE
  5270.    lReturn = (NOT EOF())
  5271.    SELECT (iSelect)
  5272.    IF NOT lReturn
  5273.       THIS.DoMessage(COV_LOG_HAS_NO_USABLE_RECORDS_LOC, ;
  5274.          COV_STOP_MESSAGEBOX )
  5275.    ENDIF
  5276.    THIS.ClearStatus()
  5277.    RETURN lReturn
  5278. ENDPROC
  5279. PROCEDURE addpath
  5280.    LPARAMETERS tcFileName
  5281.    ASSERT TYPE("tcFileName") = "C"  AND NOT EMPTY(SYS(2000,tcFileName))
  5282.    * the fullpath of an existing filename must have been passed
  5283.    * or this procedure doesn't make a lot of sense.
  5284.    IF THIS.lSmartPath
  5285.       LOCAL cAddPath
  5286.       cAddPath = SUBSTR(tcFileName,1,RAT("\",tcFileName))
  5287.       IF ATC(cAddPath+";",SET("PATH")+";") = 0
  5288.          SET PATH TO (cAddPath+";"+SET("PATH"))
  5289.       ENDIF
  5290.    ENDIF
  5291.    RETURN NOT THIS.lError
  5292. ENDPROC
  5293. PROCEDURE sourceavailable
  5294.    LOCAL lReturn, cFileType, cNewHost,cOldHost, ;
  5295.       icol, iElement, cDefaultExt, iPos
  5296.    IF EMPTY(Procline) OR EMPTY(Hostfile)
  5297.       * easy call:
  5298.       RETURN .F.
  5299.       * no source available or stuff like ON SELECTION, ON KEY --
  5300.       * -- these are the EMPTY(ProcLine) items --
  5301.       * this means that command results in MPRs are not very
  5302.       * well covered in the coverage log, although the procedures
  5303.       * or methods you call within those commands will be logged.
  5304.       * EMPTY(Hostfile) may be a similar record or it may be a
  5305.       * result of a run through this procedure for an earlier
  5306.       * record and an inability to find this source file,
  5307.       * with or without the user's help.
  5308.       * Although this note and this code construct helps you 
  5309.       * understand what decisions the engine makes, ordinarily
  5310.       * the calling routine is FillSourceCursor,
  5311.       * which will have DELETEd any EMPTY(Procline) records
  5312.       * and any records that start out with EMPTY(Hostfile)
  5313.       * fields before making this call, and earlier calls to
  5314.       * this routine would have already DELETEd records
  5315.       * for which the source file could not have been found.
  5316.    ENDIF
  5317.    icol = 0
  5318.    cOldHost = LOWER(ALLTR(Hostfile))
  5319.    cFileType = RIGHT(cOldHost,4)
  5320.    iElement = ASCAN(THIS.aFileTypes,cFileType)
  5321.    IF LEN(cFileType) # 4 && abnormal extension
  5322.       icol = 1
  5323.       iElement = 0
  5324.       * a PRG could have any original extension,
  5325.       * unlike other compiled types.
  5326.    ENDIF
  5327.    IF iElement # 0
  5328.       icol = ASUBSCRIPT(THIS.aFileTypes,iElement,2)
  5329.    ENDIF
  5330.    DO CASE
  5331.    CASE THIS.lvfp5 AND INLIST(cFileType, ".frt" , ".lbt")
  5332.       * nothing we can do with this in 5.0x...
  5333.    CASE icol = 2
  5334.       * source types we replaced from earlier
  5335.       * REPLACES on passes this function --
  5336.       * we don't need to do anything
  5337.    CASE THIS.lIgnoreCoverageFilenames AND ;
  5338.          SEEK(UPPER(RIGHT(ALLTRIM(Hostfile), ;
  5339.          LEN(ALLTR(Hostfile))- ;
  5340.          RAT("\",ALLTRIM(Hostfile)))), ;
  5341.          THIS.cCovFilesAlias )
  5342.       * we don't want this file, it belongs to
  5343.       * the coverage mechanism or other IgnoredFiles...
  5344.    CASE INLIST(cFileType,".app",".exe")
  5345.       cNewHost =  THIS.GetResourceLocation( cOldHost, ;
  5346.          COV_GETMAINFILE_TITLE_LOC, ;
  5347.          COV_PROGRAMSONLY_LOC + " (*.prg)|*.prg|"+ ;
  5348.          COV_ALLFILES_LOC+" (*.*)|*.*",;
  5349.          ALLTR(Executing), ;
  5350.          "GETFILE")
  5351.       IF EMPTY(cNewHost) OR EMPTY(SYS(2000,cNewHost))
  5352.          * can't use it...
  5353.       ELSE
  5354.          lReturn = .T.
  5355.          * the NewHost extension may be anything,
  5356.          * but the OldHost extension will be
  5357.          * .fxp, giving us the filetype for parsing
  5358.          * purposes
  5359.          REPLACE Hostfile WITH cNewHost, ;
  5360.             FileType WITH ".fxp"
  5361.          THIS.AddPath(cNewHost)
  5362.       ENDIF
  5363.    CASE icol = 1
  5364.       * compiled or memo source types...
  5365.       * get the matching extension we want
  5366.       * from the second column:
  5367.       IF iElement = 0
  5368.          cFileType = ".fxp"
  5369.          iPos = AT(".",cOldHost)
  5370.          IF iPos > 0
  5371.             cNewHost = FULLPATH(SUBSTR(cOldHost,1,iPos-1)+".prg")
  5372.          ELSE
  5373.             cNewHost = FULLPATH(cOldHost+".prg")
  5374.          ENDIF
  5375.       ELSE
  5376.          cNewHost = FULLPATH(STRTR(cOldHost,cFileType, ;
  5377.             THIS.aFileTypes(ASUBSCR(THIS.aFileTypes,;
  5378.             iElement,1),2)))
  5379.       ENDIF
  5380.       IF EMPTY(SYS(2000,cNewHost))
  5381.          cDefaultExt = RIGHT(cNewHost,4)
  5382.          IF iElement = 0
  5383.             * we have no idea what the source extension was,
  5384.             * show all files:
  5385.             cNewHost = THIS.GetResourceLocation(cNewHost,;
  5386.                COV_GETSOURCEFILE_TITLE_LOC, ;
  5387.                COV_SOURCEFILES_LOC+" (*"+cDefaultExt+")|*"+cDefaultExt+"|"+ ;
  5388.                COV_ALLFILES_LOC+" (*.*)|*.*",;
  5389.                cNewHost, ;
  5390.                "GETFILE")
  5391.          ELSE
  5392.             cNewHost = THIS.GetResourceLocation(cNewHost,;
  5393.                COV_GETSOURCEFILE_TITLE_LOC, ;
  5394.                COV_SOURCEFILES_LOC+" (*"+cDefaultExt+")|*"+cDefaultExt, ;
  5395.                cNewHost, ;
  5396.                "GETFILE")
  5397.          ENDIF
  5398.       ELSE
  5399.          cNewHost = LOWER(cNewHost)
  5400.       ENDIF
  5401.       IF EMPTY(SYS(2000,cNewHost)) OR EMPTY(cNewHost)
  5402.          * can't use this one...
  5403.       ELSE
  5404.          lReturn = .T.
  5405.          REPLACE Hostfile WITH cNewHost, ;
  5406.             FileType WITH cFileType
  5407.          THIS.AddPath(cNewHost)
  5408.       ENDIF
  5409.    OTHERWISE
  5410.       * iCol = 0 -- a filetype we can't handle!
  5411.    ENDCASE
  5412.    RETURN lReturn
  5413. ENDPROC
  5414. PROCEDURE marktargetcoverage
  5415.    LPARAMETERS tcSource, tcTarget
  5416.    * Filetypes inlist DCX,SCX,VCX,FRX,LBX have log linenos
  5417.    * relative to each method, but
  5418.    * filetypes inlist QPR,MPR,PRG,SPR
  5419.    * have their linenos relative to the full file!
  5420.    * We also have to treat objects
  5421.    * DEFINEd programmatically differently
  5422.    * from non-objects, because each DEFINEd CLASS 
  5423.    * can potentially show up separately in the target file
  5424.    * although we're not doing that right now.
  5425.    LOCAL cSource, cTarget, iSelect, ;
  5426.       cText, cMemo, iSelect, nFirst, nAverage, iPos, cTemp, ;
  5427.       iFileLineNo, iOffSet, iProcLineNo, iLines, ;
  5428.       cLine, cRealLine, iPosComment, iPosOpenParen, ;
  5429.       cHostFile, cObject, cClass, cFileType, ;
  5430.       lInitialMemberAssignments, iExecuted, ;
  5431.       cExecuting, cFilter, cFirstWord, ;
  5432.       iCoverableLines, iLinesCovered, ;
  5433.       lRelToProc,iSecondWord, cSecondWord, lInText
  5434.    iSelect = SELECT()
  5435.    cSource = THIS.GetAlias(tcSource,"Source")
  5436.    cTarget = THIS.GetAlias(tcTarget,"Target")
  5437.    SELECT (cTarget)
  5438.    cText = SourceCode
  5439.    cHostFile = PADR(LOWER(Hostfile),COV_LEN_HOSTFILE)
  5440.    cObject = LOWER(ObjClass)
  5441.    IF "!" $ cObject
  5442.      cClass = LEFT(cObject,AT("!",cObject)-1)
  5443.      cObject = SUBSTR(cObject,LEN(cClass)+2)
  5444.    ELSE
  5445.      cClass = ""
  5446.    ENDIF
  5447.    cClass = PADR(cClass,COV_LEN_OBJCLASS)
  5448.    cFileType = LOWER(FileType)
  5449.    cExecuting = ""
  5450.    cFilter = ""
  5451.    lRelToProc = ;
  5452.       INLIST(cFileType,".vct",".sct",".dct",".frt",".lbt")
  5453.    iLines = MEMLINES(cText)
  5454.    STORE 0 TO iOffSet, iProcLineNo, _MLINE, ;
  5455.       iCoverableLines, iLinesCovered
  5456.    cMemo = ""
  5457.    IF NOT (lRelToProc OR EMPTY(cObject))
  5458.       * skip lines not pertinent to this class, because
  5459.       * they are "outside" the class definition we want  --  
  5460.       * an issue for programmatically-defined classes only
  5461.       * if we are treating them as separate items in the 
  5462.       * browser, which may or may not occur in other versions
  5463.       * of the code. In this version,
  5464.       * all programmatic classes are shown only in one
  5465.       * target record, IOW the PRG is treated as the target
  5466.       * object, but these classes *could* be parsed into
  5467.       * separate target records.  If that happened,
  5468.       * the code below would be necessary (cObject would not
  5469.       * be empty in this case).
  5470.       FOR iFileLineNo = 1 TO iLines
  5471.          cRealLine = MLINE(cText,1,_MLINE)
  5472.          cLine = ALLTR(STRTRAN(LOWER(cRealLine), C_TAB,""))
  5473.          IF (LEFT(cLine,12) = "define class" OR ;
  5474.              LEFT(cLine,7) = "defin c" OR ;
  5475.              LEFT(cLine,6) = "defi c") AND ;
  5476.              " "+ALLTR(cObject)+" " $ cLine
  5477.             cMemo = cMemo + THIS.cMarkExecuted + ;
  5478.                cRealLine + C_CR
  5479.             iOffSet = iFileLineNo
  5480.             lInitialMemberAssignments = .T.
  5481.             EXIT
  5482.          ENDIF
  5483.       ENDFOR
  5484.    ENDIF
  5485.    FOR iFileLineNo = 1 TO (iLines-iOffSet)
  5486.       * notice I don't reset the _MLINE var:
  5487.       cRealLine = MLINE(cText,1,_MLINE)
  5488.       cLine = ALLTR(cRealLine)
  5489.       cLine = ALLTR(STRTRAN(LOWER(cLine), C_TAB,SPACE(1)))
  5490.       iSecondWord = AT(SPACE(1),cLine)
  5491.       IF iSecondWord > 0
  5492.          cFirstWord = ALLTR(LEFT(cLine,iSecondWord))
  5493.          cSecondWord = ALLTR(SUBSTR(cLine,iSecondWord))
  5494.          iSecondWord = AT(SPACE(1),cSecondWord)
  5495.          IF iSecondWord > 0
  5496.             cSecondWord = ALLTR(LEFT(cSecondWord,iSecondWord))
  5497.          ENDIF
  5498.       ELSE
  5499.          cFirstWord = cLine
  5500.          cSecondWord = ""
  5501.       ENDIF
  5502.          
  5503.       STORE 0 TO iExecuted, nAverage, nFirst
  5504.       IF (NOT (lRelToProc OR EMPTY(cObject))) AND ;
  5505.          (NOT EMPTY(cFirstWord)) AND ;
  5506.          "#"+cFirstWord $ "#enddefine#"
  5507.          * finished with the programmatic class definition
  5508.          * -- never happens in visually-designed classes
  5509.          * See above; this code doesn't actually execute
  5510.          * at the moment but would be necessary if
  5511.          * programmatic classes had separate records
  5512.          * in the target file
  5513.          cMemo = cMemo + THIS.cMarkExecuted + ;
  5514.             cRealLine + C_CR
  5515.          EXIT
  5516.       ENDIF
  5517.       IF lRelToProc
  5518.          IF (NOT EMPTY(cFirstWord)) AND ;
  5519.             "#"+cFirstWord $ "#method#procedure#function#"
  5520.             * starting a new procedure, get name, new offset
  5521.             iProcLineNo = 0
  5522.             cExecuting = ALLTR(SUBSTR(cLine, AT(" ",cLine)))
  5523.             iPosOpenParen = AT("(",cExecuting)
  5524.             IF iPosOpenParen > 0
  5525.                cExecuting = LEFT(cExecuting,iPosOpenParen-1)
  5526.             ENDIF
  5527.             iPosOpenParen = AT("[",cExecuting)
  5528.             IF iPosOpenParen > 0
  5529.                cExecuting = LEFT(cExecuting,iPosOpenParen-1)
  5530.             ENDIF
  5531.          ELSE
  5532.             iProcLineNo = iProcLineNo + 1
  5533.          ENDIF
  5534.       ELSE
  5535.          * programmatically defined classes
  5536.          * This is necessary whether or not we're
  5537.          * showing all programmatic classes in
  5538.          * separate records.
  5539.          DO CASE
  5540.          CASE EMPTY(cFirstWord)
  5541.             * empty line, nothing
  5542.          CASE "#"+cFirstWord $ "#define#" AND "#"+cSecondWord $ "#class#"
  5543.             lInitialMemberAssignments = .T.
  5544.             * start initial assigments
  5545.          CASE "#"+cFirstWord $ "#procedure#method#function#"
  5546.             lInitialMemberAssignments = .F.
  5547.             * finished with initial assignments
  5548.          OTHERWISE
  5549.             * nothing
  5550.          ENDCASE
  5551.       ENDIF
  5552.       iPosComment = AT(C_INLINECOMMENT, cLine)
  5553.       IF iPosComment > 0
  5554.          cLine = ALLTR(SUBSTR(cLine,1,iPosComment-1))
  5555.       ENDIF
  5556.       
  5557.       * Now that we have the line, we need to look
  5558.       * at stats for that line
  5559.       * comparisons below are meant to be inexact, not ==.
  5560.       DO CASE
  5561.       
  5562.       CASE EMPTY(cLine)
  5563.          iExecuted = .NULL.
  5564.       CASE lInitialMemberAssignments
  5565.          iExecuted = .NULL.
  5566.       CASE RIGHT(cLine,1) =  ;
  5567.             C_CONTINUATION_SYMBOL
  5568.          iExecuted = .NULL.
  5569.       CASE INLIST(LEFT(cLine,1),C_COMMENT,C_DEFINE) OR ;
  5570.             LEFT(cLine,2) = C_INLINECOMMENT
  5571.          iExecuted = .NULL.
  5572.       CASE cFirstWord == "add" AND "#"+cSecondWord $ "#object#"
  5573.          iExecuted = .NULL.
  5574.       * single word lines:
  5575.       CASE EMPTY(cSecondWord) AND ;
  5576.            INLIST(cFirstWord,"else","note")
  5577.          iExecuted = .NULL.
  5578.       * multi word lines:
  5579.       CASE "#"+cFirstWord $ ;
  5580.          "#function#procedure#endprocedure#endtext#note#else"+ ;
  5581.          "#parameters#lparameters#enddefine#endfunction#endmethod#"
  5582.          
  5583.          iExecuted = .NULL.
  5584.          
  5585.          IF "#"+cFirstWord $ "#endtext#"
  5586.             lInText = .F.
  5587.          ENDIF
  5588.          
  5589.       CASE lInText
  5590.          iExecuted = .NULL.
  5591.          
  5592.       CASE NOT lRelToProc && PRG type code
  5593.          cTemp = ALLTR(STR(iFileLineNo + iOffSet))
  5594.          cFilter = "LOWER(Hostfile) = cHostfile AND "+;
  5595.                    "Procline = "+cTemp
  5596.                  
  5597.       CASE EMPTY(cObject)  && dbc
  5598.          cTemp = PADR(ALLTR(cExecuting),COV_LEN_EXECUTING)
  5599.          cFilter = "LOWER(Hostfile) = cHostfile AND "+ ;
  5600.                    "LOWER(Executing) = ["+cTemp+"] AND "+ ;
  5601.                    "ProcLine = iProcLineNo"
  5602.       CASE cFileType =".vct"
  5603.       
  5604.       
  5605.          IF THIS.lVFP5
  5606.          
  5607.             * I'm not optimizing this one yet...
  5608.             IF "." $ cObject
  5609.                cTemp = PADR(SUBSTR(cObject,1,AT(".",cObject)-1), COV_LEN_OBJCLASS)            
  5610.             ELSE
  5611.                cTemp = PADR(cObject, COV_LEN_OBJCLASS)            
  5612.             ENDIF
  5613.             cFilter = "LOWER(Hostfile) = cHostfile AND " + ;
  5614.                       "LOWER(ObjClass) = ["+cTemp+"] AND " + ;
  5615.                       "ProcLine = iProcLineNo " 
  5616.             cTemp = ALLTR(cExecuting)                      
  5617.             IF "." $ cObject
  5618.                cTemp = ALLTR(SUBSTR(cObject,AT(".",cObject)+1))+"."+cTemp
  5619.             ENDIF
  5620.             
  5621.             cTemp = "." + cTemp
  5622.             iPos = LEN(cTemp)
  5623.             cFilter = cFilter + " AND "+ ;
  5624.                       "[.]+RIGHT(ALLTR(Executing),"+ ;
  5625.                              ALLTR(STR(iPos))+") == ["+cTemp+"]"          
  5626.          ELSE
  5627.       
  5628.             cTemp = PADR(ALLTR(cClass), COV_LEN_OBJCLASS)
  5629.             cFilter = "LOWER(Hostfile) = cHostfile AND " + ;
  5630.                          "ProcLine = iProcLineNo AND " + ;
  5631.                          "LOWER(ObjClass) = ["+cTemp+"]"
  5632.       
  5633.             * some of the cases below
  5634.             * may not be strictly necessary
  5635.             * however the RIGHT(...) one *is* necessary
  5636.             * and it's the only one I can't really optimize --
  5637.             * the other ones are as optimized as they
  5638.             * can get depending on how intelligent 
  5639.             * I can be about setting up the filter in 
  5640.             * a given circumstance.
  5641.          
  5642.             * This un-optimized case also has to be *first*
  5643.             * among the non-VFP5 cases, 
  5644.             * because of leaf object handling.
  5645.       
  5646.             DO CASE
  5647.          
  5648.             CASE "." $ cExecuting
  5649.                  cTemp = ALLTR(cExecuting)
  5650.                  IF "." $ cObject
  5651.                     cTemp = "."+SUBSTR(ALLTR(cObject),RAT(".",ALLTR(cObject))+1)+"."+cTemp
  5652.                  ENDIF
  5653.                  iPos = LEN(cTemp)
  5654.                  cFilter = cFilter + " AND "+ ;
  5655.                            "RIGHT(ALLTR(Executing),"+ ;
  5656.                            ALLTR(STR(iPos))+") == ["+cTemp+"]"          
  5657.             CASE ALLTRIM(cObject) == ALLTRIM(cClass)
  5658.                 cTemp = PADR(ALLTR(cClass)+"."+ALLTR(cExecuting), COV_LEN_EXECUTING)
  5659.                 cFilter = cFilter+" AND "+ ;
  5660.                           "LOWER(Executing) =  ["+cTemp+"]"             
  5661.             CASE "." $ cObject
  5662.                 cTemp = PADR(ALLTR(cClass)+  ;
  5663.                           ALLTR(SUBSTR(cObject,AT(".",cObject)))+ ;
  5664.                           "."+ALLTR(cExecuting), COV_LEN_EXECUTING)
  5665.                 cFilter = cFilter+" AND "+ ;
  5666.                           "LOWER(Executing) =  ["+cTemp+"]" 
  5667.             
  5668.             OTHERWISE
  5669.                 cTemp = PADR(ALLTR(cClass)+"."+ALLTR(cExecuting), COV_LEN_EXECUTING)
  5670.                 cFilter = cFilter+" AND "+ ;
  5671.                           "LOWER(Executing) =  ["+cTemp+"]"             
  5672.             ENDCASE
  5673.          ENDIF
  5674.          
  5675.       OTHERWISE && frx, lbx, sct
  5676.          cFilter = PADR(ALLTR(cObject)+"."+ALLTR(cExecuting),COV_LEN_EXECUTING)
  5677.          cFilter = "LOWER(Hostfile) = cHostfile AND " +;
  5678.             "LOWER(Executing) = ["+ cFilter +"] AND "+;
  5679.             "ProcLine = iProcLineNo"
  5680.       ENDCASE
  5681.       IF NOT ISNULL(iExecuted)
  5682.          SELECT (cSource)
  5683.          IF THIS.lInProfileMode
  5684.             LOCATE FOR &cFilter && first
  5685.             nFirst = Duration
  5686.             IF NOT EOF()
  5687.                CALCULATE AVG(Duration) FOR &cFilter ;
  5688.                   TO nAverage
  5689.                iExecuted = _TALLY
  5690.             ELSE
  5691.                iExecuted = 0
  5692.             ENDIF
  5693.          ELSE
  5694.             COUNT FOR &cFilter
  5695.             iExecuted = _TALLY
  5696.          ENDIF
  5697.          iLinesCovered = iLinesCovered + IIF(iExecuted = 0,0,1)
  5698.          iCoverableLines = iCoverableLines + 1
  5699.          
  5700.          IF cFirstWord == "text"
  5701.             lInText = .T.
  5702.          ENDIF
  5703.       ENDIF
  5704.       * See COV_TUNE.H: the following is 
  5705.       * tunable from a procedure call
  5706.       * to an IIF() offering a simple toggle,
  5707.       * based on the #DEFINE COV_TOPSPEED.
  5708.       * Because this line is going to be 
  5709.       * called every time a line of code
  5710.       * is marked, speed is extremely important
  5711.       * here.
  5712.       * The actual call to which COV_MARK_CODE_LINE
  5713.       * defaults when COV_TOPSPEED is .F. is:
  5714.       * THIS.MarkCodeLine(cRealLine,iExecuted, nFirst, nAverage)
  5715.       
  5716.       * ... COV_TOPSPEED's in-line approach is 
  5717.       * faster but less flexible for subclassers
  5718.       cMemo = cMemo + COV_MARK_CODE_LINE + C_CR
  5719.       
  5720.       
  5721.    ENDFOR
  5722.    IF NOT THIS.lError
  5723.       SELECT (cTarget)
  5724.       IF THIS.lInProfileMode
  5725.          REPLACE Profiled WITH cMemo
  5726.       ELSE
  5727.          REPLACE Marked WITH cMemo
  5728.       ENDIF
  5729.       IF EMPTY(Coverable)
  5730.          REPLACE Coverable WITH iCoverableLines, ;
  5731.             Covered WITH iLinesCovered
  5732.       ENDIF
  5733.    ENDIF
  5734.    SELECT (iSelect)
  5735.    RETURN NOT (EMPTY(cMemo) OR THIS.lError)
  5736. ENDPROC
  5737. PROCEDURE markcodeline
  5738.    LPARAMETERS tcLine,tiExecuted, tnFirst, tnAverage
  5739.    ASSERT TYPE("tcLine") = "C"
  5740.    ASSERT ISNULL(tiExecuted) OR TYPE("tiExecuted") = "N"
  5741.    ASSERT TYPE("tnFirst") = "N"
  5742.    ASSERT TYPE("tnAverage") = "N"
  5743.    * If we got a .null. in tiExecuted, this
  5744.    * will be a type of line that the
  5745.    * internally-generated log will never "see" --
  5746.    * I want to clearly delineate
  5747.    * this problem so you can
  5748.    * decide how to handle it, and
  5749.    * also decide whether you want
  5750.    * to mark incidences rather than
  5751.    * not-executed, or mark executed
  5752.    * rather than not executed.
  5753.    * This is one of the reasons
  5754.    * why this code is pulled out
  5755.    * from MarkTargetCoverage(), 
  5756.    * which you should
  5757.    * never need to touch.
  5758.    * You'll just need to have
  5759.    * the same CASES in your MarkCodeLine()
  5760.    * as you see below,
  5761.    * and treat each type of line as you wish:
  5762.    LOCAL cMarkedLine, cFirst, cAverage
  5763.    IF THIS.lInProfileMode
  5764.       IF ISNULL(tiExecuted)
  5765.          * will never be in the log
  5766.          cMarkedLine = SPACE(COV_PROFILE_EXECUTED_SPACING + ;
  5767.             COV_PROFILE_STATS_SPACING * 2)
  5768.       ELSE
  5769.          IF tiExecuted = 1
  5770.             cMarkedLine = PADR(ALLTR(STR(tiExecuted))+ SPACE(1)+ ;
  5771.                COV_PROFILE_ONE_HIT_LOC, ;
  5772.                COV_PROFILE_EXECUTED_SPACING)
  5773.          ELSE
  5774.             cMarkedLine = PADR(ALLTR(STR(tiExecuted))+ SPACE(1)+ ;
  5775.                COV_PROFILE_HITS_LOC, ;
  5776.                COV_PROFILE_EXECUTED_SPACING)
  5777.          ENDIF
  5778.          cFirst = PADR(COV_PROFILE_MARK_1ST_LOC + SPACE(1) + ;
  5779.             ALLTR(STR(tnFirst,20,3)), ;
  5780.             COV_PROFILE_STATS_SPACING)
  5781.          cMarkedLine = cMarkedLine + cFirst
  5782.          cAverage = PADR(COV_PROFILE_MARK_AVG_LOC + SPACE(1) + ;
  5783.             ALLTR(STR(tnAverage,20,3)), ;
  5784.             COV_PROFILE_STATS_SPACING)
  5785.          cMarkedLine = cMarkedLine + cAverage
  5786.       ENDIF
  5787.       cMarkedLine = cMarkedLine + tcLine
  5788.    ELSE
  5789.       DO CASE
  5790.       CASE ISNULL(tiExecuted)
  5791.          * will never be in the log
  5792.          cMarkedLine = SPACE(LEN(THIS.cMarkExecuted)) + tcLine
  5793.       CASE tiExecuted = 0
  5794.          cMarkedLine = THIS.cMarkNotExecuted + tcLine
  5795.       CASE tiExecuted > 0
  5796.          cMarkedLine = THIS.cMarkExecuted + tcLine
  5797.       OTHERWISE
  5798.          * should never be negative!
  5799.          cMarkedLine = ""
  5800.       ENDCASE
  5801.    ENDIF
  5802.    RETURN cMarkedLine
  5803. ENDPROC
  5804. PROCEDURE getalias
  5805.    LPARAMETERS tAlias,tcWhichProp
  5806.    ASSERT PCOUNT() > 1 AND ;
  5807.       TYPE("tcWhichProp") = "C" AND ;
  5808.       INLIST(UPPER(tcWhichProp),COV_KNOWN_ALIAS_PROPERTIES)
  5809.    LOCAL cReturn
  5810.    IF TYPE("tAlias") = "C"
  5811.       cReturn = tAlias
  5812.    ELSE
  5813.       cReturn = EVAL("THIS.c"+tcWhichProp+"Alias")
  5814.    ENDIF
  5815.    RETURN cReturn
  5816. ENDPROC
  5817. PROCEDURE runaddin
  5818.    LPARAMETERS tcAddIn
  5819.    LOCAL lReturn, cFileToRun, cExt
  5820.    * Add-In must accept an object parameter,
  5821.    * reference to the Coverage form object
  5822.    * It may adjust the size of the Coverage form object
  5823.    * and add new controls to it. It may reset
  5824.    * the file that is going to be parsed according
  5825.    * to queries to the user of its own. It may choose
  5826.    * to adjust the Coverage form object's error flag
  5827.    * if it thinks the form shouldn't substantiate
  5828.    * based on its own errors, and provide its own
  5829.    * error messages stating the reason.
  5830.    IF TYPE("tcAddIn") = "C"
  5831.       cFileToRun = tcAddIn
  5832.    ELSE
  5833.       cFileToRun = THIS.cAddIn
  5834.    ENDIF
  5835.    IF EMPTY(cFileToRun)
  5836.       RETURN .T.
  5837.    ENDIF
  5838.    cFileToRun = UPPER(ALLTR(cFileToRun))
  5839.    THIS.lError = .F.
  5840.    IF "." $ cFileToRun
  5841.       cExt = RIGHT(cFileToRun,4)   
  5842.    ELSE
  5843.       cExt = ""
  5844.    ENDIF
  5845.    IF (NOT EMPTY(cExt)) AND ;
  5846.       EMPTY(SYS(2000,cFileToRun)) 
  5847.       THIS.DoMessage(COV_ADDIN_DOES_NOT_EXIST_LOC, ;
  5848.          COV_STOP_MESSAGEBOX )
  5849.       THIS.lError = .T.
  5850.    ELSE
  5851.       DO CASE
  5852.       CASE EMPTY(cExt) OR ;
  5853.            ( INLIST(cExt,".FXP",".APP",".PRG",".EXE",".QPX",".QPR",".MPR",".MPX"))
  5854.          DO (cFileToRun) WITH THIS
  5855.       
  5856.       CASE ( cExt = ".SCX" )
  5857.          DO FORM (cFileToRun) WITH THIS
  5858.       OTHERWISE
  5859.          THIS.DoMessage(COV_ADDIN_NOT_SUPPORTED_TYPE_LOC, ;
  5860.             COV_STOP_MESSAGEBOX )
  5861.          THIS.lError = .T.
  5862.       ENDCASE
  5863.   ENDIF
  5864.    IF THIS.lError
  5865.       THIS.lError = .F.
  5866.       lReturn = .F.
  5867.       THIS.cAddIn = ""
  5868.    ELSE
  5869.       lReturn = .T.
  5870.       THIS.cAddIn = cFileToRun
  5871.    ENDIF
  5872.    IF THIS.lUsingRegistry
  5873.       DO CASE
  5874.       CASE lReturn AND THIS.lRegisterAddIn
  5875.          THIS.AddRegisteredAddin(cFileToRun)
  5876.       CASE NOT lReturn && whether registry is in use or not
  5877.          THIS.DeleteRegisteredAddIn(cFileToRun)
  5878.       OTHERWISE
  5879.          * registry may be in use but we're not registering
  5880.          * this particular file
  5881.       ENDCASE
  5882.    ENDIF
  5883.    RETURN lReturn
  5884. ENDPROC
  5885. PROCEDURE filterlistbylocation
  5886.    * abstract in the engine, but doesn't have to be
  5887.    * ... could be:
  5888.    * SELECT all objects UNION all procs
  5889.    * represented in the file
  5890.    * and ask which ones should be surveyed
  5891.    RETURN NOT THIS.lError
  5892. ENDPROC
  5893. PROCEDURE orderlistbytime
  5894.    * INDEX ON Duration field, and SET ORDER
  5895.    * TO this index if a checkbox in the list
  5896.    * asks for this option?
  5897.    * abstract in the engine but doesn't have to be
  5898.    RETURN NOT THIS.lError
  5899. ENDPROC
  5900. PROCEDURE setclasslibtoalias
  5901.    LPARAMETERS tcClassLibName, tcAppName
  5902.    * note: this code is not necessary in VFP 6
  5903.    IF EMPTY(tcClassLibName)
  5904.       * library is already set or
  5905.       * the calling program knows it doesn't need to
  5906.       * be set -- for example, the class def could be
  5907.       * appended into the main program but the
  5908.       * call is a #DEFINE.
  5909.       RETURN ""
  5910.    ENDIF
  5911.    LOCAL cAlias, cLibList, cClassLibName, cAppName, cSys16, iLevel
  5912.    cLibList = SET("CLASSLIB")
  5913.    cLibList = CHRTRANC(m.cLibList,["],"")   
  5914.    cAlias = ""
  5915.    cAppName = tcAppName
  5916.    cClassLibName = tcClassLibName
  5917.    IF AT(".",cClassLibName) = 0
  5918.       cClassLibName = cClassLibName+".VCX"
  5919.    ENDIF
  5920.    IF ATC(cClassLibName+" ALIAS ", cLibList) = 0 AND ;
  5921.          ATC(cClassLibName+ " IN ",cLibList) = 0
  5922.       cAlias = "c"+SYS(2015)
  5923.       IF EMPTY(cAppName)
  5924.          SET CLASSLIB TO (cClassLibName) ALIAS (cAlias) ADDITIVE
  5925.       ELSE
  5926.          SET CLASSLIB TO (cClassLibName) IN (cAppName) ALIAS (cAlias) ADDITIVE
  5927.       ENDIF
  5928.    ELSE
  5929.       * library is already loaded --
  5930.       * we want to make sure not to
  5931.       * try to RELEASE it and also not
  5932.       * to alter its current ALIAS.
  5933.    ENDIF
  5934.    RETURN cAlias
  5935. ENDPROC
  5936. PROCEDURE setworkoptions
  5937.    THIS.lStartInProfileMode   = ;
  5938.       THIS.GetRegistryKeyValue("ProfileMode", THIS.lStartInProfileMode)
  5939.    THIS.lSmartPath       = ;
  5940.       THIS.GetRegistryKeyValue("SmartPath", THIS.lSmartPath)
  5941.    THIS.lMarkAllOnLoad   = ;
  5942.       THIS.GetRegistryKeyValue("MarkAll", THIS.lMarkAllOnLoad)
  5943.    THIS.cMarkExecuted    = ;
  5944.       THIS.GetRegistryKeyValue("MarkExecuted", THIS.cMarkExecuted)
  5945.    THIS.cMarkNotExecuted = ;
  5946.       THIS.GetRegistryKeyValue("MarkNotExecuted", THIS.cMarkNotExecuted)
  5947.    THIS.lRegisterAddIn = ;
  5948.       THIS.GetRegistryKeyValue("RegisterAddIn",THIS.lRegisterAddIn)
  5949.    THIS.lInCoverageFrame = ;
  5950.       THIS.GetRegistryKeyValue("CoverageFrame",THIS.lInCoverageFrame)
  5951.    THIS.SetMarks()
  5952.    RETURN NOT THIS.lError
  5953. ENDPROC
  5954. PROCEDURE getfontsfromuser
  5955.    LPARAMETERS tlBaseMonoFont, toMemberHost
  5956.    * second parameter will allow you to switch
  5957.    * easily to a toolbar member when necessary or
  5958.    * useful -- .Forms(1) default will also allow
  5959.    * a failsafe container for the control
  5960.    * in case anything happens to the toolbar, you're
  5961.    * using multiple main dialogs and close the first one, etc.
  5962.    * Note: this method is not called in the
  5963.    * engine, but is expected to be required by
  5964.    * any user-driven options dialog.
  5965.    * The engine maintains two sets of font attributes
  5966.    * one for a "Coverage display font" and one for
  5967.    * the "monospace font" one needs for effective
  5968.    * display of marked code.  However, it doesn't
  5969.    * actually use these fonts anywhere -- it just
  5970.    * makes them available since any subclass is
  5971.    * going to require them.
  5972.    * A .F. return should stop the calling
  5973.    * function from attempting to set UI font attributes.
  5974.    ASSERT NOT THIS.lUnattended
  5975.    ASSERT TYPE("tlBaseMonoFont") = "L"
  5976.    LOCAL oMemberHost, lFontChange, cProp, cGetFont, iPos1, ;
  5977.         iPos2, cAlias, cLibs, iHostControlCount
  5978.    IF TYPE("toMemberHost.Class") = "C"
  5979.       oMemberHost = toMemberHost
  5980.    ELSE
  5981.       IF THIS.lInCoverageFrame
  5982.          oMemberHost = THIS.oFrame
  5983.       ELSE
  5984.          oMemberHost = THIS.Forms(1)
  5985.       ENDIF
  5986.    ENDIF
  5987.    iHostControlCount = oMemberHost.ControlCount
  5988.    IF tlBaseMonoFont
  5989.       cProp = "Mono"
  5990.    ELSE
  5991.       cProp = ""
  5992.    ENDIF
  5993.    IF THIS.lUsingOCXs
  5994.       IF TYPE("oMemberHost.cdlCov_GetFont.Class") = "U"
  5995.          * add common dialog if this is the first time:
  5996.          THIS.lError = .F.
  5997.          cLibs = SET("CLASSLIB")
  5998.          #IF COV_COMPILED_IN_VFP5 
  5999.             cAlias = THIS.SetClassLibToAlias(COV_BASE_CLASSLIB, THIS.cAppName)
  6000.             oMemberHost.AddObject("cdlCov_GetFont",cAlias+"."+COV_COMMON_DIALOG_CLASS)
  6001.          #ELSE
  6002.             oMemberHost.NewObject("cdlCov_GetFont",COV_COMMON_DIALOG_CLASS,COV_BASE_CLASSLIB,THIS.cAppName)
  6003.          #ENDIF            
  6004.          IF NOT EMPTY(cAlias) AND ;
  6005.                (ATC("ALIAS "+cAlias, SET("CLASSLIB")) > 0)
  6006.             RELEASE CLASSLIB ALIAS (cAlias)
  6007.             SET CLASSLIB TO &cLibs
  6008.          ENDIF
  6009.          IF THIS.lError OR oMemberHost.ControlCount = iHostControlCount
  6010.             WAIT WINDOW ;
  6011.                LEFT(COV_SWITCHING_OFF_COMMON_DIALOG_LOC+"...",COV_MESSAGE_LIMIT) ;
  6012.                TIMEOUT COV_TIMEOUT_SECS
  6013.             THIS.lUsingOCXs = .F.
  6014.             THIS.lError = .F.
  6015.          ENDIF
  6016.       ENDIF
  6017.    ENDIF
  6018.    IF THIS.lUsingOCXs
  6019.       WITH oMemberHost.cdlCov_GetFont
  6020.          .Flags =  cdlCFScreenFonts + ;
  6021.             cdlCFANSIOnly + ;
  6022.             cdlCFForceFontExist
  6023.          IF tlBaseMonoFont
  6024.             .Flags = .Flags + cdlCFFixedPitchOnly
  6025.          ENDIF
  6026.          .FontName = EVAL("THIS.cBase"+cProp+"FontName")
  6027.          .FontSize = EVAL("THIS.nBase"+cProp+"FontSize")
  6028.          .FontBold = EVAL("THIS.lBase"+cProp+"FontBold")
  6029.          .FontItalic = EVAL("THIS.lBase"+cProp+"FontItalic")
  6030.       ENDWITH
  6031.       IF ! oMemberHost.Visible
  6032.          * set up a reasonable position for the dialog:
  6033.          oMemberHost.Top = _SCREEN.Height/4
  6034.          oMemberHost.Left = _SCREEN.WIDTH/4
  6035.       ENDIF
  6036.       oMemberHost.cdlCov_GetFont.ShowFont()
  6037.       lFontChange = NOT( (EVAL("THIS.cBase"+cProp+"FontName") == ;
  6038.          oMemberHost.cdlCov_GetFont.FontName) AND ;
  6039.          (EVAL("THIS.nBase"+cProp+"FontSize") = ;
  6040.          oMemberHost.cdlCov_GetFont.FontSize) AND ;
  6041.          (EVAL("THIS.lBase"+cProp+"FontBold") = ;
  6042.          oMemberHost.cdlCov_GetFont.FontBold) AND ;
  6043.          (EVAL("THIS.lBase"+cProp+"FontItalic") = ;
  6044.          oMemberHost.cdlCov_GetFont.FontItalic))
  6045.       IF lFontChange AND NOT THIS.lError
  6046.          STORE oMemberHost.cdlCov_GetFont.FontName TO ("THIS.cBase"+cProp+"FontName")
  6047.          STORE oMemberHost.cdlCov_GetFont.FontSize TO ("THIS.nBase"+cProp+"FontSize")
  6048.          STORE oMemberHost.cdlCov_GetFont.FontBold TO ("THIS.lBase"+cProp+"FontBold")
  6049.          STORE oMemberHost.cdlCov_GetFont.FontItalic TO ("THIS.lBase"+cProp+"FontItalic")
  6050.       ENDIF
  6051.    ELSE
  6052.       * MESSAGEBOX(COV_FEATURE_NEEDS_OCX_LOC, COV_STOP_MESSAGEBOX)
  6053.       * RETURN .F.
  6054.       * this is an extra restriction,
  6055.       * which may be added if you wish to
  6056.       * stop proportional fonts from being picked for code,
  6057.       * since GETFONT() doesn't allow this restriction in the
  6058.       * same way that the OCX does.  However, allowing the
  6059.       * user to pick proportional fonts for code in the
  6060.       * coverage dialogs is no different from allowing 
  6061.       * proportional fonts for a MODI COMM -- it's basically
  6062.       * the user's right, even if it does drive him/her crazy <g>!
  6063.       cGetFont = GETFONT()
  6064.       IF NOT EMPTY(cGetFont)
  6065.          lFontChange = .T.
  6066.          iPos = AT(",",cGetFont)
  6067.          STORE SUBSTR(cGetFont,1,iPos-1) TO ("THIS.cBase"+cProp+"FontName")
  6068.          cGetFont = SUBSTR(cGetFont,iPos+1)
  6069.          iPos = AT(",",cGetFont)
  6070.          STORE VAL(SUBSTR(cGetFont,1,iPos-1)) TO ("THIS.nBase"+cProp+"FontSize")
  6071.          cGetFont = SUBSTR(cGetFont,iPos+1)
  6072.          STORE ("B" $ cGetFont) TO ("THIS.lBase"+cProp+"FontBold")
  6073.          STORE ("I" $ cGetFont) TO ("THIS.lBase"+cProp+"FontItalic")
  6074.       ENDIF
  6075.    ENDIF
  6076.    RETURN lFontChange AND NOT THIS.lError
  6077. ENDPROC
  6078. PROCEDURE setregistrykeyvalue
  6079.    LPARAMETERS tcWhichOption, tValue
  6080.    LOCAL cPath, cTypeValue, cValue
  6081.    IF THIS.lVFP5
  6082.       cPath = VFP5_KEYPATH
  6083.    ELSE
  6084.       cPath = VFP6_KEYPATH
  6085.    ENDIF
  6086.    cPath = cPath + VFP_COVERAGE_KEY
  6087.    cTypeValue = TYPE("tValue")
  6088.    DO CASE
  6089.    CASE cTypeValue = "C"
  6090.       cValue = tValue
  6091.    CASE cTypeValue = "N"
  6092.       cValue = ALLTR(STR(tValue))
  6093.    CASE cTypeValue = "L" AND tValue
  6094.       cValue = ".T."
  6095.    CASE cTypeValue = "L"
  6096.       cValue = ".F."
  6097.    OTHERWISE
  6098.       * ??
  6099.       cValue = ""
  6100.    ENDCASE
  6101.    IF THIS.lUsingRegistry
  6102.       THIS.cov_toolbar.cusRegistry.SetRegKey(tcWhichOption, ;
  6103.          cValue, ;
  6104.          cPath, ;
  6105.          HKEY_CURRENT_USER)
  6106.    ELSE
  6107.      * shouldn't really be in here...
  6108.    ENDIF
  6109.    RETURN NOT THIS.lError
  6110. ENDPROC
  6111. PROCEDURE getregistrykeyvalue
  6112.    LPARAMETERS tcOption, tDefaultValue, tcPath
  6113.    LOCAL cValue, vReturn, cPath, cTypeValue, cTypeRegValue
  6114.    IF THIS.lUsingRegistry
  6115.       cTypeValue = TYPE("tDefaultValue")
  6116.       DO CASE
  6117.       CASE cTypeValue = "C"
  6118.          cValue = tDefaultValue
  6119.       CASE cTypeValue = "N"
  6120.          cValue = ALLTR(STR(tDefaultValue))
  6121.       CASE cTypeValue = "L" AND tDefaultValue
  6122.          cValue = ".T."
  6123.       CASE cTypeValue = "L"
  6124.          cValue = ".F."
  6125.       OTHERWISE
  6126.          * ??
  6127.          cValue = ""
  6128.       ENDCASE
  6129.       IF EMPTY(tcPath) OR PCOUNT() < 3
  6130.          cPath = VFP_COVERAGE_KEY
  6131.       ELSE
  6132.          cPath = tcPath
  6133.       ENDIF
  6134.       IF THIS.lvfp5
  6135.          cPath = VFP5_KEYPATH + cPath
  6136.       ELSE
  6137.          cPath = VFP6_KEYPATH + cPath
  6138.       ENDIF
  6139.       THIS.cov_toolbar.cusRegistry.GetRegKey(tcOption, @cValue,cPath,HKEY_CURRENT_USER)
  6140.       cTypeRegValue = TYPE(cValue)
  6141.       IF THIS.lError OR ;
  6142.             (cTypeRegValue # "U" AND ;
  6143.             cTypeValue # cTypeValue)
  6144.          * the latter condition should only happen
  6145.          * if somebody monkeyed around with the registry...
  6146.          vReturn = tDefaultValue
  6147.          THIS.lError = .F.
  6148.       ELSE
  6149.          IF cTypeRegValue # "U"
  6150.             vReturn = EVAL(cValue)
  6151.          ELSE
  6152.             vReturn = cValue
  6153.          ENDIF
  6154.       ENDIF
  6155.    ELSE
  6156.       vReturn = tDefaultValue
  6157.    ENDIF
  6158.    RETURN vReturn
  6159. ENDPROC
  6160. PROCEDURE getresourcelocation
  6161.    LPARAMETERS tcHost, tcTitle, tcCDLFilter , tcFileName, tcWhichDialog, toMemberHost
  6162.    ASSERT PCOUNT() >=5
  6163.    ASSERT OCCURS("|", tcCDLFilter) > 0
  6164.    ASSERT TYPE("tcWhichDialog") = "C" AND ;
  6165.       INLIST(UPPER(tcWhichDialog),"PUTFILE","GETFILE")
  6166.       * currently known types & available subclasses of
  6167.       * coverage common dialog class --
  6168.       * may add showhelp()...
  6169.       * and there might be additional file-setting OCXs or
  6170.       * other possibilities that would be useful here --
  6171.       * if so, the tcCDLFilter ASSERTion above would change
  6172.    IF THIS.lUnattended
  6173.       IF TYPE("tcFileName") = "C"
  6174.          RETURN LOWER(tcFileName)
  6175.       ELSE
  6176.          RETURN ""
  6177.       ENDIF
  6178.    ENDIF
  6179.    LOCAL oMemberHost, nPos, cReturn, cDialogControl, liOldSYS2333, ;
  6180.       oDialogControl, cAlias, cFoxFilter, cWhichDialog, iSetPointer, cLibs, ;
  6181.       iHostControlCount
  6182.    iSetPointer = _SCREEN.MousePointer
  6183.    IF TYPE("toMemberHost.Class") = "C"
  6184.       oMemberHost = toMemberHost
  6185.    ELSE
  6186.       IF THIS.lInCoverageFrame
  6187.          oMemberHost = THIS.oFrame
  6188.       ELSE
  6189.          oMemberHost = THIS.Forms(1)
  6190.       ENDIF
  6191.    ENDIF
  6192.    * see note on memberhost parameter in GetFontFromUser() method
  6193.    iHostControlCount = oMemberHost.ControlCount
  6194.    cWhichDialog = ALLTR(UPPER(tcWhichDialog))
  6195.    IF THIS.lUsingOCXs
  6196.       cDialogControl = "cdlCov_"+cWhichDialog
  6197.       IF TYPE("oMemberHost."+cDialogControl+".Class") = "U"
  6198.          * add common dialog if this is the first time:
  6199.          THIS.lError = .F.
  6200.          cLibs = SET("CLASSLIB")
  6201.          #IF COV_COMPILED_IN_VFP5 
  6202.             cAlias = THIS.SetClassLibToAlias(COV_BASE_CLASSLIB, THIS.cAppName)
  6203.          #ENDIF
  6204.          * the following is required for 
  6205.          * the common file dialog at least
  6206.          * in this subclass... 
  6207.          IF THIS.lVFP5
  6208.             liOldSYS2333 = 0
  6209.          ELSE
  6210.             liOldSYS2333 = VAL(SYS(2333,2))
  6211.          ENDIF
  6212.          
  6213.          IF THIS.lVFP5 OR liOldSYS2333 # 0
  6214.             SYS(2333,0) 
  6215.          ENDIF
  6216.          #IF COV_COMPILED_IN_VFP5 
  6217.             oMemberHost.AddObject(cDialogControl,cAlias+"."+COV_COMMON_FILE_DIALOG_CLASS)
  6218.          #ELSE
  6219.             oMemberHost.NewObject(cDialogControl,COV_COMMON_FILE_DIALOG_CLASS, COV_BASE_CLASSLIB, THIS.cAppName)         
  6220.          #ENDIF
  6221.          
  6222.          WITH oMemberHost.&cDialogControl.
  6223.             DO CASE
  6224.             CASE cWhichDialog = "PUTFILE"
  6225.                .Flags = .Flags + cdlOFNNoReadOnlyReturn + ;
  6226.                                   cdlOFNOverwritePrompt
  6227.             CASE cWhichDialog = "GETFILE"
  6228.                .Flags = .Flags + cdlOFNFileMustExist
  6229.             OTHERWISE
  6230.                * see comment and ASSERTed list of known dlgs above
  6231.             ENDCASE
  6232.          ENDWITH
  6233.          IF liOldSYS2333 # 0
  6234.             SYS(2333,liOldSYS2333)
  6235.          ENDIF
  6236.          
  6237.          IF NOT EMPTY(cAlias) AND ;
  6238.                (ATC("ALIAS "+cAlias, SET("CLASSLIB")) > 0)
  6239.             RELEASE CLASSLIB ALIAS (cAlias)
  6240.             SET CLASSLIB TO &cLibs
  6241.          ENDIF
  6242.          IF THIS.lError OR (oMemberHost.ControlCount =  iHostControlCount) 
  6243.             WAIT WINDOW ;
  6244.                LEFT(COV_SWITCHING_OFF_COMMON_DIALOG_LOC+"...",COV_MESSAGE_LIMIT) ;
  6245.                TIMEOUT COV_TIMEOUT_SECS
  6246.             THIS.lUsingOCXs = .F.
  6247.             THIS.lError = .F.
  6248.          ENDIF
  6249.       ENDIF
  6250.    ENDIF
  6251.    nPos = RAT("\",tcHost)
  6252.    cReturn = ""
  6253.    IF THIS.lUsingOCXs
  6254.       oDialogControl = EVAL("oMemberHost."+cDialogControl)
  6255.       WITH oDialogControl
  6256.          .DialogTitle = tcTitle
  6257.          IF NOT EMPTY(tcHost)
  6258.             .DialogTitle = .DialogTitle + ;
  6259.                " "+SUBSTR(tcHost,nPos+1)
  6260.          ENDIF
  6261.          IF TYPE("tcFileName") = "C"
  6262.             .FileName = tcFileName
  6263.          ELSE
  6264.             .FileName = ""
  6265.          ENDIF
  6266.          .Filter = tcCDLFilter
  6267.          .FilterIndex = 0
  6268.          IF nPos > 0
  6269.             .InitDir = SUBSTR(tcHost,1,nPos)
  6270.             * Setting the .lForceSearch
  6271.             * property of a cov_commonfiledialg
  6272.             * subclass to .T. will override this
  6273.             * and set to "", or this
  6274.             * method could set .lForceSearch
  6275.             * true here to force the same effect
  6276.             * at runtime.
  6277.          ENDIF
  6278.       ENDWITH
  6279.       IF !oMemberHost.Visible
  6280.          * set up a reasonable position for the dialog:
  6281.          oMemberHost.Top = _SCREEN.Height/4
  6282.          oMemberHost.Left = _SCREEN.WIDTH/4
  6283.       ENDIF
  6284.       DO CASE
  6285.       CASE cWhichDialog = "PUTFILE"
  6286.          oDialogControl.SHOWSAVE()
  6287.       CASE cWhichDialog = "GETFILE"
  6288.          oDialogControl.SHOWOPEN()
  6289.       OTHERWISE
  6290.          * see comment and ASSERTed list of known dlgs above
  6291.       ENDCASE
  6292.       cReturn = ALLTR(oDialogControl.FileName)
  6293.    ELSE
  6294.       WAIT WINDOW NOWAIT LEFT(tcTitle + ;
  6295.                               IIF(EMPTY(tcHost),"",C_CR + SUBSTR(tcHost,nPos+1)), ;
  6296.                               COV_MESSAGE_LIMIT)
  6297.       cFoxFilter = STRTRAN(tcCDLFilter,"*.","")
  6298.       IF OCCURS("|",cFoxFilter) > 1
  6299.          cFoxFilter = LEFT(cFoxFilter,AT("|",cFoxFilter,2)-1)
  6300.       ENDIF
  6301.       DO CASE
  6302.       CASE cWhichDialog = "PUTFILE"
  6303.          cFoxFilter = SUBSTR(cFoxFilter,AT("|",cFoxFilter)+1)
  6304.          cFoxFilter = STRTRAN(cFoxFilter,";","|")
  6305.          cReturn = PUTFILE("",IIF(EMPTY(tcFileName),"",tcFileName),cFoxFilter)
  6306.          * A confirmation of overwrite if the file already exists
  6307.          * is done automatically, whether SAFETY is ON or OFF.
  6308.       CASE cWhichDialog = "GETFILE"
  6309.          cFoxFilter = STRTRAN(cFoxFilter,";",",")
  6310.          cFoxFilter = STRTRAN(cFoxFilter,"|",":")
  6311.          cReturn = GETFILE(cFoxFilter,"",COV_GETFILE_BUTTON_LOC)
  6312.          * file *must* exist, and we have to handle this manually:
  6313.          IF NOT EMPTY(cReturn)
  6314.             cReturn = FULLPATH(cReturn)
  6315.             IF EMPTY(SYS(2000,cReturn))
  6316.                cReturn = ""
  6317.                THIS.DoMessage(COV_FILE_DOES_NOT_EXIST_LOC, ;
  6318.                   COV_STOP_MESSAGEBOX)
  6319.             ENDIF
  6320.          ENDIF
  6321.       OTHERWISE
  6322.          * see comment and ASSERTed list of known dlgs above
  6323.       ENDCASE
  6324.       WAIT CLEAR
  6325.    ENDIF
  6326.    IF iSetPointer # 0
  6327.       _SCREEN.SetAll("MousePointer",iSetPointer)
  6328.       _SCREEN.MousePointer = iSetPointer
  6329.    ENDIF
  6330.    RETURN LOWER(cReturn)
  6331. ENDPROC
  6332. PROCEDURE fillcoveragefilenamecursor
  6333.    * this is a sketch in the engine...
  6334.    * the basic records required by this
  6335.    * cursor are just hardcoded as INSERTs.
  6336.    * You can have a different
  6337.    * system of filling in
  6338.    * subclasses, for example they can be
  6339.    * SELECTed from a lookup table
  6340.    * of filenames, either by augmenting
  6341.    * this method or using 
  6342.    * the AdjustCoverageFilenameCursor()
  6343.    * method that it calls 
  6344.    * (for consistency with the other
  6345.    * coverage table methods).
  6346.    * You can write a little maintenance procedure
  6347.    * that scans your COVERAGE.PJX 
  6348.    * puts all relevant filenames
  6349.    * into such a lookup table, or 
  6350.    * into a TEXTMERGEd PRG of INSERTs.
  6351.    INSERT INTO (THIS.ccovfilesalias) ;
  6352.       VALUES ("COVERAGE.FXP")
  6353.    INSERT INTO (THIS.ccovfilesalias) ;
  6354.       VALUES ("COVERAGE.VCT")
  6355.    INSERT INTO (THIS.ccovfilesalias) ;
  6356.       VALUES ("COVERAGE.APP")
  6357.    INSERT INTO (THIS.ccovfilesalias) ;
  6358.       VALUES ("COV_PJX.FRT")
  6359.    THIS.AdjustCoverageFilenameCursor()
  6360.    RETURN NOT THIS.lError
  6361. ENDPROC
  6362. PROCEDURE togglecoverageprofilemode
  6363.    LPARAMETERS tcSource,tcTarget
  6364.    LOCAL cTarget, iSelect, iRecNo, cOrder
  6365.    THIS.lInProfileMode = ! THIS.lInProfileMode
  6366.    THIS.ShowStatus(COV_EMPTYING_ALL_RECORDS_LOC)
  6367.    iSelect = SELECT()
  6368.    cTarget = THIS.GetAlias(tcTarget,"Target")
  6369.    SELECT (cTarget)
  6370.    iRecNo = IIF(EOF(),0,RECNO())
  6371.    cOrder = ORDER()
  6372.    SET ORDER TO 0
  6373.    IF THIS.lMarkAllOnLoad
  6374.       THIS.MarkAllTargetRecords(tcSource, cTarget)
  6375.    ENDIF
  6376.    IF iRecNo = 0
  6377.       LOCATE
  6378.    ELSE
  6379.       GO iRecNo
  6380.    ENDIF
  6381.    SET ORDER TO (cOrder)
  6382.    SELECT (iSelect)
  6383.    THIS.ClearStatus()
  6384.    RETURN NOT THIS.lError
  6385. ENDPROC
  6386. PROCEDURE showstatistics
  6387.    * abstract in the engine by design
  6388.    RETURN NOT THIS.lError
  6389. ENDPROC
  6390. PROCEDURE showprojectstatistics
  6391.    LPARAMETERS tcSource, tcTarget, tcProject
  6392.    LOCAL lReturn
  6393.    lReturn = THIS.GetProjectStatistics(tcSource,tcTarget, tcProject)
  6394.    IF lReturn
  6395.       lReturn = THIS.DisplayProjectStatistics(tcSource,tcTarget,tcProject)
  6396.    ENDIF
  6397.    RETURN lReturn AND NOT THIS.lError
  6398. ENDPROC
  6399. PROCEDURE getprojectstatistics
  6400.    LPARAMETERS tcSource, tcTarget, tcProject
  6401.    LOCAL iSelect, cDefault, cOrder, cTarget, ;
  6402.       cPJXFile, cPJXAlias, cProject, lReturn, cFile, ;
  6403.       iCovered, iCoverable, iObjTotal, iObjHits, cFileType
  6404.    THIS.lError = .F.
  6405.    cPJXAlias = ""
  6406.    cTarget = THIS.GetAlias(tcTarget,"Target")
  6407.    cProject = THIS.GetAlias(tcProject,"Project")
  6408.    cPJXFile = THIS.GetResourceLocation("", ;
  6409.       COV_GETPROJECTFILE_TITLE_LOC, ;
  6410.       COV_PROJECTSONLY_LOC+" (*.pjx)|*.pjx", ;
  6411.       "", ;
  6412.       "getfile" )
  6413.    IF USED(cProject)
  6414.       USE IN (cProject)
  6415.    ENDIF
  6416.    CREATE CURSOR (cProject) ;
  6417.       (Hostfile c(COV_LEN_HOSTFILE), ;
  6418.       FileType c(4), ;
  6419.       Coverable n(8), ;
  6420.       Covered n(8), ;
  6421.       ObjTotal n(8), ;
  6422.       ObjHits n(8))
  6423.    IF NOT EMPTY(cPJXFile)
  6424.       cPJXAlias = "P"+SYS(2015)
  6425.       USE (cPJXFile) ALIAS (cPJXAlias) AGAIN SHARED IN 0
  6426.       IF NOT THIS.lError
  6427.          iSelect = SELECT()
  6428.          cDefault = SET("DIRECTORY")
  6429.          cOrder = ORDER(cTarget)
  6430.          SELECT (cPJXAlias)
  6431.          CD (SUBSTR(cPJXFile,1,RAT("\",cPJXFile)))
  6432.          SET ORDER TO Standard IN (cTarget)
  6433.          SET RELATION TO ;
  6434.             PADR(LOWER(ALLTR(FULLPATH(ALLTR(STRTRAN(;
  6435.             IIF(EMPTY(Outfile),Name,Outfile),CHR(0),""))))), ;
  6436.             COV_LEN_HOSTFILE) ;
  6437.             INTO (cTarget)
  6438.          SET Filter TO INLIST(TYPE,COV_KNOWN_PJX_TYPES)
  6439.          LOCATE
  6440.          IF EOF()
  6441.             MESSAGEBOX(COV_NO_USABLE_PROJECT_RECORDS_LOC, ;
  6442.                COV_STOP_MESSAGEBOX)
  6443.             USE IN (cPJXAlias)
  6444.          ELSE
  6445.             * create a header record
  6446.             INSERT INTO (cProject) (Hostfile) VALUES (cPJXFile)
  6447.             * now check project records of known types:
  6448.             SCAN ALL
  6449.                cFile = PADR(LOWER(ALLTR(FULLPATH(ALLTR(STRTRAN(;
  6450.                   IIF(EMPTY(Outfile),Name,Outfile),CHR(0),""))))), ;
  6451.                   COV_LEN_HOSTFILE)
  6452.                IF EOF(cTarget)
  6453.                   INSERT INTO (cProject) (Hostfile) ;
  6454.                      VALUES (cFile)
  6455.                ELSE
  6456.                   SELECT (cTarget)
  6457.                   THIS.MarkOneTargetRecord(tcSource, cTarget, .T.)
  6458.                   cFileType = FileType
  6459.                   iObjTotal = ObjTotal
  6460.                   iObjHits = ObjHits
  6461.                   STORE 0 TO iCovered, iCoverable
  6462.                   SCAN WHILE Hostfile = cFile
  6463.                      THIS.MarkOneTargetRecord(tcSource, cTarget, .T.)
  6464.                      iCovered = iCovered + Covered
  6465.                      iCoverable = iCoverable + Coverable
  6466.                   ENDSCAN
  6467.                   INSERT INTO (cProject) ;
  6468.                      (Hostfile, FileType, Covered, Coverable, ObjHits, ObjTotal) ;
  6469.                      VALUES ;
  6470.                      (cFile, cFileType, iCovered, iCoverable, iObjHits, iObjTotal)
  6471.                ENDIF
  6472.             ENDSCAN
  6473.          ENDIF
  6474.          SELECT (iSelect)
  6475.          CD (cDefault)
  6476.          SET ORDER TO (cOrder) IN (cTarget)
  6477.          GO Top IN (cTarget)
  6478.          THIS.Refresh()
  6479.          IF USED(cPJXAlias)
  6480.             USE IN (cPJXAlias)
  6481.             IF NOT THIS.lError
  6482.                lReturn = .T.
  6483.             ENDIF
  6484.          ENDIF
  6485.       ELSE
  6486.          THIS.lError = .F.
  6487.          MESSAGEBOX(COV_PROJECT_UNAVAILABLE_LOC,COV_STOP_MESSAGEBOX)
  6488.       ENDIF
  6489.    ENDIF
  6490.    RETURN lReturn
  6491. ENDPROC
  6492. PROCEDURE displayprojectstatistics
  6493.    LPARAMETERS tcSource, tcTarget, tcProject
  6494.    * abstract in the engine by design
  6495.    RETURN NOT THIS.lError
  6496. ENDPROC
  6497. PROCEDURE setfontvalues
  6498.    LOCAL iSelect, cResource, cMonoFontString
  6499.    THIS.cBaseFontName       = ;
  6500.       THIS.GetRegistryKeyValue("BaseFontName", PROPER(COV_DEFAULT_BASE_FONTNAME))
  6501.    THIS.nBaseFontSize       = ;
  6502.       THIS.GetRegistryKeyValue("BaseFontSize", THIS.nBaseFontSize)
  6503.    THIS.lBaseFontBold       = ;
  6504.       THIS.GetRegistryKeyValue("BaseFontBold", THIS.lBaseFontBold)
  6505.    THIS.lBaseFontItalic     = ;
  6506.       THIS.GetRegistryKeyValue("BaseFontItalic", THIS.lBaseFontItalic)
  6507.    THIS.nBaseMonoFontSize   = ;
  6508.       THIS.GetRegistryKeyValue("BaseMonoFontSize", THIS.nBaseMonoFontSize)
  6509.    THIS.lBaseMonoFontBold   = ;
  6510.       THIS.GetRegistryKeyValue("BaseMonoFontBold", THIS.lBaseMonoFontBold )
  6511.    THIS.lBaseMonoFontItalic = ;
  6512.       THIS.GetRegistryKeyValue("BaseMonoFontItalic", THIS.lBaseMonoFontItalic)
  6513.    * Do the monospace fontname differently 
  6514.    * from other font defaults:
  6515.    * Don't set a default registry value
  6516.    * if none has previously been saved by
  6517.    * the user. Instead, try to get default
  6518.    * code font from the editor records in
  6519.    * the resource file and, if that fails,
  6520.    * try to get it from the registry's key for
  6521.    * the Trace window font
  6522.    cMonoFontString = ;
  6523.       THIS.GetRegistryKeyValue("BaseMonoFontName", "")
  6524.    IF EMPTY(cMonoFontString)
  6525.       * no previous key value
  6526.       iSelect = SELECT()
  6527.       cResource = SET("RESOURCE",1)
  6528.       IF NOT EMPTY(SYS(2000,cResource))
  6529.          SELECT 0
  6530.          USE (cResource) ALIAS Temp AGAIN SHARED
  6531.          IF NOT THIS.lError
  6532.             GO BOTTOM
  6533.             DO WHILE NOT BOF()
  6534.                IF ID = "WINDMODIFY" AND ;
  6535.                      ".prg" $ LOWER(Name)
  6536.                   cMonoFontString = ALLTR(LOWER(Data))
  6537.                   cMonoFontString = SUBSTR(cMonoFontString,51)
  6538.                   cMonoFontString = SUBSTR(cMonoFontString,1, ;
  6539.                      AT(CHR(0),cMonoFontString)-1)
  6540.                   EXIT
  6541.                ELSE
  6542.                   SKIP -1
  6543.                ENDIF
  6544.             ENDDO
  6545.          ELSE
  6546.             THIS.lError = .F.
  6547.          ENDIF
  6548.          USE
  6549.          SELECT (iSelect)
  6550.       ENDIF
  6551.       IF EMPTY(cMonoFontString)
  6552.          * didn't get an answer from the resource file
  6553.          * so use the Trace window default:
  6554.          IF THIS.lUsingRegistry
  6555.             cMonoFontString = ;
  6556.                THIS.GetRegistryKeyValue("TraceFontName","",VFP_OPTIONS_KEY)
  6557.          ENDIF
  6558.       ENDIF
  6559.    ENDIF
  6560.    IF NOT EMPTY(cMonoFontString)
  6561.       THIS.cBaseMonoFontName   = PROPER(cMonoFontString)
  6562.    ELSE
  6563.       * court of last resort if no other option pans out:
  6564.       THIS.cBaseMonoFontName   = PROPER(COV_DEFAULT_MONO_FONTNAME)
  6565.    ENDIF
  6566.    RETURN NOT THIS.lError
  6567. ENDPROC
  6568. PROCEDURE lockscreens
  6569.    LPARAMETERS tlOn
  6570.    IF tlOn
  6571.       THIS.SetAll("LockScreen",.T.)
  6572.       _SCREEN.SetAll("MousePointer",11)
  6573.       _SCREEN.MousePointer = 11
  6574.    ELSE
  6575.       THIS.SetAll("LockScreen",.F.)
  6576.       _SCREEN.SetAll("MousePointer",0)
  6577.       _SCREEN.MousePointer = 0
  6578.    ENDIF
  6579. ENDPROC
  6580. PROCEDURE getregisteredaddins
  6581.    IF THIS.lUsingRegistry
  6582.       LOCAL cAddInName, iAddInNumber
  6583.       cAddInName = ""
  6584.       iAddInNumber = 1
  6585.       cAddInName = THIS.GetRegistryKeyValue("AddIn1","")
  6586.       DO WHILE NOT EMPTY(cAddInName)
  6587.          DIME THIS.aAddIns[iAddInNumber]
  6588.          THIS.aAddIns[iAddInNumber] = cAddInName
  6589.          iAddInNumber = iAddInNumber + 1
  6590.          cAddInName = THIS.GetRegistryKeyValue("AddIn"+ALLTR(STR(iAddInNumber)),"")
  6591.       ENDDO
  6592.    ENDIF
  6593.    RETURN NOT THIS.lError
  6594. ENDPROC
  6595. PROCEDURE showstatus
  6596.    LPARAMETERS cMessage
  6597.    IF NOT EMPTY(cMessage)
  6598.       THIS.lUsingStatusBar = ;
  6599.          ( (SET("STATUS BAR") = "ON") AND ;
  6600.          ( (NOT THIS.lInCoverageFrame) OR ;
  6601.          THIS.lUnattended) )
  6602.       IF THIS.lUsingStatusBar
  6603.          SET MESSAGE TO LEFT(cMessage,COV_MESSAGE_LIMIT)
  6604.       ELSE
  6605.          WAIT WINDOW NOWAIT LEFT(cMessage,COV_MESSAGE_LIMIT)
  6606.       ENDIF
  6607.    ENDIF
  6608.    RETURN NOT THIS.lError
  6609. ENDPROC
  6610. PROCEDURE clearstatus
  6611.    IF THIS.lUsingStatusBar
  6612.       SET MESSAGE TO ""
  6613.    ELSE
  6614.       WAIT CLEAR
  6615.    ENDIF
  6616.    RETURN NOT THIS.lError
  6617. ENDPROC
  6618. PROCEDURE markalltargetrecords
  6619.    LPARAMETERS tcSource, tcTarget
  6620.    LOCAL cSource, cTarget, iSelect, iRecNo, cOrder
  6621.    ASSERT (EMPTY(tcSource) OR ;
  6622.       (TYPE("tcSource") = "C" AND USED(tcSource))) AND ;
  6623.       (EMPTY(tcTarget) OR ;
  6624.       (TYPE("tcTarget") = "C" AND USED(tcTarget)))
  6625.    THIS.ShowStatus(COV_MARKING_ALL_RECORDS_LOC)
  6626.    iSelect = SELECT()
  6627.    IF EMPTY(tcSource)
  6628.       cSource = THIS.GetAlias(tcSource,"Source")
  6629.       cTarget = THIS.GetAlias(tcTarget,"Target")
  6630.    ELSE
  6631.       cSource = tcSource
  6632.       cTarget = tcTarget
  6633.    ENDIF
  6634.    SELECT (cTarget)
  6635.    iRecNo = IIF(EOF(),0,RECNO())
  6636.    cOrder = ORDER()
  6637.    SET ORDER TO Standard
  6638.    LOCATE
  6639.    SCAN
  6640.       THIS.MarkOneTargetRecord(cSource,cTarget, .T.)
  6641.    ENDSCAN
  6642.    IF iRecNo = 0
  6643.       LOCATE
  6644.    ELSE
  6645.       GO iRecNo
  6646.    ENDIF
  6647.    SET ORDER TO (cOrder)
  6648.    SELECT (iSelect)
  6649.    THIS.ClearStatus()
  6650.    RETURN NOT THIS.lError
  6651. ENDPROC
  6652. PROCEDURE filltargetcursor
  6653.    LPARAMETERS tcSource, tcTarget
  6654.    LOCAL cSource, cTarget, iSelect, cOrder, cFile
  6655.    ASSERT (EMPTY(tcSource) OR ;
  6656.       (TYPE("tcSource") = "C" AND USED(tcSource))) AND ;
  6657.       (EMPTY(tcTarget) OR ;
  6658.       (TYPE("tcTarget") = "C" AND USED(tcTarget)))
  6659.    THIS.LockScreens(.T.)
  6660.    THIS.ShowStatus(COV_FILLING_ALL_RECORDS_LOC)
  6661.    iSelect = SELECT()
  6662.    IF EMPTY(tcSource)
  6663.       cSource = THIS.GetAlias(tcSource,"Source")
  6664.       cTarget = THIS.GetAlias(tcTarget,"Target")
  6665.    ELSE
  6666.       cSource = tcSource
  6667.       cTarget = tcTarget
  6668.    ENDIF
  6669.    SELECT (cTarget)
  6670.    cOrder = ORDER()
  6671.    SET ORDER TO Hostfile
  6672.    LOCATE
  6673.    SCAN
  6674.       * third param will keep the source
  6675.       * file open in case we can keep using it
  6676.       * for multiple records
  6677.       THIS.FillOneTargetRecord(cSource,cTarget, .T.)
  6678.    ENDSCAN
  6679.    IF USED("Temp")
  6680.       * close any final source file
  6681.       USE IN Temp
  6682.    ENDIF
  6683.    SELECT (cTarget)
  6684.    DELETE FOR EMPTY(SourceCode)
  6685.    SELE Hostfile, COUNT(*) AS ObjHits FROM (cTarget) ;
  6686.       GROUP BY Hostfile ;
  6687.       INTO CURSOR Temp
  6688.    SELECT Temp
  6689.    INDEX ON Hostfile TAG Hostfile
  6690.    SELECT (cTarget)
  6691.    SET RELATION TO Hostfile INTO Temp
  6692.    LOCATE
  6693.    DO WHILE NOT EOF()
  6694.       IF INLIST(FileType,".vct",".sct", ".frt", ".lbt")
  6695.          cFile = Hostfile
  6696.          REPLACE ObjHits WITH Temp.ObjHits ;
  6697.             WHILE Hostfile == cFile
  6698.       ELSE
  6699.          SKIP
  6700.       ENDIF
  6701.    ENDDO
  6702.    COUNT FOR NOT DELETED()
  6703.    THIS.iTargetReccount = _TALLY
  6704.    USE IN Temp
  6705.    SET ORDER TO (cOrder)
  6706.    LOCATE
  6707.    SELECT (iSelect)
  6708.    THIS.ClearStatus()
  6709.    THIS.LockScreens(.F.)
  6710.    RETURN (THIS.iTargetReccount > 0 AND NOT THIS.lError)
  6711. ENDPROC
  6712. PROCEDURE markonetargetrecord
  6713.    LPARAMETERS tcSource, tcTarget, tlFillingAll
  6714.    LOCAL lReturn, cTarget, cObject
  6715.    cTarget = THIS.GetAlias(tcTarget,"Target")
  6716.    DO CASE
  6717.    CASE EMPTY(&cTarget..Hostfile)
  6718.       * Problem !
  6719.    CASE THIS.lInProfileMode AND NOT EMPTY(&cTarget..Profiled)
  6720.       lReturn = .T.
  6721.    CASE (NOT THIS.lInProfileMode) AND (NOT EMPTY(&cTarget..Marked))
  6722.       lReturn = .T.
  6723.    OTHERWISE
  6724.       THIS.LockScreens(.T.)   
  6725.       cObject = ALLTR(&cTarget..ObjClass)
  6726.       cObject = SUBSTR(cObject,AT("!",cObject)+1)      
  6727.       THIS.ShowStatus(COV_MARKING_SOURCE_FOR_LOC+" "+ ;
  6728.            ALLTR(&cTarget..Hostfile)+"."+ ;
  6729.            ALLTR(cObject)+"...")      
  6730.       lReturn = THIS.MarkTargetCoverage(tcSource,cTarget)
  6731.       IF NOT lReturn
  6732.          DELETE IN (cTarget)
  6733.          IF NOT tlFillingAll
  6734.             GO Top IN (cTarget)
  6735.             THIS.DoMessage(COV_NO_COVERABLE_CODE_LOC+C_DOUBLE_CR,;
  6736.                COV_STOP_MESSAGEBOX)
  6737.          ENDIF
  6738.       ENDIF
  6739.       THIS.ClearStatus()
  6740.       THIS.LockScreens(.F.)
  6741.    ENDCASE
  6742.    RETURN lReturn AND (NOT THIS.lError)
  6743. ENDPROC
  6744. PROCEDURE addregisteredaddin
  6745.    LPARAMETER tcFileToAdd
  6746.    ASSERT TYPE("tcFileToAdd") = "C"
  6747.    ASSERT NOT EMPTY(SYS(2000,tcFileToAdd))
  6748.    LOCAL iAddInCount, cFileToAdd, lFound
  6749.    cFileToAdd = LOWER(tcFileToAdd)
  6750.    SET EXACT ON
  6751.    IF ASCAN(THIS.aAddIns,cFileToAdd) = 0
  6752.       * look for a previously-emptied one to fill:
  6753.       iAddInCount = 1
  6754.       FOR iAddInCount = 1 TO ALEN(THIS.aAddIns)
  6755.          lFound =  EMPTY(THIS.aAddIns[iAddInCount]) OR ;
  6756.                    (TYPE(THIS.aAddIns[iAddInCount]) = "C" AND ;
  6757.                     EMPTY(EVAL(THIS.aAddIns[iAddInCount])))
  6758.          IF lFound
  6759.             EXIT
  6760.          ENDIF
  6761.       ENDFOR
  6762.       
  6763.       IF NOT lFound
  6764.          iAddInCount = iAddInCount + 1
  6765.          DIME THIS.aAddIns[iAddInCount]
  6766.       ENDIF
  6767.       THIS.aAddIns[iAddInCount] = cFileToAdd
  6768.    ENDIF
  6769.    SET EXACT OFF
  6770.    RETURN NOT THIS.lError
  6771. ENDPROC
  6772. PROCEDURE saveoptionstoregistry
  6773.    IF THIS.lUsingRegistry
  6774.       * allow writes, since we only go against
  6775.       * current user's Coverage keys
  6776.       * save work options
  6777.       THIS.SetRegistryKeyValue("ProfileMode", THIS.lStartInProfileMode)
  6778.       THIS.SetRegistryKeyValue("SmartPath", THIS.lSmartPath)
  6779.       THIS.SetRegistryKeyValue("MarkAll", THIS.lMarkAllOnLoad)
  6780.       THIS.SetRegistryKeyValue("MarkExecuted", THIS.cMarkExecuted)
  6781.       THIS.SetRegistryKeyValue("MarkNotExecuted", THIS.cMarkNotExecuted)
  6782.       THIS.SetRegistryKeyValue("RegisterAddIn",THIS.lRegisterAddIn)
  6783.       * save font options
  6784.       THIS.SetRegistryKeyValue("BaseFontName", THIS.cBaseFontName)
  6785.       THIS.SetRegistryKeyValue("BaseFontSize", THIS.nBaseFontSize)
  6786.       THIS.SetRegistryKeyValue("BaseFontBold", THIS.lBaseFontBold)
  6787.       THIS.SetRegistryKeyValue("BaseFontItalic", THIS.lBaseFontItalic)
  6788.       THIS.SetRegistryKeyValue("BaseMonoFontName",THIS.cBaseMonoFontName)
  6789.       THIS.SetRegistryKeyValue("BaseMonoFontSize", THIS.nBaseMonoFontSize)
  6790.       THIS.SetRegistryKeyValue("BaseMonoFontBold", THIS.lBaseMonoFontBold )
  6791.       THIS.SetRegistryKeyValue("BaseMonoFontItalic", THIS.lBaseMonoFontItalic)
  6792.       * other options not saved here:
  6793.       
  6794.       * save addins to registry is done on close, not after options dialog,
  6795.       * since we're reading from and manipulating
  6796.       * the member array for the life of the engine
  6797.       * save frame/environment has to be done directly from the options
  6798.       * dialog, since this can't be changed during the life of the engine
  6799.       * (we're just saving for the next engine instance)
  6800.    ENDIF
  6801. ENDPROC
  6802. PROCEDURE setregisteredaddins
  6803.    LOCAL iAddInNumber, liEmpty, liKeyToSet
  6804.    STORE 0 TO liEmpty, liKeysSet
  6805.    IF THIS.lUsingRegistry
  6806.       FOR iAddInNumber = 1 TO ALEN(THIS.aAddIns)
  6807.          IF NOT EMPTY(THIS.aAddIns[iAddInNumber])
  6808.             IF liEmpty # 0
  6809.                THIS.SetRegistrykeyValue("AddIn"+ALLTR(STR(liEmpty)), ;
  6810.                   THIS.aAddIns[iAddInNumber])
  6811.                liEmpty = 0
  6812.             ELSE
  6813.                liKeysSet = liKeysSet + 1
  6814.                THIS.SetRegistrykeyValue("AddIn"+ALLTR(STR(liKeysSet)), ;
  6815.                   THIS.aAddIns[iAddInNumber])
  6816.             ENDIF
  6817.          ELSE
  6818.             * put in a nullstring, since if something was
  6819.             * deleted from the array it is no longer a valid entry
  6820.             THIS.SetRegistrykeyvalue("AddIn"+ALLTR(STR(iAddInNumber)), [""])
  6821.             liEmpty = iAddInNumber
  6822.          ENDIF
  6823.       ENDFOR
  6824.    ENDIF
  6825.    RETURN NOT THIS.lError
  6826. ENDPROC
  6827. PROCEDURE deleteregisteredaddin
  6828.    LPARAMETER tcFileToDelete
  6829.    LOCAL iAddInNumber
  6830.    SET EXACT ON
  6831.    iAddInNumber = ASCAN(THIS.aAddIns,LOWER(tcFileToDelete))
  6832.    IF iAddInNumber # 0
  6833.       ADEL(THIS.aAddIns, iAddInNumber)
  6834.    ENDIF
  6835.    SET EXACT OFF
  6836.    RETURN NOT THIS.lError
  6837. ENDPROC
  6838. PROCEDURE createforms
  6839.    IF THIS.lInCoverageFrame
  6840.      
  6841.       #IF COV_COMPILED_IN_VFP5 
  6842.          LOCAL cLibs, cAlias
  6843.          cLibs = SET("CLASSLIB")
  6844.          cAlias = THIS.SetClassLibToAlias(COV_BASE_CLASSLIB,THIS.cAppName)
  6845.          THIS.oFrame = CREATEOBJECT("cov_frame",THIS)  
  6846.          IF NOT EMPTY(cAlias)       
  6847.             IF NOT EMPTY(cLibs)
  6848.                SET CLASSLIB TO &cLibs
  6849.             ELSE
  6850.                SET CLASSLIB TO
  6851.             ENDIF
  6852.          ENDIF
  6853.       #ELSE
  6854.          THIS.oFrame = NEWOBJECT("cov_frame",COV_BASE_CLASSLIB,THIS.cAppName,THIS)      
  6855.       #ENDIF
  6856.    ENDIF      
  6857.    RETURN NOT THIS.lError
  6858. ENDPROC
  6859. PROCEDURE gettablename
  6860. LPARAMETERS tcWhichSuffix
  6861. LOCAL iPos, cSuffix, cDBFStem, cTableName
  6862. IF TYPE("tcWhichSuffix") = "C"
  6863.    cSuffix = tcWhichSuffix
  6864.    cSuffix = ""
  6865. ENDIF   
  6866. iPos = AT(".",THIS.cSourceFile)
  6867. IF iPos = 0
  6868.    cDBFStem = THIS.cSourceFile + cSuffix
  6869.    cDBFStem = LEFT(THIS.cSourceFile, iPos-1) + cSuffix
  6870. ENDIF
  6871. iPos = 1
  6872. cTableName = cDBFStem+"1.DBF"
  6873. IF NOT EMPTY(SYS(2000,cTableName))
  6874.    DO WHILE NOT EMPTY(SYS(2000,cTableName))
  6875.       iPos = iPos+1
  6876.       cTableName = cDBFStem+ALLTR(STR(iPos))+".DBF"
  6877.    ENDDO
  6878. ENDIF      
  6879. RETURN LOWER(cTableName)
  6880. ENDPROC
  6881. PROCEDURE setapphome
  6882. LOCAL cSys16, iLevel
  6883. STORE "" TO THIS.cAppName, THIS.cAppHome
  6884. IF LEFT(UPPER(SYS(16,0)),2) # "ON"
  6885.    THIS.cAppHome = SUBSTR(SYS(16,0),1,RAT("\",SYS(16,0)))
  6886.    THIS.cAppHome = SUBSTR(SYS(16,2),1,RAT("\",SYS(16,2)))
  6887. ENDIF
  6888. IF "PROCEDURE" $ THIS.cAppHome
  6889.    THIS.cAppHome = SUBSTR(THIS.cAppHome,11)
  6890.    THIS.cAppHome = SUBSTR(THIS.cAppHome,AT(" ",THIS.cAppHome)+1)
  6891. ENDIF
  6892. * because this engine is able to take part in a
  6893. * modeless app, we have to be careful to 
  6894. * SET CLASSLIB ... TO... IN the appropriate APP
  6895. * or EXE, but we may not know what that container
  6896. * file is named.
  6897. FOR iLevel = 256 TO 1 STEP -1 && 256 = twice the nested programs currently allowed!
  6898.     * note: VFP6-specific code would be different
  6899.     cSys16 = UPPER(SYS(16,iLevel))
  6900.     IF INLIST(RIGHT(cSys16,3),"APP","EXE","DLL")
  6901.        THIS.cAppName = cSys16
  6902.        EXIT
  6903.     ENDIF
  6904. ENDFOR
  6905. IF "PROCEDURE" $ THIS.cAppName
  6906.    THIS.cAppName = SUBSTR(THIS.cAppName,11)
  6907.    THIS.cAppName = SUBSTR(THIS.cAppName,AT(" ",THIS.cAppName)+1)
  6908. ENDIF
  6909. RETURN .T.
  6910. ENDPROC
  6911. PROCEDURE Destroy
  6912.    THIS.oFrame = .NULL.
  6913.    THIS.SetRegisteredAddins()
  6914.    RETURN DODEFAULT()
  6915. ENDPROC
  6916. PROCEDURE Error
  6917.    LPARAMETERS nError, cMethod, nLine
  6918.    DODEFAULT(nError, cMethod, nLine)
  6919.    IF (NOT INLIST(nError,1420,1421,1422,1423,1424,1426,1427,1428,1429,1431,1434,1436,1508))
  6920.       COV_ENGINE_ERROR_DEFAULT
  6921.    ENDIF
  6922. ENDPROC
  6923. PROCEDURE Load
  6924.    * make sure any apps that contain this
  6925.    * object look for access to the appropriate
  6926.    * header files:
  6927.    EXTERNAL PROCEDURE COVERAGE.H
  6928.    EXTERNAL PROCEDURE COV_CHAR.H
  6929.    EXTERNAL PROCEDURE COV_LOCS.H
  6930.    EXTERNAL PROCEDURE COV_DLGS.H
  6931.    EXTERNAL PROCEDURE COV_SPEC.H
  6932.    EXTERNAL PROCEDURE COV_REGS.H
  6933.    EXTERNAL PROCEDURE COV_TUNE.H
  6934.    * datasession-specific settings required
  6935.    * by the engine
  6936.    SET POINT TO COV_POINT_SETTING
  6937.    SET TALK OFF
  6938.    SET MEMOWIDTH TO COV_MEMOWIDTH
  6939.    SET DELETED ON
  6940.    SET EXACT OFF
  6941.    SET SAFETY OFF
  6942.    SET EXCLU OFF
  6943.    SET BLOCKSIZE TO 0
  6944.    IF SET("TRBETWEEN") = "ON" 
  6945.       SET TRBETWEEN OFF
  6946.       THIS.lTurnedOffTrace = .T.
  6947.    ENDIF
  6948.    * make the app a Singleton:
  6949.    LOCAL ARRAY aTemp[1]
  6950.    LOCAL oForm, lFoundWindow
  6951.    IF AINSTANCE(aTemp, THIS.CLASS) > 0
  6952.       * first look for any modal dialog:
  6953.       FOR EACH oForm IN _SCREEN.Forms
  6954.          IF UPPER(oForm.BaseClass) # "TOOLBAR" 
  6955.             IF oForm.WindowType = 1
  6956.                lFoundWindow = .T.
  6957.                EXIT               
  6958.             ENDIF
  6959.          ENDIF
  6960.       ENDFOR
  6961.       IF NOT lFoundWindow
  6962.          * what was previously active in the coverage formset?
  6963.          FOR EACH oForm IN (aTemp[1]+".Forms")
  6964.             IF UPPER(oForm.BaseClass) # "TOOLBAR" AND ;
  6965.                oForm.Visible
  6966.                lFoundWindow = .T.
  6967.                EXIT
  6968.             ENDIF
  6969.          ENDFOR
  6970.       ENDIF
  6971.       IF lFoundWindow
  6972.          ACTIVATE WINDOW (oForm.Name) TOP
  6973.       ENDIF
  6974.       WAIT WINDOW LEFT(COV_ALREADY_ACTIVE_LOC,COV_MESSAGE_LIMIT) NOWAIT      
  6975.       RETURN .F.
  6976.    ENDIF
  6977.    IF NOT (THIS.SuspendCoverage() AND ;
  6978.          THIS.FillFileTypeArray())
  6979.       RETURN .F.
  6980.    ENDIF
  6981.    RETURN NOT THIS.lError
  6982. ENDPROC
  6983. PROCEDURE Init
  6984.    LPARAMETERS tcFile, tlUnattended, tcAddIn
  6985.    LOCAL lReturn, lcFile
  6986.    lReturn = DODEFAULT()
  6987.    IF lReturn AND THIS.PassedProperParams(tcFile,tlUnattended,tcAddIn)
  6988.       THIS.lUnattended = tlUnattended
  6989.       THIS.lIgnoreCoverageFilenames = COV_IGNORE_COVERAGE_FILES
  6990.       THIS.SetAppHome()
  6991.       IF EMPTY(tcFile)
  6992.          lcFile = LOWER(THIS.cSuspendedLog)
  6993.       ELSE
  6994.          lcFile = LOWER(tcFile)
  6995.       ENDIF
  6996.    ELSE
  6997.       lReturn = .F.
  6998.    ENDIF
  6999.    * options required for proper file processing
  7000.    * according to user preferences:
  7001.    THIS.lUsingOCXs = COV_USE_OCXS
  7002.    IF lReturn AND NOT THIS.SetWorkOptions()
  7003.       lReturn = .F.
  7004.    ENDIF
  7005.    IF lReturn 
  7006.       IF NOT THIS.lUnattended
  7007.          lReturn = THIS.CreateForms()
  7008.       ELSE
  7009.          THIS.lInCoverageFrame = .F.
  7010.          * override this preference setting for unattended mode
  7011.       ENDIF
  7012.    ENDIF
  7013.    * the real guts of the work:
  7014.    IF lReturn AND NOT THIS.SetUpWorkFiles(lcFile)
  7015.       lReturn = .F.
  7016.    ENDIF
  7017.    * anything else we want to do now,
  7018.    * such as adding buttons,
  7019.    * running some queries?
  7020.    IF lReturn
  7021.       IF EMPTY(tcAddIn)
  7022.          THIS.cAddIn = ""
  7023.       ELSE
  7024.          THIS.cAddIn = tcAddIn
  7025.          IF NOT THIS.RunAddIn()
  7026.             lReturn = .F.
  7027.          ENDIF
  7028.       ENDIF
  7029.    ENDIF
  7030.    IF lReturn
  7031.       * either save results to disk
  7032.       * immediately, if we're in unattended mode,
  7033.       * or set up the interface for the user
  7034.       * to explore the results:
  7035.       IF THIS.lUnattended
  7036.          IF lReturn AND NOT THIS.SaveTargetToDisk()
  7037.             lReturn = .F.
  7038.          ENDIF
  7039.          IF lReturn AND NOT THIS.CreateSkippedCursor()
  7040.             lReturn = .F.
  7041.          ENDIF
  7042.          IF lReturn AND NOT THIS.SaveSkippedCursor()
  7043.             lReturn = .F.
  7044.          ENDIF
  7045.       ELSE
  7046.          IF lReturn AND NOT THIS.SetUIOptions()
  7047.             lReturn = .F.
  7048.          ENDIF
  7049.       ENDIF
  7050.    ENDIF
  7051.    IF lReturn
  7052.       * Note: we could go to the registry
  7053.       * to set this varname if desired...
  7054.       PUBLIC COV_PUBLIC_VARIABLE
  7055.       STORE THIS TO ([COV_PUBLIC_VARIABLE])
  7056.    ELSE
  7057.       THIS.ResumeCoverage()
  7058.    ENDIF
  7059.    RETURN lReturn AND NOT THIS.lError
  7060. ENDPROC
  7061. PROCEDURE Unload
  7062.    CLOSE DATA
  7063.    * close data in the session explicitly to avoid any unknown data
  7064.    * sessions left over from BROWSEs NOWAITs opened in this session
  7065.    * or other use of these tables done by subclasses, addins, etc.
  7066.    THIS.ResumeCoverage()
  7067.    IF THIS.lTurnedOffTrace
  7068.       SET TRBETWEEN ON
  7069.       THIS.lTurnedOffTrace = .F.
  7070.    ENDIF   
  7071.    RELEASE COV_PUBLIC_VARIABLE   
  7072. ENDPROC
  7073. PROCEDURE Activate
  7074.    IF SET("TRBETWEEN") = "ON"
  7075.       SET TRBETWEEN OFF
  7076.       THIS.lTurnedOffTrace = .T.
  7077.    ENDIF
  7078.    * note: we could go to the registry
  7079.    * to get this variable name,
  7080.    * rather than using a #DEFINE, if desired.
  7081.    PUBLIC COV_PUBLIC_VARIABLE
  7082.    STORE THIS TO ([COV_PUBLIC_VARIABLE])
  7083.    THIS.SuspendCoverage()
  7084.    RETURN NOT THIS.lError
  7085. ENDPROC
  7086. PROCEDURE Deactivate
  7087.    IF THIS.lTurnedOffTrace
  7088.       SET TRBETWEEN ON
  7089.       THIS.lTurnedOffTrace = .F.
  7090.    ENDIF
  7091.    ACTIVATE SCREEN
  7092.    RETURN NOT THIS.lError
  7093. ENDPROC
  7094. PROCEDURE COV_TOOLBAR.Show
  7095.    LPARAMETERS nStyle
  7096.    NODEFAULT
  7097.    RETURN NOT THIS.lError
  7098. ENDPROC
  7099. PROCEDURE COV_TOOLBAR.Activate
  7100.    NODEFAULT
  7101.    RETURN NOT THIS.lError
  7102. ENDPROC
  7103. PROCEDURE COV_TOOLBAR.DragDrop
  7104. LPARAMETERS oSource, nXCoord, nYCoord
  7105. NODEFAULT
  7106. ENDPROC
  7107. PROCEDURE COV_TOOLBAR.DblClick
  7108. NODEFAULT
  7109. ENDPROC
  7110. PROCEDURE COV_TOOLBAR.Dock
  7111. LPARAMETERS nLocation
  7112. NODEFAULT
  7113. ENDPROC
  7114. lignorecoveragefilenames Indicates whether files in the cCovFilesAlias table should be eliminated from processing.
  7115. linprofilemode Toggles Profiling (versus Coverage) parsing mode.
  7116. lusingocxs Specifies whether common dialog OCX subclasses should be used.  Turned off automatically if any OCX errors occur.
  7117. lvfp5 Indicates running in VFP5 rather than later versions.
  7118. csourcefile Specifies the name of the file to be analyzed. 
  7119. cdefaultwritepath Set to the path of cSourceFile by default, supplies a default path for any file output of the Coverage Profiler.
  7120. csuspendedlog Specifies the name of the current coverage log (SET("COVERAGE")) if the Coverage Profiler suspended VFP's writing the coverage log during its operation. 
  7121. csavedtargetdbf Holds the name of the saved Coverage results DBF (Target) after this table has been saved to disk.
  7122. csourcealias Specifies the Source cursor which holds the appended and processed records stored by the coverage text log.
  7123. ctargetalias Specifies the target cursor which holds the names of classes, source filenames, Coverage-marked procedure source code, and Coverage statistics. 
  7124. cskippedalias Specifies the cursor which holds names of source files the Coverage Profiler could not locate and did not analyze. 
  7125. ccovfilesalias Specifies the cursor which holds names of source files the Coverage Profiler should not try to locate and analyze.  
  7126. cmarknotexecuted Specifies the character(s) that mark executable lines of code that did not execute according to the current coverage log. 
  7127. cmarkexecuted Specifies the character(s) that mark executable lines of code that executed according to the current coverage log. 
  7128. lsmartpath Switch to toggle Smart Pathing, in which the engine "remembers" directories, when the Coverage Profiler attempts to locate source files.
  7129. nbasefontsize Stores a base font size for any UI elements. 
  7130. cbasefontname Stores a base font name for any UI elements. 
  7131. cbasemonofontname Stores a base font name for any UI elements requiring monospace font. 
  7132. nbasemonofontsize Stores a base font size for any UI elements requiring monospace font. 
  7133. lusingregistry Switch to toggle use of Windows registry to hold Coverage preferences.
  7134. lbasefontbold Stores a base font "bold" attribute for any UI elements. 
  7135. lbasefontitalic Stores a base font "italic" attribute for any UI elements. 
  7136. lbasemonofontbold Stores a base font "bold" attribute for any UI elements requiring monospace font. 
  7137. lbasemonofontitalic Stores a base font "italic" attribute for any UI elements requiring monospace font. 
  7138. lunattended Switch to signal automated run of Coverage engine.
  7139. capphome Holds directory from which the app was started.
  7140. cprojectalias Holds the default alias of the cursor holding project analysis results.
  7141. caddin Specifies the addin last run successfully.  At startup, this property may be set by an addIn passed to the Coverage application as a parameter and run in the Init or by the first addin in the aAddins array.
  7142. lregisteraddin Indicates whether an addin should be registered when it is run successfully.
  7143. lmarkallonload Specifies that all source code will be marked when a target file is loaded, rather than that the individual source code records will be marked one at a time as required by the user.
  7144. lusingstatusbar Indicates whether feedback messages during processing are displayed in the status bar or as a WAIT WINDOW NOWAIT message.  The status bar is used when the engine runs in main VFP application window or in "unattended"  mode.
  7145. lturnedofftrace Indicates whether the Coverage Profiler turned off TRBETWEEN during its processing.
  7146. lstartinprofilemode Specifies how the lInProfileMode should be set when each coverage log loads. Significant when the property lMarkAllOnLoad is set to .T.
  7147. lincoverageframe Specifies whether any visual elements of the Coverage Profiler should appear in the main VFP application window or in a separate Coverage frame window.
  7148. oframe Holds a reference to the Coverage Frame window, when the Coverage Profiler interface exists in a separate from from the main VFP application window. 
  7149. csavedskipfiles Holds the name of the DBF containing a list of source files skipped during coverage analysis, after this table has been saved to disk. 
  7150. itargetreccount Holds number of viable records in target file for dynamic use by interface elements.
  7151. ilenhostfile Length of character-type field in both source and target cursors.  See COV_TUNE.H.
  7152. ilenobjclass Length of character-type field in both source and target cursors.  See COV_TUNE.H.
  7153. ilenexecuting Length of character-type field in both source and target cursors.  See COV_TUNE.H.
  7154. cappname Holds the name of the APP or EXE hosting the Coverage class library or libraries.
  7155. *domessage Displays a message. If the Coverage Profiler is running in Unattended mode, the message is displayed in a WAIT WINDOW TIMEOUT window so it doesn't prevent further processing.  Specify the timeout value using COV_TIMEOUT_SECS in COV_TUNE.H.
  7156. *setuitoshowfilestates Abstract in the engine, called at the end of SetupWorkFiles() to allow UI to indicate success or failure or current attempt to load a log.
  7157. *setmarks Synchronizes the lengths of cMarkExecuted and cMarkNotExecuted and returns the values of either or both properties to a default if they are not appropriate.
  7158. *setuitoshowcode Abstract in the engine, called at the end of SetupWorkFiles() to allow UI to show current Target record in the newly-loaded log.
  7159. *setuifonts Abstract in the engine, called by SetUiOptions, designed to allow the user font preferences saved in the various Base and BaseMont font properties to be applied to appropriate UI elements.
  7160. *setuioptions Sets up initial UI options according to user preferences or defaults after initial setup of workfiles.  Required for UI display with the workfiles, but  not applied to anything by the engine itself.
  7161. *passedproperparams Validates parameters passed to the engine.
  7162. *setlogfile Attempts to set up a file for analysis, using supplied value, SET("COVERAGE"), or prompt to user.
  7163. *suspendcoverage Turns off coverage for the duration of an analysis run.
  7164. *resumecoverage Turns coverage on if it was turned off for analysis earlier.
  7165. *sourcefileislog Validates a text file as being of proper log format.
  7166. *fillfiletypearray Fills aFileTypes array with file extensions of file types known to the engine.
  7167. *createcoveragefilenamecursor Creates cursor holding names of files that should be ignored.
  7168. *setupworkfiles Sets and validates a coverage log, and then creates and fills the source and target work files for this text log. 
  7169. *createskippedcursor Creates a cursor of deleted records in the Source table, indicating filenames that either cannot be Located or that are in the "Ignored files" coverage file list.
  7170. *saveskippedcursor Saves skipped files cursor to disk.
  7171. *createsourcecursor Creates cursor representing individual entries from Coverage log.
  7172. *adjustsourcecursor Abstract method called by CreateSourceCursor, allowing you to subtract records, or add index tags and custom fields to the source cursor after the cursor is created.
  7173. *createtargetcursor Creates cursor representing unique file and objects represented in the Coverage log.
  7174. *adjusttargetcursor Abstract method called by CreateTargetCursor, allowing you to subtract records, or add index tags and custom fields to the target cursor after the cursor is created.
  7175. *adjustcoveragefilenamecursor Abstract method called by CreateCoverageFilenameCursor, allowing you to add files you don't want analysed to the cursor's filelist.
  7176. *savetargettodisk Saves target file to disk.
  7177. *fillonetargetrecord Gets source code for a given object/class or source code file.
  7178. *fillsourcecursor Fills source cursor with records representing lines from the Coverage log, deleting records whose source files cannot be found.
  7179. *addpath Adds path of a source file to the current search path for additional source files, when Smart Pathing is on.
  7180. *sourceavailable Locates source files for individual lines in the Coverage log.
  7181. *marktargetcoverage Parses the source code for an object or source file record in the target file.
  7182. *markcodeline Applies information gathered by MarkTargetCoverage to a source code line, to provide the Profiled or Covered version of that source code line.
  7183. *getalias Returns either a currently-used alias or the default alias of one of the Coverage Profiler's workfile types.  Allows the engine to work with many sets of workfiles at once.
  7184. *runaddin Runs a file (SCX, FXP, APP, PRG, QPX, QPR, MPX, or MPR) that adds functionality to the Coverage object. 
  7185. *filterlistbylocation Abstract, placeholder for enhancements.
  7186. *orderlistbytime Abstract, placeholder for enhancements.
  7187. *setclasslibtoalias Sets classlib using unique alias, returning alias, if library is not already loaded.  Handles libraries IN apps and exes as required.
  7188. *setworkoptions Sets up initial options according to user preferences or defaults before initial setup of workfiles.  
  7189. *getfontsfromuser Gets font values from user, with either OCX or GetFont() as appropriate.
  7190. *setregistrykeyvalue Uses the registry-handling member of the toolbar in the engine formset to set a registry key value from a user option. Converts all values to string type before applying them to the registry.
  7191. *getregistrykeyvalue Uses the registry-handling member of the toolbar in the engine formset to get a registry key value for a user option. Converts and validates types as necessary.
  7192. *getresourcelocation Gets a filename using common file dialog subclass or GETFILE/PUTFILE() as directed.
  7193. *fillcoveragefilenamecursor Fills appropriate cursor with filenames to be ignored during processing.
  7194. ^afiletypes[1,2] Holds a list of the file types (extensions) the Coverage Profiler handles.  Column 1 is compiled extension and column 2 is matching source code extension. Filled in FillFileTypeArray() method.
  7195. *togglecoverageprofilemode If lMarkAllOnLoad is .T., marks all target records in the new mode. Otherwise, designed to be augmented in subclasses to reflect this switch in the UI.
  7196. *showstatistics Abstract, placeholder for enhancements.
  7197. *showprojectstatistics Calls GetProjectStatistics() and DisplayProjectStatistics() to run coverage analysis figures against a specific VFP project set of files.
  7198. *getprojectstatistics Develops project statistics from a project name and current coverage log.  If necessary, pre-marks all source code from target objects referenced in this project.
  7199. *displayprojectstatistics Abstract in the engine, designed to display statistics after GetProjectStatistics has gathered them.
  7200. *setfontvalues Sets up initial font attribute values using registry key values and other defaults.  
  7201. *lockscreens "Freezes" or "Unfreezes" LockScreen properties and MousePointer properties for all members of _Screen during various long procedures.
  7202. *getregisteredaddins Fills aAddIns array and cAddIn property at startup (cAddIn property may be filled by passing a param instead)
  7203. ^aaddins[1,0] Holds filenames of Coverage add-ins
  7204. *showstatus Puts message in status bar or WAIT WINDOW NOWAIT/TIMEOUT, depending on setting of lUsingStatusBar.
  7205. *clearstatus Removes message from the status bar or CLEARs WAIT WINDOW, depending on setting of lUsingStatusBar.
  7206. *markalltargetrecords Calls MarkOneTargetRecord() for all target records in a loop. Can be called because lMarkAllOnLoad is .T. or because the coverage engine is in Unattended mode.
  7207. *filltargetcursor Calls FillOneTargetRecord() for all target records in a loop. Replicates the ObjHits statistics for additional target records referring to the same source files.
  7208. *markonetargetrecord Evaluates whether the current target record is already marked in the current coverage mode and, if not, passes the relevant information to MarkTargetCoverage() for processing.  
  7209. *addregisteredaddin Adds a filename to the aAddIns array. Called by the RunAddIn method after an AddIn runs successfully.
  7210. *saveoptionstoregistry Saves most user options to the registry on demand.  A few options are not set at this time (frame and addins) since these must be set at specific moments during the life of the engine to be useful.
  7211. *setregisteredaddins Saves the filenames currently in the aAddIns array to registry values.
  7212. *deleteregisteredaddin Removes a registered addin from aAddIns array when an addin fails to run successfully.
  7213. *createforms Called during startup to begin display of UI after workfiles have been set up, if the coverage engine is not in Unattended mode.  In engine, responsible only for coverage frame window.
  7214. *gettablename Allows the coverage engine to generate filenames with which to save its work to disk without overwriting existing files. Uses default suffixes for each saved workfiletype added to the current log name, plus tiebreaker digits.
  7215. *setapphome Sets the cAppHome and cAppName properties at startup.
  7216. *standardrightclick Abstract at engine level, allows your subclasses to share rightclick behavior among all forms & objects within the formset
  7217. tcMessageb
  7218. tnMessageBoxOptionsb
  7219. tcMessageBoxTitleb
  7220. Coverage Profiler
  7221. TCMESSAGE
  7222. TNMESSAGEBOXOPTIONS
  7223. TCMESSAGEBOXTITLE
  7224. LIRETURN
  7225. LUNATTENDED
  7226. TCSOURCE
  7227. TCTARGET
  7228. LERROR&
  7229. THIS.cMarkExecutedb
  7230. THIS.cMarkNotExecutedb
  7231. MarkExecuted
  7232. MarkNotExecuted
  7233. IMARKLENGTH
  7234. CMARKEXECUTED
  7235. CMARKNOTEXECUTED
  7236. GETREGISTRYKEYVALUE
  7237. LERROR
  7238. TCSOURCE
  7239. TCTARGET
  7240. LERROR
  7241. LERROR
  7242. THIS.aAddIns[1]b
  7243. LRETURN
  7244. SETFONTVALUES
  7245. SETUIFONTS
  7246. GETREGISTEREDADDINS
  7247. CADDIN
  7248. AADDINS
  7249. LERROR3
  7250. tcFileb
  7251. tcAddInb
  7252. tlUnattendedb
  7253. You have passed one or more parameters incorrectly.C
  7254. This application takes the following 
  7255. parameters, all optional:
  7256. (1), type 'C'     the name of a coverage log to mark;
  7257. (2), type 'L'     a switch to process the log unattended;
  7258. (3), type 'C'     the name of an Add-In program to run.
  7259. Coverage Profiler
  7260. Problem
  7261. TCFILE
  7262. TLUNATTENDED
  7263. TCADDIN
  7264. LRETURN
  7265. THIS    
  7266. DOMESSAGE
  7267. tcFileb
  7268. COVERAGEv
  7269. Please specify coverage log file
  7270. Coverage Logs
  7271.  (*.log;*.txt)|*.log;*.txt|
  7272. All Files
  7273.  (*.*)|*.*
  7274. getfile
  7275. No log file specified.
  7276. Coverage Profiler
  7277. Problem
  7278. The log file you chose does not exist yet.C
  7279. Test your application with COVERAGE SET TO 
  7280. <your chosen filename>, then run 
  7281. Coverage Profiler
  7282. against that log.
  7283. Coverage Profiler
  7284.  can SET COVERAGE TO your filename 
  7285. now and you can test your application.  When you re-run 
  7286. Coverage Profiler
  7287. , it will analyze the current 
  7288. contents of SET('COVERAGE') by default.
  7289. Would you like to: 
  7290. SET COVERAGE TO your log file now? (yes)
  7291. Pick a filename from existing coverage logs? (no)
  7292. Come back later? (cancel)
  7293. Coverage Profiler
  7294. TCFILE
  7295. LRETURN
  7296. LCFILE
  7297. LIANSWER
  7298. LOHOST
  7299. LVFP5
  7300. GETRESOURCELOCATION
  7301. CSOURCEFILE    
  7302. DOMESSAGE
  7303. RELEASE
  7304. SETLOGFILEP
  7305. COVERAGEvf
  7306. CSUSPENDEDLOG
  7307. LERRORe
  7308. Running Coverage Profiler temporarily suspendedC
  7309. coverage logging to 
  7310. How would you like to resume coverage logging to this file?
  7311. Click:
  7312. To have this effect:
  7313. -- Append records to the log file
  7314. -- Overwrite the log file
  7315. Cancel
  7316. -- Leave coverage set off
  7317. Coverage Profiler
  7318. Former coverage file is unavailable;C
  7319. COVERAGE will be off.
  7320. Coverage Profiler
  7321. Problem
  7322. LRETURN
  7323. CSUSPENDEDLOG    
  7324. IRESPONSE
  7325. LUNATTENDED
  7326. LERROR
  7327. Validating source file...
  7328. File specified is not correct Coverage Log format for this version of VFP.
  7329. Coverage Profiler
  7330. Problem
  7331. CSOURCEFILE
  7332. SHOWSTATUS
  7333. LRETURN
  7334. ISELECT
  7335. LIFIELDCOUNT
  7336. IHANDLE
  7337. ILINECOUNT
  7338. CLINE
  7339. LVFP5
  7340. ONEFIELD
  7341. LERROR    
  7342. DOMESSAGE
  7343. CLEARSTATUSz
  7344. AFILETYPES
  7345. LERROR
  7346. LRETURN
  7347. CCOVFILESALIAS
  7348. FNAME
  7349. THISFORMSET
  7350. ILENHOSTFILE
  7351. FILLCOVERAGEFILENAMECURSOR
  7352. LERROR
  7353. You haven't changed the specified Coverage filename.C
  7354. Do you want to re-examine this Coverage file?
  7355. Coverage Profiler
  7356. PATHv
  7357. Creating work files from
  7358. TCLOGFILE
  7359. TCSOURCE
  7360. TCTARGET
  7361. LRETURN
  7362. CCURRENTSOURCEFILE
  7363. COLDPATH
  7364. CSOURCEFILE
  7365. CREATECOVERAGEFILENAMECURSOR
  7366. SETLOGFILE
  7367. LUNATTENDED
  7368. LOCKSCREENS
  7369. SOURCEFILEISLOG
  7370. SHOWSTATUS
  7371. CREATESOURCECURSOR
  7372. CREATETARGETCURSOR
  7373. CSAVEDTARGETDBF
  7374. LINPROFILEMODE
  7375. LSTARTINPROFILEMODE
  7376. LMARKALLONLOAD
  7377. MARKALLTARGETRECORDS
  7378. LERROR
  7379. CDEFAULTWRITEPATH
  7380. SETUITOSHOWCODE
  7381. SETUITOSHOWFILESTATES
  7382. CLEARSTATUS
  7383. Source
  7384. Skipped
  7385. TCSOURCE    
  7386. TCSKIPPED
  7387. CSKIPPED
  7388. CSOURCE
  7389. ISELECT
  7390. GETALIAS
  7391. HOSTFILE
  7392. SKIPPED
  7393. THISFORMSET
  7394. ILENHOSTFILE
  7395. LERROR
  7396. Skipped
  7397. _SKIP
  7398. TCSKIPPED
  7399. CSKIPPED
  7400. CDBFNAME
  7401. ISELECT
  7402. GETALIAS
  7403. GETTABLENAME
  7404. LERROR
  7405. CSAVEDSKIPFILES<
  7406. Source
  7407. Indexing source records...
  7408. TCSOURCE
  7409. LRETURN
  7410. CSOURCE
  7411. GETALIAS
  7412. LVFP5
  7413. DURATION
  7414. OBJCLASS
  7415. THISFORMSET
  7416. ILENOBJCLASS    
  7417. EXECUTING
  7418. ILENEXECUTING
  7419. PROCLINE
  7420. HOSTFILE
  7421. ILENHOSTFILE
  7422. FILETYPE
  7423. STACKLEVEL
  7424. ADJUSTSOURCECURSOR
  7425. FILLSOURCECURSOR
  7426. SHOWSTATUS
  7427. IFDEL
  7428. CLEARSTATUS
  7429. LERROR
  7430. TCSOURCE
  7431. LERROR'
  7432. Target
  7433. Source
  7434. Creating target items...
  7435. Temp&
  7436. TCSOURCE
  7437. TCTARGET
  7438. CSOURCE
  7439. CTARGET
  7440. LRETURN
  7441. GETALIAS
  7442. SHOWSTATUS
  7443. LVFP5
  7444. HOSTFILE
  7445. OBJCLASS    
  7446. EXECUTING
  7447. THISFORMSET
  7448. ILENOBJCLASS
  7449. FILETYPE
  7450. ILENHOSTFILE
  7451. MARKED
  7452. PROFILED
  7453. SOURCECODE    
  7454. COVERABLE
  7455. COVERED
  7456. OBJTOTAL
  7457. OBJHITS
  7458. ADJUSTTARGETCURSOR
  7459. STANDARD
  7460. IFDEL
  7461. CLEARSTATUS
  7462. FILLTARGETCURSOR
  7463. LERROR
  7464. TCTARGET
  7465. LERROR
  7466. LERROR
  7467. Target
  7468. Please specify location to save Coverage results for
  7469. Table/DBF
  7470.  (*.dbf)|*.dbf
  7471. PUTFILE
  7472. TCTARGET
  7473. CDBFDEFAULTNAME
  7474. LRETURN
  7475. ISELECT
  7476. CTARGET    
  7477. CDETRITUS
  7478. GETALIAS
  7479. GETTABLENAME
  7480. LUNATTENDED
  7481. CSAVEDTARGETDBF
  7482. GETRESOURCELOCATION
  7483. CSOURCEFILE
  7484. LERROR
  7485. SOURCECODE
  7486. FILETYPE
  7487. tcSourceb
  7488. tcTargetb
  7489. Source
  7490. Target
  7491. Getting source code from
  7492. Temp&@C
  7493. storedproceduressource
  7494. dataenvironment
  7495. relation
  7496. cursor
  7497. Standard
  7498. Standard
  7499. IF EMPTY(&cTarget..SourceCode)
  7500. name="C
  7501. Source file unavailable.C
  7502. Coverage Profiler
  7503. Problem
  7504. Hostfile
  7505. TCSOURCE
  7506. TCTARGET
  7507. TLFILLINGALL
  7508. CSOURCE
  7509. CTARGET
  7510. ISELECT
  7511. CFILE
  7512. COBJECT
  7513. CCLASS
  7514. CMEMO
  7515. LMEMOFIELD
  7516. LRETURN    
  7517. CFILETYPE    
  7518. IOBJTOTAL
  7519. IRECNO
  7520. CSOURCEORDER
  7521. LALREADYHADSOURCECODE
  7522. CCONTAINER
  7523. IDOTS
  7524. ATEMP
  7525. GETALIAS
  7526. OBJCLASS
  7527. HOSTFILE
  7528. FILETYPE
  7529. OBJTOTAL
  7530. SOURCECODE
  7531. LOCKSCREENS
  7532. SHOWSTATUS
  7533. LERROR
  7534. OBJECTNAME
  7535. PARENT
  7536. OBJNAME
  7537. METHODS    
  7538. BASECLASS
  7539. LVFP5
  7540. THISFORMSET
  7541. ILENHOSTFILE
  7542. ILENOBJCLASS
  7543. OBJTYPE
  7544. ONEFIELD    
  7545. DOMESSAGE
  7546. WHILE
  7547. CLEARSTATUS
  7548. Source
  7549. Checking for source code for
  7550. ODOMETERv
  7551. SET TALK &cTalkWindow
  7552. STATUS BARv
  7553. Log file has no usable records.
  7554. Coverage Profiler
  7555. Problem
  7556. TCSOURCE
  7557. CCOVERAGEFILENAME
  7558. LRETURN
  7559. CSOURCE
  7560. CORDER
  7561. ISELECT    
  7562. CTHISHOST
  7563. CNEWHOST    
  7564. CFILETYPE
  7565. IRECNO    
  7566. LRECORDOK    
  7567. IODOMETER
  7568. CTALKWINDOW
  7569. GETALIAS
  7570. SHOWSTATUS
  7571. CSOURCEFILE
  7572. LINCOVERAGEFRAME
  7573. OFRAME
  7574. PROCLINE
  7575. HOSTFILE
  7576. THISFORMSET
  7577. ILENHOSTFILE
  7578. ADJUSTSOURCECURSOR
  7579. FILETYPE
  7580. SOURCEAVAILABLE
  7581. REST    
  7582. DOMESSAGE
  7583. CLEARSTATUS
  7584. tcFileNameb
  7585. PATHv
  7586. PATHv
  7587. TCFILENAME
  7588. LSMARTPATH
  7589. CADDPATH
  7590. LERROR
  7591. Please confirm main program for
  7592. Programs Only
  7593.  (*.prg)|*.prg|
  7594. All Files
  7595.  (*.*)|*.*
  7596. GETFILE
  7597. Please locate
  7598. Source Files
  7599. All Files
  7600.  (*.*)|*.*
  7601. GETFILE
  7602. Please locate
  7603. Source Files
  7604. GETFILE
  7605. LRETURN    
  7606. CFILETYPE
  7607. CNEWHOST
  7608. COLDHOST
  7609. IELEMENT
  7610. CDEFAULTEXT
  7611. PROCLINE
  7612. HOSTFILE
  7613. AFILETYPES
  7614. LVFP5
  7615. LIGNORECOVERAGEFILENAMES
  7616. CCOVFILESALIAS
  7617. GETRESOURCELOCATION    
  7618. EXECUTING
  7619. FILETYPE
  7620. ADDPATH
  7621. Source
  7622. Target
  7623. define class
  7624. defin c
  7625. defi c
  7626. #enddefine#
  7627. #method#procedure#function#
  7628. #define#
  7629. #class#
  7630. #procedure#method#function#
  7631. #object#
  7632. #function#procedure#endprocedure#endtext#note#else
  7633. #parameters#lparameters#enddefine#endfunction#endmethod#
  7634. #endtext#
  7635. LOWER(Hostfile) = cHostfile AND 
  7636. Procline = 
  7637. LOWER(Hostfile) = cHostfile AND 
  7638. LOWER(Executing) = [
  7639. ] AND 
  7640. ProcLine = iProcLineNo
  7641. LOWER(Hostfile) = cHostfile AND 
  7642. LOWER(ObjClass) = [
  7643. ] AND 
  7644. ProcLine = iProcLineNo 
  7645.  AND 
  7646. [.]+RIGHT(ALLTR(Executing),
  7647. ) == [
  7648. LOWER(Hostfile) = cHostfile AND 
  7649. ProcLine = iProcLineNo AND 
  7650. LOWER(ObjClass) = [
  7651.  AND 
  7652. RIGHT(ALLTR(Executing),
  7653. ) == [
  7654.  AND 
  7655. LOWER(Executing) =  [
  7656.  AND 
  7657. LOWER(Executing) =  [
  7658.  AND 
  7659. LOWER(Executing) =  [
  7660. LOWER(Hostfile) = cHostfile AND 
  7661. LOWER(Executing) = [
  7662. ] AND 
  7663. ProcLine = iProcLineNo
  7664. LOCATE FOR &cFilter 
  7665. CALCULATE AVG(Duration) FOR &cFilter  TO nAverage
  7666. COUNT FOR &cFilter
  7667. TCSOURCE
  7668. TCTARGET
  7669. CSOURCE
  7670. CTARGET
  7671. ISELECT
  7672. CTEXT
  7673. CMEMO
  7674. NFIRST
  7675. NAVERAGE
  7676. CTEMP
  7677. IFILELINENO
  7678. IOFFSET
  7679. IPROCLINENO
  7680. ILINES
  7681. CLINE    
  7682. CREALLINE
  7683. IPOSCOMMENT
  7684. IPOSOPENPAREN    
  7685. CHOSTFILE
  7686. COBJECT
  7687. CCLASS    
  7688. CFILETYPE
  7689. LINITIALMEMBERASSIGNMENTS    
  7690. IEXECUTED
  7691. CEXECUTING
  7692. CFILTER
  7693. CFIRSTWORD
  7694. ICOVERABLELINES
  7695. ILINESCOVERED
  7696. LRELTOPROC
  7697. ISECONDWORD
  7698. CSECONDWORD
  7699. LINTEXT
  7700. GETALIAS
  7701. SOURCECODE
  7702. HOSTFILE
  7703. THISFORMSET
  7704. ILENHOSTFILE
  7705. OBJCLASS
  7706. ILENOBJCLASS
  7707. FILETYPE
  7708. CMARKEXECUTED
  7709. ILENEXECUTING
  7710. LVFP5
  7711. LINPROFILEMODE
  7712. DURATION
  7713. MARKCODELINE
  7714. LERROR
  7715. PROFILED
  7716. MARKED    
  7717. COVERABLE
  7718. COVERED]
  7719. tcLineb
  7720. tiExecutedb
  7721. tnFirstb
  7722. tnAverageb
  7723. TCLINE
  7724. TIEXECUTED
  7725. TNFIRST    
  7726. TNAVERAGE
  7727. CMARKEDLINE
  7728. CFIRST
  7729. CAVERAGE
  7730. LINPROFILEMODE
  7731. CMARKEXECUTED
  7732. CMARKNOTEXECUTED
  7733. tcWhichPropb
  7734. SOURCE
  7735. TARGET
  7736. SKIPPED
  7737. COVFILES
  7738. PROJECT
  7739. tAliasb
  7740. THIS.c
  7741. Alias
  7742. TALIAS
  7743. TCWHICHPROP
  7744. CRETURNV
  7745. tcAddInb
  7746. Add-In file specified does not exist.
  7747. Coverage Profiler
  7748. Problem
  7749. Add-In file specified is not a supported type.
  7750. Coverage Profiler
  7751. Problem
  7752. TCADDIN
  7753. LRETURN
  7754. CFILETORUN
  7755. CADDIN
  7756. LERROR    
  7757. DOMESSAGE
  7758. LUSINGREGISTRY
  7759. LREGISTERADDIN
  7760. ADDREGISTEREDADDIN
  7761. DELETEREGISTEREDADDIN
  7762. LERROR
  7763. LERRORy
  7764. CLASSLIBv
  7765.  ALIAS 
  7766. TCCLASSLIBNAME    
  7767. TCAPPNAME
  7768. CALIAS
  7769. CLIBLIST
  7770. CCLASSLIBNAME
  7771. CAPPNAME
  7772. CSYS16
  7773. ILEVEL8
  7774. ProfileMode
  7775. SmartPath
  7776. MarkAll
  7777. MarkExecuted
  7778. MarkNotExecuted
  7779. RegisterAddIn
  7780. CoverageFrame
  7781. LSTARTINPROFILEMODE
  7782. GETREGISTRYKEYVALUE
  7783. LSMARTPATH
  7784. LMARKALLONLOAD
  7785. CMARKEXECUTED
  7786. CMARKNOTEXECUTED
  7787. LREGISTERADDIN
  7788. LINCOVERAGEFRAME
  7789. SETMARKS
  7790. LERRORF
  7791. tlBaseMonoFontb
  7792. toMemberHost.Classb
  7793. oMemberHost.cdlCov_GetFont.Classb
  7794. CLASSLIBv
  7795. cdlCov_GetFont
  7796. scov_CommonDialog
  7797. COVERAGE.VCX
  7798. ALIAS 
  7799. CLASSLIBv
  7800. SET CLASSLIB TO &cLibs
  7801. Common Dialog OCX not found; C
  7802. switching to native VFP code version.
  7803. THIS.cBase
  7804. FontName
  7805. THIS.nBase
  7806. FontSize
  7807. THIS.lBase
  7808. FontBold
  7809. THIS.lBase
  7810. FontItalic
  7811. THIS.cBase
  7812. FontName
  7813. THIS.nBase
  7814. FontSize
  7815. THIS.lBase
  7816. FontBold
  7817. THIS.lBase
  7818. FontItalic
  7819. THIS.cBase
  7820. FontName
  7821. THIS.nBase
  7822. FontSize
  7823. THIS.lBase
  7824. FontBold
  7825. THIS.lBase
  7826. FontItalic
  7827. THIS.cBase
  7828. FontName
  7829. THIS.nBase
  7830. FontSize
  7831. THIS.lBase
  7832. FontBold
  7833. THIS.lBase
  7834. FontItalic
  7835. TLBASEMONOFONT
  7836. TOMEMBERHOST
  7837. LUNATTENDED
  7838. OMEMBERHOST
  7839. LFONTCHANGE
  7840. CPROP
  7841. CGETFONT
  7842. IPOS1
  7843. IPOS2
  7844. CALIAS
  7845. CLIBS
  7846. IHOSTCONTROLCOUNT
  7847. LINCOVERAGEFRAME
  7848. OFRAME
  7849. FORMS
  7850. CONTROLCOUNT
  7851. LUSINGOCXS
  7852. LERROR    
  7853. NEWOBJECT
  7854. CAPPNAME
  7855. CDLCOV_GETFONT
  7856. FLAGS
  7857. FONTNAME
  7858. FONTSIZE
  7859. FONTBOLD
  7860. FONTITALIC
  7861. VISIBLE
  7862. HEIGHT
  7863. WIDTH
  7864. SHOWFONT
  7865. Software\Microsoft\VisualFoxPro\5.0
  7866. Software\Microsoft\VisualFoxPro\6.0
  7867. \Coverage
  7868. tValueb
  7869. TCWHICHOPTION
  7870. TVALUE
  7871. CPATH
  7872. CTYPEVALUE
  7873. CVALUE
  7874. LVFP5
  7875. LUSINGREGISTRY
  7876. COV_TOOLBAR
  7877. CUSREGISTRY    
  7878. SETREGKEY
  7879. LERROR
  7880. tDefaultValueb
  7881. \Coverage
  7882. Software\Microsoft\VisualFoxPro\5.0
  7883. Software\Microsoft\VisualFoxPro\6.0
  7884. TCOPTION
  7885. TDEFAULTVALUE
  7886. TCPATH
  7887. CVALUE
  7888. VRETURN
  7889. CPATH
  7890. CTYPEVALUE
  7891. CTYPEREGVALUE
  7892. LUSINGREGISTRY
  7893. LVFP5
  7894. COV_TOOLBAR
  7895. CUSREGISTRY    
  7896. GETREGKEY
  7897. LERROR
  7898. tcWhichDialogb
  7899. PUTFILE
  7900. GETFILE
  7901. tcFileNameb
  7902. toMemberHost.Classb
  7903. cdlCov_
  7904. oMemberHost.
  7905. .Class
  7906. CLASSLIBv
  7907. scov_CommonFileDialog
  7908. COVERAGE.VCX
  7909. WITH oMemberHost.&cDialogControl.
  7910. PUTFILE
  7911. GETFILE
  7912. ALIAS 
  7913. CLASSLIBv
  7914. SET CLASSLIB TO &cLibs
  7915. Common Dialog OCX not found; C
  7916. switching to native VFP code version.
  7917. oMemberHost.
  7918. tcFileNameb
  7919. PUTFILE
  7920. GETFILE
  7921. PUTFILE
  7922. GETFILE
  7923. Select
  7924. File specified does not exist.
  7925. Coverage Profiler
  7926. Problem
  7927. MousePointer
  7928. TCHOST
  7929. TCTITLE
  7930. TCCDLFILTER
  7931. TCFILENAME
  7932. TCWHICHDIALOG
  7933. TOMEMBERHOST
  7934. LUNATTENDED
  7935. OMEMBERHOST
  7936. CRETURN
  7937. CDIALOGCONTROL
  7938. LIOLDSYS2333
  7939. ODIALOGCONTROL
  7940. CALIAS
  7941. CFOXFILTER
  7942. CWHICHDIALOG
  7943. ISETPOINTER
  7944. CLIBS
  7945. IHOSTCONTROLCOUNT
  7946. MOUSEPOINTER
  7947. LINCOVERAGEFRAME
  7948. OFRAME
  7949. FORMS
  7950. CONTROLCOUNT
  7951. LUSINGOCXS
  7952. LERROR
  7953. LVFP5    
  7954. NEWOBJECT
  7955. CAPPNAME
  7956. FLAGS
  7957. DIALOGTITLE
  7958. FILENAME
  7959. FILTER
  7960. FILTERINDEX
  7961. INITDIR
  7962. VISIBLE
  7963. HEIGHT
  7964. WIDTH
  7965. SHOWSAVE
  7966. SHOWOPEN    
  7967. DOMESSAGE
  7968. SETALL
  7969. COVERAGE.FXP
  7970. COVERAGE.VCT
  7971. COVERAGE.APP
  7972. COV_PJX.FRT
  7973. CCOVFILESALIAS
  7974. ADJUSTCOVERAGEFILENAMECURSOR
  7975. LERROR^
  7976. Changing Coverage modes and emptying marked code...
  7977. Target
  7978. TCSOURCE
  7979. TCTARGET
  7980. CTARGET
  7981. ISELECT
  7982. IRECNO
  7983. CORDER
  7984. LINPROFILEMODE
  7985. SHOWSTATUS
  7986. GETALIAS
  7987. LMARKALLONLOAD
  7988. MARKALLTARGETRECORDS
  7989. CLEARSTATUS
  7990. LERROR
  7991. LERRORx
  7992. TCSOURCE
  7993. TCTARGET    
  7994. TCPROJECT
  7995. LRETURN
  7996. GETPROJECTSTATISTICS
  7997. DISPLAYPROJECTSTATISTICS
  7998. LERROR
  7999. Target
  8000. Project
  8001. Please specify a project file to check
  8002. Projects Only
  8003.  (*.pjx)|*.pjx
  8004. getfile
  8005. DIRECTORYv
  8006. Standard
  8007. CCCCCCCC
  8008. Project has no source-code-type records.
  8009. Coverage Profiler
  8010. Problem
  8011. CCCCCCCC
  8012. Project file currently unavailable.
  8013. Coverage Profiler
  8014. Problem
  8015. TCSOURCE
  8016. TCTARGET    
  8017. TCPROJECT
  8018. ISELECT
  8019. CDEFAULT
  8020. CORDER
  8021. CTARGET
  8022. CPJXFILE    
  8023. CPJXALIAS
  8024. CPROJECT
  8025. LRETURN
  8026. CFILE
  8027. ICOVERED
  8028. ICOVERABLE    
  8029. IOBJTOTAL
  8030. IOBJHITS    
  8031. CFILETYPE
  8032. LERROR
  8033. GETALIAS
  8034. GETRESOURCELOCATION
  8035. HOSTFILE
  8036. THISFORMSET
  8037. ILENHOSTFILE
  8038. FILETYPE    
  8039. COVERABLE
  8040. COVERED
  8041. OBJTOTAL
  8042. OBJHITS
  8043. STANDARD
  8044. OUTFILE
  8045. MARKONETARGETRECORD
  8046. REFRESH
  8047. TCSOURCE
  8048. TCTARGET    
  8049. TCPROJECT
  8050. LERRORe
  8051. BaseFontNameC
  8052. MS San Serif
  8053. BaseFontSize
  8054. BaseFontBold
  8055. BaseFontItalic
  8056. BaseMonoFontSize
  8057. BaseMonoFontBold
  8058. BaseMonoFontItalic
  8059. BaseMonoFontName
  8060. RESOURCE
  8061. WINDMODIFY
  8062. .prgC
  8063. TraceFontName
  8064. \Options
  8065. Courier New
  8066. ISELECT    
  8067. CRESOURCE
  8068. CMONOFONTSTRING
  8069. CBASEFONTNAME
  8070. GETREGISTRYKEYVALUE
  8071. NBASEFONTSIZE
  8072. LBASEFONTBOLD
  8073. LBASEFONTITALIC
  8074. NBASEMONOFONTSIZE
  8075. LBASEMONOFONTBOLD
  8076. LBASEMONOFONTITALIC
  8077. LERROR
  8078. LUSINGREGISTRY
  8079. CBASEMONOFONTNAME
  8080. LockScreena
  8081. MousePointer
  8082. LockScreen-
  8083. MousePointer
  8084. SETALL
  8085. MOUSEPOINTER
  8086. AddIn1
  8087. AddInCC
  8088. LUSINGREGISTRY
  8089. CADDINNAME
  8090. IADDINNUMBER
  8091. GETREGISTRYKEYVALUE
  8092. AADDINS
  8093. LERROR
  8094. STATUS BARv
  8095. CMESSAGE
  8096. LUSINGSTATUSBAR
  8097. LINCOVERAGEFRAME
  8098. LUNATTENDED
  8099. LERROR<
  8100. LUSINGSTATUSBAR
  8101. LERROR
  8102. tcSourceb
  8103. tcTargetb
  8104. Marking all source code...
  8105. Source
  8106. Target
  8107. Standard
  8108. TCSOURCE
  8109. TCTARGET
  8110. CSOURCE
  8111. CTARGET
  8112. ISELECT
  8113. IRECNO
  8114. CORDER
  8115. SHOWSTATUS
  8116. GETALIAS
  8117. STANDARD
  8118. MARKONETARGETRECORD
  8119. CLEARSTATUS
  8120. LERROR    
  8121. tcSourceb
  8122. tcTargetb
  8123. Checking Coverage of all target source files...
  8124. Source
  8125. Target
  8126. Hostfile
  8127. TCSOURCE
  8128. TCTARGET
  8129. CSOURCE
  8130. CTARGET
  8131. ISELECT
  8132. CORDER
  8133. CFILE
  8134. LOCKSCREENS
  8135. SHOWSTATUS
  8136. GETALIAS
  8137. HOSTFILE
  8138. FILLONETARGETRECORD
  8139. SOURCECODE
  8140. OBJHITS
  8141. FILETYPE
  8142. WHILE
  8143. ITARGETRECCOUNT
  8144. CLEARSTATUS
  8145. LERROR)
  8146. Target
  8147. CASE EMPTY(&cTarget..Hostfile)
  8148. CASE THIS.lInProfileMode AND NOT EMPTY(&cTarget..Profiled)
  8149. CASE (NOT THIS.lInProfileMode) AND (NOT EMPTY(&cTarget..Marked))
  8150. cObject = ALLTR(&cTarget..ObjClass)
  8151. THIS.ShowStatus("Marking source code for"+" "+  ALLTR(&cTarget..Hostfile)+"."+  ALLTR(cObject)+"...")      
  8152. A source code entry has no coverable codeC
  8153. or is a member of a container object.
  8154. This record will be deleted.
  8155. Coverage Profiler
  8156. Problem
  8157. TCSOURCE
  8158. TCTARGET
  8159. TLFILLINGALL
  8160. LRETURN
  8161. CTARGET
  8162. COBJECT
  8163. GETALIAS
  8164. LOCKSCREENS
  8165. MARKTARGETCOVERAGE    
  8166. DOMESSAGE
  8167. CLEARSTATUS
  8168. LERRORX
  8169. tcFileToAddb
  8170. TCFILETOADD
  8171. IADDINCOUNT
  8172. CFILETOADD
  8173. LFOUND
  8174. AADDINS
  8175. LERROR
  8176. ProfileMode
  8177. SmartPath
  8178. MarkAll
  8179. MarkExecuted
  8180. MarkNotExecuted
  8181. RegisterAddIn
  8182. BaseFontName
  8183. BaseFontSize
  8184. BaseFontBold
  8185. BaseFontItalic
  8186. BaseMonoFontName
  8187. BaseMonoFontSize
  8188. BaseMonoFontBold
  8189. BaseMonoFontItalic
  8190. LUSINGREGISTRY
  8191. SETREGISTRYKEYVALUE
  8192. LSTARTINPROFILEMODE
  8193. LSMARTPATH
  8194. LMARKALLONLOAD
  8195. CMARKEXECUTED
  8196. CMARKNOTEXECUTED
  8197. LREGISTERADDIN
  8198. CBASEFONTNAME
  8199. NBASEFONTSIZE
  8200. LBASEFONTBOLD
  8201. LBASEFONTITALIC
  8202. CBASEMONOFONTNAME
  8203. NBASEMONOFONTSIZE
  8204. LBASEMONOFONTBOLD
  8205. LBASEMONOFONTITALICB
  8206. AddInCC
  8207. AddInCC
  8208. AddInCC
  8209. IADDINNUMBER
  8210. LIEMPTY
  8211. LIKEYTOSET    
  8212. LIKEYSSET
  8213. LUSINGREGISTRY
  8214. AADDINS
  8215. SETREGISTRYKEYVALUE
  8216. LERRORi
  8217. TCFILETODELETE
  8218. IADDINNUMBER
  8219. AADDINS
  8220. LERRORY
  8221. cov_frame
  8222. COVERAGE.VCX
  8223. LINCOVERAGEFRAME
  8224. OFRAME
  8225. CAPPNAME
  8226. LERRORY
  8227. tcWhichSuffixb
  8228. 1.DBF
  8229. TCWHICHSUFFIX
  8230. CSUFFIX
  8231. CDBFSTEM
  8232. CTABLENAME
  8233. CSOURCEFILE
  8234. PROCEDURE
  8235. PROCEDURE
  8236. CSYS16
  8237. ILEVEL
  8238. CAPPNAME
  8239. CAPPHOME'
  8240. OFRAME
  8241. SETREGISTEREDADDINS}
  8242. NERROR
  8243. CMETHOD
  8244. NLINE
  8245. RELEASE
  8246. COVERAGE.H
  8247. COV_CHAR.H
  8248. COV_LOCS.H
  8249. COV_DLGS.H
  8250. COV_SPEC.H
  8251. COV_REGS.H
  8252. COV_TUNE.H
  8253. TRBETWEENv
  8254. TOOLBAR
  8255. .Forms
  8256. TOOLBAR
  8257. Coverage Profiler
  8258.  already active!
  8259. COVERAGE
  8260. COV_CHAR
  8261. COV_LOCS
  8262. COV_DLGS
  8263. COV_SPEC
  8264. COV_REGS
  8265. COV_TUNE
  8266. LTURNEDOFFTRACE
  8267. ATEMP
  8268. OFORM
  8269. LFOUNDWINDOW
  8270. CLASS
  8271. FORMS    
  8272. BASECLASS
  8273. WINDOWTYPE
  8274. VISIBLE
  8275. SUSPENDCOVERAGE
  8276. FILLFILETYPEARRAY
  8277. LERROR
  8278. _oCoverage
  8279. TCFILE
  8280. TLUNATTENDED
  8281. TCADDIN
  8282. LRETURN
  8283. LCFILE
  8284. PASSEDPROPERPARAMS
  8285. LUNATTENDED
  8286. LIGNORECOVERAGEFILENAMES
  8287. SETAPPHOME
  8288. CSUSPENDEDLOG
  8289. LUSINGOCXS
  8290. SETWORKOPTIONS
  8291. CREATEFORMS
  8292. LINCOVERAGEFRAME
  8293. SETUPWORKFILES
  8294. CADDIN
  8295. RUNADDIN
  8296. SAVETARGETTODISK
  8297. CREATESKIPPEDCURSOR
  8298. SAVESKIPPEDCURSOR
  8299. SETUIOPTIONS
  8300. _OCOVERAGE
  8301. RESUMECOVERAGE
  8302. LERRORD
  8303. RESUMECOVERAGE
  8304. LTURNEDOFFTRACE
  8305. _OCOVERAGEt
  8306. TRBETWEENv
  8307. _oCoverage
  8308. LTURNEDOFFTRACE
  8309. _OCOVERAGE
  8310. SUSPENDCOVERAGE
  8311. LERROR=
  8312. LTURNEDOFFTRACE
  8313. LERROR
  8314. NSTYLE
  8315. LERROR
  8316. LERROR
  8317. OSOURCE
  8318. NXCOORD
  8319. NYCOORD
  8320. NLOCATION    
  8321. domessage,
  8322. setuitoshowfilestates
  8323. setmarks
  8324. setuitoshowcodeJ
  8325. setuifonts
  8326. setuioptions
  8327. passedproperparams
  8328. setlogfile*
  8329. suspendcoverage
  8330. resumecoverage
  8331. sourcefileislog
  8332. fillfiletypearrayG
  8333. createcoveragefilenamecursor
  8334. setupworkfiles
  8335. createskippedcursorL
  8336. saveskippedcursor
  8337. createsourcecursor
  8338. adjustsourcecursor0$
  8339. createtargetcursorc$
  8340. adjusttargetcursor
  8341. adjustcoveragefilenamecursor
  8342. savetargettodisk
  8343. fillonetargetrecord
  8344. fillsourcecursorV:
  8345. addpathG?
  8346. sourceavailable7@
  8347. marktargetcoverage
  8348. markcodeline
  8349. getalias
  8350. runaddin
  8351. filterlistbylocation
  8352. orderlistbytime
  8353. setclasslibtoalias
  8354. setworkoptions
  8355. getfontsfromuser
  8356. setregistrykeyvalue*m
  8357. getregistrykeyvalueso
  8358. getresourcelocation
  8359. fillcoveragefilenamecursor
  8360. togglecoverageprofilemode
  8361. showstatistics
  8362. showprojectstatistics
  8363. getprojectstatistics
  8364. displayprojectstatistics
  8365. setfontvalues
  8366. lockscreensi
  8367. getregisteredaddinsB
  8368. showstatusr
  8369. clearstatus`
  8370. markalltargetrecords
  8371. filltargetcursor4
  8372. markonetargetrecord
  8373. addregisteredaddin
  8374. saveoptionstoregistryu
  8375. setregisteredaddins
  8376. deleteregisteredaddinD
  8377. createforms
  8378. gettablenameu
  8379. setapphome
  8380. Destroy
  8381. Errorm
  8382. Unload
  8383. Activateh
  8384. Deactivate
  8385. COV_TOOLBAR.Show|
  8386. COV_TOOLBAR.Activate
  8387. COV_TOOLBAR.DragDrop
  8388. COV_TOOLBAR.DblClick
  8389. COV_TOOLBAR.Dock
  8390. OCOVERAGEENGINE
  8391. STANDARDRIGHTCLICKE
  8392. THIS.oCoverageEngine.Classb
  8393. OCOVERAGEENGINE
  8394. DEACTIVATE
  8395. OCOVERAGEENGINE
  8396. toEngineRef.Baseclassb
  8397. LIGNORECOVERAGEFILENAMES
  8398. Coverage Profiler
  8399. GetSysColor
  8400. Win32API
  8401. TOENGINEREF
  8402. ATEMP
  8403. OCOVERAGEENGINE
  8404. CAPTION
  8405. GETSYSCOLOR
  8406. WIN32API    
  8407. BACKCOLORl
  8408. THIS.oCoverageEngine.BaseClassb
  8409. RELEASETYPE
  8410. OCOVERAGEENGINE
  8411. _OCOVERAGE
  8412. RELEASEY
  8413. THIS.oCoverageEngine.Forms(2).Classb
  8414. OCOVERAGEENGINE
  8415. FORMS
  8416. ACTIVATE7
  8417. NKEYCODE
  8418. NSHIFTALTCTRL
  8419. OCOVERAGEENGINE
  8420. STANDARDRIGHTCLICK
  8421. RightClick,
  8422. Deactivater
  8423. Destroy
  8424. QueryUnloadS
  8425. Activate
  8426. KeyPress
  8427. LRETURN
  8428. CANCELERROR
  8429. LFORCESEARCH
  8430. FLAGS
  8431. LERROR8
  8432. LFORCESEARCH
  8433. INITDIR
  8434. OBJECT
  8435. SHOWOPEN8
  8436. LFORCESEARCH
  8437. INITDIR
  8438. OBJECT
  8439. SHOWSAVE8
  8440. LFORCESEARCH
  8441. INITDIR
  8442. OBJECT
  8443. SHOWHELPk
  8444. NERROR
  8445. CMETHOD
  8446. NLINE
  8447. CANCELERROR
  8448. FILENAME
  8449. Init,
  8450. SHOWOPEN
  8451. SHOWSAVE?
  8452. ShowHelp
  8453. Error
  8454. OSOURCE
  8455. NXCOORD
  8456. NYCOORD
  8457. THISFORM
  8458. RESPONDTOSPLITTER
  8459. SHPSPLITTER
  8460. HEIGHT
  8461. LERROR
  8462. THISFORMSET
  8463. STANDARDRIGHTCLICK
  8464. DragDrop,
  8465. RightClick
  8466. THISFORM    
  8467. BACKCOLOR
  8468. BORDERCOLOR    
  8469. FILLCOLOR
  8470. THISFORMSET
  8471. STANDARDRIGHTCLICK
  8472. Init,
  8473. RightClick
  8474. OSOURCE
  8475. NXCOORD
  8476. NYCOORD
  8477. THISFORM
  8478. RESPONDTOSPLITTER
  8479. LERROR
  8480. NBUTTON
  8481. NSHIFT
  8482. NXCOORD
  8483. NYCOORD
  8484. THISFORM
  8485. ILEFTLISTCOLWIDTH
  8486. NMARGIN
  8487. MOUSEPOINTER
  8488. WIDTH
  8489. ILISTMOUSESTART
  8490. ADJUSTLISTCOLUMNWIDTHS*
  8491. NBUTTON
  8492. NSHIFT
  8493. NXCOORD
  8494. NYCOORD
  8495. THISFORM
  8496. ILISTMOUSESTART
  8497. THISFORMSET
  8498. NOTIFYTARGETRECORDCHANGED
  8499. THISFORMSET
  8500. MARKONETARGETRECORD
  8501. NOTIFYTARGETRECORDCHANGED
  8502. THISFORMSET
  8503. STANDARDRIGHTCLICK
  8504. DragDrop,
  8505. MouseMove
  8506. MouseDown
  8507. InteractiveChange
  8508. Valid
  8509. RightClick
  8510. THISFORM
  8511. TOGGLEPREVIEWZOOMMODE
  8512. THISFORMSET
  8513. NOTIFYTARGETRECORDCHANGED
  8514. LERROR(
  8515. Preview Mode
  8516. TOOLTIPTEXT%
  8517. Zoom Mode
  8518. TOOLTIPTEXT
  8519. InteractiveChange,
  8520. Option1.Init
  8521. Option2.Init
  8522. VISIBLE
  8523. Init,
  8524. THISFORMSET
  8525. TOGGLECOVERAGEPROFILEMODE
  8526. THISFORM
  8527. LSTAVAILABLEOBJECTSANDPROCS
  8528. VALID
  8529. LERROR)
  8530. Coverage Mode
  8531. TOOLTIPTEXT(
  8532. Profile Mode
  8533. TOOLTIPTEXT
  8534. InteractiveChange,
  8535. Option1.Init
  8536. Option2.Init
  8537. VISIBLE
  8538. Init,
  8539. THISFORMSET
  8540. GETOPTIONSFROMUSER
  8541. LERROR#
  8542. Options
  8543. TOOLTIPTEXT
  8544. Click,
  8545. Init|
  8546. cov_addindialog
  8547. COVERAGE.VCX
  8548. LRETURN
  8549. THISFORMSET
  8550. SHOWMODALDIALOG
  8551. RUNADDIN
  8552. LERROR#
  8553. Add-Ins
  8554. TOOLTIPTEXT
  8555. Click,
  8556. THISFORMSET
  8557. SHOWSTATISTICS
  8558. LERROR&
  8559. Statistics
  8560. TOOLTIPTEXT
  8561. Click,
  8562. Initx
  8563. VISIBLE
  8564. Init,
  8565. THISFORMSET
  8566. SAVETARGETTODISK
  8567. LERROR 
  8568. TOOLTIPTEXT
  8569. Click,
  8570. Initz
  8571. THISFORMSET
  8572. SETUPWORKFILES
  8573. LERROR 
  8574. TOOLTIPTEXT
  8575. Click,
  8576. Initx
  8577. NERROR
  8578. CMETHOD
  8579. NLINER
  8580. THISFORM
  8581. MINWIDTH
  8582. WIDTH
  8583. LEFT    
  8584. MINHEIGHT
  8585. HEIGHT
  8586. SYNCHSIZES
  8587. LERROR
  8588. THISFORMSET
  8589. STANDARDRIGHTCLICK
  8590. Error,
  8591. synchsizeso
  8592. RightClick:
  8593. NMARGIN
  8594. EDTCODE
  8595. LSTAVAILABLEOBJECTSANDPROCS
  8596. CNTTOOLS
  8597. HEIGHT
  8598. WIDTH
  8599. SHPSPLITTER
  8600. NLASTSPLITTERPOSITION
  8601. ADJUSTLISTCOLUMNWIDTHS$
  8602. THIS    
  8603. MAXHEIGHT
  8604. NMARGIN
  8605. MAXWIDTH
  8606. PARENT
  8607. LINCOVERAGEFRAME
  8608. WIDTH
  8609. OFRAME
  8610. HEIGHT
  8611. LERROR
  8612. NYCOORD
  8613. LNHIGHESTALLOWABLE
  8614. NLISTROWHEIGHT
  8615. LSTAVAILABLEOBJECTSANDPROCS
  8616. SHPSPLITTER
  8617. HEIGHT
  8618. NMARGIN
  8619. SYNCHSIZES
  8620. LERROR
  8621. LINZOOMMODE
  8622. RESPONDTOSPLITTER
  8623. HEIGHT
  8624. NMARGIN
  8625. NLASTSPLITTERPOSITION
  8626. LSTAVAILABLEOBJECTSANDPROCS
  8627. EDTCODE
  8628. LERROR
  8629. nLeftColumnWidthb
  8630. NLEFTCOLUMNWIDTH
  8631. ILEFTLISTCOLWIDTH
  8632. LSTAVAILABLEOBJECTSANDPROCS
  8633. COLUMNWIDTHS
  8634. WIDTH
  8635. tcClassb
  8636. toolC
  8637. THIS.cntTools.
  8638. .Name
  8639. THIS.cntTools.
  8640. .Visible
  8641. TCCLASS
  8642. CNAME
  8643. CNTTOOLS    
  8644. ADDOBJECT
  8645. SYNCHSIZES
  8646. LERRORP
  8647. LSTAVAILABLEOBJECTSANDPROCS
  8648. NLISTROWHEIGHT
  8649. FONTNAME
  8650. FONTSIZE4
  8651. NKEYCODE
  8652. NSHIFTALTCTRL
  8653. THISFORMSET
  8654. STANDARDRIGHTCLICK
  8655. THIS.
  8656. .Width
  8657. THIS.
  8658. .Left
  8659. THIS.
  8660. THIS.
  8661. .Height
  8662. CNAME
  8663. CCLASS
  8664. NWIDTH
  8665. NHEIGHT
  8666. MINWIDTH
  8667. LERROR'
  8668. NERROR
  8669. CMETHOD
  8670. NLINE
  8671. CNTTOOLS
  8672. CONTROLCOUNT
  8673. NTOOLCOUNT
  8674. SYNCHSIZES
  8675. CNTOOLS
  8676. WIDTH
  8677. NMARGIN
  8678. EDTCODE
  8679. LSTAVAILABLEOBJECTSANDPROCS
  8680. ADJUSTLISTCOLUMNWIDTHS
  8681. SHPSPLITTER
  8682. NLASTSPLITTERPOSITION
  8683. HEIGHT
  8684. RESPONDTOSPLITTER
  8685. LERROR
  8686. THISFORMSETb
  8687. LIGNORECOVERAGEFILENAMES
  8688. ATEMP
  8689. THISFORMSET
  8690. LRETURN
  8691. SETINITIALFORMPROPERTIES
  8692. SETINITIALCONTROLPROPERTIES
  8693. LERRORP
  8694. OSOURCE
  8695. NXCOORD
  8696. NYCOORD
  8697. HEIGHT
  8698. NMARGIN
  8699. THISFORM
  8700. RESPONDTOSPLITTER
  8701. LERROR
  8702. THIS.Parent.iTargetReccountb
  8703. LNMAXLISTHEIGHT
  8704. LNPROPOSEDLISTHEIGHT
  8705. LNMINIMUMLISTHEIGHT
  8706. LICOUNT
  8707. NLISTROWHEIGHT
  8708. SETLISTROWHEIGHT
  8709. PARENT
  8710. ITARGETRECCOUNT
  8711. LINZOOMMODE
  8712. SHPSPLITTER
  8713. HEIGHT
  8714. NMARGIN
  8715. LSTAVAILABLEOBJECTSANDPROCS    
  8716. LISTCOUNT
  8717. EDTCODE
  8718. VISIBLE
  8719. MOUSEPOINTER
  8720. NLASTSPLITTERPOSITION
  8721. CNTTOOLS
  8722. OPGPREVIEWZOOMMODE
  8723. VALUE
  8724. THISFORMSET
  8725. SYNCHZOOMWINDOWSTATE
  8726. LERROR
  8727. THISFORMSET
  8728. STANDARDRIGHTCLICK
  8729. setinitialcontrolproperties,
  8730. setinitialformproperties
  8731. respondtosplitter`
  8732. togglepreviewzoommode
  8733. adjustlistcolumnwidthsN
  8734. addtool/
  8735. setlistrowheightG
  8736. KeyPress
  8737. AddObjectT    
  8738. Error_
  8739. Resize
  8740. DragDrop&
  8741. synchsizes
  8742. RightClickR
  8743. THIS.frmMainDialog.Classb
  8744. Target
  8745. CTARGET
  8746. GETALIAS
  8747. FRMMAINDIALOG
  8748. TOGGLEPREVIEWZOOMMODE
  8749. NOTIFYTARGETRECORDCHANGED
  8750. THIS.frmZoom.BaseClassb
  8751. FRMMAINDIALOG
  8752. LINZOOMMODE
  8753. FRMZOOM
  8754. VISIBLE
  8755. WINDOWSTATE
  8756. HEIGHT
  8757. WIDTH
  8758. LERROR
  8759. Target
  8760. lNoCodeYet = EMPTY(&cTarget..Profiled)
  8761. lNoCodeYet = EMPTY(&cTarget..Marked)
  8762. cCaption = ALLTR(&cTarget..ObjClass)
  8763. All Classes, Objects, Procs
  8764. Fast Mode: DoubleClick/Enter on List for Code
  8765. .Caption = "Marked Code For"  +  +" "+ALLTR(&cTarget..Hostfile)+  ": "+cCaption
  8766. CTARGET
  8767. LNOCODEYET
  8768. GETALIAS
  8769. LINPROFILEMODE
  8770. FRMMAINDIALOG
  8771. LINZOOMMODE
  8772. LFASTZOOMMODE
  8773. MARKONETARGETRECORD
  8774. CCAPTION
  8775. FRMZOOM
  8776. CAPTION
  8777. EDTCODE
  8778. SELSTART
  8779. REFRESH
  8780. VISIBLE
  8781. LERRORt
  8782. tcWhichDialogClassb
  8783. tcWhichClassLibb
  8784. ALIAS 
  8785. CLASSLIBv
  8786. SET CLASSLIB TO &cLibs
  8787. TCWHICHDIALOGCLASS
  8788. TCWHICHCLASSLIB
  8789. OFORMREF
  8790. CALIAS
  8791. CLIBS
  8792. LINCOVERAGEFRAME
  8793. OFRAME
  8794. CAPPNAME
  8795. CSUSPENDEDLOG
  8796. LERROR
  8797. cov_optionsdialog
  8798. COVERAGE.VCX
  8799. Target
  8800. You have changed Coverage marks, but some records C
  8801. in the current log are already marked. 
  8802. Would you like to: 
  8803. Preserve current marked records (yes) or 
  8804. Empty and re-mark these records (no)?
  8805. Coverage Profiler
  8806. You have chosen to mark all records on load, but C
  8807. some records in the current log may not be marked yet. 
  8808. Would you like to mark all records now?
  8809. Coverage Profiler
  8810. LRETURN
  8811. LPROFILEMODE
  8812. CMARK
  8813. CMARKNOT
  8814. CTARGET
  8815. ISELECT
  8816. IRECNO
  8817. LMARKALL
  8818. LALREADYREMARKED
  8819. CMARKEXECUTED
  8820. CMARKNOTEXECUTED
  8821. LMARKALLONLOAD
  8822. SHOWMODALDIALOG
  8823. SETUIFONTS
  8824. SETMARKS
  8825. GETALIAS
  8826. MARKED
  8827. LINPROFILEMODE
  8828. MARKALLTARGETRECORDS
  8829. NOTIFYTARGETRECORDCHANGED
  8830. LERROR4
  8831. COVSHORT.MPR
  8832. COVSHORT
  8833. TLFROMMODALDIALOG
  8834. WONTOPWIND
  8835. WSOURCELOG
  8836. LINCOVERAGEFRAME
  8837. CSOURCEFILE
  8838. OFRAME
  8839. SCREEN
  8840. Source
  8841. Skipped
  8842. No log entries were skipped.
  8843. Coverage Profiler
  8844. Information
  8845. CSOURCE
  8846. CALIAS
  8847. ISELECT
  8848. WONTOPWIND
  8849. GETALIAS
  8850. CREATESKIPPEDCURSOR
  8851. LINCOVERAGEFRAME
  8852. OFRAME
  8853. SCREEN
  8854. LERROR
  8855. Skipped
  8856. TOOLBAR
  8857. LINCOVERAGEFRAME
  8858. WFRAME
  8859. ICHILD
  8860. WCHILDWINDOW
  8861. NPOSFOXELS
  8862. CALIAS
  8863. CSOURCEWIND
  8864. INUMBERWINDOWS
  8865. WONTOPWIND
  8866. WFRAMETOPWIND
  8867. OFORM
  8868. NSTAGGER
  8869. AWINDOWCOLLECTION
  8870. OFRAME
  8871. GETALIAS
  8872. CSOURCEFILE
  8873. FORMS
  8874. SHOWWINDOW
  8875. VISIBLE
  8876. WINDOWSTATE    
  8877. BASECLASS
  8878. FONTNAME
  8879. FONTSIZE
  8880. LERROR9
  8881. LFASTZOOMMODE
  8882. NOTIFYTARGETRECORDCHANGED
  8883. Target
  8884. TCSOURCE
  8885. TCTARGET    
  8886. TCPROJECT
  8887. IRECNO
  8888. CTARGET
  8889. GETALIAS
  8890. LERROR
  8891. NOTIFYTARGETRECORDCHANGEDW
  8892. Project
  8893. Coverage Profiler
  8894. Statistics by \<Project...
  8895.  WINDOW (oForm.Name) 
  8896.  IN WINDOW 
  8897. REPORT FORM ("COV_PJX.FRX") PREVIEW &cClauses
  8898. TCSOURCE
  8899. TCTARGET    
  8900. TCPROJECT
  8901. CPROJECT
  8902. ISELECT
  8903. ISTATE
  8904. WONTOPWIND
  8905. CCLAUSES
  8906. OFORM
  8907. GETALIAS
  8908. CAPTION
  8909. LVFP5
  8910. WINDOWSTATE
  8911. LINCOVERAGEFRAME
  8912. OFRAME
  8913. LERRORT
  8914. cov_statisticsdialog
  8915. COVERAGE.VCX
  8916. MARKONETARGETRECORD
  8917. SHOWMODALDIALOGV
  8918. TCSOURCE
  8919. TCTARGET
  8920. SETUITOSHOWCODE
  8921. NOTIFYTARGETRECORDCHANGED
  8922. LERROR
  8923. FRMMAINDIALOG
  8924. LSTAVAILABLEOBJECTSANDPROCS
  8925. FONTNAME
  8926. CBASEFONTNAME
  8927. FONTSIZE
  8928. NBASEFONTSIZE
  8929. FONTITALIC
  8930. LBASEFONTITALIC
  8931. FONTBOLD
  8932. LBASEFONTBOLD
  8933. SETLISTROWHEIGHT
  8934. CBASEMONOFONTNAME
  8935. EDTCODE
  8936. FRMZOOM
  8937. NBASEMONOFONTSIZE
  8938. LBASEMONOFONTITALIC
  8939. LBASEMONOFONTBOLD
  8940. SYNCHSIZES
  8941. Coverage Profiler
  8942. TCSOURCE
  8943. TCTARGET
  8944. CTARGETALIAS
  8945. FRMMAINDIALOG
  8946. CNTTOOLS
  8947. OPGCOVERAGEPROFILEMODE
  8948. VALUE
  8949. LINPROFILEMODE
  8950. CAPTION
  8951. CSOURCEFILE
  8952. LSTAVAILABLEOBJECTSANDPROCS
  8953. NOTIFYTARGETRECORDCHANGED
  8954. LERROR
  8955. Source
  8956. Target
  8957. IIF(EMPTY(
  8958. .ObjClass),[
  8959. All Classes, Objects, Procs
  8960. IIF([!] $ 
  8961. .ObjClass, 
  8962. SUBSTR(
  8963. .ObjClass,AT([!],
  8964. .ObjClass)+1),
  8965. .ObjClass)), 
  8966. IIF(.T.,SPACE(1) +
  8967. .HostFile,[])
  8968. .Profiled
  8969. .Marked6
  8970. COV_PJX.FRX
  8971. COVERAGE.VCX
  8972. COVERAGE.VCX
  8973. COVERAGE.VCX
  8974. COVERAGE.VCX
  8975. COVERAGE.VCX
  8976. COVERAGE.ICO
  8977. HO_SPLIT.CUR
  8978. COVERAGE.BMP
  8979. ADDINS.BMP
  8980. OPEN.BMP
  8981. PROFILE.BMP
  8982. ZOOM.BMP
  8983. OPTIONS.BMP
  8984. SAVE.BMP
  8985. PREVIEW.BMP
  8986. STATS.BMP
  8987. COVERAGE.MSK
  8988. ADDINS.MSK
  8989. OPEN.MSK
  8990. PROFILE.MSK
  8991. ZOOM.MSK
  8992. OPTIONS.MSK
  8993. SAVE.MSK
  8994. PREVIEW.MSK
  8995. STATS.MSK
  8996. TCSOURCE
  8997. TCTARGET
  8998. CSOURCE
  8999. CTARGET
  9000. GETALIAS
  9001. CTARGETALIAS
  9002. FRMMAINDIALOG
  9003. LSTAVAILABLEOBJECTSANDPROCS    
  9004. ROWSOURCE
  9005. LINPROFILEMODE
  9006. EDTCODE
  9007. CONTROLSOURCE
  9008. FRMZOOM
  9009. SYNCHSIZES
  9010. COVERAGE
  9011. HO_SPLIT
  9012. ADDINS
  9013. PROFILE
  9014. OPTIONS
  9015. PREVIEW
  9016. STATS
  9017. TCSOURCE
  9018. TCTARGET
  9019. TLDOINGALL
  9020. LRETURN
  9021. ITARGETRECCOUNT
  9022. SETUITOSHOWCODE
  9023. frmMainDialog
  9024. cov_maindialog_standard
  9025. COVERAGE.VCX
  9026. frmZoom
  9027. cov_zoomdialog
  9028. COVERAGE.VCX
  9029. THIS.frmMainDialog.Nameb
  9030. COV_MAINDIALOG_STANDARD
  9031. THIS.frmZoom.Nameb
  9032. COV_ZOOMDIALOG
  9033. Cov_Standard's .cMainDialogClass and/or .cZoomDialogClassC
  9034. have been incorrectly assigned.
  9035. This Coverage User Interface class must contain dialogs
  9036. descended from 
  9037. cov_MainDialog_Standard and cov_ZoomDialog.
  9038. Coverage Profiler
  9039. Problem
  9040. LRETURN
  9041. LACHECK
  9042. CMAINALIAS
  9043. CZOOMALIAS
  9044. CLIBS
  9045. LINCOVERAGEFRAME
  9046. OFRAME
  9047. SHOW    
  9048. NEWOBJECT
  9049. CAPPNAME
  9050. FRMMAINDIALOG
  9051. FRMZOOM
  9052. LERROR
  9053. notifyzoomwindowclosed,
  9054. synchzoomwindowstate(
  9055. notifytargetrecordchangedR
  9056. showmodaldialog
  9057. getoptionsfromuser
  9058. standardrightclick
  9059. showtextlog'
  9060. showskippedfiles
  9061. arrangeframewindows
  9062. togglefastzoommode
  9063. showprojectstatistics
  9064. displayprojectstatistics
  9065. showstatistics
  9066. togglecoverageprofilemode
  9067. setuifontsE
  9068. setuitoshowfilestates
  9069. setuitoshowcodeA!
  9070. markonetargetrecord
  9071. createforms
  9072. Coverage Profiler
  9073. LRETURN
  9074. CAPTION
  9075. LERROR
  9076. THISFORMSET.cSourceFileb
  9077. OFORM
  9078. LOTHERMAINDIALOGS
  9079. THISFORMSET
  9080. CSOURCEFILE
  9081. FORMS
  9082. CLASS
  9083. Init,
  9084. Unload
  9085. THISFORM
  9086. OCOVERAGEENGINE
  9087. RELEASE
  9088. Click,
  9089. OCOVERAGEENGINEG
  9090. NERROR
  9091. CMETHOD
  9092. NLINE
  9093. LERROR
  9094. OCOVERAGEENGINE
  9095. ERROR
  9096. toEngineRef.Baseclassb
  9097. LIGNORECOVERAGEFILENAMES
  9098. MS Sans Serif
  9099. MS Sans Serif
  9100. MS Sans Serif
  9101. MS Sans Serif
  9102. fontname
  9103. Arial
  9104. Arial
  9105. fontname
  9106. MS Sans Serif
  9107. MS Sans Serif
  9108. fontsize
  9109. TOENGINEREF
  9110. ATEMP
  9111. OCOVERAGEENGINE
  9112. SETALL
  9113. FONTNAME
  9114. FONTSIZE
  9115. Destroy,
  9116. ErrorX
  9117. tcCaptionb
  9118. THISFORMb
  9119. TCCAPTION
  9120. LCDISPLAYTEXT
  9121. LISTARTCHAR
  9122. LILABELWIDTH
  9123. LIMARGIN
  9124. LVFONTNAME
  9125. LVFONTSIZE
  9126. LBLNAME
  9127. FONTNAME
  9128. THISFORM
  9129. FONTSIZE    
  9130. TEXTWIDTH
  9131. WIDTH
  9132. CAPTION
  9133. setfileorclassnamecaption,
  9134. THISFORM
  9135. OCOVERAGEENGINE
  9136. SHOWSKIPPEDFILES)
  9137. \<Source Files Skipped
  9138. CAPTION
  9139. Click,
  9140. Initp
  9141. THISFORM
  9142. OCOVERAGEENGINE
  9143. SHOWTEXTLOG$
  9144. Source Text \<Log
  9145. CAPTION
  9146. Click,
  9147. Initl
  9148. THISFORM
  9149. OCOVERAGEENGINE
  9150. SHOWPROJECTSTATISTICS-
  9151. Statistics by \<Project...
  9152. CAPTION
  9153. Click,
  9154. Initu
  9155. View details
  9156. CAPTION
  9157. Init,
  9158. View details
  9159. CAPTION
  9160. Init,
  9161. Coverage Profiler
  9162. Statistics
  9163. Statistics
  9164. View details
  9165. Target
  9166. FontName
  9167. FontSize
  9168. Line(s) hit
  9169. Line(s) missed
  9170. Total coverable lines
  9171. % Covered Linecount
  9172. FontName
  9173. FontSize
  9174. Class(es) hit
  9175. Class(es) missed
  9176. Classes with code
  9177. % Covered Classes
  9178. TOENGINEREF
  9179. LRETURN
  9180. CTARGET
  9181. ISELECT
  9182. CHOST
  9183. CAPTION
  9184. OCOVERAGEENGINE
  9185. CSOURCEFILE
  9186. LBLSTATISTICS
  9187. LBLVIEW
  9188. GETALIAS
  9189. HOSTFILE
  9190. CNTLINESCOVERED
  9191. SETALL
  9192. FONTNAME
  9193. FONTSIZE
  9194. LBLCOVERED
  9195. COVERED
  9196. LBLNOTCOVERED    
  9197. COVERABLE
  9198. LBLTOTAL
  9199. LBLPERCENT
  9200. LBLCOVEREDCAPTION
  9201. LBLNOTCOVEREDCAPTION
  9202. LBLTOTALCAPTION
  9203. LBLPERCENTCAPTION
  9204. FILETYPE
  9205. CNTCLASSESCOVERED
  9206. SETFILEORCLASSNAMECAPTION
  9207. OBJHITS
  9208. OBJTOTAL
  9209. OBJCLASS
  9210. WIDTH
  9211. SHPFRAME
  9212. LBLNAME
  9213. VISIBLE
  9214. LERROR'
  9215. NERROR
  9216. CMETHOD
  9217. NLINE2
  9218. LRETURN
  9219. CAPTION
  9220. Init,
  9221. Error)
  9222. cmdOK.Initl
  9223. OLABEL
  9224. THISFORM
  9225. LBLSHOWFIXEDFONT
  9226. OCOVERAGEENGINE
  9227. LERROR
  9228. GETFONTSFROMUSER
  9229. FONTNAME
  9230. CBASEMONOFONTNAME
  9231. FONTSIZE
  9232. NBASEMONOFONTSIZE
  9233. FONTITALIC
  9234. LBASEMONOFONTITALIC
  9235. FONTBOLD
  9236. LBASEMONOFONTBOLD
  9237. CAPTION
  9238. DISABLEFONTSETTINGBUTTONS
  9239. Click,
  9240. OLABEL
  9241. THISFORM
  9242. LBLSHOWBASEFONT
  9243. OCOVERAGEENGINE
  9244. GETFONTSFROMUSER
  9245. FONTNAME
  9246. CBASEFONTNAME
  9247. FONTSIZE
  9248. NBASEFONTSIZE
  9249. FONTITALIC
  9250. LBASEFONTITALIC
  9251. FONTBOLD
  9252. LBASEFONTBOLD
  9253. CAPTION
  9254. LERROR
  9255. DISABLEFONTSETTINGBUTTONS
  9256. Click,
  9257. THISFORM
  9258. RESTOREENGINEFONTS
  9259. OCOVERAGEENGINE
  9260. RELEASE
  9261. Click,
  9262. OCOVERAGEENGINE
  9263. LSMARTPATH
  9264. CHKSMARTPATH
  9265. VALUE
  9266. LREGISTERADDIN
  9267. CHKREGISTERADDINS
  9268. LMARKALLONLOAD
  9269. CHKMARKALLONLOAD
  9270. LSTARTINPROFILEMODE
  9271. OPGSTARTMODE
  9272. CMARKEXECUTED
  9273. TXTEXECUTED
  9274. CMARKNOTEXECUTED
  9275. TXTNOTEXECUTED
  9276. LERRORf
  9277. FontName
  9278. textbox
  9279. OBASELABEL
  9280. OFIXEDLABEL
  9281. LBLSHOWBASEFONT
  9282. LBLSHOWFIXEDFONT
  9283. OCOVERAGEENGINE
  9284. CHKSMARTPATH
  9285. VALUE
  9286. LSMARTPATH
  9287. CHKREGISTERADDINS
  9288. LREGISTERADDIN
  9289. CHKMARKALLONLOAD
  9290. LMARKALLONLOAD
  9291. OPGSTARTMODE
  9292. LSTARTINPROFILEMODE
  9293. OPGFRAME
  9294. LINCOVERAGEFRAME
  9295. TXTEXECUTED
  9296. CMARKEXECUTED
  9297. TXTNOTEXECUTED
  9298. CMARKNOTEXECUTED
  9299. FONTNAME
  9300. CBASEFONTNAME
  9301. FONTSIZE
  9302. NBASEFONTSIZE
  9303. FONTITALIC
  9304. LBASEFONTITALIC
  9305. FONTBOLD
  9306. LBASEFONTBOLD
  9307. NBASEMONOFONTSIZE
  9308. LBASEMONOFONTITALIC
  9309. LBASEMONOFONTBOLD
  9310. SAVEDBASEFONTNAME
  9311. SAVEDBASEFONTSIZE
  9312. SAVEDBASEFONTITALIC
  9313. SAVEDBASEFONTBOLD
  9314. SAVEDFIXEDFONTNAME
  9315. CBASEMONOFONTNAME
  9316. SAVEDFIXEDFONTSIZE
  9317. SAVEDFIXEDFONTITALIC
  9318. SAVEDFIXEDFONTBOLD
  9319. SETALL
  9320. CAPTION
  9321. OCOVERAGEENGINE
  9322. CBASEFONTNAME
  9323. SAVEDBASEFONTNAME
  9324. NBASEFONTSIZE
  9325. SAVEDBASEFONTSIZE
  9326. LBASEFONTITALIC
  9327. SAVEDBASEFONTITALIC
  9328. LBASEFONTBOLD
  9329. SAVEDBASEFONTBOLD
  9330. CBASEMONOFONTNAME
  9331. SAVEDFIXEDFONTNAME
  9332. NBASEMONOFONTSIZE
  9333. SAVEDFIXEDFONTSIZE
  9334. LBASEMONOFONTITALIC
  9335. SAVEDFIXEDFONTITALIC
  9336. LBASEMONOFONTBOLD
  9337. SAVEDFIXEDFONTBOLD
  9338. LERROR
  9339. CMDBASEFONT
  9340. ENABLED
  9341. CMDFIXEDFONT.
  9342. NERROR
  9343. CMETHOD
  9344. NLINE
  9345. OCOVERAGEENGINE
  9346. ERROR}
  9347. Coverage Profiler
  9348. Options
  9349. Cancel
  9350. Options
  9351. Use \<Smart Pathing
  9352. Register \<Add-Ins when run
  9353. \<Mark all code while log loads
  9354. Start mode
  9355. \<Coverage
  9356. \<Profile
  9357. Environment
  9358. Co\<verage frame
  9359. Fo\<xPro frame
  9360. Coverage marks
  9361. \<Executed:
  9362. \<Not executed:
  9363. Mark lengths will be matched
  9364. Fonts
  9365. D\<isplay Font...
  9366. C\<ode Font...
  9367. Set as \<default
  9368. TOENGINEREF
  9369. LRETURN
  9370. CAPTION
  9371. CMDOK    
  9372. CMDCANCEL
  9373. LBLOPTIONS
  9374. CHKSMARTPATH
  9375. CHKREGISTERADDINS
  9376. CHKMARKALLONLOAD
  9377. LBLSTARTMODE
  9378. OPGSTARTMODE
  9379. BUTTONS
  9380. LBLENVIRONMENT
  9381. OPGFRAME
  9382. LBLCOVERAGEMARKS
  9383. LBLEXECUTED
  9384. LBLNOTEXECUTED
  9385. LBLMARKSMATCHED
  9386. LBLFONTS
  9387. CMDBASEFONT
  9388. CMDFIXEDFONT
  9389. CHKREGISTERDEFAULTS
  9390. OCOVERAGEENGINE
  9391. LUSINGREGISTRY
  9392. ENABLED
  9393. GETOPTIONS
  9394. LERROR
  9395. CoverageFrame
  9396. THISFORM
  9397. SETOPTIONS
  9398. OCOVERAGEENGINE
  9399. LUSINGREGISTRY
  9400. SETREGISTRYKEYVALUE
  9401. OPGFRAME
  9402. VALUE
  9403. CHKREGISTERDEFAULTS
  9404. ENABLED
  9405. SAVEOPTIONSTOREGISTRY
  9406. RELEASE
  9407. setoptions,
  9408. getoptions!
  9409. restoreenginefonts(
  9410. disablefontsettingbuttons#    
  9411. Erroro    
  9412. cmdOK.Click
  9413. RegOpenKey
  9414. Win32API
  9415. RegCreateKey
  9416. Win32API
  9417. RegDeleteKey
  9418. Win32API
  9419. RegDeleteValue
  9420. Win32API
  9421. RegCloseKey
  9422. Win32API
  9423. RegSetValueEx
  9424. Win32API
  9425. RegQueryValueEx
  9426. Win32API
  9427. RegEnumKey
  9428. Win32API
  9429. RegEnumKeyEx
  9430. Win32API
  9431. RegEnumValue
  9432. Win32API
  9433. NHKEY
  9434. CSUBKEY
  9435. NRESULT
  9436. IVALUE    
  9437. LPSZVALUE
  9438. LPCCHVALUE
  9439. LPDWTYPE
  9440. LPBDATA
  9441. LPCBDATA
  9442. LPCSTR
  9443. LPSZVAL
  9444. LPDWRESERVED
  9445. LPSZVALUENAME
  9446. DWRESERVED
  9447. FDWTYPE
  9448. ISUBKEY
  9449. LPSZNAME
  9450. CCHNAME
  9451. LLOADEDDLLS
  9452. REGOPENKEY
  9453. WIN32API
  9454. LERROR
  9455. REGCREATEKEY
  9456. REGDELETEKEY
  9457. REGDELETEVALUE
  9458. REGCLOSEKEY
  9459. REGSETVALUEEX
  9460. REGQUERYVALUEEX
  9461. REGENUMKEY
  9462. REGENUMKEYEX
  9463. REGENUMVALUE
  9464. m.nRegKeyb
  9465. m.lCreateKeyb
  9466. CLOOKUPKEY
  9467. NREGKEY
  9468. LCREATEKEY
  9469. NSUBKEY
  9470. NERRCODE
  9471. NPCOUNT
  9472. LSAVECREATEKEY
  9473. NUSERKEY
  9474. LOADREGFUNCS
  9475. REGCREATEKEY
  9476. REGOPENKEY
  9477. NCURRENTKEY0
  9478. REGCLOSEKEY
  9479. NCURRENTKEY
  9480. LERROR
  9481. COPTNAME
  9482. COPTVAL
  9483. CKEYPATH
  9484. NUSERKEY
  9485. COPTKEY
  9486. COPTION
  9487. NERRNUM
  9488. OPENKEY
  9489. LCREATEKEYONSET
  9490. SETKEYVALUE
  9491. CLOSEKEY
  9492. COPTNAME
  9493. COPTVAL
  9494. CKEYPATH
  9495. NUSERKEY
  9496. COPTKEY
  9497. COPTION
  9498. NERRNUM
  9499. OPENKEY
  9500. GETKEYVALUE
  9501. CLOSEKEYd
  9502. THIS.nCurrentKeyb
  9503. m.cValueNameb
  9504. CVALUENAME    
  9505. CKEYVALUE
  9506. LPDWRESERVED
  9507. LPDWTYPE
  9508. LPBDATA
  9509. LPCBDATA
  9510. NERRCODE
  9511. NCURRENTKEY
  9512. REGQUERYVALUEEXK
  9513. THIS.nCurrentKeyb
  9514. m.cValueNameb
  9515. m.cValueb
  9516. CVALUENAME
  9517. CVALUE
  9518. NVALUESIZE
  9519. NERRCODE
  9520. NCURRENTKEY
  9521. REGSETVALUEEXI
  9522. NUSERKEY
  9523. CKEYPATH
  9524. NERRNUM
  9525. REGDELETEKEY&
  9526. m.lEnumKeysb
  9527. AREGOPTS
  9528. COPTPATH
  9529. NUSERKEY    
  9530. LENUMKEYS
  9531. COPTKEY
  9532. COPTION
  9533. NERRNUM
  9534. OPENKEY
  9535. ENUMKEYS
  9536. ENUMKEYVALUES
  9537. CLOSEKEY^
  9538. CKEYNAME
  9539. NREGKEY
  9540. NERRNUM
  9541. OPENKEY
  9542. CLOSEKEY
  9543. AKEYNAMES    
  9544. NKEYENTRY
  9545. CNEWKEY
  9546. CNEWSIZE
  9547. NBUFLEN
  9548. CRETTIME
  9549. NKEYSIZE
  9550. NERRCODE
  9551. REGENUMKEYEX
  9552. NCURRENTKEY
  9553. THIS.nCurrentKeyb
  9554. *Binary*
  9555. *Unknown type*
  9556. AKEYVALUES    
  9557. LPSZVALUE
  9558. LPCCHVALUE
  9559. LPDWRESERVED
  9560. LPDWTYPE
  9561. LPBDATA
  9562. LPCBDATA
  9563. NERRCODE    
  9564. NKEYENTRY
  9565. LARRAYPASSED
  9566. NCURRENTKEY
  9567. NCURRENTOS
  9568. OS_W32S
  9569. REGENUMVALUE
  9570. Windows 3C
  9571. Windows NTC
  9572. ADVAPI32.DLL
  9573. ADVAPI32.DLL
  9574. NUSERKEY
  9575. NCURRENTOS
  9576. CREGDLLFILE
  9577. LERROR
  9578. loadregfuncs,
  9579. openkey
  9580. closekey4
  9581. setregkey
  9582. getregkey
  9583. getkeyvalue
  9584. setkeyvalue
  9585. deletekey
  9586. enumoptions
  9587. iskey
  9588. enumkeys;
  9589. enumkeyvalues
  9590. Init*
  9591. NERROR
  9592. CMETHOD
  9593. NLINE
  9594. LERROR
  9595. THISFORM
  9596. ERROR
  9597. THISFORM
  9598. GETADDIN
  9599. CAPTION
  9600. Error,
  9601. Click
  9602. THISFORM
  9603. CHECKOKTORUND
  9604. NERROR
  9605. CMETHOD
  9606. NLINE
  9607. LERROR
  9608. THISFORM
  9609. ERROR
  9610. THISFORM
  9611. CHECKOKTORUN
  9612. THISFORM
  9613. CHECKOKTORUN
  9614. InteractiveChange,
  9615. ErrorX
  9616. ProgrammaticChange
  9617. Valid    
  9618. NERROR
  9619. CMETHOD
  9620. NLINE
  9621. LERROR
  9622. THISFORM
  9623. ERROR
  9624. Error,
  9625. NERROR
  9626. CMETHOD
  9627. NLINE
  9628. LERROR
  9629. THISFORM
  9630. ERROR
  9631. NAME.
  9632. THISFORM
  9633. SETADDIN
  9634. OCOVERAGEENGINE
  9635. RELEASE
  9636. Error,
  9637. Click
  9638. TCFILE
  9639. CFILE
  9640. OCOVERAGEENGINE
  9641. CADDIN
  9642. LUSINGREGISTRY
  9643. CHKREGISTERADDINS
  9644. VALUE
  9645. LREGISTERADDINo
  9646. Please specify an Add-In to run
  9647. All Files
  9648.  (*.*)|*.*
  9649. GETFILE
  9650. CBOFILETORUN
  9651. DISPLAYVALUE
  9652. OCOVERAGEENGINE
  9653. GETRESOURCELOCATION 
  9654. CMDOK
  9655. ENABLED
  9656. CBOFILETORUN
  9657. DISPLAYVALUE9
  9658. NERROR
  9659. CMETHOD
  9660. NLINE
  9661. OCOVERAGEENGINE
  9662. ERROR
  9663. Coverage Profiler
  9664. Add-Ins
  9665. Register this \<Add-In after running
  9666. \<Run
  9667. Cancel
  9668. Add-Ins
  9669. cAddInFileb
  9670. TOENGINEREF
  9671. LRETURN
  9672. CADDINFILE
  9673. CAPTION
  9674. CHKREGISTERADDINS
  9675. CMDOK    
  9676. CMDCANCEL
  9677. LBLTITLE
  9678. OCOVERAGEENGINE
  9679. LUSINGREGISTRY
  9680. ENABLED
  9681. AADDINS
  9682. CBOFILETORUN
  9683. ADDITEM
  9684. VALUE
  9685. LREGISTERADDIN
  9686. CADDIN
  9687. DISPLAYVALUED
  9688. NERROR
  9689. CMETHOD
  9690. NLINE
  9691. LERROR
  9692. THISFORM
  9693. ERROR
  9694. NAME4
  9695. THISFORM
  9696. SETADDIN
  9697. CBOFILETORUN
  9698. DISPLAYVALUE
  9699. OCOVERAGEENGINE
  9700. RELEASE
  9701. setaddin,
  9702. getaddin
  9703. checkoktorun
  9704. Error+
  9705. CMDOK.Error%
  9706. CMDOK.Click
  9707. THISFORMSET
  9708. STANDARDRIGHTCLICK
  9709. RightClick,
  9710. NKEYCODE
  9711. NSHIFTALTCTRL
  9712. THISFORMSET
  9713. STANDARDRIGHTCLICK/
  9714. EDTCODE
  9715. WIDTH
  9716. HEIGHT
  9717. THISFORMSET
  9718. STANDARDRIGHTCLICK9
  9719. RELEASETYPE
  9720. THISFORMSET
  9721. NOTIFYZOOMWINDOWCLOSED
  9722. THISFORMSETb
  9723. LIGNORECOVERAGEFILENAMES
  9724. ATEMP
  9725. THISFORMSET
  9726. LRETURN
  9727. PARENT
  9728. LINCOVERAGEFRAME
  9729. WIDTH
  9730. OFRAME
  9731. HEIGHT
  9732. FRMMAINDIALOG
  9733. RESIZE
  9734. KeyPress,
  9735. Resize
  9736. RightClick
  9737. QueryUnload$
  9738. LERROR
  9739. THISFORMSET.BaseClassb
  9740. NERROR
  9741. CMETHOD
  9742. NLINE
  9743. LERROR
  9744. THISFORMSET
  9745. ERROR
  9746. Init,
  9747. ErrorN
  9748. LERROR
  9749. THISFORMSET.BaseClassb
  9750. NERROR
  9751. CMETHOD
  9752. NLINE
  9753. LERROR
  9754. THISFORMSET
  9755. ERROR
  9756. Init,
  9757. ErrorN
  9758. THISFORMSET.BaseClassb
  9759. NERROR
  9760. CMETHOD
  9761. NLINE
  9762. LERROR
  9763. THISFORMSET
  9764. ERROR
  9765. LERROR
  9766. Error,
  9767. THISFORMSET.BaseClassb
  9768. NERROR
  9769. CMETHOD
  9770. NLINE
  9771. LERROR
  9772. THISFORMSET
  9773. ERROR
  9774. NAME.
  9775. NERROR
  9776. CMETHOD
  9777. NLINE
  9778. PARENT
  9779. ERRORA
  9780. CAPTION
  9781. PICTURE
  9782. TOOLTIPTEXTA
  9783. CAPTION
  9784. PICTURE
  9785. TOOLTIPTEXT.
  9786. NERROR
  9787. CMETHOD
  9788. NLINE
  9789. PARENT
  9790. ERROR
  9791. Error,
  9792. Option1.Error
  9793. Option1.InitQ
  9794. Option2.Init
  9795. Option2.Error%
  9796. THISFORMSET.BaseClassb
  9797. NERROR
  9798. CMETHOD
  9799. NLINE
  9800. LERROR
  9801. THISFORMSET
  9802. ERROR
  9803. LERROR
  9804. Error,
  9805. LERROR
  9806. THISFORMSET.BaseClassb
  9807. NERROR
  9808. CMETHOD
  9809. NLINE
  9810. LERROR
  9811. THISFORMSET
  9812. ERROR
  9813. Init,
  9814. ErrorN
  9815. LERRORr
  9816. Problem
  9817. Coverage Profiler
  9818. Problem
  9819. NERROR
  9820. CMETHOD
  9821. NLINE
  9822. LERROR
  9823. Init,
  9824. ErrorN
  9825. LERROR
  9826. THISFORMSET.BaseClassb
  9827. NERROR
  9828. CMETHOD
  9829. NLINE
  9830. LERROR
  9831. THISFORMSET
  9832. ERROR
  9833. Init,
  9834. ErrorN
  9835. THISFORMSET.BaseClassb
  9836. NERROR
  9837. CMETHOD
  9838. NLINE
  9839. LERROR
  9840. THISFORMSET
  9841. ERROR
  9842. LERROR
  9843. Error,
  9844. LERROR
  9845. THISFORMSET.BaseClassb
  9846. NERROR
  9847. CMETHOD
  9848. NLINE
  9849. LERROR
  9850. THISFORMSET
  9851. ERROR
  9852. Init,
  9853. ErrorN
  9854. NCONTAINERWIDTH
  9855. NCONTAINERSPACER
  9856. OCONTROL
  9857. BORDERWIDTH
  9858. NCONTAINERHEIGHT
  9859. CONTROLS
  9860. HEIGHT
  9861. WIDTH
  9862. THISFORM
  9863. NTOOLCOUNT
  9864. CONTROLCOUNT
  9865. LERROR
  9866. THISFORMSET.BaseClassb
  9867. NERROR
  9868. CMETHOD
  9869. NLINE
  9870. LERROR
  9871. THISFORMSET
  9872. ERROR
  9873. LERROR
  9874. synchsizes,
  9875. Error
  9876. THISFORMSET.BaseClassb
  9877. NERROR
  9878. CMETHOD
  9879. NLINE
  9880. LERROR
  9881. THISFORMSET
  9882. ERROR
  9883. LERROR
  9884. Error,
  9885. SHOWOPEN
  9886. SHOWSAVE
  9887. ShowHelp#
  9888. PICTURE
  9889. TOOLTIPTEXT
  9890. CAPTION
  9891. LERROR
  9892. THISFORMSET.BaseClassb
  9893. NERROR
  9894. CMETHOD
  9895. NLINE
  9896. LERROR
  9897. THISFORMSET
  9898. ERROR
  9899. Init,
  9900. Error
  9901. THISFORMSET.BaseClassb
  9902. NERROR
  9903. CMETHOD
  9904. NLINE
  9905. LERROR
  9906. THISFORMSET
  9907. ERROR
  9908. LERROR
  9909. Error,
  9910. CAPTION
  9911. PICTURE
  9912. TOOLTIPTEXT
  9913. LERROR
  9914. THISFORMSET.BaseClassb
  9915. NERROR
  9916. CMETHOD
  9917. NLINE
  9918. LERROR
  9919. THISFORMSET
  9920. ERROR
  9921. Init,
  9922. Error
  9923. wwwwwwwwww
  9924. wwwxw
  9925. ~wwxw
  9926. ~wwxw
  9927. 33330
  9928. 33330
  9929. 333333
  9930. 0wwww
  9931. 0wwww
  9932. 0wwww
  9933. 0wwww
  9934. 0wwww
  9935. 0wwww
  9936. DDDDD
  9937. DDDDD
  9938. * COV_CHAR.H
  9939. * character constants in use by Coverage app
  9940. #DEFINE C_TAB                       CHR(9)
  9941. * tab character
  9942. #DEFINE C_NULL                      CHR(0)
  9943. * null character
  9944. #DEFINE C_TAB_REPLACEMENT           REPL("#",5)
  9945. * we may need to replace tabs during processing
  9946. #DEFINE C_INLINECOMMENT             CHR(38)+CHR(38)
  9947. * double ampersand
  9948. #DEFINE C_COMMENT                   CHR(42)
  9949. * asterisk
  9950. #DEFINE C_DEFINE                    CHR(35)
  9951. * hash or pound sign
  9952. #DEFINE C_CR                        CHR(13)
  9953. * carriage return
  9954. #DEFINE C_DOUBLE_CR                 CHR(13)+CHR(13)
  9955. * double carriage return
  9956. #DEFINE C_CONTINUATION_SYMBOL       CHR(59)
  9957. * semi-colon
  9958. * COV_DLGS.H
  9959. * Constants for components in use by Coverage app
  9960. *&* Messagebox:
  9961. #DEFINE COV_STOP_MESSAGEBOX                     16,COV_DIALOG_CAPTION_LOC+" "+COV_PROBLEM_LOC
  9962. #DEFINE COV_INFO_MESSAGEBOX                     64,COV_DIALOG_CAPTION_LOC+" "+COV_INFO_LOC
  9963. #DEFINE COV_YESNOCANCEL_MESSAGEBOX              32+3,COV_DIALOG_CAPTION_LOC
  9964. #DEFINE COV_WARNING_YESNO_MESSAGEBOX            48+4,COV_DIALOG_CAPTION_LOC
  9965. #DEFINE IDYES                                   6
  9966. #DEFINE IDNO                                    7
  9967. #DEFINE IDCANCEL                                2 
  9968. *&* common dialog classes in use:
  9969. #DEFINE COV_COMMON_FILE_DIALOG_CLASS            "scov_CommonFileDialog"
  9970. #DEFINE COV_COMMON_DIALOG_CLASS                 "scov_CommonDialog"
  9971. #DEFINE cdlScaleModePixels                      3
  9972. *&* common dialog flag constants and results for getfont:
  9973. #DEFINE cdlCFScreenFonts                        0x1
  9974. * Screen fonts supported by the system only
  9975. #DEFINE cdlCFANSIOnly                           0x400
  9976. * Specifies that the dialog box allows only a selection of the fonts that use the Windows character set. 
  9977. * If this flag is set, the user won't be able to select a font that contains only symbols.
  9978. #DEFINE cdlCFForceFontExist                     0x10000
  9979. * Specifies that an error message box is displayed if the user attempts to select a font or style that doesn't exist.
  9980. #DEFINE cdlCFNoStyleSel                            0x100000
  9981. * No style
  9982. #DEFINE cdlCFFixedPitchOnly                        0x4000    
  9983. * Specifies that the dialog box selects only fixed-pitch fonts
  9984. *&* common dialog constants for getfile/putfile:
  9985. #DEFINE cdlOFNPathMustExist                     0x800    
  9986. * User can enter only valid path names.
  9987. #DEFINE cdlOFNNoChangeDir                       0x8
  9988. * Sets the current directory to what it was when the dialog box was invoked.
  9989. #DEFINE cdlOFNHideReadOnly                      0x4
  9990. * Hide readonly checkbox
  9991. #DEFINE cdlOFNExplorer                          0x80000    
  9992. * Use Explorer dialog template
  9993. *&* addtl common dialog constant for getfile/reads:
  9994. #DEFINE cdlOFNFileMustExist                     0x1000    
  9995. * User can enter only names of existing files.
  9996. *&* addtl common dialog constants for putfile/writes:
  9997. #DEFINE cdlOFNOverwritePrompt                   0x2
  9998. * User must confirm whether to overwrite the file.
  9999. #DEFINE cdlOFNNoReadOnlyReturn                  0x8000
  10000. * File can't be Read Only and can't be in a write-protected dir.
  10001. * COV_LOCS.H
  10002. * String constants in use by Coverage app
  10003. * NB: some of these #DEFINEs are dependent on COV_CHAR.H
  10004. * definitions, so this file is #INCLUDEd after COV_CHAR.H
  10005. * in COVERAGE.H
  10006. #DEFINE COV_LOC                       "English-US"
  10007. #IF UPPER(COV_LOC) = "ENGLISH-US"
  10008.    #DEFINE COV_APPLICATION_NAME_LOC             "Coverage Profiler"
  10009.    #DEFINE COV_DIALOG_CAPTION_LOC               COV_APPLICATION_NAME_LOC
  10010.    *&* error messages and other feedback:
  10011.    #DEFINE COV_PROBLEM_LOC                      "Problem"
  10012.    #DEFINE COV_INFO_LOC                         "Information"    
  10013.    #DEFINE COV_DEBUG_ERROR_LOC                  "Error #"
  10014.    #DEFINE COV_DEBUG_LINENO_LOC                 "Line #"
  10015.    #DEFINE COV_LOG_NOT_SPECIFIED_LOC            "No log file specified."
  10016.    #DEFINE COV_LOCATE_CLASSLIB_LOC              "Where is "+COV_APPLICATION_NAME_LOC+"'s VCX?"
  10017.    #DEFINE COV_FILE_DOES_NOT_EXIST_LOC          "File specified does not exist."
  10018.    #DEFINE COV_OKAY_TO_OVERWRITE_LOC            "File specified already exists. "+C_CR+"Okay to overwrite?"
  10019.    #DEFINE COV_ADDIN_DOES_NOT_EXIST_LOC         "Add-In file specified does not exist."
  10020.    #DEFINE COV_ADDIN_NOT_SUPPORTED_TYPE_LOC     "Add-In file specified is not a supported type."
  10021.    #DEFINE COV_LOG_CANNOT_BE_OPENED_LOC         "Log file unavailable."
  10022.    #DEFINE COV_SOURCE_CANNOT_BE_OPENED_LOC      "Source file unavailable."
  10023.    #DEFINE COV_START_LOGGING_LOC                "The log file you chose does not exist yet."+C_DOUBLE_CR + ;
  10024.                                                 "Test your application with COVERAGE SET TO "+C_CR + ;
  10025.                                                 "<your chosen filename>, then run "+COV_APPLICATION_NAME_LOC+C_CR+;
  10026.                                                 "against that log."+C_DOUBLE_CR+;
  10027.                                                 COV_APPLICATION_NAME_LOC+" can SET COVERAGE TO your filename "+ C_CR+;
  10028.                                                 "now and you can test your application.  When you re-run "+ C_CR+;
  10029.                                                 COV_APPLICATION_NAME_LOC+", it will analyze the current "+ C_CR+;
  10030.                                                 "contents of SET('COVERAGE') by default."+C_DOUBLE_CR+;
  10031.                                                 "Would you like to: "+C_DOUBLE_CR+;
  10032.                                                 "SET COVERAGE TO your log file now? (yes)"+C_DOUBLE_CR+;
  10033.                                                 "Pick a filename from existing coverage logs? (no)"+C_DOUBLE_CR+;
  10034.                                                 "Come back later? (cancel)"
  10035.                                                 
  10036.    #DEFINE COV_NO_COVERABLE_CODE_LOC            "A source code entry has no coverable code"+C_CR+;
  10037.                                                 "or is a member of a container object."+C_DOUBLE_CR+;
  10038.                                                 "This record will be deleted."
  10039.    #DEFINE COV_PROJECT_UNAVAILABLE_LOC          "Project file currently unavailable."
  10040.    #DEFINE COV_CANNOT_RESUME_LOC                "Former coverage file is unavailable;"+C_CR+"COVERAGE will be off."
  10041.    #DEFINE COV_LOG_WRONG_FORMAT_LOC             "File specified is not correct Coverage Log format for this version of VFP."
  10042.    #DEFINE COV_LOG_HAS_NO_USABLE_RECORDS_LOC    "Log file has no usable records."
  10043.    #DEFINE COV_NO_USABLE_PROJECT_RECORDS_LOC    "Project has no source-code-type records."
  10044.    #DEFINE COV_NO_LOG_ENTRIES_SKIPPED_LOC       "No log entries were skipped."
  10045.    #DEFINE COV_SWITCHING_OFF_COMMON_DIALOG_LOC  "Common Dialog OCX not found; "+ C_CR + ;
  10046.                                                 "switching to native VFP code version."
  10047.    #DEFINE COV_FEATURE_NEEDS_OCX_LOC            "This feature is currently unavailable, "+C_CR+ ;
  10048.                                                 "because it requires an ActiveX control "+C_CR+ ;
  10049.                                                 "not found on your system."
  10050.    #DEFINE COV_ALREADY_ACTIVE_LOC               COV_APPLICATION_NAME_LOC+" already active!"
  10051.    #DEFINE COV_REOPEN_SAME_LOG_FILE_LOC         "You haven't changed the specified Coverage filename."+ ;
  10052.                                                 C_DOUBLE_CR+;
  10053.                                                 "Do you want to re-examine this Coverage file?"
  10054.                                                 
  10055.    #DEFINE COV_MARKS_CHANGED_LOC                "You have changed Coverage marks, but some records "+C_CR+;
  10056.                                                 "in the current log are already marked. "+ ;
  10057.                                                 C_DOUBLE_CR+ ;
  10058.                                                 "Would you like to: "+ ;
  10059.                                                 C_DOUBLE_CR+ ;
  10060.                                                 "Preserve current marked records (yes) or "+ ;
  10061.                                                 C_DOUBLE_CR+ ;
  10062.                                                 "Empty and re-mark these records (no)?"
  10063.    #DEFINE COV_MARK_ALL_NOW_LOC                 "You have chosen to mark all records on load, but "+C_CR+;
  10064.                                                 "some records in the current log may not be marked yet. "+ ;
  10065.                                                 C_DOUBLE_CR+ ;
  10066.                                                 "Would you like to mark all records now?"                                                
  10067.    #DEFINE COV_RESUME_LOC                       "Running Coverage Profiler temporarily suspended" + C_CR + ;
  10068.                                                 "coverage logging to " + THIS.cSuspendedLog + "." + ;
  10069.                                                 C_DOUBLE_CR + ;
  10070.                                                 "How would you like to resume coverage logging to this file?" + ;
  10071.                                                 C_DOUBLE_CR + ;
  10072.                                                 "Click:"+ C_TAB + "To have this effect:" + ;
  10073.                                                 C_DOUBLE_CR + ;  
  10074.                                                 "Yes"+ SPACE(2) + C_TAB + "-- Append records to the log file" + C_CR + ;
  10075.                                                 "No"+ SPACE(3) + C_TAB + "-- Overwrite the log file" + C_CR + ;
  10076.                                                 "Cancel"+ C_TAB + "-- Leave coverage set off"
  10077.    #DEFINE COV_BAD_PARAMS_LOC                   "You have passed one or more parameters incorrectly." + ;
  10078.                                                 C_DOUBLE_CR+ ;
  10079.                                                 "This application takes the following "+ C_CR + ;
  10080.                                                 "parameters, all optional:"+ ;
  10081.                                                 C_DOUBLE_CR + ;
  10082.                                                 "(1), type 'C'     the name of a coverage log to mark;"+ ;
  10083.                                                 C_DOUBLE_CR + ;
  10084.                                                 "(2), type 'L'     a switch to process the log unattended;" + ;
  10085.                                                 C_DOUBLE_CR + ;
  10086.                                                 "(3), type 'C'     the name of an Add-In program to run."
  10087.   #DEFINE COV_BADDIALOGS_LOC                    "Cov_Standard's .cMainDialogClass and/or .cZoomDialogClass"+C_CR+;
  10088.                                                 "have been incorrectly assigned."+C_DOUBLE_CR+;
  10089.                                                 "This Coverage User Interface class must contain dialogs"+C_CR+;
  10090.                                                 "descended from "+ ;
  10091.                                                 "cov_MainDialog_Standard and cov_ZoomDialog."
  10092.    *&*GETFILE/PUTFILE dialog titles, filters, etc:
  10093.    #DEFINE COV_GETMAINFILE_TITLE_LOC            "Please confirm main program for"
  10094.    #DEFINE COV_GETSOURCEFILE_TITLE_LOC          "Please locate"
  10095.    #DEFINE COV_SETTARGETDBF_TITLE_LOC           "Please specify location to save Coverage results for"
  10096.    #DEFINE COV_SAVEDTARGET_AS_LOC               "Your coverage analysis is saved as"   
  10097.    #DEFINE COV_SAVEDSKIPFILES_AS_LOC            "Some source files could not be located;"+C_CR+;
  10098.                                                 "their names are saved in a second table"  
  10099.    #DEFINE COV_GETLOGFILE_TITLE_LOC             "Please specify coverage log file"
  10100.    #DEFINE COV_GETPROJECTFILE_TITLE_LOC         "Please specify a project file to check"
  10101.    #DEFINE COV_GETADDINFILE_TITLE_LOC           "Please specify an Add-In to run"
  10102.    #DEFINE COV_GETFILE_BUTTON_LOC               "Select"
  10103.    #DEFINE COV_LOGFILES_LOC                     "Coverage Logs"
  10104.    #DEFINE COV_ALLFILES_LOC                     "All Files"
  10105.    #DEFINE COV_PROJECTSONLY_LOC                 "Projects Only"
  10106.    #DEFINE COV_PROGRAMSONLY_LOC                 "Programs Only"
  10107.    #DEFINE COV_DBFSONLY_LOC                     "Table/DBF"
  10108.    #DEFINE COV_SOURCEFILES_LOC                  "Source Files"   
  10109.    *&* wait window nowait /status bar messages during processing
  10110.    #DEFINE COV_FILLING_ALL_RECORDS_LOC          "Checking Coverage of all target source files..."
  10111.    #DEFINE COV_MARKING_ALL_RECORDS_LOC          "Marking all source code..."
  10112.    #DEFINE COV_EMPTYING_ALL_RECORDS_LOC         "Changing Coverage modes and emptying marked code..."
  10113.    #DEFINE COV_CREATING_FILES_FROM_LOC          "Creating work files from"
  10114.    #DEFINE COV_CHECKING_SOURCE_AVAIL_FROM_LOC   "Checking for source code for"
  10115.    #DEFINE COV_MARKING_SOURCE_FOR_LOC           "Marking source code for"
  10116.    #DEFINE COV_GETTING_SOURCECODE_FROM_LOC      "Getting source code from"
  10117.    #DEFINE COV_CHECKING_FOR_VALID_LOG_LOC       "Validating source file..."
  10118.    #DEFINE COV_INDEXING_SOURCE_RECORDS_LOC      "Indexing source records..."
  10119.    #DEFINE COV_CREATING_TARGET_ITEMS_LOC        "Creating target items..."
  10120.                                                 
  10121.    *&* main dialog buttons (tooltips and default captions if no pictures)
  10122.    #DEFINE COV_OPEN_LOC                         "Open"
  10123.    #DEFINE COV_SAVE_LOC                         "Save"   
  10124.    #DEFINE COV_COVERAGE_MODE_LOC                "Coverage Mode"
  10125.    #DEFINE COV_PROFILE_MODE_LOC                 "Profile Mode"
  10126.    #DEFINE COV_PREVIEW_MODE_LOC                 "Preview Mode"
  10127.    #DEFINE COV_ZOOM_MODE_LOC                    "Zoom Mode"
  10128.    #DEFINE COV_STATISTICS_LOC                   "Statistics"
  10129.    #DEFINE COV_OPTIONS_LOC                      "Options"
  10130.    #DEFINE COV_ADDINS_LOC                       "Add-Ins"   
  10131.    #DEFINE COV_HELP_LOC                         "Help"
  10132.    #DEFINE COV_OKCLOSE_LOC                      "OK"
  10133.    #DEFINE COV_CANCEL_LOC                       "Cancel"   
  10134.    *&* Main and Zoom dialog strings      
  10135.    #DEFINE COV_FULL_SOURCE_FILE_LOC             "All Classes, Objects, Procs"
  10136.    #DEFINE COV_ZOOM_MARKED_CODE_FOR_LOC         "Marked Code For"  
  10137.    #DEFINE COV_ZOOM_GET_CODE_LOC                "Fast Mode: DoubleClick/Enter on List for Code"
  10138.    #DEFINE COV_PROFILE_MARK_1ST_LOC             "1st"
  10139.    #DEFINE COV_PROFILE_MARK_AVG_LOC             "Avg"   
  10140.    #DEFINE COV_PROFILE_ONE_HIT_LOC              "Hit"
  10141.    #DEFINE COV_PROFILE_HITS_LOC                 "Hits"
  10142.    *&* Statistics dialog and reporting
  10143.    #DEFINE COV_STATS_VIEW_DETAILS_LOC           "View details"
  10144.    #DEFINE COV_STATS_VIEW_FILES_SKIPPED_LOC     "\<Source Files Skipped"
  10145.    #DEFINE COV_STATS_VIEW_SOURCE_LOG_LOC        "Source Text \<Log"
  10146.    #DEFINE COV_STATS_VIEW_PROJECT_LOC           "Statistics by \<Project..."
  10147.    #DEFINE COV_STATS_LINES_COVERABLE_LOC        "Total coverable lines"
  10148.    #DEFINE COV_STATS_LINES_HIT_LOC              "Line(s) hit"
  10149.    #DEFINE COV_STATS_LINES_MISSED_LOC           "Line(s) missed"
  10150.    #DEFINE COV_STATS_PCT_LINES_LOC              "% Covered Linecount"
  10151.    #DEFINE COV_STATS_OBJS_COVERABLE_LOC         "Classes with code"
  10152.    #DEFINE COV_STATS_OBJS_HIT_LOC               "Class(es) hit"
  10153.    #DEFINE COV_STATS_OBJS_MISSED_LOC            "Class(es) missed"
  10154.    #DEFINE COV_STATS_PCT_OBJS_LOC               "% Covered Classes"
  10155.    #DEFINE COV_STATS_FULL_FILE_LOC              "All Objects and Procs"
  10156.    #DEFINE COV_STATS_PJXFILES_HIT_LOC           "Project Source Files Hit"
  10157.    #DEFINE COV_STATS_PJXFILES_COVERABLE_LOC     "Total Source Code Files For Project"
  10158.    #DEFINE COV_STATS_PJXLINES_HIT_LOC           "Total Project Lines Hit"
  10159.    #DEFINE COV_STATS_PJXLINES_COVERABLE_LOC     "Total Lines Coverable Code in Files Hit"
  10160.    #IF ATC("FoxPro 05",VERSION()) > 0
  10161.       #DEFINE COV_STATS_PJXOBJS_HIT_LOC            "Total Classes Hit in Project VCXs and SCXs"
  10162.       #DEFINE COV_STATS_PJXOBJS_COVERABLE_LOC      "Total Classes in Project VCXs and SCXs contain code"
  10163.    #ELSE
  10164.       #DEFINE COV_STATS_PJXOBJS_HIT_LOC            "Total Classes Hit in Project VCXs, SCXs, FRXs, and LBXs"
  10165.       #DEFINE COV_STATS_PJXOBJS_COVERABLE_LOC      "Total Classes in Project VCXs, SCXs, FRXs, and LBXs contain code"
  10166.    #ENDIF
  10167.    #DEFINE COV_STATS_PCT_PJXFILES_LOC           "% Project Coverage by Files"
  10168.    #DEFINE COV_STATS_PCT_PJXLINES_LOC           "% Project Coverage by Lines (Files Hit Only)"
  10169.    #DEFINE COV_STATS_PCT_PJXOBJS_LOC            "% Class Code Coverage for Project Files Hit"
  10170.    #DEFINE COV_STATS_FILE_NOT_HIT_LOC           "File skipped or not logged"
  10171.    *&* Options dialog
  10172.    #DEFINE COV_OPT_SMARTPATH_LOC                "Use \<Smart Pathing"
  10173.    #DEFINE COV_OPT_REGISTER_ADDINS_LOC          "Register \<Add-Ins when run"   
  10174.    #DEFINE COV_OPT_MARKALL_LOC                  "\<Mark all code while log loads"
  10175.    #DEFINE COV_OPT_COVERAGE_MARKS_LOC           "Coverage marks"
  10176.    #DEFINE COV_OPT_MARKS_WILL_BE_MATCHED_LOC    "Mark lengths will be matched"
  10177.    #DEFINE COV_OPT_MARK_EXECUTED_LOC            "\<Executed:"
  10178.    #DEFINE COV_OPT_MARK_NOT_EXECUTED_LOC        "\<Not executed:"
  10179.    #DEFINE COV_OPT_FONTS_LOC                    "Fonts"
  10180.    #DEFINE COV_OPT_GETFONT_LOC                  "D\<isplay Font..."
  10181.    #DEFINE COV_OPT_GETFIXEDFONT_LOC             "C\<ode Font..."
  10182.    #DEFINE COV_OPT_SET_DEFAULTS_LOC             "Set as \<default"
  10183.    #DEFINE COV_OPT_START_IN_LOC                 "Start mode"
  10184.    #DEFINE COV_OPT_START_COVERAGE_LOC           "\<Coverage"   
  10185.    #DEFINE COV_OPT_START_PROFILE_LOC            "\<Profile"
  10186.    #DEFINE COV_OPT_ENVIRONMENT_LOC              "Environment"
  10187.    #DEFINE COV_OPT_COVFRAME_LOC                 "Co\<verage frame"
  10188.    #DEFINE COV_OPT_VFPFRAME_LOC                 "Fo\<xPro frame"
  10189.    *&* shortcut prompts (different hotkeys)
  10190.    #DEFINE COV_SC_SMARTPATH_LOC                "\<Use Smart Pathing"
  10191.    #DEFINE COV_SC_GETFONT_LOC                  "\<Display Font..."
  10192.    #DEFINE COV_SC_GETFIXEDFONT_LOC             "\<Code Font..."
  10193.    #DEFINE COV_SC_STATISTICS_LOC               "\<Statistics..."
  10194.    #DEFINE COV_SC_ADDINS_LOC                   "\<Add-Ins..."
  10195.    #DEFINE COV_SC_SOURCELOG_LOC                "\<View Source Log"
  10196.    #DEFINE COV_SC_ARRANGE_LOC                  "Cascade \<Windows"
  10197.    #DEFINE COV_SC_FASTZOOM_LOC                 "Fast \<Zoom Mode"
  10198.    *&* Add-Ins dialog
  10199.    #DEFINE COV_ADDIN_REGISTER_LOC               "Register this \<Add-In after running"
  10200.    #DEFINE COV_ADDIN_RUN_LOC                    "\<Run"
  10201. #ELSE
  10202.    * this case can contain empty #defs,
  10203.    * for pasting to new #ELIF cases above
  10204. #ENDIF
  10205. * COV_REG.H
  10206. * constants for Coverage Standard UI app registry object
  10207. * constant list and procs excerpted from REGISTRY.PRG
  10208. * Copyright (c) 1995,1996 Sierra Systems, Microsoft Corporation
  10209. * Written by Randy Brown
  10210. * Contributions from Matt Oshry, Calvin Hsia
  10211. * Delivered as a PRG sample in VFP 5
  10212. * Randy's Registry class provides a complete library of API
  10213. * calls to access the Windows Registry. Support is provided
  10214. * for Windows 32S, Windows NT amd Windows 95. Included for
  10215. * backward compatibility with older applications which still
  10216. * use INI files are several routines which access INI sections
  10217. * and details. Finally, several valuable routines are included
  10218. * for accessing ODBC drivers and data sources.
  10219. * The Coverage registry object is a lightweight
  10220. * version that subsets Randy's Registry functionality
  10221. * and adds some VFP6- and Coverage- specific items.
  10222. * Operating System codes
  10223. #DEFINE   OS_NT            2
  10224. #DEFINE   OS_WIN95         3
  10225. * DLL Paths for various operating systems
  10226. #DEFINE DLLPATH_NT         "\SYSTEM32\"
  10227. #DEFINE DLLPATH_WIN95      "\SYSTEM\"
  10228. * DLL files used to read registry
  10229. #DEFINE   DLL_ADVAPI_NT      "ADVAPI32.DLL"
  10230. #DEFINE   DLL_ADVAPI_WIN95   "ADVAPI32.DLL"
  10231. * Registry roots
  10232. #DEFINE HKEY_CLASSES_ROOT           -2147483648  && BITSET(0,31)
  10233. #DEFINE HKEY_CURRENT_USER           -2147483647  && BITSET(0,31)+1
  10234. #DEFINE HKEY_LOCAL_MACHINE          -2147483646  && BITSET(0,31)+2
  10235. #DEFINE HKEY_USERS                  -2147483645  && BITSET(0,31)+3
  10236. * Misc
  10237. #DEFINE APP_PATH_KEY                "\Shell\Open\Command"
  10238. #DEFINE OLE_PATH_KEY                "\Protocol\StdFileEditing\Server"
  10239. #DEFINE VFP5_KEYPATH                "Software\Microsoft\VisualFoxPro\5.0"
  10240. #DEFINE VFP6_KEYPATH                "Software\Microsoft\VisualFoxPro\6.0"
  10241. #DEFINE VFP_COVERAGE_KEY            "\Coverage"
  10242. #DEFINE VFP_OPTIONS_KEY             "\Options"
  10243. #DEFINE CURVER_KEY                  "\CurVer"
  10244. * Error Codes
  10245. #DEFINE ERROR_SUCCESS      0   && OK
  10246. #DEFINE ERROR_EOF          259 && no more entries in key
  10247. * Note these next error codes are specific to this Class, not DLL
  10248. #DEFINE ERROR_NOAPIFILE      -101   && DLL file to check registry not found
  10249. #DEFINE ERROR_KEYNOREG       -102   && key not registered
  10250. #DEFINE ERROR_BADPARM        -103   && bad parameter passed
  10251. #DEFINE ERROR_NOENTRY        -104   && entry not found
  10252. #DEFINE ERROR_BADKEY         -105   && bad key passed
  10253. #DEFINE ERROR_NONSTR_DATA    -106   && data type for value is not a data string
  10254. #DEFINE ERROR_BADPLAT        -107   && platform not supported
  10255. #DEFINE ERROR_NOINIFILE      -108   && DLL file to check INI not found
  10256. #DEFINE ERROR_NOINIENTRY     -109   && No entry in INI file
  10257. #DEFINE ERROR_FAILINI        -110   && failed to get INI entry
  10258. #DEFINE ERROR_NOPLAT         -111   && call not supported on this platform
  10259. #DEFINE ERROR_NOODBCFILE     -112   && DLL file to check ODBC not found
  10260. #DEFINE ERROR_ODBCFAIL       -113   && failed to get ODBC environment
  10261. * Data types for keys
  10262. #DEFINE REG_SZ             1   && Data string
  10263. #DEFINE REG_BINARY         3   && Binary data in any form.
  10264. #DEFINE REG_DWORD          4   && A 32-bit number.
  10265. * Data types labels
  10266. #DEFINE REG_BINARY_LOC      "*Binary*"         && Binary data in any form.
  10267. #DEFINE REG_DWORD_LOC       "*Dword*"         && A 32-bit number.
  10268. #DEFINE REG_UNKNOWN_LOC      "*Unknown type*"   && unknown type
  10269. * COV_SPEC.H
  10270. * Constants required by current Coverage app specifications
  10271. #DEFINE COV_COMPILED_IN_VFP5       ( "PRO 05." $ UPPER(VERSION()) )
  10272. #DEFINE COV_MESSAGE_LIMIT           254
  10273. * used to trim WAIT WINDOW messages to the legal limit
  10274. * FRX Object Types:
  10275. #DEFINE N_FRX_DATAENVIRONMENT_OBJTYPE    25
  10276. #DEFINE N_FRX_CURSOR_RELATION_OBJTYPE    26
  10277. * Mouse Pointers:
  10278. #DEFINE MOUSEPOINTER_ARROW_UP        10
  10279. #DEFINE MOUSEPOINTER_HOURGLASS       11
  10280. #DEFINE MOUSEPOINTER_ARROW_EW        9
  10281. #DEFINE MOUSEPOINTER_SIZE_NS         7
  10282. #DEFINE MOUSEPOINTER_DEFAULT         0
  10283. * set by format of internally-created log:
  10284. #DEFINE N_COVLOG_FIELDCOUNT_V5       5
  10285. #DEFINE N_COVLOG_FIELDCOUNT_V6       6
  10286. #DEFINE COV_LOG_DELIMITER            ,
  10287. * comma, at least so far!
  10288. * and you can't use CHR(44) or any other
  10289. * variant thereof, that I can find...
  10290. * currently required:
  10291. #DEFINE COV_IGNORE_COVERAGE_FILES     .T.
  10292. #DEFINE COV_KNOWN_ALIAS_PROPERTIES    "SOURCE","TARGET","SKIPPED","COVFILES","PROJECT"
  10293. #DEFINE COV_KNOWN_PJX_TYPES           "K","V","P","M","Q","R","B","F","d"
  10294. #DEFINE COV_BASE_CLASSLIB             "COVERAGE.VCX"
  10295. * COV_TUNE.H
  10296. * Default/tunable option settings for Coverage app
  10297. * reference variable for the formset:
  10298. #DEFINE COV_PUBLIC_VARIABLE         _oCoverage
  10299. * class to instance:
  10300. #DEFINE COV_CLASS_TO_INSTANCE       "cov_standard"
  10301. #DEFINE COV_CLASS_CLASSLIB          "COVERAGE.VCX"
  10302. * forms in use by the cov_standard interface:
  10303. #DEFINE COV_MAINFORM                "cov_maindialog_standard"
  10304. #DEFINE COV_ZOOMFORM                "cov_zoomdialog"
  10305. #DEFINE COV_MAINFORM_CLASSLIB       "COVERAGE.VCX"
  10306. #DEFINE COV_ZOOMFORM_CLASSLIB       "COVERAGE.VCX"
  10307. * The two form classes must descend from 
  10308. * cov_maindialog_standard and
  10309. * cov_zoomdialog,
  10310. * or cov_standard will refuse to instantiate.
  10311. * modal dialogs in use by the cov_standard interface:
  10312. #DEFINE COV_STATISTICSDIALOG          "cov_statisticsdialog"
  10313. #DEFINE COV_STATISTICS_CLASSLIB       "COVERAGE.VCX"
  10314. #DEFINE COV_OPTIONSDIALOG             "cov_optionsdialog"
  10315. #DEFINE COV_OPTIONS_CLASSLIB          "COVERAGE.VCX"
  10316. #DEFINE COV_ADDINDIALOG               "cov_addindialog"
  10317. #DEFINE COV_ADDIN_CLASSLIB            "COVERAGE.VCX"
  10318. * default profile marking:
  10319. #DEFINE COV_PROFILE_EXECUTED_SPACING 12
  10320. #DEFINE COV_PROFILE_STATS_SPACING    12
  10321. * default coverage marking
  10322. #DEFINE COV_DEFAULT_MARKEXECUTED     ""
  10323. #DEFINE COV_DEFAULT_MARKNOTEXECUTED  "|"+SPACE(3)
  10324. #DEFINE COV_DEFAULT_MARKSPACING      5
  10325. * default fonts:
  10326. #DEFINE COV_DEFAULT_BASE_FONTNAME   "MS San Serif"
  10327. #DEFINE COV_DEFAULT_MONO_FONTNAME   "Courier New"
  10328. * these defaults will be overwritten by registry
  10329. * (trace window and standard Font properties) or
  10330. * if available resource file entries
  10331. * suffixs for default savenames for coverage result tables:
  10332. #DEFINE COV_SKIPFILEDBF_SUFFIX       "_SKIP"
  10333. #DEFINE COV_TARGETDBF_SUFFIX         "_COV"
  10334. #DEFINE COV_USE_OCXS                .T.
  10335. #DEFINE COV_TOPSPEED                .F.
  10336. * Make this one .T. if you want a fast, in-line call
  10337. * while Coverage parses your code.
  10338. * Using the method call, OTOH, gives you more
  10339. * scope for formatting the marks:
  10340. #IF COV_TOPSPEED
  10341.     #DEFINE COV_MARK_CODE_LINE      IIF(THIS.lInProfileMode, ;
  10342.                                         IIF(ISNULL(iExecuted), ;
  10343.                                             SPACE(30), ;
  10344.                                             STR(iExecuted,10,0)+ ;
  10345.                                             STR(nFirst,10,3)+STR(nAverage,10,3)), ;
  10346.                                         IIF(ISNULL(iExecuted), ;
  10347.                                             SPACE(LEN(THIS.cMarkExecuted)), ;
  10348.                                             IIF(iExecuted > 0, ;
  10349.                                                 THIS.cMarkExecuted, ;
  10350.                                                 THIS.cMarkNotExecuted)) ) + ;
  10351.                                      SPACE(4) + ;
  10352.                                      cRealLine
  10353. #ELSE
  10354.     #DEFINE COV_MARK_CODE_LINE      THIS.MarkCodeLine(cRealLine,iExecuted, nFirst, nAverage)
  10355. #ENDIF
  10356. * The following item is used for SET MEMOWIDTH in the Coverage 
  10357. * private data session.
  10358. * The Coverage engine uses MLINE(), MEMLINES(), and _MLINE to parse
  10359. * lines of source code.
  10360. * Note: this figure is the command line limit, and SET MEMOWIDTH
  10361. * limit, in VFP 6. In VFP 5, SETting MEMOWIDTH TO this value still 
  10362. * results in a setting of 1024 (the VFP 5 command and SET MEMOWIDTH
  10363. * limit).
  10364. * You can change this setting manually in the Coverage data session
  10365. * any time you like.... unless you write *lines without 
  10366. * continuation/concatenation* that are extremely long, 
  10367. * you do not need this high a limit --  and you may find that 
  10368. * leaving it at this setting uses slightly more memory than necessary.
  10369. * (Remember that we're not talking about macro-expanded SELECT statements,
  10370. * here, but rather the length of the actual code lines you *type*.)
  10371. * When figuring your longest lines of code, take a look at the length
  10372. * of your object and procedure names
  10373. * This figure is set at the outside limit for safety's sake.
  10374. #DEFINE COV_MEMOWIDTH                 8192
  10375. * The following items define the length of 
  10376. * character fields in the source and target cursors.
  10377. * Their default values (115 each) are defined by
  10378. * max length concatenated key,
  10379. * since two of these may be used together.
  10380. * To conserve disk space, especially in the source
  10381. * cursor and its CDX, you may reduce the size
  10382. * of these fields if you wish.  However,
  10383. * use care, or errors will occur
  10384. * when filenames or object/container
  10385. * information is truncated, as described below.
  10386. * As in the COV_MARK_CODE_LINE item above,
  10387. * these items are defined in two ways, depending
  10388. * on the setting of COV_TOPSPEED.  Setting 
  10389. * COV_TOPSPEED .T. will give you the fastest possible
  10390. * execution, since these #DEFINEs will resolve to a 
  10391. * literal.  By contrast, when COV_TOPSPEED is .F.,
  10392. * (the default value of this #DEFINE), 
  10393. * these #DEFINEs resolve to coverage engine properties,
  10394. * which means they take a little longer to execute but
  10395. * can be tweaked dynamically, for example when you know
  10396. * you are about to open a very large log.
  10397. * Whether you change these values in the #DEFINEs or
  10398. * in the property values, be mindful of the following
  10399. * conditions:
  10400. * If you choose to increase any of these values, 
  10401. * don't make the sum of any two of them over 240,
  10402. * to avoid potential max key length problems.
  10403. * If you choose to decrease any of these values, to
  10404. * conserve diskspace, avoid decreasing Hostfile unless
  10405. * you are sure the lengths of your fully-qualified 
  10406. * source files will not be exceeded. Otherwise,
  10407. * you may receive errors when the Profiler tries
  10408. * to find the uncompiled versions of these files.  
  10409. * Whether you decrease ObjClass, Executing, or both,
  10410. * be sensible. If you know you nest pageframes and
  10411. * grids several container-layers deep, or that
  10412. * you tend to use very long class names, try to
  10413. * stay above the maximum string these fields 
  10414. * are likely to contain, plus a margin for error.
  10415. * You may want to examine the source and target files
  10416. * first, to see how the engine uses these fields.
  10417. * Be on the lookout for suddenly-incorrect 
  10418. * Coverage and Profiling statistics,
  10419. * even though you may receive no obvious errors when
  10420. * when the Profiler analyzes the log.
  10421. * Statistical errors will occur if object and method names 
  10422. * are being truncated in the fields.
  10423. #IF COV_TOPSPEED
  10424.    #DEFINE COV_LEN_HOSTFILE            115
  10425.    #DEFINE COV_LEN_OBJCLASS            115
  10426.    #DEFINE COV_LEN_EXECUTING           115
  10427. #ELSE
  10428.    #DEFINE COV_LEN_HOSTFILE            THISFORMSET.iLenHostFile
  10429.    #DEFINE COV_LEN_OBJCLASS            THISFORMSET.iLenObjClass
  10430.    #DEFINE COV_LEN_EXECUTING           THISFORMSET.iLenExecuting
  10431. #ENDIF
  10432. #DEFINE COV_LINES_TO_VALIDATE       100
  10433. #DEFINE COV_POINT_SETTING           "."
  10434. * The following item is the report form in use 
  10435. * by the cov_standard.DisplayProjectStatistics()
  10436. * method. 
  10437. * Note that this method is abstract in the cov_engine class.
  10438. * It is called by cov_engine.ShowProjectStatistics() after 
  10439. * cov_engine.GetProjectStatistics(), which serves to
  10440. * create a cursor containing the appropriate information.
  10441. * You can use a different FRX, and recompile COVERAGE.APP,
  10442. * to change cov_standard's display of this cursor,
  10443. * or you can subclass cov_engine with a different 
  10444. * .DisplayProjectStatistics() method that doesn't 
  10445. * use a REPORT FORM mechanism at all.
  10446. * Refer to cov_engine.GetProjectStatistics() to 
  10447. * the makeup of the project statistics cursor.
  10448. #DEFINE COV_PROJECT_FRX             "COV_PJX.FRX"
  10449. * debugging:
  10450. #DEFINE COV_DEBUG                    .F.
  10451. #DEFINE COV_TIMEOUT_SECS             2
  10452. #IF COV_DEBUG
  10453.     #DEFINE COV_DEBUG_MESSAGE        WAIT WINDOW LEFT(MESSAGE()+C_CR+;
  10454.                                                       SYS(2018)+C_CR+;
  10455.                                                       cMethod+C_CR+;
  10456.                                                       MESSAGE(1),COV_MESSAGE_LIMIT) ;
  10457.                                           TIMEOUT COV_TIMEOUT_SECS
  10458.     #DEFINE COV_DEBUG_ACTION         ERROR nError
  10459.     #DEFINE COV_ENGINE_ERROR_DEFAULT NOTE
  10460. #ELSE
  10461.     #DEFINE COV_DEBUG_MESSAGE        MESSAGEBOX(COV_PROBLEM_LOC+":"+C_CR+;
  10462.                                                 MESSAGE()+C_CR+;
  10463.                                                 cMethod,COV_STOP_MESSAGEBOX)
  10464.     #DEFINE COV_DEBUG_ACTION         NOTE
  10465.     #DEFINE COV_ENGINE_ERROR_DEFAULT THIS.Release()
  10466. #ENDIF
  10467. * COVERAGE.H
  10468. *&* Coverage character constants for log and parsing:
  10469. #INCLUDE COV_CHAR.H
  10470. *&* Coverage localized strings (may use some constants above):
  10471. #INCLUDE COV_LOCS.H
  10472. *&* Coverage common dialog component constants:
  10473. #INCLUDE COV_DLGS.H
  10474. *&* Coverage specs & requirements:
  10475. #INCLUDE COV_SPEC.H
  10476. *&* Coverage registry object constants:
  10477. #INCLUDE COV_REGS.H
  10478. *&* Coverage tune-able options:
  10479. #INCLUDE COV_TUNE.H
  10480. PLATFORM
  10481. UNIQUEID
  10482. TIMESTAMP
  10483. OBJTYPE
  10484. OBJCODE
  10485. HEIGHT
  10486. WIDTH
  10487. STYLE
  10488. PICTURE
  10489. ORDER
  10490. UNIQUE
  10491. COMMENT
  10492. ENVIRON
  10493. BOXCHAR
  10494. FILLCHAR
  10495. PENRED
  10496. PENGREEN
  10497. PENBLUE
  10498. FILLRED
  10499. FILLGREEN
  10500. FILLBLUE
  10501. PENSIZE
  10502. PENPAT
  10503. FILLPAT
  10504. FONTFACE
  10505. FONTSTYLE
  10506. FONTSIZE
  10507. RULER
  10508. RULERLINES
  10509. GRIDV
  10510. GRIDH
  10511. FLOAT
  10512. STRETCH
  10513. STRETCHTOP
  10514. BOTTOM
  10515. SUPTYPE
  10516. SUPREST
  10517. NOREPEAT
  10518. RESETRPT
  10519. PAGEBREAK
  10520. COLBREAK
  10521. RESETPAGE
  10522. GENERAL
  10523. SPACING
  10524. DOUBLE
  10525. SWAPHEADER
  10526. SWAPFOOTER
  10527. EJECTBEFOR
  10528. EJECTAFTER
  10529. PLAIN
  10530. SUMMARY
  10531. ADDALIAS
  10532. OFFSET
  10533. TOPMARGIN
  10534. BOTMARGIN
  10535. TOTALTYPE
  10536. RESETTOTAL
  10537. RESOID
  10538. CURPOS
  10539. SUPALWAYS
  10540. SUPOVFLOW
  10541. SUPRPCOL
  10542. SUPGROUP
  10543. SUPVALCHNG
  10544. SUPEXPR
  10545.  WINDOWS _RKG1EC3CA 581548962 1 53
  10546.     1.000    0.000    0.000   -1.000
  10547.                                              
  10548.   0 10   20T1212   FF                     T                F      
  10549.  WINDOWS _RKO12T389           9  0
  10550.                    6459.000    0.000
  10551.                                              
  10552.                        F  FFF           F                         
  10553.  WINDOWS _RKG1EC3CC           9  1
  10554.                       0.000    0.000
  10555.                                              
  10556.                        F  FFF           F                         
  10557.  WINDOWS _RKG1EC3CD           9  4
  10558.                   14167.000    0.000
  10559.                                              
  10560.                        F  FFF           F                         
  10561.  WINDOWS _RKG1EC3CE           9  7
  10562.                       0.000    0.000
  10563.                                              
  10564.                        F  FFF           T                         
  10565.  WINDOWS _RKG1ENPY8           9  8
  10566.                   19792.000 1.012E+9
  10567.                                              
  10568.                        T  FTT           T                         
  10569.  WINDOWS _RKH0Z67E8 581600017 8  0
  10570. 11145.833 1875.000 1875.00058854.167
  10571.     0    0    0   -1   -1   -1               #
  10572.   4 10  1          T   F          2          0       0 1    TF0 0F$
  10573.  WINDOWS _RKH0Z67E9 582392667 8  0
  10574. 11041.667 1875.000 1979.16775416.667
  10575.     0    0    0   -1   -1   -1               '
  10576.   2 10  1        T T   F          2          0       0 1    TF0 0F(
  10577.  WINDOWS _RKH0Z67EA 581600017 8  0
  10578. 13125.000 1770.833 1875.00011666.667
  10579.     0    0    0   -1   -1   -1               ,
  10580.   0 10  1          T   T          0          1       0 6    TF0 0F-
  10581.  WINDOWS _RKH0Z67EB 581600017 8  0
  10582. 15000.000 1770.833 1875.00011666.667
  10583.     0    0    0   -1   -1   -1               0
  10584.   0 10  1          T   T          0          1       0 6    TF0 0F1
  10585.  WINDOWS _RKH0Z67EC 582061767 8  0
  10586. 13125.00014270.833 1875.00062916.667
  10587.     0    0    0   -1   -1   -1               4
  10588.   0 10  1          T   T          0          0       0 1    TF0 0F5
  10589.  WINDOWS _RKH0Z67ED 582061772 8  0
  10590. 15000.00014270.833 1875.00062916.667
  10591.     0    0    0   -1   -1   -1               8
  10592.   0 10  1          T   T          0          0       0 1    TF0 0F9
  10593.  WINDOWS _RKH0Z67EE 608795832 8  0
  10594. 20625.00014270.833 1875.00062916.667
  10595.     0    0    0   -1   -1   -1               <
  10596.   0 10  1          T   T          0          0       0 1    TF0 0F=
  10597.  WINDOWS _RKH0Z67EF 608795707 8  0
  10598. 20625.000 1770.833 1875.00011666.667
  10599.     0    0    0   -1   -1   -1               B
  10600.   0 10  1          T   T          0          1       0 6    TF0 0FC
  10601.  WINDOWS _RKH11NL6Q 608922411 8  0
  10602. 22500.00014270.833 1875.00062916.667
  10603.     0    0    0   -1   -1   -1               F
  10604.   0 10  1          T   T          0          0       0 1    FF0 0TG
  10605.  WINDOWS _RKH11NL6R 608922406 8  0
  10606. 22500.000 1770.833 1875.00011666.667
  10607.     0    0    0   -1   -1   -1               N
  10608.   0 10  1          T   T          0          1       0 6    FF0 0TO
  10609.  WINDOWS _RKH11PRUV 608922386 8  0
  10610. 16875.000 1770.833 1875.00011666.667
  10611.     0    0    0   -1   -1   -1               T
  10612.   0 10  1          T   T          0          1       0 6    FF0 0TU
  10613.  WINDOWS _RKH11PRUW 608922397 8  0
  10614. 18750.000 1770.833 1875.00011666.667
  10615.     0    0    0   -1   -1   -1               Z
  10616.   0 10  1          T   T          0          1       0 6    FF0 0T[
  10617.  WINDOWS _RKH11PRUX 608922390 8  0
  10618. 16875.00014270.833 1875.00062916.667
  10619.     0    0    0   -1   -1   -1               `
  10620.   0 10  1          T   T          0          0       0 1    FF0 0Ta
  10621.  WINDOWS _RKH11PRUY 608922402 8  0
  10622. 18750.00014270.833 1875.00062916.667
  10623.     0    0    0   -1   -1   -1               f
  10624.   0 10  1          T   T          0          0       0 1    FF0 0Tg
  10625.  WINDOWS _RKL10IGGC 581863491 6   
  10626. 29062.500 1250.000  104.16776250.000
  10627.    -1   -1   -1   -1   -1   -1    1    8     
  10628.         0          T   F                     1              TF3 0F
  10629.  WINDOWS _RKL10IJ44 581863493 6   
  10630. 29375.000 1250.000  104.16776250.000
  10631.    -1   -1   -1   -1   -1   -1    1    8     
  10632.         0          T   F                     1              TF3 0F
  10633.  WINDOWS _RKO12QV53 582062226 6   
  10634. 10729.167 1250.000  104.16776250.000
  10635.    -1   -1   -1   -1   -1   -1    1    8     
  10636.         0          T   F                     1              TF3 0F
  10637.  WINDOWS _RKO12U3BN 582390213 8  0
  10638.     0.000 1250.000 5000.00065104.167
  10639.     0    0    0   -1   -1   -1               m
  10640.   1 16  1        T T   F          2          0       0 1    TF3 0F
  10641.  WINDOWS _RS60XE4GS 608795735 8  0
  10642. 29791.667 1458.333 1875.00011666.667
  10643.     0    0    0   -1   -1   -1               p
  10644.   0 10  1          T   F          0          1       0 1    TF3 0F
  10645.  WINDOWS _RS60XE4GT 608795735 8  0
  10646. 29791.66713854.167 1875.00062916.667
  10647.     0    0    0   -1   -1   -1               s
  10648.   0 10  1          T   F          0          0       0 1    TF3 0F
  10649.  WINDOWS _RS60XE4GU 608795735 8  0
  10650. 31666.667 1458.333 1875.00011666.667
  10651.     0    0    0   -1   -1   -1               v
  10652.   0 10  1          T   F          0          1       0 1    TF3 0F
  10653.  WINDOWS _RS60XE4GV 608795735 8  0
  10654. 31666.66713854.167 1875.00062916.667
  10655.     0    0    0   -1   -1   -1               y
  10656.   0 10  1          T   F          0          0       0 1    TF3 0F
  10657.  WINDOWS _RS60XE4GW 608795735 8  0
  10658. 33750.000 1458.333 1875.00011666.667
  10659.     0    0    0   -1   -1   -1               |
  10660.   0 10  1          T   F          0          1       2 1    TF3 0F
  10661.  WINDOWS _RS60XE4GX 608795735 8  0
  10662. 33750.00013854.167 1875.00062916.667
  10663.     0    0    0   -1   -1   -1               
  10664.   0 10  1          T   F          0          0       0 1    TF3 0F
  10665.  WINDOWS _RS60XE4GY 608795735 8  0
  10666. 35625.000 1458.333 1875.00011666.667
  10667.     0    0    0   -1   -1   -1               
  10668.   0 10  1          T   F          0          1       2 1    TF3 0F
  10669.  WINDOWS _RS60XE4GZ 608795735 8  0
  10670. 35625.00013854.167 1875.00062916.667
  10671.     0    0    0   -1   -1   -1               
  10672.   0 10  1          T   F          0          0       0 1    TF3 0F
  10673.  WINDOWS _RS60XE4H0 608795802 8  0
  10674. 41875.00013854.167 1875.00062916.667
  10675.     0    0    0   -1   -1   -1               
  10676.   0 10  1          T   F          0          0       0 1    TF0 0F
  10677.  WINDOWS _RS60XE4H2 608795810 8  0
  10678. 44062.50013854.167 1875.00062916.667
  10679.     0    0    0   -1   -1   -1               
  10680.   0 10  1          T   F          0          0       0 1    TF0 0F
  10681.  WINDOWS _RS60XE4H4 608795816 8  0
  10682. 46250.00013854.167 1875.00062916.667
  10683.     0    0    0   -1   -1   -1               
  10684.   0 10  1          T   F          0          0       0 1    TF0 0F
  10685.  WINDOWS _RS60XE4H6 608795735 8  0
  10686. 37812.500 1458.333 1875.00011666.667
  10687.     0    0    0   -1   -1   -1               
  10688.   0 10  1          T   F          0          1       2 1    TF0 0F
  10689.  WINDOWS _RS60XE4H7 608795735 8  0
  10690. 37812.50013854.167 1875.00062916.667
  10691.     0    0    0   -1   -1   -1               
  10692.   0 10  1          T   F          0          0       0 1    TF0 0F
  10693.  WINDOWS _RS60XE4H8 608795735 8  0
  10694. 39687.500 1458.333 1875.00011666.667
  10695.     0    0    0   -1   -1   -1               
  10696.   0 10  1          T   F          0          1       2 1    TF0 0F
  10697.  WINDOWS _RS60XE4H9 608795735 8  0
  10698. 39687.50013854.167 1875.00062916.667
  10699.     0    0    0   -1   -1   -1               
  10700.   0 10  1          T   F          0          0       0 1    TF0 0F
  10701.  WINDOWS _RS60XEKLZ 608795766 8  0
  10702. 41770.833 1458.333 1875.00011666.667
  10703.     0    0    0   -1   -1   -1               
  10704.   0 10  1          T   F          0          0       0 1    TF3 0F
  10705.  WINDOWS _RS60XEKM0 608795777 8  0
  10706. 43958.333 1354.167 1875.00011770.833
  10707.     0    0    0   -1   -1   -1               
  10708.   0 10  1          T   F          0          0       0 1    TF3 0F
  10709.  WINDOWS _RS60XEKM1 608795788 8  0
  10710. 46145.833 1458.333 1875.00011666.667
  10711.     0    0    0   -1   -1   -1               
  10712.   0 10  1          T   F          0          0       0 1    TF0 0F
  10713.  WINDOWS _RKG1F4584 58239294418   
  10714.                                     
  10715.                                              
  10716.                                                      2 1          
  10717.  WINDOWS _RKG1F4586 58239294418   
  10718.                                     
  10719.                                              
  10720.                                                      2 1          
  10721.  WINDOWS _RKG1F4588 58239294518   
  10722.                                     
  10723.                                              
  10724.                                                      2 1          
  10725.  WINDOWS _RKG1F458A 58239294618   
  10726.                                     
  10727.                                              
  10728.                                                      2 1          
  10729.  WINDOWS _RKH146OXG 58239294718   
  10730.                                     
  10731.                                              
  10732.                                                      2 1          
  10733.  WINDOWS _RKH146OXI 58239294818   
  10734.                                     
  10735.                                              
  10736.                                                      2 1          
  10737.  WINDOWS _RKO11TH6L 58239294918   
  10738.                                     
  10739.                                              
  10740.                                                      0 1          
  10741.  WINDOWS _RKO11TH6N 58239295318   
  10742.                                     
  10743.                                              
  10744.                                                      0 1          
  10745.  WINDOWS _RKO11TH6P 58239295418   
  10746.                                     
  10747.                                              
  10748.                                                      0 1          
  10749.  WINDOWS _RKO11TH6R 58239295518   
  10750.                                     
  10751.                                              
  10752.                                                      0 1          
  10753.  WINDOWS _RKO11TH6T 58239295518   
  10754.                                     
  10755.                                              
  10756.                                                      0 1          
  10757.  WINDOWS _RKO11TH6V 58239295618   
  10758.                                     
  10759.                                              
  10760.                                                      0 1          
  10761.  WINDOWS _RKO11TH6X 58239295618   
  10762.                                     
  10763.                                              
  10764.                                                      0 1          
  10765.  WINDOWS _RKO11TH6Z 58239295718   
  10766.                                     
  10767.                                              
  10768.                                                      0 1          
  10769.  WINDOWS _RKO11TH71 58239295718   
  10770.                                     
  10771.                                              
  10772.                                                      0 1          
  10773.  WINDOWS _RKO11TH73 58239296018   
  10774.                                     
  10775.                                              
  10776.                                                      0 1          
  10777.  WINDOWS _RKO11TH75 58239296018   
  10778.                                     
  10779.                                              
  10780.                                                      0 1          
  10781.  WINDOWS _RKO11TH77 58239296118   
  10782.                                     
  10783.                                              
  10784.                                                      0 1          
  10785.  WINDOWS _RKO11TH79 58239296218   
  10786.                                     
  10787.                                              
  10788.                                                      0 1          
  10789.  WINDOWS _RKO11TH7B 58239296218   
  10790.                                     
  10791.                                              
  10792.                                                      0 1          
  10793.  WINDOWS _RKO11TH7D 58239296318   
  10794.                                     
  10795.                                              
  10796.                                                      0 1          
  10797.  WINDOWS _RKO11TH7F 58239296318   
  10798.                                     
  10799.                                              
  10800.                                                      0 1          
  10801.  WINDOWS _RKO1212MR 58239296418   
  10802.                                     
  10803.                                              
  10804.                                                      0 1          
  10805.  WINDOWS _RKO12YHMQ 58239296518   
  10806.                                     
  10807.                                              
  10808.                                                      0 1          
  10809.  WINDOWS                     23   
  10810.    16.000    8.000   12.000    8.000
  10811.     4    0                                   
  10812.   0 10                                                            
  10813.  WINDOWS                     23   
  10814.    16.000    8.000   12.000    8.000
  10815.     4    0                                   
  10816.   4 10                                                            
  10817.  WINDOWS                     23   
  10818.    17.000    8.000   13.000   11.000
  10819.     4    0                                   
  10820.   2 10                                                            
  10821.  WINDOWS                     23   
  10822.    23.000   13.000   17.000   14.000
  10823.     6    0                                   
  10824.   1 16                                                            
  10825.  WINDOWS                     25   
  10826.                                     
  10827.                                              
  10828.                                                                   
  10829. Courier New
  10830. coverage.h
  10831. cov_char.h
  10832. cov_locs.h
  10833. cov_dlgs.h
  10834. cov_spec.h
  10835. cov_regs.h
  10836. cov_tune.h
  10837. LLeft = 257
  10838. Top = 219
  10839. Width = 520
  10840. Height = 200
  10841. Name = "Dataenvironment"
  10842. dataenvironment
  10843. Courier New
  10844. ORIENTATION=0
  10845. DEVICE=M
  10846. Courier New
  10847. Courier New
  10848. Courier New
  10849. rcTitle
  10850. rcTitle
  10851. Hostfile
  10852. Courier New
  10853. Covered # 0
  10854. rcNoHits+":  "+Hostfile
  10855. Courier New
  10856. 5Covered = 0 AND NOT (EMPTY(FileType) AND RECNO() = 1)
  10857. Covered
  10858. Courier New
  10859. Covered # 0
  10860.     Coverable
  10861. Courier New
  10862. Covered # 0
  10863. rchlines
  10864. Courier New
  10865. Covered # 0
  10866. rctlines
  10867. Courier New
  10868. Covered # 0
  10869. rcplines
  10870. Courier New
  10871. Covered # 0 AND Coverable# 0
  10872. 7IIF(Coverable = 0,"",STR((Covered/Coverable)*100,10,2))
  10873. Courier New
  10874. Covered # 0
  10875. rcpobjs
  10876. Courier New
  10877. g(NOT rlOmitObjects) AND Covered # 0 AND INLIST(FileType,".vct",".sct", ".frt", ".lbt") AND ObjTotal # 0
  10878. 5IIF(ObjTotal = 0,"",STR((ObjHits/ObjTotal)*100,10,2))
  10879. Courier New
  10880. T(NOT rlOmitObjects) AND Covered # 0 AND INLIST(FileType,".vct",".sct",".frt",".lbt"))
  10881. ObjHits
  10882. Courier New
  10883. U(NOT rlOmitObjects) AND  Covered # 0 AND INLIST(FileType,".vct",".sct",".frt",".lbt")
  10884. ObjTotal
  10885. Courier New
  10886. T(NOT rlOmitObjects) AND Covered # 0 AND INLIST(FileType,".vct",".sct",".frt",".lbt")
  10887. rchobjs
  10888. Courier New
  10889. V(NOT rlOmitObjects) AND Covered # 0 AND INLIST(FileType,".vct",".sct", ".frt", ".lbt")
  10890. rctobjs
  10891. Courier New
  10892. U(NOT rlOmitObjects) AND Covered # 0 AND INLIST(FileType,".vct",".sct", ".frt",".lbt")
  10893. 3rcTitle + IIF(EMPTY(FileType),CHR(13)+ Hostfile,"")
  10894. Courier New
  10895. riFileCount
  10896. Courier New
  10897.     rctpfiles
  10898. Courier New
  10899. rifilehits
  10900. Courier New
  10901.     rchpfiles
  10902. Courier New
  10903.     Coverable
  10904. Courier New
  10905.     rctplines
  10906. Courier New
  10907. Covered
  10908. Courier New
  10909.     rchplines
  10910. Courier New
  10911.     rcppfiles
  10912. Courier New
  10913. riFileCount > 0
  10914.     rcpplines
  10915. Courier New
  10916. riCoverable > 0
  10917. rcppobjs
  10918. Courier New
  10919. '(NOT rlOmitObjects)  AND riObjTotal > 0
  10920. ObjTotal
  10921. Courier New
  10922. (NOT rlOmitObjects)
  10923. rctpobjs
  10924. Courier New
  10925. (NOT rlOmitObjects)
  10926. ObjHits
  10927. Courier New
  10928. (NOT rlOmitObjects) 
  10929. rchpobjs
  10930. Courier New
  10931. (NOT rlOmitObjects) 
  10932. =IIF(riFileCount = 0,"",ROUND((riFileHits/riFileCount)*100,2))
  10933. Courier New
  10934. >IIF(riCoverable = 0, "", ROUND((riCovered/riCoverable)*100,2))
  10935. Courier New
  10936. <IIF(riObjTotal = 0, "", ROUND((riObjHits/riObjTotal)*100,2))
  10937. Courier New
  10938. (NOT rlOmitObjects) 
  10939. riFileCount
  10940. (IIF(EMPTY(FileType) AND RECNO() = 1,0,1)
  10941. riFileHits
  10942. IIF(Covered # 0,1,0)
  10943.     riCovered
  10944. Covered
  10945. riCoverable
  10946.     Coverable
  10947. riObjTotal
  10948. ObjTotal
  10949.     riObjHits
  10950. ObjHits
  10951. rlOmitObjects
  10952. rlOmitObjects
  10953. rlOmitObjects
  10954. rcTLines
  10955. rcTLines
  10956. rcTLines
  10957. rcHLines
  10958. rcHLines
  10959. rcHLines
  10960. rcPLines
  10961. rcPLines
  10962. rcPLines
  10963. rcTObjs
  10964. rcTObjs
  10965. rcTObjs
  10966. rcHObjs
  10967. rcHObjs
  10968. rcHObjs
  10969. rcPObjs
  10970. rcPObjs
  10971. rcPObjs
  10972.     rcTPFiles
  10973.     rcTPFiles
  10974.     rcTPFiles
  10975.     rcHPFiles
  10976.     rcHPFiles
  10977.     rcHPFiles
  10978.     rcTPLines
  10979.     rcTPLines
  10980.     rcTPLines
  10981.     rcHPLines
  10982.     rcHPLines
  10983.     rcHPLines
  10984. rcTPObjs
  10985. rcTPObjs
  10986. rcTPObjs
  10987. rcHPObjs
  10988. rcHPObjs
  10989. rcHPObjs
  10990.     rcPPLines
  10991.     rcPPLines
  10992.     rcPPLines
  10993.     rcPPFiles
  10994.     rcPPFiles
  10995.     rcPPFiles
  10996. rcPPObjs
  10997. rcPPObjs
  10998. rcPPObjs
  10999. rcNoHits
  11000. rcNoHits
  11001. rcNoHits
  11002. rcTitle
  11003. PROCEDURE Init
  11004. #INCLUDE COVERAGE.H
  11005. rcTitle = COV_APPLICATION_NAME_LOC + " " + COV_STATS_VIEW_PROJECT_LOC 
  11006. * in case I am re-using any LOC's from
  11007. * buttons with hotkeys:
  11008. rcTitle = STRTRAN(rcTitle,"\<","")
  11009. rlOmitObjects = COV_TOPSPEED
  11010. rcNoHits = COV_STATS_FILE_NOT_HIT_LOC
  11011. rcTLines = COV_STATS_LINES_COVERABLE_LOC
  11012. rcHLines = COV_STATS_LINES_HIT_LOC 
  11013. rcPLines = COV_STATS_PCT_LINES_LOC 
  11014. rcTObjs  = COV_STATS_OBJS_COVERABLE_LOC
  11015. rcHObjs  = COV_STATS_OBJS_HIT_LOC
  11016. rcPObjs  = COV_STATS_PCT_OBJS_LOC
  11017. rcTPFiles = COV_STATS_PJXFILES_COVERABLE_LOC
  11018. rcHPFiles = COV_STATS_PJXFILES_HIT_LOC 
  11019. rcTPLines = COV_STATS_PJXLINES_COVERABLE_LOC
  11020. rcHPLines = COV_STATS_PJXLINES_HIT_LOC
  11021. rcTPObjs  = COV_STATS_PJXOBJS_COVERABLE_LOC
  11022. rcHPObjs  = COV_STATS_PJXOBJS_HIT_LOC
  11023. rcPPLines = COV_STATS_PCT_PJXLINES_LOC
  11024. rcPPFiles = COV_STATS_PCT_PJXFILES_LOC
  11025. rcPPObjs  = COV_STATS_PCT_PJXOBJS_LOC
  11026. ENDPROC
  11027. Coverage Profiler
  11028. Statistics by \<Project...
  11029. File skipped or not logged
  11030. Total coverable lines
  11031. Line(s) hit
  11032. % Covered Linecount
  11033. Classes with code
  11034. Class(es) hit
  11035. % Covered Classes
  11036. Total Source Code Files For Project
  11037. Project Source Files Hit
  11038. Total Lines Coverable Code in Files Hit
  11039. Total Project Lines Hit
  11040. Total Classes in Project VCXs, SCXs, FRXs, and LBXs contain code
  11041. Total Classes Hit in Project VCXs, SCXs, FRXs, and LBXs
  11042. % Project Coverage by Lines (Files Hit Only)
  11043. % Project Coverage by Files
  11044. % Class Code Coverage for Project Files Hit
  11045. RCTITLE
  11046. RLOMITOBJECTS
  11047. RCNOHITS
  11048. RCTLINES
  11049. RCHLINES
  11050. RCPLINES
  11051. RCTOBJS
  11052. RCHOBJS
  11053. RCPOBJS    
  11054. RCTPFILES    
  11055. RCHPFILES    
  11056. RCTPLINES    
  11057. RCHPLINES
  11058. RCTPOBJS
  11059. RCHPOBJS    
  11060. RCPPLINES    
  11061. RCPPFILES
  11062. RCPPOBJS
  11063. Init,
  11064. \<Use Smart Pathing
  11065. Cascade \<Windows
  11066. \<Display Font...
  11067. \<Code Font...
  11068. \<Statistics...
  11069. \<Add-Ins...
  11070. \<View Source Log
  11071. Fast \<Zoom Mode
  11072. _oCoverage.lSmartPath = ! _oCoverage.lSmartPath
  11073. _oCoverage.ArrangeFrameWindows()
  11074. =IIF(_oCoverage.GetFontsFromUser(),_oCoverage.SetUIFonts(),.T.)
  11075. =IIF(_oCoverage.GetFontsFromUser(.T.),_oCoverage.SetUIFonts(),.T.)
  11076. _oCoverage.ShowStatistics()
  11077. =IIF(_oCoverage.ShowModalDialog("cov_addindialog", "COVERAGE.VCX"),_oCoverage.RunAddIn(),.T.)
  11078. _oCoverage.ShowTextLog()
  11079. _oCoverage.ToggleFastZoomMode()
  11080. COVSHORT
  11081. _OCOVERAGE
  11082. LSMARTPATH
  11083. LINCOVERAGEFRAME
  11084. FRMMAINDIALOG
  11085. LINZOOMMODE
  11086. LFASTZOOMMODE@
  11087. coverage.prg
  11088. d:\8146\fox60\dev\
  11089. coverage.fxp
  11090. coverage.vcx
  11091. coverage.vct
  11092. coverage.ico
  11093. open.bmp
  11094. save.bmp
  11095. coverage.bmp
  11096. profile.bmp
  11097. preview.bmp
  11098. zoom.bmp
  11099. stats.bmp
  11100. options.bmp
  11101. addins.bmp
  11102. cov_char.h
  11103. cov_dlgs.h
  11104. cov_locs.h
  11105. cov_regs.h
  11106. cov_spec.h
  11107. cov_tune.h
  11108. coverage.h
  11109. cov_pjx.frx
  11110. cov_pjx.frt
  11111. ho_split.cur
  11112. covshort.mpr
  11113. covshort.mpx
  11114. coverage.msk
  11115. open.msk
  11116. save.msk
  11117. profile.msk
  11118. preview.msk
  11119. zoom.msk
  11120. stats.msk
  11121. addins.msk
  11122. options.msk
  11123.