// ed.h

/**
 * query_ed_mode() - 查询当前编辑会话的状态
 *
 * 找出当前对象的编辑会话状态（如果存在）。返回值为：
 * 
 * 0   - 当前对象处于正常的编辑提示（':'）
 * 
 * -1  - 当前对象不在编辑状态
 * 
 * -2  - 当前对象在帮助中处于中间的更多提示
 * 
 * >0  - 当前对象处于处理某一行的提示。数字表示行号。
 *
 */
int query_ed_mode();

/**
 * ed_start() - 开始一个编辑会话
 *
 * 本函数仅在未定义 __OLD_ED__ 时可用。
 * 
 * 内部编辑器启动， optionally 加载 'file' 进行编辑。
 * 返回结果输出。编辑会话保持活跃，可以进一步调用 ed_cmd() 发送命令。
 * 
 * 如果 restricted 为1，则将禁用更改正在编辑的文件的命令。
 * 
 * 每个对象一次只能有一个编辑会话处于活跃状态。
 *
 */
string ed_start(void|string file, void|int restricted);

/**
 * ed_cmd() - 向编辑会话发送命令
 *
 * 本函数仅在未定义 __OLD_ED__ 时可用。
 * 
 * 命令 'cmd' 被发送到活跃的编辑会话，返回相应的输出。
 *
 */
string ed_cmd(string cmd);
