Changeset 10736


Ignore:
Timestamp:
Jun 7, 2010, 2:25:31 PM (12 years ago)
Author:
charles
Message:

(trunk) #3262 "problems with '.' as the first character in a .torrent's filename" -- fixed in trunk for 2.00

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/daemon/watch.c

    r10504 r10736  
    4242};
    4343
    44 static tr_bool
    45 str_has_suffix( const char *str, const char *suffix )
    46 {
    47     const size_t str_len = strlen( str );
    48     const size_t suffix_len = strlen( suffix );
    49 
    50     if( str_len < suffix_len )
    51         return FALSE;
    52 
    53     return !strncasecmp( str + str_len - suffix_len, suffix, suffix_len );
    54 }
    55 
    5644/***
    5745****  INOTIFY IMPLEMENTATION
     
    9886            const char * name = d->d_name;
    9987
    100             if( !name || *name=='.' ) /* skip dotfiles */
    101                 continue;
    102             if( !str_has_suffix( name, ".torrent" ) ) /* skip non-torrents */
     88            if( !tr_str_has_suffix( name, ".torrent" ) ) /* skip non-torrents */
    10389                continue;
    10490
     
    150136            struct inotify_event * event = (struct inotify_event *) &buf[i];
    151137            const char * name = event->name;
    152             if( str_has_suffix( name, ".torrent" ) )
     138            if( tr_str_has_suffix( name, ".torrent" ) )
    153139            {
    154140                tr_inf( "Found new .torrent file \"%s\" in watchdir \"%s\"", name, w->dir );
  • trunk/libtransmission/platform.c

    r10634 r10736  
    340340            while( ( dirp = readdir( dirh ) ) )
    341341            {
    342                 if( strcmp( dirp->d_name,
    343                             "." ) && strcmp( dirp->d_name, ".." ) )
     342                const char * name = dirp->d_name;
     343                if( name && strcmp( name, "." ) && strcmp( name, ".." ) )
    344344                {
    345                     char * o = tr_buildPath( oldDir, dirp->d_name, NULL );
    346                     char * n = tr_buildPath( newDir, dirp->d_name, NULL );
     345                    char * o = tr_buildPath( oldDir, name, NULL );
     346                    char * n = tr_buildPath( newDir, name, NULL );
    347347                    rename( o, n );
    348348                    ++count;
  • trunk/libtransmission/session.c

    r10638 r10736  
    17211721        for( d = readdir( odir ); d != NULL; d = readdir( odir ) )
    17221722        {
    1723             if( d->d_name && d->d_name[0] != '.' ) /* skip dotfiles, ., and ..
    1724                                                      */
     1723            if( tr_str_has_suffix( d->d_name, ".torrent" ) )
    17251724            {
    17261725                tr_torrent * tor;
     
    21042103        while(( d = readdir( odir )))
    21052104        {
    2106             if( d->d_name && d->d_name[0] != '.' )
     2105            if( tr_str_has_suffix( d->d_name, ".torrent" ) )
    21072106            {
    21082107                tr_info inf;
  • trunk/libtransmission/torrent.c

    r10716 r10736  
    23772377            tr_ptrArrayInsertSorted( folders, tr_strdup( buf ), vstrcmp );
    23782378            for( d = readdir( odir ); d != NULL; d = readdir( odir ) )
    2379                 if( d->d_name && d->d_name[0] != '.' ) /* skip dotfiles */
     2379                if( d->d_name && strcmp( d->d_name, "." ) && strcmp( d->d_name, ".." ) )
    23802380                    walkLocalData( tor, root, buf, d->d_name, torrentFiles, folders, dirtyFolders );
    23812381            closedir( odir );
  • trunk/libtransmission/utils.c

    r10710 r10736  
    772772
    773773    return str;
     774}
     775
     776tr_bool
     777tr_str_has_suffix( const char *str, const char *suffix )
     778{
     779    size_t str_len;
     780    size_t suffix_len;
     781
     782    if( !str )
     783        return FALSE;
     784    if( !suffix )
     785        return TRUE;
     786
     787    str_len = strlen( str );
     788    suffix_len = strlen( suffix );
     789    if( str_len < suffix_len )
     790        return FALSE;
     791
     792    return !strncasecmp( str + str_len - suffix_len, suffix, suffix_len );
    774793}
    775794
  • trunk/libtransmission/utils.h

    r10521 r10736  
    400400    @return the stripped string */
    401401char* tr_strstrip( char * str );
     402
     403/** @brief Returns true if the string ends with the specified case-insensitive suffix */
     404tr_bool tr_str_has_suffix( const char *str, const char *suffix );
     405
    402406
    403407/** @brief Portability wrapper for memmem() that uses the system implementation if available */
Note: See TracChangeset for help on using the changeset viewer.