| 241 |
long int percentile; |
long int percentile; |
| 242 |
int loop; |
int loop; |
| 243 |
|
|
| 244 |
if ((p_shm = get_file_shm(filename, &data_len, &line_total, &p_data, &p_line_offsets)) == NULL) |
if ((p_shm = get_file_shm_readonly(filename, &data_len, &line_total, &p_data, &p_line_offsets)) == NULL) |
| 245 |
{ |
{ |
| 246 |
log_error("get_file_shm(%s) error\n", filename); |
log_error("get_file_shm(%s) error\n", filename); |
| 247 |
return KEY_NULL; |
return KEY_NULL; |
| 293 |
input_ok = 1; |
input_ok = 1; |
| 294 |
switch (ch) |
switch (ch) |
| 295 |
{ |
{ |
| 296 |
// case KEY_NULL: |
case KEY_NULL: |
| 297 |
case KEY_TIMEOUT: |
case KEY_TIMEOUT: |
| 298 |
goto cleanup; |
goto cleanup; |
| 299 |
case KEY_HOME: |
case KEY_HOME: |
| 419 |
} |
} |
| 420 |
|
|
| 421 |
cleanup: |
cleanup: |
| 422 |
|
if (detach_file_shm(p_shm) < 0) |
| 423 |
|
{ |
| 424 |
|
log_error("detach_file_shm(%s) error\n", filename); |
| 425 |
|
} |
| 426 |
|
|
| 427 |
return ch; |
return ch; |
| 428 |
} |
} |
| 429 |
|
|
| 445 |
status_f[len] = '\0'; |
status_f[len] = '\0'; |
| 446 |
} |
} |
| 447 |
|
|
| 448 |
len = split_line(BBS_current_section_name, 20, &truncate, §ion_name_len); |
len = split_line(BBS_current_section_name, BBS_section_name_max_len, &truncate, §ion_name_len); |
| 449 |
if (truncate) |
if (truncate) |
| 450 |
{ |
{ |
| 451 |
log_error("Section name is truncated\n"); |
log_error("Section name is truncated\n"); |
| 454 |
moveto(1, 0); |
moveto(1, 0); |
| 455 |
clrtoeol(); |
clrtoeol(); |
| 456 |
prints("\033[1;44;33m%s\033[37m%*s%*s\033[33m 讨论区 [%s]\033[m", |
prints("\033[1;44;33m%s\033[37m%*s%*s\033[33m 讨论区 [%s]\033[m", |
| 457 |
status_f, 32, BBS_name, 26, "", BBS_current_section_name); |
status_f, 44 - status_len, BBS_name, 26 - section_name_len, "", BBS_current_section_name); |
|
iflush(); |
|
| 458 |
|
|
| 459 |
return 0; |
return 0; |
| 460 |
} |
} |
| 490 |
moveto(SCREEN_ROWS, 0); |
moveto(SCREEN_ROWS, 0); |
| 491 |
clrtoeol(); |
clrtoeol(); |
| 492 |
prints("\033[1;44;33m[\033[36m%s\033[33m]%*s%*s帐号[\033[36m%s\033[33m]" |
prints("\033[1;44;33m[\033[36m%s\033[33m]%*s%*s帐号[\033[36m%s\033[33m]" |
| 493 |
"[\033[36m%1d\033[33m:\033[36m%2d\033[33m:\033[36m%2d\033[33m]\033[m", |
"[\033[36m%1d\033[33m天\033[36m%2d\033[33m时\033[36m%2d\033[33m分]\033[m", |
| 494 |
str_time, 21, msg_f, 13 - len_username, "", BBS_username, |
str_time, 21, msg_f, 9 - len_username, "", BBS_username, |
| 495 |
tm_online->tm_mday - 1, tm_online->tm_hour, tm_online->tm_min); |
tm_online->tm_mday - 1, tm_online->tm_hour, tm_online->tm_min); |
|
iflush(); |
|
| 496 |
|
|
| 497 |
return 0; |
return 0; |
| 498 |
} |
} |
| 506 |
static const void *p_data; |
static const void *p_data; |
| 507 |
static const long *p_line_offsets; |
static const long *p_line_offsets; |
| 508 |
|
|
| 509 |
|
static time_t t_last_show = 0; |
| 510 |
|
static int line_last = 0; |
| 511 |
|
|
| 512 |
char buffer[LINE_BUFFER_LEN]; |
char buffer[LINE_BUFFER_LEN]; |
| 513 |
long int len; |
long int len; |
| 514 |
|
|
| 515 |
if (p_shm == NULL) |
if (p_shm == NULL) |
| 516 |
{ |
{ |
| 517 |
if ((p_shm = get_file_shm(DATA_ACTIVE_BOARD, &data_len, &line_total, &p_data, &p_line_offsets)) == NULL) |
if ((p_shm = get_file_shm_readonly(DATA_ACTIVE_BOARD, &data_len, &line_total, &p_data, &p_line_offsets)) == NULL) |
| 518 |
{ |
{ |
| 519 |
log_error("get_file_shm(%s) error\n", DATA_ACTIVE_BOARD); |
log_error("get_file_shm(%s) error\n", DATA_ACTIVE_BOARD); |
| 520 |
return KEY_NULL; |
return KEY_NULL; |
| 521 |
} |
} |
| 522 |
} |
} |
| 523 |
|
|
| 524 |
clrline(3, 2 + ACTIVE_BOARD_HEIGHT); |
if (time(0) - t_last_show >= 10) |
| 525 |
|
{ |
| 526 |
|
line_last = line_current; |
| 527 |
|
t_last_show = time(0); |
| 528 |
|
} |
| 529 |
|
else |
| 530 |
|
{ |
| 531 |
|
line_current = line_last; |
| 532 |
|
} |
| 533 |
|
|
| 534 |
|
clrline(2, 2 + ACTIVE_BOARD_HEIGHT); |
| 535 |
|
|
| 536 |
for (int i = 0; i < ACTIVE_BOARD_HEIGHT; i++) |
for (int i = 0; i < ACTIVE_BOARD_HEIGHT; i++) |
| 537 |
{ |
{ |
| 556 |
break; |
break; |
| 557 |
} |
} |
| 558 |
} |
} |
|
iflush(); |
|
| 559 |
|
|
| 560 |
return 0; |
return 0; |
| 561 |
} |
} |