=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/version.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- src/usr.bin/cvs/version.c 2006/05/27 03:30:31 1.21 +++ src/usr.bin/cvs/version.c 2006/11/14 09:47:52 1.22 @@ -1,65 +1,52 @@ -/* $OpenBSD: version.c,v 1.21 2006/05/27 03:30:31 joris dead $ */ +/* $OpenBSD: version.c,v 1.22 2006/11/14 09:47:52 xsa Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau - * All rights reserved. + * Copyright (c) 2006 Xavier Santolaria * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include "includes.h" #include "cvs.h" #include "log.h" -#include "proto.h" +#include "remote.h" -static int cvs_version_pre_exec(struct cvsroot *); - struct cvs_cmd cvs_cmd_version = { - CVS_OP_VERSION, CVS_REQ_VERSION, "version", + CVS_OP_VERSION, 0, "version", { "ve", "ver" }, "Show current CVS version(s)", "", "", NULL, - 0, - NULL, - cvs_version_pre_exec, - NULL, - NULL, - NULL, - NULL, - 0 + cvs_version }; - -static int -cvs_version_pre_exec(struct cvsroot *root) +int +cvs_version(int argc, char **argv) { - if (root != NULL && root->cr_method != CVS_METHOD_LOCAL) - printf("Client: "); + if (current_cvsroot != NULL && + current_cvsroot->cr_method != CVS_METHOD_LOCAL) + cvs_printf("Client: "); + cvs_printf("%s\n", CVS_VERSION); - if (root != NULL && root->cr_method != CVS_METHOD_LOCAL) { - cvs_printf("Server: %s\n", root->cr_version == NULL ? - "(unknown)" : root->cr_version); + if (current_cvsroot != NULL && + current_cvsroot->cr_method != CVS_METHOD_LOCAL) { + cvs_client_send_request("version"); + /* XXX: better way to handle server response? */ + cvs_printf("Server: "); + cvs_client_get_responses(); } return (0);