From 88ba0b66dd98f83be8c33c43c86728b5f7fd8ee3 Mon Sep 17 00:00:00 2001 From: Cristy Date: Sat, 9 Dec 2017 08:31:20 -0500 Subject: [PATCH] https://github.com/ImageMagick/ImageMagick/issues/893 --- MagickCore/option.c | 253 ++++++++++++++++++++++++++++++++++++++++++-- MagickCore/option.h | 3 +- 2 files changed, 244 insertions(+), 12 deletions(-) diff --git a/MagickCore/option.c b/MagickCore/option.c index b082f0749..d81e2d7c2 100644 --- a/MagickCore/option.c +++ b/MagickCore/option.c @@ -217,6 +217,235 @@ static const OptionInfo { "PseudoClass", PseudoClass, UndefinedOptionFlag, MagickFalse }, { (char *) NULL, UndefinedClass, UndefinedOptionFlag, MagickFalse } }, + CLIOptions[] = + { + { "Setting", 0, UndefinedOptionFlag, MagickFalse }, + { " adjoin", 0, UndefinedOptionFlag, MagickFalse }, + { " affine", 0, UndefinedOptionFlag, MagickFalse }, + { " alpha", 0, UndefinedOptionFlag, MagickFalse }, + { " antialias", 0, UndefinedOptionFlag, MagickFalse }, + { " authenticate", 0, UndefinedOptionFlag, MagickFalse }, + { " background", 0, UndefinedOptionFlag, MagickFalse }, + { " bias", 0, UndefinedOptionFlag, MagickFalse }, + { " black‑point‑compensation", 0, UndefinedOptionFlag, MagickFalse }, + { " blue‑primary", 0, UndefinedOptionFlag, MagickFalse }, + { " bordercolor", 0, UndefinedOptionFlag, MagickFalse }, + { " caption", 0, UndefinedOptionFlag, MagickFalse }, + { " channel", 0, UndefinedOptionFlag, MagickFalse }, + { " comment", 0, UndefinedOptionFlag, MagickFalse }, + { " compress", 0, UndefinedOptionFlag, MagickFalse }, + { " debug", 0, UndefinedOptionFlag, MagickFalse }, + { " define", 0, UndefinedOptionFlag, MagickFalse }, + { " delay", 0, UndefinedOptionFlag, MagickFalse }, + { " density", 0, UndefinedOptionFlag, MagickFalse }, + { " depth", 0, UndefinedOptionFlag, MagickFalse }, + { " direction", 0, UndefinedOptionFlag, MagickFalse }, + { " display", 0, UndefinedOptionFlag, MagickFalse }, + { " dispose", 0, UndefinedOptionFlag, MagickFalse }, + { " dither", 0, UndefinedOptionFlag, MagickFalse }, + { " encoding", 0, UndefinedOptionFlag, MagickFalse }, + { " endian", 0, UndefinedOptionFlag, MagickFalse }, + { " extract", 0, UndefinedOptionFlag, MagickFalse }, + { " family", 0, UndefinedOptionFlag, MagickFalse }, + { " fill", 0, UndefinedOptionFlag, MagickFalse }, + { " filter", 0, UndefinedOptionFlag, MagickFalse }, + { " font", 0, UndefinedOptionFlag, MagickFalse }, + { " format", 0, UndefinedOptionFlag, MagickFalse }, + { " fuzz", 0, UndefinedOptionFlag, MagickFalse }, + { " geometry", 0, UndefinedOptionFlag, MagickFalse }, + { " gravity", 0, UndefinedOptionFlag, MagickFalse }, + { " green‑primary", 0, UndefinedOptionFlag, MagickFalse }, + { " interlace", 0, UndefinedOptionFlag, MagickFalse }, + { " intent", 0, UndefinedOptionFlag, MagickFalse }, + { " interpolate", 0, UndefinedOptionFlag, MagickFalse }, + { " label", 0, UndefinedOptionFlag, MagickFalse }, + { " limit", 0, UndefinedOptionFlag, MagickFalse }, + { " linewidth", 0, UndefinedOptionFlag, MagickFalse }, + { " log", 0, UndefinedOptionFlag, MagickFalse }, + { " loop", 0, UndefinedOptionFlag, MagickFalse }, + { " mattecolor", 0, UndefinedOptionFlag, MagickFalse }, + { " monitor", 0, UndefinedOptionFlag, MagickFalse }, + { " orient", 0, UndefinedOptionFlag, MagickFalse }, + { " page", 0, UndefinedOptionFlag, MagickFalse }, + { " pointsize", 0, UndefinedOptionFlag, MagickFalse }, + { " preview", 0, UndefinedOptionFlag, MagickFalse }, + { " quality", 0, UndefinedOptionFlag, MagickFalse }, + { " quiet", 0, UndefinedOptionFlag, MagickFalse }, + { " read‑mask", 0, UndefinedOptionFlag, MagickFalse }, + { " red‑primary", 0, UndefinedOptionFlag, MagickFalse }, + { " region", 0, UndefinedOptionFlag, MagickFalse }, + { " render", 0, UndefinedOptionFlag, MagickFalse }, + { " repage", 0, UndefinedOptionFlag, MagickFalse }, + { " sampling‑factor", 0, UndefinedOptionFlag, MagickFalse }, + { " scene", 0, UndefinedOptionFlag, MagickFalse }, + { " seed", 0, UndefinedOptionFlag, MagickFalse }, + { " size", 0, UndefinedOptionFlag, MagickFalse }, + { " stretch", 0, UndefinedOptionFlag, MagickFalse }, + { " stroke", 0, UndefinedOptionFlag, MagickFalse }, + { " strokewidth", 0, UndefinedOptionFlag, MagickFalse }, + { " style", 0, UndefinedOptionFlag, MagickFalse }, + { " texture", 0, UndefinedOptionFlag, MagickFalse }, + { " tile", 0, UndefinedOptionFlag, MagickFalse }, + { " transparent‑color", 0, UndefinedOptionFlag, MagickFalse }, + { " treedepth", 0, UndefinedOptionFlag, MagickFalse }, + { " type", 0, UndefinedOptionFlag, MagickFalse }, + { " undercolor", 0, UndefinedOptionFlag, MagickFalse }, + { " units", 0, UndefinedOptionFlag, MagickFalse }, + { " verbose", 0, UndefinedOptionFlag, MagickFalse }, + { " virtual‑pixel", 0, UndefinedOptionFlag, MagickFalse }, + { " weight", 0, UndefinedOptionFlag, MagickFalse }, + { " write‑mask", 0, UndefinedOptionFlag, MagickFalse }, + { "Operator", 0, UndefinedOptionFlag, MagickFalse }, + { " annotate", 0, UndefinedOptionFlag, MagickFalse }, + { " black‑threshold", 0, UndefinedOptionFlag, MagickFalse }, + { " blur", 0, UndefinedOptionFlag, MagickFalse }, + { " border", 0, UndefinedOptionFlag, MagickFalse }, + { " charcoal", 0, UndefinedOptionFlag, MagickFalse }, + { " chop", 0, UndefinedOptionFlag, MagickFalse }, + { " clip", 0, UndefinedOptionFlag, MagickFalse }, + { " clip‑path", 0, UndefinedOptionFlag, MagickFalse }, + { " clip‑mask", 0, UndefinedOptionFlag, MagickFalse }, + { " colors", 0, UndefinedOptionFlag, MagickFalse }, + { " colorize", 0, UndefinedOptionFlag, MagickFalse }, + { " colorspace", 0, UndefinedOptionFlag, MagickFalse }, + { " compose", 0, UndefinedOptionFlag, MagickFalse }, + { " contrast", 0, UndefinedOptionFlag, MagickFalse }, + { " convolve", 0, UndefinedOptionFlag, MagickFalse }, + { " crop", 0, UndefinedOptionFlag, MagickFalse }, + { " cycle", 0, UndefinedOptionFlag, MagickFalse }, + { " despeckle", 0, UndefinedOptionFlag, MagickFalse }, + { " draw", 0, UndefinedOptionFlag, MagickFalse }, + { " edge", 0, UndefinedOptionFlag, MagickFalse }, + { " emboss", 0, UndefinedOptionFlag, MagickFalse }, + { " enhance", 0, UndefinedOptionFlag, MagickFalse }, + { " equalize", 0, UndefinedOptionFlag, MagickFalse }, + { " evaluate", 0, UndefinedOptionFlag, MagickFalse }, + { " extent", 0, UndefinedOptionFlag, MagickFalse }, + { " flip", 0, UndefinedOptionFlag, MagickFalse }, + { " flop", 0, UndefinedOptionFlag, MagickFalse }, + { " floodfill", 0, UndefinedOptionFlag, MagickFalse }, + { " frame", 0, UndefinedOptionFlag, MagickFalse }, + { " gamma", 0, UndefinedOptionFlag, MagickFalse }, + { " gaussian‑blur", 0, UndefinedOptionFlag, MagickFalse }, + { " grayscale", 0, UndefinedOptionFlag, MagickFalse }, + { " implode", 0, UndefinedOptionFlag, MagickFalse }, + { " lat", 0, UndefinedOptionFlag, MagickFalse }, + { " level", 0, UndefinedOptionFlag, MagickFalse }, + { " map", 0, UndefinedOptionFlag, MagickFalse }, + { " median", 0, UndefinedOptionFlag, MagickFalse }, + { " modulate", 0, UndefinedOptionFlag, MagickFalse }, + { " monochrome", 0, UndefinedOptionFlag, MagickFalse }, + { " negate", 0, UndefinedOptionFlag, MagickFalse }, + { " noise", 0, UndefinedOptionFlag, MagickFalse }, + { " normalize", 0, UndefinedOptionFlag, MagickFalse }, + { " opaque", 0, UndefinedOptionFlag, MagickFalse }, + { " ordered‑dither", 0, UndefinedOptionFlag, MagickFalse }, + { " paint", 0, UndefinedOptionFlag, MagickFalse }, + { " posterize", 0, UndefinedOptionFlag, MagickFalse }, + { " raise", 0, UndefinedOptionFlag, MagickFalse }, + { " profile", 0, UndefinedOptionFlag, MagickFalse }, + { " radial‑blur", 0, UndefinedOptionFlag, MagickFalse }, + { " raise", 0, UndefinedOptionFlag, MagickFalse }, + { " random‑threshold", 0, UndefinedOptionFlag, MagickFalse }, + { " resample", 0, UndefinedOptionFlag, MagickFalse }, + { " resize", 0, UndefinedOptionFlag, MagickFalse }, + { " roll", 0, UndefinedOptionFlag, MagickFalse }, + { " rotate", 0, UndefinedOptionFlag, MagickFalse }, + { " sample", 0, UndefinedOptionFlag, MagickFalse }, + { " scale", 0, UndefinedOptionFlag, MagickFalse }, + { " sepia‑tone", 0, UndefinedOptionFlag, MagickFalse }, + { " segment", 0, UndefinedOptionFlag, MagickFalse }, + { " shade", 0, UndefinedOptionFlag, MagickFalse }, + { " shadow", 0, UndefinedOptionFlag, MagickFalse }, + { " sharpen", 0, UndefinedOptionFlag, MagickFalse }, + { " shave", 0, UndefinedOptionFlag, MagickFalse }, + { " shear", 0, UndefinedOptionFlag, MagickFalse }, + { " sigmoidal‑contrast", 0, UndefinedOptionFlag, MagickFalse }, + { " solarize", 0, UndefinedOptionFlag, MagickFalse }, + { " splice", 0, UndefinedOptionFlag, MagickFalse }, + { " spread", 0, UndefinedOptionFlag, MagickFalse }, + { " strip", 0, UndefinedOptionFlag, MagickFalse }, + { " swirl", 0, UndefinedOptionFlag, MagickFalse }, + { " threshold", 0, UndefinedOptionFlag, MagickFalse }, + { " transparent", 0, UndefinedOptionFlag, MagickFalse }, + { " thumbnail", 0, UndefinedOptionFlag, MagickFalse }, + { " tint", 0, UndefinedOptionFlag, MagickFalse }, + { " transform", 0, UndefinedOptionFlag, MagickFalse }, + { " trim", 0, UndefinedOptionFlag, MagickFalse }, + { " unsharp", 0, UndefinedOptionFlag, MagickFalse }, + { " version", 0, UndefinedOptionFlag, MagickFalse }, + { " wave", 0, UndefinedOptionFlag, MagickFalse }, + { " white‑point", 0, UndefinedOptionFlag, MagickFalse }, + { " white‑threshold", 0, UndefinedOptionFlag, MagickFalse }, + { "Channel Operator", 0, UndefinedOptionFlag, MagickFalse }, + { " channel-fx", 0, UndefinedOptionFlag, MagickFalse }, + { " separate", 0, UndefinedOptionFlag, MagickFalse }, + { "Sequence Operator", 0, UndefinedOptionFlag, MagickFalse }, + { " append", 0, UndefinedOptionFlag, MagickFalse }, + { " affinity", 0, UndefinedOptionFlag, MagickFalse }, + { " average", 0, UndefinedOptionFlag, MagickFalse }, + { " clut", 0, UndefinedOptionFlag, MagickFalse }, + { " coalesce", 0, UndefinedOptionFlag, MagickFalse }, + { " combine", 0, UndefinedOptionFlag, MagickFalse }, + { " compare", 0, UndefinedOptionFlag, MagickFalse }, + { " complex", 0, UndefinedOptionFlag, MagickFalse }, + { " composite", 0, UndefinedOptionFlag, MagickFalse }, + { " copy", 0, UndefinedOptionFlag, MagickFalse }, + { " crop", 0, UndefinedOptionFlag, MagickFalse }, + { " debug", 0, UndefinedOptionFlag, MagickFalse }, + { " deconstruct", 0, UndefinedOptionFlag, MagickFalse }, + { " delete", 0, UndefinedOptionFlag, MagickFalse }, + { " evaluate‑sequence", 0, UndefinedOptionFlag, MagickFalse }, + { " fft", 0, UndefinedOptionFlag, MagickFalse }, + { " flatten", 0, UndefinedOptionFlag, MagickFalse }, + { " fx", 0, UndefinedOptionFlag, MagickFalse }, + { " hald‑clut", 0, UndefinedOptionFlag, MagickFalse }, + { " ift", 0, UndefinedOptionFlag, MagickFalse }, + { " identify", 0, UndefinedOptionFlag, MagickFalse }, + { " insert", 0, UndefinedOptionFlag, MagickFalse }, + { " layers", 0, UndefinedOptionFlag, MagickFalse }, + { " limit", 0, UndefinedOptionFlag, MagickFalse }, + { " map", 0, UndefinedOptionFlag, MagickFalse }, + { " maximum", 0, UndefinedOptionFlag, MagickFalse }, + { " minimum", 0, UndefinedOptionFlag, MagickFalse }, + { " morph", 0, UndefinedOptionFlag, MagickFalse }, + { " mosaic", 0, UndefinedOptionFlag, MagickFalse }, + { " optimize", 0, UndefinedOptionFlag, MagickFalse }, + { " print", 0, UndefinedOptionFlag, MagickFalse }, + { " process", 0, UndefinedOptionFlag, MagickFalse }, + { " quiet", 0, UndefinedOptionFlag, MagickFalse }, + { " swap", 0, UndefinedOptionFlag, MagickFalse }, + { " write", 0, UndefinedOptionFlag, MagickFalse }, + { "Geometry", 0, UndefinedOptionFlag, MagickFalse }, + { " adaptive‑resize", 0, UndefinedOptionFlag, MagickFalse }, + { " border", 0, UndefinedOptionFlag, MagickFalse }, + { " borderwidth", 0, UndefinedOptionFlag, MagickFalse }, + { " chop", 0, UndefinedOptionFlag, MagickFalse }, + { " crop", 0, UndefinedOptionFlag, MagickFalse }, + { " density", 0, UndefinedOptionFlag, MagickFalse }, + { " extent", 0, UndefinedOptionFlag, MagickFalse }, + { " extract", 0, UndefinedOptionFlag, MagickFalse }, + { " frame", 0, UndefinedOptionFlag, MagickFalse }, + { " geometry", 0, UndefinedOptionFlag, MagickFalse }, + { " iconGeometry", 0, UndefinedOptionFlag, MagickFalse }, + { " liquid‑rescale", 0, UndefinedOptionFlag, MagickFalse }, + { " page", 0, UndefinedOptionFlag, MagickFalse }, + { " region", 0, UndefinedOptionFlag, MagickFalse }, + { " repage", 0, UndefinedOptionFlag, MagickFalse }, + { " resize", 0, UndefinedOptionFlag, MagickFalse }, + { " sample", 0, UndefinedOptionFlag, MagickFalse }, + { " scale", 0, UndefinedOptionFlag, MagickFalse }, + { " shave", 0, UndefinedOptionFlag, MagickFalse }, + { " splice", 0, UndefinedOptionFlag, MagickFalse }, + { " thumbnail", 0, UndefinedOptionFlag, MagickFalse }, + { " window", 0, UndefinedOptionFlag, MagickFalse }, + { "Stack", 0, UndefinedOptionFlag, MagickFalse }, + { " clone", 0, UndefinedOptionFlag, MagickFalse }, + { " delete", 0, UndefinedOptionFlag, MagickFalse }, + { " insert", 0, UndefinedOptionFlag, MagickFalse }, + { " swap", 0, UndefinedOptionFlag, MagickFalse }, + { (char *) NULL, 0, UndefinedOptionFlag, MagickFalse } + }, ClipPathOptions[] = { { "Undefined", UndefinedPathUnits, UndefinedOptionFlag, MagickTrue }, @@ -1331,6 +1560,7 @@ static const OptionInfo { "Cache", MagickCacheOptions, UndefinedOptionFlag, MagickFalse }, { "Channel", MagickChannelOptions, UndefinedOptionFlag, MagickFalse }, { "Class", MagickClassOptions, UndefinedOptionFlag, MagickFalse }, + { "CLI", MagickCLIOptions, UndefinedOptionFlag, MagickFalse }, { "ClipPath", MagickClipPathOptions, UndefinedOptionFlag, MagickFalse }, { "Coder", MagickCoderOptions, UndefinedOptionFlag, MagickFalse }, { "Color", MagickColorOptions, UndefinedOptionFlag, MagickFalse }, @@ -1764,17 +1994,17 @@ static const OptionInfo }, ToolOptions[] = { - { "animate", 1, UndefinedOptionFlag, MagickFalse }, - { "compare", 2, UndefinedOptionFlag, MagickFalse }, - { "composite", 3, UndefinedOptionFlag, MagickFalse }, - { "conjure", 4, UndefinedOptionFlag, MagickFalse }, - { "convert", 5, UndefinedOptionFlag, MagickFalse }, - { "display", 6, UndefinedOptionFlag, MagickFalse }, - { "identify", 7, UndefinedOptionFlag, MagickFalse }, - { "import", 8, UndefinedOptionFlag, MagickFalse }, - { "mogrify", 9, UndefinedOptionFlag, MagickFalse }, - { "montage", 10, UndefinedOptionFlag, MagickFalse }, - { "stream", 11, UndefinedOptionFlag, MagickFalse }, + { "animate", 0, UndefinedOptionFlag, MagickFalse }, + { "compare", 0, UndefinedOptionFlag, MagickFalse }, + { "composite", 0, UndefinedOptionFlag, MagickFalse }, + { "conjure", 0, UndefinedOptionFlag, MagickFalse }, + { "convert", 0, UndefinedOptionFlag, MagickFalse }, + { "display", 0, UndefinedOptionFlag, MagickFalse }, + { "identify", 0, UndefinedOptionFlag, MagickFalse }, + { "import", 0, UndefinedOptionFlag, MagickFalse }, + { "mogrify", 0, UndefinedOptionFlag, MagickFalse }, + { "montage", 0, UndefinedOptionFlag, MagickFalse }, + { "stream", 0, UndefinedOptionFlag, MagickFalse }, { (char *) NULL, 0, UndefinedOptionFlag, MagickFalse } }, TypeOptions[] = @@ -2110,6 +2340,7 @@ static const OptionInfo *GetOptionInfo(const CommandOption option) case MagickCacheOptions: return(CacheOptions); case MagickChannelOptions: return(ChannelOptions); case MagickClassOptions: return(ClassOptions); + case MagickCLIOptions: return(CLIOptions); case MagickClipPathOptions: return(ClipPathOptions); case MagickColorspaceOptions: return(ColorspaceOptions); case MagickCommandOptions: return(CommandOptions); diff --git a/MagickCore/option.h b/MagickCore/option.h index 190bd6694..ab5ea868a 100644 --- a/MagickCore/option.h +++ b/MagickCore/option.h @@ -103,7 +103,8 @@ typedef enum MagickVirtualPixelOptions, MagickWeightOptions, MagickAutoThresholdOptions, - MagickToolOptions + MagickToolOptions, + MagickCLIOptions } CommandOption; typedef enum -- 2.40.0