--- freem/src/ssvn_job.c 2025/04/13 04:22:43 1.9 +++ freem/src/ssvn_job.c 2025/06/23 20:53:30 1.11 @@ -1,5 +1,5 @@ /* - * $Id: ssvn_job.c,v 1.9 2025/04/13 04:22:43 snw Exp $ + * $Id: ssvn_job.c,v 1.11 2025/06/23 20:53:30 snw Exp $ * ^$JOB ssvn * * @@ -24,6 +24,12 @@ * along with FreeM. If not, see . * * $Log: ssvn_job.c,v $ + * Revision 1.11 2025/06/23 20:53:30 snw + * Documentation updates + * + * 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 * @@ -66,6 +72,7 @@ #include "freem.h" #include "mref.h" #include "jobtab.h" +#include "shmmgr.h" short cur_symtab = 0; @@ -147,6 +154,10 @@ void ssvn_job_update(void) snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202PIPE_GLVN\201", pid); 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); snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ZCOMMANDS\201", pid); stcpy (d_buf, zcommds); @@ -388,7 +399,12 @@ void ssvn_job(short action, char *key, c mref_init (r, MREF_RT_SSVN, "^$JOB"); internal_to_mref (r, kbuf); - t_pid = atol (mref_get_subscript (r, 0)); + if (r->subscript_count > 0) { + t_pid = atol (mref_get_subscript (r, 0)); + } + else { + t_pid = shm_config->hdr->first_process; + } slot = job_get (t_pid); @@ -438,6 +454,10 @@ void ssvn_job(short action, char *key, c 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) { stcpy (l_o_val, data); @@ -937,7 +957,7 @@ void ssvn_job(short action, char *key, c goto done; } - case get_sym: + case get_sym: if (strcmp (mref_get_subscript (r, 1), "LVNQOVAL") == 0) { stcpy (data, l_o_val); goto done; @@ -946,6 +966,10 @@ void ssvn_job(short action, char *key, c stcpy (data, g_o_val); 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_order: case fra_query: