/[LeafOK_CVS]/lbbs/src/screen.c
ViewVC logotype

Diff of /lbbs/src/screen.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.27 by sysadm, Sat May 3 10:11:37 2025 UTC Revision 1.29 by sysadm, Sun May 4 01:44:00 2025 UTC
# Line 76  void clearscr() Line 76  void clearscr()
76    
77  int press_any_key()  int press_any_key()
78  {  {
         igetch(1);  
   
79          moveto(screen_rows, 0);          moveto(screen_rows, 0);
80          clrtoeol();          clrtoeol();
81    
# Line 114  static int _str_input(char *buffer, int Line 112  static int _str_input(char *buffer, int
112                  offset++;                  offset++;
113          }          }
114    
         igetch(1);  
   
115          while (c = igetch_t(60))          while (c = igetch_t(60))
116          {          {
117                  if (c == KEY_NULL || c == KEY_TIMEOUT || c == CR)                  if (c == KEY_NULL || c == KEY_TIMEOUT || c == CR)
118                  {                  {
119                            igetch(1); // Cleanup remaining '\n' in the buffer
120                          break;                          break;
121                  }                  }
122                  if (c == LF)                  if (c == LF)
# Line 256  int display_file_ex(const char *filename Line 253  int display_file_ex(const char *filename
253    
254          while (loop)          while (loop)
255          {          {
256                  if (c_line_current >= c_line_total)                  if (c_line_current >= c_line_total && c_line_total <= screen_rows - 2)
257                  {                  {
258                          if (wait)                          if (wait)
259                          {                          {
# Line 271  int display_file_ex(const char *filename Line 268  int display_file_ex(const char *filename
268                          break;                          break;
269                  }                  }
270    
271                  if (line >= max_lines)                  if (c_line_current >= c_line_total || line >= max_lines)
272                  {                  {
273                          if (c_line_current - (line - 1) + (screen_rows - 2) < c_line_total)                          if (c_line_current - (line - 1) + (screen_rows - 2) < c_line_total)
274                          {                          {
# Line 279  int display_file_ex(const char *filename Line 276  int display_file_ex(const char *filename
276                          }                          }
277                          else                          else
278                          {                          {
                                 log_error("P100 reached\n");  
279                                  percentile = 100;                                  percentile = 100;
280                          }                          }
281    
282                          moveto(screen_rows, 0);                          moveto(screen_rows, 0);
283                          prints("\033[1;44;32m下面还有喔 (%d%%)\033[33m   │ 结束 ← <q> │ ↑/↓/PgUp/PgDn 移动 │ ? 辅助说明 │     \033[m",                          prints("\033[1;44;32m%s (%d%%)%s\033[33m  │ 结束 ← <q> │ ↑/↓/PgUp/PgDn 移动 │ ? 辅助说明 │     \033[m",
284                                     percentile);                                     (percentile < 100 ? "下面还有喔" : "没有更多了"), percentile,
285                                       (percentile < 10 ? "  " : (percentile < 100 ? " " : "")));
286                          iflush();                          iflush();
287    
288                          input_ok = 0;                          input_ok = 0;
# Line 303  int display_file_ex(const char *filename Line 300  int display_file_ex(const char *filename
300                                          c_line_current -= line;                                          c_line_current -= line;
301                                          line = begin_line;                                          line = begin_line;
302                                          max_lines = begin_line + 1;                                          max_lines = begin_line + 1;
303                                          prints("\033[1T"); // Scroll down 1 line                                          prints("\033[T"); // Scroll down 1 line
304                                            // max_lines = screen_rows - 1; // Legacy Fterm only works with this line
305                                          break;                                          break;
306                                  case KEY_DOWN:                                  case KEY_DOWN:
307                                  case CR:                                  case CR:
# Line 316  int display_file_ex(const char *filename Line 314  int display_file_ex(const char *filename
314                                          max_lines = screen_rows - 1;                                          max_lines = screen_rows - 1;
315                                          moveto(screen_rows, 0);                                          moveto(screen_rows, 0);
316                                          clrtoeol();                                          clrtoeol();
317                                          prints("\033[1S"); // Scroll up 1 line                                          prints("\033[S"); // Scroll up 1 line
318                                          break;                                          break;
319                                  case KEY_PGUP:                                  case KEY_PGUP:
320                                  case Ctrl('B'):                                  case Ctrl('B'):


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1