docs: def call_spellchecker(cmd, input_text=None, encoding=None):
      """Call spell checker with arguments."""
  
      process = get_process(cmd)
  
      # A buffer has been provided
      if input_text is not None:
          for line in input_text.splitlines():
              # Hunspell truncates lines at `0x1fff` (at least on Windows this has been observed)
              # Avoid truncation by chunking the line on white space and inserting a new line to break it.
              offset = 0
              end = len(line)
              while True:
                  chunk_end = offset + 0x1fff
                  m = None if chunk_end >= end else RE_LAST_SPACE_IN_CHUNK.search(line, offset, chunk_end)
                  if m:
                      chunk_end = m.start(1)
                      chunk = line[offset:m.start(1)]
                      offset = m.end(1)
                  else:
                      chunk = line[offset:chunk_end]
                      offset = chunk_end
                  # Avoid wasted calls to empty strings
                  if chunk and not chunk.isspace():
                      process.stdin.write(chunk + b'\n')
                  if offset >= end:
                      break
  
      return get_process_output(process, encoding)