+++ /dev/null
-diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
---- tuxtxt_orig/tuxtxt.c 2009-01-29 21:38:42.000000000 +0100
-+++ tuxtxt/tuxtxt.c 2009-01-29 21:44:29.000000000 +0100
-@@ -173,6 +173,7 @@
- char cvs_revision[] = "$Revision: 1.108 $";
-
- int cnt=0;
-+ int rc_num = 0;
- #if !TUXTXT_CFG_STANDALONE
- int initialized = tuxtxt_init();
- if ( initialized )
-@@ -186,7 +187,7 @@
-
- tuxtxt_SetRenderingDefaults(&renderinfo);
- /* get params */
-- tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = rc = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
-+ tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
- if (argc==1)
- {
- printf("\nUSAGE: tuxtxt vtpid\n");
-@@ -204,8 +205,8 @@
- perror("TuxTxt <open /dev/fb/0>");
- return 0;
- }
-- rc=-1;
-- while(1)
-+ rc[0] = rc[1] =-1;
-+ while(rc_num < 2)
- {
- struct stat s;
- char tmp[128];
-@@ -213,23 +214,26 @@
- if (stat(tmp, &s))
- break;
- /* open Remote Control */
-- if ((rc=open(tmp, O_RDONLY)) == -1)
-+ if ((rc[rc_num]=open(tmp, O_RDONLY)) == -1)
- {
- perror("TuxTxt <open remote control>");
- return 0;
- }
-- if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
-+ if (ioctl(rc[rc_num], EVIOCGNAME(128), tmp) < 0)
- perror("EVIOCGNAME failed");
-- if (strstr(tmp, "remote control"))
-- break;
-- close(rc);
-- rc=-1;
-+ if (!strstr(tmp, "remote control"))
-+ {
-+ close(rc[rc_num]);
-+ rc[rc_num] = -1;
-+ }
-+ else
-+ ++rc_num;
- ++cnt;
- }
-
-- if (rc == -1)
-+ if (rc[0] == -1)
- {
-- printf("couldnt find correct input device!!!\n");
-+ printf("couldnt find usable input device!!!\n");
- return -1;
- }
-
-@@ -247,7 +251,7 @@
- renderinfo.sy = 30;
- renderinfo.ey = 555;
-
-- if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || rc == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
-+ if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
- {
- printf("TuxTxt <Invalid Param(s)>\n");
- return;
-@@ -623,7 +627,8 @@
- writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]);
-
- /* setup rc */
-- ioctl(rc, RC_IOCTL_BCODES, 1);
-+ if (rc[0] >= 0) ioctl(rc[0], RC_IOCTL_BCODES, 1);
-+ if (rc[1] >= 0) ioctl(rc[1], RC_IOCTL_BCODES, 1);
-
-
-
-@@ -682,9 +687,12 @@
- close(lcd);
-
- /* close rc */
-- close(rc);
-+ if (rc[0] >= 0)
-+ close(rc[0]);
-+ if (rc[1] >= 0)
-+ close(rc[1]);
-
-- lcd = rc = -1;
-+ lcd = rc[0] = rc[1] = -1;
-
- if (hotlistchanged)
- savehotlist();
-@@ -2819,20 +2827,28 @@
- timeout.tv_sec = 0;
- timeout.tv_usec = 100000;
- /* get code */
-- if (rc >= 0)
-+ if (rc[0] >= 0)
-+ {
-+ FD_SET(rc[0], &rset);
-+ if (rc[0] > maxfd)
-+ {
-+ maxfd = rc[0];
-+ }
-+ }
-+ if (rc[1] >= 0)
- {
-- FD_SET(rc, &rset);
-- if (rc > maxfd)
-+ FD_SET(rc[1], &rset);
-+ if (rc[1] > maxfd)
- {
-- maxfd = rc;
-+ maxfd = rc[1];
- }
- }
- if (select(maxfd + 1, &rset, NULL, NULL, &timeout) > 0)
- {
-- if (rc >= 0 && FD_ISSET(rc, &rset))
-+ if (rc[0] >= 0 && FD_ISSET(rc[0], &rset))
- {
- #if HAVE_DVB_API_VERSION < 3
-- read(rc, &RCCode, 2);
-+ read(rc[0], &RCCode, 2);
- }
- if (RCCode != LastKey)
- {
-@@ -2842,7 +2858,11 @@
- {
- switch (RCCode)
- #else
-- read(rc, &ev, sizeof(ev));
-+ read(rc[0], &ev, sizeof(ev));
-+ }
-+ else if (rc[1] >= 0 && FD_ISSET(rc[1], &rset))
-+ {
-+ read(rc[1], &ev, sizeof(ev));
- }
- if (ev.value)
- {
-Only in tuxtxt_orig/: tuxtxt.c.orig
-diff -u tuxtxt_orig/tuxtxt.h tuxtxt/tuxtxt.h
---- tuxtxt_orig/tuxtxt.h 2009-01-29 21:38:18.000000000 +0100
-+++ tuxtxt/tuxtxt.h 2009-01-29 21:44:29.000000000 +0100
-@@ -209,7 +209,7 @@
- int hotlist[10];
- int maxhotlist;
-
--int rc, lcd;
-+int rc[2], lcd;
- int lastpage;
- int savedscreenmode;
- char dumpl25;