Update build instructions for XClock, remove hard Xaw dependency, package neXtaw, etc.

This commit is contained in:
Mid Favila 2021-05-15 18:52:30 +00:00
parent 70094bdf79
commit d440edee3b
309 changed files with 197834 additions and 4 deletions

0
mbase/ROX-Filer Normal file
View File

0
mbase/alsa-lib Normal file
View File

0
mbase/alsa-plugins Normal file
View File

0
mbase/alsa-utils Normal file
View File

0
mbase/epic Normal file
View File

0
mbase/fbv-git Normal file
View File

11
mbase/gnugrep/build Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh -e
export CFLAGS="$CFLAGS -Wno-error -static"
./configure \
--prefix=/usr
make
make DESTDIR="$1" install
install -Dm755 src/grep "$1/usr/bin/ggrep"

1
mbase/gnugrep/checksums Normal file
View File

@ -0,0 +1 @@
667e15e8afe189e93f9f21a7cd3a7b3f776202f417330b248c2ad4f997d9373e

1
mbase/gnugrep/sources Normal file
View File

@ -0,0 +1 @@
https://ftp.gnu.org/gnu/grep/grep-3.6.tar.xz

1
mbase/gnugrep/version Normal file
View File

@ -0,0 +1 @@
3.6 1

0
mbase/liberation-fonts Normal file
View File

1
mbase/neXtaw Symbolic link
View File

@ -0,0 +1 @@
../ports/neXtaw

1
mbase/norm.txt Normal file
View File

@ -0,0 +1 @@
9base-mod 9wm ROX-Filer alsa-lib alsa-plugins alsa-utils atk autoconf automake axel baselayout bash binutils bison bzip2 cairo cmake curl cyrus-sasl diffutils dropbear dtach-git epic eudev expat fbv-git ffmpeg file flex fontconfig freetype-harfbuzz fribidi fvwm3-git gavin-bc-git gcc gccmakedep-git gdk-pixbuf gettext-tiny giblib giflib git glib gmp gnugrep gnutls gperf gtk+2 gtk2-engines-clearlooks gv gzip hicolor hummingbird-git iana-etc imake-git imlib2 inetutils intltool kiss-mod lame leafpad less libICE libSM libX11 libXScrnSaver libXau libXaw3d-git libXcomposite libXcursor libXdamage libXdmcp libXext libXfixes libXfont2 libXft libXi libXinerama libXmu libXpm libXrandr libXrender libXt libXtst libXxf86vm libarchive libass libbson-git libdrm libelf libepoxy liberation-fonts libevdev libevent libexif libffi libfontenc libgcrypt libgpg-error libinput libjpeg-turbo libmbim libmpc libnl libogg libpcap libpciaccess libpng libressl libtheora libtool libusb libvorbis libvpx libxcb libxkbfile libxml2 libxshmfence links2 linux-headers llvm lxtask lz4 m4 make man-pages-posix mandoc mesa meson mpfr mtdev mtm-git mtpaint-git nasm ncurses net-tools nettle nilfs-utils nmap oksh opus otawk-git pango patch pciutils pcre perl perl-xml pidgin pixman pkgconf procps-ng purple-discord-git python ruby samurai sbase-git-mod scrot sdl2 sed shadow shared-mime-info shellcheck-bin slock sqlite ssu stalonetray sxiv sysklogd-git syslinux sysmgr tabbed tcpdump tine-git tt++ tzdata ubase-git-mod usbutils util-linux x265 xbitmaps xcalc xcb-proto xcb-util xcb-util-image xcb-util-keysyms xcb-util-wm xcompmgr xdm xev xf86-input-libinput xf86-video-amdgpu xfsprogs xinit xinput xkbcomp xkeyboard-config xless xmessage xorg-cf xorg-fontutil xorg-server xorg-util-macros xorgproto xosview xrdb xset xsetroot xssstart xterm xtrans xvidcore xvkbd xwallpaper xz zlib zstd

View File

@ -1 +0,0 @@
../ports/psmisc-git

0
mbase/scrot Normal file
View File

0
mbase/sxiv Normal file
View File

0
mbase/tzdata Normal file
View File

View File

0
mbase/xorg-server Normal file
View File

0
mbase/xwallpaper Normal file
View File

9
ports/ffmpeg/diffutils/build Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh -e
export CFLAGS="$CFLAGS -static"
./configure \
--prefix=/usr
make
make DESTDIR="$1" install

View File

@ -0,0 +1 @@
b3a7a6221c3dc916085f0d205abf6b8e1ba443d4dd965118da364a1dc1cb3a26 diffutils-3.7.tar.xz

View File

@ -0,0 +1 @@
https://ftp.gnu.org/gnu/diffutils/diffutils-3.7.tar.xz

View File

@ -0,0 +1 @@
3.7 1

View File

@ -1,2 +1,3 @@
perl-xml make
gtk+2
intltool make

View File

@ -1,3 +1,4 @@
perl-xml make
gettext-tiny make
gtk+2
intltool make

View File

@ -1,3 +1,4 @@
ghostscript
freetype-harfbuzz
libICE
libSM

View File

@ -5,3 +5,7 @@
make
make DESTDIR="$1" install
#ln -s "/usr/include/X11/Xaw3d" "$1/usr/include/X11/Xaw"
#ln -s "/usr/lib/pkgconfig/xaw3d.pc" "/usr/lib/pkgconfig/xaw7.pc"
#ln -s "/usr/lib/libXaw3d.so" "$1/usr/lib/libXaw7.so"

8
ports/neXtaw/build Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh -e
./configure \
--prefix=/usr \
make
make DESTDIR="$1" install
install -Dm644 nextaw.pc "$1/usr/lib/pkgconfig/nextaw.pc"

1
ports/neXtaw/checksums Normal file
View File

@ -0,0 +1 @@
7cfe6706b9a76620389e04a7a87f06786c8a6606829c3157c3e9e45a805bb584

View File

@ -0,0 +1,12 @@
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: neXtaw
Description: Xaw with N*XTSTEP look and feel
Version: 1.0.13
Requires: xproto xt
Requires.private: x11 xext xt xmu xpm
Cflags: -I${includedir}
Libs: -L${libdir} -lneXtaw

2
ports/neXtaw/sources Normal file
View File

@ -0,0 +1,2 @@
http://siag.nu/pub/neXtaw/neXtaw-0.15.1.tar.gz
files/nextaw.pc

1
ports/neXtaw/version Normal file
View File

@ -0,0 +1 @@
0.15.1 1

12
ports/neXtaw/xaw7.pc Normal file
View File

@ -0,0 +1,12 @@
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Xaw
Description: X Athena Widgets Library, version 7
Version: 1.0.13
Requires: xproto xt
Requires.private: x11 xext xt xmu xpm
Cflags: -I${includedir}
Libs: -L${libdir} -lneXtaw

View File

@ -1,5 +1,8 @@
#!/bin/sh -e
# Patch Clock.c to compile with other Xaws
sed -e 's/XpmReadFileToPixmap(dpy, RootWindowOfScreen(screen), name, &pmap,//g' clock.c.new | sed -e 's/&shapemask, NULL);//g' > Clock.c.new ; mv Clock.c.new Clock.c
./configure \
--prefix=/usr

View File

@ -2,7 +2,6 @@ libICE
libSM
libX11
libXau
libXaw make
libXext
libXft
libXmu

View File

@ -1,4 +1,4 @@
libX11
libXaw make
libXmu
libXaw
libXt

View File

@ -3,6 +3,5 @@ automake make
libICE
libSM
libX11
libXaw
libXt
xorg-server

BIN
ports/xterm/xterm-359.tgz Normal file

Binary file not shown.

View File

@ -0,0 +1,250 @@
/*
* This header file was generated by ./256colres.pl
*/
/* $XTermId: 256colres.h,v 1.11 2007/06/12 00:44:23 tom Exp $ */
#ifndef included_256colres_h
#define included_256colres_h
COLOR_RES("16", screen.Acolors[16], DFT_COLOR("rgb:00/00/00")),
COLOR_RES("17", screen.Acolors[17], DFT_COLOR("rgb:00/00/5f")),
COLOR_RES("18", screen.Acolors[18], DFT_COLOR("rgb:00/00/87")),
COLOR_RES("19", screen.Acolors[19], DFT_COLOR("rgb:00/00/af")),
COLOR_RES("20", screen.Acolors[20], DFT_COLOR("rgb:00/00/d7")),
COLOR_RES("21", screen.Acolors[21], DFT_COLOR("rgb:00/00/ff")),
COLOR_RES("22", screen.Acolors[22], DFT_COLOR("rgb:00/5f/00")),
COLOR_RES("23", screen.Acolors[23], DFT_COLOR("rgb:00/5f/5f")),
COLOR_RES("24", screen.Acolors[24], DFT_COLOR("rgb:00/5f/87")),
COLOR_RES("25", screen.Acolors[25], DFT_COLOR("rgb:00/5f/af")),
COLOR_RES("26", screen.Acolors[26], DFT_COLOR("rgb:00/5f/d7")),
COLOR_RES("27", screen.Acolors[27], DFT_COLOR("rgb:00/5f/ff")),
COLOR_RES("28", screen.Acolors[28], DFT_COLOR("rgb:00/87/00")),
COLOR_RES("29", screen.Acolors[29], DFT_COLOR("rgb:00/87/5f")),
COLOR_RES("30", screen.Acolors[30], DFT_COLOR("rgb:00/87/87")),
COLOR_RES("31", screen.Acolors[31], DFT_COLOR("rgb:00/87/af")),
COLOR_RES("32", screen.Acolors[32], DFT_COLOR("rgb:00/87/d7")),
COLOR_RES("33", screen.Acolors[33], DFT_COLOR("rgb:00/87/ff")),
COLOR_RES("34", screen.Acolors[34], DFT_COLOR("rgb:00/af/00")),
COLOR_RES("35", screen.Acolors[35], DFT_COLOR("rgb:00/af/5f")),
COLOR_RES("36", screen.Acolors[36], DFT_COLOR("rgb:00/af/87")),
COLOR_RES("37", screen.Acolors[37], DFT_COLOR("rgb:00/af/af")),
COLOR_RES("38", screen.Acolors[38], DFT_COLOR("rgb:00/af/d7")),
COLOR_RES("39", screen.Acolors[39], DFT_COLOR("rgb:00/af/ff")),
COLOR_RES("40", screen.Acolors[40], DFT_COLOR("rgb:00/d7/00")),
COLOR_RES("41", screen.Acolors[41], DFT_COLOR("rgb:00/d7/5f")),
COLOR_RES("42", screen.Acolors[42], DFT_COLOR("rgb:00/d7/87")),
COLOR_RES("43", screen.Acolors[43], DFT_COLOR("rgb:00/d7/af")),
COLOR_RES("44", screen.Acolors[44], DFT_COLOR("rgb:00/d7/d7")),
COLOR_RES("45", screen.Acolors[45], DFT_COLOR("rgb:00/d7/ff")),
COLOR_RES("46", screen.Acolors[46], DFT_COLOR("rgb:00/ff/00")),
COLOR_RES("47", screen.Acolors[47], DFT_COLOR("rgb:00/ff/5f")),
COLOR_RES("48", screen.Acolors[48], DFT_COLOR("rgb:00/ff/87")),
COLOR_RES("49", screen.Acolors[49], DFT_COLOR("rgb:00/ff/af")),
COLOR_RES("50", screen.Acolors[50], DFT_COLOR("rgb:00/ff/d7")),
COLOR_RES("51", screen.Acolors[51], DFT_COLOR("rgb:00/ff/ff")),
COLOR_RES("52", screen.Acolors[52], DFT_COLOR("rgb:5f/00/00")),
COLOR_RES("53", screen.Acolors[53], DFT_COLOR("rgb:5f/00/5f")),
COLOR_RES("54", screen.Acolors[54], DFT_COLOR("rgb:5f/00/87")),
COLOR_RES("55", screen.Acolors[55], DFT_COLOR("rgb:5f/00/af")),
COLOR_RES("56", screen.Acolors[56], DFT_COLOR("rgb:5f/00/d7")),
COLOR_RES("57", screen.Acolors[57], DFT_COLOR("rgb:5f/00/ff")),
COLOR_RES("58", screen.Acolors[58], DFT_COLOR("rgb:5f/5f/00")),
COLOR_RES("59", screen.Acolors[59], DFT_COLOR("rgb:5f/5f/5f")),
COLOR_RES("60", screen.Acolors[60], DFT_COLOR("rgb:5f/5f/87")),
COLOR_RES("61", screen.Acolors[61], DFT_COLOR("rgb:5f/5f/af")),
COLOR_RES("62", screen.Acolors[62], DFT_COLOR("rgb:5f/5f/d7")),
COLOR_RES("63", screen.Acolors[63], DFT_COLOR("rgb:5f/5f/ff")),
COLOR_RES("64", screen.Acolors[64], DFT_COLOR("rgb:5f/87/00")),
COLOR_RES("65", screen.Acolors[65], DFT_COLOR("rgb:5f/87/5f")),
COLOR_RES("66", screen.Acolors[66], DFT_COLOR("rgb:5f/87/87")),
COLOR_RES("67", screen.Acolors[67], DFT_COLOR("rgb:5f/87/af")),
COLOR_RES("68", screen.Acolors[68], DFT_COLOR("rgb:5f/87/d7")),
COLOR_RES("69", screen.Acolors[69], DFT_COLOR("rgb:5f/87/ff")),
COLOR_RES("70", screen.Acolors[70], DFT_COLOR("rgb:5f/af/00")),
COLOR_RES("71", screen.Acolors[71], DFT_COLOR("rgb:5f/af/5f")),
COLOR_RES("72", screen.Acolors[72], DFT_COLOR("rgb:5f/af/87")),
COLOR_RES("73", screen.Acolors[73], DFT_COLOR("rgb:5f/af/af")),
COLOR_RES("74", screen.Acolors[74], DFT_COLOR("rgb:5f/af/d7")),
COLOR_RES("75", screen.Acolors[75], DFT_COLOR("rgb:5f/af/ff")),
COLOR_RES("76", screen.Acolors[76], DFT_COLOR("rgb:5f/d7/00")),
COLOR_RES("77", screen.Acolors[77], DFT_COLOR("rgb:5f/d7/5f")),
COLOR_RES("78", screen.Acolors[78], DFT_COLOR("rgb:5f/d7/87")),
COLOR_RES("79", screen.Acolors[79], DFT_COLOR("rgb:5f/d7/af")),
COLOR_RES("80", screen.Acolors[80], DFT_COLOR("rgb:5f/d7/d7")),
COLOR_RES("81", screen.Acolors[81], DFT_COLOR("rgb:5f/d7/ff")),
COLOR_RES("82", screen.Acolors[82], DFT_COLOR("rgb:5f/ff/00")),
COLOR_RES("83", screen.Acolors[83], DFT_COLOR("rgb:5f/ff/5f")),
COLOR_RES("84", screen.Acolors[84], DFT_COLOR("rgb:5f/ff/87")),
COLOR_RES("85", screen.Acolors[85], DFT_COLOR("rgb:5f/ff/af")),
COLOR_RES("86", screen.Acolors[86], DFT_COLOR("rgb:5f/ff/d7")),
COLOR_RES("87", screen.Acolors[87], DFT_COLOR("rgb:5f/ff/ff")),
COLOR_RES("88", screen.Acolors[88], DFT_COLOR("rgb:87/00/00")),
COLOR_RES("89", screen.Acolors[89], DFT_COLOR("rgb:87/00/5f")),
COLOR_RES("90", screen.Acolors[90], DFT_COLOR("rgb:87/00/87")),
COLOR_RES("91", screen.Acolors[91], DFT_COLOR("rgb:87/00/af")),
COLOR_RES("92", screen.Acolors[92], DFT_COLOR("rgb:87/00/d7")),
COLOR_RES("93", screen.Acolors[93], DFT_COLOR("rgb:87/00/ff")),
COLOR_RES("94", screen.Acolors[94], DFT_COLOR("rgb:87/5f/00")),
COLOR_RES("95", screen.Acolors[95], DFT_COLOR("rgb:87/5f/5f")),
COLOR_RES("96", screen.Acolors[96], DFT_COLOR("rgb:87/5f/87")),
COLOR_RES("97", screen.Acolors[97], DFT_COLOR("rgb:87/5f/af")),
COLOR_RES("98", screen.Acolors[98], DFT_COLOR("rgb:87/5f/d7")),
COLOR_RES("99", screen.Acolors[99], DFT_COLOR("rgb:87/5f/ff")),
COLOR_RES("100", screen.Acolors[100], DFT_COLOR("rgb:87/87/00")),
COLOR_RES("101", screen.Acolors[101], DFT_COLOR("rgb:87/87/5f")),
COLOR_RES("102", screen.Acolors[102], DFT_COLOR("rgb:87/87/87")),
COLOR_RES("103", screen.Acolors[103], DFT_COLOR("rgb:87/87/af")),
COLOR_RES("104", screen.Acolors[104], DFT_COLOR("rgb:87/87/d7")),
COLOR_RES("105", screen.Acolors[105], DFT_COLOR("rgb:87/87/ff")),
COLOR_RES("106", screen.Acolors[106], DFT_COLOR("rgb:87/af/00")),
COLOR_RES("107", screen.Acolors[107], DFT_COLOR("rgb:87/af/5f")),
COLOR_RES("108", screen.Acolors[108], DFT_COLOR("rgb:87/af/87")),
COLOR_RES("109", screen.Acolors[109], DFT_COLOR("rgb:87/af/af")),
COLOR_RES("110", screen.Acolors[110], DFT_COLOR("rgb:87/af/d7")),
COLOR_RES("111", screen.Acolors[111], DFT_COLOR("rgb:87/af/ff")),
COLOR_RES("112", screen.Acolors[112], DFT_COLOR("rgb:87/d7/00")),
COLOR_RES("113", screen.Acolors[113], DFT_COLOR("rgb:87/d7/5f")),
COLOR_RES("114", screen.Acolors[114], DFT_COLOR("rgb:87/d7/87")),
COLOR_RES("115", screen.Acolors[115], DFT_COLOR("rgb:87/d7/af")),
COLOR_RES("116", screen.Acolors[116], DFT_COLOR("rgb:87/d7/d7")),
COLOR_RES("117", screen.Acolors[117], DFT_COLOR("rgb:87/d7/ff")),
COLOR_RES("118", screen.Acolors[118], DFT_COLOR("rgb:87/ff/00")),
COLOR_RES("119", screen.Acolors[119], DFT_COLOR("rgb:87/ff/5f")),
COLOR_RES("120", screen.Acolors[120], DFT_COLOR("rgb:87/ff/87")),
COLOR_RES("121", screen.Acolors[121], DFT_COLOR("rgb:87/ff/af")),
COLOR_RES("122", screen.Acolors[122], DFT_COLOR("rgb:87/ff/d7")),
COLOR_RES("123", screen.Acolors[123], DFT_COLOR("rgb:87/ff/ff")),
COLOR_RES("124", screen.Acolors[124], DFT_COLOR("rgb:af/00/00")),
COLOR_RES("125", screen.Acolors[125], DFT_COLOR("rgb:af/00/5f")),
COLOR_RES("126", screen.Acolors[126], DFT_COLOR("rgb:af/00/87")),
COLOR_RES("127", screen.Acolors[127], DFT_COLOR("rgb:af/00/af")),
COLOR_RES("128", screen.Acolors[128], DFT_COLOR("rgb:af/00/d7")),
COLOR_RES("129", screen.Acolors[129], DFT_COLOR("rgb:af/00/ff")),
COLOR_RES("130", screen.Acolors[130], DFT_COLOR("rgb:af/5f/00")),
COLOR_RES("131", screen.Acolors[131], DFT_COLOR("rgb:af/5f/5f")),
COLOR_RES("132", screen.Acolors[132], DFT_COLOR("rgb:af/5f/87")),
COLOR_RES("133", screen.Acolors[133], DFT_COLOR("rgb:af/5f/af")),
COLOR_RES("134", screen.Acolors[134], DFT_COLOR("rgb:af/5f/d7")),
COLOR_RES("135", screen.Acolors[135], DFT_COLOR("rgb:af/5f/ff")),
COLOR_RES("136", screen.Acolors[136], DFT_COLOR("rgb:af/87/00")),
COLOR_RES("137", screen.Acolors[137], DFT_COLOR("rgb:af/87/5f")),
COLOR_RES("138", screen.Acolors[138], DFT_COLOR("rgb:af/87/87")),
COLOR_RES("139", screen.Acolors[139], DFT_COLOR("rgb:af/87/af")),
COLOR_RES("140", screen.Acolors[140], DFT_COLOR("rgb:af/87/d7")),
COLOR_RES("141", screen.Acolors[141], DFT_COLOR("rgb:af/87/ff")),
COLOR_RES("142", screen.Acolors[142], DFT_COLOR("rgb:af/af/00")),
COLOR_RES("143", screen.Acolors[143], DFT_COLOR("rgb:af/af/5f")),
COLOR_RES("144", screen.Acolors[144], DFT_COLOR("rgb:af/af/87")),
COLOR_RES("145", screen.Acolors[145], DFT_COLOR("rgb:af/af/af")),
COLOR_RES("146", screen.Acolors[146], DFT_COLOR("rgb:af/af/d7")),
COLOR_RES("147", screen.Acolors[147], DFT_COLOR("rgb:af/af/ff")),
COLOR_RES("148", screen.Acolors[148], DFT_COLOR("rgb:af/d7/00")),
COLOR_RES("149", screen.Acolors[149], DFT_COLOR("rgb:af/d7/5f")),
COLOR_RES("150", screen.Acolors[150], DFT_COLOR("rgb:af/d7/87")),
COLOR_RES("151", screen.Acolors[151], DFT_COLOR("rgb:af/d7/af")),
COLOR_RES("152", screen.Acolors[152], DFT_COLOR("rgb:af/d7/d7")),
COLOR_RES("153", screen.Acolors[153], DFT_COLOR("rgb:af/d7/ff")),
COLOR_RES("154", screen.Acolors[154], DFT_COLOR("rgb:af/ff/00")),
COLOR_RES("155", screen.Acolors[155], DFT_COLOR("rgb:af/ff/5f")),
COLOR_RES("156", screen.Acolors[156], DFT_COLOR("rgb:af/ff/87")),
COLOR_RES("157", screen.Acolors[157], DFT_COLOR("rgb:af/ff/af")),
COLOR_RES("158", screen.Acolors[158], DFT_COLOR("rgb:af/ff/d7")),
COLOR_RES("159", screen.Acolors[159], DFT_COLOR("rgb:af/ff/ff")),
COLOR_RES("160", screen.Acolors[160], DFT_COLOR("rgb:d7/00/00")),
COLOR_RES("161", screen.Acolors[161], DFT_COLOR("rgb:d7/00/5f")),
COLOR_RES("162", screen.Acolors[162], DFT_COLOR("rgb:d7/00/87")),
COLOR_RES("163", screen.Acolors[163], DFT_COLOR("rgb:d7/00/af")),
COLOR_RES("164", screen.Acolors[164], DFT_COLOR("rgb:d7/00/d7")),
COLOR_RES("165", screen.Acolors[165], DFT_COLOR("rgb:d7/00/ff")),
COLOR_RES("166", screen.Acolors[166], DFT_COLOR("rgb:d7/5f/00")),
COLOR_RES("167", screen.Acolors[167], DFT_COLOR("rgb:d7/5f/5f")),
COLOR_RES("168", screen.Acolors[168], DFT_COLOR("rgb:d7/5f/87")),
COLOR_RES("169", screen.Acolors[169], DFT_COLOR("rgb:d7/5f/af")),
COLOR_RES("170", screen.Acolors[170], DFT_COLOR("rgb:d7/5f/d7")),
COLOR_RES("171", screen.Acolors[171], DFT_COLOR("rgb:d7/5f/ff")),
COLOR_RES("172", screen.Acolors[172], DFT_COLOR("rgb:d7/87/00")),
COLOR_RES("173", screen.Acolors[173], DFT_COLOR("rgb:d7/87/5f")),
COLOR_RES("174", screen.Acolors[174], DFT_COLOR("rgb:d7/87/87")),
COLOR_RES("175", screen.Acolors[175], DFT_COLOR("rgb:d7/87/af")),
COLOR_RES("176", screen.Acolors[176], DFT_COLOR("rgb:d7/87/d7")),
COLOR_RES("177", screen.Acolors[177], DFT_COLOR("rgb:d7/87/ff")),
COLOR_RES("178", screen.Acolors[178], DFT_COLOR("rgb:d7/af/00")),
COLOR_RES("179", screen.Acolors[179], DFT_COLOR("rgb:d7/af/5f")),
COLOR_RES("180", screen.Acolors[180], DFT_COLOR("rgb:d7/af/87")),
COLOR_RES("181", screen.Acolors[181], DFT_COLOR("rgb:d7/af/af")),
COLOR_RES("182", screen.Acolors[182], DFT_COLOR("rgb:d7/af/d7")),
COLOR_RES("183", screen.Acolors[183], DFT_COLOR("rgb:d7/af/ff")),
COLOR_RES("184", screen.Acolors[184], DFT_COLOR("rgb:d7/d7/00")),
COLOR_RES("185", screen.Acolors[185], DFT_COLOR("rgb:d7/d7/5f")),
COLOR_RES("186", screen.Acolors[186], DFT_COLOR("rgb:d7/d7/87")),
COLOR_RES("187", screen.Acolors[187], DFT_COLOR("rgb:d7/d7/af")),
COLOR_RES("188", screen.Acolors[188], DFT_COLOR("rgb:d7/d7/d7")),
COLOR_RES("189", screen.Acolors[189], DFT_COLOR("rgb:d7/d7/ff")),
COLOR_RES("190", screen.Acolors[190], DFT_COLOR("rgb:d7/ff/00")),
COLOR_RES("191", screen.Acolors[191], DFT_COLOR("rgb:d7/ff/5f")),
COLOR_RES("192", screen.Acolors[192], DFT_COLOR("rgb:d7/ff/87")),
COLOR_RES("193", screen.Acolors[193], DFT_COLOR("rgb:d7/ff/af")),
COLOR_RES("194", screen.Acolors[194], DFT_COLOR("rgb:d7/ff/d7")),
COLOR_RES("195", screen.Acolors[195], DFT_COLOR("rgb:d7/ff/ff")),
COLOR_RES("196", screen.Acolors[196], DFT_COLOR("rgb:ff/00/00")),
COLOR_RES("197", screen.Acolors[197], DFT_COLOR("rgb:ff/00/5f")),
COLOR_RES("198", screen.Acolors[198], DFT_COLOR("rgb:ff/00/87")),
COLOR_RES("199", screen.Acolors[199], DFT_COLOR("rgb:ff/00/af")),
COLOR_RES("200", screen.Acolors[200], DFT_COLOR("rgb:ff/00/d7")),
COLOR_RES("201", screen.Acolors[201], DFT_COLOR("rgb:ff/00/ff")),
COLOR_RES("202", screen.Acolors[202], DFT_COLOR("rgb:ff/5f/00")),
COLOR_RES("203", screen.Acolors[203], DFT_COLOR("rgb:ff/5f/5f")),
COLOR_RES("204", screen.Acolors[204], DFT_COLOR("rgb:ff/5f/87")),
COLOR_RES("205", screen.Acolors[205], DFT_COLOR("rgb:ff/5f/af")),
COLOR_RES("206", screen.Acolors[206], DFT_COLOR("rgb:ff/5f/d7")),
COLOR_RES("207", screen.Acolors[207], DFT_COLOR("rgb:ff/5f/ff")),
COLOR_RES("208", screen.Acolors[208], DFT_COLOR("rgb:ff/87/00")),
COLOR_RES("209", screen.Acolors[209], DFT_COLOR("rgb:ff/87/5f")),
COLOR_RES("210", screen.Acolors[210], DFT_COLOR("rgb:ff/87/87")),
COLOR_RES("211", screen.Acolors[211], DFT_COLOR("rgb:ff/87/af")),
COLOR_RES("212", screen.Acolors[212], DFT_COLOR("rgb:ff/87/d7")),
COLOR_RES("213", screen.Acolors[213], DFT_COLOR("rgb:ff/87/ff")),
COLOR_RES("214", screen.Acolors[214], DFT_COLOR("rgb:ff/af/00")),
COLOR_RES("215", screen.Acolors[215], DFT_COLOR("rgb:ff/af/5f")),
COLOR_RES("216", screen.Acolors[216], DFT_COLOR("rgb:ff/af/87")),
COLOR_RES("217", screen.Acolors[217], DFT_COLOR("rgb:ff/af/af")),
COLOR_RES("218", screen.Acolors[218], DFT_COLOR("rgb:ff/af/d7")),
COLOR_RES("219", screen.Acolors[219], DFT_COLOR("rgb:ff/af/ff")),
COLOR_RES("220", screen.Acolors[220], DFT_COLOR("rgb:ff/d7/00")),
COLOR_RES("221", screen.Acolors[221], DFT_COLOR("rgb:ff/d7/5f")),
COLOR_RES("222", screen.Acolors[222], DFT_COLOR("rgb:ff/d7/87")),
COLOR_RES("223", screen.Acolors[223], DFT_COLOR("rgb:ff/d7/af")),
COLOR_RES("224", screen.Acolors[224], DFT_COLOR("rgb:ff/d7/d7")),
COLOR_RES("225", screen.Acolors[225], DFT_COLOR("rgb:ff/d7/ff")),
COLOR_RES("226", screen.Acolors[226], DFT_COLOR("rgb:ff/ff/00")),
COLOR_RES("227", screen.Acolors[227], DFT_COLOR("rgb:ff/ff/5f")),
COLOR_RES("228", screen.Acolors[228], DFT_COLOR("rgb:ff/ff/87")),
COLOR_RES("229", screen.Acolors[229], DFT_COLOR("rgb:ff/ff/af")),
COLOR_RES("230", screen.Acolors[230], DFT_COLOR("rgb:ff/ff/d7")),
COLOR_RES("231", screen.Acolors[231], DFT_COLOR("rgb:ff/ff/ff")),
COLOR_RES("232", screen.Acolors[232], DFT_COLOR("rgb:08/08/08")),
COLOR_RES("233", screen.Acolors[233], DFT_COLOR("rgb:12/12/12")),
COLOR_RES("234", screen.Acolors[234], DFT_COLOR("rgb:1c/1c/1c")),
COLOR_RES("235", screen.Acolors[235], DFT_COLOR("rgb:26/26/26")),
COLOR_RES("236", screen.Acolors[236], DFT_COLOR("rgb:30/30/30")),
COLOR_RES("237", screen.Acolors[237], DFT_COLOR("rgb:3a/3a/3a")),
COLOR_RES("238", screen.Acolors[238], DFT_COLOR("rgb:44/44/44")),
COLOR_RES("239", screen.Acolors[239], DFT_COLOR("rgb:4e/4e/4e")),
COLOR_RES("240", screen.Acolors[240], DFT_COLOR("rgb:58/58/58")),
COLOR_RES("241", screen.Acolors[241], DFT_COLOR("rgb:62/62/62")),
COLOR_RES("242", screen.Acolors[242], DFT_COLOR("rgb:6c/6c/6c")),
COLOR_RES("243", screen.Acolors[243], DFT_COLOR("rgb:76/76/76")),
COLOR_RES("244", screen.Acolors[244], DFT_COLOR("rgb:80/80/80")),
COLOR_RES("245", screen.Acolors[245], DFT_COLOR("rgb:8a/8a/8a")),
COLOR_RES("246", screen.Acolors[246], DFT_COLOR("rgb:94/94/94")),
COLOR_RES("247", screen.Acolors[247], DFT_COLOR("rgb:9e/9e/9e")),
COLOR_RES("248", screen.Acolors[248], DFT_COLOR("rgb:a8/a8/a8")),
COLOR_RES("249", screen.Acolors[249], DFT_COLOR("rgb:b2/b2/b2")),
COLOR_RES("250", screen.Acolors[250], DFT_COLOR("rgb:bc/bc/bc")),
COLOR_RES("251", screen.Acolors[251], DFT_COLOR("rgb:c6/c6/c6")),
COLOR_RES("252", screen.Acolors[252], DFT_COLOR("rgb:d0/d0/d0")),
COLOR_RES("253", screen.Acolors[253], DFT_COLOR("rgb:da/da/da")),
COLOR_RES("254", screen.Acolors[254], DFT_COLOR("rgb:e4/e4/e4")),
COLOR_RES("255", screen.Acolors[255], DFT_COLOR("rgb:ee/ee/ee")),
#endif /* included_256colres_h */

