aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorLaurence Richert <laurencerichert@yahoo.de>2013-10-12 10:57:35 +0000
committerTatsuya Kinoshita <tats@debian.org>2013-10-12 10:57:35 +0000
commit3864447c900e7ad460c97f519905c52b4e2b1fd7 (patch)
tree2438a2f0d0c375bb16086e1a6567e48f24a099a9 /main.c
parentMerge from upstream on 2012-05-22 (diff)
downloadw3m-3864447c900e7ad460c97f519905c52b4e2b1fd7.tar.gz
w3m-3864447c900e7ad460c97f519905c52b4e2b1fd7.zip
vim/-perator like handling
- half page scrolling - jumping to elements numbered by getLinkNumberStr() from Karsten Schoelzel
Diffstat (limited to '')
-rw-r--r--main.c39
1 files changed, 39 insertions, 0 deletions
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")
{