Я пытаюсь добавить приложение истории в оболочку MacPorts.MacPorts в настоящее время использует историю, похожую на bash, в которой история записывается после окончания сеанса.Это может быть проблематично, если сеанс завершится сбоем, поэтому я пытаюсь заставить оболочку MacPorts следовать примеру zsh.Т.е. добавьте каждый элемент истории в файл по мере его выполнения.
В GNU readline, эта функция тривиальна с функцией append_history
. Однако MacPorts полагаетсявместо Apple editline .Кажется, что библиотека editline не имеет эквивалента для append_history
, поэтому я немного растерялся, что делать, чтобы добавить историю в файл.Я думал об использовании старых добрых стандартных функций, таких как fopen
и fprintf
, но я понял, что editline использует свою собственную кодировку для строк истории (например, пробел переводится в восьмеричный \040
).MacPorts должен быть совместим с этой кодировкой, поскольку editline используется в нескольких местах.Я предполагаю, что эта кодировка используется, потому что пробел используется как разделитель истории.
Я мог бы попытаться написать свои собственные функции для совместимости с этой кодировкой, но это кажется чреватым ненужными трудностями.Я чувствую, что, должно быть, чего-то не хватает.Есть ли простой способ добавить историю в файл с правкой?