示例#1
0
		internal static void DisplayCommandEntryDebug (CommandTableEntry* entry)
		{
			const int tempBufferSIZE = 30;
			byte* tempBuffer = stackalloc byte[tempBufferSIZE];

			ADC.TextMode.WriteLine ("Dumping CommandTableEntry:");
			if (entry == null) {
				ADC.TextMode.Write (" Pointer Address: ");
				Convert.ToString ((int)entry, true, tempBuffer, tempBufferSIZE, 0);
				ADC.TextMode.Write (tempBuffer);
				ADC.TextMode.WriteLine (" (NULL!)");
			}
			else {
				ADC.TextMode.Write (" Pointer Address: ");
				Convert.ToString ((int)entry, true, tempBuffer, tempBufferSIZE, 0);
				ADC.TextMode.WriteLine (tempBuffer);
			}

			ADC.TextMode.Write (" Name: \"");
			ADC.TextMode.Write (entry->name);
			ADC.TextMode.Write ("\" @ ");
			Convert.ToString ((int)entry->name, true, tempBuffer, tempBufferSIZE, 0);
			ADC.TextMode.WriteLine (tempBuffer);

			ADC.TextMode.Write (" Description: \"");
			ADC.TextMode.Write (entry->shortDescription);
			ADC.TextMode.Write ("\" @ ");
			Convert.ToString ((int)entry->shortDescription, true, tempBuffer, tempBufferSIZE, 0);
			ADC.TextMode.WriteLine (tempBuffer);

			ADC.TextMode.Write (" Execute() @ ");
			Convert.ToString ((int)entry->func_Execute, true, tempBuffer, tempBufferSIZE, 0);
			ADC.TextMode.Write (tempBuffer);
			ADC.TextMode.Write ("; GetHelp() @ ");
			Convert.ToString ((int)entry->func_GetHelp, true, tempBuffer, tempBufferSIZE, 0);
			ADC.TextMode.WriteLine (tempBuffer);

			ADC.TextMode.Write (" nextEntry @ ");
			Convert.ToString ((int)entry->nextEntry, true, tempBuffer, tempBufferSIZE, 0);
			ADC.TextMode.WriteLine (tempBuffer);
		}
示例#2
0
		public void AddEntry (CommandTableEntry* entry)
		{
			if (entry == null)
				Diagnostics.Message ("CommandTableHeader::AddEntry(CommandTableEntry*): Parameter 'entry' is null");

			if (firstEntry == null) {
				firstEntry = entry;

				entry->nextEntry = null;
				return;

			}
			else {
				CommandTableEntry* currentEntry = null;
				for (currentEntry = firstEntry;
					currentEntry->nextEntry != null;
					currentEntry = currentEntry->nextEntry) {
				}
				currentEntry->nextEntry = entry;
				entry->nextEntry = null;

				//CommandTableEntry* currentEntry = this.firstEntry;
				//for ( ;
				//    currentEntry->nextEntry != null || currentEntry->nextEntry->name->Compare(currentEntry->name) > 0;
				//    currentEntry = currentEntry->nextEntry)
				//{
				//}
				//if (currentEntry->nextEntry == null)
				//{
				//    currentEntry->nextEntry = entry;
				//    entry->nextEntry = null;
				//}
				//else
				//{
				//    CommandTableEntry* nextEntry = currentEntry->nextEntry;
				//    currentEntry->nextEntry = entry;
				//    entry->nextEntry = nextEntry;
				//}

				return;
			}
		}