Skip to content

Instantly share code, notes, and snippets.

@NightMachinery
Last active August 8, 2019 16:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NightMachinery/32689e786a3b7f5865a042d49b884b57 to your computer and use it in GitHub Desktop.
Save NightMachinery/32689e786a3b7f5865a042d49b884b57 to your computer and use it in GitHub Desktop.
(( $+functions[dvar] )) || function dvar() {
local pre=''
test -z "$2" || pre="CODE $2 | "
echo "$pre$(typeset -p "$1" 2>&1)"
echo "$pre$1 in env: $(printenv "$1")"
}
localesc() {
echo Innocence
}
tlocalesc() {
dvar music_dir t0
local music_dir=outside1
dvar music_dir t1
# localesc
music_dir=hi localesc
dvar music_dir t2
}
@NightMachinery
Copy link
Author

NightMachinery commented Aug 8, 2019

Somehow music_dir gets unset after calling tlocalesc.

$ zsh --version
zsh 5.7.1 (x86_64-apple-darwin18.6.0)
$ zsh -f
Fereidoons-MacBook-Pro% source ~/scripts/zsh/auto-load/scratchpad.zsh
Fereidoons-MacBook-Pro% dvar music_dir
dvar:typeset:3: no such variable: music_dir
music_dir in env:
Fereidoons-MacBook-Pro% music_dir=good
Fereidoons-MacBook-Pro% dvar music_dir
typeset -g music_dir=good
music_dir in env:
Fereidoons-MacBook-Pro% tlocalesc
CODE t0 | typeset -g music_dir=good
CODE t0 | music_dir in env:
CODE t1 | typeset -g music_dir=outside1
CODE t1 | music_dir in env:
Innocence
CODE t2 | typeset -g music_dir=outside1
CODE t2 | music_dir in env:
Fereidoons-MacBook-Pro% dvar music_dir
dvar:typeset:3: no such variable: music_dir
music_dir in env:

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