X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Ffile-name.c;h=9eeb4b1cfc06309e45c0777ef1277aa0fbeb4894;hb=0755b9a4256554906377f2db62e25ac09255a790;hp=e3047a3354cd3506917cefcb3e0a23587138981c;hpb=d0b91eae59319ab2756d0d43b9cb15eb9cd3c234;p=pspp diff --git a/src/data/file-name.c b/src/data/file-name.c index e3047a3354..9eeb4b1cfc 100644 --- a/src/data/file-name.c +++ b/src/data/file-name.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -27,12 +27,13 @@ #include #include "data/settings.h" -#include "libpspp/hash.h" +#include "libpspp/hash-functions.h" #include "libpspp/message.h" #include "libpspp/str.h" #include "libpspp/version.h" #include "gl/dirname.h" +#include "gl/dosname.h" #include "gl/intprops.h" #include "gl/minmax.h" #include "gl/relocatable.h" @@ -127,12 +128,16 @@ fn_is_special (const char *file_name) return false; } -/* Returns true if file with name NAME exists. */ +/* Returns true if file with name NAME exists, and that file is not a + directory */ bool fn_exists (const char *name) { struct stat temp; - return stat (name, &temp) == 0; + if ( stat (name, &temp) != 0 ) + return false; + + return ! S_ISDIR (temp.st_mode); } /* Environment variables. */ @@ -221,14 +226,7 @@ fn_open (const char *fn, const char *mode) } else #endif - { - FILE *f = fopen (fn, mode); - - if (f && mode[0] != 'r') - setvbuf (f, NULL, _IOLBF, 0); - - return f; - } + return fopen (fn, mode); } /* Counterpart to fn_open that closes file F with name FN; returns 0