diff options
| author | Laurence Richert <laurencerichert@yahoo.de> | 2013-10-12 10:57:35 +0000 | 
|---|---|---|
| committer | Tatsuya Kinoshita <tats@debian.org> | 2013-10-12 10:57:35 +0000 | 
| commit | 3864447c900e7ad460c97f519905c52b4e2b1fd7 (patch) | |
| tree | 2438a2f0d0c375bb16086e1a6567e48f24a099a9 | |
| parent | Merge from upstream on 2012-05-22 (diff) | |
| download | w3m-3864447c900e7ad460c97f519905c52b4e2b1fd7.tar.gz w3m-3864447c900e7ad460c97f519905c52b4e2b1fd7.zip | |
vim/-perator like handling
- half page scrolling
- jumping to elements numbered by getLinkNumberStr() from Karsten
  Schoelzel
| -rw-r--r-- | main.c | 39 | ||||
| -rw-r--r-- | proto.h | 3 | 
2 files changed, 42 insertions, 0 deletions
| @@ -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")  { @@ -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); | 
