busybox/libbb/concat_path_file.c
<<
>>
Prefs
   1/* vi: set sw=4 ts=4: */
   2/*
   3 * Utility routines.
   4 *
   5 * Copyright (C) many different people.
   6 * If you wrote this, please acknowledge your work.
   7 *
   8 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
   9 */
  10
  11/* Concatenate path and filename to new allocated buffer.
  12 * Add '/' only as needed (no duplicate // are produced).
  13 * If path is NULL, it is assumed to be "/".
  14 * filename should not be NULL.
  15 */
  16
  17#include "libbb.h"
  18
  19char* FAST_FUNC concat_path_file(const char *path, const char *filename)
  20{
  21        char *lc;
  22
  23        if (!path)
  24                path = "";
  25        lc = last_char_is(path, '/');
  26        while (*filename == '/')
  27                filename++;
  28        return xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename);
  29}
  30