rem: } else if (strcmp(cmd, "EXEC")==0 || strcmp(cmd, "OPEN_MENU")==0) {
add: } else if (strcmp(cmd, "EXEC")==0 || strcmp(cmd, "SHEXEC")==0 || strcmp(cmd, "OPEN_MENU")==0) {
context: postProcessMenu(proplist_t menu){    proplist_t pmenu;    proplist_t item;    int i;    int count;    pmenu = PLDeepCopy(menu);    if (PLGetNumberOfElements(pmenu)==1) {	return pmenu;    }    count = PLGetNumberOfElements(pmenu);    for (i=1; i<count; i++) {	char *cmd;	item = PLGetArrayElement(pmenu, i);	if (isMenu(item)) {	    PLInsertArrayElement(pmenu, postProcessMenu(item), i);	    PLRemoveArrayElement(pmenu, i+1);	    PLRelease(item);	} else {	    cmd = getItemCommand(item);	    if (strcmp(cmd, "RESTARTW")==0) {		changeItemCommand(item, "RESTART");		removeParameter(item);	    } else if (strcmp(cmd, "EXEC")==0 || strcmp(cmd, "OPEN_MENU")==0) {		/* do nothing */	    } else if (strcmp(cmd, "RESTART")==0 || strcmp(cmd, "SHUTDOWN")==0		       || strcmp(cmd, "EXIT")==0) {		char *tmp = getItemParameter(item);		if (tmp && strlen(tmp)==0)		    removeParameter(item);	    } else {		removeParameter(item);	    }	}    }    return pmenu;}