View File

@ -0,0 +1,93 @@
#! /usr/bin/perl
# $XTermId: 256colres.pl,v 1.16 2007/06/08 23:58:37 tom Exp $
# -----------------------------------------------------------------------------
# this file is part of xterm
#
# Copyright 1999-2002,2007 by Thomas E. Dickey
#
# All Rights Reserved
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name(s) of the above copyright
# holders shall not be used in advertising or otherwise to promote the
# sale, use or other dealings in this Software without prior written
# authorization.
# -----------------------------------------------------------------------------
# Construct a header file defining default resources for the 256-color model
# of xterm. This is modeled after the 256colors2.pl script.
# use the resources for colors 0-15 - usually more-or-less a
# reproduction of the standard ANSI colors, but possibly more
# pleasing shades
use strict;
our ( $line1, $line2, $line3 );
our ( $red, $green, $blue, $gray );
our ( $level, $code, @steps );
print <<EOF;
/*
* This header file was generated by $0
*/
/* \$XTermId\$ */
#ifndef included_256colres_h
#define included_256colres_h
EOF
$line1="COLOR_RES(\"%d\",";
$line2="\tscreen.Acolors[%d],";
$line3="\tDFT_COLOR(\"rgb:%2.2x/%2.2x/%2.2x\")),\n";
# colors 16-231 are a 6x6x6 color cube
for ($red = 0; $red < 6; $red++) {
for ($green = 0; $green < 6; $green++) {
for ($blue = 0; $blue < 6; $blue++) {
$code = 16 + ($red * 36) + ($green * 6) + $blue;
printf($line1, $code);
printf($line2, $code);
printf($line3,
($red ? ($red * 40 + 55) : 0),
($green ? ($green * 40 + 55) : 0),
($blue ? ($blue * 40 + 55) : 0));
}
}
}
# colors 232-255 are a grayscale ramp, intentionally leaving out
# black and white
$code=232;
for ($gray = 0; $gray < 24; $gray++) {
$level = ($gray * 10) + 8;
$code = 232 + $gray;
printf($line1, $code);
printf($line2, $code);
printf($line3,
$level, $level, $level);
}
print <<EOF;
#endif /* included_256colres_h */
EOF

View File

@ -0,0 +1,82 @@
/*
* This header file was generated by ./88colres.pl
*/
/* $XTermId: 88colres.h,v 1.11 2007/06/12 00:44:21 tom Exp $ */
#ifndef included_88colres_h
#define included_88colres_h
COLOR_RES("16", screen.Acolors[16], DFT_COLOR("rgb:00/00/00")),
COLOR_RES("17", screen.Acolors[17], DFT_COLOR("rgb:00/00/8b")),
COLOR_RES("18", screen.Acolors[18], DFT_COLOR("rgb:00/00/cd")),
COLOR_RES("19", screen.Acolors[19], DFT_COLOR("rgb:00/00/ff")),
COLOR_RES("20", screen.Acolors[20], DFT_COLOR("rgb:00/8b/00")),
COLOR_RES("21", screen.Acolors[21], DFT_COLOR("rgb:00/8b/8b")),
COLOR_RES("22", screen.Acolors[22], DFT_COLOR("rgb:00/8b/cd")),
COLOR_RES("23", screen.Acolors[23], DFT_COLOR("rgb:00/8b/ff")),
COLOR_RES("24", screen.Acolors[24], DFT_COLOR("rgb:00/cd/00")),
COLOR_RES("25", screen.Acolors[25], DFT_COLOR("rgb:00/cd/8b")),
COLOR_RES("26", screen.Acolors[26], DFT_COLOR("rgb:00/cd/cd")),
COLOR_RES("27", screen.Acolors[27], DFT_COLOR("rgb:00/cd/ff")),
COLOR_RES("28", screen.Acolors[28], DFT_COLOR("rgb:00/ff/00")),
COLOR_RES("29", screen.Acolors[29], DFT_COLOR("rgb:00/ff/8b")),
COLOR_RES("30", screen.Acolors[30], DFT_COLOR("rgb:00/ff/cd")),
COLOR_RES("31", screen.Acolors[31], DFT_COLOR("rgb:00/ff/ff")),
COLOR_RES("32", screen.Acolors[32], DFT_COLOR("rgb:8b/00/00")),
COLOR_RES("33", screen.Acolors[33], DFT_COLOR("rgb:8b/00/8b")),
COLOR_RES("34", screen.Acolors[34], DFT_COLOR("rgb:8b/00/cd")),
COLOR_RES("35", screen.Acolors[35], DFT_COLOR("rgb:8b/00/ff")),
COLOR_RES("36", screen.Acolors[36], DFT_COLOR("rgb:8b/8b/00")),
COLOR_RES("37", screen.Acolors[37], DFT_COLOR("rgb:8b/8b/8b")),
COLOR_RES("38", screen.Acolors[38], DFT_COLOR("rgb:8b/8b/cd")),
COLOR_RES("39", screen.Acolors[39], DFT_COLOR("rgb:8b/8b/ff")),
COLOR_RES("40", screen.Acolors[40], DFT_COLOR("rgb:8b/cd/00")),
COLOR_RES("41", screen.Acolors[41], DFT_COLOR("rgb:8b/cd/8b")),
COLOR_RES("42", screen.Acolors[42], DFT_COLOR("rgb:8b/cd/cd")),
COLOR_RES("43", screen.Acolors[43], DFT_COLOR("rgb:8b/cd/ff")),
COLOR_RES("44", screen.Acolors[44], DFT_COLOR("rgb:8b/ff/00")),
COLOR_RES("45", screen.Acolors[45], DFT_COLOR("rgb:8b/ff/8b")),
COLOR_RES("46", screen.Acolors[46], DFT_COLOR("rgb:8b/ff/cd")),
COLOR_RES("47", screen.Acolors[47], DFT_COLOR("rgb:8b/ff/ff")),
COLOR_RES("48", screen.Acolors[48], DFT_COLOR("rgb:cd/00/00")),
COLOR_RES("49", screen.Acolors[49], DFT_COLOR("rgb:cd/00/8b")),
COLOR_RES("50", screen.Acolors[50], DFT_COLOR("rgb:cd/00/cd")),
COLOR_RES("51", screen.Acolors[51], DFT_COLOR("rgb:cd/00/ff")),
COLOR_RES("52", screen.Acolors[52], DFT_COLOR("rgb:cd/8b/00")),
COLOR_RES("53", screen.Acolors[53], DFT_COLOR("rgb:cd/8b/8b")),
COLOR_RES("54", screen.Acolors[54], DFT_COLOR("rgb:cd/8b/cd")),
COLOR_RES("55", screen.Acolors[55], DFT_COLOR("rgb:cd/8b/ff")),
COLOR_RES("56", screen.Acolors[56], DFT_COLOR("rgb:cd/cd/00")),
COLOR_RES("57", screen.Acolors[57], DFT_COLOR("rgb:cd/cd/8b")),
COLOR_RES("58", screen.Acolors[58], DFT_COLOR("rgb:cd/cd/cd")),
COLOR_RES("59", screen.Acolors[59], DFT_COLOR("rgb:cd/cd/ff")),
COLOR_RES("60", screen.Acolors[60], DFT_COLOR("rgb:cd/ff/00")),
COLOR_RES("61", screen.Acolors[61], DFT_COLOR("rgb:cd/ff/8b")),
COLOR_RES("62", screen.Acolors[62], DFT_COLOR("rgb:cd/ff/cd")),
COLOR_RES("63", screen.Acolors[63], DFT_COLOR("rgb:cd/ff/ff")),
COLOR_RES("64", screen.Acolors[64], DFT_COLOR("rgb:ff/00/00")),
COLOR_RES("65", screen.Acolors[65], DFT_COLOR("rgb:ff/00/8b")),
COLOR_RES("66", screen.Acolors[66], DFT_COLOR("rgb:ff/00/cd")),
COLOR_RES("67", screen.Acolors[67], DFT_COLOR("rgb:ff/00/ff")),
COLOR_RES("68", screen.Acolors[68], DFT_COLOR("rgb:ff/8b/00")),
COLOR_RES("69", screen.Acolors[69], DFT_COLOR("rgb:ff/8b/8b")),
COLOR_RES("70", screen.Acolors[70], DFT_COLOR("rgb:ff/8b/cd")),
COLOR_RES("71", screen.Acolors[71], DFT_COLOR("rgb:ff/8b/ff")),
COLOR_RES("72", screen.Acolors[72], DFT_COLOR("rgb:ff/cd/00")),
COLOR_RES("73", screen.Acolors[73], DFT_COLOR("rgb:ff/cd/8b")),
COLOR_RES("74", screen.Acolors[74], DFT_COLOR("rgb:ff/cd/cd")),
COLOR_RES("75", screen.Acolors[75], DFT_COLOR("rgb:ff/cd/ff")),
COLOR_RES("76", screen.Acolors[76], DFT_COLOR("rgb:ff/ff/00")),
COLOR_RES("77", screen.Acolors[77], DFT_COLOR("rgb:ff/ff/8b")),
COLOR_RES("78", screen.Acolors[78], DFT_COLOR("rgb:ff/ff/cd")),
COLOR_RES("79", screen.Acolors[79], DFT_COLOR("rgb:ff/ff/ff")),
COLOR_RES("80", screen.Acolors[80], DFT_COLOR("rgb:2e/2e/2e")),
COLOR_RES("81", screen.Acolors[81], DFT_COLOR("rgb:5c/5c/5c")),
COLOR_RES("82", screen.Acolors[82], DFT_COLOR("rgb:73/73/73")),
COLOR_RES("83", screen.Acolors[83], DFT_COLOR("rgb:8b/8b/8b")),
COLOR_RES("84", screen.Acolors[84], DFT_COLOR("rgb:a2/a2/a2")),
COLOR_RES("85", screen.Acolors[85], DFT_COLOR("rgb:b9/b9/b9")),
COLOR_RES("86", screen.Acolors[86], DFT_COLOR("rgb:d0/d0/d0")),
COLOR_RES("87", screen.Acolors[87], DFT_COLOR("rgb:e7/e7/e7")),
#endif /* included_88colres_h */

View File

@ -0,0 +1,96 @@
#!/usr/bin/perl
# $XTermId: 88colres.pl,v 1.17 2007/06/08 23:57:23 tom Exp $
# -----------------------------------------------------------------------------
# this file is part of xterm
#
# Copyright 1999-2005,2007 by Thomas E. Dickey
# Copyright 1999-2000 by Steve Wall
#
# All Rights Reserved
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name(s) of the above copyright
# holders shall not be used in advertising or otherwise to promote the
# sale, use or other dealings in this Software without prior written
# authorization.
# -----------------------------------------------------------------------------
# Made from 256colres.pl
# Construct a header file defining default resources for the
# 88-color model of xterm.
# use the resources for colors 0-15 - usually more-or-less a
# reproduction of the standard ANSI colors, but possibly more
# pleasing shades
use strict;
our ( $line1, $line2, $line3 );
our ( $red, $green, $blue, $gray );
our ( $level, $code, @steps );
print <<EOF;
/*
* This header file was generated by $0
*/
/* \$XTermId\$ */
#ifndef included_88colres_h
#define included_88colres_h
EOF
$line1="COLOR_RES(\"%d\",";
$line2="\tscreen.Acolors[%d],";
$line3="\tDFT_COLOR(\"rgb:%2.2x/%2.2x/%2.2x\")),\n";
@steps=(0,139,205,255);
# colors 16-79 are a 4x4x4 color cube
for ($red = 0; $red < 4; $red++) {
for ($green = 0; $green < 4; $green++) {
for ($blue = 0; $blue < 4; $blue++) {
$code = 16 + ($red * 16) + ($green * 4) + $blue;
printf($line1, $code);
printf($line2, $code);
printf($line3,
int (@steps[$red]),
int (@steps[$green]),
int (@steps[$blue]));
}
}
}
# colors 80-87 are a grayscale ramp, intentionally leaving out
# black and white
for ($gray = 0; $gray < 8; $gray++) {
$level = ($gray * 23.18181818) + 46.36363636;
if( $gray > 0 ) { $level += 23.18181818; }
$code = 80 + $gray;
printf($line1, $code);
printf($line2, $code);
printf($line3,
int($level), int($level), int($level));
}
print <<EOF;
#endif /* included_88colres_h */
EOF

View File

@ -0,0 +1,48 @@
http://dickey.his.com/xterm/xterm.html
Downloaded 1.22 variant (current Linux version) on 18-JAN-2000.
Port stalled for a few days because OpenVMS X11 lacks XtGravity.
X11KIT shared libraries almost work, but missing _XA_ symbols
for some reason.
Copied X11KIT [.xaw3d] and [.xmu] into [.lib], put together simplified
build procedures. Made a few mods. Merged in some changes from
Patrick Young. Now these build mostly ok except for tons of bcopy
related warnings and problems with LAYOUT.C.
Merged changes from Xterm021 into here.
Made changes here and there to get it all to work.
25-JAN-2000, more or less done. Logging doesn't work but PRINT
does, as does regular VT emulation, TEK emulation, 80 and 132 wide
modes. The resource file needs work. Cleaned up a really nasty problem
with infinite loops on copy/paste in button.c (see tt_pasting).
To build this, if you have DECC, DW 1.2-5 and VMS 7.2-1 (the latter
probably doesn't matter) do:
$ @make
in the top directory. Expect a bunch of I and W warnings, but nothing
worse. Then define a foreign symbol for xterm for the resulting .exe.
26-JAN-2000. Enabled logging. When this is turned on from the menu
it creates a new file SYS$SCRATCH:XTERM_LOG.TXT and writes everything that
goes to the screen into it. This may slow down output a bit as each block
of data read must be copied to disk. The log file has RMS format stream-lf
and typically has a <CR> at the end of each line.
27-JAN-2000. Discovered a bug when doing an X11 paste into an EDT session,
had to add a tt_start_read() in button.c after the paste to reenable the
read AST. Rearranged code in VMS.C to make the compiler happy and
eliminate warnings.
David Mathog
mathog@seqaxp.bio.caltech.edu
Manager, sequence analysis facility, biology division, Caltech
$XFree86: xc/programs/xterm/AAA_README_VMS.txt,v 1.2 2000/06/13 02:28:37 dawes Exp $

View File

@ -0,0 +1,75 @@
--- $XTermId: COPYING,v 1.3 2020/01/12 22:53:35 tom Exp $
-------------------------------------------------------------------------------
Copyright 1996-2019,2020 by Thomas E. Dickey
All Rights Reserved
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name(s) of the above copyright
holders shall not be used in advertising or otherwise to promote the
sale, use or other dealings in this Software without prior written
authorization.
Copyright 1987, 1988 X Consortium
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of the X Consortium shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the X Consortium.
Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Digital Equipment
Corporation not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior permission.
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
-- vile: txtmode
-------------------------------------------------------------------------------

View File

@ -0,0 +1,875 @@
-- $XTermId: INSTALL,v 1.184 2020/07/25 17:58:05 tom Exp $
-------------------------------------------------------------------------------
-- Copyright 1997-2019,2020 by Thomas E. Dickey
--
-- All Rights Reserved
--
-- Permission is hereby granted, free of charge, to any person obtaining a
-- copy of this software and associated documentation files (the
-- "Software"), to deal in the Software without restriction, including
-- without limitation the rights to use, copy, modify, merge, publish,
-- distribute, sublicense, and/or sell copies of the Software, and to
-- permit persons to whom the Software is furnished to do so, subject to
-- the following conditions:
--
-- The above copyright notice and this permission notice shall be included
-- in all copies or substantial portions of the Software.
--
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-- IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
-- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--
-- Except as contained in this notice, the name(s) of the above copyright
-- holders shall not be used in advertising or otherwise to promote the
-- sale, use or other dealings in this Software without prior written
-- authorization.
-------------------------------------------------------------------------------
Xterm was originally built as part of the X Window System source tree, using
imake to generate a Makefile from Imakefile.
An example Imakefile is provided for legacy use.
The preferred method uses the configure script to generate a Makefile from
Makefile.in
Options:
-------
Autoconf configure scripts recognize two types of application-defined
options, enable/disable and with/without. The latter, by convention, are
used for denoting inclusion of external packages, while the former denote
enabling/disabling of internal features. The configure --help option lists
the available options. This script uses "enable" and "disable" to indicate
the sense of the default behavior.
The options (in alphabetic order):
--disable-256-color disable 256-color support
Do not compile-in code that interprets SGR 38 and 48 for 256-colors.
If this feature is disabled, the 88-color feature will be used.
--disable-88-color disable 88-color support
Do not compile-in code that interprets SGR 38 and 48 for 88-colors.
The 256-color option overrides this.
--disable-16-color disable 16-color support
Do not compile-in code to recognize aixterm-style control sequences
that support color values 8-15.
Most color applications know only about 8 ANSI colors, but some
(e.g., ones built with ncurses) do.
--disable-active-icon disable X11R6.3 active-icon feature
Do not compile-in code to support the active-icon feature. This is
not configured on systems (e.g., X11R5) which lack the library
support needed.
Xterms with an active icon continue to respond to input and update
their display when iconified. Not all window managers support
active icons. Those that do include fvwm, olvwm and mwm.
--disable-ansi-color disable ANSI color
Do not compile-in code for ANSI colors.
--disable-blink-cursor disable support for blinking cursor
Do not compile-in code that implements a blinking cursor. The blinking
cursor is enabled either by resource setting or by popup menu entry.
--disable-bold-color disable PC-style mapping of bold colors
Do not compile-in code that maps colors 8-15 to bold versions of
colors 0-7.
Some applications have hardcoded logic that assumes this. It does
not interfere with the 16-color support.
--disable-boxchars disable fallback-support for box chars
Do not compile-in code to generate approximations for box/graphic
characters.
Most fonts do not contain the vt100-style graphic characters in
positions 0-31. Many applications use the line-drawing characters,
e.g., to make boxes. When xterm loads a font, it checks if those
characters are present, and draws its own if they are missing.
--disable-broken-st disallow broken string-terminators,
Do not compile-in code that works around a bug in some ISDN routers
(and possibly other applications written by the same people): they
send an unterminated control string in their banner text, making xterm
freeze.
The workaround tells xterm to stop processing the control string when
it receives one of the whitespace control characters such as newline.
That was the behavior before patch #171.
See also --enable-broken-osc
--disable-c1-print disallow -k8 option for printable 128-159,
Use this option to suppress support for nonstandard use of codes
128-159, which normally are considered control characters. Some users
have fonts which use those positions. The default value for the
allowC1Printable resource is false, so this feature does not impact
normal users.
--disable-color-class disable color class resources
Use this option to change most of the color resources to use Foreground
as the color class. This is the older (before patch #157) behavior
which has the drawback that setting the Foreground resource on most
platforms prevents use of color since the class is evaluated before
the instance.
--disable-color-mode disable default colorMode resource
Do not compile-in code that sets the default value of the colorMode
resource to ``true''.
--disable-desktop disable install of xterm desktop files
Do not install the xterm desktop files, used in menus.
These use the icons installed in the --with-icondir option.
Use the environment variable $DESKTOP_FLAGS to supply options
required by desktop-file-install.
Note: If desktop-utils is not found they will not be installed anyway.
--disable-direct-color disable direct color support
Do not compile-in code that interprets SGR 38 and 48 for direct colors.
This feature extends the 256-color feature.
--disable-doublechars disable support for double-size chars
Do not compile-in code that supports font-manipulation needed to
implement vt100-style double-sized characters.
--disable-echo test: display "compiling" commands
Modify the generated Makefile so that most compiler options are
not shown. This makes it simpler to read a build log and see the
actual warning messages.
--disable-fifo-lines enable FIFO-storage for saved-lines
With patch #244, xterm by default stores saved-lines in a FIFO
(circular buffer), which improves performance when the number of saved
lines is large. Disable this option to revert to the pre-244 layout.
--disable-freetype disable freetype library-support
Do not use freetype libraries if they are found. Normally they will
be used automatically.
--disable-full-tgetent disable check for termcap library
Do not look for the tgetent() function specifically in the termcap
library, accept the first library (from termlib, ncurses and curses)
which contains this function rather than continuing to search for
a termcap implementation rather than terminfo. The former would
supply the complete $TERMCAP data needed for some legacy programs.
--disable-highlighting disable support for color highlighting
Do not compile-in code that allows the selected region to be a
different color than the reverse of foreground/background colors.
See the discussion of highlightColor in the manual.
--disable-i18n disable internationalization
Do not compile-in code to handle multi-byte characters. This is
related to, but not identical with the input method logic.
--disable-imake disable use of imake for definitions
Do not attempt to use imake to determine compiler options.
The main.c file has many ifdef's which rely on obscure combinations
known only to imake. The configure script implements only a
portion of the tests needed to supplant imake.
--disable-initial-erase disable setup for stty erase
Do not compile-in code which aligns the stty erase and the backarrow
key. When compiled-in, xterm will optionally use the pty's sense
of stty erase and apply that to the backarrow mode (sending 8 or 127),
or go the other way, setting stty erase to match xterm's configuration.
--disable-input-method disable input-method
Do not compile-in code for "input method". This is an X11R6
feature which deals with translation of composite characters.
Some users report problems with their configuration, e.g., messages
stating that there is no input method defined for the given preedit
type. If you do not need input method (and are troubled by the
warning messages), it is safe to disable this option.
--disable-leaks test: free permanent memory, analyze leaks
Compile-in code which frees memory which might confuse a leak-testing
tool. Normally these chunks of memory are retained as long as xterm
is running.
--disable-luit disable support for luit filter (Unicode translation)
Luit is a filter that can be run between an arbitrary application and a
UTF-8 terminal emulator. It will convert application output from the
locale's encoding into UTF-8, and convert terminal input from UTF-8
into the locale's encoding.
This is normally enabled, relying upon "--enable-wide-chars".
--disable-maximize disable actions for iconify/deiconify/maximize/restore
Do not compile-in code that implements runtime 'actions' for
iconifying, maximizing, etc.
Most users will find that the window manager is more suitable for
this sort of manipulation than putting the capabilities into xterm.
--disable-num-lock disable NumLock keypad support
Do not compile-in code that looks for the actual NumLock key to
support vt100/vt220 keypad translation.
This is used in xterm to simplify logic, and to workaround some
quirks of the keyboard tables. Use the ``numLock'' resource to
disable this feature if you must customize xterm in some other way.
(The same ifdef controls the metaSendsEscape support).
--disable-openpty disable openpty, prefer other interfaces
Do not check for, or use openpty(). Instead, use other interfaces such
as posix_openpt(). Modern (sic) BSD systems should have a workable
openpty() interface. Older systems may not.
--disable-paste64 disable support for bracketed paste mode
Do not compile-in code to support bracketed paste mode, along with
functions for setting/getting the selection data, termed "paste64".
(see ctlseqs.ms description of OSC 52, and DECSET 2004).
--disable-pty-handshake disable support for pty handshakes
This feature is used to ensure that the child process's terminal modes
match the parent's. In particular, it addresses a problem where the
terminal size is not defined in the stty settings.
--disable-rectangles disable VT420 rectangle support
Do not compile-in code to support VT420 rectangle control-sequences.
--disable-regex disable regular-expression selections
Do not compile-in code to support the "regex" option for multiple
mouse clicks.
--disable-rightbar disable right-scrollbar support
Do not compile-in code that supports a scrollbar on the right.
Left/right scrollbars are a matter of taste. Some older libraries
(e.g., X11R5) do not perform the geometry computation correctly,
leaving the right scrollbar incorrectly positioned after changing
the font size.
--disable-rpath-hack don't add rpath options for additional libraries
By default, the configure script looks for libraries in unusual places
and adds an rpath linker option to help.
--disable-samename disable check for redundant name-change
Do not compile-in code that suppresses redundant updates to the
titlebar when the text has not changed.
--disable-screen-dumps disable XHTML and SVG screen dumps
Do not compile-in code that provides XHTML and SVG screen dumps.
--disable-selection-ops disable selection operations
Do not compile-in code to support the actions which allow users
to bind keys that use the selection or extract data from the screen.
--disable-session-mgt enable support for session management
Do not compile-in code which adds simple session management hooks
which are used when closing an xterm. Normally the code is
compiled-in, except for systems which do not support it.
--disable-setgid disable setgid
Do not install xterm using setuid/setgid permissions. Drop setgid
permissions on startup.
--disable-setuid disable setuid
Do not install xterm using setuid/setgid permissions. Drop setuid
permissions on startup.
--disable-sixel-graphics disable support for sixel-graphics
Do not compile-in code to support sixel-graphics
--disable-sun-fkeys
Do not compile-in code to support Sun-style function keys.
--disable-tcap-fkeys disable termcap function-keys
Do not compile-in code to support feature which allows xterm to use the
function-key definitions from the termcap/terminfo entry which it used
to set the $TERM variable on startup.
--disable-tcap-query disable termcap query/report
Do not compile-in code to support DCS '+' control sequence, which
allows an application to ask xterm what control sequences it would
transmit for specified function keys, given the termcap or terminfo
names.
--disable-tek4014 disable tek4014 emulation
Do not compile-in code to support Tektronix 4014 emulation.
This reduces the executable size by 17% (checked 1999/3/13).
Some people use the Tektronix emulation (which has been in xterm
for many years) as an example of code bloat, though this is not an
accurate impression.
--disable-vt52 disable VT52 emulation
Do not compile-in code to support vt52 emulation.
A genuine vt100 emulates a vt52.
--disable-wide-attrs disable wide-attribute support
Xterm's base attributes include all of those used in DEC terminals.
ISO 6429 defines a few more which historically have found little use.
Some people find these amusing.
This is normally enabled. The direct-colors feature relies upon it.
--disable-wide-chars disable wide-character support
The wide-character code supports Unicode and UTF-8.
This is normally enabled.
--disable-ziconbeep disable -ziconbeep option
Do not compile-in code that modifies the icon's title and sounds a
beep when they receive output.
--enable-16bit-chars enable 16-bit characters support
Enable wide-character support, but store only 16-bits for each wide
character. Unicode values can be larger than 16-bits, up to 21-bits.
This uses less memory, but is less complete. However, most languages
are covered by the 16-bit encoding.
--enable-alt-sends-esc set default altSendsEscape resource (default: no)
This sets the default resource value, which is shown in the manpage.
--enable-backarrow-key set default backarrowKey resource (default: true)
This sets the default resource value, which is shown in the manpage.
--enable-backarrow-is-erase set default backarrowKeyIsErase resource (default: false)
This sets the default resource value, which is shown in the manpage.
--enable-broken-osc allow broken Linux OSC-strings
Compile-in code to accommodate scripts that write Linux's malformed
palette control strings without checking. The result makes xterm
appear to freeze. This workaround makes xterm ignore the strings,
and is compiled-in by default for Linux.
--enable-builtin-xpms compile-in icon data
Compile-in X pixmap data for these icons:
filled-xterm
mini.xterm
xterm-color
xterm
at these sizes
16x16
32x32
48x48
--enable-dabbrev enable dynamic-abbreviation support
Compile-in support for "dabbrev-expand()" action and related key
translation.
--enable-dec-locator enable DECterm Locator support
Add support for DEC Locator control sequences for xterm:
DECEFR - Enable Filter Rectangle
DECELR - Enable Locator Reports
DECSLE - Select Locator Events
DECRQLP - Request Locator Position
This allows the xterm mouse to be used with applications that use the
DEC Locator sequences, such as VAX Tpu, or SMG$ based applications.
--enable-delete-is-del set default deleteIsDEL resource (default: maybe)
This sets the default resource value, which is shown in the manpage.
--enable-double-buffer enable double-buffering
Set the initial value of the "buffered" resource, which tells
xterm to use double-buffering for display to reduce flicker.
--enable-env-terminfo setenv $TERMINFO if --with-own-terminfo gives value
Use the custom terminfo directory specified in "--with-own-terminfo"
as the $TERMINFO variable for the shells spawned by xterm. Setting
this variable makes most curses (and termcap) applications look in
that directory for terminal descriptions.
--enable-exec-xterm enable "spawn-new-terminal" action
If your platform supports the process filesystem "cwd" link,
compile-in support for the "spawn-new-terminal" action, which
allows you to define a key translation that runs a new xterm
using the same working directory as the current process within
xterm.
--enable-hp-fkeys enable support for HP-style function keys
Compile-in code to support HP-style function keys.
--enable-load-vt-fonts enable load-vt-fonts() action
Compile-in code that allows user to define load different VT-font
definitions at runtime.
--enable-logfile-exec enable exec'd logfile filter
Compile-in code that allows logging piped via an external filter.
--enable-logging enable logging
Compile-in code that allows logging.
Logging was disabled in X11R5 xterm because of security problems.
They were addressed in X11R6, but the feature was not reinstated
because of concerns (long past) about xterm running as root-setuid.
--enable-meta-sends-esc set default metaSendsEscape resource (default: no)
This sets the default resource value, which is shown in the manpage.
--enable-mini-luit enable support for poor man's luit filter (Latin-9)
Provide built-in support for Latin-9, relying on having specified
Unicode (ISO10646) fonts and setting the locale resource to "checkfont".
This sets "--enable-luit" as a side-effect.
--enable-narrowproto enable narrow prototypes for X libraries
Originally xterm was built using imake rather than a configure script.
One feature of imake that is not possible to guess within the
configure script is the wide-prototype compile-time definition
NARROWPROTO. When this is not set properly, the Athena widget
scrollbars do not work properly. xterm's configure script has a
fallback case which allows disabling imake. However, this is moot
with the X.org "modular" build, whose compiler options are unrelated to
imake or older versions of any libraries that it may distribute. In
this case, the configure script needs some help. Use this option to
enable or disable NARROW proto (and disable imake with the
--disable-imake option) to match the whims of X.org hackers.
For instance
configure --disable-imake --disable-narrowproto
--enable-pty-erase set default ptyInitialErase resource (default: false)
This sets the default resource value, which is shown in the manpage.
--enable-readline-mouse enable support for mouse in readline applications
Compile-in code to support predecessor to bracketed paste mode, i.e.,
provide functions for setting/getting the selection data. Essentially
this puts xterm into a mode that sends special function-key strings to
bracket the data.
(The "paste64" feature, which fits xterm's protocol better, is
configured by default).
--enable-sco-fkeys enable support for SCO-style function keys
Compile-in code to support SCO-style function keys.
--enable-regis-graphics enable support for ReGIS graphics
Compile-in code to support experimental ReGIS graphics
--enable-toolbar enable pulldown menus on toolbar
Compile-in code that builds a toolbar with pulldown menus. The
normal popup menus are still available.
This is an experimental option. As of patch #206, it is known to
work well with fvwm, but not as well with some other window managers,
e.g., KDE's Kwin and IceWM.
In addition to isolated layout problems, it is reported that some
flavors of the Athena widget library perform badly with ISO-10646
fonts. You can work around those by setting the menu fonts to
an ISO-8859 variant in your X resources.
--enable-trace test: set to enable debugging traces
Compile-in code to trace xterm's internal states.
This is a debugging feature. It causes xterm to produce two files
(Trace-parent.out and Trace-child.out).
--enable-warnings test: turn on GCC compiler warnings
Modify the generate Makefile to turn on gcc compiler warnings.
I use this option regularly, and correct all but a few (difficult)
problems.
--enable-xmc-glitch test: enable xmc magic-cookie emulation
Compile-in code that simulates the terminfo "magic cookie" glitch.
This is for testing ncurses.
--with-Xaw3d link with Xaw 3d library
Look for, compile and link with the Xaw 3d widget library.
--with-Xaw3dxft link with Xaw 3d xft library
Look for, compile and link with the Xaw 3d xft widget library.
--with-XawPlus link with Athena-Plus library
Look for, compile and link with the Xaw Plus widget library.
--with-app-class=XXX X resource class (default: XTerm)
Rename the X resource class, e.g., for packaging a development version
of xterm with different result names.
--with-app-defaults=DIR directory in which to install resource files (default: EPREFIX/lib/X11/app-defaults)
autoconf scripts assume that all of the files should be installed
under the same top-level directory. But X applications defaults
must be installed into a special directory, e.g.,
/usr/X11/lib/app-defaults
However, there is no standard for this pathname. The manual page
for X notes that the environment variable $XUSERFILESEARCHPATH can
specify a list of places where X searches for applications defaults.
Also, it may look in $XAPPLRESDIR, but that usually is not related
to where xterm might be installed. To keep it simple, the configure
script uses
EPREFIX/lib/X11/app-defaults
as the default (EPREFIX is --prefix). That makes it work normally
for most systems if --prefix is /usr. For other installs, e.g., to
/usr/local, you should use this option to customize the location to
match your system configuration.
Use --with-app-defaults=auto to ask the configure script to look in
a list of well-known locations for an existing directory.
Use --without-app-defaults or --with-app-defaults=no to disable the
feature.
--with-dmalloc test: use Gray Watson's dmalloc library
Check for and link with dmalloc.
--with-dbmalloc test: use Conor Cahill's dbmalloc library
Check for and link with dbmalloc.
--with-desktop-category=XXX one or more desktop categories or auto
This is a list of names. The configure script maps blanks and commas
to semicolons (";") which are used by the desktop utilities as a
separator.
The default value "auto" tells the configure script to look
at existing ".desktop" files for xterm and common terminal
emulators, to use those. If none are found, the script uses this
default:
System;TerminalEmulator;
--with-freetype-config configure script to use for FreeType
Use a specific option value to tell the configure script to try
just one of the variations:
"pkg*", e.g., pkg-config or pkgconfig uses whatever pkg-config
script was found.
otherwise, the parameter value is used as the name of the script
to try, using --cflags and --libs options.
Use --without-freetype-config to enable the --with-freetype-cflags
and --with-freetype-libs options.
The default value "auto" tells the configure script to try the
pkg-config script first, then freetype-config and finally xft-config.
--with-freetype-cflags -D/-I options for compiling with FreeType library
Override options provided by xft-config or freetype-config.
--with-freetype-libs -L/-l options for linking with FreeType library
Override options provided by xft-config or freetype-config.
--with-icon-name=NAME override icon name (default: xterm-color)
xterm comes with a choice of icons:
xterm-color: depicts a conventional terminal image, and is the default
icon used for icon-themes.
mini.xterm: a more iconic choice which is readily identifiable at
small sizes. This is used for window decoration, e.g., the
icon at the upper left corner in many window managers.
--with-icon-symlink=NAME create symbolic links to icon name (default: NONE)
This is a workaround for certain systems which translate icon names
containing "xterm", e.g., "xterm-color" into the single icon "xterm".
The option should also be harmless on a properly configured system.
If the option is used, its default value is "xterm". For each icon,
the makefile will strip the suffix (e.g., ".png"), as well as the part
of the filename which denotes the size (e.g., "_32x32" in an xpm file),
and constructs a link with that name to the icon.
If the option is unused, its default value is "NONE" (no link is made).
--with-icondir=DIR directory in which to install icon files (default: no)
The X libraries may automatically search these locations:
$HOME/.icons
$XDG_DATA_DIRS/icons
/usr/share/pixmaps
Alternatively, the last may be actually
/usr/X11R6/share/pixmaps
Use --with-icondir=auto to tell the configure script to search for
an existing directory from its list of well-known system locations.
See also
http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
http://www.freedesktop.org/software/icon-theme/
By default, the option is disabled; it is useful only for the
--with-icon-theme option.
--with-icon-theme=XXX install icons into desktop theme (hicolor)
Install png and svg icons into the given desktop theme and customize
the .desktop files to use that theme. If no theme name is given,
the default is "hicolor". If this option is not given, the desktop
file will use the pixmap files.
--with-man2html[=XXX] use XXX rather than groff
Specify an alternative program to use for converting manpages and
control sequences document to html. The default value for the option
is "man2html". If the "man2html" script is not found, then "groff" is
used with groff's special options.
The "man2html" script reads formatted nroff output from its standard
input, and writes html to its standard output. Other input/output
conventions are not currently supported.
See
http://invisible-island.net/scripts
http://invisible-island.net/scripts/man2html.html
for an up-to-date version of "man2html".
--with-neXtaw link with neXT Athena library
Look for, compile and link with the neXT Athena widget library.
--with-own-terminfo=P set default $TERMINFO (default: from environment)
Modify the generated Makefile to set the target for the 'install-ti'
rule to point to the given directory.
If you have the $TERMINFO variable defined in your environment, the
configure script may use that value, if it matches an existing
directory. If no option and no variable are are given, the configure
script uses /usr/lib/terminfo, if it exists.
You do not have to run "make install-ti", if there is already a
workable terminfo description. Be advised, however, that the
common variety of "xterm-color" is not suited for xterm, but is
directed to other variations (such as nxterm) which do not
support the background-color erase capability.
--with-pixmapdir=DIR directory in which to install pixmaps (DATADIR/pixmaps)
Specify directory in which to install ".xpm" files.
--with-pcre use PCRE for regular-expressions
If regular expressions are not disabled (--disable-regex), use PCRE
rather than the POSIX regular expressions.
--with-pcre2 use PCRE2 for regular-expressions
If regular expressions are not disabled (--disable-regex), use PCRE2
rather than the POSIX regular expressions.
--with-pkg-config{=path} enable/disable use of pkg-config
The configure script looks for certain libraries which have well
established pkg-config scripts, and will use those settings if
available. Not all pkg-config scripts work; this option suppresses
the check and relies on normal library search paths.
--with-reference=XXX program to use as permissions-reference
To install xterm with setuid permissions, the scripts usually compare
it with a previous install. That works well for individual
maintainers, but can be a problem for packagers who may be
cross-compiling, etc. This option lets the package builder specify
the file used for permissions reference.
--with-setuid=XXX use the given setuid user
Install xterm setuid'd to the given user. If no parameter value
is given, assume it is root.
See also --with-utmp-setgid and --with-utempter, which manipulate
the setgid group.
--with-tty-group=XXX use XXX for the tty-group
If xterm is installed setuid'd to root, change the group of the tty
device to the given value on startup. Three cases are possible:
a) If this option is not given, the configure script will attempt to
find a suitable value (usually "tty"), and verify that it exists in
the group database.
b) If the option value is given, it will use the value even if it does
not exist in the group database (allowing packagers to work about
deficient environments).
c) If the option is disabled, e.g., --without-tty-group, the
permissions change will use the group-id of the process.
If xterm is not installed setuid'd to root, this option is not needed,
since it cannot change the tty device's ownership.
--with-valgrind test: use valgrind
Activate the --disable-leaks option, and ensure that "-g" is added to
CFLAGS.
--without-xinerama do not use Xinerama extension for multiple screens
Xinerama is an X server extension that allows multiple physical
screens to behave as a single screen. If you do not need the feature
(or do not want the extra library dependency), use this option to
suppress it.
--with-xpm=DIR use Xpm library for colored icon, may specify path
Use Xpm library to show colored icon in window decoration, e.g.,
title area.
Use --without-xpm to suppress this feature.
--with-xterm-symlink=XXX make symbolic link to installed xterm
If any of the configure options to modify the program name i.e.,
--program-prefix, --program-suffix or --program-transform-name
are given, this option allows the makefile to create a symbolic link,
e.g., to "xterm" on install. The option value gives the name for
the link, which defaults to "xterm".
Use --without-xterm-symlink to disable a link to "xterm" if none
is wanted.
Corresponding links are also made for "resize", "uxterm" and
"koi8rxterm", as well as the xterm manpage.
--with-terminal-id[=V] set default decTerminalID (default: vt100)
Set the default emulation level.
DEC terminals vt52/vt100/vt220/etc form a series where succeeding
models emulate features of the older terminals. While most
features of these terminals are recognized by xterm at all levels,
a few behave differently according to the emulation level.
You can always override this with the command-line option "-ti".
--with-terminal-type=T set default $TERM (default: xterm)
Set the default value for $TERM. Xterm supports legacy termcap
applications by constructing a modified version of the $TERMCAP
variable at initialization, which supplies the resulting screen
size. It also sets $TERM, if not already set, for use by programs
running within xterm.
The default value "xterm", can be overridden to avoid conflict
with older versions of xterm, e.g., those that do not implement
vt220 emulation.
You can always override this with the command-line option "-tn".
--with-utempter use utempter library for access to utmp
The utempter library is a set-uid wrapper for the utmp facility.
On systems with Unix98 pty's, xterm can use this library when
available so it need not be installed set-uid.
--with-utmp-setgid=XXX use setgid for access to utmp
The option value specifies a group to use when installing.
xterm will be installed with setgid privilege to this group.
At runtime, xterm will drop the setuid privilege immediately
after opening the pseudo-terminal, and will have only the
group privilege needed to access the utmp file. This relies
on having POSIX setuid behavior.
-- vile:txtmode

