📄 old-history-2
字号:
============= Changes for ECU 3.10 =======================================This file gives hints about what has changed. Rereading or skimmingthe manual is highly recommended. My apologies if some changes didnot get reflected in the manual. Please let me know.1. Add nice interactive and procedure commands and %nice integer function.2. Add the %uid and %gid integer function.3. If ECU starts setuid, always reset the uid to the real uid. Previously this only happened if ECU was setuid to root.4. Made compatible with Metro Link X11R4 xterm under SCO UNIX/386. To use: a. include -DMETROLINK_X11R4 in CFLAGS of ECU compilation. b. edit the models/nonansikeys file patched by this patch to comment out the SCO ODT xterm key definiton and uncomment the Metro Link X11R4 definition. Follow other instructions you see in the nonansikey file.5. Fixed miscellaneous typos and misspelled words in models/nonansikeys.6. Environment variables LINES and COLS override termcap li and co values like terminfo curses does. This gives you the correct size screen on xterms, but the ecu curses stuff still sees the termcap description un altered, giving you shorter (usually 24 line) dialing and help menus.7. Support is provided in nonansikeys for Metro Link's MetroX newest xterm (the one that uses pty pseudottys). (Some of the key bindings are differerent and some .xinitrc and xterm resources are required; see 'models/nonansikeys'.)8. The -N switch for the procedure commands sx, sy, sz, rx, ry, and rz forces the "no curses" mode for file transfer. This mode uses brief, tty-style reporting of file transfer progress. The "no curses" mode is automatically invoked if the console is not a pty or multiscreen and has a lower baud rate than the attached communication line.9. I added a dialer for the "generic Hayes-style 2400" (dialgHA24) and for the USR Courier 2400 (dialgUSR24). My USR is at least 6 years old and I don't even know if they still make them or if it is the same modem.10. A new config procedure greatly simplifies making and installing.11. I don't know if this will get it or not, but to try and help our European friends to be able to use alt_[a-z].ep, the keycodes required in the mapkeys file have changed from 128 through 153 (0x80 through 0x99) to 229 through 249 (0xE0 through 0xF9). Reread mapkeys/README.12. Termination of file transfers by SIGINT did not cause termination of procedfure execution in pre-3.10 versions. In this version, it does. The appropriate manual sections have been updated to indicate: Integer variable $i0 receives the exit status from the transfer. Note: procedure execution IS terminated by a SIGINT to the spawned file transfer process. This is different than for versions prior to 3.10. If $i0 is set to -1, the file transfer program did not begin.13. kbdtest3 is included to help figure out nonansikey configurations. see models/nonansikeys.14. SCO UNIX MEMMOVE() AND GCCmemmove() is a very, very fast non-overlapping memory copy, butsince it does not save certain registers it uses, calling fromGCC can be tricky. GCC does a fabulous job of grinding all itcan out of the available registers; MSC doesn't make very gooduse of registers, er, I mean keeps a lot of registers for scratchuse. I've never seen 386 MSC use dx except as a side effect ofmultiply. I guess that's what somebody (Gates?) meant by "tuning"one compiler to meet many needs being adequate. Enough philosophy,though.I am using of -fcall-save-{ax,bx,cx,dx} since in at least onecase (ecufkey.c display_keyset()), rigorous optimization andreally righteous register usage caused a call to strlen() toscrew up since cx is not preserved by strlen.strlen: push edistrlen+0x1: mov edi,[esp+0x8]strlen+0x5: xor eax,eax <-- goodbye ax strlen+0x7: mov ecx,0xffffffff <-- goodbye cxstrlen+0xc: repne scasbstrlen+0xe: inc ecx strlen+0xf: mov eax,ecx strlen+0x11: not eaxstrlen+0x13: pop edistrlen+0x14: retmemmove: push ebpmemmove+0x1: mov ebp,espmemmove+0x3: mov edx,edi <-- move rather than pushmemmove+0x5: mov ebx,esi <-- move rather than pushmemmove+0x7: mov esi,[ebp+0xc]memmove+0xa: mov edi,[ebp+0x8]memmove+0xd: mov eax,edi <-- goodbye ax memmove+0xf: mov ecx,[ebp+0x10] <-- goodbye cx (OK w/MSC)memmove+0x12: jcxz memmove+0x43memmove+0x14: cmp edi,esimemmove+0x16: jbe memmove+0x2ememmove+0x18: mov eax,esimemmove+0x1a: add eax,ecxmemmove+0x1c: cmp edi,eaxmemmove+0x1e: jae memmove+0x2ememmove+0x20: mov eax,edimemmove+0x22: add esi,ecxmemmove+0x24: add edi,ecxmemmove+0x26: dec esimemmove+0x27: dec edimemmove+0x28: stdmemmove+0x29: rep movsbmemmove+0x2b: cldmemmove+0x2c: jmp near memmove+0x43memmove+0x2e: mov eax,edimemmove+0x30: test Byte Ptr 0x1f:0x1,almemmove+0x36: je memmove+0x3amemmove+0x38: movsbmemmove+0x39: dec ecxmemmove+0x3a: shr ecx,1memmove+0x3c: rep movswmemmove+0x3f: adc ecx,ecxmemmove+0x41: rep movsbmemmove+0x43: mov esi,ebxmemmove+0x45: mov edi,edxmemmove+0x47: pop ebpmemmove+0x48: retmemmove+0x49: nopmemmove+0x4a: nopmemmove+0x4b: nop15. A documented feature is that upon connecting to a remotedialed through the directory, if a 'fkey' key set from ~/.ecu/keys matches the directory name, the key set is automatically loaded.This feature has never worked (I never used it or tested it.)Recently I told someone they could use it and they reported itdid not work. It does now.16. The example file models/sz_update.ep was treating skipped filesas a failed transfer. This was fixed.17. Interactive and procedure commands 'pushd' and 'popd' were added.18. Adding pushd and popd documentation made ecu.man too longgiving me "word overflow" and a core dump from my nroff. So,there are now two documents, ecu.man and exits.man. The latteris very short and is just a kludge since the former is as long asit can be.19. Added the procedure rlog command for procedure control ofreceiver logging.20. Added _initial.ep, _connect.ep and _hangup.ep. See "SpecialProcedures" in the manual.21. The use of #ifdef GCC140 is made to take advantage of aassembly source generation bug fix in gcc 1.40.22. Running ecu with no pre-existing phone directory and specifyinga logical phone number (directory entry) to dial caused erraticbehavior or core dump. This has been fixed. Thanks for the reportfrom mju@mudos.ann-arbor.mi.us. He did a good job of testingan alpha version of 3.10.23. Pressing an invalid function key during interactive commandentry used to destroy the string being entered. This hasbeen fixed.24. The ESCape vs. function key keyboard input discriminationalgorithm has been improved. Fewer, if any, function keys will nowmisinterpreted as ESCape keys followed by "junk."README.P1 ECU 3.10 Patch 1 Mon Aug 12 03:46:20 EDT 1991This describes patch 1 to ECU 3.10, bringing the program toversion 3.11. Due to the manner in which the program builds itsversion strings, patchlevel.h should contain #define PATCHLEVEL11.To use------To apply the patch, unshar all of the parts. This step willcreate patch files and overwrite some files whose diffs werelarger than the new files.type the command sh PATCH1.APPLYthen do the Configuresequence and re-makeOnce you are satisfied the patch has been correctly applied,you may rm PATCH1.*and make neatto remove the usual crud and peanut hulls left on the floor aftera patch operation.This patch fixes the following problems:----------------------------------------1. ISC lock files are placed in /usr/spool/locks. ECU now has aconfigurable lock file directory whose name is automatically selecteddepending upon the machine type.1. 1. Several problems with compiling the the makedirs program underXENIX were fixed.3. The 'w' (wait) subcommand of the dialing directory screen was notasking for both single and multiple entry list weait values, but onlythe first.4. VT220 and perhaps other terminals insist upon generating the CSI(ESCape plus 0x80) character as a function prefix. To handle the needfor eight bit keryboard support for nonansikeys, I did the following: a. fixed the ECU code to honor the full eight bits of keyboard code sequences when processing function key reads. b. removed other code that masks the parity bit of various data items. c. added code the kbdtest3.c that includes an stty -a listing for the keyboard at the time it is run. I also specify in clearer terms what parity was in use and that may be required to use the keyboard.5. Previously, you had to have a copy of nonansikeys in each user's.ecu directory who use non-ANSI consoles. You may now put a single copyin the ECU library directory (usually /usr/local/lib/ecu). ECU searchesfirst in ~/.ecu then in the library directory.5a. The manual stated a number of restrictions regardingthe codes which can be transmitted by a keyboard to be supportedby the non-ANSI console feature. I missed updating that manual partwhen I released 3.10. ECU 3.10 merely requires the code sequenceto be free of nulls and less than 33 characters in length.6. The models/nonansikeys file has been updated to include an entry forthe latest Metro Link X11R4 server. The new server has improved defaultkey bindings and the previously dead KP_5 (unshifted Keypad 5) lives.7. In previous revisions of ECU, when editing an existing string on ascreen, the cursor was placed at the end of the line at the commencementof editing. This was untrue of 3.10 and this patch restores thebehavior.8. Baud rates below 300 now get two stop bits. I doubt anyone is using110 baud but if you ever get the hankering, it will work now.9. In the respond function of the expect-respond handler, \n sent CRnot NL as documented.10. The test for an environment HZ was incorrect causing thesys/param.h value to be used always.11. The 'nap' procedure command napped for the wrong amount of time ifthe -m option was used.12. Under some conditions, ecuungetty would find a lock file created byits (parent) ECU and report that the line was in use by another dial out.This has been around for a long time.13. The command history mechanism got botched up by some last minutechanges to the tty line input editor.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -