David Lawyer <[EMAIL PROTECTED]> writes: > But if I start elinks, then these setting are apparently > changed by elinks to -parenb and cs8.
I think I fixed this in ELinks 0.13.GIT.
Could you test the osdep.c part of the patch below?
If it works OK, I can then apply it to the 0.11 and 0.12 branches too.
commit 87f1661314476e96c0f4010070b92bad2aba67af
Author: Kalle Olavi Niemitalo <[EMAIL PROTECTED]>
AuthorDate: Sun Jan 13 19:23:03 2008 +0200
Commit: Kalle Olavi Niemitalo <[EMAIL PROTECTED]>
CommitDate: Sun Jan 13 19:26:00 2008 +0200
Bug 54: Don't force 8-bit characters and no parity.
Actually, don't use the cfmakeraw function at all,
and don't look for it during configure either.
diff --git a/NEWS b/NEWS
index f0b1931..b246ded 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,9 @@ ELinks 0.13.GIT now:
To be released as ELinks 0.13.0.
+* Bug 54, Debian bug 338402: Don't force the terminal to 8 bits with
+ no parity.
+
ELinks 0.12.GIT now:
--------------------
diff --git a/configure.in b/configure.in
index 9a05ee1..09a4016 100644
--- a/configure.in
+++ b/configure.in
@@ -290,7 +290,7 @@ AC_PROG_GCC_TRADITIONAL
AC_FUNC_MEMCMP
AC_FUNC_MMAP
AC_FUNC_STRFTIME
-AC_CHECK_FUNCS(atoll cfmakeraw gethostbyaddr herror strerror)
+AC_CHECK_FUNCS(atoll gethostbyaddr herror strerror)
AC_CHECK_FUNCS(popen uname access chmod alarm timegm mremap)
AC_CHECK_FUNCS(strcasecmp strncasecmp strcasestr strstr strchr strrchr)
AC_CHECK_FUNCS(memmove bcopy stpcpy strdup index isdigit mempcpy memrchr)
diff --git a/src/osdep/osdep.c b/src/osdep/osdep.c
index d7705be..b4ea296 100644
--- a/src/osdep/osdep.c
+++ b/src/osdep/osdep.c
@@ -805,20 +805,16 @@ unblock_stdin(void)
void
elinks_cfmakeraw(struct termios *t)
{
-#ifdef HAVE_CFMAKERAW
- cfmakeraw(t);
-#ifdef VMIN
- t->c_cc[VMIN] = 1; /* cfmakeraw() is broken on AIX --mikulas */
-#endif
-#else
+ /* Bug 54: Do not alter the character-size and parity bits in
+ * t->c_cflag. If they have unusual values, the terminal
+ * probably requires those and won't work if ELinks changes
+ * the flags. The cfmakeraw function would set 8-bit characters
+ * and no parity, so don't use that. */
t->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
t->c_oflag &= ~OPOST;
t->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
- t->c_cflag &= ~(CSIZE|PARENB);
- t->c_cflag |= CS8;
t->c_cc[VMIN] = 1;
t->c_cc[VTIME] = 0;
-#endif
}
#if !defined(CONFIG_MOUSE) || (!defined(CONFIG_GPM) &&
!defined(CONFIG_SYSMOUSE) && !defined(OS2_MOUSE))
pgpXUFF9l8yMs.pgp
Description: PGP signature

