mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 03:27:39 +00:00
e16a7d8f3b
`et` means `expandtab`. ```sh rg 'vi: .* :vi' -l -0 | \ xargs -0 sed -i '' 's/vi: \(.*\) et\(.*\) :vi/vi: \1 xoet\2:vi/' rg 'vi: .* :vi' -l -0 | \ xargs -0 sed -i '' 's/vi: \(.*\)noet\(.*\):vi/vi: \1et\2 :vi/' rg 'vi: .* :vi' -l -0 | \ xargs -0 sed -i '' 's/vi: \(.*\)xoet\(.*\):vi/vi: \1noet\2:vi/' ```
33 lines
1.7 KiB
C
33 lines
1.7 KiB
C
/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:4;tab-width:8;coding:utf-8 -*-│
|
|
│ vi: set et ft=c ts=4 sts=4 sw=4 fenc=utf-8 :vi │
|
|
╞══════════════════════════════════════════════════════════════════════════════╡
|
|
│ Python 3 │
|
|
│ https://docs.python.org/3/license.html │
|
|
╚─────────────────────────────────────────────────────────────────────────────*/
|
|
#include "third_party/python/Include/abstract.h"
|
|
#include "third_party/python/Include/import.h"
|
|
#include "third_party/python/Include/object.h"
|
|
#include "third_party/python/Include/yoink.h"
|
|
|
|
PYTHON_YOINK("io");
|
|
|
|
PyObject *
|
|
PyFile_FromFd(int fd, const char *name, const char *mode, int buffering,
|
|
const char *encoding, const char *errors, const char *newline,
|
|
int closefd)
|
|
{
|
|
PyObject *io, *stream;
|
|
_Py_IDENTIFIER(open);
|
|
io = PyImport_ImportModule("io");
|
|
if (io == NULL)
|
|
return NULL;
|
|
stream = _PyObject_CallMethodId(io, &PyId_open, "isisssi", fd, mode,
|
|
buffering, encoding, errors,
|
|
newline, closefd);
|
|
Py_DECREF(io);
|
|
if (stream == NULL)
|
|
return NULL;
|
|
/* ignore name attribute because the name attribute of _BufferedIOMixin
|
|
and TextIOWrapper is read only */
|
|
return stream;
|
|
}
|