=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/version.c,v retrieving revision 1.21 retrieving revision 1.22 diff -c -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 **** ! /* $OpenBSD: version.c,v 1.21 2006/05/27 03:30:31 joris dead $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau ! * All rights reserved. * ! * Redistribution and use in source and binary forms, with or without ! * modification, are permitted provided that the following conditions ! * are met: * ! * 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. */ #include "includes.h" #include "cvs.h" #include "log.h" ! #include "proto.h" - static int cvs_version_pre_exec(struct cvsroot *); - struct cvs_cmd cvs_cmd_version = { ! CVS_OP_VERSION, CVS_REQ_VERSION, "version", { "ve", "ver" }, "Show current CVS version(s)", "", "", NULL, ! 0, ! NULL, ! cvs_version_pre_exec, ! NULL, ! NULL, ! NULL, ! NULL, ! 0 }; ! ! static int ! cvs_version_pre_exec(struct cvsroot *root) { ! if (root != NULL && root->cr_method != CVS_METHOD_LOCAL) ! 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); } return (0); --- 1,52 ---- ! /* $OpenBSD: version.c,v 1.22 2006/11/14 09:47:52 xsa Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau ! * Copyright (c) 2006 Xavier Santolaria * ! * 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. * ! * 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 "remote.h" struct cvs_cmd cvs_cmd_version = { ! CVS_OP_VERSION, 0, "version", { "ve", "ver" }, "Show current CVS version(s)", "", "", NULL, ! cvs_version }; ! int ! cvs_version(int argc, char **argv) { ! if (current_cvsroot != NULL && ! current_cvsroot->cr_method != CVS_METHOD_LOCAL) ! cvs_printf("Client: "); ! cvs_printf("%s\n", CVS_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);