View File

@ -0,0 +1,338 @@
XCOMM $XTermId: Imakefile,v 1.123 2019/11/02 21:50:51 tom Exp $
XCOMM
XCOMM Attention xterm porters
XCOMM
XCOMM
XCOMM Xterm assumes that bcopy can handle overlapping arguments. If your
XCOMM bcopy (or memcpy) cannot, write a routine called bcopy and link it in
XCOMM or add -Dbcopy=mybcopy to the DEFINES list below.
XCOMM
/* Uncomment SCROLLBAR_RIGHT if you want the scroll bar to be on the right */
SCROLLBAR_RIGHT = -DSCROLLBAR_RIGHT
/* Define UTF8support to compile-in support for UTF-8 */
#define UTF8support
/*
* setgid mode works for systems that do not require setuid to open pty.
*
* This feature could also be applied to FreeBSD, but requires the installer
* to define a "utmp" group as well as chgrp the utmp file to match.
*
* Note: InstallXtermSetUID is always defined; InstallXtermSetGID is defined
* in newer imake configurations.
*/
#if !defined(InstallXtermSetGID) && !InstallXtermSetUID
#if defined(OpenBSDArchitecture) || \
(defined(LinuxArchitecture) && \
(LinuxCLibMajorVersion == 6))
#define InstallXtermSetGID YES
#endif
#endif
/*
* Override the set uid/gid flags to use the utempter library.
*/
#if defined(UseUtempter)
#undef InstallXtermSetUID /* imake sets this */
#undef InstallXtermSetGID /* we set this */
#define InstallXtermSetUID NO
#define InstallXtermSetGID NO
UTMPLIB = -lutempter
#endif
/*
* Fixes to allow compile with X11R5, etc.
*/
#ifndef InstGidFlags
#define InstGidFlags -m 2755 -g utmp
#endif
#ifndef InstUidFlags
#define InstUidFlags -m 4711
#endif
#ifndef XkbClientDefines
#define XkbClientDefines /**/
#endif
#ifndef InstallXtermSetUID
#define InstallXtermSetUID NO
#endif
#ifndef InstallXtermSetGID
#define InstallXtermSetGID NO
#endif
#ifndef XkbClientDepLibs
#define XkbClientDepLibs /**/
#endif
#ifndef XkbClientLibs
#define XkbClientLibs /**/
#endif
/* This must come before setting DEFINES */
#if InstallXtermSetGID
CSGIDFLAGS = -DUSE_UTMP_SETGID
INSTSETIDFLAGS = InstGidFlags
#elif InstallXtermSetUID
INSTSETIDFLAGS = InstUidFlags
#else
INSTSETIDFLAGS = NullParameter
#endif
/*
* Compensate for broken imake configuration.
*/
#ifdef LinuxGnuSourceDefines
# ifdef UseInstalled
IMAKEDEFINES = -D_DEFAULT_SOURCE -U_XOPEN_SOURCE -D_XOPEN_SOURCE=600
# endif
#endif
#ifndef SpecialCObjectRule
#define SpecialCObjectRule(module,ignore,defines) \
module.o: ; $(CC) -c defines $(CFLAGS) module.c
#endif
#ifndef ProgramTargetName
#define ProgramTargetName(program) program
#endif
/*
* add -DWTMP and -DLASTLOG if you want them; make sure that bcopy can
* handle overlapping copies before using it.
*/
#if SetTtyGroup /* turn on in config/machine.cf */
TTYGROUPDEF = -DUSE_TTY_GROUP
#endif
#ifdef UsePUCCPtyd /* turn on in config/site.def */
PUCCPTYDDEF = -DPUCC_PTYD /* does not need to be setuid */
PTYLIB = -lpucc
#endif
#if defined(NetBSDArchitecture) || \
defined(OpenBSDArchitecture) || \
defined(FreeBSDArchitecture) || \
(defined(LinuxArchitecture) && \
(LinuxCLibMajorVersion == 6) && (LinuxCLibMinorVersion < 1))
PTYLIB = -lutil
#endif
#ifdef DarwinArchitecture
/* dyld can deadlock if a signal comes in when it is looking up a symbol */
LOCAL_LDFLAGS = -Wl,-bind_at_load
#endif
OSMAJORVERSION = OSMajorVersion
OSMINORVERSION = OSMinorVersion
/* none of these can be expected to use termcap unless emulated by terminfo */
#if defined(NTOArchitecture) || \
defined(OpenBSDArchitecture) || \
defined(SGIArchitecture) || \
defined(SunArchitecture) || \
defined(NetBSDArchitecture) || \
defined(OpenBSDArchitecture) || \
defined(FreeBSDArchitecture) || \
defined(LinuxArchitecture)
TERMCAPDEFINES=-DUSE_TERMINFO -DHAVE_TIGETSTR -DHAVE_TERM_H
#endif
#if !defined(OS2Architecture) && !defined(__GNU__) && !defined(Minix3Architecture)
#if defined(UseUtempter)
UTMPDEF = -DUSE_UTEMPTER
#else
UTMPDEF = -DUTMP
#endif
#endif
#ifdef UTF8support
UTF8_OPTION = -DOPT_WIDE_CHARS -DOPT_LUIT_PROG
UTF8SRC = charclass.c precompose.c wcwidth.c xutf8.c
UTF8OBJ = charclass.o precompose.o wcwidth.o xutf8.o
#endif
#if BuildXftLibrary
#define XRenderSupport
#endif
#ifdef XRenderSupport
XRFDEF = -DXRENDERFONT -DXFREE86_FT2
XRFLIBS = XftClientLibs
XRFDEPLIBS = XftClientDepLibs
XRFINCLUDES = $(XFTINCLUDES)
#endif
#if !HasPutenv
PUTENVDEF = -DNOPUTENV
#endif
#ifdef RegisXTerm
SIXELDEF = -DOPT_REGIS_GRAPHICS=1
#endif
#ifdef SixelXTerm
SIXELDEF = -DOPT_SIXEL_GRAPHICS=1
#endif
#ifdef TraceXTerm
TRACEDEF = -DOPT_TRACE=1
#endif
MAIN_DEFINES = $(UTMPDEF) $(TTYGROUPDEF) $(PUCCPTYDDEF) $(CSGIDFLAGS) \
-DOSMAJORVERSION=$(OSMAJORVERSION) \
-DOSMINORVERSION=$(OSMINORVERSION)
MISC_DEFINES = /* -DALLOWLOGGING -DALLOWLOGFILEEXEC */
XKB_DEFINES = XkbClientDefines
PATH_DEFINES = -DPROJECTROOT=$(PROJECTROOT)
DEFINES = $(XKB_DEFINES) $(TERMCAPDEFINES) $(FEATURE_DEFINES) $(SCROLLBAR_RIGHT) $(UTF8_OPTION) $(XRFDEF) $(PATH_DEFINES) $(PUTENVDEF) $(IMAKEDEFINES) $(SIXELDEF) $(TRACEDEF)
INCLUDES = -I. $(XRFINCLUDES)
MAINSRC = main.c
MAINOBJ = main.o
DUMPSSRC = html.c svg.c
DUMPSOBJ = html.o svg.o
#ifdef RegisXTerm
SIXELSRC = graphics_regis.c
SIXELOBJ = graphics_regis.o
#endif
#ifdef SixelXTerm
SIXELSRC = graphics_sixel.c
SIXELOBJ = graphics_sixel.o
#endif
#ifdef TraceXTerm
TRACESRC = trace.c
TRACEOBJ = trace.o
#endif
SRCS1 = button.c cachedGCs.c charproc.c charsets.c cursor.c \
data.c doublechr.c fontutils.c input.c \
linedata.c menu.c misc.c print.c ptydata.c scrollback.c \
screen.c scrollbar.c tabs.c util.c version.c xstrings.c \
xtermcap.c TekPrsTbl.c Tekproc.c VTPrsTbl.c \
$(MAINSRC) $(EXTRASRC) $(UTF8SRC) $(SIXELSRC) $(TRACESRC) $(DUMPSSRC)
OBJS1 = button.o cachedGCs.o charproc.o charsets.o cursor.o \
data.o doublechr.o fontutils.o input.o \
linedata.o menu.o misc.o print.o ptydata.o scrollback.o \
screen.o scrollbar.o tabs.o util.o version.o xstrings.o \
xtermcap.o TekPrsTbl.o Tekproc.o VTPrsTbl.o \
$(MAINOBJ) $(EXTRAOBJ) $(UTF8OBJ) $(SIXELOBJ) $(TRACEOBJ) $(DUMPSOBJ)
SRCS2 = resize.c version.c xstrings.c
OBJS2 = resize.o version.o xstrings.o
SRCS = $(SRCS1) $(SRCS2)
OBJS = $(OBJS1) $(OBJS2)
PROGRAMS = ProgramTargetName(resize) ProgramTargetName(xterm)
DEPLIBS1 = XkbClientDepLibs XawClientDepLibs $(XRFDEPLIBS)
DEPLIBS2 =
#ifndef TermcapLibrary
#if SystemV && !defined(MacIIArchitecture)
#if defined(CrayArchitecture) || \
(defined(HPArchitecture) && (OSMajorVersion < 10)) || \
defined(RsArchitecture) || \
defined(SCOArchitecture) || \
defined(USLArchitecture)
#define TermcapLibrary -lcurses /* special cases of System V */
#else
#define TermcapLibrary -ltermlib /* usually in here */
#endif
#else
#define TermcapLibrary -ltermcap /* bsd puts it here */
#endif
#endif
TERMCAPLIB = TermcapLibrary
AllTarget($(PROGRAMS))
VTPARSE_H = VTparse.h VTparse.hin
TEKPARSE_H = Tekparse.h Tekparse.hin
VTPARSE_C = VTparse.h VTparse.cin
TEKPARSE_C = Tekparse.h Tekparse.cin
.SUFFIXES : .def .cin .hin
.def.cin :
awk '/^CASE_/{printf "{ %d, \"%s\" },\n", n++, $$1; }' < $< >$@
.def.hin :
awk '/^CASE_/{printf "#define %s %d\n", $$1, n++}' < $< >$@
SpecialCObjectRule(main,$(_NOOP_),$(MAIN_DEFINES))
SpecialCObjectRule(menu,$(_NOOP_),$(MISC_DEFINES))
SpecialCObjectRule(misc,$(VTPARSE_H),$(MISC_DEFINES))
SpecialCObjectRule(VTPrsTbl,$(VTPARSE_H),$(MISC_DEFINES))
SpecialCObjectRule(charproc,$(VTPARSE_H),$(MISC_DEFINES))
SpecialCObjectRule(data,$(_NOOP_),$(MISC_DEFINES))
SpecialCObjectRule(TekPrsTbl,$(TEKPARSE_H),$(MISC_DEFINES))
SpecialCObjectRule(TekProc,$(TEKPARSE_H),$(MISC_DEFINES))
SpecialCObjectRule(trace,$(VTPARSE_C) $(TEKPARSE_C),$(MISC_DEFINES))
#if InstallXtermSetUID
SetUIDProgramTarget(xterm,$(OBJS1),$(DEPLIBS1),$(XRFLIBS) XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(PTYLIB))
#else
NormalProgramTarget(xterm,$(OBJS1),$(DEPLIBS1),$(XRFLIBS) XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(UTMPLIB) $(PTYLIB))
#endif
#if defined(OpenBSDArchitecture) || defined(MirBSDArchitecture)
/* On OpenBSD xterm is now setgid utmp */
INSTUIDFLAGS= -m 2555 -g utmp
#endif
#if InstallXtermSetUID && defined(SunArchitecture) && HasSharedLibraries && (OSMajorVersion < 5)
#if AlternateUsrLibDir
#if ((OSMajorVersion == 4) && (OSMinorVersion >= 1))
LDOVERRIDE = -L$(DESTDIR)$(USRLIBDIR)
#else
#if HasGcc
LDOVERRIDE = -static -L$(DESTDIR)$(USRLIBDIR)
#else
LDOVERRIDE = -Bstatic -L$(DESTDIR)$(USRLIBDIR)
LDRESUME = -Bdynamic
#endif
#endif
#endif
install::
MakeDir($(DESTDIR)$(BINDIR))
RemoveFile(ProgramTargetName(xterm.inst))
LinkRule(ProgramTargetName(xterm.inst),$(CDEBUGFLAGS) $(CCOPTIONS)
$(EXTRA_LDOPTIONS) $(LOCAL_LDFLAGS),$(OBJS1),$(LDOVERRIDE)
$(XRFLIBS) XawClientLibs $(LDRESUME) $(LDLIBS) $(TERMCAPLIB)
$(PTYLIB))
$(INSTALL) -c $(INSTPGMFLAGS) $(INSTSETIDFLAGS) ProgramTargetName(xterm.inst) $(DESTDIR)$(BINDIR)/ProgramTargetName(xterm)
RemoveFile(ProgramTargetName(xterm.inst))
#else
InstallProgramWithFlags(xterm,$(BINDIR),$(INSTSETIDFLAGS))
#endif
InstallNamedProg(uxterm,uxterm,$(BINDIR))
/*
* Link with the termcap library if USE_TERMCAP is defined in resize.c
*/
#if defined(NTOArchitecture) || \
defined(LinuxArchitecture) || \
defined(OpenBSDArchitecture) || \
defined(SGIArchitecture) || \
defined(SunArchitecture)
NormalProgramTarget(resize,$(OBJS2),$(DEPLIBS2),NullParameter,NullParameter)
#else
NormalProgramTarget(resize,$(OBJS2),$(DEPLIBS2),NullParameter,$(TERMCAPLIB))
#endif
InstallProgramWithFlags(resize,$(BINDIR),NullParameter)
/*
* termcap is a special name that does not install correctly with
* InstallNamedNonExec()
*/
install::
MakeDir($(DESTDIR)$(LIBDIR)/etc)
$(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) termcap \
$(DESTDIR)$(LIBDIR)/etc/xterm.termcap
InstallNamedNonExec(terminfo,xterm.terminfo,$(LIBDIR)/etc)
InstallAppDefaults(XTerm)
InstallAppDefaults(UXTerm)
InstallAppDefaultsLong(XTerm-col,XTerm-color)
InstallManPage(xterm,$(MANDIR))
InstallManPage(resize,$(MANDIR))
cleandir::
$(RM) *parse.hin *parse.cin
DependTarget()

View File

@ -0,0 +1,50 @@
! $XTermId: KOI8RXTerm.ad,v 1.4 2010/03/04 01:17:49 tom Exp $
! -----------------------------------------------------------------------------
! this file is part of xterm
!
! Copyright 2007,2010 by Thomas E. Dickey
!
! All Rights Reserved
!
! Permission is hereby granted, free of charge, to any person obtaining a
! copy of this software and associated documentation files (the
! "Software"), to deal in the Software without restriction, including
! without limitation the rights to use, copy, modify, merge, publish,
! distribute, sublicense, and/or sell copies of the Software, and to
! permit persons to whom the Software is furnished to do so, subject to
! the following conditions:
!
! The above copyright notice and this permission notice shall be included
! in all copies or substantial portions of the Software.
!
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
! IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
!
! Except as contained in this notice, the name(s) of the above copyright
! holders shall not be used in advertising or otherwise to promote the
! sale, use or other dealings in this Software without prior written
! authorization.
! -----------------------------------------------------------------------------
! This is based on the UXTerm app-defaults file.
! -----------------------------------------------------------------------------
! Use
! xterm -class KOI8RXTerm
! to set resources for KOI8-R mode with corresponding fonts.
#include "XTerm"
*fontMenu.Label: KOI8-R Fonts
*VT100*allowC1Printable: true
! Use Cyrillic instead of Latin fonts.
*VT100.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r
*VT100.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-koi8-r
*VT100.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-koi8-r
*VT100.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-koi8-r
*VT100.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-koi8-r
*VT100.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r

View File

@ -0,0 +1,228 @@
MANIFEST for xterm-359, version xterm-359
--------------------------------------------------------------------------------
MANIFEST this file
256colres.h resource-definitions for 256-color mode
256colres.pl script to generate 256colres.h
88colres.h resource definitions for 88-color mode
88colres.pl script to generate 88colres.h
AAA_README_VMS.txt note for VMS port of 'xterm'
COPYING license for this program
INSTALL configure script: options and related install instructions
Imakefile imake template for Makefile
KOI8RXTerm.ad resources for koi8rxterm
Makefile.in configure script template for Makefile
README overview & caveats for 'xterm'
README.i18n i18n readme:
README.os390 overview for os390 (EBCDIC) port of 'xterm'
THANKS list of direct contributors
TekPrsTbl.c Tek4014 parser state tables
Tekparse.def template for generating Tekparse.h
Tekparse.h Tek4014 parser-state definitions
Tekproc.c Tek4014 parser-state functions
Tests Useful tests for xterm-developers
UXTerm.ad alternate resources for UTF-8
VTPrsTbl.c VT100 parser state tables
VTparse.def template for generating VTparse.h
VTparse.h VT100 parser-state definitions
XTerm-col.ad color resource definitions for XTerm class
XTerm.ad resource definitions for XTerm class
aclocal.m4 configure script: custom macros
button.c mouse button and selection processing
cachedGCs.c maintain cache of GC's
charclass.c compact character-class module
charclass.h interface of charclass.c
charproc.c VT100 parser functions
charsets.c module to translate character-sets
config.guess configure script: guess the system type
config.sub configure script: validate system type
configure generated
configure.in template for generating configure script
ctlseqs.ms documentation: Xterm Control Sequences
ctlseqs.txt generated rendition of ctlseqs.ms
cursor.c VT100 low-level cursor movement
data.c global data declarations
data.h global data external-definitions
df-install.in utility script for desktop-files
doublechr.c VT100 double-size character support
error.h error-code definitions for 'xterm'
fontutils.c xterm functions for (re)loading fonts
fontutils.h interface of fontutils.c
gen-charsets.pl script to convert codepages into code
gen-pc-fkeys.pl script to generate extended function-key terminfo
graphics.c graphics support functions for 'xterm'
graphics.h interface of graphics.c
graphics_regis.c support for ReGIS
graphics_regis.h interface of graphics_regis.c
graphics_sixel.c support for Sixels
graphics_sixel.h interface of graphics_sixel.c
html.c format HTML-screendumps
input.c VT100 key-symbol and function-key translation
install-sh install-script (needed by configure)
keysym2ucs.c lookup-table for UTF-8 to keysyms
keysym2ucs.h interface of keysym2ucs.c
koi8rxterm KOI-8 wrapper from Debian (originally me)
koi8rxterm.man manpage for koi8rxterm
linedata.c manage all line-data for VT100 widget
link_axp.com build-script for VMS port of xterm
main.c main program of 'xterm'
main.h default definitions for 'xterm'
make.com build-script for VMS port of 'xterm'
menu.c popup/pulldown menus for 'xterm'
menu.h interface of menu.c
minstall.in script for installing manpages
misc.c miscellaneous utility functions for 'xterm'
plink.sh script to prune unneeded libraries from link
precompose.c table of precompose sequences
precompose.h interface of precompose.c
print.c VT100+ print support functions
ptydata.c functions to manipulate data read from pty
ptyx.h structure-definitions for 'xterm'
resize.c program to compute/modify xterm's window size
resize.man manual page for 'resize'
run-tic.sh run tic, filtering out harmless messages
screen.c VT100 screen update functions
scrollback.c manage scrollback (a big FIFO)
scrollbar.c VT100 scrollbar support functions
sinstall.sh install setuid if existing program was
svg.c format SVG-screendumps
tabs.c VT100 tabstop support-functions
termcap termcap entries for 'xterm'
terminfo terminfo entries for 'xterm'
testxmc.c testing: xmc/magic-cookies
trace.c debugging trace functions for 'xterm'
trace.h interface of trace.c
util.c miscellaneous utility functions for 'xterm'
uxterm wrapper script to make unicode-xterm
uxterm.desktop sample desktop file for uxterm
uxterm.man manpage for uxterm, from Debian
version.c xterm package version, used also in resize
version.h version of xterm
vms.c VMS version of xterm's spawn(), etc.
vms.h system headers and definitions for vms.c
wcwidth.c wide-character utility functions
wcwidth.h interface of wcwidth.c
xcharmouse.h Jason Bacon's mouse-defs, cleaned up a little
xstrings.c a few common string functions
xstrings.h interface of xstrings.c
xterm.appdata.xml sample "appdata.xml" file
xterm.dat application defaults for VMS port of 'xterm'
xterm.desktop sample desktop file for xterm.
xterm.h common includes, definitions and prototypes for 'xterm'
xterm.log.html changelog for xterm
xterm.man manual page for 'xterm'
xterm_axp.opt linker options file for VMS port of 'xterm'
xterm_io.h split-out definitions of termio/termios/sgtty and winsize from main.c, os2main.c, screen.c and resize.c
xtermcap.c termcap-related functions.
xtermcap.h interface of xtermcap.c
xtermcfg.hin configure script: template for xtermcfg.h
xutf8.c JC's cleanup of UTF8
xutf8.h JC's cleanup of UTF8
icons subdirectory
icons/filled-xterm.png filled-xterm variants
icons/filled-xterm.svg filled-xterm variants
icons/filled-xterm.xpms filled-xterm variants
icons/filled-xterm_16x16.xpm filled-xterm variants
icons/filled-xterm_32x32.xpm filled-xterm variants
icons/filled-xterm_48x48.xpm filled-xterm variants
icons/make-xpms script to make combined xpm-icons
icons/mini.xterm.svg svg format for mini-icon
icons/mini.xterm.xpms collection of mini-icons
icons/mini.xterm_16x16.png mini-icon 16x16 png
icons/mini.xterm_16x16.xpm mini-icon 16x16 pixmap
icons/mini.xterm_256x256.png mini-icon 256x256 png
icons/mini.xterm_32x32.png mini-icon 32x32 png
icons/mini.xterm_32x32.xpm mini-icon 32x32 pixmap
icons/mini.xterm_48x48.png mini-icon 48x48 png
icons/mini.xterm_48x48.xpm mini-icon 48x48 pixmap
icons/terminal_48x48.svg svg-format of "terminal"
icons/terminal_48x48.xpm xpm-format of "terminal"
icons/xterm-color.png xterm-color 48x48, in png-format
icons/xterm-color.svg xterm-color icon
icons/xterm-color.xpms collection of color icons
icons/xterm-color_16x16.xpm 16x16 color icon
icons/xterm-color_32x32.xpm 32x32 color icon
icons/xterm-color_48x48.xpm 48x48 color icon
icons/xterm.png xterm 48x48, in png-format
icons/xterm.svg xterm icon
icons/xterm.xpms collection of icons
icons/xterm_16x16.xpm normal icon 16x16 pixmap
icons/xterm_32x32.xpm 32x32 monochrome icon
icons/xterm_48x48.xpm 48x48 monochrome icon
package/debian subdirectory
package/debian/changelog build-script
package/debian/color.sed build-script
package/debian/compat build-script
package/debian/control build-script
package/debian/copyright build-script
package/debian/postinst post-install script for update-alternatives
package/debian/prerm pre-remove script for update-alternatives
package/debian/rules build-script
package/debian/source subdirectory
package/debian/source/format build-script
package/debian subdirectory
package/debian/watch build-script
package/debian/xterm-dev.docs build-script
package/debian/xterm-dev.lintian-overrides ignore useless warnings from lintian
package/debian/xterm-dev.menu Debian menu-file for xterm-dev package.
package/debian/xterm-xres.sed build-script
package/freebsd subdirectory
package/freebsd/Makefile build-script
package/freebsd/distinfo generated sums
package/freebsd/pkg-descr build-script
package/freebsd/pkg-message build-script
package/freebsd/pkg-message.wchar build-script
package/freebsd/pkg-plist build-script
package/pkgsrc subdirectory
package/pkgsrc/DESCR build-script
package/pkgsrc/Makefile build-script
package/pkgsrc/PLIST build-script
package/pkgsrc/distinfo build-script
package/pkgsrc/options.mk build-script
package subdirectory
package/xterm.spec build-script
tektests subdirectory
tektests/aitest.tek tek4014 demo: draw a globe
tektests/dmerc.tek tek4014 demo: draws a Mercator projection with orbit
tektests/fotest.tek tek4014 demo: draw a scatterplot on log scale
tektests/imtest.tek tek4014 demo: draw a test pattern
tektests/imtesth.tek tek4014 demo: draw a test pattern
tektests/ocpred.tek tek4014 demo: an occultation prediction
tektests/usmap.tek tek4014 demo: a US map
unicode subdirectory
unicode/README description of files in ./unicode
unicode/convmap.pl perl script for generating the lookup table for UTF-8 to keysym
unicode/keysym.map keysym mapping from UTF-8
unicode/make-precompose.sh make precompose.c
unicode/precompose.c.head header of precompose.c
unicode/precompose.c.tail tail of precompose.c
vttests subdirectory
vttests/16colors.sh test-script to show 16-colors
vttests/256colors.pl script to illustrate 256-colors
vttests/256colors2.pl fancy test-script for 256-colors
vttests/88colors.pl sample script showing 88-colors
vttests/88colors2.pl sample script showing 88-colors
vttests/8colors.sh test-script to illustrate 8-colors
vttests/acolors.sh demonstrate changing the ANSI colors
vttests/closest-rgb.pl demo of color-distances
vttests/doublechars.sh test script to demonstrate doublesize chars
vttests/dynamic.pl demo for dynamic colors
vttests/dynamic.sh script to illustrate the dynamic colors control sequence
vttests/dynamic2.sh complete example of dynamic colors
vttests/fonts.sh script to demonstrate font-switching sequences
vttests/modify-keys.pl illustrate modifyOtherKeys with a table
vttests/mouse-codes demo script for mouse-codes
vttests/other-sgr.sh demonstrate non-VTxx SGRs
vttests/paste64.pl script to test base64-selection option
vttests/print-vt-chars.pl demo-script
vttests/query-color.pl demonstrate OSC 4
vttests/query-dynamic.pl demonstrate OSC 10 to OSC 19
vttests/query-fonts.pl script to demo/test font-querying
vttests/query-status.pl query DECRQSS status
vttests/query-xres.pl test/demo for DCS+Q
vttests/report-sgr.pl demonstrate report-sgr
vttests/resize.pl translated resize.sh to perl since it is easy to test, and I needed
vttests/resize.sh script to demonstrate resizing
vttests/sgrPushPop.pl demonstrate xterm SGR push/pop
vttests/sgrPushPop2.pl demonstrate xterm SGR push/pop for colors
vttests/tcapquery.pl script to test tcap-query option
vttests/title.sh test-script to show title of xterm in action

