implementation of jmp_file_index
This commit is contained in:
+51
-1
@@ -664,5 +664,55 @@ void search_previous(){
|
|||||||
status |= (STATUS_RUN_BACKEND);
|
status |= (STATUS_RUN_BACKEND);
|
||||||
}
|
}
|
||||||
void jmp_file_index(){
|
void jmp_file_index(){
|
||||||
TODO;
|
echo();
|
||||||
|
unsigned long i;
|
||||||
|
for (i = 0; i < terminal_width -1; i++) {
|
||||||
|
mvwaddch(win_b, 0, i, ' ');
|
||||||
|
}
|
||||||
|
mvwaddch(win_b, 0, 0, ':');
|
||||||
|
memset(search_buffer, 0, INPUT_BUFFER_SIZE);
|
||||||
|
|
||||||
|
curs_set(1);
|
||||||
|
echo();
|
||||||
|
|
||||||
|
timeout(-1); /* negative numbers block until enter is pressed */
|
||||||
|
|
||||||
|
unsigned int pass = 0;
|
||||||
|
char ch;
|
||||||
|
char err = 0;
|
||||||
|
char number_buffer[INPUT_BUFFER_SIZE];
|
||||||
|
char *num = number_buffer;
|
||||||
|
|
||||||
|
wmove(win_b, 0, 1);
|
||||||
|
while(1) {
|
||||||
|
ch = wgetch(win_b);
|
||||||
|
|
||||||
|
if (ch >= '0' && ch <= '9') {
|
||||||
|
*num = ch;
|
||||||
|
num++;
|
||||||
|
} else if (ch == '\n') {
|
||||||
|
break;
|
||||||
|
} else if (ch == 27) { /* esc key */
|
||||||
|
break;
|
||||||
|
} else if (ch == 127) { /* backspace */
|
||||||
|
num--;
|
||||||
|
if (num < number_buffer) {
|
||||||
|
num = number_buffer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*num = 0;
|
||||||
|
num = number_buffer;
|
||||||
|
|
||||||
|
unsigned long parsed_number = 0;
|
||||||
|
while(*num) {
|
||||||
|
parsed_number = (parsed_number * 10) + (*num - '0');
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
mid_dir.current_file = &mid_dir.file_list[parsed_number];
|
||||||
|
|
||||||
|
noecho();
|
||||||
|
curs_set(0);
|
||||||
|
|
||||||
|
status |= (STATUS_RUN_BACKEND);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user