Create fileutils.c/.h

* _Py_fopen() and _Py_stat() come from Python/import.c
 * (_Py)_wrealpath() comes from Python/sysmodule.c
 * _Py_char2wchar(), _Py_wchar2char() and _Py_wfopen() come from Modules/main.c
 * (_Py)_wstat(), (_Py)_wgetcwd(), _Py_wreadlink() come from Modules/getpath.c
This commit is contained in:
Victor Stinner 2010-10-07 21:45:39 +00:00
parent 7ae7c87b05
commit 4e31443c4d
9 changed files with 832 additions and 392 deletions

View file

@ -122,6 +122,7 @@
#include "pystrtod.h"
#include "pystrcmp.h"
#include "dtoa.h"
#include "fileutils.h"
#ifdef __cplusplus
extern "C" {
@ -130,17 +131,6 @@ extern "C" {
/* _Py_Mangle is defined in compile.c */
PyAPI_FUNC(PyObject*) _Py_Mangle(PyObject *p, PyObject *name);
/* These functions live in main.c */
PyAPI_FUNC(wchar_t *) _Py_char2wchar(char *);
PyAPI_FUNC(char*) _Py_wchar2char(const wchar_t *text);
PyAPI_FUNC(FILE *) _Py_wfopen(const wchar_t *path, const wchar_t *mode);
/* These functions live in import.c */
PyAPI_FUNC(FILE*) _Py_fopen(PyObject *unicode, const char *mode);
#ifdef HAVE_STAT
int _Py_stat(PyObject *unicode, struct stat *statbuf);
#endif
#ifdef __cplusplus
}
#endif

55
Include/fileutils.h Normal file
View file

@ -0,0 +1,55 @@
#ifndef Py_FILEUTILS_H
#define Py_FILEUTILS_H
#ifdef __cplusplus
extern "C" {
#endif
PyAPI_FUNC(wchar_t *) _Py_char2wchar(
char *arg);
PyAPI_FUNC(char*) _Py_wchar2char(
const wchar_t *text);
#if defined(MS_WINDOWS) || defined(HAVE_STAT)
PyAPI_FUNC(int) _Py_wstat(
const wchar_t* path,
struct stat *buf);
#endif
#ifdef HAVE_STAT
PyAPI_FUNC(int) _Py_stat(
PyObject *unicode,
struct stat *statbuf);
#endif
PyAPI_FUNC(FILE *) _Py_wfopen(
const wchar_t *path,
const wchar_t *mode);
PyAPI_FUNC(FILE*) _Py_fopen(
PyObject *unicode,
const char *mode);
#ifdef HAVE_READLINK
PyAPI_FUNC(int) _Py_wreadlink(
const wchar_t *path,
wchar_t *buf,
size_t bufsiz);
#endif
#ifdef HAVE_REALPATH
PyAPI_FUNC(wchar_t*) _Py_wrealpath(
const wchar_t *path,
wchar_t *resolved_path);
#endif
PyAPI_FUNC(wchar_t*) _Py_wgetcwd(
wchar_t *buf,
size_t size);
#ifdef __cplusplus
}
#endif
#endif /* !Py_FILEUTILS_H */