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