diff options
| -rw-r--r-- | debian/patches/210_vim-like.patch | 87 | ||||
| -rw-r--r-- | debian/patches/series | 1 | 
2 files changed, 88 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); diff --git a/debian/patches/series b/debian/patches/series index b2f94e0..8af0e0d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -19,4 +19,5 @@  180_execdict.patch  190_Strchop.patch  200_readme-img-typo.patch +210_vim-like.patch  900_ChangeLog.patch | 
