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]