pwr_tStatus GeCurveGtk::get_times( pwr_tTime *from, pwr_tTime *to) { char *from_p, *to_p; pwr_tStatus sts; from_p = gtk_editable_get_chars( GTK_EDITABLE(timebox_start_time), 0, -1); to_p = gtk_editable_get_chars( GTK_EDITABLE(timebox_stop_time), 0, -1); sts = time_FormAsciiToA( from_p, SWE, SECOND, from); if ( EVEN(sts)) { g_free( from_p); g_free( to_p); return sts; } sts = time_FormAsciiToA( to_p, SWE, SECOND, to); if ( EVEN(sts)) { g_free( from_p); g_free( to_p); return sts; } g_free( from_p); g_free( to_p); return 1; }
void CLogNav::read(int* pos_list, int pos_cnt) { char line[400]; errh_eSeverity severity = errh_eSeverity_Null; pwr_tTime time; pwr_tTime ztime = { 0, 0 }; char time_str[40]; char logger[40]; int pid; int sts; FILE* fp; char filename[200]; CLogMsg* msg; char tmpfile[200] = "/tmp/clog.tmp"; int found; msg_list.clear(); current_pos_low = file_list.size(); current_pos_high = 0; for (int i = file_list.size() - 1; i >= 0; i--) { found = 0; for (int j = 0; j < pos_cnt; j++) { if (pos_list[j] - 1 == i) { found = 1; break; } } if (!found) continue; if (i + 1 > current_pos_high) current_pos_high = i + 1; if (i + 1 < current_pos_low) current_pos_low = i + 1; if (i == 0) { strcpy(filename, file_list[0].name); if (streq(filename, "")) continue; } else { // Unzip the file char cmd[300]; sprintf(cmd, "zcat %s > %s", file_list[i].name, tmpfile); system(cmd); strcpy(filename, tmpfile); } fp = fopen(filename, "r"); if (!fp) return; while (1) { sts = dcli_read_line(line, sizeof(line), fp); if (!sts) break; if (line[1] == ' ' && line[27] == ' ' && (line[0] == 'S' || line[0] == 'I' || line[0] == 'W' || line[0] == 'E' || line[0] == 'F')) { switch (line[0]) { case 'S': severity = errh_eSeverity_Success; break; case 'I': severity = errh_eSeverity_Info; break; case 'W': severity = errh_eSeverity_Warning; break; case 'E': severity = errh_eSeverity_Error; break; case 'F': severity = errh_eSeverity_Fatal; break; default:; } strncpy(logger, &line[2], 18); logger[18] = 0; sts = sscanf(&line[22], "%d", &pid); if (sts != 1) pid = 0; strncpy(&time_str[2], &line[28], 20); time_str[0] = '2'; time_str[1] = '0'; time_str[22] = 0; time_FormAsciiToA(time_str, HUNDRED, GB, &time); msg = new CLogMsg(severity, logger, pid, time, &line[49]); msg_list.push_back(*msg); delete msg; } else { str_trim(line, line); msg = new CLogMsg(errh_eSeverity_Null, "", 0, ztime, line); msg_list.push_back(*msg); delete msg; } } fclose(fp); if (i != 0) unlink(filename); } draw(); }