]> granicus.if.org Git - python/commitdiff
Fix two places (seek and truncate) where a cascade of PyArg_Parse
authorGuido van Rossum <guido@python.org>
Mon, 4 Jan 1999 17:22:18 +0000 (17:22 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 4 Jan 1999 17:22:18 +0000 (17:22 +0000)
calls was used instead of a single PyArg_ParseTuple call with an
optional argument.

Objects/fileobject.c

index b9fa0fc11465c2e3de867a82b6efea87f1efdc39..c57232c6204309c0520e4b829047626bf19739b0 100644 (file)
@@ -256,11 +256,8 @@ file_seek(f, args)
        if (f->f_fp == NULL)
                return err_closed();
        whence = 0;
-       if (!PyArg_Parse(args, "l", &offset)) {
-               PyErr_Clear();
-               if (!PyArg_Parse(args, "(li)", &offset, &whence))
-                       return NULL;
-       }
+       if (!PyArg_ParseTuple(args, "l|i", &offset, &whence))
+               return NULL;
        Py_BEGIN_ALLOW_THREADS
        errno = 0;
        ret = fseek(f->f_fp, offset, whence);
@@ -285,10 +282,11 @@ file_truncate(f, args)
        
        if (f->f_fp == NULL)
                return err_closed();
-       if (!PyArg_Parse(args, "l", &newsize)) {
-               PyErr_Clear();
-               if (!PyArg_NoArgs(args))
-                       return NULL;
+       newsize = -1;
+       if (!PyArg_ParseTuple(args, "|l", &newsize)) {
+               return NULL;
+       }
+       if (newsize < 0) {
                Py_BEGIN_ALLOW_THREADS
                errno = 0;
                newsize =  ftell(f->f_fp); /* default to current position*/
@@ -870,9 +868,9 @@ static PyMethodDef file_methods[] = {
        {"read",        (PyCFunction)file_read, 1},
        {"write",       (PyCFunction)file_write, 0},
        {"fileno",      (PyCFunction)file_fileno, 0},
-       {"seek",        (PyCFunction)file_seek, 0},
+       {"seek",        (PyCFunction)file_seek, 1},
 #ifdef HAVE_FTRUNCATE
-       {"truncate",    (PyCFunction)file_truncate, 0},
+       {"truncate",    (PyCFunction)file_truncate, 1},
 #endif
        {"tell",        (PyCFunction)file_tell, 0},
        {"readinto",    (PyCFunction)file_readinto, 0},