about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/command/cmd_funcs.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c
index 4b79b145..0219b61f 100644
--- a/src/command/cmd_funcs.c
+++ b/src/command/cmd_funcs.c
@@ -7613,7 +7613,22 @@ cmd_ox(ProfWin* window, const char* const command, gchar** args)
         return TRUE;
     } else if (g_strcmp0(args[0], "announce") == 0) {
         if (args[1]) {
-            ox_announce_public_key(args[1]);
+            gchar* filename = get_expanded_path(args[1]);
+
+            if (access(filename, R_OK) != 0) {
+                cons_show_error("File not found: %s", filename);
+                g_free(filename);
+                return TRUE;
+            }
+
+            if (!is_regular_file(filename)) {
+                cons_show_error("Not a file: %s", filename);
+                g_free(filename);
+                return TRUE;
+            }
+
+            ox_announce_public_key(filename);
+            free(filename);
         } else {
             cons_show("Filename is required");
         }