diff -cr links-current/default.c links-zoso/default.c
*** links-current/default.c Wed May 31 10:08:49 2000
--- links-zoso/default.c Thu Jun 22 14:44:12 2000
***************
*** 564,569 ****
--- 564,574 ----
if ((i = get_cp_index(w)) == -1) goto err_f;
ts->charset = i;
mem_free(w);
+ if (!(w = get_word(&c))) goto err;
+ if (strlen(w) != 1 || w[0] < '0' || w[0] > '1') goto err_f;
+ ts->vi_keys = w[0] - '0';
+ fprintf (stderr, "vi_keys queda con el resultado %i\n", ts->vi_keys);
+ mem_free(w);
end:
return NULL;
err_f:
***************
*** 588,593 ****
--- 593,600 ----
add_num_to_str(s, l, ts->col);
add_to_str(s, l, " ");
add_to_str(s, l, get_cp_mime_name(ts->charset));
+ add_to_str(s, l, " ");
+ add_num_to_str(s, l, ts->vi_keys);
}
}
diff -cr links-current/language.h links-zoso/language.h
*** links-current/language.h Wed May 31 16:22:40 2000
--- links-zoso/language.h Thu Jun 22 14:44:12 2000
***************
*** 337,340 ****
#define T_HK_FULL_SCREEN 333
#define T_HK_BEOS_TERMINAL 334
#define T_HK_NEW_WINDOW 335
! #define T__N_TEXTS 336
--- 337,341 ----
#define T_HK_FULL_SCREEN 333
#define T_HK_BEOS_TERMINAL 334
#define T_HK_NEW_WINDOW 335
! #define T_VI_KEYS 336
! #define T__N_TEXTS 337
diff -cr links-current/language.inc links-zoso/language.inc
*** links-current/language.inc Wed May 31 16:22:40 2000
--- links-zoso/language.inc Thu Jun 22 14:44:12 2000
***************
*** 337,342 ****
--- 337,343 ----
T_HK_FULL_SCREEN, "F",
T_HK_BEOS_TERMINAL, "B",
T_HK_NEW_WINDOW, "N",
+ T_VI_KEYS, "Vi-like keys",
0, NULL
};
***************
*** 677,682 ****
--- 678,684 ----
T_HK_FULL_SCREEN, "C",
T_HK_BEOS_TERMINAL, "B",
T_HK_NEW_WINDOW, "N",
+ T_VI_KEYS, "Vi-like keys",
0, NULL
};
***************
*** 1017,1022 ****
--- 1019,1025 ----
T_HK_FULL_SCREEN, "F",
T_HK_BEOS_TERMINAL, "B",
T_HK_NEW_WINDOW, "N",
+ T_VI_KEYS, "Vi-like keys",
0, NULL
};
***************
*** 1357,1362 ****
--- 1360,1366 ----
T_HK_FULL_SCREEN, "F",
T_HK_BEOS_TERMINAL, "B",
T_HK_NEW_WINDOW, "N",
+ T_VI_KEYS, "Vi-like keys",
0, NULL
};
***************
*** 2037,2042 ****
--- 2041,2047 ----
T_HK_FULL_SCREEN, NULL,
T_HK_BEOS_TERMINAL, NULL,
T_HK_NEW_WINDOW, NULL,
+ T_VI_KEYS, "Vi-like keys",
0, NULL
};
diff -cr links-current/links.h links-zoso/links.h
*** links-current/links.h Wed May 31 15:33:06 2000
--- links-zoso/links.h Thu Jun 22 14:44:12 2000
***************
*** 918,923 ****
--- 918,924 ----
int restrict_852;
int col;
int charset;
+ int vi_keys;
};
#define TERM_DUMB 0
diff -cr links-current/main.c links-zoso/main.c
*** links-current/main.c Wed May 31 15:14:52 2000
--- links-zoso/main.c Thu Jun 22 14:44:12 2000
***************
*** 246,251 ****
--- 246,255 ----
set_sigcld();
init_home();
if (!(u = parse_options(ac - 1, av + 1))) goto ttt;
+ if ((dds.assume_cp = get_cp_index("ISO-8859-1")) == -1) dds.assume_cp = 0;
+ load_config();
+ read_bookmarks();
+ // fprintf (stderr, "vi_keys queda con el resultado %i\n", ts->vi_keys);
if (!no_connect && (uh = bind_to_af_unix()) != -1) {
if (!(info = create_session_info(base_session, u, &len))) goto ttt;
handle_trm(get_input_handle(), get_output_handle(), uh, uh, get_ctl_handle(), info, len);
***************
*** 253,262 ****
mem_free(info);
return;
}
- if ((dds.assume_cp = get_cp_index("ISO-8859-1")) == -1) dds.assume_cp = 0;
- load_config();
init_b = 1;
- read_bookmarks();
load_url_history();
init_cookies();
u = parse_options(ac - 1, av + 1);
--- 257,263 ----
diff -cr links-current/menu.c links-zoso/menu.c
*** links-current/menu.c Wed May 31 11:11:22 2000
--- links-zoso/menu.c Thu Jun 22 14:44:12 2000
***************
*** 367,381 ****
do_menu_selected(term, mi, ptr, sel);
}
! unsigned char *td_labels[] = { TEXT(T_NO_FRAMES), TEXT(T_VT_100_FRAMES), TEXT(T_LINUX_OR_OS2_FRAMES), TEXT(T_KOI8R_FRAMES), TEXT(T_USE_11M), TEXT(T_RESTRICT_FRAMES_IN_CP850_852), TEXT(T_COLOR), NULL };
void terminal_options(struct terminal *term, void *xxx, struct session *ses)
{
struct dialog *d;
struct term_spec *ts = new_term_spec(term->term);
if (!ts) return;
! if (!(d = mem_alloc(sizeof(struct dialog) + 10 * sizeof(struct dialog_item)))) return;
! memset(d, 0, sizeof(struct dialog) + 10 * sizeof(struct dialog_item));
d->title = TEXT(T_TERMINAL_OPTIONS);
d->fn = checkbox_list_fn;
d->udata = td_labels;
--- 367,381 ----
do_menu_selected(term, mi, ptr, sel);
}
! unsigned char *td_labels[] = { TEXT(T_NO_FRAMES), TEXT(T_VT_100_FRAMES), TEXT(T_LINUX_OR_OS2_FRAMES), TEXT(T_KOI8R_FRAMES), TEXT(T_USE_11M), TEXT(T_RESTRICT_FRAMES_IN_CP850_852), TEXT(T_COLOR), TEXT(T_VI_KEYS), NULL };
void terminal_options(struct terminal *term, void *xxx, struct session *ses)
{
struct dialog *d;
struct term_spec *ts = new_term_spec(term->term);
if (!ts) return;
! if (!(d = mem_alloc(sizeof(struct dialog) + 11 * sizeof(struct dialog_item)))) return;
! memset(d, 0, sizeof(struct dialog) + 11 * sizeof(struct dialog_item));
d->title = TEXT(T_TERMINAL_OPTIONS);
d->fn = checkbox_list_fn;
d->udata = td_labels;
***************
*** 413,427 ****
d->items[6].gid = 0;
d->items[6].dlen = sizeof(int);
d->items[6].data = (void *)&ts->col;
! d->items[7].type = D_BUTTON;
! d->items[7].gid = B_ENTER;
! d->items[7].fn = ok_dialog;
! d->items[7].text = TEXT(T_OK);
d->items[8].type = D_BUTTON;
! d->items[8].gid = B_ESC;
! d->items[8].fn = cancel_dialog;
! d->items[8].text = TEXT(T_CANCEL);
! d->items[9].type = D_END;
do_dialog(term, d, getml(d, NULL));
}
--- 413,431 ----
d->items[6].gid = 0;
d->items[6].dlen = sizeof(int);
d->items[6].data = (void *)&ts->col;
! d->items[7].type = D_CHECKBOX;
! d->items[7].gid = 0;
! d->items[7].dlen = sizeof(int);
! d->items[7].data = (void *)&ts->vi_keys;
d->items[8].type = D_BUTTON;
! d->items[8].gid = B_ENTER;
! d->items[8].fn = ok_dialog;
! d->items[8].text = TEXT(T_OK);
! d->items[9].type = D_BUTTON;
! d->items[9].gid = B_ESC;
! d->items[9].fn = cancel_dialog;
! d->items[9].text = TEXT(T_CANCEL);
! d->items[10].type = D_END;
do_dialog(term, d, getml(d, NULL));
}
diff -cr links-current/view.c links-zoso/view.c
*** links-current/view.c Wed May 31 19:01:43 2000
--- links-zoso/view.c Thu Jun 22 14:44:12 2000
***************
*** 1728,1735 ****
if (ev->ev == EV_KBD) {
if (ev->x == KBD_PAGE_DOWN || (ev->x == ' ' && (!ev->y || ev->y == KBD_CTRL))) rep_ev(ses, fd, page_down, 0);
else if (ev->x == KBD_PAGE_UP || (upcase(ev->x) == 'B' && (!ev->y || ev->y == KBD_CTRL))) rep_ev(ses, fd, page_up, 0);
! else if (ev->x == KBD_DOWN) rep_ev(ses, fd, down, 0);
! else if (ev->x == KBD_UP) rep_ev(ses, fd, up, 0);
/* Copy current link to clipboard */
else if (ev->x == KBD_INS && ev->y == KBD_CTRL || upcase(ev->x) == 'C' && ev->y == KBD_CTRL) {
char *current_link = print_current_link(ses);
--- 1728,1735 ----
if (ev->ev == EV_KBD) {
if (ev->x == KBD_PAGE_DOWN || (ev->x == ' ' && (!ev->y || ev->y == KBD_CTRL))) rep_ev(ses, fd, page_down, 0);
else if (ev->x == KBD_PAGE_UP || (upcase(ev->x) == 'B' && (!ev->y || ev->y == KBD_CTRL))) rep_ev(ses, fd, page_up, 0);
! else if (ev->x == KBD_DOWN || (ses->term->spec->vi_keys && ev->x == 'j')) rep_ev(ses, fd, down, 0);
! else if (ev->x == KBD_UP || (ses->term->spec->vi_keys && ev->x == 'k')) rep_ev(ses, fd, up, 0);
/* Copy current link to clipboard */
else if (ev->x == KBD_INS && ev->y == KBD_CTRL || upcase(ev->x) == 'C' && ev->y == KBD_CTRL) {
char *current_link = print_current_link(ses);
***************
*** 1744,1750 ****
else if (upcase(ev->x) == 'E' && ev->y == KBD_CTRL) rep_ev(ses, fd, scroll, 1);*/
else if (ev->x == KBD_HOME) rep_ev(ses, fd, home, 0);
else if (ev->x == KBD_END) rep_ev(ses, fd, x_end, 0);
! else if (ev->x == KBD_RIGHT || ev->x == KBD_ENTER) x = enter(ses, fd, 0);
else if (upcase(ev->x) == 'D' && !(ev->y & KBD_ALT)) frm_download(ses, fd);
else if (ev->x == '/') search_dlg(ses, fd, 0);
else if (ev->x == '?') search_back_dlg(ses, fd, 0);
--- 1744,1750 ----
else if (upcase(ev->x) == 'E' && ev->y == KBD_CTRL) rep_ev(ses, fd, scroll, 1);*/
else if (ev->x == KBD_HOME) rep_ev(ses, fd, home, 0);
else if (ev->x == KBD_END) rep_ev(ses, fd, x_end, 0);
! else if (ev->x == KBD_RIGHT || ev->x == KBD_ENTER || (ses->term->spec->vi_keys && ev->x == 'l')) x = enter(ses, fd, 0);
else if (upcase(ev->x) == 'D' && !(ev->y & KBD_ALT)) frm_download(ses, fd);
else if (ev->x == '/') search_dlg(ses, fd, 0);
else if (ev->x == '?') search_back_dlg(ses, fd, 0);
***************
*** 1925,1931 ****
print_screen_status(ses);
redraw_from_window(ses->win);*/
}
! if (ev->x == KBD_LEFT) {
back(ses, NULL, 0);
goto x;
}
--- 1925,1931 ----
print_screen_status(ses);
redraw_from_window(ses->win);*/
}
! if (ev->x == KBD_LEFT || (ses->term->spec->vi_keys && ev->x == 'h')) {
back(ses, NULL, 0);
goto x;
}