Is checking fgetws result unnecessary?
    
    
    proc consoleReadLine*(line: var string): bool =
      let buffer = newWideCString("", 256)
      result = fgetws(buffer, 256, stdin)
      if result:
        let length = buffer.len
        if length > 0 and buffer[length - 1].int16 == 10:  #discard '\n'
          buffer[length - 1] = Utf16Char(0)
          # discard extra '\n' in waiting:
          let buffer2 = newWideCString("", 2)
          discard fgetws(buffer2, 2, stdin)
        line = $buffer
      else:
        line = ""
    
    
    Run

Reply via email to