xref: /haiku/src/apps/debugger/user_interface/cli/commands/CliQuitCommand.cpp (revision 1e60bdeab63fa7a57bc9a55b032052e95a18bd2c)
1 /*
2  * Copyright 2012, Ingo Weinhold, ingo_weinhold@gmx.de.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 
7 #include "CliQuitCommand.h"
8 
9 #include <String.h>
10 
11 #include "CliContext.h"
12 
13 
14 CliQuitCommand::CliQuitCommand()
15 	:
16 	CliCommand("quit Debugger",
17 		"%s\n"
18 		"Quits Debugger.")
19 {
20 }
21 
22 
23 void
24 CliQuitCommand::Execute(int argc, const char* const* argv, CliContext& context)
25 {
26 	// Ask the user what to do with the debugged team.
27 	printf("Kill or resume the debugged team?\n");
28 	for (;;) {
29 		const char* line = context.PromptUser("(k)ill, (r)esume, (c)ancel? ");
30 		if (line == NULL)
31 			return;
32 
33 		BString trimmedLine(line);
34 		trimmedLine.Trim();
35 
36 		if (trimmedLine == "k") {
37 			context.QuitSession(true);
38 			break;
39 		}
40 
41 		if (trimmedLine == "r") {
42 			context.QuitSession(false);
43 			break;
44 		}
45 
46 		if (trimmedLine == "c")
47 			break;
48 	}
49 }
50