Orb/Doxygen/src/mangen.cpp
changeset 4 468f4c8d3d5b
parent 0 42188c7ea2d9
--- a/Orb/Doxygen/src/mangen.cpp	Fri Apr 23 20:47:58 2010 +0100
+++ b/Orb/Doxygen/src/mangen.cpp	Wed Aug 11 14:49:30 2010 +0100
@@ -2,7 +2,7 @@
  *
  * 
  *
- * Copyright (C) 1997-2008 by Dimitri van Heesch.
+ * Copyright (C) 1997-2010 by Dimitri van Heesch.
  *
  * Permission to use, copy, modify, and distribute this software and its
  * documentation under the terms of the GNU General Public License is hereby 
@@ -100,6 +100,7 @@
 static QCString buildFileName(const char *name)
 {
   QCString fileName;
+  if (name==0) return "noname";
 
   const char *p=name;
   char c;
@@ -254,7 +255,7 @@
   upperCase=FALSE;
 }
 
-void ManGenerator::startMemberHeader()
+void ManGenerator::startMemberHeader(const char *)
 {
   if (!firstCol) t << endl;
   t << ".SS \"";
@@ -407,8 +408,11 @@
     // the name of the link file is derived from the name of the anchor:
     // - truncate after an (optional) ::
     QCString baseName = name;
-    int i=baseName.findRev(':');
-    if (i!=-1) baseName=baseName.right(baseName.length()-i-1);
+    int i=baseName.findRev("::");
+    if (i!=-1) baseName=baseName.right(baseName.length()-i-2);
+
+    //printf("Converting man link '%s'->'%s'->'%s'\n",
+    //       name,baseName.data(),buildFileName(baseName).data());
     
     // - remove dangerous characters and append suffix, then add dir prefix
     QCString fileName=dir+"/"+buildFileName( baseName );
@@ -584,9 +588,9 @@
     {
       case SectionInfo::Page:          startGroupHeader(); break;
       case SectionInfo::Section:       startGroupHeader(); break;
-      case SectionInfo::Subsection:    startMemberHeader(); break;
-      case SectionInfo::Subsubsection: startMemberHeader(); break;
-      case SectionInfo::Paragraph:     startMemberHeader(); break;
+      case SectionInfo::Subsection:    startMemberHeader(0); break;
+      case SectionInfo::Subsubsection: startMemberHeader(0); break;
+      case SectionInfo::Paragraph:     startMemberHeader(0); break;
       default: ASSERT(0); break;
     }
   }