| 14 |
* * |
* * |
| 15 |
***************************************************************************/ |
***************************************************************************/ |
| 16 |
|
|
|
#define _POSIX_C_SOURCE 200809L |
|
|
|
|
|
#include "screen.h" |
|
| 17 |
#include "bbs.h" |
#include "bbs.h" |
| 18 |
#include "common.h" |
#include "common.h" |
|
#include "str_process.h" |
|
|
#include "log.h" |
|
|
#include "io.h" |
|
| 19 |
#include "editor.h" |
#include "editor.h" |
| 20 |
#include "file_loader.h" |
#include "file_loader.h" |
| 21 |
#include <fcntl.h> |
#include "io.h" |
| 22 |
|
#include "log.h" |
| 23 |
|
#include "login.h" |
| 24 |
|
#include "screen.h" |
| 25 |
|
#include "str_process.h" |
| 26 |
#include <ctype.h> |
#include <ctype.h> |
| 27 |
|
#include <errno.h> |
| 28 |
|
#include <fcntl.h> |
| 29 |
#include <string.h> |
#include <string.h> |
|
#include <unistd.h> |
|
| 30 |
#include <stdlib.h> |
#include <stdlib.h> |
| 31 |
#include <errno.h> |
#include <unistd.h> |
|
#include <sys/types.h> |
|
|
#include <sys/stat.h> |
|
| 32 |
#include <sys/param.h> |
#include <sys/param.h> |
| 33 |
|
#include <sys/stat.h> |
| 34 |
#include <sys/shm.h> |
#include <sys/shm.h> |
| 35 |
|
#include <sys/types.h> |
| 36 |
|
|
| 37 |
#define ACTIVE_BOARD_HEIGHT 8 |
#define ACTIVE_BOARD_HEIGHT 8 |
| 38 |
|
|
| 373 |
output_end_row = SCREEN_ROWS - 1; |
output_end_row = SCREEN_ROWS - 1; |
| 374 |
moveto(SCREEN_ROWS, 0); |
moveto(SCREEN_ROWS, 0); |
| 375 |
clrtoeol(); |
clrtoeol(); |
| 376 |
prints("\033[S"); // Scroll up 1 line |
//prints("\033[S"); // Scroll up 1 line |
| 377 |
|
prints("\n"); // Legacy Cterm only works with this line |
| 378 |
break; |
break; |
| 379 |
case KEY_PGUP: |
case KEY_PGUP: |
| 380 |
if (line_current - output_current_row < 0) // Reach begin |
if (line_current - output_current_row < 0) // Reach begin |
| 431 |
break; |
break; |
| 432 |
} |
} |
| 433 |
|
|
| 434 |
BBS_last_access_tm = time(0); |
BBS_last_access_tm = time(NULL); |
| 435 |
} |
} |
| 436 |
|
|
| 437 |
continue; |
continue; |
| 495 |
return KEY_NULL; |
return KEY_NULL; |
| 496 |
} |
} |
| 497 |
|
|
| 498 |
|
if (user_online_update("VIEW_FILE") < 0) |
| 499 |
|
{ |
| 500 |
|
log_error("user_online_update(VIEW_FILE) error\n"); |
| 501 |
|
} |
| 502 |
|
|
| 503 |
ret = display_data(p_data, line_total, p_line_offsets, eof_exit, display_file_key_handler, DATA_READ_HELP); |
ret = display_data(p_data, line_total, p_line_offsets, eof_exit, display_file_key_handler, DATA_READ_HELP); |
| 504 |
|
|
| 505 |
if (detach_file_shm(p_shm) < 0) |
if (detach_file_shm(p_shm) < 0) |
| 570 |
|
|
| 571 |
len_username = (int)strnlen(BBS_username, sizeof(BBS_username)); |
len_username = (int)strnlen(BBS_username, sizeof(BBS_username)); |
| 572 |
|
|
| 573 |
time_online = time(0) - BBS_login_tm; |
time_online = time(NULL) - BBS_login_tm; |
| 574 |
tm_online = gmtime(&time_online); |
tm_online = gmtime(&time_online); |
| 575 |
if (tm_online->tm_mday > 1) |
if (tm_online->tm_mday > 1) |
| 576 |
{ |
{ |
| 617 |
} |
} |
| 618 |
} |
} |
| 619 |
|
|
| 620 |
if (time(0) - t_last_show >= 10) |
if (time(NULL) - t_last_show >= 10) |
| 621 |
{ |
{ |
| 622 |
line_last = line_current; |
line_last = line_current; |
| 623 |
t_last_show = time(0); |
t_last_show = time(NULL); |
| 624 |
} |
} |
| 625 |
else |
else |
| 626 |
{ |
{ |