update lintian overrides
[alioth/cvs.git] / src / version.c
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 static const
20 #ifdef CLIENT_SUPPORT
21 #ifdef SERVER_SUPPORT
22 char *config_string = " (client/server)\n";
23 #else
24 char *config_string = " (client)\n";
25 #endif
26 #else
27 #ifdef SERVER_SUPPORT
28 char *config_string = " (server)\n";
29 #else
30 char *config_string = "\n";
31 #endif
32 #endif
33
34
35
36 static const char *const version_usage[] =
37 {
38     "Usage: %s %s\n",
39     NULL
40 };
41
42
43
44 /*
45  * Output a version string for the client and server.
46  *
47  * This function will output the simple version number (for the '--version'
48  * option) or the version numbers of the client and server (using the 'version'
49  * command).
50  */
51 int
52 version (int argc, char **argv)
53 {
54     int err = 0;
55
56     if (argc == -1)
57         usage (version_usage);
58
59     if (current_parsed_root && current_parsed_root->isremote)
60         (void) fputs ("Client: ", stdout);
61
62     /* Having the year here is a good idea, so people have
63        some idea of how long ago their version of CVS was
64        released.  */
65     (void) fputs (PACKAGE_STRING, stdout);
66     (void) fputs (config_string, stdout);
67
68 #ifdef CLIENT_SUPPORT
69     if (current_parsed_root && current_parsed_root->isremote)
70     {
71         (void) fputs ("Server: ", stdout);
72         start_server ();
73         if (supported_request ("version"))
74             send_to_server ("version\012", 0);
75         else
76         {
77             send_to_server ("noop\012", 0);
78             fputs ("(unknown)\n", stdout);
79         }
80         err = get_responses_and_close ();
81     }
82 #endif
83     return err;
84 }