View File

@ -0,0 +1,634 @@
## $XTermId: Makefile.in,v 1.253 2020/08/02 19:12:41 tom Exp $
# -----------------------------------------------------------------------------
# this file is part of xterm
#
# Copyright 1997-2019,2020 by Thomas E. Dickey
#
# All Rights Reserved
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name(s) of the above copyright
# holders shall not be used in advertising or otherwise to promote the
# sale, use or other dealings in this Software without prior written
# authorization.
# -----------------------------------------------------------------------------
SHELL = /bin/sh
#### Start of system configuration section. ####
srcdir = .
x =
o = .o
CC = gcc
CPP = gcc -E
AWK = awk
LINK = $(CC) $(CFLAGS)
CTAGS =
ETAGS =
LN_S = ln -s
RM = rm -f
LINT =
LINT_OPTS =
INSTALL = /bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
transform = s,x,x,
EXTRA_CFLAGS =
EXTRA_CPPFLAGS = -DPROJECTROOT='"/usr"' -D__vendorversion__='"Version 7.7.0 X.Org"'
EXTRA_LOADFLAGS =
CPPFLAGS = -I. -I$(srcdir) -DHAVE_CONFIG_H -I. -I/usr/include/freetype2 -I/usr/include/freetype2/config -Dlinux -D__amd64__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFUNCPROTO=15 -DNARROWPROTO -DHAVE_TERM_H -DXFREE86_FT2 -D_DEFAULT_SOURCE -U_XOPEN_SOURCE -D_XOPEN_SOURCE=600 -DUTMP -DOSMAJORVERSION=5 -DOSMINORVERSION=11 -I/usr/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -DDEFCLASS=\"XTerm\" $(EXTRA_CPPFLAGS)
CFLAGS = -g -O2 $(EXTRA_CFLAGS)
LDFLAGS =
LIBS = -lXft -lfontconfig -lfreetype -lutil -lneXtaw -lXmu -lSM -lICE -lXext -lXinerama -lXpm -lXt -lX11 -lSM -lICE -lncurses
prefix = /usr/local
exec_prefix = ${prefix}
datarootdir = ${prefix}/share
datadir = ${datarootdir}
manext = 1
bindir = ${exec_prefix}/bin
libdir = ${exec_prefix}/lib
mandir = ${datarootdir}/man/man$(manext)
appsdir = ${exec_prefix}/lib/X11/app-defaults
icondir = no
pixmapdir = ${datadir}/pixmaps
#### End of system configuration section. ####
ICON_NAME = mini.xterm
ICON_SYMLINK = NONE
DESTDIR =
BINDIR = $(DESTDIR)$(bindir)
LIBDIR = $(DESTDIR)$(libdir)
MANDIR = $(DESTDIR)$(mandir)
APPSDIR = $(DESTDIR)$(appsdir)
#ICONDIR = $(DESTDIR)$(icondir)
PIXMAPDIR = $(DESTDIR)$(pixmapdir)
INSTALL_DIRS = $(BINDIR) $(APPSDIR) $(ICONDIR) $(PIXMAPDIR) $(MANDIR)
CLASS = XTerm
EXTRAHDR = 256colres.h Tekparse.h charclass.h precompose.h wcwidth.h graphics_sixel.h graphics.h
EXTRASRC = TekPrsTbl.c Tekproc.c charclass.c precompose.c wcwidth.c html.c svg.c graphics_sixel.c graphics.c
EXTRAOBJ = TekPrsTbl.o Tekproc.o charclass.o precompose.o wcwidth.o html.o svg.o graphics_sixel.o graphics.o
AUTO_SOURCE = \
builtin_icons.h \
VTparse.cin \
Tekparse.cin \
VTparse.hin \
Tekparse.hin
SRCS1 = button.c cachedGCs.c charproc.c charsets.c cursor.c \
data.c doublechr.c fontutils.c input.c \
linedata.c main.c menu.c misc.c \
print.c ptydata.c scrollback.c \
screen.c scrollbar.c tabs.c util.c version.c xstrings.c \
xtermcap.c VTPrsTbl.c $(EXTRASRC)
OBJS1 = button$o cachedGCs$o charproc$o charsets$o cursor$o \
data$o doublechr$o fontutils$o input$o \
linedata$o main$o menu$o misc$o \
print$o ptydata$o scrollback$o \
screen$o scrollbar$o tabs$o util$o version$o xstrings$o \
xtermcap$o VTPrsTbl$o $(EXTRAOBJ)
SRCS2 = resize.c version.c xstrings.c
OBJS2 = resize$o version$o xstrings$o
SRCS = $(SRCS1) $(SRCS2)
OBJS = $(OBJS1) $(OBJS2)
HDRS = VTparse.h data.h error.h fontutils.h main.h menu.h \
ptyx.h version.h xstrings.h xterm.h xtermcap.h $(EXTRAHDR)
PROGRAMS = xterm$x resize$x
TEST_PROGRAMS = test_charclass$x test_ptydata$x test_wcwidth$x
all : $(PROGRAMS)
################################################################################
.SUFFIXES : .i .def .cin .hin .$(manext) .ms .man .txt .html .ps .pdf
.c$o :
$(CC) $(CPPFLAGS) $(CFLAGS) -c $(srcdir)/$*.c
.c.i :
$(CPP) -C $(CPPFLAGS) $*.c >$@
.def.cin :
@echo "making $@ from $<"
@$(AWK) 'BEGIN{printf "/* vile:cmode */\n";}/^CASE_/{printf "{ %d, \"%s\" },\n", n++, $$1; }' < $< >$@
.def.hin :
@echo "making $@ from $<"
@$(AWK) 'BEGIN{printf "/* vile:cmode */\n";}/^CASE_/{printf "#define %s %d\n", $$1, n++}' < $< >$@
.man.$(manext) :
$(SHELL) ./minstall "$(INSTALL_DATA)" $< $@ $(appsdir) $(CLASS) $* $* $(pixmapdir)
#.$(manext).txt :
# $(SHELL) -c "tbl $*.$(manext) | nroff -man | col -bx" >$@
#
#.ms.txt :
# $(SHELL) -c "tbl $*.$(manext) | nroff -ms | col -bx" >$@
#
.$(manext).html :
./man2html.tmp $* $(manext) man >$@
.$(manext).ps :
$(SHELL) -c "tbl $*.$(manext) | groff -man" >$@
.$(manext).txt :
GROFF_NO_SGR=stupid $(SHELL) -c "tbl $*.$(manext) | groff -Tascii -man | col -bx" >$@
.ms.html :
./man2html.tmp $* ms ms >$@
.ms.ps :
$(SHELL) -c "tbl $< | groff -ms" >$@
.ms.txt :
GROFF_NO_SGR=stupid $(SHELL) -c "tbl $< | groff -Tascii -ms | col -bx" >$@
.ps.pdf :
ps2pdf $*.ps
################################################################################
VTPARSE_H = VTparse.h VTparse.hin
TEKPARSE_H = Tekparse.h Tekparse.hin
main$o : main.h
misc$o : version.h
$(OBJS1) : xterm.h ptyx.h xtermcfg.h
main$o resize$o screen$o : xterm_io.h
xterm$x : $(OBJS1)
$(SHELL) $(srcdir)/plink.sh $(LINK) $(LDFLAGS) -o $@ $(OBJS1) $(LIBS) $(EXTRA_LOADFLAGS)
resize$x : $(OBJS2)
$(SHELL) $(srcdir)/plink.sh $(LINK) $(LDFLAGS) -o $@ $(OBJS2) $(LIBS)
256colres.h :
-$(RM) $@
perl $(srcdir)/256colres.pl > $@
88colres.h :
-$(RM) $@
perl $(srcdir)/88colres.pl > $@
charproc$o : $(VTPARSE_H) main.h 256colres.h
graphics_regis$o : $(VTPARSE_H)
graphics_sixel$o : $(VTPARSE_H)
misc$o : $(VTPARSE_H)
VTPrsTbl$o : $(VTPARSE_H)
TekPrsTbl$o : $(TEKPARSE_H)
Tekproc$o : $(TEKPARSE_H)
misc$o : builtin_icons.h
trace$o : VTparse.cin Tekparse.cin
# do this to quiet gcc -Wcast-qual warnings
builtin_icons.h :
@echo "#if OPT_BUILTIN_XPMS" >$@
@echo "#include <icons/mini.xterm.xpms>" >>$@
@echo "#include <icons/filled-xterm.xpms>" >>$@
@echo "#include <icons/xterm.xpms>" >>$@
@echo "#include <icons/xterm-color.xpms>" >>$@
@echo "#else" >>$@
@sed -e 's/static char \* /static const char * /' $(srcdir)/icons/mini.xterm_48x48.xpm >>$@
@echo "#endif" >>$@
@echo "made $@"
################################################################################
test_charclass$x : $(srcdir)/charclass.c
$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/charclass.c $(LDFLAGS) $(LIBS)
################################################################################
test_ptydata$x : $(srcdir)/ptydata.c
$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/ptydata.c $(LDFLAGS) $(LIBS)
################################################################################
test_wcwidth$x : $(srcdir)/wcwidth.c
$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/wcwidth.c $(LDFLAGS) $(LIBS)
################################################################################
actual_xterm = `echo xterm| sed '$(transform)'`
actual_resize = `echo resize| sed '$(transform)'`
actual_uxterm = `echo uxterm| sed '$(transform)'`
actual_k8term = `echo koi8rxterm| sed '$(transform)'`
binary_xterm = $(actual_xterm)$x
binary_resize = $(actual_resize)$x
binary_uxterm = $(actual_uxterm)
binary_k8term = $(actual_k8term)
install \
install-bin \
install-full :: xterm$x resize$x $(BINDIR)
$(SHELL) $(srcdir)/sinstall.sh "$(INSTALL_PROGRAM)" xterm$x /bin/xterm $(BINDIR)/$(binary_xterm)
# $(INSTALL_PROGRAM) xterm$x $(BINDIR)/$(binary_xterm)
$(INSTALL_PROGRAM) -m 755 resize$x $(BINDIR)/$(binary_resize)
EDIT_SCRIPT = sed -e s,=xterm,=\$$name, -e s,XTerm,$(CLASS),
InstallLink = \
if test NONE != NONE \
&& test \$$source != NONE \
&& test \$$source != \$$target ; then \
cd \$$TARGET && ( \
$(RM) \$$source ; \
$(LN_S) \$$target \$$source ; \
echo \"... created symbolic link:\" ; \
ls -l \$$target \$$source ) ; \
fi
InstallBinLink = TARGET=$(BINDIR); $(InstallLink)
InstallManLink = TARGET=$(MANDIR); $(InstallLink)
InstallScript = \
echo \"... installing $(BINDIR)/\$$target\"; \
name=$(binary_xterm); \
$(EDIT_SCRIPT) $(srcdir)/\$$source >\$$source.tmp; \
$(INSTALL_SCRIPT) -m 755 \$$source.tmp $(BINDIR)/\$$target; \
$(RM) \$$source.tmp
install \
install-bin \
install-scripts \
install-full :: $(BINDIR)
@$(SHELL) -c "source=\"NONE\"; \
target=\"$(binary_xterm)\"; \
$(InstallBinLink)"
@$(SHELL) -c "source=\"resize\"; \
target=\"$(binary_resize)\"; \
$(InstallBinLink)"
@$(SHELL) -c "source=\"uxterm\"; \
target=\"$(binary_uxterm)\"; \
$(InstallScript); \
$(InstallBinLink)"
@$(SHELL) -c "source=\"koi8rxterm\"; \
target=\"$(binary_k8term)\"; \
$(InstallScript); \
$(InstallBinLink)"
install \
install-man \
install-full :: $(MANDIR)
@-$(SHELL) -c "for source in xterm resize uxterm koi8rxterm ; \
do \
target=\`echo \"\$$source\" | sed 's,x,x,'\`; \
$(SHELL) ./minstall \"$(INSTALL_DATA)\" \
$(srcdir)/\$$source.man \
$(MANDIR)/\$$target.$(manext) \
$(appsdir) \
$(CLASS) \
\$$source \
\$$target \
$(pixmapdir); \
done"
@-$(SHELL) -c "if test NONE != NONE ; then \
source=$(actual_xterm).$(manext); \
target=NONE.$(manext); \
cd $(MANDIR) && ( \
$(RM) \$$target ; \
$(LN_S) \$$source \$$target ; \
echo '... created symbolic link:' ; \
ls -l \$$source \$$target ; \
) \
fi"
APP_NAMES = XTerm UXTerm KOI8RXTerm
install \
install-app \
install-full :: $(APPSDIR)
@-$(SHELL) -c 'for s in $(APP_NAMES); \
do \
echo "** $$s"; \
d=`echo $$s | sed -e s/XTerm/$(CLASS)/`; \
echo installing $(APPSDIR)/$$d; \
sed -e s/XTerm/$(CLASS)/ $(srcdir)/$$s.ad >XTerm.tmp; \
$(INSTALL_DATA) XTerm.tmp $(APPSDIR)/$$d; \
echo installing $(APPSDIR)/$$d-color; \
sed -e s/XTerm/$$d/ $(srcdir)/XTerm-col.ad >XTerm.tmp; \
$(INSTALL_DATA) XTerm.tmp $(APPSDIR)/$$d-color; \
done'
@$(RM) XTerm.tmp
# @echo "... installed app-defaults"
#ICON_LIST = icons/mini.xterm_48x48.png icons/mini.xterm_48x48.xpm
#ICON_THEME = no
#install \
#install-icon \
#install-full :: $(ICONDIR)
# ACTUAL_XTERM=$(actual_xterm) $(SHELL) -c '\
# h=$(ICONDIR)/$(ICON_THEME); \
# for n in $(ICON_LIST); \
# do \
# x=$$ACTUAL_XTERM; \
# l=`echo "$$n" | cut -f1 -d:`; \
# r=`echo "$$n" | cut -f2 -d: |sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
# test -z "$$r" && continue; \
# d=$$h/`echo "$$r" | sed -e "s,/[^/]*$$,,"`; \
# test -d "$$d" || mkdir -p "$$d"; \
# echo "installing icon $$h/$$r"; \
# $(INSTALL_DATA) $$l $$h/$$r; \
# s=`echo "$$r" | sed -e '"'s,^.*\.,.,'"'`; \
# t=$(ICON_SYMLINK)$$s; \
# b=`basename $$n $$s | sed -e "s,_[1-9][0-9]*x.*,,"`; \
# if test "$(ICON_SYMLINK)" != NONE ; then \
# if test "$$r" != "$$t" ; then \
# if test "x$$b" = "x$(ICON_NAME)" ; then \
# echo "linking $$r -> $$t"; \
# ( cd $$h; $(RM) $$t; $(LN_S) $$r $$t; ) \
# fi \
# fi \
# fi \
# done'
# @echo "... installed icons"
install \
install-icon \
install-full :: $(PIXMAPDIR)
ACTUAL_XTERM=$(actual_xterm) $(SHELL) -c '\
h=$(PIXMAPDIR); \
for n in $(srcdir)/icons/*xterm*_32x32.xpm $(srcdir)/icons/*xterm*_48x48.xpm; \
do \
l=`basename $$n`; \
r=`echo "$$l" | sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
echo "installing pixmap $$h/$$r"; \
$(INSTALL_DATA) $(srcdir)/icons/$$l $$h/$$r; \
s=`echo "$$r" | sed -e '"'s,^.*\.,.,'"'`; \
t=$(ICON_SYMLINK)$$s; \
b=`basename $$n $$s | sed -e "s,_[1-9][0-9]*x.*,,"`; \
if test "$(ICON_SYMLINK)" != NONE ; then \
if test "x$$r" != "$$t" ; then \
if test "x$$b" = "x$(ICON_NAME)" ; then \
echo "linking $$r -> $$t"; \
( cd $$h; $(RM) $$t; $(LN_S) $$r $$t; ) \
fi \
fi \
fi \
done'
@echo "... installed icons"
install ::
@echo 'Completed installation of executables and documentation.'
@echo 'Use "make install-ti" to install terminfo description.'
TERMINFO_DIR = $(DESTDIR)/usr/lib/terminfo
SET_TERMINFO = TERMINFO=$(TERMINFO_DIR)
install-full \
install-ti :: $(TERMINFO_DIR)
@$(SHELL) -c "$(SET_TERMINFO) $(srcdir)/run-tic.sh $(srcdir)/terminfo"
@echo 'Completed installation of terminfo description.'
install-full \
install-tc ::
@-$(SHELL) -c "if test -f /etc/termcap ; then echo 'You must install the termcap entry manually by editing /etc/termcap'; fi"
installdirs : $(INSTALL_DIRS)
################################################################################
UninstallLink = \
if test NONE != NONE \
&& test \$$source != NONE \
&& test \$$source != \$$target \
&& test -h \$$TARGET/\$$source ; then \
echo \"... removing \$$TARGET/\$$source\"; \
cd \$$TARGET && \
$(RM) \$$source; \
fi
UninstallBinLink = TARGET=$(BINDIR); $(UninstallLink)
UninstallManLink = TARGET=$(MANDIR); $(UninstallLink)
UninstallBinary = \
echo \"... removing $(BINDIR)/\$$target\"; \
$(RM) $(BINDIR)/\$$target
uninstall \
uninstall-bin \
uninstall-full ::
@-$(SHELL) -c "source=\"NONE\"; \
target=\"$(binary_xterm)\"; \
$(UninstallBinLink); \
$(UninstallBinary)"
@-$(SHELL) -c "source=\"resize\"; \
target=\"$(binary_resize)\"; \
$(UninstallBinLink); \
$(UninstallBinary)"
uninstall \
uninstall-bin \
uninstall-scripts \
uninstall-full ::
@-$(SHELL) -c "source=\"uxterm\"; \
target=\"$(binary_uxterm)\"; \
$(UninstallBinLink); \
$(UninstallBinary)"
@-$(SHELL) -c "source=\"koi8rxterm\"; \
target=\"$(binary_k8term)\"; \
$(UninstallBinLink); \
$(UninstallBinary)"
uninstall \
uninstall-man \
uninstall-full ::
@-$(SHELL) -c "\
source=NONE.$(manext); \
target=$(actual_xterm).$(manext); \
$(UninstallManLink)"
@-$(SHELL) -c "for source in \
$(actual_xterm).$(manext) \
$(actual_resize).$(manext) \
$(actual_uxterm).$(manext) \
$(actual_k8term).$(manext); \
do \
echo \"... removing $(MANDIR)/\$$source\"; \
$(RM) $(MANDIR)/\$$source; \
done"
uninstall \
uninstall-app \
uninstall-full ::
-$(SHELL) -c 'for s in $(APP_NAMES); \
do \
echo "** $$s"; \
d=`echo $$s | sed -e s/XTerm/$(CLASS)/`; \
echo uninstalling $(APPSDIR)/$$d; \
$(RM) $(APPSDIR)/$$d; \
echo uninstalling $(APPSDIR)/$$d-color; \
$(RM) $(APPSDIR)/$$d-color; \
done'
#uninstall \
#uninstall-icon \
#uninstall-full ::
# -$(SHELL) -c 'ACTUAL_XTERM=$(actual_xterm) ; \
# for n in $(ICON_LIST); \
# do \
# r=`echo "$$n" | sed -e s,\^.\*:,, -e s,xterm,$$ACTUAL_XTERM,`; \
# test -z "$$r" && continue; \
# h=$(ICONDIR)/$(ICON_THEME); \
# test -f $$h/$$r || continue; \
# echo removing $$h/$$r; \
# $(RM) $$h/$$r; \
# done'
# @echo "... removed icons"
uninstall \
uninstall-icon \
uninstall-full ::
-@$(SHELL) -c 'ACTUAL_XTERM=$(actual_xterm) ; \
for n in $(srcdir)/icons/*xterm*_32x32.xpm $(srcdir)/icons/*xterm*_48x48.xpm; \
do \
l=`basename $$n`; \
r=`echo "$$l" | sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
echo removing $(PIXMAPDIR)/$$r; \
$(RM) $(PIXMAPDIR)/$$r; \
done'
@echo "... removed icons"
################################################################################
# Desktop-utils does not provide an uninstall, and is not uniformly available.
#DESKTOP_FILES = $(srcdir)/xterm.desktop $(srcdir)/uxterm.desktop
#DESKTOP_FLAGS =
#install-desktop \
#install-full ::
# ACTUAL_XTERM=$(actual_xterm) \
# $(SHELL) -c 'for n in $(DESKTOP_FILES); \
# do $(SHELL) df-install $$ACTUAL_XTERM $(ICON_NAME) DESTDIR="$(DESTDIR)" $(DESKTOP_FLAGS) $$n; \
# done'
################################################################################
check : $(TEST_PROGRAMS)
@ echo "See demos in vttests/* (use vttest for system-level testing)"
@ $(SHELL) -c 'echo "** executing test_charclass"; \
./test_charclass'
@ $(SHELL) -c 'echo "** executing test_wcwidth"; \
for range in 32-126 160-0xff00 0x10000-0x11000; \
do echo ".. range $$range"; \
./test_wcwidth -s $$range; \
./test_wcwidth -s $$range -w; \
done'
################################################################################
mostlyclean :
-$(RM) *$o *.[is] XTerm[1-9]*.* Xterm.log.* XtermLog.* .pure core *~ *.bak *.BAK *.out *.tmp
clean : mostlyclean
-$(RM) $(PROGRAMS) $(TEST_PROGRAMS) $(AUTO_SOURCE)
sources : $(AUTO_SOURCE)
distclean :: clean
-$(RM) Makefile config.status config.cache config.log xtermcfg.h
-$(RM) df-install minstall
distclean \
docs-clean ::
-$(RM) *.ps *.pdf *.png
-$(SHELL) -c 'for p in xterm resize uxterm koi8rxterm; \
do \
$(RM) $$p.html $$p.$(manext) $$p.txt; \
done'
-$(RM) ctlseqs.html ctlseqs.$(manext)
distclean ::
-$(RM) man2html.tmp
realclean : distclean
-$(RM) tags TAGS
maintainer-clean : realclean
-$(RM) 256colres.h 88colres.h
################################################################################
terminfo.out : terminfo ; tic -a -I -1 terminfo >$@
termcap.out : termcap ; tic -a -C -U termcap >$@
################################################################################
docs-ctlseqs \
docs :: $(srcdir)/ctlseqs.txt ctlseqs.html ctlseqs.pdf ctlseqs.ps
ctlseqs.html : $(srcdir)/ctlseqs.ms
ctlseqs.pdf : ctlseqs.ps
ctlseqs.ps : $(srcdir)/ctlseqs.ms
ctlseqs.txt : $(srcdir)/ctlseqs.ms
################################################################################
docs-resize \
docs :: resize.txt resize.html resize.pdf resize.ps
resize.html : resize.$(manext)
resize.pdf : resize.ps
resize.ps : resize.$(manext)
resize.txt : resize.$(manext)
################################################################################
docs-xterm \
docs :: xterm.txt xterm.html xterm.pdf xterm.ps
xterm.html : xterm.$(manext)
xterm.pdf : xterm.ps
xterm.ps : xterm.$(manext)
xterm.txt : xterm.$(manext)
################################################################################
docs-uxterm \
docs :: uxterm.txt uxterm.html uxterm.pdf uxterm.ps
uxterm.html : uxterm.$(manext)
uxterm.pdf : uxterm.ps
uxterm.ps : uxterm.$(manext)
uxterm.txt : uxterm.$(manext)
################################################################################
docs-koi8rxterm \
docs :: koi8rxterm.txt koi8rxterm.html koi8rxterm.pdf koi8rxterm.ps
koi8rxterm.html : koi8rxterm.$(manext)
koi8rxterm.pdf : koi8rxterm.ps
koi8rxterm.ps : koi8rxterm.$(manext)
koi8rxterm.txt : koi8rxterm.$(manext)
################################################################################
lint :
$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS1)
$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS2)
tags :
$(CTAGS) $(SRCS) $(HDRS)
TAGS :
$(ETAGS) $(SRCS) $(HDRS)
$(TERMINFO_DIR) $(INSTALL_DIRS) :
mkdir -p $@
ALWAYS :
depend : $(TABLES)
makedepend -- $(CPPFLAGS) -- $(SRCS)
# DO NOT DELETE THIS LINE -- make depend depends on it.

View File

