Add all fd task events to fd's added to glib main loop.
authorPekka Riikonen <priikone@silcnet.org>
Thu, 7 Jun 2007 19:25:35 +0000 (19:25 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 7 Jun 2007 19:25:35 +0000 (19:25 +0000)
apps/irssi/src/silc/core/silc-core.c
apps/irssi/src/silc/core/silc-servers.c

index e2c189bb15a9844dbce97c8dac34e1afb71a248e..aadf2662454d64ff3c0991d351bf46d4f1eae9f2 100644 (file)
@@ -109,13 +109,14 @@ static void scheduler_notify_cb(SilcSchedule schedule,
       g_source_remove_by_user_data(SILC_32_TO_PTR(fd));
 
       if (event & SILC_TASK_READ)
-       e |= G_IO_IN;
+        e |= (G_IO_IN | G_IO_PRI | G_IO_HUP | G_IO_ERR);
       if (event & SILC_TASK_WRITE)
-       e |= G_IO_OUT;
+        e |= (G_IO_OUT | G_IO_HUP | G_IO_ERR | G_IO_NVAL);
 
       if (e) {
        ch = g_io_channel_unix_new(fd);
        g_io_add_watch(ch, e, my_silc_scheduler_fd, SILC_32_TO_PTR(fd));
+       g_io_channel_unref(ch);
       }
     } else {
       /* Add timeout */
@@ -126,7 +127,7 @@ static void scheduler_notify_cb(SilcSchedule schedule,
       if (!seconds && !useconds)
        return;
 
-      t = (seconds * 1000) + (useconds / 1000),
+      t = (seconds * 1000) + (useconds / 1000);
       SILC_LOG_DEBUG(("interval %d msec", t));
       g_timeout_add(t, my_silc_scheduler, NULL);
     }
index ba0dc80ae19d214a45c2978649ea2d83d62e5975..e16fb02cdc056fef1116a982f49259c3bf0d7483 100644 (file)
@@ -102,9 +102,14 @@ static void silc_send_msg_clients(SilcClient client,
   clients = silc_client_get_clients_local(silc_client, server->conn,
                                          rec->nick, FALSE);
   if (!clients) {
-    printtext(NULL, NULL, MSGLEVEL_CLIENTERROR,
-             "%s: There is no such client (did you mean %s?)", rec->nick,
-             target->nickname);
+    if (strchr(rec->nick, '@') && target->server)
+      printtext(NULL, NULL, MSGLEVEL_CLIENTERROR,
+               "%s: There is no such client (did you mean %s@%s?)", rec->nick,
+               target->nickname, target->server);
+    else
+      printtext(NULL, NULL, MSGLEVEL_CLIENTERROR,
+               "%s: There is no such client (did you mean %s?)", rec->nick,
+               target->nickname);
     goto out;
   }