addSpace = FALSE;
addSpace = false;
VarModify(str, modProc, datum)    char	  *str; 	/* String whose words should be trimmed */				/* Function to use to modify them */    Boolean	  (*modProc)(struct Name *, Boolean, Buffer, void *);    void	  *datum;	/* Datum to pass it */{    BUFFER	  buf;		/* Buffer for the new string */    Boolean	  addSpace;	/* TRUE if need to add a space to the				 * buffer before adding the trimmed				 * word */    struct Name	  word;    Buf_Init(&buf, 0);    addSpace = FALSE;    word.e = str;    while ((word.s = iterate_words(&word.e)) != NULL) {    	char termc;	termc = *word.e;	*((char *)(word.e)) = '\0';	addSpace = (*modProc)(&word, addSpace, &buf, datum);	*((char *)(word.e)) = termc;    }    return Buf_Retrieve(&buf);}