+
+ List.iter (
+ fun (name, style, _, flags, _, shortdesc, longdesc) ->
+ let name2 = replace_char name '_' '-' in
+ let aliases =
+ filter_map (function FishAlias n -> Some n | _ -> None) flags in
+ let describe_alias =
+ if aliases <> [] then
+ sprintf "\n\nYou can use %s as an alias for this command."
+ (String.concat " or " (List.map (fun s -> "'" ^ s ^ "'") aliases))
+ else "" in
+
+ pr " if (";
+ pr "STRCASEEQ (cmd, \"%s\")" name;
+ if name <> name2 then
+ pr " || STRCASEEQ (cmd, \"%s\")" name2;
+ List.iter (
+ fun alias ->
+ pr " || STRCASEEQ (cmd, \"%s\")" alias
+ ) aliases;
+ pr ") {\n";
+ pr " pod2text (\"%s\", _(\"%s\"), %S);\n"
+ name2 shortdesc
+ ("=head1 DESCRIPTION\n\n" ^
+ longdesc ^ describe_alias);
+ pr " return 0;\n";
+ pr " }\n";
+ pr " else\n"
+ ) fish_commands;
+