chiark / gitweb /
*** empty log message ***
[sympathy.git] / apps / sympathyd.c
index 49dd3120bc759b37522d2aca31aeabc9951adc0b..41a39f270297dcf151f221487bd2656309c3b2e0 100644 (file)
@@ -11,6 +11,12 @@ static char rcsid[] =
 
 /*
  * $Log$
+ * Revision 1.10  2008/02/14 10:39:14  james
+ * *** empty log message ***
+ *
+ * Revision 1.9  2008/02/14 10:34:47  james
+ * *** empty log message ***
+ *
  * Revision 1.8  2008/02/14 10:34:30  james
  * *** empty log message ***
  *
@@ -50,6 +56,7 @@ typedef struct
   int baud;
   int crtscts;
   int cd_edge_sec;
+  int blocked;
   int bootstrap;
 } Status;
 
@@ -71,6 +78,7 @@ get_status (TTY * t, Clients * cs)
   status.lines = tty_status.lines;
   status.baud = tty_status.baud;
   status.crtscts = (tty_status.termios.c_cflag & CRTSCTS) ? 1 : 0;
+  status.blocked=tty_status.blocked;
 
   cd = (tty_status.lines & TIOCM_CD) ? 1 : 0;
 
@@ -174,7 +182,7 @@ log_line_changes (Context * ctx, int old, int new)
 }
 
 static char *
-do_line (char *ptr,int lines, int line)
+do_line (char *ptr, int lines, int line)
 {
   char *lname;
 
@@ -207,8 +215,9 @@ check_status (Context * c, Clients * cs)
 
   log_line_changes (c, old_status.lines, status.lines);
 
-  t=c->t->name;
-  if (!strncmp(t,"/dev/",5)) t+=5;
+  t = c->t->name;
+  if (!strncmp (t, "/dev/", 5))
+    t += 5;
   while (*t)
     *(ptr++) = *(t++);
 
@@ -220,12 +229,20 @@ check_status (Context * c, Clients * cs)
   ptr = do_line (ptr, status.lines, TIOCM_DSR);
   ptr = do_line (ptr, status.lines, TIOCM_RI);
 
-  if (status.crtscts) {
-       t=", Flow";
-  while (*t)
-    *(ptr++) = *(t++);
+  if (status.blocked)
+  {
+      t = ", Locked";
+      while (*t)
+        *(ptr++) = *(t++);
+  }
+
+  if (status.crtscts)
+    {
+      t = ", Flow";
+      while (*t)
+        *(ptr++) = *(t++);
     }
+
   if (status.lines & TIOCM_CD)
     {
       ptr +=
@@ -239,7 +256,9 @@ check_status (Context * c, Clients * cs)
                  status.cd_edge_sec % 60);
     }
 
-  ptr += sprintf (ptr, ", %d client%s", status.nclients,(status.nclients==1) ? "":"s");
+  ptr +=
+    sprintf (ptr, ", %d client%s", status.nclients,
+             (status.nclients == 1) ? "" : "s");
 
   *ptr = 0;