Index: trunk/src/make-tests.sh
===================================================================
--- trunk/src/make-tests.sh	(revision 27)
+++ trunk/src/make-tests.sh	(revision 29)
@@ -49,7 +49,7 @@
     CuSuiteDetails(suite, output);
     if (suite->failCount > 0)
-      fprintf(stderr, "%s\n", output->buffer);
+      fprintf(stderr, "%s%c", output->buffer, 0x0A);
     else
-      fprintf(stdout, "%s\n", output->buffer);
+      fprintf(stdout, "%s%c", output->buffer, 0x0A);
     return suite->failCount;
 }
Index: trunk/src/sh_extern.c
===================================================================
--- trunk/src/sh_extern.c	(revision 27)
+++ trunk/src/sh_extern.c	(revision 29)
@@ -115,5 +115,5 @@
   FILE * outf = NULL;
   char * envp[1];
-  char * argp[1];
+  char * argp[2];
 
   char * errfile;
@@ -133,7 +133,9 @@
    *         needs a valid *envp[] with envp[0] = NULL;
    *         and similarly for argp
+   * OpenBSD finally needs non-null argp[0] ...
    */
+  argp[0] = task->command;
+  argp[1] = NULL;
   envp[0] = NULL;
-  argp[0] = NULL;
 
   /* 
Index: trunk/src/sh_suidchk.c
===================================================================
--- trunk/src/sh_suidchk.c	(revision 27)
+++ trunk/src/sh_suidchk.c	(revision 29)
@@ -525,11 +525,14 @@
 	      fs = filesystem_type (tmpcat, tmpcat, &buf);
 	      if (fs != NULL && 
+		  0 != strncmp (_("afs"),     fs, 3) && 
+		  0 != strncmp (_("devfs"),   fs, 5) &&
+		  0 != strncmp (_("iso9660"), fs, 7) &&
+		  0 != strncmp (_("lustre"),  fs, 6) &&
+		  0 != strncmp (_("mmfs"),    fs, 4) && 
+		  0 != strncmp (_("msdos"),   fs, 5) &&
 		  0 != strncmp (_("nfs"),     fs, 3) && 
+		  0 != strncmp (_("nosuid"),  fs, 6) &&
 		  0 != strncmp (_("proc"),    fs, 4) &&
-		  0 != strncmp (_("iso9660"), fs, 7) &&
-		  0 != strncmp (_("vfat"),    fs, 4) &&
-		  0 != strncmp (_("msdos"),   fs, 5) &&
-		  0 != strncmp (_("devfs"),   fs, 5) &&
-		  0 != strncmp (_("nosuid"),  fs, 6) 
+		  0 != strncmp (_("vfat"),    fs, 4) 
 		  )
 		{
Index: trunk/src/sh_unix.c
===================================================================
--- trunk/src/sh_unix.c	(revision 27)
+++ trunk/src/sh_unix.c	(revision 29)
@@ -1451,4 +1451,18 @@
 #include <arpa/inet.h>
 
+char * sh_unix_h_name (struct hostent * host_entry)
+{
+	char ** p;
+	if (strchr(host_entry->h_name, '.')) {
+		return host_entry->h_name;
+	} else {
+		for (p = host_entry->h_aliases; *p; ++p) {
+			if (strchr(*p, '.'))
+				return *p;
+		}
+	}
+	return host_entry->h_name;
+}
+
 /* uname() on FreeBSD is broken, because the 'nodename' buf is too small
  * to hold a valid (leftmost) domain label.
@@ -1521,5 +1535,5 @@
   else
     {
-      sl_strlcpy (sh.host.name, he1->h_name, SH_PATHBUF);
+      sl_strlcpy (sh.host.name, sh_unix_h_name(he1), SH_PATHBUF);
     }
   
@@ -1569,5 +1583,5 @@
   if (he1 != NULL)
     {
-      sl_strlcpy (sh.host.name, he1->h_name, SH_PATHBUF);
+      sl_strlcpy (sh.host.name, sh_unix_h_name(he1), SH_PATHBUF);
     }
   else
Index: trunk/src/sh_utils.c
===================================================================
--- trunk/src/sh_utils.c	(revision 27)
+++ trunk/src/sh_utils.c	(revision 29)
@@ -1340,5 +1340,5 @@
   char * endptr = NULL;
 
-  SL_ENTER(_("sh_util_obscure_ex"));
+  SL_ENTER(_("sh_util_obscure_ok"));
 
   if (0 == sl_strncmp("all", str, 3))
@@ -1348,5 +1348,5 @@
 	  sh_obscure_index[i] = (unsigned char)1;
 	}
-      SL_RETURN(0, _("sh_util_obscure_ex"));
+      SL_RETURN(0, _("sh_util_obscure_ok"));
     }
 
@@ -1359,5 +1359,5 @@
   if (i > 255)
     {
-      SL_RETURN(-1, _("sh_util_obscure_ex"));
+      SL_RETURN(-1, _("sh_util_obscure_ok"));
     }
   sh_obscure_index[i] = (unsigned char)1;
@@ -1370,5 +1370,5 @@
       if (i > 255)
 	{
-	  SL_RETURN(-1, _("sh_util_obscure_ex"));
+	  SL_RETURN(-1, _("sh_util_obscure_ok"));
 	}
       sh_obscure_index[i] = (unsigned char)1;
@@ -1376,10 +1376,10 @@
 	++endptr;
     }
-  SL_RETURN(0, _("sh_util_obscure_ex"));
+  SL_RETURN(0, _("sh_util_obscure_ok"));
 }
 
 int sh_util_obscurename (ShErrLevel level, char * name_orig, int flag)
 {
-  char * name = name_orig;
+  unsigned char * name = (unsigned char *) name_orig;
   char * safe;
   unsigned int i;
@@ -1393,5 +1393,5 @@
   while (*name != '\0') 
     {
-      if ( (*name) == '"'  || (*name) == '\t' ||
+      if ( (*name) >  0x7F || (*name) == '"'  || (*name) == '\t' ||
 	   (*name) == '\b' || (*name) == '\f' || 
 	   (*name) == '\n' || (*name) == '\r' ||
Index: trunk/src/slib.c
===================================================================
--- trunk/src/slib.c	(revision 27)
+++ trunk/src/slib.c	(revision 29)
@@ -1984,6 +1984,6 @@
     {
       TPT((0, FIL__, __LINE__, 
-	   _("msg=<Error closing file.>, path=<%s>, fd=<%d>\n"), 
-	   ofiles[fd]->path, fd));
+	   _("msg=<Error closing file.>, path=<%s>, fd=<%d>, err=<%s>\n"), 
+	   ofiles[fd]->path, fd, strerror(errno)));
     }
 
