about summary refs log tree commit diff
path: root/src/libs6/ftrigr_update.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs6/ftrigr_update.c')
-rw-r--r--src/libs6/ftrigr_update.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libs6/ftrigr_update.c b/src/libs6/ftrigr_update.c
index 52f79b9..f97535d 100644
--- a/src/libs6/ftrigr_update.c
+++ b/src/libs6/ftrigr_update.c
@@ -35,12 +35,14 @@ static int msghandler (unixmessage_t const *m, void *context)
   switch (m->s[2])
   {
     case 'd' :
+      if (!stralloc_catb(&p->what, m->s + 3, 1)) return 0 ;
       p->state = FR1STATE_WAITACK ;
       break ;
     case '!' :
+      if (!stralloc_catb(&p->what, m->s + 3, 1)) return 0 ;
       if (p->options & FTRIGR_REPEAT)
       {
-        if (p->count++
+        if (p->what.len > 1
          && appears(id+1, genalloc_s(uint16_t, &a->list), genalloc_len(uint16_t, &a->list)))
           addit = 0 ;
       }
@@ -48,7 +50,6 @@ static int msghandler (unixmessage_t const *m, void *context)
       break ;
     default : return (errno = EPROTO, 0) ;
   }
-  p->what = m->s[3] ;
   if (addit)
   {
     id++ ; genalloc_append(uint16_t, &a->list, &id) ;