Bugfix: IKI variable substitutionr results in incorrect parameter structure.
The commit
d94d5337c44d7b2d6f3ed183e8d2c94b4bdad1f6 exposed an existing bug.
There parameters are not always expanding properly resulting in the parameter being empty, having the incorrect order, or being improperly merged with another parameter.
Change the array resize behavior to resize after incrementing the arguments rather than before.
Detect and handle special cases where separation needs to be applied and when separation does not need to be applied.
Remove random space that is being accidentally appended when printing arguments (probably an accident from a previous commit).
The commit
6012208c61e616a5d31d285ba8873f55b987bf70 did not fully solve the problems it attempted to solve.
Handle additional cases, such as:
settings:
parameter a iki <-assure_space unassure_space->
parameter b value
main:
if exist 'parameter:"a"'
print yes (parameter:"a")
else
print no (parameter:"a")
print 0 parameter:"a"
print 1 parameter:"b"
print 2 parameter:"b".
print 3 "parameter:"b""
print 4 "parameter:"b\" between parameter:"b""
print 5 'begin parameter:"a" middle parameter:"a" end'
print 6 "begin parameter:"a\" middle parameter:"a\" end"
print 7 begin parameter:"a" middle parameter:"a" end
print 8 begin parameter:"a"! middle parameter:"a"@parameter:"a" end
Should produce results like:
no (iki <-assure_space unassure_space->)
0 iki <-assure_space unassure_space->
1 value
2 value.
3 value
4 value between value
5 begin iki <-assure_space unassure_space-> middle iki <-assure_space unassure_space-> end
6 begin iki <-assure_space unassure_space-> middle iki <-assure_space unassure_space-> end
7 begin iki <-assure_space unassure_space-> middle iki <-assure_space unassure_space-> end
8 begin iki <-assure_space unassure_space->! middle iki <-assure_space unassure_space->@iki <-assure_space unassure_space-> end
Move the relevant arguments and iki data into a shared cache to save memory consumption.
Rename path_cache to cache_path for consistency.