[vlc-commits] Don't pass relative file paths when using --one-instance
Pierre Ynard
git at videolan.org
Thu Jan 27 15:41:07 CET 2011
vlc | branch: master | Pierre Ynard <linkfanel at yahoo.fr> | Thu Jan 27 15:36:43 2011 +0100| [471c012afd8c126807bc796ede7ae57baf4600ec] | committer: Pierre Ynard
Don't pass relative file paths when using --one-instance
Fixes Debian bug #600269
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=471c012afd8c126807bc796ede7ae57baf4600ec
---
src/libvlc.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/libvlc.c b/src/libvlc.c
index 270701d..3647d4d 100644
--- a/src/libvlc.c
+++ b/src/libvlc.c
@@ -564,8 +564,12 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
for( i_input = vlc_optind; i_input < i_argc;i_input++ )
{
+ /* We need to resolve relative paths in this instance */
+ char *psz_mrl = make_URI( ppsz_argv[i_input], NULL );
+ if( psz_mrl == NULL )
+ continue;
msg_Dbg( p_libvlc, "Adds %s to the running Media Player",
- ppsz_argv[i_input] );
+ psz_mrl );
p_dbus_msg = dbus_message_new_method_call(
"org.mpris.vlc", "/TrackList",
@@ -574,6 +578,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
if ( NULL == p_dbus_msg )
{
msg_Err( p_libvlc, "D-Bus problem" );
+ free( psz_mrl );
system_End( p_libvlc );
exit( 1 );
}
@@ -581,12 +586,14 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
/* append MRLs */
dbus_message_iter_init_append( p_dbus_msg, &dbus_args );
if ( !dbus_message_iter_append_basic( &dbus_args,
- DBUS_TYPE_STRING, &ppsz_argv[i_input] ) )
+ DBUS_TYPE_STRING, &psz_mrl ) )
{
dbus_message_unref( p_dbus_msg );
+ free( psz_mrl );
system_End( p_libvlc );
exit( 1 );
}
+ free( psz_mrl );
b_play = TRUE;
if( var_InheritBool( p_libvlc, "playlist-enqueue" ) )
b_play = FALSE;
More information about the vlc-commits
mailing list