Mercurial > audlegacy-plugins
diff src/evdev-plug/ed_internals.c @ 438:4fec4a3ca1a4 trunk
[svn] - evdev-plug: check that the player local datadir exists before attempting to create evdev-plug.conf
| author | giacomo |
|---|---|
| date | Mon, 15 Jan 2007 14:04:11 -0800 |
| parents | c18fd1befd1f |
| children | d124034ebea3 |
line wrap: on
line diff
--- a/src/evdev-plug/ed_internals.c Mon Jan 15 13:25:41 2007 -0800 +++ b/src/evdev-plug/ed_internals.c Mon Jan 15 14:04:11 2007 -0800 @@ -802,7 +802,6 @@ config_datadir = (gchar*)audacious_get_localdir(); config_pathfilename = g_build_filename( config_datadir , PLAYER_LOCALRC_FILE , NULL ); - g_free( config_datadir ); keyfile = g_key_file_new(); @@ -825,13 +824,22 @@ } keyfile_str = g_key_file_to_data( keyfile , &keyfile_str_len , NULL ); - iochan = g_io_channel_new_file( config_pathfilename , "w" , NULL ); - g_io_channel_set_encoding( iochan , "UTF-8" , NULL ); - g_io_channel_write_chars( iochan , keyfile_str , keyfile_str_len , NULL , NULL ); - g_io_channel_shutdown( iochan , TRUE , NULL ); - g_io_channel_unref( iochan ); + if ( g_file_test( config_datadir , G_FILE_TEST_IS_DIR ) == TRUE ) + { + iochan = g_io_channel_new_file( config_pathfilename , "w" , NULL ); + g_io_channel_set_encoding( iochan , "UTF-8" , NULL ); + g_io_channel_write_chars( iochan , keyfile_str , keyfile_str_len , NULL , NULL ); + g_io_channel_shutdown( iochan , TRUE , NULL ); + g_io_channel_unref( iochan ); + } + else + { + g_warning( _("event-device-plugin: unable to access local directory %s , settings will not be saved.\n") , + config_datadir ); + } g_free( keyfile_str ); + g_free( config_datadir ); g_key_file_free( keyfile ); return 0; }
