mirror of https://github.com/tildeclub/ex-vi.git
108 lines
3.9 KiB
Plaintext
108 lines
3.9 KiB
Plaintext
Welcome to the ex/vi port!
|
|
==========================
|
|
|
|
This implementation is derived from ex/vi 3.7 of 6/7/85 and the BSD
|
|
termcap library, originally from the 2.11BSD distribution. All of them
|
|
were changed to compile and run on newer POSIX compatible Unix systems.
|
|
Support for international character sets was added, including support
|
|
for multibyte locales (in particular UTF-8), and some changes were made
|
|
to get closer to the POSIX.2 guidelines for ex and vi. Some issues that
|
|
were clearly bugs and not features have also been resolved; the the
|
|
Changes file for details.
|
|
|
|
New releases are announced on Fresmeat. If you want to get
|
|
notified by email on each release, use their subscription service at
|
|
<http://freshmeat.net/projects/vi/>.
|
|
|
|
The project homepage is currently at <http://ex-vi.sourceforge.net>.
|
|
|
|
|
|
How to build
|
|
============
|
|
|
|
First look at the Makefile and change the settings there to match your
|
|
build environment. Explanations are provided directly in this file.
|
|
|
|
You can tune the sizes of some internal buffers by editing config.h. In
|
|
particular, you will have to raise the size of the 'TUBE' constants if
|
|
you wish to use really large-sized terminals.
|
|
|
|
Then type 'make' and 'make install'.
|
|
|
|
It is possible to build a RPM file directly from the source distribution
|
|
by executing
|
|
|
|
rpmbuild -tb ex-<version>.tar.bz2
|
|
|
|
Note that the RPM spec installs the binary in /usr/5bin by default to
|
|
avoid conflicts with vendor files in /usr/bin. The default locations
|
|
match those of the Heirloom Toolchest <http://heirloom.sourceforge.net>.
|
|
|
|
The following systems have been reported to compile this code:
|
|
|
|
Linux Kernel 2.0 and above; libc4, libc5, glibc 2.2 and above,
|
|
diet libc, uClibc; gcc, Intel C
|
|
Sun Solaris 2.5.1 and above
|
|
Open UNIX 8.0.0
|
|
UnixWare 7.1.1, 7.0.1, 2.1.2
|
|
HP HP-UX B.11.23, B.11.11, B.11.00, B.10.20
|
|
HP Tru64 UNIX 4.0G, 5.1B
|
|
IBM AIX 5.1, 4.3
|
|
NEC SUPER-UX 10.2
|
|
NEC UX/4800 Release11.5 Rev.A
|
|
FreeBSD 3.1, 4.5, 5.x
|
|
NetBSD 1.6
|
|
|
|
Reports about other Unix systems are welcome, whether successful or not
|
|
(in the latter case add a detailed description). This port of vi is only
|
|
aimed at Unix, though, so I am not interested about results from running
|
|
this software on Windows etc.
|
|
|
|
Prerequisites for ports to other systems are:
|
|
|
|
- The system must provide an ANSI C-89 compiler and POSIX.1-1990 functions.
|
|
|
|
- The system must provide an sbrk() call to increase the memory heap size.
|
|
If only a fake sbrk() call is provided that works by pre-allocating
|
|
several MB, vi will probably work too.
|
|
|
|
- The system library must allow replacement of malloc() and printf() by the
|
|
versions provided by vi. For malloc(), it also must make its own internal
|
|
memory requests using the vi malloc(). Otherwise, vi will likely die with
|
|
a segmentation fault because the storage allocated by sbrk() interferes
|
|
with usual Unix library implementations of malloc().
|
|
|
|
The last two requirements could probably be eliminated with some effort, but
|
|
it would not result in any real improvements for usual the Unix platforms vi
|
|
is targeted at, so it has not be done yet.
|
|
|
|
|
|
Multibyte locale support
|
|
========================
|
|
|
|
Support for multibyte locales has been added to vi. It requires a number of
|
|
functions that, while specified in XPG6, are not present on all systems that
|
|
provide basic multibyte support. In particular, vi needs wcwidth() to
|
|
determine the visual width of a character, and mbrtowc() to detect when a
|
|
byte sequence that is entered at the terminal has been completed.
|
|
|
|
The multibyte code is known to work with UTF-8 locales on the following
|
|
systems:
|
|
|
|
Linux glibc 2.3.3
|
|
Sun Solaris 10
|
|
FreeBSD 5.3
|
|
|
|
It has been tested with xterm patch #192 and rxvt-unicode 4.2.
|
|
|
|
To use UTF-8 locales in ex mode, the terminal must be put in 'stty iutf8'
|
|
mode on Linux if it does not perform this automatically. Otherwise, typing
|
|
the erase key once after entering a multibyte character will result in an
|
|
incomplete byte sequence.
|
|
|
|
|
|
Gunnar Ritter 12/2/04
|
|
Freiburg i. Br.
|
|
Germany
|
|
<Gunnar.Ritter@pluto.uni-freiburg.de>
|