From 193817fda62e5e4e2f12d6e6d9e9c5db04d08dab Mon Sep 17 00:00:00 2001 From: Greg Shuflin Date: Tue, 25 Jul 2023 23:17:17 -0700 Subject: [PATCH] Remove autoDecrypt as global --- src/lib.rs | 15 ++++----------- src/nmseffect.c | 3 +-- src/nmseffect.h | 2 +- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index ce69725..1d87b77 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,7 +2,7 @@ mod args; mod charset; mod color; -use libc::{c_char, c_int, c_uchar, c_void}; +use libc::{c_char, c_int, c_void}; use std::ffi::CString; use std::process; @@ -12,10 +12,9 @@ const VERSION: &str = "2.0.0"; extern "C" { fn nmseffect_set_clearscr(_: c_int) -> c_void; - fn nmseffect_exec(input: *const c_char, len: c_int) -> c_char; + fn nmseffect_exec(input: *const c_char, len: c_int, autodecrypt_c: c_int) -> c_char; static mut foregroundColor: c_int; static mut maskBlank: c_int; - static mut autoDecrypt: c_int; } /// Return a random character from charTable[]. @@ -67,13 +66,7 @@ pub extern "C" fn rust_main() { } } - unsafe { - if args.autodecrypt { - autoDecrypt = 1; - } else { - autoDecrypt = 0; - } - } + let autodecrypt_c = if args.autodecrypt { 1 } else { 0 }; let output = get_input("Enter input: "); if output.len() == 0 { @@ -83,7 +76,7 @@ pub extern "C" fn rust_main() { let output_cstring = CString::new(output).unwrap(); let ptr = output_cstring.as_ptr(); let len = output_cstring.as_bytes().len(); - let _r = unsafe { nmseffect_exec(ptr, len as i32) }; + let _r = unsafe { nmseffect_exec(ptr, len as i32, autodecrypt_c) }; } fn get_input(prompt: &str) -> String { diff --git a/src/nmseffect.c b/src/nmseffect.c index 1a12d48..3d8157d 100644 --- a/src/nmseffect.c +++ b/src/nmseffect.c @@ -32,7 +32,6 @@ #define REVEAL_LOOP_SPEED 50 // miliseconds between each reveal loop // Behavior settings -int autoDecrypt = 0; // Auto-decrypt flag int maskBlank = 0; // Mask blank spaces static int colorOn = 1; // Terminal color flag @@ -55,7 +54,7 @@ static void nmseffect_sleep(int); * string that is provided as an argument. It returns the last character * pressed by the user. */ -char nmseffect_exec(unsigned char *string, int string_len) { +char nmseffect_exec(unsigned char *string, int string_len, int autoDecrypt) { struct charAttr *list_pointer = NULL; struct charAttr *list_head = NULL; struct charAttr *list_temp = NULL; diff --git a/src/nmseffect.h b/src/nmseffect.h index 9a82475..2a9592b 100644 --- a/src/nmseffect.h +++ b/src/nmseffect.h @@ -9,7 +9,7 @@ #define NMSEFFECT_H 1 // Function prototypes -char nmseffect_exec(unsigned char *, int string_len); +char nmseffect_exec(unsigned char *, int string_len, int autoDecrypt); void nmseffect_set_returnopts(char *); void nmseffect_set_clearscr(int); void nmseffect_use_color(int);