static char * s_collect_name (char **start, int lineno) { char *readptr = *start; while (s_is_namechar ((char) **start)) (*start)++; size_t length = *start - readptr; char *name = (char *) zmalloc (length + 1); memcpy (name, readptr, length); name [length] = 0; if (length > 0 && (name [0] == '/' || name [length - 1] == '/')) { fprintf (stderr, "E: (%d) '/' not valid at name start or end\n", lineno); free (name); } return name; }
static char * s_collect_name (char **start, int lineno) { char *readptr = *start; while (s_is_namechar ((char) **start)) (*start)++; size_t length = *start - readptr; char *name = (char *) zmalloc (length + 1); if (!name) return NULL; memcpy (name, readptr, length); name [length] = 0; if (length > 0 && (name [0] == '/' || name [length - 1] == '/')) { zclock_log ("E (zconfig): (%d) '/' not valid at name start or end", lineno); free (name); name = NULL; } return name; }