@ -0,0 +1,634 @@
## $XTermId: Makefile.in,v 1.253 2020/08/02 19:12:41 tom Exp $
# -----------------------------------------------------------------------------
# this file is part of xterm
#
# Copyright 1997-2019,2020 by Thomas E. Dickey
#
# All Rights Reserved
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name(s) of the above copyright
# holders shall not be used in advertising or otherwise to promote the
# sale, use or other dealings in this Software without prior written
# authorization.
# -----------------------------------------------------------------------------
SHELL = /bin/sh
#### Start of system configuration section. ####
srcdir = @srcdir@
VPATH = @srcdir@
x = @EXEEXT@
o = .@OBJEXT@
CC = @CC@
CPP = @CPP@
AWK = @AWK@
LINK = $(CC) $(CFLAGS)
CTAGS = @CTAGS@
ETAGS = @ETAGS@
LN_S = @LN_S@
RM = rm -f
LINT = @LINT@
LINT_OPTS = @LINT_OPTS@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
transform = @program_transform_name@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CPPFLAGS = @EXTRA_CPPFLAGS@
EXTRA_LOADFLAGS = @IMAKE_LOADFLAGS@
CPPFLAGS = -I. -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@ -DDEFCLASS=\"@APP_CLASS@\" $(EXTRA_CPPFLAGS)
CFLAGS = @CFLAGS@ $(EXTRA_CFLAGS)
LDFLAGS = @LDFLAGS@ @EXTRA_LDFLAGS@
LIBS = @LIBS@
prefix = @prefix@
exec_prefix = @exec_prefix@
datarootdir = @datarootdir@
datadir = @datadir@
manext = 1
bindir = @bindir@
libdir = @libdir@
mandir = @mandir@/man$(manext)
appsdir = @APPSDIR@
icondir = @ICONDIR@
pixmapdir = @PIXMAPDIR@
#### End of system configuration section. ####
ICON_NAME = @ICON_NAME@
ICON_SYMLINK = @ICON_SYMLINK@
DESTDIR =
BINDIR = $(DESTDIR)$(bindir)
LIBDIR = $(DESTDIR)$(libdir)
MANDIR = $(DESTDIR)$(mandir)
APPSDIR = $(DESTDIR)$(appsdir)
@no_icondir@ICONDIR = $(DESTDIR)$(icondir)
@no_pixmapdir@PIXMAPDIR = $(DESTDIR)$(pixmapdir)
INSTALL_DIRS = $(BINDIR) $(APPSDIR) $(ICONDIR) $(PIXMAPDIR) $(MANDIR)
CLASS = @APP_CLASS@
EXTRAHDR = @EXTRAHDRS@
EXTRASRC = @EXTRASRCS@
EXTRAOBJ = @EXTRAOBJS@
AUTO_SOURCE = \
builtin_icons.h \
VTparse.cin \
Tekparse.cin \
VTparse.hin \
Tekparse.hin
SRCS1 = button.c cachedGCs.c charproc.c charsets.c cursor.c \
data.c doublechr.c fontutils.c input.c \
linedata.c main.c menu.c misc.c \
print.c ptydata.c scrollback.c \
screen.c scrollbar.c tabs.c util.c version.c xstrings.c \
xtermcap.c VTPrsTbl.c $(EXTRASRC)
OBJS1 = button$o cachedGCs$o charproc$o charsets$o cursor$o \
data$o doublechr$o fontutils$o input$o \
linedata$o main$o menu$o misc$o \
print$o ptydata$o scrollback$o \
screen$o scrollbar$o tabs$o util$o version$o xstrings$o \
xtermcap$o VTPrsTbl$o $(EXTRAOBJ)
SRCS2 = resize.c version.c xstrings.c
OBJS2 = resize$o version$o xstrings$o
SRCS = $(SRCS1) $(SRCS2)
OBJS = $(OBJS1) $(OBJS2)
HDRS = VTparse.h data.h error.h fontutils.h main.h menu.h \
ptyx.h version.h xstrings.h xterm.h xtermcap.h $(EXTRAHDR)
PROGRAMS = xterm$x resize$x
TEST_PROGRAMS = test_charclass$x test_ptydata$x test_wcwidth$x
all : $(PROGRAMS)
################################################################################
.SUFFIXES : .i .def .cin .hin .$(manext) .ms .man .txt @MAN2HTML_NOTE@ .html @GROFF_NOTE@ .ps .pdf
.c$o :
@RULE_CC@
@ECHO_CC@$(CC) $(CPPFLAGS) $(CFLAGS) -c $(srcdir)/$*.c
.c.i :
@RULE_CC@
@ECHO_CC@$(CPP) -C $(CPPFLAGS) $*.c >$@
.def.cin :
@echo "making $@ from $<"
@$(AWK) 'BEGIN{printf "/* vile:cmode */\n";}/^CASE_/{printf "{ %d, \"%s\" },\n", n++, $$1; }' < $< >$@
.def.hin :
@echo "making $@ from $<"
@$(AWK) 'BEGIN{printf "/* vile:cmode */\n";}/^CASE_/{printf "#define %s %d\n", $$1, n++}' < $< >$@
.man.$(manext) :
$(SHELL) ./minstall "$(INSTALL_DATA)" $< $@ $(appsdir) $(CLASS) $* $* $(pixmapdir)
@NROFF_NOTE@.$(manext).txt :
@NROFF_NOTE@ $(SHELL) -c "tbl $*.$(manext) | nroff -man | col -bx" >$@
@NROFF_NOTE@
@NROFF_NOTE@.ms.txt :
@NROFF_NOTE@ $(SHELL) -c "tbl $*.$(manext) | nroff -ms | col -bx" >$@
@NROFF_NOTE@
@MAN2HTML_NOTE@.$(manext).html :
@MAN2HTML_NOTE@ ./@MAN2HTML_TEMP@ $* $(manext) man >$@
@MAN2HTML_NOTE@
@GROFF_NOTE@.$(manext).ps :
@GROFF_NOTE@ $(SHELL) -c "tbl $*.$(manext) | groff -man" >$@
@GROFF_NOTE@
@GROFF_NOTE@.$(manext).txt :
@GROFF_NOTE@ GROFF_NO_SGR=stupid $(SHELL) -c "tbl $*.$(manext) | groff -Tascii -man | col -bx" >$@
@GROFF_NOTE@
@MAN2HTML_NOTE@.ms.html :
@MAN2HTML_NOTE@ ./@MAN2HTML_TEMP@ $* ms ms >$@
@MAN2HTML_NOTE@
@GROFF_NOTE@.ms.ps :
@GROFF_NOTE@ $(SHELL) -c "tbl $< | groff -ms" >$@
@GROFF_NOTE@
@GROFF_NOTE@.ms.txt :
@GROFF_NOTE@ GROFF_NO_SGR=stupid $(SHELL) -c "tbl $< | groff -Tascii -ms | col -bx" >$@
@GROFF_NOTE@
@GROFF_NOTE@.ps.pdf :
@GROFF_NOTE@ ps2pdf $*.ps
################################################################################
VTPARSE_H = VTparse.h VTparse.hin
TEKPARSE_H = Tekparse.h Tekparse.hin
main$o : main.h
misc$o : version.h
$(OBJS1) : xterm.h ptyx.h xtermcfg.h
main$o resize$o screen$o : xterm_io.h
xterm$x : $(OBJS1)
@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(LINK) $(LDFLAGS) -o $@ $(OBJS1) $(LIBS) $(EXTRA_LOADFLAGS)
resize$x : $(OBJS2)
@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(LINK) $(LDFLAGS) -o $@ $(OBJS2) $(LIBS)
256colres.h :
-$(RM) $@
perl $(srcdir)/256colres.pl > $@
88colres.h :
-$(RM) $@
perl $(srcdir)/88colres.pl > $@
charproc$o : $(VTPARSE_H) main.h @CHARPROC_DEPS@
graphics_regis$o : $(VTPARSE_H)
graphics_sixel$o : $(VTPARSE_H)
misc$o : $(VTPARSE_H)
VTPrsTbl$o : $(VTPARSE_H)
TekPrsTbl$o : $(TEKPARSE_H)
Tekproc$o : $(TEKPARSE_H)
misc$o : builtin_icons.h
trace$o : VTparse.cin Tekparse.cin
# do this to quiet gcc -Wcast-qual warnings
builtin_icons.h :
@echo "#if OPT_BUILTIN_XPMS" >$@
@echo "#include <icons/mini.xterm.xpms>" >>$@
@echo "#include <icons/filled-xterm.xpms>" >>$@
@echo "#include <icons/xterm.xpms>" >>$@
@echo "#include <icons/xterm-color.xpms>" >>$@
@echo "#else" >>$@
@sed -e 's/static char \* /static const char * /' $(srcdir)/icons/mini.xterm_48x48.xpm >>$@
@echo "#endif" >>$@
@echo "made $@"
################################################################################
test_charclass$x : $(srcdir)/charclass.c
@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/charclass.c $(LDFLAGS) $(LIBS)
################################################################################
test_ptydata$x : $(srcdir)/ptydata.c
@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/ptydata.c $(LDFLAGS) $(LIBS)
################################################################################
test_wcwidth$x : $(srcdir)/wcwidth.c
@ECHO_LD@$(SHELL) $(srcdir)/plink.sh $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -DTEST_DRIVER $(srcdir)/wcwidth.c $(LDFLAGS) $(LIBS)
################################################################################
actual_xterm = `echo xterm| sed '$(transform)'`
actual_resize = `echo resize| sed '$(transform)'`
actual_uxterm = `echo uxterm| sed '$(transform)'`
actual_k8term = `echo koi8rxterm| sed '$(transform)'`
binary_xterm = $(actual_xterm)$x
binary_resize = $(actual_resize)$x
binary_uxterm = $(actual_uxterm)
binary_k8term = $(actual_k8term)
install \
install-bin \
install-full :: xterm$x resize$x $(BINDIR)
@MAY_SETUID@ $(SHELL) $(srcdir)/sinstall.sh @SINSTALL_OPTS@ "$(INSTALL_PROGRAM)" xterm$x @XTERM_PATH@ $(BINDIR)/$(binary_xterm)
@NOT_SETUID@ $(INSTALL_PROGRAM) xterm$x $(BINDIR)/$(binary_xterm)
$(INSTALL_PROGRAM) -m 755 resize$x $(BINDIR)/$(binary_resize)
EDIT_SCRIPT = sed -e s,=xterm,=\$$name, -e s,XTerm,$(CLASS),
InstallLink = \
if test @XTERM_SYMLINK@ != NONE \
&& test \$$source != NONE \
&& test \$$source != \$$target ; then \
cd \$$TARGET && ( \
$(RM) \$$source ; \
$(LN_S) \$$target \$$source ; \
echo \"... created symbolic link:\" ; \
ls -l \$$target \$$source ) ; \
fi
InstallBinLink = TARGET=$(BINDIR); $(InstallLink)
InstallManLink = TARGET=$(MANDIR); $(InstallLink)
InstallScript = \
echo \"... installing $(BINDIR)/\$$target\"; \
name=$(binary_xterm); \
$(EDIT_SCRIPT) $(srcdir)/\$$source >\$$source.tmp; \
$(INSTALL_SCRIPT) -m 755 \$$source.tmp $(BINDIR)/\$$target; \
$(RM) \$$source.tmp
install \
install-bin \
install-scripts \
install-full :: $(BINDIR)
@$(SHELL) -c "source=\"@XTERM_SYMLINK@\"; \
target=\"$(binary_xterm)\"; \
$(InstallBinLink)"
@$(SHELL) -c "source=\"resize\"; \
target=\"$(binary_resize)\"; \
$(InstallBinLink)"
@$(SHELL) -c "source=\"uxterm\"; \
target=\"$(binary_uxterm)\"; \
$(InstallScript); \
$(InstallBinLink)"
@$(SHELL) -c "source=\"koi8rxterm\"; \
target=\"$(binary_k8term)\"; \
$(InstallScript); \
$(InstallBinLink)"
install \
install-man \
install-full :: $(MANDIR)
@-$(SHELL) -c "for source in xterm resize uxterm koi8rxterm ; \
do \
target=\`echo \"\$$source\" | sed '@program_transform_name@'\`; \
$(SHELL) ./minstall \"$(INSTALL_DATA)\" \
$(srcdir)/\$$source.man \
$(MANDIR)/\$$target.$(manext) \
$(appsdir) \
$(CLASS) \
\$$source \
\$$target \
$(pixmapdir); \
done"
@-$(SHELL) -c "if test @XTERM_SYMLINK@ != NONE ; then \
source=$(actual_xterm).$(manext); \
target=@XTERM_SYMLINK@.$(manext); \
cd $(MANDIR) && ( \
$(RM) \$$target ; \
$(LN_S) \$$source \$$target ; \
echo '... created symbolic link:' ; \
ls -l \$$source \$$target ; \
) \
fi"
APP_NAMES = XTerm UXTerm KOI8RXTerm
@no_appsdir@install \
@no_appsdir@install-app \
@no_appsdir@install-full :: $(APPSDIR)
@no_appsdir@ @-$(SHELL) -c 'for s in $(APP_NAMES); \
@no_appsdir@ do \
@no_appsdir@ echo "** $$s"; \
@no_appsdir@ d=`echo $$s | sed -e s/XTerm/$(CLASS)/`; \
@no_appsdir@ echo installing $(APPSDIR)/$$d; \
@no_appsdir@ sed -e s/XTerm/$(CLASS)/ $(srcdir)/$$s.ad >XTerm.tmp; \
@no_appsdir@ $(INSTALL_DATA) XTerm.tmp $(APPSDIR)/$$d; \
@no_appsdir@ echo installing $(APPSDIR)/$$d-color; \
@no_appsdir@ sed -e s/XTerm/$$d/ $(srcdir)/XTerm-col.ad >XTerm.tmp; \
@no_appsdir@ $(INSTALL_DATA) XTerm.tmp $(APPSDIR)/$$d-color; \
@no_appsdir@ done'
@no_appsdir@ @$(RM) XTerm.tmp
@no_icondir@ @echo "... installed app-defaults"
@no_icondir@ICON_LIST = @ICON_LIST@
@no_icondir@ICON_THEME = @ICON_THEME@
@no_icondir@install \
@no_icondir@install-icon \
@no_icondir@install-full :: $(ICONDIR)
@no_icondir@ @ECHO_CC@ACTUAL_XTERM=$(actual_xterm) $(SHELL) -c '\
@no_icondir@ h=$(ICONDIR)/$(ICON_THEME); \
@no_icondir@ for n in $(ICON_LIST); \
@no_icondir@ do \
@no_icondir@ x=$$ACTUAL_XTERM; \
@no_icondir@ l=`echo "$$n" | cut -f1 -d:`; \
@no_icondir@ r=`echo "$$n" | cut -f2 -d: |sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
@no_icondir@ test -z "$$r" && continue; \
@no_icondir@ d=$$h/`echo "$$r" | sed -e "s,/[^/]*$$,,"`; \
@no_icondir@ test -d "$$d" || mkdir -p "$$d"; \
@no_icondir@ echo "installing icon $$h/$$r"; \
@no_icondir@ $(INSTALL_DATA) $$l $$h/$$r; \
@no_icondir@ s=`echo "$$r" | sed -e '"'s,^.*\.,.,'"'`; \
@no_icondir@ t=$(ICON_SYMLINK)$$s; \
@no_icondir@ b=`basename $$n $$s | sed -e "s,_[1-9][0-9]*x.*,,"`; \
@no_icondir@ if test "$(ICON_SYMLINK)" != NONE ; then \
@no_icondir@ if test "$$r" != "$$t" ; then \
@no_icondir@ if test "x$$b" = "x$(ICON_NAME)" ; then \
@no_icondir@ echo "linking $$r -> $$t"; \
@no_icondir@ ( cd $$h; $(RM) $$t; $(LN_S) $$r $$t; ) \
@no_icondir@ fi \
@no_icondir@ fi \
@no_icondir@ fi \
@no_icondir@ done'
@no_icondir@ @echo "... installed icons"
@no_pixmapdir@install \
@no_pixmapdir@install-icon \
@no_pixmapdir@install-full :: $(PIXMAPDIR)
@no_pixmapdir@ @ECHO_CC@ACTUAL_XTERM=$(actual_xterm) $(SHELL) -c '\
@no_pixmapdir@ h=$(PIXMAPDIR); \
@no_pixmapdir@ for n in $(srcdir)/icons/*xterm*_32x32.xpm $(srcdir)/icons/*xterm*_48x48.xpm; \
@no_pixmapdir@ do \
@no_pixmapdir@ l=`basename $$n`; \
@no_pixmapdir@ r=`echo "$$l" | sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
@no_pixmapdir@ echo "installing pixmap $$h/$$r"; \
@no_pixmapdir@ $(INSTALL_DATA) $(srcdir)/icons/$$l $$h/$$r; \
@no_pixmapdir@ s=`echo "$$r" | sed -e '"'s,^.*\.,.,'"'`; \
@no_pixmapdir@ t=$(ICON_SYMLINK)$$s; \
@no_pixmapdir@ b=`basename $$n $$s | sed -e "s,_[1-9][0-9]*x.*,,"`; \
@no_pixmapdir@ if test "$(ICON_SYMLINK)" != NONE ; then \
@no_pixmapdir@ if test "x$$r" != "$$t" ; then \
@no_pixmapdir@ if test "x$$b" = "x$(ICON_NAME)" ; then \
@no_pixmapdir@ echo "linking $$r -> $$t"; \
@no_pixmapdir@ ( cd $$h; $(RM) $$t; $(LN_S) $$r $$t; ) \
@no_pixmapdir@ fi \
@no_pixmapdir@ fi \
@no_pixmapdir@ fi \
@no_pixmapdir@ done'
@no_pixmapdir@ @echo "... installed icons"
install ::
@echo 'Completed installation of executables and documentation.'
@echo 'Use "make install-ti" to install terminfo description.'
TERMINFO_DIR = @TERMINFO_DIR@
SET_TERMINFO = @SET_TERMINFO@
@no_ticprog@install-full \
@no_ticprog@install-ti :: $(TERMINFO_DIR)
@no_ticprog@ @$(SHELL) -c "$(SET_TERMINFO) $(srcdir)/run-tic.sh $(srcdir)/terminfo"
@no_ticprog@ @echo 'Completed installation of terminfo description.'
install-full \
install-tc ::
@-$(SHELL) -c "if test -f /etc/termcap ; then echo 'You must install the termcap entry manually by editing /etc/termcap'; fi"
installdirs : $(INSTALL_DIRS)
################################################################################
UninstallLink = \
if test @XTERM_SYMLINK@ != NONE \
&& test \$$source != NONE \
&& test \$$source != \$$target \
&& test -h \$$TARGET/\$$source ; then \
echo \"... removing \$$TARGET/\$$source\"; \
cd \$$TARGET && \
$(RM) \$$source; \
fi
UninstallBinLink = TARGET=$(BINDIR); $(UninstallLink)
UninstallManLink = TARGET=$(MANDIR); $(UninstallLink)
UninstallBinary = \
echo \"... removing $(BINDIR)/\$$target\"; \
$(RM) $(BINDIR)/\$$target
uninstall \
uninstall-bin \
uninstall-full ::
@-$(SHELL) -c "source=\"@XTERM_SYMLINK@\"; \
target=\"$(binary_xterm)\"; \
$(UninstallBinLink); \
$(UninstallBinary)"
@-$(SHELL) -c "source=\"resize\"; \
target=\"$(binary_resize)\"; \
$(UninstallBinLink); \
$(UninstallBinary)"
uninstall \
uninstall-bin \
uninstall-scripts \
uninstall-full ::
@-$(SHELL) -c "source=\"uxterm\"; \
target=\"$(binary_uxterm)\"; \
$(UninstallBinLink); \
$(UninstallBinary)"
@-$(SHELL) -c "source=\"koi8rxterm\"; \
target=\"$(binary_k8term)\"; \
$(UninstallBinLink); \
$(UninstallBinary)"
uninstall \
uninstall-man \
uninstall-full ::
@-$(SHELL) -c "\
source=@XTERM_SYMLINK@.$(manext); \
target=$(actual_xterm).$(manext); \
$(UninstallManLink)"
@-$(SHELL) -c "for source in \
$(actual_xterm).$(manext) \
$(actual_resize).$(manext) \
$(actual_uxterm).$(manext) \
$(actual_k8term).$(manext); \
do \
echo \"... removing $(MANDIR)/\$$source\"; \
$(RM) $(MANDIR)/\$$source; \
done"
@no_appsdir@uninstall \
@no_appsdir@uninstall-app \
@no_appsdir@uninstall-full ::
@no_appsdir@ -@ECHO_CC@$(SHELL) -c 'for s in $(APP_NAMES); \
@no_appsdir@ do \
@no_appsdir@ echo "** $$s"; \
@no_appsdir@ d=`echo $$s | sed -e s/XTerm/$(CLASS)/`; \
@no_appsdir@ echo uninstalling $(APPSDIR)/$$d; \
@no_appsdir@ $(RM) $(APPSDIR)/$$d; \
@no_appsdir@ echo uninstalling $(APPSDIR)/$$d-color; \
@no_appsdir@ $(RM) $(APPSDIR)/$$d-color; \
@no_appsdir@ done'
@no_icondir@uninstall \
@no_icondir@uninstall-icon \
@no_icondir@uninstall-full ::
@no_icondir@ -@ECHO_CC@$(SHELL) -c 'ACTUAL_XTERM=$(actual_xterm) ; \
@no_icondir@ for n in $(ICON_LIST); \
@no_icondir@ do \
@no_icondir@ r=`echo "$$n" | sed -e s,\^.\*:,, -e s,xterm,$$ACTUAL_XTERM,`; \
@no_icondir@ test -z "$$r" && continue; \
@no_icondir@ h=$(ICONDIR)/$(ICON_THEME); \
@no_icondir@ test -f $$h/$$r || continue; \
@no_icondir@ echo removing $$h/$$r; \
@no_icondir@ $(RM) $$h/$$r; \
@no_icondir@ done'
@no_icondir@ @echo "... removed icons"
@no_pixmapdir@uninstall \
@no_pixmapdir@uninstall-icon \
@no_pixmapdir@uninstall-full ::
@no_pixmapdir@ -@$(SHELL) -c 'ACTUAL_XTERM=$(actual_xterm) ; \
@no_pixmapdir@ for n in $(srcdir)/icons/*xterm*_32x32.xpm $(srcdir)/icons/*xterm*_48x48.xpm; \
@no_pixmapdir@ do \
@no_pixmapdir@ l=`basename $$n`; \
@no_pixmapdir@ r=`echo "$$l" | sed -e "s,xterm,$$ACTUAL_XTERM,"`; \
@no_pixmapdir@ echo removing $(PIXMAPDIR)/$$r; \
@no_pixmapdir@ $(RM) $(PIXMAPDIR)/$$r; \
@no_pixmapdir@ done'
@no_pixmapdir@ @echo "... removed icons"
################################################################################
# Desktop-utils does not provide an uninstall, and is not uniformly available.
@desktop_utils@DESKTOP_FILES = $(srcdir)/xterm.desktop $(srcdir)/uxterm.desktop
@desktop_utils@DESKTOP_FLAGS = @DESKTOP_FLAGS@
@desktop_utils@install-desktop \
@desktop_utils@install-full ::
@desktop_utils@ ACTUAL_XTERM=$(actual_xterm) \
@desktop_utils@ $(SHELL) -c 'for n in $(DESKTOP_FILES); \
@desktop_utils@ do $(SHELL) df-install $$ACTUAL_XTERM $(ICON_NAME) DESTDIR="$(DESTDIR)" $(DESKTOP_FLAGS) $$n; \
@desktop_utils@ done'
################################################################################
check : $(TEST_PROGRAMS)
@ echo "See demos in vttests/* (use vttest for system-level testing)"
@ $(SHELL) -c 'echo "** executing test_charclass"; \
./test_charclass'
@ $(SHELL) -c 'echo "** executing test_wcwidth"; \
for range in 32-126 160-0xff00 0x10000-0x11000; \
do echo ".. range $$range"; \
./test_wcwidth -s $$range; \
./test_wcwidth -s $$range -w; \
done'
################################################################################
mostlyclean :
-$(RM) *$o *.[is] XTerm[1-9]*.* Xterm.log.* XtermLog.* .pure core *~ *.bak *.BAK *.out *.tmp
clean : mostlyclean
-$(RM) $(PROGRAMS) $(TEST_PROGRAMS) $(AUTO_SOURCE)
sources : $(AUTO_SOURCE)
distclean :: clean
-$(RM) Makefile config.status config.cache config.log xtermcfg.h
-$(RM) df-install minstall
distclean \
docs-clean ::
-$(RM) *.ps *.pdf *.png
-$(SHELL) -c 'for p in xterm resize uxterm koi8rxterm; \
do \
$(RM) $$p.html $$p.$(manext) $$p.txt; \
done'
-$(RM) ctlseqs.html ctlseqs.$(manext)
distclean ::
-$(RM) man2html.tmp
realclean : distclean
-$(RM) tags TAGS
maintainer-clean : realclean
-$(RM) 256colres.h 88colres.h
################################################################################
terminfo.out : terminfo ; tic -a -I -1 terminfo >$@
termcap.out : termcap ; tic -a -C -U termcap >$@
################################################################################
docs-ctlseqs \
docs :: $(srcdir)/ctlseqs.txt @MAN2HTML_NOTE@ ctlseqs.html @GROFF_NOTE@ ctlseqs.pdf ctlseqs.ps
ctlseqs.html : $(srcdir)/ctlseqs.ms
ctlseqs.pdf : ctlseqs.ps
ctlseqs.ps : $(srcdir)/ctlseqs.ms
ctlseqs.txt : $(srcdir)/ctlseqs.ms
################################################################################
docs-resize \
docs :: resize.txt @MAN2HTML_NOTE@ resize.html @GROFF_NOTE@ resize.pdf resize.ps
resize.html : resize.$(manext)
resize.pdf : resize.ps
resize.ps : resize.$(manext)
resize.txt : resize.$(manext)
################################################################################
docs-xterm \
docs :: xterm.txt @MAN2HTML_NOTE@ xterm.html @GROFF_NOTE@ xterm.pdf xterm.ps
xterm.html : xterm.$(manext)
xterm.pdf : xterm.ps
xterm.ps : xterm.$(manext)
xterm.txt : xterm.$(manext)
################################################################################
docs-uxterm \
docs :: uxterm.txt @MAN2HTML_NOTE@ uxterm.html @GROFF_NOTE@ uxterm.pdf uxterm.ps
uxterm.html : uxterm.$(manext)
uxterm.pdf : uxterm.ps
uxterm.ps : uxterm.$(manext)
uxterm.txt : uxterm.$(manext)
################################################################################
docs-koi8rxterm \
docs :: koi8rxterm.txt @MAN2HTML_NOTE@ koi8rxterm.html @GROFF_NOTE@ koi8rxterm.pdf koi8rxterm.ps
koi8rxterm.html : koi8rxterm.$(manext)
koi8rxterm.pdf : koi8rxterm.ps
koi8rxterm.ps : koi8rxterm.$(manext)
koi8rxterm.txt : koi8rxterm.$(manext)
################################################################################
lint :
$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS1)
$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS2)
tags :
$(CTAGS) $(SRCS) $(HDRS)
TAGS :
$(ETAGS) $(SRCS) $(HDRS)
$(TERMINFO_DIR) $(INSTALL_DIRS) :
mkdir -p $@
ALWAYS :
depend : $(TABLES)
makedepend -- $(CPPFLAGS) -- $(SRCS)
# DO NOT DELETE THIS LINE -- make depend depends on it.

View File

@ -0,0 +1,27 @@
The NEWS file was generated from xterm.log.html, which serves as the changelog
for xterm.
--------------------------------------------------------------------------------
Patch #359 - 2020/08/17
* add special case in WriteText to allow colors 8-15 to override
colorBDMode (patch by Ingo Brückl).
* add utf8Weblike resource, to provide an alternate scheme for
handling ill-formed UTF-8 sequences (adapted from patch by Dan
Gohman).
* improve computation for the number of lines needed to scroll-up a
SIXEL graphic (report/patch by Ben Wong).
* correct manpage description for default value of disallowWindowOps
from changes in xterm #331 (patch by Ben Wong).
* correct a loop starting-point in refresh_graphics from optimization
in patch #358 changes (report by Ben Wong).
* add a new mouse mode 1016, which uses the same format as mode 1006,
but sends the mouse's position in pixels (suggested by Igor van den
Hoven).
* fix an issue from patch #338 changes where only the first selection
buffer specified in the request would be updated using OSC 52
(patch by Michael Gulick).
* modify makefile/scripts to allow DESTDIR to prefix the target
directory for desktop-file-install (report by Fred Heitkamp).
* enable SIXEL feature by default.
* update config.guess, config.sub

View File

@ -0,0 +1,19 @@
-- $XTermId: README,v 1.3 2007/05/24 19:49:19 tom Exp $
-- Below is the original README for xterm from 1991, for your amusement.
-- For a better overview, see http://invisible-island.net/xterm/
-------------------------------------------------------------------------------
Abandon All Hope, Ye Who Enter Here
This is undoubtedly the most ugly program in the distribution. It was one of
the first "serious" programs ported, and still has a lot of historical baggage.
Ideally, there would be a general tty widget and then vt102 and tek4014
subwidgets so that they could be used in other programs. We are trying to
clean things up as we go, but there is still a lot of work to do.
If you are porting this to a machine that has problems with overlapping
bcopy's, watch out!
There are two documents on xterm: the man page, xterm.man, which describes
how to use it, and ctlseqs.ms, which describes the control sequences it
understands.

View File

@ -0,0 +1,199 @@
-- $XFree86: xc/programs/xterm/README.i18n,v 1.1 2003/11/13 01:16:37 dickey Exp $
Using xterm in your language
============================
Since XFree86 version 4.0, the internationalization (i18n) feature of
xterm is gradually improved. Xterm is being improved even now. You
need only set the standard locale environment variables such as
LC_CTYPE, LC_ALL, LC_CTYPE, or LANG. Once the locale is set up you can
use xterm in your favorite character encoding.
This document explains how the i18n feature is realized and how to
configure xterm for your character encoding.
Refer to locale(7) for details of the locale mechanism.
Basic i18n-related settings and resources
=========================================
These settings apply to XFree86 xterm patch #181, and the program luit
which is distributed with XFree86 4.4
1. Usage of "locale mode"
On startup, xterm must be in "locale mode" to make it follow the
current locale. You can invoke xterm in locale mode in these ways:
a. Set "vt100.locale" resource "true". This resource was
introduced since XFree86 4.3. The default value of the "locale"
resource is "medium", which means xterm follows the locale only
in Chinese, Japanese, Korean, or Thai locales. For example,
XTerm*locale: true
in your ~/.Xresources file.
or
b. Invoke xterm with the "-lc" option.
2. Converter program "luit"
The "luit" must be available in the standard XFree86 binary
directory. It is usually available because it is part of the
XFree86 distribution. The standard binary directory may differ from
system to system. /usr/X11R6/bin/luit is an example.
"luit" is used to convert between Unicode and the character encoding
for your locale. When built for XFree86, xterm includes logic for
invoking luit.
3. Locale setting
Finally, you will need to configure your locale. We expect that you
have already configured your locale for other software. For example,
LANG=de_DE@euro
export LANG
in your ~/.xsession file. There are many ways to configure locale.
For example, your display manager may have a mechanism to invoke a
window manager in your favorite locale, or you may have system-wide
locale setting in /etc/environment. You may also have set the
LC_ALL variable instead of the LANG variable.
How to use xterm in different locale temporarily
================================================
You may sometimes need to invoke xterm in a different character encoding
than your current locale. For example, use xterm to login remote systems
in different locale.
Do this by invoking xterm in the target locale. For example,
$ LANG=ru_RU.KOI8-R xterm &
Previously, font setting has been used in such cases.
$ xterm -fn -misc-fixed-medium-r-normal--10-*-*-*-*-*-koi8-r &
This does not work well in conjunction with the "locale" resource,
because luit and xterm combined rely upon Unicode fonts.
How to set fonts for UTF-8/locale modes
=======================================
Since xterm patch #181, xterm can automatically use Unicode fonts in
UTF-8 mode and locale mode. Few of you will need to modify the default
setting to display your language. In particular, Unicode fonts in
combination with locale mode will satisfy the needs of not only
ISO-8859-1 users but also East Asian and other non-ISO-8859-1 users.
If you want to set your favorite Unicode font for UTF-8 and locale
modes, you should add a line such as the following in your ~/.Xresources
file:
XTerm*VT100.utf8Fonts.font: \
-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
The leading "XTerm*" pattern is more specific than the system's
app-defaults file, therefore it overrides the corresponding line
beginning with
*VT100.utf8Fonts.font:
Here is an additional note. If you want to display East Asian
doublewidth characters (CJK Ideogram, Hiragana, Katakana, Hangul,
and so on), we recommend using
-misc-fixed-medium-r-semicondensed--13-*-*-*-*-*-iso10646-1
or
-misc-fixed-medium-r-normal--18-*-*-*-*-*-iso10646-1
because these two fonts have corresponding doublewidth fonts. These
fonts are used as default font and default "Large" font, respectively.
The internals of xterm i18n
===========================
You do not need to read this section if you only want to configure your
xterm. Here we describe how xterm is implemented to support i18n.
The original version of xterm does not support locale or character
encoding. Its I/O stream is interpreted as a mere 8-bit index for a
font.
Beginning with XFree86 4.0, xterm supported UTF-8. It was implemented
as a separate UTF-8 mode from the conventional 8-bit mode. Character
encodings had no effect on the 8-bit mode. The UTF-8 mode has been
extended to support doublewidth characters (for East Asian characters)
and combining characters (such as accents for Latin alphabets and Thai
vowels/tone marks).
Doublewidth characters are characters that occupy two continuing
columns on the terminal. Xterm uses separate fonts for normal
(singlewidth) characters and doublewidth characters. Though xterm has
configuration items for specifying doublewidth fonts, it will
automatically search for a font with exactly twice as wide and the same
name as the specified normal font.
The default behavior of xterm was modified to use this UTF-8 mode in
UTF-8 locales. A command line option of "-u8" and a resource of "utf8"
were introduced to choose UTF-8 mode.
"luit" was introduced to XFree86 at version 4.2. It converts between
UTF-8 and other encodings. When luit is invoked in a UTF-8 terminal,
the terminal acts as if it is really running in the other encoding.
Since XFree86 version 4.3, xterm provides a new mode to invoke luit
automatically to support various encodings. The mode where xterm
invokes luit is called "locale mode". It is the third mode following
conventional 8-bit mode and UTF-8 mode. In the locale mode, xterm is
aware of the current locale and character encoding. Since locale mode
uses luit, it is based on the UTF-8 mode. That is, xterm works in UTF-8
mode and luit works as a converter between UTF-8 and the character
encoding for your locale. This is why the locale mode always needs
Unicode fonts. The default behavior of xterm is modified so that the
"locale mode" will be adopted in Chinese (Big5 and GB2312), Japanese
(EUC-JP), Korean (EUC-KR), and Thai (ISO-8859-11, as known as TIS-620)
locales. Locale mode is chosen for these character encodings because
these encodings are not supported by conventional 8-bit mode even by
changing fonts (ISO-8859-11 needs combining characters and others need
doublewidth characters).
To control the locale mode, command line options of "-lc" and "-en" and
a resource of "locale" were introduced. The command line option of
"-u8" and a resource of "utf8" were made obsolete by them, though
retained for compatibility.
Since XFree86 version 4.4, xterm can have two sets of default fonts,
one for conventional 8-bit mode and another for UTF-8 and locale modes,
by introducing the "utf8Fonts" subresource.
Future TODO Items
=================
We anticipate that xterm's locale mode will be used increasingly in the
future. Since the UTF-8 and locale modes use more resources than
conventional 8-bit mode (because it needs larger fonts and another
process "luit"), faster hardware may be needed to gain complete
acceptance by users. However, the locale mechanism allows users
to manipulate data in a standard form. Its usefulness compensates
in part for reduced performance.
Xterm supports antialiased fonts ("-fa" and "-fs" command line options).
Currently UTF-8 nor locale modes do not work with antialiased fonts.
Xterm does not support bi-directional or RTL languages such as Hebrew
and Arab. A simple standard how terminal should behave for these
languages is needed.
Xterm does not support Unicode characters above U+10000.

