rem: entry = wMenuAddCallback(menu, title, execCommand, wstrdup(params));
add: entry = wMenuAddCallback(menu, title, execCommand, wstrappend("exec ", params)); entry->free_cdata = free; shortcutOk = True; } } else if (strcmp(command, "SHEXEC")==0) { if (!params) wwarning(_("%s:missing parameter for menu command \"%s\""), file_name, command); else { entry = wMenuAddCallback(menu, title, execCommand, wstrdup(params));
context: addMenuEntry(WMenu *menu, char *title, char *shortcut, char *command,	     char *params, char *file_name){    WScreen *scr;    WMenuEntry *entry = NULL;    Bool shortcutOk = False;    if (!menu)	return NULL;    scr = menu->frame->screen_ptr;    if (strcmp(command, "OPEN_MENU")==0) {	if (!params) {	    wwarning(_("%s:missing parameter for menu command \"%s\""),		     file_name, command);	} else {	    WMenu *dummy;	    char *path;	                path = wfindfile(DEF_CONFIG_PATHS, params);	    if (!path) {		path = wstrdup(params);	    }	    dummy = wMenuCreate(scr, title, False);	    dummy->on_destroy = removeShortcutsForMenu;	    entry = wMenuAddCallback(menu, title, constructMenu, path);	    entry->free_cdata = free;	    wMenuEntrySetCascade(menu, entry, dummy);	}    } else if (strcmp(command, "EXEC")==0) {	if (!params)	    wwarning(_("%s:missing parameter for menu command \"%s\""),		     file_name, command);	else {	    entry = wMenuAddCallback(menu, title, execCommand, wstrdup(params));	    entry->free_cdata = free;	    shortcutOk = True;	}    } else if (strcmp(command, "EXIT")==0) {		if (params && strcmp(params, "QUICK")==0)	    entry = wMenuAddCallback(menu, title, exitCommand, (void*)M_QUICK);	else	    entry = wMenuAddCallback(menu, title, exitCommand, NULL);	shortcutOk = True;    } else if (strcmp(command, "SHUTDOWN")==0) {	    	if (params && strcmp(params, "QUICK")==0)	    entry = wMenuAddCallback(menu, title, shutdownCommand, 				     (void*)M_QUICK);	else	    entry = wMenuAddCallback(menu, title, shutdownCommand, NULL);		shortcutOk = True;    } else if (strcmp(command, "REFRESH")==0) {	entry = wMenuAddCallback(menu, title, refreshCommand, NULL);		shortcutOk = True;    } else if (strcmp(command, "WORKSPACE_MENU")==0) {	entry = addWorkspaceMenu(scr, menu, title);		shortcutOk = True;    } else if (strcmp(command, "ARRANGE_ICONS")==0) {	entry = wMenuAddCallback(menu, title, arrangeIconsCommand, NULL);		shortcutOk = True;    } else if (strcmp(command, "HIDE_OTHERS")==0) {	entry = wMenuAddCallback(menu, title, hideOthersCommand, NULL);		shortcutOk = True;    } else if (strcmp(command, "SHOW_ALL")==0) {	entry = wMenuAddCallback(menu, title, showAllCommand, NULL);		shortcutOk = True;    } else if (strcmp(command, "RESTART")==0) {	entry = wMenuAddCallback(menu, title, restartCommand, 				 params ? wstrdup(params) : NULL);	entry->free_cdata = free;	shortcutOk = True;    } else if (strcmp(command, "SAVE_SESSION")==0) {        entry = wMenuAddCallback(menu, title, saveSessionCommand, NULL);        	shortcutOk = True;    } else if (strcmp(command, "CLEAR_SESSION")==0) {        entry = wMenuAddCallback(menu, title, clearSessionCommand, NULL);	shortcutOk = True;    } else if (strcmp(command, "INFO_PANEL")==0) {	entry = wMenuAddCallback(menu, title, infoPanelCommand, NULL);	shortcutOk = True;    } else if (strcmp(command, "LEGAL_PANEL")==0) {	entry = wMenuAddCallback(menu, title, legalPanelCommand, NULL);	shortcutOk = True;    } else {	wwarning(_("%s:unknown command \"%s\" in menu config."), file_name,		 command);		return NULL;    }        if (shortcut && entry) {	if (!shortcutOk) {	    wwarning(_("%s:can't add shortcut for entry \"%s\""), file_name,		     title);	} else {	    if (addShortcut(file_name, shortcut, menu, entry)) {	      		entry->rtext = GetShortcutString(shortcut);		 /*		entry->rtext = wstrdup(shortcut);		  */	    }	}    }    return entry;}