]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added 'softspace' interface to replace 'needspace' printing hack.
authorGuido van Rossum <guido@python.org>
Thu, 4 Apr 1991 10:44:06 +0000 (10:44 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 4 Apr 1991 10:44:06 +0000 (10:44 +0000)
Objects/fileobject.c

index f0383275115fd1d8594f08299fd9acd47094c3fb..255b23e67a9b751d8031b939548798ba22dbd086 100644 (file)
@@ -44,7 +44,7 @@ typedef struct {
        FILE *f_fp;
        object *f_name;
        object *f_mode;
-       /* XXX Should move the 'need space' on printing flag here */
+       int f_softspace; /* Flag used by 'print' command */
 } fileobject;
 
 FILE *
@@ -70,6 +70,7 @@ newopenfileobject(fp, name, mode)
        f->f_fp = NULL;
        f->f_name = newstringobject(name);
        f->f_mode = newstringobject(mode);
+       f->f_softspace = 0;
        if (f->f_name == NULL || f->f_mode == NULL) {
                DECREF(f);
                return NULL;
@@ -387,6 +388,7 @@ file_write(f, args)
                err_badarg();
                return NULL;
        }
+       f->f_softspace = 0;
        errno = 0;
        n2 = fwrite(getstringvalue(args), 1, n = getstringsize(args), f->f_fp);
        if (n2 != n) {
@@ -432,3 +434,18 @@ typeobject Filetype = {
        0,              /*tp_compare*/
        file_repr,      /*tp_repr*/
 };
+
+/* Interface for the 'soft space' between print items. */
+
+int
+softspace(f, newflag)
+       object *f;
+       int newflag;
+{
+       int oldflag = 0;
+       if (f != NULL && is_fileobject(f)) {
+               oldflag = ((fileobject *)f)->f_softspace;
+               ((fileobject *)f)->f_softspace = newflag;
+       }
+       return oldflag;
+}