rem: sprintf(tmp, "/bin/mkdir %s", themeDir);
add: sprintf(tmp, "/bin/mkdir \"%s\"", themeDir);
context: makeThemePack(proplist_t style, char *themeName){    proplist_t keys;    proplist_t key;    proplist_t value;    int i;    char *themeDir;    themeDir = wmalloc(strlen(themeName)+50);    sprintf(themeDir, "%s.themed", themeName);    ThemePath = themeDir;    {	char *tmp;		tmp = wmalloc(strlen(themeDir)+20);	sprintf(tmp, "/bin/mkdir %s", themeDir);	if (system(tmp)!=0) {	    printf("%s: could not create directory %s. Probably there's already a theme with that name in this directory.\n", ProgName, themeDir);	    exit(1);	}	free(tmp);    }    keys = PLGetAllDictionaryKeys(style);    for (i = 0; i < PLGetNumberOfElements(keys); i++) {	key = PLGetArrayElement(keys, i);	value = PLGetDictionaryEntry(style, key);	if (value && PLIsArray(value) && PLGetNumberOfElements(value) > 2) {	    proplist_t type;	    char *t;	    type = PLGetArrayElement(value, 0);	    t = PLGetString(type);	    if (t && (strcasecmp(t, "tpixmap")==0		      || strcasecmp(t, "spixmap")==0		      || strcasecmp(t, "cpixmap")==0		      || strcasecmp(t, "mpixmap")==0		      || strcasecmp(t, "tdgradient")==0		      || strcasecmp(t, "tvgradient")==0		      || strcasecmp(t, "thgradient")==0)) {		proplist_t file;		char *p;		char *newPath;		file = PLGetArrayElement(value, 1);		p = strrchr(PLGetString(file), '/');		if (p) {		    copyFile(themeDir, PLGetString(file));		    newPath = wstrdup(p+1);		    PLRemoveArrayElement(value, 1);		    PLInsertArrayElement(value, PLMakeString(newPath), 1);		    free(newPath);		} else {		    findCopyFile(themeDir, PLGetString(file));		}	    }	}    }    return themeDir;}