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; }