Staging
v0.8.1
Revision 22e885e6d89a5aadd9ed2f7f36f5ae83cc77de74 authored by Junio C Hamano on 02 April 2008, 07:22:15 UTC, committed by Junio C Hamano on 02 April 2008, 07:22:15 UTC
* dd/cvsserver:
  cvsserver: Use the user part of the email in log and annotate results
  cvsserver: Add test for update -p
  cvsserver: Implement update -p (print to stdout)
  cvsserver: Add a few tests for 'status' command
  cvsserver: Do not include status output for subdirectories if -l is passed
  cvsserver: Only print the file part of the filename in status header
  cvsserver: Respond to the 'editors' and 'watchers' commands
2 parent s 860bbd5 + c1bc306
Raw File
fopen.c
#include "../git-compat-util.h"
#undef fopen
FILE *git_fopen(const char *path, const char *mode)
{
	FILE *fp;
	struct stat st;

	if (mode[0] == 'w' || mode[0] == 'a')
		return fopen(path, mode);

	if (!(fp = fopen(path, mode)))
		return NULL;

	if (fstat(fileno(fp), &st)) {
		fclose(fp);
		return NULL;
	}

	if (S_ISDIR(st.st_mode)) {
		fclose(fp);
		errno = EISDIR;
		return NULL;
	}

	return fp;
}
back to top