1/* version.c -- distribution and version numbers. */ 2 3/* Copyright (C) 1989-2005 Free Software Foundation, Inc. 4 5 This file is part of GNU Bash, the Bourne Again SHell. 6 7 Bash is free software; you can redistribute it and/or modify it under 8 the terms of the GNU General Public License as published by the Free 9 Software Foundation; either version 2, or (at your option) any later 10 version. 11 12 Bash is distributed in the hope that it will be useful, but WITHOUT ANY 13 WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 for more details. 16 17 You should have received a copy of the GNU General Public License along 18 with Bash; see the file COPYING. If not, write to the Free Software 19 Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ 20 21#include <config.h> 22 23#include <stdio.h> 24 25#include "stdc.h" 26 27#include "version.h" 28#include "patchlevel.h" 29#include "conftypes.h" 30 31#include "bashintl.h" 32 33extern char *shell_name; 34 35/* Defines from version.h */ 36const char *dist_version = DISTVERSION; 37int patch_level = PATCHLEVEL; 38int build_version = BUILDVERSION; 39#ifdef RELSTATUS 40const char *release_status = RELSTATUS; 41#else 42const char *release_status = (char *)0; 43#endif 44const char *sccs_version = SCCSVERSION; 45 46/* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */ 47int shell_compatibility_level = 32; 48 49/* Functions for getting, setting, and displaying the shell version. */ 50 51/* Forward declarations so we don't have to include externs.h */ 52extern char *shell_version_string __P((void)); 53extern void show_shell_version __P((int)); 54 55/* Give version information about this shell. */ 56char * 57shell_version_string () 58{ 59 static char tt[32] = { '\0' }; 60 61 if (tt[0] == '\0') 62 { 63 if (release_status) 64#if defined (HAVE_SNPRINTF) 65 snprintf (tt, sizeof (tt), "%s.%d(%d)-%s", dist_version, patch_level, build_version, release_status); 66#else 67 sprintf (tt, "%s.%d(%d)-%s", dist_version, patch_level, build_version, release_status); 68#endif 69 else 70#if defined (HAVE_SNPRINTF) 71 snprintf (tt, sizeof (tt), "%s.%d(%d)", dist_version, patch_level, build_version); 72#else 73 sprintf (tt, "%s.%d(%d)", dist_version, patch_level, build_version); 74#endif 75 } 76 return tt; 77} 78 79void 80show_shell_version (extended) 81 int extended; 82{ 83 printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); 84 if (extended) 85 printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n")); 86} 87