]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/option.c
(no commit message)
[imagemagick] / MagickCore / option.c
index 4030692c0d36cb8a8fc10f5017a66996cf9542ca..9ce40324a5f499202fbf52b6234e1e42cba02c20 100644 (file)
@@ -119,25 +119,38 @@ static const OptionInfo
   ChannelOptions[] =
   {
     { "Undefined", UndefinedChannel, UndefinedOptionFlag, MagickTrue },
+    /* special */
     { "All", CompositeChannels, UndefinedOptionFlag, MagickFalse },
-    { "Alpha", OpacityChannel, UndefinedOptionFlag, MagickFalse },
+    { "Sync", SyncChannels, UndefinedOptionFlag, MagickFalse },
+    { "Default", DefaultChannels, UndefinedOptionFlag, MagickFalse },
+    /* individual channel */
+    { "A", AlphaChannel, UndefinedOptionFlag, MagickFalse },
+    { "Alpha", AlphaChannel, UndefinedOptionFlag, MagickFalse },
     { "Black", BlackChannel, UndefinedOptionFlag, MagickFalse },
+    { "B", BlueChannel, UndefinedOptionFlag, MagickFalse },
     { "Blue", BlueChannel, UndefinedOptionFlag, MagickFalse },
+    { "C", CyanChannel, UndefinedOptionFlag, MagickFalse },
     { "Cyan", CyanChannel, UndefinedOptionFlag, MagickFalse },
-    { "Default", DefaultChannels, UndefinedOptionFlag, MagickFalse },
     { "Gray", GrayChannel, UndefinedOptionFlag, MagickFalse },
+    { "G", GreenChannel, UndefinedOptionFlag, MagickFalse },
     { "Green", GreenChannel, UndefinedOptionFlag, MagickFalse },
+    { "H", RedChannel, UndefinedOptionFlag, MagickFalse },
     { "Hue", RedChannel, UndefinedOptionFlag, MagickFalse },
+    { "K", BlackChannel, UndefinedOptionFlag, MagickFalse },
+    { "L", BlueChannel, UndefinedOptionFlag, MagickFalse },
     { "Lightness", BlueChannel, UndefinedOptionFlag, MagickFalse },
     { "Luminance", BlueChannel, UndefinedOptionFlag, MagickFalse },
     { "Luminosity", BlueChannel, DeprecateOptionFlag, MagickTrue },
+    { "M", MagentaChannel, UndefinedOptionFlag, MagickFalse },
     { "Magenta", MagentaChannel, UndefinedOptionFlag, MagickFalse },
-    { "Matte", OpacityChannel, UndefinedOptionFlag, MagickFalse },
-    { "Opacity", OpacityChannel, UndefinedOptionFlag, MagickFalse },
+    { "Matte", AlphaChannel, DeprecateOptionFlag, MagickTrue },/*depreciate*/
+    { "Opacity", AlphaChannel, DeprecateOptionFlag, MagickTrue },/*depreciate*/
+    { "R", RedChannel, UndefinedOptionFlag, MagickFalse },
     { "Red", RedChannel, UndefinedOptionFlag, MagickFalse },
+    { "S", GreenChannel, UndefinedOptionFlag, MagickFalse },
     { "Saturation", GreenChannel, UndefinedOptionFlag, MagickFalse },
+    { "Y", YellowChannel, UndefinedOptionFlag, MagickFalse },
     { "Yellow", YellowChannel, UndefinedOptionFlag, MagickFalse },
-    { "Sync", SyncChannels, UndefinedOptionFlag, MagickFalse },
     { (char *) NULL, UndefinedChannel, UndefinedOptionFlag, MagickFalse }
   },
   ClassOptions[] =
