Nicholas Marriott added the comment: I can also reproduce this on OpenBSD/amd64 and was one of the people who discussed it with the submitter before he created this report.
> So what's the definition of struct winsize on these systems? The definition of struct winsize on both 32-bit and 64-bit OpenBSD platforms is: struct winsize { unsigned short ws_row; /* rows, in characters */ unsigned short ws_col; /* columns, in characters */ unsigned short ws_xpixel; /* horizontal size, pixels */ unsigned short ws_ypixel; /* vertical size, pixels */ }; We have verified that (sizeof (struct winsize)) is 8 on all three platforms (32-bit i386, and 64-bit amd64 and sparc64). > Also, why do you think this is a bug in Python? AFAICT, the specific > ioctl call does not occur in Python, but in your own code. This Python code fails: fcntl.ioctl(fd, termios.TIOCSWINSZ, struct.pack("HHHH",80,25,0,0)) (Error: IOError: [Errno 25] Inappropriate ioctl for device) This code also fails with the same error message (I would expect EINVAL instead): fcntl.ioctl(0, termios.TIOCSWINSZ, "") Corresponding test C code to call the ioctl (as listed in a previous message) works without problems on all three platforms. I don't know how Python fcntl.ioctl works and perhaps the problem is not Python, but I am having to try fairly hard to think what else could be involved. The constant appears to be the correct ioctl number. (Python code: python2.5 -c 'import termios; print "%d" % (termios.TIOCSWINSZ)' matches C code: #include <termios.h> int main(void) { printf("%ld\n", TIOCSWINSZ); } on all three platforms.) I am told it works on Linux. However, Linux declares ioctl as: int ioctl(int d, int request, ...); So 'request' is 32-bits, but on OpenBSD ioctl is declared as: int ioctl(int d, unsigned long request, ...); So on amd64 and sparc64, 'request' is 64-bits. Could this be a factor? -- Nicholas. ---------- nosy: +nicm __________________________________ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1471> __________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com