@@ -298,17 +298,21 @@ def shortcut(
298
298
if self .command .meta .raise_exception :
299
299
raise exc
300
300
return self .export (argv , True , exc )
301
- argv .addon (short .args )
301
+ argv .addon (short .args , merge_str = False )
302
302
data = _handle_shortcut_data (argv , data )
303
303
if not data and argv .raw_data and any (isinstance (i , str ) and bool (re .search (r"\{%(\d+)|\*(.*?)\}" , i )) for i in argv .raw_data ):
304
304
exc = ArgumentMissing (lang .require ("analyser" , "param_missing" ))
305
305
if self .command .meta .raise_exception :
306
306
raise exc
307
307
return self .export (argv , True , exc )
308
308
argv .bak_data = argv .raw_data .copy ()
309
- argv .addon (data )
309
+ argv .addon (data , merge_str = False )
310
310
if reg :
311
- argv .raw_data = _handle_shortcut_reg (argv , reg .groups (), reg .groupdict (), short .wrapper )
311
+ data = _handle_shortcut_reg (argv , reg .groups (), reg .groupdict (), short .wrapper )
312
+ argv .raw_data .clear ()
313
+ argv .ndata = 0
314
+ argv .current_index = 0
315
+ argv .addon (data )
312
316
argv .bak_data = argv .raw_data .copy ()
313
317
if argv .message_cache :
314
318
argv .token = argv .generate_token (argv .raw_data )
@@ -350,7 +354,6 @@ def process(self, argv: Argv[TDC]) -> Arparma[TDC]:
350
354
argv .context [SHORTCUT_REST ] = rest
351
355
argv .context [SHORTCUT_REGEX_MATCH ] = mat
352
356
self .reset ()
353
- argv .reset ()
354
357
return self .shortcut (argv , rest , short , mat )
355
358
356
359
except FuzzyMatchSuccess as Fuzzy :
0 commit comments