static int processUcsCharOperands (DataFile *file, void *data) { TextTableData *ttd = data; DataOperand string; if (getDataOperand(file, &string, "character string")) { if (string.length == 1) { DataOperand representation; if (getDataOperand(file, &representation, "braille representation")) { if (representation.length == 1) { unsigned char dots; if (testBrailleRepresentation(file, representation.characters[0], &dots)) { if (!setTextTableCharacter(ttd, string.characters[0], dots)) return 0; } } else { reportDataError(file, "multi-cell braille representation not supported"); } } } else { reportDataError(file, "multi-character string not supported"); } } return 1; }
static DATA_OPERANDS_PROCESSOR(processUnicodeCharOperands) { TextTableData *ttd = data; wchar_t character; if (getUnicodeCharacter(file, &character, "character")) { wchar_t representation; if (getUnicodeCharacter(file, &representation, "braille representation")) { unsigned char dots; if (testBrailleRepresentation(file, representation, &dots)) { if (!setTextTableCharacter(ttd, character, dots)) return 0; } } } return 1; }
static int processUnicodeCharOperands (DataFile *file, void *data) { TextTableData *ttd = data; wchar_t character; if (getUnicodeCharacter(file, &character, "character")) { wchar_t representation; if (getUnicodeCharacter(file, &representation, "braille representation")) { unsigned char dots; if (testBrailleRepresentation(file, representation, &dots)) { if (!setTextTableCharacter(ttd, character, dots)) return 0; } } } return 1; }