+ const char *linein = Cmd_Args();
+ // include all params
+ while( *linein && outlen < ALIAS_BUFFER ) {
+ *out++ = *linein++;
+ outlen++;
+ }
+
+ in++;
+ } else {
+ char *nexttoken;
+ int argnum;
+
+ argnum = strtol( in, &nexttoken, 10 );
+
+ if( 0 < argnum && argnum < Cmd_Argc() )
+ {
+ const char *param = Cmd_Argv( argnum );
+ while( *param && outlen < ALIAS_BUFFER ) {
+ *out++ = *param++;
+ outlen++;
+ }
+ in = nexttoken;
+ }
+ else if( argnum >= Cmd_Argc() )
+ {
+ Con_Printf( "Warning: Not enough parameters passed to alias '%s', at least %i expected:\n %s\n", alias->name, argnum, alias->value );
+ *out++ = '$';
+ outlen++;
+ }
+ // not a number
+ else if( argnum == 0 )
+ {
+ *out++ = '$';
+ outlen++;
+ }