From 7ee23cd20d4f4df61cb20ddd9cd6d5ff22762331 Mon Sep 17 00:00:00 2001 From: Greg Shuflin Date: Tue, 25 Jul 2023 23:46:31 -0700 Subject: [PATCH] mask blank as arg --- src/lib.rs | 18 ++++++++---------- src/nmseffect.c | 3 +-- src/nmseffect.h | 2 +- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 7496232..d9fff93 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,9 +12,13 @@ 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, autodecrypt_c: c_int) -> c_char; + fn nmseffect_exec( + input: *const c_char, + len: c_int, + autodecrypt_c: c_int, + maskblank_c: c_int, + ) -> c_char; static mut foregroundColor: c_int; - static mut maskBlank: c_int; } ///Sleep for the number of milliseconds indicated by argument @@ -61,13 +65,7 @@ pub extern "C" fn rust_main() { foregroundColor = n; } } - unsafe { - if args.mask_blanks { - maskBlank = 1; - } else { - maskBlank = 0; - } - } + let maskblank_c = if args.mask_blanks { 1 } else { 0 }; if args.clear_screen { unsafe { @@ -85,7 +83,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, autodecrypt_c) }; + let _r = unsafe { nmseffect_exec(ptr, len as i32, autodecrypt_c, maskblank_c) }; } fn get_input(prompt: &str) -> String { diff --git a/src/nmseffect.c b/src/nmseffect.c index 1800ac4..405c604 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 maskBlank = 0; // Mask blank spaces const int colorOn = 1; // Terminal color flag - nothing actually sets this to be false ever // Character attribute structure, linked list. Keeps track of every @@ -54,7 +53,7 @@ extern 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, int autoDecrypt) { +char nmseffect_exec(unsigned char *string, int string_len, int autoDecrypt, int maskBlank) { 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 2a9592b..6d520b7 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, int autoDecrypt); +char nmseffect_exec(unsigned char *, int string_len, int autoDecrypt, int maskblank); void nmseffect_set_returnopts(char *); void nmseffect_set_clearscr(int); void nmseffect_use_color(int);