home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / fileobject.h < prev    next >
C/C++ Source or Header  |  2003-12-30  |  2KB  |  71 lines

  1.  
  2. /* File object interface */
  3.  
  4. #ifndef Py_FILEOBJECT_H
  5. #define Py_FILEOBJECT_H
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9.  
  10. typedef struct {
  11.     PyObject_HEAD
  12.     FILE *f_fp;
  13.     PyObject *f_name;
  14.     PyObject *f_mode;
  15.     int (*f_close)(FILE *);
  16.     int f_softspace;    /* Flag used by 'print' command */
  17.     int f_binary;        /* Flag which indicates whether the file is 
  18.                    open in binary (1) or text (0) mode */
  19.     char* f_buf;        /* Allocated readahead buffer */
  20.     char* f_bufend;        /* Points after last occupied position */
  21.     char* f_bufptr;        /* Current buffer position */
  22.     char *f_setbuf;        /* Buffer for setbuf(3) and setvbuf(3) */
  23. #ifdef WITH_UNIVERSAL_NEWLINES
  24.     int f_univ_newline;    /* Handle any newline convention */
  25.     int f_newlinetypes;    /* Types of newlines seen */
  26.     int f_skipnextlf;    /* Skip next \n */
  27. #endif
  28.     PyObject *f_encoding;
  29. } PyFileObject;
  30.  
  31. PyAPI_DATA(PyTypeObject) PyFile_Type;
  32.  
  33. #define PyFile_Check(op) PyObject_TypeCheck(op, &PyFile_Type)
  34. #define PyFile_CheckExact(op) ((op)->ob_type == &PyFile_Type)
  35.  
  36. PyAPI_FUNC(PyObject *) PyFile_FromString(char *, char *);
  37. PyAPI_FUNC(void) PyFile_SetBufSize(PyObject *, int);
  38. PyAPI_FUNC(int) PyFile_SetEncoding(PyObject *, const char *);
  39. PyAPI_FUNC(PyObject *) PyFile_FromFile(FILE *, char *, char *,
  40.                                              int (*)(FILE *));
  41. PyAPI_FUNC(FILE *) PyFile_AsFile(PyObject *);
  42. PyAPI_FUNC(PyObject *) PyFile_Name(PyObject *);
  43. PyAPI_FUNC(PyObject *) PyFile_GetLine(PyObject *, int);
  44. PyAPI_FUNC(int) PyFile_WriteObject(PyObject *, PyObject *, int);
  45. PyAPI_FUNC(int) PyFile_SoftSpace(PyObject *, int);
  46. PyAPI_FUNC(int) PyFile_WriteString(const char *, PyObject *);
  47. PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *);
  48.  
  49. /* The default encoding used by the platform file system APIs
  50.    If non-NULL, this is different than the default encoding for strings
  51. */
  52. PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding;
  53.  
  54. #ifdef WITH_UNIVERSAL_NEWLINES
  55. /* Routines to replace fread() and fgets() which accept any of \r, \n
  56.    or \r\n as line terminators.
  57. */
  58. #define PY_STDIOTEXTMODE "b"
  59. char *Py_UniversalNewlineFgets(char *, int, FILE*, PyObject *);
  60. size_t Py_UniversalNewlineFread(char *, size_t, FILE *, PyObject *);
  61. #else
  62. #define PY_STDIOTEXTMODE ""
  63. #define Py_UniversalNewlineFgets(buf, len, fp, obj) fgets((buf), (len), (fp))
  64. #define Py_UniversalNewlineFread(buf, len, fp, obj) \
  65.         fread((buf), 1, (len), (fp))
  66. #endif /* WITH_UNIVERSAL_NEWLINES */
  67. #ifdef __cplusplus
  68. }
  69. #endif
  70. #endif /* !Py_FILEOBJECT_H */
  71.