diff --git a/dart/bin/pause.dart b/dart/bin/pause.dart index 7be2669..134a14e 100644 --- a/dart/bin/pause.dart +++ b/dart/bin/pause.dart @@ -1,43 +1,18 @@ + import 'dart:io'; -import 'package:libac_dart/utils/IOTools.dart'; -String getKeyPress() { - bool ret = false; - String str = ""; - while (!ret) { - // Disable line mode to capture a single key press without requiring Enter - //stdin.echoMode = false; - //stdin.lineMode = false; +void main(List arguments) { + stdout.write('Press any key to continue...'); - // Read a single byte from stdin - int byte = stdin.readByteSync(); + while (true) { + int charCode = stdin.readByteSync(); // Read a single byte + String char = String.fromCharCode(charCode).toLowerCase(); // Convert byte to character and lowercase it - // Restore line mode and echo mode to default settings - //stdin.echoMode = true; - //stdin.lineMode = true; - - // Return the character representation of the byte - str = String.fromCharCode(byte); - - if (RegExp(r'^[A-Za-z]$').hasMatch(str)) ret = true; + // Check if the input is "Enter" or between 'a' and 'z' + if (charCode == 10 || (char.compareTo('a') >= 0 && char.compareTo('z') <= 0)) { + break; // Exit loop if valid input is received + } } - return str; -} - -Future main() async { - await prnt("\rPress Any Key To Continue..."); - - // Listen for a key press - String key = getKeyPress(); - - // Erase the line by printing a new line - await prnt("\r\n"); - - // Check if the pressed key is 'Z' - if (key.toUpperCase() == 'Z') { - return 1; - } - - return 0; -} + print(''); // Print a newline for formatting +} \ No newline at end of file