// // aegis - project change supervisor // Copyright (C) 2002-2008, 2012 Peter Miller // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 3 of the License, or (at // your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include static complete_ty *result; static void destructor(command_ty *) { } static void redirect(const char *name) { command_ty *cmd; string_ty *s; s = str_from_c(name); cmd = command_find(s); str_free(s); result = command_completion_get(cmd); } static void aeb(void) { redirect("aeb"); } static void aeca(void) { redirect("aeca"); } static void aecd(void) { redirect("aecd"); } static void aechown(void) { redirect("aechown"); } static void aeclean(void) { redirect("aeclean"); } static void aeclone(void) { redirect("aeclone"); } static void aecp(void) { redirect("aecp"); } static void aecpu(void) { redirect("aecpu"); } static void aedb(void) { redirect("aedb"); } static void aedbu(void) { redirect("aedbu"); } static void aede(void) { redirect("aede"); } static void aedeu(void) { redirect("aedeu"); } static void aed(void) { redirect("aed"); } static void aedn(void) { redirect("aedn"); } static void aeib(void) { redirect("aeib"); } static void aeibu(void) { redirect("aeibu"); } static void aeifail(void) { redirect("aeifail"); } static void aeipass(void) { redirect("aeipass"); } static void aemv(void) { redirect("aemv"); } static void aemvu(void) { redirect("aemvu"); } static void aena(void) { redirect("aena"); } static void aenbr(void) { redirect("aenbr"); } static void aenbru(void) { redirect("aenbru"); } static void aenc(void) { redirect("aenc"); } static void aencu(void) { redirect("aencu"); } static void aend(void) { redirect("aend"); } static void aenf(void) { redirect("aenf"); } static void aenfu(void) { redirect("aenfu"); } static void aeni(void) { redirect("aeni"); } static void aenpr(void) { redirect("aenpr"); } static void aenrls(void) { redirect("aenrls"); } static void aenrv(void) { redirect("aenrv"); } static void aent(void) { redirect("aent"); } static void aentu(void) { redirect("aentu"); } static void aepa(void) { redirect("aepa"); } static void aenpa(void) { redirect("aenpa"); } static void aerpa(void) { redirect("aerpa"); } static void aera(void) { redirect("aera"); } static void aerd(void) { redirect("aerd"); } static void aerm(void) { redirect("aerm"); } static void aermu(void) { redirect("aermu"); } static void aermpr(void) { redirect("aermpr"); } static void aeri(void) { redirect("aeri"); } static void aerrv(void) { redirect("aerrv"); } static void aer(void) { redirect("aer"); } static void aerb(void) { redirect("aerb"); } static void aerbu(void) { redirect("aerbu"); } static void aerfail(void) { redirect("aerfail"); } static void aerpass(void) { redirect("aerpass"); } static void aerpu(void) { redirect("aerpu"); } static void aet(void) { redirect("aet"); } static void aev(void) { redirect("aev"); } static void ael(void) { redirect("ael"); } static void usage(void) { result = complete_nil(); } static complete_ty * completion_get(command_ty *) { static arglex_dispatch_ty dispatch[] = { { arglex_token_build, aeb, 0 }, { arglex_token_change_attributes, aeca, 0 }, { arglex_token_change_directory, aecd, 0 }, { arglex_token_change_owner, aechown, 0 }, { arglex_token_clean, aeclean, 0 }, { arglex_token_clone, aeclone, 0 }, { arglex_token_copy_file, aecp, 0 }, { arglex_token_copy_file_undo, aecpu, 0 }, { arglex_token_develop_begin, aedb, 0 }, { arglex_token_develop_begin_undo, aedbu, 0 }, { arglex_token_develop_end, aede, 0 }, { arglex_token_develop_end_undo, aedeu, 0 }, { arglex_token_difference, aed, 0 }, { arglex_token_delta_name, aedn, 0 }, { arglex_token_integrate_begin, aeib, 0 }, { arglex_token_integrate_begin_undo, aeibu, 0 }, { arglex_token_integrate_fail, aeifail, 0 }, { arglex_token_integrate_pass, aeipass, 0 }, { arglex_token_move_file, aemv, 0 }, { arglex_token_move_file_undo, aemvu, 0 }, { arglex_token_new_administrator, aena, 0 }, { arglex_token_new_branch, aenbr, 0 }, { arglex_token_new_branch_undo, aenbru, 0 }, { arglex_token_new_change, aenc, 0 }, { arglex_token_new_change_undo, aencu, 0 }, { arglex_token_new_developer, aend, 0 }, { arglex_token_new_file, aenf, 0 }, { arglex_token_new_file_undo, aenfu, 0 }, { arglex_token_new_integrator, aeni, 0 }, { arglex_token_new_project, aenpr, 0 }, { arglex_token_new_release, aenrls, 0 }, { arglex_token_new_reviewer, aenrv, 0 }, { arglex_token_new_test, aent, 0 }, { arglex_token_new_test_undo, aentu, 0 }, { arglex_token_project_attributes, aepa, 0 }, { arglex_token_project_alias_create, aenpa, 0 }, { arglex_token_project_alias_remove, aerpa, 0 }, { arglex_token_remove_administrator, aera, 0 }, { arglex_token_remove_developer, aerd, 0 }, { arglex_token_remove_file, aerm, 0 }, { arglex_token_remove_file_undo, aermu, 0 }, { arglex_token_remove_project, aermpr, 0 }, { arglex_token_remove_integrator, aeri, 0 }, { arglex_token_remove_reviewer, aerrv, 0 }, { arglex_token_report, aer, 0 }, { arglex_token_review_begin, aerb, 0 }, { arglex_token_review_begin_undo, aerbu, 0 }, { arglex_token_review_fail, aerfail, 0 }, { arglex_token_review_pass, aerpass, 0 }, { arglex_token_review_pass_undo, aerpu, 0 }, { arglex_token_test, aet, 0 }, // // Then there are the more ambiguous arguments. // These are only considered if none of the above are // present on the command line (help least of all, // because everything has help). // { arglex_token_version, aev, 1 }, { arglex_token_list, ael, 1 }, }; arglex2_retable(0); arglex_dispatch(dispatch, SIZEOF(dispatch), usage); return result; } static command_vtbl_ty vtbl = { destructor, completion_get, sizeof(command_ty), "aegis", }; command_ty * command_aegis() { return command_new(&vtbl); } // vim: set ts=8 sw=4 et :