BSD 3 development
[unix-history] / usr / src / cmd / pxp / string.c
CommitLineData
bffb0092
BJ
1/* Copyright (c) 1979 Regents of the University of California */
2#
3/*
4 * pxp - Pascal execution profiler
5 *
6 * Bill Joy UCB
7 * Version 1.2 January 1979
8 */
9
10#include "0.h"
11
12/*
13 * STRING SPACE DECLARATIONS
14 *
15 * Strng is the base of the current
16 * string space and strngp the
17 * base of the free area therein.
18 * No array of descriptors is needed
19 * as string space is never freed.
20 */
21STATIC char strings[STRINC];
22STATIC char *strng strings;
23STATIC char *strngp strings;
24
25/*
26initstring()
27{
28
29}
30 */
31/*
32 * Copy a string into the string area.
33 */
34savestr(cp)
35 register char *cp;
36{
37 register int i;
38
39 i = strlen(cp) + 1;
40 if (strngp + i >= strng + STRINC) {
41 strngp = alloc(STRINC);
42 if (strngp == -1) {
43 yerror("Ran out of memory (string)");
44 pexit(DIED);
45 }
46 strng = strngp;
47 }
48 strcpy(strngp, cp);
49 cp = strngp;
50 strngp = cp + i;
51 return (cp);
52}
53
54esavestr(cp)
55 char *cp;
56{
57
58 strngp = (int)(strngp + (sizeof (int) - 1)) &~ (sizeof (int) - 1);
59 return (savestr(cp));
60}