Section 14.13: Passing IDs Up Chapter 14: Extensions Section 14.15: MOVE WINDOW  

14.14 Embedded C code.

No more messing around with external C code, and no more complex make and link process. Just embed your C code inside your 4GL code, between the keywords CODE ... ENDCODE.
When you use a FUNCTION fname() statement, Aubit4GL applies a prefix aclfgl_ to your function name thereby renaming it
aclfgl_fname()
in the .c file which the compiler generates. Aubit4GL does this to avoid inadvertent clashes with the names of C-library standard functions.
If, for example, you wrote a function:
FUNCTION printf()
...
END FUNCTION
and Aubit4GL did not mangle the function name, your code would not be able any longer to access (within CODE ... END CODE) the standard C-library function printf()
You can change this by setting A4GL_NAMESPACE to a different prefix or eliminate it entirely:
$ export A4GL_NAMESPACE=""
$ 4glpc mod.4gl
You will need to make sure that all your modules are compiled like this, or you’ll have the same trouble calling functions across 4GL modules!
Don’t forget that Aubit4GL lets you embed blocks of C code which may also help you. e.g. :
MAIN
DEFINE a CHAR(5)

LET a="World"
CODE 
{
  printf("Hello %s",a);
}
ENDCODE
END MAIN
This saves all the trouble of having to push/pop from the 4gl stack.
 Section 14.13: Passing IDs Up Chapter 14: Extensions Section 14.15: MOVE WINDOW