1;;> This library implements a [text editor object][section text-editor]2;;> which tracks an internal state that can be modified through defined3;;> [editor operations][section operations]. These operations operate on4;;> a pair of line numbers. POSIX [ed addresses][edward ed addr] can be5;;> translated to a pair of line numbers using6;;> [address translation][section translation] procedures described below.7;;>8;;> [section text-editor]: #section-text-editor-object9;;> [section operations]: #section-editor-operations10;;> [section translation]: #section-address-translation11;;> [edward ed addr]: edward.ed.addr.html12;;> [range->lpair]: #range->lpair1314(define-library (edward.ed.editor)15 (import (scheme base)16 (scheme file)17 (scheme case-lambda)18 (scheme process-context)1920 (srfi 1)2122 (matchable)23 (posix-regex)2425 (only (chicken process signal) signal-mask!26 signal/quit signal/hup set-signal-handler!)27 (only (chicken port) terminal-port?)2829 (edward util)30 (edward parse)31 (edward buffer)32 (edward ed addr))3334 (export make-text-editor text-editor? text-editor-prevcmd35 text-editor-modified? text-editor-filename36 text-editor-filename-set! text-editor-modified-set!37 text-editor-help? text-editor-help-set!38 text-editor-line text-editor-error39 text-editor-last-cmd-set!)4041 (export editor-start editor-error editor-filename editor-make-regex42 editor-exec-cmdlist editor-mark-line editor-shell-cmd43 editor-xexec editor-exec make-cmd editor-cmd? cmd-args editor-raise44 editor-goto! editor-interactive editor-restr editor-verbose45 editor-reset! editor-get-lnum editor-get-lines editor-in-range?46 editor-undo! editor-lines editor-append! editor-replace!47 editor-join! editor-remove! editor-move! editor-line-numbers48 addr->line range->lpair editor-toggle-prompt! addrlst->lpair)4950 (include "editor.scm"))