Deleted Added
sdiff udiff text old ( 50471 ) new ( 90111 )
full compact
1/*-
2 * Copyright (c) 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Kenneth Almquist.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 25 unchanged lines hidden (view full) ---

34 * SUCH DAMAGE.
35 */
36
37#ifndef lint
38#if 0
39static char sccsid[] = "@(#)mystring.c 8.2 (Berkeley) 5/4/95";
40#endif
41static const char rcsid[] =
42 "$FreeBSD: head/bin/sh/mystring.c 50471 1999-08-27 23:15:48Z peter $";
43#endif /* not lint */
44
45/*
46 * String functions.
47 *
48 * equal(s1, s2) Return true if strings are equal.
49 * scopy(from, to) Copy a string.
50 * scopyn(from, to, n) Like scopy, but checks for overflow.

--- 21 unchanged lines hidden (view full) ---

72
73/*
74 * scopyn - copy a string from "from" to "to", truncating the string
75 * if necessary. "To" is always nul terminated, even if
76 * truncation is performed. "Size" is the size of "to".
77 */
78
79void
80scopyn(from, to, size)
81 char const *from;
82 char *to;
83 int size;
84 {
85
86 while (--size > 0) {
87 if ((*to++ = *from++) == '\0')
88 return;
89 }
90 *to = '\0';
91}
92
93
94/*
95 * prefix -- see if pfx is a prefix of string.
96 */
97
98int
99prefix(pfx, string)
100 char const *pfx;
101 char const *string;
102 {
103 while (*pfx) {
104 if (*pfx++ != *string++)
105 return 0;
106 }
107 return 1;
108}
109
110
111/*
112 * Convert a string of digits to an integer, printing an error message on
113 * failure.
114 */
115
116int
117number(s)
118 const char *s;
119 {
120
121 if (! is_number(s))
122 error("Illegal number: %s", (char *)s);
123 return atoi(s);
124}
125
126
127
128/*
129 * Check for a valid number. This should be elsewhere.
130 */
131
132int
133is_number(p)
134 const char *p;
135 {
136 do {
137 if (! is_digit(*p))
138 return 0;
139 } while (*++p != '\0');
140 return 1;
141}