Skip to content

Commit 981d71b

Browse files
committed
Only escape prompts when used with -e
1 parent 799fdc1 commit 981d71b

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

examples/common.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ std::string process_escapes(const char* input) {
7777
if (input[i] == '\\' && i + 1 < input_len) {
7878
switch (input[++i]) {
7979
case 'n': output.push_back('\n'); break;
80+
case 'r': output.push_back('\r'); break;
8081
case 't': output.push_back('\t'); break;
8182
case '\'': output.push_back('\''); break;
8283
case '\"': output.push_back('\"'); break;
@@ -95,6 +96,8 @@ std::string process_escapes(const char* input) {
9596

9697
bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
9798
bool invalid_param = false;
99+
bool escape_prompt = false;
100+
const char* prompt = nullptr;
98101
std::string arg;
99102
gpt_params default_params;
100103

@@ -118,7 +121,9 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
118121
invalid_param = true;
119122
break;
120123
}
121-
params.prompt = process_escapes(argv[i]);
124+
prompt = argv[i];
125+
} else if (arg == "-e") {
126+
escape_prompt = true;
122127
} else if (arg == "--session") {
123128
if (++i >= argc) {
124129
invalid_param = true;
@@ -335,6 +340,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
335340
gpt_print_usage(argc, argv, default_params);
336341
exit(1);
337342
}
343+
params.prompt = escape_prompt ? process_escapes(prompt) : prompt;
338344

339345
return true;
340346
}
@@ -355,6 +361,7 @@ void gpt_print_usage(int /*argc*/, char ** argv, const gpt_params & params) {
355361
fprintf(stderr, " -t N, --threads N number of threads to use during computation (default: %d)\n", params.n_threads);
356362
fprintf(stderr, " -p PROMPT, --prompt PROMPT\n");
357363
fprintf(stderr, " prompt to start generation with (default: empty)\n");
364+
fprintf(stderr, " -e process prompt escapes sequences (\\n, \\r, \\t, \\', \\\", \\\\)\n");
358365
fprintf(stderr, " --session FNAME file to cache model state in (may be large!) (default: none)\n");
359366
fprintf(stderr, " --random-prompt start with a randomized prompt.\n");
360367
fprintf(stderr, " --in-prefix STRING string to prefix user inputs with (default: empty)\n");

0 commit comments

Comments
 (0)