private static void Handle_Label ( Shell Dispatch, string[] args, int index) { Label Options = new Label (); var Registry = new Goedel.Registry.Registry (); Options.Portal.Register ("portal", Registry, (int) TagType_Label.Portal); Options.UDF.Register ("udf", Registry, (int) TagType_Label.UDF); #pragma warning disable 162 for (int i = index; i< args.Length; i++) { if (!IsFlag (args [i][0] )) { throw new System.Exception ("Unexpected parameter: " + args[i]);} string Rest = args [i].Substring (1); TagType_Label TagType = (TagType_Label) Registry.Find (Rest); // here have the cases for what to do with it. switch (TagType) { case TagType_Label.Portal : { int OptionParams = Options.Portal.Tag (Rest); if (OptionParams>0 && ((i+1) < args.Length)) { if (!IsFlag (args [i+1][0] )) { i++; Options.Portal.Parameter (args[i]); } } break; } case TagType_Label.UDF : { int OptionParams = Options.UDF.Tag (Rest); if (OptionParams>0 && ((i+1) < args.Length)) { if (!IsFlag (args [i+1][0] )) { i++; Options.UDF.Parameter (args[i]); } } break; } default : throw new System.Exception ("Internal error"); } } #pragma warning restore 162 Dispatch.Label (Options); }