Linux Audio

Check our new training course

Loading...
v3.5.6
 1/*
 2 * Copyright 2008 Jon Loeliger, Freescale Semiconductor, Inc.
 3 *
 4 * This program is free software; you can redistribute it and/or
 5 * modify it under the terms of the GNU General Public License as
 6 * published by the Free Software Foundation; either version 2 of the
 7 * License, or (at your option) any later version.
 8 *
 9 *  This program is distributed in the hope that it will be useful,
10 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 *  General Public License for more details.
13 *
14 *  You should have received a copy of the GNU General Public License
15 *  along with this program; if not, write to the Free Software
16 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
17 *                                                                   USA
18 */
19
20#include <stdio.h>
21#include <stdlib.h>
22#include <stdarg.h>
23#include <string.h>
24
25#include "util.h"
26
27char *xstrdup(const char *s)
28{
29	int len = strlen(s) + 1;
30	char *dup = xmalloc(len);
31
32	memcpy(dup, s, len);
33
34	return dup;
35}
36
37char *join_path(const char *path, const char *name)
38{
39	int lenp = strlen(path);
40	int lenn = strlen(name);
41	int len;
42	int needslash = 1;
43	char *str;
44
45	len = lenp + lenn + 2;
46	if ((lenp > 0) && (path[lenp-1] == '/')) {
47		needslash = 0;
48		len--;
49	}
50
51	str = xmalloc(len);
52	memcpy(str, path, lenp);
53	if (needslash) {
54		str[lenp] = '/';
55		lenp++;
56	}
57	memcpy(str+lenp, name, lenn+1);
58	return str;
59}
v3.1
 1/*
 2 * Copyright 2008 Jon Loeliger, Freescale Semiconductor, Inc.
 3 *
 4 * This program is free software; you can redistribute it and/or
 5 * modify it under the terms of the GNU General Public License as
 6 * published by the Free Software Foundation; either version 2 of the
 7 * License, or (at your option) any later version.
 8 *
 9 *  This program is distributed in the hope that it will be useful,
10 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 *  General Public License for more details.
13 *
14 *  You should have received a copy of the GNU General Public License
15 *  along with this program; if not, write to the Free Software
16 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
17 *                                                                   USA
18 */
19
20#include <stdio.h>
21#include <stdlib.h>
22#include <stdarg.h>
23#include <string.h>
24
25#include "util.h"
26
27char *xstrdup(const char *s)
28{
29	int len = strlen(s) + 1;
30	char *dup = xmalloc(len);
31
32	memcpy(dup, s, len);
33
34	return dup;
35}
36
37char *join_path(const char *path, const char *name)
38{
39	int lenp = strlen(path);
40	int lenn = strlen(name);
41	int len;
42	int needslash = 1;
43	char *str;
44
45	len = lenp + lenn + 2;
46	if ((lenp > 0) && (path[lenp-1] == '/')) {
47		needslash = 0;
48		len--;
49	}
50
51	str = xmalloc(len);
52	memcpy(str, path, lenp);
53	if (needslash) {
54		str[lenp] = '/';
55		lenp++;
56	}
57	memcpy(str+lenp, name, lenn+1);
58	return str;
59}