× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



You do this with "/if define" logic. You disable any non-prototype code with /IF DEFINES. For example:

/if not defined(PROTOTYPE_ONLY)
H BNDDIR('MAIN') OPTION(*NODEBUGIO: *SRCSTMT) NOMAIN

FITMMAST IF E K DISK USROPN
FCUSTMAS IF E K DISK USROPN
FORDERHD IF E K DISK USROPN
FORDERLN IF E K DISK USROPN
/endif

D ORDER_new PR 10i 0
D CustNo 4s 0 const

D ORDER_getHdr PR like(ORDER_Header_t)
D OrderNo 10a const

... plus data structures, constants... anything else you'd
usually put in a copy book ...

/if not defined(PROTOTYPE_ONLY)

... actual routines go here...
... subprocedures, etc....

/endif


Then the code that needs to bring in the definitions, would do:

/define PROTOTYPE_ONLY
/copy ORDER

Because "PROTOTYPE_ONLY" is defined, it doesn't bring in the rest of the definions, like F, P & C specs... it only brings in the protototypes.

Personally, I find this to be cumbersome... coding the /IF DEFINES makes the code a little uglier. Plus, any time I distribute my code, the developer MUST have the source for the whole she-bang, or they can't call it.

Coding two different members (one for code, one for prototypes) isn't any harder or more time consuming... and the code looks cleaner to me. But, that's just an opinion.



Bruce Guetzkow wrote:
All:

I know I've seen this done before but after 30 minutes of searching through
the archives I can't find it...

I am currently keeping RPGLE procedure prototypes in a separate source file
member (QCPYSRC) and using /copy in both the procedure source and the caller
to bring in the prototypes for compiling. I have seen people use compiler
directives to keep the prototype directly in the procedure source and /copy
the procedure source into the caller. Based on the directives the caller
only sees the prototypes.

Can someone share some sample code that I can review? I'm considering doing
this for a new application I'm working on, but want to see how involved it
is to make it work before I decide on a direction. If there is an example
in the archives (and I'm sure there is, but since I can't even manage to
work the fax machine today...), please just point me there and I'll stare at
it for a while.

Thanks in advance,
--Bruce Guetzkow





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.