X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=tools%2Fctsimtext.cpp;h=be55b6ac8bcb36401cf29cb34d94935eb78c91ea;hb=d6553a81511f34757633399daec36cbe6ebd86ba;hp=3186150c9ac59093db7f2401239c8cb8eb35bef0;hpb=52b5db7fecd29a8ffe42c53e4e27fd2a698075bb;p=ctsim.git diff --git a/tools/ctsimtext.cpp b/tools/ctsimtext.cpp index 3186150..be55b6a 100644 --- a/tools/ctsimtext.cpp +++ b/tools/ctsimtext.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsimtext.cpp,v 1.26 2003/04/01 18:56:59 kevin Exp $ +** $Id$ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -45,7 +45,7 @@ extern "C" { // If linked to ctsimtext, but executed as another name, eg pjrec, then program will use that // linked name as name of function. -static const char* const g_szIdStr = "$Id: ctsimtext.cpp,v 1.26 2003/04/01 18:56:59 kevin Exp $"; +static const char* const g_szIdStr = "$Id$"; static const char* const s_szProgramName = "ctsimtext"; static const char* const s_szProgramName2 = "ctsimtext.exe"; static const char* const s_szProgramName3 = "ctsimtext-lam"; @@ -117,7 +117,7 @@ int ctsimtext_main (int argc, char * argv[]) { int iReturn = 0; - + if (argc > 1 && (strcmp(s_szProgramName, fileBasename (argv[0])) == 0 || strcmp(s_szProgramName2, fileBasename (argv[0])) == 0 || strcmp(s_szProgramName3, fileBasename (argv[0])) == 0)) { argv++; argc--; @@ -291,9 +291,41 @@ processCommand (int argc, char* const argv[]) int main (int argc, char* argv[]) { - int retval = 1; +#if defined(HAVE_FFTW) && defined(HAVE_GETENV) + const char* const pszHome = getenv("HOME"); + char* pszWisdom = NULL; + + if (pszHome) { + const char szFileBase[] = ".fftw3-wisdom"; + int nHome = strlen(pszHome); + int nBase = strlen(szFileBase); + int len = nHome + nBase + 1; + pszWisdom = new char [ len + 1 ]; + strcpy (pszWisdom, pszHome); + pszWisdom[nHome] = '/'; + strcpy(pszWisdom+nHome+1,szFileBase); + pszWisdom[nHome+nBase+2] = 0; + + FILE *wisdom = fopen(pszWisdom,"r"); + if (wisdom) { + fftw_import_wisdom_from_file(wisdom); + fclose(wisdom); + } + } +#endif + + int retval = ctsimtext_main(argc, argv); - retval = ctsimtext_main(argc, argv); +#if defined(HAVE_FFTW) && defined(HAVE_GETENV) + if (pszWisdom) { + FILE* wisdom = fopen(pszWisdom,"w+"); + if (wisdom) { + fftw_export_wisdom_to_file(wisdom); + fclose(wisdom); + delete [] pszWisdom; + } + } +#endif return retval; }