Table of Contents

Project Title

BSD-licensed Text-Processing Tools


Project Description

Merge the latest version of mdocml (ISC licensed) from the ports into the FreeBSD system base, and configure it as a replacement for the GNU roff (groff) tool set (this would aditionally involve a rewrite of man). There are FreeBSD replacements for sort and diff in ports (also from a GSoC project), but they are lacking features from their GNU counterparts. I will pick up and complete these, possibly borrowing/porting from one of the other BSD projects when possible. Benchmarking the new tools and ensuring they scale appropriately when compared to their GNU counterparts is highly desired, and I would like to try to confirm the mdocml author's assertion that it should be noticeably faster than groff.


Deliverables

A feature-complete (including wide character support) BSD-licensed replacement for:


General TODOs


Project Schedule / Milestones









==Status Report==

diff

Item Status Notes
Missing –speed-large-files INCOMPLETE Argument is accepted, but makes no functional change
Missing –ignore-file-name-case COMPLETED
Missing –no-ignore-file-name-case COMPLETED
Missing –strip-trailing-cr COMPLETED
Missing –normal COMPLETED
Missing –tabsize INCOMPLETE
Missing –unidirectional-new-file COMPLETED
Missing –from-file COMPLETED
Missing –to-file COMPLETED
Missing –help COMPLETED
Missing –ignore-blank-lines INCOMPLETE
Missing –ignore-tab-expansion INCOMPLETE
Missing -v / –version COMPLETED
Eliminate warnings COMPLETED
Comment the code INCOMPLETE
Check GNU compatibility INCOMPLETE
Check POSIX conformance COMPLETED
Missing –line-format options INCOMPLETE regex support is available
Missing –group-format options INCOMPLETE
Missing –group-format

sdiff

Base version ported from OpenBSD

Item Status Notes
Fix -c99 build warnings/errors COMPLETE
Combine diff-specific args and pipe to diff process INCOMPLETE

diff3

Base version ported from OpenBSD

Item Status Notes
Replaced ksh script with sh COMPLETED
-i flag COMPLETED
-T flag COMPLETED
-a flag COMPLETED
–show-all option INCOMPLETE
–easy-only INCOMPLETE
–merge INCOMPLETE
–label INCOMPLETE
–strip-trailing-cr INCOMPLETE
–diff-program INCOMPLETE
–version INCOMPLETE
–help INCOMPLETE

mandoc

Complemented Ulrich Spoerlein's progress: system makefiles have been modified to build mandoc instead of groff and use Gordon Tetlow's modified man.sh when WITH_MANDOC specified in /etc/make.conf .

Remaining items TODO: