Index: owl.c
===================================================================
--- owl.c	(revision bd3f2322e69e72e9760505782651c29325f28b4b)
+++ owl.c	(revision 8b3259378ae437404d1c3744ae5ced5fa0ac4ecb)
@@ -154,4 +154,8 @@
   s=owl_malloc(sizeof(owl_style));
   owl_style_create_internal(s, "basic", &owl_stylefunc_basic);
+  owl_global_add_style(&g, s);
+
+  s=owl_malloc(sizeof(owl_style));
+  owl_style_create_internal(s, "oneline", &owl_stylefunc_oneline);
   owl_global_add_style(&g, s);
 
Index: stylefunc.c
===================================================================
--- stylefunc.c	(revision bd3f2322e69e72e9760505782651c29325f28b4b)
+++ stylefunc.c	(revision 8b3259378ae437404d1c3744ae5ced5fa0ac4ecb)
@@ -34,10 +34,10 @@
     owl_fmtext_append_normal(fm, OWL_TABSTR);
     
-    if (!strcasecmp(owl_message_get_opcode(m), "ping")) {
+    if (owl_message_is_ping(m)) {
       owl_fmtext_append_bold(fm, "PING");
       owl_fmtext_append_normal(fm, " from ");
       owl_fmtext_append_bold(fm, frombuff);
       owl_fmtext_append_normal(fm, "\n");
-    } else if (!strcasecmp(owl_message_get_class(m), "login")) {
+    } else if (owl_message_is_loginout(m)) {
       char *ptr, host[LINE], tty[LINE];
       int len;
@@ -49,8 +49,8 @@
       strncpy(tty, ptr, len);
       tty[len]='\0';
-      
-      if (!strcasecmp(owl_message_get_opcode(m), "user_login")) {
+
+      if (owl_message_is_login(m)) {
 	owl_fmtext_append_bold(fm, "LOGIN");
-      } else if (!strcasecmp(owl_message_get_opcode(m), "user_logout")) {
+      } else if (owl_message_is_logout(m)) {
 	owl_fmtext_append_bold(fm, "LOGOUT");
       }
@@ -225,10 +225,10 @@
     owl_fmtext_append_normal(fm, OWL_TABSTR);
     
-    if (!strcasecmp(owl_message_get_opcode(m), "ping") && owl_message_is_private(m)) {
+    if (owl_message_is_ping(m) && owl_message_is_private(m)) {
       owl_fmtext_append_bold(fm, "PING");
       owl_fmtext_append_normal(fm, " from ");
       owl_fmtext_append_bold(fm, frombuff);
       owl_fmtext_append_normal(fm, "\n");
-    } else if (!strcasecmp(n->z_class, "login")) {
+    } else if (owl_message_is_loginout(m)) {
       char *ptr, host[LINE], tty[LINE];
       int len;
@@ -241,7 +241,7 @@
       tty[len]='\0';
       
-      if (!strcasecmp(n->z_opcode, "user_login")) {
+      if (owl_message_is_login(m)) {
 	owl_fmtext_append_bold(fm, "LOGIN");
-      } else if (!strcasecmp(n->z_opcode, "user_logout")) {
+      } else if (owl_message_is_logout(m)) {
 	owl_fmtext_append_bold(fm, "LOGOUT");
       }
@@ -384,2 +384,93 @@
   }
 }
+
+void owl_stylefunc_oneline(owl_fmtext *fm, owl_message *m)
+{
+  char *tmp;
+
+  if (owl_message_is_type_zephyr(m)) {
+    owl_fmtext_append_spaces(fm, OWL_TAB);
+    if (owl_message_is_login(m)) {
+      tmp=owl_sprintf("< %-15.15s %-15.15s %-12.12s ", "LOGIN", "", owl_message_get_sender(m));
+      owl_fmtext_append_normal(fm, tmp);
+      owl_fmtext_append_normal(fm, "\n");
+      if (tmp) owl_free(tmp);
+    } else if (owl_message_is_logout(m)) {
+      tmp=owl_sprintf("< %-15.15s %-15.15s %-12.12s ", "LOGOUT", "", owl_message_get_sender(m));
+      owl_fmtext_append_normal(fm, tmp);
+      owl_fmtext_append_normal(fm, "\n");
+      if (tmp) owl_free(tmp);
+    } else if (owl_message_is_ping(m)) {
+      tmp=owl_sprintf("< %-15.15s %-15.15s %-12.12s ", "PING", "", owl_message_get_sender(m));
+      owl_fmtext_append_normal(fm, tmp);
+      owl_fmtext_append_normal(fm, "\n");
+      if (tmp) owl_free(tmp);
+    } else {
+      if (owl_message_is_direction_in(m)) {
+	tmp=owl_sprintf("< %-15.15s %-15.15s %-12.12s ", owl_message_get_class(m), owl_message_get_instance(m), owl_message_get_sender(m));
+      } else if (owl_message_is_direction_out(m)) {
+	tmp=owl_sprintf("> %-15.15s %-15.15s %-12.12s ", owl_message_get_class(m), owl_message_get_instance(m), owl_message_get_recipient(m));
+      } else {
+	tmp=owl_sprintf("- %-15.15s %-15.15s %-12.12s ", owl_message_get_class(m), owl_message_get_instance(m), owl_message_get_sender(m));
+      }
+      owl_fmtext_append_normal(fm, tmp);
+      if (tmp) owl_free(tmp);
+      
+      tmp=owl_strdup(owl_message_get_body(m));
+      owl_util_tr(tmp, '\n', ' ');
+      owl_fmtext_append_normal(fm, tmp);
+      owl_fmtext_append_normal(fm, "\n");
+      if (tmp) owl_free(tmp);
+    }
+      
+    /* make personal messages bold for smaat users */
+    if (owl_global_is_userclue(&g, OWL_USERCLUE_CLASSES) && owl_message_is_personal(m)) {
+      owl_fmtext_addattr(fm, OWL_FMTEXT_ATTR_BOLD);
+    }
+    
+  } else if (owl_message_is_type_aim(m)) {
+    owl_fmtext_append_spaces(fm, OWL_TAB);
+    if (owl_message_is_login(m)) {
+      tmp=owl_sprintf("< %-15.15s %-15.15s %-12.12s ", "AIM LOGIN", "", owl_message_get_sender(m));
+      owl_fmtext_append_normal(fm, tmp);
+      owl_fmtext_append_normal(fm, "\n");
+      if (tmp) owl_free(tmp);
+    } else if (owl_message_is_logout(m)) {
+      tmp=owl_sprintf("< %-15.15s %-15.15s %-12.12s ", "AIM LOGOUT", "", owl_message_get_sender(m));
+      owl_fmtext_append_normal(fm, tmp);
+      owl_fmtext_append_normal(fm, "\n");
+      if (tmp) owl_free(tmp);
+    } else {
+      if (owl_message_is_direction_in(m)) {
+	tmp=owl_sprintf("< %-15.15s %-15.15s %-12.12s ", "AIM", "", owl_message_get_sender(m));
+	owl_fmtext_append_normal(fm, tmp);
+	if (tmp) owl_free(tmp);
+      } else if (owl_message_is_direction_out(m)) {
+	tmp=owl_sprintf("> %-15.15s %-15.15s %-12.12s ", "AIM", "", owl_message_get_recipient(m));
+	owl_fmtext_append_normal(fm, tmp);
+	if (tmp) owl_free(tmp);
+      }
+      
+      tmp=owl_strdup(owl_message_get_body(m));
+      owl_util_tr(tmp, '\n', ' ');
+      owl_fmtext_append_normal(fm, tmp);
+      owl_fmtext_append_normal(fm, "\n");
+      if (tmp) owl_free(tmp);
+    }
+
+    /* make personal messages bold for smaat users */
+    if (owl_global_is_userclue(&g, OWL_USERCLUE_CLASSES)) {
+      owl_fmtext_addattr(fm, OWL_FMTEXT_ATTR_BOLD);
+    }
+  } else if (owl_message_is_type_admin(m)) {
+    owl_fmtext_append_spaces(fm, OWL_TAB);
+    owl_fmtext_append_normal(fm, "< ADMIN                                        ");
+    
+    tmp=owl_strdup(owl_message_get_body(m));
+    owl_util_tr(tmp, '\n', ' ');
+    owl_fmtext_append_normal(fm, tmp);
+    owl_fmtext_append_normal(fm, "\n");
+    if (tmp) owl_free(tmp);
+  }
+
+}
Index: variable.c
===================================================================
--- variable.c	(revision bd3f2322e69e72e9760505782651c29325f28b4b)
+++ variable.c	(revision 8b3259378ae437404d1c3744ae5ced5fa0ac4ecb)
@@ -199,5 +199,8 @@
 		      NULL, owl_variable_tty_set, NULL),
 
-  OWLVAR_STRING_FULL( "style" /* %OwlVarStub */, "default", "name of the current formatting style", "",
+  OWLVAR_STRING_FULL( "style" /* %OwlVarStub */, "default", "name of the current formatting style",
+		      "This sets the current message formatting style. Possbile\n"
+		      "values include 'default' 'basic' 'oneline' and if\n"
+		      "available, 'perl'\n",
 		      NULL, owl_variable_style_set, NULL),
 
