GNOME Bugzilla – Bug 88969
reading ahead does not display binary posts properly
Last modified: 2004-12-22 21:47:04 UTC
In the gnome1 version of Pan, if you were reading a binaries/pictures newsgroup, you could use the spacebar to go to a post, then, before it was finished downloading (say, at the 50% point) hit the spacebar again to go to the next post. The old behaviour for this was to display the first post as soon as it was done downloading, then the second when it was done. The current behaviour is that it re-downloads the first post. So if at the 50% mark of downloading "sunset1.jpg" you hit the spacebar to go to "sunset2.jpg", another task is started up on the task bar, but it reads "sunset1.jpg" again, and the selected article does not advance. Having it work like it did before would be nice :)
D'oh! Forgot to add that it appears that this is a keyboard nav problem only, and clicking on another article with the mouse does advance the selected line properly and it does have the old behaviour, but only with the mouse.
And more debug.... using the n and ^n keys to move to new posts works properly as well, it looks like it's just the spacebar nav.
yup, this would be nice to have. coding info for pan-devel: this is in text_read_more(): const Article * a = articlelist_get_selected_article_nolock (); const char * art_subject = a ? article_get_subject(a) : NULL; const char * cur_subject = message ? message->subject : NULL; if (queue_is_online() && pan_strcmp (art_subject, cur_subject)) { /* if user has changed article selection, read the selection. */ articlelist_read_selected (); } Since cur_subject isn't changed until the download's complete, Pan will just keep trying to read that article. Possible solution, which will need to be tested: Index: text.c =================================================================== RCS file: /cvs/gnome/pan/pan/text.c,v retrieving revision 1.307 diff -u -u -r1.307 text.c --- text.c 22 Jul 2002 14:31:45 -0000 1.307 +++ text.c 24 Jul 2002 16:25:40 -0000 @@ -376,8 +376,10 @@ } else if (queue_is_online() && pan_strcmp (art_subject, cur_subject)) { - /* if user has changed article selection, read the selection. */ - articlelist_read_selected (); + if (!queue_get_message_id_status (article_get_message_id (a))) + articlelist_read_selected (); + else + articlelist_read_next (); } else if ((v->upper < v->page_size) || (val == v->value)) {
Alan: can you apply the patch and see if it does the trick?
This is the error I get when the patch is applied to a stock 0.12.1 text.o: In function `text_read_more': /usr/local/src/pan-0.12.1/pan/text.c:376: undefined reference to `queue_get_message_id_status' collect2: ld returned 1 exit status make[1]: *** [pan] Error 1
Ah, that function didn't exist until 0.12.90. Do you want to try upgrading to 0.12.91 and applying the patch?
Yes, with the patch applied the behavior seems to be just great!
Fixed in cvs head for 0.12.92: http://cvs.gnome.org/bonsai/cvsview2.cgi?diff_mode=context&whitespace_mode=show&subdir=pan/pan&command=DIFF_FRAMESET&file=text.c&rev1=1.307&rev2=1.308&root=/cvs/gnome