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 source tree.
   9 */
  10#include "libbb.h"
  11
  12/* Concatenate path and filename to new allocated buffer.
  13 * Add '/' only as needed (no duplicate // are produced).
  14 * If path is NULL, it is assumed to be "/".
  15 * filename should not be NULL.
  16 */
  17
  18char* FAST_FUNC concat_path_file(const char *path, const char *filename)
  19{
  20        char *lc;
  21
  22        if (!path)
  23                path = "";
  24        lc = last_char_is(path, '/');
  25        while (*filename == '/')
  26                filename++;
  27        return xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename);
  28}
  29