summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_proc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fhandler_proc.cc')
-rw-r--r--winsup/cygwin/fhandler_proc.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/winsup/cygwin/fhandler_proc.cc b/winsup/cygwin/fhandler_proc.cc
index c0821e92c..7ca669c84 100644
--- a/winsup/cygwin/fhandler_proc.cc
+++ b/winsup/cygwin/fhandler_proc.cc
@@ -361,15 +361,19 @@ fhandler_proc::fill_filebuf ()
static _off64_t
format_proc_version (void *, char *&destbuf)
{
+ tmp_pathbuf tp;
+ char *buf = tp.c_get ();
+ char *bufptr = buf;
struct utsname uts_name;
uname (&uts_name);
- destbuf = (char *) crealloc_abort (destbuf, strlen (uts_name.sysname)
- + strlen (uts_name.release)
- + strlen (uts_name.version)
- + 4);
- return __small_sprintf (destbuf, "%s %s %s\n",
- uts_name.sysname, uts_name.release, uts_name.version);
+ bufptr += __small_sprintf (bufptr, "%s version %s (%s@%s) (%s) %s\n",
+ uts_name.sysname, uts_name.release, USERNAME, HOSTNAME,
+ GCC_VERSION, uts_name.version);
+
+ destbuf = (char *) crealloc_abort (destbuf, bufptr - buf);
+ memcpy (destbuf, buf, bufptr - buf);
+ return bufptr - buf;
}
static _off64_t