changeset 48841 | 2ef3b7d30cc1 |
parent 48840 | 499733de460f |
child 49275 | c6a3243567b6 |
48840:499733de460f | 48841:2ef3b7d30cc1 |
---|---|
1174 int bufsize = -1; |
1174 int bufsize = -1; |
1175 char m0, m1, m2; |
1175 char m0, m1, m2; |
1176 char fpmode[4]; |
1176 char fpmode[4]; |
1177 int fppos = 0; |
1177 int fppos = 0; |
1178 int plus; |
1178 int plus; |
1179 #ifndef IS_PY3K |
|
1180 FILE *fp; |
|
1181 #endif |
|
1182 |
1179 |
1183 if (!PyArg_ParseTupleAndKeywords(args, kwds, "et|yi:posixfile", |
1180 if (!PyArg_ParseTupleAndKeywords(args, kwds, "et|yi:posixfile", |
1184 kwlist, |
1181 kwlist, |
1185 Py_FileSystemDefaultEncoding, |
1182 Py_FileSystemDefaultEncoding, |
1186 &name, &mode, &bufsize)) |
1183 &name, &mode, &bufsize)) |
1248 if (fd == -1) { |
1245 if (fd == -1) { |
1249 CloseHandle(handle); |
1246 CloseHandle(handle); |
1250 PyErr_SetFromErrnoWithFilename(PyExc_IOError, name); |
1247 PyErr_SetFromErrnoWithFilename(PyExc_IOError, name); |
1251 goto bail; |
1248 goto bail; |
1252 } |
1249 } |
1253 #ifndef IS_PY3K |
|
1254 fp = _fdopen(fd, fpmode); |
|
1255 if (fp == NULL) { |
|
1256 _close(fd); |
|
1257 PyErr_SetFromErrnoWithFilename(PyExc_IOError, name); |
|
1258 goto bail; |
|
1259 } |
|
1260 |
|
1261 file_obj = PyFile_FromFile(fp, name, mode, fclose); |
|
1262 if (file_obj == NULL) { |
|
1263 fclose(fp); |
|
1264 goto bail; |
|
1265 } |
|
1266 |
|
1267 PyFile_SetBufSize(file_obj, bufsize); |
|
1268 #else |
|
1269 file_obj = PyFile_FromFd(fd, name, mode, bufsize, NULL, NULL, NULL, 1); |
1250 file_obj = PyFile_FromFd(fd, name, mode, bufsize, NULL, NULL, NULL, 1); |
1270 if (file_obj == NULL) |
1251 if (file_obj == NULL) |
1271 goto bail; |
1252 goto bail; |
1272 #endif |
|
1273 bail: |
1253 bail: |
1274 PyMem_Free(name); |
1254 PyMem_Free(name); |
1275 return file_obj; |
1255 return file_obj; |
1276 } |
1256 } |
1277 #endif |
1257 #endif |