Hello, I am a student participating in Google Summer of Code, working under FreeBSD. Part of my project this summer is to add features to mdocml so that it can deprecate groff in the FreeBSD core. What I'm trying to do is implement the following roff requests: .ad (adjust margins) .na .it .ns (no-space mode) .rs (no-space mode off) .ti (temporary indent) .ta (tab settings) .hy (hyphenation) .ne .nh .ni .ps Right now I'm working on the requests .ns and .rs. Here's how I figure I will do that: 1) Create a flag that checks for no-space mode 2) in the function roffhash_find, if the no-space flag is on, check if the current roff node has the .sp or .br request and skip to the next node. 3) .rs will simply turn the no-space flag off. I'm not sure if this would be the correct way to implement these, so I was wondering if anyone here had any input. I am assuming the only code I will have to modify is in roff.c. So far all I have added to the code is function stubs for the requests, and temporarily using an int for a no-space flag and a simple if statement in roffhash_find to check if the flag is on/off and if the roff macro is .sp, although that gives me a seg fault right now. Here are links to my project wiki and SVN repository for anyone interested: http://wiki.freebsd.org/SummerOfCode2012/JesseHagewood https://socsvn.freebsd.org/socsvn/soc2012/jhagewood/ Any input or advice would be greatly appreciated. Thanks!