PageRenderTime 31ms CodeModel.GetById 26ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/cvs/src/version.c

https://bitbucket.org/freebsd/freebsd-head/
C | 86 lines | 48 code | 13 blank | 25 comment | 7 complexity | 1e7d0a7ce05ceabaa15871df0f3c5b7d MD5 | raw file
 1/*
 2 * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
 3 *
 4 * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
 5 *                                  and others.
 6 *
 7 * Portions Copyright (C) 1994 david d `zoo' zuhn
 8 * Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
 9 * Portions Copyright (C) 1989-1992, Brian Berliner
10 * 
11 * You may distribute under the terms of the GNU General Public License as
12 * specified in the README file that comes with this  CVS source distribution.
13 * 
14 * version.c - the CVS version number
15 */
16
17#include "cvs.h"
18
19#ifdef CLIENT_SUPPORT
20#ifdef SERVER_SUPPORT
21char *config_string = " (client/server)\n";
22#else
23char *config_string = " (client)\n";
24#endif
25#else
26#ifdef SERVER_SUPPORT
27char *config_string = " (server)\n";
28#else
29char *config_string = "\n";
30#endif
31#endif
32
33
34
35static const char *const version_usage[] =
36{
37    "Usage: %s %s\n",
38    NULL
39};
40
41
42
43/*
44 * Output a version string for the client and server.
45 *
46 * This function will output the simple version number (for the '--version'
47 * option) or the version numbers of the client and server (using the 'version'
48 * command).
49 */
50int
51version (argc, argv)
52    int argc;
53    char **argv;
54{
55    int err = 0;
56
57    if (argc == -1)
58	usage (version_usage);
59
60    if (current_parsed_root && current_parsed_root->isremote)
61        (void) fputs ("Client: ", stdout);
62
63    /* Having the year here is a good idea, so people have
64       some idea of how long ago their version of CVS was
65       released.  */
66    (void) fputs (PACKAGE_STRING, stdout);
67    (void) fputs (config_string, stdout);
68
69#ifdef CLIENT_SUPPORT
70    if (current_parsed_root && current_parsed_root->isremote)
71    {
72	(void) fputs ("Server: ", stdout);
73	start_server ();
74	if (supported_request ("version"))
75	    send_to_server ("version\012", 0);
76	else
77	{
78	    send_to_server ("noop\012", 0);
79	    fputs ("(unknown)\n", stdout);
80	}
81	err = get_responses_and_close ();
82    }
83#endif
84    return err;
85}
86