rewritten C string handling using my_indefinite_holders