bool DirectiveString(ArgumentList& List, int flags) { ArgumentList NewList; if (Global.Table.isLoaded() == false) { Logger::printError(Logger::Error,L"No table opened"); return false; } for (size_t i = 0; i < List.size(); i++) { if (List[i].isString) { ByteArray data = Global.Table.encodeString(List[i].text,false); if (data.size() == 0 && List[i].text.size() != 0) { Logger::printError(Logger::Error,L"Failed to encode string"); return false; } for (int i = 0; i < data.size(); i++) { wchar_t str[32]; swprintf(str,32,L"0x%02X",data[i]); NewList.add(str,false); } } else { NewList.add(List[i].text,false); } } if ((flags & DIRECTIVE_STR_NOTERMINATION) == 0) { ByteArray data = Global.Table.encodeTermination(); for (int i = 0; i < data.size(); i++) { wchar_t str[32]; swprintf(str,32,L"0x%02X",data[i]); NewList.add(str,false); } } CDirectiveData* Data = new CDirectiveData(NewList,1,false); AddAssemblerCommand(Data); return true; }