extracted from abc.{c,h}