View File

@ -0,0 +1,74 @@
-- $XFree86: xc/programs/xterm/README.os390,v 1.3 2000/09/22 10:42:05 alanh Exp $
Below are install instructions for os/390 2.5 & below and
for os/390 2.6 & above. The basic reasons for exporting
the LIBS and CFLAGS variables is to get the configure
script to run properly under os/390. configure, when
checking for X, attempts to compile a program something like
int main() {
XtMalloc()
; return 0; }
using 'cc -o conftest conftest.c -lXt'. However this results
in a number of linkedit messages such as:
IEW2456E 9207 SYMBOL xcatd UNRESOLVED. MEMBER COULD NOT BE INCLUDED FROM THE
DESIGNATED CALL LIBRARY. NAME SPACE = 3
IEW2456E 9207 SYMBOL XrmQGetResource UNRESOLVED. MEMBER COULD NOT BE INCLUDED
FROM THE DESIGNATED CALL LIBRARY.
IEW2456E 9207 SYMBOL XrmGetDatabase UNRESOLVED. MEMBER COULD NOT BE INCLUDED
FROM THE DESIGNATED CALL LIBRARY.
The only way I can get this program to compile and link is to
use 'cc -o conftest conftest.c -lXt -lX11 -lSM -lICE'.
With os/390 2.6 and above, IBM has provided X functions in dlls;
this is the reason for the separate install steps. In fact,
trying to use the X archive files (eg -lX11) when linking xterm
results in an abend0C1 in low storage when X tries to call the
initialize function (at least on my system). This has something
to do with the calling X routine thinking it has a function pointer
descriptor (c++) when it actually has just a function pointer (c).
Unfortunately, I have been unable to recreate the problem in a
simple testcase, so I haven't reported it to IBM. Anyway, for os/390
2.6 and above, configure will build a Makefile with the following line:
LIBS = -lXaw -lXext -lXmu -lXt -lSM -lICE -lX11 /usr/lib/Xaw.x /usr/lib/SM.x /usr/lib/ICE.x /usr/lib/X11.x -lcurses
The '-lXaw -lXext -lXmu -lXt -lSM -lICE -lX11' should be manually removed;
this isn't strictly necessary, but will reduce the size of the executable
by about 4M.
The '-Wl,EDIT=NO' causes the Binder to produce a non-editable executable,
dramatically reducing the size of the executable file.
Good Luck!!
Greg Smith
rys@trex.rtpnc.epa.gov
Install instructions for os/390 2.5 and *below*:
------------------------------------------------
gunzip xterm.tar.gz
pax -o from=ISO8859-1,to=IBM-1047 -rf xterm.tar
cd xterm
export LIBS='-lXt -lX11 -lSM -lICE'
export CFLAGS='-D_ALL_SOURCE -Wl,EDIT=NO'
./configure
make
export DISPLAY=my.xserver.name:0
./xterm
Install instructions for os/390 2.6 and *above*:
------------------------------------------------
gunzip xterm.tar.gz
pax -o from=ISO8859-1,to=IBM-1047 -rf xterm.tar
cd xterm
./configure # LIBS, CFLAGS, and CC are defined by configure for os/390 2.6.
[optional: edit the Makefile and remove '-lXaw -lXext -lXmu -lXt -lSM -lICE -lX11'
from the LIBS assignment]
make
export DISPLAY=my.xserver.name:0
./xterm

View File

@ -0,0 +1,241 @@
-- $XTermId: THANKS,v 1.26 2020/07/03 17:42:57 tom Exp $
-- vile:txtmode fk=utf-8
There's no AUTHORS file in this distribution; it would be redundant since
I (Thomas E. Dickey) have done more than 80% of the work on xterm since 1996.
There is no reliable history before that point.
For some insight, see
https://invisible-island.net/xterm/xterm.faq.html#who_did_it
https://invisible-island.net/personal/changelogs.html#categories
Here is a list from xterm.log.html of people who have contributed changes,
or whose suggested change could be adapted:
Adam M Costello
Adam Sulmicki
Ailin Nemui
Al Poole
Alan Coopersmith
Alex Hornung
Alexander Pohoyda
Alexander V Lukyanov
Andrea Odetti
Andreas Jaeger
Andreas Schwab
Andres Perera
Andrew Sumner
Andrew Tipton
Andrey Panov
Andries E Brouwer
Anton Kovalenko
Balazs Kezes
Ben Wiley Sittler
Ben Wong
Ben Yoshino
Bernhard R Link
Bernhard Rosenkraenzer
Bertram Felgenhauer
Bill Nottingham
Bjarni Ingi Gislason
Bob Maynard
Brad Town
Bradd W Szonye
Bram Moolenaar
Branden Robinson
Bruno Haible
Cade Foster
Caetano Jimenez Carezzato
Chris Adams
Chris Clayton
Christian Biere
Christian Weisgerber
Chuck Blake
Chuck Silvers
Colum Paget
D Roland Walker
Dan Church
Dan Gohman
Dan Thompson
Daniel Colascione
Daniel Drake
Daniel Jacobowitz
Dave Coffin
Dave Simmons
David Dawes
David Krause
David Madore
David Martínez Moreno
David Mathog
David Michael
David Wolfskill
David Wood
David Yeo
Denis Zaitsev
Dennis Preiser
Dennis Schneider
Dimitrios Christidis
Ed Schouten
Eddy De Greef
Edward S Arthur
Egbert Eich
Egmont Koblinger
Emanuele Giaquinta
Eugene Konev
Fabrice Bellard
Frank Giessler
Frank Guangxin Liu
Frank Liu
Gael Roualland
George Kouryachy
George Nachman
George Peter Staplin
Gertjan Halkes
Greg Badros
Greg Klanderman
Greg Smith
H Merijn Brand
Hasso Tepper
Holger Veit
Ilya Zakharevich
Ingo Brückl
Iwamoto Kouichi
James Armstrong
Jan Engelhardt
Jason Bacon
Jason Vas Dias
Jeff Chua
Jeff Uphoff
Jens Schweikhardt
Jeremy Buhler
Jeremy Huddleston
Jeroen Ruigrok
Jess Thrysoee
Jim Paris
Jimmy Aguilar Mena
Jochen Voss
Joe Allen
Joe Peterson
Johnny Billquist
Jonathan Irwin
Julien Cristau
Juliusz Chroboczek
Jungshik Shin
Jürgen Keil
KUGA Tsutomu
Kean Johnston
Keith Packard
Ken Martin
Kevin Buhr
Kevin Ryde
Kevin Schoedel
Kiyokazu Suto
Larry Hynes
Larry Riedel
Lauri Tirkkonen
Lee Olsen
Loïc Minier
Marc Bevand
Marc La France
Marco Peereboom
Marius Tolzmann
Mark Waggoner
Markus Kuhn
Martin Hostettler
Martin Pirker
Martin Tournoij
Matthew Green
Matthias Baake
Matthias Scheler
Matthieu Herrb
Matthieu Lagouge
Mattias Engdegård
Max Mikhanosha
Michael Riepe
Michael Rohleder
Michael Schroeder
Mike Castle
Mike Fabian
Mike Frysinger
Mike Hopkirk
Mike Thornburg
Mikulas Patocka
Milan Mehner
Min Sik Kim
Miroslav Lichvar
Nam SungHyun
Nelson Beebe
Nicholas Marriott
Nicolas George
Németh Márton
Olaf Rogalsky
Ovidiu Gheorghioiu
Paul Bolle
Paul Gilmartin
Paul Giordano
Paul Lampert
Paul Maier
Paul Szabo
Paul Vojta
Paul Williams
Pavel Roskin
Peder Stray
Per Hedeland
Peter Berg Larsen
Phil Sidler
Pierre Lombard
Pierre Pronchery
Quinn Strahl
Rajesh Mandalemula
Richard Braakman
Richard Griswold
Richard Tollerton
Rob Braun
Robert Brady
Robert Earl
Robert Ross
Robin Cutshaw
Romain Francoise
Ross Combs
Ross Paterson
Ryan Johnson
Sam Stephenson
Samuel Thibault
Scott Sewall
Semen A Ustimenko
Sergei Laskavy
Sergey Vlasov
Slava Semushin
Stefan Assmann
Stefan Dirsch
Stephen P Wall
Stuart Lissaman
Sven Joachim
Sven Verdoolaege
Taketo Kabe
Taneli Huuskonen
Ted Phelps
Thierry Reding
Thomas Wolff
Thorsten Glaser
Tim Adye
Tim Pope
Tobias Stoeckmann
Todd Eigenschink
Todd Larason
Todd Miller
Tomas Vanhala
Tomasz Cholewo
Tomohiro Kubota
Tor Lillqvist
Torrey Lyons
Victor Stinner
Victor Vaile
Vincent Lefèvre
Walter Harms
Werner Fink
Werner Lemberg
Will Day
YOKOTA Hiroshi
Zarick Lau
Zdenek Sekera

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,74 @@
# $XTermId: Tekparse.def,v 1.4 2006/02/12 22:43:56 tom Exp $
#
# vile:confmode rs=lf
# -----------------------------------------------------------------------------
# this file is part of xterm
#
# Copyright 2002,2006 by Thomas E. Dickey
#
# All Rights Reserved
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name(s) of the above copyright
# holders shall not be used in advertising or otherwise to promote the
# sale, use or other dealings in this Software without prior written
# authorization.
# -----------------------------------------------------------------------------
#
# List of symbols that need to be defined for Tekparse.h. If you need to
# change any of the CASE_ macros, make the change here and rerun the command
# shown in Tekparse.h.
#
CASE_REPORT
CASE_VT_MODE
CASE_SPT_STATE
CASE_GIN
CASE_BEL
CASE_BS
CASE_PT_STATE
CASE_PLT_STATE
CASE_TAB
CASE_IPL_STATE
CASE_ALP_STATE
CASE_UP
CASE_COPY
CASE_PAGE
CASE_BES_STATE
CASE_BYP_STATE
CASE_IGNORE
CASE_ASCII
CASE_APL
CASE_CHAR_SIZE
CASE_BEAM_VEC
CASE_CURSTATE
CASE_PENUP
CASE_PENDOWN
CASE_IPL_POINT
CASE_PLT_VEC
CASE_PT_POINT
CASE_SPT_POINT
CASE_CR
CASE_ESC_STATE
CASE_LF
CASE_SP
CASE_PRINT
CASE_OSC

View File

@ -0,0 +1,55 @@
/* $XTermId: Tekparse.h,v 1.8 2016/10/06 00:32:30 tom Exp $ */
/*
* Copyright 1998-2006,2016 by Thomas E. Dickey
*
* All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name(s) of the above copyright
* holders shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization.
*/
#ifndef included_Tekparse_h
#define included_Tekparse_h 1
#ifndef Const
# if defined(__STDC__) && !defined(__cplusplus)
# define Const const
# else
# define Const /**/
# endif
#endif
extern Const int Talptable[];
extern Const int Tbestable[];
extern Const int Tbyptable[];
extern Const int Tesctable[];
extern Const int Tipltable[];
extern Const int Tplttable[];
extern Const int Tpttable[];
extern Const int Tspttable[];
#include <Tekparse.hin>
#endif /* included_Tekparse_h */

View File

@ -0,0 +1,35 @@
/* vile:cmode */
#define CASE_REPORT 0
#define CASE_VT_MODE 1
#define CASE_SPT_STATE 2
#define CASE_GIN 3
#define CASE_BEL 4
#define CASE_BS 5
#define CASE_PT_STATE 6
#define CASE_PLT_STATE 7
#define CASE_TAB 8
#define CASE_IPL_STATE 9
#define CASE_ALP_STATE 10
#define CASE_UP 11
#define CASE_COPY 12
#define CASE_PAGE 13
#define CASE_BES_STATE 14
#define CASE_BYP_STATE 15
#define CASE_IGNORE 16
#define CASE_ASCII 17
#define CASE_APL 18
#define CASE_CHAR_SIZE 19
#define CASE_BEAM_VEC 20
#define CASE_CURSTATE 21
#define CASE_PENUP 22
#define CASE_PENDOWN 23
#define CASE_IPL_POINT 24
#define CASE_PLT_VEC 25
#define CASE_PT_POINT 26
#define CASE_SPT_POINT 27
#define CASE_CR 28
#define CASE_ESC_STATE 29
#define CASE_LF 30
#define CASE_SP 31
#define CASE_PRINT 32
#define CASE_OSC 33

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,42 @@
Tests for xterm:
If system supports window size (i.e., some combination of SIGWINCH,
TIOCSSIZE, TIOCSWINSZ), start a full-screen program (e.g., Emacs,
Jove, vi) and resize the xterm window. The program must immediately
update its screen image for the new size.
If compiled with -DUTMP, starting a new xterm should create a new utmp
entry. ("who" will show this info.) Exiting xterm should remove the
entry. Killing the xterm window (or other unnatural exit) should also
remove the entry. When should entries be made in the wtmp file?
Process group stuff should be correct.
Should work without access to /dev/tty, say started from an xdm
started from a boot-time script.
If "xterm -help" offers the -C option, it should work.
echo "test" > /dev/tty
vi with lines that wrap.
Exec'ing things other than shells.
Another thing that has caused problems in the past is process groups,
especially w.r.t. signal propagation to the child.
Popup menu signals: running only a shell, click on "Send INT Signal."
Do you get a new prompt from the shell? (Same as typing ^C at it.)
Should scroll *fast* with jumpScroll enabled.
While a mouse button is down tracing out a selection, output to the
screen should be suspended.
Selections more than one screen long.
start xterm running only Tek widget: "xterm -t"
Please add to this list if you find xterm failing in some way.

View File

@ -0,0 +1,76 @@
! $XTermId: UXTerm.ad,v 1.13 2010/03/04 01:17:07 tom Exp $
! -----------------------------------------------------------------------------
! this file is part of xterm
!
! Copyright 2000-2006,2010 by Thomas E. Dickey
!
! All Rights Reserved
!
! Permission is hereby granted, free of charge, to any person obtaining a
! copy of this software and associated documentation files (the
! "Software"), to deal in the Software without restriction, including
! without limitation the rights to use, copy, modify, merge, publish,
! distribute, sublicense, and/or sell copies of the Software, and to
! permit persons to whom the Software is furnished to do so, subject to
! the following conditions:
!
! The above copyright notice and this permission notice shall be included
! in all copies or substantial portions of the Software.
!
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
! IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
!
! Except as contained in this notice, the name(s) of the above copyright
! holders shall not be used in advertising or otherwise to promote the
! sale, use or other dealings in this Software without prior written
! authorization.
! -----------------------------------------------------------------------------
! Use
! xterm -class UXTerm
! to set resources for UTF-8 mode with corresponding fonts.
! See the uxterm script for an example.
#include "XTerm"
*fontMenu.Label: Unicode Fonts
*VT100.utf8: 1
! This includes "XTerm-color" which includes "XTerm", which defines fonts.
! Why set them here?
!
! Here is a simple description. A technically precise one would be very long.
! When xterm starts up, it uses the
!
! *VT100.font
!
! resource, and if it is told to switch to wide-character (UTF-8) mode, it
! checks if the given font is "wide", and if not looks for the
!
! *VT100.utf8Fonts.font
!
! to obtain a wide font. A "wide" font has more than 256 glyphs. Typical
! wide fonts have 10,000 glyphs. If the original "*VT100.font" is not wide,
! and xterm can load the *VT100.utf8Fonts.font, it will use that.
!
! Making the wide fonts associated with *VT100.font in this file allows uxterm
! to skip that step. It will use the fonts that the XTerm file gives for the
! *VT100.uft8Fonts.font pattern.
*VT100.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
*VT100.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
*VT100.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
*VT100.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
*VT100.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
*VT100.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
! Here is an alternate set of fonts with better support for bold:
!*VT100.font2: -efont-biwidth-medium-r-normal--10-100-75-75-p-50-iso10646-1
!*VT100.font: -efont-biwidth-medium-r-normal--10-100-75-75-p-50-iso10646-1
!*VT100.font3: -efont-biwidth-medium-r-normal--12-120-75-75-p-60-iso10646-1
!*VT100.font4: -efont-biwidth-medium-r-normal--14-140-75-75-p-70-iso10646-1
!*VT100.font5: -efont-biwidth-medium-r-normal--16-160-75-75-p-80-iso10646-1
!*VT100.font6: -efont-biwidth-medium-r-normal--24-240-75-75-p-120-iso10646-1

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,219 @@
# $XTermId: VTparse.def,v 1.63 2020/06/23 20:17:35 tom Exp $
#
# vile:confmode rs=lf
# -----------------------------------------------------------------------------
# this file is part of xterm
#
# Copyright 1996-2019,2020 by Thomas E. Dickey
#
# All Rights Reserved
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name(s) of the above copyright
# holders shall not be used in advertising or otherwise to promote the
# sale, use or other dealings in this Software without prior written
# authorization.
# -----------------------------------------------------------------------------
#
# List of symbols that need to be defined for VTparse.h. If you need to
# change any of the CASE_ macros, make the change here and rerun the command
# shown in VTparse.h.
#
CASE_GROUND_STATE
CASE_IGNORE
CASE_BELL
CASE_BS
CASE_CR
CASE_ESC
CASE_VMOT
CASE_TAB
CASE_SI
CASE_SO
CASE_SCR_STATE
CASE_SCS0_STATE
CASE_SCS1_STATE
CASE_SCS2_STATE
CASE_SCS3_STATE
CASE_ESC_IGNORE
CASE_ESC_DIGIT
CASE_ESC_SEMI
CASE_DEC_STATE
CASE_ICH
CASE_CUU
CASE_CUD
CASE_CUF
CASE_CUB
CASE_CUP
CASE_ED
CASE_EL
CASE_IL
CASE_DL
CASE_DCH
CASE_DA1
CASE_TRACK_MOUSE # XTHIMOUSE
CASE_TBC
CASE_SET
CASE_RST
CASE_SGR
CASE_CPR
CASE_DECSTBM
CASE_DECREQTPARM
CASE_DECSET
CASE_DECRST
CASE_DECALN
CASE_GSETS
CASE_DECSC
CASE_DECRC
CASE_DECKPAM
CASE_DECKPNM
CASE_IND
CASE_NEL
CASE_HTS
CASE_RI
CASE_SS2
CASE_SS3
CASE_CSI_STATE
CASE_OSC
CASE_RIS
CASE_LS2
CASE_LS3
CASE_LS3R
CASE_LS2R
CASE_LS1R
CASE_PRINT
CASE_XTERM_SAVE # XTSAVE
CASE_XTERM_RESTORE # XTRESTORE
CASE_DECID
CASE_HP_MEM_LOCK # HPMEMLOCK
CASE_HP_MEM_UNLOCK # HPMEMUNLOCK
CASE_HP_BUGGY_LL # HPBUGGYLL
CASE_HPA
CASE_VPA
CASE_XTERM_WINOPS # XTWINOPS
CASE_ECH
CASE_CHT
CASE_CPL
CASE_CNL
CASE_CBT
CASE_SU
CASE_SD
CASE_S7C1T
CASE_S8C1T
CASE_ESC_SP_STATE
CASE_ENQ
CASE_DECSCL
CASE_DECSCA
CASE_DECSED
CASE_DECSEL
CASE_DCS
CASE_PM
CASE_SOS
CASE_ST
CASE_APC
CASE_EPA
CASE_SPA
CASE_CSI_QUOTE_STATE
CASE_DSR
CASE_ANSI_LEVEL_1
CASE_ANSI_LEVEL_2
CASE_ANSI_LEVEL_3
CASE_MC
CASE_DEC2_STATE
CASE_DA2
CASE_DEC3_STATE
CASE_DECRPTUI
CASE_VT52_CUP
CASE_REP
CASE_CSI_EX_STATE
CASE_DECSTR
CASE_DECDHL
CASE_DECSWL
CASE_DECDWL
CASE_DEC_MC
CASE_ESC_PERCENT
CASE_UTF8
CASE_CSI_TICK_STATE
CASE_DECELR
CASE_DECRQLP
CASE_DECEFR
CASE_DECSLE
CASE_CSI_IGNORE
CASE_VT52_IGNORE
CASE_VT52_FINISH
CASE_CSI_DOLLAR_STATE
CASE_DECCRA
CASE_DECERA
CASE_DECFRA
CASE_DECSERA
CASE_DECSACE
CASE_DECCARA
CASE_DECRARA
CASE_CSI_STAR_STATE
CASE_SET_MOD_FKEYS # XTMODKEYS
CASE_SET_MOD_FKEYS0
CASE_HIDE_POINTER # XTSMPOINTER
CASE_SCS1A_STATE
CASE_SCS2A_STATE
CASE_SCS3A_STATE
CASE_CSI_SPACE_STATE
CASE_DECSCUSR
CASE_XTERM_SM_TITLE # XTSMTITLE
CASE_XTERM_RM_TITLE # XTRMTITLE
CASE_DECSMBV
CASE_DECSWBV
CASE_DECLL
CASE_DECRQM
CASE_RQM
CASE_CSI_DEC_DOLLAR_STATE
CASE_SL
CASE_SR
CASE_DECDC
CASE_DECIC
CASE_DECBI
CASE_DECFI
CASE_DECRQCRA
CASE_HPR
CASE_VPR
CASE_ANSI_SC
CASE_ANSI_RC
CASE_ESC_COLON
CASE_SCS_PERCENT
CASE_GSETS_PERCENT
CASE_GRAPHICS_ATTRIBUTES # XTSMGRAPHICS
CASE_DECRQPSR
CASE_DECSCPP
CASE_DECSNLS
CASE_CSI_HASH_STATE
CASE_XTERM_PUSH_SGR # XTPUSHSGR
CASE_XTERM_REPORT_SGR # XTREPORTSGR
CASE_XTERM_POP_SGR # XTPOPSGR
CASE_XTERM_CHECKSUM # XTCHECKSUM
CASE_GSETS3
CASE_GSETS5
CASE_SCS_DQUOTE
CASE_GSETS_DQUOTE
CASE_SCS_AMPRSND
CASE_GSETS_AMPRSND
CASE_REPORT_VERSION # XTVERSION
CASE_XTERM_PUSH_COLORS # XTPUSHCOLORS
CASE_XTERM_REPORT_COLORS # XTREPORTCOLORS
CASE_XTERM_POP_COLORS # XTPOPCOLORS

View File

@ -0,0 +1,95 @@
/* $XTermId: VTparse.h,v 1.69 2019/02/10 23:34:21 tom Exp $ */
/*
* Copyright 1996-2018,2019 by Thomas E. Dickey
*
* All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name(s) of the above copyright
* holders shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization.
*/
#ifndef included_VTparse_h
#define included_VTparse_h 1
#include <xterm.h>
#ifndef Const
# if defined(__STDC__) && !defined(__cplusplus)
# define Const const
# else
# define Const /**/
# endif
#endif
/*
* PARSE_T has to be large enough to handle the number of cases enumerated here.
*/
typedef unsigned char PARSE_T;
extern Const PARSE_T ansi_table[];
extern Const PARSE_T cigtable[];
extern Const PARSE_T csi2_table[];
extern Const PARSE_T csi_ex_table[];
extern Const PARSE_T csi_quo_table[];
extern Const PARSE_T csi_sp_table[];
extern Const PARSE_T csi_table[];
extern Const PARSE_T dec2_table[];
extern Const PARSE_T dec3_table[];
extern Const PARSE_T dec_table[];
extern Const PARSE_T eigtable[];
extern Const PARSE_T esc_sp_table[];
extern Const PARSE_T esc_table[];
extern Const PARSE_T scrtable[];
extern Const PARSE_T scs96table[];
extern Const PARSE_T scstable[];
extern Const PARSE_T sos_table[];
extern Const PARSE_T csi_dec_dollar_table[];
extern Const PARSE_T csi_tick_table[];
#if OPT_DEC_RECTOPS
extern Const PARSE_T csi_dollar_table[];
extern Const PARSE_T csi_star_table[];
#endif /* OPT_DEC_LOCATOR */
#if OPT_VT52_MODE
extern Const PARSE_T vt52_table[];
extern Const PARSE_T vt52_esc_table[];
extern Const PARSE_T vt52_ignore_table[];
#endif
#if OPT_WIDE_CHARS
extern Const PARSE_T esc_pct_table[];
extern Const PARSE_T scs_amp_table[];
extern Const PARSE_T scs_pct_table[];
extern Const PARSE_T scs_2qt_table[];
#endif
#if OPT_XTERM_SGR
extern Const PARSE_T csi_hash_table[];
#endif
#include <VTparse.hin>
#endif /* included_VTparse_h */

View File

@ -0,0 +1,180 @@
/* vile:cmode */
#define CASE_GROUND_STATE 0
#define CASE_IGNORE 1
#define CASE_BELL 2
#define CASE_BS 3
#define CASE_CR 4
#define CASE_ESC 5
#define CASE_VMOT 6
#define CASE_TAB 7
#define CASE_SI 8
#define CASE_SO 9
#define CASE_SCR_STATE 10
#define CASE_SCS0_STATE 11
#define CASE_SCS1_STATE 12
#define CASE_SCS2_STATE 13
#define CASE_SCS3_STATE 14
#define CASE_ESC_IGNORE 15
#define CASE_ESC_DIGIT 16
#define CASE_ESC_SEMI 17
#define CASE_DEC_STATE 18
#define CASE_ICH 19
#define CASE_CUU 20
#define CASE_CUD 21
#define CASE_CUF 22
#define CASE_CUB 23
#define CASE_CUP 24
#define CASE_ED 25
#define CASE_EL 26
#define CASE_IL 27
#define CASE_DL 28
#define CASE_DCH 29
#define CASE_DA1 30
#define CASE_TRACK_MOUSE 31
#define CASE_TBC 32
#define CASE_SET 33
#define CASE_RST 34
#define CASE_SGR 35
#define CASE_CPR 36
#define CASE_DECSTBM 37
#define CASE_DECREQTPARM 38
#define CASE_DECSET 39
#define CASE_DECRST 40
#define CASE_DECALN 41
#define CASE_GSETS 42
#define CASE_DECSC 43
#define CASE_DECRC 44
#define CASE_DECKPAM 45
#define CASE_DECKPNM 46
#define CASE_IND 47
#define CASE_NEL 48
#define CASE_HTS 49
#define CASE_RI 50
#define CASE_SS2 51
#define CASE_SS3 52
#define CASE_CSI_STATE 53
#define CASE_OSC 54
#define CASE_RIS 55
#define CASE_LS2 56
#define CASE_LS3 57
#define CASE_LS3R 58
#define CASE_LS2R 59
#define CASE_LS1R 60
#define CASE_PRINT 61
#define CASE_XTERM_SAVE 62
#define CASE_XTERM_RESTORE 63
#define CASE_DECID 64
#define CASE_HP_MEM_LOCK 65
#define CASE_HP_MEM_UNLOCK 66
#define CASE_HP_BUGGY_LL 67
#define CASE_HPA 68
#define CASE_VPA 69
#define CASE_XTERM_WINOPS 70
#define CASE_ECH 71
#define CASE_CHT 72
#define CASE_CPL 73
#define CASE_CNL 74
#define CASE_CBT 75
#define CASE_SU 76
#define CASE_SD 77
#define CASE_S7C1T 78
#define CASE_S8C1T 79
#define CASE_ESC_SP_STATE 80
#define CASE_ENQ 81
#define CASE_DECSCL 82
#define CASE_DECSCA 83
#define CASE_DECSED 84
#define CASE_DECSEL 85
#define CASE_DCS 86
#define CASE_PM 87
#define CASE_SOS 88
#define CASE_ST 89
#define CASE_APC 90
#define CASE_EPA 91
#define CASE_SPA 92
#define CASE_CSI_QUOTE_STATE 93
#define CASE_DSR 94
#define CASE_ANSI_LEVEL_1 95
#define CASE_ANSI_LEVEL_2 96
#define CASE_ANSI_LEVEL_3 97
#define CASE_MC 98
#define CASE_DEC2_STATE 99
#define CASE_DA2 100
#define CASE_DEC3_STATE 101
#define CASE_DECRPTUI 102
#define CASE_VT52_CUP 103
#define CASE_REP 104
#define CASE_CSI_EX_STATE 105
#define CASE_DECSTR 106
#define CASE_DECDHL 107
#define CASE_DECSWL 108
#define CASE_DECDWL 109
#define CASE_DEC_MC 110
#define CASE_ESC_PERCENT 111
#define CASE_UTF8 112
#define CASE_CSI_TICK_STATE 113
#define CASE_DECELR 114
#define CASE_DECRQLP 115
#define CASE_DECEFR 116
#define CASE_DECSLE 117
#define CASE_CSI_IGNORE 118
#define CASE_VT52_IGNORE 119
#define CASE_VT52_FINISH 120
#define CASE_CSI_DOLLAR_STATE 121
#define CASE_DECCRA 122
#define CASE_DECERA 123
#define CASE_DECFRA 124
#define CASE_DECSERA 125
#define CASE_DECSACE 126
#define CASE_DECCARA 127
#define CASE_DECRARA 128
#define CASE_CSI_STAR_STATE 129
#define CASE_SET_MOD_FKEYS 130
#define CASE_SET_MOD_FKEYS0 131
#define CASE_HIDE_POINTER 132
#define CASE_SCS1A_STATE 133
#define CASE_SCS2A_STATE 134
#define CASE_SCS3A_STATE 135
#define CASE_CSI_SPACE_STATE 136
#define CASE_DECSCUSR 137
#define CASE_XTERM_SM_TITLE 138
#define CASE_XTERM_RM_TITLE 139
#define CASE_DECSMBV 140
#define CASE_DECSWBV 141
#define CASE_DECLL 142
#define CASE_DECRQM 143
#define CASE_RQM 144
#define CASE_CSI_DEC_DOLLAR_STATE 145
#define CASE_SL 146
#define CASE_SR 147
#define CASE_DECDC 148
#define CASE_DECIC 149
#define CASE_DECBI 150
#define CASE_DECFI 151
#define CASE_DECRQCRA 152
#define CASE_HPR 153
#define CASE_VPR 154
#define CASE_ANSI_SC 155
#define CASE_ANSI_RC 156
#define CASE_ESC_COLON 157
#define CASE_SCS_PERCENT 158
#define CASE_GSETS_PERCENT 159
#define CASE_GRAPHICS_ATTRIBUTES 160
#define CASE_DECRQPSR 161
#define CASE_DECSCPP 162
#define CASE_DECSNLS 163
#define CASE_CSI_HASH_STATE 164
#define CASE_XTERM_PUSH_SGR 165
#define CASE_XTERM_REPORT_SGR 166
#define CASE_XTERM_POP_SGR 167
#define CASE_XTERM_CHECKSUM 168
#define CASE_GSETS3 169
#define CASE_GSETS5 170
#define CASE_SCS_DQUOTE 171
#define CASE_GSETS_DQUOTE 172
#define CASE_SCS_AMPRSND 173
#define CASE_GSETS_AMPRSND 174
#define CASE_REPORT_VERSION 175
#define CASE_XTERM_PUSH_COLORS 176
#define CASE_XTERM_REPORT_COLORS 177
#define CASE_XTERM_POP_COLORS 178

View File

