core: add %v specifier