Gcc 4 outputs a bunch of compiler warnings about string pointers that differ in signedness. The warnings in a zsh build are limited to the zle string functions defined in zle.h. I came up with 2 solutions: (1) change the ZS_str* macros to cast their args to (char*), or (2) introduce some static inline functions to handle the casts. The advantage of the latter is that it doesn't hide pointer-conversion errors behind forced casts. For instance, after I compiled the inline version it showed several places in the code that were using ZWC() on strings instead of ZWS() (which I already fixed and checked in). As for the portability of "inline", there is an autoconf macro that I included, AC_C_INLINE, that redefines the word "inline" as appropriate. The rsync package used a static inline function in its rsync.h for many years (thought I eliminated it recently), so it would seem to be quite portable. Comments? ..wayne..