home *** CD-ROM | disk | FTP | other *** search
/ Mega CD-ROM 1 / megacd_rom_1.zip / megacd_rom_1 / FREEMACS / EMACS16A.ZIP / CHANGES.DOC < prev    next >
Text File  |  1990-02-26  |  19KB  |  422 lines

  1. This is a partial list of changes between versions 1.5f and 1.6 of Freemacs.
  2. Unfortunately, I have made so many changes to the MINT code that it's
  3. quite a large bit of effort to document them all.  These changes all
  4. bring Freemacs into greater compatability with Gnu Emacs.
  5.  
  6. Primitives:
  7.  
  8. When a string is fetched using the default function, and that string
  9. doesn't exist, the function dflta (if active, otherwise dfltn) is
  10. executed with the SELF being the name of the original function, arg1
  11. being the first argument of the original function.  Very magical, but
  12. it lets Freemacs automatically load libraries.  Also lets you trap
  13. non-existant strings, although Freemacs doesn't currently use that
  14. ability.
  15.  
  16. Creating new buffers should work a little faster.
  17.  
  18. Some conditionally-defined code was added to my own experimental purposes.
  19. Some of this code is dependent on the symbol KA9Q, which should be zero.
  20. Other code is dependent on the symbol TIMING, which should be zero.
  21.  
  22. New internal variable: rc (rightmost column).
  23.  
  24. More "new" internal variables: wc, cc.  These are the foreground colors that
  25. trailing whitespace and control characters (respectively) will be
  26. shown in.  Actually they were in 1.5e, but they weren't announced in this
  27. list of changes.
  28.  
  29. DesqView, Topview, and MS-Windows support added.
  30.  
  31. #(ex) -- if stdout and stderr are redirected to the same file, then the
  32. file is only opened once, and both handles point to the same file.  The
  33. file used to be opened twice, which caused some of the output to be
  34. ignored.
  35.  
  36. The rightmost column on the screen contains a scroll bar that indicates
  37. the position of point relative to the entire file.
  38.  
  39. Inverse video is now handled by swapping foreground and background rather
  40. than using 15 - foreground and 7 - background.
  41.  
  42. String searching functions should be faster (#(mp) and #(fm)).
  43.  
  44. Regexps:  Backward regexps now work properly.  \| (alternation) is now
  45. implemented.  Character classes match newline only if newline is the first
  46. character in the class.  Otherwise it matches CR and LF.
  47.  
  48. The variable "Buffer-Modified" (#(lv,bm)) is now a bitmap.  Bit zero is
  49. set if the buffer has been modified.  Bit one is set if the buffer is
  50. read-only.
  51.  
  52. Several logical operators have been added: || (or), && (and), ^^ (xor).
  53. They work exactly like the arithmetic operators.
  54.  
  55. The auto-save counter should only be decremented when actually waiting for
  56. a character, as opposed to checking for a character.
  57.  
  58. The primitive #(rf) will now return "Read Only" if the file it loads
  59. has the read-only attribute.
  60.  
  61. In ibm.asm, M-Escape was M-Esc, which was wrong.
  62. Also in ibm.asm, only force video mode 3 if there is no memory at b800:0
  63.     (and we're not in mode 7, i.e. monochrome text).  This lets you
  64.     use VGA video modes that are above the standard graphics modes.
  65.  
  66. Tabs are displayed using the Whitespace color.  On an IBMPC, this will
  67. cause the cursor to display the whitespace color when positioned over
  68. a tab, and the foreground color when positioned over a space.
  69.  
  70. Made the stack 512 bytes instead of 256 bytes because of potential stack
  71. overflow problems.
  72.  
  73. Mint code:
  74.  
  75. Registers now work.
  76. Read-only files now work.
  77. #(Fmodename) was renamed to #(Fset-modename)
  78. ##(F-real-location) is the fully-qualified pathname to the location of the
  79.     complete Freemacs.  This is used if you keep the most important files
  80.     on a ramdisk.
  81. ##(F-double-wait) was deleted.
  82. ##(F-make-backups) was added.  If non-null, make backup files when saving.
  83. ##(F-search-delete-char) now includes C-h, Back Space, and Del.
  84. #(F:Insert-Comma), #(F:Insert-LPar) are subsumed by ???
  85. #(F:Grep-mode) was added, to go with M-x grep.
  86. ##(F-paragraph-separate) and ##(F-paragraph-start) now work as documented.
  87. #(F:backward-paragraph), #(F:forward-paragraph) and #(F:fill-paragraph)
  88.     now use ##(F-paragraph-separate) and ##(F-paragraph-start).
  89. #(F:mark-paragraph) was added.
  90. #(F:goto-beginning) was renamed to #(F:beginning-of-buffer)
  91. #(F:goto-end) was renamed to #(F:end-of-buffer)
  92. #(F:buffer-menu) was deleted.
  93. #(F:execute-kbd-macro) was renamed to #(F:call-last-kbd-macro).
  94. #(F:capitalize-word) had a bug.
  95. #(F:cd) was added.
  96. #(F:make) was renamed to #(F:compile).
  97. ??? was renamed to #(F:delete-horizontal-space)
  98. #(F:dir) was renamed to #(F:list-directory)
  99. #(F:extended-command) was renamed to #(F:execute-extended-command)
  100. #(F:backward-search) was renamed to #(F:search-backward)
  101. #(F:forward-search) was renamed to #(F:search-forward)
  102. The old function #(F:grep) was renamed to #(F:mint-grep).
  103. #(F:grep) now does the same thing that Gnu Emacs does.
  104. #(F:insert-file) now creates a mark at the other end of the insertion.
  105. #(F:insert-line) was deleted.
  106. #(F:just-one-space) was added.
  107. #(F:kbd-macro-query) was added.
  108. #(F:kill-line) now does the same thing that Gnu Emacs does.
  109. #(F:kill-to-end-of-line) was deleted.
  110. #(F:kill-trail-white) was deleted.  Why???
  111. #(F:kill-whitespace) was deleted.
  112. #(F:mark-beginning) and #(F:mark-end) were deleted.
  113. #(F:mouse-pick) was renamed to #(F:mouse)
  114. #(F:name-kbd-macro) was renamed to #(F:name-last-kbd-macro)
  115. #(F:new-window) was renamed to #(F:recenter)
  116. #(F:newline-and-backup) was renamed to #(F:open-line)
  117. #(F:newline-and-indent) now works right.
  118. #(F:next-line) creates new lines at the bottom of the file.
  119. #(F:save-buffers-kill-emacs) gives you a chance to save abbreviations.
  120. #(F:set-comment-column) now does the same thing that Gnu Emacs does.
  121. #(F:set-mark) was renamed to #(F:set-mark-command)
  122. #(F:spell-word) calls #(Fspell-word) to do its work.
  123. #(F:staydown) was moved into the pick library.
  124. #(F:start-kbd-macro) and #(F:stop-kbd-macro) were changed so that they
  125.     stop when an error occurs.
  126. #(F:transpose-words) no longer uses the kill ring to do its work.
  127. #(F:try-it) now uses overwrite mode to print its output.
  128. The mark ring now uses temporary marks instead of permanent marks.  This
  129.     was done to allow for registers.
  130. #(F:view-two-windows) was added.
  131. #(F:where-is) was added, thanks to Michael.
  132. #(F:word-search-backward) and #(F:word-search-forward) were added.
  133. #(F:write-current-file) makes a backup if you give it an argument.
  134. #(F:write-named-file) now uses filename completion.
  135. #(F:zap-to-char) was added.
  136.  
  137. Internal functions:
  138.  
  139. #(Fabsolute-filename) got confused if you gave it two of the same subdirectory
  140.     names.
  141. #(Fbackward-skip-paragraph) was deleted.
  142. #(Fbuffer-modified) now knows about write-only buffers.
  143. #(Fcompleting-readline) now lets you edit the line.
  144. #(Fcompleting-readline.C-i) tells you how many matches there are.
  145. #(Fdflta) does autoloading.
  146. #(Fexecute-and-mark) evaluates arg1 and creates a mark around anything it may
  147.     have put in the text buffer.
  148. #(Ffill-paragraph-do) now works properly.
  149. #(Ffind-or-make-buffer) tries to find buffers quickly if it can.
  150. #(Ffind-unused-buffer) tries to find unused buffers quickly.
  151. Functions that need to translate between keys and characters now use
  152.     Fkey2char.*
  153. #(Fline-on-screen) was deleted.
  154. #(Flongest-prefix) didn't catch the longest-matched string properly.
  155. #(Flooking-at) was changed to return yes if a newline is in the regexp.
  156. #(Fmaybe-write-abbrevs) will offer to write the abbreviations.
  157. #(Fnew-extens) now works properly with pathnames containing periods.
  158. #(Fonly-last) now works in the presence of null arguments.
  159. #(Fparse-error-ms) used to use #(lr), an obsolete primitive.
  160. #(Fparse-error-search) does a better job of determining the compiler/language.
  161. #(Fprefix-matches) If arg1 matches arg3 starting at the third character, and
  162.     the string whose name starts at the second character doesn't exist,
  163.     return arg3 starting at the arg2th character.
  164. #(Freadline) no longer special-cases the editing keys.
  165. #(Freadline.C-y) now works.
  166. #(Fregexp-quote) was missing +.
  167. #(Frun-kbd-macro-do) no longer blindly repeats.
  168. #(Fsave-docs) had a typeo that prevented it from working.
  169. #(Fset-minor-mode) had a missing paren.
  170. #(Fstaydown-*) moved to the pick library.
  171. #(Fspell-word) is now a very simple function unless you have ispell installed.
  172. #(Ftolower) and #(Ftoupper) were deleted, as #(si) does the same job.
  173. #(Ftrack-mouse) moved to the pick library.
  174. #(Ftrash-buffer) simplified.
  175. #(Fwhere) works properly in two window mode now.
  176. #(Fwrite-backup) was deleted.
  177. #(Fwrite-modified-files-do) was deleted.
  178. #(Fwrite-named-file-do) was deleted.
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186. This is a list of changes between versions 1.5d and 1.5e of Freemacs:
  187.  
  188. Primitives:
  189.  
  190. Bells have been revamped, thanks to Jonathan Vail.  He sent me some code
  191. to do a visual bell (invert the video), and I added the hooks to make it
  192. optional.  Now, #(bl) has two arguments -- pitch and duration.  If the
  193. pitch is zero, then the pitch is really taken from the variable #(lv,bp).
  194. If the pitch is -1, then the visual bell is used.  If the pitch is non-zero,
  195. then a bell is rung.
  196.  
  197. If your foreground was intense white, your mode line used to blink.  This
  198. has been fixed.
  199.  
  200. Mint code:
  201.  
  202. F:edit-options: all primitive variables that are really user preferences are
  203.     now settable.
  204. F:capitalize-word: didn't capitalize already-capitalized words properly.
  205. Fxlat-region: didn't work right if the mark in arg1 wasn't a user mark.
  206. Freadline.C-q: If you type C-q C-m, you get CRLF where you used to get CR.
  207. Fquoted-char: add "Return" to the list of recognized keys.
  208. F:find-file: Prompts for a filename like Gnu Emacs does.
  209. Freadline: Now uses the variable F-delete-or-append to decide whether to delete
  210.     or append new typein.
  211. F-delete-or-append: If this variable is null, then the offered value when
  212.     reading a line from the keyboard will be appended to by the first
  213.     keypress.  If it is non-null, then the first keypress will delete
  214.     the offered value.
  215. M!keys-edit: Used to leave you at the end of the buffer, which was confusing.
  216. Fargument-do: ESC 5 0 - should insert 50 dashes.  It didn't.  It does now.
  217. Fargument-characters: Not needed anymore.
  218. Frecall-buffer: New function.  Returns the most recently visited buffer
  219.     that isn't visible.  The old algorithm didn't work properly in
  220.     two-window mode.
  221. F:select-buffer: Uses the new and improved #(Frecall-buffer).
  222. Freturn-to-buffer: Uses the new and improved #(Frecall-buffer).
  223. Fr: New function.  Really cute.  Make arg1 into a string, and substitute
  224.     parameters arg2 for ARG1, arg3 for ARG2, etc...  Obviously this is
  225.     a kludge that will only work to one level, but it's very handy.
  226. Fy-or-n: Similar to #(Fyes-or-no) and will probably obsolete it eventually.
  227. F:save-buffers-kill-emacs: New version -- the old one didn't quit on C-g
  228. Ftrash-buffer: New version -- the old one didn't quit on C-g
  229. Fok-to-trash-buffer: New version -- the old one didn't quit on C-g
  230. Fabsolute-filename: now deals with drive names.
  231. F:kill-trail-white: Didn't work.
  232. F:one-window: Didn't work if the same buffer was in both windows.
  233. Fbury-buffer: New function, used by Tags.
  234. F:find-file: Changes to allow the use of bury-buffer.
  235. Fyes-or-no: More like GNU Emacs.
  236. Fcompleting-readline.C-i: More like GNU Emacs.
  237. F:indent-rigidly: Used to indent one too many lines.
  238. F:save-all-libs: This is simple tinkering.
  239. Fsave-lib: This is where the buggie is.  We were entering the mode before we had
  240.     finished changing everything.
  241.  
  242.  
  243.  
  244. This is a list of changes between versions 1.5c and 1.5d of Freemacs:
  245.  
  246. Conventions:
  247.  
  248. The library user.ed and user.edd (letter U) will now be automatically
  249. loaded.  Additional packages such as etags.min and norman.min (Norman Ramsey's
  250. preferences) will be loaded into the User library.
  251.  
  252. Primitives:
  253.  
  254. #(dt) and #(tm) have been replaced by #(ct), which returns the same value
  255.     as Unix's ctime().  #(ct,filename) returns the time and date associated
  256.     with the filename, or a null string if the file doesn't exist.
  257. #(si,foo,bar) uses the string foo to translate the string bar.
  258.  
  259. Mint code:
  260.  
  261. Rudimentary editing of the minibuffer:
  262.     C-a aka Home
  263.     C-b aka Left Arrow
  264.     C-d aka Delete
  265.     C-e aka End
  266.     C-f aka Right Arrow
  267.     C-k
  268. down-page and up-page now moves up or down as many lines as in its argument.
  269. C-x 0 added.  It deletes the current window.
  270. C-x 2 splits the current window and puts the *same* buffer in both windows.
  271. M-x shell-command-to-buffer will put its output into the current
  272.     buffer if an argument is given.
  273. Filename completion now listens to F-completion-ignored-extensions, which
  274.     causes some filename extensions to be ignored.
  275. M-0 through M-9 and M-- are now handled the same as C-u, and either form
  276.     may be intermingled.
  277. M-x switch-to-buffer (C-x b) will create a buffer if it doesn't exist.
  278. M-x yank-rectangle didn't pad short lines correctly.
  279. When a single character answer is expected, case is now ignored.
  280. If you try to save a file without a filename, you are prompted for one.
  281. M-x find-file-other-window (C-x 4 f) added.
  282. M-x switch-to-buffer-other-window (C-x 4 b) added.
  283. M-x dired-other-window (C-x 4 d) added.
  284.  
  285.  
  286. This is a list of changes between versions 1.5c and 1.5a of Freemacs:
  287.  
  288. Regular expressions are now supported in query-replace-regexp,
  289.     isearch-forward-regexp, and replace-regexp.
  290. If you try to load a directory, you get placed into dired-mode.
  291. The most recent buffer visited is remembered.
  292. If you compile something with M-x make, error messages can be parsed using
  293.     M-x parse-error, M-x next-error, and M-x previous-error.
  294. M-x kill-rectangle and M-x yank-rectangle now work.
  295. M-w (copy-region) now works right when used after a kill.
  296. M-x goto-line will prompt if no argument is given.
  297. Fflash-paren (used by ')', ']', and '}') now works right when recording
  298.     a key.
  299. The absolute filename is now remembered, so that if you change the directory
  300.     when shelled out to dos, your file will be saved from whence it came.
  301. M-$ (spell-word) now gives an error if the speller isn't installed.
  302. Mode selection is now chosen from Fext-mode-list.
  303. C-x s (write-modified-files) no longer offers to save internally generated
  304.     buffers.
  305. Better mouse support:  If you double-click on a character, then the "right
  306.     thing" gets selected with inverse-video.  If you then type printable
  307.     characters, the selected text is first killed and the character is
  308.     inserted.  If you type Back Space, the text is just killed.  If you
  309.     double-click and then move the mouse without releasing the button,
  310.     any amount of text can be selected.  Neat!
  311. M-q (fill-paragraph) doesn't move the cursor.
  312. Text mode now turns on Fill minor mode.
  313. M-x buffer-menu has been implemented.
  314. M-x dired has been implemented.
  315. C-Pg Dn (next-buffer) has been implemented.
  316. C-Pg Up (prev-buffer) has been implemented.
  317. M-x kill-comment has been implemented.
  318. C-M-f (forward-list) has been implemented.
  319. C-M-b (backward-list) has been implemented.
  320. C-x C-i (indent-rigidly) has been implemented.
  321. C-x . (set-comment-column) has been implemented.
  322. M-; (indent-for-comment) has been implemented.
  323. M-x ASM-mode has been implemented.
  324.  
  325.  
  326.  
  327. This is a list of changes to emacs.exe from version 1.5a of Freemacs:
  328.  
  329. #(sv,as,xxx) -- Auto Save now only counts keystrokes.
  330. #(sv,mb,2) makes the buffer write protected.  (Doesn't really
  331.     work right yet).
  332. #(an,foo,,bar) will put bar AFTER the cursor in the minibuffer.  I haven't
  333.     written it yet, but this will allow editing of the minibuffer.
  334. #(lv,cd) now returns the current directory in lower case.
  335. #(ff,c:\) now returns c:\ so that dired works right.
  336. #(lp,pattern,no good,regexp,case-fold) subsumes #(lr,...):
  337.     pattern is the search pattern.
  338.     no good is the value if the pattern is not a valid pattern (only for
  339.         regular expressions).
  340.     regexp is non-null if you want the pattern to be interpreted as a regular
  341.         expression.  If it is null, then the pattern is interpreted literally.
  342.     case-fold is non-null if you want upper and lower case to be considered the
  343.         same.
  344. #(it,0) no longer discards mouse buttons.
  345. #(si,C,F) takes the ASCII value of the character C and indexes into the string S
  346.     and returns the character found there.  For example, #(si,X,Fxlat-lower)
  347.     will return the lower case version of X.  Same for #(si,X,Fxlat-upper),
  348.     only upper case.
  349. The key "M-Comma" used to be "M-," which was wrong.
  350. IBM CGAs no longer snow.
  351. The inner loop was sped up slightly.
  352. #(sv,im,X) now works properly in two window mode.
  353.  
  354.  
  355.  
  356. Features new to 1.5:
  357.  
  358. Up to 256 K of MINT space.
  359. More free memory when shelling out to DOS.
  360. More GNU-Emacs-like.
  361. Faster library loading (already in 1.4d).
  362. Autoloading of libraries.
  363. Searching of the path to find the libraries.
  364. "normal" keyboard handler.
  365. C-mode
  366. Mint-mode
  367. Options-mode
  368. Text-mode
  369. Better mouse support:  copy region, copy line, copy word.
  370. And, as always, new and improved bugs :-)
  371.  
  372. Bugs fixed between 1.04c and 1.04a:
  373.  
  374.   o One global mark was being shared between all the buffers, so that a
  375.     M-x set-mark and then M-x select-buffer and then M-x swap-point-and-mark
  376.     would bring you back to the wrong place.  Now each buffer has its own
  377.     mark.
  378.  
  379.   o #(Fmultiple) used to be non-recursive.  Now, however, if it is invoked
  380.     as #(Fmultiple,...,...,SELF), then a unique list will be created for
  381.     each invocation.
  382.  
  383.   o A few left-over C-[A-Z] key definitions were removed.
  384.  
  385.   o #(Fhit-any-key) now tells you a little bit more.
  386.  
  387.   o M-x find-file now listens to wildcards.
  388.  
  389.   o Wildcards in filenames on the command line now get expanded.
  390.  
  391.   o The old #(Fgoto-beginning-of-paragraph) used to loop forever at the
  392.     beginning of the buffer.
  393.  
  394.   o M-x shell-command-to-buffer, and suspend-emacs now don't bother waiting
  395.     for a key.
  396.  
  397.   o M-x select-buffer now defaults to the most recently visited buffer.
  398.  
  399.   o M-x filter-region didn't work if parameters to the filter were given.
  400.  
  401.   o #(Fflash-paren) used to quit at the first blank line.  Now it quits at
  402.     the first double blank line.
  403.  
  404.   o You can now add a control character to the input line.
  405.  
  406.   o M-x compare-windows now halts when it gets to the end of the file.
  407.  
  408.   o You now get more help when you get started going.
  409.  
  410.   o #(Fwrite-file) has been improved:
  411.  
  412. Name:Fwrite-file
  413. Actually write the file to the filename given in arg1.
  414. If the file has a line containing "History:", the current line number and
  415. column will get inserted following the colon.  If the file has a line
  416. containing "Edit History:" OR if the variable edit-history is set to yes,
  417. then every time you save the file, you will be asked why you are saving
  418. the file, and a line with the time and date and the reason for saving will
  419. be inserted after the "Edit History:" line.
  420.  
  421.  
  422.