@@ -173,6 +173,14 @@ def process_options(pkg_version: str, sys_argv: str, option_list=None):
173173 # action="store", type='string',
174174 # help="Write debugger's error output "
175175 # + "(stderr) to FILE")
176+ optparser .add_option (
177+ "--edit-mode" ,
178+ default = "emacs" ,
179+ dest = "edit_mode" ,
180+ type = "string" ,
181+ help = 'input edit mode. This should be either "emacs" or "vi"' ,
182+ )
183+
176184 optparser .add_option (
177185 "-e" ,
178186 "--exec" ,
@@ -347,7 +355,7 @@ def process_options(pkg_version: str, sys_argv: str, option_list=None):
347355 dest = "use_prompt_toolkit" ,
348356 action = "store_true" ,
349357 default = True ,
350- help = "Try using prompt_toolkit" ,
358+ help = "Try using prompt_toolkit. This take precedence over the --gnu-readline option " ,
351359 )
352360 optparser .add_option (
353361 "--no-prompt-toolkit" ,
@@ -367,7 +375,18 @@ def process_options(pkg_version: str, sys_argv: str, option_list=None):
367375 optparser .disable_interspersed_args ()
368376
369377 sys .argv = list (sys_argv )
378+
379+ # Here is where we *parse* arguments
370380 (opts , sys .argv ) = optparser .parse_args (sys_argv [1 :])
381+
382+ if opts .edit_mode not in ("vi" , "emacs" ):
383+ sys .stderr .write (
384+ 'Option --editmode should be either "emacs" or "vi"; assuming "emacs".\n '
385+ f'Got: "{ opts .edit_mode } ".\n '
386+ )
387+ opts .edit_mode = "emacs"
388+
389+
371390 if hasattr (opts , "use_prompt_toolkit" ) and opts .use_prompt_toolkit :
372391 readline = "prompt_toolkit"
373392 elif hasattr (opts , "use_gnu_readline" ) and opts .use_gnu_readline :
@@ -380,6 +399,7 @@ def process_options(pkg_version: str, sys_argv: str, option_list=None):
380399 "interface_opts" : {
381400 "readline" : readline ,
382401 "debugger_name" : "trepan3k" ,
402+ "edit_mode" : opts .edit_mode ,
383403 }
384404 }
385405
0 commit comments