Ignore:
Timestamp:
Jun 9, 2006, 7:53:35 PM (16 years ago)
Author:
joshe
Message:

Add support to libtransmission and the MacOS X GUI for saving private copies of

torrent files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/utils.c

    r261 r310  
    9494    return NULL;
    9595}
     96
     97int tr_mkdir( char * path )
     98{
     99    char      * p, * pp;
     100    struct stat sb;
     101    int done;
     102
     103    p = path;
     104    while( '/' == *p )
     105      p++;
     106    pp = p;
     107    done = 0;
     108    while( ( p = strchr( pp, '/' ) ) || ( p = strchr( pp, '\0' ) ) )
     109    {
     110        if( '\0' == *p)
     111        {
     112            done = 1;
     113        }
     114        else
     115        {
     116            *p = '\0';
     117        }
     118        if( stat( path, &sb ) )
     119        {
     120            /* Folder doesn't exist yet */
     121            if( mkdir( path, 0777 ) )
     122            {
     123                tr_err( "Could not create directory %s (%s)", path,
     124                        strerror( errno ) );
     125                *p = '/';
     126                return 1;
     127            }
     128        }
     129        else if( ( sb.st_mode & S_IFMT ) != S_IFDIR )
     130        {
     131            /* Node exists but isn't a folder */
     132            tr_err( "Remove %s, it's in the way.", path );
     133            *p = '/';
     134            return 1;
     135        }
     136        if( done )
     137        {
     138            break;
     139        }
     140        *p = '/';
     141        p++;
     142        pp = p;
     143    }
     144
     145    return 0;
     146}
Note: See TracChangeset for help on using the changeset viewer.