diff --git a/otp.c b/otp.c index 2c46d56..3d0fe87 100644 --- a/otp.c +++ b/otp.c @@ -2559,7 +2559,27 @@ int handle_file_encrypt(void) { int ascii_armor = (atoi(format_input) == 2) ? 1 : 0; - return encrypt_file(pad_input, input_file, NULL, ascii_armor); + // Generate default output filename + char default_output[512]; + if (ascii_armor) { + snprintf(default_output, sizeof(default_output), "%s.otp.asc", input_file); + } else { + snprintf(default_output, sizeof(default_output), "%s.otp", input_file); + } + + // Ask for output filename with pre-filled default + printf("\nOutput filename [%s]: ", default_output); + char output_file[512]; + if (!fgets(output_file, sizeof(output_file), stdin)) { + printf("Error: Failed to read input\n"); + return 1; + } + output_file[strcspn(output_file, "\n")] = 0; + + // Use default if user just pressed Enter + const char* output_filename = (strlen(output_file) > 0) ? output_file : default_output; + + return encrypt_file(pad_input, input_file, output_filename, ascii_armor); } int handle_smart_decrypt(void) { diff --git a/test.txt.otp b/test.txt.otp new file mode 100644 index 0000000..4cc77c2 Binary files /dev/null and b/test.txt.otp differ