An extensible POSIX-compatible implementation of the ed(1) text editor
git clone https://git.8pit.net/edward.git
1;;> This library provides an abstraction for parsing, representing, and 2;;> operating on [ed addresses][ed addresses]. Conceptually, the library 3;;> distinguishes single addresses and ranges. The latter consisting of a 4;;> start and end address as well as a address separator (as defined in 5;;> POSIX). The [parse-addrs][parse-addrs] procedure returns a list of 6;;> address ranges. The editor implementation is capable of converting 7;;> this list to a pair of line numbers using the [addrlst->lpair][addrlst->lpair] 8;;> procedure. Command implementations expecting a range address receive 9;;> this pair, commands which only expect a single address only receive10;;> the last element of the pair as an argument.11;;>12;;> [parse-addrs]: #parse-addrs13;;> [addrlst->lpair]: edward.ed.editor.html#addrlst->lpair14;;> [ed addresses]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ed.html#tag_20_38_13_021516(define-library (edward.ed.addr)17 (import (scheme base)18 (scheme case-lambda)1920 (srfi 1)21 (srfi 14)2223 (matchable)2425 (edward parse))2627 (export make-addr make-range range? addr->range range->addr28 parse-addrs parse-addr-with-off expand-addr address-separator?)2930 (include "addr.scm"))