version 1.4, 2025/03/24 04:13:11
|
version 1.6, 2025/04/13 04:22:43
|
Line 25
|
Line 25
|
* along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
* along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
* |
* |
* $Log$ |
* $Log$ |
|
* Revision 1.6 2025/04/13 04:22:43 snw |
|
* Fix snprintf calls |
|
* |
|
* Revision 1.5 2025/04/10 01:24:38 snw |
|
* Remove C++ style comments |
|
* |
* Revision 1.4 2025/03/24 04:13:11 snw |
* Revision 1.4 2025/03/24 04:13:11 snw |
* Replace action macro dat with fra_dat to avoid symbol conflict on OS/2 |
* Replace action macro dat with fra_dat to avoid symbol conflict on OS/2 |
* |
* |
Line 93 void mref2str(freem_ref_t *ref, char *ke
|
Line 99 void mref2str(freem_ref_t *ref, char *ke
|
strcat (key, ref->name); |
strcat (key, ref->name); |
} |
} |
|
|
// ends with EOL |
/* ends with EOL */ |
strncat (key, "\201", 2); |
strncat (key, "\201", 2); |
|
|
} |
} |
Line 111 pid_t freem_init(char *environment_name,
|
Line 117 pid_t freem_init(char *environment_name,
|
errno = 0; |
errno = 0; |
|
|
strcpy (shm_env, environment_name); |
strcpy (shm_env, environment_name); |
snprintf (config_file, 4096, "%s/freem/%s/freem.conf", SYSCONFDIR, shm_env); |
snprintf (config_file, sizeof (config_file) - 1, "%s/freem/%s/freem.conf", SYSCONFDIR, shm_env); |
|
|
init (namespace_name); |
init (namespace_name); |
ierr_sav = ierr; |
ierr_sav = ierr; |
Line 142 short freem_get(freem_ref_t *ref)
|
Line 148 short freem_get(freem_ref_t *ref)
|
|
|
freem_return_io (); |
freem_return_io (); |
|
|
// set up the EOL-delimited string |
/* set up the EOL-delimited string */ |
mref2str (ref, key); |
mref2str (ref, key); |
|
|
switch (ref->reftype) { |
switch (ref->reftype) { |
|
|
case MREF_RT_LOCAL: |
case MREF_RT_LOCAL: |
// call into the symbol table to get the local var |
/* call into the symbol table to get the local var */ |
symtab (get_sym, key, result); |
symtab (get_sym, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_GLOBAL: |
case MREF_RT_GLOBAL: |
// call into the FreeM global handler; result in &result |
/* call into the FreeM global handler; result in &result */ |
global (get_sym, key, result); |
global (get_sym, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_SSVN: |
case MREF_RT_SSVN: |
// call into the SSVN code |
/* call into the SSVN code */ |
ssvn (get_sym, key, result); |
ssvn (get_sym, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
Line 169 short freem_get(freem_ref_t *ref)
|
Line 175 short freem_get(freem_ref_t *ref)
|
|
|
stcnv_m2c (result); |
stcnv_m2c (result); |
|
|
strncpy (ref->value, result, 255); |
strncpy (ref->value, result, sizeof (ref->value)); |
|
|
freem_release_io (); |
freem_release_io (); |
|
|
Line 185 short freem_set(freem_ref_t *ref)
|
Line 191 short freem_set(freem_ref_t *ref)
|
|
|
mref2str (ref, key); |
mref2str (ref, key); |
|
|
snprintf (data, 254, "%s\201", ref->value); |
snprintf (data, sizeof (data) - 1, "%s\201", ref->value); |
|
|
switch (ref->reftype) { |
switch (ref->reftype) { |
|
|
case MREF_RT_LOCAL: |
case MREF_RT_LOCAL: |
// call into the symbol table to set the local var |
/* call into the symbol table to set the local var */ |
symtab (set_sym, key, data); |
symtab (set_sym, key, data); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_GLOBAL: |
case MREF_RT_GLOBAL: |
// call into the FreeM global handler; data in &data |
/* call into the FreeM global handler; data in &data */ |
global (set_sym, key, data); |
global (set_sym, key, data); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_SSVN: |
case MREF_RT_SSVN: |
// call into the SSVN code |
/* call into the SSVN code */ |
ssvn (set_sym, key, data); |
ssvn (set_sym, key, data); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
Line 227 short freem_kill(freem_ref_t *ref)
|
Line 233 short freem_kill(freem_ref_t *ref)
|
switch (ref->reftype) { |
switch (ref->reftype) { |
|
|
case MREF_RT_LOCAL: |
case MREF_RT_LOCAL: |
// call into the symbol table to kill the local var |
/* call into the symbol table to kill the local var */ |
symtab (kill_sym, key, result); |
symtab (kill_sym, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_GLOBAL: |
case MREF_RT_GLOBAL: |
// call into the FreeM global handler; result in &result |
/* call into the FreeM global handler; result in &result */ |
global (kill_sym, key, result); |
global (kill_sym, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_SSVN: |
case MREF_RT_SSVN: |
// call into the SSVN code |
/* call into the SSVN code */ |
ssvn (kill_sym, key, result); |
ssvn (kill_sym, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
Line 248 short freem_kill(freem_ref_t *ref)
|
Line 254 short freem_kill(freem_ref_t *ref)
|
|
|
stcnv_m2c (result); |
stcnv_m2c (result); |
|
|
strncpy (ref->value, result, 255); |
strncpy (ref->value, result, sizeof (ref->value) - 1); |
|
|
freem_release_io (); |
freem_release_io (); |
|
|
Line 268 short freem_data(freem_ref_t *ref)
|
Line 274 short freem_data(freem_ref_t *ref)
|
switch (ref->reftype) { |
switch (ref->reftype) { |
|
|
case MREF_RT_LOCAL: |
case MREF_RT_LOCAL: |
// call into the symbol table |
/* call into the symbol table */ |
symtab (fra_dat, key, result); |
symtab (fra_dat, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_GLOBAL: |
case MREF_RT_GLOBAL: |
// call into the FreeM global handler; result in &result |
/* call into the FreeM global handler; result in &result */ |
global (fra_dat, key, result); |
global (fra_dat, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_SSVN: |
case MREF_RT_SSVN: |
// call into the SSVN code |
/* call into the SSVN code */ |
ssvn (fra_dat, key, result); |
ssvn (fra_dat, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
Line 308 short freem_order(freem_ref_t *ref)
|
Line 314 short freem_order(freem_ref_t *ref)
|
switch (ref->reftype) { |
switch (ref->reftype) { |
|
|
case MREF_RT_LOCAL: |
case MREF_RT_LOCAL: |
// call into the symbol table for $ORDER |
/* call into the symbol table for $ORDER */ |
symtab (fra_order, key, result); |
symtab (fra_order, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_GLOBAL: |
case MREF_RT_GLOBAL: |
// call into the FreeM global handler; result in &result |
/* call into the FreeM global handler; result in &result */ |
global (fra_order, key, result); |
global (fra_order, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_SSVN: |
case MREF_RT_SSVN: |
// call into the SSVN code |
/* call into the SSVN code */ |
ssvn (fra_order, key, result); |
ssvn (fra_order, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
Line 347 short freem_query(freem_ref_t *ref)
|
Line 353 short freem_query(freem_ref_t *ref)
|
switch (ref->reftype) { |
switch (ref->reftype) { |
|
|
case MREF_RT_LOCAL: |
case MREF_RT_LOCAL: |
// call into the symbol table |
/* call into the symbol table */ |
symtab (fra_query, key, result); |
symtab (fra_query, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_GLOBAL: |
case MREF_RT_GLOBAL: |
// call into the FreeM global handler; result in &result |
/* call into the FreeM global handler; result in &result */ |
global (fra_query, key, result); |
global (fra_query, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
|
|
case MREF_RT_SSVN: |
case MREF_RT_SSVN: |
// call into the SSVN code |
/* call into the SSVN code */ |
ssvn (fra_query, key, result); |
ssvn (fra_query, key, result); |
ref->status = merr (); |
ref->status = merr (); |
break; |
break; |
Line 381 short freem_lock(freem_ref_t *ref, long
|
Line 387 short freem_lock(freem_ref_t *ref, long
|
char buf[256]; |
char buf[256]; |
|
|
mref2str (ref, key); |
mref2str (ref, key); |
snprintf (buf, 255, "+%s\201", key); |
snprintf (buf, sizeof (buf) - 1, "+%s\201", key); |
|
|
freem_return_io (); |
freem_return_io (); |
|
|
Line 399 short freem_unlock(freem_ref_t *ref, lon
|
Line 405 short freem_unlock(freem_ref_t *ref, lon
|
char buf[256]; |
char buf[256]; |
|
|
mref2str (ref, key); |
mref2str (ref, key); |
snprintf (buf, 255, "-%s\201", key); |
snprintf (buf, sizeof (buf) - 1, "-%s\201", key); |
|
|
freem_return_io (); |
freem_return_io (); |
|
|
Line 478 short freem_function(freem_ent_t *ent)
|
Line 484 short freem_function(freem_ent_t *ent)
|
stcnv_c2m (buf); |
stcnv_c2m (buf); |
sprintf (tmp, "%%ZFRMXEC\201"); |
sprintf (tmp, "%%ZFRMXEC\201"); |
symtab (set_sym, tmp, buf); |
symtab (set_sym, tmp, buf); |
snprintf ((char *) ztrap, 12, "^%%ZFRMXEC\201"); |
snprintf ((char *) ztrap, ZTLEN - 1, "^%%ZFRMXEC\201"); |
|
|
xecline (3); |
xecline (3); |
ent->status = merr (); |
ent->status = merr (); |
Line 486 short freem_function(freem_ent_t *ent)
|
Line 492 short freem_function(freem_ent_t *ent)
|
tmp[0] = NUL; |
tmp[0] = NUL; |
ent->value[0] = NUL; |
ent->value[0] = NUL; |
|
|
snprintf (tmp, 255, "%%ZFRMRTN\201"); |
snprintf (tmp, sizeof (tmp) - 1, "%%ZFRMRTN\201"); |
symtab (get_sym, tmp, ent->value); |
symtab (get_sym, tmp, ent->value); |
stcnv_m2c (ent->value); |
stcnv_m2c (ent->value); |
|
|
Line 539 short freem_procedure(freem_ent_t *ent)
|
Line 545 short freem_procedure(freem_ent_t *ent)
|
symtab (set_sym, tmp, buf); |
symtab (set_sym, tmp, buf); |
|
|
|
|
snprintf ((char *) ztrap, 12, "^%%ZFRMXEC\201"); |
snprintf ((char *) ztrap, ZTLEN - 1, "^%%ZFRMXEC\201"); |
|
|
|
|
xecline (3); |
xecline (3); |