Diff for /freem/src/merr.c between versions 1.6 and 1.10

version 1.6, 2025/04/30 17:19:16 version 1.10, 2025/05/14 12:22:04
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/05/14 12:22:04  snw
    *   Further work on shared memory
    *
    *   Revision 1.9  2025/05/03 04:21:01  snw
    *   Another fix for user-defined errors
    *
    *   Revision 1.8  2025/05/03 04:12:34  snw
    *   Fix user-defined error codes
    *
    *   Revision 1.7  2025/05/01 03:56:29  snw
    *   -m
    *
  *   Revision 1.6  2025/04/30 17:19:16  snw   *   Revision 1.6  2025/04/30 17:19:16  snw
  *   Improve backtraces in debugger   *   Improve backtraces in debugger
  *   *
Line 229  inline int merr_raise(int num) Line 241  inline int merr_raise(int num)
     if (num != OK) {      if (num != OK) {
         merr_set_ecode_ierr ();          merr_set_ecode_ierr ();
                   
         stcpy (merr_stack[nstx].MCODE, code);  
         stcpy (merr_stack[nstx].ECODE, ecode);          stcpy (merr_stack[nstx].ECODE, ecode);
                   
         if (direct_mode == 1 && nstx == 0) {          if (direct_mode == 1 && nstx == 0) {
             stcpy (merr_stack[nstx].PLACE, "@\201\0");              stcpy (merr_stack[nstx].PLACE, "@\201\0");
             stcpy (merr_stack[nstx].MCODE, " \201\0");              stcpy (merr_stack[nstx].MCODE, " \201\0");
         }          }
         else {          else {            
             getraddress (placebuf, nstx);              getraddress (placebuf, nstx);
             stcpy (merr_stack[nstx].PLACE, &(placebuf[3]));              stcpy (merr_stack[nstx].PLACE, &(placebuf[3]));
             /*  
             stcpy (lref, merr_stack[nstx].PLACE);              stcpy (lref, merr_stack[nstx].PLACE);
             stcnv_m2c (lref);              stcnv_m2c (lref);
               if (routine_get_line (lref, merr_stack[nstx].MCODE) == NULL) {
             if (m_text (lref, merr_stack[nstx].MCODE) == NULL) {  
                 sprintf (merr_stack[nstx].MCODE, "???\201");                  sprintf (merr_stack[nstx].MCODE, "???\201");
             }              }
             */              else {
                   stcnv_c2m (merr_stack[nstx].MCODE);
               }
         }          }
                   
         if (nstx > merr_topstk) merr_topstk = nstx;          if (nstx > merr_topstk) merr_topstk = nstx;
Line 335  void merr_set_ecode_ierr (void) Line 346  void merr_set_ecode_ierr (void)
     snprintf (t, MERR_COD_LENGTH - 1, ",%s,\201", cod);      snprintf (t, MERR_COD_LENGTH - 1, ",%s,\201", cod);
     merr_set_ecode (t);      merr_set_ecode (t);
           
     job_set_ecode (pid, cod);      /* job_set_ecode (pid, cod); */
           
 done:  done:
   
Line 422  void merr_dump (int num, char *rtn, char Line 433  void merr_dump (int num, char *rtn, char
                 snprintf (tbuf, STRLEN - 1, "^$JOB\202%d\202USER_ERRORS\202%s\201", pid, &user_ecode[1]);                  snprintf (tbuf, STRLEN - 1, "^$JOB\202%d\202USER_ERRORS\202%s\201", pid, &user_ecode[1]);
                 tbuf [stlen (tbuf) - 1] = '\201';                  tbuf [stlen (tbuf) - 1] = '\201';
   
                 global (get_sym, tbuf, dbuf);                  ssvn (get_sym, tbuf, dbuf);
                                   
                 if (merr () == OK) {                  if (merr () == OK) {
                     stcpy (nem, dbuf);                      stcpy (nem, dbuf);
                     stcnv_m2c (nem);                      stcnv_m2c (nem);
                 }                  }
                 else {                  else {
                       sprintf (nem, "user-defined error");                    
                     merr_clear ();                      merr_clear ();
                 }                  }
   
                   if (strlen (nem) == 0) {
                       sprintf (nem, "user-defined error");
                   }
                                   
             }              }
             else {              else {

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


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