diff options
author | Tatsuya Kinoshita <tats@debian.org> | 2013-10-12 11:11:41 +0000 |
---|---|---|
committer | Tatsuya Kinoshita <tats@debian.org> | 2013-10-12 11:11:41 +0000 |
commit | 0dfb0bc02d07ab321c6ec05db4aeee0a15e57d1d (patch) | |
tree | b8f6423e7bfb72c231f1b9fd33996327e0c6ce97 /debian/patches/210_vim-like.patch | |
parent | Update 150_contact-list.patch to drop unavailable mailing lists (diff) | |
download | w3m-0dfb0bc02d07ab321c6ec05db4aeee0a15e57d1d.tar.gz w3m-0dfb0bc02d07ab321c6ec05db4aeee0a15e57d1d.zip |
New patch 210_vim-like.patch for vim like handling (closes: #724028)
Diffstat (limited to '')
-rw-r--r-- | debian/patches/210_vim-like.patch | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/debian/patches/210_vim-like.patch b/debian/patches/210_vim-like.patch new file mode 100644 index 0000000..dcb598b --- /dev/null +++ b/debian/patches/210_vim-like.patch @@ -0,0 +1,87 @@ +Origin: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724028 +Bug: https://sourceforge.net/p/w3m/patches/68/ +Subject: vim/-perator like handling +From: Laurence Richert <laurencerichert@yahoo.de> + + - half page scrolling + - jumping to elements numbered by getLinkNumberStr() from Karsten + Schoelzel + +diff --git a/main.c b/main.c +index b421943..4b40e8e 100644 +--- a/main.c ++++ b/main.c +@@ -1566,6 +1566,18 @@ DEFUN(pgBack, PREV_PAGE, "Move to previous page") + * (Currentbuf->LINES - 1)), prec_num ? B_SCROLL : B_NORMAL); + } + ++/* Move half page forward */ ++DEFUN(hpgFore, NEXT_HALF_PAGE, "Scroll down half page") ++{ ++ nscroll(searchKeyNum() * (Currentbuf->LINES / 2 - 1), B_NORMAL); ++} ++ ++/* Move half page backward */ ++DEFUN(hpgBack, PREV_HALF_PAGE, "Scroll up half page") ++{ ++ nscroll(-searchKeyNum() * (Currentbuf->LINES / 2 - 1), B_NORMAL); ++} ++ + /* 1 line up */ + DEFUN(lup1, UP, "Scroll up one line") + { +@@ -3568,6 +3580,33 @@ DEFUN(lastA, LINK_END, "Go to the last link") + displayBuffer(Currentbuf, B_NORMAL); + } + ++/* go to the nth anchor */ ++DEFUN(nthA, LINK_N, "Go to the nth link") ++{ ++ HmarkerList *hl = Currentbuf->hmarklist; ++ BufferPoint *po; ++ Anchor *an; ++ ++ int n = searchKeyNum(); ++ if (n < 0 || n > hl->nmark) return; ++ ++ if (Currentbuf->firstLine == NULL) ++ return; ++ if (!hl || hl->nmark == 0) ++ return; ++ ++ po = hl->marks + n-1; ++ an = retrieveAnchor(Currentbuf->href, po->line, po->pos); ++ if (an == NULL) ++ an = retrieveAnchor(Currentbuf->formitem, po->line, po->pos); ++ if (an == NULL) return; ++ ++ gotoLine(Currentbuf, po->line); ++ Currentbuf->pos = po->pos; ++ arrangeCursor(Currentbuf); ++ displayBuffer(Currentbuf, B_NORMAL); ++} ++ + /* go to the next anchor */ + DEFUN(nextA, NEXT_LINK, "Move to next link") + { +diff --git a/proto.h b/proto.h +index f8a7345..9d14a58 100644 +--- a/proto.h ++++ b/proto.h +@@ -11,6 +11,8 @@ extern void pushEvent(int cmd, void *data); + extern MySignalHandler intTrap(SIGNAL_ARG); + extern void pgFore(void); + extern void pgBack(void); ++extern void hpgFore(void); ++extern void hpgBack(void); + extern void lup1(void); + extern void ldown1(void); + extern void ctrCsrV(void); +@@ -61,6 +63,7 @@ extern void submitForm(void); + extern void followForm(void); + extern void topA(void); + extern void lastA(void); ++extern void nthA(void); + extern void onA(void); + + extern void nextA(void); |