commit b89c6a3ffb7d6a8505403c0291a71a9f2ea1e6aa
parent 2a72f770ecf2f6243fada17c6c31d4dd085eb911
Author: TheJackiMonster <thejackimonster@gmail.com>
Date: Fri, 9 Sep 2022 16:29:23 +0200
Added prefix syntax to send files
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
Diffstat:
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/src/ui/messages.c b/src/ui/messages.c
@@ -116,7 +116,32 @@ messages_event(UI_MESSAGES_Handle *messages,
_messages_handle_message(messages);
else if (messages->text_len > 0)
{
- GNUNET_CHAT_context_send_text(app->chat.context, messages->text);
+ if (0 != strncmp(messages->text,
+ UI_MESSAGES_FILE_PREFIX,
+ UI_MESSAGES_FILE_PREFIX_LEN))
+ goto write_text;
+
+ const char* filename = messages->text + 5;
+
+ if (0 != access(filename, R_OK | F_OK))
+ break;
+
+ GNUNET_CHAT_context_send_file(
+ app->chat.context,
+ filename,
+ NULL,
+ NULL
+ );
+
+ goto drop_text;
+
+ write_text:
+ GNUNET_CHAT_context_send_text(
+ app->chat.context,
+ messages->text
+ );
+
+ drop_text:
messages->text_len = 0;
}
break;
@@ -269,7 +294,13 @@ messages_print(UI_MESSAGES_Handle *messages)
wmove(messages->window, line_height, 0);
whline(messages->window, '-', width);
- const int attrs_select = A_BOLD;
+ const bool is_file_text = (0 == strncmp(
+ messages->text,
+ UI_MESSAGES_FILE_PREFIX,
+ UI_MESSAGES_FILE_PREFIX_LEN
+ ));
+
+ const int attrs_select = A_BOLD | (is_file_text? A_ITALIC : A_NORMAL);
if (selected) wattron(messages->window, attrs_select);
diff --git a/src/ui/messages.h b/src/ui/messages.h
@@ -70,6 +70,9 @@ typedef struct UI_MESSAGES_Handle
#define UI_MESSAGES_COLS_MIN 50
+#define UI_MESSAGES_FILE_PREFIX "file:"
+#define UI_MESSAGES_FILE_PREFIX_LEN 5
+
void
messages_event(UI_MESSAGES_Handle *messages,
struct MESSENGER_Application *app,