home *** CD-ROM | disk | FTP | other *** search
- USING E ON THE PC
-
- Mike O'Carroll
-
- Microsystems Unit
- University of Leeds
-
-
-
- 1. INTRODUCTION
-
- This note describes some of the features and limitations involved when run-
- ning e2 on the PC. The overall intention has been to make the functional-
- ity (ugh) as similar as possible to the *ix version, but restrictions
- imposed by DOS inevitably cause problems in certain areas.
-
- It will be assumed that you are familiar with the general operation of e;
- if not, consult e_ref (D) and experiment.
-
- 2. SETTING UP
-
- First get a copy of E2.EXE into your local \BIN directory which should be
- somewhere in the execution search PATH. If you want the centering and jus-
- tifying filters, get copies of ECENTER.EXE and EFILL.EXE also.
-
- All the other files should be placed in a suitable library directory such
- as \ELIB. If you get the programs by downloading from the *ix system, make
- sure you use raw mode.
-
- Next, set the TERM environment variable to ibmpc2. This requires the
- ANSI.SYS driver; although this slows things down, it makes it easy to
- drive other terminals via the comms port. Set the ELIB environment vari-
- able to your library pathname. Set the TMP variable to a temporary direc-
- tory and create the subdirectory ETMP in it.
-
- All the above variables should incorporate the drive ID.
-
- 3. BACKUPS AND TEMPORARY FILES
-
- Each time you change a file, a copy of the last version will be saved under
- the name %filename. This corresponds to the "comma" file on the *ix ver-
- sion. If the file name is already 8 characters (plus extension), e2 will
- warn you that the name is being truncated. This warning is intended to
- prevent you from editing, say, longnam1.c and longnam2.c in the same ses-
- sion. The results will not be pleasing!
-
- Temporary files are called &*.tmp. Most are removed on exit, unless there
- is a crash, though a "state" file will remain and is used to restart an
- edit exactly as it was left; simply type e2 without any arguments.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
- 4. FILTERS
-
- The feed and run commands, and by implication, fill, just and center,
- mostly work under DOS. There can be problems with large files, and with
- external filters that are not "well behaved". These should be implemented
- by fork() and exec(), but have to be hacked under DOS.
-
- If anything does appear to go wrong (screen gets scrambled, etc), do not
- panic! Exit from the editor and take a copy of your backup file (%*). You
- may find that the file is still OK (it seems that just the screen gets
- scrambled). If not, simply copy the backup over the original and carry on
- from there.
-
- If you do encounter problems with this, please inform the author. Try to
- give as full details as possible to aid bug hunting.
-
- 5. CARRIAGE RETURNS
-
- End of line conventions differ from one system to another. In particular,
- DOS normally expects text files to have the sequence CR-LF rather than just
- LF; owing to its origins, e2 uses the latter convention internally.
-
- The default mode of e2 suppresses the display of CRs on the screen*. A CR
- flag at the bottom of the screen indicates this mode.
-
- In its LF mode (no CR flag), e2 regards CRs as any other control character,
- and will show them as *M (the * is actually a square block, but I can't do
- one on this terminal!).
-
- You can of course get rid of them using rep:
-
- <ESC>rep /*M//<CR>
-
- You enter control-chars by hitting control-\ (most PC keyboards), control-~
- or control-` (some ATs and PS/2s), followed by the character or its
- representation. e.g. To enter a carriage return, type
-
- <control-\><CR>
-
- or
-
- <control-\>M
-
- You can put CRs on the end of every line using $ in RE (regular expression)
- mode. e.g.
-
- <ESC>re<CR>
- <ESC>rep /$/*M/<CR>
-
- To switch from one mode to the other, use the command
-
- <ESC>cr<CR>
-
- or
-
- <ESC>-cr<CR>
-
- * This is the reverse of the earlier version, e.
-
-
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
- as appropriate. On the command line, you can use the the -lf flag to turn
- off the default CR mode.
-
- Remember that if you use the default mode to edit a file which initially
- contains no CRs, e2 will insert them on exit.
-
- 6. FLOPPIES
-
- Many people have come to grief when trying to use e2 (or one of its ances-
- tors, v or e) to copy files from one diskette to another. The procedure
-
- enter the editor
- change the disk
- save the file
-
- seems a reasonable possibility*. In fact, it is an almost, but not quite,
- totally reliable method of scrambling both disks.
-
- Why? Well here in brief is how this type of editor works:
-
- a) First, it reads through the file and builds a linked list of "file
- segment descriptors" which essentially define blocks of N lines in
- the file. Amongst other things, each descriptor contains pointers to
- the byte offset of each file segment.
-
- b) When you enter editing commands, e2 modifies the linked list by mov-
- ing pointers and changing the links, as you insert, move or delete
- text. If you add text, it builds a keyboard file and inserts
- descriptors which point to blocks in this. If you window into other
- files and pick out text blocks, again the list is modified.
-
- c) Note that the contents of the file are never "loaded into memory" at
- all, except for the local section on the screen|-. Nothing happens to
- the original files until you hit ^Z. Then, e2 "simply" runs through
- the linked list and constructs a new file. The original file is
- renamed to form the backup.
-
- The bottom line is that changing disks in the middle of all this completely
- invalidates all the information held in the data structures, but of course
- e2 is none the wiser. It simply reads what it thinks are the correct bits
- and pieces and writes them to what it thinks is the correct destination.
- This could be anywhere on the diskette.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- * Though why it should be more obvious than "copy" is beyond my comprehension.
- |- In fact, \fIe2\fR does a lot of caching for efficiency reasons, but this
- does not affect the general argument.
-
-
-
-
-
-
-
-
-
-