mcabber/src/commands.c
changeset 1355 9716cf8a0726
parent 1352 61a54e172010
child 1356 7794d76ca90e
equal deleted inserted replaced
1354:c373ff3fe7e1 1355:9716cf8a0726
  1484 
  1484 
  1485 static void do_info(char *arg)
  1485 static void do_info(char *arg)
  1486 {
  1486 {
  1487   gpointer bud;
  1487   gpointer bud;
  1488   const char *bjid, *name;
  1488   const char *bjid, *name;
  1489   guint type;
  1489   guint type, on_srv;
  1490   char *buffer;
  1490   char *buffer;
  1491   enum subscr esub;
  1491   enum subscr esub;
  1492 
  1492 
  1493   if (!current_buddy)
  1493   if (!current_buddy)
  1494     return;
  1494     return;
  1496 
  1496 
  1497   bjid   = buddy_getjid(bud);
  1497   bjid   = buddy_getjid(bud);
  1498   name   = buddy_getname(bud);
  1498   name   = buddy_getname(bud);
  1499   type   = buddy_gettype(bud);
  1499   type   = buddy_gettype(bud);
  1500   esub   = buddy_getsubscription(bud);
  1500   esub   = buddy_getsubscription(bud);
       
  1501   on_srv = buddy_getonserverflag(bud);
  1501 
  1502 
  1502   buffer = g_new(char, 4096);
  1503   buffer = g_new(char, 4096);
  1503 
  1504 
  1504   if (bjid) {
  1505   if (bjid) {
  1505     GSList *resources, *p_res;
  1506     GSList *resources, *p_res;
  1519     if (type == ROSTER_TYPE_USER)       bstr = "user";
  1520     if (type == ROSTER_TYPE_USER)       bstr = "user";
  1520     else if (type == ROSTER_TYPE_ROOM)  bstr = "chatroom";
  1521     else if (type == ROSTER_TYPE_ROOM)  bstr = "chatroom";
  1521     else if (type == ROSTER_TYPE_AGENT) bstr = "agent";
  1522     else if (type == ROSTER_TYPE_AGENT) bstr = "agent";
  1522     snprintf(buffer, 127, "Type: %s", bstr);
  1523     snprintf(buffer, 127, "Type: %s", bstr);
  1523     scr_WriteIncomingMessage(bjid, buffer, 0, HBB_PREFIX_INFO, 0);
  1524     scr_WriteIncomingMessage(bjid, buffer, 0, HBB_PREFIX_INFO, 0);
       
  1525 
       
  1526     if (!on_srv) {
       
  1527       scr_WriteIncomingMessage(bjid, "(Local item, not on the server)",
       
  1528                                0, HBB_PREFIX_INFO, 0);
       
  1529     }
  1524 
  1530 
  1525     if (esub == sub_both)     bstr = "both";
  1531     if (esub == sub_both)     bstr = "both";
  1526     else if (esub & sub_from) bstr = "from";
  1532     else if (esub & sub_from) bstr = "from";
  1527     else if (esub & sub_to)   bstr = "to";
  1533     else if (esub & sub_to)   bstr = "to";
  1528     else bstr = "none";
  1534     else bstr = "none";
  1585       }
  1591       }
  1586 #endif
  1592 #endif
  1587       g_free(p_res->data);
  1593       g_free(p_res->data);
  1588     }
  1594     }
  1589     g_slist_free(resources);
  1595     g_slist_free(resources);
  1590   } else {
  1596   } else {  /* Item has no jid */
  1591     if (name) scr_LogPrint(LPRINT_NORMAL, "Name: %s", name);
  1597     if (name) scr_LogPrint(LPRINT_NORMAL, "Name: %s", name);
  1592     scr_LogPrint(LPRINT_NORMAL, "Type: %s",
  1598     scr_LogPrint(LPRINT_NORMAL, "Type: %s",
  1593                  type == ROSTER_TYPE_GROUP ? "group" :
  1599                  type == ROSTER_TYPE_GROUP ? "group" :
  1594                  (type == ROSTER_TYPE_SPECIAL ? "special" : "unknown"));
  1600                  (type == ROSTER_TYPE_SPECIAL ? "special" : "unknown"));
  1595   }
  1601   }