home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 498a.lha / SC_v6.7 / todo < prev    next >
Text File  |  1991-04-08  |  4KB  |  81 lines

  1. done/tested: (Jeff Buhrt)
  2. 6.7
  3. 1) added a per row memory allocation
  4.     -runs in about 1/2 run time and 1/3 the space of 6.6vm.1
  5.     -insert/delete row now just moves pointers (# == maxrow+1-currow)
  6.         and blanks one row (of columns (maxcol))
  7.     -as the number of cells grows the size is more linear
  8.         (no more ##Meg images except for 100,000's of rows....)
  9.     -row to column pointer translation is done by a macro (ATBL)
  10.         that returns a pointer to the cell pointer.
  11.         *ATBL would be a pointer to a *ent (cell).
  12.     -the maximum # of columns is limited by ABSMAXCOLS or
  13.         sizeof(struct ent *)*maxcols (whichever is smaller)
  14.         (702 * 4 = 2808 is no real limit even for 286 large model)
  15.     -the maximum # of rows is limited by the virtual memory limit or
  16.         sizeof(struct ent **)*maxrows (whichever is smaller)
  17.         (4*X=64k, X=16384 rows (excluding malloc overhead) on
  18.             a '286 large model. Even w/ 3.25Meg and 10Mhz)
  19.         (plus of course any memory used for cells)
  20. 2) dolookup (int vs double)
  21. 3) dolookup calling eval w/ ent * not enode *
  22.      (dolookup called w/ ent * not enode *)
  23. 4) cleaned up a lot of .... *x = 0 to  (.... *)0 (cmds, interp)
  24. 5) psc: fwidth/precision were reversed on the output
  25. 6) Backup copy (on save) using same mode to [path/]#file~
  26.      (will prompt if a backup fails)
  27. 7) put y/n prompt function into yn_ask(mesg)
  28. 8) found a move(x,y) in sc -> move(y,x) and only move when needed
  29. 9) we use FullUpdate || changed (to see if ANY cells changed) 
  30.     before trying to redraw the screen in update
  31.     (now we don't try to redraw every time a key is hit)
  32.     -if we are stand[ing]out we do not create a cell just to force a
  33.      standout inside the repaint section of update()
  34.     -only draw blank cells if we cleared it or it is standing out
  35.     reason: the less work (what to update) curses has to do, the faster
  36.         a screen update will be (less cpu required)
  37. 14) {insert, delete}col replaced w/ {open,close}col(currow, numcol_to_insert)
  38.     (limits looping)
  39. 6.7.1.1
  40. 15) goto nonexistant cell may loop
  41. 16) make sure that startup size will at least fill the screen w/ cells.
  42. 17) added version.c
  43. 6.7.1.2
  44. 18) When we would normally die w/o saving (SIGQUIT, etc), we now ask
  45.     if people would like to save the current spreadsheet.
  46.     If 'y', saves to the current file name, otherwise ~/SC.SAVE,
  47.     then /tmp/SC.SAVE if all else fails.
  48. 6.7.1.3
  49. 19) don't use malloc.c for production code
  50. 20) progname is now truncated to just the basename (systems w/ long paths
  51.     caused problems)
  52.  
  53. todo:
  54. 1) autobackup of things typed in.
  55.     idea: each cell change output to a stdio open file
  56.         in the save format, fflush() every so often...
  57.         (diffs w/r to the original file)
  58. 2) lock/freeze (glue down) a section of the screen (the rest of the screen
  59.     scrolls but a row/column/block stays fixed on the screen)
  60. 3) (seems ok, but check) FIX the insert/delete row functions.
  61.     a) column of equations (EX: E50 = E49+D50)
  62.     b) insert a few rows, look at the equations below the insert point
  63.     c) delete the inserted rows
  64.     d) The equations should now be the same as in (a), but they are not...
  65. 4) make sure ISVALID should <not> be used in place of checkbounds
  66.     in interp.c
  67. 5) hide range
  68. 6) block moving into range
  69. 7) chain cells w/ equations into a linked list or dependency tree
  70.     -have a top level eval, eval and UPDATE all lower nodes
  71. 8) an option to go into a ^R like <mode>
  72.     ++data entry fields (highlight entry cells)....
  73.     ++only allow entry in these cells....
  74. 10) don't redraw the whole screen all the time 
  75.     (only cells that change, (in addition to what is in 'fixed #9'))
  76. 11) add uemacs keybinding stuff
  77. 12) add uemacs macro language
  78. 13) add uemacs command completion
  79. 14) insertrow should be openrow w/ a count arg (limits looping)
  80. 15) on a Get if the buffer hasn't been written, ask to overwrite
  81.