added ctype_punct function