davidsen@steinmetz.steinmetz.UUCP (William E. Davidsen Jr) (07/31/87)
A few words about the new features, documentation, and bugs in memacs 3.9. There are several new features, most notably a new "autosave" mode and at least one new macro operator which seems to be documented only in the source code (&env, returns the value of an environment variable). There is code for named-procedures, looks like macros, but I haven't found any documentation on this. I looked in the index under 'named' and 'procedures,' and scanned the manual, but I haven't gotten my hardcopy back yet. The standard keyscanner has the code added for recognizing ANSI keyboard code (start with ESC-[), but they're not in a conditional, so you're out of luck if you bound ESC-[ to a function. There is a spelling checked (MicroSPELL) included, and I haven't really had a chance to check it out. I did find 31 spelling errors in the EMACS document, but it may not have been thru the checker. I'm mailing the fixes to the author. Several gotcha's, one small and one (for me) huge. The nice ACMODE flag in the source is gone. The editor enters CMODE whenever a .c or .h file is opened. There is some was to disable this (it's either in a macro, or a macro is called every time a file is opened so you can reset the mode) but it is not obvious in either the source code or documentation. I finally bound a key to "disable CMODE". The big problem I had was that input from files and keyboard is handled in a slightly different way. When doing bindings from the .emacsrc file, all of the functions are assumed to be upper case, with a comment indicating that this is true in DOS. My rc file bound "next-line" to FNB (the down arrow) and to FBb (Shift F4) a macro which undoes changes to a buffer by marking it as unmodified, then reading the original file back in. They were in the wrong order in the file, and after about a half hour of editing, I pressed the "cursor down" for the first time and lost everything I'd typed. The code to force functions is in bind.c, and I have taken it out of my version, since DOS already seems to do what I want without it. In spite of comments in the code indicating that it should be smaller, it wasn't under Xenix, using all the features. It may be faster, but not blindingly so. I just got the function keys working on my hacked 3.8i when 3.9 arrived, so I wrote a few more macros to use the new features. I hope this helps people getting started on 3.9, and when I find out how to kill automatic CMODE I'll post. Copies of all changes have been posted to the author. -- bill davidsen (wedu@ge-crd.arpa) {chinet | philabs | sesimo}!steinmetz!crdos1!davidsen "Stupidity, like virtue, is its own reward" -me
nwd@j.cc.purdue.edu (Daniel Lawrence) (08/04/87)
It always amazes me that MicroEMACS gets around so fast after I post it to my BBS. I haven't even gotten this stuff off to the proper moderators yet. In article <6867@steinmetz.steinmetz.UUCP> davidsen@steinmetz.steinmetz.UUCP (William E. Davidsen Jr) writes: > >A few words about the new features, documentation, and bugs in memacs [he talks about the new stuff] > >There is a spelling checked (MicroSPELL) included, and I haven't really >had a chance to check it out. I did find 31 spelling errors in the EMACS >document, but it may not have been thru the checker. I'm mailing the >fixes to the author. > Yea thats the big reason I wrote the spell checker, I can't spell worth a &^%$. I was so late on getting this out, I spaced spell checking the manual. >Several gotcha's, one small and one (for me) huge. The nice ACMODE flag >in the source is gone. The editor enters CMODE whenever a .c or .h file >is opened. There is some was to disable this (it's either in a macro, or >a macro is called every time a file is opened so you can reset the mode) >but it is not obvious in either the source code or documentation. I >finally bound a key to "disable CMODE". > Whatever MACRO is bound to the illegal keystroke M-FNR is called whenever a file is read in. In the standard .emacsrc, this then parses the file extention and adds CMODE for .C and .H files. This was ment to be more flexable then the old ACMODE code. >The big problem I had was that input from files and keyboard is handled >in a slightly different way. When doing bindings from the .emacsrc >file, all of the functions are assumed to be upper case, with a comment >indicating that this is true in DOS. My rc file bound "next-line" to >FNB (the down arrow) and to FBb (Shift F4) a macro which undoes changes >to a buffer by marking it as unmodified, then reading the original file >back in. > [he then goes on to discribe a disaster] Ok, I'll look into the case treatment of the text function key names. > >In spite of comments in the code indicating that it should be smaller, The section that the comment was about did turn out smaller... creeping featurism creept in however > bill davidsen (wedu@ge-crd.arpa) > {chinet | philabs | sesimo}!steinmetz!crdos1!davidsen Having gotten permishion to post finally, from the powers that be here at purdue, I will try to be more responcive in the newsgroup here. Daniel Lawrence UUCP: ihnp4!pur-ee!j.cc.purdue.edu!nwd ARPA: nwd@j.cc.purdue.edu FIDO: 201/2 The Programmer's Room (317) 742-5533 ATT: (317) 742-5153
davidsen@steinmetz.steinmetz.UUCP (William E. Davidsen Jr) (08/05/87)
I offer this enhancement to memacs 3.9, courtesy of Michael Tiemann. It allows entry of RETURN in command strings, most commonly search strings. memacs will allow you to enter a RETURN (^Q^M) in text but not commands. In procedure getstring, file input.c there is a comment /* if it is a <ret>, change it to a <NL> */ followed by the line: if (c == (CNTL | 0x4d)) It may be changed to: if (c == (CNTL | 0x4d) && !quotef) which then allows you to enter a RETURN in a search or replace string. I admit that I would prefer having the search string terminator be a <NL> by default and quote the <NL> on those rare occasions when I want them. My RETURN key is easier to find than ESC. Since getstring() accepts a terminating character, I may change the call, but admit that it's a matter of taste, not a bug. How about a variable to define the search terminator character ($stchar or something)? Two minor points on ANSI keyboard sequences. memacs 3.9 does accept them. When I fixed 3.8i I put the test earlier in getcmd() to avoid checking for lowercase and control characters before checking for the '[' character. I also added a define to estruct.h called KBANSI and set that to control the use of the ANSI code. For the unix-pc, I also added KBUNIXPC, SPEC1 and SPEC2 for the key sequences which start with ESC-[O (that's oh) and ESC-[N. Please don't flame me if the N is wrong, I don't have the code here. -- bill davidsen (wedu@ge-crd.arpa) {chinet | philabs | sesimo}!steinmetz!crdos1!davidsen "Stupidity, like virtue, is its own reward" -me
bcg@edison.GE.COM (Bruce Garland) (08/11/87)
Three changes that can help, the first eliminates the case sensiveity of reading the emacs.rc file the other 2 are just errors. File BIND.C should be 694 if (*keyname >= 'a' && *keyname <= 'z' && !(c & SPEC)) and not 694 if (*keyname >= 'a' && *keyname <= 'z' && !(*keyname & SPEC)) File BIND.C should be 689 *keyname += '@'; and not 689 *keyname += 'A'; File VMSVT.C should read 364 eolexist = erase_to_end_line != NULL; and not 364 eolexist = erase_whole_display != NULL; as erase_whole_display is not defined yet. Bruce Garland GE Fanuc Company - Charlottesville, VA bcg@edison.GE.COM old arpa: bcg%edison.GE.COM@seismo.CSS.GOV bcg@edison.UUCP old uucp: {seismo,decuac,houxm,calma}!edison!bces