X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=generator%2Fgenerator_fish.ml;h=cdf91718fc96cf2435b94a6bae697016eb341c53;hp=f59c520aba5d20ca5c97291fb6a4426e984dedbd;hb=bb965ded274f911fb5d7889f88db9adaad1d2a52;hpb=4ada0a7815075c9cbe9d8b00da791c105ae739a9 diff --git a/generator/generator_fish.ml b/generator/generator_fish.ml index f59c520..cdf9171 100644 --- a/generator/generator_fish.ml +++ b/generator/generator_fish.ml @@ -48,6 +48,9 @@ let generate_fish_cmds () = pr "#include \n"; pr "\n"; + pr "/* It is safe to call deprecated functions from this file. */\n"; + pr "#undef GUESTFS_WARN_DEPRECATED\n"; + pr "\n"; pr "#include \n"; pr "#include \n"; pr "#include \n"; @@ -76,11 +79,7 @@ let generate_fish_cmds () = (* List of command_entry structs. *) List.iter ( fun (name, _, _, flags, _, shortdesc, longdesc) -> - pr "struct command_entry %s_cmd_entry = {\n" name; - let name2 = replace_char name '_' '-' in - pr " .name = \"%s\",\n" name2; - let aliases = filter_map (function FishAlias n -> Some n | _ -> None) flags in let describe_alias = @@ -89,10 +88,16 @@ let generate_fish_cmds () = (String.concat " or " (List.map (fun s -> "'" ^ s ^ "'") aliases)) else "" in - pr " .shortdesc = \"%s\",\n" shortdesc; - pr " .podbody = %S,\n" - ("=head1 DESCRIPTION\n\n" ^ longdesc ^ describe_alias); + let pod = + sprintf "%s - %s\n\n=head1 DESCRIPTION\n\n%s\n\n%s" + name2 shortdesc longdesc describe_alias in + let text = + String.concat "\n" (pod2text ~trim:false ~discard:false "NAME" pod) + ^ "\n" in + pr "struct command_entry %s_cmd_entry = {\n" name; + pr " .name = \"%s\",\n" name2; + pr " .help = \"%s\",\n" (c_quote text); pr " .run = run_%s\n" name; pr "};\n"; pr "\n"; @@ -100,11 +105,7 @@ let generate_fish_cmds () = List.iter ( fun (name, (_, args, optargs), _, flags, _, shortdesc, longdesc) -> - pr "struct command_entry %s_cmd_entry = {\n" name; - let name2 = replace_char name '_' '-' in - pr " .name = \"%s\",\n" name2; - let aliases = filter_map (function FishAlias n -> Some n | _ -> None) flags in @@ -155,12 +156,16 @@ Guestfish will prompt for these separately." (String.concat " or " (List.map (fun s -> "'" ^ s ^ "'") aliases)) else "" in - pr " .shortdesc = \"%s\",\n" shortdesc; - pr " .podbody = %S,\n" - ("=head1 SYNOPSIS\n\n " ^ synopsis ^ "\n\n" ^ - "=head1 DESCRIPTION\n\n" ^ - longdesc ^ warnings ^ describe_alias); + let pod = + sprintf "%s - %s\n\n=head1 SYNOPSIS\n\n %s\n\n=head1 DESCRIPTION\n\n%s%s%s" + name2 shortdesc synopsis longdesc warnings describe_alias in + let text = + String.concat "\n" (pod2text ~trim:false ~discard:false "NAME" pod) + ^ "\n" in + pr "struct command_entry %s_cmd_entry = {\n" name; + pr " .name = \"%s\",\n" name2; + pr " .help = \"%s\",\n" (c_quote text); pr " .run = run_%s\n" name; pr "};\n"; pr "\n"; @@ -189,7 +194,7 @@ Guestfish will prompt for these separately." pr "\n"; pr " ct = lookup_fish_command (cmd, strlen (cmd));\n"; pr " if (ct) {\n"; - pr " pod2text (ct->entry->name, ct->entry->shortdesc, ct->entry->podbody);\n"; + pr " fputs (ct->entry->help, stdout);\n"; pr " return 0;\n"; pr " }\n"; pr " else\n"; @@ -391,7 +396,7 @@ Guestfish will prompt for these separately." pr " %s = argv[i++];\n" name | Pathname name | Dev_or_Path name -> - pr " %s = resolve_win_path (argv[i++]);\n" name; + pr " %s = win_prefix (argv[i++]); /* process \"win:\" prefix */\n" name; pr " if (%s == NULL) return -1;\n" name | OptString name -> pr " %s = STRNEQ (argv[i], \"\") ? argv[i] : NULL;\n" name; @@ -457,10 +462,12 @@ Guestfish will prompt for these separately." "The Int type in the generator is a signed 31 bit int." in Some (min, max, comment) in let expr = sprintf "&argv[i][%d]" (len+1) in - parse_integer expr "xstrtoll" "long long" "int" range name + parse_integer expr "xstrtoll" "long long" "int" range + (sprintf "optargs_s.%s" n) | Int64 n -> let expr = sprintf "&argv[i][%d]" (len+1) in - parse_integer expr "xstrtoll" "long long" "int64_t" None name + parse_integer expr "xstrtoll" "long long" "int64_t" None + (sprintf "optargs_s.%s" n) | String n -> pr " optargs_s.%s = &argv[i][%d];\n" n (len+1); | _ -> assert false @@ -909,6 +916,8 @@ and generate_fish_prep_options_c () = generate_header CStyle GPLv2plus; pr "\ +#include + #include \"fish.h\" #include \"prepopts.h\"