version 1.8, 2025/04/11 23:27:04
|
version 1.10, 2025/04/28 19:38:55
|
Line 24
|
Line 24
|
* 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.10 2025/04/28 19:38:55 snw |
|
* Add trace mode |
|
* |
|
* Revision 1.9 2025/04/13 04:22:43 snw |
|
* Fix snprintf calls |
|
* |
* Revision 1.8 2025/04/11 23:27:04 snw |
* Revision 1.8 2025/04/11 23:27:04 snw |
* Fix overflow bugs in ssvn_job.c |
* Fix overflow bugs in ssvn_job.c |
* |
* |
Line 142 void ssvn_job_update(void)
|
Line 148 void ssvn_job_update(void)
|
ierr_sav = ierr; |
ierr_sav = ierr; |
|
|
snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202PIPE_GLVN\201", pid); |
snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202PIPE_GLVN\201", pid); |
snprintf (d_buf, 5, "%%\201"); |
snprintf (d_buf, STRLEN - 1, "%%\201"); |
|
symtab_shm (set_sym, k_buf, d_buf); |
|
|
|
snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202TRACE\201", pid); |
|
snprintf (d_buf, STRLEN - 1, "%d\201", trace_mode); |
symtab_shm (set_sym, k_buf, d_buf); |
symtab_shm (set_sym, k_buf, d_buf); |
|
|
snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ZCOMMANDS\201", pid); |
snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ZCOMMANDS\201", pid); |
Line 279 void ssvn_job_update(void)
|
Line 289 void ssvn_job_update(void)
|
snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202$IO\201", pid); |
snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202$IO\201", pid); |
symtab_shm (set_sym, k_buf, d_buf); |
symtab_shm (set_sym, k_buf, d_buf); |
|
|
snprintf (d_buf, STRLEN -1, "%s\201", gvndefault); |
snprintf (d_buf, STRLEN - 1, "%s\201", gvndefault); |
snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202GVNDEFAULT\201", pid); |
snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202GVNDEFAULT\201", pid); |
symtab_shm (set_sym, k_buf, d_buf); |
symtab_shm (set_sym, k_buf, d_buf); |
|
|
Line 339 void ssvn_job_update(void)
|
Line 349 void ssvn_job_update(void)
|
default: |
default: |
|
|
snprintf (d_buf, STRLEN - 1, "IEEE754\201"); |
snprintf (d_buf, STRLEN - 1, "IEEE754\201"); |
snprintf (fp_conversion, 9, "%%.%df\201", DBL_DIG); |
snprintf (fp_conversion, sizeof (fp_conversion) - 1, "%%.%df\201", DBL_DIG); |
zprecise = DBL_DIG; |
zprecise = DBL_DIG; |
|
|
break; |
break; |
Line 435 void ssvn_job(short action, char *key, c
|
Line 445 void ssvn_job(short action, char *key, c
|
goto done; |
goto done; |
|
|
} |
} |
|
else if (strcmp (mref_get_subscript (r, 1), "TRACE") == 0) { |
|
trace_mode = tvexpr (data); |
|
goto done; |
|
} |
else if (strcmp (mref_get_subscript (r, 1), "LVNQOVAL") == 0) { |
else if (strcmp (mref_get_subscript (r, 1), "LVNQOVAL") == 0) { |
stcpy (l_o_val, data); |
stcpy (l_o_val, data); |
|
|
Line 904 void ssvn_job(short action, char *key, c
|
Line 918 void ssvn_job(short action, char *key, c
|
fp_mode = 1; |
fp_mode = 1; |
symtab_shm (set_sym, kbuf, data); |
symtab_shm (set_sym, kbuf, data); |
|
|
snprintf (fp_conversion, 9, "%%.%df\201", DBL_DIG); |
snprintf (fp_conversion, sizeof (fp_conversion) - 1, "%%.%df\201", DBL_DIG); |
zprecise = DBL_DIG; |
zprecise = DBL_DIG; |
|
|
merr_clear (); |
merr_clear (); |
Line 934 void ssvn_job(short action, char *key, c
|
Line 948 void ssvn_job(short action, char *key, c
|
goto done; |
goto done; |
} |
} |
|
|
case get_sym: |
case get_sym: |
if (strcmp (mref_get_subscript (r, 1), "LVNQOVAL") == 0) { |
if (strcmp (mref_get_subscript (r, 1), "LVNQOVAL") == 0) { |
stcpy (data, l_o_val); |
stcpy (data, l_o_val); |
goto done; |
goto done; |
Line 943 void ssvn_job(short action, char *key, c
|
Line 957 void ssvn_job(short action, char *key, c
|
stcpy (data, g_o_val); |
stcpy (data, g_o_val); |
goto done; |
goto done; |
} |
} |
|
else if (strcmp (mref_get_subscript (r, 1), "TRACE") == 0) { |
|
snprintf (data, STRLEN - 1, "%d\201", trace_mode); |
|
goto done; |
|
} |
case fra_dat: |
case fra_dat: |
case fra_order: |
case fra_order: |
case fra_query: |
case fra_query: |