command_util.sh: Don't replace newlines by spaces.
[paraslash.git] / command_util.sh
index a71bb65..822cad2 100755 (executable)
@@ -137,12 +137,31 @@ ${line# }"
 
 dump_man()
 {
-       echo ".SS \"$name_txt\""
-       echo "$desc_txt"
-       echo
-       echo "\\fBusage: \\fP$usage_txt"
+       if test $template -eq 0; then
+               echo ".SS \"$name_txt\""
+               echo "$desc_txt"
+               echo
+               echo "\\fBUsage: \\fP$usage_txt"
+       else
+               for member in $template_members; do
+                       local sed_cmd="sed -e s/@member@/$member/g"
+                       local t_name_txt=$(echo $name_txt | $sed_cmd)
+                       echo ".SS \"$t_name_txt\""
+               done
+               echo "$desc_txt"
+               echo
+               echo "\\fBUsage: \\fP"
+               echo
+               echo ".nf"
+               for member in $template_members; do
+                       local sed_cmd="sed -e s/@member@/$member/g"
+                       local t_usage_txt=$(echo $usage_txt | $sed_cmd)
+                       printf "\t$t_usage_txt\n"
+               done
+               echo ".fi"
+       fi
        echo
-       echo "$help_txt"
+       echo "$help_txt" | sed -e 's/^  //'
        echo
        if test -n "$perms_txt"; then
                echo -n "\\fBpermissions:\\fP "
@@ -222,7 +241,7 @@ dump_array_member()
        echo ".description = \"$desc_txt\","
        echo ".usage = \"$usage_txt\","
        echo ".help = "
-       echo "$help_txt" | sed -e 's/^/\"/g' -e 's/$/\\n\"/g'
+       printf "%s\n" "$help_txt" | sed -e 's/^/\"/g' -e 's/$/\\n\"/g'
        echo '},'
 }
 
@@ -244,7 +263,7 @@ template_loop()
                perms_txt=$(echo $t_perms | $sed_cmd)
                desc_txt=$(echo $t_desc | $sed_cmd)
                usage_txt=$(echo $t_usage | $sed_cmd)
-               help_txt=$(echo $t_help | $sed_cmd)
+               help_txt=$(printf "%s" "$t_help" | $sed_cmd)
                prototype=$(echo "$template_prototype" | $sed_cmd)
                $1
        done