diff -urN mupdf-0.7/apps/pdfapp.c mupdf-0.7.1/apps/pdfapp.c --- mupdf-0.7/apps/pdfapp.c 2010-08-25 22:12:09.000000000 +0800 +++ mupdf-0.7.1/apps/pdfapp.c 2011-01-01 16:22:47.940003690 +0800 @@ -465,27 +465,35 @@ int test; int len; - len = textlen(app->page->text); - - if (app->hit >= 0) - test = app->hit + strlen(app->search); - else + while (app->pageno <= app->pagecount) { + printf("pdfapp_searchforward loop on %d of %d\r", app->pageno, app->pagecount); + fflush(stdout); test = 0; - while (test < len) - { - matchlen = match(app->search, app->page->text, test); - if (matchlen) + len = textlen(app->page->text); + + if (app->hit >= 0) + test = app->hit + strlen(app->search); + else + test = 0; + + while (test < len) { - printf("found hit at %d + %d\n", test, matchlen); - app->hit = test; - app->hitlen = matchlen; - return; + matchlen = match(app->search, app->page->text, test); + if (matchlen) + { + printf("\nfound hit at %d + %d\n", test, matchlen); + app->hit = test; + app->hitlen = matchlen; + return; + } + test++; } - test++; + app->pageno++; + pdfapp_showpage(app, 1, 1); } - printf("hit not found\n"); + printf("\nhit not found\n"); } static void pdfapp_searchbackward(pdfapp_t *app) @@ -643,12 +651,26 @@ break; case 'j': - app->pany -= app->image->h / 10; + app->pany -= app->image->h / 50; + if (app->pany + app->image->h < app->winh) { + if (app->pageno < app->pagecount) { + panto = PAN_TO_TOP; + app->pageno++; + break; + } + } pdfapp_showpage(app, 0, 0); break; case 'k': - app->pany += app->image->h / 10; + app->pany += app->image->h / 50; + if (app->pany > 0) { + if (app->pageno > 1) { + panto = PAN_TO_BOTTOM; + app->pageno--; + break; + } + } pdfapp_showpage(app, 0, 0); break;