aboutsummaryrefslogtreecommitdiff
path: root/cs/readline.cs
blob: 968e6f8e99615137769fa7de7e4cfd44804e32f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System;
using Mono.Terminal; // LineEditor (getline.cs)

namespace Mal {
    public class readline {
        public enum Mode { Terminal, Raw };
        public static Mode mode = Mode.Terminal;

        static LineEditor lineedit = null;

        public static string Readline(string prompt) {
            if (mode == Mode.Terminal) {
                if (lineedit == null) {
                    lineedit = new LineEditor("Mal");
                }
                return lineedit.Edit(prompt, "");
            } else {
                Console.Write(prompt);
                Console.Out.Flush();
                return Console.ReadLine();
            }
        }
    }
}