@ -0,0 +1,163 @@
! $XTermId: XTerm-col.ad,v 1.22 2009/08/15 15:56:29 tom Exp $
! -----------------------------------------------------------------------------
! this file is part of xterm
!
! Copyright 2002-2006,2009 by Thomas E. Dickey
!
! All Rights Reserved
!
! Permission is hereby granted, free of charge, to any person obtaining a
! copy of this software and associated documentation files (the
! "Software"), to deal in the Software without restriction, including
! without limitation the rights to use, copy, modify, merge, publish,
! distribute, sublicense, and/or sell copies of the Software, and to
! permit persons to whom the Software is furnished to do so, subject to
! the following conditions:
!
! The above copyright notice and this permission notice shall be included
! in all copies or substantial portions of the Software.
!
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
! IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
!
! Except as contained in this notice, the name(s) of the above copyright
! holders shall not be used in advertising or otherwise to promote the
! sale, use or other dealings in this Software without prior written
! authorization.
! -----------------------------------------------------------------------------
#include "XTerm"
*VT100*colorMode: on
*VT100*boldColors: on
*VT100*dynamicColors: on
! Uncomment this for "white" text on a dark background.
!*VT100*foreground: gray90
!*VT100*background: black
! - OR -
! Uncomment this for black text on a "white" background.
!*VT100*foreground: black
!*VT100*background: gray90
! - OR -
! leave the foreground/background colors alone (at the mercy of your desktop
! designer).
! Color the popup/pulldown menu border to match the text widget foreground.
!*SimpleMenu*borderColor: gray15
! Uncomment this to use color for underline attribute
!*VT100*colorULMode: on
*VT100*colorUL: yellow
!*VT100*italicULMode: on
! Uncomment this to disable underlining, e.g., if colorULMode is set.
!*VT100*underLine: off
! Uncomment this to use color for the bold attribute
!*VT100*colorBDMode: on
*VT100*colorBD: white
! Uncomment this to use the bold/underline colors in preference to other colors
!*VT100*colorAttrMode: on
! These are the 8 ANSI colors and their bright equivalents. Depending on
! other resource settings, xterm may use the bright colors when displaying
! bold text (see the boldColors resource).
*VT100*color0: black
*VT100*color1: red3
*VT100*color2: green3
*VT100*color3: yellow3
*VT100*color4: blue2
*VT100*color5: magenta3
*VT100*color6: cyan3
*VT100*color7: gray90
*VT100*color8: gray50
*VT100*color9: red
*VT100*color10: green
*VT100*color11: yellow
*VT100*color12: rgb:5c/5c/ff
*VT100*color13: magenta
*VT100*color14: cyan
*VT100*color15: white
! Disclaimer: there are no standard colors used in terminal emulation.
!
! The choice for color4 and color12 is a tradeoff between contrast, depending
! on whether they are used for text or backgrounds. Note that either color4 or
! color12 would be used for text, while only color4 would be used for a
! background. These are treated specially, since the luminosity of blue is
! only about half that of red/green, and is typically not accounted for in the
! RGB scheme.
!
! Blue text on a black background should be readable.
! Blue backgrounds should not be "too" bright.
!
! Originally color4/color12 were set to the names blue3/blue
!*VT100*color4: blue3
!*VT100*color12: blue
!
! They are from rgb.txt respectively:
! 0 0 205 blue3
! 0 0 255 blue
! However, blue3 is not readable on a black background.
!
! Another choice was from the Debian settings:
!*VT100*color4: DodgerBlue1
!*VT100*color12: SteelBlue1
!
! From rgb.txt:
! 30 144 255 DodgerBlue1
! 99 184 255 SteelBlue1
!
! Some users object to this choice because the background (color4) is brighter
! than they are accustomed. Others point out that the different weights for
! the red/green components make it appear to be not really blue. Finally, it
! provides poor contrast against color13 and color14.
!
! The current choice uses equal weights for red/green (effectively adding a
! gray to the result). It is brighter than the original choice, and provides
! more contrast between color12 and color13, color14 than SteelBlue1 did.
! Contrast of color4 against black is slightly improved over the original.
!
! Some refinement is certainly possible (you are welcome to try) -TD
#if PLANES > 8
! Color the popup menus and the menubar to match:
*SimpleMenu*background: AntiqueWhite
*SimpleMenu*foreground: gray15
! Color the menubar to match:
*Form.menubar.background: AntiqueWhite
*Form.menubar*background: AntiqueWhite
*Form.menubar.foreground: gray15
*Form.menubar*foreground: gray15
*Form.background: AntiqueWhite
*form.background: AntiqueWhite
! The following two sections take advantage of new features in version 7
! of the Athena widget library. Comment them out if you have a shallow
! color depth.
!*SimpleMenu*backgroundPixmap: gradient:vertical?dimension=350&start=gray90&end=gray60
!*SimpleMenu*foreground: gray15
!*VT100.scrollbar.thumb: vlines2
!*VT100.scrollbar.width: 14
!*VT100.scrollbar.background: gray60
!*VT100.scrollbar.foreground: rgb:a/5/5
!*VT100.scrollbar.borderWidth: 0
!*VT100.scrollbar.displayList:\
!foreground gray90;\
!lines 1,-1,-1,-1,-1,1;\
!foreground gray60;\
!lines -1,0,0,0,0,-1
#endif

View File

@ -0,0 +1,261 @@
! $XTermId: XTerm.ad,v 1.102 2016/12/22 02:07:39 tom Exp $
! -----------------------------------------------------------------------------
! this file is part of xterm
!
! Copyright 1996-2011,2016 by Thomas E. Dickey
!
! All Rights Reserved
!
! Permission is hereby granted, free of charge, to any person obtaining a
! copy of this software and associated documentation files (the
! "Software"), to deal in the Software without restriction, including
! without limitation the rights to use, copy, modify, merge, publish,
! distribute, sublicense, and/or sell copies of the Software, and to
! permit persons to whom the Software is furnished to do so, subject to
! the following conditions:
!
! The above copyright notice and this permission notice shall be included
! in all copies or substantial portions of the Software.
!
! THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
! OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
! IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
!
! Except as contained in this notice, the name(s) of the above copyright
! holders shall not be used in advertising or otherwise to promote the
! sale, use or other dealings in this Software without prior written
! authorization.
! -----------------------------------------------------------------------------
*saveLines: 1024
*SimpleMenu*BackingStore: NotUseful
*SimpleMenu*menuLabel.font: -adobe-helvetica-bold-r-normal--*-120-*-*-*-*-iso8859-*
*SimpleMenu*menuLabel.vertSpace: 100
*SimpleMenu*HorizontalMargins: 16
*SimpleMenu*Sme.height: 16
*SimpleMenu*Cursor: left_ptr
*mainMenu.Label: Main Options
*mainMenu*toolbar*Label: Toolbar
*mainMenu*fullscreen*Label: Full Screen
*mainMenu*securekbd*Label: Secure Keyboard
*mainMenu*allowsends*Label: Allow SendEvents
*mainMenu*redraw*Label: Redraw Window
*mainMenu*logging*Label: Log to File
*mainMenu*print-immediate*Label: Print-All Immediately
*mainMenu*print-on-error*Label: Print-All on Error
*mainMenu*print*Label: Print Window
*mainMenu*print-redir*Label: Redirect to Printer
*mainMenu*dump-html*Label: XHTML Screen Dump
*mainMenu*dump-svg*Label: SVG Screen Dump
*mainMenu*8-bit control*Label: 8-Bit Controls
*mainMenu*backarrow key*Label: Backarrow Key (BS/DEL)
*mainMenu*num-lock*Label: Alt/NumLock Modifiers
*mainMenu*alt-esc*Label: Alt Sends Escape
*mainMenu*meta-esc*Label: Meta Sends Escape
*mainMenu*delete-is-del*Label: Delete is DEL
*mainMenu*oldFunctionKeys*Label: Old Function-Keys
*mainMenu*sunFunctionKeys*Label: Sun Function-Keys
*mainMenu*sunKeyboard*Label: VT220 Keyboard
*mainMenu*hpFunctionKeys*Label: HP Function-Keys
*mainMenu*scoFunctionKeys*Label: SCO Function-Keys
*mainMenu*tcapFunctionKeys*Label: Termcap Function-Keys
*mainMenu*suspend*Label: Send STOP Signal
*mainMenu*continue*Label: Send CONT Signal
*mainMenu*interrupt*Label: Send INT Signal
*mainMenu*hangup*Label: Send HUP Signal
*mainMenu*terminate*Label: Send TERM Signal
*mainMenu*kill*Label: Send KILL Signal
*mainMenu*quit*Label: Quit
*vtMenu.Label: VT Options
*vtMenu*scrollbar*Label: Enable Scrollbar
*vtMenu*jumpscroll*Label: Enable Jump Scroll
*vtMenu*reversevideo*Label: Enable Reverse Video
*vtMenu*autowrap*Label: Enable Auto Wraparound
*vtMenu*reversewrap*Label: Enable Reverse Wraparound
*vtMenu*autolinefeed*Label: Enable Auto Linefeed
*vtMenu*appcursor*Label: Enable Application Cursor Keys
*vtMenu*appkeypad*Label: Enable Application Keypad
*vtMenu*scrollkey*Label: Scroll to Bottom on Key Press
*vtMenu*scrollttyoutput*Label: Scroll to Bottom on Tty Output
*vtMenu*allow132*Label: Allow 80/132 Column Switching
*vtMenu*keepSelection*Label: Keep Selection
*vtMenu*selectToClipboard*Label: Select to Clipboard
*vtMenu*cursesemul*Label: Enable Curses Emulation
*vtMenu*visualbell*Label: Enable Visual Bell
*vtMenu*bellIsUrgent*Label: Enable Bell Urgency
*vtMenu*poponbell*Label: Enable Pop on Bell
*vtMenu*cursorblink*Label: Enable Blinking Cursor
*vtMenu*titeInhibit*Label: Enable Alternate Screen Switching
*vtMenu*activeicon*Label: Enable Active Icon
*vtMenu*softreset*Label: Do Soft Reset
*vtMenu*hardreset*Label: Do Full Reset
*vtMenu*clearsavedlines*Label: Reset and Clear Saved Lines
*vtMenu*tekshow*Label: Show Tek Window
*vtMenu*tekmode*Label: Switch to Tek Mode
*vtMenu*vthide*Label: Hide VT Window
*vtMenu*altscreen*Label: Show Alternate Screen
*vtMenu*sixelScrolling*Label: Sixel Scrolling
*vtMenu*privateColorRegisters*Label: Private Color Registers
*fontMenu.Label: VT Fonts
*fontMenu*fontdefault*Label: Default
*fontMenu*font1*Label: Unreadable
*VT100.font1: nil2
*IconFont: nil2
*fontMenu*font2*Label: Tiny
*VT100.font2: 5x7
*fontMenu*font3*Label: Small
*VT100.font3: 6x10
*fontMenu*font4*Label: Medium
*VT100.font4: 7x13
*fontMenu*font5*Label: Large
*VT100.font5: 9x15
*fontMenu*font6*Label: Huge
*VT100.font6: 10x20
*fontMenu*fontescape*Label: Escape Sequence
*fontMenu*fontsel*Label: Selection
!fontescape and fontsel overridden by application
*fontMenu*allow-bold-fonts*Label: Bold Fonts
*fontMenu*font-linedrawing*Label: Line-Drawing Characters
*fontMenu*font-doublesize*Label: Doublesized Characters
*fontMenu*font-loadable*Label: VT220 Soft Fonts
*fontMenu*font-packed*Label: Packed Font
*fontMenu*render-font*Label: TrueType Fonts
*fontMenu*utf8-mode*Label: UTF-8 Encoding
*fontMenu*utf8-fonts*Label: UTF-8 Fonts
*fontMenu*utf8-title*Label: UTF-8 Titles
*fontMenu*allow-color-ops*Label: Allow Color Ops
*fontMenu*allow-font-ops*Label: Allow Font Ops
*fontMenu*allow-mouse-ops*Label: Allow Mouse Ops
*fontMenu*allow-tcap-ops*Label: Allow Termcap Ops
*fontMenu*allow-title-ops*Label: Allow Title Ops
*fontMenu*allow-window-ops*Label: Allow Window Ops
*VT100.utf8Fonts.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
*VT100.utf8Fonts.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
*VT100.utf8Fonts.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
*VT100.utf8Fonts.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
*VT100.utf8Fonts.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
*VT100.utf8Fonts.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
*tekMenu.Label: Tek Options
*tekMenu*tektextlarge*Label: Large Characters
*tekMenu*tektext2*Label: #2 Size Characters
*tekMenu*tektext3*Label: #3 Size Characters
*tekMenu*tektextsmall*Label: Small Characters
*tekMenu*tekpage*Label: PAGE
*tekMenu*tekreset*Label: RESET
*tekMenu*tekcopy*Label: COPY
*tekMenu*vtshow*Label: Show VT Window
*tekMenu*vtmode*Label: Switch to VT Mode
*tekMenu*tekhide*Label: Hide Tek Window
*tek4014*fontLarge: 9x15
*tek4014*font2: 8x13
*tek4014*font3: 6x13
*tek4014*fontSmall: 6x10
! If xterm is built with a toolbar, the widget hierarchy looks like this,
! showing widget name / class names. The complete menu hierarchy is built
! at startup because it is needed to make the layout work for the menubar:
!
! xterm/XTerm
! form/Form
! menubar/Box
! mainMenuButton/MenuButton
! mainMenu/SimpleMenu
! menuLabel/SmeBSB
! toolbar/SmeBSB
! ...
! vtMenu/SimpleMenu
! menuLabel/SmeBSB
! scrollbar/SmeBSB
! ...
! fontMenu/SimpleMenu
! menuLabel/SmeBSB
! fontdefault/SmeBSB
! ...
! tekMenu/SimpleMenu
! menuLabel/SmeBSB
! fontdefault/SmeBSB
! ...
! vt100/VT100
! tektronix/TopLevelShell
! shellext/VendorShellExt
! tek4014/Tek4014
!
! If built without a toolbar, the widget hierarchy is simpler, because there
! is no form, and the popup menu widgets are created only when they are first
! used.
!
! xterm/XTerm
! shellext/VendorShellExt
! mainMenu/SimpleMenu
! menuLabel/SmeBSB
! ...
! ...
! vt100/VT100
! tektronix/TopLevelShell
! shellext/VendorShellExt
! tek4014/Tek4014
!
! A more complete list of the widget/class names can be obtained using editres
! to dump a file. Some widget names are not available until the corresponding
! menu has been created.
! These resources reduce space around the menubar, by eliminating padding in
! the enclosing form (Thickness) and the border of the Box which represents
! the menubar widget.
*form.Thickness: 0
*menubar.borderWidth: 0
! If we wanted to eliminate the border of the popup menus, we could do this
! instead, since they are children of the menubar:
!*menubar*borderWidth: 0
! Eliminate the border of the buttons in the menubar, so the only line around
! the text is for the highlighted button:
*MenuButton*borderWidth: 0
! Set a border for the menus to make them simpler to distinguish against the
! vt100 widget:
*SimpleMenu*borderWidth: 2
! xterm can switch at runtime between bitmap (default) and TrueType fonts.
! The "faceSize" resource controls the size of the latter. However, it was
! originally given with a size that makes the two types of fonts different
! sizes. Uncomment this line to use the same size as "fixed".
!*faceSize: 8
! Here is a pattern that is useful for double-clicking on a URL:
!*charClass: 33:48,35:48,37-38:48,43-47:48,58:48,61:48,63-64:48,95:48,126:48
!
! Alternatively,
!*on2Clicks: regex [[:alpha:]]+://([[:alnum:]!#+,./=?@_~-]|(%[[:xdigit:]][[:xdigit:]]))+
! VT100s and similar terminals recognize escape sequences and control
! characters to which they reply to the host with other escape sequences,
! to provide information. The "resize" program uses this feature.
!
! In addition, xterm recognizes several escape sequences which can be used to
! set fonts, window properties, return settings via escape sequences. Some
! find these useful; others are concerned with the possibility of unexpected
! inputs.
!
! All of these features can be enabled or disabled via menus.
!
! Depending on your environment, you may wish to disable those by default by
! uncommenting one or more of the resource settings below:
!*allowFontOps: false
!*allowTcapOps: false
!*allowTitleOps: false
!*allowWindowOps: false

