On 2023-01-25 20:27, Ray Andrews wrote:
You've copy-pasted wrong somewhere and have $( where you should have ${for name in ${(k)parameters}; do if [[ -z ${(P)name} ]]; then print -r -- $name fi doneThat's what I'm running. I suspected the same thing but ....
Strange, I fired up the computer today, run exactly the same command and no message. Fool around for a while and it comes back. Restart shell ... no change. Restart terminal and it goes away. I'll try to figure out exactly what triggers it. Must be some environment corruption.
Bart:In your (temporarily name-shortened) describe-params, I'm trying to capture the output to a variable for further processing:
#describe-params () dp () { emulate -L zsh -o extendedglob ddescribeparams=() local line= set -- ${(ok)parameters[(I)${~${(j.|.)@}}]} while ((ARGC)) do # print -rn -- "${parameters[$1]} " line+="${parameters[$1]} " if [[ -${parameters[$1]}- = *-hideval-* ]] then # If param is hidden, typeset won't show anything so use this: # print -r -- ${(q-)1} line+="${(q-)1}" else # typeset -m -- ${(b)1} line+=$( typeset -m -- ${(b)1} ) fi ddescribeparams+="$line" line= shift done print -l -- $ddescribeparams } ... line+=$( typeset -m -- ${(b)1} ) ... isn't working with eg: $ typeset -m yellow yellow=$'\C-[[33;1m'... the predictable thing is happening and the color code gets applied and my terminal turns yellow. How can I capture the value of yellow without that problem? I've run into this before but I can't remember the solution.