diff --git a/Makefile b/Makefile index 5d2ef00..cb3a0cb 100644 --- a/Makefile +++ b/Makefile @@ -72,7 +72,7 @@ # # from Makefile 7.13.1.3 (2.11BSD GTE) 1996/10/23 # -# @(#)Makefile 1.46 (gritter) 12/4/04 +# @(#)Makefile 1.47 (gritter) 2/19/05 # # @@ -118,7 +118,8 @@ INSTALL = /usr/ucb/install # testing the internationalization code against the older version and # should not normally be removed. # Add -DNO_BE_BACKSLASH to make backslash a regular character inside RE -# bracket expressions. +# bracket expressions. This is required for POSIX conformance but +# conflicts with historical practice for ex. # # Some historic comments: # diff --git a/README b/README index 526f57d..cf786f7 100644 --- a/README +++ b/README @@ -32,7 +32,7 @@ Then type 'make' and 'make install'. It is possible to build a RPM file directly from the source distribution by executing - rpmbuild -tb ex-.tar.bz2 + rpmbuild -tb ex-.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 @@ -40,18 +40,19 @@ match those of the Heirloom Toolchest . 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, 2.0 +Linux Kernel 2.0 and above; libc4, libc5, glibc 2.2 and above, + diet libc, uClibc +Sun Solaris 2.5.1 and above +Caldera Open UNIX 8.0.0 +SCO 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 +Control Data EP/IX 2.2.1AA +FreeBSD 3.1, 4.5, 5.x +NetBSD 1.6, 2.0 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 @@ -88,11 +89,11 @@ byte sequence that is entered at the terminal has been completed. The multibyte code is known to work on the following systems: -Linux glibc 2.2.2 and later -Sun Solaris 9 and later -HP HP-UX B.11.11 and later -FreeBSD 5.3 -NetBSD 2.0 +Linux glibc 2.2.2 and later +Sun Solaris 9 and later +HP HP-UX B.11.11 and later +FreeBSD 5.3 +NetBSD 2.0 It has been tested on xterm patch #192, rxvt-unicode 4.2, mlterm 2.9.1, and xiterm 0.5. @@ -110,7 +111,7 @@ the erase key once after entering a multibyte character will result in an incomplete byte sequence. -Gunnar Ritter 2/15/05 +Gunnar Ritter 2/19/05 Freiburg i. Br. Germany diff --git a/TODO b/TODO index 665e231..973c7f5 100644 --- a/TODO +++ b/TODO @@ -7,24 +7,10 @@ TODO list for ex equivalence class, and since there is no access to the basic collation sequence, LC_COLLATE locales are completely ignored. -- There may be other unresolved POSIX.2 demands I did not notice yet. - Please write me if you find one. You can get SUSv2 from The Open - Group for $0, it contains nearly the - same text for ex/vi as POSIX.2 and is a good reference manual. - - SVr4 ex probably has some silent features that this one should have too. -- SUSv3 / POSIX.1-200x ex/vi support. - I did not yet decide whether this is worth implementing. It requires - a lot of mostly small changes that make vi more nvi-like in general. - If SUSv3 has as little success in the Open Source world as its - predecessors, it might be better to ignore it and stay on the - officially obsolete SUSv2 / POSIX.2 level. - - The traditional regular expression code in ex_re.c could be updated to work with multibyte characters. This would mostly involve to take the code from libcommon/regexp.h of the Heirloom Toolchest. -- Translated message catalogues. - -Gunnar Ritter 12/2/04 +Gunnar Ritter 2/19/05 diff --git a/config.h b/config.h index b6860f0..23f7779 100644 --- a/config.h +++ b/config.h @@ -70,7 +70,7 @@ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * @(#)config.h 1.11 (gritter) 12/1/04 + * @(#)config.h 1.12 (gritter) 2/19/05 */ /* @@ -84,10 +84,10 @@ * bytes are allocated on the stack each time you go into visual * and then never freed by the system. Thus if you have no terminals * which are larger than 24 * 80 you may well want to make TUBESIZE - * smaller. TUBECOLS should stay at 160 since this defines the maximum - * length of opening on hardcopies and allows two lines of open on - * terminals like adm3's (glass tty's) where it switches to pseudo - * hardcopy mode when a line gets longer than 80 characters. + * smaller. TUBECOLS should stay at 160 at least since this defines + * the maximum length of opening on hardcopies and allows two lines + * of open on terminals like adm3's (glass tty's) where it switches + * to pseudo hardcopy mode when a line gets longer than 80 characters. */ #ifndef VMUNIX #define TUBELINES 70 /* Number of screen lines for visual */ @@ -115,9 +115,15 @@ #endif /* VMUNIX */ /* - * Intptr_t was introduced by SUSv2, and it is highly necessary to achieve - * portability between various processors. It is a signed integer type - * capable of holding pointers: sizeof(intptr_t) == sizeof(char *). + * The following types are usually predefined on modern platforms; it + * is only necessary to define them manually if compilation errors occur. + */ + +/* + * The intptr_t type was introduced by SUSv2 and C99. It is a signed + * integer type capable of holding pointers: + * + * sizeof(intptr_t) == sizeof(void *). * * Type Environment Typical systems * int IP16 PDP11, 80286 @@ -130,3 +136,11 @@ #ifdef notdef typedef int intptr_t; #endif + +/* + * The ssize_t type should be the same as the return type of read() + * and write(). + */ +#ifdef notdef +typedef int ssize_t; +#endif