AllKeys() now includes bound flag and env var keys - viper - [fork] go viper port for 9front
 (HTM) git clone git@git.drkhsh.at/viper.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c25387f10d265e6ed88fef3fe3d37bc757124983
 (DIR) parent e37b56e207dda4d79b9defe0548e960658ee8b6b
 (HTM) Author: akutz <sakutz@gmail.com>
       Date:   Thu, 29 Oct 2015 12:57:16 -0500
       
       AllKeys() now includes bound flag and env var keys
       
       This patch fixes a bug where the function `AllKeys()` did not include
       the keys for bound flags and environment variables.
       
       Diffstat:
         M viper.go                            |      16 ++++++++++++----
       
       1 file changed, 12 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/viper.go b/viper.go
       @@ -962,19 +962,27 @@ func (v *Viper) AllKeys() []string {
                m := map[string]struct{}{}
        
                for key, _ := range v.defaults {
       -                m[key] = struct{}{}
       +                m[strings.ToLower(key)] = struct{}{}
       +        }
       +
       +        for key, _ := range v.pflags {
       +                m[strings.ToLower(key)] = struct{}{}
       +        }
       +
       +        for key, _ := range v.env {
       +                m[strings.ToLower(key)] = struct{}{}
                }
        
                for key, _ := range v.config {
       -                m[key] = struct{}{}
       +                m[strings.ToLower(key)] = struct{}{}
                }
        
                for key, _ := range v.kvstore {
       -                m[key] = struct{}{}
       +                m[strings.ToLower(key)] = struct{}{}
                }
        
                for key, _ := range v.override {
       -                m[key] = struct{}{}
       +                m[strings.ToLower(key)] = struct{}{}
                }
        
                a := []string{}