"I like the idea of an extended zic notation; this is the sort of thing that I was asking for, expressed more elegantly than I hoped. Can you or someone else volunteer to implement it?" Unfortunately, I don't speak C. I can take it as far as an algorithm, maybe even pseudocode, but will need another person to make working C code of it.