File: sysname.c

package info (click to toggle)
9base 1%3A2-8
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 2,120 kB
  • ctags: 3,522
  • sloc: ansic: 34,477; yacc: 1,623; makefile: 373; sh: 48; asm: 8
file content (30 lines) | stat: -rw-r--r-- 420 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <u.h>
#include <libc.h>

char*
sysname(void)
{
	static char buf[512];
	char *p, *q;

	if(buf[0])
		return buf;

	if((q = getenv("sysname")) != nil && q[0] != 0){
		utfecpy(buf, buf+sizeof buf, q);
		free(q);
		return buf;
	}
	if(q)
		free(q);

	if(gethostname(buf, sizeof buf) >= 0){
		buf[sizeof buf-1] = 0;
		if((p = strchr(buf, '.')) != nil)
			*p = 0;
		return buf;
	}

	strcpy(buf, "gnot");
	return buf;
}