Remove xterm stuff that accidentally slipped through.
@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
export CFLAGS="$CFLAGS -static"
|
|
||||||
|
|
||||||
./configure \
|
|
||||||
--prefix=/usr
|
|
||||||
|
|
||||||
make
|
|
||||||
make DESTDIR="$1" install
|
|
@ -1 +0,0 @@
|
|||||||
b3a7a6221c3dc916085f0d205abf6b8e1ba443d4dd965118da364a1dc1cb3a26 diffutils-3.7.tar.xz
|
|
@ -1 +0,0 @@
|
|||||||
https://ftp.gnu.org/gnu/diffutils/diffutils-3.7.tar.xz
|
|
@ -1 +0,0 @@
|
|||||||
3.7 1
|
|
@ -15,6 +15,7 @@ patch -p1 < posix-ptys.patch
|
|||||||
--enable-exec-xterm \
|
--enable-exec-xterm \
|
||||||
--enable-sixel-graphics \
|
--enable-sixel-graphics \
|
||||||
--enable-regis-graphics \
|
--enable-regis-graphics \
|
||||||
|
--with-neXtaw \
|
||||||
--enable-toolbar
|
--enable-toolbar
|
||||||
|
|
||||||
make
|
make
|
||||||
|
@ -1,250 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 */
|
|
@ -1,93 +0,0 @@
|
|||||||
#! /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
|
|
@ -1,82 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 */
|
|
@ -1,96 +0,0 @@
|
|||||||
#!/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
|
|
@ -1,48 +0,0 @@
|
|||||||
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 $
|
|
@ -1,75 +0,0 @@
|
|||||||
--- $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
|
|
||||||
-------------------------------------------------------------------------------
|
|
@ -1,875 +0,0 @@
|
|||||||
-- $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
|
|
@ -1,338 +0,0 @@
|
|||||||
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()
|
|
@ -1,50 +0,0 @@
|
|||||||
! $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
|
|
@ -1,228 +0,0 @@
|
|||||||
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
|
|
@ -1,634 +0,0 @@
|
|||||||
## $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.
|
|
@ -1,634 +0,0 @@
|
|||||||
## $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.
|
|
@ -1,27 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
|||||||
-- $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.
|
|
@ -1,199 +0,0 @@
|
|||||||
-- $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.
|
|
@ -1,74 +0,0 @@
|
|||||||
-- $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
|
|
@ -1,241 +0,0 @@
|
|||||||
-- $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
|
|
@ -1,74 +0,0 @@
|
|||||||
# $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
|
|
@ -1,55 +0,0 @@
|
|||||||
/* $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 */
|
|
@ -1,35 +0,0 @@
|
|||||||
/* 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
|
|
@ -1,42 +0,0 @@
|
|||||||
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.
|
|
@ -1,76 +0,0 @@
|
|||||||
! $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
|
|
@ -1,219 +0,0 @@
|
|||||||
# $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
|
|
@ -1,95 +0,0 @@
|
|||||||
/* $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 */
|
|
@ -1,180 +0,0 @@
|
|||||||
/* 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
|
|
@ -1,163 +0,0 @@
|
|||||||
! $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
|
|
@ -1,261 +0,0 @@
|
|||||||
! $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
@ -1,271 +0,0 @@
|
|||||||
#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
|
|
@ -1,888 +0,0 @@
|
|||||||
/* $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
|
|
@ -1,514 +0,0 @@
|
|||||||
/* $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 */
|
|
@ -1,23 +0,0 @@
|
|||||||
/* $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
|
|
1687
ports/xterm/xterm-359/config.guess
vendored
1851
ports/xterm/xterm-359/config.sub
vendored
24825
ports/xterm/xterm-359/configure
vendored
@ -1,468 +0,0 @@
|
|||||||
/* $XTermId: cursor.c,v 1.77 2019/07/12 01:11:59 tom Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2002-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.
|
|
||||||
*
|
|
||||||
* Copyright 1987 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* cursor.c */
|
|
||||||
|
|
||||||
#include <xterm.h>
|
|
||||||
#include <data.h>
|
|
||||||
#include <menu.h>
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Moves the cursor to the specified position, checking for bounds.
|
|
||||||
* (this includes scrolling regions)
|
|
||||||
* The origin is considered to be 0, 0 for this procedure.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CursorSet(TScreen *screen, int row, int col, unsigned flags)
|
|
||||||
{
|
|
||||||
int use_row = row;
|
|
||||||
int use_col = col;
|
|
||||||
int max_col = screen->max_col;
|
|
||||||
int max_row = screen->max_row;
|
|
||||||
|
|
||||||
if (flags & ORIGIN) {
|
|
||||||
use_col += screen->lft_marg;
|
|
||||||
max_col = screen->rgt_marg;
|
|
||||||
}
|
|
||||||
use_col = (use_col < 0 ? 0 : use_col);
|
|
||||||
set_cur_col(screen, (use_col <= max_col ? use_col : max_col));
|
|
||||||
|
|
||||||
if (flags & ORIGIN) {
|
|
||||||
use_row += screen->top_marg;
|
|
||||||
max_row = screen->bot_marg;
|
|
||||||
}
|
|
||||||
use_row = (use_row < 0 ? 0 : use_row);
|
|
||||||
set_cur_row(screen, (use_row <= max_row ? use_row : max_row));
|
|
||||||
|
|
||||||
ResetWrap(screen);
|
|
||||||
|
|
||||||
TRACE(("CursorSet(%d,%d) margins V[%d..%d] H[%d..%d] -> %d,%d %s\n",
|
|
||||||
row, col,
|
|
||||||
screen->top_marg,
|
|
||||||
screen->bot_marg,
|
|
||||||
screen->lft_marg,
|
|
||||||
screen->rgt_marg,
|
|
||||||
screen->cur_row,
|
|
||||||
screen->cur_col,
|
|
||||||
((flags & ORIGIN) ? "origin" : "normal")));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* moves the cursor left n, no wrap around
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CursorBack(XtermWidget xw, int n)
|
|
||||||
{
|
|
||||||
#define WRAP_MASK (REVERSEWRAP | WRAPAROUND)
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
int rev;
|
|
||||||
int left = ScrnLeftMargin(xw);
|
|
||||||
int before = screen->cur_col;
|
|
||||||
|
|
||||||
if ((rev = ((xw->flags & WRAP_MASK) == WRAP_MASK)) != 0
|
|
||||||
&& screen->do_wrap) {
|
|
||||||
n--;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if the cursor is already before the left-margin, we have to let it go */
|
|
||||||
if (before < left)
|
|
||||||
left = 0;
|
|
||||||
|
|
||||||
if ((screen->cur_col -= n) < left) {
|
|
||||||
if (rev) {
|
|
||||||
int in_row = ScrnRightMargin(xw) - left + 1;
|
|
||||||
int offset = (in_row * screen->cur_row) + screen->cur_col - left;
|
|
||||||
if ((before == left) &&
|
|
||||||
ScrnIsColInMargins(screen, before) &&
|
|
||||||
ScrnIsRowInMargins(screen, screen->cur_row) &&
|
|
||||||
screen->cur_row == screen->top_marg) {
|
|
||||||
offset = (screen->bot_marg + 1) * in_row - 1;
|
|
||||||
} else if (offset < 0) {
|
|
||||||
int length = in_row * MaxRows(screen);
|
|
||||||
offset += ((-offset) / length + 1) * length;
|
|
||||||
}
|
|
||||||
set_cur_row(screen, (offset / in_row));
|
|
||||||
set_cur_col(screen, (offset % in_row) + left);
|
|
||||||
do_xevents(xw);
|
|
||||||
} else {
|
|
||||||
set_cur_col(screen, left);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ResetWrap(screen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* moves the cursor forward n, no wraparound
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CursorForward(XtermWidget xw, int n)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
#if OPT_DEC_CHRSET
|
|
||||||
LineData *ld = getLineData(screen, screen->cur_row);
|
|
||||||
#endif
|
|
||||||
int next = screen->cur_col + n;
|
|
||||||
int max;
|
|
||||||
|
|
||||||
if (IsLeftRightMode(xw)) {
|
|
||||||
max = screen->rgt_marg;
|
|
||||||
if (screen->cur_col > max)
|
|
||||||
max = screen->max_col;
|
|
||||||
} else {
|
|
||||||
max = LineMaxCol(screen, ld);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (next > max)
|
|
||||||
next = max;
|
|
||||||
|
|
||||||
set_cur_col(screen, next);
|
|
||||||
ResetWrap(screen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* moves the cursor down n, no scrolling.
|
|
||||||
* Won't pass bottom margin or bottom of screen.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CursorDown(TScreen *screen, int n)
|
|
||||||
{
|
|
||||||
int max;
|
|
||||||
int next = screen->cur_row + n;
|
|
||||||
|
|
||||||
max = (screen->cur_row > screen->bot_marg ?
|
|
||||||
screen->max_row : screen->bot_marg);
|
|
||||||
if (next > max)
|
|
||||||
next = max;
|
|
||||||
if (next > screen->max_row)
|
|
||||||
next = screen->max_row;
|
|
||||||
|
|
||||||
set_cur_row(screen, next);
|
|
||||||
ResetWrap(screen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* moves the cursor up n, no linestarving.
|
|
||||||
* Won't pass top margin or top of screen.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CursorUp(TScreen *screen, int n)
|
|
||||||
{
|
|
||||||
int min;
|
|
||||||
int next = screen->cur_row - n;
|
|
||||||
|
|
||||||
min = ((screen->cur_row < screen->top_marg)
|
|
||||||
? 0
|
|
||||||
: screen->top_marg);
|
|
||||||
if (next < min)
|
|
||||||
next = min;
|
|
||||||
if (next < 0)
|
|
||||||
next = 0;
|
|
||||||
|
|
||||||
set_cur_row(screen, next);
|
|
||||||
ResetWrap(screen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Moves cursor down amount lines, scrolls if necessary.
|
|
||||||
* Won't leave scrolling region. No carriage return.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
xtermIndex(XtermWidget xw, int amount)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* indexing when below scrolling region is cursor down.
|
|
||||||
* if cursor high enough, no scrolling necessary.
|
|
||||||
*/
|
|
||||||
if (screen->cur_row > screen->bot_marg
|
|
||||||
|| screen->cur_row + amount <= screen->bot_marg
|
|
||||||
|| (IsLeftRightMode(xw)
|
|
||||||
&& !ScrnIsColInMargins(screen, screen->cur_col))) {
|
|
||||||
CursorDown(screen, amount);
|
|
||||||
} else {
|
|
||||||
int j;
|
|
||||||
CursorDown(screen, j = screen->bot_marg - screen->cur_row);
|
|
||||||
xtermScroll(xw, amount - j);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Moves cursor up amount lines, reverse scrolls if necessary.
|
|
||||||
* Won't leave scrolling region. No carriage return.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
RevIndex(XtermWidget xw, int amount)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* reverse indexing when above scrolling region is cursor up.
|
|
||||||
* if cursor low enough, no reverse indexing needed
|
|
||||||
*/
|
|
||||||
if (screen->cur_row < screen->top_marg
|
|
||||||
|| screen->cur_row - amount >= screen->top_marg
|
|
||||||
|| (IsLeftRightMode(xw)
|
|
||||||
&& !ScrnIsColInMargins(screen, screen->cur_col))) {
|
|
||||||
CursorUp(screen, amount);
|
|
||||||
} else {
|
|
||||||
RevScroll(xw, amount - (screen->cur_row - screen->top_marg));
|
|
||||||
CursorUp(screen, screen->cur_row - screen->top_marg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Moves Cursor To First Column In Line
|
|
||||||
* (Note: xterm doesn't implement SLH, SLL which would affect use of this)
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CarriageReturn(XtermWidget xw)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
int left = ScrnLeftMargin(xw);
|
|
||||||
int col;
|
|
||||||
|
|
||||||
if (xw->flags & ORIGIN) {
|
|
||||||
col = left;
|
|
||||||
} else if (screen->cur_col >= left) {
|
|
||||||
col = left;
|
|
||||||
} else {
|
|
||||||
/*
|
|
||||||
* If origin-mode is not active, it is possible to use cursor
|
|
||||||
* addressing outside the margins. In that case we will go to the
|
|
||||||
* first column rather than following the margin.
|
|
||||||
*/
|
|
||||||
col = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
set_cur_col(screen, col);
|
|
||||||
ResetWrap(screen);
|
|
||||||
do_xevents(xw);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* When resizing the window, if we're showing the alternate screen, we still
|
|
||||||
* have to adjust the saved cursor from the normal screen to account for
|
|
||||||
* shifting of the saved-line region in/out of the viewable window.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
AdjustSavedCursor(XtermWidget xw, int adjust)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
|
|
||||||
if (screen->whichBuf) {
|
|
||||||
SavedCursor *sc = &screen->sc[0];
|
|
||||||
|
|
||||||
if (adjust > 0) {
|
|
||||||
TRACE(("AdjustSavedCursor %d -> %d\n", sc->row, sc->row - adjust));
|
|
||||||
sc->row += adjust;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Save Cursor and Attributes
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CursorSave(XtermWidget xw)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
SavedCursor *sc = &screen->sc[screen->whichBuf];
|
|
||||||
|
|
||||||
sc->saved = True;
|
|
||||||
sc->row = screen->cur_row;
|
|
||||||
sc->col = screen->cur_col;
|
|
||||||
sc->flags = xw->flags;
|
|
||||||
sc->curgl = screen->curgl;
|
|
||||||
sc->curgr = screen->curgr;
|
|
||||||
sc->wrap_flag = screen->do_wrap;
|
|
||||||
#if OPT_ISO_COLORS
|
|
||||||
sc->cur_foreground = xw->cur_foreground;
|
|
||||||
sc->cur_background = xw->cur_background;
|
|
||||||
sc->sgr_foreground = xw->sgr_foreground;
|
|
||||||
sc->sgr_38_xcolors = xw->sgr_38_xcolors;
|
|
||||||
#endif
|
|
||||||
saveCharsets(screen, sc->gsets);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We save/restore all visible attributes, plus wrapping, origin mode, and the
|
|
||||||
* selective erase attribute.
|
|
||||||
*/
|
|
||||||
#define DECSC_FLAGS (ATTRIBUTES|ORIGIN|PROTECTED)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Restore Cursor and Attributes
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CursorRestore(XtermWidget xw)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
SavedCursor *sc = &screen->sc[screen->whichBuf];
|
|
||||||
|
|
||||||
/* Restore the character sets, unless we never did a save-cursor op.
|
|
||||||
* In that case, we'll reset the character sets.
|
|
||||||
*/
|
|
||||||
if (sc->saved) {
|
|
||||||
restoreCharsets(screen, sc->gsets);
|
|
||||||
screen->curgl = sc->curgl;
|
|
||||||
screen->curgr = sc->curgr;
|
|
||||||
} else {
|
|
||||||
resetCharsets(screen);
|
|
||||||
}
|
|
||||||
|
|
||||||
UIntClr(xw->flags, DECSC_FLAGS);
|
|
||||||
UIntSet(xw->flags, sc->flags & DECSC_FLAGS);
|
|
||||||
if ((xw->flags & ORIGIN)) {
|
|
||||||
CursorSet(screen,
|
|
||||||
sc->row - screen->top_marg,
|
|
||||||
((xw->flags & LEFT_RIGHT)
|
|
||||||
? sc->col - screen->lft_marg
|
|
||||||
: sc->col),
|
|
||||||
xw->flags);
|
|
||||||
} else {
|
|
||||||
CursorSet(screen, sc->row, sc->col, xw->flags);
|
|
||||||
}
|
|
||||||
screen->do_wrap = sc->wrap_flag; /* after CursorSet/ResetWrap */
|
|
||||||
|
|
||||||
#if OPT_ISO_COLORS
|
|
||||||
xw->sgr_foreground = sc->sgr_foreground;
|
|
||||||
xw->sgr_38_xcolors = sc->sgr_38_xcolors;
|
|
||||||
SGR_Foreground(xw, (xw->flags & FG_COLOR) ? sc->cur_foreground : -1);
|
|
||||||
SGR_Background(xw, (xw->flags & BG_COLOR) ? sc->cur_background : -1);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Move the cursor to the first column of the n-th next line.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CursorNextLine(XtermWidget xw, int count)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
|
|
||||||
CursorDown(screen, count < 1 ? 1 : count);
|
|
||||||
CarriageReturn(xw);
|
|
||||||
do_xevents(xw);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Move the cursor to the first column of the n-th previous line.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
CursorPrevLine(XtermWidget xw, int count)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
|
|
||||||
CursorUp(screen, count < 1 ? 1 : count);
|
|
||||||
CarriageReturn(xw);
|
|
||||||
do_xevents(xw);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return col/row values which can be passed to CursorSet() preserving the
|
|
||||||
* current col/row, e.g., accounting for DECOM.
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
CursorCol(XtermWidget xw)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
int result = screen->cur_col;
|
|
||||||
if (xw->flags & ORIGIN) {
|
|
||||||
result -= ScrnLeftMargin(xw);
|
|
||||||
if (result < 0)
|
|
||||||
result = 0;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
CursorRow(XtermWidget xw)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
int result = screen->cur_row;
|
|
||||||
if (xw->flags & ORIGIN) {
|
|
||||||
result -= screen->top_marg;
|
|
||||||
if (result < 0)
|
|
||||||
result = 0;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if OPT_TRACE
|
|
||||||
int
|
|
||||||
set_cur_row(TScreen *screen, int value)
|
|
||||||
{
|
|
||||||
TRACE(("set_cur_row %d vs %d\n", value, screen ? screen->max_row : -1));
|
|
||||||
|
|
||||||
assert(screen != 0);
|
|
||||||
assert(value >= 0);
|
|
||||||
assert(value <= screen->max_row);
|
|
||||||
screen->cur_row = value;
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
set_cur_col(TScreen *screen, int value)
|
|
||||||
{
|
|
||||||
TRACE(("set_cur_col %d vs %d\n", value, screen ? screen->max_col : -1));
|
|
||||||
|
|
||||||
assert(screen != 0);
|
|
||||||
assert(value >= 0);
|
|
||||||
assert(value <= screen->max_col);
|
|
||||||
screen->cur_col = value;
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
#endif /* OPT_TRACE */
|
|
@ -1,128 +0,0 @@
|
|||||||
/* $XTermId: data.c,v 1.98 2017/12/18 23:38:05 tom Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2002-2016,2017 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 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <data.h>
|
|
||||||
|
|
||||||
Widget toplevel; /* top-most widget in xterm */
|
|
||||||
|
|
||||||
#if OPT_TEK4014
|
|
||||||
Char *Tpushb;
|
|
||||||
Char *Tpushback;
|
|
||||||
TekLink *tekRefreshList;
|
|
||||||
TekWidget tekWidget;
|
|
||||||
Widget tekshellwidget;
|
|
||||||
int T_lastx = -1;
|
|
||||||
int T_lasty = -1;
|
|
||||||
int Ttoggled = 0;
|
|
||||||
jmp_buf Tekend;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char *ProgramName;
|
|
||||||
|
|
||||||
Arg ourTopLevelShellArgs[] =
|
|
||||||
{
|
|
||||||
{XtNallowShellResize, (XtArgVal) True},
|
|
||||||
{XtNinput, (XtArgVal) True},
|
|
||||||
};
|
|
||||||
Cardinal number_ourTopLevelShellArgs = 2;
|
|
||||||
|
|
||||||
Atom wm_delete_window; /* for ICCCM delete window */
|
|
||||||
|
|
||||||
Boolean guard_keyboard_type = False;
|
|
||||||
XTERM_RESOURCE resource;
|
|
||||||
|
|
||||||
PtyData *VTbuffer;
|
|
||||||
|
|
||||||
jmp_buf VTend;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
int debug = 0; /* true causes error messages to be displayed */
|
|
||||||
#endif /* DEBUG */
|
|
||||||
|
|
||||||
XtAppContext app_con;
|
|
||||||
XtermWidget term; /* master data structure for client */
|
|
||||||
|
|
||||||
int hold_screen;
|
|
||||||
SIG_ATOMIC_T need_cleanup = False;
|
|
||||||
SIG_ATOMIC_T caught_intr = False;
|
|
||||||
|
|
||||||
int am_slave = -1; /* set to file-descriptor if we're a slave process */
|
|
||||||
int max_plus1;
|
|
||||||
PtySelect Select_mask;
|
|
||||||
PtySelect X_mask;
|
|
||||||
PtySelect pty_mask;
|
|
||||||
char *ptydev;
|
|
||||||
char *ttydev;
|
|
||||||
|
|
||||||
#if HANDLE_STRUCT_NOTIFY
|
|
||||||
int mapstate = -1;
|
|
||||||
#endif /* HANDLE_STRUCT_NOTIFY */
|
|
||||||
|
|
||||||
#ifdef HAVE_LIB_XCURSOR
|
|
||||||
char *xterm_cursor_theme;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_SESSION_MGT
|
|
||||||
int ice_fd = -1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_IGNORE_RC
|
|
||||||
int ignore_unused;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_DIRECT_COLOR
|
|
||||||
CellColor initCColor =
|
|
||||||
{0, 0};
|
|
||||||
#else
|
|
||||||
CellColor initCColor = 0;
|
|
||||||
#endif
|
|
@ -1,260 +0,0 @@
|
|||||||
/* $XTermId: data.h,v 1.138 2019/10/06 20:16:02 tom Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2002-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.
|
|
||||||
*
|
|
||||||
* Copyright 1987 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef included_data_h
|
|
||||||
#define included_data_h 1
|
|
||||||
|
|
||||||
#include <xterm.h>
|
|
||||||
|
|
||||||
extern Widget toplevel;
|
|
||||||
|
|
||||||
extern XtAppContext app_con;
|
|
||||||
|
|
||||||
#ifdef VMS
|
|
||||||
/* actually in vms.c */
|
|
||||||
extern int tt_width;
|
|
||||||
extern int tt_length;
|
|
||||||
extern int tt_changed;
|
|
||||||
extern int tt_pasting;
|
|
||||||
extern int tt_new_output;
|
|
||||||
#define VMS_TERM_BUFFER_SIZE 500
|
|
||||||
struct q_head {
|
|
||||||
int flink;
|
|
||||||
int blink;
|
|
||||||
};
|
|
||||||
extern struct q_head read_queue;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_TEK4014
|
|
||||||
extern Char *Tpushb;
|
|
||||||
extern Char *Tpushback;
|
|
||||||
extern TekLink *tekRefreshList;
|
|
||||||
extern TekWidget tekWidget;
|
|
||||||
extern Widget tekshellwidget;
|
|
||||||
extern int T_lastx;
|
|
||||||
extern int T_lasty;
|
|
||||||
extern int Ttoggled;
|
|
||||||
extern jmp_buf Tekend;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern char *ptydev;
|
|
||||||
extern char *ttydev;
|
|
||||||
extern int hold_screen;
|
|
||||||
|
|
||||||
extern PtyData *VTbuffer;
|
|
||||||
extern int am_slave;
|
|
||||||
extern int max_plus1;
|
|
||||||
extern jmp_buf VTend;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
extern int debug;
|
|
||||||
#endif /* DEBUG */
|
|
||||||
|
|
||||||
extern PtySelect Select_mask;
|
|
||||||
extern PtySelect X_mask;
|
|
||||||
extern PtySelect pty_mask;
|
|
||||||
|
|
||||||
extern int ice_fd;
|
|
||||||
|
|
||||||
extern XtermWidget term;
|
|
||||||
|
|
||||||
extern SIG_ATOMIC_T need_cleanup;
|
|
||||||
extern SIG_ATOMIC_T caught_intr;
|
|
||||||
|
|
||||||
#if defined(HAVE_XKB_BELL_EXT)
|
|
||||||
#include <X11/XKBlib.h> /* has the prototype */
|
|
||||||
#include <X11/extensions/XKBbells.h> /* has the XkbBI_xxx definitions */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef XkbBI_Info
|
|
||||||
#define XkbBI_Info 0
|
|
||||||
#define XkbBI_MinorError 1
|
|
||||||
#define XkbBI_MajorError 2
|
|
||||||
#define XkbBI_TerminalBell 9
|
|
||||||
#define XkbBI_MarginBell 10
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern char *ProgramName;
|
|
||||||
extern Arg ourTopLevelShellArgs[];
|
|
||||||
extern Cardinal number_ourTopLevelShellArgs;
|
|
||||||
extern Atom wm_delete_window;
|
|
||||||
|
|
||||||
extern CellColor initCColor;
|
|
||||||
|
|
||||||
#if HANDLE_STRUCT_NOTIFY
|
|
||||||
/* Flag icon name with "*** " on window output when iconified.
|
|
||||||
* I'd like to do something like reverse video, but I don't
|
|
||||||
* know how to tell this to window managers in general.
|
|
||||||
*
|
|
||||||
* mapstate can be IsUnmapped, !IsUnmapped, or -1;
|
|
||||||
* -1 means no change; the other two are set by event handlers
|
|
||||||
* and indicate a new mapstate. !IsMapped is done in the handler.
|
|
||||||
* we worry about IsUnmapped when output occurs. -IAN!
|
|
||||||
*/
|
|
||||||
extern int mapstate;
|
|
||||||
#endif /* HANDLE_STRUCT_NOTIFY */
|
|
||||||
|
|
||||||
#ifdef HAVE_LIB_XCURSOR
|
|
||||||
extern char *xterm_cursor_theme;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct XTERM_RESOURCE {
|
|
||||||
char *icon_geometry;
|
|
||||||
char *title;
|
|
||||||
char *icon_hint;
|
|
||||||
char *icon_name;
|
|
||||||
char *term_name;
|
|
||||||
char *tty_modes;
|
|
||||||
char *valid_shells;
|
|
||||||
|
|
||||||
int minBufSize;
|
|
||||||
int maxBufSize;
|
|
||||||
|
|
||||||
Boolean hold_screen; /* true if we keep window open */
|
|
||||||
Boolean utmpInhibit;
|
|
||||||
Boolean utmpDisplayId;
|
|
||||||
Boolean messages;
|
|
||||||
|
|
||||||
String menuLocale;
|
|
||||||
String omitTranslation;
|
|
||||||
|
|
||||||
String keyboardType;
|
|
||||||
|
|
||||||
#if OPT_PRINT_ON_EXIT
|
|
||||||
int printModeNow;
|
|
||||||
int printModeOnXError;
|
|
||||||
int printOptsNow;
|
|
||||||
int printOptsOnXError;
|
|
||||||
String printFileNow;
|
|
||||||
String printFileOnXError;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Boolean oldKeyboard; /* placeholder for decode_keyboard_type */
|
|
||||||
#if OPT_SUNPC_KBD
|
|
||||||
Boolean sunKeyboard;
|
|
||||||
#endif
|
|
||||||
#if OPT_HP_FUNC_KEYS
|
|
||||||
Boolean hpFunctionKeys;
|
|
||||||
#endif
|
|
||||||
#if OPT_SCO_FUNC_KEYS
|
|
||||||
Boolean scoFunctionKeys;
|
|
||||||
#endif
|
|
||||||
#if OPT_SUN_FUNC_KEYS
|
|
||||||
Boolean sunFunctionKeys; /* %%% should be VT100 widget resource? */
|
|
||||||
#endif
|
|
||||||
#if OPT_TCAP_FKEYS
|
|
||||||
Boolean termcapKeys;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_INITIAL_ERASE
|
|
||||||
Boolean ptyInitialErase; /* if true, use pty's sense of erase char */
|
|
||||||
Boolean backarrow_is_erase; /* override backspace/delete */
|
|
||||||
#endif
|
|
||||||
Boolean useInsertMode;
|
|
||||||
#if OPT_ZICONBEEP
|
|
||||||
int zIconBeep; /* beep level when output while iconified */
|
|
||||||
char *zIconFormat; /* format for icon name */
|
|
||||||
#endif
|
|
||||||
#if OPT_PTY_HANDSHAKE
|
|
||||||
Boolean wait_for_map;
|
|
||||||
Boolean wait_for_map0; /* ...initial value of .wait_for_map */
|
|
||||||
Boolean ptyHandshake; /* use pty-handshaking */
|
|
||||||
Boolean ptySttySize; /* reset TTY size after pty handshake */
|
|
||||||
#endif
|
|
||||||
#if OPT_REPORT_CCLASS
|
|
||||||
Boolean reportCClass; /* show character-class information */
|
|
||||||
#endif
|
|
||||||
#if OPT_REPORT_COLORS
|
|
||||||
Boolean reportColors; /* show color information as allocated */
|
|
||||||
#endif
|
|
||||||
#if OPT_REPORT_FONTS
|
|
||||||
Boolean reportFonts; /* show bitmap-font information as loaded */
|
|
||||||
#endif
|
|
||||||
#if OPT_XRES_QUERY
|
|
||||||
Boolean reportXRes; /* show vt100 resources after initialization */
|
|
||||||
#endif
|
|
||||||
#if OPT_REPORT_ICONS
|
|
||||||
Boolean reportIcons; /* show icon information as loaded */
|
|
||||||
#endif
|
|
||||||
#if OPT_SAME_NAME
|
|
||||||
Boolean sameName; /* Don't change the title or icon name if it is
|
|
||||||
* the same. This prevents flicker on the
|
|
||||||
* screen at the cost of an extra request to
|
|
||||||
* the server.
|
|
||||||
*/
|
|
||||||
#endif
|
|
||||||
#if OPT_SESSION_MGT
|
|
||||||
Boolean sessionMgt;
|
|
||||||
#endif
|
|
||||||
#if OPT_TOOLBAR
|
|
||||||
Boolean toolBar;
|
|
||||||
#endif
|
|
||||||
#if OPT_MAXIMIZE
|
|
||||||
Boolean maximized;
|
|
||||||
String fullscreen_s; /* resource for "fullscreen" */
|
|
||||||
int fullscreen; /* derived from fullscreen_s */
|
|
||||||
#endif
|
|
||||||
#if USE_DOUBLE_BUFFER
|
|
||||||
Boolean buffered;
|
|
||||||
int buffered_fps;
|
|
||||||
#endif
|
|
||||||
} XTERM_RESOURCE;
|
|
||||||
|
|
||||||
extern Boolean guard_keyboard_type;
|
|
||||||
extern XTERM_RESOURCE resource;
|
|
||||||
|
|
||||||
#ifdef USE_IGNORE_RC
|
|
||||||
extern int ignore_unused;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* included_data_h */
|
|
@ -1,162 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# $XTermId: df-install.in,v 1.16 2020/08/02 19:47:55 tom Exp $
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# this file is part of xterm
|
|
||||||
#
|
|
||||||
# Copyright 2011-2018,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.
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Install desktop-files, substituting the category to customize the file
|
|
||||||
# to the current system's conventions.
|
|
||||||
#
|
|
||||||
# Parameters are passed to the desktop-file-install program. The last
|
|
||||||
# parameter is the name of the ".desktop" file to install.
|
|
||||||
|
|
||||||
failed() {
|
|
||||||
echo "? $*" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
OPTS=
|
|
||||||
|
|
||||||
if test $# != 0
|
|
||||||
then
|
|
||||||
APP_NAME=$1
|
|
||||||
shift 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $# != 0
|
|
||||||
then
|
|
||||||
ICON_NAME=$1
|
|
||||||
shift 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
TOOL=desktop-file-install
|
|
||||||
|
|
||||||
CDPATH=:
|
|
||||||
export CDPATH
|
|
||||||
|
|
||||||
while test $# != 0
|
|
||||||
do
|
|
||||||
case .$1 in #(vi
|
|
||||||
*.desktop) #(vi
|
|
||||||
if test $# = 1
|
|
||||||
then
|
|
||||||
OLD_FILE=$1
|
|
||||||
else
|
|
||||||
OPTS="$OPTS $1"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
.DESTDIR=*) #(vi
|
|
||||||
if test "$1" != "DESTDIR="
|
|
||||||
then
|
|
||||||
DESTDIR=`echo "$1" | sed -e 's,^DESTDIR=,,'`
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
OPTS="$OPTS $1"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# If DESTDIR is set (either as an environment variable, or command-line
|
|
||||||
# parameter), attempt to determine the full pathname (needed by the installer)
|
|
||||||
# to tell it to use the alternate location. Because the installer has no
|
|
||||||
# useful options for this purpose, we search along the path to find the tool,
|
|
||||||
# and from that get the prefix, and assume that was the extent of customization
|
|
||||||
# when the tool was configured/installed.
|
|
||||||
if test -n "$DESTDIR"
|
|
||||||
then
|
|
||||||
if test -d "$DESTDIR"
|
|
||||||
then
|
|
||||||
prefix=
|
|
||||||
|
|
||||||
save_IFS="$IFS"
|
|
||||||
IFS=':'
|
|
||||||
for P in $PATH
|
|
||||||
do
|
|
||||||
test -z "$P" && P=.
|
|
||||||
if test -f "$P/$TOOL"
|
|
||||||
then
|
|
||||||
prefix=`echo "$P" | sed -e 's,/[^/]*$,,'`
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
IFS="$save_IFS"
|
|
||||||
|
|
||||||
test -z "$prefix" && failed "could not find $TOOL in PATH"
|
|
||||||
|
|
||||||
TARGET="${DESTDIR}${prefix}/share/applications"
|
|
||||||
mkdir -p "$TARGET"
|
|
||||||
|
|
||||||
OPTS="$OPTS --dir=${TARGET}"
|
|
||||||
else
|
|
||||||
failed "DESTDIR is not a directory: $DESTDIR"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
MY_TEMP=tempdir$$
|
|
||||||
rm -rf $MY_TEMP
|
|
||||||
|
|
||||||
if test -z "$OLD_FILE"
|
|
||||||
then
|
|
||||||
failed "not found: $OLD_FILE"
|
|
||||||
elif ! mkdir $MY_TEMP
|
|
||||||
then
|
|
||||||
failed "cannot mkdir: $MY_TEMP"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# The newer dfi whines about deprecation of encoding, but no release provides
|
|
||||||
# --version or equivalent. really.
|
|
||||||
if desktop-file-install --help-all >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
NO_ENCODING="#Encoding"
|
|
||||||
else
|
|
||||||
NO_ENCODING="Encoding"
|
|
||||||
fi
|
|
||||||
|
|
||||||
NEW_FILE=`basename "$OLD_FILE"`
|
|
||||||
sed \
|
|
||||||
-e '/^Encoding=/s%Encoding%'"$NO_ENCODING"'%' \
|
|
||||||
-e '/^[^#]*Icon=/s%=.*%='"$ICON_NAME"'%' \
|
|
||||||
-e '/^[^#]*Category=/s%=.*%=%' \
|
|
||||||
-e '/^[^#]*Categories=/s%=.*%=%' \
|
|
||||||
-e '/^[^#]/s%xterm%'"$APP_NAME"'%g' \
|
|
||||||
-e '/^[^#]/s%XTerm%XTerm%g' \
|
|
||||||
"$OLD_FILE" >"$MY_TEMP/$NEW_FILE"
|
|
||||||
diff -u "$OLD_FILE" "$MY_TEMP/$NEW_FILE"
|
|
||||||
cd $MY_TEMP || exit 1
|
|
||||||
|
|
||||||
"$TOOL" $OPTS "$NEW_FILE"
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
rm -rf $MY_TEMP
|
|
||||||
|
|
||||||
# vi:ts=4 sw=4
|
|
@ -1,162 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# $XTermId: df-install.in,v 1.16 2020/08/02 19:47:55 tom Exp $
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# this file is part of xterm
|
|
||||||
#
|
|
||||||
# Copyright 2011-2018,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.
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Install desktop-files, substituting the category to customize the file
|
|
||||||
# to the current system's conventions.
|
|
||||||
#
|
|
||||||
# Parameters are passed to the desktop-file-install program. The last
|
|
||||||
# parameter is the name of the ".desktop" file to install.
|
|
||||||
|
|
||||||
failed() {
|
|
||||||
echo "? $*" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
OPTS=
|
|
||||||
|
|
||||||
if test $# != 0
|
|
||||||
then
|
|
||||||
APP_NAME=$1
|
|
||||||
shift 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $# != 0
|
|
||||||
then
|
|
||||||
ICON_NAME=$1
|
|
||||||
shift 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
TOOL=desktop-file-install
|
|
||||||
|
|
||||||
CDPATH=:
|
|
||||||
export CDPATH
|
|
||||||
|
|
||||||
while test $# != 0
|
|
||||||
do
|
|
||||||
case .$1 in #(vi
|
|
||||||
*.desktop) #(vi
|
|
||||||
if test $# = 1
|
|
||||||
then
|
|
||||||
OLD_FILE=$1
|
|
||||||
else
|
|
||||||
OPTS="$OPTS $1"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
.DESTDIR=*) #(vi
|
|
||||||
if test "$1" != "DESTDIR="
|
|
||||||
then
|
|
||||||
DESTDIR=`echo "$1" | sed -e 's,^DESTDIR=,,'`
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
OPTS="$OPTS $1"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# If DESTDIR is set (either as an environment variable, or command-line
|
|
||||||
# parameter), attempt to determine the full pathname (needed by the installer)
|
|
||||||
# to tell it to use the alternate location. Because the installer has no
|
|
||||||
# useful options for this purpose, we search along the path to find the tool,
|
|
||||||
# and from that get the prefix, and assume that was the extent of customization
|
|
||||||
# when the tool was configured/installed.
|
|
||||||
if test -n "$DESTDIR"
|
|
||||||
then
|
|
||||||
if test -d "$DESTDIR"
|
|
||||||
then
|
|
||||||
prefix=
|
|
||||||
|
|
||||||
save_IFS="$IFS"
|
|
||||||
IFS=':'
|
|
||||||
for P in $PATH
|
|
||||||
do
|
|
||||||
test -z "$P" && P=.
|
|
||||||
if test -f "$P/$TOOL"
|
|
||||||
then
|
|
||||||
prefix=`echo "$P" | sed -e 's,/[^/]*$,,'`
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
IFS="$save_IFS"
|
|
||||||
|
|
||||||
test -z "$prefix" && failed "could not find $TOOL in PATH"
|
|
||||||
|
|
||||||
TARGET="${DESTDIR}${prefix}/share/applications"
|
|
||||||
mkdir -p "$TARGET"
|
|
||||||
|
|
||||||
OPTS="$OPTS --dir=${TARGET}"
|
|
||||||
else
|
|
||||||
failed "DESTDIR is not a directory: $DESTDIR"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
MY_TEMP=tempdir$$
|
|
||||||
rm -rf $MY_TEMP
|
|
||||||
|
|
||||||
if test -z "$OLD_FILE"
|
|
||||||
then
|
|
||||||
failed "not found: $OLD_FILE"
|
|
||||||
elif ! mkdir $MY_TEMP
|
|
||||||
then
|
|
||||||
failed "cannot mkdir: $MY_TEMP"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# The newer dfi whines about deprecation of encoding, but no release provides
|
|
||||||
# --version or equivalent. really.
|
|
||||||
if desktop-file-install --help-all >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
NO_ENCODING="#Encoding"
|
|
||||||
else
|
|
||||||
NO_ENCODING="Encoding"
|
|
||||||
fi
|
|
||||||
|
|
||||||
NEW_FILE=`basename "$OLD_FILE"`
|
|
||||||
sed \
|
|
||||||
-e '/^Encoding=/s%Encoding%'"$NO_ENCODING"'%' \
|
|
||||||
-e '/^[^#]*Icon=/s%=.*%='"$ICON_NAME"'%' \
|
|
||||||
-e '/^[^#]*Category=/s%=.*%=@DESKTOP_CATEGORY@%' \
|
|
||||||
-e '/^[^#]*Categories=/s%=.*%=@DESKTOP_CATEGORY@%' \
|
|
||||||
-e '/^[^#]/s%xterm%'"$APP_NAME"'%g' \
|
|
||||||
-e '/^[^#]/s%XTerm%@APP_CLASS@%g' \
|
|
||||||
"$OLD_FILE" >"$MY_TEMP/$NEW_FILE"
|
|
||||||
diff -u "$OLD_FILE" "$MY_TEMP/$NEW_FILE"
|
|
||||||
cd $MY_TEMP || exit 1
|
|
||||||
|
|
||||||
"$TOOL" $OPTS "$NEW_FILE"
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
rm -rf $MY_TEMP
|
|
||||||
|
|
||||||
# vi:ts=4 sw=4
|
|
@ -1,379 +0,0 @@
|
|||||||
/* $XTermId: doublechr.c,v 1.102 2020/06/02 23:51:56 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <xterm.h>
|
|
||||||
#include <data.h>
|
|
||||||
#include <fontutils.h>
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#define WhichCgsId(flag) (((flag) & BOLD) ? gcCBold : gcCNorm)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The first column is all that matters for double-size characters (since the
|
|
||||||
* controls apply to a whole line). However, it's easier to maintain the
|
|
||||||
* information for special fonts by writing to all cells.
|
|
||||||
*/
|
|
||||||
#if OPT_DEC_CHRSET
|
|
||||||
|
|
||||||
static void
|
|
||||||
repaint_line(XtermWidget xw, unsigned newChrSet)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
LineData *ld;
|
|
||||||
int curcol = screen->cur_col;
|
|
||||||
int currow = screen->cur_row;
|
|
||||||
int width = MaxCols(screen);
|
|
||||||
unsigned len = (unsigned) width;
|
|
||||||
|
|
||||||
assert(width > 0);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Ignore repetition.
|
|
||||||
*/
|
|
||||||
if (!IsLeftRightMode(xw)
|
|
||||||
&& (ld = getLineData(screen, currow)) != 0) {
|
|
||||||
unsigned oldChrSet = GetLineDblCS(ld);
|
|
||||||
|
|
||||||
if (oldChrSet != newChrSet) {
|
|
||||||
TRACE(("repaint_line(%2d,%2d) (%s -> %s)\n", currow, screen->cur_col,
|
|
||||||
visibleDblChrset(oldChrSet),
|
|
||||||
visibleDblChrset(newChrSet)));
|
|
||||||
HideCursor();
|
|
||||||
|
|
||||||
/* If switching from single-width, keep the cursor in the visible part
|
|
||||||
* of the line.
|
|
||||||
*/
|
|
||||||
if (CSET_DOUBLE(newChrSet)) {
|
|
||||||
width /= 2;
|
|
||||||
if (curcol > width)
|
|
||||||
curcol = width;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ScrnRefresh won't paint blanks for us if we're switching between a
|
|
||||||
* single-size and double-size font. So we paint our own.
|
|
||||||
*/
|
|
||||||
ClearCurBackground(xw,
|
|
||||||
currow,
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
len,
|
|
||||||
(unsigned) LineFontWidth(screen, ld));
|
|
||||||
|
|
||||||
SetLineDblCS(ld, newChrSet);
|
|
||||||
|
|
||||||
set_cur_col(screen, 0);
|
|
||||||
ScrnUpdate(xw, currow, 0, 1, (int) len, True);
|
|
||||||
set_cur_col(screen, curcol);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set the line to double-height characters. The 'top' flag denotes whether
|
|
||||||
* we'll be using it for the top (true) or bottom (false) of the line.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
xterm_DECDHL(XtermWidget xw, Bool top)
|
|
||||||
{
|
|
||||||
#if OPT_DEC_CHRSET
|
|
||||||
repaint_line(xw, (unsigned) (top ? CSET_DHL_TOP : CSET_DHL_BOT));
|
|
||||||
#else
|
|
||||||
(void) xw;
|
|
||||||
(void) top;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set the line to single-width characters (the normal state).
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
xterm_DECSWL(XtermWidget xw)
|
|
||||||
{
|
|
||||||
#if OPT_DEC_CHRSET
|
|
||||||
repaint_line(xw, CSET_SWL);
|
|
||||||
#else
|
|
||||||
(void) xw;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set the line to double-width characters
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
xterm_DECDWL(XtermWidget xw)
|
|
||||||
{
|
|
||||||
#if OPT_DEC_CHRSET
|
|
||||||
repaint_line(xw, CSET_DWL);
|
|
||||||
#else
|
|
||||||
(void) xw;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Reset all lines on the screen to single-width/single-height.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
xterm_ResetDouble(XtermWidget xw)
|
|
||||||
{
|
|
||||||
#if OPT_DEC_CHRSET
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
Boolean changed = False;
|
|
||||||
unsigned code;
|
|
||||||
int row;
|
|
||||||
|
|
||||||
for (row = 0; row < screen->max_row; ++row) {
|
|
||||||
LineData *ld;
|
|
||||||
|
|
||||||
if ((ld = getLineData(screen, ROW2INX(screen, row))) != 0) {
|
|
||||||
code = GetLineDblCS(ld);
|
|
||||||
if (code != CSET_SWL) {
|
|
||||||
SetLineDblCS(ld, CSET_SWL);
|
|
||||||
changed = True;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (changed) {
|
|
||||||
xtermRepaint(xw);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
(void) xw;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#if OPT_DEC_CHRSET
|
|
||||||
static void
|
|
||||||
discard_font(XtermWidget xw, int n)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
XTermFonts *data = getDoubleFont(screen, n);
|
|
||||||
|
|
||||||
TRACE(("discard_font chrset=%d %s\n", data->chrset,
|
|
||||||
(data->fn != 0) ? data->fn : "<no-name>"));
|
|
||||||
|
|
||||||
data->chrset = 0;
|
|
||||||
data->flags = 0;
|
|
||||||
if (data->fn != 0) {
|
|
||||||
free(data->fn);
|
|
||||||
data->fn = 0;
|
|
||||||
}
|
|
||||||
xtermCloseFont(xw, data);
|
|
||||||
|
|
||||||
screen->fonts_used -= 1;
|
|
||||||
while (n < screen->fonts_used) {
|
|
||||||
screen->double_fonts[n] = screen->double_fonts[n + 1];
|
|
||||||
++n;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* push back existing fonts and create a new entry */
|
|
||||||
static XTermFonts *
|
|
||||||
pushback_font(XtermWidget xw, XTermFonts * source)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
XTermFonts *data = getDoubleFont(screen, 0);
|
|
||||||
int n;
|
|
||||||
|
|
||||||
if (screen->fonts_used >= screen->cache_doublesize) {
|
|
||||||
TRACE(("pushback_font: discard oldest\n"));
|
|
||||||
discard_font(xw, screen->fonts_used - 1);
|
|
||||||
} else {
|
|
||||||
screen->fonts_used += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (n = screen->fonts_used; n > 0; n--)
|
|
||||||
data[n] = data[n - 1];
|
|
||||||
data[0] = *source;
|
|
||||||
|
|
||||||
TRACE(("pushback_font -> (NEW:%d)\n", screen->fonts_used));
|
|
||||||
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
xterm_Double_index(XTermDraw * params)
|
|
||||||
{
|
|
||||||
XTermDraw local = *params;
|
|
||||||
int n;
|
|
||||||
int result = -1;
|
|
||||||
TScreen *screen = TScreenOf(local.xw);
|
|
||||||
XTermFonts *data = getDoubleFont(screen, 0);
|
|
||||||
|
|
||||||
local.attr_flags &= BOLD;
|
|
||||||
TRACE(("xterm_Double_index chrset=%#x, flags=%#x\n", local.this_chrset, local.attr_flags));
|
|
||||||
|
|
||||||
for (n = 0; n < screen->fonts_used; n++) {
|
|
||||||
if (data[n].chrset == (unsigned) local.this_chrset
|
|
||||||
&& data[n].flags == local.attr_flags) {
|
|
||||||
if (n != 0) {
|
|
||||||
XTermFonts save;
|
|
||||||
TRACE(("...xterm_Double_index -> %d (OLD:%d)\n", n, screen->fonts_used));
|
|
||||||
save = data[n];
|
|
||||||
while (n > 0) {
|
|
||||||
data[n] = data[n - 1];
|
|
||||||
n--;
|
|
||||||
}
|
|
||||||
data[n] = save;
|
|
||||||
}
|
|
||||||
result = n;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Lookup/cache a GC for the double-size character display. We save up to
|
|
||||||
* NUM_CHRSET values.
|
|
||||||
*/
|
|
||||||
GC
|
|
||||||
xterm_DoubleGC(XTermDraw * params, GC old_gc, int *inxp)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(params->xw);
|
|
||||||
VTwin *cgsWin = WhichVWin(screen);
|
|
||||||
char *name;
|
|
||||||
GC result = 0;
|
|
||||||
|
|
||||||
if ((name = xtermSpecialFont(params))
|
|
||||||
!= 0) {
|
|
||||||
CgsEnum cgsId = WhichCgsId(params->attr_flags);
|
|
||||||
Boolean found = False;
|
|
||||||
XTermFonts *data = 0;
|
|
||||||
int n;
|
|
||||||
|
|
||||||
if ((n = xterm_Double_index(params)) >= 0) {
|
|
||||||
data = getDoubleFont(screen, n);
|
|
||||||
if (data->fn != 0) {
|
|
||||||
if (!strcmp(data->fn, name)
|
|
||||||
&& data->fs != 0) {
|
|
||||||
found = True;
|
|
||||||
free(name);
|
|
||||||
name = NULL;
|
|
||||||
} else {
|
|
||||||
discard_font(params->xw, n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!found && name != NULL) {
|
|
||||||
XTermFonts temp;
|
|
||||||
|
|
||||||
TRACE(("xterm_DoubleGC %s %d: %s\n",
|
|
||||||
(params->attr_flags & BOLD) ? "BOLD" : "NORM", n, name));
|
|
||||||
|
|
||||||
memset(&temp, 0, sizeof(temp));
|
|
||||||
temp.fn = name;
|
|
||||||
temp.chrset = params->this_chrset;
|
|
||||||
temp.flags = (params->attr_flags & BOLD);
|
|
||||||
temp.warn = fwResource;
|
|
||||||
|
|
||||||
if (!xtermOpenFont(params->xw, name, &temp, False)) {
|
|
||||||
XTermDraw local = *params;
|
|
||||||
char *nname;
|
|
||||||
|
|
||||||
/* Retry with * in resolutions */
|
|
||||||
local.draw_flags |= NORESOLUTION;
|
|
||||||
nname = xtermSpecialFont(&local);
|
|
||||||
if (nname != 0) {
|
|
||||||
found = (Boolean) xtermOpenFont(params->xw, nname, &temp,
|
|
||||||
False);
|
|
||||||
free(nname);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
found = True;
|
|
||||||
}
|
|
||||||
free(name);
|
|
||||||
|
|
||||||
if (found) {
|
|
||||||
n = 0;
|
|
||||||
data = pushback_font(params->xw, &temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
TRACE(("-> %s\n", found ? "OK" : "FAIL"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (found) {
|
|
||||||
setCgsCSet(params->xw, cgsWin, cgsId, params->this_chrset);
|
|
||||||
setCgsFont(params->xw, cgsWin, cgsId, data);
|
|
||||||
setCgsFore(params->xw, cgsWin, cgsId, getCgsFore(params->xw,
|
|
||||||
cgsWin, old_gc));
|
|
||||||
setCgsBack(params->xw, cgsWin, cgsId, getCgsBack(params->xw,
|
|
||||||
cgsWin, old_gc));
|
|
||||||
result = getCgsGC(params->xw, cgsWin, cgsId);
|
|
||||||
*inxp = n;
|
|
||||||
} else if (params->attr_flags & BOLD) {
|
|
||||||
UIntClr(params->attr_flags, BOLD);
|
|
||||||
result = xterm_DoubleGC(params, old_gc, inxp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if OPT_RENDERFONT
|
|
||||||
/*
|
|
||||||
* Like xterm_DoubleGC(), but returning an Xft font.
|
|
||||||
*/
|
|
||||||
XftFont *
|
|
||||||
xterm_DoubleFT(XTermDraw * params, unsigned chrset, unsigned attr_flags)
|
|
||||||
{
|
|
||||||
XftFont *result;
|
|
||||||
TScreen *screen = TScreenOf(params->xw);
|
|
||||||
unsigned num = (chrset & CSET_DWL);
|
|
||||||
|
|
||||||
if ((attr_flags &= BOLD) != 0)
|
|
||||||
num |= 4;
|
|
||||||
|
|
||||||
if ((result = screen->double_xft_fonts[num]) == 0) {
|
|
||||||
result = getDoubleXftFont(params, chrset, attr_flags);
|
|
||||||
screen->double_xft_fonts[num] = result;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
freeall_DoubleFT(XtermWidget xw)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
unsigned num;
|
|
||||||
|
|
||||||
for (num = 0; num < XtNumber(screen->double_xft_fonts); ++num) {
|
|
||||||
closeCachedXft(screen, screen->double_xft_fonts[num]);
|
|
||||||
screen->double_xft_fonts[num] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif /* OPT_RENDERFONT */
|
|
||||||
|
|
||||||
#endif /* OPT_DEC_CHRSET */
|
|
@ -1,105 +0,0 @@
|
|||||||
/* $XTermId: error.h,v 1.26 2012/10/05 00:17:51 tom Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 1997-2011,2012 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 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* @(#)error.h X10/6.6 11/6/86 */
|
|
||||||
|
|
||||||
/* main.c */
|
|
||||||
#define ERROR_FIONBIO 11 /* main: ioctl() failed on FIONBIO */
|
|
||||||
#define ERROR_F_GETFL 12 /* main: ioctl() failed on F_GETFL */
|
|
||||||
#define ERROR_F_SETFL 13 /* main: ioctl() failed on F_SETFL */
|
|
||||||
#define ERROR_OPDEVTTY 14 /* spawn: open() failed on /dev/tty */
|
|
||||||
#define ERROR_TIOCGETP 15 /* spawn: ioctl() failed on TIOCGETP */
|
|
||||||
#define ERROR_PTSNAME 17 /* spawn: ptsname() failed */
|
|
||||||
#define ERROR_OPPTSNAME 18 /* spawn: open() failed on ptsname */
|
|
||||||
#define ERROR_PTEM 19 /* spawn: ioctl() failed on I_PUSH/"ptem" */
|
|
||||||
#define ERROR_CONSEM 20 /* spawn: ioctl() failed on I_PUSH/"consem" */
|
|
||||||
#define ERROR_LDTERM 21 /* spawn: ioctl() failed on I_PUSH/"ldterm" */
|
|
||||||
#define ERROR_TTCOMPAT 22 /* spawn: ioctl() failed on I_PUSH/"ttcompat" */
|
|
||||||
#define ERROR_TIOCSETP 23 /* spawn: ioctl() failed on TIOCSETP */
|
|
||||||
#define ERROR_TIOCSETC 24 /* spawn: ioctl() failed on TIOCSETC */
|
|
||||||
#define ERROR_TIOCSETD 25 /* spawn: ioctl() failed on TIOCSETD */
|
|
||||||
#define ERROR_TIOCSLTC 26 /* spawn: ioctl() failed on TIOCSLTC */
|
|
||||||
#define ERROR_TIOCLSET 27 /* spawn: ioctl() failed on TIOCLSET */
|
|
||||||
#define ERROR_INIGROUPS 28 /* spawn: initgroups() failed */
|
|
||||||
#define ERROR_FORK 29 /* spawn: fork() failed */
|
|
||||||
#define ERROR_EXEC 30 /* spawn: exec() failed */
|
|
||||||
#define ERROR_PTYS 32 /* get_pty: not enough ptys */
|
|
||||||
#define ERROR_PTY_EXEC 34 /* waiting for initial map */
|
|
||||||
#define ERROR_SETUID 35 /* spawn: setuid() failed */
|
|
||||||
#define ERROR_INIT 36 /* spawn: can't initialize window */
|
|
||||||
#define ERROR_TIOCKSET 46 /* spawn: ioctl() failed on TIOCKSET */
|
|
||||||
#define ERROR_TIOCKSETC 47 /* spawn: ioctl() failed on TIOCKSETC */
|
|
||||||
#define ERROR_LUMALLOC 49 /* luit: command-line malloc failed */
|
|
||||||
|
|
||||||
/* charproc.c */
|
|
||||||
#define ERROR_SELECT 50 /* in_put: select() failed */
|
|
||||||
#define ERROR_VINIT 54 /* VTInit: can't initialize window */
|
|
||||||
#define ERROR_KMMALLOC1 57 /* HandleKeymapChange: malloc failed */
|
|
||||||
|
|
||||||
/* Tekproc.c */
|
|
||||||
#define ERROR_TSELECT 60 /* Tinput: select() failed */
|
|
||||||
#define ERROR_TINIT 64 /* TekInit: can't initialize window */
|
|
||||||
|
|
||||||
/* button.c */
|
|
||||||
#define ERROR_BMALLOC2 71 /* SaltTextAway: malloc() failed */
|
|
||||||
|
|
||||||
/* misc.c */
|
|
||||||
#define ERROR_LOGEXEC 80 /* StartLog: exec() failed */
|
|
||||||
#define ERROR_XERROR 83 /* xerror: XError event */
|
|
||||||
#define ERROR_XIOERROR 84 /* xioerror: X I/O error */
|
|
||||||
#define ERROR_ICEERROR 85 /* ice_error: ICE I/O error */
|
|
||||||
|
|
||||||
/* screen.c */
|
|
||||||
#define ERROR_SCALLOC 90 /* Alloc: calloc() failed on base */
|
|
||||||
#define ERROR_SCALLOC2 91 /* Alloc: calloc() failed on rows */
|
|
||||||
#define ERROR_SAVE_PTR 102 /* ScrnPointers: malloc/realloc() failed */
|
|
@ -1,178 +0,0 @@
|
|||||||
/* $XTermId: fontutils.h,v 1.134 2019/11/12 10:05:06 tom Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 1998-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_fontutils_h
|
|
||||||
#define included_fontutils_h 1
|
|
||||||
|
|
||||||
#include <xterm.h>
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
|
|
||||||
extern Bool xtermLoadDefaultFonts (XtermWidget /* xw */);
|
|
||||||
extern Bool xtermOpenFont (XtermWidget /* xw */, const char */* name */, XTermFonts * /* result */, Bool /* force */);
|
|
||||||
extern XTermFonts * getDoubleFont (TScreen * /* screen */, int /* which */);
|
|
||||||
extern XTermFonts * getItalicFont (TScreen * /* screen */, int /* which */);
|
|
||||||
extern XTermFonts * getNormalFont (TScreen * /* screen */, int /* which */);
|
|
||||||
extern const VTFontNames * defaultVTFontNames(XtermWidget /* xw */);
|
|
||||||
extern const VTFontNames * xtermFontName (const char */* normal */);
|
|
||||||
extern const char * whichFontEnum (VTFontEnum /* value */);
|
|
||||||
extern const char * whichFontList (XtermWidget /* xw */, VTFontList * /* value */);
|
|
||||||
extern const char * whichFontList2(XtermWidget /* xw */, char ** /* value */);
|
|
||||||
extern int lookupRelativeFontSize (XtermWidget /* xw */, int /* old */, int /* relative */);
|
|
||||||
extern int xtermGetFont (const char * /* param */);
|
|
||||||
extern int xtermLoadFont (XtermWidget /* xw */, const VTFontNames */* fonts */, Bool /* doresize */, int /* fontnum */);
|
|
||||||
extern void HandleSetFont PROTO_XT_ACTIONS_ARGS;
|
|
||||||
extern void SetVTFont (XtermWidget /* xw */, int /* i */, Bool /* doresize */, const VTFontNames */* fonts */);
|
|
||||||
extern void allocFontList (XtermWidget /* xw */, const char * /* name */, XtermFontNames * /* target */, VTFontEnum /* which */, const char * /* source */, Bool /* ttf */);
|
|
||||||
extern void copyFontList (char *** /* targetp */, char ** /* source */);
|
|
||||||
extern void initFontLists (XtermWidget /* xw */);
|
|
||||||
extern void freeFontList (char *** /* targetp */);
|
|
||||||
extern void freeFontLists (VTFontList * /* lists */);
|
|
||||||
extern void xtermCloseFont (XtermWidget /* xw */, XTermFonts * /* fnt */);
|
|
||||||
extern void xtermCloseFonts (XtermWidget /* xw */, XTermFonts * /* fnts[fMAX] */);
|
|
||||||
extern void xtermComputeFontInfo (XtermWidget /* xw */, VTwin */* win */, XFontStruct */* font */, int /* sbwidth */);
|
|
||||||
extern void xtermCopyFontInfo (XTermFonts * /* target */, XTermFonts * /* source */);
|
|
||||||
extern void xtermDerivedFont (const char * /* name */);
|
|
||||||
extern void xtermFreeFontInfo (XTermFonts * /* target */);
|
|
||||||
extern void xtermSetCursorBox (TScreen * /* screen */);
|
|
||||||
extern void xtermUpdateFontGCs (XtermWidget /* xw */, MyGetFont /* myfunc */);
|
|
||||||
extern void xtermUpdateFontInfo (XtermWidget /* xw */, Bool /* doresize */);
|
|
||||||
|
|
||||||
#define getIconicFont(screen) (&((screen)->fnt_icon))
|
|
||||||
|
|
||||||
/* use these when "which" is constant, or known in-limits */
|
|
||||||
#define GetNormalFont(screen, which) (&((screen)->fnts[which]))
|
|
||||||
#define GetDoubleFont(screen, which) (&((screen)->double_fonts[which]))
|
|
||||||
#if OPT_WIDE_ATTRS
|
|
||||||
#define GetItalicFont(screen, which) (&((screen)->ifnts[which]))
|
|
||||||
#else
|
|
||||||
#define GetItalicFont(screen, which) 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define FirstItemOf(vector) ((vector) ? (vector)[0] : 0)
|
|
||||||
#define CurrentXftFont(xw) ((xw)->work.fonts.xft.list_n[0])
|
|
||||||
#define DefaultFontN(xw) ((xw)->work.fonts.x11.list_n[0])
|
|
||||||
#define DefaultFontB(xw) ((xw)->work.fonts.x11.list_b[0])
|
|
||||||
#define DefaultFontW(xw) ((xw)->work.fonts.x11.list_w[0])
|
|
||||||
#define DefaultFontWB(xw) ((xw)->work.fonts.x11.list_wb[0])
|
|
||||||
|
|
||||||
#if OPT_DEC_CHRSET
|
|
||||||
extern char *xtermSpecialFont (XTermDraw * /* params */);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define FontLacksMetrics(font) \
|
|
||||||
((font)->fs != 0 \
|
|
||||||
&& ((font)->fs->per_char == 0))
|
|
||||||
|
|
||||||
#define FontIsIncomplete(font) \
|
|
||||||
((font)->fs != 0 \
|
|
||||||
&& (font)->fs->per_char != 0 \
|
|
||||||
&& !(font)->fs->all_chars_exist)
|
|
||||||
|
|
||||||
#if OPT_BOX_CHARS
|
|
||||||
|
|
||||||
#define ForceBoxChars(screen,ch) \
|
|
||||||
(xtermIsDecGraphic(ch) \
|
|
||||||
&& (screen)->force_box_chars)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Keep track of (some) characters to make the check for missing
|
|
||||||
* characters faster. If the character is known to be missing,
|
|
||||||
* the cache value is '2'. If we have checked the character, the
|
|
||||||
* cached value is '1'.
|
|
||||||
*/
|
|
||||||
#if OPT_WIDE_CHARS
|
|
||||||
#define CheckedKnownMissing(font, ch) \
|
|
||||||
(((ch) < KNOWN_MISSING) && ((font)->known_missing[(Char)(ch)] > 0))
|
|
||||||
#else
|
|
||||||
#define CheckedKnownMissing(font, ch) \
|
|
||||||
((font)->known_missing[(Char)(ch)] > 0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define IsXtermMissingChar(screen, ch, font) \
|
|
||||||
(CheckedKnownMissing(font, ch) \
|
|
||||||
? ((font)->known_missing[(Char)(ch)] > 1) \
|
|
||||||
: ((FontIsIncomplete(font) && xtermMissingChar(ch, font)) \
|
|
||||||
|| ForceBoxChars(screen, ch)))
|
|
||||||
|
|
||||||
extern void xtermDrawBoxChar (XTermDraw * /* params */, unsigned /* ch */, GC /* gc */, int /* x */, int /* y */, int /* cols */);
|
|
||||||
#else
|
|
||||||
#define IsXtermMissingChar(screen, ch, font) False
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_BOX_CHARS || OPT_REPORT_FONTS
|
|
||||||
extern Bool xtermMissingChar (unsigned /* ch */, XTermFonts */* font */);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_LOAD_VTFONTS
|
|
||||||
extern void HandleLoadVTFonts PROTO_XT_ACTIONS_ARGS;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_LOAD_VTFONTS || OPT_WIDE_CHARS
|
|
||||||
extern Bool xtermLoadWideFonts (XtermWidget /* w */, Bool /* nullOk */);
|
|
||||||
extern void xtermSaveVTFonts (XtermWidget /* xw */);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define xtermIsDecGraphic(ch) ((ch) > 0 && (ch) < 32)
|
|
||||||
|
|
||||||
#if OPT_RENDERFONT
|
|
||||||
extern Boolean maybeXftCache(XtermWidget /* xw */, XftFont * /* font */);
|
|
||||||
extern Bool xtermXftMissing (XtermWidget /* xw */, XftFont * /* font */, unsigned /* wc */);
|
|
||||||
extern XTermXftFonts *getMyXftFont (XtermWidget /* xw */, int /* which */, int /* fontnum */);
|
|
||||||
extern XftFont *findXftGlyph (XtermWidget /* xw */, XftFont * /* given */, unsigned /* wc */);
|
|
||||||
extern XftFont *getXftFont (XtermWidget /* xw */, VTFontEnum /* which */, int /* fontnum */);
|
|
||||||
extern void closeCachedXft (TScreen * /* screen */, XftFont * /* font */);
|
|
||||||
extern void xtermCloseXft (TScreen * /* screen */, XTermXftFonts * /* pub */);
|
|
||||||
#if OPT_DEC_CHRSET
|
|
||||||
extern XftFont * getDoubleXftFont(XTermDraw * /* params */, unsigned /* chrset */, unsigned /* attr_flags */);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_SHIFT_FONTS
|
|
||||||
extern String getFaceName (XtermWidget /* xw */, Bool /* wideName */);
|
|
||||||
extern void HandleLargerFont PROTO_XT_ACTIONS_ARGS;
|
|
||||||
extern void HandleSmallerFont PROTO_XT_ACTIONS_ARGS;
|
|
||||||
extern void setFaceName (XtermWidget /* xw */, const char * /*value */);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_WIDE_ATTRS
|
|
||||||
extern unsigned xtermUpdateItalics (XtermWidget /* xw */, unsigned /* new_attrs */, unsigned /* old_attrs */);
|
|
||||||
extern void xtermLoadItalics (XtermWidget /* xw */);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPT_WIDE_CHARS
|
|
||||||
extern unsigned ucs2dec (TScreen * /* screen */, unsigned /* ch */);
|
|
||||||
extern unsigned dec2ucs (TScreen * /* screen */, unsigned /* ch */);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
|
|
||||||
#endif /* included_fontutils_h */
|
|
@ -1,105 +0,0 @@
|
|||||||
#! /usr/bin/perl -w
|
|
||||||
# $XTermId: gen-charsets.pl,v 1.2 2018/08/22 22:59:15 tom Exp $
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# this file is part of xterm
|
|
||||||
#
|
|
||||||
# Copyright 2018 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.
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Translate a Unicode mapping, e.g., for one of the ISO-8859-x codepages,
|
|
||||||
# into the form used in charsets.c for converting characters.
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
$| = 1;
|
|
||||||
|
|
||||||
sub do_file($) {
|
|
||||||
my $file = shift;
|
|
||||||
my $undef = hex(0x2426);
|
|
||||||
open( FP, $file ) || do {
|
|
||||||
print STDERR "Can't open $file: $!\n";
|
|
||||||
return;
|
|
||||||
};
|
|
||||||
my @data = <FP>;
|
|
||||||
close(FP);
|
|
||||||
my $name = $file;
|
|
||||||
$name =~ s,^.*/,,;
|
|
||||||
$name =~ s/\..*$//;
|
|
||||||
$name =~ s/^(8859)/ISO-$1/;
|
|
||||||
$name =~ s/-/_/g;
|
|
||||||
printf "#define map_%s(code) \\\n", $name;
|
|
||||||
printf "\tswitch (code) { \\\n";
|
|
||||||
my @target;
|
|
||||||
my @noteof;
|
|
||||||
|
|
||||||
for my $n ( 0 .. $#data ) {
|
|
||||||
chomp $data[$n];
|
|
||||||
$data[$n] =~ s/^\s*//;
|
|
||||||
$data[$n] =~ s/\s*$//;
|
|
||||||
next if ( $data[$n] =~ /^#/ );
|
|
||||||
next if ( $data[$n] eq "" );
|
|
||||||
if ( $data[$n] !~ /^0x[[:xdigit:]]+\s+0x[[:xdigit:]]+\s*#/i ) {
|
|
||||||
printf STDERR "?? %d:%s\n", $n + 1, $data[$n];
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
my $source = $data[$n];
|
|
||||||
$source =~ s/\s.*//;
|
|
||||||
$source = hex($source);
|
|
||||||
next if ( $source < 160 or $source > 255 );
|
|
||||||
$source -= 128;
|
|
||||||
|
|
||||||
my $target = $data[$n];
|
|
||||||
$target =~ s/^[^\s]+\s+(0x[[:xdigit:]]+).*$/$1/i;
|
|
||||||
$target = hex($target);
|
|
||||||
|
|
||||||
my $noteof = $data[$n];
|
|
||||||
$noteof =~ s/^[^#]+#\s*//;
|
|
||||||
|
|
||||||
$target[$source] = $target;
|
|
||||||
$noteof[$source] = $noteof;
|
|
||||||
}
|
|
||||||
my $lo = $target[32] ? 32 : 33;
|
|
||||||
my $hi = $target[127] ? 127 : 126;
|
|
||||||
for my $n ( $lo .. $hi ) {
|
|
||||||
if ( defined $target[$n] ) {
|
|
||||||
printf "\t UNI(0x%02x, 0x%04x);\t/* %s */ \\\n", $n,
|
|
||||||
$target[$n], $noteof[$n];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
printf "\t XXX(0x%02x, UNDEF);\t/* undefined */ \\\n", $n;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf "\t}\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
while ( $#ARGV >= 0 ) {
|
|
||||||
&do_file( shift @ARGV );
|
|
||||||
}
|
|
||||||
|
|
||||||
1;
|
|
@ -1,364 +0,0 @@
|
|||||||
#! /usr/bin/perl -w
|
|
||||||
# $XTermId: gen-pc-fkeys.pl,v 1.22 2007/11/30 23:03:55 tom Exp $
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# this file is part of xterm
|
|
||||||
#
|
|
||||||
# Copyright 2004-2005,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 list of function-key definitions corresponding to xterm's
|
|
||||||
# Sun/PC keyboard. This uses ncurses' infocmp to obtain the strings (including
|
|
||||||
# extensions) to modify (and verify).
|
|
||||||
use strict;
|
|
||||||
|
|
||||||
my($max_modifier, $terminfo);
|
|
||||||
my(@old_fkeys, $opt_fkeys, $min_fkeys, $max_fkeys);
|
|
||||||
my(%old_ckeys, $opt_ckeys, $min_ckeys, $max_ckeys);
|
|
||||||
my(%old_ekeys, $opt_ekeys, $min_ekeys, $max_ekeys);
|
|
||||||
|
|
||||||
my(@ckey_names);
|
|
||||||
@ckey_names = (
|
|
||||||
'kcud1', 'kcub1', 'kcuf1', 'kcuu1', # 1 = no modifiers
|
|
||||||
'kDN', 'kLFT', 'kRIT', 'kUP', # 2 = shift
|
|
||||||
# make_ckey_names() repeats this row, appending the modifier code
|
|
||||||
);
|
|
||||||
my %ckey_names;
|
|
||||||
my(@ckey_known);
|
|
||||||
@ckey_known = (
|
|
||||||
'kind', 'kLFT', 'kRIT', 'kri', # 2 = shift (standard)
|
|
||||||
);
|
|
||||||
|
|
||||||
my(@ekey_names);
|
|
||||||
@ekey_names = (
|
|
||||||
'khome', 'kend', 'knp', 'kpp', 'kdch1', 'kich1', # 1 = no modifiers
|
|
||||||
'kHOM', 'kEND', 'kNXT', 'kPRV', 'kDC', 'kIC', # 2 = shift
|
|
||||||
# make_ekey_names() repeats this row, appending the modifier code
|
|
||||||
);
|
|
||||||
my %ekey_names;
|
|
||||||
|
|
||||||
$min_fkeys=12; # the number of "real" function keys on your keyboard
|
|
||||||
$max_fkeys=64; # the number of function-keys terminfo can support
|
|
||||||
$max_modifier=8; # modifier 1 + (1=shift, 2=alt, 4=control 8=meta)
|
|
||||||
|
|
||||||
$min_ckeys=4; # the number of "real" cursor keys on your keyboard
|
|
||||||
$max_ckeys=($min_ckeys * ($max_modifier - 1));
|
|
||||||
|
|
||||||
$min_ekeys=6; # the number of "real" editing keys on your keyboard
|
|
||||||
$max_ekeys=($min_ekeys * ($max_modifier - 1));
|
|
||||||
|
|
||||||
$opt_ckeys=2; # xterm's modifyCursorKeys resource
|
|
||||||
$opt_ekeys=2; # xterm's modifyCursorKeys resource
|
|
||||||
$opt_fkeys=2; # xterm's modifyFunctionKeys resource
|
|
||||||
$terminfo="xterm-new"; # the terminfo entry to use
|
|
||||||
|
|
||||||
# apply the given modifier to the terminfo string, return the result
|
|
||||||
sub modify_fkey($$$) {
|
|
||||||
my $code = $_[0];
|
|
||||||
my $text = $_[1];
|
|
||||||
my $opts = $_[2];
|
|
||||||
if (not defined($text)) {
|
|
||||||
$text = "";
|
|
||||||
} elsif ($code != 1) {
|
|
||||||
$text =~ s/\\EO/\\E\[/ if ($opts >= 1);
|
|
||||||
|
|
||||||
my $piece = substr $text, 0, length ($text) - 1;
|
|
||||||
my $final = substr $text, length ($text) - 1;
|
|
||||||
my $check = substr $piece, length ($piece) - 1;
|
|
||||||
if ($check =~ /[0-9]/) {
|
|
||||||
$code = ";" . $code;
|
|
||||||
} elsif ( $check =~ /\[/ and $opts >= 2) {
|
|
||||||
$code = "1;" . $code;
|
|
||||||
}
|
|
||||||
if ( $opts >= 3 ) {
|
|
||||||
$code = ">" . $code;
|
|
||||||
}
|
|
||||||
$text = $piece . $code . $final;
|
|
||||||
$text =~ s/([\d;]+)>/>$1/;
|
|
||||||
}
|
|
||||||
return $text;
|
|
||||||
}
|
|
||||||
|
|
||||||
# compute the next modifier value -
|
|
||||||
# Cycling through the modifiers is not just like counting. Users prefer
|
|
||||||
# pressing one modifier (even if using Emacs). So first we cycle through
|
|
||||||
# the individual modifiers, then for completeness two, three, etc.
|
|
||||||
sub next_modifier {
|
|
||||||
my $code = $_[0];
|
|
||||||
my $mask = $code - 1;
|
|
||||||
if ($mask == 0) {
|
|
||||||
$mask = 1; # shift
|
|
||||||
} elsif ($mask == 1) {
|
|
||||||
$mask = 4; # control
|
|
||||||
} elsif ($mask == 2) {
|
|
||||||
$mask = 3; # shift+alt
|
|
||||||
} elsif ($mask == 4) {
|
|
||||||
$mask = 5; # shift+control
|
|
||||||
} elsif ($mask == 5) {
|
|
||||||
$mask = 2; # alt
|
|
||||||
}
|
|
||||||
# printf ("# next_modifier(%d) = %d\n", $code, $mask + 1);
|
|
||||||
return $mask + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub make_ckey_names() {
|
|
||||||
my ($j, $k);
|
|
||||||
my $min = $min_ckeys * 2;
|
|
||||||
my $max = $max_ckeys - 1;
|
|
||||||
|
|
||||||
# printf "# make_ckey_names\n";
|
|
||||||
for $j ($min..$max) {
|
|
||||||
$k = 1 + substr($j / $min_ckeys, 0, 1);
|
|
||||||
$ckey_names[$j] = $ckey_names[$min_ckeys + ($j % $min_ckeys)] . $k;
|
|
||||||
# printf "# make %d:%s\n", $j, $ckey_names[$j];
|
|
||||||
}
|
|
||||||
for $j (0..$#ckey_names) {
|
|
||||||
# printf "# %d:%s\n", $j, $ckey_names[$j];
|
|
||||||
$ckey_names{$ckey_names[$j]} = $j;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub make_ekey_names() {
|
|
||||||
my ($j, $k);
|
|
||||||
my $min = $min_ekeys * 2;
|
|
||||||
my $max = $max_ekeys - 1;
|
|
||||||
|
|
||||||
# printf "# make_ekey_names\n";
|
|
||||||
for $j ($min..$max) {
|
|
||||||
$k = 1 + substr($j / $min_ekeys, 0, 1);
|
|
||||||
$ekey_names[$j] = $ekey_names[$min_ekeys + ($j % $min_ekeys)] . $k;
|
|
||||||
# printf "# make %d:%s\n", $j, $ekey_names[$j];
|
|
||||||
}
|
|
||||||
for $j (0..$#ekey_names) {
|
|
||||||
# printf "# %d:%s\n", $j, $ekey_names[$j];
|
|
||||||
$ekey_names{$ekey_names[$j]} = $j;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Read the terminfo entry's list of function keys $old_fkeys[].
|
|
||||||
# We could handle $old_fkeys[0], but choose to start numbering from 1.
|
|
||||||
sub readterm($) {
|
|
||||||
my $term = $_[0];
|
|
||||||
my($key, $n, $str);
|
|
||||||
my(@list) = `infocmp -x -1 $term`;
|
|
||||||
|
|
||||||
for $n (0..$#list) {
|
|
||||||
chop $list[$n];
|
|
||||||
$list[$n] =~ s/^[[:space:]]//;
|
|
||||||
|
|
||||||
$key = $list[$n];
|
|
||||||
$key =~ s/=.*//;
|
|
||||||
|
|
||||||
$str = $list[$n];
|
|
||||||
$str =~ s/^[^=]+=//;
|
|
||||||
$str =~ s/,$//;
|
|
||||||
|
|
||||||
if ( $list[$n] =~ /^kf[[:digit:]]+=/ ) {
|
|
||||||
$key =~ s/^kf//;
|
|
||||||
# printf "# $n:%s(%d)(%s)\n", $list[$n], $key, $str;
|
|
||||||
$old_fkeys[$key] = $str;
|
|
||||||
} elsif ( $key =~ /^kc[[:alpha:]]+1/
|
|
||||||
or $key =~ /^k(LFT|RIT|UP|DN)\d?/) {
|
|
||||||
# printf "# $n:%s(%d)(%s)\n", $list[$n], $key, $str;
|
|
||||||
$old_ckeys{$key} = $str;
|
|
||||||
} elsif ( defined $ekey_names{$key} ) {
|
|
||||||
# printf "# $n:%s(%s)(%s)\n", $list[$n], $key, $str;
|
|
||||||
$old_ekeys{$key} = $str;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
# printf ("last index:%d\n", $#old_fkeys);
|
|
||||||
}
|
|
||||||
|
|
||||||
# read the whole terminfo to ensure we get the non-modified stuff, then read
|
|
||||||
# the part that contains modifiers.
|
|
||||||
sub read_part($) {
|
|
||||||
my $part = $_[0];
|
|
||||||
|
|
||||||
%old_ckeys = ();
|
|
||||||
@old_fkeys = ();
|
|
||||||
readterm($terminfo);
|
|
||||||
readterm($part);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub nameof_ckeys($) {
|
|
||||||
my $opts = $_[0];
|
|
||||||
my $optname = "xterm+pcc" . ($opts >= 0 ? $opts : "n");
|
|
||||||
return $optname;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub generate_ckeys($) {
|
|
||||||
my $opts = $_[0];
|
|
||||||
my($modifier, $cur_ckey, $index);
|
|
||||||
|
|
||||||
printf "%s|fragment with modifyCursorKeys:%s,\n",
|
|
||||||
nameof_ckeys($opts), $opts;
|
|
||||||
|
|
||||||
# show the standard cursor definitions
|
|
||||||
$modifier = 1;
|
|
||||||
for ($index = 0; $index < $min_ckeys; ++$index) {
|
|
||||||
$cur_ckey = $index + ($modifier * $min_ckeys);
|
|
||||||
my $name = $ckey_known[$index];
|
|
||||||
my $input = $old_ckeys{$ckey_names[$index]};
|
|
||||||
my $result = modify_fkey($modifier + 1, $input, $opts);
|
|
||||||
printf "\t%s=%s,\n", $name, $result;
|
|
||||||
if (defined $old_ckeys{$name}) {
|
|
||||||
if ($old_ckeys{$name} ne $result) {
|
|
||||||
printf "# found %s=%s\n", $name, $old_ckeys{$name};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# show the extended cursor definitions
|
|
||||||
for ($index = 0; $index < $min_ckeys; ++$index) {
|
|
||||||
for ($modifier = 1; $modifier < $max_modifier; ++$modifier) {
|
|
||||||
$cur_ckey = $index + ($modifier * $min_ckeys);
|
|
||||||
if (defined $ckey_names[$cur_ckey] and
|
|
||||||
$ckey_names[$cur_ckey] ne "kLFT" and
|
|
||||||
$ckey_names[$cur_ckey] ne "kRIT" ) {
|
|
||||||
my $name = $ckey_names[$cur_ckey];
|
|
||||||
my $input = $old_ckeys{$ckey_names[$index]};
|
|
||||||
my $result = modify_fkey($modifier + 1, $input, $opts);
|
|
||||||
printf "\t%s=%s,\n", $name, $result;
|
|
||||||
if (defined $old_ckeys{$name}) {
|
|
||||||
if ($old_ckeys{$name} ne $result) {
|
|
||||||
printf "# found %s=%s\n", $name, $old_ckeys{$name};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub nameof_ekeys($) {
|
|
||||||
my $opts = $_[0];
|
|
||||||
my $optname = "xterm+pce" . ($opts >= 0 ? $opts : "n");
|
|
||||||
return $optname;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub generate_ekeys($) {
|
|
||||||
my $opts = $_[0];
|
|
||||||
my($modifier, $cur_ekey, $index);
|
|
||||||
|
|
||||||
printf "%s|fragment with modifyCursorKeys:%s,\n",
|
|
||||||
nameof_ekeys($opts), $opts;
|
|
||||||
|
|
||||||
for ($index = 0; $index < $min_ekeys; ++$index) {
|
|
||||||
for ($modifier = 1; $modifier < $max_modifier; ++$modifier) {
|
|
||||||
$cur_ekey = $index + ($modifier * $min_ekeys);
|
|
||||||
if (defined $ekey_names[$cur_ekey] ) {
|
|
||||||
my $name = $ekey_names[$cur_ekey];
|
|
||||||
my $input = $old_ekeys{$ekey_names[$index]};
|
|
||||||
my $result = modify_fkey($modifier + 1, $input, $opts);
|
|
||||||
printf "\t%s=%s,\n", $name, $result;
|
|
||||||
if (defined $old_ekeys{$name}) {
|
|
||||||
if ($old_ekeys{$name} ne $result) {
|
|
||||||
printf "# found %s=%s\n", $name, $old_ekeys{$name};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub nameof_fkeys($) {
|
|
||||||
my $opts = $_[0];
|
|
||||||
my $optname = "xterm+pcf" . ($opts >= 0 ? $opts : "n");
|
|
||||||
return $optname;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub generate_fkeys($) {
|
|
||||||
my $opts = $_[0];
|
|
||||||
my($modifier, $cur_fkey);
|
|
||||||
|
|
||||||
printf "%s|fragment with modifyFunctionKeys:%s and ctrlFKeys:10,\n",
|
|
||||||
nameof_fkeys($opts), $opts;
|
|
||||||
|
|
||||||
for ($cur_fkey = 1, $modifier = 1; $cur_fkey < $max_fkeys; ++$cur_fkey) {
|
|
||||||
my $index = (($cur_fkey - 1) % $min_fkeys);
|
|
||||||
if ($index == 0 && $cur_fkey != 1) {
|
|
||||||
$modifier = next_modifier($modifier);
|
|
||||||
}
|
|
||||||
if (defined $old_fkeys[$index + 1]) {
|
|
||||||
my $input = $old_fkeys[$index + 1];
|
|
||||||
my $result = modify_fkey($modifier, $input, $opts);
|
|
||||||
printf "\tkf%d=%s,\n", $cur_fkey, $result;
|
|
||||||
if (defined $old_fkeys[$cur_fkey]) {
|
|
||||||
if ($old_fkeys[$cur_fkey] ne $result) {
|
|
||||||
printf "# found kf%d=%s\n", $cur_fkey, $old_fkeys[$cur_fkey];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub show_default() {
|
|
||||||
readterm($terminfo);
|
|
||||||
|
|
||||||
printf "xterm+pcfkeys|fragment for PC-style keys,\n";
|
|
||||||
printf "\tuse=%s,\n", nameof_ckeys($opt_ckeys);
|
|
||||||
printf "\tuse=%s,\n", nameof_ekeys($opt_ekeys);
|
|
||||||
printf "\tuse=%s,\n", nameof_fkeys($opt_fkeys);
|
|
||||||
|
|
||||||
generate_ckeys($opt_ckeys);
|
|
||||||
generate_ekeys($opt_ekeys);
|
|
||||||
generate_fkeys($opt_fkeys);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub show_nondefault()
|
|
||||||
{
|
|
||||||
my $opts;
|
|
||||||
|
|
||||||
for ($opts = 0; $opts <= 3; ++$opts) {
|
|
||||||
if ($opts != $opt_ckeys) {
|
|
||||||
read_part(nameof_ckeys($opts));
|
|
||||||
generate_ckeys($opts);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ($opts = 0; $opts <= 3; ++$opts) {
|
|
||||||
if ($opts != $opt_ekeys) {
|
|
||||||
read_part(nameof_ekeys($opts));
|
|
||||||
generate_ekeys($opts);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ($opts = 0; $opts <= 3; ++$opts) {
|
|
||||||
if ($opts != $opt_fkeys) {
|
|
||||||
read_part(nameof_fkeys($opts));
|
|
||||||
generate_fkeys($opts);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
make_ckey_names();
|
|
||||||
make_ekey_names();
|
|
||||||
|
|
||||||
printf "# gen-pc-fkeys.pl\n";
|
|
||||||
printf "# %s:timode\n", "vile";
|
|
||||||
show_default();
|
|
||||||
show_nondefault();
|
|
@ -1,127 +0,0 @@
|
|||||||
/* $XTermId: graphics.h,v 1.23 2016/05/29 16:11:41 tom Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2013-2015,2016 by Ross Combs
|
|
||||||
* Copyright 2013-2015,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_graphics_h
|
|
||||||
#define included_graphics_h
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
|
|
||||||
#include <ptyx.h>
|
|
||||||
|
|
||||||
#if OPT_GRAPHICS
|
|
||||||
|
|
||||||
#define CHANNEL_MAX 100
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
short r, g, b;
|
|
||||||
} ColorRegister;
|
|
||||||
|
|
||||||
typedef unsigned short RegisterNum;
|
|
||||||
|
|
||||||
#define MAX_COLOR_REGISTERS 1024U
|
|
||||||
#define COLOR_HOLE ((RegisterNum)MAX_COLOR_REGISTERS)
|
|
||||||
|
|
||||||
#define MAX_GRAPHICS 16U
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
RegisterNum *pixels;
|
|
||||||
ColorRegister *private_color_registers;
|
|
||||||
ColorRegister *color_registers;
|
|
||||||
char color_registers_used[MAX_COLOR_REGISTERS];
|
|
||||||
XtermWidget xw;
|
|
||||||
int max_width; /* largest image which can be stored */
|
|
||||||
int max_height; /* largest image which can be stored */
|
|
||||||
unsigned valid_registers; /* for wrap-around behavior */
|
|
||||||
int actual_width; /* size of image before scaling */
|
|
||||||
int actual_height; /* size of image before scaling */
|
|
||||||
int private_colors; /* if not using the shared color registers */
|
|
||||||
int charrow; /* upper left starting point in characters */
|
|
||||||
int charcol; /* upper left starting point in characters */
|
|
||||||
int pixw; /* width of graphic pixels in screen pixels */
|
|
||||||
int pixh; /* height of graphic pixels in screen pixels */
|
|
||||||
int bufferid; /* which screen buffer the graphic is associated with */
|
|
||||||
unsigned type; /* type of graphic 0==sixel, 1...NUM_REGIS_PAGES==ReGIS page */
|
|
||||||
unsigned id; /* sequential id used for preserving layering */
|
|
||||||
int valid; /* if the graphic has been initialized */
|
|
||||||
int dirty; /* if the graphic needs to be redrawn */
|
|
||||||
int hidden; /* if the graphic should not be displayed */
|
|
||||||
} Graphic;
|
|
||||||
|
|
||||||
extern Graphic *get_new_graphic(XtermWidget /* xw */, int /* charrow */, int /* charcol */, unsigned /* type */);
|
|
||||||
extern Graphic *get_new_or_matching_graphic(XtermWidget /* xw */, int /* charrow */, int /* charcol */, int /* actual_width */, int /* actual_height */, unsigned /* type */);
|
|
||||||
extern RegisterNum read_pixel(Graphic */* graphic */, int /* x */, int /* y */);
|
|
||||||
extern void draw_solid_pixel(Graphic */* graphic */, int /* x */, int /* y */, unsigned /* color */);
|
|
||||||
extern void draw_solid_rectangle(Graphic */* graphic */, int /* x1 */, int /* y1 */, int /* x2 */, int /* y2 */, unsigned /* color */);
|
|
||||||
extern void draw_solid_line(Graphic */* graphic */, int /* x1 */, int /* y1 */, int /* x2 */, int /* y2 */, unsigned /* color */);
|
|
||||||
extern void copy_overlapping_area(Graphic */* graphic */, int /* src_x */, int /* src_y */, int /* dst_x */, int /* dst_y */, unsigned /* w */, unsigned /* h */, unsigned /* default_color */);
|
|
||||||
extern void hls2rgb(int /* h */, int /* l */, int /* s */, short */* r */, short */* g */, short */* b */);
|
|
||||||
extern void dump_graphic(Graphic const */* graphic */);
|
|
||||||
extern unsigned get_color_register_count(TScreen const */* screen */);
|
|
||||||
extern void update_color_register(Graphic */* graphic */, unsigned /* color */, int /* r */, int /* g */, int /* b */);
|
|
||||||
extern RegisterNum find_color_register(ColorRegister const */* color_registers */, int /* r */, int /* g */, int /* b */);
|
|
||||||
extern void chararea_clear_displayed_graphics(TScreen const */* screen */, int /* leftcol */, int /* toprow */, int /* ncols */, int /* nrows */);
|
|
||||||
extern void pixelarea_clear_displayed_graphics(TScreen const */* screen */, int /* winx */, int /* winy */, int /* w */, int /* h */);
|
|
||||||
extern void refresh_displayed_graphics(XtermWidget /* xw */, int /* leftcol */, int /* toprow */, int /* ncols */, int /* nrows */);
|
|
||||||
extern void refresh_modified_displayed_graphics(XtermWidget /* xw */);
|
|
||||||
extern void reset_displayed_graphics(TScreen const */* screen */);
|
|
||||||
extern void scroll_displayed_graphics(XtermWidget /* xw */, int /* rows */);
|
|
||||||
|
|
||||||
#ifdef NO_LEAKS
|
|
||||||
extern void noleaks_graphics(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define get_new_graphic(xw, charrow, charcol, type) /* nothing */
|
|
||||||
#define get_new_or_matching_graphic(xw, charrow, charcol, actual_width, actual_height, type) /* nothing */
|
|
||||||
#define read_pixel(graphic, x, y) /* nothing */
|
|
||||||
#define draw_solid_pixel(graphic, x, y, color) /* nothing */
|
|
||||||
#define draw_solid_rectangle(graphic, x1, y1, x2, y2, color) /* nothing */
|
|
||||||
#define draw_solid_line(graphic, x1, y1, x2, y2, color) /* nothing */
|
|
||||||
#define copy_overlapping_area(graphic, src_x, src_y, dst_x, dst_y, w, h, default_color) /* nothing */
|
|
||||||
#define hls2rgb(h, l, s, r, g, b) /* nothing */
|
|
||||||
#define dump_graphic(graphic) /* nothing */
|
|
||||||
#define get_color_register_count(screen) /* nothing */
|
|
||||||
#define update_color_register(graphic, color, r, g, b) /* nothing */
|
|
||||||
#define find_color_register(color_registers, r, g, b) /* nothing */
|
|
||||||
#define chararea_clear_displayed_graphics(screen, leftcol, toprow, ncols, nrows) /* nothing */
|
|
||||||
#define pixelarea_clear_displayed_graphics(screen, winx, winy, w, h) /* nothing */
|
|
||||||
#define refresh_displayed_graphics(xw, leftcol, toprow, ncols, nrows) /* nothing */
|
|
||||||
#define refresh_modified_displayed_graphics(xw) /* nothing */
|
|
||||||
#define reset_displayed_graphics(screen) /* nothing */
|
|
||||||
#define scroll_displayed_graphics(xw, rows) /* nothing */
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
|
|
||||||
#endif /* included_graphics_h */
|
|
@ -1,48 +0,0 @@
|
|||||||
/* $XTermId: graphics_regis.h,v 1.2 2016/05/29 16:34:47 tom Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2014,2016 by Ross Combs
|
|
||||||
* Copyright 2014,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_graphics_regis_h
|
|
||||||
#define included_graphics_regis_h
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
|
|
||||||
#include <ptyx.h>
|
|
||||||
|
|
||||||
#if OPT_REGIS_GRAPHICS
|
|
||||||
extern void parse_regis(XtermWidget /* xw */, ANSI */* params */, char const */* string */);
|
|
||||||
#else
|
|
||||||
#define parse_regis(xw, params, string) /* nothing */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
|
|
||||||
#endif /* included_graphics_regis_h */
|
|
@ -1,656 +0,0 @@
|
|||||||
/* $XTermId: graphics_sixel.c,v 1.28 2020/08/06 20:32:33 Ben.Wong Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2014-2016,2020 by Ross Combs
|
|
||||||
* Copyright 2014-2016,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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <xterm.h>
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#include <data.h>
|
|
||||||
#include <VTparse.h>
|
|
||||||
#include <ptyx.h>
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include <graphics.h>
|
|
||||||
#include <graphics_sixel.h>
|
|
||||||
|
|
||||||
/***====================================================================***/
|
|
||||||
/*
|
|
||||||
* Parse numeric parameters which have the operator as a prefix rather than a
|
|
||||||
* suffix as in ANSI format.
|
|
||||||
*
|
|
||||||
* # 0
|
|
||||||
* #1 1
|
|
||||||
* #1; 1
|
|
||||||
* "1;2;640;480 4
|
|
||||||
* #1;2;0;0;0 5
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
parse_prefixedtype_params(ANSI *params, const char **string)
|
|
||||||
{
|
|
||||||
const char *cp = *string;
|
|
||||||
ParmType nparam = 0;
|
|
||||||
int last_empty = 1;
|
|
||||||
|
|
||||||
memset(params, 0, sizeof(*params));
|
|
||||||
params->a_final = CharOf(*cp);
|
|
||||||
if (*cp != '\0')
|
|
||||||
cp++;
|
|
||||||
|
|
||||||
while (*cp != '\0') {
|
|
||||||
Char ch = CharOf(*cp);
|
|
||||||
|
|
||||||
if (isdigit(ch)) {
|
|
||||||
last_empty = 0;
|
|
||||||
if (nparam < NPARAM) {
|
|
||||||
params->a_param[nparam] =
|
|
||||||
(ParmType) ((params->a_param[nparam] * 10)
|
|
||||||
+ (ch - '0'));
|
|
||||||
}
|
|
||||||
} else if (ch == ';') {
|
|
||||||
last_empty = 1;
|
|
||||||
nparam++;
|
|
||||||
} else if (ch == ' ' || ch == '\r' || ch == '\n') {
|
|
||||||
/* EMPTY */ ;
|
|
||||||
} else {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
cp++;
|
|
||||||
}
|
|
||||||
|
|
||||||
*string = cp;
|
|
||||||
if (!last_empty)
|
|
||||||
nparam++;
|
|
||||||
if (nparam > NPARAM)
|
|
||||||
params->a_nparam = NPARAM;
|
|
||||||
else
|
|
||||||
params->a_nparam = nparam;
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
RegisterNum current_register;
|
|
||||||
RegisterNum background; /* current background color register or hole */
|
|
||||||
int aspect_vertical;
|
|
||||||
int aspect_horizontal;
|
|
||||||
int declared_width; /* size as reported by the application */
|
|
||||||
int declared_height; /* size as reported by the application */
|
|
||||||
int row; /* context used during parsing */
|
|
||||||
int col; /* context used during parsing */
|
|
||||||
} SixelContext;
|
|
||||||
|
|
||||||
/* sixel scrolling:
|
|
||||||
* VK100/GIGI ? (did it even support Sixel?)
|
|
||||||
* VT125 unsupported
|
|
||||||
* VT240 unsupported
|
|
||||||
* VT241 unsupported
|
|
||||||
* VT330 mode setting
|
|
||||||
* VT382 ?
|
|
||||||
* VT340 mode setting
|
|
||||||
* dxterm ?
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void
|
|
||||||
init_sixel_background(Graphic *graphic, SixelContext const *context)
|
|
||||||
{
|
|
||||||
RegisterNum *source;
|
|
||||||
RegisterNum *target;
|
|
||||||
size_t length;
|
|
||||||
int r, c;
|
|
||||||
|
|
||||||
TRACE(("initializing sixel background to size=%dx%d bgcolor=%hu\n",
|
|
||||||
context->declared_width,
|
|
||||||
context->declared_height,
|
|
||||||
context->background));
|
|
||||||
|
|
||||||
if (context->background == COLOR_HOLE)
|
|
||||||
return;
|
|
||||||
|
|
||||||
source = graphic->pixels;
|
|
||||||
for (c = 0; c < graphic->actual_width; c++) {
|
|
||||||
source[c] = context->background;
|
|
||||||
}
|
|
||||||
target = source;
|
|
||||||
length = (size_t) graphic->actual_width * sizeof(*target);
|
|
||||||
for (r = 1; r < graphic->actual_height; r++) {
|
|
||||||
target += graphic->max_width;
|
|
||||||
memcpy(target, source, length);
|
|
||||||
}
|
|
||||||
graphic->color_registers_used[context->background] = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
set_sixel(Graphic *graphic, SixelContext const *context, int sixel)
|
|
||||||
{
|
|
||||||
const int mh = graphic->max_height;
|
|
||||||
const int mw = graphic->max_width;
|
|
||||||
RegisterNum color;
|
|
||||||
int pix;
|
|
||||||
|
|
||||||
color = context->current_register;
|
|
||||||
TRACE(("drawing sixel at pos=%d,%d color=%hu (hole=%d, [%d,%d,%d])\n",
|
|
||||||
context->col,
|
|
||||||
context->row,
|
|
||||||
color,
|
|
||||||
color == COLOR_HOLE,
|
|
||||||
((color != COLOR_HOLE)
|
|
||||||
? (unsigned) graphic->color_registers[color].r : 0U),
|
|
||||||
((color != COLOR_HOLE)
|
|
||||||
? (unsigned) graphic->color_registers[color].g : 0U),
|
|
||||||
((color != COLOR_HOLE)
|
|
||||||
? (unsigned) graphic->color_registers[color].b : 0U)));
|
|
||||||
for (pix = 0; pix < 6; pix++) {
|
|
||||||
if (context->col < mw && context->row + pix < mh) {
|
|
||||||
if (sixel & (1 << pix)) {
|
|
||||||
if (context->col + 1 > graphic->actual_width) {
|
|
||||||
graphic->actual_width = context->col + 1;
|
|
||||||
}
|
|
||||||
if (context->row + pix + 1 > graphic->actual_height) {
|
|
||||||
graphic->actual_height = context->row + pix + 1;
|
|
||||||
}
|
|
||||||
graphic->pixels[((context->row + pix) * mw) + context->col] =
|
|
||||||
color;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
TRACE(("sixel pixel %d out of bounds\n", pix));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
update_sixel_aspect(SixelContext const *context, Graphic *graphic)
|
|
||||||
{
|
|
||||||
/* We want to keep the ratio accurate but would like every pixel to have
|
|
||||||
* the same size so keep these as whole numbers.
|
|
||||||
*/
|
|
||||||
/* FIXME: DEC terminals had pixels about twice as tall as they were wide,
|
|
||||||
* and it seems the VT125 and VT24x only used data from odd graphic rows.
|
|
||||||
* This means it basically cancels out if we ignore both, except that
|
|
||||||
* the even rows of pixels may not be written by the application such that
|
|
||||||
* they are suitable for display. In practice this doesn't seem to be
|
|
||||||
* an issue but I have very few test files/programs.
|
|
||||||
*/
|
|
||||||
if (context->aspect_vertical < context->aspect_horizontal) {
|
|
||||||
graphic->pixw = 1;
|
|
||||||
graphic->pixh = ((context->aspect_vertical
|
|
||||||
+ context->aspect_horizontal - 1)
|
|
||||||
/ context->aspect_horizontal);
|
|
||||||
} else {
|
|
||||||
graphic->pixw = ((context->aspect_horizontal
|
|
||||||
+ context->aspect_vertical - 1)
|
|
||||||
/ context->aspect_vertical);
|
|
||||||
graphic->pixh = 1;
|
|
||||||
}
|
|
||||||
TRACE(("sixel aspect ratio: an=%d ad=%d -> pixw=%d pixh=%d\n",
|
|
||||||
context->aspect_vertical,
|
|
||||||
context->aspect_horizontal,
|
|
||||||
graphic->pixw,
|
|
||||||
graphic->pixh));
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
finished_parsing(XtermWidget xw, Graphic *graphic)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
|
|
||||||
/* Update the screen scrolling and do a refresh.
|
|
||||||
* The refresh may not cover the whole graphic.
|
|
||||||
*/
|
|
||||||
if (screen->scroll_amt)
|
|
||||||
FlushScroll(xw);
|
|
||||||
|
|
||||||
if (xw->keyboard.flags & MODE_DECSDM) {
|
|
||||||
int new_row, new_col;
|
|
||||||
|
|
||||||
if (screen->sixel_scrolls_right) {
|
|
||||||
new_row = (graphic->charrow
|
|
||||||
+ (((graphic->actual_height * graphic->pixh)
|
|
||||||
+ FontHeight(screen) - 1)
|
|
||||||
/ FontHeight(screen))
|
|
||||||
- 1);
|
|
||||||
new_col = (graphic->charcol
|
|
||||||
+ (((graphic->actual_width * graphic->pixw)
|
|
||||||
+ FontWidth(screen) - 1)
|
|
||||||
/ FontWidth(screen)));
|
|
||||||
} else {
|
|
||||||
/* FIXME: At least of the VT382 the vertical position appears to be
|
|
||||||
* truncated (rounded toward zero after converting to character row.
|
|
||||||
* This code rounds up, which seems more useful, but it would be
|
|
||||||
* better to be compatible. Verify this is true on a VT3[34]0 as
|
|
||||||
* well.
|
|
||||||
*/
|
|
||||||
new_row = (graphic->charrow
|
|
||||||
+ (((graphic->actual_height * graphic->pixh)
|
|
||||||
+ FontHeight(screen) - 1)
|
|
||||||
/ FontHeight(screen)));
|
|
||||||
new_col = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
TRACE(("setting text position after %dx%d\t%.1f start (%d %d): cursor (%d,%d)\n",
|
|
||||||
graphic->actual_width * graphic->pixw,
|
|
||||||
graphic->actual_height * graphic->pixh,
|
|
||||||
((double) graphic->charrow
|
|
||||||
+ ((double) (graphic->actual_height * graphic->pixh)
|
|
||||||
/ (double) FontHeight(screen))),
|
|
||||||
graphic->charrow,
|
|
||||||
graphic->charcol,
|
|
||||||
new_row, new_col));
|
|
||||||
|
|
||||||
if (new_col > screen->rgt_marg) {
|
|
||||||
new_col = screen->lft_marg;
|
|
||||||
new_row++;
|
|
||||||
TRACE(("column past left margin, overriding to row=%d col=%d\n",
|
|
||||||
new_row, new_col));
|
|
||||||
}
|
|
||||||
|
|
||||||
while (new_row > screen->bot_marg) {
|
|
||||||
xtermScroll(xw, 1);
|
|
||||||
new_row--;
|
|
||||||
TRACE(("bottom row was past screen. new start row=%d, cursor row=%d\n",
|
|
||||||
graphic->charrow, new_row));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (new_row < 0) {
|
|
||||||
/* FIXME: this was triggering, now it isn't */
|
|
||||||
TRACE(("new row is going to be negative (%d); skipping position update!",
|
|
||||||
new_row));
|
|
||||||
} else {
|
|
||||||
set_cur_row(screen, new_row);
|
|
||||||
set_cur_col(screen, new_col <= screen->rgt_marg ? new_col : screen->rgt_marg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
graphic->dirty = 1;
|
|
||||||
refresh_modified_displayed_graphics(xw);
|
|
||||||
|
|
||||||
TRACE(("DONE parsed sixel data\n"));
|
|
||||||
dump_graphic(graphic);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Interpret sixel graphics sequences.
|
|
||||||
*
|
|
||||||
* Resources:
|
|
||||||
* http://vt100.net/docs/vt3xx-gp/chapter14.html
|
|
||||||
* ftp://ftp.cs.utk.edu/pub/shuford/terminal/sixel_graphics_news.txt
|
|
||||||
* ftp://ftp.cs.utk.edu/pub/shuford/terminal/all_about_sixels.txt
|
|
||||||
*/
|
|
||||||
int
|
|
||||||
parse_sixel(XtermWidget xw, ANSI *params, char const *string)
|
|
||||||
{
|
|
||||||
TScreen *screen = TScreenOf(xw);
|
|
||||||
Graphic *graphic;
|
|
||||||
SixelContext context;
|
|
||||||
|
|
||||||
switch (screen->terminal_id) {
|
|
||||||
case 240:
|
|
||||||
case 241:
|
|
||||||
case 330:
|
|
||||||
case 340:
|
|
||||||
context.aspect_vertical = 2;
|
|
||||||
context.aspect_horizontal = 1;
|
|
||||||
break;
|
|
||||||
case 382:
|
|
||||||
context.aspect_vertical = 1;
|
|
||||||
context.aspect_horizontal = 1;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
context.aspect_vertical = 2;
|
|
||||||
context.aspect_horizontal = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
context.declared_width = 0;
|
|
||||||
context.declared_height = 0;
|
|
||||||
|
|
||||||
context.row = 0;
|
|
||||||
context.col = 0;
|
|
||||||
|
|
||||||
/* default isn't white on the VT240, but not sure what it is */
|
|
||||||
context.current_register = 3; /* FIXME: using green, but not sure what it should be */
|
|
||||||
|
|
||||||
if (xw->keyboard.flags & MODE_DECSDM) {
|
|
||||||
TRACE(("sixel scrolling enabled: inline positioning for graphic at %d,%d\n",
|
|
||||||
screen->cur_row, screen->cur_col));
|
|
||||||
graphic = get_new_graphic(xw, screen->cur_row, screen->cur_col, 0U);
|
|
||||||
} else {
|
|
||||||
TRACE(("sixel scrolling disabled: inline positioning for graphic at %d,%d\n",
|
|
||||||
0, 0));
|
|
||||||
graphic = get_new_graphic(xw, 0, 0, 0U);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
int Pmacro = params->a_param[0];
|
|
||||||
int Pbgmode = params->a_param[1];
|
|
||||||
int Phgrid = params->a_param[2];
|
|
||||||
int Pan = params->a_param[3];
|
|
||||||
int Pad = params->a_param[4];
|
|
||||||
int Ph = params->a_param[5];
|
|
||||||
int Pv = params->a_param[6];
|
|
||||||
|
|
||||||
(void) Phgrid;
|
|
||||||
|
|
||||||
TRACE(("sixel bitmap graphics sequence: params=%d (Pmacro=%d Pbgmode=%d Phgrid=%d) scroll_amt=%d\n",
|
|
||||||
params->a_nparam,
|
|
||||||
Pmacro,
|
|
||||||
Pbgmode,
|
|
||||||
Phgrid,
|
|
||||||
screen->scroll_amt));
|
|
||||||
|
|
||||||
switch (params->a_nparam) {
|
|
||||||
case 7:
|
|
||||||
if (Pan == 0 || Pad == 0) {
|
|
||||||
TRACE(("DATA_ERROR: invalid raster ratio %d/%d\n", Pan, Pad));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
context.aspect_vertical = Pan;
|
|
||||||
context.aspect_horizontal = Pad;
|
|
||||||
|
|
||||||
if (Ph <= 0 || Pv <= 0) {
|
|
||||||
TRACE(("DATA_ERROR: raster image dimensions are invalid %dx%d\n",
|
|
||||||
Ph, Pv));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (Ph > graphic->max_width || Pv > graphic->max_height) {
|
|
||||||
TRACE(("DATA_ERROR: raster image dimensions are too large %dx%d\n",
|
|
||||||
Ph, Pv));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
context.declared_width = Ph;
|
|
||||||
context.declared_height = Pv;
|
|
||||||
if (context.declared_width > graphic->actual_width) {
|
|
||||||
graphic->actual_width = context.declared_width;
|
|
||||||
}
|
|
||||||
if (context.declared_height > graphic->actual_height) {
|
|
||||||
graphic->actual_height = context.declared_height;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
case 2:
|
|
||||||
case 1:
|
|
||||||
switch (Pmacro) {
|
|
||||||
case 0:
|
|
||||||
/* keep default aspect settings */
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
case 5:
|
|
||||||
case 6:
|
|
||||||
context.aspect_vertical = 2;
|
|
||||||
context.aspect_horizontal = 1;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
context.aspect_vertical = 5;
|
|
||||||
context.aspect_horizontal = 1;
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
case 4:
|
|
||||||
context.aspect_vertical = 3;
|
|
||||||
context.aspect_horizontal = 1;
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
case 8:
|
|
||||||
case 9:
|
|
||||||
context.aspect_vertical = 1;
|
|
||||||
context.aspect_horizontal = 1;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
TRACE(("DATA_ERROR: unknown sixel macro mode parameter\n"));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 0:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
TRACE(("DATA_ERROR: unexpected parameter count (found %d)\n", params->a_nparam));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Pbgmode == 1) {
|
|
||||||
context.background = COLOR_HOLE;
|
|
||||||
} else {
|
|
||||||
/* FIXME: is the default background register always zero? what about in light background mode? */
|
|
||||||
context.background = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ignore the grid parameter because it seems only printers paid attention to it.
|
|
||||||
* The VT3xx was always 0.0195 cm.
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
update_sixel_aspect(&context, graphic);
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
Char ch = CharOf(*string);
|
|
||||||
if (ch == '\0')
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (ch >= 0x3f && ch <= 0x7e) {
|
|
||||||
int sixel = ch - 0x3f;
|
|
||||||
TRACE(("sixel=%x (%c)\n", sixel, (char) ch));
|
|
||||||
if (!graphic->valid) {
|
|
||||||
init_sixel_background(graphic, &context);
|
|
||||||
graphic->valid = 1;
|
|
||||||
}
|
|
||||||
if (sixel)
|
|
||||||
set_sixel(graphic, &context, sixel);
|
|
||||||
context.col++;
|
|
||||||
} else if (ch == '$') { /* DECGCR */
|
|
||||||
/* ignore DECCRNLM in sixel mode */
|
|
||||||
TRACE(("sixel CR\n"));
|
|
||||||
context.col = 0;
|
|
||||||
} else if (ch == '-') { /* DECGNL */
|
|
||||||
int scroll_lines;
|
|
||||||
TRACE(("sixel NL\n"));
|
|
||||||
scroll_lines = 0;
|
|
||||||
while (graphic->charrow - scroll_lines +
|
|
||||||
(((context.row + Min(6, graphic->actual_height - context.row))
|
|
||||||
* graphic->pixh
|
|
||||||
+ FontHeight(screen) - 1)
|
|
||||||
/ FontHeight(screen)) > screen->bot_marg) {
|
|
||||||
scroll_lines++;
|
|
||||||
}
|
|
||||||
context.col = 0;
|
|
||||||
context.row += 6;
|
|
||||||
/* If we hit the bottom margin on the graphics page (well, we just use the
|
|
||||||
* text margin for now), the behavior is to either scroll or to discard
|
|
||||||
* the remainder of the graphic depending on this setting.
|
|
||||||
*/
|
|
||||||
if (scroll_lines > 0) {
|
|
||||||
if (xw->keyboard.flags & MODE_DECSDM) {
|
|
||||||
Display *display = screen->display;
|
|
||||||
xtermScroll(xw, scroll_lines);
|
|
||||||
XSync(display, False);
|
|
||||||
TRACE(("graphic scrolled the screen %d lines. screen->scroll_amt=%d screen->topline=%d, now starting row is %d\n",
|
|
||||||
scroll_lines,
|
|
||||||
screen->scroll_amt,
|
|
||||||
screen->topline,
|
|
||||||
graphic->charrow));
|
|
||||||
} else {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (ch == '!') { /* DECGRI */
|
|
||||||
int Pcount;
|
|
||||||
const char *start;
|
|
||||||
int sixel;
|
|
||||||
|
|
||||||
start = ++string;
|
|
||||||
for (;;) {
|
|
||||||
ch = CharOf(*string);
|
|
||||||
if (!(isdigit(ch) || isspace(ch)))
|
|
||||||
break;
|
|
||||||
string++;
|
|
||||||
}
|
|
||||||
if (ch == '\0') {
|
|
||||||
TRACE(("DATA_ERROR: sixel data string terminated in the middle of a repeat operator\n"));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
||||||
if (string == start) {
|
|
||||||
TRACE(("DATA_ERROR: sixel data string contains a repeat operator with empty count\n"));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
||||||
Pcount = atoi(start);
|
|
||||||
sixel = ch - 0x3f;
|
|
||||||
TRACE(("sixel repeat operator: sixel=%d (%c), count=%d\n",
|
|
||||||
sixel, (char) ch, Pcount));
|
|
||||||
if (!graphic->valid) {
|
|
||||||
init_sixel_background(graphic, &context);
|
|
||||||
graphic->valid = 1;
|
|
||||||
}
|
|
||||||
if (sixel) {
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < Pcount; i++) {
|
|
||||||
set_sixel(graphic, &context, sixel);
|
|
||||||
context.col++;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
context.col += Pcount;
|
|
||||||
}
|
|
||||||
} else if (ch == '#') { /* DECGCI */
|
|
||||||
ANSI color_params;
|
|
||||||
int Pregister;
|
|
||||||
|
|
||||||
parse_prefixedtype_params(&color_params, &string);
|
|
||||||
Pregister = color_params.a_param[0];
|
|
||||||
if (Pregister >= (int) graphic->valid_registers) {
|
|
||||||
TRACE(("DATA_WARNING: sixel color operator uses out-of-range register %d\n", Pregister));
|
|
||||||
/* FIXME: supposedly the DEC terminals wrapped register indices -- verify */
|
|
||||||
while (Pregister >= (int) graphic->valid_registers)
|
|
||||||
Pregister -= (int) graphic->valid_registers;
|
|
||||||
TRACE(("DATA_WARNING: converted to %d\n", Pregister));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (color_params.a_nparam > 2 && color_params.a_nparam <= 5) {
|
|
||||||
int Pspace = color_params.a_param[1];
|
|
||||||
int Pc1 = color_params.a_param[2];
|
|
||||||
int Pc2 = color_params.a_param[3];
|
|
||||||
int Pc3 = color_params.a_param[4];
|
|
||||||
short r, g, b;
|
|
||||||
|
|
||||||
TRACE(("sixel set color register=%d space=%d color=[%d,%d,%d] (nparams=%d)\n",
|
|
||||||
Pregister, Pspace, Pc1, Pc2, Pc3, color_params.a_nparam));
|
|
||||||
|
|
||||||
switch (Pspace) {
|
|
||||||
case 1: /* HLS */
|
|
||||||
if (Pc1 > 360 || Pc2 > 100 || Pc3 > 100) {
|
|
||||||
TRACE(("DATA_ERROR: sixel set color operator uses out-of-range HLS color coordinates %d,%d,%d\n",
|
|
||||||
Pc1, Pc2, Pc3));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
||||||
hls2rgb(Pc1, Pc2, Pc3, &r, &g, &b);
|
|
||||||
break;
|
|
||||||
case 2: /* RGB */
|
|
||||||
if (Pc1 > 100 || Pc2 > 100 || Pc3 > 100) {
|
|
||||||
TRACE(("DATA_ERROR: sixel set color operator uses out-of-range RGB color coordinates %d,%d,%d\n",
|
|
||||||
Pc1, Pc2, Pc3));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
||||||
r = (short) Pc1;
|
|
||||||
g = (short) Pc2;
|
|
||||||
b = (short) Pc3;
|
|
||||||
break;
|
|
||||||
default: /* unknown */
|
|
||||||
TRACE(("DATA_ERROR: sixel set color operator uses unknown color space %d\n", Pspace));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
||||||
update_color_register(graphic,
|
|
||||||
(RegisterNum) Pregister,
|
|
||||||
r, g, b);
|
|
||||||
} else if (color_params.a_nparam == 1) {
|
|
||||||
TRACE(("sixel switch to color register=%d (nparams=%d)\n",
|
|
||||||
Pregister, color_params.a_nparam));
|
|
||||||
context.current_register = (RegisterNum) Pregister;
|
|
||||||
} else {
|
|
||||||
TRACE(("DATA_ERROR: sixel switch color operator with unexpected parameter count (nparams=%d)\n", color_params.a_nparam));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
} else if (ch == '"') /* DECGRA */ {
|
|
||||||
ANSI raster_params;
|
|
||||||
|
|
||||||
parse_prefixedtype_params(&raster_params, &string);
|
|
||||||
if (raster_params.a_nparam < 2) {
|
|
||||||
TRACE(("DATA_ERROR: sixel raster attribute operator with incomplete parameters (found %d, expected 2 or 4)\n", raster_params.a_nparam));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
} {
|
|
||||||
int Pan = raster_params.a_param[0];
|
|
||||||
int Pad = raster_params.a_param[1];
|
|
||||||
TRACE(("sixel raster attribute with h:w=%d:%d\n", Pan, Pad));
|
|
||||||
if (Pan == 0 || Pad == 0) {
|
|
||||||
TRACE(("DATA_ERROR: invalid raster ratio %d/%d\n", Pan, Pad));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
||||||
context.aspect_vertical = Pan;
|
|
||||||
context.aspect_horizontal = Pad;
|
|
||||||
update_sixel_aspect(&context, graphic);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (raster_params.a_nparam >= 4) {
|
|
||||||
int Ph = raster_params.a_param[2];
|
|
||||||
int Pv = raster_params.a_param[3];
|
|
||||||
|
|
||||||
TRACE(("sixel raster attribute with h=%d v=%d\n", Ph, Pv));
|
|
||||||
if (Ph <= 0 || Pv <= 0) {
|
|
||||||
TRACE(("DATA_ERROR: raster image dimensions are invalid %dx%d\n",
|
|
||||||
Ph, Pv));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
||||||
if (Ph > graphic->max_width || Pv > graphic->max_height) {
|
|
||||||
TRACE(("DATA_ERROR: raster image dimensions are too large %dx%d\n",
|
|
||||||
Ph, Pv));
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
||||||
context.declared_width = Ph;
|
|
||||||
context.declared_height = Pv;
|
|
||||||
if (context.declared_width > graphic->actual_width) {
|
|
||||||
graphic->actual_width = context.declared_width;
|
|
||||||
}
|
|
||||||
if (context.declared_height > graphic->actual_height) {
|
|
||||||
graphic->actual_height = context.declared_height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
continue;
|
|
||||||
} else if (ch == ' ' || ch == '\r' || ch == '\n') {
|
|
||||||
/* EMPTY */ ;
|
|
||||||
} else {
|
|
||||||
TRACE(("DATA_ERROR: skipping unknown sixel command %04x (%c)\n",
|
|
||||||
(int) ch, ch));
|
|
||||||
}
|
|
||||||
|
|
||||||
string++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return finished_parsing(xw, graphic);
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
/* $XTermId: graphics_sixel.h,v 1.4 2016/05/29 16:35:11 tom Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2014,2016 by Ross Combs
|
|
||||||
* Copyright 2014,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_graphics_sixel_h
|
|
||||||
#define included_graphics_sixel_h
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
|
|
||||||
#include <ptyx.h>
|
|
||||||
|
|
||||||
#if OPT_SIXEL_GRAPHICS
|
|
||||||
extern int parse_sixel(XtermWidget /* xw */, ANSI */* params */, char const */* string */);
|
|
||||||
#else
|
|
||||||
#define parse_sixel(xw, params, string) /* nothing */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* *INDENT-ON* */
|
|
||||||
|
|
||||||
#endif /* included_graphics_sixel_h */
|
|
@ -1,298 +0,0 @@
|
|||||||
/* $XTermId: html.c,v 1.19 2020/06/02 23:24:26 tom Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2018-2019,2020 Thomas E. Dickey
|
|
||||||
* Copyright 2015,2018 Jens Schweikhardt
|
|
||||||
*
|
|
||||||
* 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.h>
|
|
||||||
#include <version.h>
|
|
||||||
|
|
||||||
#define MakeDim(color) \
|
|
||||||
color = (unsigned short) ((2 * (unsigned) color) / 3)
|
|
||||||
|
|
||||||
#define RGBPCT(c) \
|
|
||||||
((double)c.red / 655.35), \
|
|
||||||
((double)c.green / 655.35), \
|
|
||||||
((double)c.blue / 655.35)
|
|
||||||
|
|
||||||
static void dumpHtmlHeader(XtermWidget xw, FILE *fp);
|
|
||||||
static void dumpHtmlScreen(XtermWidget xw, FILE *fp);
|
|
||||||
static void dumpHtmlLine(XtermWidget xw, int row, FILE *fp);
|
|
||||||
static void dumpHtmlFooter(XtermWidget, FILE *fp);
|
|
||||||
static void writeStyle(XtermWidget, FILE *fp);
|
|
||||||
|
|
||||||
void
|
|
||||||
xtermDumpHtml(XtermWidget xw)
|
|
||||||
{
|
|
||||||
char *saveLocale;
|
|
||||||
FILE *fp;
|
|
||||||
|
|
||||||
TRACE(("xtermDumpHtml...\n"));
|
|
||||||
saveLocale = xtermSetLocale(LC_NUMERIC, "C");
|
|
||||||
fp = create_printfile(xw, ".xhtml");
|
|
||||||
if (fp != 0) {
|
|
||||||
dumpHtmlHeader(xw, fp);
|
|
||||||
dumpHtmlScreen(xw, fp);
|
|
||||||
dumpHtmlFooter(xw, fp);
|
|
||||||
fclose(fp);
|
|
||||||
}
|
|
||||||
xtermResetLocale(LC_NUMERIC, saveLocale);
|
|
||||||
TRACE(("...xtermDumpHtml done\n"));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
dumpHtmlHeader(XtermWidget xw, FILE *fp)
|
|
||||||
{
|
|
||||||
fputs("<?xml version='1.0' encoding='UTF-8'?>\n", fp);
|
|
||||||
fputs("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'\n", fp);
|
|
||||||
fputs(" 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>\n", fp);
|
|
||||||
fputs("<html xmlns='http://www.w3.org/1999/xhtml' lang='en' xml:lang='en'>\n", fp);
|
|
||||||
fputs(" <head>\n", fp);
|
|
||||||
fprintf(fp, " <meta name='generator' content='%s'/>\n", xtermVersion());
|
|
||||||
fputs(" <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>\n", fp);
|
|
||||||
fputs(" <link rel='Stylesheet' type='text/css' href='xterm.css'/>\n", fp);
|
|
||||||
fputs(" <title>Xterm</title>\n", fp);
|
|
||||||
writeStyle(xw, fp);
|
|
||||||
fputs(" </head>\n", fp);
|
|
||||||
fputs(" <body>\n", fp);
|
|
||||||
fputs(" <div id='vt100'>\n", fp);
|
|
||||||
fputs(" <pre>", fp);
|
|
||||||
xevents(xw);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
writeStyle(XtermWidget xw, FILE *fp)
|
|
||||||
{
|
|
||||||
TScreen *s = TScreenOf(xw);
|
|
||||||
|
|
||||||
fputs(" <style type='text/css'>\n", fp);
|
|
||||||
fputs(" body, pre { margin: 0 }\n", fp);
|
|
||||||
fputs(" #vt100 {\n", fp);
|
|
||||||
fputs(" float: left;\n", fp);
|
|
||||||
fprintf(fp, " font-size: 12pt;\n");
|
|
||||||
fprintf(fp, " border: %upx solid %s;\n", BorderWidth(xw),
|
|
||||||
PixelToCSSColor(xw, BorderPixel(xw)));
|
|
||||||
fprintf(fp, " padding: %dpx;\n", s->border);
|
|
||||||
fprintf(fp, " background: %s\n", PixelToCSSColor(xw, xw->old_background));
|
|
||||||
fprintf(fp, " }\n");
|
|
||||||
fputs(" .ul { text-decoration: underline }\n", fp);
|
|
||||||
fputs(" .bd { font-weight: bold }\n", fp);
|
|
||||||
fputs(" .it { font-style: italic }\n", fp);
|
|
||||||
fputs(" .st { text-decoration: line-through }\n", fp);
|
|
||||||
fputs(" .lu { text-decoration: line-through underline }\n", fp);
|
|
||||||
fputs(" </style>\n", fp);
|
|
||||||
xevents(xw);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
dumpHtmlScreen(XtermWidget xw, FILE *fp)
|
|
||||||
{
|
|
||||||
TScreen *s = TScreenOf(xw);
|
|
||||||
int row;
|
|
||||||
|
|
||||||
for (row = s->top_marg; row <= s->bot_marg; ++row) {
|
|
||||||
dumpHtmlLine(xw, row, fp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Note: initial and final space around values of class and style
|
|
||||||
* attribute are deliberate. They make it easier for XPath
|
|
||||||
* to test whether a particular name is among the attributes.
|
|
||||||
* It allows expressions such as
|
|
||||||
* [contains(@class, ' ul ')]
|
|
||||||
* instead of the unwieldy
|
|
||||||
* [contains(concat(' ', @class, ' '), ' ul ')]
|
|
||||||
* The ev and od (for even and odd rows) values
|
|
||||||
* avoid empty values when going back to old fg/bg.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
dumpHtmlLine(XtermWidget xw, int row, FILE *fp)
|
|
||||||
{
|
|
||||||
TScreen *s = TScreenOf(xw);
|
|
||||||
char attrs[2][sizeof
|
|
||||||
"<span class=' ev ul bd it st du ' style='color: rgb(100.00%, 100.00%, 100.00%); background: rgb(100.00%, 100.00%, 100.00%)'>"];
|
|
||||||
int attr_index = 0;
|
|
||||||
char *attr = &attrs[attr_index][0];
|
|
||||||
int inx = ROW2INX(s, row);
|
|
||||||
LineData *ld = getLineData(s, inx);
|
|
||||||
int col;
|
|
||||||
|
|
||||||
if (ld == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (col = 0; col < MaxCols(s); col++) {
|
|
||||||
XColor fgcolor, bgcolor;
|
|
||||||
IChar chr = ld->charData[col];
|
|
||||||
int slen = 0;
|
|
||||||
|
|
||||||
fgcolor.pixel = xw->old_foreground;
|
|
||||||
bgcolor.pixel = xw->old_background;
|
|
||||||
#if OPT_ISO_COLORS
|
|
||||||
if (ld->attribs[col] & FG_COLOR) {
|
|
||||||
Pixel fg = extract_fg(xw, ld->color[col], ld->attribs[col]);
|
|
||||||
#if OPT_DIRECT_COLOR
|
|
||||||
if (ld->attribs[col] & ATR_DIRECT_FG)
|
|
||||||
fgcolor.pixel = fg;
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
fgcolor.pixel = s->Acolors[fg].value;
|
|
||||||
}
|
|
||||||
if (ld->attribs[col] & BG_COLOR) {
|
|
||||||
Pixel bg = extract_bg(xw, ld->color[col], ld->attribs[col]);
|
|
||||||
#if OPT_DIRECT_COLOR
|
|
||||||
if (ld->attribs[col] & ATR_DIRECT_BG)
|
|
||||||
bgcolor.pixel = bg;
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
bgcolor.pixel = s->Acolors[bg].value;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
XQueryColor(xw->screen.display, xw->core.colormap, &fgcolor);
|
|
||||||
XQueryColor(xw->screen.display, xw->core.colormap, &bgcolor);
|
|
||||||
xevents(xw);
|
|
||||||
|
|
||||||
if (ld->attribs[col] & BLINK) {
|
|
||||||
/* White on red. */
|
|
||||||
fgcolor.red = fgcolor.green = fgcolor.blue = 65535u;
|
|
||||||
bgcolor.red = 65535u;
|
|
||||||
bgcolor.green = bgcolor.blue = 0u;
|
|
||||||
}
|
|
||||||
#if OPT_WIDE_ATTRS
|
|
||||||
if (ld->attribs[col] & ATR_FAINT) {
|
|
||||||
MakeDim(fgcolor.red);
|
|
||||||
MakeDim(fgcolor.green);
|
|
||||||
MakeDim(fgcolor.blue);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (ld->attribs[col] & INVERSE) {
|
|
||||||
XColor tmp = fgcolor;
|
|
||||||
fgcolor = bgcolor;
|
|
||||||
bgcolor = tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
slen = sprintf(attr + slen, "<span class=' %s",
|
|
||||||
((row % 2) ? "ev" : "od"));
|
|
||||||
if (ld->attribs[col] & BOLD)
|
|
||||||
slen += sprintf(attr + slen, " bd");
|
|
||||||
#if OPT_WIDE_ATTRS
|
|
||||||
/*
|
|
||||||
* Handle multiple text-decoration properties.
|
|
||||||
* Treat ATR_DBL_UNDER the same as UNDERLINE since there is no
|
|
||||||
* official proper CSS 2.2 way to use double underlining. (E.g.
|
|
||||||
* using border-bottom does not work for successive lines and
|
|
||||||
* "text-decoration: underline double" is a browser extension).
|
|
||||||
*/
|
|
||||||
if ((ld->attribs[col] & (UNDERLINE | ATR_DBL_UNDER)) &&
|
|
||||||
(ld->attribs[col] & ATR_STRIKEOUT))
|
|
||||||
slen += sprintf(attr + slen, " lu");
|
|
||||||
else if (ld->attribs[col] & (UNDERLINE | ATR_DBL_UNDER))
|
|
||||||
slen += sprintf(attr + slen, " ul");
|
|
||||||
else if (ld->attribs[col] & ATR_STRIKEOUT)
|
|
||||||
slen += sprintf(attr + slen, " st");
|
|
||||||
|
|
||||||
if (ld->attribs[col] & ATR_ITALIC)
|
|
||||||
slen += sprintf(attr + slen, " it");
|
|
||||||
#else
|
|
||||||
if (ld->attribs[col] & UNDERLINE)
|
|
||||||
slen += sprintf(attr + slen, " ul");
|
|
||||||
#endif
|
|
||||||
slen += sprintf(attr + slen,
|
|
||||||
" ' style='color: rgb(%.2f%%, %.2f%%, %.2f%%);",
|
|
||||||
RGBPCT(fgcolor));
|
|
||||||
(void) sprintf(attr + slen,
|
|
||||||
" background: rgb(%.2f%%, %.2f%%, %.2f%%)'>", RGBPCT(bgcolor));
|
|
||||||
if (col == 0) {
|
|
||||||
fputs(attr, fp);
|
|
||||||
attr = &attrs[attr_index ^= 1][0];
|
|
||||||
} else {
|
|
||||||
if (strcmp(&attrs[0][0], &attrs[1][0])) {
|
|
||||||
fputs("</span>", fp);
|
|
||||||
fputs(attr, fp);
|
|
||||||
attr = &attrs[attr_index ^= 1][0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if OPT_WIDE_CHARS
|
|
||||||
if (chr > 127) {
|
|
||||||
/* Ignore hidden characters. */
|
|
||||||
if (chr != HIDDEN_CHAR) {
|
|
||||||
Char temp[10];
|
|
||||||
*convertToUTF8(temp, chr) = 0;
|
|
||||||
fputs((char *) temp, fp);
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
#endif
|
|
||||||
switch (chr) {
|
|
||||||
case 0:
|
|
||||||
fputc(' ', fp);
|
|
||||||
break;
|
|
||||||
case '&':
|
|
||||||
fputs("&", fp);
|
|
||||||
break;
|
|
||||||
case '<':
|
|
||||||
fputs("<", fp);
|
|
||||||
break;
|
|
||||||
case '>':
|
|
||||||
fputs(">", fp);
|
|
||||||
break;
|
|
||||||
case ' ':
|
|
||||||
fputs("\302\240", fp);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
fputc((int) chr, fp);
|
|
||||||
}
|
|
||||||
xevents(xw);
|
|
||||||
}
|
|
||||||
fprintf(fp, "</span>\n");
|
|
||||||
xevents(xw);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
dumpHtmlFooter(XtermWidget xw, FILE *fp)
|
|
||||||
{
|
|
||||||
fputs("</pre>\n", fp);
|
|
||||||
fputs(" </div>\n", fp);
|
|
||||||
fputs(" </body>\n", fp);
|
|
||||||
fputs("</html>\n", fp);
|
|
||||||
xevents(xw);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *
|
|
||||||
PixelToCSSColor(XtermWidget xw, Pixel p)
|
|
||||||
{
|
|
||||||
static char rgb[sizeof "rgb(100.00%, 100.00%, 100.00%)"];
|
|
||||||
XColor c;
|
|
||||||
|
|
||||||
c.pixel = p;
|
|
||||||
XQueryColor(xw->screen.display, xw->core.colormap, &c);
|
|
||||||
sprintf(rgb, "rgb(%.2f%%, %.2f%%, %.2f%%)", RGBPCT(c));
|
|
||||||
return rgb;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 39 KiB |
@ -1,694 +0,0 @@
|
|||||||
/* $XTermId: filled-xterm.xpms,v 1.1 2012/10/07 22:58:01 tom Exp $ */
|
|
||||||
/* generated by ./make-xpms */
|
|
||||||
/* vile:xpmmode */
|
|
||||||
/* XPM */
|
|
||||||
static const char * const filled_xterm_16x16_xpm[] = {
|
|
||||||
"16 16 110 2",
|
|
||||||
" c None",
|
|
||||||
". c #BAA9A9",
|
|
||||||
"+ c #C59C9C",
|
|
||||||
"@ c #C49999",
|
|
||||||
"# c #C6AAAA",
|
|
||||||
"$ c #4D4242",
|
|
||||||
"% c #F0E4E4",
|
|
||||||
"& c #CEBABA",
|
|
||||||
"* c #D5BEBE",
|
|
||||||
"= c #C6B5B5",
|
|
||||||
"- c #CEBEBE",
|
|
||||||
"; c #796D6D",
|
|
||||||
"> c #DEC5C5",
|
|
||||||
", c #B19B9B",
|
|
||||||
"' c #C6B8B8",
|
|
||||||
") c #B19696",
|
|
||||||
"! c #EBE5E5",
|
|
||||||
"~ c #FFFFFF",
|
|
||||||
"{ c #D6D6D6",
|
|
||||||
"] c #D0BDBD",
|
|
||||||
"^ c #FFF4F4",
|
|
||||||
"/ c #FEFDFD",
|
|
||||||
"( c #706969",
|
|
||||||
"_ c #CCC3C3",
|
|
||||||
": c #FFF0F0",
|
|
||||||
"< c #978989",
|
|
||||||
"[ c #A9A5A5",
|
|
||||||
"} c #A7A3A3",
|
|
||||||
"| c #E3E1E1",
|
|
||||||
"1 c #DACBCB",
|
|
||||||
"2 c #DEDEDE",
|
|
||||||
"3 c #FFF8F8",
|
|
||||||
"4 c #FFF6F6",
|
|
||||||
"5 c #FFFCFC",
|
|
||||||
"6 c #FFFEFE",
|
|
||||||
"7 c #D2D2D2",
|
|
||||||
"8 c #9C9C9C",
|
|
||||||
"9 c #9B8787",
|
|
||||||
"0 c #B3A0A0",
|
|
||||||
"a c #FFD5D5",
|
|
||||||
"b c #D4C2C2",
|
|
||||||
"c c #FFE7E7",
|
|
||||||
"d c #7A6F6F",
|
|
||||||
"e c #786F6F",
|
|
||||||
"f c #C2C2C2",
|
|
||||||
"g c #B4B4B4",
|
|
||||||
"h c #FFE3E3",
|
|
||||||
"i c #E1CECE",
|
|
||||||
"j c #FED8D8",
|
|
||||||
"k c #908888",
|
|
||||||
"l c #878080",
|
|
||||||
"m c #898383",
|
|
||||||
"n c #F3ECEC",
|
|
||||||
"o c #D8C2C2",
|
|
||||||
"p c #FFFAFA",
|
|
||||||
"q c #FFF2F2",
|
|
||||||
"r c #FFF9F9",
|
|
||||||
"s c #EFEFEF",
|
|
||||||
"t c #FEFEFE",
|
|
||||||
"u c #C8C3C3",
|
|
||||||
"v c #D2BFBF",
|
|
||||||
"w c #8A8383",
|
|
||||||
"x c #FCE5E5",
|
|
||||||
"y c #D9B6B6",
|
|
||||||
"z c #DDBCBC",
|
|
||||||
"A c #BCA0A0",
|
|
||||||
"B c #F0D2D2",
|
|
||||||
"C c #AB9C9C",
|
|
||||||
"D c #000000",
|
|
||||||
"E c #B0A2A2",
|
|
||||||
"F c #AE9F9F",
|
|
||||||
"G c #C6ABAB",
|
|
||||||
"H c #B48E8E",
|
|
||||||
"I c #C8ABAB",
|
|
||||||
"J c #C39A9A",
|
|
||||||
"K c #D0B2B2",
|
|
||||||
"L c #C3A0A0",
|
|
||||||
"M c #CFB2B2",
|
|
||||||
"N c #C59999",
|
|
||||||
"O c #CCC1C1",
|
|
||||||
"P c #3C3535",
|
|
||||||
"Q c #A39C9C",
|
|
||||||
"R c #FAEDED",
|
|
||||||
"S c #FEFCFC",
|
|
||||||
"T c #F9F2F2",
|
|
||||||
"U c #FEF7F7",
|
|
||||||
"V c #FAEBEB",
|
|
||||||
"W c #FEFAFA",
|
|
||||||
"X c #F9F1F1",
|
|
||||||
"Y c #FEF4F4",
|
|
||||||
"Z c #FAEFEF",
|
|
||||||
"` c #EBE0E0",
|
|
||||||
" . c #DFB9B9",
|
|
||||||
".. c #E8E3E3",
|
|
||||||
"+. c #BBB0B0",
|
|
||||||
"@. c #BBA9A9",
|
|
||||||
"#. c #CEC8C8",
|
|
||||||
"$. c #BCADAD",
|
|
||||||
"%. c #CDC8C8",
|
|
||||||
"&. c #C78D8D",
|
|
||||||
"*. c #E3B2B2",
|
|
||||||
"=. c #E3BCBC",
|
|
||||||
"-. c #BBAAAA",
|
|
||||||
";. c #746C6C",
|
|
||||||
">. c #858585",
|
|
||||||
",. c #8A7F7F",
|
|
||||||
"'. c #977878",
|
|
||||||
"). c #A38686",
|
|
||||||
"!. c #A78686",
|
|
||||||
"~. c #201717",
|
|
||||||
" . + @ @ @ @ @ @ @ @ # $ ",
|
|
||||||
" % & * * * * * * * * = - ; ",
|
|
||||||
" > , ' ) ! ~ ~ ~ ~ ~ { ] ^ ",
|
|
||||||
" > / ( _ ~ ~ ~ ~ ~ ~ { ] : ",
|
|
||||||
" > ~ < [ ~ ~ ~ ~ ~ ~ { ] : ",
|
|
||||||
" > } | 1 2 ~ ~ ~ ~ ~ { ] : ",
|
|
||||||
" > ~ ~ 3 ~ 4 4 5 6 4 7 ] : ",
|
|
||||||
" > 7 8 9 0 a b c d e f ] : ",
|
|
||||||
" > ~ g h i j k c l m f ] n ",
|
|
||||||
" o ~ ~ p ~ q 6 r s t u v w ",
|
|
||||||
" x y z z z z z z A z B C ",
|
|
||||||
" D ",
|
|
||||||
" E F G H I J K L M N O P ",
|
|
||||||
" Q R S T U V W X Y Z U ` Q ",
|
|
||||||
" ...+._ @.#.$.%.&.*.=.-.;. ",
|
|
||||||
" >.>.>.,.'.).).).).).!.~. "};
|
|
||||||
/* XPM */
|
|
||||||
static const char * const filled_xterm_32x32_xpm[] = {
|
|
||||||
"32 32 225 2",
|
|
||||||
" c None",
|
|
||||||
". c #000000",
|
|
||||||
"+ c #D9C2C2",
|
|
||||||
"@ c #EEE5E5",
|
|
||||||
"# c #EBE0E0",
|
|
||||||
"$ c #EBE1E1",
|
|
||||||
"% c #EDE1E1",
|
|
||||||
"& c #918484",
|
|
||||||
"* c #FFEEEE",
|
|
||||||
"= c #F2DCDC",
|
|
||||||
"- c #403838",
|
|
||||||
"; c #5A5A5A",
|
|
||||||
"> c #5B4545",
|
|
||||||
", c #FEF2F2",
|
|
||||||
"' c #E9E9E9",
|
|
||||||
") c #856868",
|
|
||||||
"! c #271D1D",
|
|
||||||
"~ c #FBCFCF",
|
|
||||||
"{ c #746060",
|
|
||||||
"] c #FFFBFB",
|
|
||||||
"^ c #FFFFFF",
|
|
||||||
"/ c #FAF0F0",
|
|
||||||
"( c #5E4949",
|
|
||||||
"_ c #E3DCDC",
|
|
||||||
": c #BAA8A8",
|
|
||||||
"< c #292020",
|
|
||||||
"[ c #F1C0C0",
|
|
||||||
"} c #D9C6C6",
|
|
||||||
"| c #FFECEC",
|
|
||||||
"1 c #FFE8E8",
|
|
||||||
"2 c #FFFAFA",
|
|
||||||
"3 c #FFF0F0",
|
|
||||||
"4 c #FFEFEF",
|
|
||||||
"5 c #705D5D",
|
|
||||||
"6 c #DED5D5",
|
|
||||||
"7 c #F9E6E6",
|
|
||||||
"8 c #D3C3C3",
|
|
||||||
"9 c #392F2F",
|
|
||||||
"0 c #FCF6F6",
|
|
||||||
"a c #BAA7A7",
|
|
||||||
"b c #524646",
|
|
||||||
"c c #D9D1D1",
|
|
||||||
"d c #F2EAEA",
|
|
||||||
"e c #796666",
|
|
||||||
"f c #FEF7F7",
|
|
||||||
"g c #BBAAAA",
|
|
||||||
"h c #918383",
|
|
||||||
"i c #1D1515",
|
|
||||||
"j c #EBDADA",
|
|
||||||
"k c #B5B5B5",
|
|
||||||
"l c #FFF4F4",
|
|
||||||
"m c #DDD0D0",
|
|
||||||
"n c #110A0A",
|
|
||||||
"o c #FEFBFB",
|
|
||||||
"p c #D3C7C7",
|
|
||||||
"q c #FFF3F3",
|
|
||||||
"r c #968484",
|
|
||||||
"s c #F2E9E9",
|
|
||||||
"t c #908484",
|
|
||||||
"u c #FFFDFD",
|
|
||||||
"v c #A89191",
|
|
||||||
"w c #776262",
|
|
||||||
"x c #CCB4B4",
|
|
||||||
"y c #9E7979",
|
|
||||||
"z c #705F5F",
|
|
||||||
"A c #FFCCCC",
|
|
||||||
"B c #FFEAEA",
|
|
||||||
"C c #FFE6E6",
|
|
||||||
"D c #FFF1F1",
|
|
||||||
"E c #FFFEFE",
|
|
||||||
"F c #FFE1E1",
|
|
||||||
"G c #FFF2F2",
|
|
||||||
"H c #FFF7F7",
|
|
||||||
"I c #C7B8B8",
|
|
||||||
"J c #AE9494",
|
|
||||||
"K c #5A4848",
|
|
||||||
"L c #C0AFAF",
|
|
||||||
"M c #D1BDBD",
|
|
||||||
"N c #4F3D3D",
|
|
||||||
"O c #513636",
|
|
||||||
"P c #BCB0B0",
|
|
||||||
"Q c #665757",
|
|
||||||
"R c #1A0C0C",
|
|
||||||
"S c #E4DCDC",
|
|
||||||
"T c #FCF3F3",
|
|
||||||
"U c #1F0C0C",
|
|
||||||
"V c #C3C3C3",
|
|
||||||
"W c #726363",
|
|
||||||
"X c #443A3A",
|
|
||||||
"Y c #FFF8F8",
|
|
||||||
"Z c #583D3D",
|
|
||||||
"` c #FCF4F4",
|
|
||||||
" . c #615757",
|
|
||||||
".. c #6C5656",
|
|
||||||
"+. c #A09393",
|
|
||||||
"@. c #9B8E8E",
|
|
||||||
"#. c #856464",
|
|
||||||
"$. c #4A3F3F",
|
|
||||||
"%. c #BBBBBB",
|
|
||||||
"&. c #C0BCBC",
|
|
||||||
"*. c #452F2F",
|
|
||||||
"=. c #736C6C",
|
|
||||||
"-. c #775656",
|
|
||||||
";. c #878787",
|
|
||||||
">. c #A38888",
|
|
||||||
",. c #624D4D",
|
|
||||||
"'. c #C9B4B4",
|
|
||||||
"). c #F8F0F0",
|
|
||||||
"!. c #FFEDED",
|
|
||||||
"~. c #604242",
|
|
||||||
"{. c #B5A8A8",
|
|
||||||
"]. c #FAE9E9",
|
|
||||||
"^. c #FBF3F3",
|
|
||||||
"/. c #BAB2B2",
|
|
||||||
"(. c #F8DEDE",
|
|
||||||
"_. c #7F6F6F",
|
|
||||||
":. c #B5A2A2",
|
|
||||||
"<. c #806F6F",
|
|
||||||
"[. c #AA8E8E",
|
|
||||||
"}. c #FEFDFD",
|
|
||||||
"|. c #BD9F9F",
|
|
||||||
"1. c #C3B4B4",
|
|
||||||
"2. c #E0DCDC",
|
|
||||||
"3. c #F9EEEE",
|
|
||||||
"4. c #080303",
|
|
||||||
"5. c #F3C1C1",
|
|
||||||
"6. c #B7A2A2",
|
|
||||||
"7. c #4C3A3A",
|
|
||||||
"8. c #DFD6D6",
|
|
||||||
"9. c #7E6D6D",
|
|
||||||
"0. c #FFE9E9",
|
|
||||||
"a. c #B39A9A",
|
|
||||||
"b. c #BBA5A5",
|
|
||||||
"c. c #DEC9C9",
|
|
||||||
"d. c #715D5D",
|
|
||||||
"e. c #F3DDDD",
|
|
||||||
"f. c #8B7979",
|
|
||||||
"g. c #060303",
|
|
||||||
"h. c #FFEBEB",
|
|
||||||
"i. c #EFE9E9",
|
|
||||||
"j. c #EAEAEA",
|
|
||||||
"k. c #FAEFEF",
|
|
||||||
"l. c #D1C3C3",
|
|
||||||
"m. c #0B0707",
|
|
||||||
"n. c #312222",
|
|
||||||
"o. c #584141",
|
|
||||||
"p. c #685252",
|
|
||||||
"q. c #5D5858",
|
|
||||||
"r. c #5F5F5F",
|
|
||||||
"s. c #5B5B5B",
|
|
||||||
"t. c #5C5858",
|
|
||||||
"u. c #473232",
|
|
||||||
"v. c #181111",
|
|
||||||
"w. c #ECD8D8",
|
|
||||||
"x. c #F9EFEF",
|
|
||||||
"y. c #DBC6C6",
|
|
||||||
"z. c #DEC5C5",
|
|
||||||
"A. c #F7EDED",
|
|
||||||
"B. c #DCC4C4",
|
|
||||||
"C. c #F8EDED",
|
|
||||||
"D. c #DEC3C3",
|
|
||||||
"E. c #E0C9C9",
|
|
||||||
"F. c #DEC1C1",
|
|
||||||
"G. c #DBC7C7",
|
|
||||||
"H. c #F7E8E8",
|
|
||||||
"I. c #E1CACA",
|
|
||||||
"J. c #DBC2C2",
|
|
||||||
"K. c #F8EFEF",
|
|
||||||
"L. c #796868",
|
|
||||||
"M. c #422B2B",
|
|
||||||
"N. c #B5A3A3",
|
|
||||||
"O. c #F8ECEC",
|
|
||||||
"P. c #F8EEEE",
|
|
||||||
"Q. c #FDF7F7",
|
|
||||||
"R. c #FEF9F9",
|
|
||||||
"S. c #F7EAEA",
|
|
||||||
"T. c #FDF6F6",
|
|
||||||
"U. c #F7EBEB",
|
|
||||||
"V. c #FDF5F5",
|
|
||||||
"W. c #F7EEEE",
|
|
||||||
"X. c #F8EBEB",
|
|
||||||
"Y. c #786565",
|
|
||||||
"Z. c #2C2121",
|
|
||||||
"`. c #F6E9E9",
|
|
||||||
" + c #F6E8E8",
|
|
||||||
".+ c #F9EDED",
|
|
||||||
"++ c #FEFCFC",
|
|
||||||
"@+ c #F7ECEC",
|
|
||||||
"#+ c #F7E9E9",
|
|
||||||
"$+ c #837070",
|
|
||||||
"%+ c #806C6C",
|
|
||||||
"&+ c #D4C3C3",
|
|
||||||
"*+ c #DCC8C8",
|
|
||||||
"=+ c #DDC2C2",
|
|
||||||
"-+ c #DBBFBF",
|
|
||||||
";+ c #E1C8C8",
|
|
||||||
">+ c #DEC8C8",
|
|
||||||
",+ c #DEC7C7",
|
|
||||||
"'+ c #DFC8C8",
|
|
||||||
")+ c #DEBBBB",
|
|
||||||
"!+ c #FAEEEE",
|
|
||||||
"~+ c #221B1B",
|
|
||||||
"{+ c #3E3131",
|
|
||||||
"]+ c #F8E8E8",
|
|
||||||
"^+ c #8D8181",
|
|
||||||
"/+ c #F6E7E7",
|
|
||||||
"(+ c #696969",
|
|
||||||
"_+ c #6D6D6D",
|
|
||||||
":+ c #6F6C6C",
|
|
||||||
"<+ c #835D5D",
|
|
||||||
"[+ c #875D5D",
|
|
||||||
"}+ c #9D7474",
|
|
||||||
"|+ c #A27A7A",
|
|
||||||
"1+ c #958989",
|
|
||||||
"2+ c #919191",
|
|
||||||
"3+ c #9D9797",
|
|
||||||
"4+ c #917E7E",
|
|
||||||
"5+ c #E3C8C8",
|
|
||||||
"6+ c #241B1B",
|
|
||||||
"7+ c #695959",
|
|
||||||
"8+ c #CEBCBC",
|
|
||||||
"9+ c #D1D1D1",
|
|
||||||
"0+ c #CFCBCB",
|
|
||||||
"a+ c #322424",
|
|
||||||
"b+ c #201818",
|
|
||||||
" ",
|
|
||||||
" . + @ # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % @ & . ",
|
|
||||||
" . * = - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > , ' ) ! ",
|
|
||||||
" . ~ { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / ( _ : / < ",
|
|
||||||
" . [ } | 1 1 2 3 1 4 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 : ^ 7 . ",
|
|
||||||
" . [ } 8 9 0 a b * ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 : ^ 4 . ",
|
|
||||||
" . [ } ^ c d e f ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 g ^ 4 . ",
|
|
||||||
" . [ } ^ ^ h i j ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 k ^ l . ",
|
|
||||||
" . [ } ^ ^ m n | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 k ^ ^ . ",
|
|
||||||
" . [ } ^ o { p q ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 k ^ ^ . ",
|
|
||||||
" . [ } ^ r s ^ t u ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 k ^ ^ . ",
|
|
||||||
" . [ } v w x ^ y z A ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 : ^ ^ . ",
|
|
||||||
" . [ } ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 : ^ ^ . ",
|
|
||||||
" . [ } B C C C D C C C E F G G ^ l C ^ ^ H ] 5 6 : ^ ^ . ",
|
|
||||||
" . [ } I J K L M N L L E O P Q l B R S T U V 5 6 : ^ ^ . ",
|
|
||||||
" . [ } ^ * W ^ * X ^ Y ^ Z ` .q B ..+.@.#.V 5 6 : ^ ^ . ",
|
|
||||||
" . [ } ^ * W ^ * $.%.&.^ *.=.-.u B ;.>.,.'.V 5 6 : ^ ).. ",
|
|
||||||
" . [ } ^ * W ^ * ,.!.!.E ~.^ {.].B ;.^./.(.V 5 6 : ^ _. ",
|
|
||||||
" . [ } ^ q :.^ l <.<.<.E [.^ }.|.3 1.^ ^ B 2.5 6 : 3.4. ",
|
|
||||||
" . 5.6.^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ] 7.8.: 9. ",
|
|
||||||
" . 0.a.b.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.d.e.' f.g. ",
|
|
||||||
" . h.2 i.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.k.^ l.m. ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" ",
|
|
||||||
" n.o.p.p.p.p.q.; r.s.; ; ; t.p.p.p.p.p.p.p.p.u.. ",
|
|
||||||
" v.w.x.y.z.A.3.} B.C.3.D.E.C.C.F.G.C.H.I.J.C.K.L.M. ",
|
|
||||||
" N.O.P.Q.R.S.S.f T.U.S.V.f W.A.Q.Q.P.P.Q.f O.X._.Y. ",
|
|
||||||
" Z.Y `. +V.f .+A.T.Q.O..+++V.K.@+f f #+A.R.V.`.$+x.%+ ",
|
|
||||||
" &+B.X.).*+=+C.#+-+;+C.O.>+,+U.#+'+)+@+#+F.*+!+9.k.~+ ",
|
|
||||||
" {+]+^+/+(+_+_+_+_+_+_+_+_+:+<+[+}+|+1+2+3+S.^+4+5+6+ ",
|
|
||||||
" 7+8+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+0+a+b+ ",
|
|
||||||
" "};
|
|
||||||
/* XPM */
|
|
||||||
static const char * const filled_xterm_48x48_xpm[] = {
|
|
||||||
"48 48 246 2",
|
|
||||||
" c None",
|
|
||||||
". c #000000",
|
|
||||||
"+ c #F6D5D5",
|
|
||||||
"@ c #FFEAEA",
|
|
||||||
"# c #FFD6D6",
|
|
||||||
"$ c #FFD2D2",
|
|
||||||
"% c #FFD3D3",
|
|
||||||
"& c #F8D6D6",
|
|
||||||
"* c #FFEFEF",
|
|
||||||
"= c #FFFFFF",
|
|
||||||
"- c #F6DBDB",
|
|
||||||
"; c #0F0707",
|
|
||||||
"> c #090505",
|
|
||||||
", c #F6DCDC",
|
|
||||||
"' c #FFEEEE",
|
|
||||||
") c #C99999",
|
|
||||||
"! c #030101",
|
|
||||||
"~ c #F7DEDE",
|
|
||||||
"{ c #150B0B",
|
|
||||||
"] c #E3C5C5",
|
|
||||||
"^ c #FFEDED",
|
|
||||||
"/ c #E4CBCB",
|
|
||||||
"( c #140B0B",
|
|
||||||
"_ c #F7DDDD",
|
|
||||||
": c #E0C9C9",
|
|
||||||
"< c #080303",
|
|
||||||
"[ c #FFD9D9",
|
|
||||||
"} c #0D0707",
|
|
||||||
"| c #E5CACA",
|
|
||||||
"1 c #E5CBCB",
|
|
||||||
"2 c #0B0606",
|
|
||||||
"3 c #FFDCDC",
|
|
||||||
"4 c #E2CECE",
|
|
||||||
"5 c #090303",
|
|
||||||
"6 c #E1CBCB",
|
|
||||||
"7 c #9F8A8A",
|
|
||||||
"8 c #3B2929",
|
|
||||||
"9 c #312020",
|
|
||||||
"0 c #FFD5D5",
|
|
||||||
"a c #ECC8C8",
|
|
||||||
"b c #402525",
|
|
||||||
"c c #351F1F",
|
|
||||||
"d c #663E3E",
|
|
||||||
"e c #E6DBDB",
|
|
||||||
"f c #FFFAFA",
|
|
||||||
"g c #FFFEFE",
|
|
||||||
"h c #8C7272",
|
|
||||||
"i c #B4A1A1",
|
|
||||||
"j c #A69494",
|
|
||||||
"k c #D8C0C0",
|
|
||||||
"l c #675353",
|
|
||||||
"m c #FFFDFD",
|
|
||||||
"n c #584545",
|
|
||||||
"o c #E1BFBF",
|
|
||||||
"p c #3C2929",
|
|
||||||
"q c #FCF3F3",
|
|
||||||
"r c #F6EAEA",
|
|
||||||
"s c #160F0F",
|
|
||||||
"t c #E9D3D3",
|
|
||||||
"u c #6E5C5C",
|
|
||||||
"v c #D6BABA",
|
|
||||||
"w c #CBBBBB",
|
|
||||||
"x c #0D0808",
|
|
||||||
"y c #F8E8E8",
|
|
||||||
"z c #FFE2E2",
|
|
||||||
"A c #F4EDED",
|
|
||||||
"B c #FFF2F2",
|
|
||||||
"C c #4B3A3A",
|
|
||||||
"D c #FFFBFB",
|
|
||||||
"E c #AD9292",
|
|
||||||
"F c #FFE1E1",
|
|
||||||
"G c #A28E8E",
|
|
||||||
"H c #CCBDBD",
|
|
||||||
"I c #8B7777",
|
|
||||||
"J c #231515",
|
|
||||||
"K c #ECCECE",
|
|
||||||
"L c #FFDADA",
|
|
||||||
"M c #251414",
|
|
||||||
"N c #9A8686",
|
|
||||||
"O c #FFF1F1",
|
|
||||||
"P c #FFECEC",
|
|
||||||
"Q c #FFE4E4",
|
|
||||||
"R c #FFDFDF",
|
|
||||||
"S c #FFDBDB",
|
|
||||||
"T c #FFF0F0",
|
|
||||||
"U c #FFDDDD",
|
|
||||||
"V c #FFEBEB",
|
|
||||||
"W c #FFF4F4",
|
|
||||||
"X c #FFE5E5",
|
|
||||||
"Y c #FFDEDE",
|
|
||||||
"Z c #B29E9E",
|
|
||||||
"` c #A08F8F",
|
|
||||||
" . c #8A7373",
|
|
||||||
".. c #1C1111",
|
|
||||||
"+. c #D7CACA",
|
|
||||||
"@. c #645555",
|
|
||||||
"#. c #5E4B4B",
|
|
||||||
"$. c #FFF7F7",
|
|
||||||
"%. c #BD9F9F",
|
|
||||||
"&. c #392B2B",
|
|
||||||
"*. c #A19090",
|
|
||||||
"=. c #867474",
|
|
||||||
"-. c #9C8D8D",
|
|
||||||
";. c #A99494",
|
|
||||||
">. c #0E0606",
|
|
||||||
",. c #FFE9E9",
|
|
||||||
"'. c #D5C6C6",
|
|
||||||
"). c #564545",
|
|
||||||
"!. c #FFE7E7",
|
|
||||||
"~. c #5B3D3D",
|
|
||||||
"{. c #352121",
|
|
||||||
"]. c #5B4242",
|
|
||||||
"^. c #FFD7D7",
|
|
||||||
"/. c #E7D2D2",
|
|
||||||
"(. c #1F1313",
|
|
||||||
"_. c #786363",
|
|
||||||
":. c #AC9191",
|
|
||||||
"<. c #FFE8E8",
|
|
||||||
"[. c #DBC7C7",
|
|
||||||
"}. c #897474",
|
|
||||||
"|. c #574E4E",
|
|
||||||
"1. c #999999",
|
|
||||||
"2. c #FFF6F6",
|
|
||||||
"3. c #170F0F",
|
|
||||||
"4. c #3B2B2B",
|
|
||||||
"5. c #190E0E",
|
|
||||||
"6. c #C7B6B6",
|
|
||||||
"7. c #5F4D4D",
|
|
||||||
"8. c #F6E1E1",
|
|
||||||
"9. c #FCE9E9",
|
|
||||||
"0. c #F1EAEA",
|
|
||||||
"a. c #FEFAFA",
|
|
||||||
"b. c #3D2828",
|
|
||||||
"c. c #382626",
|
|
||||||
"d. c #947D7D",
|
|
||||||
"e. c #FFFCFC",
|
|
||||||
"f. c #B09B9B",
|
|
||||||
"g. c #C2B2B2",
|
|
||||||
"h. c #EEDADA",
|
|
||||||
"i. c #FDEFEF",
|
|
||||||
"j. c #0B0505",
|
|
||||||
"k. c #DACACA",
|
|
||||||
"l. c #7D6565",
|
|
||||||
"m. c #C6A7A7",
|
|
||||||
"n. c #FDF9F9",
|
|
||||||
"o. c #6C4D4D",
|
|
||||||
"p. c #AB9797",
|
|
||||||
"q. c #927B7B",
|
|
||||||
"r. c #FCEDED",
|
|
||||||
"s. c #0A0404",
|
|
||||||
"t. c #120B0B",
|
|
||||||
"u. c #E8D1D1",
|
|
||||||
"v. c #E2CACA",
|
|
||||||
"w. c #0F0808",
|
|
||||||
"x. c #907979",
|
|
||||||
"y. c #F9DFDF",
|
|
||||||
"z. c #1D1111",
|
|
||||||
"A. c #E8D0D0",
|
|
||||||
"B. c #E1C8C8",
|
|
||||||
"C. c #1A0C0C",
|
|
||||||
"D. c #F8E0E0",
|
|
||||||
"E. c #F7D4D4",
|
|
||||||
"F. c #090404",
|
|
||||||
"G. c #FAE1E1",
|
|
||||||
"H. c #100A0A",
|
|
||||||
"I. c #100808",
|
|
||||||
"J. c #7C4F4F",
|
|
||||||
"K. c #F6D3D3",
|
|
||||||
"L. c #FFD8D8",
|
|
||||||
"M. c #F8D5D5",
|
|
||||||
"N. c #AF9393",
|
|
||||||
"O. c #FDE5E5",
|
|
||||||
"P. c #FDE9E9",
|
|
||||||
"Q. c #FDE2E2",
|
|
||||||
"R. c #FDF8F8",
|
|
||||||
"S. c #FDE6E6",
|
|
||||||
"T. c #FEECEC",
|
|
||||||
"U. c #FEE5E5",
|
|
||||||
"V. c #FFE6E6",
|
|
||||||
"W. c #F8D1D1",
|
|
||||||
"X. c #0D0404",
|
|
||||||
"Y. c #291D1D",
|
|
||||||
"Z. c #583030",
|
|
||||||
"`. c #FFF8F8",
|
|
||||||
" + c #683737",
|
|
||||||
".+ c #5B3333",
|
|
||||||
"++ c #582D2D",
|
|
||||||
"@+ c #593030",
|
|
||||||
"#+ c #5D3232",
|
|
||||||
"$+ c #5A2D2D",
|
|
||||||
"%+ c #663737",
|
|
||||||
"&+ c #5B3030",
|
|
||||||
"*+ c #897272",
|
|
||||||
"=+ c #996F6F",
|
|
||||||
"-+ c #DBC1C1",
|
|
||||||
";+ c #110808",
|
|
||||||
">+ c #FDDDDD",
|
|
||||||
",+ c #473636",
|
|
||||||
"'+ c #563232",
|
|
||||||
")+ c #FFF5F5",
|
|
||||||
"!+ c #5C3636",
|
|
||||||
"~+ c #FFF9F9",
|
|
||||||
"{+ c #582E2E",
|
|
||||||
"]+ c #6F4040",
|
|
||||||
"^+ c #5B3434",
|
|
||||||
"/+ c #6D3E3E",
|
|
||||||
"(+ c #5A3333",
|
|
||||||
"_+ c #EFD7D7",
|
|
||||||
":+ c #FCEFEF",
|
|
||||||
"<+ c #140A0A",
|
|
||||||
"[+ c #6A5252",
|
|
||||||
"}+ c #583333",
|
|
||||||
"|+ c #5C2A2A",
|
|
||||||
"1+ c #653737",
|
|
||||||
"2+ c #6B3C3C",
|
|
||||||
"3+ c #643434",
|
|
||||||
"4+ c #6A3C3C",
|
|
||||||
"5+ c #613535",
|
|
||||||
"6+ c #9C8787",
|
|
||||||
"7+ c #907A7A",
|
|
||||||
"8+ c #DDC3C3",
|
|
||||||
"9+ c #F8E5E5",
|
|
||||||
"0+ c #FDF3F3",
|
|
||||||
"a+ c #190D0D",
|
|
||||||
"b+ c #FAEAEA",
|
|
||||||
"c+ c #DCC4C4",
|
|
||||||
"d+ c #876E6E",
|
|
||||||
"e+ c #461F1F",
|
|
||||||
"f+ c #472020",
|
|
||||||
"g+ c #261414",
|
|
||||||
"h+ c #070000",
|
|
||||||
"i+ c #220000",
|
|
||||||
"j+ c #230101",
|
|
||||||
"k+ c #3A1818",
|
|
||||||
"l+ c #3F1D1D",
|
|
||||||
"m+ c #3E1E1E",
|
|
||||||
"n+ c #553333",
|
|
||||||
"o+ c #724646",
|
|
||||||
"p+ c #431F1F",
|
|
||||||
"q+ c #AB8F8F",
|
|
||||||
"r+ c #887171",
|
|
||||||
"s+ c #DAC0C0",
|
|
||||||
"t+ c #FBD1D1",
|
|
||||||
"u+ c #1A1010",
|
|
||||||
"v+ c #B27C7C",
|
|
||||||
"w+ c #020101",
|
|
||||||
" ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" . + @ @ # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % @ @ & . . ",
|
|
||||||
" . * = - ; . . . . . . . . . . . . . . . . . . . . . . . . . . > , = ' . ) ! ",
|
|
||||||
" . * ~ { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / ( _ ' . ^ : < ",
|
|
||||||
" . [ } | = = = = = = = = = = = = = = = = = = = = = = = = = = = = 1 2 3 . ^ = 4 5 ",
|
|
||||||
" . [ . * = = = = = = = = = = = = = = = = = = = = = = = = = = = = * . [ . ^ = = 6 . ",
|
|
||||||
" . [ . * 7 8 9 0 = a b c d = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = e f = g h i = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = j = k l g = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = m n o p q = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = r s . t = = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = = u . v = = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = w x y = = = = = = = = = = = = = = = = = = = = * . [ . z = = * . ",
|
|
||||||
" . [ . * = = A B B C D = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = E z = = F G = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * H I J K = = L M } N O = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * P Q Q R = = S Q Q Q T = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = = = = = = = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = = = = = = = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * [ U U U U U V z U U U U W X Y X ^ = = V U O = = O F ' * . [ . ' = = * . ",
|
|
||||||
" . [ . * Z ` ...` Q +.@.#.` ` Q $.%.&.*.=. ^ = -. = = ;.>.,.* . [ . ' = = * . ",
|
|
||||||
" . [ . * = = '. = = = Q = = = = %. = = ).!.= -.~. f f {.].,.* . [ . ' = = * . ",
|
|
||||||
" . [ . * = = '. = = = U U ^.= %. ^ /.(.' = -._.:.<.[.}.@.,.* . [ . ' = = * . ",
|
|
||||||
" . [ . * = = '. = = = @.|.1.1.2.= %.3.4.5. = = -. 6. 7.8.@.,.* . [ . ' = = 9.. ",
|
|
||||||
" . [ . * = = '. = = = Q = = = = %. = 0. ' = -. a.b.c.f @.,.* . [ . ' = = d.. ",
|
|
||||||
" . [ . * = = '. = = = 0 ^ ^ ^ e.%. = = f. m -. = g.h.= @.,.* . [ . ' = i.j. ",
|
|
||||||
" . [ . * = = k. = = = l.9 9 9 ' m. = = n.o.z p. = = = = l.X * . [ . ' = q.. ",
|
|
||||||
" . [ . * = = = = = = = = = = = = = = = = = = = = = = = = = = = = * . [ . ' r.s. ",
|
|
||||||
" . 3 t.u.= = = = = = = = = = = = = = = = = = = = = = = = = = = = v.w.S . ' x.. ",
|
|
||||||
" . * y.z.A.^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ B.C.D.' . E.F. ",
|
|
||||||
" . * = G.H.. . . . . . . . . . . . . . . . . . . . . . . . . . I.D.= ' . J.. ",
|
|
||||||
" . K.P P # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ L.P P M.. . ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" . N.O.P.O.P.Q.R.S.P.O.P.O.P.O.T.U.T.U.T.,.^ ,.^ ,.^ V.^ ,.= D W ,.^ W.X.. ",
|
|
||||||
" Y.W Z.`. +e..+e.++D @+$.Z.`. +e.#+e.$+D @+$.Z.`.%+e.#+e.$+e.&+$.Z.D *+=+. ",
|
|
||||||
" . -+D f e.m D `.= D e.D D f D m D `.= D e.D D f D m D `.= D e.D D f r.;+>+. ",
|
|
||||||
" ,+`.'+)+!+~+{+= ]+f .+`.Z.)+^+~+{+= /+f .+`.Z.)+^+~+{+= /+f (+`.Z.f q.q.T . ",
|
|
||||||
" . _+m f = D m ~+e.`.m f m f = D m ~+e.`.m f e.f = D m ~+e.`.m f m f :+<+i.T . ",
|
|
||||||
" . [+~+}+)+|+~+1+g 2+g 3+`.}+)+|+~+1+g 4+= 3+`.}+)+|+~+1+g 4+= 3+~+5+e.6+7+= 8+. ",
|
|
||||||
" ! 9+= ~+= T ' @ ' ,.' <.' <.' ' ' @ e.f = ~+= ~+= = = D = f = ~+= = 0+a+b+c+! ",
|
|
||||||
" . d+m e+f+e.g+. . . . . . . . . . . . h+i+i+j+k+l+l+c m+l+l+n+o+e.e+p+q+r+s+! ",
|
|
||||||
" . t+* @ @ P S [ L S S S S S S S S S S z ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ P z u+v+w+ ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" "};
|
|
||||||
static const XPM_DATA filled_xterm_xpms[] = {
|
|
||||||
{ "filled-xterm_16x16", filled_xterm_16x16_xpm },
|
|
||||||
{ "filled-xterm_32x32", filled_xterm_32x32_xpm },
|
|
||||||
{ "filled-xterm_48x48", filled_xterm_48x48_xpm }
|
|
||||||
};
|
|
@ -1,129 +0,0 @@
|
|||||||
/* XPM */
|
|
||||||
static char * filled_xterm_16x16_xpm[] = {
|
|
||||||
"16 16 110 2",
|
|
||||||
" c None",
|
|
||||||
". c #BAA9A9",
|
|
||||||
"+ c #C59C9C",
|
|
||||||
"@ c #C49999",
|
|
||||||
"# c #C6AAAA",
|
|
||||||
"$ c #4D4242",
|
|
||||||
"% c #F0E4E4",
|
|
||||||
"& c #CEBABA",
|
|
||||||
"* c #D5BEBE",
|
|
||||||
"= c #C6B5B5",
|
|
||||||
"- c #CEBEBE",
|
|
||||||
"; c #796D6D",
|
|
||||||
"> c #DEC5C5",
|
|
||||||
", c #B19B9B",
|
|
||||||
"' c #C6B8B8",
|
|
||||||
") c #B19696",
|
|
||||||
"! c #EBE5E5",
|
|
||||||
"~ c #FFFFFF",
|
|
||||||
"{ c #D6D6D6",
|
|
||||||
"] c #D0BDBD",
|
|
||||||
"^ c #FFF4F4",
|
|
||||||
"/ c #FEFDFD",
|
|
||||||
"( c #706969",
|
|
||||||
"_ c #CCC3C3",
|
|
||||||
": c #FFF0F0",
|
|
||||||
"< c #978989",
|
|
||||||
"[ c #A9A5A5",
|
|
||||||
"} c #A7A3A3",
|
|
||||||
"| c #E3E1E1",
|
|
||||||
"1 c #DACBCB",
|
|
||||||
"2 c #DEDEDE",
|
|
||||||
"3 c #FFF8F8",
|
|
||||||
"4 c #FFF6F6",
|
|
||||||
"5 c #FFFCFC",
|
|
||||||
"6 c #FFFEFE",
|
|
||||||
"7 c #D2D2D2",
|
|
||||||
"8 c #9C9C9C",
|
|
||||||
"9 c #9B8787",
|
|
||||||
"0 c #B3A0A0",
|
|
||||||
"a c #FFD5D5",
|
|
||||||
"b c #D4C2C2",
|
|
||||||
"c c #FFE7E7",
|
|
||||||
"d c #7A6F6F",
|
|
||||||
"e c #786F6F",
|
|
||||||
"f c #C2C2C2",
|
|
||||||
"g c #B4B4B4",
|
|
||||||
"h c #FFE3E3",
|
|
||||||
"i c #E1CECE",
|
|
||||||
"j c #FED8D8",
|
|
||||||
"k c #908888",
|
|
||||||
"l c #878080",
|
|
||||||
"m c #898383",
|
|
||||||
"n c #F3ECEC",
|
|
||||||
"o c #D8C2C2",
|
|
||||||
"p c #FFFAFA",
|
|
||||||
"q c #FFF2F2",
|
|
||||||
"r c #FFF9F9",
|
|
||||||
"s c #EFEFEF",
|
|
||||||
"t c #FEFEFE",
|
|
||||||
"u c #C8C3C3",
|
|
||||||
"v c #D2BFBF",
|
|
||||||
"w c #8A8383",
|
|
||||||
"x c #FCE5E5",
|
|
||||||
"y c #D9B6B6",
|
|
||||||
"z c #DDBCBC",
|
|
||||||
"A c #BCA0A0",
|
|
||||||
"B c #F0D2D2",
|
|
||||||
"C c #AB9C9C",
|
|
||||||
"D c #000000",
|
|
||||||
"E c #B0A2A2",
|
|
||||||
"F c #AE9F9F",
|
|
||||||
"G c #C6ABAB",
|
|
||||||
"H c #B48E8E",
|
|
||||||
"I c #C8ABAB",
|
|
||||||
"J c #C39A9A",
|
|
||||||
"K c #D0B2B2",
|
|
||||||
"L c #C3A0A0",
|
|
||||||
"M c #CFB2B2",
|
|
||||||
"N c #C59999",
|
|
||||||
"O c #CCC1C1",
|
|
||||||
"P c #3C3535",
|
|
||||||
"Q c #A39C9C",
|
|
||||||
"R c #FAEDED",
|
|
||||||
"S c #FEFCFC",
|
|
||||||
"T c #F9F2F2",
|
|
||||||
"U c #FEF7F7",
|
|
||||||
"V c #FAEBEB",
|
|
||||||
"W c #FEFAFA",
|
|
||||||
"X c #F9F1F1",
|
|
||||||
"Y c #FEF4F4",
|
|
||||||
"Z c #FAEFEF",
|
|
||||||
"` c #EBE0E0",
|
|
||||||
" . c #DFB9B9",
|
|
||||||
".. c #E8E3E3",
|
|
||||||
"+. c #BBB0B0",
|
|
||||||
"@. c #BBA9A9",
|
|
||||||
"#. c #CEC8C8",
|
|
||||||
"$. c #BCADAD",
|
|
||||||
"%. c #CDC8C8",
|
|
||||||
"&. c #C78D8D",
|
|
||||||
"*. c #E3B2B2",
|
|
||||||
"=. c #E3BCBC",
|
|
||||||
"-. c #BBAAAA",
|
|
||||||
";. c #746C6C",
|
|
||||||
">. c #858585",
|
|
||||||
",. c #8A7F7F",
|
|
||||||
"'. c #977878",
|
|
||||||
"). c #A38686",
|
|
||||||
"!. c #A78686",
|
|
||||||
"~. c #201717",
|
|
||||||
" . + @ @ @ @ @ @ @ @ # $ ",
|
|
||||||
" % & * * * * * * * * = - ; ",
|
|
||||||
" > , ' ) ! ~ ~ ~ ~ ~ { ] ^ ",
|
|
||||||
" > / ( _ ~ ~ ~ ~ ~ ~ { ] : ",
|
|
||||||
" > ~ < [ ~ ~ ~ ~ ~ ~ { ] : ",
|
|
||||||
" > } | 1 2 ~ ~ ~ ~ ~ { ] : ",
|
|
||||||
" > ~ ~ 3 ~ 4 4 5 6 4 7 ] : ",
|
|
||||||
" > 7 8 9 0 a b c d e f ] : ",
|
|
||||||
" > ~ g h i j k c l m f ] n ",
|
|
||||||
" o ~ ~ p ~ q 6 r s t u v w ",
|
|
||||||
" x y z z z z z z A z B C ",
|
|
||||||
" D ",
|
|
||||||
" E F G H I J K L M N O P ",
|
|
||||||
" Q R S T U V W X Y Z U ` Q ",
|
|
||||||
" ...+._ @.#.$.%.&.*.=.-.;. ",
|
|
||||||
" >.>.>.,.'.).).).).).!.~. "};
|
|
@ -1,260 +0,0 @@
|
|||||||
/* XPM */
|
|
||||||
static char * filled_xterm_32x32_xpm[] = {
|
|
||||||
"32 32 225 2",
|
|
||||||
" c None",
|
|
||||||
". c #000000",
|
|
||||||
"+ c #D9C2C2",
|
|
||||||
"@ c #EEE5E5",
|
|
||||||
"# c #EBE0E0",
|
|
||||||
"$ c #EBE1E1",
|
|
||||||
"% c #EDE1E1",
|
|
||||||
"& c #918484",
|
|
||||||
"* c #FFEEEE",
|
|
||||||
"= c #F2DCDC",
|
|
||||||
"- c #403838",
|
|
||||||
"; c #5A5A5A",
|
|
||||||
"> c #5B4545",
|
|
||||||
", c #FEF2F2",
|
|
||||||
"' c #E9E9E9",
|
|
||||||
") c #856868",
|
|
||||||
"! c #271D1D",
|
|
||||||
"~ c #FBCFCF",
|
|
||||||
"{ c #746060",
|
|
||||||
"] c #FFFBFB",
|
|
||||||
"^ c #FFFFFF",
|
|
||||||
"/ c #FAF0F0",
|
|
||||||
"( c #5E4949",
|
|
||||||
"_ c #E3DCDC",
|
|
||||||
": c #BAA8A8",
|
|
||||||
"< c #292020",
|
|
||||||
"[ c #F1C0C0",
|
|
||||||
"} c #D9C6C6",
|
|
||||||
"| c #FFECEC",
|
|
||||||
"1 c #FFE8E8",
|
|
||||||
"2 c #FFFAFA",
|
|
||||||
"3 c #FFF0F0",
|
|
||||||
"4 c #FFEFEF",
|
|
||||||
"5 c #705D5D",
|
|
||||||
"6 c #DED5D5",
|
|
||||||
"7 c #F9E6E6",
|
|
||||||
"8 c #D3C3C3",
|
|
||||||
"9 c #392F2F",
|
|
||||||
"0 c #FCF6F6",
|
|
||||||
"a c #BAA7A7",
|
|
||||||
"b c #524646",
|
|
||||||
"c c #D9D1D1",
|
|
||||||
"d c #F2EAEA",
|
|
||||||
"e c #796666",
|
|
||||||
"f c #FEF7F7",
|
|
||||||
"g c #BBAAAA",
|
|
||||||
"h c #918383",
|
|
||||||
"i c #1D1515",
|
|
||||||
"j c #EBDADA",
|
|
||||||
"k c #B5B5B5",
|
|
||||||
"l c #FFF4F4",
|
|
||||||
"m c #DDD0D0",
|
|
||||||
"n c #110A0A",
|
|
||||||
"o c #FEFBFB",
|
|
||||||
"p c #D3C7C7",
|
|
||||||
"q c #FFF3F3",
|
|
||||||
"r c #968484",
|
|
||||||
"s c #F2E9E9",
|
|
||||||
"t c #908484",
|
|
||||||
"u c #FFFDFD",
|
|
||||||
"v c #A89191",
|
|
||||||
"w c #776262",
|
|
||||||
"x c #CCB4B4",
|
|
||||||
"y c #9E7979",
|
|
||||||
"z c #705F5F",
|
|
||||||
"A c #FFCCCC",
|
|
||||||
"B c #FFEAEA",
|
|
||||||
"C c #FFE6E6",
|
|
||||||
"D c #FFF1F1",
|
|
||||||
"E c #FFFEFE",
|
|
||||||
"F c #FFE1E1",
|
|
||||||
"G c #FFF2F2",
|
|
||||||
"H c #FFF7F7",
|
|
||||||
"I c #C7B8B8",
|
|
||||||
"J c #AE9494",
|
|
||||||
"K c #5A4848",
|
|
||||||
"L c #C0AFAF",
|
|
||||||
"M c #D1BDBD",
|
|
||||||
"N c #4F3D3D",
|
|
||||||
"O c #513636",
|
|
||||||
"P c #BCB0B0",
|
|
||||||
"Q c #665757",
|
|
||||||
"R c #1A0C0C",
|
|
||||||
"S c #E4DCDC",
|
|
||||||
"T c #FCF3F3",
|
|
||||||
"U c #1F0C0C",
|
|
||||||
"V c #C3C3C3",
|
|
||||||
"W c #726363",
|
|
||||||
"X c #443A3A",
|
|
||||||
"Y c #FFF8F8",
|
|
||||||
"Z c #583D3D",
|
|
||||||
"` c #FCF4F4",
|
|
||||||
" . c #615757",
|
|
||||||
".. c #6C5656",
|
|
||||||
"+. c #A09393",
|
|
||||||
"@. c #9B8E8E",
|
|
||||||
"#. c #856464",
|
|
||||||
"$. c #4A3F3F",
|
|
||||||
"%. c #BBBBBB",
|
|
||||||
"&. c #C0BCBC",
|
|
||||||
"*. c #452F2F",
|
|
||||||
"=. c #736C6C",
|
|
||||||
"-. c #775656",
|
|
||||||
";. c #878787",
|
|
||||||
">. c #A38888",
|
|
||||||
",. c #624D4D",
|
|
||||||
"'. c #C9B4B4",
|
|
||||||
"). c #F8F0F0",
|
|
||||||
"!. c #FFEDED",
|
|
||||||
"~. c #604242",
|
|
||||||
"{. c #B5A8A8",
|
|
||||||
"]. c #FAE9E9",
|
|
||||||
"^. c #FBF3F3",
|
|
||||||
"/. c #BAB2B2",
|
|
||||||
"(. c #F8DEDE",
|
|
||||||
"_. c #7F6F6F",
|
|
||||||
":. c #B5A2A2",
|
|
||||||
"<. c #806F6F",
|
|
||||||
"[. c #AA8E8E",
|
|
||||||
"}. c #FEFDFD",
|
|
||||||
"|. c #BD9F9F",
|
|
||||||
"1. c #C3B4B4",
|
|
||||||
"2. c #E0DCDC",
|
|
||||||
"3. c #F9EEEE",
|
|
||||||
"4. c #080303",
|
|
||||||
"5. c #F3C1C1",
|
|
||||||
"6. c #B7A2A2",
|
|
||||||
"7. c #4C3A3A",
|
|
||||||
"8. c #DFD6D6",
|
|
||||||
"9. c #7E6D6D",
|
|
||||||
"0. c #FFE9E9",
|
|
||||||
"a. c #B39A9A",
|
|
||||||
"b. c #BBA5A5",
|
|
||||||
"c. c #DEC9C9",
|
|
||||||
"d. c #715D5D",
|
|
||||||
"e. c #F3DDDD",
|
|
||||||
"f. c #8B7979",
|
|
||||||
"g. c #060303",
|
|
||||||
"h. c #FFEBEB",
|
|
||||||
"i. c #EFE9E9",
|
|
||||||
"j. c #EAEAEA",
|
|
||||||
"k. c #FAEFEF",
|
|
||||||
"l. c #D1C3C3",
|
|
||||||
"m. c #0B0707",
|
|
||||||
"n. c #312222",
|
|
||||||
"o. c #584141",
|
|
||||||
"p. c #685252",
|
|
||||||
"q. c #5D5858",
|
|
||||||
"r. c #5F5F5F",
|
|
||||||
"s. c #5B5B5B",
|
|
||||||
"t. c #5C5858",
|
|
||||||
"u. c #473232",
|
|
||||||
"v. c #181111",
|
|
||||||
"w. c #ECD8D8",
|
|
||||||
"x. c #F9EFEF",
|
|
||||||
"y. c #DBC6C6",
|
|
||||||
"z. c #DEC5C5",
|
|
||||||
"A. c #F7EDED",
|
|
||||||
"B. c #DCC4C4",
|
|
||||||
"C. c #F8EDED",
|
|
||||||
"D. c #DEC3C3",
|
|
||||||
"E. c #E0C9C9",
|
|
||||||
"F. c #DEC1C1",
|
|
||||||
"G. c #DBC7C7",
|
|
||||||
"H. c #F7E8E8",
|
|
||||||
"I. c #E1CACA",
|
|
||||||
"J. c #DBC2C2",
|
|
||||||
"K. c #F8EFEF",
|
|
||||||
"L. c #796868",
|
|
||||||
"M. c #422B2B",
|
|
||||||
"N. c #B5A3A3",
|
|
||||||
"O. c #F8ECEC",
|
|
||||||
"P. c #F8EEEE",
|
|
||||||
"Q. c #FDF7F7",
|
|
||||||
"R. c #FEF9F9",
|
|
||||||
"S. c #F7EAEA",
|
|
||||||
"T. c #FDF6F6",
|
|
||||||
"U. c #F7EBEB",
|
|
||||||
"V. c #FDF5F5",
|
|
||||||
"W. c #F7EEEE",
|
|
||||||
"X. c #F8EBEB",
|
|
||||||
"Y. c #786565",
|
|
||||||
"Z. c #2C2121",
|
|
||||||
"`. c #F6E9E9",
|
|
||||||
" + c #F6E8E8",
|
|
||||||
".+ c #F9EDED",
|
|
||||||
"++ c #FEFCFC",
|
|
||||||
"@+ c #F7ECEC",
|
|
||||||
"#+ c #F7E9E9",
|
|
||||||
"$+ c #837070",
|
|
||||||
"%+ c #806C6C",
|
|
||||||
"&+ c #D4C3C3",
|
|
||||||
"*+ c #DCC8C8",
|
|
||||||
"=+ c #DDC2C2",
|
|
||||||
"-+ c #DBBFBF",
|
|
||||||
";+ c #E1C8C8",
|
|
||||||
">+ c #DEC8C8",
|
|
||||||
",+ c #DEC7C7",
|
|
||||||
"'+ c #DFC8C8",
|
|
||||||
")+ c #DEBBBB",
|
|
||||||
"!+ c #FAEEEE",
|
|
||||||
"~+ c #221B1B",
|
|
||||||
"{+ c #3E3131",
|
|
||||||
"]+ c #F8E8E8",
|
|
||||||
"^+ c #8D8181",
|
|
||||||
"/+ c #F6E7E7",
|
|
||||||
"(+ c #696969",
|
|
||||||
"_+ c #6D6D6D",
|
|
||||||
":+ c #6F6C6C",
|
|
||||||
"<+ c #835D5D",
|
|
||||||
"[+ c #875D5D",
|
|
||||||
"}+ c #9D7474",
|
|
||||||
"|+ c #A27A7A",
|
|
||||||
"1+ c #958989",
|
|
||||||
"2+ c #919191",
|
|
||||||
"3+ c #9D9797",
|
|
||||||
"4+ c #917E7E",
|
|
||||||
"5+ c #E3C8C8",
|
|
||||||
"6+ c #241B1B",
|
|
||||||
"7+ c #695959",
|
|
||||||
"8+ c #CEBCBC",
|
|
||||||
"9+ c #D1D1D1",
|
|
||||||
"0+ c #CFCBCB",
|
|
||||||
"a+ c #322424",
|
|
||||||
"b+ c #201818",
|
|
||||||
" ",
|
|
||||||
" . + @ # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % @ & . ",
|
|
||||||
" . * = - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > , ' ) ! ",
|
|
||||||
" . ~ { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / ( _ : / < ",
|
|
||||||
" . [ } | 1 1 2 3 1 4 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 : ^ 7 . ",
|
|
||||||
" . [ } 8 9 0 a b * ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 : ^ 4 . ",
|
|
||||||
" . [ } ^ c d e f ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 g ^ 4 . ",
|
|
||||||
" . [ } ^ ^ h i j ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 k ^ l . ",
|
|
||||||
" . [ } ^ ^ m n | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 k ^ ^ . ",
|
|
||||||
" . [ } ^ o { p q ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 k ^ ^ . ",
|
|
||||||
" . [ } ^ r s ^ t u ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 k ^ ^ . ",
|
|
||||||
" . [ } v w x ^ y z A ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 : ^ ^ . ",
|
|
||||||
" . [ } ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 5 6 : ^ ^ . ",
|
|
||||||
" . [ } B C C C D C C C E F G G ^ l C ^ ^ H ] 5 6 : ^ ^ . ",
|
|
||||||
" . [ } I J K L M N L L E O P Q l B R S T U V 5 6 : ^ ^ . ",
|
|
||||||
" . [ } ^ * W ^ * X ^ Y ^ Z ` .q B ..+.@.#.V 5 6 : ^ ^ . ",
|
|
||||||
" . [ } ^ * W ^ * $.%.&.^ *.=.-.u B ;.>.,.'.V 5 6 : ^ ).. ",
|
|
||||||
" . [ } ^ * W ^ * ,.!.!.E ~.^ {.].B ;.^./.(.V 5 6 : ^ _. ",
|
|
||||||
" . [ } ^ q :.^ l <.<.<.E [.^ }.|.3 1.^ ^ B 2.5 6 : 3.4. ",
|
|
||||||
" . 5.6.^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ] 7.8.: 9. ",
|
|
||||||
" . 0.a.b.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.d.e.' f.g. ",
|
|
||||||
" . h.2 i.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.k.^ l.m. ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" ",
|
|
||||||
" n.o.p.p.p.p.q.; r.s.; ; ; t.p.p.p.p.p.p.p.p.u.. ",
|
|
||||||
" v.w.x.y.z.A.3.} B.C.3.D.E.C.C.F.G.C.H.I.J.C.K.L.M. ",
|
|
||||||
" N.O.P.Q.R.S.S.f T.U.S.V.f W.A.Q.Q.P.P.Q.f O.X._.Y. ",
|
|
||||||
" Z.Y `. +V.f .+A.T.Q.O..+++V.K.@+f f #+A.R.V.`.$+x.%+ ",
|
|
||||||
" &+B.X.).*+=+C.#+-+;+C.O.>+,+U.#+'+)+@+#+F.*+!+9.k.~+ ",
|
|
||||||
" {+]+^+/+(+_+_+_+_+_+_+_+_+:+<+[+}+|+1+2+3+S.^+4+5+6+ ",
|
|
||||||
" 7+8+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+0+a+b+ ",
|
|
||||||
" "};
|
|
@ -1,297 +0,0 @@
|
|||||||
/* XPM */
|
|
||||||
static char * filled_xterm_48x48_xpm[] = {
|
|
||||||
"48 48 246 2",
|
|
||||||
" c None",
|
|
||||||
". c #000000",
|
|
||||||
"+ c #F6D5D5",
|
|
||||||
"@ c #FFEAEA",
|
|
||||||
"# c #FFD6D6",
|
|
||||||
"$ c #FFD2D2",
|
|
||||||
"% c #FFD3D3",
|
|
||||||
"& c #F8D6D6",
|
|
||||||
"* c #FFEFEF",
|
|
||||||
"= c #FFFFFF",
|
|
||||||
"- c #F6DBDB",
|
|
||||||
"; c #0F0707",
|
|
||||||
"> c #090505",
|
|
||||||
", c #F6DCDC",
|
|
||||||
"' c #FFEEEE",
|
|
||||||
") c #C99999",
|
|
||||||
"! c #030101",
|
|
||||||
"~ c #F7DEDE",
|
|
||||||
"{ c #150B0B",
|
|
||||||
"] c #E3C5C5",
|
|
||||||
"^ c #FFEDED",
|
|
||||||
"/ c #E4CBCB",
|
|
||||||
"( c #140B0B",
|
|
||||||
"_ c #F7DDDD",
|
|
||||||
": c #E0C9C9",
|
|
||||||
"< c #080303",
|
|
||||||
"[ c #FFD9D9",
|
|
||||||
"} c #0D0707",
|
|
||||||
"| c #E5CACA",
|
|
||||||
"1 c #E5CBCB",
|
|
||||||
"2 c #0B0606",
|
|
||||||
"3 c #FFDCDC",
|
|
||||||
"4 c #E2CECE",
|
|
||||||
"5 c #090303",
|
|
||||||
"6 c #E1CBCB",
|
|
||||||
"7 c #9F8A8A",
|
|
||||||
"8 c #3B2929",
|
|
||||||
"9 c #312020",
|
|
||||||
"0 c #FFD5D5",
|
|
||||||
"a c #ECC8C8",
|
|
||||||
"b c #402525",
|
|
||||||
"c c #351F1F",
|
|
||||||
"d c #663E3E",
|
|
||||||
"e c #E6DBDB",
|
|
||||||
"f c #FFFAFA",
|
|
||||||
"g c #FFFEFE",
|
|
||||||
"h c #8C7272",
|
|
||||||
"i c #B4A1A1",
|
|
||||||
"j c #A69494",
|
|
||||||
"k c #D8C0C0",
|
|
||||||
"l c #675353",
|
|
||||||
"m c #FFFDFD",
|
|
||||||
"n c #584545",
|
|
||||||
"o c #E1BFBF",
|
|
||||||
"p c #3C2929",
|
|
||||||
"q c #FCF3F3",
|
|
||||||
"r c #F6EAEA",
|
|
||||||
"s c #160F0F",
|
|
||||||
"t c #E9D3D3",
|
|
||||||
"u c #6E5C5C",
|
|
||||||
"v c #D6BABA",
|
|
||||||
"w c #CBBBBB",
|
|
||||||
"x c #0D0808",
|
|
||||||
"y c #F8E8E8",
|
|
||||||
"z c #FFE2E2",
|
|
||||||
"A c #F4EDED",
|
|
||||||
"B c #FFF2F2",
|
|
||||||
"C c #4B3A3A",
|
|
||||||
"D c #FFFBFB",
|
|
||||||
"E c #AD9292",
|
|
||||||
"F c #FFE1E1",
|
|
||||||
"G c #A28E8E",
|
|
||||||
"H c #CCBDBD",
|
|
||||||
"I c #8B7777",
|
|
||||||
"J c #231515",
|
|
||||||
"K c #ECCECE",
|
|
||||||
"L c #FFDADA",
|
|
||||||
"M c #251414",
|
|
||||||
"N c #9A8686",
|
|
||||||
"O c #FFF1F1",
|
|
||||||
"P c #FFECEC",
|
|
||||||
"Q c #FFE4E4",
|
|
||||||
"R c #FFDFDF",
|
|
||||||
"S c #FFDBDB",
|
|
||||||
"T c #FFF0F0",
|
|
||||||
"U c #FFDDDD",
|
|
||||||
"V c #FFEBEB",
|
|
||||||
"W c #FFF4F4",
|
|
||||||
"X c #FFE5E5",
|
|
||||||
"Y c #FFDEDE",
|
|
||||||
"Z c #B29E9E",
|
|
||||||
"` c #A08F8F",
|
|
||||||
" . c #8A7373",
|
|
||||||
".. c #1C1111",
|
|
||||||
"+. c #D7CACA",
|
|
||||||
"@. c #645555",
|
|
||||||
"#. c #5E4B4B",
|
|
||||||
"$. c #FFF7F7",
|
|
||||||
"%. c #BD9F9F",
|
|
||||||
"&. c #392B2B",
|
|
||||||
"*. c #A19090",
|
|
||||||
"=. c #867474",
|
|
||||||
"-. c #9C8D8D",
|
|
||||||
";. c #A99494",
|
|
||||||
">. c #0E0606",
|
|
||||||
",. c #FFE9E9",
|
|
||||||
"'. c #D5C6C6",
|
|
||||||
"). c #564545",
|
|
||||||
"!. c #FFE7E7",
|
|
||||||
"~. c #5B3D3D",
|
|
||||||
"{. c #352121",
|
|
||||||
"]. c #5B4242",
|
|
||||||
"^. c #FFD7D7",
|
|
||||||
"/. c #E7D2D2",
|
|
||||||
"(. c #1F1313",
|
|
||||||
"_. c #786363",
|
|
||||||
":. c #AC9191",
|
|
||||||
"<. c #FFE8E8",
|
|
||||||
"[. c #DBC7C7",
|
|
||||||
"}. c #897474",
|
|
||||||
"|. c #574E4E",
|
|
||||||
"1. c #999999",
|
|
||||||
"2. c #FFF6F6",
|
|
||||||
"3. c #170F0F",
|
|
||||||
"4. c #3B2B2B",
|
|
||||||
"5. c #190E0E",
|
|
||||||
"6. c #C7B6B6",
|
|
||||||
"7. c #5F4D4D",
|
|
||||||
"8. c #F6E1E1",
|
|
||||||
"9. c #FCE9E9",
|
|
||||||
"0. c #F1EAEA",
|
|
||||||
"a. c #FEFAFA",
|
|
||||||
"b. c #3D2828",
|
|
||||||
"c. c #382626",
|
|
||||||
"d. c #947D7D",
|
|
||||||
"e. c #FFFCFC",
|
|
||||||
"f. c #B09B9B",
|
|
||||||
"g. c #C2B2B2",
|
|
||||||
"h. c #EEDADA",
|
|
||||||
"i. c #FDEFEF",
|
|
||||||
"j. c #0B0505",
|
|
||||||
"k. c #DACACA",
|
|
||||||
"l. c #7D6565",
|
|
||||||
"m. c #C6A7A7",
|
|
||||||
"n. c #FDF9F9",
|
|
||||||
"o. c #6C4D4D",
|
|
||||||
"p. c #AB9797",
|
|
||||||
"q. c #927B7B",
|
|
||||||
"r. c #FCEDED",
|
|
||||||
"s. c #0A0404",
|
|
||||||
"t. c #120B0B",
|
|
||||||
"u. c #E8D1D1",
|
|
||||||
"v. c #E2CACA",
|
|
||||||
"w. c #0F0808",
|
|
||||||
"x. c #907979",
|
|
||||||
"y. c #F9DFDF",
|
|
||||||
"z. c #1D1111",
|
|
||||||
"A. c #E8D0D0",
|
|
||||||
"B. c #E1C8C8",
|
|
||||||
"C. c #1A0C0C",
|
|
||||||
"D. c #F8E0E0",
|
|
||||||
"E. c #F7D4D4",
|
|
||||||
"F. c #090404",
|
|
||||||
"G. c #FAE1E1",
|
|
||||||
"H. c #100A0A",
|
|
||||||
"I. c #100808",
|
|
||||||
"J. c #7C4F4F",
|
|
||||||
"K. c #F6D3D3",
|
|
||||||
"L. c #FFD8D8",
|
|
||||||
"M. c #F8D5D5",
|
|
||||||
"N. c #AF9393",
|
|
||||||
"O. c #FDE5E5",
|
|
||||||
"P. c #FDE9E9",
|
|
||||||
"Q. c #FDE2E2",
|
|
||||||
"R. c #FDF8F8",
|
|
||||||
"S. c #FDE6E6",
|
|
||||||
"T. c #FEECEC",
|
|
||||||
"U. c #FEE5E5",
|
|
||||||
"V. c #FFE6E6",
|
|
||||||
"W. c #F8D1D1",
|
|
||||||
"X. c #0D0404",
|
|
||||||
"Y. c #291D1D",
|
|
||||||
"Z. c #583030",
|
|
||||||
"`. c #FFF8F8",
|
|
||||||
" + c #683737",
|
|
||||||
".+ c #5B3333",
|
|
||||||
"++ c #582D2D",
|
|
||||||
"@+ c #593030",
|
|
||||||
"#+ c #5D3232",
|
|
||||||
"$+ c #5A2D2D",
|
|
||||||
"%+ c #663737",
|
|
||||||
"&+ c #5B3030",
|
|
||||||
"*+ c #897272",
|
|
||||||
"=+ c #996F6F",
|
|
||||||
"-+ c #DBC1C1",
|
|
||||||
";+ c #110808",
|
|
||||||
">+ c #FDDDDD",
|
|
||||||
",+ c #473636",
|
|
||||||
"'+ c #563232",
|
|
||||||
")+ c #FFF5F5",
|
|
||||||
"!+ c #5C3636",
|
|
||||||
"~+ c #FFF9F9",
|
|
||||||
"{+ c #582E2E",
|
|
||||||
"]+ c #6F4040",
|
|
||||||
"^+ c #5B3434",
|
|
||||||
"/+ c #6D3E3E",
|
|
||||||
"(+ c #5A3333",
|
|
||||||
"_+ c #EFD7D7",
|
|
||||||
":+ c #FCEFEF",
|
|
||||||
"<+ c #140A0A",
|
|
||||||
"[+ c #6A5252",
|
|
||||||
"}+ c #583333",
|
|
||||||
"|+ c #5C2A2A",
|
|
||||||
"1+ c #653737",
|
|
||||||
"2+ c #6B3C3C",
|
|
||||||
"3+ c #643434",
|
|
||||||
"4+ c #6A3C3C",
|
|
||||||
"5+ c #613535",
|
|
||||||
"6+ c #9C8787",
|
|
||||||
"7+ c #907A7A",
|
|
||||||
"8+ c #DDC3C3",
|
|
||||||
"9+ c #F8E5E5",
|
|
||||||
"0+ c #FDF3F3",
|
|
||||||
"a+ c #190D0D",
|
|
||||||
"b+ c #FAEAEA",
|
|
||||||
"c+ c #DCC4C4",
|
|
||||||
"d+ c #876E6E",
|
|
||||||
"e+ c #461F1F",
|
|
||||||
"f+ c #472020",
|
|
||||||
"g+ c #261414",
|
|
||||||
"h+ c #070000",
|
|
||||||
"i+ c #220000",
|
|
||||||
"j+ c #230101",
|
|
||||||
"k+ c #3A1818",
|
|
||||||
"l+ c #3F1D1D",
|
|
||||||
"m+ c #3E1E1E",
|
|
||||||
"n+ c #553333",
|
|
||||||
"o+ c #724646",
|
|
||||||
"p+ c #431F1F",
|
|
||||||
"q+ c #AB8F8F",
|
|
||||||
"r+ c #887171",
|
|
||||||
"s+ c #DAC0C0",
|
|
||||||
"t+ c #FBD1D1",
|
|
||||||
"u+ c #1A1010",
|
|
||||||
"v+ c #B27C7C",
|
|
||||||
"w+ c #020101",
|
|
||||||
" ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" . + @ @ # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % @ @ & . . ",
|
|
||||||
" . * = - ; . . . . . . . . . . . . . . . . . . . . . . . . . . > , = ' . ) ! ",
|
|
||||||
" . * ~ { ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ / ( _ ' . ^ : < ",
|
|
||||||
" . [ } | = = = = = = = = = = = = = = = = = = = = = = = = = = = = 1 2 3 . ^ = 4 5 ",
|
|
||||||
" . [ . * = = = = = = = = = = = = = = = = = = = = = = = = = = = = * . [ . ^ = = 6 . ",
|
|
||||||
" . [ . * 7 8 9 0 = a b c d = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = e f = g h i = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = j = k l g = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = m n o p q = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = r s . t = = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = = u . v = = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = w x y = = = = = = = = = = = = = = = = = = = = * . [ . z = = * . ",
|
|
||||||
" . [ . * = = A B B C D = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = E z = = F G = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * H I J K = = L M } N O = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * P Q Q R = = S Q Q Q T = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = = = = = = = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * = = = = = = = = = = = = = = = = = = = = = = = = = = = = * . [ . ' = = * . ",
|
|
||||||
" . [ . * [ U U U U U V z U U U U W X Y X ^ = = V U O = = O F ' * . [ . ' = = * . ",
|
|
||||||
" . [ . * Z ` ...` Q +.@.#.` ` Q $.%.&.*.=. ^ = -. = = ;.>.,.* . [ . ' = = * . ",
|
|
||||||
" . [ . * = = '. = = = Q = = = = %. = = ).!.= -.~. f f {.].,.* . [ . ' = = * . ",
|
|
||||||
" . [ . * = = '. = = = U U ^.= %. ^ /.(.' = -._.:.<.[.}.@.,.* . [ . ' = = * . ",
|
|
||||||
" . [ . * = = '. = = = @.|.1.1.2.= %.3.4.5. = = -. 6. 7.8.@.,.* . [ . ' = = 9.. ",
|
|
||||||
" . [ . * = = '. = = = Q = = = = %. = 0. ' = -. a.b.c.f @.,.* . [ . ' = = d.. ",
|
|
||||||
" . [ . * = = '. = = = 0 ^ ^ ^ e.%. = = f. m -. = g.h.= @.,.* . [ . ' = i.j. ",
|
|
||||||
" . [ . * = = k. = = = l.9 9 9 ' m. = = n.o.z p. = = = = l.X * . [ . ' = q.. ",
|
|
||||||
" . [ . * = = = = = = = = = = = = = = = = = = = = = = = = = = = = * . [ . ' r.s. ",
|
|
||||||
" . 3 t.u.= = = = = = = = = = = = = = = = = = = = = = = = = = = = v.w.S . ' x.. ",
|
|
||||||
" . * y.z.A.^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ B.C.D.' . E.F. ",
|
|
||||||
" . * = G.H.. . . . . . . . . . . . . . . . . . . . . . . . . . I.D.= ' . J.. ",
|
|
||||||
" . K.P P # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ L.P P M.. . ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" . N.O.P.O.P.Q.R.S.P.O.P.O.P.O.T.U.T.U.T.,.^ ,.^ ,.^ V.^ ,.= D W ,.^ W.X.. ",
|
|
||||||
" Y.W Z.`. +e..+e.++D @+$.Z.`. +e.#+e.$+D @+$.Z.`.%+e.#+e.$+e.&+$.Z.D *+=+. ",
|
|
||||||
" . -+D f e.m D `.= D e.D D f D m D `.= D e.D D f D m D `.= D e.D D f r.;+>+. ",
|
|
||||||
" ,+`.'+)+!+~+{+= ]+f .+`.Z.)+^+~+{+= /+f .+`.Z.)+^+~+{+= /+f (+`.Z.f q.q.T . ",
|
|
||||||
" . _+m f = D m ~+e.`.m f m f = D m ~+e.`.m f e.f = D m ~+e.`.m f m f :+<+i.T . ",
|
|
||||||
" . [+~+}+)+|+~+1+g 2+g 3+`.}+)+|+~+1+g 4+= 3+`.}+)+|+~+1+g 4+= 3+~+5+e.6+7+= 8+. ",
|
|
||||||
" ! 9+= ~+= T ' @ ' ,.' <.' <.' ' ' @ e.f = ~+= ~+= = = D = f = ~+= = 0+a+b+c+! ",
|
|
||||||
" . d+m e+f+e.g+. . . . . . . . . . . . h+i+i+j+k+l+l+c m+l+l+n+o+e.e+p+q+r+s+! ",
|
|
||||||
" . t+* @ @ P S [ L S S S S S S S S S S z ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ P z u+v+w+ ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" "};
|
|
@ -1,26 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# $XTermId: make-xpms,v 1.6 2012/10/07 22:50:56 tom Exp $
|
|
||||||
# some files are generated from other icons...
|
|
||||||
for name in mini.xterm filled-xterm xterm xterm-color
|
|
||||||
do
|
|
||||||
target=${name}.xpms
|
|
||||||
NAME=`echo "$target" | sed -e 's/[\.-]/_/g'`
|
|
||||||
LIST=
|
|
||||||
echo "** creating $target"
|
|
||||||
rm -f $target
|
|
||||||
echo "/* @XTermId@ */" | sed -e 's/@/$/g' >$target
|
|
||||||
echo "/* generated by $0 $* */" >>$target
|
|
||||||
echo "/* vile:xpmmode */" >>$target
|
|
||||||
for source in ${name}_*[0-9]x[1-9]*.xpm
|
|
||||||
do
|
|
||||||
echo ".. from $source"
|
|
||||||
BASE=`basename "$source" .xpm`
|
|
||||||
PART=`echo "$source" | sed -e 's/[\.-]/_/g'`
|
|
||||||
test -n "$LIST" && LIST="$LIST, "
|
|
||||||
LIST="$LIST
|
|
||||||
{ \"$BASE\", $PART }"
|
|
||||||
sed -e 's/char \*/const char * const/' $source >>$target
|
|
||||||
done
|
|
||||||
echo "static const XPM_DATA $NAME[] = {$LIST
|
|
||||||
};" >>$target
|
|
||||||
done
|
|
@ -1,128 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="48px"
|
|
||||||
height="48px"
|
|
||||||
id="svg2383"
|
|
||||||
sodipodi:version="0.32"
|
|
||||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
|
||||||
sodipodi:docname="mini.xterm.svg"
|
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
|
||||||
version="1.1">
|
|
||||||
<defs
|
|
||||||
id="defs2385">
|
|
||||||
<inkscape:perspective
|
|
||||||
sodipodi:type="inkscape:persp3d"
|
|
||||||
inkscape:vp_x="0 : 24 : 1"
|
|
||||||
inkscape:vp_y="0 : 1000 : 0"
|
|
||||||
inkscape:vp_z="48 : 24 : 1"
|
|
||||||
inkscape:persp3d-origin="24 : 16 : 1"
|
|
||||||
id="perspective2391" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="9.8994949"
|
|
||||||
inkscape:cx="13.950586"
|
|
||||||
inkscape:cy="23.385677"
|
|
||||||
inkscape:current-layer="layer2"
|
|
||||||
showgrid="true"
|
|
||||||
inkscape:grid-bbox="true"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
gridtolerance="2"
|
|
||||||
inkscape:window-width="1018"
|
|
||||||
inkscape:window-height="741"
|
|
||||||
inkscape:window-x="49"
|
|
||||||
inkscape:window-y="31"
|
|
||||||
inkscape:window-maximized="0">
|
|
||||||
<inkscape:grid
|
|
||||||
type="xygrid"
|
|
||||||
id="grid2397"
|
|
||||||
visible="true"
|
|
||||||
enabled="true"
|
|
||||||
empspacing="2" />
|
|
||||||
</sodipodi:namedview>
|
|
||||||
<metadata
|
|
||||||
id="metadata2388">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title>XTerm mini-icon</dc:title>
|
|
||||||
<dc:date>August 21, 2012</dc:date>
|
|
||||||
<dc:creator>
|
|
||||||
<cc:Agent>
|
|
||||||
<dc:title>Thomas E. Dickey</dc:title>
|
|
||||||
</cc:Agent>
|
|
||||||
</dc:creator>
|
|
||||||
<cc:license
|
|
||||||
rdf:resource="http://creativecommons.org/licenses/by/4.0/" />
|
|
||||||
<dc:source>https://invisible-island.net/xterm/xterm.icon.html</dc:source>
|
|
||||||
<dc:identifier>https://invisible-island.net/xterm/images/mini.xterm_256.png</dc:identifier>
|
|
||||||
</cc:Work>
|
|
||||||
<cc:License
|
|
||||||
rdf:about="http://creativecommons.org/licenses/by/4.0/">
|
|
||||||
<cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
|
||||||
<cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
|
||||||
<cc:requires
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
|
||||||
<cc:requires
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
|
||||||
<cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
|
||||||
</cc:License>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
id="layer1"
|
|
||||||
inkscape:label="red"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
style="display:inline"
|
|
||||||
sodipodi:insensitive="true">
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'DejaVu Serif';-inkscape-font-specification:'DejaVu Serif';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ff5e00;fill-opacity:1;stroke:#ff0000;stroke-width:1.19999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
x="2.2518597"
|
|
||||||
y="46.207344"
|
|
||||||
id="text2393"
|
|
||||||
transform="scale(1.0175137,0.9827878)"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan2395"
|
|
||||||
x="2.2518597"
|
|
||||||
y="46.207344"
|
|
||||||
style="font-size:59.79689407px;line-height:1.25;fill:#ff5e00;fill-opacity:1;stroke:#ff0000;stroke-width:1.19999993;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">X</tspan></text>
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer2"
|
|
||||||
inkscape:label="blue">
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'URW Bookman';-inkscape-font-specification:'URW Bookman';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#0000f1;fill-opacity:1;stroke:#00a2ff;stroke-width:0.60000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
x="5.3948884"
|
|
||||||
y="45.424522"
|
|
||||||
id="text3153"
|
|
||||||
transform="scale(1.1128485,0.8985949)"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan3155"
|
|
||||||
x="5.3948884"
|
|
||||||
y="45.424522"
|
|
||||||
style="font-size:52.76168442px;line-height:1.25;stroke-width:0.60000002;stroke-miterlimit:4;stroke-dasharray:none">T</tspan></text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.8 KiB |
@ -1,553 +0,0 @@
|
|||||||
/* $XTermId: mini.xterm.xpms,v 1.4 2012/10/07 20:42:50 tom Exp $ */
|
|
||||||
/* generated by ./make-xpms */
|
|
||||||
/* vile:xpmmode */
|
|
||||||
/* XPM */
|
|
||||||
static const char * const mini_xterm_16x16_xpm[] = {
|
|
||||||
"16 16 84 1",
|
|
||||||
" c None",
|
|
||||||
". c #FF3200",
|
|
||||||
"+ c #FF3C00",
|
|
||||||
"@ c #FF3F00",
|
|
||||||
"# c #FF3B00",
|
|
||||||
"$ c #FF3800",
|
|
||||||
"% c #FF2000",
|
|
||||||
"& c #FF1100",
|
|
||||||
"* c #FF3D00",
|
|
||||||
"= c #FF3900",
|
|
||||||
"- c #FF2200",
|
|
||||||
"; c #FF0A00",
|
|
||||||
"> c #FF5D00",
|
|
||||||
", c #FF1300",
|
|
||||||
"' c #FF0500",
|
|
||||||
") c #D0412F",
|
|
||||||
"! c #DD6722",
|
|
||||||
"~ c #DA3E25",
|
|
||||||
"{ c #D84727",
|
|
||||||
"] c #D03C2F",
|
|
||||||
"^ c #0023F3",
|
|
||||||
"/ c #000BF2",
|
|
||||||
"( c #0E21E6",
|
|
||||||
"_ c #4433B4",
|
|
||||||
": c #352EC3",
|
|
||||||
"< c #0010F2",
|
|
||||||
"[ c #0004F1",
|
|
||||||
"} c #2C33CB",
|
|
||||||
"| c #3E2ABA",
|
|
||||||
"1 c #011EF3",
|
|
||||||
"2 c #0012F3",
|
|
||||||
"3 c #022DF5",
|
|
||||||
"4 c #F2140D",
|
|
||||||
"5 c #FF5E00",
|
|
||||||
"6 c #052AF0",
|
|
||||||
"7 c #0013F3",
|
|
||||||
"8 c #DD4822",
|
|
||||||
"9 c #002CF5",
|
|
||||||
"0 c #004FF7",
|
|
||||||
"a c #003AF6",
|
|
||||||
"b c #1529E1",
|
|
||||||
"c c #D83827",
|
|
||||||
"d c #0037F7",
|
|
||||||
"e c #004CF8",
|
|
||||||
"f c #FF5900",
|
|
||||||
"g c #182EDE",
|
|
||||||
"h c #FF2100",
|
|
||||||
"i c #152CE1",
|
|
||||||
"j c #DD3B22",
|
|
||||||
"k c #FF2300",
|
|
||||||
"l c #FF2A00",
|
|
||||||
"m c #0C28E9",
|
|
||||||
"n c #E1571E",
|
|
||||||
"o c #FF2E00",
|
|
||||||
"p c #012AF4",
|
|
||||||
"q c #E1661E",
|
|
||||||
"r c #FF3600",
|
|
||||||
"s c #FF3500",
|
|
||||||
"t c #0028F4",
|
|
||||||
"u c #0011F2",
|
|
||||||
"v c #D64E29",
|
|
||||||
"w c #FF5C00",
|
|
||||||
"x c #FF2B00",
|
|
||||||
"y c #FF1D00",
|
|
||||||
"z c #FF2F00",
|
|
||||||
"A c #000EF2",
|
|
||||||
"B c #0003F1",
|
|
||||||
"C c #8C4072",
|
|
||||||
"D c #FF4C00",
|
|
||||||
"E c #FF2D00",
|
|
||||||
"F c #0360F6",
|
|
||||||
"G c #0031F6",
|
|
||||||
"H c #0016F3",
|
|
||||||
"I c #0827EE",
|
|
||||||
"J c #3D47BE",
|
|
||||||
"K c #E5631A",
|
|
||||||
"L c #FF4300",
|
|
||||||
"M c #FF3E00",
|
|
||||||
"N c #FF2400",
|
|
||||||
"O c #FF0700",
|
|
||||||
"P c #FF3400",
|
|
||||||
"Q c #FF5700",
|
|
||||||
"R c #FF5600",
|
|
||||||
"S c #FF3700",
|
|
||||||
" .+@#$% &$$*=- ",
|
|
||||||
" ;>#, '+ ",
|
|
||||||
" )!~ {] ",
|
|
||||||
" ^/(_:<[}|1/2 ",
|
|
||||||
" 2345=678 97 ",
|
|
||||||
" 0a =>b7c de ",
|
|
||||||
" fg7 ",
|
|
||||||
" hg7 ",
|
|
||||||
" $i7j ",
|
|
||||||
" klm7no ",
|
|
||||||
" # p7qr ",
|
|
||||||
" sk tuvwx ",
|
|
||||||
" yz ABCfDE ",
|
|
||||||
" = FGHHIJKr ",
|
|
||||||
" $LM$N O$PQRS- ",
|
|
||||||
" "};
|
|
||||||
/* XPM */
|
|
||||||
static const char * const mini_xterm_32x32_xpm[] = {
|
|
||||||
"32 32 143 2",
|
|
||||||
" c None",
|
|
||||||
". c #FF0000",
|
|
||||||
"+ c #FF1900",
|
|
||||||
"@ c #FF1F00",
|
|
||||||
"# c #FF0B00",
|
|
||||||
"$ c #FF1D00",
|
|
||||||
"% c #FF4A00",
|
|
||||||
"& c #FF5100",
|
|
||||||
"* c #FF5B00",
|
|
||||||
"= c #FF5E00",
|
|
||||||
"- c #FF5300",
|
|
||||||
"; c #FF3600",
|
|
||||||
"> c #FF0C00",
|
|
||||||
", c #FF5A00",
|
|
||||||
"' c #FF5C00",
|
|
||||||
") c #FF0A00",
|
|
||||||
"! c #FF0D00",
|
|
||||||
"~ c #FF2E00",
|
|
||||||
"{ c #FF5800",
|
|
||||||
"] c #FF2700",
|
|
||||||
"^ c #FF0500",
|
|
||||||
"/ c #0073FB",
|
|
||||||
"( c #0041F7",
|
|
||||||
"_ c #0074FB",
|
|
||||||
": c #0059F9",
|
|
||||||
"< c #0000F1",
|
|
||||||
"[ c #0505EC",
|
|
||||||
"} c #3A44BE",
|
|
||||||
"| c #615A9A",
|
|
||||||
"1 c #784285",
|
|
||||||
"2 c #3466C8",
|
|
||||||
"3 c #004DF8",
|
|
||||||
"4 c #0053F8",
|
|
||||||
"5 c #006CF9",
|
|
||||||
"6 c #3C44BD",
|
|
||||||
"7 c #2729CF",
|
|
||||||
"8 c #002CF5",
|
|
||||||
"9 c #2D2EC9",
|
|
||||||
"0 c #8D6E71",
|
|
||||||
"a c #E96416",
|
|
||||||
"b c #FF4400",
|
|
||||||
"c c #FF1800",
|
|
||||||
"d c #0019F3",
|
|
||||||
"e c #FF1400",
|
|
||||||
"f c #D66729",
|
|
||||||
"g c #73498A",
|
|
||||||
"h c #091FEB",
|
|
||||||
"i c #002CF4",
|
|
||||||
"j c #006FFC",
|
|
||||||
"k c #0002F1",
|
|
||||||
"l c #0059F8",
|
|
||||||
"m c #AD3252",
|
|
||||||
"n c #FF1700",
|
|
||||||
"o c #FF2B00",
|
|
||||||
"p c #B84A47",
|
|
||||||
"q c #0026F4",
|
|
||||||
"r c #FF0700",
|
|
||||||
"s c #FF1600",
|
|
||||||
"t c #003FF6",
|
|
||||||
"u c #0003F1",
|
|
||||||
"v c #006FFA",
|
|
||||||
"w c #0058F9",
|
|
||||||
"x c #0055FA",
|
|
||||||
"y c #FF3D00",
|
|
||||||
"z c #C3363C",
|
|
||||||
"A c #FF0400",
|
|
||||||
"B c #FF3F00",
|
|
||||||
"C c #FF1000",
|
|
||||||
"D c #003DF6",
|
|
||||||
"E c #005AF8",
|
|
||||||
"F c #002AF4",
|
|
||||||
"G c #FF0100",
|
|
||||||
"H c #FF5600",
|
|
||||||
"I c #C3643C",
|
|
||||||
"J c #A73958",
|
|
||||||
"K c #FF3100",
|
|
||||||
"L c #0020F3",
|
|
||||||
"M c #002DF5",
|
|
||||||
"N c #0089FD",
|
|
||||||
"O c #0022F4",
|
|
||||||
"P c #0085FD",
|
|
||||||
"Q c #C36E3C",
|
|
||||||
"R c #BC3943",
|
|
||||||
"S c #FF1300",
|
|
||||||
"T c #007AFC",
|
|
||||||
"U c #FF2200",
|
|
||||||
"V c #C3693C",
|
|
||||||
"W c #FF4600",
|
|
||||||
"X c #C3563C",
|
|
||||||
"Y c #FF1100",
|
|
||||||
"Z c #BD6C42",
|
|
||||||
"` c #C12F3E",
|
|
||||||
" . c #B13B4E",
|
|
||||||
".. c #C32F3C",
|
|
||||||
"+. c #C0283F",
|
|
||||||
"@. c #C34D3C",
|
|
||||||
"#. c #FF2400",
|
|
||||||
"$. c #BC3E43",
|
|
||||||
"%. c #C36D3C",
|
|
||||||
"&. c #FF3400",
|
|
||||||
"*. c #FF0800",
|
|
||||||
"=. c #C36B3C",
|
|
||||||
"-. c #FF4E00",
|
|
||||||
";. c #C3523C",
|
|
||||||
">. c #FF3E00",
|
|
||||||
",. c #FF1C00",
|
|
||||||
"'. c #FF0200",
|
|
||||||
"). c #BF3240",
|
|
||||||
"!. c #FF1A00",
|
|
||||||
"~. c #B4624B",
|
|
||||||
"{. c #FF5900",
|
|
||||||
"]. c #FF1200",
|
|
||||||
"^. c #B82E47",
|
|
||||||
"/. c #FF4800",
|
|
||||||
"(. c #FF3A00",
|
|
||||||
"_. c #001EF4",
|
|
||||||
":. c #001DF4",
|
|
||||||
"<. c #7D4882",
|
|
||||||
"[. c #FF4F00",
|
|
||||||
"}. c #0076FB",
|
|
||||||
"|. c #000CF2",
|
|
||||||
"1. c #0276F9",
|
|
||||||
"2. c #FF3800",
|
|
||||||
"3. c #FF5D00",
|
|
||||||
"4. c #004CF7",
|
|
||||||
"5. c #004CF8",
|
|
||||||
"6. c #FB0104",
|
|
||||||
"7. c #FF5500",
|
|
||||||
"8. c #B53E4A",
|
|
||||||
"9. c #0055F8",
|
|
||||||
"0. c #0038F6",
|
|
||||||
"a. c #0028F4",
|
|
||||||
"b. c #0039F6",
|
|
||||||
"c. c #0254F6",
|
|
||||||
"d. c #C66E39",
|
|
||||||
"e. c #FF3500",
|
|
||||||
"f. c #248ADB",
|
|
||||||
"g. c #785587",
|
|
||||||
"h. c #DE3121",
|
|
||||||
"i. c #FF1E00",
|
|
||||||
"j. c #FF2800",
|
|
||||||
"k. c #FF5700",
|
|
||||||
"l. c #FF1B00",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" . + @ @ @ @ @ @ @ @ @ # $ . @ @ @ @ @ @ @ @ . ",
|
|
||||||
" . % & & * = = = - & & ; @ > & & & , ' & & & ) ",
|
|
||||||
" . . . . ! = = = ~ . . . . . . . { ] ^ . . . ",
|
|
||||||
" / ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( _ ",
|
|
||||||
" : < < < [ } | 1 2 3 < < < < 4 5 6 7 < < < < : ",
|
|
||||||
" 8 < < 9 0 a = b c d < < d e f g h < < i ",
|
|
||||||
" j k < l m n = = = o p q < < q r { ] s t < u v ",
|
|
||||||
" w < x . y = = ' z q < < q A % B C D < E ",
|
|
||||||
" 8 F G H = = I q < < q J K & ! L M ",
|
|
||||||
" N O P r = = Q q < < q R ' S T O N ",
|
|
||||||
" . U = Q q < < q V ] s ",
|
|
||||||
" . W Q q < < q X Y ",
|
|
||||||
" G Z q < < q ` ",
|
|
||||||
" .q < < q .. ",
|
|
||||||
" +.q < < q @.#. ",
|
|
||||||
" $.q < < q %.+ &. ",
|
|
||||||
" *.=.q < < q Q - Y ",
|
|
||||||
" A -.;.q < < q Q = >.,. ",
|
|
||||||
" '.; -.).q < < q Q = = U ~ ",
|
|
||||||
" !., Y q < < q ~.= = {.]. ",
|
|
||||||
" *., U q < < q ^., = = /.s ",
|
|
||||||
" A -.(.]. _.< < :.<.C = = = ~ ] ",
|
|
||||||
" '.; [.! }.|.< < |.1.. 2.= = 3.s ",
|
|
||||||
" !., Y 4.< < < < 5. 6.7.= = & ]. ",
|
|
||||||
" *., U 8.9.0.a.< < < < < < a.b.c.d.= = (.@ ",
|
|
||||||
" A -.e.# f. g.h.= = = i.j. ",
|
|
||||||
" . @ @ ,.y , Y ,.@ @ G '.@ ,.].* = = k.l.@ @ . ",
|
|
||||||
" . & & & & & & & & & ) ,.& & & & & & & & & & ) ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" "};
|
|
||||||
/* XPM */
|
|
||||||
static const char * const 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.@ @ @ @ @ @ @ @ @ @ @ @ @ ^ ! $ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ $ . ",
|
|
||||||
" . & & & & & & & & & & & & & . . , & & & & & & & & & & & & & & & , . ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" ",
|
|
||||||
" "};
|
|
||||||
static const XPM_DATA mini_xterm_xpms[] = {
|
|
||||||
{ "mini.xterm_16x16", mini_xterm_16x16_xpm },
|
|
||||||
{ "mini.xterm_32x32", mini_xterm_32x32_xpm },
|
|
||||||
{ "mini.xterm_48x48", mini_xterm_48x48_xpm }
|
|
||||||
};
|
|
Before Width: | Height: | Size: 732 B |
@ -1,103 +0,0 @@
|
|||||||
/* XPM */
|
|
||||||
static char * mini_xterm_16x16_xpm[] = {
|
|
||||||
"16 16 84 1",
|
|
||||||
" c None",
|
|
||||||
". c #FF3200",
|
|
||||||
"+ c #FF3C00",
|
|
||||||
"@ c #FF3F00",
|
|
||||||
"# c #FF3B00",
|
|
||||||
"$ c #FF3800",
|
|
||||||
"% c #FF2000",
|
|
||||||
"& c #FF1100",
|
|
||||||
"* c #FF3D00",
|
|
||||||
"= c #FF3900",
|
|
||||||
"- c #FF2200",
|
|
||||||
"; c #FF0A00",
|
|
||||||
"> c #FF5D00",
|
|
||||||
", c #FF1300",
|
|
||||||
"' c #FF0500",
|
|
||||||
") c #D0412F",
|
|
||||||
"! c #DD6722",
|
|
||||||
"~ c #DA3E25",
|
|
||||||
"{ c #D84727",
|
|
||||||
"] c #D03C2F",
|
|
||||||
"^ c #0023F3",
|
|
||||||
"/ c #000BF2",
|
|
||||||
"( c #0E21E6",
|
|
||||||
"_ c #4433B4",
|
|
||||||
": c #352EC3",
|
|
||||||
"< c #0010F2",
|
|
||||||
"[ c #0004F1",
|
|
||||||
"} c #2C33CB",
|
|
||||||
"| c #3E2ABA",
|
|
||||||
"1 c #011EF3",
|
|
||||||
"2 c #0012F3",
|
|
||||||
"3 c #022DF5",
|
|
||||||
"4 c #F2140D",
|
|
||||||
"5 c #FF5E00",
|
|
||||||
"6 c #052AF0",
|
|
||||||
"7 c #0013F3",
|
|
||||||
"8 c #DD4822",
|
|
||||||
"9 c #002CF5",
|
|
||||||
"0 c #004FF7",
|
|
||||||
"a c #003AF6",
|
|
||||||
"b c #1529E1",
|
|
||||||
"c c #D83827",
|
|
||||||
"d c #0037F7",
|
|
||||||
"e c #004CF8",
|
|
||||||
"f c #FF5900",
|
|
||||||
"g c #182EDE",
|
|
||||||
"h c #FF2100",
|
|
||||||
"i c #152CE1",
|
|
||||||
"j c #DD3B22",
|
|
||||||
"k c #FF2300",
|
|
||||||
"l c #FF2A00",
|
|
||||||
"m c #0C28E9",
|
|
||||||
"n c #E1571E",
|
|
||||||
"o c #FF2E00",
|
|
||||||
"p c #012AF4",
|
|
||||||
"q c #E1661E",
|
|
||||||
"r c #FF3600",
|
|
||||||
"s c #FF3500",
|
|
||||||
"t c #0028F4",
|
|
||||||
"u c #0011F2",
|
|
||||||
"v c #D64E29",
|
|
||||||
"w c #FF5C00",
|
|
||||||
"x c #FF2B00",
|
|
||||||
"y c #FF1D00",
|
|
||||||
"z c #FF2F00",
|
|
||||||
"A c #000EF2",
|
|
||||||
"B c #0003F1",
|
|
||||||
"C c #8C4072",
|
|
||||||
"D c #FF4C00",
|
|
||||||
"E c #FF2D00",
|
|
||||||
"F c #0360F6",
|
|
||||||
"G c #0031F6",
|
|
||||||
"H c #0016F3",
|
|
||||||
"I c #0827EE",
|
|
||||||
"J c #3D47BE",
|
|
||||||
"K c #E5631A",
|
|
||||||
"L c #FF4300",
|
|
||||||
"M c #FF3E00",
|
|
||||||
"N c #FF2400",
|
|
||||||
"O c #FF0700",
|
|
||||||
"P c #FF3400",
|
|
||||||
"Q c #FF5700",
|
|
||||||
"R c #FF5600",
|
|
||||||
"S c #FF3700",
|
|
||||||
" .+@#$% &$$*=- ",
|
|
||||||
" ;>#, '+ ",
|
|
||||||
" )!~ {] ",
|
|
||||||
" ^/(_:<[}|1/2 ",
|
|
||||||
" 2345=678 97 ",
|
|
||||||
" 0a =>b7c de ",
|
|
||||||
" fg7 ",
|
|
||||||
" hg7 ",
|
|
||||||
" $i7j ",
|
|
||||||
" klm7no ",
|
|
||||||
" # p7qr ",
|
|
||||||
" sk tuvwx ",
|
|
||||||
" yz ABCfDE ",
|
|
||||||
" = FGHHIJKr ",
|
|
||||||
" $LM$N O$PQRS- ",
|
|
||||||
" "};
|
|
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 1.4 KiB |
@ -1,178 +0,0 @@
|
|||||||
/* XPM */
|
|
||||||
static char * mini_xterm_32x32_xpm[] = {
|
|
||||||
"32 32 143 2",
|
|
||||||
" c None",
|
|
||||||
". c #FF0000",
|
|
||||||
"+ c #FF1900",
|
|
||||||
"@ c #FF1F00",
|
|
||||||
"# c #FF0B00",
|
|
||||||
"$ c #FF1D00",
|
|
||||||
"% c #FF4A00",
|
|
||||||
"& c #FF5100",
|
|
||||||
"* c #FF5B00",
|
|
||||||
"= c #FF5E00",
|
|
||||||
"- c #FF5300",
|
|
||||||
"; c #FF3600",
|
|
||||||
"> c #FF0C00",
|
|
||||||
", c #FF5A00",
|
|
||||||
"' c #FF5C00",
|
|
||||||
") c #FF0A00",
|
|
||||||
"! c #FF0D00",
|
|
||||||
"~ c #FF2E00",
|
|
||||||
"{ c #FF5800",
|
|
||||||
"] c #FF2700",
|
|
||||||
"^ c #FF0500",
|
|
||||||
"/ c #0073FB",
|
|
||||||
"( c #0041F7",
|
|
||||||
"_ c #0074FB",
|
|
||||||
": c #0059F9",
|
|
||||||
"< c #0000F1",
|
|
||||||
"[ c #0505EC",
|
|
||||||
"} c #3A44BE",
|
|
||||||
"| c #615A9A",
|
|
||||||
"1 c #784285",
|
|
||||||
"2 c #3466C8",
|
|
||||||
"3 c #004DF8",
|
|
||||||
"4 c #0053F8",
|
|
||||||
"5 c #006CF9",
|
|
||||||
"6 c #3C44BD",
|
|
||||||
"7 c #2729CF",
|
|
||||||
"8 c #002CF5",
|
|
||||||
"9 c #2D2EC9",
|
|
||||||
"0 c #8D6E71",
|
|
||||||
"a c #E96416",
|
|
||||||
"b c #FF4400",
|
|
||||||
"c c #FF1800",
|
|
||||||
"d c #0019F3",
|
|
||||||
"e c #FF1400",
|
|
||||||
"f c #D66729",
|
|
||||||
"g c #73498A",
|
|
||||||
"h c #091FEB",
|
|
||||||
"i c #002CF4",
|
|
||||||
"j c #006FFC",
|
|
||||||
"k c #0002F1",
|
|
||||||
"l c #0059F8",
|
|
||||||
"m c #AD3252",
|
|
||||||
"n c #FF1700",
|
|
||||||
"o c #FF2B00",
|
|
||||||
"p c #B84A47",
|
|
||||||
"q c #0026F4",
|
|
||||||
"r c #FF0700",
|
|
||||||
"s c #FF1600",
|
|
||||||
"t c #003FF6",
|
|
||||||
"u c #0003F1",
|
|
||||||
"v c #006FFA",
|
|
||||||
"w c #0058F9",
|
|
||||||
"x c #0055FA",
|
|
||||||
"y c #FF3D00",
|
|
||||||
"z c #C3363C",
|
|
||||||
"A c #FF0400",
|
|
||||||
"B c #FF3F00",
|
|
||||||
"C c #FF1000",
|
|
||||||
"D c #003DF6",
|
|
||||||
"E c #005AF8",
|
|
||||||
"F c #002AF4",
|
|
||||||
"G c #FF0100",
|
|
||||||
"H c #FF5600",
|
|
||||||
"I c #C3643C",
|
|
||||||
"J c #A73958",
|
|
||||||
"K c #FF3100",
|
|
||||||
"L c #0020F3",
|
|
||||||
"M c #002DF5",
|
|
||||||
"N c #0089FD",
|
|
||||||
"O c #0022F4",
|
|
||||||
"P c #0085FD",
|
|
||||||
"Q c #C36E3C",
|
|
||||||
"R c #BC3943",
|
|
||||||
"S c #FF1300",
|
|
||||||
"T c #007AFC",
|
|
||||||
"U c #FF2200",
|
|
||||||
"V c #C3693C",
|
|
||||||
"W c #FF4600",
|
|
||||||
"X c #C3563C",
|
|
||||||
"Y c #FF1100",
|
|
||||||
"Z c #BD6C42",
|
|
||||||
"` c #C12F3E",
|
|
||||||
" . c #B13B4E",
|
|
||||||
".. c #C32F3C",
|
|
||||||
"+. c #C0283F",
|
|
||||||
"@. c #C34D3C",
|
|
||||||
"#. c #FF2400",
|
|
||||||
"$. c #BC3E43",
|
|
||||||
"%. c #C36D3C",
|
|
||||||
"&. c #FF3400",
|
|
||||||
"*. c #FF0800",
|
|
||||||
"=. c #C36B3C",
|
|
||||||
"-. c #FF4E00",
|
|
||||||
";. c #C3523C",
|
|
||||||
">. c #FF3E00",
|
|
||||||
",. c #FF1C00",
|
|
||||||
"'. c #FF0200",
|
|
||||||
"). c #BF3240",
|
|
||||||
"!. c #FF1A00",
|
|
||||||
"~. c #B4624B",
|
|
||||||
"{. c #FF5900",
|
|
||||||
"]. c #FF1200",
|
|
||||||
"^. c #B82E47",
|
|
||||||
"/. c #FF4800",
|
|
||||||
"(. c #FF3A00",
|
|
||||||
"_. c #001EF4",
|
|
||||||
":. c #001DF4",
|
|
||||||
"<. c #7D4882",
|
|
||||||
"[. c #FF4F00",
|
|
||||||
"}. c #0076FB",
|
|
||||||
"|. c #000CF2",
|
|
||||||
"1. c #0276F9",
|
|
||||||
"2. c #FF3800",
|
|
||||||
"3. c #FF5D00",
|
|
||||||
"4. c #004CF7",
|
|
||||||
"5. c #004CF8",
|
|
||||||
"6. c #FB0104",
|
|
||||||
"7. c #FF5500",
|
|
||||||
"8. c #B53E4A",
|
|
||||||
"9. c #0055F8",
|
|
||||||
"0. c #0038F6",
|
|
||||||
"a. c #0028F4",
|
|
||||||
"b. c #0039F6",
|
|
||||||
"c. c #0254F6",
|
|
||||||
"d. c #C66E39",
|
|
||||||
"e. c #FF3500",
|
|
||||||
"f. c #248ADB",
|
|
||||||
"g. c #785587",
|
|
||||||
"h. c #DE3121",
|
|
||||||
"i. c #FF1E00",
|
|
||||||
"j. c #FF2800",
|
|
||||||
"k. c #FF5700",
|
|
||||||
"l. c #FF1B00",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" . + @ @ @ @ @ @ @ @ @ # $ . @ @ @ @ @ @ @ @ . ",
|
|
||||||
" . % & & * = = = - & & ; @ > & & & , ' & & & ) ",
|
|
||||||
" . . . . ! = = = ~ . . . . . . . { ] ^ . . . ",
|
|
||||||
" / ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( _ ",
|
|
||||||
" : < < < [ } | 1 2 3 < < < < 4 5 6 7 < < < < : ",
|
|
||||||
" 8 < < 9 0 a = b c d < < d e f g h < < i ",
|
|
||||||
" j k < l m n = = = o p q < < q r { ] s t < u v ",
|
|
||||||
" w < x . y = = ' z q < < q A % B C D < E ",
|
|
||||||
" 8 F G H = = I q < < q J K & ! L M ",
|
|
||||||
" N O P r = = Q q < < q R ' S T O N ",
|
|
||||||
" . U = Q q < < q V ] s ",
|
|
||||||
" . W Q q < < q X Y ",
|
|
||||||
" G Z q < < q ` ",
|
|
||||||
" .q < < q .. ",
|
|
||||||
" +.q < < q @.#. ",
|
|
||||||
" $.q < < q %.+ &. ",
|
|
||||||
" *.=.q < < q Q - Y ",
|
|
||||||
" A -.;.q < < q Q = >.,. ",
|
|
||||||
" '.; -.).q < < q Q = = U ~ ",
|
|
||||||
" !., Y q < < q ~.= = {.]. ",
|
|
||||||
" *., U q < < q ^., = = /.s ",
|
|
||||||
" A -.(.]. _.< < :.<.C = = = ~ ] ",
|
|
||||||
" '.; [.! }.|.< < |.1.. 2.= = 3.s ",
|
|
||||||
" !., Y 4.< < < < 5. 6.7.= = & ]. ",
|
|
||||||
" *., U 8.9.0.a.< < < < < < a.b.c.d.= = (.@ ",
|
|
||||||
" A -.e.# f. g.h.= = = i.j. ",
|
|
||||||
" . @ @ ,.y , Y ,.@ @ G '.@ ,.].* = = k.l.@ @ . ",
|
|
||||||
" . & & & & & & & & & ) ,.& & & & & & & & & & ) ",
|
|
||||||
" . . . . . . . . . . . . . . . . . . . . . . . ",
|
|
||||||
" "};
|
|
Before Width: | Height: | Size: 2.1 KiB |