diff --git a/src/mapping/PathTools.cpp b/src/mapping/PathTools.cpp index 9f7408f335..e7f185b473 100644 --- a/src/mapping/PathTools.cpp +++ b/src/mapping/PathTools.cpp @@ -144,8 +144,11 @@ int PathTools::main(FILE* in, FILE*out,Communicator& pc) { std::string ofmt; parse("--arg-fmt",ofmt); std::string ofilename; parse("--out",ofilename); if( ifilename.length()>0 ) { - fprintf(out,"Reparameterising path in file named %s so that all frames are equally spaced \n",ifilename.c_str() ); - FILE* fp=fopen(ifilename.c_str(),"r"); + std::fprintf(out,"Reparameterising path in file named %s so that all frames are equally spaced \n",ifilename.c_str() ); + FILE* fp=std::fopen(ifilename.c_str(),"r"); +// call fclose when fp goes out of scope + auto deleter=[](FILE* f) { if(f) std::fclose(f); }; + std::unique_ptr fp_deleter(fp,deleter); bool do_read=true; std::vector> frames; while (do_read) { PDB mypdb;