convertMenksoftToUnicode function

String convertMenksoftToUnicode(
  1. String inputString
)

Implementation

String convertMenksoftToUnicode(String inputString) {
  if (inputString.isEmpty) return '';

  final outputString = <int>[];
  final menksoftWord = <int>[];

  // Loop through characters in string
  final length = inputString.length;
  for (var i = 0; i < length; i++) {
    final codeUnit = inputString.codeUnitAt(i);
    if (_isMenksoft(codeUnit) && !Menksoft.isSpace(codeUnit)) {
      menksoftWord.add(codeUnit);
      continue;
    }

    if (menksoftWord.isNotEmpty) {
      _appendMenksoftWord(outputString, menksoftWord);
      menksoftWord.clear();
    }

    // A space starts a new Mongol word but is not itself a Mongol char
    if (Menksoft.isSpace(codeUnit)) {
      menksoftWord.add(codeUnit);
      continue;
    }

    // non-Menksoft character
    outputString.add(codeUnit);
  }

  // Add any final substring
  if (menksoftWord.isNotEmpty) {
    _appendMenksoftWord(outputString, menksoftWord);
  }

  return String.fromCharCodes(outputString);
}