mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-20 19:36:22 +00:00
Added jid->hash lookup for capabilities
This commit is contained in:
168
src/ui/console.c
168
src/ui/console.c
@@ -282,66 +282,65 @@ _cons_show_info(PContact pcontact)
|
||||
}
|
||||
|
||||
static void
|
||||
_cons_show_caps(const char * const contact, Resource *resource)
|
||||
_cons_show_caps(const char * const fulljid, Resource *resource)
|
||||
{
|
||||
ProfWin *console = wins_get_console();
|
||||
cons_show("");
|
||||
const char *resource_presence = string_from_resource_presence(resource->presence);
|
||||
|
||||
int presence_colour = win_presence_colour(resource_presence);
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, presence_colour, "", "%s", contact);
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, presence_colour, "", "%s", fulljid);
|
||||
win_save_print(console, '-', NULL, NO_DATE, 0, "", ":");
|
||||
|
||||
if (resource->caps_str != NULL) {
|
||||
Capabilities *caps = caps_get(resource->caps_str);
|
||||
if (caps != NULL) {
|
||||
// show identity
|
||||
if ((caps->category != NULL) || (caps->type != NULL) || (caps->name != NULL)) {
|
||||
win_save_print(console, '-', NULL, NO_EOL, 0, "", "Identity: ");
|
||||
if (caps->name != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->name);
|
||||
if ((caps->category != NULL) || (caps->type != NULL)) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
}
|
||||
if (caps->type != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->type);
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
}
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->category);
|
||||
}
|
||||
win_save_newline(console);
|
||||
}
|
||||
if (caps->software != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, 0, "", "Software: %s", caps->software);
|
||||
}
|
||||
if (caps->software_version != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->software_version);
|
||||
}
|
||||
if ((caps->software != NULL) || (caps->software_version != NULL)) {
|
||||
win_save_newline(console);
|
||||
}
|
||||
if (caps->os != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, 0, "", "OS: %s", caps->os);
|
||||
}
|
||||
if (caps->os_version != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->os_version);
|
||||
}
|
||||
if ((caps->os != NULL) || (caps->os_version != NULL)) {
|
||||
win_save_newline(console);
|
||||
}
|
||||
Capabilities *caps = caps_lookup(fulljid);
|
||||
|
||||
if (caps->features != NULL) {
|
||||
win_save_println(console, "Features:");
|
||||
GSList *feature = caps->features;
|
||||
while (feature != NULL) {
|
||||
win_save_vprint(console, '-', NULL, 0, 0, "", " %s", feature->data);
|
||||
feature = g_slist_next(feature);
|
||||
if (caps) {
|
||||
// show identity
|
||||
if ((caps->category != NULL) || (caps->type != NULL) || (caps->name != NULL)) {
|
||||
win_save_print(console, '-', NULL, NO_EOL, 0, "", "Identity: ");
|
||||
if (caps->name != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->name);
|
||||
if ((caps->category != NULL) || (caps->type != NULL)) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
}
|
||||
if (caps->type != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->type);
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
}
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->category);
|
||||
}
|
||||
win_save_newline(console);
|
||||
}
|
||||
if (caps->software != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, 0, "", "Software: %s", caps->software);
|
||||
}
|
||||
if (caps->software_version != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->software_version);
|
||||
}
|
||||
if ((caps->software != NULL) || (caps->software_version != NULL)) {
|
||||
win_save_newline(console);
|
||||
}
|
||||
if (caps->os != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, 0, "", "OS: %s", caps->os);
|
||||
}
|
||||
if (caps->os_version != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->os_version);
|
||||
}
|
||||
if ((caps->os != NULL) || (caps->os_version != NULL)) {
|
||||
win_save_newline(console);
|
||||
}
|
||||
|
||||
if (caps->features != NULL) {
|
||||
win_save_println(console, "Features:");
|
||||
GSList *feature = caps->features;
|
||||
while (feature != NULL) {
|
||||
win_save_vprint(console, '-', NULL, 0, 0, "", " %s", feature->data);
|
||||
feature = g_slist_next(feature);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -733,48 +732,47 @@ _cons_show_account(ProfAccount *account)
|
||||
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, presence_colour, "", ", \"%s\"", resource->status);
|
||||
}
|
||||
win_save_vprint(console, '-', NULL, NO_DATE, 0, "", "");
|
||||
Jid *jidp = jid_create_from_bare_and_resource(account->jid, resource->name);
|
||||
Capabilities *caps = caps_lookup(jidp->fulljid);
|
||||
|
||||
if (resource->caps_str != NULL) {
|
||||
Capabilities *caps = caps_get(resource->caps_str);
|
||||
if (caps != NULL) {
|
||||
// show identity
|
||||
if ((caps->category != NULL) || (caps->type != NULL) || (caps->name != NULL)) {
|
||||
win_save_print(console, '-', NULL, NO_EOL, 0, "", " Identity: ");
|
||||
if (caps->name != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->name);
|
||||
if ((caps->category != NULL) || (caps->type != NULL)) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
}
|
||||
if (caps->type != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->type);
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
if (caps != NULL) {
|
||||
// show identity
|
||||
if ((caps->category != NULL) || (caps->type != NULL) || (caps->name != NULL)) {
|
||||
win_save_print(console, '-', NULL, NO_EOL, 0, "", " Identity: ");
|
||||
if (caps->name != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->name);
|
||||
if ((caps->category != NULL) || (caps->type != NULL)) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
}
|
||||
if (caps->type != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->type);
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->category);
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
win_save_newline(console);
|
||||
}
|
||||
if (caps->software != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, 0, "", " Software: %s", caps->software);
|
||||
}
|
||||
if (caps->software_version != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->software_version);
|
||||
}
|
||||
if ((caps->software != NULL) || (caps->software_version != NULL)) {
|
||||
win_save_newline(console);
|
||||
}
|
||||
if (caps->os != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, 0, "", " OS: %s", caps->os);
|
||||
}
|
||||
if (caps->os_version != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->os_version);
|
||||
}
|
||||
if ((caps->os != NULL) || (caps->os_version != NULL)) {
|
||||
win_save_newline(console);
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->category);
|
||||
}
|
||||
win_save_newline(console);
|
||||
}
|
||||
if (caps->software != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, 0, "", " Software: %s", caps->software);
|
||||
}
|
||||
if (caps->software_version != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->software_version);
|
||||
}
|
||||
if ((caps->software != NULL) || (caps->software_version != NULL)) {
|
||||
win_save_newline(console);
|
||||
}
|
||||
if (caps->os != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_EOL, 0, "", " OS: %s", caps->os);
|
||||
}
|
||||
if (caps->os_version != NULL) {
|
||||
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->os_version);
|
||||
}
|
||||
if ((caps->os != NULL) || (caps->os_version != NULL)) {
|
||||
win_save_newline(console);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -234,7 +234,7 @@ void (*cons_show_roster_group)(const char * const group, GSList * list);
|
||||
void (*cons_show_wins)(void);
|
||||
void (*cons_show_status)(const char * const barejid);
|
||||
void (*cons_show_info)(PContact pcontact);
|
||||
void (*cons_show_caps)(const char * const contact, Resource *resource);
|
||||
void (*cons_show_caps)(const char * const fulljid, Resource *resource);
|
||||
void (*cons_show_themes)(GSList *themes);
|
||||
void (*cons_show_aliases)(GList *aliases);
|
||||
void (*cons_show_login_success)(ProfAccount *account);
|
||||
|
||||
@@ -235,47 +235,47 @@ win_show_info(ProfWin *window, PContact contact)
|
||||
}
|
||||
win_save_newline(window);
|
||||
|
||||
if (resource->caps_str != NULL) {
|
||||
Capabilities *caps = caps_get(resource->caps_str);
|
||||
if (caps != NULL) {
|
||||
// show identity
|
||||
if ((caps->category != NULL) || (caps->type != NULL) || (caps->name != NULL)) {
|
||||
win_save_print(window, '-', NULL, NO_EOL, 0, "", " Identity: ");
|
||||
if (caps->name != NULL) {
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->name);
|
||||
if ((caps->category != NULL) || (caps->type != NULL)) {
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
}
|
||||
if (caps->type != NULL) {
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->type);
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
Jid *jidp = jid_create_from_bare_and_resource(barejid, resource->name);
|
||||
Capabilities *caps = caps_lookup(jidp->fulljid);
|
||||
|
||||
if (caps) {
|
||||
// show identity
|
||||
if ((caps->category != NULL) || (caps->type != NULL) || (caps->name != NULL)) {
|
||||
win_save_print(window, '-', NULL, NO_EOL, 0, "", " Identity: ");
|
||||
if (caps->name != NULL) {
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->name);
|
||||
if ((caps->category != NULL) || (caps->type != NULL)) {
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
}
|
||||
if (caps->type != NULL) {
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->type);
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->category);
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", " ");
|
||||
}
|
||||
win_save_newline(window);
|
||||
}
|
||||
if (caps->software != NULL) {
|
||||
win_save_vprint(window, '-', NULL, NO_EOL, 0, "", " Software: %s", caps->software);
|
||||
}
|
||||
if (caps->software_version != NULL) {
|
||||
win_save_vprint(window, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->software_version);
|
||||
}
|
||||
if ((caps->software != NULL) || (caps->software_version != NULL)) {
|
||||
win_save_newline(window);
|
||||
}
|
||||
if (caps->os != NULL) {
|
||||
win_save_vprint(window, '-', NULL, NO_EOL, 0, "", " OS: %s", caps->os);
|
||||
}
|
||||
if (caps->os_version != NULL) {
|
||||
win_save_vprint(window, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->os_version);
|
||||
}
|
||||
if ((caps->os != NULL) || (caps->os_version != NULL)) {
|
||||
win_save_newline(window);
|
||||
if (caps->category != NULL) {
|
||||
win_save_print(window, '-', NULL, NO_DATE | NO_EOL, 0, "", caps->category);
|
||||
}
|
||||
win_save_newline(window);
|
||||
}
|
||||
if (caps->software != NULL) {
|
||||
win_save_vprint(window, '-', NULL, NO_EOL, 0, "", " Software: %s", caps->software);
|
||||
}
|
||||
if (caps->software_version != NULL) {
|
||||
win_save_vprint(window, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->software_version);
|
||||
}
|
||||
if ((caps->software != NULL) || (caps->software_version != NULL)) {
|
||||
win_save_newline(window);
|
||||
}
|
||||
if (caps->os != NULL) {
|
||||
win_save_vprint(window, '-', NULL, NO_EOL, 0, "", " OS: %s", caps->os);
|
||||
}
|
||||
if (caps->os_version != NULL) {
|
||||
win_save_vprint(window, '-', NULL, NO_DATE | NO_EOL, 0, "", ", %s", caps->os_version);
|
||||
}
|
||||
if ((caps->os != NULL) || (caps->os_version != NULL)) {
|
||||
win_save_newline(window);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user