+#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);
+
+#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
+