@@ -158,8 +171,8 @@ static const OptionInfo
   CommandOptions[] =
   {
     /* WARNING: this must be sorted by name, then by switch character
-       So that it can be referanced using a binary search for speed.
-       See  GetCommandOptionInfo() below for details.
+       So that it can be referenced using a binary search for speed.
+       See GetCommandOptionInfo() below for details.
 
        Check on sort...
            magick -list command > t1
@@ -168,7 +181,9 @@ static const OptionInfo
     */
     { "(", 0L, SpecialOptionFlag, MagickTrue },
     { ")", 0L, SpecialOptionFlag, MagickTrue },
-    { "--", 0L, SpecialOptionFlag, MagickTrue },
+    { "{", 0L, SpecialOptionFlag, MagickTrue },
+    { "}", 0L, SpecialOptionFlag, MagickTrue },
+    { "--", 1L, SpecialOptionFlag, MagickTrue },
     { "+adaptive-blur", 1L, DeprecateOptionFlag, MagickTrue },
     { "-adaptive-blur", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+adaptive-resize", 1L, DeprecateOptionFlag, MagickTrue },
@@ -177,8 +192,8 @@ static const OptionInfo
     { "-adaptive-sharpen", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+adjoin", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-adjoin", 0L, ImageInfoOptionFlag, MagickFalse },
-    { "+affine", 0L, DrawInfoOptionFlag | DeprecateOptionFlag, MagickTrue },
-    { "-affine", 1L, DrawInfoOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "+affine", 0L, ReplacedOptionFlag | DrawInfoOptionFlag, MagickTrue },
+    { "-affine", 1L, ReplacedOptionFlag | DrawInfoOptionFlag, MagickTrue },
     { "+affinity", 0L, DeprecateOptionFlag, MagickTrue },
     { "-affinity", 1L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "+alpha", 1L, DeprecateOptionFlag, MagickTrue },
@@ -190,7 +205,7 @@ static const OptionInfo
     { "+append", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "-append", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+attenuate", 0L, ImageInfoOptionFlag, MagickFalse },
-    { "-attenuate", 0L, ImageInfoOptionFlag, MagickFalse },
+    { "-attenuate", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+authenticate", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-authenticate", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+auto-gamma", 0L, DeprecateOptionFlag, MagickTrue },
@@ -199,13 +214,13 @@ static const OptionInfo
     { "-auto-level", 0L, SimpleOperatorOptionFlag, MagickFalse },
     { "+auto-orient", 0L, DeprecateOptionFlag, MagickTrue },
     { "-auto-orient", 0L, SimpleOperatorOptionFlag, MagickFalse },
-    { "+average", 0L, ListOperatorOptionFlag | FireOptionFlag | DeprecateOptionFlag, MagickTrue },
-    { "-average", 0L, ListOperatorOptionFlag | FireOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "+average", 0L, DeprecateOptionFlag, MagickTrue },
+    { "-average", 0L, ReplacedOptionFlag | ListOperatorOptionFlag | FireOptionFlag, MagickTrue },
     { "+backdrop", 0L, NonMagickOptionFlag, MagickFalse },
     { "-backdrop", 1L, NonMagickOptionFlag, MagickFalse },
     { "+background", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-background", 1L, ImageInfoOptionFlag, MagickFalse },
-    { "+bench", 0L, GenesisOptionFlag, MagickFalse },
+    { "+bench", 1L, DeprecateOptionFlag, MagickTrue },
     { "-bench", 1L, GenesisOptionFlag, MagickFalse },
     { "+bias", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-bias", 1L, ImageInfoOptionFlag, MagickFalse },
@@ -227,8 +242,8 @@ static const OptionInfo
     { "-bordercolor", 1L, ImageInfoOptionFlag | DrawInfoOptionFlag, MagickFalse },
     { "+borderwidth", 0L, NonMagickOptionFlag, MagickFalse },
     { "-borderwidth", 1L, NonMagickOptionFlag, MagickFalse },
-    { "+box", 0L, ImageInfoOptionFlag | DrawInfoOptionFlag | DeprecateOptionFlag, MagickTrue },
-    { "-box", 1L, ImageInfoOptionFlag | DrawInfoOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "+box", 0L, ReplacedOptionFlag | ImageInfoOptionFlag | DrawInfoOptionFlag, MagickTrue },
+    { "-box", 1L, ReplacedOptionFlag | ImageInfoOptionFlag | DrawInfoOptionFlag, MagickTrue },
     { "+brightness-contrast", 0L, DeprecateOptionFlag, MagickTrue },
     { "-brightness-contrast", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+cache", 0L, GlobalOptionFlag, MagickFalse },
@@ -237,8 +252,9 @@ static const OptionInfo
     { "-caption", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+cdl", 1L, DeprecateOptionFlag, MagickTrue },
     { "-cdl", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "+channel", 0L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
-    { "-channel", 1L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
+    { "+channel", 0L, ImageInfoOptionFlag, MagickFalse },
+    { "-channel", 1L, ImageInfoOptionFlag, MagickFalse },
+    { "-channel-fx", 1L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+charcoal", 0L, DeprecateOptionFlag, MagickTrue },
     { "-charcoal", 0L, SimpleOperatorOptionFlag, MagickFalse },
     { "+chop", 1L, DeprecateOptionFlag, MagickTrue },
@@ -253,9 +269,9 @@ static const OptionInfo
     { "-clip-path", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+clone", 0L, SpecialOptionFlag, MagickFalse },
     { "-clone", 1L, SpecialOptionFlag, MagickFalse },
-    { "+clut", 0L, FireOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "+clut", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "-clut", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
-    { "+coalesce", 0L, FireOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "+coalesce", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "-coalesce", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+color-matrix", 1L, DeprecateOptionFlag, MagickTrue },
     { "-color-matrix", 1L, SimpleOperatorOptionFlag, MagickFalse },
@@ -264,23 +280,23 @@ static const OptionInfo
     { "+colormap", 0L, NonMagickOptionFlag, MagickFalse },
     { "-colormap", 1L, NonMagickOptionFlag, MagickFalse },
     { "+colors", 1L, DeprecateOptionFlag, MagickTrue },
-    { "-colors", 1L, ImageInfoOptionFlag, MagickFalse },
+    { "-colors", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+colorspace", 0L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
     { "-colorspace", 1L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
-    { "+combine", 0L, FireOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "+combine", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "-combine", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+comment", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-comment", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+compose", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-compose", 1L, ImageInfoOptionFlag, MagickFalse },
-    { "+composite", 0L, FireOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "+composite", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "-composite", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+compress", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-compress", 1L, ImageInfoOptionFlag, MagickFalse },
-    { "+concurrent", 0L, GenesisOptionFlag, MagickTrue },
-    { "-concurrent", 0L, GenesisOptionFlag, MagickTrue },
-    { "+contrast", 0L, SimpleOperatorOptionFlag, MagickFalse },
-    { "-contrast", 0L, SimpleOperatorOptionFlag, MagickFalse },
+    { "+concurrent", 0L, DeprecateOptionFlag, MagickTrue },
+    { "-concurrent", 0L, GenesisOptionFlag, MagickFalse },
+    { "+contrast", 0L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickTrue },
+    { "-contrast", 0L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickTrue },
     { "+contrast-stretch", 1L, DeprecateOptionFlag, MagickTrue },
     { "-contrast-stretch", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+convolve", 1L, DeprecateOptionFlag, MagickTrue },
@@ -289,12 +305,12 @@ static const OptionInfo
     { "-crop", 1L, SimpleOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+cycle", 1L, DeprecateOptionFlag, MagickTrue },
     { "-cycle", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "+debug", 0L, GlobalOptionFlag|GenesisOptionFlag | FireOptionFlag, MagickFalse },
-    { "-debug", 1L, GlobalOptionFlag|GenesisOptionFlag | FireOptionFlag, MagickFalse },
+    { "+debug", 0L, GlobalOptionFlag | FireOptionFlag, MagickFalse },
+    { "-debug", 1L, GlobalOptionFlag | FireOptionFlag, MagickFalse },
     { "+decipher", 1L, DeprecateOptionFlag, MagickTrue },
     { "-decipher", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+deconstruct", 0L, DeprecateOptionFlag, MagickTrue },
-    { "-deconstruct", 0L, ListOperatorOptionFlag | FireOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "-deconstruct", 0L, ReplacedOptionFlag | ListOperatorOptionFlag | FireOptionFlag, MagickTrue },
     { "+define", 1L, ImageInfoOptionFlag, MagickFalse },
     { "-define", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+delay", 0L, ImageInfoOptionFlag, MagickFalse },
@@ -303,8 +319,8 @@ static const OptionInfo
     { "-delete", 1L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+density", 0L, ImageInfoOptionFlag | DrawInfoOptionFlag, MagickFalse },
     { "-density", 1L, ImageInfoOptionFlag | DrawInfoOptionFlag, MagickFalse },
-    { "+depth", 0L, ImageInfoOptionFlag, MagickFalse },
-    { "-depth", 1L, ImageInfoOptionFlag, MagickFalse },
+    { "+depth", 0L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
+    { "-depth", 1L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
     { "+descend", 0L, NonMagickOptionFlag, MagickFalse },
     { "-descend", 1L, NonMagickOptionFlag, MagickFalse },
     { "+deskew", 0L, SimpleOperatorOptionFlag, MagickFalse },
@@ -321,6 +337,8 @@ static const OptionInfo
     { "-dispose", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+dissolve", 0L, NonMagickOptionFlag, MagickFalse },
     { "-dissolve", 1L, NonMagickOptionFlag, MagickFalse },
+    { "+dissimilarity-threshold", 0L, NonMagickOptionFlag | ImageInfoOptionFlag, MagickFalse },
+    { "-dissimilarity-threshold", 1L, NonMagickOptionFlag | ImageInfoOptionFlag, MagickFalse },
     { "+distort", 2L, SimpleOperatorOptionFlag, MagickFalse },
     { "-distort", 2L, SimpleOperatorOptionFlag, MagickFalse },
     { "+dither", 0L, ImageInfoOptionFlag | QuantizeInfoOptionFlag, MagickFalse },
@@ -389,7 +407,7 @@ static const OptionInfo
     { "+gamma", 0L, SimpleOperatorOptionFlag, MagickFalse },
     { "-gamma", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+gaussian", 1L, DeprecateOptionFlag, MagickTrue },
-    { "-gaussian", 1L, SimpleOperatorOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "-gaussian", 1L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickTrue },
     { "+gaussian-blur", 1L, DeprecateOptionFlag, MagickTrue },
     { "-gaussian-blur", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+geometry", 0L, SimpleOperatorOptionFlag, MagickFalse },
@@ -400,8 +418,8 @@ static const OptionInfo
     { "-green-primary", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+hald-clut", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "-hald-clut", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
-    { "+highlight-color", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "-highlight-color", 1L, SimpleOperatorOptionFlag, MagickFalse },
+    { "+highlight-color", 0L, NonMagickOptionFlag | ImageInfoOptionFlag, MagickFalse },
+    { "-highlight-color", 1L, NonMagickOptionFlag | ImageInfoOptionFlag, MagickFalse },
     { "+iconGeometry", 0L, NonMagickOptionFlag, MagickFalse },
     { "-iconGeometry", 1L, NonMagickOptionFlag, MagickFalse },
     { "+iconic", 0L, NonMagickOptionFlag, MagickFalse },
@@ -441,39 +459,39 @@ static const OptionInfo
     { "+level-colors", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "-level-colors", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+limit", 0L, DeprecateOptionFlag, MagickTrue },
-    { "-limit", 2L, GlobalOptionFlag | ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
+    { "-limit", 2L, GlobalOptionFlag | FireOptionFlag, MagickFalse },
     { "+linear-stretch", 1L, DeprecateOptionFlag, MagickTrue },
     { "-linear-stretch", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+liquid-rescale", 1L, DeprecateOptionFlag, MagickTrue },
     { "-liquid-rescale", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+list", 0L, DeprecateOptionFlag, MagickTrue },
-    { "-list", 1L, GlobalOptionFlag | ImageInfoOptionFlag, MagickFalse },
+    { "-list", 1L, SpecialOptionFlag, MagickFalse },
     { "+log", 0L, DeprecateOptionFlag, MagickFalse },
     { "-log", 1L, GlobalOptionFlag, MagickFalse },
     { "+loop", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-loop", 1L, ImageInfoOptionFlag, MagickFalse },
-    { "+lowlight-color", 1L, DeprecateOptionFlag, MagickTrue },
-    { "-lowlight-color", 1L, SimpleOperatorOptionFlag, MagickFalse },
+    { "+lowlight-color", 0L, NonMagickOptionFlag | ImageInfoOptionFlag, MagickFalse },
+    { "-lowlight-color", 1L, NonMagickOptionFlag | ImageInfoOptionFlag, MagickFalse },
     { "+magnify", 0L, NonMagickOptionFlag, MagickFalse },
     { "-magnify", 1L, NonMagickOptionFlag, MagickFalse },
-    { "+map", 0L, ListOperatorOptionFlag | FireOptionFlag | DeprecateOptionFlag, MagickTrue },
-    { "-map", 1L, SimpleOperatorOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "+map", 0L, ReplacedOptionFlag | ListOperatorOptionFlag | FireOptionFlag, MagickTrue },
+    { "-map", 1L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickTrue },
     { "+mask", 0L, SimpleOperatorOptionFlag, MagickFalse },
     { "-mask", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "+matte", 0L, SimpleOperatorOptionFlag | DeprecateOptionFlag, MagickTrue },
-    { "-matte", 0L, SimpleOperatorOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "+matte", 0L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickTrue },
+    { "-matte", 0L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickTrue },
     { "+mattecolor", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-mattecolor", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+maximum", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "-maximum", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "+median", 1L, DeprecateOptionFlag, MagickTrue },
-    { "-median", 1L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
-    { "+metric", 0L, NonMagickOptionFlag, MagickFalse },
-    { "-metric", 1L, NonMagickOptionFlag, MagickFalse },
+    { "-median", 1L, ReplacedOptionFlag | SimpleOperatorOptionFlag | FireOptionFlag, MagickTrue },
+    { "+metric", 0L, ImageInfoOptionFlag, MagickFalse },
+    { "-metric", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+minimum", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "-minimum", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "+mode", 1L, NonMagickOptionFlag, MagickFalse },
-    { "-mode", 1L, SimpleOperatorOptionFlag, MagickFalse },
+    { "-mode", 1L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickTrue },
     { "+modulate", 1L, DeprecateOptionFlag, MagickTrue },
     { "-modulate", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+monitor", 0L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
@@ -493,7 +511,7 @@ static const OptionInfo
     { "+negate", 0L, SimpleOperatorOptionFlag, MagickFalse },
     { "-negate", 0L, SimpleOperatorOptionFlag, MagickFalse },
     { "+noise", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "-noise", 1L, SimpleOperatorOptionFlag, MagickFalse },
+    { "-noise", 1L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
     { "-noop", 0L, SpecialOptionFlag, MagickFalse },
     { "+normalize", 0L, DeprecateOptionFlag, MagickTrue },
     { "-normalize", 0L, SimpleOperatorOptionFlag, MagickFalse },
@@ -503,8 +521,6 @@ static const OptionInfo
     { "-ordered-dither", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+orient", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-orient", 1L, ImageInfoOptionFlag, MagickFalse },
-    { "+origin", 0L, DeprecateOptionFlag, MagickTrue },
-    { "-origin", 1L, DeprecateOptionFlag, MagickTrue },
     { "+page", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-page", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+paint", 0L, DeprecateOptionFlag, MagickTrue },
@@ -513,8 +529,6 @@ static const OptionInfo
     { "-path", 1L, NonMagickOptionFlag, MagickFalse },
     { "+pause", 0L, NonMagickOptionFlag, MagickFalse },
     { "-pause", 1L, NonMagickOptionFlag, MagickFalse },
-    { "+passphrase", 0L, DeprecateOptionFlag, MagickTrue },
-    { "-passphrase", 1L, DeprecateOptionFlag, MagickTrue },
     { "+ping", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-ping", 0L, ImageInfoOptionFlag, MagickFalse },
     { "+pointsize", 0L, ImageInfoOptionFlag | DrawInfoOptionFlag, MagickFalse },
@@ -523,10 +537,10 @@ static const OptionInfo
     { "-polaroid", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+posterize", 1L, DeprecateOptionFlag, MagickTrue },
     { "-posterize", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "+precision", 0L, GlobalOptionFlag, MagickFalse },
-    { "-precision", 1L, GlobalOptionFlag, MagickFalse },
-    { "+preview", 0L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
-    { "-preview", 1L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
+    { "+precision", 0L, ImageInfoOptionFlag, MagickFalse },
+    { "-precision", 1L, ImageInfoOptionFlag, MagickFalse },
+    { "+preview", 0L, DeprecateOptionFlag, MagickTrue },
+    { "-preview", 1L, GlobalOptionFlag, MagickFalse },
     { "+print", 1L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "-print", 1L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+process", 1L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
@@ -547,11 +561,11 @@ static const OptionInfo
     { "-random-threshold", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "-read", 1L, SpecialOptionFlag, MagickFalse },
     { "+recolor", 1L, DeprecateOptionFlag, MagickTrue },
-    { "-recolor", 1L, DeprecateOptionFlag, MagickTrue },
+    { "-recolor", 1L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickTrue },
     { "+red-primary", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-red-primary", 1L, ImageInfoOptionFlag, MagickFalse },
-    { "+regard-warnings", 0L, GenesisOptionFlag, MagickFalse },
-    { "-regard-warnings", 0L, GenesisOptionFlag, MagickFalse },
+    { "+regard-warnings", 0L, ImageInfoOptionFlag, MagickFalse },
+    { "-regard-warnings", 0L, ImageInfoOptionFlag, MagickFalse },
     { "+region", 0L, SpecialOptionFlag, MagickFalse },
     { "-region", 1L, SpecialOptionFlag, MagickFalse },
     { "+remap", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
@@ -566,8 +580,8 @@ static const OptionInfo
     { "-resample", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "+resize", 1L, DeprecateOptionFlag, MagickTrue },
     { "-resize", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "+respect-parenthesis", 0L, SpecialOptionFlag, MagickFalse },
-    { "-respect-parenthesis", 0L, SpecialOptionFlag, MagickFalse },
+    { "+respect-parenthesis", 0L, ImageInfoOptionFlag, MagickFalse },
+    { "-respect-parenthesis", 0L, ImageInfoOptionFlag, MagickFalse },
     { "+reverse", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
     { "-reverse", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+roll", 1L, DeprecateOptionFlag, MagickTrue },
@@ -592,6 +606,7 @@ static const OptionInfo
     { "-scenes", 1L, NonMagickOptionFlag, MagickFalse },
     { "+screen", 0L, NonMagickOptionFlag, MagickFalse },
     { "-screen", 1L, NonMagickOptionFlag, MagickFalse },
+    { "-script", 1L, UndefinedOptionFlag, MagickFalse }, /* special handling */
     { "+seed", 0L, GlobalOptionFlag, MagickFalse },
     { "-seed", 1L, GlobalOptionFlag, MagickFalse },
     { "+segment", 1L, DeprecateOptionFlag, MagickTrue },
@@ -630,7 +645,7 @@ static const OptionInfo
     { "-snaps", 1L, NonMagickOptionFlag, MagickFalse },
     { "+solarize", 1L, DeprecateOptionFlag, MagickTrue },
     { "-solarize", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "+sparse-color", 2L, DeprecateOptionFlag, MagickTrue },
+    { "+sparse-color", 1L, DeprecateOptionFlag, MagickTrue },
     { "-sparse-color", 2L, SimpleOperatorOptionFlag, MagickFalse },
     { "+splice", 1L, DeprecateOptionFlag, MagickTrue },
     { "-splice", 1L, SimpleOperatorOptionFlag, MagickFalse },
@@ -652,8 +667,9 @@ static const OptionInfo
     { "-strokewidth", 1L, ImageInfoOptionFlag | DrawInfoOptionFlag, MagickFalse },
     { "+style", 0L, DrawInfoOptionFlag, MagickFalse },
     { "-style", 1L, DrawInfoOptionFlag, MagickFalse },
-    { "+subimage-search", 0L, NonMagickOptionFlag, MagickFalse },
-    { "-subimage-search", 0L, NonMagickOptionFlag, MagickFalse },
+//  { "+subimage-search", 0L, NonMagickOptionFlag | ImageInfoOptionFlag, MagickFalse },
+//  { "-subimage-search", 0L, NonMagickOptionFlag | ImageInfoOptionFlag, MagickFalse },
+    { "-subimage", 0L, ListOperatorOptionFlag, MagickFalse },
     { "+swap", 0L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "-swap", 1L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
     { "+swirl", 1L, DeprecateOptionFlag, MagickTrue },
@@ -679,10 +695,10 @@ static const OptionInfo
     { "+title", 0L, NonMagickOptionFlag, MagickFalse },
     { "-title", 1L, NonMagickOptionFlag, MagickFalse },
     { "+transform", 0L, DeprecateOptionFlag, MagickTrue },
-    { "-transform", 0L, SimpleOperatorOptionFlag | DeprecateOptionFlag, MagickTrue },
+    { "-transform", 0L, ReplacedOptionFlag | SimpleOperatorOptionFlag, MagickTrue },
     { "+transparent", 1L, SimpleOperatorOptionFlag, MagickFalse },
     { "-transparent", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "+transparent-color", 1L, ImageInfoOptionFlag, MagickFalse },
+    { "+transparent-color", 0L, ImageInfoOptionFlag, MagickFalse },
     { "-transparent-color", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+transpose", 0L, DeprecateOptionFlag, MagickTrue },
     { "-transpose", 0L, SimpleOperatorOptionFlag, MagickFalse },
@@ -716,8 +732,8 @@ static const OptionInfo
     { "-view", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+vignette", 1L, DeprecateOptionFlag, MagickTrue },
     { "-vignette", 1L, SimpleOperatorOptionFlag, MagickFalse },
-    { "+virtual-pixel", 0L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
-    { "-virtual-pixel", 1L, ImageInfoOptionFlag | SimpleOperatorOptionFlag, MagickFalse },
+    { "+virtual-pixel", 0L, ImageInfoOptionFlag, MagickFalse },
+    { "-virtual-pixel", 1L, ImageInfoOptionFlag, MagickFalse },
     { "+visual", 0L, NonMagickOptionFlag, MagickFalse },
     { "-visual", 1L, NonMagickOptionFlag, MagickFalse },
     { "+watermark", 0L, NonMagickOptionFlag, MagickFalse },
@@ -734,8 +750,8 @@ static const OptionInfo
     { "-window", 1L, NonMagickOptionFlag, MagickFalse },
     { "+window-group", 0L, NonMagickOptionFlag, MagickFalse },
     { "-window-group", 1L, NonMagickOptionFlag, MagickFalse },
-    { "+write", 1L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
-    { "-write", 1L, ListOperatorOptionFlag | FireOptionFlag, MagickFalse },
+    { "+write", 1L, SpecialOptionFlag | FireOptionFlag, MagickFalse },
+    { "-write", 1L, SpecialOptionFlag | FireOptionFlag, MagickFalse },
     { (char *) NULL, 0L, UndefinedOptionFlag, MagickFalse }
   },
   ComposeOptions[] =
@@ -772,7 +788,6 @@ static const OptionInfo
     { "DstIn", DstInCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "DstOut", DstOutCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "DstOver", DstOverCompositeOp, UndefinedOptionFlag, MagickFalse },
-    { "Dst", DstCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "Exclusion", ExclusionCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "HardLight", HardLightCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "Hue", HueCompositeOp, UndefinedOptionFlag, MagickFalse },
@@ -807,12 +822,12 @@ static const OptionInfo
     { "SrcIn", SrcInCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "SrcOut", SrcOutCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "SrcOver", SrcOverCompositeOp, UndefinedOptionFlag, MagickFalse },
-    { "Src", SrcCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "VividLight", VividLightCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "Xor", XorCompositeOp, UndefinedOptionFlag, MagickFalse },
     { "Divide", DivideDstCompositeOp, DeprecateOptionFlag, MagickTrue },
     { "Minus", MinusDstCompositeOp, DeprecateOptionFlag, MagickTrue },
     { "Threshold", ThresholdCompositeOp, DeprecateOptionFlag, MagickTrue },
+    { "CopyOpacity", CopyAlphaCompositeOp, UndefinedOptionFlag, MagickTrue },
     { (char *) NULL, UndefinedCompositeOp, UndefinedOptionFlag, MagickFalse }
   },
   CompressOptions[] =
@@ -910,7 +925,6 @@ static const OptionInfo
   },
   DistortOptions[] =
   {
-    { "Undefined", UndefinedDistortion, UndefinedOptionFlag, MagickTrue },
     { "Affine", AffineDistortion, UndefinedOptionFlag, MagickFalse },
     { "AffineProjection", AffineProjectionDistortion, UndefinedOptionFlag, MagickFalse },
     { "ScaleRotateTranslate", ScaleRotateTranslateDistortion, UndefinedOptionFlag, MagickFalse },
@@ -1082,6 +1096,7 @@ static const OptionInfo
     { "filter", FilterInterpolatePixel, UndefinedOptionFlag, MagickFalse },
     { "Integer", IntegerInterpolatePixel, UndefinedOptionFlag, MagickFalse },
     { "Mesh", MeshInterpolatePixel, UndefinedOptionFlag, MagickFalse },
+    { "Nearest", NearestNeighborInterpolatePixel, UndefinedOptionFlag, MagickFalse },
     { "NearestNeighbor", NearestNeighborInterpolatePixel, UndefinedOptionFlag, MagickFalse },
     { "Spline", SplineInterpolatePixel, UndefinedOptionFlag, MagickFalse },
     { (char *) NULL, UndefinedInterpolatePixel, UndefinedOptionFlag, MagickFalse }
@@ -1357,22 +1372,30 @@ static const OptionInfo
   PixelChannelOptions[] =
   {
     { "Undefined", UndefinedPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "A", AlphaPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Alpha", AlphaPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "B", BluePixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Bk", BlackPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Black", BlackPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Blue", BluePixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Cb", CbPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Composite", CompositePixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "C", CyanPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Cr", CrPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Cyan", CyanPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Gray", GrayPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "G", GreenPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Green", GreenPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Index", IndexPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Intensity", IntensityPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "K", BlackPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "M", MagentaPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Magenta", MagentaPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Mask", MaskPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "R", RedPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Red", RedPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Sync", SyncPixelChannel, UndefinedOptionFlag, MagickFalse },
-    { "Y", YPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Y", YellowPixelChannel, UndefinedOptionFlag, MagickFalse },
     { "Yellow", YellowPixelChannel, UndefinedOptionFlag, MagickFalse },
     { (char *) NULL, UndefinedPixelChannel, UndefinedOptionFlag, MagickFalse }
   },
@@ -1504,7 +1527,7 @@ static const OptionInfo
     { "Median", MedianStatistic, UndefinedOptionFlag, MagickFalse },
     { "Minimum", MinimumStatistic, UndefinedOptionFlag, MagickFalse },
     { "Mode", ModeStatistic, UndefinedOptionFlag, MagickFalse },
-    { "Nonpeak", NonpeakStatistic, UndefinedOptionFlag, MagickFalse },
+    { "NonPeak", NonpeakStatistic, UndefinedOptionFlag, MagickFalse },
     { "StandardDeviation", StandardDeviationStatistic, UndefinedOptionFlag, MagickFalse },
     { (char *) NULL, UndefinedMethod, UndefinedOptionFlag, MagickFalse }
   },
@@ -1766,6 +1789,8 @@ MagickExport MagickBooleanType DefineImageOption(ImageInfo *image_info,
 %
 %  DeleteImageOption() deletes an key from the image map.
 %
+%  Returns MagickTrue is the option is found and deleted from the Options.
+%
 %  The format of the DeleteImageOption method is:
 %
 %      MagickBooleanType DeleteImageOption(ImageInfo *image_info,
@@ -2015,7 +2040,7 @@ MagickExport const OptionInfo *GetCommandOptionInfo(const char *value)
   static ssize_t
     table_size = 0;
 
-  register unsigned int
+  register int
     i,l,h;
 
   assert(value != (char *) NULL);
@@ -2029,7 +2054,7 @@ MagickExport const OptionInfo *GetCommandOptionInfo(const char *value)
         if ( LocaleCompare(value,option_info[i].mnemonic) == 0 )
           l=i;
       table_size = i;
-      return( &option_info[(l>=0?l:i)] );
+      return( &option_info[(l>=0)?l:i] );
     }
 
   /* faster binary search of command table, now that its length is known */
@@ -2310,7 +2335,7 @@ MagickExport ssize_t ParseChannelOption(const char *channels)
       case 'A':
       case 'a':
       {
-        channel|=OpacityChannel;
+        channel|=AlphaChannel;
         break;
       }
       case 'B':
@@ -2346,7 +2371,7 @@ MagickExport ssize_t ParseChannelOption(const char *channels)
       case 'o':
       case 'O':
       {
-        channel|=OpacityChannel;
+        channel|=AlphaChannel; /* depreciate */
         break;
       }
       case 'R':
@@ -2502,6 +2527,51 @@ MagickExport ssize_t ParseCommandOption(const CommandOption option_table,
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   P a r s e P i x e l C h a n n e l O p t i o n                             %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ParsePixelChannelOption() parses a string and returns an enumerated pixel
+%  channel type(s).
+%
+%  The format of the ParsePixelChannelOption method is:
+%
+%      ssize_t ParsePixelChannelOption(const char *channels)
+%
+%  A description of each parameter follows:
+%
+%    o channels: One or more channels separated by commas.
+%
+*/
+MagickExport ssize_t ParsePixelChannelOption(const char *channels)
+{
+  char
+    *q,
+    token[MaxTextExtent];
+
+  ssize_t
+    channel;
+
+  GetMagickToken(channels,NULL,token);
+  if ((*token == ';') || (*token == '|'))
+    return(RedPixelChannel);
+  channel=ParseCommandOption(MagickPixelChannelOptions,MagickTrue,token);
+  if (channel >= 0)
+    return(channel);
+  q=(char *) token;
+  channel=InterpretLocaleValue(token,&q);
+  if ((q == token) || (channel < 0) || (channel >= MaxPixelChannels))
+    return(-1);
+  return(channel);
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   R e m o v e I m a g e O p t i o n                                         %
 %                                                                             %
 %                                                                             %