2013-09-26 17:14:40 +02:00

39 lines
1.4 KiB
Plaintext

$NetBSD: patch-ae,v 1.6 2011/08/25 13:46:28 hans Exp $
--- ckucmd.c.orig 2005-12-18 22:57:18.000000000 +0000
+++ ckucmd.c
@@ -7115,8 +7115,19 @@ cmdconchk() {
#ifdef NOARROWKEYS
debug(F101,"cmdconchk NOARROWKEYS x","",0);
#else
+#if defined(__sun) && (defined(__amd64) || defined(__sparcv9))
+ struct sun_64_FILE {
+ unsigned char *_ptr; /* next character from/to here in buffer */
+ unsigned char *_base; /* the buffer */
+ unsigned char *_end; /* the end of the buffer */
+ ssize_t _cnt; /* number of available characters in buffer */
+ } *sun_64_stdin = (struct sun_64_FILE *)stdin;
+ debug(F101,"cmdconchk sun_64_stdin->_cnt","",sun_64_stdin->_cnt);
+ x = sun_64_stdin->_cnt;
+#else
debug(F101,"cmdconchk stdin->_cnt","",stdin->_cnt);
x = stdin->_cnt;
+#endif
#endif /* NOARROWKEYS */
#endif /* VMS */
if (x == 0) x = conchk();
@@ -7128,7 +7128,12 @@ cmdconchk() {
if (x == 0) x = conchk();
if (x < 0) x = 0;
#else /* USE_FILE_CNT */
-#ifdef USE_FILE_R /* FreeBSD, OpenBSD, etc */
+#if defined(__DragonFly__) && defined(feof_unlocked)
+ debug(F101,"cmdconchk stdin->_r","",((struct __FILE_public *)stdin)->_r);
+ x = ((struct __FILE_public *)stdin)->_r;
+ if (x == 0) x = conchk();
+ if (x < 0) x = 0;
+#elif defined(USE_FILE_R) /* FreeBSD, OpenBSD, etc */
debug(F101,"cmdconchk stdin->_r","",stdin->_r);
x = stdin->_r;
if (x == 0) x = conchk();