Summary: | man pages do not offer links to other man pages any more | ||
---|---|---|---|
Product: | [Unmaintained] kio | Reporter: | Ferdinand Gassauer <gassauer> |
Component: | man | Assignee: | Unassigned bugs mailing-list <unassigned-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | nicolasg |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Ferdinand Gassauer
2004-07-23 09:04:40 UTC
I have found some links that work, but non in the "SEE ALSO" section, where it would be most useful Hmm, there are some man pages which do not work like "sudoers" the sudoers man page put some specific markup between the name and the section, so the regexp doesn't catch it. I don't think it's too common to do that in man pages. Can you give other examples of man pages that do not work anymore? (If we are to add hacks, better find a generic way than one matching only one page.) Have a nice day! didn't find anything els, may be it makes more sens to contact the sudoers to conform to "strandards". if you could stop reassigning random bug reports to me, it would be a big help To comment #5: the problems is that there is not real standards. The original man pages (of the type man(7)) where meant to display nicely. So finding text sequences that should be transformed to links is not easy. (At least the other type, called mdoc(7), is more structured, so such problems happens less often.) Have a nice day! For the archive: I have just noticed that rpm(8) has the same type of reference however it seems to work there. So probably for sudoers(5) the main problem is \| (However this is just a little problem compared to the main problems of the current implementation of kio_man... unfortunately.) Have a nice day! SVN commit 421302 by goutte: Add support for references to man pages where a non-breaking space exists between command and section number (as using a non-breaking space in this case is even more logical than using a normal space.) BUG:85753 M +18 -10 man2html.cpp --- trunk/KDE/kdebase/kioslave/man/man2html.cpp #421301:421302 @@ -315,7 +315,7 @@ s_stringDefinitionMap.insert( "Gt", StringDefinition( 1, ">" ) ); s_stringDefinitionMap.insert( "Pm", StringDefinition( 1, "±" ) ); s_stringDefinitionMap.insert( "If", StringDefinition( 1, "∞" ) ); - s_stringDefinitionMap.insert( "Na", StringDefinition( 3, "NaN" ) ); // Not a Number ### TODO: does it exist in Unicode? + s_stringDefinitionMap.insert( "Na", StringDefinition( 3, "NaN" ) ); s_stringDefinitionMap.insert( "Ba", StringDefinition( 1, "|" ) ); // end mdoc-only // man(7) @@ -778,7 +778,8 @@ f=idtest[j]; /* check section */ g=strchr(f,')'); - if (g!=NULL && (g-f)<12 && (isalnum(f[-1]) || f[-1]=='>') && + // The character before f must alphanumeric, the end of a HTML tag or the end of a + if (g!=NULL && f>c && (g-f)<12 && (isalnum(f[-1]) || f[-1]=='>' || ( f[-1] == ';' ) ) && isdigit(f[1]) && f[1]!='0' && ((g-f)<=2 || isalpha(f[2]))) { ok = TRUE; @@ -792,14 +793,12 @@ } } } - else ok = FALSE; + else + ok = false; - if (ok) - { - /* this might be a link */ - h=f-1; - // ### TODO -#if 0 + h = f - 1; + if ( ok ) + { // Skip kdDebug(7107) << "BEFORE SECTION:" << *h << endl; if ( ( h > c + 5 ) && ( ! memcmp( h-5, " ", 6 ) ) ) @@ -807,7 +806,16 @@ h -= 6; kdDebug(7107) << "Skip " << endl; } -#endif + else if ( *h == ';' ) + { + // Not a non-breaking space, so probably not ok + ok = false; + } + } + + if (ok) + { + /* this might be a link */ /* skip html makeup */ while (h>c && *h=='>') { while (h!=c && *h!='<') h--; |