|
|
@@ -594,6 +594,27 @@ int pipi_command(pipi_context_t *ctx, char const *cmd, ...) |
|
|
|
ctx->images[ctx->nimages - 1] = ctx->images[ctx->nimages - 2]; |
|
|
|
ctx->images[ctx->nimages - 2] = tmp; |
|
|
|
} |
|
|
|
else if(!strcmp(cmd, "roll")) |
|
|
|
{ |
|
|
|
pipi_image_t *tmp; |
|
|
|
char const *arg; |
|
|
|
va_list ap; |
|
|
|
int val; |
|
|
|
|
|
|
|
va_start(ap, cmd); |
|
|
|
arg = va_arg(ap, char const *); |
|
|
|
va_end(ap); |
|
|
|
val = atoi(arg); |
|
|
|
if(val <= 0 || ctx->nimages < val) |
|
|
|
return -1; |
|
|
|
if(val == 1) |
|
|
|
return 0; |
|
|
|
tmp = ctx->images[ctx->nimages - val]; |
|
|
|
memmove(ctx->images + ctx->nimages - val, |
|
|
|
ctx->images + ctx->nimages - val + 1, |
|
|
|
(val - 1) * sizeof(*ctx->images)); |
|
|
|
ctx->images[ctx->nimages - 1] = tmp; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
return -1; |
|
|
|