On Jan 30, 2008 2:28 AM, Karl Hasselström <kha@xxxxxxxxxxx> wrote: > You could write it kind of like this: > > def e(key): return os.environ.get(key, None) > def c(key): return config.get(key) > editor = filter(None, [e('GIT_EDITOR'), c('stgit.editor'), c('core.editor'), > e('VISUAL'), e('EDITOR'), 'vi'])[0] Too clever by half if you ask me. Why not just: editor = (os.environ.get('GIT_EDITOR') or config.get('stgit.editor') or config.get('core.editor') or os.environ.get('VISUAL') or os.environ.get('EDITOR') or 'vi') And be done with it? > Of course, if we're going to have code like this in several places > (you already mentioned the pager), we could build a function like > this: > > editor = get_config(['GIT_EDITOR', 'stgit.editor', 'core.editor', > 'VISUAL', 'EDITOR'], default = 'vi') > > that would differentiate between env variables and conf keys by > looking for dots in the name or something. def get_config(keys, default=None): rv = default for k in keys: if '.' in k: d = config else: d = os.environ if k in d: rv = d[k] break return rv j. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html