- size_t destpos, srcpos;
- /* E.g., 2 characters, "", would require 7, "\"\""\0. */
- char *tmp = malloc (2*len+3);
-
- for (destp = tmp, srcp = name, destpos = 0, srcpos = 0;
- *srcp;
- ++destp, ++srcp, ++destpos, ++srcpos) {
- if (srcpos == 0) {
+ /* Maximum space requirement would be if each character had
+ to be escaped, plus enclosing double quotes, plus null termintor.
+ E.g., 2 characters, "", would require 7, "\"\""0, where that 0
+ is '\0'. */
+ char *tmp = mh_xmalloc (2*strlen(name) + 3);
+
+ for (destp = tmp, srcp = name; *srcp; ++srcp) {
+ if (srcp == name) {