我试图为ghostscript (casperscript)添加readline支持,除了一个问题外,它似乎正在工作:当输入一个或多个字符时,我退格它们,行完全被擦除,包括提示符,这是由ghostscript在gp_readline被调用之前提供的。我已经找到并添加了rl_already_prompted = (int)true
,但是文档说它要正常工作,提示文本仍然必须作为参数提供给readline
,这看起来会需要很多丑陋,我试图避免。
关于从终端抓取提示符,或者其他更优雅的方法,有什么想法吗?https://github.com/jcomeauictx/casperscript/commit/d5492b72b7515971e5fa2cc9770c75ef7f88330d
使用CPR解决。不是心肺复苏,而是报告光标位置的ANSI转义序列;然后,我创建一个除最后一个">"以外的所有点的提示符,就像Python的继续提示符一样。在实践中,它还没有显示出来,但它可以防止在现有提示符上出现backspacing,这正是我想要的。https://github.com/jcomeauictx/casperscript/commit/a94ddfe37e89ae223cc91401250857d26061b156