| Commit | Date | |
|---|---|---|
|
[r13119]
by
mikeaubury
OPEN FORM: pass the FORM variable's member, not the struct A FORM variable is generated as static struct { long objectid ; } list; and OPEN FORM emitted A4GL_open_gui_form(&list,...) against a parameter error: passing argument 1 of 'A4GL_open_gui_form' from incompatible pointer so tools/test/gui/calc.4gl could not be compiled. The member is now passed While there: the name emitted here comes from the command as a plain defprog.4gl calls time() in a CODE block without including <time.h>; it does Checked on the 142-module corpus: 112 compile where 110 did, the two being |
2026-09-21 11:14:47 | Tree |
|
[r13118]
by
mikeaubury
Declare the 4GL-callable builtins where generated code can see them Compiling a 4GL program that calls a4gl_get_ui_mode() fails: error: implicit declaration of function 'aclfgl_a4gl_get_ui_mode'; The function exists (lib/libaubit4gl/fglwrap.c) and is prototyped in a4gl_get_ui_mode was not alone. Every name in lib/generated/std_funcs.c was A4GL_endis_fields goes the same way: the generator emits a call to it for the Signatures were checked against the definitions, not against other headers. Checked on 142 modules from tools/ and the test suite: 110 compile where 108 Not fixed here, found by the same scan and worth a look on their own: |
2026-09-21 10:59:19 | Tree |
|
[r13117]
by
mikeaubury
C back end: make MARK_SCOPE work A4GL_MARK_SCOPE (and MARK_SCOPE_MODULE) prefixes variables with their scope - static long M_dup ; and did not compile. Only the C# back end, which applies the prefix wherever a The declaration and every use now take the name from one function, - system variables (status, sqlca, int_flag...) live in the library and keep - class members and associative arrays keep the plain name: they are declared - simple and object function parameters had no scope recorded at all, so they - a CODE block is hand written C that names variables as the 4GL wrote them, Checked on 142 modules from tools/ and the test suite compiled three ways - no Two things the flag cannot do: C outside the module must use the prefixed name The description of A4GL_MARK_SCOPE said it adds the module name, which is what |
2026-09-21 10:08:40 | Tree |
|
[r13116]
by
mikeaubury
Generated code: do not include <unistd.h> r13105 added <unistd.h> to a4gl_incl_4glhdr.h so that a CODE block calling error: 'dup' redeclared as different kind of symbol Those are ordinary 4GL variable names: such programs compiled in 1.6.3 and up Checked on clean exports of r13115 built with and without the change: configure A variable can still collide with stdio.h, string.h or stdlib.h - index, time |
2026-09-21 10:08:18 | Tree |
|
[r13115]
by
mikeaubury
odbc: stop redefining SQLLEN to a 32 bit type sql.c opened with #ifndef SQLLEN meant as a fallback for header sets that predate SQLLEN. SQLLEN is a That produced 20 errors under gcc 14 (SQLBindCol argument 6, SQLRowCount The fallback now keys off A4GL_ODBC_HEADERS_LACK_SQLLEN, set only by the It moved into a4gl_lib_sql_odbc_int.h because the prototypes there use The declarations that feed ODBC out parameters are corrected to Verified by compiling sql.c against all three header sets: unixODBC |
2026-09-14 18:44:00 | Tree |
|
[r13114]
by
mikeaubury
tools/misql: link with 4glpc, not 4glc misql compiles each module to a .ao and then links the set of them. Both Driving 4glc directly to link .ao files leaves the library link line off, Both rules now use "aubit 4glpc", the documented way to drive the Masked on any tree built before now, because a stale misql.4ae satisfies FGLPCEXEC itself is left alone: other makefiles use it and work, so what |
2026-09-14 18:38:30 | Tree |
|
[r13113]
by
mikeaubury
Fix tools/adbload under gcc 14 Three errors, all of them things gcc used to warn about and now rejects 1. A4GL_init_session, A4GL_init_session_with_sqltype and A4GL_set_conn The C generator emits calls to all three (compile_c_sql.c, for A4GL_close_session and A4GL_set_dialect are left where they are - 2. adbload.4gl assigned a FILE * straight into a 4GL INTEGER inside a Verified by deleting every generated .4ae/.c under tools and compilers - |
2026-09-14 18:34:00 | Tree |
|
[r13112]
by
mikeaubury
Stop writing database credentials into aubitrc A4GL_SQLUID and A4GL_SQLPWD are no longer written to aubitrc, and A database password does not belong in a file that ships with the This also removes the last way for the placeholder bug to recur: until Partly reverts the configure side of r13108. The other substitutions it Note for upgrades: an aubitrc already on disk keeps whatever it has, and configure regenerated with autoreconf. |
2026-09-11 08:57:22 | Tree |
|
[r13111]
by
mikeaubury
Makefile: don't ship the packaging machine's settings in a source tarball etc/aubitrc and friends are generated by configure and are not in SVN, AUBITDIR=/home/aubit4gl/aubit4glsrc so a tarball user starts out pointed at directories that exist only on tar now depends on clean.settings, which removes exactly those four A source tarball therefore no longer contains etc/aubitrc until |
2026-09-11 07:21:49 | Tree |
|
[r13110]
by
mikeaubury
esqlc: say why strip() leaves the first character alone Comment only, no change in behaviour. strip() stops at str[0] rather than clearing it, which reads like an Nothing said so, and the bound is an easy thing to "tidy up" while |
2026-09-10 18:49:16 | Tree |