From dda7071084478cfcf7198cd1923bc8844149aa4b Mon Sep 17 00:00:00 2001
From: magnum <magnum>
Date: Mon, 3 Oct 2011 08:06:37 +0200
Subject: [PATCH] j7: AlwaysReportUTF8 fixes

---
 src/loader.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/loader.c b/src/loader.c
index ab960c7..ceac315 100644
--- a/src/loader.c
+++ b/src/loader.c
@@ -647,8 +647,14 @@ static void ldr_remove_marked(struct db_main *db)
 					current_salt->list = current_pw->next;
 			} else {
 				last_pw = current_pw;
-				if (db->options->showuncracked)
-					printf("%s%c%s\n",current_pw->login,db->options->field_sep_char,current_pw->source);
+				if (db->options->showuncracked) {
+					if (!options.utf8 && options.report_utf8) {
+						UTF8 utf8login[PLAINTEXT_BUFFER_SIZE + 1];
+						enc_to_utf8_r(current_pw->login, utf8login);
+						printf("%s%c%s\n",utf8login,db->options->field_sep_char,current_pw->source);
+					} else
+						printf("%s%c%s\n",current_pw->login,db->options->field_sep_char,current_pw->source);
+				}
 			}
 		} while ((current_pw = current_pw->next));
 
@@ -941,7 +947,7 @@ static void ldr_show_pw_line(struct db_main *db, char *line)
 
 	show = !(db->options->flags & DB_PLAINTEXTS);
 
-	if (!options.utf8 && options.report_utf8) {
+	if (!options.utf8 && !options.store_utf8 && options.report_utf8) {
 		login = (char*)enc_to_utf8_r(login, utf8login);
 		enc_to_utf8_r(source, utf8source);
 		strnzcpy(source, (char*)utf8source, sizeof(source));
-- 
1.7.4.1

