mturk       2003/10/02 00:24:25

  Modified:    procrun  tomcat.c
  Log:
  Improve the listview parsing and creation, and make sure that stderr
  messages gets display as error.
  
  Revision  Changes    Path
  1.3       +46 -25    jakarta-tomcat-connectors/procrun/tomcat.c
  
  Index: tomcat.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/procrun/tomcat.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- tomcat.c  1 Oct 2003 18:08:58 -0000       1.2
  +++ tomcat.c  2 Oct 2003 07:24:25 -0000       1.3
  @@ -91,23 +91,32 @@
   #include <jni.h>
    
   #include "procrun.h"
  -
  +
   prcrun_lview_t tac_columns[] = {
  -    {   "Status",   140     },
  +    {   "Type",     60      },
  +    {   "Date",     80      },
  +    {   "Time",     60      },
       {   "Class",    172     },
       {   "Message",  300     },
  -    {   NULL,       0       },
  +    {   NULL,       0       },
   };
   
  -static char *ac_lv_stat = NULL;
  -static char ac_lv_clbuf[1024] = {0};
  +static char ac_lv_buf[1024] = {0};
   static char *ac_lv_class = NULL;
  -static char *ac_lv_clmsg = NULL;
  +static char *ac_lv_msg = NULL;
  +static char *ac_lv_date = NULL;
  +static char *ac_lv_time = NULL;
   static int  ac_lv_iicon = 0;
  -
  +
  +static char *lv_infos[] = {
  +    "Info",
  +    "Warning",
  +    "Error",
  +    "Severe"
  +};
   
   
  -void tc_parse_list_string(const char *str)
  +void tc_parse_list_string(const char *str, int from)
   {
       int row = 0x7FFFFFFF;
       LV_ITEM lvi;
  @@ -116,12 +125,16 @@
       if (isdigit(*str)) {
           char *p;
                   
  -        strncpy(ac_lv_clbuf, str, 1023);
  -        ac_lv_stat = p = &ac_lv_clbuf[0];
  +        strncpy(ac_lv_buf, str, 1023);
  +        ac_lv_date = p = &ac_lv_buf[0];
   
           while (*p && !isspace(*p))
               ++p;
  -        ++p;
  +        *(p++) = 0;
  +        while (*p && isspace(*p))
  +            ++p;
  +        ac_lv_time = p;
  +
           while (*p && !isspace(*p))
               ++p;
           *(p++) = 0;
  @@ -132,7 +145,7 @@
           while (*p && !isspace(*p))
               ++p;
           *(p++) = 0;
  -        ac_lv_clmsg = p;
  +        ac_lv_msg = p;
           
       }
       else {
  @@ -149,31 +162,38 @@
               off = STRN_SIZE("ERROR:") + 1;
           }
           else if (STRN_COMPARE(str, "SEVERE:")) {
  -            ac_lv_iicon = 2;
  +            ac_lv_iicon = 3;
               off = STRN_SIZE("SEVERE:") + 1;
           }
  -        ac_lv_clmsg = (char *)str + off;
  +        ac_lv_msg = (char *)str + off;
   
           /* skip leading spaces */
  -        while (*ac_lv_clmsg && isspace(*ac_lv_clmsg))
  -            ++ac_lv_clmsg;
  +        while (*ac_lv_msg && isspace(*ac_lv_msg))
  +            ++ac_lv_msg;
       }
  +    
  +    /* if this is from stderr set the error icon */
  +    if (from)
  +        ac_lv_iicon = 2;
   
       STR_NOT_NULL(ac_lv_class);
  -    STR_NOT_NULL(ac_lv_clmsg);
  -    STR_NOT_NULL(ac_lv_stat);
  +    STR_NOT_NULL(ac_lv_msg);
  +    STR_NOT_NULL(ac_lv_date);
  +    STR_NOT_NULL(ac_lv_time);
   
       memset(&lvi, 0, sizeof(LV_ITEM));
       lvi.mask        = LVIF_IMAGE | LVIF_TEXT;
       lvi.iItem       = ac_lview_current;
       lvi.iImage      = ac_lv_iicon;
  -    lvi.pszText     = ac_lv_stat;
  -    lvi.cchTextMax  = strlen(ac_lv_stat) + 1;
  +    lvi.pszText     = lv_infos[ac_lv_iicon];
  +    lvi.cchTextMax  = 8;
       row = ListView_InsertItem(ac_list_hwnd, &lvi);
       if (row == -1)
           return;
  -    ListView_SetItemText(ac_list_hwnd, row, 1, ac_lv_class); 
  -    ListView_SetItemText(ac_list_hwnd, row, 2, ac_lv_clmsg);
  +    ListView_SetItemText(ac_list_hwnd, row, 1, ac_lv_date); 
  +    ListView_SetItemText(ac_list_hwnd, row, 2, ac_lv_time); 
  +    ListView_SetItemText(ac_list_hwnd, row, 3, ac_lv_class); 
  +    ListView_SetItemText(ac_list_hwnd, row, 4, ac_lv_msg);
       ListView_EnsureVisible(ac_list_hwnd,
                                  ListView_GetItemCount(ac_list_hwnd) - 1,
                                  FALSE); 
  @@ -184,10 +204,11 @@
   
   void acx_init_extended()
   {
  -    ac_use_lview = 1;
  -    ac_splash_msg = "INFO: Jk running";
  -    ac_columns = &tac_columns[0];
  +    ac_splash_timeout = 20000;
  +    ac_splash_msg = "INFO: Jk running";
  +    ac_columns = &tac_columns[0];
       lv_parser = tc_parse_list_string;
  +
   }
   
   #endif
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to