]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
* posixmodule.c: added set{uid,gid}.
authorGuido van Rossum <guido@python.org>
Wed, 10 Nov 1993 09:23:53 +0000 (09:23 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 10 Nov 1993 09:23:53 +0000 (09:23 +0000)
* {tuple,list,mapping,array}object.c: call printobject with 0 for flags
* compile.c (parsestr): use quote instead of '\'' at one crucial point
* arraymodule.c (array_getattr): Added __members__ attribute

Modules/arraymodule.c
Modules/posixmodule.c
Objects/dictobject.c
Objects/listobject.c
Objects/mappingobject.c
Objects/tupleobject.c
Python/compile.c

index 248e431a5f1a84479f306a00b80c2c5fc8d0032e..5b62fee4c0216051b7dbf764263b658429e748f7 100644 (file)
@@ -993,6 +993,18 @@ array_getattr(a, name)
        if (strcmp(name, "itemsize") == 0) {
                return newintobject((long)a->ob_descr->itemsize);
        }
+       if (strcmp(name, "__members__") == 0) {
+               object *list = newlistobject(2);
+               if (list) {
+                       setlistitem(list, 0, newstringobject("typecode"));
+                       setlistitem(list, 1, newstringobject("itemsize"));
+                       if (err_occurred()) {
+                               DECREF(list);
+                               list = NULL;
+                       }
+               }
+               return list;
+       }
        return findmethod(array_methods, (object *)a, name);
 }
 
@@ -1013,7 +1025,7 @@ array_print(a, fp, flags)
        if (a->ob_descr->typecode == 'c') {
                fprintf(fp, "array('c', ");
                v = array_tostring(a, (object *)NULL);
-               ok = printobject(v, fp, flags);
+               ok = printobject(v, fp, 0);
                XDECREF(v);
                fprintf(fp, ")");
                return ok;
@@ -1023,7 +1035,7 @@ array_print(a, fp, flags)
                if (i > 0)
                        fprintf(fp, ", ");
                v = (a->ob_descr->getitem)(a, i);
-               ok = printobject(v, fp, flags);
+               ok = printobject(v, fp, 0);
                XDECREF(v);
        }
        fprintf(fp, "])");
index d84360bf9d4d308f1e9f468c186800a88e2bc954..00b83698fffbb2e8321fcb90529f5961d0e096ab 100644 (file)
@@ -865,6 +865,34 @@ posix_popen(self, args)
        return newopenfileobject(fp, name, mode, pclose);
 }
 
+static object *
+posix_setuid(self, args)
+       object *self;
+       object *args;
+{
+       int uid;
+       if (!getargs(args, "i", &uid))
+               return NULL;
+       if (setuid(uid) < 0)
+               return posix_error();
+       INCREF(None);
+       return None;
+}
+
+static object *
+posix_setgid(self, args)
+       object *self;
+       object *args;
+{
+       int gid;
+       if (!getargs(args, "i", &gid))
+               return NULL;
+       if (setgid(gid) < 0)
+               return posix_error();
+       INCREF(None);
+       return None;
+}
+
 static object *
 posix_waitpid(self, args)
        object *self;
@@ -1288,6 +1316,8 @@ static struct methodlist posix_methods[] = {
        {"getuid",      posix_getuid},
        {"kill",        posix_kill},
        {"popen",       posix_popen},
+       {"setuid",      posix_setuid},
+       {"setgid",      posix_setgid},
        {"setpgrp",     posix_setpgrp},
        {"wait",        posix_wait},
        {"waitpid",     posix_waitpid},
index b89b7b2786a079c48fd5eefb30c53bfb11e5c0a1..c1c1c19cc876a6907e1c148dfbf10c4764738ec2 100644 (file)
@@ -395,10 +395,10 @@ mapping_print(mp, fp, flags)
                if (ep->me_value != NULL) {
                        if (any++ > 0)
                                fprintf(fp, ", ");
-                       if (printobject((object *)ep->me_key, fp, flags) != 0)
+                       if (printobject((object *)ep->me_key, fp, 0) != 0)
                                return -1;
                        fprintf(fp, ": ");
-                       if (printobject(ep->me_value, fp, flags) != 0)
+                       if (printobject(ep->me_value, fp, 0) != 0)
                                return -1;
                }
        }
index 22eab71fde321c2a0d920e7d098c7c8f4f244595..76d2a0e913b266f8c996c4b3f5ba83b59b15c555 100644 (file)
@@ -200,7 +200,7 @@ list_print(op, fp, flags)
        for (i = 0; i < op->ob_size; i++) {
                if (i > 0)
                        fprintf(fp, ", ");
-               if (printobject(op->ob_item[i], fp, flags) != 0)
+               if (printobject(op->ob_item[i], fp, 0) != 0)
                        return -1;
        }
        fprintf(fp, "]");
index b89b7b2786a079c48fd5eefb30c53bfb11e5c0a1..c1c1c19cc876a6907e1c148dfbf10c4764738ec2 100644 (file)
@@ -395,10 +395,10 @@ mapping_print(mp, fp, flags)
                if (ep->me_value != NULL) {
                        if (any++ > 0)
                                fprintf(fp, ", ");
-                       if (printobject((object *)ep->me_key, fp, flags) != 0)
+                       if (printobject((object *)ep->me_key, fp, 0) != 0)
                                return -1;
                        fprintf(fp, ": ");
-                       if (printobject(ep->me_value, fp, flags) != 0)
+                       if (printobject(ep->me_value, fp, 0) != 0)
                                return -1;
                }
        }
index 68fed9e45facf8887858d69bad047b6e8b64df79..6f122ea41f0d2677f3b6e31b5363126400e057d9 100644 (file)
@@ -167,7 +167,7 @@ tupleprint(op, fp, flags)
        for (i = 0; i < op->ob_size; i++) {
                if (i > 0)
                        fprintf(fp, ", ");
-               if (printobject(op->ob_item[i], fp, flags) != 0)
+               if (printobject(op->ob_item[i], fp, 0) != 0)
                        return -1;
        }
        if (op->ob_size == 1)
index 565c65cbfcdaf4bad4ebc95749b31b8b157b4e7c..9ce3a33c71d9988cacc9fa0f13d79b0461c61806 100644 (file)
@@ -529,7 +529,7 @@ parsestr(s)
                return newsizedstringobject(s, len);
        v = newsizedstringobject((char *)NULL, len);
        p = buf = getstringvalue(v);
-       while (*s != '\0' && *s != '\'') {
+       while (*s != '\0' && *s != quote) {
                if (*s != '\\') {
                        *p++ = *s++;
                        continue;