Como desfazer na calculadora de planilha eletrônica sc?

3

Calculadora de planilha sc é um programa muito antigo baseado em console. Faz o que o nome diz. Não consigo encontrar como desfazer uma operação em sua página man. Eu atualmente uso junto com o RCS, ie . crie versões manualmente no RCS antes de grandes alterações e gire de volta para uma versão, se necessário. Eu estou querendo saber se existe uma maneira melhor de fazer isso. Obrigado.

    
por Jing 07.11.2012 / 08:22

3 respostas

1

Isto pode ser falso, mas desfazer parece ser possível com a fonte de 7.16 RPM do Fedora, provavelmente os pacotes Debian fontes , com os recursos Yank e Pull, e alguns ajustes estratégicos.

Por exemplo, o comando =, em sc.c, linha 1140, uma mudança de linha,

            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;

A chamada para yankr coloca o conteúdo atual da célula no buffer '0', como diria o comando 'x' ou 'yy'. Então, se um erro for cometido, pelo menos entradas simples, 'pp' colocará o conteúdo da célula antiga de volta no lugar.

Isso pode estar errado, mas funcionou o charme aqui. O próximo passo é yankr com operações de intervalo. De uma olhada rápida, não deve haver mais de 50 chamadas estratégicas para yankr(start, end) para que os comandos Pull sejam usados quando erros são cometidos. Pelo menos para um nível.

Primeiras quatro experiências tiveram sucesso,

= LET, < LEFTSTRING, > RIGHTSTRING and \ LABEL

e as sensações 'on edge' ao usar sc estão muito diminuídas. O caso de uso não é apenas para a planilha, mas sim para direcionar a planilha de scripts externos e configurar / obter valores de célula com simples popen chamadas, no COBOL, a propósito, GnuCOBOL .

Note que isto é apenas hoje. Poderia descobrir a encenação fatal, do que parece ser uma solução simples, amanhã. Hmmm, agora ponderando, lendo isso antes de apertar Post, pode não ser buffer '0', ... mais leitura de códigos-fonte, clicando em Postar mesmo assim.

    
por 17.04.2015 / 07:55
4

Estou trabalhando em uma planilha de terminal com base em "sc". Tem desfazer / refazer, mapeamento e outras coisas. Se estiver interessado, você pode dar uma olhada em: link

    
por 02.11.2014 / 14:21
1

O pacote Debian conhece Desfazer (atalhos de teclado u , veja também esta página do manual ), então talvez você possa grab seu pacote fonte e compile em seu sistema.

    
por 07.11.2012 / 10:49