From 8134f073b3f749efe72aa0c4e586379186ea53eb Mon Sep 17 00:00:00 2001 From: Felix Pankratz Date: Wed, 21 Sep 2022 17:27:33 +0200 Subject: [PATCH] working state --- caesar_cipher.c | 34 ++++++++++++++++++++++++++-------- img/1.png | Bin 0 -> 2197 bytes img/2.png | Bin 0 -> 2063 bytes 3 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 img/1.png create mode 100644 img/2.png diff --git a/caesar_cipher.c b/caesar_cipher.c index bf56fa7..6bfc54e 100644 --- a/caesar_cipher.c +++ b/caesar_cipher.c @@ -25,19 +25,36 @@ typedef struct { TextInput* text_input; TextBox* text_box; char input[TEXT_BUFFER_SIZE]; - char upper[TEXT_BUFFER_SIZE]; + char output[(TEXT_BUFFER_SIZE*26) + (26)]; // linebreaks } CaesarState; -static void string_to_uppercase(const char* input, char* upper) { +static void string_to_uppercase(char* input) { int i; for (i=0; input[i] != '\0'; i++) { if (input[i] >= 'a' && input[i] <= 'z') { - upper[i] = input[i] - 32; + input[i] = input[i] - 32; } else { - upper[i] = input[i]; + input[i] = input[i]; } } - upper[i] = '\0'; +} + +static void build_output(char* input, char* output) { + int out = 0; + for ( int rot = 1; rot < 26; rot++) { + int in; + for(in = 0; input[in] != '\0'; in++){ + if (input[in] >= 'A' && input[in] <= 'Z') { + output[out] = 65 + ( ((input[in] - 65) + rot ) % 26); + } else { + output[out] = input[in]; + } + out++; + } + output[out]= '\n'; + out++; + } + output[out]='\0'; } static void text_input_callback(void* ctx) { @@ -45,9 +62,10 @@ static void text_input_callback(void* ctx) { FURI_LOG_D("caesar_cipher", "Input text: %s", caesar_state->input); // this is where we build the output. //char upper[TEXT_BUFFER_SIZE]; - string_to_uppercase(caesar_state->input, caesar_state->upper); - FURI_LOG_D("caesar_cipher", "Upper text: %s", caesar_state->upper); - text_box_set_text(caesar_state->text_box, caesar_state->upper); + string_to_uppercase(caesar_state->input); + FURI_LOG_D("caesar_cipher", "Upper text: %s", caesar_state->input); + build_output(caesar_state->input, caesar_state->output); + text_box_set_text(caesar_state->text_box, caesar_state->output); view_dispatcher_switch_to_view(caesar_state->view_dispatcher, 1); release_mutex((ValueMutex*)ctx, caesar_state); diff --git a/img/1.png b/img/1.png new file mode 100644 index 0000000000000000000000000000000000000000..93a9bcdbe494128a7407e460180301ce7019e43d GIT binary patch literal 2197 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 F{0ovmJ~99R literal 0 HcmV?d00001