0dbcca5
diff -up EMBOSS-6.3.1/emboss/tfm.c.fix-doc-finding EMBOSS-6.3.1/emboss/tfm.c
0dbcca5
--- EMBOSS-6.3.1/emboss/tfm.c.fix-doc-finding	2010-04-13 10:25:56.000000000 -0400
2c274f6
+++ EMBOSS-6.3.1/emboss/tfm.c	2010-11-10 13:53:05.957159000 -0500
2c274f6
@@ -143,13 +143,15 @@ static void tfm_FindAppDocRoot(const AjP
2c274f6
     AjPStr roottmp = NULL;
2c274f6
     AjPStr tmpstr = NULL;
2c274f6
     AjPStr embassy = NULL;
2c274f6
-
2c274f6
+    AjPStr doctest = NULL;
2c274f6
+    
2c274f6
     AjBool is_windows = ajFalse;
2c274f6
 #ifdef WIN32
2c274f6
     is_windows = ajTrue;
2c274f6
 #endif
2c274f6
 
2c274f6
     docrootinst = ajStrNew();
2c274f6
+    doctest     = ajStrNew();
2c274f6
     roottmp     = ajStrNew();
2c274f6
     tmpstr      = ajStrNew();
2c274f6
     
2c274f6
@@ -163,11 +165,25 @@ static void tfm_FindAppDocRoot(const AjP
451437f
     /* look at EMBOSS doc files */
451437f
 
0dbcca5
     /* try to open the installed doc directory */
451437f
-    if(ajStrGetLen(roottmp))
451437f
-	ajStrAssignS(docroot, roottmp);
0dbcca5
-   else
451437f
+    if(ajStrGetLen(roottmp)) 
2c274f6
+    {
2c274f6
+        /*
2c274f6
+        ** Check for old-style EMBOSS_DOCROOT and adjust accordingly
2c274f6
+        */
2c274f6
+        ajFmtPrintS(&doctest,"%S%cprograms%ctext",roottmp,SLASH_CHAR,
2c274f6
+                    SLASH_CHAR);
2c274f6
+        ajStrAssignS(&docrootinst,roottmp);
2c274f6
+        ajDirnameFix(&docrootinst);
2c274f6
+        
2c274f6
+        if(!ajDirnameFixExists(&doctest))
2c274f6
+        {
2c274f6
+            ajDirnameUp(&docrootinst);
2c274f6
+            ajDirnameUp(&docrootinst);
2c274f6
+        }
451437f
+    }
451437f
+    else
2c274f6
     {
2c274f6
-        ajStrAssignS(&docrootinst, ajNamValueInstalldir());
451437f
+	ajStrAssignS(&docrootinst, ajNamValueInstalldir());
0dbcca5
 	ajDirnameFix(&docrootinst);
451437f
 
451437f
 	if(is_windows)
2c274f6
@@ -184,28 +200,28 @@ static void tfm_FindAppDocRoot(const AjP
0dbcca5
 	else
0dbcca5
 	    ajFmtPrintAppS(&docrootinst, "share%sEMBOSS%sdoc%s",
0dbcca5
 			SLASH_STRING,SLASH_STRING,SLASH_STRING);
451437f
+    }
0dbcca5
 
0dbcca5
-
0dbcca5
-	if(html)
0dbcca5
-	{
451437f
-	  if(ajStrGetLen(embassy))
451437f
+    if(html)
451437f
+    {
451437f
+	if(ajStrGetLen(embassy))
0dbcca5
 	    ajFmtPrintS(docroot,"%Shtml%sembassy%s%S%s",
0dbcca5
 			docrootinst,SLASH_STRING,SLASH_STRING,
451437f
 			embassy, SLASH_STRING);
451437f
-	  else
451437f
-	  {
451437f
-	      if(is_windows)
451437f
-		  ajFmtPrintS(docroot,"%Sprograms%shtml%s",
451437f
-			      docrootinst,SLASH_STRING,SLASH_STRING);
451437f
-	      else
451437f
-		  ajFmtPrintS(docroot,"%Sprograms%shtml%s",
451437f
-			      docrootinst,SLASH_STRING,SLASH_STRING);
451437f
-          }
0dbcca5
-	}
451437f
 	else
451437f
+	{
451437f
+	    if(is_windows)
451437f
+		ajFmtPrintS(docroot,"%Sprograms%shtml%s",
451437f
+			    docrootinst,SLASH_STRING,SLASH_STRING);
451437f
+	    else
451437f
+		ajFmtPrintS(docroot,"%Sprograms%shtml%s",
451437f
+			    docrootinst,SLASH_STRING,SLASH_STRING);
451437f
+	}
451437f
+    }
451437f
+    else
0dbcca5
 	    ajFmtPrintS(docroot,"%Sprograms%stext%s",docrootinst,SLASH_STRING,
0dbcca5
 			SLASH_STRING);
0dbcca5
-    }
0dbcca5
+
0dbcca5
     ajDirnameFix(docroot);
0dbcca5
     ajDebug("installed docroot '%S'\n", *docroot);
63cbb13
 
2c274f6
@@ -248,6 +264,7 @@ static void tfm_FindAppDocRoot(const AjP
2c274f6
 
2c274f6
     ajStrDel(&roottmp);
2c274f6
     ajStrDel(&docrootinst);
2c274f6
+    ajStrDel(&doctest);
2c274f6
     ajStrDel(&tmpstr);
2c274f6
     
2c274f6
     return;
2c274f6
@@ -348,4 +365,4 @@ static void tfm_FixImages(AjPStr *line, 
2c274f6
     ajStrDel(&pre);
2c274f6
     
2c274f6
     return;
2c274f6
-}
2c274f6
+}
2c274f6
\ No newline at end of file