summaryrefslogtreecommitdiff
path: root/src/libstddjb/rm_rf_tmp.c
blob: d1a8b1ad8c7cd3687362500fb55db77a2df4531a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* ISC license. */

#include <sys/types.h>
#include <skalibs/stralloc.h>
#include <skalibs/djbunix.h>

int rm_rf_tmp (char const *filename, stralloc *tmp)
{
  size_t tmpbase = tmp->len ;
  if (!stralloc_cats(tmp, filename)) return -1 ;
  if (!stralloc_0(tmp)) goto err ;
  if (rm_rf_in_tmp(tmp, tmpbase) == -1) goto err ;
  tmp->len = tmpbase ;
  return 0 ;

err:
  tmp->len = tmpbase ;
  return -1 ;
}