Deleted Added
full compact
mystring.c (50471) mystring.c (90111)
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[] =
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 $";
42 "$FreeBSD: head/bin/sh/mystring.c 90111 2002-02-02 06:50:57Z imp $";
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
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 {
80scopyn(const char *from, char *to, int size)
81{
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
82
83 while (--size > 0) {
84 if ((*to++ = *from++) == '\0')
85 return;
86 }
87 *to = '\0';
88}
89
90
91/*
92 * prefix -- see if pfx is a prefix of string.
93 */
94
95int
99prefix(pfx, string)
100 char const *pfx;
101 char const *string;
102 {
96prefix(const char *pfx, const char *string)
97{
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
98 while (*pfx) {
99 if (*pfx++ != *string++)
100 return 0;
101 }
102 return 1;
103}
104
105
106/*
107 * Convert a string of digits to an integer, printing an error message on
108 * failure.
109 */
110
111int
117number(s)
118 const char *s;
119 {
120
112number(const char *s)
113{
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
114 if (! is_number(s))
115 error("Illegal number: %s", (char *)s);
116 return atoi(s);
117}
118
119
120
121/*
122 * Check for a valid number. This should be elsewhere.
123 */
124
125int
133is_number(p)
134 const char *p;
135 {
126is_number(const char *p)
127{
136 do {
137 if (! is_digit(*p))
138 return 0;
139 } while (*++p != '\0');
140 return 1;
141}
128 do {
129 if (! is_digit(*p))
130 return 0;
131 } while (*++p != '\0');
132 return 1;
133}