Changeset 6897


Ignore:
Timestamp:
Oct 14, 2008, 3:39:16 AM (13 years ago)
Author:
charles
Message:

make MAX_PATH_LENGTH private to libtransmission. add tr_dirname() and tr_basename() utility / portability wrappers

Location:
trunk
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/cli/cli.c

    r6892 r6897  
    309309    tr_ctor *    ctor;
    310310    tr_torrent * tor = NULL;
    311     char         cwd[MAX_PATH_LENGTH];
    312311
    313312    printf( "Transmission %s - http://www.transmissionbt.com/\n",
     
    353352    /* if no download directory specified, use cwd instead */
    354353    if( !downloadDir )
    355     {
    356         tr_getcwd( cwd, sizeof( cwd ) );
    357         downloadDir = cwd;
    358     }
    359 
     354        downloadDir = tr_strdup( tr_getcwd( ) );
    360355
    361356    /* Initialize libtransmission */
  • trunk/daemon/daemon.c

    r6896 r6897  
    168168              int          blocklistEnabled )
    169169{
    170     char          mycwd[MAX_PATH_LENGTH];
     170    char        * mycwd;
    171171    tr_benc       state, *dict = NULL;
    172172    int           peerPort = -1, peers = -1;
     
    191191    ***/
    192192
    193     tr_getcwd( mycwd, sizeof( mycwd ) );
     193    mycwd = tr_getcwd( );
    194194    getConfigStr( dict, KEY_DOWNLOAD_DIR,    &downloadDir,       mycwd );
    195195    getConfigInt( dict, KEY_PEX_ENABLED,     &pexEnabled,
     
    259259    if( dict )
    260260        tr_bencFree( &state );
     261
     262    tr_free( mycwd );
    261263}
    262264
  • trunk/daemon/remote.c

    r6896 r6897  
    152152        buf = tr_strdup( path );
    153153    else {
    154         char cwd[MAX_PATH_LENGTH];
    155         tr_getcwd( cwd, sizeof( cwd ) );
     154        char * cwd = tr_getcwd( );
    156155        buf = tr_buildPath( cwd, path, NULL );
     156        tr_free( cwd );
    157157    }
    158158
  • trunk/gtk/makemeta-ui.c

    r6831 r6897  
    249249{
    250250    char                  sizeStr[128];
    251     char                  buf[MAX_PATH_LENGTH];
     251    char                * buf;
    252252    tr_metainfo_builder * builder = ui->builder;
    253253    const char *          filename = builder ? builder->top : NULL;
    254254
     255
     256    /* update the progressbar */
    255257    if( !filename )
    256         g_snprintf( buf, sizeof( buf ), _( "No source selected" ) );
     258        buf = g_strdup( _( "No source selected" ) );
    257259    else
    258         g_snprintf( buf, sizeof( buf ), "%s.torrent (%d%%)", filename, 0 );
     260        buf = g_strdup_printf( "%s.torrent (%d%%)", filename, 0 );
    259261    gtk_progress_bar_set_text( GTK_PROGRESS_BAR( ui->progressbar ), buf );
    260262    refreshButtons( ui );
    261 
     263    g_free( buf );
     264
     265    /* update the size label */
    262266    if( !filename )
    263         g_snprintf( buf, sizeof( buf ), _( "<i>No source selected</i>" ) );
    264     else
    265     {
     267        buf = g_strdup( "<i>No source selected</i>" );
     268    else {
    266269        tr_strlsize( sizeStr, builder->totalSize, sizeof( sizeStr ) );
    267         g_snprintf( buf, sizeof( buf ),
    268                     /* %1$s is the torrent size
    269                        %2$'d is its number of files */
    270                     ngettext( "<i>%1$s; %2$'d File</i>",
    271                               "<i>%1$s; %2$'d Files</i>",
    272                               builder->fileCount ),
    273                     sizeStr, builder->fileCount );
     270        buf = g_strdup_printf( /* %1$s is the torrent size
     271                                  %2$'d is its number of files */
     272                               ngettext( "<i>%1$s; %2$'d File</i>",
     273                                         "<i>%1$s; %2$'d Files</i>",
     274                                         builder->fileCount ),
     275                               sizeStr, builder->fileCount );
    274276    }
    275277    gtk_label_set_markup ( GTK_LABEL( ui->size_lb ), buf );
    276 
     278    g_free( buf );
     279
     280    /* update the pieces label */
    277281    if( !filename )
    278         *buf = '\0';
    279     else
    280     {
    281         char countStr[512];
    282         g_snprintf( countStr, sizeof( countStr ),
    283                     ngettext( "%'d Piece", "%'d Pieces",
    284                               builder->pieceCount ),
    285                     builder->pieceCount );
     282        buf = g_strdup( "" );
     283    else {
     284        char * countStr = g_strdup_printf( ngettext( "%'d Piece", "%'d Pieces",
     285                                                     builder->pieceCount ),
     286                                           builder->pieceCount );
    286287        tr_strlsize( sizeStr, builder->pieceSize, sizeof( sizeStr ) );
    287         g_snprintf( buf, sizeof( buf ),
    288                     /* %1$s is number of pieces;
    289                        %2$s is how big each piece is */
    290                     _( "%1$s @ %2$s" ),
    291                     countStr,
    292                     sizeStr );
     288        buf = g_strdup_printf( /* %1$s is number of pieces;
     289                                  %2$s is how big each piece is */
     290                               _( "%1$s @ %2$s" ), countStr, sizeStr );
     291        g_free( countStr );
    293292    }
    294293    gtk_label_set_markup ( GTK_LABEL( ui->pieces_lb ), buf );
     294    g_free( buf );
    295295}
    296296
  • trunk/libtransmission/blocklist.c

    r6795 r6897  
    1919#endif
    2020
    21 #include <libgen.h> /* basename */
    2221#ifndef WIN32
    2322 #include <sys/mman.h>
     
    106105
    107106    {
    108         char * name;
    109         char   buf[MAX_PATH_LENGTH];
    110         tr_strlcpy( buf, b->filename, sizeof( buf ) );
    111         name = basename( buf );
    112         tr_inf( _( "Blocklist \"%s\" contains %'u entries" ), name,
    113                 (unsigned int)b->ruleCount );
     107        char * base = tr_basename( b->filename );
     108        tr_inf( _( "Blocklist \"%s\" contains %'zu entries" ), base, b->ruleCount );
     109        tr_free( base );
    114110    }
    115111}
     
    297293
    298294    {
    299         char * name;
    300         char   buf[MAX_PATH_LENGTH];
    301         tr_strlcpy( buf, b->filename, sizeof( buf ) );
    302         name = basename( buf );
    303         tr_inf( _(
    304                     "Blocklist \"%1$s\" updated with %2$'d entries" ), name,
    305                 lineCount );
     295        char * base = tr_basename( b->filename );
     296        tr_inf( _( "Blocklist \"%1$s\" updated with %2$'d entries" ), base, lineCount );
     297        tr_free( base );
    306298    }
    307299
  • trunk/libtransmission/fdlimit.c

    r6896 r6897  
    4141#endif
    4242#include <unistd.h>
    43 #include <libgen.h> /* dirname */
    4443#include <fcntl.h> /* O_LARGEFILE */
    4544
     
    125124    if( write )
    126125    {
    127         char *    tmp = tr_strdup( filename );
    128         const int err = tr_mkdirp( dirname( tmp ), 0777 ) ? errno : 0;
     126        char * tmp = tr_dirname( filename );
     127        const int err = tr_mkdirp( tmp, 0777 ) ? errno : 0;
    129128        tr_free( tmp );
    130129        tr_free( filename );
  • trunk/libtransmission/makemeta.c

    r6896 r6897  
    2020#include <sys/stat.h>
    2121#include <unistd.h>
    22 #include <libgen.h> /* dirname, basename */
    2322#include <dirent.h>
    2423
     
    134133       if it's a directory, all of its children */
    135134    {
    136         char *dir, *base;
    137         char  dirbuf[MAX_PATH_LENGTH];
    138         char  basebuf[MAX_PATH_LENGTH];
    139         tr_strlcpy( dirbuf, topFile, sizeof( dirbuf ) );
    140         tr_strlcpy( basebuf, topFile, sizeof( basebuf ) );
    141         dir = dirname( dirbuf );
    142         base = basename( basebuf );
     135        char * dir = tr_dirname( topFile );
     136        char * base = tr_basename( topFile );
    143137        files = getFiles( dir, base, NULL );
     138        tr_free( base );
     139        tr_free( dir );
    144140    }
    145141
     
    334330{
    335331    uint8_t * pch;
    336     char      base[MAX_PATH_LENGTH];
     332    char    * base;
    337333
    338334    tr_bencDictReserve( dict, 5 );
     
    354350    }
    355351
    356     tr_strlcpy( base, builder->top, sizeof( base ) );
    357     tr_bencDictAddStr( dict, "name", basename( base ) );
     352    base = tr_basename( builder->top );
     353    tr_bencDictAddStr( dict, "name", base );
     354    tr_free( base );
    358355
    359356    tr_bencDictAddInt( dict, "piece length", builder->pieceSize );
     
    520517        builder->outputFile = tr_strdup( outputFile );
    521518    else
    522     {
    523         char out[MAX_PATH_LENGTH];
    524         tr_snprintf( out, sizeof( out ), "%s.torrent", builder->top );
    525         builder->outputFile = tr_strdup( out );
    526     }
     519        builder->outputFile = tr_strdup_printf( "%s.torrent", builder->top );
    527520
    528521    /* enqueue the builder */
  • trunk/libtransmission/peer-msgs.c

    r6893 r6897  
    1717#include <stdlib.h>
    1818#include <string.h>
    19 #include <libgen.h> /* basename */
    2019
    2120#include <event.h>
     
    328327        char              timestr[64];
    329328        struct evbuffer * buf = evbuffer_new( );
    330         char *            myfile = tr_strdup( file );
     329        char *            base = tr_basename( file );
    331330
    332331        evbuffer_add_printf( buf, "[%s] %s - %s [%s]: ",
     
    338337        evbuffer_add_vprintf( buf, fmt, args );
    339338        va_end( args );
    340         evbuffer_add_printf( buf, " (%s:%d)\n", basename( myfile ), line );
     339        evbuffer_add_printf( buf, " (%s:%d)\n", base, line );
    341340        fwrite( EVBUFFER_DATA( buf ), 1, EVBUFFER_LENGTH( buf ), fp );
    342341
    343         tr_free( myfile );
     342        tr_free( base );
    344343        evbuffer_free( buf );
    345344    }
  • trunk/libtransmission/platform.h

    r6795 r6897  
    3131 #define TR_PATH_DELIMITER '/'
    3232 #define TR_PATH_DELIMITER_STR "/"
     33#endif
     34
     35#ifdef __BEOS__
     36 #include <StorageDefs.h>
     37 #define MAX_PATH_LENGTH  B_FILE_NAME_LENGTH
     38#else
     39 #define MAX_PATH_LENGTH  1024
    3340#endif
    3441
  • trunk/libtransmission/torrent-ctor.c

    r6842 r6897  
    1212
    1313#include <errno.h>
    14 #include <libgen.h> /* basename */
    1514#include "transmission.h"
    1615#include "bencode.h"
     
    122121            if( !name || !*name )
    123122            {
    124                 char * tmp = tr_strdup( filename );
    125                 tr_bencDictAddStr( info, "name", basename( tmp ) );
    126                 tr_free( tmp );
     123                char * base = tr_basename( filename );
     124                tr_bencDictAddStr( info, "name", base );
     125                tr_free( base );
    127126            }
    128127        }
  • trunk/libtransmission/transmission.h

    r6843 r6897  
    4949
    5050#define SHA_DIGEST_LENGTH 20
    51 
    52 #ifdef __BEOS__
    53  #include <StorageDefs.h>
    54  #define MAX_PATH_LENGTH  B_FILE_NAME_LENGTH
    55 #else
    56  #define MAX_PATH_LENGTH  1024
    57 #endif
    5851
    5952typedef uint32_t tr_file_index_t;
  • trunk/libtransmission/utils.c

    r6896 r6897  
    196196        char              timestr[64];
    197197        struct evbuffer * buf = evbuffer_new( );
    198         char *            myfile = tr_strdup( file );
     198        char *            base = tr_basename( file );
    199199
    200200        evbuffer_add_printf( buf, "[%s] ",
     
    205205        evbuffer_add_vprintf( buf, fmt, args );
    206206        va_end( args );
    207         evbuffer_add_printf( buf, " (%s:%d)\n", basename( myfile ), line );
     207        evbuffer_add_printf( buf, " (%s:%d)\n", base, line );
    208208        (void) fwrite( EVBUFFER_DATA( buf ), 1, EVBUFFER_LENGTH( buf ), fp );
    209209
    210         tr_free( myfile );
     210        tr_free( base );
    211211        evbuffer_free( buf );
    212212    }
     
    457457
    458458char*
    459 tr_getcwd( char  * buffer,
    460            int     maxlen )
    461 {
     459tr_getcwd( void )
     460{
     461    char buf[2048];
     462    *buf = '\0';
    462463#ifdef WIN32
    463     return _getcwd( buffer, maxlen );
     464    _getcwd( buf, sizeof( buf ) );
    464465#else
    465     return getcwd( buffer, maxlen );
     466    getcwd( buf, sizeof( buf ) );
    466467#endif
     468    return tr_strdup( buf );
     469}
     470
     471char*
     472tr_basename( const char * path )
     473{
     474    char * tmp = tr_strdup( path );
     475    char * ret = tr_strdup( basename( tmp ) );
     476    tr_free( tmp );
     477    return ret;
     478}
     479
     480char*
     481tr_dirname( const char * path )
     482{
     483    char * tmp = tr_strdup( path );
     484    char * ret = tr_strdup( dirname( tmp ) );
     485    tr_free( tmp );
     486    return ret;
    467487}
    468488
     
    525545        {
    526546            /* Node exists but isn't a folder */
    527             char buf[MAX_PATH_LENGTH];
    528             tr_snprintf( buf, sizeof( buf ), _(
    529                              "File \"%s\" is in the way" ), path );
     547            char * buf = tr_strdup_printf( _( "File \"%s\" is in the way" ), path );
    530548            tr_err( _( "Couldn't create \"%1$s\": %2$s" ), path_in, buf );
     549            tr_free( buf );
    531550            tr_free( path );
    532551            errno = ENOTDIR;
  • trunk/libtransmission/utils.h

    r6896 r6897  
    141141                                 int    buflen );
    142142
    143 /**
    144  * a portability wrapper around getcwd().
    145  */
    146 char*          tr_getcwd( char  * buffer,
    147                           int     maxlen );
     143/** a portability wrapper for getcwd(). */
     144char*          tr_getcwd( void ) TR_GNUC_MALLOC;
     145
     146/** a portability wrapper for basename(). */
     147char*          tr_basename( const char * path ) TR_GNUC_MALLOC;
     148
     149/** a portability wrapper for dirname(). */
     150char*          tr_dirname( const char * path ) TR_GNUC_MALLOC;
    148151
    149152/**
Note: See TracChangeset for help on using the changeset viewer.