Annotation of 43BSDTahoe/new/notes/src/gtext.c, revision 1.1.1.1

1.1       root        1: #include "parms.h"
                      2: #include "structs.h"
                      3: 
                      4: #ifdef RCSIDENT
                      5: static char rcsid[] = "$Header: gtext.c,v 1.7 85/01/18 15:12:11 notes Rel $";
                      6: #endif RCSIDENT
                      7: 
                      8: /*
                      9:  *     get the text for a note/response
                     10:  *
                     11:  *     Calls unix editor with a unique file name 
                     12:  *     Also makes sure the returned text is of 
                     13:  *     appropriate size
                     14:  *
                     15:  *     Ray Essick 10/23/80
                     16:  *     Modified : rbk  10/26/80
                     17:  *     modified again: rbe 12 nov 81   fix to version 7 and general shtuff
                     18:  *     modified a third time to add insert-text for user
                     19:  *             Ray Essick      December 1981
                     20:  */
                     21: 
                     22: long    gettext (io, where, preface, editflag)
                     23: struct io_f *io;
                     24: struct daddr_f *where;                                 /* where we left it */
                     25: FILE * preface;                                                /* text included in buffer */
                     26: int     editflag;                                      /* EDIT if want editor, else NOEDIT */
                     27: {
                     28:     FILE * scr, *fopen ();
                     29:     register int    c;
                     30:     long    count;
                     31:     char    fn[20];                                    /* scratch file name */
                     32: 
                     33:     sprintf (fn, "/tmp/nf%d", getpid ());
                     34:     x ((scr = fopen (fn, "w")) == NULL, "gettext: create scratch");
                     35:     x (chmod (fn, 0666) < 0, "gettext: chmod tmp");
                     36:     if (preface != NULL)
                     37:     {
                     38:        while ((c = getc (preface)) != EOF)
                     39:            putc (c, scr);                              /* move included text */
                     40:     }
                     41:     fclose (scr);
                     42:     fflush (stdout);                                   /* clean it out */
                     43: 
                     44:     if (editflag == EDIT)
                     45:     {
                     46: #ifndef        FASTFORK
                     47:        {
                     48:            char    cmd[CMDLEN];                        /* build editor call */
                     49:            sprintf (cmd, "%s %s", hised, fn);
                     50:            dounix (cmd, 1, 1);                         /* get the text */
                     51:        }
                     52: #else
                     53:        dounix (1, 1, hised, fn, 0, 0, 0);              /* call his editor */
                     54: #endif
                     55:     }                                                  /* end of editflag test */
                     56: 
                     57:     if ((scr = fopen (fn, "r")) == NULL)               /* no text to read */
                     58:     {
                     59:        unlink (fn);                                    /* might just be protections */
                     60:        return ((long) 0);
                     61:     }
                     62: 
                     63:     count = pagein (io, scr, where);                   /* move text in */
                     64:     fclose (scr);                                      /* close the scratch file and */
                     65:     x (unlink (fn) < 0, "gettext: unlink");            /* unlink it */
                     66:     return ((long) count);                             /* chars moved */
                     67: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.