[comp.unix.questions] Help with I/O

lriggins@afit-ab.arpa (L. Maurice Riggins) (10/18/87)

I've almost finished the termcap file for a new VT100 emulator.  One problem
is driving me crazy though.  I have to set stty -nl because the emulator
return key can only transmit a CR.  According to the manual, this also causes
CR's and LF's leaving the UNIX host to be mapped to CR-LF.

This results in two problems.

1.  Since the emulator doesn't strip one of the pair during file capture,
    captured text is double-spaced.

2.  VI appears to be using LF as a down cursor motion when it would be
    quicker.  When it does the cursor moves to the beginning of the line or
    closer to it than it really is in the text.  I suspect this is caused by
    the output mapping to CR-LF.  I'm not sure if vi uses the carriage return
    as cursor motion...I suspect it does, but that doesn't seem to be causing
    any problems.  For instance, since the emulator backspace is destructive,
    I had to remove bs from the termcap.  Vi seems to move the cursor to the
    beginning of the line (CR?) and tab or nd space it back out.  That's ok.

I've tested this using stty nl and everything works fine, text capture and
editor, but I have to manually type Ctrl-J to execute commands in the shell.

Can I map an incoming CR to LF?  Any other suggestions?

My termcap, stty and vi settings follow.  Hope they help.

Thanks in advance.

d1|vt100|vt-100|pt100|pt-100|dec vt100:\
        :al=\E[L:AL=\E[%dL:am:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\
        :cm=\E[%i%d;%dH:co#80:cs=\E[%i%d;%dr:ct=\E[g:\
        :dc=\E[P:DC=\E[%dP:dl=\E[M:DL=\E[%dM:do=\E[B:DO=\E[%dB:ei=:\
        :ho=\E[H:ic=\E[@:IC=\E[%d@:im=:if=/usr/lib/tabset/vt100:\
        :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
        :kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:kn#4:kr=\EOC:ku=\EOA:\
        :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
        :le=\E[D:LE=\E[%dD:li#24:ll=\E[24;1H:\
        :ms:nd=\E[C:nw=\EE:pt:rc=\E8:ri=\E[C:RI=\E[%dC:\
        :sc=\E7\:se=\E[m:sf=\ED:so=\E[7m:sr=5\EM:st=\EH:\
        :ue=\E[m:up=\E[A:UP=\E[%dA:us=\E[4m:xn:xo\

new tty, speed 1200 baud, 0 rows, 0 columns
even odd -raw -nl echo -lcase -tandem tabs -cbreak
crt: (crtbs crterase crtkill ctlecho) -tostop
-tilde -flusho -mdmbuf -litout -pass8 -nohang
-pendin -decctlq -noflsh
erase  kill   werase rprnt  flush  lnext  susp   intr   quit   stop   eof
^H     ^K     ^W     ^R     ^O     ^V     ^Z/^Y  ^C     ^\     ^S/^Q  ^D

noautoindent            nonumber                        noslowopen
autoprint               open                            nosourceany
noautowrite             nooptimize                      tabstop=8
nobeautify              paragraphs=IPLPPPQPP LIpplpipbp taglength=0
directory=/tmp          prompt                          tags=tags /usr/lib/tags
noedcompatible          noreadonly                      term=vt100
noerrorbells            redraw                          noterse
hardtabs=8              remap                           notimeout
noignorecase            report=5                        ttytype=vt100
nolisp                  scroll=8                        nowarn
nolist                  sections=NHSHH HUnhsh           window=16
magic                   shell=/bin/csh                  wrapscan
mesg                    shiftwidth=8                    wrapmargin=0
nomodeline              noshowmatch                     nowriteany


-- 

Maurice                lriggins@afit-ab.ARPA