Homepage: https://elpa.gnu.org/packages/dismal.html
Updated:
Dis Mode Ain't Lotus: Spreadsheet program Emacs
ii. Overview of how dismal-mode works Date: Thu, 19 Dec 91 17:58:44 -0500 From: David FoxTo: Frank_Ritter@SHAMO.SOAR.CS.CMU.EDU Subject: dismal results Dismal is something I've worked on for quite a while on and off. I haven't been working on it lately, I've been hoping someone would take over for me. I'll give you a call, or you can call me: Office: 212-998-3389 Home, weekdays: 212-874-7382 Home, weekends: 908-273-3667 Frank Ritter ++ 44 (602) 436 265 (h) ++ 44 (602) 515 292 (w) now at the U. of Nottingham, England Ritter doubled it in size and scope, and is now hoping for someone like Fox was hoping. INSTRUCTIONS FOR PRELIMINARY VERSION: Commands are similar to sc, "=" to enter a cell value, etc. Numbers can be entered like numbers. Use dis-find-file to create or retrieve a spreadsheet. more help is available from the menu (C-c C-m), from mode help (C-h m), and from the manual that comes with dismal. dismal.info, available on the menu under doc. Discussion: The spreadsheet is stored in the buffer local variable dismal-matrix. This is a two dimensional array where each element contains a five-tuple: exp - the expression whose value is to be displayed in the cell val - the most recent result of evaluating the expression dep - a list of the addresses of the cells that use this cell's value mrk - a field used by some of the algorithms for temporary marks fmt - a function that takes the value and returns a formatted string The expression is a s-expression that, when eval-ed, returns the current value of the expression. The other cells of the spreadsheet can be referred to in this expression using the four cell reference functions: dismal-r-c-, dismal-rfc-, dismal-r-cf, dismal-rfcf. These functions are produced when the user inputs cell references of the form A1, A$1, A1$, and A$1$ respectively, where the meaning is that the reference is "fixed" in the dimension the dollar sign follows. Thus if you insert a new row zero, the reference A1 will become A2, but A1$ remains A1$. The four functions take row and column as arguments. When the value field is non-nil, it is used rather than eval-ing the expression. When a cell's expression changes a function is called that recursively sets the value field of all its dependents to nil. Note that that value field need have no particular type, as long as the format function can convert it to a string. The format function takes four arguments and returns a string: (format value width decimal extra) Value is the value to be formatted. Width is the total length of the returned string. Decimal is the number of characters to follow the decimal point, if this is meaningful. Finally, extra is the total width of the empty cells to this cell's right. When a left justified string is formatted, it is allowed to overlap any empty cells to its right. Tiny fonts let you open a window on a big display as large as 220 col by 100 rows. This is hard to read though. iii. What you must do to start up Open a file with extension ".dis".