📄 gentvals.sh
字号:
#!/bin/sh# Usage: gentvals.sh target type dir files pattern cpptarget=$1type=$2dir=$3# FIXME: Would be nice to process #include's in these files.files=$4pattern=$5cpp=$6# FIXME: need trap to remove tmp files.rm -f tmpvals.list tmpvals.uniqfor f in $filesdo if test -f $dir/$f ; then grep "#define[ ]$pattern" $dir/$f | sed -e "s/^.*#define[ ]\($pattern\)[ ]*\([^ ][^ ]*\).*$/\1/" >> tmpvals.list fidonesort <tmpvals.list | uniq >tmpvals.uniqrm -f tmpvals.hfor f in $filesdo if test -f $dir/$f ; then echo "#include <$f>" >>tmpvals.h fidonecat tmpvals.uniq |while read symdo echo "#ifdef $sym" >>tmpvals.h echo 'DEFVAL { "'$sym'", '$sym ' },' >>tmpvals.h echo "#endif" >>tmpvals.hdoneif test -z "$target"then echo "#ifdef ${type}_defs"else echo "#ifdef NL_TARGET_$target" echo "#ifdef ${type}_defs"fifor f in $filesdo if test -f $dir/$f ; then echo "/* from $f */" fidoneif test -z "$target"then echo "/* begin $type target macros */"else echo "/* begin $target $type target macros */"fi$cpp -I$dir tmpvals.h | grep DEFVAL | sed -e 's/DEFVAL//' -e 's/ / /'if test -z "$target"then echo "/* end $type target macros */" echo "#endif"else echo "/* end $target $type target macros */" echo "#endif" echo "#endif"firm -f tmpvals.list tmpvals.uniq tmpvals.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -