--- htk_3.4.1/HTKLib/HModel.c 2009-03-12 18:46:34.000000000 +0000 +++ htk_3.4.2/HTKLib/HModel.c 2009-11-28 14:25:53.578000000 +0000 @@ -4488,12 +4488,12 @@ Boolean isPipe; FILE *f=NULL; - if ((fname==NULL) || ((f=FOpen(fname,NoFilter,&isPipe)) == NULL)) { + if ((fname==NULL) || ((f=FOpen(fname,HMMDefFilter,&isPipe)) == NULL)) { if ((trace&T_XFD) && (fname!=NULL)) HRError(7010,"InitXFormScanner: Cannot open source file %s",fname); p = xformDirNames; while ((p!=NULL) && - ((f=FOpen(MakeFN(macroname,p->dirName,NULL,buf),NoFilter,&isPipe)) == NULL)) { + ((f=FOpen(MakeFN(macroname,p->dirName,NULL,buf),HMMDefFilter,&isPipe)) == NULL)) { if (trace&T_XFD) HRError(7010,"InitXFormScanner: Cannot open source file %s",buf); p = p->next; --- htk_3.4.1/HTKLib/HShell.h 2009-03-12 18:48:12.000000000 +0000 +++ htk_3.4.2/HTKLib/HShell.h 2009-11-28 14:28:29.161000000 +0000 @@ -48,6 +48,7 @@ #include #include #else +#include #include #endif #include --- htk_3.4.1/HTKLib/HShell.c 2009-03-12 18:48:03.000000000 +0000 +++ htk_3.4.2/HTKLib/HShell.c 2009-11-28 14:31:47.749000000 +0000 @@ -919,6 +919,7 @@ #ifdef WIN32 #define popen _popen #define pclose _pclose +#define WEXITSTATUS(status) (status) #endif /* EXPORT->FOpen: return either a file or a pipe */ @@ -941,6 +942,10 @@ if (FilterSet(filter,cmd)){ SubstFName(fname,cmd); f = (FILE *)popen(cmd,mode); + if (WEXITSTATUS(pclose(f)) != 0) + f = NULL; + else + f = (FILE *)popen(cmd,mode); *isPipe = TRUE; if (trace&T_IOP) printf("HShell: FOpen - file %s %s pipe %s\n",