1: /* $Header$ */
2:
3: /*
4: * Author: Peter J. Nicklin
5: */
6:
7: /*
8: * pputent() writes buffer pdbp->pbuf to a database. Returns integer NO if
9: * write error or buffer exceeded, otherwise YES.
10: */
11: #include "stdio.h"
12: #include "path.h"
13: #include "pdb.h"
14: #include "yesno.h"
15:
16: pputent(pdbp)
17: register PDB *pdbp; /* database stream */
18: {
19: register char *bp; /* buffer pointer */
20: register FILE *fp; /* file stream */
21: register int i; /* buffer counter */
22: char *sprintf(); /* print output to string */
23:
24: if ((pdbp->flag&_PERR) != 0)
25: return(NO);
26: if ((pdbp->flag&_PACCESS) == (_PREAD|_PWRITE))
27: fp = pdbp->tfp;
28: else if ((pdbp->flag&(_PWRITE|_PAPPEND)) != 0)
29: fp = pdbp->fp;
30: else {
31: sprintf(pdbp->perr, "%s read access only", pdbp->path);
32: pdbp->flag |= _PERR;
33: return(NO);
34: }
35: i = 0;
36: bp = pdbp->pbuf;
37: pdbp->flag |= _PUPDATE;
38:
39: while (i < PBUFSIZE && *bp++ != '\0')
40: putc(pdbp->pbuf[i++], fp);
41: if (putc('\n', fp) == EOF)
42: {
43: sprintf(pdbp->perr, "%s write error", pdbp->path);
44: pdbp->flag |= _PERR;
45: return(NO);
46: }
47: if (i >= PBUFSIZE)
48: {
49: sprintf(pdbp->perr, "%s database buffer exceeded", pdbp->path);
50: pdbp->flag |= _PERR;
51: return(NO);
52: }
53: return(YES);
54: }
Defined functions
pputent
defined in line
16; used 18 times
- in /usr/src/new/spms/src/lib/libpdb/src/paddkey.c line
25,
33
- in /usr/src/new/spms/src/lib/libpdb/src/pchgkey.c line
22,
29
- in /usr/src/new/spms/src/lib/libpdb/src/pputflag.c line
29,
42,
49
- in /usr/src/new/spms/src/lib/libpdb/src/pputstring.c line
30,
43,
50
- in /usr/src/new/spms/src/lib/libpdb/src/prment.c line
22,
30
- in /usr/src/new/spms/src/lib/libpdb/src/prmflag.c line
23,
32
- in /usr/src/new/spms/src/lib/libpdb/src/prmkey.c line
20,
28
- in /usr/src/new/spms/src/lib/libpdb/src/prmstring.c line
23,
32