@@ -76,8 +76,10 @@ impl Script for MusicaScript {
7676 }
7777 // .message <id> <voice> <name> <text>
7878 if parts[ 0 ] == ".message" && parts. len ( ) >= 5 {
79- let name = parts[ 3 ] . clone ( ) ;
80- let text = parts[ 4 ] . clone ( ) ;
79+ let name_index = parts. len ( ) - 2 ;
80+ let text_index = parts. len ( ) - 1 ;
81+ let name = parts[ name_index] . clone ( ) ;
82+ let text = parts[ text_index] . clone ( ) ;
8183 let message = Message {
8284 name : if name. is_empty ( ) { None } else { Some ( name) } ,
8385 message : text,
@@ -110,7 +112,9 @@ impl Script for MusicaScript {
110112 Some ( m) => m,
111113 None => return Err ( anyhow:: anyhow!( "Not enough messages to import." ) ) ,
112114 } ;
113- if !parts[ 3 ] . is_empty ( ) {
115+ let name_index = parts. len ( ) - 2 ;
116+ let text_index = parts. len ( ) - 1 ;
117+ if !parts[ name_index] . is_empty ( ) {
114118 let mut name = match & m. name {
115119 Some ( n) => n. clone ( ) ,
116120 None => {
@@ -125,15 +129,15 @@ impl Script for MusicaScript {
125129 name = name. replace ( k, v) ;
126130 }
127131 }
128- parts[ 3 ] = name. replace ( ' ' , "\u{3000} " ) ;
132+ parts[ name_index ] = name. replace ( ' ' , "\u{3000} " ) ;
129133 }
130134 let mut text = m. message . clone ( ) ;
131135 if let Some ( repl) = replacement {
132136 for ( k, v) in & repl. map {
133137 text = text. replace ( k, v) ;
134138 }
135139 }
136- parts[ 4 ] = text. replace ( ' ' , "\u{3000} " ) ;
140+ parts[ text_index ] = text. replace ( ' ' , "\u{3000} " ) ;
137141 me = mes. next ( ) ;
138142 }
139143 let line = parts. join ( " " ) ;
0 commit comments