Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Zle patch - termok change

On Mar 7,  6:23pm, gwing@xxxxxxxxxxxxxxx wrote:
} Subject: Zle patch - termok change
} termok  now is flag based, not value based.
} termok == 0 indicates a `normal' working terminal - this is *opposite* to
}  the previous situation.

In that case, you should never use the form (!termok) because it reads as
if you mean the terminal is not OK.  Use (termok == 0) or make a new macro

#define nosetflag(X)	((X) == 0)

and then write (nosetflag(termok)).

} Flags for termok are defined and explained in zsh.h - currently TERM_NARROW
} is unused.

It looks like it is used in zlevarsetfn() ... you mean nobody explicitly
tests for it, but it is used in the sense that it makes termok != 0 ...

} If a terminal is evaluated as TERM_BAD then that status shouldn't go until
} $TERM is changed.

So that means that init_term() looks for TERM_BAD and doesn't change it?
Or what?

} Bart wrote:
} :Hmm.  Well, I dislike ..... because it presumes that init_term()
} :is independent of the values of "lines" and "columns".
} I can't see why lines/columns should be any way connected to init_term() .

They don't need to be as long as init_term() doesn't reset TERM_SHORT or


Then what happens to termok?  Am I going to get a crash because init_term()
has reset termok to zero?


#define issetflag(X, Y)		((X & (Y)) == Y)
#define isanysetflag(X, Y)	(X & (Y))

Is it really necessary for these to be different?  Why risk evaluating Y
twice in issetflag?

Bart Schaefer                             Brass Lantern Enterprises
http://www.well.com/user/barts            http://www.nbn.com/people/lantern

Messages sorted by: Reverse Date, Date, Thread, Author