dismal

Homepage: https://elpa.gnu.org/packages/dismal.html

Updated:

Summary

Dis Mode Ain't Lotus: Spreadsheet program Emacs

Commentary

ii.	Overview of how dismal-mode works


Date: Thu, 19 Dec 91 17:58:44 -0500
From: David Fox 
To: 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".

Dependencies