Navigate to function code in Clarion

I have inherited a Clarion application which I have since been able to navigate about and extract business rules from, however there is a check() function which I cannot locate in the code that produces a registration key. I want to know how this is performed, when I hover over the function I can see the functions signature but I cannot find/navigate to this part of the code.

Can someone point me in the right direction to understand/Navigate to this function? or if its part of a library/generic feature how to identify it more clearly.

Thanks!
(running Clarion11)

I find KSS to be a very useful tool for finding stuff. GitHub - mriffey/KSSOpen: Search tool that is a wrapper around Microsoft's FindStr, making it easy to work with search results. Supports many programming languages (see Devuna docs).

But you can use any search tool. Unfortunately, the word “check” is not very unique. But in KSS you can tell it to search only from the first column.

It could be possible that “check” is a generic function located in Clarion\libsrc\win or Clarion\Accessory\libsrc\win, but I’d check your app folder first.

In the app tree choose “Module Source File” from the right-click menu, then right-click on “check” and choose “check(…)” → “Goto Declaration” or “Goto Implementation” (if applicable, sometimes the IDE is unable to locate where a function declared/implemented).

3 Likes

(Sorry it looks like I didn’t hit Reply and only realized today)

Thanks Mike & Jslarve for replying so quickly.
Progress was made!

I tried your suggestions Mike and it was still not showing in the menu but it did appear in the context menu when I selected the whole check line including parameters!

If I click GoToImplementation it tries to access a \SwlStd.CLW which does not exist, but I found that \SwlStd.LIB (and .INC) does.

I found the implementation and was able to reverse engineer what it was doing!

Thanks again!

Hi Philip - I was just looking at this on my cell phone, and was not sure if I accidentally changed the “solved” setting on Mike’s post. If it was previously set to “solved”, then I accidentally un-ticked it. Sorry about that.