setlocale (LC_ALL, "");
int main(int argc, char **argv){    int c;    char type = '\0';    int option_index = 0;    int what = 0;    char myname[MAXHOSTNAMELEN + 1] =    {0};    char *file = NULL;    static const struct option long_options[] =    {	{"domain", no_argument, 0, 'd'},	{"file", required_argument, 0, 'F'},	{"fqdn", no_argument, 0, 'f'},	{"help", no_argument, 0, 'h'},	{"long", no_argument, 0, 'f'},	{"short", no_argument, 0, 's'},	{"version", no_argument, 0, 'V'},	{"verbose", no_argument, 0, 'v'},	{"alias", no_argument, 0, 'a'},	{"ip-address", no_argument, 0, 'i'},	{"nis", no_argument, 0, 'y'},	{"yp", no_argument, 0, 'y'},#if HAVE_AFDECnet	{"node", no_argument, 0, 'n'},#endif /* HAVE_AFDECnet */	{0, 0, 0, 0}    };#if I18N    bindtextdomain("net-tools", "/usr/share/locale");    textdomain("net-tools");#endif    program_name = (rindex(argv[0], '/')) ? rindex(argv[0], '/') + 1 : argv[0];    if (!strcmp(program_name, "ypdomainname") ||	!strcmp(program_name, "domainname") ||	!strcmp(program_name, "nisdomainname"))	what = 3;    if (!strcmp(program_name, "dnsdomainname"))	what = 2;#if HAVE_AFDECnet    if (!strcmp(program_name, "nodename"))        what = 4;#endif /* HAVE_AFDECnet */    while ((c = getopt_long(argc, argv, "adfF:h?isVvyn", long_options, &option_index)) != EOF)	switch (c) {	case 'd':	    what = 2;	    break;	case 'a':	case 'f':	case 'i':	case 's':	    what = 1;	    type = c;	    break;	case 'y':	    what = 3;	    break;#if HAVE_AFDECnet	case 'n':            what = 4;            break;#endif /* HAVE_AFDECnet */	case 'F':	    file = optarg;	    break;	case 'v':	    opt_v++;	    break;	case 'V':	    version();	case '?':	case 'h':	default:	    usage();	};    switch (what) {    case 2:	if (file || (optind < argc)) {	    fprintf(stderr, _("%s: You can't change the DNS domain name with this command\n"), program_name);	    fprintf(stderr, _("\nUnless you are using bind or NIS for host lookups you can change the DNS\n"));	    fprintf(stderr, _("domain name (which is part of the FQDN) in the /etc/hosts file.\n"));	    exit(1);	}	type = 'd';	/* NOBREAK */    case 0:	if (file) {	    setfilename(file, SETHOST);	    break;	}	if (optind < argc) {	    sethname(argv[optind]);	    break;	}    case 1:	gethostname(myname, sizeof(myname));	if (opt_v)	    fprintf(stderr, _("gethostname()=`%s'\n"), myname);	if (!type)	    printf("%s\n", myname);	else	    showhname(myname, type);	break;    case 3:	if (file) {	    setfilename(file, SETDOMAIN);	    break;	}	if (optind < argc) {	    setdname(argv[optind]);	    break;	}	getdomainname(myname, sizeof(myname));	if (opt_v)	    fprintf(stderr, _("getdomainname()=`%s'\n"), myname);	printf("%s\n", myname);	break;#if HAVE_AFDECnet    case 4:        if (file) {            setfilename(file, SETNODE);            break;        }        if (optind < argc) {            setnname(argv[optind]);            break;        }        getnodename(myname, sizeof(myname));        if (opt_v)            fprintf(stderr, _("getnodename()=`%s'\n"), myname);        printf("%s\n", myname);        break;#endif /* HAVE_AFDECnet */    }    exit(0);}