/*
- * Copyright (C) 2004-2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2004-2008 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
}
/**
- * paraslash's version of dirname()
+ * Paraslash's version of dirname().
*
- * \param name pointer to the full path
+ * \param name Pointer to the full path.
*
- * Compute the directory component of \p name
+ * Compute the directory component of \p name.
*
- * \return If \p name is \รพ NULL or the empty string, return \p NULL.
+ * \return If \p name is \p NULL or the empty string, return \p NULL.
* Otherwise, Make a copy of \p name and return its directory component. Caller
* is responsible to free the result.
*/
}
/**
- * paraslash's version of basename()
+ * Paraslash's version of basename().
*
- * \param name Pointer to the full path
+ * \param name Pointer to the full path.
*
- * Compute the filename component of \p name
+ * Compute the filename component of \a name.
*
- * \return If \p name is \p NULL or the empty string, return \p NULL,
- * Otherwise, make a copy of \p name and return its filename component. Caller
- * is responsible to free the result.
+ * \return \p NULL if (a) \a name is the empty string of \p NULL, or (b) name
+ * ends with a slash. Otherwise, a pointer within \a name is returned. Caller
+ * must not free the result.
*/
-__must_check __malloc char *para_basename(const char *name)
+__must_check const char *para_basename(const char *name)
{
- char *p;
+ const char *ret;
if (!name || !*name)
return NULL;
- p = strrchr(name, '/');
- if (!p)
- return para_strdup(name);
- p++;
- if (!*p)
- return NULL;
- return para_strdup(p);
+ ret = strrchr(name, '/');
+ if (!ret)
+ return name;
+ ret++;
+ return ret;
}
/**