5159
ports/xterm/xterm-359/aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,271 @@
#if OPT_BUILTIN_XPMS
#include <icons/mini.xterm.xpms>
#include <icons/filled-xterm.xpms>
#include <icons/xterm.xpms>
#include <icons/xterm-color.xpms>
#else
/* XPM */
static const char * mini_xterm_48x48_xpm[] = {
"48 48 213 2",
" c None",
". c #FF0000",
"+ c #FF5300",
"@ c #FF5E00",
"# c #FF4800",
"$ c #FF4200",
"% c #FF4000",
"& c #FF4B00",
"* c #FF5200",
"= c #FF5400",
"- c #FF3500",
"; c #FF5100",
"> c #FF5C00",
", c #FF3000",
"' c #FF4500",
") c #FF2000",
"! c #FF0300",
"~ c #FF1600",
"{ c #FF5D00",
"] c #FF3800",
"^ c #FF0200",
"/ c #FF0900",
"( c #FF2B00",
"_ c #FF3300",
": c #FF1A00",
"< c #FF1300",
"[ c #FF1200",
"} c #FF5700",
"| c #4577BA",
"1 c #874E78",
"2 c #887577",
"3 c #887E77",
"4 c #887977",
"5 c #875078",
"6 c #566CA9",
"7 c #5E70A1",
"8 c #884E77",
"9 c #887677",
"0 c #7C5B83",
"a c #795686",
"b c #008DFE",
"c c #0012F3",
"d c #000BF2",
"e c #008FFE",
"f c #006CFA",
"g c #0000F1",
"h c #0001F1",
"i c #0020F4",
"j c #0040F6",
"k c #0959F0",
"l c #1158E8",
"m c #1159E8",
"n c #0058F9",
"o c #001DF4",
"p c #0023F4",
"q c #005BFA",
"r c #0060FA",
"s c #0E58EB",
"t c #0651F3",
"u c #0033F5",
"v c #000EF2",
"w c #006EFA",
"x c #0092FF",
"y c #001FF4",
"z c #000FF2",
"A c #0C51EC",
"B c #326AC9",
"C c #7A6583",
"D c #CA6234",
"E c #FC5F03",
"F c #FF5800",
"G c #FF0800",
"H c #F4060B",
"I c #007CFB",
"J c #0013F3",
"K c #007EFB",
"L c #FF1800",
"M c #F3590C",
"N c #AB6152",
"O c #4F4EAD",
"P c #175CE4",
"Q c #0036F5",
"R c #0022F4",
"S c #0095FD",
"T c #0084FD",
"U c #0004F1",
"V c #0051F8",
"W c #345AC7",
"X c #E61519",
"Y c #FF5900",
"Z c #FF4600",
"` c #FF0100",
" . c #446EB9",
".. c #0034F6",
"+. c #0032F5",
"@. c #FF2200",
"#. c #006FFA",
"$. c #002DF5",
"%. c #0086FD",
"&. c #0046F7",
"*. c #0015F3",
"=. c #0076FC",
"-. c #FF0400",
";. c #FF2300",
">. c #FF2900",
",. c #9E3E61",
"'. c #0039F6",
"). c #FF2A00",
"!. c #FF4300",
"~. c #0071FB",
"{. c #005EF9",
"]. c #004DF7",
"^. c #008CFE",
"/. c #0008F2",
"(. c #001DF3",
"_. c #007DFB",
":. c #FF4100",
"<. c #FF5B00",
"[. c #A3425C",
"}. c #994C66",
"|. c #FF1100",
"1. c #0072FB",
"2. c #000AF2",
"3. c #006EFC",
"4. c #0017F3",
"5. c #007FFB",
"6. c #FF0600",
"7. c #FF5600",
"8. c #A56A5A",
"9. c #A53B5A",
"0. c #FF4F00",
"a. c #0076FB",
"b. c #0076FA",
"c. c #0093FF",
"d. c #007DFC",
"e. c #FF1C00",
"f. c #A5765A",
"g. c #A55D5A",
"h. c #006FFB",
"i. c #002CF5",
"j. c #008AFD",
"k. c #006BF9",
"l. c #FF3A00",
"m. c #FF5000",
"n. c #007BFB",
"o. c #008BFD",
"p. c #A5755A",
"q. c #9A5565",
"r. c #A43A5B",
"s. c #FF4D00",
"t. c #80507F",
"u. c #FF0F00",
"v. c #7A5485",
"w. c #A5555A",
"x. c #FF0A00",
"y. c #A53D5A",
"z. c #A4515B",
"A. c #A5685A",
"B. c #A5735A",
"C. c #FF0700",
"D. c #FF2E00",
"E. c #FF1500",
"F. c #A3705C",
"G. c #FF0500",
"H. c #9A4965",
"I. c #FF0E00",
"J. c #FF3B00",
"K. c #FF2D00",
"L. c #A13C5E",
"M. c #FF4C00",
"N. c #62649D",
"O. c #FF0B00",
"P. c #FF4700",
"Q. c #FF1D00",
"R. c #A56D5A",
"S. c #FF2C00",
"T. c #A4465B",
"U. c #FF1400",
"V. c #A03E61",
"W. c #FF3100",
"X. c #FF1B00",
"Y. c #FF1000",
"Z. c #0029F5",
"`. c #0027F4",
" + c #4571BA",
".+ c #FF3900",
"++ c #FF3200",
"@+ c #008EFD",
"#+ c #0019F3",
"$+ c #0090FD",
"%+ c #FF0D00",
"&+ c #FF1E00",
"*+ c #FF4E00",
"=+ c #0088FC",
"-+ c #0087FC",
";+ c #FF1900",
">+ c #0036F6",
",+ c #FF2100",
"'+ c #0073FB",
")+ c #0062FA",
"!+ c #001AF3",
"~+ c #2463D8",
"{+ c #3E58BE",
"]+ c #2A7FD3",
"^+ c #807B7F",
"/+ c #008EFB",
"(+ c #006AFA",
"_+ c #004CF8",
":+ c #717B8D",
"<+ c #EE0B11",
"[+ c #F73E08",
"}+ c #FF1F00",
"|+ c #FF5500",
" ",
" ",
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ . . # @ @ @ @ @ @ @ @ @ @ @ @ $ . ",
" . % & & & * @ @ @ @ @ = & & & & & . . - & & & & & ; @ > & & & & , . ",
" . . . . . . * @ @ @ @ ; . . . . . . . . . . . . . ' @ ) . . . . . . ",
" ! ~ { @ @ @ @ ] ^ / ( @ $ . ",
" ^ _ @ @ @ @ @ : ! < [ > } ^ . ",
" | 1 2 3 3 3 3 4 5 6 7 8 9 3 0 a ",
" b c d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d c e ",
" f g g g g g g h i j k l m n o g g g g g g p q r s t u v g g g g g g g w ",
" x y g g g g z A B C D E F G H I c g g g g J K L / M N O P Q h g g g g R S ",
" T g g g U V W X Y @ @ @ @ Z ` ...g g g g +. ` ' @ @.. #.$.g g g g %. ",
" &.g g *.=. -.;.@ @ @ @ @ >.,.'.g g g g '. / ).@ !.. ~.{.U g g ]. ",
" ^./.g (._. ` :.@ @ @ @ <.[.'.g g g g '.}.|.<.} ^ . 1.2.g d e ",
" 3.g 4.5. 6.7.@ @ @ @ 8.'.g g g g '.9.0.@ [ . a./.g b. ",
" c.R /.d. -.e.@ @ @ @ f.'.g g g g '.g.@ - . h.h i. ",
" j.k.%. ^ l.@ @ @ f.'.g g g g '.f.m.` n.f o. ",
" ! * @ @ f.'.g g g g '.p.G . ",
" ! ~ { @ f.'.g g g g '.q.. ",
" ^ _ @ f.'.g g g g '.r. ",
" ^ s.f.'.g g g g '.t. ",
" ^ u.p.'.g g g g '.v. ",
" ^ w.'.g g g g '.r. ",
" x.y.'.g g g g '.z.^ ",
" ` A.'.g g g g '.B.x.. ",
" C.D.f.'.g g g g '.f.# ` ",
" < E.{ F.'.g g g g '.f.@ ( ^ ",
" : G.; @ H.'.g g g g '.f.@ <.I.^ ",
" -.J.@ K.L.'.g g g g '.f.@ @ s.` ",
" I.) @ M.. N.'.g g g g '.f.@ @ @ _ ^ ",
" L O.F <.6.. '.g g g g '.f.@ @ @ { E.! ",
" ^ P.@ Q.. '.g g g g '.R.@ @ @ @ * ! ",
" G S.@ % . '.g g g g '.T.{ @ @ @ @ l.^ ",
" < U.> 7.^ ..g g g g u V.W.@ @ @ @ @ e.! ",
" X.-.m.@ Y.. Z.g g g g `. +` M.@ @ @ @ 7.6. ",
" -..+@ ++. @+#+g g g g #+$+^ %+<.@ @ @ @ :.` ",
" I.&+@ *+. =+h g g g g h -+ ! >.@ @ @ @ @ ;.^ ",
" ;+x.} > C.. >+g g g g g g >+ ` Z @ @ @ @ Y / . ",
" ` ' @ ,+. %.1.'+)+!+g g g g g g g g #+)+~+{+]+^+@ @ @ P.` ",
" / ).@ !.. /+(+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+(+:+@ @ @ @ ).^ ",
" I.[ > F . . <+[+@ @ @ @ <.I.` ",
" . . . . . . 0.@ }+. . . . . . . . . . . . . |+@ @ @ @ s.. . . . . . ",
" O.@ @ @ @ @ @ @ @ @ @ @ @ @ ^ ! $ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ $ . ",
" . & & & & & & & & & & & & & . . , & & & & & & & & & & & & & & & , . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
" ",
" "};
#endif

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,888 @@
/* $XTermId: cachedGCs.c,v 1.79 2019/11/13 23:07:08 tom Exp $ */
/*
* Copyright 2007-2018,2019 by Thomas E. Dickey
*
* All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name(s) of the above copyright
* holders shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization.
*/
#include <data.h>
#include <xstrings.h>
#include <fontutils.h>
#include <X11/Xmu/Drawing.h>
/*
* hide (or eliminate) calls to
* XCreateGC()
* XFreeGC()
* XGetGCValues()
* XSetBackground()
* XSetFont()
* XSetForeground()
* XtGetGC()
* XtReleaseGC()
* by associating an integer with each GC, maintaining a cache which
* reflects frequency of use rather than most recent usage.
*
* FIXME: XTermFonts should hold gc, font, fs.
*/
typedef struct {
GC gc;
unsigned used;
unsigned cset;
XTermFonts *font;
Pixel tile;
Pixel fg;
Pixel bg;
} CgsCacheData;
#define DEPTH 8
#define ITEM() (int) (me->data - me->list)
#define LIST(item) me->list[item]
#define LINK(item) me->data = (me->list + (item))
#define THIS(field) me->data->field
#define NEXT(field) me->next.field
#define HaveFont(font) (Boolean) ((font) != 0 && (font)->fs != 0)
#define GC_CSet GCFunction
typedef struct {
CgsCacheData list[DEPTH];
CgsCacheData *data; /* points to current list[] entry */
XtGCMask mask; /* changes since the last getCgsGC() */
CgsCacheData next; /* updated values, apply in getCgsGC() */
} CgsCache;
#if OPT_TRACE
#define CASE(name) case gc##name: result = #name; break
static const char *
traceCgsEnum(CgsEnum value)
{
const char *result = "?";
switch (value) {
CASE(Norm);
CASE(Bold);
CASE(NormReverse);
CASE(BoldReverse);
CASE(Border);
CASE(Filler);
#if OPT_BOX_CHARS
CASE(Line);
CASE(Dots);
#endif
#if OPT_DEC_CHRSET
CASE(CNorm);
CASE(CBold);
#endif
#if OPT_WIDE_CHARS
CASE(Wide);
CASE(WBold);
CASE(WideReverse);
CASE(WBoldReverse);
#endif
CASE(VTcursNormal);
CASE(VTcursFilled);
CASE(VTcursReverse);
CASE(VTcursOutline);
#if OPT_TEK4014
CASE(TKcurs);
#endif
CASE(MAX);
}
return result;
}
#undef CASE
static const char *
traceVTwin(XtermWidget xw, VTwin *value)
{
const char *result = "?";
if (value == 0)
result = "null";
else if (value == &(TScreenOf(xw)->fullVwin))
result = "fullVwin";
#ifndef NO_ACTIVE_ICON
else if (value == &(TScreenOf(xw)->iconVwin))
result = "iconVwin";
#endif
return result;
}
#if OPT_TRACE > 1
static String
traceCSet(unsigned cset)
{
static char result[80];
switch (cset) {
case CSET_SWL:
strcpy(result, "SWL");
break;
case CSET_DHL_TOP:
strcpy(result, "DHL_TOP");
break;
case CSET_DHL_BOT:
strcpy(result, "DHL_BOT");
break;
case CSET_DWL:
strcpy(result, "DWL");
break;
default:
sprintf(result, "%#x", cset);
break;
}
return result;
}
static String
traceFont(XTermFonts * font)
{
static char result[80];
if (HaveFont(font)) {
XFontStruct *fs = font->fs;
sprintf(result, "%p(%dx%d %d %#lx)",
fs,
fs->max_bounds.width,
fs->max_bounds.ascent + fs->max_bounds.descent,
fs->max_bounds.descent,
(unsigned long) (fs->fid));
} else {
strcpy(result, "null");
}
return result;
}
static String
tracePixel(XtermWidget xw, Pixel value)
{
#define CASE(name) { name, #name }
static struct {
TermColors code;
String name;
} t_colors[] = {
CASE(TEXT_FG),
CASE(TEXT_BG),
CASE(TEXT_CURSOR),
CASE(MOUSE_FG),
CASE(MOUSE_BG),
#if OPT_TEK4014
CASE(TEK_FG),
CASE(TEK_BG),
#endif
#if OPT_HIGHLIGHT_COLOR
CASE(HIGHLIGHT_BG),
CASE(HIGHLIGHT_FG),
#endif
#if OPT_TEK4014
CASE(TEK_CURSOR),
#endif
};
TScreen *screen = TScreenOf(xw);
String result = 0;
int n;
for (n = 0; n < NCOLORS; ++n) {
if (value == T_COLOR(screen, t_colors[n].code)) {
result = t_colors[n].name;
break;
}
}
if (result == 0) {
for (n = 0; n < MAXCOLORS; ++n) {
#if OPT_COLOR_RES
if (screen->Acolors[n].mode > 0
&& value == screen->Acolors[n].value) {
result = screen->Acolors[n].resource;
break;
}
#else
if (value == screen->Acolors[n]) {
char temp[80];
sprintf(temp, "Acolors[%d]", n);
result = x_strdup(temp);
break;
}
#endif
}
}
if (result == 0) {
char temp[80];
sprintf(temp, "%#lx", value);
result = x_strdup(temp);
}
return result;
}
#undef CASE
#endif /* OPT_TRACE > 1 */
#endif /* OPT_TRACE */
static CgsCache *
allocCache(void **cache_pointer)
{
if (*cache_pointer == 0) {
*cache_pointer = TypeCallocN(CgsCache, gcMAX);
TRACE(("allocCache %p\n", *cache_pointer));
}
return *((CgsCache **) cache_pointer);
}
#define ALLOC_CACHE(p) ((*(p) == 0) ? allocCache(p) : *(p))
static int
dataIndex(CgsCache * me)
{
return ITEM();
}
static void
relinkData(CgsCache * me, int item)
{
LINK(item);
}
/*
* Returns the appropriate cache pointer.
*/
static CgsCache *
myCache(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId)
{
CgsCache *result = 0;
if ((int) cgsId >= 0 && cgsId < gcMAX) {
#ifdef NO_ACTIVE_ICON
(void) xw;
(void) cgsWin;
#else
if (cgsWin == &(TScreenOf(xw)->iconVwin))
result = ALLOC_CACHE(&(TScreenOf(xw)->icon_cgs_cache));
else
#endif
result = ALLOC_CACHE(&(TScreenOf(xw)->main_cgs_cache));
result += cgsId;
if (result->data == 0) {
result->data = result->list;
}
}
return result;
}
static Display *
myDisplay(XtermWidget xw)
{
return TScreenOf(xw)->display;
}
static Drawable
myDrawable(XtermWidget xw, VTwin *cgsWin)
{
Drawable drawable = 0;
if (cgsWin != 0 && cgsWin->window != 0)
drawable = cgsWin->window;
if (drawable == 0)
drawable = RootWindowOfScreen(XtScreen(xw));
return drawable;
}
static GC
newCache(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId, CgsCache * me)
{
XGCValues xgcv;
XtGCMask mask;
THIS(font) = NEXT(font);
THIS(cset) = NEXT(cset);
THIS(fg) = NEXT(fg);
THIS(bg) = NEXT(bg);
memset(&xgcv, 0, sizeof(xgcv));
xgcv.font = NEXT(font)->fs->fid;
mask = (GCForeground | GCBackground | GCFont);
switch (cgsId) {
case gcFiller:
case gcBorder:
mask &= (XtGCMask) ~ GCFont;
/* FALLTHRU */
case gcNorm:
case gcBold:
case gcNormReverse:
case gcBoldReverse:
#if OPT_WIDE_CHARS
case gcWide:
case gcWBold:
case gcWideReverse:
case gcWBoldReverse:
#endif
mask |= (GCGraphicsExposures | GCFunction);
xgcv.graphics_exposures = True; /* default */
xgcv.function = GXcopy;
break;
#if OPT_BOX_CHARS
case gcLine:
mask |= (GCGraphicsExposures | GCFunction);
xgcv.graphics_exposures = True; /* default */
xgcv.function = GXcopy;
break;
case gcDots:
xgcv.fill_style = FillTiled;
xgcv.tile =
XmuCreateStippledPixmap(XtScreen((Widget) xw),
THIS(fg),
THIS(bg),
xw->core.depth);
THIS(tile) = xgcv.tile;
mask = (GCForeground | GCBackground);
mask |= (GCGraphicsExposures | GCFunction | GCTile | GCFillStyle);
xgcv.graphics_exposures = True; /* default */
xgcv.function = GXcopy;
break;
#endif
#if OPT_DEC_CHRSET
case gcCNorm:
case gcCBold:
break;
#endif
case gcVTcursNormal: /* FALLTHRU */
case gcVTcursFilled: /* FALLTHRU */
case gcVTcursReverse: /* FALLTHRU */
case gcVTcursOutline: /* FALLTHRU */
break;
#if OPT_TEK4014
case gcTKcurs: /* FALLTHRU */
/* FIXME */
#endif
case gcMAX: /* should not happen */
return 0;
}
xgcv.foreground = NEXT(fg);
xgcv.background = NEXT(bg);
THIS(gc) = XCreateGC(myDisplay(xw), myDrawable(xw, cgsWin), mask, &xgcv);
TRACE(("getCgsGC(%s) created gc %p(%d)\n",
traceCgsEnum(cgsId), (void *) THIS(gc), ITEM()));
THIS(used) = 0;
return THIS(gc);
}
#define SameFont(a, b) \
(Boolean) (HaveFont(a) \
&& HaveFont(b) \
&& (((a)->fs == (b)->fs) \
|| !memcmp((a)->fs, (b)->fs, sizeof(*((a)->fs)))))
#define SameColor(a,b) ((a) == (b))
#define SameCSet(a,b) ((a) == (b))
static GC
chgCache(XtermWidget xw, CgsEnum cgsId GCC_UNUSED, CgsCache * me, Bool both)
{
XGCValues xgcv;
XtGCMask mask = (GCForeground | GCBackground | GCFont);
memset(&xgcv, 0, sizeof(xgcv));
TRACE2(("chgCache(%s) old data fg=%s, bg=%s, font=%s cset %s\n",
traceCgsEnum(cgsId),
tracePixel(xw, THIS(fg)),
tracePixel(xw, THIS(bg)),
traceFont(THIS(font)),
traceCSet(THIS(cset))));
#if OPT_TRACE > 1
if (!SameFont(THIS(font), NEXT(font)))
TRACE2(("...chgCache new font=%s\n", traceFont(NEXT(font))));
if (!SameCSet(THIS(cset), NEXT(cset)))
TRACE2(("...chgCache new cset=%s\n", traceCSet(NEXT(cset))));
if (!SameColor(THIS(fg), NEXT(fg)))
TRACE2(("...chgCache new fg=%s\n", tracePixel(xw, NEXT(fg))));
if (!SameColor(THIS(bg), NEXT(bg)))
TRACE2(("...chgCache new bg=%s\n", tracePixel(xw, NEXT(bg))));
#endif
if (both) {
THIS(font) = NEXT(font);
THIS(cset) = NEXT(cset);
}
THIS(fg) = NEXT(fg);
THIS(bg) = NEXT(bg);
xgcv.font = THIS(font)->fs->fid;
xgcv.foreground = THIS(fg);
xgcv.background = THIS(bg);
XChangeGC(myDisplay(xw), THIS(gc), mask, &xgcv);
TRACE2(("...chgCache(%s) updated gc %p(%d)\n",
traceCgsEnum(cgsId), THIS(gc), ITEM()));
THIS(used) = 0;
return THIS(gc);
}
/*
* Use the "setCgsXXXX()" calls to initialize parameters for a new GC.
*/
void
setCgsFore(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId, Pixel fg)
{
CgsCache *me;
if ((me = myCache(xw, cgsWin, cgsId)) != 0) {
NEXT(fg) = fg;
me->mask |= GCForeground;
TRACE2(("setCgsFore(%s) %s\n",
traceCgsEnum(cgsId),
tracePixel(xw, NEXT(fg))));
}
}
void
setCgsBack(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId, Pixel bg)
{
CgsCache *me;
if ((me = myCache(xw, cgsWin, cgsId)) != 0) {
NEXT(bg) = bg;
me->mask |= GCBackground;
TRACE2(("setCgsBack(%s) %s\n",
traceCgsEnum(cgsId),
tracePixel(xw, NEXT(bg))));
}
}
#if OPT_DEC_CHRSET
void
setCgsCSet(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId, unsigned cset)
{
CgsCache *me;
if ((me = myCache(xw, cgsWin, cgsId)) != 0) {
NEXT(cset) = cset;
me->mask |= GC_CSet;
}
}
#else
#define setCgsCSet(xw, cgsWin, dstCgsId, cset) /* nothing */
#endif
void
setCgsFont2(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId, XTermFonts * font, unsigned which)
{
CgsCache *me;
if ((me = myCache(xw, cgsWin, cgsId)) != 0) {
TScreen *screen = TScreenOf(xw);
if (!HaveFont(font)) {
if (cgsId != gcNorm)
(void) getCgsGC(xw, cgsWin, gcNorm);
#ifndef NO_ACTIVE_ICON
if (cgsWin == &(TScreenOf(xw)->iconVwin))
font = getIconicFont(screen);
else
#endif
font = GetNormalFont(screen, which);
}
if (HaveFont(font) && okFont(font->fs)) {
TRACE2(("setCgsFont next: %s for %s slot %p, gc %p\n",
traceFont(font), traceCgsEnum(cgsId),
me, THIS(gc)));
TRACE2(("...next font was %s\n", traceFont(NEXT(font))));
NEXT(font) = font;
me->mask |= GCFont;
} else {
/* EMPTY */
TRACE2(("...NOT updated font for %s\n",
traceCgsEnum(cgsId)));
}
}
}
void
setCgsFont(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId, XTermFonts * font)
{
setCgsFont2(xw, cgsWin, cgsId, font, fNorm);
}
/*
* Discard all of the font information, e.g., we are resizing the font.
* Keep the GC's so we can simply change them rather than creating new ones.
*/
void
clrCgsFonts(XtermWidget xw, VTwin *cgsWin, XTermFonts * font)
{
if (HaveFont(font)) {
int j;
for_each_gc(j) {
CgsCache *me;
if ((me = myCache(xw, cgsWin, (CgsEnum) j)) != 0) {
int k;
for (k = 0; k < DEPTH; ++k) {
if (SameFont(LIST(k).font, font)) {
TRACE2(("clrCgsFonts %s gc %p(%d) %s\n",
traceCgsEnum((CgsEnum) j),
LIST(k).gc,
k,
traceFont(font)));
LIST(k).font = 0;
LIST(k).cset = 0;
}
}
if (SameFont(NEXT(font), font)) {
TRACE2(("clrCgsFonts %s next %s\n",
traceCgsEnum((CgsEnum) j),
traceFont(font)));
NEXT(font) = 0;
NEXT(cset) = 0;
me->mask &= (unsigned) ~(GCFont | GC_CSet);
}
}
}
}
}
/*
* Return a GC associated with the given id, allocating if needed.
*/
GC
getCgsGC(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId)
{
CgsCache *me;
GC result = 0;
if ((me = myCache(xw, cgsWin, cgsId)) != 0) {
TRACE2(("getCgsGC(%s, %s)\n",
traceVTwin(xw, cgsWin), traceCgsEnum(cgsId)));
if (me->mask != 0) {
int j;
unsigned used = 0;
/* fill in the unchanged fields */
if (!(me->mask & GC_CSet))
NEXT(cset) = 0; /* OPT_DEC_CHRSET */
if (!(me->mask & GCFont))
NEXT(font) = THIS(font);
if (!(me->mask & GCForeground))
NEXT(fg) = THIS(fg);
if (!(me->mask & GCBackground))
NEXT(bg) = THIS(bg);
if (NEXT(font) == 0) {
setCgsFont(xw, cgsWin, cgsId, 0);
}
TRACE2(("...Cgs new data fg=%s, bg=%s, font=%s cset %s\n",
tracePixel(xw, NEXT(fg)),
tracePixel(xw, NEXT(bg)),
traceFont(NEXT(font)),
traceCSet(NEXT(cset))));
/* try to find the given data in an already-created GC */
for (j = 0; j < DEPTH; ++j) {
if (LIST(j).gc != 0
&& SameFont(LIST(j).font, NEXT(font))
&& SameCSet(LIST(j).cset, NEXT(cset))
&& SameColor(LIST(j).fg, NEXT(fg))
&& SameColor(LIST(j).bg, NEXT(bg))) {
LINK(j);
result = THIS(gc);
TRACE2(("getCgsGC existing %p(%d)\n", result, ITEM()));
break;
}
}
if (result == 0) {
/* try to find an empty slot, to create a new GC */
used = 0;
for (j = 0; j < DEPTH; ++j) {
if (LIST(j).gc == 0) {
LINK(j);
result = newCache(xw, cgsWin, cgsId, me);
break;
}
if (used < LIST(j).used)
used = LIST(j).used;
}
}
if (result == 0) {
int k;
/* if none were empty, pick the least-used slot, to modify */
for (j = 0, k = -1; j < DEPTH; ++j) {
if (used >= LIST(j).used) {
used = LIST(j).used;
k = j;
}
}
if (k >= 0) {
LINK(k);
TRACE2(("...getCgsGC least-used(%d) was %d\n", k, THIS(used)));
result = chgCache(xw, cgsId, me, True);
}
}
me->next = *(me->data);
} else {
result = THIS(gc);
}
me->mask = 0;
THIS(used) += 1;
TRACE2(("...getCgsGC(%s, %s) gc %p(%d), used %d\n",
traceVTwin(xw, cgsWin),
traceCgsEnum(cgsId), result, ITEM(), THIS(used)));
}
return result;
}
/*
* Return the font for the given GC.
*/
CgsEnum
getCgsId(XtermWidget xw, VTwin *cgsWin, GC gc)
{
int n;
CgsEnum result = gcNorm;
for_each_gc(n) {
CgsCache *me;
if ((me = myCache(xw, cgsWin, (CgsEnum) n)) != 0) {
if (THIS(gc) == gc) {
result = (CgsEnum) n;
break;
}
}
}
return result;
}
/*
* Return the font for the given GC.
*/
XTermFonts *
getCgsFont(XtermWidget xw, VTwin *cgsWin, GC gc)
{
int n;
XTermFonts *result = 0;
for_each_gc(n) {
CgsCache *me;
if ((me = myCache(xw, cgsWin, (CgsEnum) n)) != 0) {
if (THIS(gc) == gc) {
result = THIS(font);
break;
}
}
}
return result;
}
/*
* Return the foreground color for the given GC.
*/
Pixel
getCgsFore(XtermWidget xw, VTwin *cgsWin, GC gc)
{
int n;
Pixel result = 0;
for_each_gc(n) {
CgsCache *me;
if ((me = myCache(xw, cgsWin, (CgsEnum) n)) != 0) {
if (THIS(gc) == gc) {
result = THIS(fg);
break;
}
}
}
return result;
}
/*
* Return the background color for the given GC.
*/
Pixel
getCgsBack(XtermWidget xw, VTwin *cgsWin, GC gc)
{
int n;
Pixel result = 0;
for_each_gc(n) {
CgsCache *me;
if ((me = myCache(xw, cgsWin, (CgsEnum) n)) != 0) {
if (THIS(gc) == gc) {
result = THIS(bg);
break;
}
}
}
return result;
}
/*
* Copy the parameters (except GC of course) from one cache record to another.
*/
void
copyCgs(XtermWidget xw, VTwin *cgsWin, CgsEnum dstCgsId, CgsEnum srcCgsId)
{
if (dstCgsId != srcCgsId) {
CgsCache *me;
if ((me = myCache(xw, cgsWin, srcCgsId)) != 0) {
TRACE(("copyCgs from %s to %s\n",
traceCgsEnum(srcCgsId),
traceCgsEnum(dstCgsId)));
TRACE2(("copyCgs from %s (me %p, fg %s, bg %s, cset %s) to %s {{\n",
traceCgsEnum(srcCgsId),
me,
tracePixel(xw, THIS(fg)),
tracePixel(xw, THIS(bg)),
traceCSet(THIS(cset)),
traceCgsEnum(dstCgsId)));
setCgsCSet(xw, cgsWin, dstCgsId, THIS(cset));
setCgsFore(xw, cgsWin, dstCgsId, THIS(fg));
setCgsBack(xw, cgsWin, dstCgsId, THIS(bg));
setCgsFont(xw, cgsWin, dstCgsId, THIS(font));
TRACE2(("...copyCgs }}\n"));
}
}
}
/*
* Interchange colors in the cache, e.g., for reverse-video.
*/
void
redoCgs(XtermWidget xw, Pixel fg, Pixel bg, CgsEnum cgsId)
{
VTwin *cgsWin = WhichVWin(TScreenOf(xw));
CgsCache *me = myCache(xw, cgsWin, cgsId);
if (me != 0) {
CgsCacheData *save_data = me->data;
int n;
for (n = 0; n < DEPTH; ++n) {
if (LIST(n).gc != 0 && HaveFont(LIST(n).font)) {
LINK(n);
if (LIST(n).fg == fg
&& LIST(n).bg == bg) {
setCgsFore(xw, cgsWin, cgsId, bg);
setCgsBack(xw, cgsWin, cgsId, fg);
} else if (LIST(n).fg == bg
&& LIST(n).bg == fg) {
setCgsFore(xw, cgsWin, cgsId, fg);
setCgsBack(xw, cgsWin, cgsId, bg);
} else {
continue;
}
(void) chgCache(xw, cgsId, me, False);
}
}
me->data = save_data;
}
}
/*
* Swap the cache records, e.g., when doing reverse-video.
*/
void
swapCgs(XtermWidget xw, VTwin *cgsWin, CgsEnum dstCgsId, CgsEnum srcCgsId)
{
if (dstCgsId != srcCgsId) {
CgsCache *src;
if ((src = myCache(xw, cgsWin, srcCgsId)) != 0) {
CgsCache *dst;
if ((dst = myCache(xw, cgsWin, dstCgsId)) != 0) {
CgsCache tmp;
int srcIndex = dataIndex(src);
int dstIndex = dataIndex(dst);
EXCHANGE(*src, *dst, tmp);
relinkData(src, dstIndex);
relinkData(dst, srcIndex);
}
}
}
}
/*
* Free any GC associated with the given id.
*/
GC
freeCgs(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId)
{
CgsCache *me;
if ((me = myCache(xw, cgsWin, cgsId)) != 0) {
int j;
for (j = 0; j < DEPTH; ++j) {
if (LIST(j).gc != 0) {
TRACE(("freeCgs(%s, %s) gc %p(%d)\n",
traceVTwin(xw, cgsWin),
traceCgsEnum(cgsId), (void *) LIST(j).gc, j));
clrCgsFonts(xw, cgsWin, LIST(j).font);
#if OPT_BOX_CHARS
if (cgsId == gcDots) {
XmuReleaseStippledPixmap(XtScreen((Widget) xw), LIST(j).tile);
}
#endif
XFreeGC(TScreenOf(xw)->display, LIST(j).gc);
memset(&LIST(j), 0, sizeof(LIST(j)));
}
LINK(0);
}
}
return 0;
}
#ifdef NO_LEAKS
void
noleaks_cachedCgs(XtermWidget xw)
{
#ifndef NO_ACTIVE_ICON
free(TScreenOf(xw)->icon_cgs_cache);
#endif
free(TScreenOf(xw)->main_cgs_cache);
}
#endif

Binary file not shown.

View File

@ -0,0 +1,514 @@
/* $XTermId: charclass.c,v 1.41 2020/07/06 20:00:12 tom Exp $ */
/*
* Copyright 2002-2017,2020 by Thomas E. Dickey
*
* All Rights Reserved
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name(s) of the above copyright
* holders shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization.
*
*----------------------------------------------------------------------------
* Compact and efficient reimplementation of the
* xterm character class mechanism for large character sets
*
* Markus Kuhn -- mkuhn@acm.org -- 2000-07-03
*
* xterm allows users to select entire words with a double-click on the left
* mouse button. Opinions might differ on what type of characters are part of
* separate words, therefore xterm allows users to configure a class code for
* each 8-bit character. Words are maximum length sequences of neighboring
* characters with identical class code. Extending this mechanism to Unicode
* naively would create an at least 2^16 entries (128 kB) long class code
* table.
*
* Instead, we transform the character class table into a list of intervals,
* that will be accessed via a linear search. Changes made to the table by the
* user will be appended. A special class code IDENT (default) marks
* characters who have their code number as the class code.
*
* We could alternatively use a sorted table of non-overlapping intervals that
* can be accessed via binary search, but merging in new intervals is
* significantly more hassle and not worth the effort here.
*/
#include <xterm.h>
#include <charclass.h>
#if OPT_WIDE_CHARS
#ifdef TEST_DRIVER
#include <ctype.h>
#include <wchar.h>
#include <wctype.h>
#if OPT_TRACE
#define Trace if (opt_v) printf
#endif
#undef OPT_REPORT_CCLASS
#define OPT_REPORT_CCLASS 1
#endif /* TEST_DRIVER */
static struct classentry {
int cclass;
int first;
int last;
} *classtab;
typedef enum {
IDENT = -1,
OTHER = 0,
CNTRL = 1,
ALNUM = 48,
BLANK = 32,
U_CJK = 0x4e00,
U_SUP = 0x2070,
U_SUB = 0x2080,
U_HIR = 0x3040,
U_KAT = 0x30a0,
U_HAN = 0xac00
} Classes;
#ifdef TEST_DRIVER
static int opt_all;
static int opt_check;
static int opt_quiet;
static int opt_v;
#endif
void
init_classtab(void)
{
const int size = 50;
TRACE(("init_classtab {{\n"));
classtab = TypeMallocN(struct classentry, (unsigned) size);
if (!classtab)
abort();
classtab[0].cclass = size;
classtab[0].first = 1;
classtab[0].last = 0;
/* old xterm default classes */
SetCharacterClassRange(0, 0, BLANK);
SetCharacterClassRange(1, 31, CNTRL);
SetCharacterClassRange('\t', '\t', BLANK);
SetCharacterClassRange('0', '9', ALNUM);
SetCharacterClassRange('A', 'Z', ALNUM);
SetCharacterClassRange('_', '_', ALNUM);
SetCharacterClassRange('a', 'z', ALNUM);
SetCharacterClassRange(127, 159, CNTRL);
SetCharacterClassRange(160, 191, IDENT);
SetCharacterClassRange(192, 255, ALNUM);
SetCharacterClassRange(215, 215, IDENT);
SetCharacterClassRange(247, 247, IDENT);
/* added Unicode classes */
SetCharacterClassRange(0x0100, 0xffdf, ALNUM); /* mostly characters */
SetCharacterClassRange(0x037e, 0x037e, IDENT); /* Greek question mark */
SetCharacterClassRange(0x0387, 0x0387, IDENT); /* Greek ano teleia */
SetCharacterClassRange(0x055a, 0x055f, IDENT); /* Armenian punctuation */
SetCharacterClassRange(0x0589, 0x0589, IDENT); /* Armenian full stop */
SetCharacterClassRange(0x0700, 0x070d, IDENT); /* Syriac punctuation */
SetCharacterClassRange(0x104a, 0x104f, IDENT); /* Myanmar punctuation */
SetCharacterClassRange(0x10fb, 0x10fb, IDENT); /* Georgian punctuation */
SetCharacterClassRange(0x1361, 0x1368, IDENT); /* Ethiopic punctuation */
SetCharacterClassRange(0x166d, 0x166e, IDENT); /* Canadian Syl. punctuation */
SetCharacterClassRange(0x17d4, 0x17dc, IDENT); /* Khmer punctuation */
SetCharacterClassRange(0x1800, 0x180a, IDENT); /* Mongolian punctuation */
SetCharacterClassRange(0x2000, 0x200a, BLANK); /* spaces */
SetCharacterClassRange(0x200b, 0x27ff, IDENT); /* punctuation and symbols */
SetCharacterClassRange(0x2070, 0x207f, U_SUP); /* superscript */
SetCharacterClassRange(0x2080, 0x208f, U_SUB); /* subscript */
SetCharacterClassRange(0x3000, 0x3000, BLANK); /* ideographic space */
SetCharacterClassRange(0x3001, 0x3020, IDENT); /* ideographic punctuation */
SetCharacterClassRange(0x3040, 0x309f, U_HIR); /* Hiragana */
SetCharacterClassRange(0x30a0, 0x30ff, U_KAT); /* Katakana */
SetCharacterClassRange(0x3300, 0x9fff, U_CJK); /* CJK Ideographs */
SetCharacterClassRange(0xac00, 0xd7a3, U_HAN); /* Hangul Syllables */
SetCharacterClassRange(0xf900, 0xfaff, U_CJK); /* CJK Ideographs */
SetCharacterClassRange(0xfe30, 0xfe6b, IDENT); /* punctuation forms */
SetCharacterClassRange(0xff00, 0xff0f, IDENT); /* half/fullwidth ASCII */
SetCharacterClassRange(0xff1a, 0xff20, IDENT); /* half/fullwidth ASCII */
SetCharacterClassRange(0xff3b, 0xff40, IDENT); /* half/fullwidth ASCII */
SetCharacterClassRange(0xff5b, 0xff64, IDENT); /* half/fullwidth ASCII */
TRACE(("}} init_classtab\n"));
return;
}
int
CharacterClass(int c)
{
int i, cclass = IDENT;
for (i = classtab[0].first; i <= classtab[0].last; i++)
if (classtab[i].first <= c && classtab[i].last >= c)
cclass = classtab[i].cclass;
if (cclass < 0)
cclass = c;
return cclass;
}
#if OPT_REPORT_CCLASS
#define charFormat(code) ((code) > 255 ? "0x%04X" : "%d")
static const char *
class_name(Classes code)
{
static char buffer[80];
const char *result = "?";
switch (code) {
case ALNUM:
result = "ALNUM";
break;
case BLANK:
result = "BLANK";
break;
case CNTRL:
result = "CNTRL";
break;
case OTHER:
result = "OTHER";
break;
case IDENT:
result = "IDENT";
break;
case U_SUP:
result = "superscript";
break;
case U_SUB:
result = "subscript";
break;
case U_CJK:
result = "CJK Ideographs";
break;
case U_HIR:
result = "Hiragana";
break;
case U_KAT:
result = "Katakana";
break;
case U_HAN:
result = "Hangul Syllables";
break;
default:
sprintf(buffer, charFormat(code), code);
result = buffer;
break;
}
return result;
}
/*
* Special convention for classtab[0]:
* - classtab[0].cclass is the allocated number of entries in classtab
* - classtab[0].first = 1 (first used entry in classtab)
* - classtab[0].last is the last used entry in classtab
*/
int
SetCharacterClassRange(int low, int high, int value)
{
TRACE(("...SetCharacterClassRange (U+%04X .. U+%04X) = %s\n",
low, high, class_name(value)));
if (high < low)
return -1; /* nothing to do */
/* make sure we have at least one free entry left at table end */
if (classtab[0].last > classtab[0].cclass - 2) {
classtab[0].cclass += 5 + classtab[0].cclass / 4;
classtab = TypeRealloc(struct classentry,
(unsigned) classtab[0].cclass, classtab);
if (!classtab)
abort();
}
/* simply append new interval to end of interval array */
classtab[0].last++;
classtab[classtab[0].last].first = low;
classtab[classtab[0].last].last = high;
classtab[classtab[0].last].cclass = value;
return 0;
}
void
report_wide_char_class(void)
{
static const Classes known_classes[] =
{IDENT, ALNUM, CNTRL, BLANK, U_SUP, U_SUB, U_HIR, U_KAT, U_CJK, U_HAN};
int i;
printf("\n");
printf("Unicode charClass data uses the last match\n");
printf("from these overlapping intervals of character codes:\n");
for (i = classtab[0].first; i <= classtab[0].last; i++) {
printf("\tU+%04X .. U+%04X %s\n",
classtab[i].first,
classtab[i].last,
class_name(classtab[i].cclass));
}
printf("\n");
printf("These class-names are used internally (the first character code in a class):\n");
for (i = 0; i < (int) XtNumber(known_classes); ++i) {
printf("\t");
printf(charFormat(known_classes[i]), known_classes[i]);
printf(" = %s\n", class_name(known_classes[i]));
}
}
#endif /* OPT_REPORT_CCLASS */
#ifdef NO_LEAKS
void
noleaks_CharacterClass(void)
{
if (classtab != 0) {
free(classtab);
classtab = 0;
}
}
#endif
#endif /* OPT_WIDE_CHARS */
#ifdef TEST_DRIVER
#if OPT_WIDE_CHARS
static void
usage(void)
{
static const char *msg[] =
{
"Usage: test_charclass [options] [c1[-c1b] [c2-[c2b] [...]]]",
"",
"Options:",
" -a show all data",
" -s show only summary",
" -v verbose"
};
size_t n;
for (n = 0; n < sizeof(msg) / sizeof(msg[0]); ++n) {
fprintf(stderr, "%s\n", msg[n]);
}
exit(EXIT_FAILURE);
}
static int
expected_class(int wch)
{
int result = wch;
wint_t ch = (wint_t) wch;
if (ch == '\0' || ch == '\t') {
result = BLANK;
} else if (iswcntrl(ch)) {
result = CNTRL;
} else if (iswspace(ch)) {
result = BLANK;
} else if (ch < 127) {
if (isalnum(ch) || ch == '_') {
result = ALNUM;
}
} else if (ch == 170 || ch == 181 || ch == 186) {
;
} else if (iswalnum(ch)) {
result = ALNUM;
}
return result;
}
static int
show_cclass_range(int lo, int hi)
{
int cclass = CharacterClass(lo);
int ident = (cclass == lo);
int more = 0;
if (ident) {
int ch;
for (ch = lo + 1; ch <= hi; ch++) {
if (CharacterClass(ch) != ch) {
ident = 0;
break;
}
}
if (ident && (hi < 255)) {
ch = hi + 1;
if (CharacterClass(ch) == ch) {
if (ch >= 255 || CharacterClass(ch + 1) != ch) {
more = 1;
}
}
}
}
if (!more) {
if (lo == hi) {
printf("\t%d", lo);
} else {
printf("\t%d-%d", lo, hi);
}
if (!ident)
printf(":%d", cclass);
if (hi < 255)
printf(", \\");
printf("\n");
}
return !more;
}
static void
report_resource(int first, int last)
{
int class_p;
int ch;
int dh;
class_p = CharacterClass(dh = first);
for (ch = first; ch < last; ++ch) {
int class_c = CharacterClass(ch);
if (class_c != class_p) {
if (show_cclass_range(dh, ch - 1)) {
dh = ch;
class_p = class_c;
}
}
}
if (dh < last - 1) {
show_cclass_range(dh, last - 1);
}
}
static int
decode_one(const char *source, char **target)
{
int result = -1;
long check;
int radix = 0;
if ((source[0] == 'u' || source[0] == 'U') && source[1] == '+') {
source += 2;
radix = 16;
}
check = strtol(source, target, radix);
if (*target != NULL && *target != source)
result = (int) check;
return result;
}
static int
decode_range(const char *source, int *lo, int *hi)
{
int result = 0;
char *after1;
char *after2;
if ((*lo = decode_one(source, &after1)) >= 0) {
after1 += strspn(after1, ":-.\t ");
if ((*hi = decode_one(after1, &after2)) < 0) {
*hi = *lo;
}
result = 1;
}
return result;
}
static void
do_range(const char *source)
{
int lo, hi;
if (decode_range(source, &lo, &hi)) {
if (opt_all) {
while (lo <= hi) {
int other_rc = CharacterClass(lo);
if (!opt_quiet)
printf("U+%04X\t%s\n", lo, class_name(other_rc));
++lo;
}
} else if (opt_check) {
while (lo <= hi) {
int expect = expected_class(lo);
int actual = CharacterClass(lo);
if (actual != expect)
printf("U+%04X\t%s ->%s\n", lo,
class_name(expect),
class_name(actual));
++lo;
}
} else {
printf("\"charClass\" resource for [%d..%d]:\n", lo, hi);
report_resource(lo, hi + 1);
}
}
}
#endif /* OPT_WIDE_CHARS */
/*
* TODO: add option to show do_range in hex
*/
int
main(int argc, char **argv ENVP_ARG)
{
#if OPT_WIDE_CHARS
int ch;
#endif
(void) argc;
(void) argv;
#if OPT_WIDE_CHARS
setlocale(LC_ALL, "");
while ((ch = getopt(argc, argv, "acsv")) != -1) {
switch (ch) {
case 'a':
opt_all = 1;
break;
case 'c':
opt_check = 1;
break;
case 's':
opt_quiet = 1;
break;
case 'v':
opt_v = 1;
break;
default:
usage();
}
}
init_classtab();
if (optind >= argc) {
do_range("0-255");
} else {
while (optind < argc) {
do_range(argv[optind++]);
}
}
report_wide_char_class();
#else
printf("wide-character support is not configured\n");
#endif /* OPT_WIDE_CHARS */
return 0;
}
#endif /* TEST_DRIVER */

View File

@ -0,0 +1,23 @@
/* $XTermId: charclass.h,v 1.8 2020/01/18 18:29:41 tom Exp $ */
/* $XFree86: xc/programs/xterm/charclass.h,v 1.3 2006/02/13 01:14:58 dickey Exp $ */
#ifndef CHARCLASS_H
#define CHARCLASS_H
extern void init_classtab(void);
/* initialise the table. needs calling before either of the
others. */
extern int SetCharacterClassRange(int low, int high, int value);
extern int CharacterClass(int c);
#if OPT_REPORT_CCLASS
extern void report_wide_char_class(void);
#endif
#ifdef NO_LEAKS
extern void noleaks_CharacterClass(void);
#endif
#endif

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

1687
ports/xterm/xterm-359/config.guess vendored Executable file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1851
ports/xterm/xterm-359/config.sub vendored Executable file

File diff suppressed because it is too large Load Diff

24825
ports/xterm/xterm-359/configure vendored Executable file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More