> From: Josh Purinton <http://www.joshpurinton.com/~josh> > Date: Fri, 24 Jan 2003 17:11:13 -0500 > > On Fri, Jan 24, 2003 at 04:32:01PM -0500, Robert wrote: > > OK, then the pseudo-ttys are probably working. "rk" doesn't issue a > > warning before it starts up, right? Something like > > > > Unable to open a pty > > Nope. > > I forgot to mention that I had to make some changes to system.h to > get it to compile the first time. To follow your instructions, I > unpacked the package in a new directory, and tried to compile: > > Under Linux, this happens if I try compiling the package with no > changes: > > joshp@blin:~/junk/rk-1.6.2$ make > gcc -g -c -o cmdline.o cmdline.c > In file included from cmdline.c:28: > system.h:114:24: sys/termio.h: No such file or directory > make: *** [cmdline.o] Error 1 I noticed that with my later machines, "sys/termio.h" is gone -- only "sys/termios.h" exists. > > Try getting rid of the "|| defined(FLG_LINUX_UNIX)" part and recompile. > > This will (presumably) try using the BSD tty interface. If you get > > compilation errors, then it's probably not right. > > After this change, I still get the same error. > > > You might add "|| defined(FLG_LINUX_UNIX)" to the end of this line > > #if defined(FLG_AIX_UNIX) || defined(FLG_SGI_UNIX) > > After this change, I still get the same error. Yeah, the include error would not be affected by this. Please change the "#include <sys/termio.h>" to "#include <sys/termios.h>" (in both places, just to be safe) in system.h. And then try the above changes. BTW, I just tried recompiling rk under my later machine (the one running Linux 2.4.19) and it worked. According to dpkg, the version of libncurses is 5.2.20020112a-7 (whatever that means!). And, strangely, libtermcap* is linked to libncurses. > Under Solaris, there are no fatal errors, but there aer the following > warnings: > gcc -g -o rk cmdline.o complete.o display.o functions.o getopt.o kbdbind.o > kbdsys.o reactive.o rk.o utl.o -lncurses -ltermcap > ld: warning: symbol `strcodes' has differing sizes: > (file /users/joshp/lib/libncurses.a(codes.o) value=0x674; file > /usr/ccs/lib/libtermcap.so value=0x62c); > /users/joshp/lib/libncurses.a(codes.o) definition taken > ld: warning: symbol `boolcodes' has differing sizes: > (file /users/joshp/lib/libncurses.a(codes.o) value=0xb4; file > /usr/ccs/lib/libtermcap.so value=0x98); > /users/joshp/lib/libncurses.a(codes.o) definition taken > ld: warning: symbol `ttytype' has differing sizes: > (file /users/joshp/lib/libncurses.a(lib_setup.o) value=0x100; file > /usr/ccs/lib/libtermcap.so value=0x400); > /users/joshp/lib/libncurses.a(lib_setup.o) definition taken and > updated with larger size > ld: warning: symbol `numcodes' has differing sizes: > (file /users/joshp/lib/libncurses.a(codes.o) value=0xa0; file > /usr/ccs/lib/libtermcap.so value=0x88); > /users/joshp/lib/libncurses.a(codes.o) definition taken I noticed that the Makefile has: # following options for Solaris #LIBS=-lcurses #LINTFLAGS= #CDEBUGFLAGS=-Xs -g #CDEBUGFLAGS=-Xs -O Did you try uncommenting the above lines out? > > I'll send you another e-mail after this one with my "rk" binary. Try that > > out. > > I tried the binary you sent in two ways: > * using just ./rk.bin > * starting it with your examples/rk.sh file (after touching ~/.rk.keys) > In neither case do I see the caret or predictions. I assume that you ran it on the Linux machine. That's too bad that it doesn't work. The low-level ioctl() tty interface must be different on your machine. I'm not sure why that would be. I'll try to do some research. > -- > Josh Purinton (http://www.joshpurinton.com/~josh) > I have discovered why humanity is not a whole lot better off > than it is, after all this time: what we truly most need to do > is often what we most feel like avoiding. - David Allen