tags 389762 fixed-upstream
thanks

On Wed, Dec 03, 2008 at 12:35:58PM +0000, Colin Watson wrote:
> The case of select is somewhat confusing. There's an ordinary page in
> section 2 (both for English and Japanese), which is straightforward. If
> you install manpages-posix-dev then there's also an ordinary page in
> section 3 with extension posix. However, manpages-dev installs links to
> select(2) as both FD_ZERO(2) and FD_ZERO(3) (I don't know why), and the
> section 3 version is spotted when doing a database lookup. This is why
> you get the duplication of /usr/share/man/man2/select.2.gz - at the
> level where man is checking for duplicate candidates, it sees that
> they're in different sections and therefore distinct, but it hasn't
> realised that the section 3 page is actually a symlink into section 2.
> 
> As of man-db 2.5.0, there are databases for non-English hierarchies as
> well, and I think this has papered over the problem because the bizarre
> section 3 page shows up for Japanese as well. However, the fact that the
> duplication isn't noticed and the fact that the whole list isn't
> properly sorted are still bugs.
> 
> For my own reference: it would probably be best to fix the sorting
> first, since I have a good reproduction case here.

I've now fixed this for the next upstream release (man-db 2.5.4). On my
system, the bug showed up as follows:

  $ man -aw select
  /usr/share/man/man2/select.2.gz
  /usr/share/man/man2/select.2.gz
  /usr/share/man/man3/select.3posix.gz
  $ LC_ALL=ja_JP.UTF-8 man -aw select
  /usr/share/man/ja/man2/select.2.gz
  /usr/share/man/man2/select.2.gz
  /usr/share/man/ja/man2/select.2.gz
  /usr/share/man/man2/select.2.gz
  /usr/share/man/man3/select.3posix.gz

The corrected version behaves as follows instead:

  $ src/man -aw select
  /usr/share/man/man2/select.2.gz
  /usr/share/man/man3/select.3posix.gz
  $ LC_ALL=ja_JP.UTF-8 src/man -aw select
  /usr/share/man/ja/man2/select.2.gz
  /usr/share/man/man2/select.2.gz
  /usr/share/man/man3/select.3posix.gz

Mon Dec  8 10:08:45 GMT 2008  Colin Watson  <[EMAIL PROTECTED]>

        Improve sorting and de-duplication of manual page candidates (Debian
        bug #389762).

        * src/man.c (struct candidate): Add ult member.
          (duplicate_candidates): Pare down to only check for duplication
          rather than trying to compare as well; the latter function is now
          handled entirely by compare_candidates. Compare the ultimate
          source file as the first test.
          (compare_candidates): Compare locale elements in candidate paths
          before comparing sections.
          (add_candidates): Look up the ultimate source file if necessary,
          and save it in the candidate structure. Use duplicate_candidates
          for duplicate testing only and compare_candidates for comparison.
          Insert elements at the latest possible position rather than the
          earliest possible.
          (try_section): Pass the ultimate source file that was already
          looked up here.
          (try_db): Adjust for new add_candidate signature.

Thanks for helping to improve man-db!

-- 
Colin Watson                                       [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to