tkacik@kyzyl.mi.org (Tom Tkacik) (09/23/90)
There seem to be a couple of bugs in sc6.8. Included are a couple of patches I made. 1. ^W does not work properly. ^W is supposed to return a cell's expression. In sc6.8 is returns the entire edit line followed by the cell's expression. The fix is in sc.c. I fixed it by returning it to what it was in sc6.1. I do not know why it had been changed. 2. When the l command is used at the last allocated column of the table, or the j command is used at the last row, the table is grown, but the cursor does not move. Patch is to cmd.c. 3. When using g to goto a column that is not yet in the table, (eg., goto [v] dz0), the cursor ends up in column ei0. It appears that the table grows by 10 columns beyond the selected column, and the cusor goes to the last column. It works when extending the number of rows. A typo in vmtbl.c. -- Tom Tkacik tkacik@kyzyl.mi.org Speaking only for myself here in Royal Oak. ------------------------------------------------ *** sc.c~ Thu Sep 13 08:50:17 1990 --- sc.c Sat Sep 22 21:35:25 1990 *************** *** 871,881 case ctl('w'): /* insert variable expression */ if (linelim > 0) { - char *temp, *temp1; - int templim; - - temp = strcpy(xmalloc((unsigned)(strlen(line)+1)),line); - templim = linelim; editexp(currow,curcol); temp1= strcpy(xmalloc((unsigned)(strlen(line)+1)),line); strcpy(line, temp); --- 871,876 ----- case ctl('w'): /* insert variable expression */ if (linelim > 0) { editexp(currow,curcol); } break; *************** *** 877,888 temp = strcpy(xmalloc((unsigned)(strlen(line)+1)),line); templim = linelim; editexp(currow,curcol); - temp1= strcpy(xmalloc((unsigned)(strlen(line)+1)),line); - strcpy(line, temp); - linelim = templim; - ins_string(temp1); - xfree(temp); - xfree(temp1); } break; --- 872,877 ----- case ctl('w'): /* insert variable expression */ if (linelim > 0) { editexp(currow,curcol); } break; *** cmds.c~ Thu Sep 13 08:50:28 1990 --- cmds.c Sat Sep 15 19:16:06 1990 *************** *** 1277,1282 else if (!growtbl(GROWCOL, 0, arg)) /* get as much as needed */ break; while(col_hidden[curcol]&&(curcol<maxcols-1)) curcol++; } --- 1277,1284 ----- else if (!growtbl(GROWCOL, 0, arg)) /* get as much as needed */ break; + else + curcol++; while(col_hidden[curcol]&&(curcol<maxcols-1)) curcol++; } *************** *** 1292,1297 else if (!growtbl(GROWROW, arg, 0)) /* get as much as needed */ break; while (row_hidden[currow]&&(currow<maxrows-1)) currow++; } --- 1294,1301 ----- else if (!growtbl(GROWROW, arg, 0)) /* get as much as needed */ break; + else + currow++; while (row_hidden[currow]&&(currow<maxrows-1)) currow++; } *** vmtbl.c~ Thu Sep 13 08:51:08 1990 --- vmtbl.c Sun Sep 16 00:04:18 1990 *************** *** 49,55 if (*colp < 0) *colp = 0; else if (*colp >= maxcols) ! { if (!growtbl(GROWCOL, 0, *colp)); *colp = maxcols-1; } } --- 49,55 ----- if (*colp < 0) *colp = 0; else if (*colp >= maxcols) ! { if (!growtbl(GROWCOL, 0, *colp)) *colp = maxcols-1; } } -- Tom Tkacik tkacik@kyzyl.mi.org Speaking only for myself here in Royal Oak.