Index: xchat-xsys-2.2.0/parse.c
===================================================================
--- xchat-xsys-2.2.0.orig/parse.c	2008-04-29 20:37:15.000000000 +0200
+++ xchat-xsys-2.2.0/parse.c	2008-04-29 20:38:19.000000000 +0200
@@ -374,8 +374,8 @@
 {
 	FILE *fp = NULL;
 	char buffer[bsize], *pos = NULL;
-	
-	if((fp = fopen("/etc/lsb_release", "r")) != NULL)
+
+	if((fp = popen("/usr/bin/lsb_release -icr", "r")) != NULL)
 	{
 		char id[bsize], codename[bsize], release[bsize];
 		strcpy(id, "?");
@@ -383,42 +383,16 @@
 		strcpy(release, "?");
 		while(fgets(buffer, bsize, fp) != NULL)
 		{
-			find_match_char(buffer, "DISTRIB_ID", id);
-			find_match_char(buffer, "DISTRIB_CODENAME", codename);
-			find_match_char(buffer, "DISTRIB_RELEASE", release);
+			find_match_char(buffer, "Distributor ID", id);
+			find_match_char(buffer, "Codename", codename);
+			find_match_char(buffer, "Release", release);
 		}
 		snprintf(buffer, bsize, "%s \"%s\" %s", id, codename, release);
+		pclose(fp);
 	}
-	else if((fp = fopen("/etc/make.conf", "r")) != NULL)
-	{
-		char keywords[bsize];
-		while(fgets(buffer, bsize, fp) != NULL)
-			find_match_char(buffer, "ACCEPT_KEYWORDS", keywords);
-		if (strstr(keywords, "\"") == NULL)
-			snprintf(buffer, bsize, "Gentoo Linux (stable)");
-		else
-			snprintf(buffer, bsize, "Gentoo Linux %s", keywords);
-	}		
-	else if((fp = fopen("/etc/redhat-release", "r")) != NULL)
-		fgets(buffer, bsize, fp);
-	else if((fp = fopen("/etc/slackware-version", "r")) != NULL)
-		fgets(buffer, bsize, fp);
-	else if((fp = fopen("/etc/mandrake-release", "r")) != NULL)
-		fgets(buffer, bsize, fp);
-	else if((fp = fopen("/etc/debian_version", "r")) != NULL)
-	{
-		char release[bsize];
-		fgets(release, bsize, fp);
-		snprintf(buffer, bsize, "Debian %s", release);
-	}
-	else if((fp = fopen("/etc/SuSE-release", "r")) != NULL)
-		fgets(buffer, bsize, fp);
-	else if((fp = fopen("/etc/turbolinux-release", "r")) != NULL)
-		fgets(buffer, bsize, fp);
 	else
 		snprintf(buffer, bsize, "Unknown Distro");
-	if(fp != NULL) fclose(fp);
-	
+
 	pos=strchr(buffer, '\n');
 	if(pos != NULL) *pos = '\0';
 	strcpy(name, buffer);
