*** ../w3m-0.1.10-pre+666/main.c Tue May 23 18:25:11 2000 --- ./main.c Wed May 24 00:51:34 2000 *************** *** 44,50 **** static int n_event_queue; int (*searchRoutine) (Buffer *, char *); ! static void _goLine(char *); JMP_BUF IntReturn; --- 44,50 ---- static int n_event_queue; int (*searchRoutine) (Buffer *, char *); ! static void _goLine( int ); JMP_BUF IntReturn; *************** *** 571,577 **** displayBuffer(Currentbuf, B_NORMAL); onA(); if (line_str) { ! _goLine(line_str); } for (;;) { /* event processing */ --- 571,577 ---- displayBuffer(Currentbuf, B_NORMAL); onA(); if (line_str) { ! _goLine( atoi( line_str ) ); } for (;;) { /* event processing */ *************** *** 625,631 **** mouse_inactive(); #endif /* MOUSE */ if ((c & 0x80) == 0) { /* Ascii */ ! if (('0' <= c) && (c <= '9')) { prec_num = prec_num * 10 + (int) (c - '0'); if (prec_num > PREC_LIMIT) prec_num = PREC_LIMIT; --- 625,633 ---- mouse_inactive(); #endif /* MOUSE */ if ((c & 0x80) == 0) { /* Ascii */ ! if( ( '0' == c ) && ( prec_num == 0 ) ){ ! linbeg(); ! } else if( ('0' <= c) && (c <= '9') ) { prec_num = prec_num * 10 + (int) (c - '0'); if (prec_num > PREC_LIMIT) prec_num = PREC_LIMIT; *************** *** 1536,1558 **** /* Go to specified line */ static void ! _goLine(char *l) { ! if (l == NULL || *l == '\0' || Currentbuf->currentLine == NULL) { ! displayBuffer(Currentbuf, B_FORCE_REDRAW); ! return; ! } ! if (((*l == '^') || (*l == '$')) && prec_num) { ! gotoRealLine(Currentbuf, prec_num); ! } else if (*l == '^') { ! Currentbuf->topLine = Currentbuf->currentLine = Currentbuf->firstLine; ! } ! else if (*l == '$') { Currentbuf->topLine = lineSkip(Currentbuf, Currentbuf->lastLine, -(LASTLINE + 1) / 2, TRUE); ! Currentbuf->currentLine = Currentbuf->lastLine; ! } ! else ! gotoRealLine(Currentbuf, atoi(l)); arrangeCursor(Currentbuf); displayBuffer(Currentbuf, B_FORCE_REDRAW); } --- 1538,1550 ---- /* Go to specified line */ static void ! _goLine( int prec_num ) { ! if( prec_num == 0 ) { Currentbuf->topLine = lineSkip(Currentbuf, Currentbuf->lastLine, -(LASTLINE + 1) / 2, TRUE); ! Currentbuf->currentLine = Currentbuf->lastLine; ! } else ! gotoRealLine(Currentbuf, prec_num ); arrangeCursor(Currentbuf); displayBuffer(Currentbuf, B_FORCE_REDRAW); } *************** *** 1560,1580 **** void goLine(void) { ! char *l = inputStr("Goto line: ", ""); prec_num = 0; - _goLine(l); } void goLineF(void) { ! _goLine("^"); } void goLineL(void) { ! _goLine("$"); } /* Go to the beginning of the line */ --- 1552,1573 ---- void goLine(void) { ! _goLine( prec_num ); prec_num = 0; } void goLineF(void) { ! _goLine( 1 ); ! prec_num = 0; } void goLineL(void) { ! _goLine( 0 ); ! prec_num = 0; } /* Go to the beginning of the line */