/*
- * 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.
*/
void *p = malloc(size);
if (!p) {
- PARA_EMERG_LOG("%s", "malloc failed, aborting\n");
+ PARA_EMERG_LOG("malloc failed (size = %zu), aborting\n",
+ size);
exit(EXIT_FAILURE);
}
return p;
}
/**
- * 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;
}
/**
* set the given mode of the tempfile if mkstemp() returned success.
*
* \return The file descriptor of the temp file just created on success.
- * On errors, -E_MKSTEMP or -E_FCHMOD is returned.
+ * On errors, a negative value is returned.
*/
__must_check int para_mkstemp(char *template, mode_t mode)
{
int tmp, fd = mkstemp(template);
if (fd < 0)
- return -E_MKSTEMP;
+ return -ERRNO_TO_PARA_ERROR(errno);
tmp = fchmod(fd, mode);
if (tmp >= 0)
return fd;
+ tmp = errno;
close(fd);
unlink(template);
- return -E_FCHMOD;
+ return -ERRNO_TO_PARA_ERROR(tmp);
}
/**