front() must reframe() when called from setselwin()
[unix-history] / usr / src / usr.bin / window / string.c
CommitLineData
e53fdda9 1#ifndef lint
a639e3be 2static char *sccsid = "@(#)string.c 3.2 83/11/25";
e53fdda9
EW
3#endif
4
5#include "string.h"
6
7char *malloc();
a639e3be 8char *sprintf();
e53fdda9
EW
9
10char *
11str_cpy(s)
12register char *s;
13{
14 char *str;
15 register char *p;
16
17 str = p = malloc((unsigned) strlen(s) + 1);
18 if (p == 0)
19 return 0;
20 while (*p++ = *s++)
21 ;
22 return str;
23}
24
25char *
26str_itoa(i)
27int i;
28{
29 char buf[30];
30
31 (void) sprintf(buf, "%d", i);
32 return str_cpy(buf);
33}
34
35char *
36str_cat(s1, s2)
37char *s1, *s2;
38{
39 char *str;
40 register char *p, *q;
41
42 str = p = malloc((unsigned) strlen(s1) + strlen(s2) + 1);
43 if (p == 0)
44 return 0;
45 for (q = s1; *p++ = *q++;)
46 ;
47 for (q = s2, p--; *p++ = *q++;)
48 ;
49 return str;
50}
51
52str_free(str)
53char *str;
54{
55 extern char end[];
56
57 if (str >= end)
58 free(str);
59}
60
61/*
62 * match s against p.
63 * s can be a prefix of p with at least min characters.
64 */
65str_match(s, p, min)
66register char *s, *p;
67register min;
68{
69 for (; *s && *p && *s == *p; s++, p++, min--)
70 ;
71 return *s == *p || *s == 0 && min <= 0;
72}