rem: help();
add: printf("%s: invalid argument format\n", ProgName); printf("Try '%s --help' for more information\n", ProgName); exit(1);
context: int main(int argc, char **argv){    char path[256];    proplist_t dom, key, value, dict;    char *gsdir;        ProgName = argv[0];    if (argc<4) {	help();    }        dom = PLMakeString(argv[1]);    key = PLMakeString(argv[2]);    value = PLGetProplistWithDescription(argv[3]);    if (!value) {	printf("%s:syntax error in value \"%s\"", ProgName, argv[3]);	exit(1);    }    gsdir = getenv("GNUSTEP_USER_ROOT");    if (gsdir) {	strcpy(path, gsdir);    } else {	strcpy(path, gethomedir());	strcat(path, "/GNUstep");    }    strcat(path, "/");    strcat(path, DEFAULTS_DIR);    strcat(path, "/");    strcat(path, argv[1]);    dict = PLGetProplistWithPath(path);    if (!dict) {	dict = PLMakeDictionaryFromEntries(key, value, NULL);	PLSetFilename(dict, PLMakeString(path));    } else {	PLRemoveDictionaryEntry(dict, key);	PLInsertDictionaryEntry(dict, key, value);    }        PLSave(dict, YES);	    return 0;}