Ticket #1406: download-dir.diff

File download-dir.diff, 7.8 KB (added by charles, 12 years ago)
  • libtransmission/utils.c

    tr_loadFile( const char * path, 
    491491}
    492492
    493493char*
    494 tr_getcwd( void )
    495 {
    496     char buf[2048];
    497     *buf = '\0';
    498 #ifdef WIN32
    499     _getcwd( buf, sizeof( buf ) );
    500 #else
    501     getcwd( buf, sizeof( buf ) );
    502 #endif
    503     return tr_strdup( buf );
    504 }
    505 
    506 char*
    507494tr_basename( const char * path )
    508495{
    509496    char * tmp = tr_strdup( path );
  • libtransmission/utils.h

    void tr_deepLog( const char *  
    144144char*          tr_getLogTimeStr( char * buf,
    145145                                 int    buflen );
    146146
    147 /** a portability wrapper for getcwd(). */
    148 char*          tr_getcwd( void ) TR_GNUC_MALLOC;
    149 
    150147/** a portability wrapper for basename(). */
    151148char*          tr_basename( const char * path ) TR_GNUC_MALLOC;
    152149
  • libtransmission/platform.c

    tr_getDefaultConfigDir( void ) 
    483483    return s;
    484484}
    485485
     486const char*
     487tr_getDefaultDownloadDir( void )
     488{
     489    static char * s = NULL;
     490
     491    if( s == NULL )
     492        s = tr_buildPath( getHomeDir( ), "Downloads", NULL );
     493
     494    return s;
     495}
     496
    486497/***
    487498****
    488499***/
  • libtransmission/transmission.h

    typedef uint64_t tr_block_index_t; 
    6262 * - otherwise, if we're running on Darwin,
    6363 *   "$HOME/Library/Application Support/Transmission" is returned.
    6464 * - otherwise, if we're running on WIN32,
    65  *   "$EXE_FOLDER/Transmission" is returned.
     65 *   SHGetFolderPath(CSIDL_APPDATA) + "/Transmission" is returned.
    6666 * - otherwise, if XDG_CONFIG_HOME is set,
    6767 *   "$XDG_CONFIG_HOME/transmission" is returned.
    6868 * - lastly, $HOME/.config/transmission" is used.
    6969 */
    7070const char* tr_getDefaultConfigDir( void );
    7171
     72const char* tr_getDefaultDownloadDir( void );
     73
    7274typedef struct tr_ctor tr_ctor;
    7375typedef struct tr_handle tr_handle;
    7476typedef struct tr_info tr_info;
    tr_proxy_type; 
    98100/** @see tr_sessionInitFull */
    99101#define TR_DEFAULT_CONFIG_DIR               tr_getDefaultConfigDir( )
    100102/** @see tr_sessionInitFull */
     103#define TR_DEFAULT_DOWNLOAD_DIR             tr_getDefaultDownloadDir( )
     104/** @see tr_sessionInitFull */
    101105#ifdef TR_EMBEDDED
    102106 #define TR_DEFAULT_ENCRYPTION              TR_CLEAR_PREFERRED
    103107#else
    tr_handle * tr_sessionInitFull( const ch 
    285289/** @brief Shorter form of tr_sessionInitFull()
    286290    @deprecated Use tr_sessionInitFull() instead. */
    287291tr_handle *  tr_sessionInit( const char * configDir,
    288                              const char * downloadDir,
    289292                             const char * tag );
    290293
    291294/** @brief End a libtransmission session
    const char * tr_sessionGetConfigDir( con 
    306309 * @see tr_sessionGetDownloadDir()
    307310 * @see tr_ctorSetDownloadDir()
    308311 */
    309 void         tr_sessionSetDownloadDir(
    310     tr_handle *,
    311     const char *
    312     downloadDir );
     312void tr_sessionSetDownloadDir( tr_handle  * session,
     313                               const char * downloadDir );
    313314
    314315/**
    315316 * @brief Get the default download folder for new torrents.
  • libtransmission/session.c

    tr_sessionInitFull( const char * c 
    305305
    306306tr_handle *
    307307tr_sessionInit( const char * configDir,
    308                 const char * downloadDir,
    309308                const char * tag )
    310309{
    311310    return tr_sessionInitFull( configDir,
    312                                downloadDir,
     311                               TR_DEFAULT_DOWNLOAD_DIR,
    313312                               tag,
    314313                               TR_DEFAULT_PEX_ENABLED,
    315314                               TR_DEFAULT_PORT_FORWARDING_ENABLED,
  • gtk/tr-prefs.c

    tr_prefs_init_global( void ) 
    104104#if GLIB_CHECK_VERSION( 2, 14, 0 )
    105105    if( !str ) str = g_get_user_special_dir( G_USER_DIRECTORY_DOWNLOAD );
    106106#endif
    107     if( !str ) str = g_get_home_dir( );
     107    if( !str ) str = tr_getDefaultDownloadDir( );
    108108    pref_string_set_default ( PREF_KEY_DOWNLOAD_DIR, str );
    109109
    110110    pref_int_set_default    ( PREF_KEY_PORT, TR_DEFAULT_PORT );
  • macosx/Controller.m

    static void sleepCallback(void * control 
    239239                                TR_DEFAULT_PROXY_TYPE, /* reset in prefs */
    240240                                [fDefaults boolForKey: @"ProxyAuthorize"],
    241241                                [[fDefaults stringForKey: @"ProxyUsername"] UTF8String],
    242                                 ""); /* reset in prefs - from Keychain */
     242                                "", /* reset in prefs - from Keychain */
     243                                TR_DEFAULT_PREALLOCATE_ENABLED ); /* FIXME */
    243244       
    244245        [NSApp setDelegate: self];
    245246       
  • daemon/daemon.c

    session_init( const char * configDir, 
    167167              const char * password,
    168168              int          blocklistEnabled )
    169169{
    170     char        * mycwd;
    171170    tr_benc       state, *dict = NULL;
    172171    int           peerPort = -1, peers = -1;
    173172    int           whitelistEnabled = -1;
    session_init( const char * configDir, 
    190189    ****  If neither of those can be found, the TR_DEFAULT fields are used .
    191190    ***/
    192191
    193     mycwd = tr_getcwd( );
    194     getConfigStr( dict, KEY_DOWNLOAD_DIR,    &downloadDir,       mycwd );
     192    getConfigStr( dict, KEY_DOWNLOAD_DIR,    &downloadDir,
     193                  TR_DEFAULT_DOWNLOAD_DIR );
    195194    getConfigInt( dict, KEY_PEX_ENABLED,     &pexEnabled,
    196195                  TR_DEFAULT_PEX_ENABLED );
    197196    getConfigInt( dict, KEY_PORT_FORWARDING, &fwdEnabled,
    session_init( const char * configDir, 
    258257
    259258    if( dict )
    260259        tr_bencFree( &state );
    261 
    262     tr_free( mycwd );
    263260}
    264261
    265262static const char *
  • daemon/remote.c

     
    1515#include <stdlib.h>
    1616#include <string.h> /* strcmp */
    1717
     18#ifdef WIN32
     19 #include <direct.h> /* getcwd */
     20#else
     21 #include <unistd.h> /* getcwd */
     22#endif
     23
    1824#include <libevent/event.h>
    1925#include <curl/curl.h>
    2026
    static int debug = 0; 
    144150static char * auth = NULL;
    145151
    146152static char*
     153tr_getcwd( void )
     154{
     155    char buf[2048];
     156    *buf = '\0';
     157#ifdef WIN32
     158    _getcwd( buf, sizeof( buf ) );
     159#else
     160    getcwd( buf, sizeof( buf ) );
     161#endif
     162    return tr_strdup( buf );
     163}
     164
     165static char*
    147166absolutify( const char * path )
    148167{
    149168    char * buf;
  • cli/cli.c

    main( int argc, 
    349349    if( configdir == NULL )
    350350        configdir = tr_getDefaultConfigDir( );
    351351
    352     /* if no download directory specified, use cwd instead */
    353     if( !downloadDir )
    354         downloadDir = tr_strdup( tr_getcwd( ) );
     352    if( downloadDir == NULL )
     353        downloadDir = tr_getDefaultDownloadDir( );
    355354
    356355    /* Initialize libtransmission */
    357356    h = tr_sessionInitFull(