Diff for /freem/src/ssvn_job.c between versions 1.7 and 1.10

version 1.7, 2025/04/10 17:21:54 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
    *   Fix overflow bugs in ssvn_job.c
    *
  *   Revision 1.7  2025/04/10 17:21:54  snw   *   Revision 1.7  2025/04/10 17:21:54  snw
  *   Remove traces of BDB global handler   *   Remove traces of BDB global handler
  *   *
Line 74  void ssvn_job_add_device(int channel, ch Line 83  void ssvn_job_add_device(int channel, ch
     d_buf = (char *) malloc (STRLEN * sizeof (char));      d_buf = (char *) malloc (STRLEN * sizeof (char));
     NULLPTRCHK(k_buf,"ssvn_job_add_device");      NULLPTRCHK(k_buf,"ssvn_job_add_device");
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202OPEN\202%d\201", pid, channel);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202OPEN\202%d\201", pid, channel);
     snprintf (d_buf, 512 - 1, "%s\201", device);      snprintf (d_buf, STRLEN - 1, "%s\201", device);
   
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
           
Line 96  void ssvn_job_remove_device(int channel) Line 105  void ssvn_job_remove_device(int channel)
     d_buf = (char *) malloc (STRLEN * sizeof (char));      d_buf = (char *) malloc (STRLEN * sizeof (char));
     NULLPTRCHK(k_buf,"ssvn_job_add_device");      NULLPTRCHK(k_buf,"ssvn_job_add_device");
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202OPEN\202%d\201", pid, channel);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202OPEN\202%d\201", pid, channel);
     snprintf (d_buf, 512 - 1, "\201");      snprintf (d_buf, STRLEN - 1, "\201");
   
     symtab_shm (kill_sym, k_buf, d_buf);      symtab_shm (kill_sym, k_buf, d_buf);
           
