--- lbbs/src/screen.c 2005/05/06 15:48:44 1.16 +++ lbbs/src/screen.c 2006/01/03 12:34:54 1.20 @@ -107,12 +107,15 @@ set_input_echo (int echo) } int -str_input (char *buffer, int buffer_length, int echo_mode) +_str_input (char *buffer, int buffer_length, int echo_mode) { char buf[256], ch; int c, offset = 0, len, loop = 1, i, hz = 0; - memset (buffer, '\0', buffer_length); + for (i=0; i= screen_lines) + if (line >= max_lines) { f_offset = ftell (fin); @@ -287,7 +303,7 @@ display_file_ex (const char *filename, i case KEY_PGUP: case Ctrl ('B'): if (c_line_begin > 0) - c_line_begin -= (screen_lines - begin_line - 1); + c_line_begin -= (max_lines - begin_line - 1); else goto exit; if (c_line_begin < 0) @@ -303,11 +319,11 @@ display_file_ex (const char *filename, i case KEY_PGDN: case Ctrl ('F'): case KEY_SPACE: - c_line_begin += (screen_lines - begin_line - 1); - if (c_line_begin + (screen_lines - begin_line) > + c_line_begin += (max_lines - begin_line - 1); + if (c_line_begin + (max_lines - begin_line) > c_line_total) c_line_begin = - c_line_total - (screen_lines - begin_line); + c_line_total - (max_lines - begin_line); rewind (fin); for (f_line = 0; f_line < c_line_begin; f_line++) {