]> granicus.if.org Git - python/commitdiff
New builtin buffer() creates a derived read-only buffer from any
authorGuido van Rossum <guido@python.org>
Fri, 19 Mar 1999 19:07:19 +0000 (19:07 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 19 Mar 1999 19:07:19 +0000 (19:07 +0000)
object that supports the buffer interface (e.g. strings, arrays).

Python/bltinmodule.c

index d40c281def75f23fb6c8d4ee77223da50368fb23..b07597c582504ad0a9e223a0192070bc5daaeb47 100644 (file)
@@ -136,6 +136,29 @@ Call a function with positional arguments taken from the tuple args,\n\
 and keyword arguments taken from the optional dictionary kwargs.";
 
 
+static PyObject *
+builtin_buffer(self, args)
+       PyObject *self;
+       PyObject *args;
+{
+       PyObject *ob;
+       int offset = 0;
+       int size = Py_END_OF_BUFFER;
+
+       if ( !PyArg_ParseTuple(args, "O|ii:buffer", &ob, &offset, &size) )
+           return NULL;
+       return PyBuffer_FromObject(ob, offset, size);
+}
+
+static char buffer_doc[] =
+"buffer(object [, offset[, size]) -> object\n\
+\n\
+Creates a new buffer object which references the given object.\n\
+The buffer will reference a slice of the target object from the\n\
+start of the object (or at the specified offset). The slice will\n\
+extend to the end of the target object (or with the specified size).";
+
+
 static PyObject *
 builtin_callable(self, args)
        PyObject *self;
@@ -1923,6 +1946,7 @@ static PyMethodDef builtin_methods[] = {
        {"__import__",  builtin___import__, 1, import_doc},
        {"abs",         builtin_abs, 1, abs_doc},
        {"apply",       builtin_apply, 1, apply_doc},
+       {"buffer",      builtin_buffer, 1, buffer_doc},
        {"callable",    builtin_callable, 1, callable_doc},
        {"chr",         builtin_chr, 1, chr_doc},
        {"cmp",         builtin_cmp, 1, cmp_doc},