janssen@parc.xerox.com (Bill Janssen) (06/09/90)
[ I don't really know if anyone is tracking tm... ]
---------- Forwarded message begins here ----------
X-Andrew-Authenticated-As: 0;holmes.parc.xerox.com;Operator
From vanMelle.pa@Xerox.COM Fri Jun 8 19:22:01 1990
Received: from Xerox.COM by pooh.parc.xerox.com with SMTP
(5.61+/IDA-1.2.8/gandalf) id AA13447; Fri, 8 Jun 90 19:21:58 PDT
Received: from Semillon.ms by ArpaGateway.ms ; 08 JUN 90 19:17:33 PDT
Date: 8 Jun 90 19:17 PDT
From: vanMelle.pa@Xerox.COM
Subject: tm fix
To: janssen@parc.xerox.com
Cc: vanMelle.pa@Xerox.COM
Message-Id: <900608-191733-5441@Xerox>
I changed line 766 in tm.c to read
action=escapes[(unsigned char)*end];
(the cast is what's added.)
I was thinking that the ^A handler wouldn't be so bad if it just had a
sanity check in it. Like, if it encounters an end of line or non-ascii
character before it overflows its buffer or encounters ^B, it should just
punt to the regular character handler. So I made that change to
~vanmelle/andrew/mytm/tm.c as well, and it seems to work.
Bill
94 % diff -c /a/contrib/tm/tm.c ~vanmelle/andrew/mytm/tm.c
*** /a/contrib/tm/tm.c Fri Apr 13 02:22:13 1990
--- /net/piglet/piglet/vanmelle/andrew/mytm/tm.c Fri Jun 8
18:59:59 1990
***************
*** 666,676 ****
--- 666,682 ----
{
char *dir=self->parseBuf+self->parseLen;
int left=sizeof(self->parseBuf)-self->parseLen;
+ char *origbuf = buf;
if(*buf=='\001')
buf++;
while(len-->0 && *buf!='\002' && left>0){
+ if (*buf < ' ' || *buf >= '\177')
+ { /* Unlikely character, assume he's not really calling
readDir */
+ termulator_WriteChars(self, origbuf, 1);
+ return origbuf+1;
+ }
*dir++= *buf++;
self->parseLen++;
left--;
***************
*** 763,769 ****
if(action==NULL){
do{
! action=escapes[*end];
if(action!=NULL)
break;
end++;
--- 769,775 ----
if(action==NULL){
do{
! action=escapes[(unsigned char)*end];
if(action!=NULL)
break;
end++;