Skip to content

Conversation

@Lense
Copy link

@Lense Lense commented Jan 29, 2026

Close #175

Before commit:

g:ledger_bin value g:ledger_is_hledger in vimrc g:ledger_is_hledger editing file
'hledger' unset 1
'hledger' v:false 0
'hledger' v:true 0 (!)
'ledger' unset 0
'ledger' v:false 0
'ledger' v:true 0 (!)

After commit:

g:ledger_bin value g:ledger_is_hledger in vimrc g:ledger_is_hledger editing file
'hledger' unset 1
'hledger' v:false 0
'hledger' v:true 1
'ledger' unset 0
'ledger' v:false 0
'ledger' v:true 1

@alerque
Copy link
Member

alerque commented Jan 29, 2026

Your testing chart and the code change don't add up. Something else is going on. The code change is only relevant to if you have the ledger_is_hledger value manually set but have an unset value for the bin. How are you ending up with ledger_bin being unset?

@Lense
Copy link
Author

Lense commented Jan 30, 2026

This script recreates the truth tables with no vim config and no ledger binaries in the PATH:

#!/bin/sh                                                                                                                                                                                      
truthtable() {                                                                                                                                                                                 
        for ledger in ledger hledger ""; do                                                                                                                                                    
                for ishledger in 0 1 ""; do                                                                                                                                                    
                        /bin/echo "set: g:ledger_bin=$ledger and g:ledger_is_hledger=$ishledger";                                                                                              
                        /bin/vim --clean -c "let g:ledger_bin=$ledger" -c "let g:ledger_is_hledger=$ishledger" -c "source autoload/ledger.vim" -c "sil exe '!/bin/echo result: g:ledger_bin=' .
 g:ledger_bin . ' and g:ledger_is_hledger=' . g:ledger_is_hledger" -c q                                                                                                                        
                done                                                                                                                                                                           
        done                                                                                                                                                                                   
}                                                                                                                                                                                              
/bin/git checkout 6d12e23e7261342f9dd4a23b9dd3a504454df002                                                                                                                                          
/bin/echo patch not applied                                                                                                                                                                    
PATH=                                                                                                                                                                                          
truthtable                                                                                                                                                                                     
/bin/git checkout a49ef3fbd49a7af124f04112e3292eee4e67110a                                                                                                                                     
/bin/echo patch applied                                                                                                                                                                        
truthtable     

My output:

$ ./poc.sh 
Previous HEAD position was a49ef3f fix: Make g:ledger_is_hledger set correctly
HEAD is now at 6d12e23 refactor: Use more expressive and consistend variable names
patch not applied
set: g:ledger_bin=ledger and g:ledger_is_hledger=0
result: g:ledger_bin=hledger and g:ledger_is_hledger=0
set: g:ledger_bin=ledger and g:ledger_is_hledger=1
result: g:ledger_bin=hledger and g:ledger_is_hledger=0
set: g:ledger_bin=ledger and g:ledger_is_hledger=
result: g:ledger_bin=hledger and g:ledger_is_hledger=1
set: g:ledger_bin=hledger and g:ledger_is_hledger=0
result: g:ledger_bin=hledger and g:ledger_is_hledger=0
set: g:ledger_bin=hledger and g:ledger_is_hledger=1
result: g:ledger_bin=hledger and g:ledger_is_hledger=0
set: g:ledger_bin=hledger and g:ledger_is_hledger=
result: g:ledger_bin=hledger and g:ledger_is_hledger=1
set: g:ledger_bin= and g:ledger_is_hledger=0
result: g:ledger_bin=hledger and g:ledger_is_hledger=0
set: g:ledger_bin= and g:ledger_is_hledger=1
result: g:ledger_bin=hledger and g:ledger_is_hledger=0
set: g:ledger_bin= and g:ledger_is_hledger=
result: g:ledger_bin=hledger and g:ledger_is_hledger=1
Previous HEAD position was 6d12e23 refactor: Use more expressive and consistend variable names
HEAD is now at a49ef3f fix: Make g:ledger_is_hledger set correctly
patch applied
set: g:ledger_bin=ledger and g:ledger_is_hledger=0
result: g:ledger_bin=hledger and g:ledger_is_hledger=0
set: g:ledger_bin=ledger and g:ledger_is_hledger=1
result: g:ledger_bin=hledger and g:ledger_is_hledger=1
set: g:ledger_bin=ledger and g:ledger_is_hledger=
result: g:ledger_bin=hledger and g:ledger_is_hledger=1
set: g:ledger_bin=hledger and g:ledger_is_hledger=0
result: g:ledger_bin=hledger and g:ledger_is_hledger=0
set: g:ledger_bin=hledger and g:ledger_is_hledger=1
result: g:ledger_bin=hledger and g:ledger_is_hledger=1
set: g:ledger_bin=hledger and g:ledger_is_hledger=
result: g:ledger_bin=hledger and g:ledger_is_hledger=1
set: g:ledger_bin= and g:ledger_is_hledger=0
result: g:ledger_bin=hledger and g:ledger_is_hledger=0
set: g:ledger_bin= and g:ledger_is_hledger=1
result: g:ledger_bin=hledger and g:ledger_is_hledger=1
set: g:ledger_bin= and g:ledger_is_hledger=
result: g:ledger_bin=hledger and g:ledger_is_hledger=1

Note in particular the lines

set: g:ledger_bin=hledger and g:ledger_is_hledger=1
result: g:ledger_bin=hledger and g:ledger_is_hledger=0

g:ledger_bin does not need to be unset for setting g:ledger_is_hledger=1 to cause it to end up being false.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Setting g:ledger_is_hledger makes it false

2 participants