From 9f0feb722341fe90dea744cec96d0f6a78213e52 Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Thu, 12 Nov 2015 18:03:45 -0500 Subject: [PATCH] Allow custom nospam values --- src/global_commands.c | 20 +++++++++++++++++--- src/help.c | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/global_commands.c b/src/global_commands.c index 3dde49d..1cc2340 100644 --- a/src/global_commands.c +++ b/src/global_commands.c @@ -524,11 +524,25 @@ void cmd_note(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MA void cmd_nospam(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) { - uint32_t nospam = rand(); /* should be random enough */ - tox_self_set_nospam(m, nospam); - line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Your Tox ID has been changed to:"); + long int nospam = rand(); + + if (argc > 0) { + nospam = strtol(argv[1], NULL, 16); + + if ((nospam == 0 && strcmp(argv[1], "0")) || nospam < 0) { + line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Invalid nospam value."); + return; + } + } + + uint32_t old_nospam = tox_self_get_nospam(m); + tox_self_set_nospam(m, (uint32_t) nospam); + + line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Your new Tox ID is:"); cmd_myid(window, self, m, 0, NULL); + line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, ""); line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Any services that relied on your old ID will need to be updated manually."); + line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "If you ever want your old Tox ID back, type '/nospam %X'", old_nospam); } void cmd_prompt_help(WINDOW *window, ToxWindow *self, Tox *m, int argc, char (*argv)[MAX_STR_SIZE]) diff --git a/src/help.c b/src/help.c index 3ecc3f5..d986ee7 100644 --- a/src/help.c +++ b/src/help.c @@ -154,7 +154,7 @@ static void help_draw_global(ToxWindow *self) wprintw(win, " /status : Set status with optional note\n"); wprintw(win, " /note : Set a personal note\n"); wprintw(win, " /nick : Set your nickname\n"); - wprintw(win, " /nospam : Change part of your Tox ID to stop spam\n"); + wprintw(win, " /nospam : Change part of your Tox ID to stop spam\n"); wprintw(win, " /log or : Enable/disable logging\n"); wprintw(win, " /group : Create a group chat where type: text | audio\n"); wprintw(win, " /myid : Print your Tox ID\n");