diff --git a/src/cli/edit.go b/src/cli/edit.go index 48060a2..3c2f83e 100644 --- a/src/cli/edit.go +++ b/src/cli/edit.go @@ -7,6 +7,7 @@ import ( "os" "os/exec" "reflect" + "strings" ) // RenameCli renames an entry at oldLocation to a new location (user input) @@ -134,8 +135,16 @@ func editNote(baseNote []string) ([]string, bool) { // close tempFile tempFile.Close() + // remove trailing empty strings from the edited note + note = offline.RemoveTrailingEmptyStrings(note) + + // trim trailing whitespace from each note line + for i, line := range note { + note[i] = strings.TrimRight(line, " \t\r\n") + } + // return the edited note if it is different from baseNote - if !reflect.DeepEqual(offline.RemoveTrailingEmptyStrings(note), baseNote) { + if !reflect.DeepEqual(note, baseNote) { return note, true } else { return []string{}, false diff --git a/src/cli/utilitiesMisc.go b/src/cli/utilitiesMisc.go index d240d65..cd41a93 100644 --- a/src/cli/utilitiesMisc.go +++ b/src/cli/utilitiesMisc.go @@ -63,7 +63,7 @@ func inputBinary(prompt string) bool { return false } -// inputMenu prompts the user with a menu and returns the user's choice as an integer +// inputMenuGen prompts the user with a menu and returns the user's choice as an integer func inputMenuGen(prompt string, options []string) int { for i, option := range options { fmt.Printf("%d. %s\n", i+1, option) @@ -71,13 +71,14 @@ func inputMenuGen(prompt string, options []string) int { return inputInt(prompt, len(options)) } -// writeEntryShortcut writes an entry to targetLocation (trimming trailing blank lines) and previews it, or errors if no data is supplied +// writeEntryShortcut writes an entry to targetLocation and previews it (errors if no data is supplied) func writeEntryShortcut(targetLocation string, unencryptedEntry []string, hidePassword bool) { if offline.EntryIsNotEmpty(unencryptedEntry) { - trimmedEntry := offline.RemoveTrailingEmptyStrings(unencryptedEntry) - offline.WriteEntry(targetLocation, trimmedEntry) + // write the entry to the target location + offline.WriteEntry(targetLocation, unencryptedEntry) + // preview the entry fmt.Println(ansiBold + "\nEntry Preview:" + offline.AnsiReset) - EntryReader(trimmedEntry, hidePassword, true) + EntryReader(unencryptedEntry, hidePassword, true) } else { fmt.Println(offline.AnsiError + "No data supplied for entry" + offline.AnsiReset) os.Exit(1)