Line 111  void ssvn_job_remove_device(int channel) Line 120  void ssvn_job_remove_device(int channel)
 void ssvn_job_update(void)  void ssvn_job_update(void)
 {  {
   
     char k_buf[512];      char k_buf[STRLEN];
     char d_buf[512];      char d_buf[STRLEN];
   
     char tk_buf[512];      char tk_buf[STRLEN];
     char td_buf[512];      char td_buf[STRLEN];
           
 #ifndef AMIGA68K  #ifndef AMIGA68K
     uid_t uid;      uid_t uid;
Line 138  void ssvn_job_update(void) Line 147  void ssvn_job_update(void)
   
     ierr_sav = ierr;      ierr_sav = ierr;
           
     snprintf (k_buf, 512 - 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, 512 - 1, "^$JOB\202%d\202ZCOMMANDS\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ZCOMMANDS\201", pid);
     stcpy (d_buf, zcommds);      stcpy (d_buf, zcommds);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ZFUNCTIONS\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ZFUNCTIONS\201", pid);
     stcpy (d_buf, zfunctions);      stcpy (d_buf, zfunctions);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ZSVS\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ZSVS\201", pid);
     stcpy (d_buf, zsvn);      stcpy (d_buf, zsvn);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202BREAK_HANDLER\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202BREAK_HANDLER\201", pid);
     stcpy (d_buf, brkaction);      stcpy (d_buf, brkaction);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ROUTINE_BUFFER_SIZE\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ROUTINE_BUFFER_SIZE\201", pid);
     snprintf (d_buf, 512 - 1, "%ld\201", PSIZE0 - 1);      snprintf (d_buf, STRLEN - 1, "%ld\201", PSIZE0 - 1);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ROUTINE_BUFFER_COUNT\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ROUTINE_BUFFER_COUNT\201", pid);
     snprintf (d_buf, 512 - 1, "%ld\201", NO_OF_RBUF);      snprintf (d_buf, STRLEN - 1, "%ld\201", NO_OF_RBUF);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ROUTINE_BUFFER_AUTO_ADJUST\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ROUTINE_BUFFER_AUTO_ADJUST\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", autorsize);      snprintf (d_buf, STRLEN - 1, "%d\201", autorsize);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202SYMBOL_TABLE_SIZE\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202SYMBOL_TABLE_SIZE\201", pid);
     snprintf (d_buf, 512 - 1, "%ld\201", PSIZE);      snprintf (d_buf, STRLEN - 1, "%ld\201", PSIZE);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202SYMBOL_TABLE_AUTO_ADJUST\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202SYMBOL_TABLE_AUTO_ADJUST\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", autopsize);      snprintf (d_buf, STRLEN - 1, "%d\201", autopsize);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202USER_DEFINED_ISV_TABLE_SIZE\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202USER_DEFINED_ISV_TABLE_SIZE\201", pid);
     snprintf (d_buf, 512 - 1, "%ld\201", UDFSVSIZ);      snprintf (d_buf, STRLEN - 1, "%ld\201", UDFSVSIZ);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202USER_DEFINED_ISV_TABLE_AUTO_ADJUST\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202USER_DEFINED_ISV_TABLE_AUTO_ADJUST\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", autousize);      snprintf (d_buf, STRLEN - 1, "%d\201", autousize);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202GVN_UNIQUE_CHARS\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202GVN_UNIQUE_CHARS\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", (glvnflag.one[0] == 0) ? 255 : glvnflag.one[0]);      snprintf (d_buf, STRLEN - 1, "%d\201", (glvnflag.one[0] == 0) ? 255 : glvnflag.one[0]);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     tf = UNSIGN (glvnflag.one[1]);      tf = UNSIGN (glvnflag.one[1]);
     toggle (tf);      toggle (tf);
           
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202GVN_CASE_SENSITIVE\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202GVN_CASE_SENSITIVE\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", tf);      snprintf (d_buf, STRLEN - 1, "%d\201", tf);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
           
     tf = UNSIGN (glvnflag.one[2]);      tf = UNSIGN (glvnflag.one[2]);
     if (tf == 0) tf = 255;      if (tf == 0) tf = 255;
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202GVN_NAME_SUB_LENGTH\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202GVN_NAME_SUB_LENGTH\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", tf);      snprintf (d_buf, STRLEN - 1, "%d\201", tf);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     tf = UNSIGN (glvnflag.one[3]);      tf = UNSIGN (glvnflag.one[3]);
     if (tf == 0) tf = 255;      if (tf == 0) tf = 255;
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202GVN_SUB_LENGTH\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202GVN_SUB_LENGTH\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", tf);          snprintf (d_buf, STRLEN - 1, "%d\201", tf);    
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
           
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202SINGLE_USER\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202SINGLE_USER\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", lonelyflag);      snprintf (d_buf, STRLEN - 1, "%d\201", lonelyflag);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202LOWERCASE_EVERYWHERE\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202LOWERCASE_EVERYWHERE\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", lowerflag);      snprintf (d_buf, STRLEN - 1, "%d\201", lowerflag);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ZCOMMAND_ARGUMENT_NAME\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ZCOMMAND_ARGUMENT_NAME\201", pid);
     stcpy (d_buf, zargdefname);      stcpy (d_buf, zargdefname);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202TIMEZONE_OFFSET\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202TIMEZONE_OFFSET\201", pid);
     lintstr (d_buf, tzoffset);      lintstr (d_buf, tzoffset);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
           
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ENGINES\202GLOBAL\202%s\201", pid, nsname);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ENGINES\202GLOBAL\202%s\201", pid, nsname);
     snprintf (d_buf, 512 - 1, "%s\201", gbl_u_engine);      snprintf (d_buf, STRLEN - 1, "%s\201", gbl_u_engine);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ENGINES\202GLOBAL\202SYSTEM\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ENGINES\202GLOBAL\202SYSTEM\201", pid);
     snprintf (d_buf, 512 - 1, "%s\201", gbl_s_engine);      snprintf (d_buf, STRLEN - 1, "%s\201", gbl_s_engine);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ENGINES\202LOCAL\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ENGINES\202LOCAL\201", pid);
     snprintf (d_buf, 512 - 1, "%s\201", loc_engine);      snprintf (d_buf, STRLEN - 1, "%s\201", loc_engine);
     symtab_shm (set_sym, k_buf, d_buf);          symtab_shm (set_sym, k_buf, d_buf);    
           
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202CHARACTER\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202CHARACTER\201", pid);
     symtab_shm (set_sym, k_buf, "M\201");      symtab_shm (set_sym, k_buf, "M\201");
   
     snprintf (d_buf, 512 - 1, "%s\201", curdir);      snprintf (d_buf, STRLEN - 1, "%s\201", curdir);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202CWD\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202CWD\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
           
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202GLOBAL\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202GLOBAL\201", pid);
     symtab_shm (set_sym, k_buf, " \201");      symtab_shm (set_sym, k_buf, " \201");
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202LOCK\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202LOCK\201", pid);
     symtab_shm (set_sym, k_buf, " \201");      symtab_shm (set_sym, k_buf, " \201");
   
     snprintf (d_buf, 512 - 1, "%s\201", oucpath);      snprintf (d_buf, STRLEN - 1, "%s\201", oucpath);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202IOPATH\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202IOPATH\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
 #if !defined(MSDOS)      #if !defined(MSDOS)    
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202PRIORITY\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202PRIORITY\201", pid);
     snprintf (d_buf, 512 - 1, "%d\201", getpriority (PRIO_PROCESS, pid));      snprintf (d_buf, STRLEN - 1, "%d\201", getpriority (PRIO_PROCESS, pid));
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
 #endif  #endif
           
     snprintf (d_buf, 512 - 1, "%s\201", rou_name);      snprintf (d_buf, STRLEN - 1, "%s\201", rou_name);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ROUTINE\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ROUTINE\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (d_buf, 512 - 1, "0:\"%s\"\201", dev[HOME]);      snprintf (d_buf, STRLEN - 1, "0:\"%s\"\201", dev[HOME]);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202$PRINCIPAL\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202$PRINCIPAL\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (d_buf, 512 - 1, "%d\201", tp_level);      snprintf (d_buf, STRLEN - 1, "%d\201", tp_level);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202$TLEVEL\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202$TLEVEL\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (d_buf, 512 - 1, "0:\"%s\"\201", dev[HOME]);      snprintf (d_buf, STRLEN - 1, "0:\"%s\"\201", dev[HOME]);
     snprintf (k_buf, 512 - 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, 512 -1, "%s\201", gvndefault);      snprintf (d_buf, STRLEN - 1, "%s\201", gvndefault);
     snprintf (k_buf, 512 - 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);
   
     snprintf (d_buf, 512 -1, "%s\201", lvndefault);      snprintf (d_buf, STRLEN -1, "%s\201", lvndefault);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202LVNDEFAULT\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202LVNDEFAULT\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
           
     ssvn_job_add_device (HOME, dev[HOME]);      ssvn_job_add_device (HOME, dev[HOME]);
           
     snprintf (d_buf, 512 - 1, "%d\201", uid);      snprintf (d_buf, STRLEN - 1, "%d\201", uid);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202USER\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202USER\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (d_buf, 512 - 1, "%d\201", gid);      snprintf (d_buf, STRLEN - 1, "%d\201", gid);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202GROUP\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202GROUP\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (d_buf, 512 - 1, "%s\201", nsname);      snprintf (d_buf, STRLEN - 1, "%s\201", nsname);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202NAMESPACE\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202NAMESPACE\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (d_buf, 512 - 1, "%d\201", cur_symtab);      snprintf (d_buf, STRLEN - 1, "%d\201", cur_symtab);
     snprintf (k_buf, 512 - 1, "^$JOB\202\%d\202SYMTAB\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202\%d\202SYMTAB\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
           
     snprintf (d_buf, 512 - 1, "%d\201", pid);      snprintf (d_buf, STRLEN - 1, "%d\201", pid);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202PID\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202PID\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (d_buf, 512 - 1, "%d\201", frm_throw_all_errors);      snprintf (d_buf, STRLEN - 1, "%d\201", frm_throw_all_errors);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202SET_ALL_ECODES\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202SET_ALL_ECODES\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);          symtab_shm (set_sym, k_buf, d_buf);    
           
     snprintf (tk_buf, 512 - 1, "^$SYSTEM\202ZDATE_FORMAT\201");      snprintf (tk_buf, STRLEN - 1, "^$SYSTEM\202ZDATE_FORMAT\201");
     ssvn (get_sym, tk_buf, td_buf);      ssvn (get_sym, tk_buf, td_buf);
           
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ZDATE_FORMAT\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ZDATE_FORMAT\201", pid);
     symtab_shm (set_sym, k_buf, td_buf);      symtab_shm (set_sym, k_buf, td_buf);
           
     snprintf (tk_buf, 512 - 1, "^$SYSTEM\202ZTIME_FORMAT\201");      snprintf (tk_buf, STRLEN - 1, "^$SYSTEM\202ZTIME_FORMAT\201");
     ssvn (get_sym, tk_buf, td_buf);      ssvn (get_sym, tk_buf, td_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ZTIME_FORMAT\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ZTIME_FORMAT\201", pid);
     symtab_shm (set_sym, k_buf, td_buf);      symtab_shm (set_sym, k_buf, td_buf);
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202ENVIRONMENT\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202ENVIRONMENT\201", pid);
     snprintf (d_buf, 512 - 1, "%s\201", shm_env);      snprintf (d_buf, STRLEN - 1, "%s\201", shm_env);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
           
     switch (fp_mode) {      switch (fp_mode) {
                   
         case 0:          case 0:
   
             snprintf (d_buf, 512 - 1, "FIXED\201");              snprintf (d_buf, STRLEN - 1, "FIXED\201");
             break;              break;
   
         default:          default:
   
             snprintf (d_buf, 512 - 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;
   
     }      }
   
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202MATH\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202MATH\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
   
     snprintf (d_buf, 512 - 1, "%d\201", en_revstrf);      snprintf (d_buf, STRLEN - 1, "%d\201", en_revstrf);
     snprintf (k_buf, 512 - 1, "^$JOB\202%d\202REVSTR\201", pid);      snprintf (k_buf, STRLEN - 1, "^$JOB\202%d\202REVSTR\201", pid);
     symtab_shm (set_sym, k_buf, d_buf);      symtab_shm (set_sym, k_buf, d_buf);
           
     stcpy (d_buf, rou_name);      stcpy (d_buf, rou_name);
Line 432  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 493  void ssvn_job(short action, char *key, c Line 510  void ssvn_job(short action, char *key, c
                     int tf = tvexpr (data);                      int tf = tvexpr (data);
   
                     lowerflag = tf;                      lowerflag = tf;
                     snprintf (data, 512 - 1, "%d\n", tf);                      snprintf (data, STRLEN - 1, "%d\n", tf);
   
                     symtab_shm (action, key, data);                      symtab_shm (action, key, data);
   
Line 550  void ssvn_job(short action, char *key, c Line 567  void ssvn_job(short action, char *key, c
                 else if (strcmp (mref_get_subscript (r, 1), "ROUTINE_BUFFER_AUTO_ADJUST") == 0) {                  else if (strcmp (mref_get_subscript (r, 1), "ROUTINE_BUFFER_AUTO_ADJUST") == 0) {
   
                     autorsize = tvexpr (data);                      autorsize = tvexpr (data);
                     snprintf (data, 512 - 1, "%d\201", tvexpr (data));                      snprintf (data, STRLEN - 1, "%d\201", tvexpr (data));
   
                     symtab_shm (action, key, data);                      symtab_shm (action, key, data);
   
Line 576  void ssvn_job(short action, char *key, c Line 593  void ssvn_job(short action, char *key, c
                 else if (strcmp (mref_get_subscript (r, 1), "SYMBOL_TABLE_AUTO_ADJUST") == 0) {                  else if (strcmp (mref_get_subscript (r, 1), "SYMBOL_TABLE_AUTO_ADJUST") == 0) {
   
                     autopsize = tvexpr (data);                      autopsize = tvexpr (data);
                     snprintf (data, 512 - 1, "%d\201", tvexpr (data));                      snprintf (data, STRLEN - 1, "%d\201", tvexpr (data));
   
                     symtab_shm (action, key, data);                      symtab_shm (action, key, data);
   
Line 601  void ssvn_job(short action, char *key, c Line 618  void ssvn_job(short action, char *key, c
                 }                  }
                 else if (strcmp (mref_get_subscript (r, 1), "USER_DEFINED_ISV_TABLE_AUTO_ADJUST") == 0) {                  else if (strcmp (mref_get_subscript (r, 1), "USER_DEFINED_ISV_TABLE_AUTO_ADJUST") == 0) {
                     autousize = tvexpr (data);                      autousize = tvexpr (data);
                     snprintf (data, 512 - 1, "%d\201", tvexpr (data));                      snprintf (data, STRLEN - 1, "%d\201", tvexpr (data));
   
                     symtab_shm (action, key, data);                      symtab_shm (action, key, data);
   
Line 618  void ssvn_job(short action, char *key, c Line 635  void ssvn_job(short action, char *key, c
   
                         glvnflag.one[0] = (char) t;                          glvnflag.one[0] = (char) t;
   
                         snprintf (data, 512 - 1, "%d\201", t);                          snprintf (data, STRLEN - 1, "%d\201", t);
                         symtab_shm (action, key, data);                          symtab_shm (action, key, data);
                                                   
                         merr_clear ();                          merr_clear ();
Line 639  void ssvn_job(short action, char *key, c Line 656  void ssvn_job(short action, char *key, c
   
                         glvnflag.one[1] = t;                          glvnflag.one[1] = t;
   
                         snprintf (data, 512 - 1, "%d\201", t);                          snprintf (data, STRLEN - 1, "%d\201", t);
                         symtab_shm (action, key, data);                          symtab_shm (action, key, data);
   
                         merr_clear ();                          merr_clear ();
Line 660  void ssvn_job(short action, char *key, c Line 677  void ssvn_job(short action, char *key, c
                     if (merr () != MXNUM) {                      if (merr () != MXNUM) {
                         glvnflag.one[2] = (char) t;                          glvnflag.one[2] = (char) t;
   
                         snprintf (data, 512 - 1, "%d\201", t);                          snprintf (data, STRLEN - 1, "%d\201", t);
                         symtab_shm (action, key, data);                          symtab_shm (action, key, data);
   
                         merr_clear ();                          merr_clear ();
Line 680  void ssvn_job(short action, char *key, c Line 697  void ssvn_job(short action, char *key, c
                     if (merr () != MXNUM) {                      if (merr () != MXNUM) {
                         glvnflag.one[3] = (char) t;                          glvnflag.one[3] = (char) t;
   
                         snprintf (data, 512 - 1, "%d\201", t);                          snprintf (data, STRLEN - 1, "%d\201", t);
                         symtab_shm (action, key, data);                          symtab_shm (action, key, data);
   
                         merr_clear ();                          merr_clear ();
Line 696  void ssvn_job(short action, char *key, c Line 713  void ssvn_job(short action, char *key, c
                     int tf = tvexpr (data);                      int tf = tvexpr (data);
                     close_all_globals ();                      close_all_globals ();
   
                     snprintf (data, 512 - 1, "%d\201", tf);                      snprintf (data, STRLEN - 1, "%d\201", tf);
                     symtab_shm (action, key, data);                      symtab_shm (action, key, data);
   
                     merr_clear ();                      merr_clear ();
Line 719  void ssvn_job(short action, char *key, c Line 736  void ssvn_job(short action, char *key, c
   
                     tzoffset = tzo;                      tzoffset = tzo;
   
                     snprintf (data, 512 - 1, "%ld\201", tzoffset);                      snprintf (data, STRLEN - 1, "%ld\201", tzoffset);
                     symtab_shm (action, key, data);                      symtab_shm (action, key, data);
   
                     goto done;                      goto done;
Line 901  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 931  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 940  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:

Removed from v.1.7  
changed lines
  Added in v.1.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>