Jin*_*ing 6 spreadsheet sc-spreadsheet
电子表格计算器sc是一个非常古老的基于控制台的程序。它的作用正如其名称所示。我在其手册页中找不到如何撤消操作。我目前将它与 RCS 一起使用,即. 在进行重大更改之前,在 RCS 中手动创建版本,并根据需要轮换回某个版本。我想知道是否有更好的方法来做到这一点。谢谢。
小智 2
这可能是虚假的希望,但使用来自 Fedora 的 7.16 RPM 源(可能是 Debian 软件包源)似乎可以撤消,具有 Yank 和 Pull 功能以及一些策略调整。
例如,=命令,在sc.c中,第1140行,改变了一行,
case '=':
if (locked_cell(currow, curcol))
break;
/* set mark 0 */
savedrow[27] = currow;
savedcol[27] = curcol;
savedstrow[27] = strow;
savedstcol[27] = stcol;
/* btiffin, yank current cell to buffer 0 */
yankr(lookat(currow, curcol), lookat(currow, curcol));
(void) sprintf(line,"let %s = ", v_name(currow, curcol));
linelim = strlen(line);
insert_mode();
break;
Run Code Online (Sandbox Code Playgroud)
调用将yankr
当前单元格内容放入“0”缓冲区中,就像“x”命令或“yy”一样。因此,如果犯了错误,至少是简单的输入,“pp”会将旧的单元格内容放回原处。
这可能是错误的,但它在这里发挥了魅力。接下来是yankr
范围操作。乍一看,应该不再需要 50 个左右的战略调用来在yankr(start, end)
出现错误时依靠 Pull 命令。至少达到一个水平。
前四个实验成功了
= LET, < LEFTSTRING, > RIGHTSTRING and \ LABEL
Run Code Online (Sandbox Code Playgroud)
使用时的“边缘”感觉已经sc
大大减弱。用例不仅仅是电子表格,而是从外部脚本驱动电子表格并通过简单的popen
调用设置/获取单元格值,顺便说一句,在 COBOL 中,GnuCOBOL。
请注意,这只是今天。明天可能会发现致命的错误头脑,似乎是一个简单的解决方案。嗯,现在思考一下,在点击“发布”之前先读一遍,它可能不是缓冲区“0”,...更多阅读源代码,无论如何点击“发布”。