AT:)
array_type="$value"
;;
+ SI:)
+ for i in $value; do
+ system_includes="$system_includes
+#include <$i.h>"
+ done
+ ;;
IN:)
for i in $value; do
includes="$includes
usage_txt=""
help_txt=""
perms_txt=""
- line_handler=0
template=0
template_name=""
template_prototype=""
D:)
desc_txt="$value"
;;
- L:)
- line_handler=1
- ;;
U:)
usage_txt="$value"
;;
local t_name_txt=$(echo $name_txt | $sed_cmd)
echo ".SS \"$t_name_txt\""
done
- echo "$desc_txt"
+ echo "$desc_txt" | sed -e "s/@member@/{$(echo $template_members | sed -e 's/ / | /g')}/g"
echo
echo "\\fBUsage: \\fP"
echo
echo '/**'
echo " * $desc_txt"
echo ' *'
- echo ' * \param fd The file descriptor to send output to.'
- if test $line_handler -eq 0; then
- echo ' * \param argc The number of arguments.'
- echo ' * \param argv The argument vector.'
- else
- echo ' * \param cmdline The full command line.'
- fi
- echo ' * '
echo " * Usage: $usage_txt"
echo ' * '
echo "$help_txt" | sed -e 's/^/ * /g'
dump_array_member()
{
+ local TAB=' '
echo '{'
echo ".name = \"$name_txt\","
- if test $line_handler -eq 0; then
- echo ".handler = com_$name_txt,"
- else
- echo ".handler = NULL,"
- echo ".line_handler = com_$name_txt,"
- fi
+ echo ".handler = com_$name_txt,"
if test -n "$perms_txt"; then
echo ".perms = $perms_txt,"
fi
echo ".description = \"$desc_txt\","
echo ".usage = \"$usage_txt\","
echo ".help = "
- printf "%s\n" "$help_txt" | sed -e 's/^/\"/g' -e 's/$/\\n\"/g'
+ printf "%s\n" "$help_txt" | sed -e 's/^/\"/g' -e 's/$/\\n\"/g' \
+ -e "s/$TAB/\\\t/g"
echo '},'
}
+dump_completion()
+{
+ echo " {.name = \"$name_txt\", .completer = ${name_txt}_completer}, \\"
+}
template_loop()
{
for member in $template_members; do
local sed_cmd="sed -e s/@member@/$member/g"
#echo "sed_cmd: $sed_cmd"
- name_txt=$(echo $t_name | $sed_cmd)
+ name_txt=$(echo "$t_name" | $sed_cmd)
#name_txt="$tname"
- perms_txt=$(echo $t_perms | $sed_cmd)
- desc_txt=$(echo $t_desc | $sed_cmd)
- usage_txt=$(echo $t_usage | $sed_cmd)
- help_txt=$(printf "%s" "$t_help" | $sed_cmd)
+ perms_txt=$(echo "$t_perms" | $sed_cmd)
+ desc_txt=$(echo "$t_desc" | $sed_cmd)
+ usage_txt=$(echo "$t_usage" | $sed_cmd)
+ help_txt=$(printf "%s\n" "$t_help" | $sed_cmd)
prototype=$(echo "$template_prototype" | $sed_cmd)
$1
done
com_c_file()
{
echo "/** \file $output_file.c $c_file_comment */"
+ echo "$system_includes"
echo "$includes"
echo "struct $array_type $array_name[] = {"
while : ; do
done
}
+com_completion()
+{
+
+ echo "#define $1 \\"
+ while : ; do
+ read_one_command
+ if test $ret -lt 0; then
+ exit 1
+ fi
+ if test $ret -eq 0; then
+ break
+ fi
+ if test $template -eq 0; then
+ dump_completion
+ continue
+ fi
+ template_loop dump_completion
+ done
+ echo
+}
+
read_header
arg="$1"
shift
"man")
com_man $*
;;
+ "compl")
+ com_completion $*
+ ;;
esac