diff --git a/util/wmmenugen.c b/util/wmmenugen.c index 8dbe4263..437b989b 100644 --- a/util/wmmenugen.c +++ b/util/wmmenugen.c @@ -37,11 +37,16 @@ static int dirParseFunc(const char *filename, const struct stat *st, int tflags, static int menuSortFunc(const void *left, const void *right); static int nodeFindSubMenuByNameFunc(const void *item, const void *cdata); static WMTreeNode *findPositionInMenu(const char *submenu); -static void (*parse)(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)); -static Bool (*validateFilename)(const char *filename, const struct stat *st, int tflags, struct FTW *ftw); + + +typedef void fct_parse_menufile(const char *file, cb_add_menu_entry *addWMMenuEntryCallback); +typedef Bool fct_validate_filename(const char *filename, const struct stat *st, int tflags, struct FTW *ftw); + static WMArray *plMenuNodes; static const char *terminal; +static fct_parse_menufile *parse; +static fct_validate_filename *validateFilename; extern char *__progname; diff --git a/util/wmmenugen.h b/util/wmmenugen.h index 3a60ab2a..6ccefc93 100644 --- a/util/wmmenugen.h +++ b/util/wmmenugen.h @@ -50,6 +50,9 @@ extern WMTreeNode *menu; extern char *env_lang, *env_ctry, *env_enc, *env_mod; +/* Type for the call-back function to add a menu entry to the current menu */ +typedef void cb_add_menu_entry(WMMenuEntry *entry); + /* wmmenu_misc.c */ void parse_locale(const char *what, char **env_lang, char **env_ctry, char **env_enc, char **env_mod); @@ -58,8 +61,8 @@ Bool fileInPath(const char *file); /* implemented parsers */ -void parse_xdg(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)); -void parse_wmconfig(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)); +void parse_xdg(const char *file, cb_add_menu_entry *addWMMenuEntryCallback); +void parse_wmconfig(const char *file, cb_add_menu_entry *addWMMenuEntryCallback); Bool wmconfig_validate_file(const char *filename, const struct stat *st, int tflags, struct FTW *ftw); #endif /* WMMENUGEN_H */ diff --git a/util/wmmenugen_parse_wmconfig.c b/util/wmmenugen_parse_wmconfig.c index 988e69de..95425bc9 100644 --- a/util/wmmenugen_parse_wmconfig.c +++ b/util/wmmenugen_parse_wmconfig.c @@ -47,7 +47,8 @@ static Bool wmc_to_wm(WMConfigMenuEntry **wmc, WMMenuEntry **wm); static void parse_wmconfig_line(char **label, char **key, char **value, const char *line); static void init_wmconfig_storage(WMConfigMenuEntry **wmc); -void parse_wmconfig(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)) + +void parse_wmconfig(const char *file, cb_add_menu_entry *addWMMenuEntryCallback) { FILE *fp; char buf[1024]; diff --git a/util/wmmenugen_parse_xdg.c b/util/wmmenugen_parse_xdg.c index 384f9ee4..fc5f6b19 100644 --- a/util/wmmenugen_parse_xdg.c +++ b/util/wmmenugen_parse_xdg.c @@ -79,7 +79,8 @@ static Bool xdg_to_wm(XDGMenuEntry **xdg, WMMenuEntry **wmentry); static void init_xdg_storage(XDGMenuEntry **xdg); static void init_wm_storage(WMMenuEntry **wm); -void parse_xdg(const char *file, void (*addWMMenuEntryCallback)(WMMenuEntry *aEntry)) + +void parse_xdg(const char *file, cb_add_menu_entry *addWMMenuEntryCallback) { FILE *fp; char buf[1024];