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