Eric Andersen | bdfd0d7 | 2001-10-24 05:00:29 +0000 | [diff] [blame] | 1 | /* vi: set sw=4 ts=4: */ |
Eric Andersen | e5dfced | 2001-04-09 22:48:12 +0000 | [diff] [blame] | 2 | /* |
Eric Andersen | bdfd0d7 | 2001-10-24 05:00:29 +0000 | [diff] [blame] | 3 | * Utility routines. |
Eric Andersen | e5dfced | 2001-04-09 22:48:12 +0000 | [diff] [blame] | 4 | * |
Eric Andersen | c7bda1c | 2004-03-15 08:29:22 +0000 | [diff] [blame] | 5 | * Copyright (C) many different people. |
Eric Andersen | cb81e64 | 2003-07-14 21:21:08 +0000 | [diff] [blame] | 6 | * If you wrote this, please acknowledge your work. |
Eric Andersen | bdfd0d7 | 2001-10-24 05:00:29 +0000 | [diff] [blame] | 7 | * |
"Robert P. J. Day" | 5d8843e | 2006-07-10 11:41:19 +0000 | [diff] [blame] | 8 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
Eric Andersen | bdfd0d7 | 2001-10-24 05:00:29 +0000 | [diff] [blame] | 9 | */ |
10 | |||||
11 | /* concatenate path and file name to new allocation buffer, | ||||
Denis Vlasenko | 5c75960 | 2006-10-28 12:37:16 +0000 | [diff] [blame] | 12 | * not adding '/' if path name already has '/' |
Eric Andersen | e5dfced | 2001-04-09 22:48:12 +0000 | [diff] [blame] | 13 | */ |
14 | |||||
15 | #include "libbb.h" | ||||
16 | |||||
Rob Landley | dfba741 | 2006-03-06 20:47:33 +0000 | [diff] [blame] | 17 | char *concat_path_file(const char *path, const char *filename) |
Eric Andersen | e5dfced | 2001-04-09 22:48:12 +0000 | [diff] [blame] | 18 | { |
Eric Andersen | c911a43 | 2001-05-15 17:42:16 +0000 | [diff] [blame] | 19 | char *lc; |
Eric Andersen | 5a071bc | 2001-07-07 04:27:35 +0000 | [diff] [blame] | 20 | |
21 | if (!path) | ||||
Mike Frysinger | 9dc93ac | 2005-05-09 21:51:15 +0000 | [diff] [blame] | 22 | path = ""; |
Eric Andersen | c911a43 | 2001-05-15 17:42:16 +0000 | [diff] [blame] | 23 | lc = last_char_is(path, '/'); |
Eric Andersen | 3450636 | 2001-08-02 05:02:46 +0000 | [diff] [blame] | 24 | while (*filename == '/') |
Eric Andersen | 4ad13e5 | 2001-05-07 23:01:32 +0000 | [diff] [blame] | 25 | filename++; |
Rob Landley | d921b2e | 2006-08-03 15:41:12 +0000 | [diff] [blame] | 26 | return xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename); |
Eric Andersen | e5dfced | 2001-04-09 22:48:12 +0000 | [diff] [blame] | 27 | } |