Package: pan
Version: 0.133-1.1
Severity: normal
Tags: patch

When "Show Matching Articles' Threads" is set, sometimes some articles
(and their whole threads) are missing from the headers pane. Selecting
"Show Matching Articles" (or "Show Matching Articles' subthreads") and
then "Show Matching Articles' Threads" again sometimes help.

I've been able to reproduce it on specific articles. What was
"special" about these articles is that they were in newsgroup A, but
had references (in the References header) to articles in another
newsgroup B.

In pan/data-impl/my-tree.cc (see attached patch for exact place), the
assumption is made that, for each article N:

 thread of N == thread of parent of N

This is true only if the parent of N is known! If the parent of N is
not in the current newsgroup (or not in the downloaded headers), then
"thread of parent of N" is empty, because "parent of N" does not
exist.

The attached patch fixes this.

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_LU.UTF-8, LC_CTYPE=fr_LU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages pan depends on:
ii  aspell                  0.60.6-2         GNU Aspell spell-checker
ii  libatk1.0-0             1.28.0-1         The ATK accessibility toolkit
ii  libc6                   2.10.2-3         Embedded GNU C Library: Shared lib
ii  libcairo2               1.8.8-2          The Cairo 2D vector graphics libra
ii  libfontconfig1          2.8.0-2          generic font configuration library
ii  libfreetype6            2.3.11-1         FreeType 2 font engine, shared lib
ii  libgcc1                 1:4.4.2-8        GCC support library
ii  libglib2.0-0            2.22.3-2         The GLib library of C routines
ii  libgmime-2.0-2a         2.2.22-5         MIME library
ii  libgtk2.0-0             2.18.5-1         The GTK+ graphical user interface 
ii  libgtkspell0            2.0.13-2         a spell-checking addon for GTK's T
ii  libpango1.0-0           1.26.2-1         Layout and rendering of internatio
ii  libpcre3                7.8-3            Perl 5 Compatible Regular Expressi
ii  libstdc++6              4.4.2-8          The GNU Standard C++ Library v3
ii  zlib1g                  1:1.2.3.4.dfsg-3 compression library - runtime

pan recommends no packages.

pan suggests no packages.

-- no debconf information
only in patch2:
unchanged:
--- pan-0.133.orig/pan/data-impl/my-tree.cc
+++ pan-0.133/pan/data-impl/my-tree.cc
@@ -183,13 +183,14 @@
   //  maybe include threads or subthreads...
   if (_show_type == Data::SHOW_THREADS)
   {
-    foreach (const_nodes_v, pass, it) {
-      const ArticleNode *& n (*it);
-      while (n->_parent)
-        n = n->_parent;
+    const_nodes_v passcopy=pass;
+    foreach (const_nodes_v, passcopy, it) {
+      const ArticleNode *n (*it);
+      while ((n = n->_parent))
+        pass.push_back(n);
     }
     std::sort (pass.begin(), pass.end(), compare);
     pass.erase (std::unique (pass.begin(), pass.end()), pass.end());
     //std::cerr << LINE_ID << " reduces to " << pass.size() << " threads\n";
   }
 

Reply via email to