static DATA_OPERANDS_PROCESSOR(processConfigurationOperands) { const ConfigurationFileProcessingData *conf = data; int ok = 1; DataString keyword; if (getDataString(file, &keyword, 0, "configuration directive")) { DataString value; if (getDataString(file, &value, 0, "configuration value")) { char *v = makeUtf8FromWchars(value.characters, value.length, NULL); if (v) { if (!processConfigurationDirective(keyword.characters, v, conf)) ok = 0; free(v); } else { ok = 0; } } else { conf->info->warning = 1; } } else { conf->info->warning = 1; } return ok; }
static void sayWideCharacters (const wchar_t *characters, const unsigned char *attributes, size_t count, int immediate) { size_t length; void *text = makeUtf8FromWchars(characters, count, &length); if (text) { sayUtf8Characters(text, attributes, length, count, immediate); free(text); } else { logMallocError(); } }
static DATA_OPERANDS_PROCESSOR(processPropertyOperands) { const ProfileActivationData *pad = data; int ok = 1; DataString name; if (getDataString(file, &name, 0, "property name")) { DataString value; if (getDataString(file, &value, 0, "property value")) { char *v = makeUtf8FromWchars(value.characters, value.length, NULL); if (v) { if (!processPropertyAssignment(file, &name, &v, pad)) ok = 0; if (v) free(v); } else { ok = 0; } } } return ok; }