comparison utils.c @ 3:bfa97d43197e

support code
author David A. Holland
date Sun, 19 Dec 2010 16:51:57 -0500
parents
children 9dda765ee85c
comparison
equal deleted inserted replaced
2:9c1cecba517c 3:bfa97d43197e
1 /*-
2 * Copyright (c) 2010 The NetBSD Foundation, Inc.
3 * All rights reserved.
4 *
5 * This code is derived from software contributed to The NetBSD Foundation
6 * by David A. Holland.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
18 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 * POSSIBILITY OF SUCH DAMAGE.
28 */
29
30 #include <stdlib.h>
31 #include <string.h>
32 #include <err.h>
33
34 #include "utils.h"
35
36 void *
37 domalloc(size_t len)
38 {
39 void *ret;
40
41 ret = malloc(len);
42 if (ret == NULL) {
43 warnx("Out of memory");
44 die();
45 }
46 return ret;
47 }
48
49 void *
50 dorealloc(void *ptr, size_t len)
51 {
52 void *ret;
53
54 ret = realloc(ptr, len);
55 if (ret == NULL) {
56 warnx("Out of memory");
57 die();
58 }
59 return ret;
60 }
61
62 char *
63 dostrdup(const char *s)
64 {
65 char *ret;
66 size_t len;
67
68 len = strlen(s);
69 ret = domalloc(len+1);
70 strcpy(ret, s);
71 return ret;
72 }
73
74 char *
75 dostrdup2(const char *s, const char *t)
76 {
77 char *ret;
78 size_t len;
79
80 len = strlen(s) + strlen(t);
81 ret = domalloc(len+1);
82 strcpy(ret, s);
83 strcat(ret, t);
84 return ret;
85 }
86
87 char *
88 dostrdup3(const char *s, const char *t, const char *u)
89 {
90 char *ret;
91 size_t len;
92
93 len = strlen(s) + strlen(t) + strlen(u);
94 ret = domalloc(len+1);
95 strcpy(ret, s);
96 strcat(ret, t);
97 strcat(ret, u);
98 return ret;
99 }
100