Closed Rhialto closed 4 years ago
Hmm, I just tried the epub with my XTerm and it's working fine. But I used XTerm version XTerm(348).
Probably try upgrading xterm?
Interesting. I could fairly easily try with a newer xterm which happened to be XTerm(359). But it made no difference. A mystery...
I tried installing epr on a remote Linux machine, using the same xterm as before, and there it worked. So there must be some difference in which Python version is installed or one of the modules that comes with it. On Linux it was Python 3.8, on NetSD it was Python 3.7. I guess this will give me something more to experiment with later.
Hahaha, but why use Xterm? There are a lot more modern terminals around...
Well, I don't do "desktops", and xterm is part of a basic X install. Also it has several features that many "modern" terminals don't have. But aside from that, I found out that the bug is actually in the curses library that I have. The pad is refreshing the wrong lines, or the right ones and then the wrong ones. I made a reproducer in C which more or less follows the curses calls done in epr.
So since this is not your bug, I'll close it. Thanks for looking at it anyway :)
#include <curses.h>
int main(int argc, char **argv)
{
initscr();
keypad(stdscr, TRUE);
clearok(stdscr, TRUE);
noecho();
int maxx = getmaxx(stdscr);
int maxy = getmaxy(stdscr);
mvwaddstr(stdscr, maxy-1, 0, "Loading...");
wrefresh(stdscr);
int rows = 1000;
int width = maxx - 4;
WINDOW *pad = newpad(rows, width + 2);
int i;
for (i = 0; i < rows; i++) {
char tmp[80];
sprintf(tmp, "Line %d", i);
mvwaddstr(pad, i, 0, tmp);
}
int y = 100;
int x = (maxx - width) / 2;
while (y < rows) {
/*
* According to curses_pad(3), this should show Line 100, Line 101,
* etc. It does even print that, briefly (if you can see it), but it
* is overwritten immediately with Line 0, Line 1, Line 2, etc.
*/
prefresh(pad, y,0, 0,x, maxy-1,x+width);
int k = wgetch(pad);
y += 10;
}
endwin();
}
I was reading this epub: https://sternchenland.com/downloads/karl-may/Winnetou%20I%20-%20Karl%20May.epub in an xterm and (initially) I didn't manage to get to the next page (past the front page).
Further experiments showed that if I make the xterm window wide enough, I get 2 pages of text next to each other (initially they have the same text). When I page down, the left-hand page stays the same but the right-hand page changes. If I make the xterm narrower, it becomes clear that the unchanging page is printed on top of the moving (correct) page.
First I thought it was something weird about just this epub, but I tried it with a few others and there it happened too. At the next chapter, the left-hand page switches to the first page of the new chapter.
I am using
XTERM_VERSION=XTerm(330)
andXTERM_LOCALE=en_US.UTF-8
. I just today installed epr usingpip3 install git+https://github.com/wustho/epr.git
."screenshot:"