From d62c5207dd5864fa72ce88fda39c0ec40529baba Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Wed, 3 Oct 2007 23:17:55 +0000 Subject: [PATCH] rc: ressuscite the goto command --- modules/control/rc.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/modules/control/rc.c b/modules/control/rc.c index 48ae3bb178..d09e1d28be 100644 --- a/modules/control/rc.c +++ b/modules/control/rc.c @@ -1343,8 +1343,23 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, } else if (!strcmp( psz_cmd, "goto" ) ) { - msg_rc( _("goto is deprecated" ) ); - msg_Err( p_playlist, "goto is deprecated" ); + int i_pos = atoi( newval.psz_string ); + /* The playlist stores 2 times the same item: onelevel & category */ + int i_size = p_playlist->items.i_size / 2; + + if( i_pos <= 0 ) + msg_rc( _("Error: `goto' needs an argument greater than zero.") ); + else if( i_pos <= i_size ) + { + playlist_item_t *p_item, *p_parent; + p_item = p_parent = p_playlist->items.p_elems[i_pos*2-1]; + while( p_parent->p_parent ) + p_parent = p_parent->p_parent; + playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, + p_parent, p_item ); + } + else + msg_rc( _("Playlist has only %d elements"), i_size ); } else if( !strcmp( psz_cmd, "stop" ) ) { -- 2.39.2