-#define putc(x, p) (--(p)->_cnt >= 0 ? (*(p)->_ptr++ = (x)) :\
- ((p)->_flag&_IOLBF && -(p)->_cnt <= (p)->_bufsiz && (x)!='\n' ?\
- *(p)->_ptr++ = (x) : _flsbuf(x, p)))
+#ifndef lint
+#define putc(x, p) (--(p)->_cnt >= 0 ?\
+ (int)(*(unsigned char *)(p)->_ptr++ = (x)) :\
+ (((p)->_flag & _IOLBF) && -(p)->_cnt < (p)->_bufsiz ?\
+ ((*(p)->_ptr = (x)) != '\n' ?\
+ (int)(*(unsigned char *)(p)->_ptr++) :\
+ _flsbuf(*(unsigned char *)(p)->_ptr, p)) :\
+ _flsbuf((unsigned char)(x), p)))
+#endif not lint