diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/command/cmd_funcs.c | 14 | ||||
-rw-r--r-- | src/ui/console.c | 13 |
2 files changed, 19 insertions, 8 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 29c8a29a..81293c15 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -9039,7 +9039,18 @@ gboolean cmd_omemo_qrcode(ProfWin* window, const char* const command, gchar** args) { #ifdef HAVE_OMEMO - cons_show_omemo_qrcode("some text from me"); + if (connection_get_status() != JABBER_CONNECTED) { + cons_show("You must be connected with an account to load OMEMO information."); + return TRUE; + } + + if (!omemo_loaded()) { + win_println(window, THEME_DEFAULT, "!", "You have not generated or loaded a cryptographic materials, use '/omemo gen'"); + return TRUE; + } + + char* fingerprint = omemo_own_fingerprint(TRUE); + cons_show_omemo_qrcode(fingerprint); return TRUE; #else cons_show("This version of Profanity has not been built with OMEMO support enabled"); @@ -9767,3 +9778,4 @@ cmd_mood(ProfWin* window, const char* const command, gchar** args) } return TRUE; } + diff --git a/src/ui/console.c b/src/ui/console.c index ae1f796d..e0b0fa4d 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -878,18 +878,16 @@ cons_show_omemo_qrcode(const char* const text) ProfWin* console = wins_get_console(); + char buf[(width * 4) + 1]; + memset(buf, 0, sizeof buf); for (size_t y = 0; y < width; y+=ZOOM_SIZE) { - //size_t y_index = y * width; for (size_t x = 0; x < width; x+=ZOOM_SIZE) { - if (x==0) { - win_print(console, THEME_DEFAULT, "", "%s", (*data & 1) ? "A" : "B"); - } else { - win_append(console, THEME_DEFAULT, "", "%s", (*data & 1) ? "A" : "B"); - } + strcat(buf, (*data & 1) ? "\u2588\u2588" : "\u2800\u2800"); data++; } - win_println(console, THEME_DEFAULT, "", ""); + win_println(console, THEME_DEFAULT, "", "%s", buf); + memset(buf, 0, sizeof buf); } QRcode_free(qrcode); @@ -2928,3 +2926,4 @@ cons_remove_alert(ProfWin* window) g_list_free_full(item, g_free); free(win_name); } + |