auto generate uicb list

This commit is contained in:
Julien Danjou 2008-01-15 16:52:30 +01:00
parent 6a6fb58b9c
commit 135c418275
4 changed files with 26 additions and 51 deletions

View File

@ -61,6 +61,13 @@ defconfig.h: awesomerc
@$(SED) 's,\\,\\\\,g;s/$$/ \\/;s/"/\\"/g' "awesomerc" >> defconfig.h @$(SED) 's,\\,\\\\,g;s/$$/ \\/;s/"/\\"/g' "awesomerc" >> defconfig.h
@echo "\"" >> defconfig.h @echo "\"" >> defconfig.h
CLEANFILES += uicbgen.h
BUILT_SOURCES += uicbgen.h
EXTRA_DIST += uicbgen.sh
uicbgen.h: $(awesome_SOURCES)
@echo "generating uicbgen.h from headers file"
@$(top_srcdir)/uicbgen.sh > $(top_srcdir)/uicbgen.h
if USING_GCC if USING_GCC
# If you are using gcc, and want to deactivate this default set of # If you are using gcc, and want to deactivate this default set of
# compile flags, run make with AWESOME_CFLAGS="". # compile flags, run make with AWESOME_CFLAGS="".

51
uicb.c
View File

@ -33,56 +33,7 @@
extern AwesomeConf globalconf; extern AwesomeConf globalconf;
const name_func_link_t UicbList[] = #include "uicbgen.h"
{
/* xutil.c */
{"spawn", uicb_spawn},
{"exec", uicb_exec},
/* client.c */
{"client_kill", uicb_client_kill},
{"client_moveresize", uicb_client_moveresize},
{"client_settrans", uicb_client_settrans},
{"client_swapnext", uicb_client_swapnext},
{"client_swapprev", uicb_client_swapprev},
/* tag.c */
{"client_tag", uicb_client_tag},
{"client_togglefloating", uicb_client_togglefloating},
{"tag_toggleview", uicb_tag_toggleview},
{"client_toggletag", uicb_client_toggletag},
{"tag_view", uicb_tag_view},
{"tag_viewprev_selected", uicb_tag_prev_selected},
{"tag_viewprev", uicb_tag_viewprev},
{"tag_viewnext", uicb_tag_viewnext},
{"tag_create", uicb_tag_create},
/* layout.c */
{"tag_setlayout", uicb_tag_setlayout},
{"client_focusnext", uicb_client_focusnext},
{"client_focusprev", uicb_client_focusprev},
{"client_togglemax", uicb_client_togglemax},
{"client_toggleverticalmax", uicb_client_toggleverticalmax},
{"client_togglehorizontalmax", uicb_client_togglehorizontalmax},
{"client_zoom", uicb_client_zoom},
/* layouts/tile.c */
{"tag_setmwfact", uicb_tag_setmwfact},
{"tag_setnmaster", uicb_tag_setnmaster},
{"tag_setncol", uicb_tag_setncol},
/* screen.c */
{"screen_focus", uicb_screen_focus},
{"client_movetoscreen", uicb_client_movetoscreen},
/* awesome.c */
{"quit", uicb_quit},
/* statusbar.c */
{"statusbar_toggle", uicb_statusbar_toggle},
/* mouse.c */
{"client_movemouse", uicb_client_movemouse},
{"client_resizemouse", uicb_client_resizemouse},
/* focus.c */
{"focus_history", uicb_focus_history},
{"focus_client_byname", uicb_focus_client_byname},
/* widgets.c */
{"widget_tell", uicb_widget_tell},
{NULL, NULL}
};
static int static int
run_uicb(char *cmd) run_uicb(char *cmd)

17
uicbgen.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/sh
echo "/* This file is autogenerated by" $(basename $0) "*/"
echo
echo "const name_func_link_t UicbList[] ="
echo "{"
for file in *.h layouts/*.h
do
echo " /* $file */"
grep '^Uicb uicb_' $file | cut -d' ' -f2 | cut -d\; -f1 | while read uicb
do
shortname=$(echo $uicb | cut -d _ -f2-)
echo " {\"$shortname\", $uicb},"
done
done
echo " {NULL, NULL}"
echo "};"