diff --git a/src/tempfile.c b/src/tempfile.c new file mode 100644 index 0000000..ec9c02e --- /dev/null +++ b/src/tempfile.c @@ -0,0 +1,39 @@ +/** + * + * @file tempfile.c + * + * Generate a temporary file stream + * + * Before Vista this was trivial, more or less. However Vista restricts access + * so much that this call usually breaks, which is a pretty annoying bug. + */ + +#include +#include + +#ifdef FORWINDOWS +#define WIN32_LEAN_AND_MEAN +#include +#endif + +#include "bool.h" +#include "symbol.h" + +//! Create a new temporary file and return the pointer. +/** + * Before Vista this was trivial, more or less. However Vista restricts access + * so much that this call usually breaks, which is a pretty annoying bug. + * + * http://msdn2.microsoft.com/en-us/library/aa363875.aspx + */ +FILE * +scyther_tempfile (void) +{ +#ifdef FORWINDOWS + /* For now, just the broken copy, I'm sorry. */ + return tmpfile (); +#else + /* On any other platform the normal stuff just works (tm) */ + return tmpfile (); +#endif +} diff --git a/src/tempfile.h b/src/tempfile.h new file mode 100644 index 0000000..14b2e39 --- /dev/null +++ b/src/tempfile.h @@ -0,0 +1,8 @@ +#ifndef TEMPFILES +#define TEMPFILES + +#include + +FILE *scyther_tempfile (void); + +#endif