home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / m / me_cd25.zip / DOC.ZIP / CHANGE next >
Text File  |  1992-11-09  |  11KB  |  204 lines

  1.     -*-text-*-
  2. Branched ME to ME2
  3. DONE:
  4. - The init file is me2.mco.  ME2 is the env var.
  5. - Added a maybe arg to (current-window).  If arg, the current window is
  6.   set to n.
  7. - change register to bag
  8. - (create-bag ?n), (free-bag bag-id ...)
  9. - added (create-buffer), (free-buffer), (nth-buffer)
  10. - add a maybe arg to (current-buffer).  If arg, the current buffer is
  11.   set to n
  12. - all buffer commands take buffer ids.
  13. - removed (kill-buffer)
  14. - removed (use-existing-buffer).
  15. - (read-file-hook) called after a file is read in.
  16. - added (goto-mark mark-id), (set-mark [mark-id]).
  17. - changed set mark routine that is bound to key to set-the-mark.
  18. - have shell-command return a error code.
  19. - removed query-replace and re-query-replace.
  20. - added search-replace and re-search-replace.
  21. - moved re-search-forward, re-search-reverse, search-forward, and
  22.   search-reverse to Mutt.
  23. - cache some windows at startup to (hopefully) reduce malloc thrashing.
  24.   Should also think about caching buffers and bags.
  25. - Changed the way single line edits updates are done to fix a bug.
  26. - Moved (goto-line n) to Mutt.  Added functionality:  if n < 0, goes to
  27.   nth line from end of buffer.
  28. - remove CR not giving a new line if a blank line is below.
  29. - do more error checking in edinit().
  30. - Removed (buffer-var) and (buffer-string)
  31. - Added (create-buffer-var type name ...) and (buffer-var name [val]).
  32. - Replaced (filter-region) with (OS-filter).
  33. - Added (create-mark [n]) and (free-mark mark-id [n]).  Now have a
  34.   unlimited number of marks per buffer.
  35. - Changed (compare-dot-and-mark) to (compare-marks [mark1 mark2]).
  36. - Added args to (region-stats).  Is now (region-stats blob [mark1 mark2]).
  37.   Defaults to (DOT,THE-MARK).
  38. - Removed (next-buffer).  Rewrote in mutt (hidebuf.mut).  Ignores
  39.   Hidden2  buffers.
  40. - Modified (nth-buffer) to return the count of the current buffer if no
  41.   args.
  42. - Modified (load) to take a search path ala Unix ksh (using the ME2 env
  43.   var).  Current directory no longer automatically searched.  Hopefully,
  44.   this will add support for lots of ME2 users using same .mco files and
  45.   minor extensions.
  46. - Added a tickle bit in the buffer flags for the the modified bit:
  47.   BFMode (0x10).  Its write-only, it can't be set, is always 0.  If
  48.   tickle it, all the modelines for the buffer are updated.  Use like so:
  49.   (buffer-flags -1 BFMode).  Use it when you need to force modeline-hook
  50.   to be called for a buffer.
  51. - (buffer-flags ...) now properly reacts to the all the flags.  Used to
  52.   not do much if the modified bit was changed.  Now will update
  53.   modelines if needbe.  Note that modelines ONLY updated if the state of
  54.   the bit changes.  Set the modified bit with (buffer-modified) and
  55.   (buffer-flags) have the same results.
  56. - UNDO prototyped and working (1/91).
  57. - Dot is just mark 0.
  58. - Removed case routines because they don't undo.
  59.   Routines removed:  (case-region-lower), (case-region-upper),
  60.     (case-word-capitalize), (case-word-lower), (case-word-upper)
  61.   Replaced with:
  62.     (case-text op bag-id op) where op is one of upper case, lower case
  63.     or capitalize.  Case match with another string or bag (or query
  64.     replace) would be nice.
  65.   See case.mut for the new user routines.
  66. - Added garbage collection for buffers, bags and marks (6/91).  This
  67.   will be intergrated into Mutt2 when that gets done.  Added immortal
  68.   bits to bags and buffers.  Changed (create-bag) to (create-bag
  69.   [immortal]).  This is a limited gc, see other doc.
  70. - Added functionality to (append-to-bag).  Can now append arbitrary
  71.   region, characters or text to bag.  6/91
  72. - Added arg to (visit-file).  If arg flag, use the current window to
  73.   display the buffer.  Suggestion from David J Bartrum
  74.   <djb%gmsws.co.uk@hplb.hpl.hp.com>.  6/91
  75. - Added a "general" interrupt handler.
  76. - Added a SIGWINCH signal handler so ME2 can detect and react window
  77.   size changes.
  78. - Moved garbage collection to process_hooks() because so many pgms are
  79.   run as hooks.  Hopfully, this speed things up.  Relys on programmers
  80.   being good most of the time.
  81. - Prototyped a very rudimentry interprocess communication scheme.
  82.   Tested with a clock (another process) in the modeline (ticking every
  83.   second).  7/91
  84.   Can run makes and process the results as they happen.
  85.   (Unix only):  way to talk to a external process via signals and files
  86.     (maybe pipes).  This would allow things like concurrent compiles and
  87.     viewing the output as it happens and editing would not be
  88.     interrupted.  Also would need a hook that is called when ex-proc
  89.     sends something back to ME.  I could also use this to implement
  90.     "tell me when I have mail", system load and current time on the
  91.     modeline.
  92.   Provides a mechinism that allows a process ME knows nothing about to
  93.     send ME messages that ME passes on to to a hook.
  94. - Modified the buffer var stuff to use the object manager (also used in
  95.   MM).  This added lists as a buffer var type.  9/91
  96. - Reworked the way I maintain marks (mark.c).  Removed multiple
  97.   allocatation of marks.  Changed (create-mark) and (free-mark) to
  98.   reflect these changes.  9/91
  99. - (OS-filter) is a bool.  Doesn't abort if the filter fails.  User
  100.   request.  9/91
  101. - Added a sleazy hack to (load).  If arg is 42 and the block already
  102.   exists, it is not loaded again.  This makes (require) work quiet and
  103.   avoids loading things multiple times.  9/91
  104. - (bag-to-string bag-id) : returns bag contents as a string. 9/91
  105. - Added (swap-marks [mark-id [mark-id]]) 9/91
  106. - Modified (window-height) so it can resize a window.  10/91
  107. - Removed (enlarge-window) and (shrink-window).  Rewrote them in Mutt.
  108.   10/91
  109. - Removed (copy-rectangle) and moved the functionality to
  110.   (append-to-bag).  10/91
  111. - Changed the spelling of (isspace) to (is-space).  10/91
  112. - Renamed delete-window to free-window  10/91
  113. - Removed the buffer id from (clear-buffer).  I always seem to clear the
  114.   current buffer (its easy) and removes a thorn from undo.  10/91
  115. - Added boolean arg to (update).  If false, only sync window and current
  116.     buffer dots.  Need this so I can have a window track a buffer while
  117.     a program is running. 10/91
  118. - Made file-to-bag and bag-to-file bools (instead of void).  In case you
  119.   want to do something if an error occurs instead of die.  11/91
  120. - Changed all keywords with "kill" in them to "cut" or "delete".  I'd
  121.   rather not have programs that kill things - bad karma.  11/91
  122. - Added pgm-exists.  I want/need this to implement maybe hooks (hooks
  123.   that are only called if the hook exists).  12/91
  124. - Added buffer bit to mark "interactive" buffers and two "soft" hooks
  125.   (hooks in Mutt code:  iread-file and icreate-buffer) that are called
  126.   if the buffer is marked interactive.  I do too much stuff (markring,
  127.   mode setting, etc) for buffers that don't need it.  Could also use the
  128.   mortal or nocare bits.
  129.  
  130. TODO
  131. ? turn off signals when fork shell or pause?  What if comserver sends
  132.   stuff while paused?  select on return?  events_pending()
  133. - ReDO
  134. - UNDO tuning.
  135. - (create-file-name):  Generate a unique file name ala (OS-filter).
  136.   Used when need a filename in stuff that uses (shell-command).  Gotta
  137.   make sure that multiple calls generate different names.
  138. - (create-buffer-name file-name)  Since this is OS specific, easier to
  139.   do in C, etc.
  140. ? (forward-character n) (forward-word n)
  141.   Are these worth it?  Don't seem to be from the programs I've written.
  142. ? (delete-text n)  Del n characters from dot.   If <0, delete backwards.
  143.   Is this worth it?  The cheap hack in delete_characters() seems to be
  144.   good enough for the programs I've written.
  145. - (region-to-mini) so I can yank a region to the command line and edit
  146.   it (like grabing a compile line from the file).  Could also do this
  147.   with command line programming.
  148. ? Remove HELP and add help-hook with args to do help stuff.
  149. - When word wrap is on and you are banging on a white space key, the
  150.   line is wrapped and you get an extra ws that you don't want.  To fix:
  151.   only wrap on non-ws?
  152. - make "space bar nukes msg line" configurable (via a sysvar?).
  153. - Need better ways to control name space pollution.
  154.   Maybe something like (extern package block-name block-name ...).  Then,
  155.   to resolve a possible extern reference, search only those blocks.
  156. - Need a way to point local/global key bindings at the routine level.
  157.   ie if a bunch of keys are bound to (next-buffer), I want to be able to
  158.   have those keys invoke (new-next-buffer) for this buffer.  I don't
  159.   what to have to know what the keys are or remember them to undo this
  160.   redirection.  Could do this by having buffer local routines.  It is
  161.   eash to do this globally by just defuning a new routine called
  162.   (next-buffer).  All the keys will bind to it.  Warning:  If it is in a
  163.   block of the same name, keys will get gc'ed.
  164. - Make overstrike a buffer local thing by having a flag in b_flags and
  165.   set the global in use_buffer().
  166. - Bring out thisflag and lastflag so Mutt can do stuff like chained
  167.   kills.  Also, kbd macros don't use the flags right.
  168. - change all op that act between mark and dot to act between 2 marks.
  169.   eg (erase-rectangle) -> (erase-rectangle mark1 mark2)
  170. ? (current-time) returns the time.  What format? ascii, struct, ...?
  171. ? remove (compare-marks) cause its not used much.
  172. ? (copy-text-to-bag bag-id n) copy n characters from dot to bag.
  173. ? Remove kill buffer stuff from stuff like (delete-character).
  174. ? Remove insert-file.  Can get the functionality with
  175.   (file-to-bag)(insert-bag).
  176. - muttize bind routines, remove interactive ones.
  177. - Better error recovery in resize_display().
  178. - Have resize_display() not malloc() if the display size is smaller than
  179.   current.  This helps core dumps on UNIX.  Also, don't reread termcap?
  180. ? (copy-to-bag) since its used so much.
  181. ? remove all stuffing of killbuffer as kill (line.c, killbuf.c).
  182.   Instead, copy the data to a bag, then erase it.  Con: maybe slower
  183.   (2 passes), if close to the mem limit, might have more problems.
  184. ? (clear-mark mark-id ...)(clear-mark) clears all marks?
  185. ? inverse video an area between 2 marks
  186. ? (mark-exists mark-id)
  187. ? use fast string search - strstr().
  188. ? windows that are narrower and smaller that the screen that can be
  189.   placed anywhere on the screen.  ie disjoint windows - would also be
  190.   handi for windowing systems.  Also, the popup menu packages could be
  191.   spiffed up.
  192. - Ability to command complete arbitrary lists.
  193. ? (file-read) reads the file.  You have to check.  No asking.
  194.   Can get this with (clear-buffer -1)(read-file foo)
  195. - Try to remove ABORT as much as possible.
  196. ? Have 2 key maps - one lower to upper and one straight through.  Then
  197.   can use a pointer to it in buffer for case folding.
  198. - Support for multiple screens.  A screen is the thing that holds
  199.   windows.  Each screen has its own width, height, etc.  With this I
  200.   should be able to implement work spaces, add enough hooks for X and
  201.   maybe stacked windows.
  202. - Workspaces:  Instead of mearly hiding buffers, have workspaces.  These
  203.   are seprate contexts.  Might be better done as running another ME2.
  204.