@@ -77,6 +77,7 @@ std::string process_escapes(const char* input) {
77
77
if (input[i] == ' \\ ' && i + 1 < input_len) {
78
78
switch (input[++i]) {
79
79
case ' n' : output.push_back (' \n ' ); break ;
80
+ case ' r' : output.push_back (' \r ' ); break ;
80
81
case ' t' : output.push_back (' \t ' ); break ;
81
82
case ' \' ' : output.push_back (' \' ' ); break ;
82
83
case ' \" ' : output.push_back (' \" ' ); break ;
@@ -95,6 +96,8 @@ std::string process_escapes(const char* input) {
95
96
96
97
bool gpt_params_parse (int argc, char ** argv, gpt_params & params) {
97
98
bool invalid_param = false ;
99
+ bool escape_prompt = false ;
100
+ const char * prompt = nullptr ;
98
101
std::string arg;
99
102
gpt_params default_params;
100
103
@@ -118,7 +121,9 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
118
121
invalid_param = true ;
119
122
break ;
120
123
}
121
- params.prompt = process_escapes (argv[i]);
124
+ prompt = argv[i];
125
+ } else if (arg == " -e" ) {
126
+ escape_prompt = true ;
122
127
} else if (arg == " --session" ) {
123
128
if (++i >= argc) {
124
129
invalid_param = true ;
@@ -335,6 +340,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
335
340
gpt_print_usage (argc, argv, default_params);
336
341
exit (1 );
337
342
}
343
+ params.prompt = escape_prompt ? process_escapes (prompt) : prompt;
338
344
339
345
return true ;
340
346
}
@@ -355,6 +361,7 @@ void gpt_print_usage(int /*argc*/, char ** argv, const gpt_params & params) {
355
361
fprintf (stderr, " -t N, --threads N number of threads to use during computation (default: %d)\n " , params.n_threads );
356
362
fprintf (stderr, " -p PROMPT, --prompt PROMPT\n " );
357
363
fprintf (stderr, " prompt to start generation with (default: empty)\n " );
364
+ fprintf (stderr, " -e process prompt escapes sequences (\\ n, \\ r, \\ t, \\ ', \\\" , \\\\ )\n " );
358
365
fprintf (stderr, " --session FNAME file to cache model state in (may be large!) (default: none)\n " );
359
366
fprintf (stderr, " --random-prompt start with a randomized prompt.\n " );
360
367
fprintf (stderr, " --in-prefix STRING string to prefix user inputs with (default: empty)\n " );
0 commit comments