Mercurial > emacs
changeset 23071:3790e185acc0
(tgetst1): Supprt EBCDIC systems.
(esctab): Alternate definition if IS_EBCDIC_HOST.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 18 Aug 1998 20:58:45 +0000 |
parents | 7a5031625079 |
children | 9edc07f08118 |
files | src/termcap.c |
diffstat | 1 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/termcap.c Tue Aug 18 13:15:18 1998 +0000 +++ b/src/termcap.c Tue Aug 18 20:58:45 1998 +0000 @@ -173,6 +173,17 @@ return tgetst1 (ptr, area); } +#ifdef IS_EBCDIC_HOST +/* Table, indexed by a character in range 0200 to 0300 with 0200 subtracted, + gives meaning of character following \, or a space if no special meaning. + Sixteen characters per line within the string. */ + +static char esctab[] + = " \057\026 \047\014 \ + \025 \015 \ + \005 \013 \ + "; +#else /* Table, indexed by a character in range 0100 to 0140 with 0100 subtracted, gives meaning of character following \, or a space if no special meaning. Eight characters per line within the string. */ @@ -182,6 +193,7 @@ \012 \ \015 \011 \013 \ "; +#endif /* PTR points to a string value inside a termcap entry. Copy that value, processing \ and ^ abbreviations, @@ -245,12 +257,21 @@ p++; } } +#ifdef IS_EBCDIC_HOST + else if (c >= 0200 && c < 0360) + { + c1 = esctab[(c & ~0100) - 0200]; + if (c1 != ' ') + c = c1; + } +#else else if (c >= 0100 && c < 0200) { c1 = esctab[(c & ~040) - 0100]; if (c1 != ' ') c = c1; } +#endif } *r++ = c; }