Make journal selection behavior more consistent when there's a colon with no date (#1164)

This commit is contained in:
Jonathan Wren 2021-01-30 13:47:26 -08:00 committed by GitHub
parent ac0c49918d
commit ea845a8408
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 4 deletions

View file

@ -29,6 +29,20 @@ Feature: Multiple journals
And journal "work" should have 1 entry And journal "work" should have 1 entry
And journal "work" should contain "2012-07-23" And journal "work" should contain "2012-07-23"
Scenario: Write to specified journal without a timestamp but with colon
Given we use the config "multiple.yaml"
When we run "jrnl work : a long day in the office"
Then journal "default" should have 2 entries
And journal "work" should have 1 entry
And journal "work" should contain "a long day in the office"
Scenario: Write to specified journal without a timestamp but with colon
Given we use the config "multiple.yaml"
When we run "jrnl work: a long day in the office"
Then journal "default" should have 2 entries
And journal "work" should have 1 entry
And journal "work" should contain "a long day in the office"
Scenario: Create new journals as required Scenario: Create new journals as required
Given we use the config "multiple.yaml" Given we use the config "multiple.yaml"
Then journal "ideas" should not exist Then journal "ideas" should not exist

View file

@ -138,10 +138,18 @@ def update_config(config, new_config, scope, force_local=False):
def get_journal_name(args, config): def get_journal_name(args, config):
args.journal_name = DEFAULT_JOURNAL_KEY args.journal_name = DEFAULT_JOURNAL_KEY
if args.text and args.text[0] in config["journals"]:
args.journal_name = args.text[0] # The first arg might be a journal name
args.text = args.text[1:] if args.text:
elif DEFAULT_JOURNAL_KEY not in config["journals"]: potential_journal_name = args.text[0]
if potential_journal_name[-1] == ":":
potential_journal_name = potential_journal_name[0:-1]
if potential_journal_name in config["journals"]:
args.journal_name = potential_journal_name
args.text = args.text[1:]
if args.journal_name not in config["journals"]:
print("No default journal configured.", file=sys.stderr) print("No default journal configured.", file=sys.stderr)
print(list_journals(config), file=sys.stderr) print(list_journals(config), file=sys.stderr)
sys.exit(1) sys.exit(1)