Commit 5ad00adeeb825e43c6213616fa080ede8935981c

Authored by Perry Werneck
1 parent 60f3a050

Updating Makefile for modularization.

Makefile.in
... ... @@ -24,25 +24,11 @@
24 24 # erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
25 25 #
26 26  
27   -#---[ Library configuration ]------------------------------------------------------------
28   -
29   -LIBNAME=@LIB3270_NAME@
30   -
31   -SOURCES= \
32   - $(wildcard src/lib3270/*.c) \
33   - $(wildcard src/lib3270/@OSNAME@/*.c) \
34   - $(wildcard src/lib3270/@OSNAME@/*.rc) \
35   - $(BASEDIR)/.tmp/@DLLPREFIX@$(LIBNAME)/fallbacks.c
36   -
37   -TEST_SOURCES= \
38   - $(wildcard src/testprogram/*.c)
  27 +MODULES= \
  28 + lib@LIB3270_NAME@@DLLEXT@
39 29  
40 30 #---[ Tools ]----------------------------------------------------------------------------
41 31  
42   -CC=@CC@
43   -HOST_CC=@HOST_CC@
44   -LD=@CC@
45   -LN_S=@LN_S@
46 32 MKDIR=@MKDIR_P@
47 33 INSTALL=@INSTALL@
48 34 INSTALL_DATA=@INSTALL_DATA@
... ... @@ -69,11 +55,11 @@ BASEDIR=@BASEDIR@
69 55  
70 56 POTDIR=$(BASEDIR)/.pot
71 57  
72   -OBJDIR=$(BASEDIR)/.obj/@DLLPREFIX@$(LIBNAME)
  58 +OBJDIR=$(BASEDIR)/.obj
73 59 OBJDBG=$(OBJDIR)/Debug
74 60 OBJRLS=$(OBJDIR)/Release
75 61  
76   -BINDIR=$(BASEDIR)/.bin/@DLLPREFIX@$(LIBNAME)
  62 +BINDIR=$(BASEDIR)/.bin
77 63 BINDBG=$(BINDIR)/Debug
78 64 BINRLS=$(BINDIR)/Release
79 65  
... ... @@ -86,251 +72,58 @@ DEPENDS= \
86 72 src/lib3270/*.h
87 73  
88 74  
89   -CFLAGS= \
90   - @CFLAGS@ \
91   - -g \
92   - -Isrc/include
93   - -DBUILD_DATE=`date +%Y%m%d` \
94   - @LIBSSL_CFLAGS@
95   -
96   -LIBS= \
97   - @LIBS@ \
98   - @LIBSSL_LIBS@ \
99   - @LIBICONV@ \
100   - @INTL_LIBS@
101   -
102 75 #---[ Debug Rules ]----------------------------------------------------------------------
103 76  
104   -$(OBJDBG)/%.o: \
105   - %.c \
  77 +$(BINDBG)/lib@LIB3270_NAME@@DLLEXT@: \
  78 + src/lib3270/* \
106 79 $(DEPENDS)
107 80  
108   - @echo $< ...
109   - @$(MKDIR) `dirname $@`
110   - @$(CC) \
111   - $(CFLAGS) \
112   - -Wall -Wextra -fstack-check \
113   - -DDEBUG=1 \
114   - -o $@ -c $<
115   -
116   -$(OBJDBG)/%.o: \
117   - %.rc
118   -
119   - @echo $< ...
120   - @$(MKDIR) `dirname $@`
121   - @$(WINDRES) $< -O coff -o $@
  81 + @$(MAKE) -C src/lib3270 $@
122 82  
123 83 #---[ Release Rules ]--------------------------------------------------------------------
124 84  
125   -$(OBJRLS)/%.o: \
126   - %.c \
  85 +$(BINRLS)/lib@LIB3270_NAME@@DLLEXT@: \
  86 + src/lib3270/* \
127 87 $(DEPENDS)
128 88  
129   - @echo $< ...
130   - @$(MKDIR) `dirname $@`
131   - @$(CC) \
132   - $(CFLAGS) \
133   - -DNDEBUG=1 \
134   - -o $@ -c $<
135   -
136   -$(OBJRLS)/%.o: \
137   - %.rc
  89 + @$(MAKE) -C src/lib3270 $@
138 90  
139   - @echo $< ...
140   - @$(MKDIR) `dirname $@`
141   - @$(WINDRES) $< -O coff -o $@
142 91  
143 92 #---[ Misc Rules ]-----------------------------------------------------------------------
144 93  
145   -$(POTDIR)/%.pot: \
146   - %.c
147   -
148   - @echo $(notdir $@) ...
149   - @$(MKDIR) `dirname $@`
150   - @$(XGETTEXT) \
151   - --language=C \
152   - --keyword=_ \
153   - --keyword=N_ \
154   - --keyword=MSG_:2 \
155   - --output=$@ \
156   - $<
157   - @touch $@
  94 +$(POTDIR)/lib@LIB3270_NAME@.pot: \
  95 + src/lib3270/* \
  96 + $(DEPENDS)
158 97  
159   -$(POTDIR)/%.pot: \
160   - %.rc
  98 + @$(MAKE) -C src/lib3270 $@
161 99  
162   - @echo $< ...
163   - @$(MKDIR) `dirname $@`
164   - @touch $@
165 100  
166 101 #---[ Release Targets ]------------------------------------------------------------------
167 102  
168 103 all: \
169   - $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@ \
170   - lib$(LIBNAME).pot
  104 + $(BINRLS)/lib@LIB3270_NAME@@DLLEXT@ \
  105 + lib@LIB3270_NAME@.pot
171 106  
172 107 Release: \
173   - $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@ \
174   - $(BINRLS)/@DLLPREFIX@$(LIBNAME).a
175   -
176   -$(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@: \
177   - $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
178   -
179   - @echo $< ...
180   - @rm -f $@
181   - @$(LN_S) \
182   - @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
183   - $@
184   -
185   -$(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
186   - $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
187   -
188   - @rm -f $@
189   - @$(LN_S) \
190   - @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
191   - $@
192   -
193   -$(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
194   - $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
195   -
196   - @$(MKDIR) `dirname $@`
197   - @echo $< ...
198   - @$(LD) \
199   - -shared -Wl,-soname,$(@F) \
200   - -o $@ \
201   - $(LDFLAGS) \
202   - $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) \
203   - $(LIBS)
204   -
205   -$(BINRLS)/@DLLPREFIX@$(LIBNAME).a: \
206   - $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
207   -
208   - @echo $@ ...
209   - @$(MKDIR) `dirname $@`
210   - @$(AR) rcs $@ $^
211   -
  108 + $(BINRLS)/lib@LIB3270_NAME@@DLLEXT@
212 109  
213 110 #---[ Misc Targets ]---------------------------------------------------------------------
214 111  
215   -$(BASEDIR)/.tmp/@DLLPREFIX@$(LIBNAME)/fallbacks.c: \
216   - X3270.xad \
217   - $(wildcard src/mkfb/*.c)
218   -
219   - @$(MKDIR) `dirname $@`
220   - @$(MKDIR) $(BINDIR)
221   - @echo $< ...
222   - @$(HOST_CC) -g -o $(BINDIR)/mkfb@EXEEXT@ $(wildcard src/mkfb/*.c)
223   - @$(BINDIR)/mkfb@EXEEXT@ -c X3270.xad $@
224   -
225   -lib$(LIBNAME).pot: \
226   - $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(SRC).pot)
227   -
228   - @rm -f $@
229   - @mkdir -p `dirname $@`
230   - @$(MSGCAT) --sort-output $^ > $@
231   -
232   -locale: \
233   - lib$(LIBNAME).pot
234   -
  112 +lib@LIB3270_NAME@.pot: \
  113 + $(POTDIR)/lib@LIB3270_NAME@.pot
235 114  
236 115 #---[ Install Targets ]------------------------------------------------------------------
237 116  
238 117 install: \
239   - install-lib \
240   - install-devel
241   -
242   -install-lib: \
243   - $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
244   -
245   - @mkdir -p $(DESTDIR)$(libdir)
246   -
247   - @$(INSTALL_PROGRAM) \
248   - $(BINRLS)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
249   - $(DESTDIR)$(libdir)
250   -
251   -install-devel: \
252   - $(BINRLS)/@DLLPREFIX@$(LIBNAME).a
253   -
254   - @mkdir -p $(DESTDIR)$(includedir)/lib$(LIBNAME)
255   - @mkdir -p $(DESTDIR)$(libdir)/pkgconfig
256   -
257   - # Install static library
258   - @$(INSTALL_DATA) \
259   - $(BINRLS)/@DLLPREFIX@$(LIBNAME).a \
260   - $(DESTDIR)$(libdir)
261   -
262   - # Link libraries
263   - @$(LN_S) \
264   - @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
265   - $(DESTDIR)$(libdir)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
266   -
267   - @$(LN_S) \
268   - @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
269   - $(DESTDIR)$(libdir)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
270   -
271   - # Install includes
272   - @$(INSTALL_DATA) \
273   - src/include/lib3270/*.h \
274   - $(DESTDIR)$(includedir)/lib$(LIBNAME)
275   -
276   - @$(INSTALL_DATA) \
277   - src/include/lib3270.h \
278   - $(DESTDIR)$(includedir)/lib$(LIBNAME).h
279   -
280   - # Install PKG-CONFIG files
281   - @$(INSTALL_DATA) \
282   - sdk/lib3270.pc \
283   - $(DESTDIR)$(libdir)/pkgconfig/lib$(LIBNAME).pc
  118 + $(BINRLS)/lib@LIB3270_NAME@@DLLEXT@
284 119  
  120 + @$(MAKE) DESTDIR=$(DESTDIR) -C src/lib3270 $@
285 121  
286 122 #---[ Debug Targets ]--------------------------------------------------------------------
287 123  
288 124 Debug: \
289   - $(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@
290   -
291   -$(BINDBG)/@DLLPREFIX@$(LIBNAME)@EXEEXT@: \
292   - $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) \
293   - $(foreach SRC, $(basename $(TEST_SOURCES)), $(OBJDBG)/$(SRC).o)
  125 + $(BINDBG)/lib@LIB3270_NAME@@DLLEXT@
294 126  
295   - @$(MKDIR) `dirname $@`
296   - @echo $< ...
297   - $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
298   -
299   -run: \
300   - $(BINDBG)/@DLLPREFIX@$(LIBNAME)@EXEEXT@
301   -
302   - @LD_LIBRARY_PATH=$(BINDBG) \
303   - $(BINDBG)/@DLLPREFIX@$(LIBNAME)@EXEEXT@
304   -
305   -
306   -$(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@: \
307   - $(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
308   -
309   - @echo $< ...
310   - @rm -f $@
311   - @$(LN_S) \
312   - @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
313   - $@
314   -
315   -$(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
316   - $(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
317   -
318   - @rm -f $@
319   - @$(LN_S) \
320   - @DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
321   - $@
322   -
323   -$(BINDBG)/@DLLPREFIX@$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
324   - $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
325   -
326   - @$(MKDIR) `dirname $@`
327   - @echo $< ...
328   - @$(LD) \
329   - -shared -Wl,-soname,$(@F) \
330   - -o $@ \
331   - $(LDFLAGS) \
332   - $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) \
333   - $(LIBS)
334 127  
335 128 #---[ Clean Targets ]--------------------------------------------------------------------
336 129  
... ... @@ -338,19 +131,15 @@ clean: \
338 131 cleanDebug \
339 132 cleanRelease
340 133  
341   - @rm -fr $(BASEDIR)/.tmp/@DLLPREFIX@$(LIBNAME)
  134 + @rm -fr $(POTDIR)
342 135  
343 136 cleanDebug:
344 137  
345   - @rm -fr $(OBJDBG)
346 138 @rm -fr $(BINDBG)
347 139  
348 140 cleanRelease:
349 141  
350   - @rm -fr $(OBJRLS)
351 142 @rm -fr $(BINRLS)
352   - @rm -fr $(POTDIR)
353   - @rm -f lib$(LIBNAME).pot
354 143  
355 144 clean: \
356 145 cleanDebug \
... ...
X3270.xad
... ... @@ -1,2426 +0,0 @@
1   -! Copyright 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by Paul
2   -! Mattes.
3   -! Permission to use, copy, modify, and distribute this software and its
4   -! documentation for any purpose and without fee is hereby granted,
5   -! provided that the above copyright notice appear in all copies and that
6   -! both that copyright notice and this permission notice appear in
7   -! supporting documentation.
8   -!
9   -! x3270, c3270, s3270 and tcl3270 are distributed in the hope that they will
10   -! be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
11   -! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE
12   -! for more details.
13   -!
14   -! x3270 app-defaults file. This file is generally compiled into x3270, rather
15   -! than installed.
16   -!
17   -! This file is in three sections:
18   -!
19   -! (1) User-Modifiable Resources
20   -! Resources that are likeliest to be modified by an end user.
21   -!
22   -! (2) Labels and Messages
23   -! Resources that are likely to be modified for translation into another
24   -! language.
25   -!
26   -! (3) Base-Level Resources
27   -! Resources required for the basic operation of x3270, not for the
28   -! faint-hearted to modify.
29   -!
30   -!=============================================================================
31   -! Section 1: User-Modifiable Resources
32   -!
33   -! Resources that are likeliest to be modified by an end user.
34   -!=============================================================================
35   -!
36   -! Many of the resource definitions are commented out, because they are
37   -! the defaults defined in x3270 itself. They are listed here so you can
38   -! easily uncomment and change them.
39   -#ifndef STANDALONE
40   -!
41   -! Fonts
42   -! *.emulatorFont: 3270
43   -!
44   -! Color schemes for full-color (3279) mode
45   -! Each scheme is a list of 23 items:
46   -! 0 X color to use for IBM "neutral/black" (also used as ANSI color 0)
47   -! 1 X color to use for IBM "blue" (also used for ANSI color 4)
48   -! 2 X color to use for IBM "red" (also used for ANSI color 1)
49   -! 3 X color to use for IBM "pink" (also used for ANSI color 5)
50   -! 4 X color to use for IBM "green" (also used for ANSI color 2)
51   -! 5 X color to use for IBM "turquoise"
52   -! 6 X color to use for IBM "yellow" (also used for ANSI color 3)
53   -! 7 X color to use for IBM "neutral/white"
54   -! 8 X color to use for IBM "black"
55   -! 9 X color to use for IBM "deep blue"
56   -! 10 X color to use for IBM "orange"
57   -! 11 X color to use for IBM "purple"
58   -! 12 X color to use for IBM "pale green"
59   -! 13 X color to use for IBM "pale turquoise" (also used for ANSI color 6)
60   -! 14 X color to use for IBM "grey"
61   -! 15 X color to use for IBM "white" (also used for ANSI color 7)
62   -! 16 X color to use if one of 0..15 cannot be allocated (white or black)
63   -! 17 X color to use as the default screen background
64   -! 18 X color to use as the select background
65   -! 19 IBM color index (0..15) to use for unprotected, unhighlighted fields
66   -! 20 IBM color index (0..15) to use for unprotected, highlighted fields
67   -! 21 IBM color index (0..15) to use for protected, unhighlighted fields
68   -! 22 IBM color index (0..15) to use for protected, highlighted fields
69   -!
70   -! x3270.colorScheme: default
71   -x3270.colorScheme.default: \
72   - black deepSkyBlue red pink \
73   - green turquoise yellow white \
74   - black blue3 orange purple \
75   - paleGreen paleTurquoise2 grey white \
76   - white black dimGrey \
77   - 4 2 1 15
78   -x3270.colorScheme.reverse: \
79   - black blue firebrick pink \
80   - green4 cadetBlue goldenrod black \
81   - black blue3 orange purple \
82   - paleGreen darkTurquoise grey black \
83   - black white dimGrey \
84   - 4 2 1 0
85   -x3270.colorScheme.bright: \
86   - black blue red magenta \
87   - green turquoise yellow white \
88   - black blue3 orange purple \
89   - paleGreen cyan grey white \
90   - white black dimGrey \
91   - 4 2 1 15
92   -x3270.colorScheme.cpe: \
93   - black LightBlue1 PaleVioletRed1 \
94   - pink green turquoise yellow white \
95   - black LightBlue3 orange MediumPurple1 \
96   - paleGreen paleTurquoise2 grey80 white \
97   - white black dimGrey \
98   - 4 2 1 15
99   -x3270.colorScheme.greenScreen: \
100   - green green green green \
101   - green green green green \
102   - green green green green \
103   - green green green green \
104   - white black dimGrey \
105   - 4 15 4 15
106   -#ifdef X3270_MENUS
107   -! Color schemes listed on the Options color menu
108   -x3270.schemeList: Default 3279: default\n\
109   - Bright: bright\n\
110   - Reverse: reverse\n\
111   - Green Screen: greenScreen
112   -! Character sets listed on the Options menu
113   -x3270.charsetList: U.S. English (CP 37): us-intl\n\
114   - Bracket (CP 37, modified): bracket\n\
115   - APL (CP 37): apl\n\
116   - Euro>U.S. English (CP 1140): us-euro\n\
117   - Euro>Belgian (CP 1148): belgian-euro\n\
118   - Euro>Finnish (CP 1143): finnish-euro\n\
119   - Euro>French (CP 1147): french-euro\n\
120   - Euro>German (CP 1141): german-euro\n\
121   - Euro>Icelandic (CP 1149): icelandic-euro\n\
122   - Euro>Italian (CP 1144): italian-euro\n\
123   - Euro>Norwegian (CP 1142): norwegian-euro\n\
124   - Euro>Spanish (CP 1145): spanish-euro\n\
125   - Euro>United Kingdom (CP 1146): uk-euro\n\
126   - Belgian (CP 500): belgian\n\
127   - Brazilian (CP 275): brazilian\n\
128   -#ifdef X3270_DBCS
129   - Chinese Simplified (CP 836+837): simplified-chinese\n\
130   - Chinese GB 18030 (CP 1388): chinese-gb18030\n\
131   -#endif
132   - Finnish (CP 278): finnish\n\
133   - French (CP 297): french\n\
134   - German (CP 273): german\n\
135   - Greek (CP 875): greek\n\
136   - Hebrew (CP 424): hebrew\n\
137   - Icelandic (CP 871): icelandic\n\
138   - Italian (CP 280): italian\n\
139   -#ifdef X3270_DBCS
140   - Japanese>CP 1027+300: japanese\n\
141   - Japanese>CP 290+300: japanese-290\n\
142   - Japanese>CP 930: japanese-930\n\
143   - Japanese>CP 939: japanese-939\n\
144   - Japanese>CP 1390: japanese-1390\n\
145   - Japanese>CP 1399: japanese-1399\n\
146   -#endif
147   - Norwegian (CP 277): norwegian\n\
148   - Open Systems (CP 1047): cp1047\n\
149   - Polish (CP 870): cp870\n\
150   - Russian (CP 880): russian\n\
151   - Slovenian (CP 870): cp870\n\
152   - Spanish (CP 284): spanish\n\
153   - Thai (CP 838): thai\n\
154   - Turkish (CP 1026): turkish\n\
155   - United Kingdom (CP 285): uk\n
156   -#endif
157   -!
158   -! Pseudo-colors for 3278 mode
159   -! x3270.colorBackground: black
160   -! x3270.selectBackground: dimGrey
161   -! x3270.normalColor: green
162   -! Note: the following values are the new defaults, which cause 3278's
163   -! to display everything in green.
164   -! x3270.inputColor: green
165   -! x3270.boldColor: green
166   -! To resurrect x3270's Pseudo-Color mode, which was how 3278's were
167   -! displayed up through x3270 3.3.5, set the following resource values:
168   -! x3270.inputColor: orange
169   -! x3270.boldColor: cyan
170   -!
171   -! Cursors
172   -! x3270.normalCursor: top_left_arrow
173   -! x3270.waitCursor: watch
174   -! x3270.lockedCursor: X_cursor
175   -!
176   -! Line-mode Telnet parameters
177   -! x3270.icrnl: true
178   -! x3270.inlcr: false
179   -! x3270.erase: ^?
180   -! x3270.kill: ^U
181   -! x3270.werase: ^W
182   -! x3270.rprnt: ^R
183   -! x3270.lnext: ^V
184   -! x3270.intr: ^C
185   -! x3270.quit: ^\\
186   -! x3270.eof: ^D
187   -!
188   -! Toggles, using the same names as the "-set" and "-clear" options
189   -! x3270.altCursor: false
190   -! x3270.blankFill: false
191   -! x3270.crosshair: false
192   -! x3270.cursorBlink: false
193   -! x3270.cursorPos: true
194   -! x3270.dsTrace: false
195   -! x3270.eventTrace: false
196   -! x3270.lineWrap: true
197   -! x3270.marginedPaste: false
198   -! x3270.monoCase: false
199   -! x3270.rectangleSelect: false
200   -! x3270.screenTrace: false
201   -! x3270.scrollBar: false
202   -! x3270.showTiming: false
203   -!
204   -! Miscellaneous configuration parameters
205   -! x3270.activeIcon: false
206   -! x3270.allowResize: true
207   -! x3270.bellVolume: 0
208   -! x3270.charset: bracket
209   -! x3270.composeMap: latin1
210   -! x3270.connectFileName: ~/.x3270connect
211   -! x3270.doConfirms: true
212   -! x3270.debugTracing: true
213   -! x3270.disconnectClear: false
214   -! x3270.hostsFile: /usr/lib/X11/x3270/ibm_hosts
215   -! x3270.highlightSelect: true
216   -! x3270.idleCommand:
217   -! x3270.idleTimeout: ~7m
218   -! x3270.inputMethod:
219   -! x3270.invertKeypadShift: false
220   -! x3270.keymap:
221   -! x3270.keypad: right
222   -! x3270.keypadOn: false
223   -! x3270.labelIcon: false
224   -! x3270.m3279: false
225   -! x3270.macros:
226   -! x3270.menuBar: true
227   -! x3270.modifiedSel: false
228   -! x3270.modifiedSelColor: 10
229   -! x3270.model: 4
230   -! x3270.mono: false
231   -! x3270.numericLock: false
232   -! x3270.once: false
233   -! x3270.pluginCommand: x3270hist.pl
234   -! x3270.port: telnet
235   -! x3270.preeditType: OverTheSpot+1
236   -! x3270.saveLines: 64
237   -! x3270.scripted: false
238   -! x3270.suppressHost: false
239   -! x3270.suppressFontMenu: false
240   -! x3270.termName:
241   -! x3270.traceDir: /tmp
242   -! x3270.cursorColor: red
243   -! (note: cursorColor is not used unless useCursorColor is true, below)
244   -! x3270.useCursorColor: false
245   -! x3270.visualBell: false
246   -! x3270.visualSelect: false
247   -! x3270.visualSelectColor: 6
248   -!
249   -! Fonts listed on the Options menu and for screen resizing
250   -x3270.emulatorFontList.3270cg-1a,3270cg-1,iso8859-1: \
251   - 3270 Font (14 point): #resize 3270\n\
252   - 8-point Font: #resize 3270gt8\n\
253   - 12-point Font: #resize 3270-12\n\
254   - 16-point Font: #resize 3270gt16\n\
255   - 20-point Font: #resize 3270-20\n\
256   - 24-point Font: #resize 3270gt24\n\
257   - 32-point Font: #resize 3270gt32
258   -x3270.emulatorFontList.3270cg-15a,3270cg-15,iso8859-15: \
259   - 3270 Font (14 point): #resize 3270e\n\
260   - 8-point Font: #resize 3270egt8\n\
261   - 12-point Font: #resize 3270e-12\n\
262   - 16-point Font: #resize 3270egt16\n\
263   - 20-point Font: #resize 3270e-20\n\
264   - 24-point Font: #resize 3270egt24\n\
265   - 32-point Font: #resize 3270egt32
266   -x3270.emulatorFontList.3270cg-1a,3270cg-1,iso8859-1+gb2312.1980-0,iso10646-1: \
267   - 14-point 3270: 3270+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\
268   - 20-point 3270: 3270-20+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\
269   - 8x16: 8x16+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\
270   - 12x24: 12x24+-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0
271   -x3270.emulatorFontList.jisx0201.1976-0+jisx0208.1983-0,iso10646-1: \
272   - 14-point: -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0+-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0\n\
273   - 16-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0\n\
274   - 18-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1\n\
275   - 24-point: -sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0+-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0
276   -#endif
277   -!
278   -! Print commands
279   -x3270.printTextCommand: lpr
280   -#ifndef STANDALONE
281   -x3270.printWindowCommand: xwd -id %d | xpr | lpr
282   -!
283   -! System V versions of print commands
284   -! x3270.printTextCommand: lp
285   -! x3270.printWindowCommand: xwd -id %d | xpr | lp
286   -!
287   -! Trace window command
288   -x3270.traceCommand: tail -f
289   -!
290   -! File transfer command
291   -! x3270.ftCommand: ind$file
292   -!
293   -! Printer session options
294   -#endif
295   -#ifdef _WIN32
296   -x3270.printer.assocCommandLine: wpr3287.exe -assoc %L% %R% %P% %H%
297   -x3270.printer.luCommandLine: wpr3287.exe %R% %P% %L%@%H%
298   -! x3270.printer.name:
299   -#else
300   -x3270.printer.command: lpr
301   -x3270.printer.assocCommandLine: pr3287 -assoc %L% -command "%C%" %R% %P% "%H%"
302   -x3270.printer.luCommandLine: pr3287 -command "%C%" %R% %P% "%L%@%H%"
303   -#endif
304   -#ifndef STANDALONE
305   -!
306   -! Translation table for the '@server' pseudo-keymap, which is the keymap
307   -! you get by default (in addition to the 'base' keymap, below). Maps server
308   -! vendor strings to keymap names.
309   -x3270.serverKeymapList: \
310   - Sun Microsystems, Inc.: sun_k5\n\
311   - Hewlett-Packard Company: hp-k1\n\
312   - International Business Machines: alt\n\
313   - Silicon Graphics: alt\n\
314   - The XFree86 Project, Inc: alt\n\
315   - AT&T Laboratories Cambridge: alt
316   -!
317   -! Keymaps (keyboard and mouse mappings)
318   -!
319   -! Base keymap: What you get by default, in both 3270 and NVT modes. Any other
320   -! user-specified keymap is logically added to this keymap.
321   -x3270.keymap.base: \
322   - :<Key>Multi_key: Compose()\n\
323   - Ctrl<Btn1Down>: HandleMenu(fileMenu)\n\
324   - Ctrl<Btn2Down>: HandleMenu(optionsMenu)\n\
325   - Ctrl<Btn3Down>: HandleMenu(hostMenu,macrosMenu)\n\
326   - <Btn1Down>: SelectDown()\n\
327   - ~Shift<Btn1Motion>: SelectMotion()\n\
328   - <Btn2Down>: ignore()\n\
329   - <Btn2Motion>: ignore()\n\
330   - <Btn2Up>: insert-selection(PRIMARY)\n\
331   - <Btn3Down>: start-extend()\n\
332   - <Btn3Motion>: select-extend()\n\
333   - ~Shift<BtnUp>: SelectUp(PRIMARY)\n\
334   - Shift<Key>Insert: insert-selection(PRIMARY)\n\
335   - Shift<Key>Up: KybdSelect(Up,PRIMARY)\n\
336   - Shift<Key>Down: KybdSelect(Down,PRIMARY)\n\
337   - Shift<Key>Left: KybdSelect(Left,PRIMARY)\n\
338   - Shift<Key>Right: KybdSelect(Right,PRIMARY)\n\
339   - Shift<Key>F1: PF(13)\n\
340   - Shift<Key>F2: PF(14)\n\
341   - Shift<Key>F3: PF(15)\n\
342   - Shift<Key>F4: PF(16)\n\
343   - Shift<Key>F5: PF(17)\n\
344   - Shift<Key>F6: PF(18)\n\
345   - Shift<Key>F7: PF(19)\n\
346   - Shift<Key>F8: PF(20)\n\
347   - Shift<Key>F9: PF(21)\n\
348   - Shift<Key>F10: PF(22)\n\
349   - Shift<Key>F11: PF(23)\n\
350   - Shift<Key>F12: PF(24)\n\
351   - Meta<Key>F1: PF(13)\n\
352   - Meta<Key>F2: PF(14)\n\
353   - Meta<Key>F3: PF(15)\n\
354   - Meta<Key>F4: PF(16)\n\
355   - Meta<Key>F5: PF(17)\n\
356   - Meta<Key>F6: PF(18)\n\
357   - Meta<Key>F7: PF(19)\n\
358   - Meta<Key>F8: PF(20)\n\
359   - Meta<Key>F9: PF(21)\n\
360   - Meta<Key>F10: PF(22)\n\
361   - Meta<Key>F11: PF(23)\n\
362   - Meta<Key>F12: PF(24)\n\
363   - :<Key>F1: PF(1)\n\
364   - :<Key>F2: PF(2)\n\
365   - :<Key>F3: PF(3)\n\
366   - :<Key>F4: PF(4)\n\
367   - :<Key>F5: PF(5)\n\
368   - :<Key>F6: PF(6)\n\
369   - :<Key>F7: PF(7)\n\
370   - :<Key>F8: PF(8)\n\
371   - :<Key>F9: PF(9)\n\
372   - :<Key>F10: PF(10)\n\
373   - :<Key>F11: PF(11)\n\
374   - :<Key>F12: PF(12)\n\
375   - :<Key>Print: PrintText()\n\
376   - Alt<Key>q: Quit()\n\
377   - :<Key>dead_acute: Compose() Key(apostrophe)\n\
378   - :<Key>dead_grave: Compose() Key(grave)\n\
379   - :<Key>dead_circumflex: Compose() Key(asciicircum)\n\
380   - :<Key>dead_tilde: Compose() Key(asciitilde)\n\
381   - :<Key>dead_diaeresis: Compose() Key(quotedbl)\n
382   -!
383   -! Base keymap for 3270 mode. These mappings are added to the base keymap,
384   -! but only when in 3270 mode.
385   -! These were originally part of the base keymap, but were moved here, because
386   -! they were no-ops in NVT mode, or interfered with NVT-mode data entry.
387   -!
388   -! Note that as yet, there is no x3270.keymap.base.nvt, which would define the
389   -! base keymap extensions for NVT mode.
390   -!
391   -x3270.keymap.base.3270: #override \
392   - :Ctrl Shift<Btn1Down>: MouseSelect()\n\
393   - Shift<Btn1Down>: MoveCursor()\n\
394   - Shift<Key>Return: Newline()\n\
395   - :<Key>Return: Enter()\n\
396   - :<Key>Linefeed: Newline()\n\
397   - :<Key>BackSpace: Erase()\n\
398   - Shift<Key>Tab: BackTab()\n\
399   - :Meta<Key>Left: PreviousWord()\n\
400   - :Meta<Key>Right: NextWord()\n\
401   - :Meta<Key>1: PA(1)\n\
402   - :Meta<Key>2: PA(2)\n\
403   - :Meta<Key>3: PA(3)\n\
404   - Meta<Key>a: Attn()\n\
405   - Meta<Key>b: PrintWindow()\n\
406   - Meta<Key>c: Clear()\n\
407   - Meta<Key>d: Delete()\n\
408   - Meta<Key>e: EraseEOF()\n\
409   - Meta<Key>f: Flip()\n\
410   - Meta<Key>h: Home()\n\
411   - Meta<Key>i: Insert()\n\
412   - Meta<Key>l: Redraw()\n\
413   - Meta<Key>p: PrintText()\n\
414   - Meta<Key>r: Reset()\n\
415   - Meta<Key>u: Unselect()\n\
416   - Ctrl<Key>a: SelectAll(PRIMARY)\n\
417   - Ctrl<Key>c: set-select(CLIPBOARD)\n\
418   - Ctrl<Key>u: DeleteField()\n\
419   - Ctrl<Key>w: DeleteWord()\n\
420   - Ctrl<Key>v: insert-selection(CLIPBOARD)
421   -! Keymap that exercises the optional history plugin.
422   -x3270.keymap.hist:
423   - Shift<Key>Prior: Plugin(command,prev)\n\
424   - Shift<Key>Next: Plugin(command,next)
425   -! Keymap that restores the old (pre 3.3) mouse-click behavior.
426   -x3270.keymap.oldclick: #override\n\
427   - Ctrl<Btn1Down>: HandleMenu(fileMenu)\n\
428   - Ctrl<Btn2Down>: HandleMenu(optionsMenu)\n\
429   - Ctrl<Btn3Down>: HandleMenu(hostMenu,macrosMenu)\n\
430   - <Btn1Down>: select-start()\n\
431   - ~Shift<Btn1Motion>: select-extend()\n\
432   - <Btn2Down>: ignore()\n\
433   - <Btn2Motion>: ignore()\n\
434   - <Btn2Up>: insert-selection(PRIMARY)\n\
435   - <Btn3Down>: start-extend()\n\
436   - <Btn3Motion>: select-extend()\n\
437   - ~Shift<BtnUp>: select-end(PRIMARY)
438   -x3270.keymap.oldclick.3270: #override\n\
439   - :Ctrl Shift<Btn1Down>: MouseSelect()\n\
440   - Shift<Btn1Down>: MoveCursor()
441   -!
442   -! Start of keyboard-specific mappings.
443   -!
444   -! Sun Type 5 keyboard map. Not compatible with earlier Type 3 and Type 4
445   -! keymaps, but does a better job of mapping intuitive functions to the
446   -! existing key labels, and has fewer surprises.
447   -x3270.keymap.sun_k5: \
448   - Shift<Key>0x1005ff10: PF(23)\n\
449   - Shift<Key>0x1005ff11: PF(24)\n\
450   - :<Key>0x1005ff10: PF(11)\n\
451   - :<Key>0x1005ff11: PF(12)\n\
452   - ~@Num_Lock<Key>F27: Home()\n\
453   - ~@Num_Lock<Key>F33: FieldEnd()\n\
454   - :<Key>F18: insert-selection(PRIMARY)\n\
455   - Shift<Key>F22: SysReq()\n\
456   - :<Key>F22: PrintText()\n\
457   - <Key>KP_Enter: Newline()\n
458   -! Sun Type 4 keyboard map, backwards-compatible with earlier versions of x3270.
459   -x3270.keymap.sun_k4: \
460   - Shift<Key>0x1005ff10: PF(23)\n\
461   - Shift<Key>0x1005ff11: PF(24)\n\
462   - :<Key>0x1005ff10: PF(11)\n\
463   - :<Key>0x1005ff11: PF(12)\n\
464   - :<Key>KP_1: Key(1)\n\
465   - :<Key>KP_2: Key(2)\n\
466   - :<Key>KP_3: Key(3)\n\
467   - :<Key>KP_4: Key(4)\n\
468   - :<Key>KP_5: Key(5)\n\
469   - :<Key>KP_6: Key(6)\n\
470   - :<Key>KP_7: Key(7)\n\
471   - :<Key>KP_8: Key(8)\n\
472   - :<Key>KP_9: Key(9)\n\
473   - :<Key>KP_0: Key(0)\n\
474   - :<Key>KP_Decimal: Key(.)\n\
475   - :<Key>F18: insert-selection(PRIMARY)\n\
476   - :<Key>F19: SysReq()\n\
477   - :<Key>F20: FieldMark()\n\
478   - :<Key>F21: PA(1)\n\
479   - :<Key>F22: PA(2)\n\
480   - :<Key>F23: Dup()\n\
481   - :<Key>F24: Reset()\n\
482   - :<Key>F25: EraseEOF()\n\
483   - :<Key>F26: EraseInput()\n\
484   - :<Key>F27: Clear()\n\
485   - :<Key>F29: Redraw()\n\
486   - :<Key>F31: Home()\n\
487   - :<Key>KP_Enter: Newline()\n\
488   - :<Key>F35: Delete()\n
489   -! Sun Type 3 keyboard.
490   -x3270.keymap.sun_k3: \
491   - Shift<Key>F21: PF(22)\n\
492   - Shift<Key>F22: PF(23)\n\
493   - Shift<Key>F23: PF(24)\n\
494   - :Meta<Key>F21: PA(1)\n\
495   - :Meta<Key>F22: PA(2)\n\
496   - :Meta<Key>F23: Dup()\n\
497   - :<Key>F19: SysReq()\n\
498   - :<Key>0x0: FieldMark()\n\
499   - :<Key>F21: PF(10)\n\
500   - :<Key>F22: PF(11)\n\
501   - :<Key>F23: PF(12)\n\
502   - :<Key>F24: Reset()\n\
503   - :<Key>F25: EraseEOF()\n\
504   - :<Key>F26: EraseInput()\n\
505   - :<Key>F27: Clear()\n\
506   - :<Key>F31: Home()\n\
507   - :<Key>F29: Redraw()\n\
508   - :<Key>KP_Enter: Newline()\n\
509   - :<Key>F35: Delete()\n
510   -x3270.keymap.ncd: \
511   - :<Key>F13: Dup()\n\
512   - :<Key>Linefeed: Dup()\n\
513   - :<Key>F14: FieldMark()\n\
514   - :<Key>Break: FieldMark()\n\
515   - :<Key>Home: Home()\n\
516   - :<Key>F17: Home()\n\
517   - :<Key>End: EraseEOF()\n\
518   - :<Key>F15: Reset()\n\
519   - :<Key>Prior: Reset()\n\
520   - :<Key>F16: Newline()\n\
521   - :<Key>Next: Newline()\n\
522   - :<Key>KP_Add: EraseInput()\n\
523   - :<Key>Num_Lock: PF(13)\n\
524   - :<Key>KP_Space: PF(13)\n\
525   - :<Key>KP_Divide: PF(14)\n\
526   - :<Key>KP_Multiply: PF(15)\n\
527   - :<Key>KP_7: PF(16)\n\
528   - :<Key>KP_8: PF(17)\n\
529   - :<Key>KP_9: PF(18)\n\
530   - :<Key>KP_4: PF(19)\n\
531   - :<Key>KP_5: PF(20)\n\
532   - :<Key>KP_6: PF(21)\n\
533   - :<Key>KP_1: PF(22)\n\
534   - :<Key>KP_2: PF(23)\n\
535   - :<Key>KP_3: PF(24)\n\
536   - :<Key>KP_Subtract: SysReq()\n\
537   - :<Key>KP_0: PA(2)\n\
538   - :<Key>KP_Decimal: PA(1)\n\
539   - :<Key>KP_Enter: Clear()\n
540   -x3270.keymap.hp-k1: \
541   - :<Key>KP_Tab: BackTab()\n\
542   - :<Key>KP_Enter: Home()\n\
543   - :<Key>KP_Separator: Delete()\n\
544   - Shift<Key>Delete: Delete()\n\
545   - :<Key>Menu: EraseEOF()\n\
546   - :<Key>KP_Multiply: PF(13)\n\
547   - :<Key>KP_Divide: PF(14)\n\
548   - :<Key>KP_Add: PF(15)\n\
549   - :<Key>KP_7: PF(16)\n\
550   - :<Key>KP_8: PF(17)\n\
551   - :<Key>KP_9: PF(18)\n\
552   - :<Key>KP_4: PF(19)\n\
553   - :<Key>KP_5: PF(20)\n\
554   - :<Key>KP_6: PF(21)\n\
555   - :<Key>KP_1: PF(22)\n\
556   - :<Key>KP_2: PF(23)\n\
557   - :<Key>KP_3: PF(24)\n\
558   - :<Key>KP_0: PA(2)\n\
559   - :<Key>KP_Decimal: PA(1)\n
560   -! Keymap for HP-PC101 workstation keyboard, Chris P-E
561   -x3270.keymap.hp-pc: \
562   - :<Key>KP_Subtract: Compose()\n\
563   - :<Key>KP_Enter: Enter()\n\
564   - :<Key>Return: Newline()\n\
565   - !<Key>F1: PF(1)\n\
566   - !<Key>F2: PF(2)\n\
567   - !<Key>F3: PF(3)\n\
568   - !<Key>F4: PF(4)\n\
569   - !<Key>F5: PF(5)\n\
570   - !<Key>F6: PF(6)\n\
571   - !<Key>F7: PF(7)\n\
572   - !<Key>F8: PF(8)\n\
573   - !<Key>F9: PF(9)\n\
574   - !<Key>F10: PF(10)\n\
575   - !<Key>F11: PF(11)\n\
576   - !<Key>F12: PF(12)\n\
577   - !Shift<Key>hpSystem: PF(13)\n\
578   - !Shift<Key>KP_Divide: PF(14)\n\
579   - !Shift<Key>KP_Multiply: PF(15)\n\
580   - !Shift<Key>KP_7: PF(16)\n\
581   - !Shift<Key>KP_8: PF(17)\n\
582   - !Shift<Key>KP_9: PF(18)\n\
583   - !Shift<Key>KP_4: PF(19)\n\
584   - !Shift<Key>KP_5: PF(20)\n\
585   - !Shift<Key>KP_6: PF(21)\n\
586   - !Shift<Key>KP_1: PF(22)\n\
587   - !Shift<Key>KP_2: PF(23)\n\
588   - !Shift<Key>KP_3: PF(24)\n\
589   - !<Key>hpSystem: PF(1)\n\
590   - !<Key>KP_Divide: PF(2)\n\
591   - !<Key>KP_Multiply: PF(3)\n\
592   - !<Key>KP_7: PF(4)\n\
593   - !<Key>KP_8: PF(5)\n\
594   - !<Key>KP_9: PF(6)\n\
595   - !<Key>KP_4: PF(7)\n\
596   - !<Key>KP_5: PF(8)\n\
597   - !<Key>KP_6: PF(9)\n\
598   - !<Key>KP_1: PF(10)\n\
599   - !<Key>KP_2: PF(11)\n\
600   - !<Key>KP_3: PF(12)\n\
601   - !<Key>Break: Reset()\n\
602   - !Shift<Key>Break: Attn()\n\
603   - !Meta<Key>Break: SysReq()\n\
604   - !<Key>Prior: Dup()\n\
605   - !<Key>Next: FieldMark()\n\
606   - !<Key>Select: EraseEOF()\n\
607   - !Meta<Key>hpInsertChar: PA(1)\n\
608   - !Meta<Key>Home: PA(2)\n\
609   - !Meta<Key>Prior: PA(3)\n\
610   - !<Key>hpInsertChar: Insert()\n\
611   - !<Key>hpDeleteChar: Delete()\n\
612   - !Shift<Key>Menu: PrintWindow()\n\
613   - !<Key>Menu: PrintText()\n
614   -! Keymap for IBM X Terminal, Allan L. Bazinet
615   -x3270.keymap.ibm-xterm: \
616   - :<Key>Execute: Enter()\n\
617   - !<Key>Pause: Clear()\n\
618   - !<Key>BackSpace: BackSpace()\Delete()\n\
619   - !<Key>End: FieldEnd()\n\
620   - !Alt<Key>c: Clear()\n\
621   - !Alt<Key>Print: SysReq()\n\
622   - !Ctrl<Key>Home: EraseInput()\n\
623   - !Ctrl<Key>End: EraseEOF()\n\
624   - !Shift<Key>Tab: BackTab()\n\
625   - :<Key>KP_Subtract: PA(1)\n\
626   - :<Key>KP_Add: PA(2)\n\
627   - :<Key>KP_Enter: Enter()\n\
628   - :<Key>Prior: PA(1)\n\
629   - :<Key>Next: PA(2)\n\
630   - :<Key>Escape: Reset()\n\
631   - :<Key>Control_L: Reset()\n\
632   - :<Key>Insert: Insert()\n\
633   - !Shift<Key>Right: Right2()\n\
634   - !Shift<Key>Left: Left2()\n
635   -! Keymap for common 3270 functions on a PC keyboard, from Richard Lennox.
636   -x3270.keymap.rlx: #override \
637   - <Key>Prior: PF(7)\n\
638   - <Key>Next: PF(8)\n\
639   - <Key>Control_R: Enter()\n\
640   - <Key>Return: Newline()\n\
641   - <Key>Pause: Clear()\n\
642   - Shift<Key>Escape: Attn()\n\
643   - Shift<Key>Left: PreviousWord()\n\
644   - Shift<Key>Right: NextWord()\n\
645   - Ctrl<Key>Left: PreviousWord()\n\
646   - Ctrl<Key>Right: NextWord()\n\
647   - Shift<Key>End: EraseEOF()\n\
648   - <Key>End: FieldEnd()
649   -! Keymap modifier for OpenWindows (makes button 2 the extend key; defines the
650   -! Paste and Cut keys; uses CLIPBOARD).
651   -x3270.keymap.ow: #override \
652   - ~Shift<Btn1Down>: select-start()\n\
653   - ~Shift<Btn1Motion>: select-extend()\n\
654   - <Btn2Down>: start-extend()\n\
655   - <Btn2Motion>: select-extend()\n\
656   - <Btn3Down>: ignore()\n\
657   - <Btn3Motion>: ignore()\n\
658   - <Btn3Up>: insert-selection(CLIPBOARD,PRIMARY)\n\
659   - <BtnUp>: select-end(PRIMARY)\n\
660   - :<Key>F16: set-select(CLIPBOARD)\n\
661   - Shift<Key>F18: insert-selection(PRIMARY)\n\
662   - :<Key>F18: insert-selection(CLIPBOARD,PRIMARY)\n\
663   - :<Key>F20: set-select(CLIPBOARD) Cut()\n
664   -! APL keymap modifier.
665   -x3270.keymap.apl: #override \
666   - !:Alt<Key>bracketleft: Key(apl_leftarrow)\n\
667   - !:Alt<Key>bracketright: Key(apl_rightarrow)\n\
668   - :<Key>bracketleft: Key(apl_bracketleft)\n\
669   - :<Key>bracketright: Key(apl_bracketright)\n\
670   - !:Alt<Key>1: Key(apl_diaeresis)\n\
671   - !:Alt<Key>2: Key(apl_overbar)\n\
672   - !:Alt<Key>3: Key(less)\n\
673   - !:Alt<Key>4: Key(apl_notgreater)\n\
674   - !:Alt<Key>5: Key(equal)\n\
675   - !:Alt<Key>6: Key(apl_notless)\n\
676   - !:Alt<Key>7: Key(greater)\n\
677   - !:Alt<Key>8: Key(apl_notequal)\n\
678   - !:Alt<Key>9: Key(apl_downcaret)\n\
679   - !:Alt<Key>0: Key(apl_upcaret)\n\
680   - !:Alt<Key>minus: Key(apl_overbar)\n\
681   - !:Alt<Key>underscore: Key(underscore)\n\
682   - !:Alt<Key>=: Key(apl_multiply)\n\
683   - !:Alt<Key>+: Key(apl_divide)\n\
684   - !:Alt<Key>asciitilde: Key(apl_tilde)\n\
685   - !:Alt<Key>backslash: Key(apl_slope)\n\
686   - !:Alt<Key>bar: Key(apl_stile)\n\
687   - :Alt<Key>a: Key(apl_alpha)\n\
688   - :Alt<Key>b: Key(apl_downtack)\n\
689   - :Alt<Key>c: Key(apl_upshoe)\n\
690   - :Alt<Key>d: Key(apl_downstile)\n\
691   - :Alt<Key>e: Key(apl_epsilon)\n\
692   - :Alt<Key>f: Key(underscore)\n\
693   - :Alt<Key>g: Key(apl_del)\n\
694   - :Alt<Key>h: Key(apl_delta)\n\
695   - :Alt<Key>i: Key(apl_iota)\n\
696   - :Alt<Key>j: Key(apl_jot)\n\
697   - :Alt<Key>k: Key(apostrophe)\n\
698   - :Alt<Key>l: Key(apl_quad)\n\
699   - :Alt<Key>m: Key(apl_stile)\n\
700   - :Alt<Key>n: Key(apl_uptack)\n\
701   - :Alt<Key>o: Key(apl_circle)\n\
702   - :Alt<Key>p: Key(asterisk)\n\
703   - :Alt<Key>q: Key(question)\n\
704   - :Alt<Key>r: Key(apl_rho)\n\
705   - :Alt<Key>s: Key(apl_upstile)\n\
706   - :Alt<Key>t: Key(apl_tilde)\n\
707   - :Alt<Key>u: Key(apl_downarrow)\n\
708   - :Alt<Key>v: Key(apl_downshoe)\n\
709   - :Alt<Key>w: Key(apl_omega)\n\
710   - :Alt<Key>x: Key(apl_rightshoe)\n\
711   - :Alt<Key>y: Key(apl_uparrow)\n\
712   - :Alt<Key>z: Key(apl_leftshoe)\n\
713   - :Alt<Key>A: Key(apl_Aunderbar)\n\
714   - :Alt<Key>B: Key(apl_Bunderbar)\n\
715   - :Alt<Key>C: Key(apl_Cunderbar)\n\
716   - :Alt<Key>D: Key(apl_Dunderbar)\n\
717   - :Alt<Key>E: Key(apl_Eunderbar)\n\
718   - :Alt<Key>F: Key(apl_Funderbar)\n\
719   - :Alt<Key>G: Key(apl_Gunderbar)\n\
720   - :Alt<Key>H: Key(apl_Hunderbar)\n\
721   - :Alt<Key>I: Key(apl_Iunderbar)\n\
722   - :Alt<Key>J: Key(apl_Junderbar)\n\
723   - :Alt<Key>K: Key(apl_Kunderbar)\n\
724   - :Alt<Key>L: Key(apl_Lunderbar)\n\
725   - :Alt<Key>M: Key(apl_Munderbar)\n\
726   - :Alt<Key>N: Key(apl_Nunderbar)\n\
727   - :Alt<Key>O: Key(apl_Ounderbar)\n\
728   - :Alt<Key>P: Key(apl_Punderbar)\n\
729   - :Alt<Key>Q: Key(apl_Qunderbar)\n\
730   - :Alt<Key>R: Key(apl_Runderbar)\n\
731   - :Alt<Key>S: Key(apl_Sunderbar)\n\
732   - :Alt<Key>T: Key(apl_Tunderbar)\n\
733   - :Alt<Key>U: Key(apl_Uunderbar)\n\
734   - :Alt<Key>V: Key(apl_Vunderbar)\n\
735   - :Alt<Key>W: Key(apl_Wunderbar)\n\
736   - :Alt<Key>X: Key(apl_Xunderbar)\n\
737   - :Alt<Key>Y: Key(apl_Yunderbar)\n\
738   - :Alt<Key>Z: Key(apl_Zunderbar)\n
739   -! Temporary keymap for entering Hebrew characters
740   -x3270.keymap.hebrew: \
741   - ~Ctrl ~Alt ~Meta <Key>t: Key(hebrew_aleph)\n\
742   - ~Ctrl ~Alt ~Meta <Key>c: Key(hebrew_bet)\n\
743   - ~Ctrl ~Alt ~Meta <Key>d: Key(hebrew_gimel)\n\
744   - ~Ctrl ~Alt ~Meta <Key>s: Key(hebrew_dalet)\n\
745   - ~Ctrl ~Alt ~Meta <Key>v: Key(hebrew_he)\n\
746   - ~Ctrl ~Alt ~Meta <Key>u: Key(hebrew_waw)\n\
747   - ~Ctrl ~Alt ~Meta <Key>z: Key(hebrew_zain)\n\
748   - ~Ctrl ~Alt ~Meta <Key>j: Key(hebrew_chet)\n\
749   - ~Ctrl ~Alt ~Meta <Key>y: Key(hebrew_tet)\n\
750   - ~Ctrl ~Alt ~Meta <Key>h: Key(hebrew_yod)\n\
751   - ~Ctrl ~Alt ~Meta <Key>l: Key(hebrew_finalkaph)\n\
752   - ~Ctrl ~Alt ~Meta <Key>f: Key(hebrew_kaph)\n\
753   - ~Ctrl ~Alt ~Meta <Key>k: Key(hebrew_lamed)\n\
754   - ~Ctrl ~Alt ~Meta <Key>o: Key(hebrew_finalmem)\n\
755   - ~Ctrl ~Alt ~Meta <Key>n: Key(hebrew_mem)\n\
756   - ~Ctrl ~Alt ~Meta <Key>i: Key(hebrew_finalnun)\n\
757   - ~Ctrl ~Alt ~Meta <Key>b: Key(hebrew_nun)\n\
758   - ~Ctrl ~Alt ~Meta <Key>x: Key(hebrew_samech)\n\
759   - ~Ctrl ~Alt ~Meta <Key>g: Key(hebrew_ayin)\n\
760   - : ~Ctrl ~Alt ~Meta <Key>semicolon: Key(hebrew_finalpe)\n\
761   - ~Ctrl ~Alt ~Meta <Key>p: Key(hebrew_pe)\n\
762   - : ~Ctrl ~Alt ~Meta <Key>comma: Key(hebrew_finalzade)\n\
763   - ~Ctrl ~Alt ~Meta <Key>m: Key(hebrew_zade)\n\
764   - ~Ctrl ~Alt ~Meta <Key>e: Key(hebrew_qoph)\n\
765   - ~Ctrl ~Alt ~Meta <Key>r: Key(hebrew_resh)\n\
766   - ~Ctrl ~Alt ~Meta <Key>a: Key(hebrew_shin)\n\
767   - : ~Ctrl ~Alt ~Meta <Key>period: Key(hebrew_taw)\n
768   -!
769   -! Keymap for the "not" key, assumed to be above the "6" key on U.S.
770   -! keyboards. This used to be part of the 3270 base keymap, but does not
771   -! work properly on non-U.S. keyboards.
772   -x3270.keymap.not.3270: \
773   - :<Key>asciicircum: Key(notsign)
774   -! Keymap modifier for keyboards which lack a Meta key, such as the RS/6000.
775   -x3270.keymap.alt: \
776   - :Alt<Key>F1: PF(13)\n\
777   - :Alt<Key>F2: PF(14)\n\
778   - :Alt<Key>F3: PF(15)\n\
779   - :Alt<Key>F4: PF(16)\n\
780   - :Alt<Key>F5: PF(17)\n\
781   - :Alt<Key>F6: PF(18)\n\
782   - :Alt<Key>F7: PF(19)\n\
783   - :Alt<Key>F8: PF(20)\n\
784   - :Alt<Key>F9: PF(21)\n\
785   - :Alt<Key>F10: PF(22)\n\
786   - :Alt<Key>F11: PF(23)\n\
787   - :Alt<Key>F12: PF(24)\n
788   -x3270.keymap.alt.3270: \
789   - :Alt<Key>Left: Left2()\n\
790   - :Alt<Key>Right: Right2()\n\
791   - :Alt<Key>1: PA(1)\n\
792   - :Alt<Key>2: PA(2)\n\
793   - :Alt<Key>3: PA(3)\n\
794   - Alt<Key>a: Attn()\n\
795   - Alt<Key>b: PrintWindow()\n\
796   - Alt<Key>c: Clear()\n\
797   - Alt<Key>d: Delete()\n\
798   - Alt<Key>e: EraseEOF()\n\
799   - Alt<Key>h: Home()\n\
800   - Alt<Key>i: Insert()\n\
801   - Alt<Key>l: Redraw()\n\
802   - Alt<Key>p: PrintText()\n\
803   - Alt<Key>q: Quit()\n\
804   - Alt<Key>r: Reset()\n\
805   - Alt<Key>u: Unselect()\n
806   -! Helpful modifier to disply the translation table.
807   -x3270.keymap.t: \
808   - Meta<Key>t: XtDisplayTranslations()\n
809   -! International keymap modifiers.
810   -x3270.keymap.finnish7: \
811   - :<Key>bracketleft: Key("adiaeresis")\n\
812   - :<Key>bracketright: Key("aring")\n\
813   - :<Key>backslash: Key("odiaeresis")\n\
814   - :<Key>braceleft: Key("Adiaeresis")\n\
815   - :<Key>braceright: Key("Aring")\n\
816   - :<Key>bar: Key("Odiaeresis")\n
817   -x3270.keymap.norwegian7: \
818   - :<Key>bracketleft: Key("ae")\n\
819   - :<Key>backslash: Key("oslash")\n\
820   - :<Key>bracketright: Key("aring")\n\
821   - :<Key>braceleft: Key("AE")\n\
822   - :<Key>bar: Key("Ooblique")\n\
823   - :<Key>braceright: Key("Aring")\n\
824   - :!Meta<Key>u: Key("udiaeresis")\n\
825   - :<Key>dollar: Key("currency")\n\
826   - :<Key>at: Key("backslash")\n
827   -! "Old" Norwegian keymap, compatible with older versions of x3270.
828   -x3270.keymap.oldnorwegian7: \
829   - :<Key>bracketleft: Key("AE")\n\
830   - :<Key>bracketright: Key("Aring")\n\
831   - :<Key>backslash: Key("Ooblique")\n\
832   - :<Key>braceleft: Key("ae")\n\
833   - :<Key>braceright: Key("aring")\n\
834   - :<Key>bar: Key("oslash")\n
835   -! German keymap courtesy of Karlheinz Kandler
836   -x3270.keymap.german7: \
837   - :<Key>bracketleft: Key("adiaeresis")\n\
838   - :<Key>bracketright: Key("udiaeresis")\n\
839   - :<Key>backslash: Key("odiaeresis")\n\
840   - :<Key>braceleft: Key("Adiaeresis")\n\
841   - :<Key>braceright: Key("Udiaeresis")\n\
842   - :<Key>bar: Key("Odiaeresis")\n\
843   - :<Key>asciicircum: Key("^")\n\
844   - :<Key>asciitilde: Key("ssharp")\n\
845   - :<Key>at: Key("section")\n
846   -! Keymap modifier for RS/6000s with French AZERTY keyboards, which allows
847   -! the diaeresis and circumflex keys to work intuitively (press diaereses,
848   -! press "a", get "adiaeresis, etc.)
849   -x3270.keymap.fr6k: \
850   - Shift<Key>dead_diaeresis: Compose() Key(quotedbl)\n\
851   - :<Key>dead_circumflex: Compose() Key(asciicircum)\n
852   -! Icelandic keymap, courtesy of Rikhardur Egilsson
853   -x3270.keymap.icelandic: \
854   - :<Key>dead_acute: Compose() Key(apostrophe)\n
855   -!
856   -!=============================================================================
857   -! Section 2: Labels and Messages
858   -!
859   -! These are resources that are likely to be modified for translation
860   -! into another language.
861   -!=============================================================================
862   -!
863   -x3270.errorPopup.title: x3270 Error
864   -x3270.errorPopup*cancelButton.label: Exit
865   -x3270.printerErrorPopup.title: x3270 Printer Error
866   -x3270.childErrorPopup.title: x3270 Child Process Error
867   -#ifdef X3270_MENUS
868   -x3270.infoPopup.title: x3270 Information
869   -x3270.printerInfoPopup.title: x3270 Printer Information
870   -x3270.childInfoPopup.title: x3270 Child Process Information
871   -x3270.connectPopup.title: x3270 Connect
872   -x3270.connectPopup.dialog.label: Enter Hostname
873   -x3270.fontPopup.title: x3270 Font
874   -x3270.fontPopup.dialog.label: Enter Font Name
875   -x3270.keymapPopup.title: x3270 Keymap
876   -x3270.keymapPopup.dialog.label: Enter Keymap Name
877   -x3270.oversizePopup.title: x3270 Oversize
878   -x3270.oversizePopup.dialog.label: Enter Dimensions (cols x rows)
879   -x3270.oversizePopup*confirmButton.label: Resize
880   -#endif
881   -#ifdef X3270_KEYPAD
882   -x3270.keypadPopup.title: x3270 Keypad
883   -#endif
884   -#ifdef X3270_MENUS
885   -x3270.printTextPopup.title: x3270 Screen Print
886   -x3270.printTextPopup.dialog.label: Enter Print Command
887   -x3270.printTextPopup*confirmButton.label: Print
888   -x3270.saveTextPopup.title: x3270 Screen Save
889   -x3270.saveTextPopup.dialog.label: Enter File Name
890   -x3270.saveTextPopup*confirmButton.label: Save as Text
891   -x3270.saveTextPopup*confirm2Button.label: Save as HTML
892   -x3270.printWindowPopup.title: x3270 Window Print
893   -x3270.printWindowPopup.dialog.label: Enter Print Command
894   -x3270.printWindowPopup*confirmButton.label: Print
895   -#endif
896   -#ifdef X3270_TRACE
897   -x3270.tracePopup.title: x3270 Tracing
898   -x3270.tracePopup.dialog.label: Enter Trace File Name
899   -x3270.tracePopup*confirmButton.label: Trace
900   -x3270.tracePopup*confirm2Button.label: No File
901   -x3270.screentracePopup.title: x3270 Screen Image Tracing
902   -x3270.screentracePopup.dialog.label: Enter File Name
903   -x3270.screentracePopup*confirmButton.label: Continuously
904   -x3270.screentracePopup*confirm2Button.label: Once
905   -#endif
906   -#ifdef X3270_MENUS
907   -x3270.executeActionPopup.title: x3270 Execute Action
908   -x3270.executeActionPopup.dialog.label: Enter Action and Parameters
909   -x3270.executeActionPopup*confirmButton.label: Execute
910   -x3270.saveOptionsPopup.title: x3270 Save Changed Options
911   -x3270.saveOptionsPopup.dialog.label: Enter Profile File Name
912   -x3270.saveOptionsPopup*confirmButton.label: Save
913   -x3270.aboutCopyrightPopup.title: x3270 Copyright
914   -x3270.aboutConfigPopup.title: x3270 Configuration
915   -x3270.aboutStatusPopup.title: x3270 Connection Status
916   -x3270.connectPopup*confirmButton.label: Connect
917   -x3270.fontPopup*confirmButton.label: Select Font
918   -x3270.keymapPopup*confirmButton.label: Select Keymap
919   -#endif
920   -#ifdef X3270_FT
921   -x3270.ftPopup.title: x3270 File Transfer
922   -x3270.ftProgressPopup.title: x3270 File Transfer
923   -x3270.ftOverwritePopup.title: x3270 File Transfer
924   -#endif
925   -#ifdef X3270_SCRIPT
926   -x3270.idlePopup.title: x3270 Idle Command
927   -#endif
928   -x3270.kmPopup.title: x3270 Keymap
929   -x3270*confirmButton.label: OK
930   -x3270.printerErrorPopup*cancelButton.label: Abort Printer
931   -x3270.printerInfoPopup*cancelButton.label: Abort Printer
932   -x3270.childErrorPopup*cancelButton.label: Discard Output
933   -x3270.childInfoPopup*cancelButton.label: Discard Output
934   -x3270*cancelButton.label: Cancel
935   -#ifdef X3270_MENUS
936   -x3270*aboutOption.label: About x3270...
937   -x3270*aboutCopyright.label: Copyright
938   -x3270*aboutConfig.label: Configuration
939   -x3270*aboutStatus.label: Connection Status
940   -#ifdef X3270_FT
941   -x3270*ftOption.label: File Transfer...
942   -#endif
943   -#ifdef X3270_PRINTER
944   -x3270*printerOption.label: Printer Session
945   -x3270*assocButton.label: Start, associate with current LU
946   -x3270*luButton.label: Start, specific LU...
947   -x3270*printerOffButton.label: Stop Printer
948   -#endif
949   -x3270*abortScriptOption.label: Abort Scripts/Macros/Strings
950   -x3270*disconnectOption.label: Disconnect
951   -x3270*exitOption.label: Exit x3270
952   -x3270*exitReallyOption.label: Disconnect and Exit
953   -x3270*printTextOption.label: Print Screen Text
954   -x3270*saveTextOption.label: Save Screen Text in File
955   -x3270*printWindowOption.label: Print Window Bitmap
956   -x3270*executeActionOption.label: Execute an Action
957   -x3270*fileMenuButton.label: File
958   -x3270*fileMenu.label: File
959   -#endif
960   -#ifdef X3270_FT
961   -x3270.ftPopup*justify: left
962   -x3270.ftPopup*send.label: Send to host
963   -x3270.ftPopup*receive.label: Receive from host
964   -x3270.ftPopup*ascii.label: Transfer ASCII file
965   -x3270.ftPopup*cr.label: Add/remove CR at end of line
966   -x3270.ftPopup*binary.label: Transfer binary file
967   -x3270.ftPopup*local.label: Local File Name
968   -x3270.ftPopup*host.label: Host File Name
969   -x3270.ftPopup*append.label: Append to file
970   -x3270.ftPopup*remap.label: Remap ASCII Characters
971   -x3270.ftPopup*vm.label: Host is VM/CMS
972   -x3270.ftPopup*tso.label: Host is TSO
973   -x3270.ftPopup*confirmButton.label: Transfer File
974   -x3270.ftPopup*file.label: Record Format
975   -x3270.ftPopup*recfmDefault.label: Default
976   -x3270.ftPopup*fixed.label: Fixed
977   -x3270.ftPopup*variable.label: Variable
978   -x3270.ftPopup*undefined.label: Undefined
979   -x3270.ftPopup*units.label: Space Allocation Units
980   -x3270.ftPopup*spaceDefault.label: Default
981   -x3270.ftPopup*tracks.label: Tracks
982   -x3270.ftPopup*cylinders.label: Cylinders
983   -x3270.ftPopup*avblock.label: Avblock
984   -x3270.ftPopup*lrecl.label: LRECL
985   -x3270.ftPopup*blksize.label: BLKSIZE
986   -x3270.ftPopup*primspace.label: Primary Space
987   -x3270.ftPopup*secspace.label: Secondary Space
988   -x3270.ftPopup*buffersize.label: DFT Buffer Size
989   -x3270.ftProgressPopup*fromLabel.label: Source:
990   -x3270.ftProgressPopup*fromLabel.justify: right
991   -x3270.ftProgressPopup*toLabel.label: Destination:
992   -x3270.ftProgressPopup*toLabel.justify: right
993   -x3270.ftProgressPopup*filename.justify: left
994   -x3270.ftOverwritePopup*overwriteName.label: Overwrite existing file %s?
995   -x3270.ftProgressPopup*waiting.label: Waiting for host acknowledgment...
996   -x3270.ftProgressPopup*status.label: %lu bytes transferred
997   -x3270.ftProgressPopup*aborting.label: Aborting transfer...
998   -#endif
999   -#ifdef X3270_SCRIPT
1000   -x3270.idlePopup*justify: left
1001   -x3270.idlePopup*command.label: Command(s)
1002   -x3270.idlePopup*timeout.label: Timeout Value
1003   -x3270.idlePopup*enable.label: Enable for this session
1004   -x3270.idlePopup*enablePerm.label: Enable whenever connected
1005   -x3270.idlePopup*disable.label: Disable
1006   -x3270.idlePopup*hours.label: Hours
1007   -x3270.idlePopup*minutes.label: Minutes
1008   -x3270.idlePopup*seconds.label: Seconds
1009   -x3270.idlePopup*fuzz.label: Vary time 0..10%
1010   -#endif
1011   -#ifdef X3270_PRINTER
1012   -x3270.printerLuPopup.title: x3270 Printer Session
1013   -x3270.printerLuPopup.dialog.label: Enter LU Name
1014   -x3270.printerLuPopup*confirmButton.label: Start Session
1015   -#endif
1016   -#ifdef X3270_MENUS
1017   -x3270*optionsMenuButton.label: Options
1018   -x3270*optionsMenu.label: Options
1019   -x3270*connectMenuButton.label: Connect
1020   -x3270*macrosMenuButton.label: Macros
1021   -x3270*macrosMenu.label: Macros
1022   -x3270*hostMenu.label: Connect
1023   -x3270*helpButton.label: Help
1024   -x3270*otherHostOption.label: Other...
1025   -x3270*togglesOption.label: Toggles
1026   -x3270*fontsOption.label: Font
1027   -x3270*modelsOption.label: Screen Size
1028   -x3270*colorsOption.label: Color Scheme
1029   -x3270*charsetOption.label: Character Set
1030   -x3270*keymapOption.label: Change Keymap...
1031   -x3270*idleCommandOption.label: Configure Idle Command
1032   -x3270*keypadOption.label: Keypad
1033   -x3270*monocaseOption.label: Monocase
1034   -x3270*cursorBlinkOption.label: Blinking Cursor
1035   -x3270*showTimingOption.label: Show Timing
1036   -x3270*cursorPosOption.label: Track Cursor
1037   -x3270*dsTraceOption.label: Trace Data Stream
1038   -x3270*eventTraceOption.label: Trace Keyboard/Mouse Events
1039   -x3270*screenTraceOption.label: Save Screen(s) in File
1040   -x3270*scrollBarOption.label: Scrollbar
1041   -x3270*lineWrapOption.label: Wraparound
1042   -x3270*marginedPasteOption.label: Paste with Left Margin
1043   -x3270*rectangleSelectOption.label: Select by Rectangles
1044   -x3270*blankFillOption.label: Blank Fill
1045   -x3270*crosshairOption.label: Crosshair Cursor
1046   -x3270*visibleControlOption.label: Visible Control Chars
1047   -x3270*underlineCursorOption.label: Underline Cursor
1048   -x3270*blockCursorOption.label: Block Cursor
1049   -x3270*otherFontOption.label: Other...
1050   -x3270*lineModeOption.label: Line Mode
1051   -x3270*characterModeOption.label: Character Mode
1052   -x3270*extendedDsOption.label: Extended 3270 Data Stream
1053   -x3270*m3278Option.label: Monochrome (3278) Emulation
1054   -x3270*m3279Option.label: Color (3279) Emulation
1055   -x3270*model2Option.label: Model 2 (80x24)
1056   -x3270*model3Option.label: Model 3 (80x32)
1057   -x3270*model4Option.label: Model 4 (80x43)
1058   -x3270*model5Option.label: Model 5 (132x27)
1059   -x3270*oversizeOption.label: Oversize...
1060   -x3270*saveOption.label: Save Changed Options in File
1061   -#endif
1062   -!
1063   -! Messages
1064   -#ifdef X3270_MENUS
1065   -x3270.message.processId: Process ID:
1066   -x3270.message.windowId: Main window ID:
1067   -x3270.message.model: Model
1068   -x3270.message.rows: rows
1069   -x3270.message.columns: columns
1070   -x3270.message.mono: monochrome
1071   -x3270.message.fullColor: color
1072   -x3270.message.pseudoColor: pseudo-color
1073   -x3270.message.extendedDs: extended data stream
1074   -x3270.message.standardDs: standard data stream
1075   -x3270.message.terminalName: Terminal name:
1076   -x3270.message.luName: LU name:
1077   -x3270.message.emulatorFont: Emulator font:
1078   -x3270.message.emulatorFontDbcs: DBCS emulator font:
1079   -x3270.message.xFont: standard X11 font
1080   -x3270.message.cgFont: special 3270 CG font
1081   -x3270.message.characterSet: Host EBCDIC character set:
1082   -x3270.message.characterSetDbcs: Host EBCDIC DBCS character set:
1083   -x3270.message.defaultCharacterSet: Default (us) EBCDIC character set
1084   -x3270.message.displayCharacterSet: Display character set:
1085   -x3270.message.displayCharacterSetDbcs: DBCS display character set:
1086   -x3270.message.localeCodeset: Locale codeset:
1087   -x3270.message.require: require
1088   -x3270.message.have: have
1089   -x3270.message.keyboardMap: Keyboard map:
1090   -x3270.message.defaultKeyboardMap: Default keyboard map
1091   -x3270.message.composeMap: Compose-key map:
1092   -x3270.message.noComposeMap: No compose-key map
1093   -x3270.message.activeIcon: Active icon
1094   -x3270.message.iconFont: Icon font:
1095   -x3270.message.iconLabelFont: Icon label font:
1096   -x3270.message.staticIcon: Static bitmap icon
1097   -x3270.message.connectedTo: Connected to:
1098   -x3270.message.port: Port:
1099   -x3270.message.secure: via TLS/SSL
1100   -x3270.message.proxyType: Proxy type:
1101   -x3270.message.server: Server:
1102   -x3270.message.charMode: NVT character mode
1103   -x3270.message.lineMode: NVT line mode
1104   -x3270.message.dsMode: 3270 mode
1105   -x3270.message.sscpMode: SSCP-LU mode
1106   -x3270.message.tn3270eOpts: TN3270E options:
1107   -x3270.message.tn3270eNoOpts: No TN3270E options
1108   -x3270.message.connectionPending: Connection pending to:
1109   -x3270.message.notConnected: Not connected
1110   -x3270.message.specialCharacters: Special characters:
1111   -x3270.message.hour: hour
1112   -x3270.message.hours: hours
1113   -x3270.message.minute: minute
1114   -x3270.message.minutes: minutes
1115   -x3270.message.second: second
1116   -x3270.message.seconds: seconds
1117   -x3270.message.sent: Sent
1118   -x3270.message.Received: Received
1119   -x3270.message.received: received
1120   -x3270.message.byte: byte
1121   -x3270.message.bytes: bytes
1122   -x3270.message.record: record
1123   -x3270.message.records: records
1124   -x3270.message.statusDbcs: DBCS
1125   -x3270.message.statusNotConnected: Not Connected
1126   -x3270.message.statusTwait: Wait
1127   -x3270.message.statusSyswait: System
1128   -x3270.message.statusProtected: Protected
1129   -x3270.message.statusNumeric: Numeric
1130   -x3270.message.statusOverflow: Overflow
1131   -x3270.message.statusInhibit: Inhibit
1132   -x3270.message.statusScrolled: Scrolled
1133   -x3270.message.statusMinus: No Function
1134   -#endif
1135   -x3270.message.statusConnecting: Connecting
1136   -#endif
1137   -#ifdef X3270_FT
1138   -x3270.message.ftComplete: Transfer complete, %i bytes transferred\n\
1139   -%.2lg Kbytes/sec in %s mode
1140   -x3270.message.ftUnable: Cannot begin transfer
1141   -x3270.message.ftUserCancel: Transfer cancelled by user
1142   -x3270.message.ftHostCancel: Transfer cancelled by host
1143   -x3270.message.ftCutUnknownFrame: Unknown frame type from host
1144   -x3270.message.ftCutUnknownControl: Unknown FT control code from host
1145   -x3270.message.ftCutRetransmit: Transmission error
1146   -x3270.message.ftCutConversionError: Data conversion error
1147   -x3270.message.ftCutOversize: Illegal frame length
1148   -x3270.message.ftDisconnected: Host disconnected, transfer cancelled
1149   -x3270.message.ftNot3270: Not in 3270 mode, transfer cancelled
1150   -x3270.message.ftDftUnknownOpen: Uknown DFT Open type from host
1151   -#endif
1152   -x3270.message.inputMethod: X11 Input Method (XIM):
1153   -x3270.message.ximState: state:
1154   -x3270.message.ximDisabled: failed
1155   -x3270.message.ximNotFound: not found
1156   -x3270.message.ximActive: active
1157   -x3270.message.ximLocale: locale:
1158   -x3270.message.ximEncoding: encoding:
1159   -#ifndef STANDALONE
1160   -x3270.message.kmEvent: Event
1161   -x3270.message.kmKeymapLine: Keymap:Line
1162   -x3270.message.kmActions: Actions
1163   -x3270.message.kmOverridden: \ -- overridden --
1164   -x3270.message.kmKeymap: Keymap
1165   -x3270.message.kmTemporaryKeymap: Temporary keymap
1166   -
1167   -x3270.message.kmFile: from file
1168   -x3270.message.kmResource: from resource
1169   -x3270.message.kmFromServer: \ (expanded from '@server')
1170   -!
1171   -!=============================================================================
1172   -! Section 3: Base-Level Resources
1173   -!
1174   -! Resources required for the basic operation of x3270, not for the
1175   -! faint-hearted to modify.
1176   -!=============================================================================
1177   -!
1178   -! App-defaults file version
1179   -x3270.adVersion: 3.3.4
1180   -!
1181   -! Fonts
1182   -#ifdef X3270_APL
1183   -x3270.aplFont: 3270
1184   -#endif
1185   -x3270.debugFont: 3270d
1186   -x3270.iconFont: nil2
1187   -x3270.iconLabelFont: 8x13
1188   -#ifdef X3270_KEYPAD
1189   -x3270*keyPad*large*font: fixed
1190   -x3270*keyPad*small*font: -*-fixed-medium-r-semicondensed-*-12-*-*
1191   -#endif
1192   -x3270*value*font: fixed
1193   -x3270*dataLabel.font: -*-terminal-medium-r-normal--14-*-iso8859-1
1194   -!x3270*smallLabel.font: 5x7
1195   -x3270*smallLabel.font: 6x13
1196   -x3270*filename*font: fixed
1197   -x3270*kmPopup*text*font: fixed
1198   -x3270*font: -*-helvetica-bold-r-normal--12-*-iso8859-1
1199   -!
1200   -! Menu configuration
1201   -#ifdef X3270_MENUS
1202   -x3270*menuBarContainer.borderWidth: 2
1203   -#endif
1204   -#ifdef COLOR
1205   -#ifdef X3270_KEYPAD
1206   -x3270.keypadBackground: grey
1207   -#endif
1208   -#ifdef X3270_MENUS
1209   -x3270*menuBarContainer.background: grey
1210   -x3270*menuBarContainer.borderColor: grey40
1211   -x3270*fileMenuButton*background: grey
1212   -x3270*optionsMenuButton*background: grey
1213   -x3270*connectMenuButton*background: grey
1214   -x3270*macrosMenuButton*background: grey
1215   -x3270*helpButton*background: grey
1216   -x3270*keypadButton*background: grey
1217   -x3270*lockedIcon*background: grey
1218   -x3270*lockedIcon*foreground: yellow4
1219   -x3270*lockedIcon*borderColor: grey
1220   -x3270*unlockedIcon*background: grey
1221   -x3270*unlockedIcon*borderColor: grey
1222   -x3270*fileMenuButton*borderColor: grey
1223   -x3270*optionsMenuButton*borderColor: grey
1224   -x3270*connectMenuButton*borderColor: grey
1225   -x3270*macrosMenuButton*borderColor: grey
1226   -x3270*helpButton*borderColor: grey
1227   -#endif
1228   -#else
1229   -#ifdef X3270_MENUS
1230   -x3270*fileMenuButton*borderColor: XtDefaultBackground
1231   -x3270*optionsMenuButton*borderColor: XtDefaultBackground
1232   -x3270*connectMenuButton*borderColor: XtDefaultBackground
1233   -x3270*macrosMenuButton*borderColor: XtDefaultBackground
1234   -x3270*helpButton*borderColor: XtDefaultBackground
1235   -#endif
1236   -#endif
1237   -#ifdef X3270_MENUS
1238   -x3270*fileMenuButton*highlightThickness: 1
1239   -x3270*optionsMenuButton*highlightThickness: 1
1240   -x3270*connectMenuButton*highlightThickness: 1
1241   -x3270*macrosMenuButton*highlightThickness: 1
1242   -x3270*helpButton*highlightThickness: 1
1243   -x3270*keypadButton*highlightThickness: 1
1244   -#ifdef COLOR
1245   -x3270*fileMenu*background: grey
1246   -x3270*exitMenu*background: grey
1247   -x3270*optionsMenu*background: grey
1248   -x3270*hostMenu*background: grey
1249   -x3270*macrosMenu*background: grey
1250   -x3270*togglesMenu*background: grey
1251   -x3270*fontsMenu*background: grey
1252   -x3270*modelsMenu*background: grey
1253   -x3270*colorsMenu*background: grey
1254   -x3270*charsetMenu*background: grey
1255   -x3270*printerMenu*background: grey
1256   -#endif
1257   -x3270*fileMenu.borderWidth: 2
1258   -x3270*exitMenu.borderWidth: 2
1259   -x3270*optionsMenu.borderWidth: 2
1260   -x3270*hostMenu.borderWidth: 2
1261   -x3270*macrosMenu.borderWidth: 2
1262   -x3270*togglesMenu.borderWidth: 2
1263   -x3270*fontsMenu.borderWidth: 2
1264   -x3270*modelsMenu.borderWidth: 2
1265   -x3270*colorsMenu.borderWidth: 2
1266   -x3270*charsetMenu.borderWidth: 2
1267   -#ifdef COLOR
1268   -x3270*fileMenu.borderColor: grey40
1269   -x3270*exitMenu.borderColor: grey40
1270   -x3270*optionsMenu.borderColor: grey40
1271   -x3270*hostMenu.borderColor: grey40
1272   -x3270*macrosMenu.borderColor: grey40
1273   -x3270*togglesMenu.borderColor: grey40
1274   -x3270*fontsMenu.borderColor: grey40
1275   -x3270*modelsMenu.borderColor: grey40
1276   -x3270*colorsMenu.borderColor: grey40
1277   -x3270*charsetMenu.borderColor: grey40
1278   -#endif
1279   -x3270*fileMenu*leftMargin: 20
1280   -x3270*fileMenu*rightMargin: 20
1281   -x3270*optionsMenu*rightMargin: 20
1282   -x3270*togglesMenu*leftMargin: 20
1283   -x3270*fontsMenu*leftMargin: 20
1284   -x3270*fontsMenu*rightMargin: 20
1285   -x3270*modelsMenu*leftMargin: 20
1286   -x3270*colorsMenu*leftMargin: 20
1287   -x3270*colorsMenu*rightMargin: 20
1288   -x3270*charsetMenu*leftMargin: 20
1289   -x3270*charsetMenu*rightMargin: 20
1290   -x3270*hostMenu*rightMargin: 20
1291   -x3270*macrosMenu*rightMargin: 20
1292   -#endif
1293   -!
1294   -! Confirm and cancel buttons
1295   -! borderWidth and borderColor are never specified anywhere else, so these
1296   -! always apply
1297   -x3270*confirmButton.borderWidth: 2
1298   -x3270*confirm2Button*borderWidth: 2
1299   -x3270*cancelButton*borderWidth: 2
1300   -#ifdef COLOR
1301   -x3270**confirmButton.borderColor: grey40
1302   -x3270**confirmButton.borderColor: grey40
1303   -x3270**confirm2Button.borderColor: grey40
1304   -x3270**cancelButton.borderColor: grey40
1305   -#endif
1306   -! foreground and background are often overridden by other resources, so they
1307   -! must be specified explicitly for each instance
1308   -#ifdef COLOR
1309   -x3270*dialog*confirmButton.foreground: black
1310   -x3270*dialog*confirmButton.background: grey80
1311   -x3270*dialog*confirm2Button.background: grey80
1312   -x3270*dialog*cancelButton.foreground: firebrick
1313   -x3270*dialog*cancelButton.background: grey80
1314   -#endif
1315   -!
1316   -! Values
1317   -! borderWidth and borderColor are never specified anywhere else, so these
1318   -! always apply
1319   -#ifdef COLOR
1320   -x3270*value.borderWidth: 2
1321   -x3270*value.borderColor: grey40
1322   -#endif
1323   -! background is overridden by dialog*background, so it must be specified
1324   -! explicitly
1325   -#ifdef COLOR
1326   -x3270*dialog*value*background: lavender
1327   -#endif
1328   -!
1329   -! Overall defaults for dialog boxes
1330   -#ifdef COLOR
1331   -x3270*dialog*background: grey
1332   -x3270*dialog*foreground: black
1333   -#endif
1334   -!
1335   -! Fixed popup sizes
1336   -x3270.errorPopup.width: 500
1337   -x3270.printerErrorPopup.width: 500
1338   -x3270.childErrorPopup.width: 500
1339   -x3270.infoPopup.width: 500
1340   -x3270.printerInfoPopup.width: 500
1341   -x3270.childInfoPopup.width: 500
1342   -x3270.printerLuPopup.width: 300
1343   -x3270.connectPopup.width: 300
1344   -x3270.fontPopup.width: 300
1345   -x3270.keymapPopup.width: 300
1346   -x3270.oversizePopup.width: 300
1347   -x3270.printTextPopup.width: 300
1348   -x3270.saveTextPopup.width: 300
1349   -x3270.printWindowPopup.width: 300
1350   -x3270.tracePopup.width: 300
1351   -x3270.screentracePopup.width: 300
1352   -x3270.executeActionPopup.width: 300
1353   -x3270.saveOptionsPopup.width: 300
1354   -!
1355   -! Nondefault definitions for complex pop-ups
1356   -#ifdef COLOR
1357   -x3270.aboutCopyrightPopup*icon.foreground: darkslateblue
1358   -x3270.aboutConfigPopup*icon.foreground: darkslateblue
1359   -x3270.aboutStatusPopup*icon.foreground: darkslateblue
1360   -x3270.errorPopup*label.foreground: firebrick
1361   -x3270.printerErrorPopup*label.foreground: firebrick
1362   -x3270.childErrorPopup*label.foreground: firebrick
1363   -#ifdef X3270_FT
1364   -x3270.ftProgressPopup*filename.borderWidth: 2
1365   -x3270.ftProgressPopup*filename.borderColor: grey40
1366   -x3270.ftProgressPopup*filename.background: lavender
1367   -#endif
1368   -#endif
1369   -!
1370   -#ifdef X3270_KEYPAD
1371   -! Keypad key dimensions, in pixels
1372   -x3270.keypad.keyHeight: 24
1373   -x3270.keypad.keyWidth: 48
1374   -x3270.keypad.pfWidth: 32
1375   -x3270.keypad.paWidth: 36
1376   -x3270.keypad.largeKeyWidth: 56
1377   -#endif
1378   -!
1379   -! Keymap display pop-up
1380   -!
1381   -x3270*keymapDisplayOption.label: Display Current Keymap
1382   -x3270.kmPopup*label.label: Current Keyboard Map
1383   -x3270.kmPopup*sortActionOption.label: Sort by Action
1384   -x3270.kmPopup*sortKeymapOption.label: Sort by Keymap
1385   -x3270.kmPopup*sortEventOption.label: Sort by Event
1386   -x3270.kmPopup*text*background: lavender
1387   -x3270.kmPopup*text*foreground: black
1388   -x3270.kmPopup*text.height: 250
1389   -x3270.kmPopup*text.width: 500
1390   -!
1391   -! Basic event translations -- these should NEVER be changed without significant
1392   -! code changes
1393   -x3270.translations: #override \n\
1394   - <Message>WM_PROTOCOLS: PA-WMProtocols()\n\
1395   - <KeymapNotify>: PA-KeymapNotify()\n\
1396   - <PropertyNotify>WM_STATE: PA-StateChanged()\n\
1397   - <FocusIn>: PA-Focus()\n\
1398   - <FocusOut>: PA-Focus()\n\
1399   - <ConfigureNotify>: PA-ConfigureNotify()
1400   -x3270.container.translations: #override \n\
1401   - <KeyPress>Shift_L: PA-Shift()\n\
1402   - <KeyRelease>Shift_L: PA-Shift()\n\
1403   - <KeyPress>Shift_R: PA-Shift()\n\
1404   - <KeyRelease>Shift_R: PA-Shift()\n\
1405   - <KeyPress>Meta_L: PA-Shift()\n\
1406   - <KeyRelease>Meta_L: PA-Shift()\n\
1407   - <KeyPress>Meta_R: PA-Shift()\n\
1408   - <KeyRelease>Meta_R: PA-Shift()\n\
1409   - <KeyPress>Alt_L: PA-Shift()\n\
1410   - <KeyRelease>Alt_L: PA-Shift()\n\
1411   - <KeyPress>Alt_R: PA-Shift()\n\
1412   - <KeyRelease>Alt_R: PA-Shift()\n\
1413   - :<Key>: Default()\n\
1414   - :<BtnDown>: Default()\n\
1415   - :<BtnUp>: Default()
1416   -x3270*screen.translations: #override \n\
1417   - <Expose>: PA-Expose()\n\
1418   - <VisibilityNotify>: PA-VisibilityNotify()\n\
1419   - <GraphicsExpose>: PA-GraphicsExpose()\n\
1420   - <KeyPress>Shift_L: PA-Shift()\n\
1421   - <KeyRelease>Shift_L: PA-Shift()\n\
1422   - <KeyPress>Shift_R: PA-Shift()\n\
1423   - <KeyRelease>Shift_R: PA-Shift()\n\
1424   - <KeyPress>Meta_L: PA-Shift()\n\
1425   - <KeyRelease>Meta_L: PA-Shift()\n\
1426   - <KeyPress>Meta_R: PA-Shift()\n\
1427   - <KeyRelease>Meta_R: PA-Shift()\n\
1428   - <KeyPress>Alt_L: PA-Shift()\n\
1429   - <KeyRelease>Alt_L: PA-Shift()\n\
1430   - <KeyPress>Alt_R: PA-Shift()\n\
1431   - <KeyRelease>Alt_R: PA-Shift()\n\
1432   - :<Key>: Default()\n\
1433   - :<BtnDown>: Default()\n\
1434   - :<BtnUp>: Default()
1435   -x3270icon.translations: #override \n\
1436   - <Expose>: PA-Expose()
1437   -#ifdef X3270_KEYPAD
1438   -x3270.keypadPopup.translations: #override \n\
1439   - <Message>WM_PROTOCOLS: PA-WMProtocols()\n\
1440   - <KeymapNotify>: PA-KeymapNotify()\n\
1441   - <Enter>: PA-EnterLeave()\n\
1442   - <Leave>: PA-EnterLeave()
1443   -x3270.keypadPopup.container.translations: #override \n\
1444   - <KeyPress>Shift_L: PA-Shift()\n\
1445   - <KeyRelease>Shift_L: PA-Shift()\n\
1446   - <KeyPress>Shift_R: PA-Shift()\n\
1447   - <KeyRelease>Shift_R: PA-Shift()\n\
1448   - <KeyPress>Meta_L: PA-Shift()\n\
1449   - <KeyRelease>Meta_L: PA-Shift()\n\
1450   - <KeyPress>Meta_R: PA-Shift()\n\
1451   - <KeyRelease>Meta_R: PA-Shift()\n\
1452   - <KeyPress>Alt_L: PA-Shift()\n\
1453   - <KeyRelease>Alt_L: PA-Shift()\n\
1454   - <KeyPress>Alt_R: PA-Shift()\n\
1455   - <KeyRelease>Alt_R: PA-Shift()\n\
1456   - :<Key>: Default()
1457   -#endif
1458   -x3270.errorPopup.translations: \
1459   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1460   -x3270.printerErrorPopup.translations: \
1461   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1462   -x3270.childErrorPopup.translations: \
1463   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1464   -x3270.errorPopup*translations: #override \n\
1465   - <Key>Return: PA-confirm()
1466   -x3270.printerErrorPopup*translations: #override \n\
1467   - <Key>Return: PA-confirm()
1468   -x3270.childErrorPopup*translations: #override \n\
1469   - <Key>Return: PA-confirm()
1470   -x3270.infoPopup.translations: \
1471   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1472   -x3270.printerInfoPopup.translations: \
1473   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1474   -x3270.childInfoPopup.translations: \
1475   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1476   -x3270.infoPopup*translations: #override \n\
1477   - <Key>Return: PA-confirm()
1478   -x3270.printerInfoPopup*translations: #override \n\
1479   - <Key>Return: PA-confirm()
1480   -x3270.childInfoPopup*translations: #override \n\
1481   - <Key>Return: PA-confirm()
1482   -#ifdef X3270_MENUS
1483   -x3270.connectPopup.translations: \
1484   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1485   -x3270.fontPopup.translations: \
1486   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1487   -x3270.keymapPopup.translations: \
1488   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1489   -x3270.printTextPopup.translations: \
1490   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1491   -x3270.saveTextPopup.translations: \
1492   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1493   -x3270.printWindowPopup.translations: \
1494   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1495   -x3270.tracePopup.translations: \
1496   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1497   -x3270.screentracePopup.translations: \
1498   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1499   -x3270.executeActionPopup.translations: \
1500   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1501   -x3270.saveOptionsPopup.translations: \
1502   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1503   -x3270.aboutCopyrightPopup.translations: \
1504   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1505   -x3270.aboutCopyrightPopup*translations: #override \n\
1506   - <Key>Return: PA-confirm()
1507   -x3270.aboutConfigPopup.translations: \
1508   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1509   -x3270.aboutConfigPopup*translations: #override \n\
1510   - <Key>Return: PA-confirm()
1511   -x3270.aboutStatusPopup.translations: \
1512   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1513   -x3270.aboutStatusPopup*translations: #override \n\
1514   - <Key>Return: PA-confirm()
1515   -x3270.kmPopup.translations: \
1516   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1517   -x3270.kmPopup*translations: #override \n\
1518   - <Key>Return: PA-confirm()
1519   -x3270.luPopup.translations: \
1520   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1521   -#endif
1522   -#ifdef X3270_FT
1523   -x3270.ftPopup.translations: \
1524   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1525   -! Note: WM_PROTOCOLS is explicitly not defined for ftPopup, so that the user
1526   -! can clear error conditions while a transfer is in progress.
1527   -x3270.ftOverwritePopup.translations: \
1528   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1529   -x3270.ftPopup*value.translations: #override \n\
1530   - <Key>Return: PA-dialog-next()\n\
1531   - <Key>Tab: PA-dialog-next()\n\
1532   - <Btn1Down>: PA-dialog-focus() select-start()\n\
1533   - Ctrl<Key>U: select-all(DUMMY) delete-selection()
1534   -#endif
1535   -#ifdef X3270_SCRIPT
1536   -x3270.idlePopup.translations: \
1537   - <Message>WM_PROTOCOLS: PA-WMProtocols()
1538   -x3270.idlePopup*value.translations: #override \n\
1539   - <Key>Return: PA-dialog-next()\n\
1540   - <Key>Tab: PA-dialog-next()\n\
1541   - <Btn1Down>: PA-dialog-focus() select-start()\n\
1542   - Ctrl<Key>U: select-all(DUMMY) delete-selection()
1543   -#endif
1544   -x3270*value.translations: #override \n\
1545   - <Key>Return: PA-confirm()\n\
1546   - Ctrl<Key>U: select-all(DUMMY) delete-selection()
1547   -x3270*value.width: 200
1548   -! Workaround for Xaw MenuButton bug that keeps menu items from highlighting
1549   -! when CapsLock or NumLock are down. Technically, this would require
1550   -! translations for all permutations of all 8 modifiers: shift, lock, control,
1551   -! mod1, mod2, mod3, mod4 and mod5. However, we will leave out shift and
1552   -! control, since they are "voluntary" key presses and would quadruple the
1553   -! size of this resource.
1554   -x3270*MenuButton.translations: #override \n\
1555   - Lock<BtnDown>: reset() PopupMenu()\n\
1556   - Mod1<BtnDown>: reset() PopupMenu()\n\
1557   - Lock Mod1<BtnDown>: reset() PopupMenu()\n\
1558   - Mod2<BtnDown>: reset() PopupMenu()\n\
1559   - Lock Mod2<BtnDown>: reset() PopupMenu()\n\
1560   - Mod1 Mod2<BtnDown>: reset() PopupMenu()\n\
1561   - Lock Mod1 Mod2<BtnDown>: reset() PopupMenu()\n\
1562   - Mod3<BtnDown>: reset() PopupMenu()\n\
1563   - Lock Mod3<BtnDown>: reset() PopupMenu()\n\
1564   - Mod1 Mod3<BtnDown>: reset() PopupMenu()\n\
1565   - Lock Mod1 Mod3<BtnDown>: reset() PopupMenu()\n\
1566   - Mod2 Mod3<BtnDown>: reset() PopupMenu()\n\
1567   - Lock Mod2 Mod3<BtnDown>: reset() PopupMenu()\n\
1568   - Mod1 Mod2 Mod3<BtnDown>: reset() PopupMenu()\n\
1569   - Lock Mod1 Mod2 Mod3<BtnDown>: reset() PopupMenu()\n\
1570   - Mod4<BtnDown>: reset() PopupMenu()\n\
1571   - Lock Mod4<BtnDown>: reset() PopupMenu()\n\
1572   - Mod1 Mod4<BtnDown>: reset() PopupMenu()\n\
1573   - Lock Mod1 Mod4<BtnDown>: reset() PopupMenu()\n\
1574   - Mod2 Mod4<BtnDown>: reset() PopupMenu()\n\
1575   - Lock Mod2 Mod4<BtnDown>: reset() PopupMenu()\n\
1576   - Mod1 Mod2 Mod4<BtnDown>: reset() PopupMenu()\n\
1577   - Lock Mod1 Mod2 Mod4<BtnDown>: reset() PopupMenu()\n\
1578   - Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
1579   - Lock Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
1580   - Mod1 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
1581   - Lock Mod1 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
1582   - Mod2 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
1583   - Lock Mod2 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
1584   - Mod1 Mod2 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
1585   - Lock Mod1 Mod2 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
1586   - Mod5<BtnDown>: reset() PopupMenu()\n\
1587   - Lock Mod5<BtnDown>: reset() PopupMenu()\n\
1588   - Mod1 Mod5<BtnDown>: reset() PopupMenu()\n\
1589   - Lock Mod1 Mod5<BtnDown>: reset() PopupMenu()\n\
1590   - Mod2 Mod5<BtnDown>: reset() PopupMenu()\n\
1591   - Lock Mod2 Mod5<BtnDown>: reset() PopupMenu()\n\
1592   - Mod1 Mod2 Mod5<BtnDown>: reset() PopupMenu()\n\
1593   - Lock Mod1 Mod2 Mod5<BtnDown>: reset() PopupMenu()\n\
1594   - Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
1595   - Lock Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
1596   - Mod1 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
1597   - Lock Mod1 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
1598   - Mod2 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
1599   - Lock Mod2 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
1600   - Mod1 Mod2 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
1601   - Lock Mod1 Mod2 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
1602   - Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1603   - Lock Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1604   - Mod1 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1605   - Lock Mod1 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1606   - Mod2 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1607   - Lock Mod2 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1608   - Mod1 Mod2 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1609   - Lock Mod1 Mod2 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1610   - Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1611   - Lock Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1612   - Mod1 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1613   - Lock Mod1 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1614   - Mod2 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1615   - Lock Mod2 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1616   - Mod1 Mod2 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
1617   - Lock Mod1 Mod2 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()
1618   -#endif
1619   -! Default compose-key map.
1620   -! Each line is of the form "keysym1 + keysym2 = keysym3", meaning "when the
1621   -! Compose key is pressed, followed by keysym1 and keysym2 (in either order),
1622   -! interpret it as keysym3." The definitions are case-sensitive.
1623   -x3270.composeMap.latin1: \
1624   - c + bar = cent \n\
1625   - c + slash = cent \n\
1626   - L + minus = sterling \n\
1627   - Y + equal = yen \n\
1628   - S + S = section \n\
1629   - C + O = copyright \n\
1630   - a + underscore = ordfeminine \n\
1631   - less + less = guillemotleft \n\
1632   - R + O = registered \n\
1633   - plus + minus = plusminus \n\
1634   - o + underscore = masculine \n\
1635   - greater + greater = guillemotright \n\
1636   - 1 + 4 = onequarter \n\
1637   - 1 + 2 = onehalf \n\
1638   - 3 + 4 = threequarters \n\
1639   - bar + bar = brokenbar \n\
1640   - A + grave = Agrave \n\
1641   - A + apostrophe = Aacute \n\
1642   - A + asciicircum = Acircumflex \n\
1643   - A + asciitilde = Atilde \n\
1644   - A + quotedbl = Adiaeresis \n\
1645   - A + asterisk = Aring \n\
1646   - A + E = AE \n\
1647   - C + comma = Ccedilla \n\
1648   - C + apostrophe = Ccedilla \n\
1649   - E + grave = Egrave \n\
1650   - E + apostrophe = Eacute \n\
1651   - E + asciicircum = Ecircumflex \n\
1652   - E + quotedbl = Ediaeresis \n\
1653   - I + grave = Igrave \n\
1654   - I + apostrophe = Iacute \n\
1655   - I + asciicircum = Icircumflex \n\
1656   - I + quotedbl = Idiaeresis \n\
1657   - N + asciitilde = Ntilde \n\
1658   - O + grave = Ograve \n\
1659   - O + apostrophe = Oacute \n\
1660   - O + asciicircum = Ocircumflex \n\
1661   - O + asciitilde = Otilde \n\
1662   - O + quotedbl = Odiaeresis \n\
1663   - O + slash = Ooblique \n\
1664   - U + grave = Ugrave \n\
1665   - U + apostrophe = Uacute \n\
1666   - U + asciicircum = Ucircumflex \n\
1667   - U + quotedbl = Udiaeresis \n\
1668   - Y + apostrophe = Yacute \n\
1669   - s + s = ssharp \n\
1670   - a + grave = agrave \n\
1671   - a + apostrophe = aacute \n\
1672   - a + asciicircum = acircumflex \n\
1673   - a + asciitilde = atilde \n\
1674   - a + quotedbl = adiaeresis \n\
1675   - a + asterisk = aring \n\
1676   - a + e = ae \n\
1677   - c + comma = ccedilla \n\
1678   - c + apostrophe = ccedilla \n\
1679   - e + grave = egrave \n\
1680   - e + apostrophe = eacute \n\
1681   - e + asciicircum = ecircumflex \n\
1682   - e + quotedbl = ediaeresis \n\
1683   - i + grave = igrave \n\
1684   - i + apostrophe = iacute \n\
1685   - i + asciicircum = icircumflex \n\
1686   - i + quotedbl = idiaeresis \n\
1687   - n + asciitilde = ntilde \n\
1688   - o + grave = ograve \n\
1689   - o + apostrophe = oacute \n\
1690   - o + asciicircum = ocircumflex \n\
1691   - o + asciitilde = otilde \n\
1692   - o + quotedbl = odiaeresis \n\
1693   - o + slash = oslash \n\
1694   - u + grave = ugrave \n\
1695   - u + apostrophe = uacute \n\
1696   - u + asciicircum = ucircumflex \n\
1697   - u + quotedbl = udiaeresis \n\
1698   - y + apostrophe = yacute \n\
1699   - y + quotedbl = ydiaeresis \n\
1700   - apostrophe + apostrophe = apostrophe \n\
1701   - apostrophe + space = apostrophe \n\
1702   - asciicircum + asciicircum = asciicircum \n\
1703   - asciicircum + space = asciicircum \n\
1704   - asciitilde + asciitilde = asciitilde \n\
1705   - asciitilde + space = asciitilde \n\
1706   - grave + grave = grave \n\
1707   - grave + space = grave \n\
1708   - quotedbl + quotedbl = quotedbl \n\
1709   - quotedbl + space = quotedbl \n
1710   -#ifndef STANDALONE
1711   -#ifdef X3270_APL
1712   -!
1713   -! Compose-key map for APL.
1714   -x3270.composeMap.apl: \
1715   - A + underscore = apl_Aunderbar \n\
1716   - B + underscore = apl_Bunderbar \n\
1717   - C + underscore = apl_Cunderbar \n\
1718   - D + underscore = apl_Dunderbar \n\
1719   - E + underscore = apl_Eunderbar \n\
1720   - F + underscore = apl_Funderbar \n\
1721   - G + underscore = apl_Gunderbar \n\
1722   - H + underscore = apl_Hunderbar \n\
1723   - I + underscore = apl_Iunderbar \n\
1724   - J + underscore = apl_Junderbar \n\
1725   - K + underscore = apl_Kunderbar \n\
1726   - L + underscore = apl_Lunderbar \n\
1727   - M + underscore = apl_Munderbar \n\
1728   - N + underscore = apl_Nunderbar \n\
1729   - O + underscore = apl_Ounderbar \n\
1730   - P + underscore = apl_Punderbar \n\
1731   - Q + underscore = apl_Qunderbar \n\
1732   - R + underscore = apl_Runderbar \n\
1733   - S + underscore = apl_Sunderbar \n\
1734   - T + underscore = apl_Tunderbar \n\
1735   - U + underscore = apl_Uunderbar \n\
1736   - V + underscore = apl_Vunderbar \n\
1737   - W + underscore = apl_Wunderbar \n\
1738   - X + underscore = apl_Xunderbar \n\
1739   - Y + underscore = apl_Yunderbar \n\
1740   - Z + underscore = apl_Zunderbar \n\
1741   - apl_upcaret + apl_downcaret = apl_diamond \n\
1742   - apl_quad + apl_jot = apl_quadjot \n\
1743   - apl_iota + underscore = apl_iotaunderbar \n\
1744   - apl_epsilon + underscore = apl_epsilonunderbar \n\
1745   - less + equal = apl_notgreater \n\
1746   - plus + minus = apl_plusminus \n\
1747   - greater + equal = apl_notless \n\
1748   - equal + slash = apl_notequal \n\
1749   - apl_upcaret + apl_tilde = apl_upcarettilde \n\
1750   - apl_upcaret + asciitilde = apl_upcarettilde \n\
1751   - apl_downcaret + apl_tilde = apl_downcarettilde \n\
1752   - apl_downcaret + asciitilde = apl_downcarettilde \n\
1753   - apl_circle + apl_stile = apl_circlestile \n\
1754   - apl_circle + bar = apl_circlestile \n\
1755   - apl_quad + apl_slope = apl_slopequad \n\
1756   - apl_quad + backslash = apl_slopequad \n\
1757   - apl_circle + apl_slope = apl_circleslope \n\
1758   - apl_circle + backslash = apl_circleslope \n\
1759   - apl_downtack + apl_uptack = apl_downtackup \n\
1760   - apostrophe + period = apl_quotedot \n\
1761   - apl_del + apl_stile = apl_delstile \n\
1762   - apl_del + bar = apl_delstile \n\
1763   - apl_delta + apl_stile = apl_deltastile \n\
1764   - apl_delta + bar = apl_deltastile \n\
1765   - apl_quad + apostrophe = apl_quadquote \n\
1766   - apl_upshoe + apl_jot = apl_upshoejot \n\
1767   - slash + minus = apl_slashbar \n\
1768   - apl_slope + minus = apl_slopebar \n\
1769   - backslash + minus = apl_slopebar \n\
1770   - apl_diaeresis + period = apl_diaeresisdot \n\
1771   - apl_circle + minus = apl_circlebar \n\
1772   - apl_quad + apl_divide = apl_quaddivide \n\
1773   - apl_uptack + apl_jot = apl_uptackjot \n\
1774   - apl_del + apl_tilde = apl_deltilde \n\
1775   - apl_del + asciitilde = apl_deltilde \n\
1776   - apl_delta + underscore = apl_deltaunderbar \n\
1777   - apl_circle + asterisk = apl_circlestar \n\
1778   - apl_downtack + apl_jot = apl_downtackjot \n\
1779   - equal + underscore = apl_equalunderbar \n\
1780   - apl_quad + apl_quad = apl_squad \n\
1781   - apl_diaeresis + apl_jot = apl_diaeresisjot \n\
1782   - apl_diaeresis + apl_circle = apl_diaeresiscircle \n\
1783   - comma + minus = apl_commabar \n\
1784   - c + equal = apl_euro \n\
1785   - C + equal = apl_euro \n\
1786   - minus + parenleft = apl_lefttack \n\
1787   - minus + parenright = apl_righttack \n
1788   -#endif
1789   -#endif
1790   -#ifdef STANDALONE
1791   -#ifdef _WIN32
1792   -! wc3270 keymap for more 3270-ish behavior: The Enter key is Newline and the
1793   -! Right-Ctrl key is Enter.
1794   -x3270.keymap.rctrl.3270: \
1795   - RightCtrl<Key>CTRL: Enter()\n\
1796   - <Key>Return: Newline()
1797   -#endif
1798   -#endif
1799   -!
1800   -! EBCDIC character sets.
1801   -! A charset is a series of newline-separated strings that define how an EBCDIC
1802   -! national character set differs from IBM's standard U.S.-International set
1803   -! (table 01). Each string is a number, a colon, and a symbol. The number is
1804   -! the EBCDIC code, and the symbol is an ASCII character or ISO Latin-1 name of
1805   -! the graphic it represents.
1806   -!
1807   -! U.S.-International (table 01)
1808   -x3270.charset.us-intl: \n
1809   -x3270.codepage.us-intl: 37
1810   -! alias for 'us-intl' (backwards compatibility)
1811   -x3270.charset.us: \n
1812   -x3270.codepage.us: 37
1813   -! U.S. English w/Euro (code page 1140)
1814   -x3270.codepage.us-euro: 0x02b70474
1815   -x3270.displayCharset.us-euro: 3270cg-15a,3270cg-15,iso8859-15
1816   -!
1817   -! APL character set (same as us-intl, no remapping required)
1818   -x3270.charset.apl: \n
1819   -x3270.codepage.apl: 37
1820   -x3270.displayCharset.apl: 3270cg-1a
1821   -x3270.emulatorFontList.3270cg-1a: 3270
1822   -!
1823   -! EBCDIC map for hosts that put '[' and ']' in non-standard positions (X'AD'
1824   -! and X'BD'). This is the default x3270 character set, because these hosts
1825   -! are so common in the U.S.
1826   -! Note that those hosts tend to display '[' and ']' as GE X'AD' and GE X'BD',
1827   -! which are the APL bracket characters.
1828   -x3270.charset.bracket: \
1829   - 0xad: [ \n 0xba: Yacute \n\
1830   - 0xbd: ] \n 0xbb: diaeresis \n
1831   -! The codepage for 'bracket' is a lie, but there is no real codepage that
1832   -! corresponds to it.
1833   -x3270.codepage.bracket: 37
1834   -! alias for 'bracket' (backwards compatibility)
1835   -x3270.charset.oldibm: \
1836   - 0xad: [ \n 0xba: Yacute \n\
1837   - 0xbd: ] \n 0xbb: diaeresis \n
1838   -x3270.codepage.oldibm: 37
1839   -!
1840   -! Each entry below is derived from IBM GA27-3831-03, Fourth Edition.
1841   -! Austrian/German (table 03)
1842   -x3270.charset.german: \
1843   - 0x43: { \n 0x4a: Adiaeresis \n\
1844   - 0x4f: ! \n 0x59: ~ \n\
1845   - 0x5a: Udiaeresis \n 0x5f: ^ \n\
1846   - 0x63: [ \n 0x6a: odiaeresis \n\
1847   - 0x7c: section \n 0xa1: ssharp \n\
1848   - 0xb0: cent \n 0xb5: @ \n\
1849   - 0xba: notsign \n 0xbb: bar \n\
1850   - 0xc0: adiaeresis \n 0xcc: brokenbar \n\
1851   - 0xd0: udiaeresis \n 0xdc: } \n\
1852   - 0xe0: Odiaeresis \n 0xec: backslash \n\
1853   - 0xfc: ] \n
1854   -x3270.codepage.german: 273
1855   -! German w/Euro (code page 1141)
1856   -x3270.codepage.german-euro: 0x02b70475
1857   -x3270.displayCharset.german-euro: 3270cg-15a,3270cg-15,iso8859-15
1858   -! Finnish (table 09)
1859   -x3270.charset.finnish: \
1860   - 0x43: { \n 0x47: } \n\
1861   - 0x4a: section \n 0x4f: ! \n\
1862   - 0x51: ` \n 0x5a: currency \n\
1863   - 0x5b: Aring \n 0x5f: ^ \n\
1864   - 0x63: # \n 0x67: $ \n\
1865   - 0x6a: odiaeresis \n 0x71: backslash \n\
1866   - 0x79: eacute \n 0x7b: Adiaeresis \n\
1867   - 0x7c: Odiaeresis \n 0x9f: ] \n\
1868   - 0xa1: udiaeresis \n 0xb1: cent \n\
1869   - 0xb5: [ \n 0xba: notsign \n\
1870   - 0xbb: | \n 0xc0: adiaeresis \n\
1871   - 0xcc: brokenbar \n 0xd0: aring \n\
1872   - 0xdc: ~ \n 0xe0: Eacute \n\
1873   - 0xec: @ \n
1874   -x3270.codepage.finnish: 278
1875   -! Finnish w/Euro (code page 1143)
1876   -x3270.codepage.finnish-euro: 0x02b70477
1877   -x3270.displayCharset.finnish-euro: 3270cg-15a,3270cg-15,iso8859-15
1878   -! U.K. (table 22)
1879   -x3270.charset.uk: \
1880   - 0x4a: $ \n 0x5b: sterling \n\
1881   - 0xa1: macron \n 0xb0: cent \n\
1882   - 0xb1: [ \n 0xba: ^ \n\
1883   - 0xbc: ~ \n
1884   -x3270.codepage.uk: 285
1885   -! U.K w/Euro (code page 1146)
1886   -x3270.codepage.uk-euro: 0x02b7047a
1887   -x3270.displayCharset.uk-euro: 3270cg-15a,3270cg-15,iso8859-15
1888   -! Norwegian (table 23)
1889   -x3270.charset.norwegian: \
1890   - 0x47: } \n 0x4a: # \n\
1891   - 0x4f: ! \n 0x5a: currency \n\
1892   - 0x5b: Aring \n 0x5f: ^ \n\
1893   - 0x67: $ \n 0x6a: oslash \n\
1894   - 0x70: brokenbar \n 0x7b: AE \n\
1895   - 0x7c: Ooblique \n 0x80: @ \n\
1896   - 0x9c: { \n 0x9e: [ \n\
1897   - 0x9f: ] \n 0xa1: udiaeresis \n\
1898   - 0xb0: cent \n 0xba: notsign \n\
1899   - 0xbb: bar \n 0xc0: ae \n\
1900   - 0xd0: aring \n 0xdc: ~ \n
1901   -x3270.codepage.norwegian: 277
1902   -! Norwegian w/Euro (code page 1142)
1903   -x3270.codepage.norwegian-euro: 0x02b70476
1904   -x3270.displayCharset.norwegian-euro: 3270cg-15a,3270cg-15,iso8859-15
1905   -! French (table 30)
1906   -x3270.charset.french: \
1907   - 0x44: @ \n 0x48: backslash \n\
1908   - 0x4a: degree \n 0x4f: ! \n\
1909   - 0x51: { \n 0x54: } \n\
1910   - 0x5a: section \n 0x5f: ^ \n\
1911   - 0x6a: ugrave \n 0x79: mu \n\
1912   - 0x7b: sterling \n 0x7c: agrave \n\
1913   - 0x90: [ \n 0xa0: grave \n\
1914   - 0xa1: diaeresis \n 0xb0: cent \n\
1915   - 0xb1: numbersign \n 0xb5: ] \n\
1916   - 0xba: notsign \n 0xbb: bar \n\
1917   - 0xbd: ~ \n 0xc0: eacute \n\
1918   - 0xd0: egrave \n 0xe0: ccedilla \n
1919   -x3270.codepage.french: 297
1920   -! French w/Euro (code page 1147)
1921   -x3270.codepage.french-euro: 0x02b7047b
1922   -x3270.displayCharset.french-euro: 3270cg-15a,3270cg-15,iso8859-15
1923   -! Icelandic, courtesy of Rikhardur Egilsson
1924   -x3270.charset.icelandic: \
1925   - 0xa1: odiaeresis \n 0x5f: Odiaeresis \n\
1926   - 0x79: eth \n 0x7c: Eth \n\
1927   - 0xc0: thorn \n 0x4a: Thorn \n\
1928   - 0xd0: ae \n 0x5a: AE \n\
1929   - 0xcc: ~ \n 0x4f: ! \n\
1930   - 0x8e: { \n 0x9c: } \n\
1931   - 0xae: [ \n 0x9e: ] \n\
1932   - 0xac: @ \n 0xbe: \\ \n\
1933   - 0x7d: apostrophe \n 0x8c: ` \n\
1934   - 0x6a: | \n
1935   -x3270.codepage.icelandic: 871
1936   -! Icelandic w/Euro (code page 1149)
1937   -x3270.codepage.icelandic-euro: 0x02b7047d
1938   -x3270.displayCharset.icelandic-euro: 3270cg-15a,3270cg-15,iso8859-15
1939   -! Belgian, with the help of Peter Govaerts
1940   -x3270.charset.belgian: \
1941   - 0x4a: [ \n 0x4f: ! \n\
1942   - 0x5a: ] \n 0x5f: ^ \n\
1943   - 0xb0: cent \n 0xba: notsign \n\
1944   - 0xbb: bar \n
1945   -x3270.codepage.belgian: 500
1946   -! Belgian w/Euro (code page 1148)
1947   -x3270.codepage.belgian-euro: 0x02b7047c
1948   -x3270.displayCharset.belgian-euro: 3270cg-15a,3270cg-15,iso8859-15
1949   -! Italian, courtesy of Claudio Maniscalco and Daniele Patoner
1950   -x3270.charset.italian: \
1951   - 0x44: braceleft \n 0x48: backslash \n\
1952   - 0x4a: degree \n 0x4f: exclam \n\
1953   - 0x51: bracketright \n 0x54: braceright \n\
1954   - 0x58: asciitilde \n 0x5a: eacute \n\
1955   - 0x5f: asciicircum \n 0x6a: ograve \n\
1956   - 0x7b: sterling \n 0x7c: section \n\
1957   - 0x79: ugrave \n 0x90: bracketleft \n\
1958   - 0xa1: igrave \n 0xb0: cent \n\
1959   - 0xb1: numbersign \n 0xb5: at \n\
1960   - 0xba: notsign \n 0xbb: bar \n\
1961   - 0xc0: agrave \n 0xcd: brokenbar \n\
1962   - 0xd0: egrave \n 0xdd: grave \n\
1963   - 0xe0: ccedilla \n
1964   -x3270.codepage.italian: 280
1965   -! Italian w/Euro (code page 1144)
1966   -x3270.codepage.italian-euro: 0x02b70478
1967   -x3270.displayCharset.italian-euro: 3270cg-15a,3270cg-15,iso8859-15
1968   -! Turkish, uses standard ISO 8859-9 fonts
1969   -x3270.charset.turkish: \
1970   - 0x48: { \n 0x4a: 0xc7 \n 0x4f: ! \n 0x5a: 0xd0 \n\
1971   - 0x5b: 0xdd \n 0x5f: ^ \n 0x68: [ \n 0x6a: 0xfe \n\
1972   - 0x79: 0xfd \n 0x7b: 0xd6 \n 0x7c: 0xde \n 0x7f: 0xdc \n\
1973   - 0x8c: } \n 0x8d: 0x91 \n 0x8e: 0xa6 \n 0xa1: 0xf6 \n\
1974   - 0xac: ] \n 0xad: $ \n 0xae: @ \n 0xb0: 0xa2 \n\
1975   - 0xba: 0xac \n 0xbb: | \n 0xbe: 0x92 \n 0xc0: 0xe7 \n\
1976   - 0xcc: ~ \n 0xd0: 0xf0 \n 0xdc: 0x5c \n 0xe0: 0xfc \n\
1977   - 0xec: # \n 0xfc: "
1978   -x3270.codepage.turkish: 0x04800402
1979   -x3270.displayCharset.turkish: iso8859-9
1980   -! Hebrew, uses standard ISO 8859-8 fonts
1981   -x3270.charset.hebrew: #table\n\
1982   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
1983   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
1984   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
1985   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
1986   - 32 224 225 226 227 228 229 230 231 232 162 46 60 40 43 124 \
1987   - 38 233 234 235 236 237 238 239 240 241 33 36 42 41 59 172 \
1988   - 45 47 242 243 244 245 246 247 248 249 166 44 37 95 62 63 \
1989   - 0 250 0 0 0 0 0 0 0 96 58 35 64 39 61 34 \
1990   - 0 97 98 99 100 101 102 103 104 105 171 187 0 0 0 177 \
1991   -176 106 107 108 109 110 111 112 113 114 0 0 0 184 0 164 \
1992   -181 126 115 116 117 118 119 120 121 122 0 0 0 0 0 174 \
1993   - 94 163 165 183 169 167 182 188 189 190 91 93 175 168 180 170 \
1994   -123 65 66 67 68 69 70 71 72 73 173 0 0 0 0 0 \
1995   -125 74 75 76 77 78 79 80 81 82 185 0 0 0 0 0 \
1996   - 92 186 83 84 85 86 87 88 89 90 178 0 0 0 0 0 \
1997   - 48 49 50 51 52 53 54 55 56 57 179 0 0 0 0 159
1998   -x3270.codepage.hebrew: 0x03ad01a8
1999   -x3270.displayCharset.hebrew: 3270cg-8,iso8859-8
2000   -x3270.emulatorFontList.3270cg-8,iso8859-8: Hebrew 14-point 3270 Font: 3270h
2001   -x3270.xkSelector.hebrew: 0x0c
2002   -x3270.autoKeymap.hebrew: true
2003   -! Brazilian character set for x3270.
2004   -! With invaluable help from Ricardo Dias de Pinho - Rio de Janeiro(RJ) BRAZIL.
2005   -x3270.codepage.brazilian: 275
2006   -x3270.displayCharset.brazilian: 3270cg-1a,3270cg-1,iso8859-1
2007   -x3270.charset.brazilian: #table\n\
2008   - 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
2009   - 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
2010   - 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
2011   - 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
2012   - 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
2013   - 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
2014   - 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
2015   - 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
2016   - 0x00 0x5b 0x5d 0xa3 0xa5 0xb6 0xa4 0xdf \
2017   - 0xa7 0xaf 0xc9 0x2e 0x3c 0x28 0x2b 0x21 \
2018   - 0x26 0xb0 0x00 0xac 0xa8 0xb4 0xb8 0xe0 \
2019   - *0xe8 *0xec 0x24 0xc7 0x2a 0x29 0x3b 0x5e \
2020   - 0x2d 0x2f *0xf2 *0xf9 0x60 0x7b 0xff *0xe0 \
2021   - 0xe8 0xe9 0xe7 0x2c 0x25 0x5f 0x3e 0x3f \
2022   - 0xec 0xf2 0xf9 *0xfc *0xe7 0xe4 0xeb 0xef \
2023   - 0xf6 0xe3 0x3a 0xd5 0xc3 0x27 0x3d 0x22 \
2024   - 0xfc 0x61 0x62 0x63 0x64 0x65 0x66 0x67 \
2025   - 0x68 0x69 0xe2 0xea 0xee 0xf4 0xfb 0xe1 \
2026   - 0x7d 0x6a 0x6b 0x6c 0x6d 0x6e 0x6f 0x70 \
2027   - 0x71 0x72 0xed 0xf3 0xfa 0xf1 0xc0 0xc8 \
2028   - 0xcc 0x7e 0x73 0x74 0x75 0x76 0x77 0x78 \
2029   - 0x79 0x7a 0xd2 0xd9 0x40 0x23 *0x59 *0x41 \
2030   - *0x45 *0x45 *0x49 *0x4f *0x55 *0x59 *0x43 0xc4 \
2031   - 0xcb 0xcf 0xd6 0xdc 0xc2 0xca 0xce 0xd4 \
2032   - 0xf5 0x41 0x42 0x43 0x44 0x45 0x46 0x47 \
2033   - 0x48 0x49 0xdb 0xc1 0xa2 0xcd 0x00 0x00 \
2034   - *0xe9 0x4a 0x4b 0x4c 0x4d 0x4e 0x4f 0x50 \
2035   - 0x51 0x52 0xd3 0xda 0xd1 0x00 0x00 0x00 \
2036   - 0x5c 0x00 0x53 0x54 0x55 0x56 0x57 0x58 \
2037   - 0x59 0x5a 0xf8 0xe5 0xa6 0x00 0x00 0x00 \
2038   - 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 \
2039   - 0x38 0x39 0xc6 0xd8 0xc5 0x7c 0x00 0x00
2040   -! Greek, requires the 3270gr font
2041   -! Courtesty of Mantzios Achilleus
2042   -x3270.charset.greek: #table \
2043   - 0 1 2 3 156 9 134 127 151 141 142 11 12 13 14 15 \n\
2044   - 16 17 18 19 157 133 8 135 24 25 146 143 28 29 30 31 \n\
2045   -128 129 130 131 132 10 23 27 136 137 138 139 140 5 6 7 \n\
2046   -144 145 22 147 148 149 150 4 152 153 154 155 20 21 158 26 \n\
2047   - 32 193 194 195 196 197 198 199 200 201 91 46 60 40 43 33 \n\
2048   - 38 202 203 204 205 206 207 208 209 211 93 36 42 41 59 94 \n\
2049   - 45 47 212 213 214 215 216 217 218 219 174 44 37 95 62 63 \n\
2050   -168 182 184 185 210 186 188 190 191 96 58 35 64 39 61 34 \n\
2051   -181 97 98 99 100 101 102 103 104 105 225 226 227 228 229 230 \n\
2052   -176 106 107 108 109 110 111 112 113 114 231 232 233 234 235 236 \n\
2053   -180 126 115 116 117 118 119 120 121 122 237 238 239 240 241 243 \n\
2054   -163 220 221 222 250 223 252 253 251 254 242 244 245 246 247 248 \n\
2055   -123 65 66 67 68 69 70 71 72 73 173 249 192 224 164 175 \n\
2056   -125 74 75 76 77 78 79 80 81 82 177 189 124 183 162 166 \n\
2057   - 92 161 83 84 85 86 87 88 89 90 178 167 255 170 171 172 \n\
2058   - 48 49 50 51 52 53 54 55 56 57 179 169 165 160 187 159
2059   -x3270.codepage.greek: 0x0464036b
2060   -x3270.displayCharset.greek: 3270cg-7,iso8859-7
2061   -x3270.xkSelector.greek: 0x07
2062   -x3270.emulatorFontList.3270cg-7,iso8859-7: 3270gr
2063   -! Russian character set for x3270.
2064   -x3270.codepage.russian: 880
2065   -x3270.displayCharset.russian: koi8-r
2066   -x3270.xkSelector.russian: 0x06
2067   -x3270.charset.russian: #table\n\
2068   - 0 1 2 3 158 9 170 127 182 96 147 11 12 13 14 15 \
2069   - 16 17 18 19 171 126 8 175 24 25 150 125 28 29 30 31 \
2070   - 124 174 129 123 160 10 23 27 172 154 184 173 146 5 6 7 \
2071   - 180 181 22 183 155 156 157 4 178 131 169 148 20 21 149 26 \
2072   - 32 166 167 128 163 139 140 141 142 143 91 46 60 40 43 33 \
2073   - 38 176 177 186 187 188 189 255 191 144 93 36 42 41 59 94 \
2074   - 45 47 130 179 132 133 134 135 136 137 145 44 37 95 62 63 \
2075   - 151 152 153 162 138 164 192 193 194 168 58 35 64 39 61 34 \
2076   - 195 97 98 99 100 101 102 103 104 105 196 197 198 199 200 201 \
2077   - 202 106 107 108 109 110 111 112 113 114 203 204 205 206 207 208 \
2078   - 209 161 115 116 117 118 119 120 121 122 210 211 212 213 214 215 \
2079   - 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 \
2080   - 165 65 66 67 68 69 70 71 72 73 232 233 234 235 236 237 \
2081   - 159 74 75 76 77 78 79 80 81 82 238 239 240 241 242 243 \
2082   - 92 185 83 84 85 86 87 88 89 90 244 245 246 247 248 249 \
2083   - 48 49 50 51 52 53 54 55 56 57 250 251 252 253 254 190
2084   -! Code page 870 for Slovenian, Croatian, Serbian (Latin) and Polish.
2085   -x3270.codepage.cp870: 0x03bf0366
2086   -x3270.displayCharset.cp870: iso8859-2
2087   -x3270.xkSelector.cp870: 0x01
2088   -x3270.charset.cp870: #table\n\
2089   - 0 1 2 3 156 9 134 127 151 141 142 11 12 13 14 15 \
2090   - 16 17 18 19 157 133 8 135 24 25 146 143 28 29 30 31 \
2091   - 128 129 130 131 132 10 23 27 136 137 138 139 140 5 6 7 \
2092   - 144 145 22 147 148 149 150 4 152 153 154 155 20 21 158 26 \
2093   - 32 160 226 228 254 225 227 232 231 230 91 46 60 40 43 33 \
2094   - 38 233 234 235 249 237 238 181 229 223 93 36 42 41 59 94 \
2095   - 45 47 194 196 189 193 195 200 199 198 124 44 37 95 62 63 \
2096   - 183 201 202 203 217 205 206 165 197 96 58 35 64 39 61 34 \
2097   - 162 97 98 99 100 101 102 103 104 105 182 242 240 253 248 186 \
2098   - 176 106 107 108 109 110 111 112 113 114 179 241 185 184 178 164 \
2099   - 177 126 115 116 117 118 119 120 121 122 166 210 208 221 216 170 \
2100   - 255 161 191 222 175 167 190 188 174 172 163 209 169 168 180 215 \
2101   - 123 65 66 67 68 69 70 71 72 73 173 244 246 224 243 245 \
2102   - 125 74 75 76 77 78 79 80 81 82 204 251 252 187 250 236 \
2103   - 92 247 83 84 85 86 87 88 89 90 239 212 214 192 211 213 \
2104   - 48 49 50 51 52 53 54 55 56 57 207 219 220 171 218 159
2105   -#ifdef _WIN32
2106   -! Host codepage 37 / Windows codepage 437 (US OEM)
2107   -x3270.codepage.bracket437: 37
2108   -x3270.displayCharset.bracket437: windows-437
2109   -x3270.charset.bracket437: #table\n\
2110   - 0 1 2 3 0 9 0 127 0 0 0 11 12 13 14 15 \
2111   - 16 17 18 19 0 0 8 0 24 25 0 0 28 29 30 31 \
2112   - 0 0 0 0 0 10 23 27 0 0 0 0 0 5 6 7 \
2113   - 0 0 22 0 0 0 0 4 0 0 0 0 20 21 0 26 \
2114   - 32 255 131 132 133 160 0 134 135 164 155 46 60 40 43 124 \
2115   - 38 130 136 137 138 161 140 139 141 225 33 36 42 41 59 170 \
2116   - 45 47 0 142 0 0 0 143 128 165 0 44 37 95 62 63 \
2117   - 0 144 0 0 0 0 0 0 0 96 58 35 64 39 61 34 \
2118   - 0 97 98 99 100 101 102 103 104 105 174 175 0 0 0 241 \
2119   -248 106 107 108 109 110 111 112 113 114 166 167 145 0 146 0 \
2120   -230 126 115 116 117 118 119 120 121 122 173 168 0 91 0 0 \
2121   - 94 156 157 250 0 0 0 172 171 0 0 0 0 93 0 0 \
2122   -123 65 66 67 68 69 70 71 72 73 0 147 148 149 162 0 \
2123   -125 74 75 76 77 78 79 80 81 82 0 150 129 151 163 152 \
2124   - 92 246 83 84 85 86 87 88 89 90 253 0 153 0 0 0 \
2125   - 48 49 50 51 52 53 54 55 56 57 0 0 154 0 0 0
2126   -x3270.aplMap.437: \
2127   - 0xaf: 0xf8\n 0xd4: 0xd9\n 0xd5: 0xbf\n 0xc5: 0xda\n\
2128   - 0xc4: 0xc0\n 0xd3: 0xc5\n 0xa2: 0xc4\n 0xc6: 0xc3\n\
2129   - 0xd6: 0xb4\n 0xc7: 0xc1\n 0xd7: 0xc2\n 0x85: 0xb3\n\
2130   - 0x8c: 0xf3\n 0xae: 0xf2\n 0xbe: 0x00\n 0xa3: 0xf9\n\
2131   - 0xad: 0x5b\n 0xbd: 0x5d
2132   -! Host codepage 1153/1375 / Windows codepage 1250 (Central Europe)
2133   -x3270.codepage.cp1153: 0x055f0481
2134   -x3270.displayCharset.cp1153: windows-1250
2135   -x3270.charset.cp1153: #table\n\
2136   - 0 1 2 3 156 9 134 127 151 0 0 11 12 13 14 15 \
2137   - 16 17 18 19 0 133 8 135 24 25 146 0 28 29 30 31 \
2138   - 0 0 0 131 132 10 23 27 136 137 0 139 0 5 6 7 \
2139   - 144 145 22 147 148 149 150 4 152 153 0 155 20 21 158 26 \
2140   - 32 160 226 228 254 225 227 232 231 230 91 46 60 40 43 33 \
2141   - 38 233 234 235 249 237 238 190 229 223 93 36 42 41 59 94 \
2142   - 45 47 194 196 189 193 195 200 199 198 124 44 37 95 62 63 \
2143   - 161 201 202 203 217 205 206 188 197 96 58 35 64 39 61 34 \
2144   - 162 97 98 99 100 101 102 103 104 105 156 242 240 253 248 186 \
2145   - 176 106 107 108 109 110 111 112 113 114 179 241 154 184 178 128 \
2146   - 185 126 115 116 117 118 119 120 121 122 140 210 208 221 216 170 \
2147   - 255 165 191 222 175 167 158 159 142 143 163 209 138 168 180 215 \
2148   - 123 65 66 67 68 69 70 71 72 73 173 244 246 224 243 245 \
2149   - 125 74 75 76 77 78 79 80 81 82 204 251 252 157 250 236 \
2150   - 92 247 83 84 85 86 87 88 89 90 239 212 214 192 211 213 \
2151   - 48 49 50 51 52 53 54 55 56 57 207 219 220 141 218 0
2152   -#endif
2153   -! Thai character set for x3270
2154   -x3270.codepage.thai: 0x03aa0346
2155   -x3270.displayCharset.thai: iso8859-11,tis620.2529-0
2156   -x3270.xkSelector.thai: 0x0d
2157   -x3270.charset.thai: #table\n\
2158   - 32 1 2 3 156 9 134 127 151 141 142 11 12 13 14 15 \
2159   - 16 17 18 19 157 133 8 135 24 25 146 143 28 29 30 31 \
2160   - 128 129 130 131 132 10 23 27 136 137 138 139 140 5 6 7 \
2161   - 144 145 22 147 148 149 150 4 152 153 154 155 20 21 158 26 \
2162   - 32 32 161 162 163 164 165 166 167 168 213 46 60 40 43 124 \
2163   - 38 169 168 169 170 171 172 173 174 177 33 36 42 41 59 126 \
2164   - 45 47 175 176 177 178 179 180 181 185 203 44 37 95 62 63 \
2165   - 223 238 182 183 184 185 186 187 188 96 58 35 64 39 61 34 \
2166   - 239 97 98 99 100 101 102 103 104 105 189 190 191 192 193 194 \
2167   - 250 106 107 108 109 110 111 112 113 114 195 196 197 198 199 200 \
2168   - 251 229 115 116 117 118 119 120 121 122 201 202 203 204 205 206 \
2169   - 240 241 242 243 244 245 246 247 248 249 207 208 209 210 211 212 \
2170   - 123 65 66 67 68 69 70 71 72 73 232 213 214 215 216 217 \
2171   - 125 74 75 76 77 78 79 80 81 82 218 224 225 226 227 228 \
2172   - 92 159 83 84 85 86 87 88 89 90 229 230 231 232 233 234 \
2173   - 48 49 50 51 52 53 54 55 56 57 235 236 237 253 254 255
2174   -#ifdef X3270_DBCS
2175   -! Simplified Chinese.
2176   -! Note that the 'charset' definition applies only to the single-byte character
2177   -! set (836), not the double-byte character set (837).
2178   -x3270.codepage.simplified-chinese: 0x04960344+0xffff0345
2179   -x3270.displayCharset.simplified-chinese: 3270cg-1a,3270cg-1,iso8859-1+gb2312.1980-0,iso10646-1
2180   -x3270.charset.simplified-chinese: #table\n\
2181   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2182   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2183   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2184   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2185   - 32 0 0 0 0 0 0 0 0 0 163 46 60 40 43 124 \
2186   - 38 0 0 0 0 0 0 0 0 0 33 165 42 41 59 172 \
2187   - 45 47 0 0 0 0 0 0 0 0 166 44 37 95 62 63 \
2188   - 0 0 0 0 0 0 0 0 0 96 58 35 64 39 61 34 \
2189   - 0 97 98 99 100 101 102 103 104 105 0 0 0 0 0 0 \
2190   - 0 106 107 108 109 110 111 112 113 114 0 0 0 0 0 0 \
2191   - 126 175 115 116 117 118 119 120 121 122 0 0 0 0 0 0 \
2192   - 94 0 92 0 0 0 0 0 0 0 91 93 0 0 0 0 \
2193   - 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
2194   - 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
2195   - 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
2196   - 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
2197   -! dbcsConverters are ICU converter names, of the form:
2198   -! [host-SBCS-converter+]host-DBCS-converter,display-font-converter
2199   -x3270.dbcsConverters.simplified-chinese: ibm-837_P100-2000,gb2312-1980
2200   -! Simplified Chinese, using GB18030 and code page 1388 (same code page for
2201   -! SBCS and DBCS).
2202   -x3270.codepage.chinese-gb18030: 0xffff056c+0xffff056c
2203   -x3270.displayCharset.chinese-gb18030: 3270cg-1a,3270cg-1,iso8859-1+gb18030.2000-1,iso10646-1
2204   -x3270.charset.chinese-gb18030: #table\n\
2205   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2206   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2207   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2208   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2209   - 32 0 0 0 0 0 0 0 0 0 163 46 60 40 43 124 \
2210   - 38 0 0 0 0 0 0 0 0 0 33 165 42 41 59 172 \
2211   - 45 47 0 0 0 0 0 0 0 0 166 44 37 95 62 63 \
2212   - 0 0 0 0 0 0 0 0 0 96 58 35 64 39 61 34 \
2213   - 0 97 98 99 100 101 102 103 104 105 0 0 0 0 0 0 \
2214   - 0 106 107 108 109 110 111 112 113 114 0 0 0 0 0 0 \
2215   - 126 175 115 116 117 118 119 120 121 122 0 0 0 0 0 0 \
2216   - 94 0 92 0 0 0 0 0 0 0 91 93 0 0 0 0 \
2217   - 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
2218   - 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
2219   - 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
2220   - 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
2221   -x3270.dbcsConverters.chinese-gb18030: ibm-1388_P103-2001+ibm-1388_P103-2001,gb18030
2222   -! Japanese.
2223   -! Note that the 'charset' definition applies only to the single-byte character
2224   -! set (1027), not the double-byte character set (300).
2225   -x3270.codepage.japanese: 0x04940403+0x0172012c
2226   -x3270.displayCharset.japanese: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
2227   -x3270.charset.japanese: #table\n\
2228   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2229   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2230   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2231   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2232   - 32 0 161 162 163 164 165 166 167 168 0 46 60 40 43 124 \
2233   - 38 169 170 171 172 173 174 175 176 177 33 36 42 41 59 0 \
2234   - 45 47 178 179 180 181 182 183 184 185 0 44 37 95 62 63 \
2235   - 186 187 188 189 190 191 192 193 194 96 58 35 64 39 61 34 \
2236   - 0 97 98 99 100 101 102 103 104 105 195 196 197 198 199 200 \
2237   - 0 106 107 108 109 110 111 112 113 114 201 202 203 204 205 206 \
2238   - 126 0 115 116 117 118 119 120 121 122 207 208 209 91 210 211 \
2239   - 94 0 92 212 213 214 215 216 217 218 219 220 221 93 222 223 \
2240   - 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
2241   - 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
2242   - 0 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
2243   - 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
2244   -x3270.dbcsConverters.japanese: ibm-1027_P100-1995+ibm-300_P110-1997,EUC-JP
2245   -! Japanese, using code page 290 for SBCS.
2246   -x3270.codepage.japanese-290: 0x04940122+0x0172012c
2247   -x3270.displayCharset.japanese-290: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
2248   -x3270.charset.japanese-290: #table\n\
2249   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2250   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2251   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2252   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2253   - 32 161 162 163 164 165 166 167 168 169 0 46 60 40 43 124 \
2254   - 38 170 171 172 173 174 175 0 176 0 33 92 42 41 59 0 \
2255   - 45 47 97 98 99 100 101 102 103 104 0 44 37 95 62 63 \
2256   - 91 105 106 107 108 109 110 111 112 96 58 35 64 39 61 34 \
2257   - 93 177 178 179 180 181 182 183 184 185 186 113 187 188 189 190 \
2258   - 191 192 193 194 195 196 197 198 199 200 201 114 0 202 203 204 \
2259   - 0 126 205 206 207 208 209 210 211 212 213 115 214 215 216 217 \
2260   - 94 0 0 116 117 118 119 120 121 122 218 219 220 221 222 223 \
2261   - 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
2262   - 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
2263   - 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
2264   - 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
2265   -x3270.dbcsConverters.japanese-290: ibm-290+ibm-300_P110-1997,EUC-JP
2266   -! Japanese, using code page 930 for both SBCS and DBCS.
2267   -x3270.codepage.japanese-930: 0x017203a2+0x017203a2
2268   -x3270.displayCharset.japanese-930: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
2269   -x3270.charset.japanese-930: #table\n\
2270   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2271   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2272   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2273   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2274   - 32 161 162 163 164 165 166 167 168 169 0 46 60 40 43 124 \
2275   - 38 170 171 172 173 174 175 0 176 0 33 92 42 41 59 0 \
2276   - 45 47 97 98 99 100 101 102 103 104 0 44 37 95 62 63 \
2277   - 91 105 106 107 108 109 110 111 112 96 58 35 64 39 61 34 \
2278   - 93 177 178 179 180 181 182 183 184 185 186 113 187 188 189 190 \
2279   - 191 192 193 194 195 196 197 198 199 200 201 114 0 202 203 204 \
2280   - 0 126 205 206 207 208 209 210 211 212 213 115 214 215 216 217 \
2281   - 94 0 0 116 117 118 119 120 121 122 218 219 220 221 222 223 \
2282   - 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
2283   - 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
2284   - 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
2285   - 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
2286   -x3270.dbcsConverters.japanese-930: ibm-930+ibm-930,EUC-JP
2287   -! Japanese, using code page 939 for both SBCS and DBCS.
2288   -x3270.codepage.japanese-939: 0x017203ab+0x017203ab
2289   -x3270.displayCharset.japanese-939: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
2290   -x3270.charset.japanese-939: #table\n\
2291   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2292   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2293   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2294   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2295   - 32 0 161 162 163 164 165 166 167 168 0 46 60 40 43 124 \
2296   - 38 169 170 171 172 173 174 175 176 177 33 36 42 41 59 0 \
2297   - 45 47 178 179 180 181 182 183 184 185 0 44 37 95 62 63 \
2298   - 186 187 188 189 190 191 192 193 194 96 58 35 64 39 61 34 \
2299   - 0 97 98 99 100 101 102 103 104 105 195 196 197 198 199 200 \
2300   - 0 106 107 108 109 110 111 112 113 114 201 202 203 204 205 206 \
2301   - 126 0 115 116 117 118 119 120 121 122 207 208 209 91 210 211 \
2302   - 94 0 92 212 213 214 215 216 217 218 219 220 221 93 222 223 \
2303   - 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
2304   - 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
2305   - 0 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
2306   - 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
2307   -x3270.dbcsConverters.japanese-939: ibm-939+ibm-939,EUC-JP
2308   -! Japanese, using code page 1390 for both SBCS and DBCS.
2309   -x3270.codepage.japanese-1390: 0x0172056e+0x0172056e
2310   -x3270.displayCharset.japanese-1390: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
2311   -x3270.charset.japanese-1390: #table\n\
2312   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2313   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2314   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2315   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2316   - 32 161 162 163 164 165 166 167 168 169 0 46 60 40 43 124 \
2317   - 38 170 171 172 173 174 175 0 176 0 33 92 42 41 59 0 \
2318   - 45 47 97 98 99 100 101 102 103 104 0 44 37 95 62 63 \
2319   - 91 105 106 107 108 109 110 111 112 96 58 35 64 39 61 34 \
2320   - 93 177 178 179 180 181 182 183 184 185 186 113 187 188 189 190 \
2321   - 191 192 193 194 195 196 197 198 199 200 201 114 0 202 203 204 \
2322   - 0 126 205 206 207 208 209 210 211 212 213 115 214 215 216 217 \
2323   - 94 0 0 116 117 118 119 120 121 122 218 219 220 221 222 223 \
2324   - 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
2325   - 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
2326   - 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
2327   - 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
2328   -x3270.dbcsConverters.japanese-1390: ibm-1390+ibm-1390,EUC-JP
2329   -! Japanese, using code page 1399 for both SBCS and DBCS.
2330   -x3270.codepage.japanese-1399: 0x01720577+0x01720577
2331   -x3270.displayCharset.japanese-1399: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
2332   -x3270.charset.japanese-1399: #table\n\
2333   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2334   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2335   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2336   - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
2337   - 32 0 161 162 163 164 165 166 167 168 0 46 60 40 43 124 \
2338   - 38 169 170 171 172 173 174 175 176 177 33 36 42 41 59 0 \
2339   - 45 47 178 179 180 181 182 183 184 185 0 44 37 95 62 63 \
2340   - 186 187 188 189 190 191 192 193 194 96 58 35 64 39 61 34 \
2341   - 0 97 98 99 100 101 102 103 104 105 195 196 197 198 199 200 \
2342   - 0 106 107 108 109 110 111 112 113 114 201 202 203 204 205 206 \
2343   - 126 0 115 116 117 118 119 120 121 122 207 208 209 91 210 211 \
2344   - 94 0 92 212 213 214 215 216 217 218 219 220 221 93 222 223 \
2345   - 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
2346   - 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
2347   - 0 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
2348   - 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
2349   -x3270.dbcsConverters.japanese-1399: ibm-1399+ibm-1399,EUC-JP
2350   -#endif
2351   -! Non-standard Persian support.
2352   -x3270.charset.persian: \
2353   - *0x42: 0x0622 \n\
2354   - *0x43: 0x0627 \n\
2355   - *0x44: 0x0628 \n\
2356   - *0x45: 0xfb56 \n\
2357   - *0x46: 0x062a \n\
2358   - *0x47: 0x062b \n\
2359   - *0x48: 0x062c \n\
2360   - *0x49: 0xfb7a \n\
2361   - *0x51: 0x062d \n\
2362   - *0x52: 0x062e \n\
2363   - *0x53: 0x062f \n\
2364   - *0x54: 0x0630 \n\
2365   - *0x55: 0x0631 \n\
2366   - *0x56: 0x0632 \n\
2367   - *0x57: 0xfb8b \n\
2368   - *0x58: 0x0633 \n\
2369   - *0x59: 0x0634 \n\
2370   - *0x62: 0x0635 \n\
2371   - *0x63: 0x0636 \n\
2372   - *0x64: 0x0638 \n\
2373   - *0x65: 0x0639 \n\
2374   - *0x66: 0x063a \n\
2375   - *0x67: 0x063b \n\
2376   - *0x68: 0x063d \n\
2377   - *0x69: 0x063e \n\
2378   - *0x70: 0x063f \n\
2379   - *0x71: 0x06a9 \n\
2380   - *0x72: 0x06af \n\
2381   - *0x73: 0x0641 \n\
2382   - *0x74: 0x0643 \n\
2383   - *0x75: 0x0644 \n\
2384   - *0x76: 0x0646 \n\
2385   - *0x77: 0x0645 \n\
2386   - *0x78: 0x064d \n\
2387   - *0x80: 0x064c \n\
2388   - *0x8c: 0x0621 \n\
2389   - *0x8d: 0x0623 \n\
2390   - *0x8e: 0x0625 \n\
2391   - *0x9c: 0x0629 \n\
2392   - *0x9d: 0x0626 \n\
2393   - *0x9e: 0xfdfc \n\
2394   - *0xcb: 0x061b \n\
2395   - *0xcc: 0x060c \n\
2396   - *0xcd: 0x061f
2397   -x3270.codepage.persian: 37
2398   -x3270.displayCharset.persian: iso10646-1
2399   -! IBM codepage 1047, used by Unix System Services
2400   -x3270.charset.cp1047: \
2401   - 0xad: [ \n 0xba: Yacute \n\
2402   - 0xbd: ] \n 0xbb: diaeresis \n\
2403   - 0x5f: asciicircum \n 0xb0: notsign
2404   -! Spanish character set for x3270.
2405   -x3270.codepage.spanish: 284
2406   -x3270.displayCharset.spanish: 3270cg-1a,3270cg-1,iso8859-1
2407   -x3270.charset.spanish: #table\n\
2408   - 0 1 2 3 156 9 134 127 151 141 142 11 12 13 14 15 \
2409   - 16 17 18 19 157 133 8 135 24 25 146 143 28 29 30 31 \
2410   -128 129 130 131 132 10 23 27 136 137 138 139 140 5 6 7 \
2411   -144 145 22 147 148 149 150 4 152 153 154 155 20 21 158 26 \
2412   - 32 160 226 228 224 225 227 229 231 166 91 46 60 40 43 124 \
2413   - 38 233 234 235 232 237 238 239 236 223 93 36 42 41 59 172 \
2414   - 45 47 194 196 192 193 195 197 199 35 241 44 37 95 62 63 \
2415   -248 201 202 203 200 205 206 207 204 96 58 209 64 39 61 34 \
2416   -216 97 98 99 100 101 102 103 104 105 171 187 240 253 254 177 \
2417   -176 106 107 108 109 110 111 112 113 114 170 186 230 184 198 164 \
2418   -181 168 115 116 117 118 119 120 121 122 161 191 208 221 222 174 \
2419   -162 163 165 183 169 167 182 188 189 190 94 33 175 126 180 215 \
2420   -123 65 66 67 68 69 70 71 72 73 173 244 246 242 243 245 \
2421   -125 74 75 76 77 78 79 80 81 82 185 251 252 249 250 255 \
2422   - 92 247 83 84 85 86 87 88 89 90 178 212 214 210 211 213 \
2423   - 48 49 50 51 52 53 54 55 56 57 179 219 220 217 218 159
2424   -! Spanish w/Euro (code page 1145)
2425   -x3270.codepage.spanish-euro: 0x02b70479
2426   -x3270.displayCharset.spanish-euro: 3270cg-15a,3270cg-15,iso8859-15
configure.ac
... ... @@ -444,10 +444,12 @@ dnl ---------------------------------------------------------------------------
444 444 dnl Configure which files to generate.
445 445 dnl ---------------------------------------------------------------------------
446 446  
447   -AC_CONFIG_FILES(sdk/lib3270.pc)
448   -AC_CONFIG_FILES(src/lib3270/version.c)
449 447 AC_CONFIG_FILES(Makefile)
450 448  
  449 +AC_CONFIG_FILES(src/lib3270/Makefile)
  450 +AC_CONFIG_FILES(src/lib3270/version.c)
  451 +AC_CONFIG_FILES(src/lib3270/lib3270.pc)
  452 +
451 453 dnl ---------------------------------------------------------------------------
452 454 dnl Output the generated config.status script.
453 455 dnl ---------------------------------------------------------------------------
... ...
sdk/lib3270.pc.in
... ... @@ -1,16 +0,0 @@
1   -prefix=@prefix@
2   -exec_prefix=@exec_prefix@
3   -libdir=@libdir@
4   -includedir=@includedir@
5   -
6   -version_major=@PACKAGE_MAJOR_VERSION@
7   -version_minor=@PACKAGE_MINOR_VERSION@
8   -sdk_version=@LIB3270_SDK_VERSION@
9   -
10   -Name: @PACKAGE_NAME@
11   -Description: @PACKAGE_DESCRIPTION@
12   -Version: @PACKAGE_VERSION@
13   -Libs: -L\@libdir@ -l@LIB3270_NAME@
14   -Libs.private: @LIBSSL_LIBS@
15   -Cflags: -I@includedir@
16   -
src/lib3270++/local/session.cc
... ... @@ -138,7 +138,7 @@
138 138 return (ConnectionState) lib3270_get_connection_state(this->hSession);
139 139 }
140 140  
141   - /// @brief Set field at current posicion, jumps to next writable field.
  141 + /// @brief Set field at current position, jumps to next writable field.
142 142 TN3270::Session & Local::Session::push(const char *text) {
143 143 std::lock_guard<std::mutex> lock(sync);
144 144 return *this;
... ...
src/lib3270/Makefile.in 0 → 100644
... ... @@ -0,0 +1,358 @@
  1 +#
  2 +# "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 +# (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 +# aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 +#
  6 +# Copyright (C) <2008> <Banco do Brasil S.A.>
  7 +#
  8 +# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 +# os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 +# Free Software Foundation.
  11 +#
  12 +# Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 +# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 +# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 +# obter mais detalhes.
  16 +#
  17 +# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 +# programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
  19 +# Place, Suite 330, Boston, MA, 02111-1307, USA
  20 +#
  21 +# Contatos:
  22 +#
  23 +# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  24 +# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
  25 +#
  26 +
  27 +#---[ Library configuration ]------------------------------------------------------------
  28 +
  29 +LIBNAME=lib@LIB3270_NAME@
  30 +
  31 +SOURCES= \
  32 + $(wildcard *.c) \
  33 + $(wildcard @OSNAME@/*.c) \
  34 + $(wildcard @OSNAME@/*.rc) \
  35 + $(BASEDIR)/.tmp/$(LIBNAME)/fallbacks.c
  36 +
  37 +TEST_SOURCES= \
  38 + $(wildcard src/testprogram/*.c)
  39 +
  40 +#---[ Tools ]----------------------------------------------------------------------------
  41 +
  42 +CC=@CC@
  43 +HOST_CC=@HOST_CC@
  44 +LD=@CC@
  45 +LN_S=@LN_S@
  46 +MKDIR=@MKDIR_P@
  47 +INSTALL=@INSTALL@
  48 +INSTALL_DATA=@INSTALL_DATA@
  49 +INSTALL_PROGRAM=@INSTALL_PROGRAM@
  50 +XGETTEXT=@XGETTEXT@
  51 +MSGCAT=@MSGCAT@
  52 +WINDRES=@WINDRES@
  53 +AR=@AR@
  54 +
  55 +#---[ Paths ]----------------------------------------------------------------------------
  56 +
  57 +prefix=@prefix@
  58 +exec_prefix=@exec_prefix@
  59 +bindir=@bindir@
  60 +sbindir=@sbindir@
  61 +libdir=@libdir@
  62 +includedir=@includedir@
  63 +datarootdir=@datarootdir@
  64 +localedir=@localedir@
  65 +docdir=@docdir@
  66 +sysconfdir=@sysconfdir@
  67 +
  68 +BASEDIR=@BASEDIR@
  69 +
  70 +POTDIR=$(BASEDIR)/.pot
  71 +
  72 +OBJDIR=$(BASEDIR)/.obj/$(LIBNAME)
  73 +OBJDBG=$(OBJDIR)/Debug
  74 +OBJRLS=$(OBJDIR)/Release
  75 +
  76 +BINDIR=$(BASEDIR)/.bin
  77 +BINDBG=$(BINDIR)/Debug
  78 +BINRLS=$(BINDIR)/Release
  79 +
  80 +#---[ Rules ]----------------------------------------------------------------------------
  81 +
  82 +DEPENDS= \
  83 + Makefile \
  84 + ../include/*.h \
  85 + ../include/lib3270/*.h \
  86 + ../lib3270/*.h
  87 +
  88 +
  89 +CFLAGS= \
  90 + @CFLAGS@ \
  91 + -g \
  92 + -I../include
  93 + -DBUILD_DATE=`date +%Y%m%d` \
  94 + @LIBSSL_CFLAGS@
  95 +
  96 +LIBS= \
  97 + @LIBS@ \
  98 + @LIBSSL_LIBS@ \
  99 + @LIBICONV@ \
  100 + @INTL_LIBS@
  101 +
  102 +#---[ Debug Rules ]----------------------------------------------------------------------
  103 +
  104 +$(OBJDBG)/%.o: \
  105 + %.c \
  106 + $(DEPENDS)
  107 +
  108 + @echo $< ...
  109 + @$(MKDIR) `dirname $@`
  110 + @$(CC) \
  111 + $(CFLAGS) \
  112 + -Wall -Wextra -fstack-check \
  113 + -DDEBUG=1 \
  114 + -o $@ -c $<
  115 +
  116 +$(OBJDBG)/%.o: \
  117 + %.rc
  118 +
  119 + @echo $< ...
  120 + @$(MKDIR) `dirname $@`
  121 + @$(WINDRES) $< -O coff -o $@
  122 +
  123 +#---[ Release Rules ]--------------------------------------------------------------------
  124 +
  125 +$(OBJRLS)/%.o: \
  126 + %.c \
  127 + $(DEPENDS)
  128 +
  129 + @echo $< ...
  130 + @$(MKDIR) `dirname $@`
  131 + @$(CC) \
  132 + $(CFLAGS) \
  133 + -DNDEBUG=1 \
  134 + -o $@ -c $<
  135 +
  136 +$(OBJRLS)/%.o: \
  137 + %.rc
  138 +
  139 + @echo $< ...
  140 + @$(MKDIR) `dirname $@`
  141 + @$(WINDRES) $< -O coff -o $@
  142 +
  143 +#---[ Misc Rules ]-----------------------------------------------------------------------
  144 +
  145 +$(POTDIR)/$(LIBNAME)/%.pot: \
  146 + %.c
  147 +
  148 + @echo $(notdir $@) ...
  149 + @$(MKDIR) `dirname $@`
  150 + @$(XGETTEXT) \
  151 + --language=C \
  152 + --keyword=_ \
  153 + --keyword=N_ \
  154 + --keyword=MSG_:2 \
  155 + --output=$@ \
  156 + $<
  157 + @touch $@
  158 +
  159 +$(POTDIR)/$(LIBNAME)/%.pot: \
  160 + %.rc
  161 +
  162 + @echo $< ...
  163 + @$(MKDIR) `dirname $@`
  164 + @touch $@
  165 +
  166 +#---[ Release Targets ]------------------------------------------------------------------
  167 +
  168 +all: \
  169 + $(BINRLS)/$(LIBNAME)@DLLEXT@ \
  170 + $(BINRLS)/$(LIBNAME).a \
  171 + $(POTDIR)/$(LIBNAME).pot
  172 +
  173 +
  174 +Release: \
  175 + $(BINRLS)/$(LIBNAME)@DLLEXT@ \
  176 + $(BINRLS)/$(LIBNAME).a
  177 +
  178 +$(BINRLS)/$(LIBNAME)@DLLEXT@: \
  179 + $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  180 +
  181 + @echo $< ...
  182 + @rm -f $@
  183 + @$(LN_S) \
  184 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  185 + $@
  186 +
  187 +$(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
  188 + $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
  189 +
  190 + @rm -f $@
  191 + @$(LN_S) \
  192 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  193 + $@
  194 +
  195 +$(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
  196 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
  197 +
  198 + @$(MKDIR) `dirname $@`
  199 + @echo $< ...
  200 + @$(LD) \
  201 + -shared -Wl,-soname,$(@F) \
  202 + -o $@ \
  203 + $(LDFLAGS) \
  204 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) \
  205 + $(LIBS)
  206 +
  207 +$(BINRLS)/$(LIBNAME).a: \
  208 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
  209 +
  210 + @echo $@ ...
  211 + @$(MKDIR) `dirname $@`
  212 + @$(AR) rcs $@ $^
  213 +
  214 +
  215 +#---[ Install Targets ]------------------------------------------------------------------
  216 +
  217 +install: \
  218 + $(BINRLS)/$(LIBNAME)@DLLEXT@ \
  219 + $(BINRLS)/$(LIBNAME).a
  220 +
  221 + # Install library
  222 + @mkdir -p $(DESTDIR)$(libdir)
  223 +
  224 + @$(INSTALL_PROGRAM) \
  225 + $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  226 + $(DESTDIR)$(libdir)
  227 +
  228 +
  229 + @$(LN_S) \
  230 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  231 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  232 +
  233 + @$(LN_S) \
  234 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  235 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@
  236 +
  237 + # Install static library
  238 + @$(INSTALL_DATA) \
  239 + $(BINRLS)/$(LIBNAME).a \
  240 + $(DESTDIR)$(libdir)
  241 +
  242 + # Install SDK
  243 +
  244 + @mkdir -p $(DESTDIR)$(includedir)/$(LIBNAME)
  245 +
  246 + @$(INSTALL_DATA) \
  247 + ../include/$(LIBNAME)/*.h \
  248 + $(DESTDIR)$(includedir)/$(LIBNAME)
  249 +
  250 + @$(INSTALL_DATA) \
  251 + ../include/$(LIBNAME).h \
  252 + $(DESTDIR)$(includedir)/$(LIBNAME).h
  253 +
  254 + # Install PKG-CONFIG files
  255 + @mkdir -p $(DESTDIR)$(libdir)/pkgconfig
  256 + @$(INSTALL_DATA) \
  257 + $(LIBNAME).pc \
  258 + $(DESTDIR)$(libdir)/pkgconfig/$(LIBNAME).pc
  259 +
  260 +
  261 +#---[ Misc Targets ]---------------------------------------------------------------------
  262 +
  263 +$(BASEDIR)/.tmp/$(LIBNAME)/fallbacks.c: \
  264 + X3270.xad \
  265 + $(wildcard mkfb/*.c)
  266 +
  267 + @$(MKDIR) `dirname $@`
  268 + @$(MKDIR) $(BINDIR)
  269 + @echo $< ...
  270 + @$(HOST_CC) -g -o $(BINDIR)/mkfb@EXEEXT@ $(wildcard mkfb/*.c)
  271 + @$(BINDIR)/mkfb@EXEEXT@ -c X3270.xad $@
  272 +
  273 +$(POTDIR)/$(LIBNAME).pot: \
  274 + $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(LIBNAME)/$(SRC).pot)
  275 +
  276 + @rm -f $@
  277 + @mkdir -p `dirname $@`
  278 + @$(MSGCAT) --sort-output $^ > $@
  279 +
  280 +locale: \
  281 + lib$(LIBNAME).pot
  282 +
  283 +
  284 +#---[ Debug Targets ]--------------------------------------------------------------------
  285 +
  286 +Debug: \
  287 + $(BINDBG)/$(LIBNAME)@DLLEXT@
  288 +
  289 +$(BINDBG)/$(LIBNAME)@EXEEXT@: \
  290 + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) \
  291 + $(foreach SRC, $(basename $(TEST_SOURCES)), $(OBJDBG)/$(SRC).o)
  292 +
  293 + @$(MKDIR) `dirname $@`
  294 + @echo $< ...
  295 + $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
  296 +
  297 +run: \
  298 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  299 +
  300 + @LD_LIBRARY_PATH=$(BINDBG) \
  301 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  302 +
  303 +
  304 +$(BINDBG)/$(LIBNAME)@DLLEXT@: \
  305 + $(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  306 +
  307 + @echo $< ...
  308 + @rm -f $@
  309 + @$(LN_S) \
  310 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  311 + $@
  312 +
  313 +$(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
  314 + $(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
  315 +
  316 + @rm -f $@
  317 + @$(LN_S) \
  318 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  319 + $@
  320 +
  321 +$(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
  322 + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
  323 +
  324 + @$(MKDIR) `dirname $@`
  325 + @echo $< ...
  326 + @$(LD) \
  327 + -shared -Wl,-soname,$(@F) \
  328 + -o $@ \
  329 + $(LDFLAGS) \
  330 + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) \
  331 + $(LIBS)
  332 +
  333 +#---[ Clean Targets ]--------------------------------------------------------------------
  334 +
  335 +clean: \
  336 + cleanDebug \
  337 + cleanRelease
  338 +
  339 + @rm -fr $(BASEDIR)/.tmp/$(LIBNAME)
  340 + @rm -fr $(POTDIR)/$(LIBNAME)
  341 +
  342 +cleanDebug:
  343 +
  344 + @rm -fr $(OBJDBG)
  345 + @rm -fr $(BINDBG)
  346 +
  347 +cleanRelease:
  348 +
  349 + @rm -fr $(OBJRLS)
  350 + @rm -fr $(BINRLS)
  351 + @rm -fr $(POTDIR)
  352 + @rm -f lib$(LIBNAME).pot
  353 +
  354 +clean: \
  355 + cleanDebug \
  356 + cleanRelease
  357 +
  358 +
... ...
src/lib3270/X3270.xad 0 → 100644
... ... @@ -0,0 +1,2426 @@
  1 +! Copyright 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 by Paul
  2 +! Mattes.
  3 +! Permission to use, copy, modify, and distribute this software and its
  4 +! documentation for any purpose and without fee is hereby granted,
  5 +! provided that the above copyright notice appear in all copies and that
  6 +! both that copyright notice and this permission notice appear in
  7 +! supporting documentation.
  8 +!
  9 +! x3270, c3270, s3270 and tcl3270 are distributed in the hope that they will
  10 +! be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE
  12 +! for more details.
  13 +!
  14 +! x3270 app-defaults file. This file is generally compiled into x3270, rather
  15 +! than installed.
  16 +!
  17 +! This file is in three sections:
  18 +!
  19 +! (1) User-Modifiable Resources
  20 +! Resources that are likeliest to be modified by an end user.
  21 +!
  22 +! (2) Labels and Messages
  23 +! Resources that are likely to be modified for translation into another
  24 +! language.
  25 +!
  26 +! (3) Base-Level Resources
  27 +! Resources required for the basic operation of x3270, not for the
  28 +! faint-hearted to modify.
  29 +!
  30 +!=============================================================================
  31 +! Section 1: User-Modifiable Resources
  32 +!
  33 +! Resources that are likeliest to be modified by an end user.
  34 +!=============================================================================
  35 +!
  36 +! Many of the resource definitions are commented out, because they are
  37 +! the defaults defined in x3270 itself. They are listed here so you can
  38 +! easily uncomment and change them.
  39 +#ifndef STANDALONE
  40 +!
  41 +! Fonts
  42 +! *.emulatorFont: 3270
  43 +!
  44 +! Color schemes for full-color (3279) mode
  45 +! Each scheme is a list of 23 items:
  46 +! 0 X color to use for IBM "neutral/black" (also used as ANSI color 0)
  47 +! 1 X color to use for IBM "blue" (also used for ANSI color 4)
  48 +! 2 X color to use for IBM "red" (also used for ANSI color 1)
  49 +! 3 X color to use for IBM "pink" (also used for ANSI color 5)
  50 +! 4 X color to use for IBM "green" (also used for ANSI color 2)
  51 +! 5 X color to use for IBM "turquoise"
  52 +! 6 X color to use for IBM "yellow" (also used for ANSI color 3)
  53 +! 7 X color to use for IBM "neutral/white"
  54 +! 8 X color to use for IBM "black"
  55 +! 9 X color to use for IBM "deep blue"
  56 +! 10 X color to use for IBM "orange"
  57 +! 11 X color to use for IBM "purple"
  58 +! 12 X color to use for IBM "pale green"
  59 +! 13 X color to use for IBM "pale turquoise" (also used for ANSI color 6)
  60 +! 14 X color to use for IBM "grey"
  61 +! 15 X color to use for IBM "white" (also used for ANSI color 7)
  62 +! 16 X color to use if one of 0..15 cannot be allocated (white or black)
  63 +! 17 X color to use as the default screen background
  64 +! 18 X color to use as the select background
  65 +! 19 IBM color index (0..15) to use for unprotected, unhighlighted fields
  66 +! 20 IBM color index (0..15) to use for unprotected, highlighted fields
  67 +! 21 IBM color index (0..15) to use for protected, unhighlighted fields
  68 +! 22 IBM color index (0..15) to use for protected, highlighted fields
  69 +!
  70 +! x3270.colorScheme: default
  71 +x3270.colorScheme.default: \
  72 + black deepSkyBlue red pink \
  73 + green turquoise yellow white \
  74 + black blue3 orange purple \
  75 + paleGreen paleTurquoise2 grey white \
  76 + white black dimGrey \
  77 + 4 2 1 15
  78 +x3270.colorScheme.reverse: \
  79 + black blue firebrick pink \
  80 + green4 cadetBlue goldenrod black \
  81 + black blue3 orange purple \
  82 + paleGreen darkTurquoise grey black \
  83 + black white dimGrey \
  84 + 4 2 1 0
  85 +x3270.colorScheme.bright: \
  86 + black blue red magenta \
  87 + green turquoise yellow white \
  88 + black blue3 orange purple \
  89 + paleGreen cyan grey white \
  90 + white black dimGrey \
  91 + 4 2 1 15
  92 +x3270.colorScheme.cpe: \
  93 + black LightBlue1 PaleVioletRed1 \
  94 + pink green turquoise yellow white \
  95 + black LightBlue3 orange MediumPurple1 \
  96 + paleGreen paleTurquoise2 grey80 white \
  97 + white black dimGrey \
  98 + 4 2 1 15
  99 +x3270.colorScheme.greenScreen: \
  100 + green green green green \
  101 + green green green green \
  102 + green green green green \
  103 + green green green green \
  104 + white black dimGrey \
  105 + 4 15 4 15
  106 +#ifdef X3270_MENUS
  107 +! Color schemes listed on the Options color menu
  108 +x3270.schemeList: Default 3279: default\n\
  109 + Bright: bright\n\
  110 + Reverse: reverse\n\
  111 + Green Screen: greenScreen
  112 +! Character sets listed on the Options menu
  113 +x3270.charsetList: U.S. English (CP 37): us-intl\n\
  114 + Bracket (CP 37, modified): bracket\n\
  115 + APL (CP 37): apl\n\
  116 + Euro>U.S. English (CP 1140): us-euro\n\
  117 + Euro>Belgian (CP 1148): belgian-euro\n\
  118 + Euro>Finnish (CP 1143): finnish-euro\n\
  119 + Euro>French (CP 1147): french-euro\n\
  120 + Euro>German (CP 1141): german-euro\n\
  121 + Euro>Icelandic (CP 1149): icelandic-euro\n\
  122 + Euro>Italian (CP 1144): italian-euro\n\
  123 + Euro>Norwegian (CP 1142): norwegian-euro\n\
  124 + Euro>Spanish (CP 1145): spanish-euro\n\
  125 + Euro>United Kingdom (CP 1146): uk-euro\n\
  126 + Belgian (CP 500): belgian\n\
  127 + Brazilian (CP 275): brazilian\n\
  128 +#ifdef X3270_DBCS
  129 + Chinese Simplified (CP 836+837): simplified-chinese\n\
  130 + Chinese GB 18030 (CP 1388): chinese-gb18030\n\
  131 +#endif
  132 + Finnish (CP 278): finnish\n\
  133 + French (CP 297): french\n\
  134 + German (CP 273): german\n\
  135 + Greek (CP 875): greek\n\
  136 + Hebrew (CP 424): hebrew\n\
  137 + Icelandic (CP 871): icelandic\n\
  138 + Italian (CP 280): italian\n\
  139 +#ifdef X3270_DBCS
  140 + Japanese>CP 1027+300: japanese\n\
  141 + Japanese>CP 290+300: japanese-290\n\
  142 + Japanese>CP 930: japanese-930\n\
  143 + Japanese>CP 939: japanese-939\n\
  144 + Japanese>CP 1390: japanese-1390\n\
  145 + Japanese>CP 1399: japanese-1399\n\
  146 +#endif
  147 + Norwegian (CP 277): norwegian\n\
  148 + Open Systems (CP 1047): cp1047\n\
  149 + Polish (CP 870): cp870\n\
  150 + Russian (CP 880): russian\n\
  151 + Slovenian (CP 870): cp870\n\
  152 + Spanish (CP 284): spanish\n\
  153 + Thai (CP 838): thai\n\
  154 + Turkish (CP 1026): turkish\n\
  155 + United Kingdom (CP 285): uk\n
  156 +#endif
  157 +!
  158 +! Pseudo-colors for 3278 mode
  159 +! x3270.colorBackground: black
  160 +! x3270.selectBackground: dimGrey
  161 +! x3270.normalColor: green
  162 +! Note: the following values are the new defaults, which cause 3278's
  163 +! to display everything in green.
  164 +! x3270.inputColor: green
  165 +! x3270.boldColor: green
  166 +! To resurrect x3270's Pseudo-Color mode, which was how 3278's were
  167 +! displayed up through x3270 3.3.5, set the following resource values:
  168 +! x3270.inputColor: orange
  169 +! x3270.boldColor: cyan
  170 +!
  171 +! Cursors
  172 +! x3270.normalCursor: top_left_arrow
  173 +! x3270.waitCursor: watch
  174 +! x3270.lockedCursor: X_cursor
  175 +!
  176 +! Line-mode Telnet parameters
  177 +! x3270.icrnl: true
  178 +! x3270.inlcr: false
  179 +! x3270.erase: ^?
  180 +! x3270.kill: ^U
  181 +! x3270.werase: ^W
  182 +! x3270.rprnt: ^R
  183 +! x3270.lnext: ^V
  184 +! x3270.intr: ^C
  185 +! x3270.quit: ^\\
  186 +! x3270.eof: ^D
  187 +!
  188 +! Toggles, using the same names as the "-set" and "-clear" options
  189 +! x3270.altCursor: false
  190 +! x3270.blankFill: false
  191 +! x3270.crosshair: false
  192 +! x3270.cursorBlink: false
  193 +! x3270.cursorPos: true
  194 +! x3270.dsTrace: false
  195 +! x3270.eventTrace: false
  196 +! x3270.lineWrap: true
  197 +! x3270.marginedPaste: false
  198 +! x3270.monoCase: false
  199 +! x3270.rectangleSelect: false
  200 +! x3270.screenTrace: false
  201 +! x3270.scrollBar: false
  202 +! x3270.showTiming: false
  203 +!
  204 +! Miscellaneous configuration parameters
  205 +! x3270.activeIcon: false
  206 +! x3270.allowResize: true
  207 +! x3270.bellVolume: 0
  208 +! x3270.charset: bracket
  209 +! x3270.composeMap: latin1
  210 +! x3270.connectFileName: ~/.x3270connect
  211 +! x3270.doConfirms: true
  212 +! x3270.debugTracing: true
  213 +! x3270.disconnectClear: false
  214 +! x3270.hostsFile: /usr/lib/X11/x3270/ibm_hosts
  215 +! x3270.highlightSelect: true
  216 +! x3270.idleCommand:
  217 +! x3270.idleTimeout: ~7m
  218 +! x3270.inputMethod:
  219 +! x3270.invertKeypadShift: false
  220 +! x3270.keymap:
  221 +! x3270.keypad: right
  222 +! x3270.keypadOn: false
  223 +! x3270.labelIcon: false
  224 +! x3270.m3279: false
  225 +! x3270.macros:
  226 +! x3270.menuBar: true
  227 +! x3270.modifiedSel: false
  228 +! x3270.modifiedSelColor: 10
  229 +! x3270.model: 4
  230 +! x3270.mono: false
  231 +! x3270.numericLock: false
  232 +! x3270.once: false
  233 +! x3270.pluginCommand: x3270hist.pl
  234 +! x3270.port: telnet
  235 +! x3270.preeditType: OverTheSpot+1
  236 +! x3270.saveLines: 64
  237 +! x3270.scripted: false
  238 +! x3270.suppressHost: false
  239 +! x3270.suppressFontMenu: false
  240 +! x3270.termName:
  241 +! x3270.traceDir: /tmp
  242 +! x3270.cursorColor: red
  243 +! (note: cursorColor is not used unless useCursorColor is true, below)
  244 +! x3270.useCursorColor: false
  245 +! x3270.visualBell: false
  246 +! x3270.visualSelect: false
  247 +! x3270.visualSelectColor: 6
  248 +!
  249 +! Fonts listed on the Options menu and for screen resizing
  250 +x3270.emulatorFontList.3270cg-1a,3270cg-1,iso8859-1: \
  251 + 3270 Font (14 point): #resize 3270\n\
  252 + 8-point Font: #resize 3270gt8\n\
  253 + 12-point Font: #resize 3270-12\n\
  254 + 16-point Font: #resize 3270gt16\n\
  255 + 20-point Font: #resize 3270-20\n\
  256 + 24-point Font: #resize 3270gt24\n\
  257 + 32-point Font: #resize 3270gt32
  258 +x3270.emulatorFontList.3270cg-15a,3270cg-15,iso8859-15: \
  259 + 3270 Font (14 point): #resize 3270e\n\
  260 + 8-point Font: #resize 3270egt8\n\
  261 + 12-point Font: #resize 3270e-12\n\
  262 + 16-point Font: #resize 3270egt16\n\
  263 + 20-point Font: #resize 3270e-20\n\
  264 + 24-point Font: #resize 3270egt24\n\
  265 + 32-point Font: #resize 3270egt32
  266 +x3270.emulatorFontList.3270cg-1a,3270cg-1,iso8859-1+gb2312.1980-0,iso10646-1: \
  267 + 14-point 3270: 3270+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\
  268 + 20-point 3270: 3270-20+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\
  269 + 8x16: 8x16+-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0\n\
  270 + 12x24: 12x24+-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0
  271 +x3270.emulatorFontList.jisx0201.1976-0+jisx0208.1983-0,iso10646-1: \
  272 + 14-point: -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0+-misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0208.1983-0\n\
  273 + 16-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-jis-fixed-medium-r-normal--16-150-75-75-c-160-jisx0208.1983-0\n\
  274 + 18-point: -sony-fixed-medium-r-normal--16-150-75-75-c-80-jisx0201.1976-0+-misc-fixed-medium-r-normal-ja-18-120-100-100-c-180-iso10646-1\n\
  275 + 24-point: -sony-fixed-medium-r-normal--24-230-75-75-c-120-jisx0201.1976-0+-jis-fixed-medium-r-normal--24-230-75-75-c-240-jisx0208.1983-0
  276 +#endif
  277 +!
  278 +! Print commands
  279 +x3270.printTextCommand: lpr
  280 +#ifndef STANDALONE
  281 +x3270.printWindowCommand: xwd -id %d | xpr | lpr
  282 +!
  283 +! System V versions of print commands
  284 +! x3270.printTextCommand: lp
  285 +! x3270.printWindowCommand: xwd -id %d | xpr | lp
  286 +!
  287 +! Trace window command
  288 +x3270.traceCommand: tail -f
  289 +!
  290 +! File transfer command
  291 +! x3270.ftCommand: ind$file
  292 +!
  293 +! Printer session options
  294 +#endif
  295 +#ifdef _WIN32
  296 +x3270.printer.assocCommandLine: wpr3287.exe -assoc %L% %R% %P% %H%
  297 +x3270.printer.luCommandLine: wpr3287.exe %R% %P% %L%@%H%
  298 +! x3270.printer.name:
  299 +#else
  300 +x3270.printer.command: lpr
  301 +x3270.printer.assocCommandLine: pr3287 -assoc %L% -command "%C%" %R% %P% "%H%"
  302 +x3270.printer.luCommandLine: pr3287 -command "%C%" %R% %P% "%L%@%H%"
  303 +#endif
  304 +#ifndef STANDALONE
  305 +!
  306 +! Translation table for the '@server' pseudo-keymap, which is the keymap
  307 +! you get by default (in addition to the 'base' keymap, below). Maps server
  308 +! vendor strings to keymap names.
  309 +x3270.serverKeymapList: \
  310 + Sun Microsystems, Inc.: sun_k5\n\
  311 + Hewlett-Packard Company: hp-k1\n\
  312 + International Business Machines: alt\n\
  313 + Silicon Graphics: alt\n\
  314 + The XFree86 Project, Inc: alt\n\
  315 + AT&T Laboratories Cambridge: alt
  316 +!
  317 +! Keymaps (keyboard and mouse mappings)
  318 +!
  319 +! Base keymap: What you get by default, in both 3270 and NVT modes. Any other
  320 +! user-specified keymap is logically added to this keymap.
  321 +x3270.keymap.base: \
  322 + :<Key>Multi_key: Compose()\n\
  323 + Ctrl<Btn1Down>: HandleMenu(fileMenu)\n\
  324 + Ctrl<Btn2Down>: HandleMenu(optionsMenu)\n\
  325 + Ctrl<Btn3Down>: HandleMenu(hostMenu,macrosMenu)\n\
  326 + <Btn1Down>: SelectDown()\n\
  327 + ~Shift<Btn1Motion>: SelectMotion()\n\
  328 + <Btn2Down>: ignore()\n\
  329 + <Btn2Motion>: ignore()\n\
  330 + <Btn2Up>: insert-selection(PRIMARY)\n\
  331 + <Btn3Down>: start-extend()\n\
  332 + <Btn3Motion>: select-extend()\n\
  333 + ~Shift<BtnUp>: SelectUp(PRIMARY)\n\
  334 + Shift<Key>Insert: insert-selection(PRIMARY)\n\
  335 + Shift<Key>Up: KybdSelect(Up,PRIMARY)\n\
  336 + Shift<Key>Down: KybdSelect(Down,PRIMARY)\n\
  337 + Shift<Key>Left: KybdSelect(Left,PRIMARY)\n\
  338 + Shift<Key>Right: KybdSelect(Right,PRIMARY)\n\
  339 + Shift<Key>F1: PF(13)\n\
  340 + Shift<Key>F2: PF(14)\n\
  341 + Shift<Key>F3: PF(15)\n\
  342 + Shift<Key>F4: PF(16)\n\
  343 + Shift<Key>F5: PF(17)\n\
  344 + Shift<Key>F6: PF(18)\n\
  345 + Shift<Key>F7: PF(19)\n\
  346 + Shift<Key>F8: PF(20)\n\
  347 + Shift<Key>F9: PF(21)\n\
  348 + Shift<Key>F10: PF(22)\n\
  349 + Shift<Key>F11: PF(23)\n\
  350 + Shift<Key>F12: PF(24)\n\
  351 + Meta<Key>F1: PF(13)\n\
  352 + Meta<Key>F2: PF(14)\n\
  353 + Meta<Key>F3: PF(15)\n\
  354 + Meta<Key>F4: PF(16)\n\
  355 + Meta<Key>F5: PF(17)\n\
  356 + Meta<Key>F6: PF(18)\n\
  357 + Meta<Key>F7: PF(19)\n\
  358 + Meta<Key>F8: PF(20)\n\
  359 + Meta<Key>F9: PF(21)\n\
  360 + Meta<Key>F10: PF(22)\n\
  361 + Meta<Key>F11: PF(23)\n\
  362 + Meta<Key>F12: PF(24)\n\
  363 + :<Key>F1: PF(1)\n\
  364 + :<Key>F2: PF(2)\n\
  365 + :<Key>F3: PF(3)\n\
  366 + :<Key>F4: PF(4)\n\
  367 + :<Key>F5: PF(5)\n\
  368 + :<Key>F6: PF(6)\n\
  369 + :<Key>F7: PF(7)\n\
  370 + :<Key>F8: PF(8)\n\
  371 + :<Key>F9: PF(9)\n\
  372 + :<Key>F10: PF(10)\n\
  373 + :<Key>F11: PF(11)\n\
  374 + :<Key>F12: PF(12)\n\
  375 + :<Key>Print: PrintText()\n\
  376 + Alt<Key>q: Quit()\n\
  377 + :<Key>dead_acute: Compose() Key(apostrophe)\n\
  378 + :<Key>dead_grave: Compose() Key(grave)\n\
  379 + :<Key>dead_circumflex: Compose() Key(asciicircum)\n\
  380 + :<Key>dead_tilde: Compose() Key(asciitilde)\n\
  381 + :<Key>dead_diaeresis: Compose() Key(quotedbl)\n
  382 +!
  383 +! Base keymap for 3270 mode. These mappings are added to the base keymap,
  384 +! but only when in 3270 mode.
  385 +! These were originally part of the base keymap, but were moved here, because
  386 +! they were no-ops in NVT mode, or interfered with NVT-mode data entry.
  387 +!
  388 +! Note that as yet, there is no x3270.keymap.base.nvt, which would define the
  389 +! base keymap extensions for NVT mode.
  390 +!
  391 +x3270.keymap.base.3270: #override \
  392 + :Ctrl Shift<Btn1Down>: MouseSelect()\n\
  393 + Shift<Btn1Down>: MoveCursor()\n\
  394 + Shift<Key>Return: Newline()\n\
  395 + :<Key>Return: Enter()\n\
  396 + :<Key>Linefeed: Newline()\n\
  397 + :<Key>BackSpace: Erase()\n\
  398 + Shift<Key>Tab: BackTab()\n\
  399 + :Meta<Key>Left: PreviousWord()\n\
  400 + :Meta<Key>Right: NextWord()\n\
  401 + :Meta<Key>1: PA(1)\n\
  402 + :Meta<Key>2: PA(2)\n\
  403 + :Meta<Key>3: PA(3)\n\
  404 + Meta<Key>a: Attn()\n\
  405 + Meta<Key>b: PrintWindow()\n\
  406 + Meta<Key>c: Clear()\n\
  407 + Meta<Key>d: Delete()\n\
  408 + Meta<Key>e: EraseEOF()\n\
  409 + Meta<Key>f: Flip()\n\
  410 + Meta<Key>h: Home()\n\
  411 + Meta<Key>i: Insert()\n\
  412 + Meta<Key>l: Redraw()\n\
  413 + Meta<Key>p: PrintText()\n\
  414 + Meta<Key>r: Reset()\n\
  415 + Meta<Key>u: Unselect()\n\
  416 + Ctrl<Key>a: SelectAll(PRIMARY)\n\
  417 + Ctrl<Key>c: set-select(CLIPBOARD)\n\
  418 + Ctrl<Key>u: DeleteField()\n\
  419 + Ctrl<Key>w: DeleteWord()\n\
  420 + Ctrl<Key>v: insert-selection(CLIPBOARD)
  421 +! Keymap that exercises the optional history plugin.
  422 +x3270.keymap.hist:
  423 + Shift<Key>Prior: Plugin(command,prev)\n\
  424 + Shift<Key>Next: Plugin(command,next)
  425 +! Keymap that restores the old (pre 3.3) mouse-click behavior.
  426 +x3270.keymap.oldclick: #override\n\
  427 + Ctrl<Btn1Down>: HandleMenu(fileMenu)\n\
  428 + Ctrl<Btn2Down>: HandleMenu(optionsMenu)\n\
  429 + Ctrl<Btn3Down>: HandleMenu(hostMenu,macrosMenu)\n\
  430 + <Btn1Down>: select-start()\n\
  431 + ~Shift<Btn1Motion>: select-extend()\n\
  432 + <Btn2Down>: ignore()\n\
  433 + <Btn2Motion>: ignore()\n\
  434 + <Btn2Up>: insert-selection(PRIMARY)\n\
  435 + <Btn3Down>: start-extend()\n\
  436 + <Btn3Motion>: select-extend()\n\
  437 + ~Shift<BtnUp>: select-end(PRIMARY)
  438 +x3270.keymap.oldclick.3270: #override\n\
  439 + :Ctrl Shift<Btn1Down>: MouseSelect()\n\
  440 + Shift<Btn1Down>: MoveCursor()
  441 +!
  442 +! Start of keyboard-specific mappings.
  443 +!
  444 +! Sun Type 5 keyboard map. Not compatible with earlier Type 3 and Type 4
  445 +! keymaps, but does a better job of mapping intuitive functions to the
  446 +! existing key labels, and has fewer surprises.
  447 +x3270.keymap.sun_k5: \
  448 + Shift<Key>0x1005ff10: PF(23)\n\
  449 + Shift<Key>0x1005ff11: PF(24)\n\
  450 + :<Key>0x1005ff10: PF(11)\n\
  451 + :<Key>0x1005ff11: PF(12)\n\
  452 + ~@Num_Lock<Key>F27: Home()\n\
  453 + ~@Num_Lock<Key>F33: FieldEnd()\n\
  454 + :<Key>F18: insert-selection(PRIMARY)\n\
  455 + Shift<Key>F22: SysReq()\n\
  456 + :<Key>F22: PrintText()\n\
  457 + <Key>KP_Enter: Newline()\n
  458 +! Sun Type 4 keyboard map, backwards-compatible with earlier versions of x3270.
  459 +x3270.keymap.sun_k4: \
  460 + Shift<Key>0x1005ff10: PF(23)\n\
  461 + Shift<Key>0x1005ff11: PF(24)\n\
  462 + :<Key>0x1005ff10: PF(11)\n\
  463 + :<Key>0x1005ff11: PF(12)\n\
  464 + :<Key>KP_1: Key(1)\n\
  465 + :<Key>KP_2: Key(2)\n\
  466 + :<Key>KP_3: Key(3)\n\
  467 + :<Key>KP_4: Key(4)\n\
  468 + :<Key>KP_5: Key(5)\n\
  469 + :<Key>KP_6: Key(6)\n\
  470 + :<Key>KP_7: Key(7)\n\
  471 + :<Key>KP_8: Key(8)\n\
  472 + :<Key>KP_9: Key(9)\n\
  473 + :<Key>KP_0: Key(0)\n\
  474 + :<Key>KP_Decimal: Key(.)\n\
  475 + :<Key>F18: insert-selection(PRIMARY)\n\
  476 + :<Key>F19: SysReq()\n\
  477 + :<Key>F20: FieldMark()\n\
  478 + :<Key>F21: PA(1)\n\
  479 + :<Key>F22: PA(2)\n\
  480 + :<Key>F23: Dup()\n\
  481 + :<Key>F24: Reset()\n\
  482 + :<Key>F25: EraseEOF()\n\
  483 + :<Key>F26: EraseInput()\n\
  484 + :<Key>F27: Clear()\n\
  485 + :<Key>F29: Redraw()\n\
  486 + :<Key>F31: Home()\n\
  487 + :<Key>KP_Enter: Newline()\n\
  488 + :<Key>F35: Delete()\n
  489 +! Sun Type 3 keyboard.
  490 +x3270.keymap.sun_k3: \
  491 + Shift<Key>F21: PF(22)\n\
  492 + Shift<Key>F22: PF(23)\n\
  493 + Shift<Key>F23: PF(24)\n\
  494 + :Meta<Key>F21: PA(1)\n\
  495 + :Meta<Key>F22: PA(2)\n\
  496 + :Meta<Key>F23: Dup()\n\
  497 + :<Key>F19: SysReq()\n\
  498 + :<Key>0x0: FieldMark()\n\
  499 + :<Key>F21: PF(10)\n\
  500 + :<Key>F22: PF(11)\n\
  501 + :<Key>F23: PF(12)\n\
  502 + :<Key>F24: Reset()\n\
  503 + :<Key>F25: EraseEOF()\n\
  504 + :<Key>F26: EraseInput()\n\
  505 + :<Key>F27: Clear()\n\
  506 + :<Key>F31: Home()\n\
  507 + :<Key>F29: Redraw()\n\
  508 + :<Key>KP_Enter: Newline()\n\
  509 + :<Key>F35: Delete()\n
  510 +x3270.keymap.ncd: \
  511 + :<Key>F13: Dup()\n\
  512 + :<Key>Linefeed: Dup()\n\
  513 + :<Key>F14: FieldMark()\n\
  514 + :<Key>Break: FieldMark()\n\
  515 + :<Key>Home: Home()\n\
  516 + :<Key>F17: Home()\n\
  517 + :<Key>End: EraseEOF()\n\
  518 + :<Key>F15: Reset()\n\
  519 + :<Key>Prior: Reset()\n\
  520 + :<Key>F16: Newline()\n\
  521 + :<Key>Next: Newline()\n\
  522 + :<Key>KP_Add: EraseInput()\n\
  523 + :<Key>Num_Lock: PF(13)\n\
  524 + :<Key>KP_Space: PF(13)\n\
  525 + :<Key>KP_Divide: PF(14)\n\
  526 + :<Key>KP_Multiply: PF(15)\n\
  527 + :<Key>KP_7: PF(16)\n\
  528 + :<Key>KP_8: PF(17)\n\
  529 + :<Key>KP_9: PF(18)\n\
  530 + :<Key>KP_4: PF(19)\n\
  531 + :<Key>KP_5: PF(20)\n\
  532 + :<Key>KP_6: PF(21)\n\
  533 + :<Key>KP_1: PF(22)\n\
  534 + :<Key>KP_2: PF(23)\n\
  535 + :<Key>KP_3: PF(24)\n\
  536 + :<Key>KP_Subtract: SysReq()\n\
  537 + :<Key>KP_0: PA(2)\n\
  538 + :<Key>KP_Decimal: PA(1)\n\
  539 + :<Key>KP_Enter: Clear()\n
  540 +x3270.keymap.hp-k1: \
  541 + :<Key>KP_Tab: BackTab()\n\
  542 + :<Key>KP_Enter: Home()\n\
  543 + :<Key>KP_Separator: Delete()\n\
  544 + Shift<Key>Delete: Delete()\n\
  545 + :<Key>Menu: EraseEOF()\n\
  546 + :<Key>KP_Multiply: PF(13)\n\
  547 + :<Key>KP_Divide: PF(14)\n\
  548 + :<Key>KP_Add: PF(15)\n\
  549 + :<Key>KP_7: PF(16)\n\
  550 + :<Key>KP_8: PF(17)\n\
  551 + :<Key>KP_9: PF(18)\n\
  552 + :<Key>KP_4: PF(19)\n\
  553 + :<Key>KP_5: PF(20)\n\
  554 + :<Key>KP_6: PF(21)\n\
  555 + :<Key>KP_1: PF(22)\n\
  556 + :<Key>KP_2: PF(23)\n\
  557 + :<Key>KP_3: PF(24)\n\
  558 + :<Key>KP_0: PA(2)\n\
  559 + :<Key>KP_Decimal: PA(1)\n
  560 +! Keymap for HP-PC101 workstation keyboard, Chris P-E
  561 +x3270.keymap.hp-pc: \
  562 + :<Key>KP_Subtract: Compose()\n\
  563 + :<Key>KP_Enter: Enter()\n\
  564 + :<Key>Return: Newline()\n\
  565 + !<Key>F1: PF(1)\n\
  566 + !<Key>F2: PF(2)\n\
  567 + !<Key>F3: PF(3)\n\
  568 + !<Key>F4: PF(4)\n\
  569 + !<Key>F5: PF(5)\n\
  570 + !<Key>F6: PF(6)\n\
  571 + !<Key>F7: PF(7)\n\
  572 + !<Key>F8: PF(8)\n\
  573 + !<Key>F9: PF(9)\n\
  574 + !<Key>F10: PF(10)\n\
  575 + !<Key>F11: PF(11)\n\
  576 + !<Key>F12: PF(12)\n\
  577 + !Shift<Key>hpSystem: PF(13)\n\
  578 + !Shift<Key>KP_Divide: PF(14)\n\
  579 + !Shift<Key>KP_Multiply: PF(15)\n\
  580 + !Shift<Key>KP_7: PF(16)\n\
  581 + !Shift<Key>KP_8: PF(17)\n\
  582 + !Shift<Key>KP_9: PF(18)\n\
  583 + !Shift<Key>KP_4: PF(19)\n\
  584 + !Shift<Key>KP_5: PF(20)\n\
  585 + !Shift<Key>KP_6: PF(21)\n\
  586 + !Shift<Key>KP_1: PF(22)\n\
  587 + !Shift<Key>KP_2: PF(23)\n\
  588 + !Shift<Key>KP_3: PF(24)\n\
  589 + !<Key>hpSystem: PF(1)\n\
  590 + !<Key>KP_Divide: PF(2)\n\
  591 + !<Key>KP_Multiply: PF(3)\n\
  592 + !<Key>KP_7: PF(4)\n\
  593 + !<Key>KP_8: PF(5)\n\
  594 + !<Key>KP_9: PF(6)\n\
  595 + !<Key>KP_4: PF(7)\n\
  596 + !<Key>KP_5: PF(8)\n\
  597 + !<Key>KP_6: PF(9)\n\
  598 + !<Key>KP_1: PF(10)\n\
  599 + !<Key>KP_2: PF(11)\n\
  600 + !<Key>KP_3: PF(12)\n\
  601 + !<Key>Break: Reset()\n\
  602 + !Shift<Key>Break: Attn()\n\
  603 + !Meta<Key>Break: SysReq()\n\
  604 + !<Key>Prior: Dup()\n\
  605 + !<Key>Next: FieldMark()\n\
  606 + !<Key>Select: EraseEOF()\n\
  607 + !Meta<Key>hpInsertChar: PA(1)\n\
  608 + !Meta<Key>Home: PA(2)\n\
  609 + !Meta<Key>Prior: PA(3)\n\
  610 + !<Key>hpInsertChar: Insert()\n\
  611 + !<Key>hpDeleteChar: Delete()\n\
  612 + !Shift<Key>Menu: PrintWindow()\n\
  613 + !<Key>Menu: PrintText()\n
  614 +! Keymap for IBM X Terminal, Allan L. Bazinet
  615 +x3270.keymap.ibm-xterm: \
  616 + :<Key>Execute: Enter()\n\
  617 + !<Key>Pause: Clear()\n\
  618 + !<Key>BackSpace: BackSpace()\Delete()\n\
  619 + !<Key>End: FieldEnd()\n\
  620 + !Alt<Key>c: Clear()\n\
  621 + !Alt<Key>Print: SysReq()\n\
  622 + !Ctrl<Key>Home: EraseInput()\n\
  623 + !Ctrl<Key>End: EraseEOF()\n\
  624 + !Shift<Key>Tab: BackTab()\n\
  625 + :<Key>KP_Subtract: PA(1)\n\
  626 + :<Key>KP_Add: PA(2)\n\
  627 + :<Key>KP_Enter: Enter()\n\
  628 + :<Key>Prior: PA(1)\n\
  629 + :<Key>Next: PA(2)\n\
  630 + :<Key>Escape: Reset()\n\
  631 + :<Key>Control_L: Reset()\n\
  632 + :<Key>Insert: Insert()\n\
  633 + !Shift<Key>Right: Right2()\n\
  634 + !Shift<Key>Left: Left2()\n
  635 +! Keymap for common 3270 functions on a PC keyboard, from Richard Lennox.
  636 +x3270.keymap.rlx: #override \
  637 + <Key>Prior: PF(7)\n\
  638 + <Key>Next: PF(8)\n\
  639 + <Key>Control_R: Enter()\n\
  640 + <Key>Return: Newline()\n\
  641 + <Key>Pause: Clear()\n\
  642 + Shift<Key>Escape: Attn()\n\
  643 + Shift<Key>Left: PreviousWord()\n\
  644 + Shift<Key>Right: NextWord()\n\
  645 + Ctrl<Key>Left: PreviousWord()\n\
  646 + Ctrl<Key>Right: NextWord()\n\
  647 + Shift<Key>End: EraseEOF()\n\
  648 + <Key>End: FieldEnd()
  649 +! Keymap modifier for OpenWindows (makes button 2 the extend key; defines the
  650 +! Paste and Cut keys; uses CLIPBOARD).
  651 +x3270.keymap.ow: #override \
  652 + ~Shift<Btn1Down>: select-start()\n\
  653 + ~Shift<Btn1Motion>: select-extend()\n\
  654 + <Btn2Down>: start-extend()\n\
  655 + <Btn2Motion>: select-extend()\n\
  656 + <Btn3Down>: ignore()\n\
  657 + <Btn3Motion>: ignore()\n\
  658 + <Btn3Up>: insert-selection(CLIPBOARD,PRIMARY)\n\
  659 + <BtnUp>: select-end(PRIMARY)\n\
  660 + :<Key>F16: set-select(CLIPBOARD)\n\
  661 + Shift<Key>F18: insert-selection(PRIMARY)\n\
  662 + :<Key>F18: insert-selection(CLIPBOARD,PRIMARY)\n\
  663 + :<Key>F20: set-select(CLIPBOARD) Cut()\n
  664 +! APL keymap modifier.
  665 +x3270.keymap.apl: #override \
  666 + !:Alt<Key>bracketleft: Key(apl_leftarrow)\n\
  667 + !:Alt<Key>bracketright: Key(apl_rightarrow)\n\
  668 + :<Key>bracketleft: Key(apl_bracketleft)\n\
  669 + :<Key>bracketright: Key(apl_bracketright)\n\
  670 + !:Alt<Key>1: Key(apl_diaeresis)\n\
  671 + !:Alt<Key>2: Key(apl_overbar)\n\
  672 + !:Alt<Key>3: Key(less)\n\
  673 + !:Alt<Key>4: Key(apl_notgreater)\n\
  674 + !:Alt<Key>5: Key(equal)\n\
  675 + !:Alt<Key>6: Key(apl_notless)\n\
  676 + !:Alt<Key>7: Key(greater)\n\
  677 + !:Alt<Key>8: Key(apl_notequal)\n\
  678 + !:Alt<Key>9: Key(apl_downcaret)\n\
  679 + !:Alt<Key>0: Key(apl_upcaret)\n\
  680 + !:Alt<Key>minus: Key(apl_overbar)\n\
  681 + !:Alt<Key>underscore: Key(underscore)\n\
  682 + !:Alt<Key>=: Key(apl_multiply)\n\
  683 + !:Alt<Key>+: Key(apl_divide)\n\
  684 + !:Alt<Key>asciitilde: Key(apl_tilde)\n\
  685 + !:Alt<Key>backslash: Key(apl_slope)\n\
  686 + !:Alt<Key>bar: Key(apl_stile)\n\
  687 + :Alt<Key>a: Key(apl_alpha)\n\
  688 + :Alt<Key>b: Key(apl_downtack)\n\
  689 + :Alt<Key>c: Key(apl_upshoe)\n\
  690 + :Alt<Key>d: Key(apl_downstile)\n\
  691 + :Alt<Key>e: Key(apl_epsilon)\n\
  692 + :Alt<Key>f: Key(underscore)\n\
  693 + :Alt<Key>g: Key(apl_del)\n\
  694 + :Alt<Key>h: Key(apl_delta)\n\
  695 + :Alt<Key>i: Key(apl_iota)\n\
  696 + :Alt<Key>j: Key(apl_jot)\n\
  697 + :Alt<Key>k: Key(apostrophe)\n\
  698 + :Alt<Key>l: Key(apl_quad)\n\
  699 + :Alt<Key>m: Key(apl_stile)\n\
  700 + :Alt<Key>n: Key(apl_uptack)\n\
  701 + :Alt<Key>o: Key(apl_circle)\n\
  702 + :Alt<Key>p: Key(asterisk)\n\
  703 + :Alt<Key>q: Key(question)\n\
  704 + :Alt<Key>r: Key(apl_rho)\n\
  705 + :Alt<Key>s: Key(apl_upstile)\n\
  706 + :Alt<Key>t: Key(apl_tilde)\n\
  707 + :Alt<Key>u: Key(apl_downarrow)\n\
  708 + :Alt<Key>v: Key(apl_downshoe)\n\
  709 + :Alt<Key>w: Key(apl_omega)\n\
  710 + :Alt<Key>x: Key(apl_rightshoe)\n\
  711 + :Alt<Key>y: Key(apl_uparrow)\n\
  712 + :Alt<Key>z: Key(apl_leftshoe)\n\
  713 + :Alt<Key>A: Key(apl_Aunderbar)\n\
  714 + :Alt<Key>B: Key(apl_Bunderbar)\n\
  715 + :Alt<Key>C: Key(apl_Cunderbar)\n\
  716 + :Alt<Key>D: Key(apl_Dunderbar)\n\
  717 + :Alt<Key>E: Key(apl_Eunderbar)\n\
  718 + :Alt<Key>F: Key(apl_Funderbar)\n\
  719 + :Alt<Key>G: Key(apl_Gunderbar)\n\
  720 + :Alt<Key>H: Key(apl_Hunderbar)\n\
  721 + :Alt<Key>I: Key(apl_Iunderbar)\n\
  722 + :Alt<Key>J: Key(apl_Junderbar)\n\
  723 + :Alt<Key>K: Key(apl_Kunderbar)\n\
  724 + :Alt<Key>L: Key(apl_Lunderbar)\n\
  725 + :Alt<Key>M: Key(apl_Munderbar)\n\
  726 + :Alt<Key>N: Key(apl_Nunderbar)\n\
  727 + :Alt<Key>O: Key(apl_Ounderbar)\n\
  728 + :Alt<Key>P: Key(apl_Punderbar)\n\
  729 + :Alt<Key>Q: Key(apl_Qunderbar)\n\
  730 + :Alt<Key>R: Key(apl_Runderbar)\n\
  731 + :Alt<Key>S: Key(apl_Sunderbar)\n\
  732 + :Alt<Key>T: Key(apl_Tunderbar)\n\
  733 + :Alt<Key>U: Key(apl_Uunderbar)\n\
  734 + :Alt<Key>V: Key(apl_Vunderbar)\n\
  735 + :Alt<Key>W: Key(apl_Wunderbar)\n\
  736 + :Alt<Key>X: Key(apl_Xunderbar)\n\
  737 + :Alt<Key>Y: Key(apl_Yunderbar)\n\
  738 + :Alt<Key>Z: Key(apl_Zunderbar)\n
  739 +! Temporary keymap for entering Hebrew characters
  740 +x3270.keymap.hebrew: \
  741 + ~Ctrl ~Alt ~Meta <Key>t: Key(hebrew_aleph)\n\
  742 + ~Ctrl ~Alt ~Meta <Key>c: Key(hebrew_bet)\n\
  743 + ~Ctrl ~Alt ~Meta <Key>d: Key(hebrew_gimel)\n\
  744 + ~Ctrl ~Alt ~Meta <Key>s: Key(hebrew_dalet)\n\
  745 + ~Ctrl ~Alt ~Meta <Key>v: Key(hebrew_he)\n\
  746 + ~Ctrl ~Alt ~Meta <Key>u: Key(hebrew_waw)\n\
  747 + ~Ctrl ~Alt ~Meta <Key>z: Key(hebrew_zain)\n\
  748 + ~Ctrl ~Alt ~Meta <Key>j: Key(hebrew_chet)\n\
  749 + ~Ctrl ~Alt ~Meta <Key>y: Key(hebrew_tet)\n\
  750 + ~Ctrl ~Alt ~Meta <Key>h: Key(hebrew_yod)\n\
  751 + ~Ctrl ~Alt ~Meta <Key>l: Key(hebrew_finalkaph)\n\
  752 + ~Ctrl ~Alt ~Meta <Key>f: Key(hebrew_kaph)\n\
  753 + ~Ctrl ~Alt ~Meta <Key>k: Key(hebrew_lamed)\n\
  754 + ~Ctrl ~Alt ~Meta <Key>o: Key(hebrew_finalmem)\n\
  755 + ~Ctrl ~Alt ~Meta <Key>n: Key(hebrew_mem)\n\
  756 + ~Ctrl ~Alt ~Meta <Key>i: Key(hebrew_finalnun)\n\
  757 + ~Ctrl ~Alt ~Meta <Key>b: Key(hebrew_nun)\n\
  758 + ~Ctrl ~Alt ~Meta <Key>x: Key(hebrew_samech)\n\
  759 + ~Ctrl ~Alt ~Meta <Key>g: Key(hebrew_ayin)\n\
  760 + : ~Ctrl ~Alt ~Meta <Key>semicolon: Key(hebrew_finalpe)\n\
  761 + ~Ctrl ~Alt ~Meta <Key>p: Key(hebrew_pe)\n\
  762 + : ~Ctrl ~Alt ~Meta <Key>comma: Key(hebrew_finalzade)\n\
  763 + ~Ctrl ~Alt ~Meta <Key>m: Key(hebrew_zade)\n\
  764 + ~Ctrl ~Alt ~Meta <Key>e: Key(hebrew_qoph)\n\
  765 + ~Ctrl ~Alt ~Meta <Key>r: Key(hebrew_resh)\n\
  766 + ~Ctrl ~Alt ~Meta <Key>a: Key(hebrew_shin)\n\
  767 + : ~Ctrl ~Alt ~Meta <Key>period: Key(hebrew_taw)\n
  768 +!
  769 +! Keymap for the "not" key, assumed to be above the "6" key on U.S.
  770 +! keyboards. This used to be part of the 3270 base keymap, but does not
  771 +! work properly on non-U.S. keyboards.
  772 +x3270.keymap.not.3270: \
  773 + :<Key>asciicircum: Key(notsign)
  774 +! Keymap modifier for keyboards which lack a Meta key, such as the RS/6000.
  775 +x3270.keymap.alt: \
  776 + :Alt<Key>F1: PF(13)\n\
  777 + :Alt<Key>F2: PF(14)\n\
  778 + :Alt<Key>F3: PF(15)\n\
  779 + :Alt<Key>F4: PF(16)\n\
  780 + :Alt<Key>F5: PF(17)\n\
  781 + :Alt<Key>F6: PF(18)\n\
  782 + :Alt<Key>F7: PF(19)\n\
  783 + :Alt<Key>F8: PF(20)\n\
  784 + :Alt<Key>F9: PF(21)\n\
  785 + :Alt<Key>F10: PF(22)\n\
  786 + :Alt<Key>F11: PF(23)\n\
  787 + :Alt<Key>F12: PF(24)\n
  788 +x3270.keymap.alt.3270: \
  789 + :Alt<Key>Left: Left2()\n\
  790 + :Alt<Key>Right: Right2()\n\
  791 + :Alt<Key>1: PA(1)\n\
  792 + :Alt<Key>2: PA(2)\n\
  793 + :Alt<Key>3: PA(3)\n\
  794 + Alt<Key>a: Attn()\n\
  795 + Alt<Key>b: PrintWindow()\n\
  796 + Alt<Key>c: Clear()\n\
  797 + Alt<Key>d: Delete()\n\
  798 + Alt<Key>e: EraseEOF()\n\
  799 + Alt<Key>h: Home()\n\
  800 + Alt<Key>i: Insert()\n\
  801 + Alt<Key>l: Redraw()\n\
  802 + Alt<Key>p: PrintText()\n\
  803 + Alt<Key>q: Quit()\n\
  804 + Alt<Key>r: Reset()\n\
  805 + Alt<Key>u: Unselect()\n
  806 +! Helpful modifier to disply the translation table.
  807 +x3270.keymap.t: \
  808 + Meta<Key>t: XtDisplayTranslations()\n
  809 +! International keymap modifiers.
  810 +x3270.keymap.finnish7: \
  811 + :<Key>bracketleft: Key("adiaeresis")\n\
  812 + :<Key>bracketright: Key("aring")\n\
  813 + :<Key>backslash: Key("odiaeresis")\n\
  814 + :<Key>braceleft: Key("Adiaeresis")\n\
  815 + :<Key>braceright: Key("Aring")\n\
  816 + :<Key>bar: Key("Odiaeresis")\n
  817 +x3270.keymap.norwegian7: \
  818 + :<Key>bracketleft: Key("ae")\n\
  819 + :<Key>backslash: Key("oslash")\n\
  820 + :<Key>bracketright: Key("aring")\n\
  821 + :<Key>braceleft: Key("AE")\n\
  822 + :<Key>bar: Key("Ooblique")\n\
  823 + :<Key>braceright: Key("Aring")\n\
  824 + :!Meta<Key>u: Key("udiaeresis")\n\
  825 + :<Key>dollar: Key("currency")\n\
  826 + :<Key>at: Key("backslash")\n
  827 +! "Old" Norwegian keymap, compatible with older versions of x3270.
  828 +x3270.keymap.oldnorwegian7: \
  829 + :<Key>bracketleft: Key("AE")\n\
  830 + :<Key>bracketright: Key("Aring")\n\
  831 + :<Key>backslash: Key("Ooblique")\n\
  832 + :<Key>braceleft: Key("ae")\n\
  833 + :<Key>braceright: Key("aring")\n\
  834 + :<Key>bar: Key("oslash")\n
  835 +! German keymap courtesy of Karlheinz Kandler
  836 +x3270.keymap.german7: \
  837 + :<Key>bracketleft: Key("adiaeresis")\n\
  838 + :<Key>bracketright: Key("udiaeresis")\n\
  839 + :<Key>backslash: Key("odiaeresis")\n\
  840 + :<Key>braceleft: Key("Adiaeresis")\n\
  841 + :<Key>braceright: Key("Udiaeresis")\n\
  842 + :<Key>bar: Key("Odiaeresis")\n\
  843 + :<Key>asciicircum: Key("^")\n\
  844 + :<Key>asciitilde: Key("ssharp")\n\
  845 + :<Key>at: Key("section")\n
  846 +! Keymap modifier for RS/6000s with French AZERTY keyboards, which allows
  847 +! the diaeresis and circumflex keys to work intuitively (press diaereses,
  848 +! press "a", get "adiaeresis, etc.)
  849 +x3270.keymap.fr6k: \
  850 + Shift<Key>dead_diaeresis: Compose() Key(quotedbl)\n\
  851 + :<Key>dead_circumflex: Compose() Key(asciicircum)\n
  852 +! Icelandic keymap, courtesy of Rikhardur Egilsson
  853 +x3270.keymap.icelandic: \
  854 + :<Key>dead_acute: Compose() Key(apostrophe)\n
  855 +!
  856 +!=============================================================================
  857 +! Section 2: Labels and Messages
  858 +!
  859 +! These are resources that are likely to be modified for translation
  860 +! into another language.
  861 +!=============================================================================
  862 +!
  863 +x3270.errorPopup.title: x3270 Error
  864 +x3270.errorPopup*cancelButton.label: Exit
  865 +x3270.printerErrorPopup.title: x3270 Printer Error
  866 +x3270.childErrorPopup.title: x3270 Child Process Error
  867 +#ifdef X3270_MENUS
  868 +x3270.infoPopup.title: x3270 Information
  869 +x3270.printerInfoPopup.title: x3270 Printer Information
  870 +x3270.childInfoPopup.title: x3270 Child Process Information
  871 +x3270.connectPopup.title: x3270 Connect
  872 +x3270.connectPopup.dialog.label: Enter Hostname
  873 +x3270.fontPopup.title: x3270 Font
  874 +x3270.fontPopup.dialog.label: Enter Font Name
  875 +x3270.keymapPopup.title: x3270 Keymap
  876 +x3270.keymapPopup.dialog.label: Enter Keymap Name
  877 +x3270.oversizePopup.title: x3270 Oversize
  878 +x3270.oversizePopup.dialog.label: Enter Dimensions (cols x rows)
  879 +x3270.oversizePopup*confirmButton.label: Resize
  880 +#endif
  881 +#ifdef X3270_KEYPAD
  882 +x3270.keypadPopup.title: x3270 Keypad
  883 +#endif
  884 +#ifdef X3270_MENUS
  885 +x3270.printTextPopup.title: x3270 Screen Print
  886 +x3270.printTextPopup.dialog.label: Enter Print Command
  887 +x3270.printTextPopup*confirmButton.label: Print
  888 +x3270.saveTextPopup.title: x3270 Screen Save
  889 +x3270.saveTextPopup.dialog.label: Enter File Name
  890 +x3270.saveTextPopup*confirmButton.label: Save as Text
  891 +x3270.saveTextPopup*confirm2Button.label: Save as HTML
  892 +x3270.printWindowPopup.title: x3270 Window Print
  893 +x3270.printWindowPopup.dialog.label: Enter Print Command
  894 +x3270.printWindowPopup*confirmButton.label: Print
  895 +#endif
  896 +#ifdef X3270_TRACE
  897 +x3270.tracePopup.title: x3270 Tracing
  898 +x3270.tracePopup.dialog.label: Enter Trace File Name
  899 +x3270.tracePopup*confirmButton.label: Trace
  900 +x3270.tracePopup*confirm2Button.label: No File
  901 +x3270.screentracePopup.title: x3270 Screen Image Tracing
  902 +x3270.screentracePopup.dialog.label: Enter File Name
  903 +x3270.screentracePopup*confirmButton.label: Continuously
  904 +x3270.screentracePopup*confirm2Button.label: Once
  905 +#endif
  906 +#ifdef X3270_MENUS
  907 +x3270.executeActionPopup.title: x3270 Execute Action
  908 +x3270.executeActionPopup.dialog.label: Enter Action and Parameters
  909 +x3270.executeActionPopup*confirmButton.label: Execute
  910 +x3270.saveOptionsPopup.title: x3270 Save Changed Options
  911 +x3270.saveOptionsPopup.dialog.label: Enter Profile File Name
  912 +x3270.saveOptionsPopup*confirmButton.label: Save
  913 +x3270.aboutCopyrightPopup.title: x3270 Copyright
  914 +x3270.aboutConfigPopup.title: x3270 Configuration
  915 +x3270.aboutStatusPopup.title: x3270 Connection Status
  916 +x3270.connectPopup*confirmButton.label: Connect
  917 +x3270.fontPopup*confirmButton.label: Select Font
  918 +x3270.keymapPopup*confirmButton.label: Select Keymap
  919 +#endif
  920 +#ifdef X3270_FT
  921 +x3270.ftPopup.title: x3270 File Transfer
  922 +x3270.ftProgressPopup.title: x3270 File Transfer
  923 +x3270.ftOverwritePopup.title: x3270 File Transfer
  924 +#endif
  925 +#ifdef X3270_SCRIPT
  926 +x3270.idlePopup.title: x3270 Idle Command
  927 +#endif
  928 +x3270.kmPopup.title: x3270 Keymap
  929 +x3270*confirmButton.label: OK
  930 +x3270.printerErrorPopup*cancelButton.label: Abort Printer
  931 +x3270.printerInfoPopup*cancelButton.label: Abort Printer
  932 +x3270.childErrorPopup*cancelButton.label: Discard Output
  933 +x3270.childInfoPopup*cancelButton.label: Discard Output
  934 +x3270*cancelButton.label: Cancel
  935 +#ifdef X3270_MENUS
  936 +x3270*aboutOption.label: About x3270...
  937 +x3270*aboutCopyright.label: Copyright
  938 +x3270*aboutConfig.label: Configuration
  939 +x3270*aboutStatus.label: Connection Status
  940 +#ifdef X3270_FT
  941 +x3270*ftOption.label: File Transfer...
  942 +#endif
  943 +#ifdef X3270_PRINTER
  944 +x3270*printerOption.label: Printer Session
  945 +x3270*assocButton.label: Start, associate with current LU
  946 +x3270*luButton.label: Start, specific LU...
  947 +x3270*printerOffButton.label: Stop Printer
  948 +#endif
  949 +x3270*abortScriptOption.label: Abort Scripts/Macros/Strings
  950 +x3270*disconnectOption.label: Disconnect
  951 +x3270*exitOption.label: Exit x3270
  952 +x3270*exitReallyOption.label: Disconnect and Exit
  953 +x3270*printTextOption.label: Print Screen Text
  954 +x3270*saveTextOption.label: Save Screen Text in File
  955 +x3270*printWindowOption.label: Print Window Bitmap
  956 +x3270*executeActionOption.label: Execute an Action
  957 +x3270*fileMenuButton.label: File
  958 +x3270*fileMenu.label: File
  959 +#endif
  960 +#ifdef X3270_FT
  961 +x3270.ftPopup*justify: left
  962 +x3270.ftPopup*send.label: Send to host
  963 +x3270.ftPopup*receive.label: Receive from host
  964 +x3270.ftPopup*ascii.label: Transfer ASCII file
  965 +x3270.ftPopup*cr.label: Add/remove CR at end of line
  966 +x3270.ftPopup*binary.label: Transfer binary file
  967 +x3270.ftPopup*local.label: Local File Name
  968 +x3270.ftPopup*host.label: Host File Name
  969 +x3270.ftPopup*append.label: Append to file
  970 +x3270.ftPopup*remap.label: Remap ASCII Characters
  971 +x3270.ftPopup*vm.label: Host is VM/CMS
  972 +x3270.ftPopup*tso.label: Host is TSO
  973 +x3270.ftPopup*confirmButton.label: Transfer File
  974 +x3270.ftPopup*file.label: Record Format
  975 +x3270.ftPopup*recfmDefault.label: Default
  976 +x3270.ftPopup*fixed.label: Fixed
  977 +x3270.ftPopup*variable.label: Variable
  978 +x3270.ftPopup*undefined.label: Undefined
  979 +x3270.ftPopup*units.label: Space Allocation Units
  980 +x3270.ftPopup*spaceDefault.label: Default
  981 +x3270.ftPopup*tracks.label: Tracks
  982 +x3270.ftPopup*cylinders.label: Cylinders
  983 +x3270.ftPopup*avblock.label: Avblock
  984 +x3270.ftPopup*lrecl.label: LRECL
  985 +x3270.ftPopup*blksize.label: BLKSIZE
  986 +x3270.ftPopup*primspace.label: Primary Space
  987 +x3270.ftPopup*secspace.label: Secondary Space
  988 +x3270.ftPopup*buffersize.label: DFT Buffer Size
  989 +x3270.ftProgressPopup*fromLabel.label: Source:
  990 +x3270.ftProgressPopup*fromLabel.justify: right
  991 +x3270.ftProgressPopup*toLabel.label: Destination:
  992 +x3270.ftProgressPopup*toLabel.justify: right
  993 +x3270.ftProgressPopup*filename.justify: left
  994 +x3270.ftOverwritePopup*overwriteName.label: Overwrite existing file %s?
  995 +x3270.ftProgressPopup*waiting.label: Waiting for host acknowledgment...
  996 +x3270.ftProgressPopup*status.label: %lu bytes transferred
  997 +x3270.ftProgressPopup*aborting.label: Aborting transfer...
  998 +#endif
  999 +#ifdef X3270_SCRIPT
  1000 +x3270.idlePopup*justify: left
  1001 +x3270.idlePopup*command.label: Command(s)
  1002 +x3270.idlePopup*timeout.label: Timeout Value
  1003 +x3270.idlePopup*enable.label: Enable for this session
  1004 +x3270.idlePopup*enablePerm.label: Enable whenever connected
  1005 +x3270.idlePopup*disable.label: Disable
  1006 +x3270.idlePopup*hours.label: Hours
  1007 +x3270.idlePopup*minutes.label: Minutes
  1008 +x3270.idlePopup*seconds.label: Seconds
  1009 +x3270.idlePopup*fuzz.label: Vary time 0..10%
  1010 +#endif
  1011 +#ifdef X3270_PRINTER
  1012 +x3270.printerLuPopup.title: x3270 Printer Session
  1013 +x3270.printerLuPopup.dialog.label: Enter LU Name
  1014 +x3270.printerLuPopup*confirmButton.label: Start Session
  1015 +#endif
  1016 +#ifdef X3270_MENUS
  1017 +x3270*optionsMenuButton.label: Options
  1018 +x3270*optionsMenu.label: Options
  1019 +x3270*connectMenuButton.label: Connect
  1020 +x3270*macrosMenuButton.label: Macros
  1021 +x3270*macrosMenu.label: Macros
  1022 +x3270*hostMenu.label: Connect
  1023 +x3270*helpButton.label: Help
  1024 +x3270*otherHostOption.label: Other...
  1025 +x3270*togglesOption.label: Toggles
  1026 +x3270*fontsOption.label: Font
  1027 +x3270*modelsOption.label: Screen Size
  1028 +x3270*colorsOption.label: Color Scheme
  1029 +x3270*charsetOption.label: Character Set
  1030 +x3270*keymapOption.label: Change Keymap...
  1031 +x3270*idleCommandOption.label: Configure Idle Command
  1032 +x3270*keypadOption.label: Keypad
  1033 +x3270*monocaseOption.label: Monocase
  1034 +x3270*cursorBlinkOption.label: Blinking Cursor
  1035 +x3270*showTimingOption.label: Show Timing
  1036 +x3270*cursorPosOption.label: Track Cursor
  1037 +x3270*dsTraceOption.label: Trace Data Stream
  1038 +x3270*eventTraceOption.label: Trace Keyboard/Mouse Events
  1039 +x3270*screenTraceOption.label: Save Screen(s) in File
  1040 +x3270*scrollBarOption.label: Scrollbar
  1041 +x3270*lineWrapOption.label: Wraparound
  1042 +x3270*marginedPasteOption.label: Paste with Left Margin
  1043 +x3270*rectangleSelectOption.label: Select by Rectangles
  1044 +x3270*blankFillOption.label: Blank Fill
  1045 +x3270*crosshairOption.label: Crosshair Cursor
  1046 +x3270*visibleControlOption.label: Visible Control Chars
  1047 +x3270*underlineCursorOption.label: Underline Cursor
  1048 +x3270*blockCursorOption.label: Block Cursor
  1049 +x3270*otherFontOption.label: Other...
  1050 +x3270*lineModeOption.label: Line Mode
  1051 +x3270*characterModeOption.label: Character Mode
  1052 +x3270*extendedDsOption.label: Extended 3270 Data Stream
  1053 +x3270*m3278Option.label: Monochrome (3278) Emulation
  1054 +x3270*m3279Option.label: Color (3279) Emulation
  1055 +x3270*model2Option.label: Model 2 (80x24)
  1056 +x3270*model3Option.label: Model 3 (80x32)
  1057 +x3270*model4Option.label: Model 4 (80x43)
  1058 +x3270*model5Option.label: Model 5 (132x27)
  1059 +x3270*oversizeOption.label: Oversize...
  1060 +x3270*saveOption.label: Save Changed Options in File
  1061 +#endif
  1062 +!
  1063 +! Messages
  1064 +#ifdef X3270_MENUS
  1065 +x3270.message.processId: Process ID:
  1066 +x3270.message.windowId: Main window ID:
  1067 +x3270.message.model: Model
  1068 +x3270.message.rows: rows
  1069 +x3270.message.columns: columns
  1070 +x3270.message.mono: monochrome
  1071 +x3270.message.fullColor: color
  1072 +x3270.message.pseudoColor: pseudo-color
  1073 +x3270.message.extendedDs: extended data stream
  1074 +x3270.message.standardDs: standard data stream
  1075 +x3270.message.terminalName: Terminal name:
  1076 +x3270.message.luName: LU name:
  1077 +x3270.message.emulatorFont: Emulator font:
  1078 +x3270.message.emulatorFontDbcs: DBCS emulator font:
  1079 +x3270.message.xFont: standard X11 font
  1080 +x3270.message.cgFont: special 3270 CG font
  1081 +x3270.message.characterSet: Host EBCDIC character set:
  1082 +x3270.message.characterSetDbcs: Host EBCDIC DBCS character set:
  1083 +x3270.message.defaultCharacterSet: Default (us) EBCDIC character set
  1084 +x3270.message.displayCharacterSet: Display character set:
  1085 +x3270.message.displayCharacterSetDbcs: DBCS display character set:
  1086 +x3270.message.localeCodeset: Locale codeset:
  1087 +x3270.message.require: require
  1088 +x3270.message.have: have
  1089 +x3270.message.keyboardMap: Keyboard map:
  1090 +x3270.message.defaultKeyboardMap: Default keyboard map
  1091 +x3270.message.composeMap: Compose-key map:
  1092 +x3270.message.noComposeMap: No compose-key map
  1093 +x3270.message.activeIcon: Active icon
  1094 +x3270.message.iconFont: Icon font:
  1095 +x3270.message.iconLabelFont: Icon label font:
  1096 +x3270.message.staticIcon: Static bitmap icon
  1097 +x3270.message.connectedTo: Connected to:
  1098 +x3270.message.port: Port:
  1099 +x3270.message.secure: via TLS/SSL
  1100 +x3270.message.proxyType: Proxy type:
  1101 +x3270.message.server: Server:
  1102 +x3270.message.charMode: NVT character mode
  1103 +x3270.message.lineMode: NVT line mode
  1104 +x3270.message.dsMode: 3270 mode
  1105 +x3270.message.sscpMode: SSCP-LU mode
  1106 +x3270.message.tn3270eOpts: TN3270E options:
  1107 +x3270.message.tn3270eNoOpts: No TN3270E options
  1108 +x3270.message.connectionPending: Connection pending to:
  1109 +x3270.message.notConnected: Not connected
  1110 +x3270.message.specialCharacters: Special characters:
  1111 +x3270.message.hour: hour
  1112 +x3270.message.hours: hours
  1113 +x3270.message.minute: minute
  1114 +x3270.message.minutes: minutes
  1115 +x3270.message.second: second
  1116 +x3270.message.seconds: seconds
  1117 +x3270.message.sent: Sent
  1118 +x3270.message.Received: Received
  1119 +x3270.message.received: received
  1120 +x3270.message.byte: byte
  1121 +x3270.message.bytes: bytes
  1122 +x3270.message.record: record
  1123 +x3270.message.records: records
  1124 +x3270.message.statusDbcs: DBCS
  1125 +x3270.message.statusNotConnected: Not Connected
  1126 +x3270.message.statusTwait: Wait
  1127 +x3270.message.statusSyswait: System
  1128 +x3270.message.statusProtected: Protected
  1129 +x3270.message.statusNumeric: Numeric
  1130 +x3270.message.statusOverflow: Overflow
  1131 +x3270.message.statusInhibit: Inhibit
  1132 +x3270.message.statusScrolled: Scrolled
  1133 +x3270.message.statusMinus: No Function
  1134 +#endif
  1135 +x3270.message.statusConnecting: Connecting
  1136 +#endif
  1137 +#ifdef X3270_FT
  1138 +x3270.message.ftComplete: Transfer complete, %i bytes transferred\n\
  1139 +%.2lg Kbytes/sec in %s mode
  1140 +x3270.message.ftUnable: Cannot begin transfer
  1141 +x3270.message.ftUserCancel: Transfer cancelled by user
  1142 +x3270.message.ftHostCancel: Transfer cancelled by host
  1143 +x3270.message.ftCutUnknownFrame: Unknown frame type from host
  1144 +x3270.message.ftCutUnknownControl: Unknown FT control code from host
  1145 +x3270.message.ftCutRetransmit: Transmission error
  1146 +x3270.message.ftCutConversionError: Data conversion error
  1147 +x3270.message.ftCutOversize: Illegal frame length
  1148 +x3270.message.ftDisconnected: Host disconnected, transfer cancelled
  1149 +x3270.message.ftNot3270: Not in 3270 mode, transfer cancelled
  1150 +x3270.message.ftDftUnknownOpen: Uknown DFT Open type from host
  1151 +#endif
  1152 +x3270.message.inputMethod: X11 Input Method (XIM):
  1153 +x3270.message.ximState: state:
  1154 +x3270.message.ximDisabled: failed
  1155 +x3270.message.ximNotFound: not found
  1156 +x3270.message.ximActive: active
  1157 +x3270.message.ximLocale: locale:
  1158 +x3270.message.ximEncoding: encoding:
  1159 +#ifndef STANDALONE
  1160 +x3270.message.kmEvent: Event
  1161 +x3270.message.kmKeymapLine: Keymap:Line
  1162 +x3270.message.kmActions: Actions
  1163 +x3270.message.kmOverridden: \ -- overridden --
  1164 +x3270.message.kmKeymap: Keymap
  1165 +x3270.message.kmTemporaryKeymap: Temporary keymap
  1166 +
  1167 +x3270.message.kmFile: from file
  1168 +x3270.message.kmResource: from resource
  1169 +x3270.message.kmFromServer: \ (expanded from '@server')
  1170 +!
  1171 +!=============================================================================
  1172 +! Section 3: Base-Level Resources
  1173 +!
  1174 +! Resources required for the basic operation of x3270, not for the
  1175 +! faint-hearted to modify.
  1176 +!=============================================================================
  1177 +!
  1178 +! App-defaults file version
  1179 +x3270.adVersion: 3.3.4
  1180 +!
  1181 +! Fonts
  1182 +#ifdef X3270_APL
  1183 +x3270.aplFont: 3270
  1184 +#endif
  1185 +x3270.debugFont: 3270d
  1186 +x3270.iconFont: nil2
  1187 +x3270.iconLabelFont: 8x13
  1188 +#ifdef X3270_KEYPAD
  1189 +x3270*keyPad*large*font: fixed
  1190 +x3270*keyPad*small*font: -*-fixed-medium-r-semicondensed-*-12-*-*
  1191 +#endif
  1192 +x3270*value*font: fixed
  1193 +x3270*dataLabel.font: -*-terminal-medium-r-normal--14-*-iso8859-1
  1194 +!x3270*smallLabel.font: 5x7
  1195 +x3270*smallLabel.font: 6x13
  1196 +x3270*filename*font: fixed
  1197 +x3270*kmPopup*text*font: fixed
  1198 +x3270*font: -*-helvetica-bold-r-normal--12-*-iso8859-1
  1199 +!
  1200 +! Menu configuration
  1201 +#ifdef X3270_MENUS
  1202 +x3270*menuBarContainer.borderWidth: 2
  1203 +#endif
  1204 +#ifdef COLOR
  1205 +#ifdef X3270_KEYPAD
  1206 +x3270.keypadBackground: grey
  1207 +#endif
  1208 +#ifdef X3270_MENUS
  1209 +x3270*menuBarContainer.background: grey
  1210 +x3270*menuBarContainer.borderColor: grey40
  1211 +x3270*fileMenuButton*background: grey
  1212 +x3270*optionsMenuButton*background: grey
  1213 +x3270*connectMenuButton*background: grey
  1214 +x3270*macrosMenuButton*background: grey
  1215 +x3270*helpButton*background: grey
  1216 +x3270*keypadButton*background: grey
  1217 +x3270*lockedIcon*background: grey
  1218 +x3270*lockedIcon*foreground: yellow4
  1219 +x3270*lockedIcon*borderColor: grey
  1220 +x3270*unlockedIcon*background: grey
  1221 +x3270*unlockedIcon*borderColor: grey
  1222 +x3270*fileMenuButton*borderColor: grey
  1223 +x3270*optionsMenuButton*borderColor: grey
  1224 +x3270*connectMenuButton*borderColor: grey
  1225 +x3270*macrosMenuButton*borderColor: grey
  1226 +x3270*helpButton*borderColor: grey
  1227 +#endif
  1228 +#else
  1229 +#ifdef X3270_MENUS
  1230 +x3270*fileMenuButton*borderColor: XtDefaultBackground
  1231 +x3270*optionsMenuButton*borderColor: XtDefaultBackground
  1232 +x3270*connectMenuButton*borderColor: XtDefaultBackground
  1233 +x3270*macrosMenuButton*borderColor: XtDefaultBackground
  1234 +x3270*helpButton*borderColor: XtDefaultBackground
  1235 +#endif
  1236 +#endif
  1237 +#ifdef X3270_MENUS
  1238 +x3270*fileMenuButton*highlightThickness: 1
  1239 +x3270*optionsMenuButton*highlightThickness: 1
  1240 +x3270*connectMenuButton*highlightThickness: 1
  1241 +x3270*macrosMenuButton*highlightThickness: 1
  1242 +x3270*helpButton*highlightThickness: 1
  1243 +x3270*keypadButton*highlightThickness: 1
  1244 +#ifdef COLOR
  1245 +x3270*fileMenu*background: grey
  1246 +x3270*exitMenu*background: grey
  1247 +x3270*optionsMenu*background: grey
  1248 +x3270*hostMenu*background: grey
  1249 +x3270*macrosMenu*background: grey
  1250 +x3270*togglesMenu*background: grey
  1251 +x3270*fontsMenu*background: grey
  1252 +x3270*modelsMenu*background: grey
  1253 +x3270*colorsMenu*background: grey
  1254 +x3270*charsetMenu*background: grey
  1255 +x3270*printerMenu*background: grey
  1256 +#endif
  1257 +x3270*fileMenu.borderWidth: 2
  1258 +x3270*exitMenu.borderWidth: 2
  1259 +x3270*optionsMenu.borderWidth: 2
  1260 +x3270*hostMenu.borderWidth: 2
  1261 +x3270*macrosMenu.borderWidth: 2
  1262 +x3270*togglesMenu.borderWidth: 2
  1263 +x3270*fontsMenu.borderWidth: 2
  1264 +x3270*modelsMenu.borderWidth: 2
  1265 +x3270*colorsMenu.borderWidth: 2
  1266 +x3270*charsetMenu.borderWidth: 2
  1267 +#ifdef COLOR
  1268 +x3270*fileMenu.borderColor: grey40
  1269 +x3270*exitMenu.borderColor: grey40
  1270 +x3270*optionsMenu.borderColor: grey40
  1271 +x3270*hostMenu.borderColor: grey40
  1272 +x3270*macrosMenu.borderColor: grey40
  1273 +x3270*togglesMenu.borderColor: grey40
  1274 +x3270*fontsMenu.borderColor: grey40
  1275 +x3270*modelsMenu.borderColor: grey40
  1276 +x3270*colorsMenu.borderColor: grey40
  1277 +x3270*charsetMenu.borderColor: grey40
  1278 +#endif
  1279 +x3270*fileMenu*leftMargin: 20
  1280 +x3270*fileMenu*rightMargin: 20
  1281 +x3270*optionsMenu*rightMargin: 20
  1282 +x3270*togglesMenu*leftMargin: 20
  1283 +x3270*fontsMenu*leftMargin: 20
  1284 +x3270*fontsMenu*rightMargin: 20
  1285 +x3270*modelsMenu*leftMargin: 20
  1286 +x3270*colorsMenu*leftMargin: 20
  1287 +x3270*colorsMenu*rightMargin: 20
  1288 +x3270*charsetMenu*leftMargin: 20
  1289 +x3270*charsetMenu*rightMargin: 20
  1290 +x3270*hostMenu*rightMargin: 20
  1291 +x3270*macrosMenu*rightMargin: 20
  1292 +#endif
  1293 +!
  1294 +! Confirm and cancel buttons
  1295 +! borderWidth and borderColor are never specified anywhere else, so these
  1296 +! always apply
  1297 +x3270*confirmButton.borderWidth: 2
  1298 +x3270*confirm2Button*borderWidth: 2
  1299 +x3270*cancelButton*borderWidth: 2
  1300 +#ifdef COLOR
  1301 +x3270**confirmButton.borderColor: grey40
  1302 +x3270**confirmButton.borderColor: grey40
  1303 +x3270**confirm2Button.borderColor: grey40
  1304 +x3270**cancelButton.borderColor: grey40
  1305 +#endif
  1306 +! foreground and background are often overridden by other resources, so they
  1307 +! must be specified explicitly for each instance
  1308 +#ifdef COLOR
  1309 +x3270*dialog*confirmButton.foreground: black
  1310 +x3270*dialog*confirmButton.background: grey80
  1311 +x3270*dialog*confirm2Button.background: grey80
  1312 +x3270*dialog*cancelButton.foreground: firebrick
  1313 +x3270*dialog*cancelButton.background: grey80
  1314 +#endif
  1315 +!
  1316 +! Values
  1317 +! borderWidth and borderColor are never specified anywhere else, so these
  1318 +! always apply
  1319 +#ifdef COLOR
  1320 +x3270*value.borderWidth: 2
  1321 +x3270*value.borderColor: grey40
  1322 +#endif
  1323 +! background is overridden by dialog*background, so it must be specified
  1324 +! explicitly
  1325 +#ifdef COLOR
  1326 +x3270*dialog*value*background: lavender
  1327 +#endif
  1328 +!
  1329 +! Overall defaults for dialog boxes
  1330 +#ifdef COLOR
  1331 +x3270*dialog*background: grey
  1332 +x3270*dialog*foreground: black
  1333 +#endif
  1334 +!
  1335 +! Fixed popup sizes
  1336 +x3270.errorPopup.width: 500
  1337 +x3270.printerErrorPopup.width: 500
  1338 +x3270.childErrorPopup.width: 500
  1339 +x3270.infoPopup.width: 500
  1340 +x3270.printerInfoPopup.width: 500
  1341 +x3270.childInfoPopup.width: 500
  1342 +x3270.printerLuPopup.width: 300
  1343 +x3270.connectPopup.width: 300
  1344 +x3270.fontPopup.width: 300
  1345 +x3270.keymapPopup.width: 300
  1346 +x3270.oversizePopup.width: 300
  1347 +x3270.printTextPopup.width: 300
  1348 +x3270.saveTextPopup.width: 300
  1349 +x3270.printWindowPopup.width: 300
  1350 +x3270.tracePopup.width: 300
  1351 +x3270.screentracePopup.width: 300
  1352 +x3270.executeActionPopup.width: 300
  1353 +x3270.saveOptionsPopup.width: 300
  1354 +!
  1355 +! Nondefault definitions for complex pop-ups
  1356 +#ifdef COLOR
  1357 +x3270.aboutCopyrightPopup*icon.foreground: darkslateblue
  1358 +x3270.aboutConfigPopup*icon.foreground: darkslateblue
  1359 +x3270.aboutStatusPopup*icon.foreground: darkslateblue
  1360 +x3270.errorPopup*label.foreground: firebrick
  1361 +x3270.printerErrorPopup*label.foreground: firebrick
  1362 +x3270.childErrorPopup*label.foreground: firebrick
  1363 +#ifdef X3270_FT
  1364 +x3270.ftProgressPopup*filename.borderWidth: 2
  1365 +x3270.ftProgressPopup*filename.borderColor: grey40
  1366 +x3270.ftProgressPopup*filename.background: lavender
  1367 +#endif
  1368 +#endif
  1369 +!
  1370 +#ifdef X3270_KEYPAD
  1371 +! Keypad key dimensions, in pixels
  1372 +x3270.keypad.keyHeight: 24
  1373 +x3270.keypad.keyWidth: 48
  1374 +x3270.keypad.pfWidth: 32
  1375 +x3270.keypad.paWidth: 36
  1376 +x3270.keypad.largeKeyWidth: 56
  1377 +#endif
  1378 +!
  1379 +! Keymap display pop-up
  1380 +!
  1381 +x3270*keymapDisplayOption.label: Display Current Keymap
  1382 +x3270.kmPopup*label.label: Current Keyboard Map
  1383 +x3270.kmPopup*sortActionOption.label: Sort by Action
  1384 +x3270.kmPopup*sortKeymapOption.label: Sort by Keymap
  1385 +x3270.kmPopup*sortEventOption.label: Sort by Event
  1386 +x3270.kmPopup*text*background: lavender
  1387 +x3270.kmPopup*text*foreground: black
  1388 +x3270.kmPopup*text.height: 250
  1389 +x3270.kmPopup*text.width: 500
  1390 +!
  1391 +! Basic event translations -- these should NEVER be changed without significant
  1392 +! code changes
  1393 +x3270.translations: #override \n\
  1394 + <Message>WM_PROTOCOLS: PA-WMProtocols()\n\
  1395 + <KeymapNotify>: PA-KeymapNotify()\n\
  1396 + <PropertyNotify>WM_STATE: PA-StateChanged()\n\
  1397 + <FocusIn>: PA-Focus()\n\
  1398 + <FocusOut>: PA-Focus()\n\
  1399 + <ConfigureNotify>: PA-ConfigureNotify()
  1400 +x3270.container.translations: #override \n\
  1401 + <KeyPress>Shift_L: PA-Shift()\n\
  1402 + <KeyRelease>Shift_L: PA-Shift()\n\
  1403 + <KeyPress>Shift_R: PA-Shift()\n\
  1404 + <KeyRelease>Shift_R: PA-Shift()\n\
  1405 + <KeyPress>Meta_L: PA-Shift()\n\
  1406 + <KeyRelease>Meta_L: PA-Shift()\n\
  1407 + <KeyPress>Meta_R: PA-Shift()\n\
  1408 + <KeyRelease>Meta_R: PA-Shift()\n\
  1409 + <KeyPress>Alt_L: PA-Shift()\n\
  1410 + <KeyRelease>Alt_L: PA-Shift()\n\
  1411 + <KeyPress>Alt_R: PA-Shift()\n\
  1412 + <KeyRelease>Alt_R: PA-Shift()\n\
  1413 + :<Key>: Default()\n\
  1414 + :<BtnDown>: Default()\n\
  1415 + :<BtnUp>: Default()
  1416 +x3270*screen.translations: #override \n\
  1417 + <Expose>: PA-Expose()\n\
  1418 + <VisibilityNotify>: PA-VisibilityNotify()\n\
  1419 + <GraphicsExpose>: PA-GraphicsExpose()\n\
  1420 + <KeyPress>Shift_L: PA-Shift()\n\
  1421 + <KeyRelease>Shift_L: PA-Shift()\n\
  1422 + <KeyPress>Shift_R: PA-Shift()\n\
  1423 + <KeyRelease>Shift_R: PA-Shift()\n\
  1424 + <KeyPress>Meta_L: PA-Shift()\n\
  1425 + <KeyRelease>Meta_L: PA-Shift()\n\
  1426 + <KeyPress>Meta_R: PA-Shift()\n\
  1427 + <KeyRelease>Meta_R: PA-Shift()\n\
  1428 + <KeyPress>Alt_L: PA-Shift()\n\
  1429 + <KeyRelease>Alt_L: PA-Shift()\n\
  1430 + <KeyPress>Alt_R: PA-Shift()\n\
  1431 + <KeyRelease>Alt_R: PA-Shift()\n\
  1432 + :<Key>: Default()\n\
  1433 + :<BtnDown>: Default()\n\
  1434 + :<BtnUp>: Default()
  1435 +x3270icon.translations: #override \n\
  1436 + <Expose>: PA-Expose()
  1437 +#ifdef X3270_KEYPAD
  1438 +x3270.keypadPopup.translations: #override \n\
  1439 + <Message>WM_PROTOCOLS: PA-WMProtocols()\n\
  1440 + <KeymapNotify>: PA-KeymapNotify()\n\
  1441 + <Enter>: PA-EnterLeave()\n\
  1442 + <Leave>: PA-EnterLeave()
  1443 +x3270.keypadPopup.container.translations: #override \n\
  1444 + <KeyPress>Shift_L: PA-Shift()\n\
  1445 + <KeyRelease>Shift_L: PA-Shift()\n\
  1446 + <KeyPress>Shift_R: PA-Shift()\n\
  1447 + <KeyRelease>Shift_R: PA-Shift()\n\
  1448 + <KeyPress>Meta_L: PA-Shift()\n\
  1449 + <KeyRelease>Meta_L: PA-Shift()\n\
  1450 + <KeyPress>Meta_R: PA-Shift()\n\
  1451 + <KeyRelease>Meta_R: PA-Shift()\n\
  1452 + <KeyPress>Alt_L: PA-Shift()\n\
  1453 + <KeyRelease>Alt_L: PA-Shift()\n\
  1454 + <KeyPress>Alt_R: PA-Shift()\n\
  1455 + <KeyRelease>Alt_R: PA-Shift()\n\
  1456 + :<Key>: Default()
  1457 +#endif
  1458 +x3270.errorPopup.translations: \
  1459 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1460 +x3270.printerErrorPopup.translations: \
  1461 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1462 +x3270.childErrorPopup.translations: \
  1463 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1464 +x3270.errorPopup*translations: #override \n\
  1465 + <Key>Return: PA-confirm()
  1466 +x3270.printerErrorPopup*translations: #override \n\
  1467 + <Key>Return: PA-confirm()
  1468 +x3270.childErrorPopup*translations: #override \n\
  1469 + <Key>Return: PA-confirm()
  1470 +x3270.infoPopup.translations: \
  1471 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1472 +x3270.printerInfoPopup.translations: \
  1473 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1474 +x3270.childInfoPopup.translations: \
  1475 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1476 +x3270.infoPopup*translations: #override \n\
  1477 + <Key>Return: PA-confirm()
  1478 +x3270.printerInfoPopup*translations: #override \n\
  1479 + <Key>Return: PA-confirm()
  1480 +x3270.childInfoPopup*translations: #override \n\
  1481 + <Key>Return: PA-confirm()
  1482 +#ifdef X3270_MENUS
  1483 +x3270.connectPopup.translations: \
  1484 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1485 +x3270.fontPopup.translations: \
  1486 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1487 +x3270.keymapPopup.translations: \
  1488 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1489 +x3270.printTextPopup.translations: \
  1490 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1491 +x3270.saveTextPopup.translations: \
  1492 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1493 +x3270.printWindowPopup.translations: \
  1494 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1495 +x3270.tracePopup.translations: \
  1496 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1497 +x3270.screentracePopup.translations: \
  1498 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1499 +x3270.executeActionPopup.translations: \
  1500 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1501 +x3270.saveOptionsPopup.translations: \
  1502 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1503 +x3270.aboutCopyrightPopup.translations: \
  1504 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1505 +x3270.aboutCopyrightPopup*translations: #override \n\
  1506 + <Key>Return: PA-confirm()
  1507 +x3270.aboutConfigPopup.translations: \
  1508 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1509 +x3270.aboutConfigPopup*translations: #override \n\
  1510 + <Key>Return: PA-confirm()
  1511 +x3270.aboutStatusPopup.translations: \
  1512 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1513 +x3270.aboutStatusPopup*translations: #override \n\
  1514 + <Key>Return: PA-confirm()
  1515 +x3270.kmPopup.translations: \
  1516 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1517 +x3270.kmPopup*translations: #override \n\
  1518 + <Key>Return: PA-confirm()
  1519 +x3270.luPopup.translations: \
  1520 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1521 +#endif
  1522 +#ifdef X3270_FT
  1523 +x3270.ftPopup.translations: \
  1524 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1525 +! Note: WM_PROTOCOLS is explicitly not defined for ftPopup, so that the user
  1526 +! can clear error conditions while a transfer is in progress.
  1527 +x3270.ftOverwritePopup.translations: \
  1528 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1529 +x3270.ftPopup*value.translations: #override \n\
  1530 + <Key>Return: PA-dialog-next()\n\
  1531 + <Key>Tab: PA-dialog-next()\n\
  1532 + <Btn1Down>: PA-dialog-focus() select-start()\n\
  1533 + Ctrl<Key>U: select-all(DUMMY) delete-selection()
  1534 +#endif
  1535 +#ifdef X3270_SCRIPT
  1536 +x3270.idlePopup.translations: \
  1537 + <Message>WM_PROTOCOLS: PA-WMProtocols()
  1538 +x3270.idlePopup*value.translations: #override \n\
  1539 + <Key>Return: PA-dialog-next()\n\
  1540 + <Key>Tab: PA-dialog-next()\n\
  1541 + <Btn1Down>: PA-dialog-focus() select-start()\n\
  1542 + Ctrl<Key>U: select-all(DUMMY) delete-selection()
  1543 +#endif
  1544 +x3270*value.translations: #override \n\
  1545 + <Key>Return: PA-confirm()\n\
  1546 + Ctrl<Key>U: select-all(DUMMY) delete-selection()
  1547 +x3270*value.width: 200
  1548 +! Workaround for Xaw MenuButton bug that keeps menu items from highlighting
  1549 +! when CapsLock or NumLock are down. Technically, this would require
  1550 +! translations for all permutations of all 8 modifiers: shift, lock, control,
  1551 +! mod1, mod2, mod3, mod4 and mod5. However, we will leave out shift and
  1552 +! control, since they are "voluntary" key presses and would quadruple the
  1553 +! size of this resource.
  1554 +x3270*MenuButton.translations: #override \n\
  1555 + Lock<BtnDown>: reset() PopupMenu()\n\
  1556 + Mod1<BtnDown>: reset() PopupMenu()\n\
  1557 + Lock Mod1<BtnDown>: reset() PopupMenu()\n\
  1558 + Mod2<BtnDown>: reset() PopupMenu()\n\
  1559 + Lock Mod2<BtnDown>: reset() PopupMenu()\n\
  1560 + Mod1 Mod2<BtnDown>: reset() PopupMenu()\n\
  1561 + Lock Mod1 Mod2<BtnDown>: reset() PopupMenu()\n\
  1562 + Mod3<BtnDown>: reset() PopupMenu()\n\
  1563 + Lock Mod3<BtnDown>: reset() PopupMenu()\n\
  1564 + Mod1 Mod3<BtnDown>: reset() PopupMenu()\n\
  1565 + Lock Mod1 Mod3<BtnDown>: reset() PopupMenu()\n\
  1566 + Mod2 Mod3<BtnDown>: reset() PopupMenu()\n\
  1567 + Lock Mod2 Mod3<BtnDown>: reset() PopupMenu()\n\
  1568 + Mod1 Mod2 Mod3<BtnDown>: reset() PopupMenu()\n\
  1569 + Lock Mod1 Mod2 Mod3<BtnDown>: reset() PopupMenu()\n\
  1570 + Mod4<BtnDown>: reset() PopupMenu()\n\
  1571 + Lock Mod4<BtnDown>: reset() PopupMenu()\n\
  1572 + Mod1 Mod4<BtnDown>: reset() PopupMenu()\n\
  1573 + Lock Mod1 Mod4<BtnDown>: reset() PopupMenu()\n\
  1574 + Mod2 Mod4<BtnDown>: reset() PopupMenu()\n\
  1575 + Lock Mod2 Mod4<BtnDown>: reset() PopupMenu()\n\
  1576 + Mod1 Mod2 Mod4<BtnDown>: reset() PopupMenu()\n\
  1577 + Lock Mod1 Mod2 Mod4<BtnDown>: reset() PopupMenu()\n\
  1578 + Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
  1579 + Lock Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
  1580 + Mod1 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
  1581 + Lock Mod1 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
  1582 + Mod2 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
  1583 + Lock Mod2 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
  1584 + Mod1 Mod2 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
  1585 + Lock Mod1 Mod2 Mod3 Mod4<BtnDown>: reset() PopupMenu()\n\
  1586 + Mod5<BtnDown>: reset() PopupMenu()\n\
  1587 + Lock Mod5<BtnDown>: reset() PopupMenu()\n\
  1588 + Mod1 Mod5<BtnDown>: reset() PopupMenu()\n\
  1589 + Lock Mod1 Mod5<BtnDown>: reset() PopupMenu()\n\
  1590 + Mod2 Mod5<BtnDown>: reset() PopupMenu()\n\
  1591 + Lock Mod2 Mod5<BtnDown>: reset() PopupMenu()\n\
  1592 + Mod1 Mod2 Mod5<BtnDown>: reset() PopupMenu()\n\
  1593 + Lock Mod1 Mod2 Mod5<BtnDown>: reset() PopupMenu()\n\
  1594 + Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
  1595 + Lock Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
  1596 + Mod1 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
  1597 + Lock Mod1 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
  1598 + Mod2 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
  1599 + Lock Mod2 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
  1600 + Mod1 Mod2 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
  1601 + Lock Mod1 Mod2 Mod3 Mod5<BtnDown>: reset() PopupMenu()\n\
  1602 + Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1603 + Lock Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1604 + Mod1 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1605 + Lock Mod1 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1606 + Mod2 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1607 + Lock Mod2 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1608 + Mod1 Mod2 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1609 + Lock Mod1 Mod2 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1610 + Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1611 + Lock Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1612 + Mod1 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1613 + Lock Mod1 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1614 + Mod2 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1615 + Lock Mod2 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1616 + Mod1 Mod2 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()\n\
  1617 + Lock Mod1 Mod2 Mod3 Mod4 Mod5<BtnDown>: reset() PopupMenu()
  1618 +#endif
  1619 +! Default compose-key map.
  1620 +! Each line is of the form "keysym1 + keysym2 = keysym3", meaning "when the
  1621 +! Compose key is pressed, followed by keysym1 and keysym2 (in either order),
  1622 +! interpret it as keysym3." The definitions are case-sensitive.
  1623 +x3270.composeMap.latin1: \
  1624 + c + bar = cent \n\
  1625 + c + slash = cent \n\
  1626 + L + minus = sterling \n\
  1627 + Y + equal = yen \n\
  1628 + S + S = section \n\
  1629 + C + O = copyright \n\
  1630 + a + underscore = ordfeminine \n\
  1631 + less + less = guillemotleft \n\
  1632 + R + O = registered \n\
  1633 + plus + minus = plusminus \n\
  1634 + o + underscore = masculine \n\
  1635 + greater + greater = guillemotright \n\
  1636 + 1 + 4 = onequarter \n\
  1637 + 1 + 2 = onehalf \n\
  1638 + 3 + 4 = threequarters \n\
  1639 + bar + bar = brokenbar \n\
  1640 + A + grave = Agrave \n\
  1641 + A + apostrophe = Aacute \n\
  1642 + A + asciicircum = Acircumflex \n\
  1643 + A + asciitilde = Atilde \n\
  1644 + A + quotedbl = Adiaeresis \n\
  1645 + A + asterisk = Aring \n\
  1646 + A + E = AE \n\
  1647 + C + comma = Ccedilla \n\
  1648 + C + apostrophe = Ccedilla \n\
  1649 + E + grave = Egrave \n\
  1650 + E + apostrophe = Eacute \n\
  1651 + E + asciicircum = Ecircumflex \n\
  1652 + E + quotedbl = Ediaeresis \n\
  1653 + I + grave = Igrave \n\
  1654 + I + apostrophe = Iacute \n\
  1655 + I + asciicircum = Icircumflex \n\
  1656 + I + quotedbl = Idiaeresis \n\
  1657 + N + asciitilde = Ntilde \n\
  1658 + O + grave = Ograve \n\
  1659 + O + apostrophe = Oacute \n\
  1660 + O + asciicircum = Ocircumflex \n\
  1661 + O + asciitilde = Otilde \n\
  1662 + O + quotedbl = Odiaeresis \n\
  1663 + O + slash = Ooblique \n\
  1664 + U + grave = Ugrave \n\
  1665 + U + apostrophe = Uacute \n\
  1666 + U + asciicircum = Ucircumflex \n\
  1667 + U + quotedbl = Udiaeresis \n\
  1668 + Y + apostrophe = Yacute \n\
  1669 + s + s = ssharp \n\
  1670 + a + grave = agrave \n\
  1671 + a + apostrophe = aacute \n\
  1672 + a + asciicircum = acircumflex \n\
  1673 + a + asciitilde = atilde \n\
  1674 + a + quotedbl = adiaeresis \n\
  1675 + a + asterisk = aring \n\
  1676 + a + e = ae \n\
  1677 + c + comma = ccedilla \n\
  1678 + c + apostrophe = ccedilla \n\
  1679 + e + grave = egrave \n\
  1680 + e + apostrophe = eacute \n\
  1681 + e + asciicircum = ecircumflex \n\
  1682 + e + quotedbl = ediaeresis \n\
  1683 + i + grave = igrave \n\
  1684 + i + apostrophe = iacute \n\
  1685 + i + asciicircum = icircumflex \n\
  1686 + i + quotedbl = idiaeresis \n\
  1687 + n + asciitilde = ntilde \n\
  1688 + o + grave = ograve \n\
  1689 + o + apostrophe = oacute \n\
  1690 + o + asciicircum = ocircumflex \n\
  1691 + o + asciitilde = otilde \n\
  1692 + o + quotedbl = odiaeresis \n\
  1693 + o + slash = oslash \n\
  1694 + u + grave = ugrave \n\
  1695 + u + apostrophe = uacute \n\
  1696 + u + asciicircum = ucircumflex \n\
  1697 + u + quotedbl = udiaeresis \n\
  1698 + y + apostrophe = yacute \n\
  1699 + y + quotedbl = ydiaeresis \n\
  1700 + apostrophe + apostrophe = apostrophe \n\
  1701 + apostrophe + space = apostrophe \n\
  1702 + asciicircum + asciicircum = asciicircum \n\
  1703 + asciicircum + space = asciicircum \n\
  1704 + asciitilde + asciitilde = asciitilde \n\
  1705 + asciitilde + space = asciitilde \n\
  1706 + grave + grave = grave \n\
  1707 + grave + space = grave \n\
  1708 + quotedbl + quotedbl = quotedbl \n\
  1709 + quotedbl + space = quotedbl \n
  1710 +#ifndef STANDALONE
  1711 +#ifdef X3270_APL
  1712 +!
  1713 +! Compose-key map for APL.
  1714 +x3270.composeMap.apl: \
  1715 + A + underscore = apl_Aunderbar \n\
  1716 + B + underscore = apl_Bunderbar \n\
  1717 + C + underscore = apl_Cunderbar \n\
  1718 + D + underscore = apl_Dunderbar \n\
  1719 + E + underscore = apl_Eunderbar \n\
  1720 + F + underscore = apl_Funderbar \n\
  1721 + G + underscore = apl_Gunderbar \n\
  1722 + H + underscore = apl_Hunderbar \n\
  1723 + I + underscore = apl_Iunderbar \n\
  1724 + J + underscore = apl_Junderbar \n\
  1725 + K + underscore = apl_Kunderbar \n\
  1726 + L + underscore = apl_Lunderbar \n\
  1727 + M + underscore = apl_Munderbar \n\
  1728 + N + underscore = apl_Nunderbar \n\
  1729 + O + underscore = apl_Ounderbar \n\
  1730 + P + underscore = apl_Punderbar \n\
  1731 + Q + underscore = apl_Qunderbar \n\
  1732 + R + underscore = apl_Runderbar \n\
  1733 + S + underscore = apl_Sunderbar \n\
  1734 + T + underscore = apl_Tunderbar \n\
  1735 + U + underscore = apl_Uunderbar \n\
  1736 + V + underscore = apl_Vunderbar \n\
  1737 + W + underscore = apl_Wunderbar \n\
  1738 + X + underscore = apl_Xunderbar \n\
  1739 + Y + underscore = apl_Yunderbar \n\
  1740 + Z + underscore = apl_Zunderbar \n\
  1741 + apl_upcaret + apl_downcaret = apl_diamond \n\
  1742 + apl_quad + apl_jot = apl_quadjot \n\
  1743 + apl_iota + underscore = apl_iotaunderbar \n\
  1744 + apl_epsilon + underscore = apl_epsilonunderbar \n\
  1745 + less + equal = apl_notgreater \n\
  1746 + plus + minus = apl_plusminus \n\
  1747 + greater + equal = apl_notless \n\
  1748 + equal + slash = apl_notequal \n\
  1749 + apl_upcaret + apl_tilde = apl_upcarettilde \n\
  1750 + apl_upcaret + asciitilde = apl_upcarettilde \n\
  1751 + apl_downcaret + apl_tilde = apl_downcarettilde \n\
  1752 + apl_downcaret + asciitilde = apl_downcarettilde \n\
  1753 + apl_circle + apl_stile = apl_circlestile \n\
  1754 + apl_circle + bar = apl_circlestile \n\
  1755 + apl_quad + apl_slope = apl_slopequad \n\
  1756 + apl_quad + backslash = apl_slopequad \n\
  1757 + apl_circle + apl_slope = apl_circleslope \n\
  1758 + apl_circle + backslash = apl_circleslope \n\
  1759 + apl_downtack + apl_uptack = apl_downtackup \n\
  1760 + apostrophe + period = apl_quotedot \n\
  1761 + apl_del + apl_stile = apl_delstile \n\
  1762 + apl_del + bar = apl_delstile \n\
  1763 + apl_delta + apl_stile = apl_deltastile \n\
  1764 + apl_delta + bar = apl_deltastile \n\
  1765 + apl_quad + apostrophe = apl_quadquote \n\
  1766 + apl_upshoe + apl_jot = apl_upshoejot \n\
  1767 + slash + minus = apl_slashbar \n\
  1768 + apl_slope + minus = apl_slopebar \n\
  1769 + backslash + minus = apl_slopebar \n\
  1770 + apl_diaeresis + period = apl_diaeresisdot \n\
  1771 + apl_circle + minus = apl_circlebar \n\
  1772 + apl_quad + apl_divide = apl_quaddivide \n\
  1773 + apl_uptack + apl_jot = apl_uptackjot \n\
  1774 + apl_del + apl_tilde = apl_deltilde \n\
  1775 + apl_del + asciitilde = apl_deltilde \n\
  1776 + apl_delta + underscore = apl_deltaunderbar \n\
  1777 + apl_circle + asterisk = apl_circlestar \n\
  1778 + apl_downtack + apl_jot = apl_downtackjot \n\
  1779 + equal + underscore = apl_equalunderbar \n\
  1780 + apl_quad + apl_quad = apl_squad \n\
  1781 + apl_diaeresis + apl_jot = apl_diaeresisjot \n\
  1782 + apl_diaeresis + apl_circle = apl_diaeresiscircle \n\
  1783 + comma + minus = apl_commabar \n\
  1784 + c + equal = apl_euro \n\
  1785 + C + equal = apl_euro \n\
  1786 + minus + parenleft = apl_lefttack \n\
  1787 + minus + parenright = apl_righttack \n
  1788 +#endif
  1789 +#endif
  1790 +#ifdef STANDALONE
  1791 +#ifdef _WIN32
  1792 +! wc3270 keymap for more 3270-ish behavior: The Enter key is Newline and the
  1793 +! Right-Ctrl key is Enter.
  1794 +x3270.keymap.rctrl.3270: \
  1795 + RightCtrl<Key>CTRL: Enter()\n\
  1796 + <Key>Return: Newline()
  1797 +#endif
  1798 +#endif
  1799 +!
  1800 +! EBCDIC character sets.
  1801 +! A charset is a series of newline-separated strings that define how an EBCDIC
  1802 +! national character set differs from IBM's standard U.S.-International set
  1803 +! (table 01). Each string is a number, a colon, and a symbol. The number is
  1804 +! the EBCDIC code, and the symbol is an ASCII character or ISO Latin-1 name of
  1805 +! the graphic it represents.
  1806 +!
  1807 +! U.S.-International (table 01)
  1808 +x3270.charset.us-intl: \n
  1809 +x3270.codepage.us-intl: 37
  1810 +! alias for 'us-intl' (backwards compatibility)
  1811 +x3270.charset.us: \n
  1812 +x3270.codepage.us: 37
  1813 +! U.S. English w/Euro (code page 1140)
  1814 +x3270.codepage.us-euro: 0x02b70474
  1815 +x3270.displayCharset.us-euro: 3270cg-15a,3270cg-15,iso8859-15
  1816 +!
  1817 +! APL character set (same as us-intl, no remapping required)
  1818 +x3270.charset.apl: \n
  1819 +x3270.codepage.apl: 37
  1820 +x3270.displayCharset.apl: 3270cg-1a
  1821 +x3270.emulatorFontList.3270cg-1a: 3270
  1822 +!
  1823 +! EBCDIC map for hosts that put '[' and ']' in non-standard positions (X'AD'
  1824 +! and X'BD'). This is the default x3270 character set, because these hosts
  1825 +! are so common in the U.S.
  1826 +! Note that those hosts tend to display '[' and ']' as GE X'AD' and GE X'BD',
  1827 +! which are the APL bracket characters.
  1828 +x3270.charset.bracket: \
  1829 + 0xad: [ \n 0xba: Yacute \n\
  1830 + 0xbd: ] \n 0xbb: diaeresis \n
  1831 +! The codepage for 'bracket' is a lie, but there is no real codepage that
  1832 +! corresponds to it.
  1833 +x3270.codepage.bracket: 37
  1834 +! alias for 'bracket' (backwards compatibility)
  1835 +x3270.charset.oldibm: \
  1836 + 0xad: [ \n 0xba: Yacute \n\
  1837 + 0xbd: ] \n 0xbb: diaeresis \n
  1838 +x3270.codepage.oldibm: 37
  1839 +!
  1840 +! Each entry below is derived from IBM GA27-3831-03, Fourth Edition.
  1841 +! Austrian/German (table 03)
  1842 +x3270.charset.german: \
  1843 + 0x43: { \n 0x4a: Adiaeresis \n\
  1844 + 0x4f: ! \n 0x59: ~ \n\
  1845 + 0x5a: Udiaeresis \n 0x5f: ^ \n\
  1846 + 0x63: [ \n 0x6a: odiaeresis \n\
  1847 + 0x7c: section \n 0xa1: ssharp \n\
  1848 + 0xb0: cent \n 0xb5: @ \n\
  1849 + 0xba: notsign \n 0xbb: bar \n\
  1850 + 0xc0: adiaeresis \n 0xcc: brokenbar \n\
  1851 + 0xd0: udiaeresis \n 0xdc: } \n\
  1852 + 0xe0: Odiaeresis \n 0xec: backslash \n\
  1853 + 0xfc: ] \n
  1854 +x3270.codepage.german: 273
  1855 +! German w/Euro (code page 1141)
  1856 +x3270.codepage.german-euro: 0x02b70475
  1857 +x3270.displayCharset.german-euro: 3270cg-15a,3270cg-15,iso8859-15
  1858 +! Finnish (table 09)
  1859 +x3270.charset.finnish: \
  1860 + 0x43: { \n 0x47: } \n\
  1861 + 0x4a: section \n 0x4f: ! \n\
  1862 + 0x51: ` \n 0x5a: currency \n\
  1863 + 0x5b: Aring \n 0x5f: ^ \n\
  1864 + 0x63: # \n 0x67: $ \n\
  1865 + 0x6a: odiaeresis \n 0x71: backslash \n\
  1866 + 0x79: eacute \n 0x7b: Adiaeresis \n\
  1867 + 0x7c: Odiaeresis \n 0x9f: ] \n\
  1868 + 0xa1: udiaeresis \n 0xb1: cent \n\
  1869 + 0xb5: [ \n 0xba: notsign \n\
  1870 + 0xbb: | \n 0xc0: adiaeresis \n\
  1871 + 0xcc: brokenbar \n 0xd0: aring \n\
  1872 + 0xdc: ~ \n 0xe0: Eacute \n\
  1873 + 0xec: @ \n
  1874 +x3270.codepage.finnish: 278
  1875 +! Finnish w/Euro (code page 1143)
  1876 +x3270.codepage.finnish-euro: 0x02b70477
  1877 +x3270.displayCharset.finnish-euro: 3270cg-15a,3270cg-15,iso8859-15
  1878 +! U.K. (table 22)
  1879 +x3270.charset.uk: \
  1880 + 0x4a: $ \n 0x5b: sterling \n\
  1881 + 0xa1: macron \n 0xb0: cent \n\
  1882 + 0xb1: [ \n 0xba: ^ \n\
  1883 + 0xbc: ~ \n
  1884 +x3270.codepage.uk: 285
  1885 +! U.K w/Euro (code page 1146)
  1886 +x3270.codepage.uk-euro: 0x02b7047a
  1887 +x3270.displayCharset.uk-euro: 3270cg-15a,3270cg-15,iso8859-15
  1888 +! Norwegian (table 23)
  1889 +x3270.charset.norwegian: \
  1890 + 0x47: } \n 0x4a: # \n\
  1891 + 0x4f: ! \n 0x5a: currency \n\
  1892 + 0x5b: Aring \n 0x5f: ^ \n\
  1893 + 0x67: $ \n 0x6a: oslash \n\
  1894 + 0x70: brokenbar \n 0x7b: AE \n\
  1895 + 0x7c: Ooblique \n 0x80: @ \n\
  1896 + 0x9c: { \n 0x9e: [ \n\
  1897 + 0x9f: ] \n 0xa1: udiaeresis \n\
  1898 + 0xb0: cent \n 0xba: notsign \n\
  1899 + 0xbb: bar \n 0xc0: ae \n\
  1900 + 0xd0: aring \n 0xdc: ~ \n
  1901 +x3270.codepage.norwegian: 277
  1902 +! Norwegian w/Euro (code page 1142)
  1903 +x3270.codepage.norwegian-euro: 0x02b70476
  1904 +x3270.displayCharset.norwegian-euro: 3270cg-15a,3270cg-15,iso8859-15
  1905 +! French (table 30)
  1906 +x3270.charset.french: \
  1907 + 0x44: @ \n 0x48: backslash \n\
  1908 + 0x4a: degree \n 0x4f: ! \n\
  1909 + 0x51: { \n 0x54: } \n\
  1910 + 0x5a: section \n 0x5f: ^ \n\
  1911 + 0x6a: ugrave \n 0x79: mu \n\
  1912 + 0x7b: sterling \n 0x7c: agrave \n\
  1913 + 0x90: [ \n 0xa0: grave \n\
  1914 + 0xa1: diaeresis \n 0xb0: cent \n\
  1915 + 0xb1: numbersign \n 0xb5: ] \n\
  1916 + 0xba: notsign \n 0xbb: bar \n\
  1917 + 0xbd: ~ \n 0xc0: eacute \n\
  1918 + 0xd0: egrave \n 0xe0: ccedilla \n
  1919 +x3270.codepage.french: 297
  1920 +! French w/Euro (code page 1147)
  1921 +x3270.codepage.french-euro: 0x02b7047b
  1922 +x3270.displayCharset.french-euro: 3270cg-15a,3270cg-15,iso8859-15
  1923 +! Icelandic, courtesy of Rikhardur Egilsson
  1924 +x3270.charset.icelandic: \
  1925 + 0xa1: odiaeresis \n 0x5f: Odiaeresis \n\
  1926 + 0x79: eth \n 0x7c: Eth \n\
  1927 + 0xc0: thorn \n 0x4a: Thorn \n\
  1928 + 0xd0: ae \n 0x5a: AE \n\
  1929 + 0xcc: ~ \n 0x4f: ! \n\
  1930 + 0x8e: { \n 0x9c: } \n\
  1931 + 0xae: [ \n 0x9e: ] \n\
  1932 + 0xac: @ \n 0xbe: \\ \n\
  1933 + 0x7d: apostrophe \n 0x8c: ` \n\
  1934 + 0x6a: | \n
  1935 +x3270.codepage.icelandic: 871
  1936 +! Icelandic w/Euro (code page 1149)
  1937 +x3270.codepage.icelandic-euro: 0x02b7047d
  1938 +x3270.displayCharset.icelandic-euro: 3270cg-15a,3270cg-15,iso8859-15
  1939 +! Belgian, with the help of Peter Govaerts
  1940 +x3270.charset.belgian: \
  1941 + 0x4a: [ \n 0x4f: ! \n\
  1942 + 0x5a: ] \n 0x5f: ^ \n\
  1943 + 0xb0: cent \n 0xba: notsign \n\
  1944 + 0xbb: bar \n
  1945 +x3270.codepage.belgian: 500
  1946 +! Belgian w/Euro (code page 1148)
  1947 +x3270.codepage.belgian-euro: 0x02b7047c
  1948 +x3270.displayCharset.belgian-euro: 3270cg-15a,3270cg-15,iso8859-15
  1949 +! Italian, courtesy of Claudio Maniscalco and Daniele Patoner
  1950 +x3270.charset.italian: \
  1951 + 0x44: braceleft \n 0x48: backslash \n\
  1952 + 0x4a: degree \n 0x4f: exclam \n\
  1953 + 0x51: bracketright \n 0x54: braceright \n\
  1954 + 0x58: asciitilde \n 0x5a: eacute \n\
  1955 + 0x5f: asciicircum \n 0x6a: ograve \n\
  1956 + 0x7b: sterling \n 0x7c: section \n\
  1957 + 0x79: ugrave \n 0x90: bracketleft \n\
  1958 + 0xa1: igrave \n 0xb0: cent \n\
  1959 + 0xb1: numbersign \n 0xb5: at \n\
  1960 + 0xba: notsign \n 0xbb: bar \n\
  1961 + 0xc0: agrave \n 0xcd: brokenbar \n\
  1962 + 0xd0: egrave \n 0xdd: grave \n\
  1963 + 0xe0: ccedilla \n
  1964 +x3270.codepage.italian: 280
  1965 +! Italian w/Euro (code page 1144)
  1966 +x3270.codepage.italian-euro: 0x02b70478
  1967 +x3270.displayCharset.italian-euro: 3270cg-15a,3270cg-15,iso8859-15
  1968 +! Turkish, uses standard ISO 8859-9 fonts
  1969 +x3270.charset.turkish: \
  1970 + 0x48: { \n 0x4a: 0xc7 \n 0x4f: ! \n 0x5a: 0xd0 \n\
  1971 + 0x5b: 0xdd \n 0x5f: ^ \n 0x68: [ \n 0x6a: 0xfe \n\
  1972 + 0x79: 0xfd \n 0x7b: 0xd6 \n 0x7c: 0xde \n 0x7f: 0xdc \n\
  1973 + 0x8c: } \n 0x8d: 0x91 \n 0x8e: 0xa6 \n 0xa1: 0xf6 \n\
  1974 + 0xac: ] \n 0xad: $ \n 0xae: @ \n 0xb0: 0xa2 \n\
  1975 + 0xba: 0xac \n 0xbb: | \n 0xbe: 0x92 \n 0xc0: 0xe7 \n\
  1976 + 0xcc: ~ \n 0xd0: 0xf0 \n 0xdc: 0x5c \n 0xe0: 0xfc \n\
  1977 + 0xec: # \n 0xfc: "
  1978 +x3270.codepage.turkish: 0x04800402
  1979 +x3270.displayCharset.turkish: iso8859-9
  1980 +! Hebrew, uses standard ISO 8859-8 fonts
  1981 +x3270.charset.hebrew: #table\n\
  1982 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  1983 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  1984 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  1985 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  1986 + 32 224 225 226 227 228 229 230 231 232 162 46 60 40 43 124 \
  1987 + 38 233 234 235 236 237 238 239 240 241 33 36 42 41 59 172 \
  1988 + 45 47 242 243 244 245 246 247 248 249 166 44 37 95 62 63 \
  1989 + 0 250 0 0 0 0 0 0 0 96 58 35 64 39 61 34 \
  1990 + 0 97 98 99 100 101 102 103 104 105 171 187 0 0 0 177 \
  1991 +176 106 107 108 109 110 111 112 113 114 0 0 0 184 0 164 \
  1992 +181 126 115 116 117 118 119 120 121 122 0 0 0 0 0 174 \
  1993 + 94 163 165 183 169 167 182 188 189 190 91 93 175 168 180 170 \
  1994 +123 65 66 67 68 69 70 71 72 73 173 0 0 0 0 0 \
  1995 +125 74 75 76 77 78 79 80 81 82 185 0 0 0 0 0 \
  1996 + 92 186 83 84 85 86 87 88 89 90 178 0 0 0 0 0 \
  1997 + 48 49 50 51 52 53 54 55 56 57 179 0 0 0 0 159
  1998 +x3270.codepage.hebrew: 0x03ad01a8
  1999 +x3270.displayCharset.hebrew: 3270cg-8,iso8859-8
  2000 +x3270.emulatorFontList.3270cg-8,iso8859-8: Hebrew 14-point 3270 Font: 3270h
  2001 +x3270.xkSelector.hebrew: 0x0c
  2002 +x3270.autoKeymap.hebrew: true
  2003 +! Brazilian character set for x3270.
  2004 +! With invaluable help from Ricardo Dias de Pinho - Rio de Janeiro(RJ) BRAZIL.
  2005 +x3270.codepage.brazilian: 275
  2006 +x3270.displayCharset.brazilian: 3270cg-1a,3270cg-1,iso8859-1
  2007 +x3270.charset.brazilian: #table\n\
  2008 + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
  2009 + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
  2010 + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
  2011 + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
  2012 + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
  2013 + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
  2014 + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
  2015 + 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 \
  2016 + 0x00 0x5b 0x5d 0xa3 0xa5 0xb6 0xa4 0xdf \
  2017 + 0xa7 0xaf 0xc9 0x2e 0x3c 0x28 0x2b 0x21 \
  2018 + 0x26 0xb0 0x00 0xac 0xa8 0xb4 0xb8 0xe0 \
  2019 + *0xe8 *0xec 0x24 0xc7 0x2a 0x29 0x3b 0x5e \
  2020 + 0x2d 0x2f *0xf2 *0xf9 0x60 0x7b 0xff *0xe0 \
  2021 + 0xe8 0xe9 0xe7 0x2c 0x25 0x5f 0x3e 0x3f \
  2022 + 0xec 0xf2 0xf9 *0xfc *0xe7 0xe4 0xeb 0xef \
  2023 + 0xf6 0xe3 0x3a 0xd5 0xc3 0x27 0x3d 0x22 \
  2024 + 0xfc 0x61 0x62 0x63 0x64 0x65 0x66 0x67 \
  2025 + 0x68 0x69 0xe2 0xea 0xee 0xf4 0xfb 0xe1 \
  2026 + 0x7d 0x6a 0x6b 0x6c 0x6d 0x6e 0x6f 0x70 \
  2027 + 0x71 0x72 0xed 0xf3 0xfa 0xf1 0xc0 0xc8 \
  2028 + 0xcc 0x7e 0x73 0x74 0x75 0x76 0x77 0x78 \
  2029 + 0x79 0x7a 0xd2 0xd9 0x40 0x23 *0x59 *0x41 \
  2030 + *0x45 *0x45 *0x49 *0x4f *0x55 *0x59 *0x43 0xc4 \
  2031 + 0xcb 0xcf 0xd6 0xdc 0xc2 0xca 0xce 0xd4 \
  2032 + 0xf5 0x41 0x42 0x43 0x44 0x45 0x46 0x47 \
  2033 + 0x48 0x49 0xdb 0xc1 0xa2 0xcd 0x00 0x00 \
  2034 + *0xe9 0x4a 0x4b 0x4c 0x4d 0x4e 0x4f 0x50 \
  2035 + 0x51 0x52 0xd3 0xda 0xd1 0x00 0x00 0x00 \
  2036 + 0x5c 0x00 0x53 0x54 0x55 0x56 0x57 0x58 \
  2037 + 0x59 0x5a 0xf8 0xe5 0xa6 0x00 0x00 0x00 \
  2038 + 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 \
  2039 + 0x38 0x39 0xc6 0xd8 0xc5 0x7c 0x00 0x00
  2040 +! Greek, requires the 3270gr font
  2041 +! Courtesty of Mantzios Achilleus
  2042 +x3270.charset.greek: #table \
  2043 + 0 1 2 3 156 9 134 127 151 141 142 11 12 13 14 15 \n\
  2044 + 16 17 18 19 157 133 8 135 24 25 146 143 28 29 30 31 \n\
  2045 +128 129 130 131 132 10 23 27 136 137 138 139 140 5 6 7 \n\
  2046 +144 145 22 147 148 149 150 4 152 153 154 155 20 21 158 26 \n\
  2047 + 32 193 194 195 196 197 198 199 200 201 91 46 60 40 43 33 \n\
  2048 + 38 202 203 204 205 206 207 208 209 211 93 36 42 41 59 94 \n\
  2049 + 45 47 212 213 214 215 216 217 218 219 174 44 37 95 62 63 \n\
  2050 +168 182 184 185 210 186 188 190 191 96 58 35 64 39 61 34 \n\
  2051 +181 97 98 99 100 101 102 103 104 105 225 226 227 228 229 230 \n\
  2052 +176 106 107 108 109 110 111 112 113 114 231 232 233 234 235 236 \n\
  2053 +180 126 115 116 117 118 119 120 121 122 237 238 239 240 241 243 \n\
  2054 +163 220 221 222 250 223 252 253 251 254 242 244 245 246 247 248 \n\
  2055 +123 65 66 67 68 69 70 71 72 73 173 249 192 224 164 175 \n\
  2056 +125 74 75 76 77 78 79 80 81 82 177 189 124 183 162 166 \n\
  2057 + 92 161 83 84 85 86 87 88 89 90 178 167 255 170 171 172 \n\
  2058 + 48 49 50 51 52 53 54 55 56 57 179 169 165 160 187 159
  2059 +x3270.codepage.greek: 0x0464036b
  2060 +x3270.displayCharset.greek: 3270cg-7,iso8859-7
  2061 +x3270.xkSelector.greek: 0x07
  2062 +x3270.emulatorFontList.3270cg-7,iso8859-7: 3270gr
  2063 +! Russian character set for x3270.
  2064 +x3270.codepage.russian: 880
  2065 +x3270.displayCharset.russian: koi8-r
  2066 +x3270.xkSelector.russian: 0x06
  2067 +x3270.charset.russian: #table\n\
  2068 + 0 1 2 3 158 9 170 127 182 96 147 11 12 13 14 15 \
  2069 + 16 17 18 19 171 126 8 175 24 25 150 125 28 29 30 31 \
  2070 + 124 174 129 123 160 10 23 27 172 154 184 173 146 5 6 7 \
  2071 + 180 181 22 183 155 156 157 4 178 131 169 148 20 21 149 26 \
  2072 + 32 166 167 128 163 139 140 141 142 143 91 46 60 40 43 33 \
  2073 + 38 176 177 186 187 188 189 255 191 144 93 36 42 41 59 94 \
  2074 + 45 47 130 179 132 133 134 135 136 137 145 44 37 95 62 63 \
  2075 + 151 152 153 162 138 164 192 193 194 168 58 35 64 39 61 34 \
  2076 + 195 97 98 99 100 101 102 103 104 105 196 197 198 199 200 201 \
  2077 + 202 106 107 108 109 110 111 112 113 114 203 204 205 206 207 208 \
  2078 + 209 161 115 116 117 118 119 120 121 122 210 211 212 213 214 215 \
  2079 + 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 \
  2080 + 165 65 66 67 68 69 70 71 72 73 232 233 234 235 236 237 \
  2081 + 159 74 75 76 77 78 79 80 81 82 238 239 240 241 242 243 \
  2082 + 92 185 83 84 85 86 87 88 89 90 244 245 246 247 248 249 \
  2083 + 48 49 50 51 52 53 54 55 56 57 250 251 252 253 254 190
  2084 +! Code page 870 for Slovenian, Croatian, Serbian (Latin) and Polish.
  2085 +x3270.codepage.cp870: 0x03bf0366
  2086 +x3270.displayCharset.cp870: iso8859-2
  2087 +x3270.xkSelector.cp870: 0x01
  2088 +x3270.charset.cp870: #table\n\
  2089 + 0 1 2 3 156 9 134 127 151 141 142 11 12 13 14 15 \
  2090 + 16 17 18 19 157 133 8 135 24 25 146 143 28 29 30 31 \
  2091 + 128 129 130 131 132 10 23 27 136 137 138 139 140 5 6 7 \
  2092 + 144 145 22 147 148 149 150 4 152 153 154 155 20 21 158 26 \
  2093 + 32 160 226 228 254 225 227 232 231 230 91 46 60 40 43 33 \
  2094 + 38 233 234 235 249 237 238 181 229 223 93 36 42 41 59 94 \
  2095 + 45 47 194 196 189 193 195 200 199 198 124 44 37 95 62 63 \
  2096 + 183 201 202 203 217 205 206 165 197 96 58 35 64 39 61 34 \
  2097 + 162 97 98 99 100 101 102 103 104 105 182 242 240 253 248 186 \
  2098 + 176 106 107 108 109 110 111 112 113 114 179 241 185 184 178 164 \
  2099 + 177 126 115 116 117 118 119 120 121 122 166 210 208 221 216 170 \
  2100 + 255 161 191 222 175 167 190 188 174 172 163 209 169 168 180 215 \
  2101 + 123 65 66 67 68 69 70 71 72 73 173 244 246 224 243 245 \
  2102 + 125 74 75 76 77 78 79 80 81 82 204 251 252 187 250 236 \
  2103 + 92 247 83 84 85 86 87 88 89 90 239 212 214 192 211 213 \
  2104 + 48 49 50 51 52 53 54 55 56 57 207 219 220 171 218 159
  2105 +#ifdef _WIN32
  2106 +! Host codepage 37 / Windows codepage 437 (US OEM)
  2107 +x3270.codepage.bracket437: 37
  2108 +x3270.displayCharset.bracket437: windows-437
  2109 +x3270.charset.bracket437: #table\n\
  2110 + 0 1 2 3 0 9 0 127 0 0 0 11 12 13 14 15 \
  2111 + 16 17 18 19 0 0 8 0 24 25 0 0 28 29 30 31 \
  2112 + 0 0 0 0 0 10 23 27 0 0 0 0 0 5 6 7 \
  2113 + 0 0 22 0 0 0 0 4 0 0 0 0 20 21 0 26 \
  2114 + 32 255 131 132 133 160 0 134 135 164 155 46 60 40 43 124 \
  2115 + 38 130 136 137 138 161 140 139 141 225 33 36 42 41 59 170 \
  2116 + 45 47 0 142 0 0 0 143 128 165 0 44 37 95 62 63 \
  2117 + 0 144 0 0 0 0 0 0 0 96 58 35 64 39 61 34 \
  2118 + 0 97 98 99 100 101 102 103 104 105 174 175 0 0 0 241 \
  2119 +248 106 107 108 109 110 111 112 113 114 166 167 145 0 146 0 \
  2120 +230 126 115 116 117 118 119 120 121 122 173 168 0 91 0 0 \
  2121 + 94 156 157 250 0 0 0 172 171 0 0 0 0 93 0 0 \
  2122 +123 65 66 67 68 69 70 71 72 73 0 147 148 149 162 0 \
  2123 +125 74 75 76 77 78 79 80 81 82 0 150 129 151 163 152 \
  2124 + 92 246 83 84 85 86 87 88 89 90 253 0 153 0 0 0 \
  2125 + 48 49 50 51 52 53 54 55 56 57 0 0 154 0 0 0
  2126 +x3270.aplMap.437: \
  2127 + 0xaf: 0xf8\n 0xd4: 0xd9\n 0xd5: 0xbf\n 0xc5: 0xda\n\
  2128 + 0xc4: 0xc0\n 0xd3: 0xc5\n 0xa2: 0xc4\n 0xc6: 0xc3\n\
  2129 + 0xd6: 0xb4\n 0xc7: 0xc1\n 0xd7: 0xc2\n 0x85: 0xb3\n\
  2130 + 0x8c: 0xf3\n 0xae: 0xf2\n 0xbe: 0x00\n 0xa3: 0xf9\n\
  2131 + 0xad: 0x5b\n 0xbd: 0x5d
  2132 +! Host codepage 1153/1375 / Windows codepage 1250 (Central Europe)
  2133 +x3270.codepage.cp1153: 0x055f0481
  2134 +x3270.displayCharset.cp1153: windows-1250
  2135 +x3270.charset.cp1153: #table\n\
  2136 + 0 1 2 3 156 9 134 127 151 0 0 11 12 13 14 15 \
  2137 + 16 17 18 19 0 133 8 135 24 25 146 0 28 29 30 31 \
  2138 + 0 0 0 131 132 10 23 27 136 137 0 139 0 5 6 7 \
  2139 + 144 145 22 147 148 149 150 4 152 153 0 155 20 21 158 26 \
  2140 + 32 160 226 228 254 225 227 232 231 230 91 46 60 40 43 33 \
  2141 + 38 233 234 235 249 237 238 190 229 223 93 36 42 41 59 94 \
  2142 + 45 47 194 196 189 193 195 200 199 198 124 44 37 95 62 63 \
  2143 + 161 201 202 203 217 205 206 188 197 96 58 35 64 39 61 34 \
  2144 + 162 97 98 99 100 101 102 103 104 105 156 242 240 253 248 186 \
  2145 + 176 106 107 108 109 110 111 112 113 114 179 241 154 184 178 128 \
  2146 + 185 126 115 116 117 118 119 120 121 122 140 210 208 221 216 170 \
  2147 + 255 165 191 222 175 167 158 159 142 143 163 209 138 168 180 215 \
  2148 + 123 65 66 67 68 69 70 71 72 73 173 244 246 224 243 245 \
  2149 + 125 74 75 76 77 78 79 80 81 82 204 251 252 157 250 236 \
  2150 + 92 247 83 84 85 86 87 88 89 90 239 212 214 192 211 213 \
  2151 + 48 49 50 51 52 53 54 55 56 57 207 219 220 141 218 0
  2152 +#endif
  2153 +! Thai character set for x3270
  2154 +x3270.codepage.thai: 0x03aa0346
  2155 +x3270.displayCharset.thai: iso8859-11,tis620.2529-0
  2156 +x3270.xkSelector.thai: 0x0d
  2157 +x3270.charset.thai: #table\n\
  2158 + 32 1 2 3 156 9 134 127 151 141 142 11 12 13 14 15 \
  2159 + 16 17 18 19 157 133 8 135 24 25 146 143 28 29 30 31 \
  2160 + 128 129 130 131 132 10 23 27 136 137 138 139 140 5 6 7 \
  2161 + 144 145 22 147 148 149 150 4 152 153 154 155 20 21 158 26 \
  2162 + 32 32 161 162 163 164 165 166 167 168 213 46 60 40 43 124 \
  2163 + 38 169 168 169 170 171 172 173 174 177 33 36 42 41 59 126 \
  2164 + 45 47 175 176 177 178 179 180 181 185 203 44 37 95 62 63 \
  2165 + 223 238 182 183 184 185 186 187 188 96 58 35 64 39 61 34 \
  2166 + 239 97 98 99 100 101 102 103 104 105 189 190 191 192 193 194 \
  2167 + 250 106 107 108 109 110 111 112 113 114 195 196 197 198 199 200 \
  2168 + 251 229 115 116 117 118 119 120 121 122 201 202 203 204 205 206 \
  2169 + 240 241 242 243 244 245 246 247 248 249 207 208 209 210 211 212 \
  2170 + 123 65 66 67 68 69 70 71 72 73 232 213 214 215 216 217 \
  2171 + 125 74 75 76 77 78 79 80 81 82 218 224 225 226 227 228 \
  2172 + 92 159 83 84 85 86 87 88 89 90 229 230 231 232 233 234 \
  2173 + 48 49 50 51 52 53 54 55 56 57 235 236 237 253 254 255
  2174 +#ifdef X3270_DBCS
  2175 +! Simplified Chinese.
  2176 +! Note that the 'charset' definition applies only to the single-byte character
  2177 +! set (836), not the double-byte character set (837).
  2178 +x3270.codepage.simplified-chinese: 0x04960344+0xffff0345
  2179 +x3270.displayCharset.simplified-chinese: 3270cg-1a,3270cg-1,iso8859-1+gb2312.1980-0,iso10646-1
  2180 +x3270.charset.simplified-chinese: #table\n\
  2181 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2182 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2183 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2184 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2185 + 32 0 0 0 0 0 0 0 0 0 163 46 60 40 43 124 \
  2186 + 38 0 0 0 0 0 0 0 0 0 33 165 42 41 59 172 \
  2187 + 45 47 0 0 0 0 0 0 0 0 166 44 37 95 62 63 \
  2188 + 0 0 0 0 0 0 0 0 0 96 58 35 64 39 61 34 \
  2189 + 0 97 98 99 100 101 102 103 104 105 0 0 0 0 0 0 \
  2190 + 0 106 107 108 109 110 111 112 113 114 0 0 0 0 0 0 \
  2191 + 126 175 115 116 117 118 119 120 121 122 0 0 0 0 0 0 \
  2192 + 94 0 92 0 0 0 0 0 0 0 91 93 0 0 0 0 \
  2193 + 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
  2194 + 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
  2195 + 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
  2196 + 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
  2197 +! dbcsConverters are ICU converter names, of the form:
  2198 +! [host-SBCS-converter+]host-DBCS-converter,display-font-converter
  2199 +x3270.dbcsConverters.simplified-chinese: ibm-837_P100-2000,gb2312-1980
  2200 +! Simplified Chinese, using GB18030 and code page 1388 (same code page for
  2201 +! SBCS and DBCS).
  2202 +x3270.codepage.chinese-gb18030: 0xffff056c+0xffff056c
  2203 +x3270.displayCharset.chinese-gb18030: 3270cg-1a,3270cg-1,iso8859-1+gb18030.2000-1,iso10646-1
  2204 +x3270.charset.chinese-gb18030: #table\n\
  2205 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2206 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2207 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2208 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2209 + 32 0 0 0 0 0 0 0 0 0 163 46 60 40 43 124 \
  2210 + 38 0 0 0 0 0 0 0 0 0 33 165 42 41 59 172 \
  2211 + 45 47 0 0 0 0 0 0 0 0 166 44 37 95 62 63 \
  2212 + 0 0 0 0 0 0 0 0 0 96 58 35 64 39 61 34 \
  2213 + 0 97 98 99 100 101 102 103 104 105 0 0 0 0 0 0 \
  2214 + 0 106 107 108 109 110 111 112 113 114 0 0 0 0 0 0 \
  2215 + 126 175 115 116 117 118 119 120 121 122 0 0 0 0 0 0 \
  2216 + 94 0 92 0 0 0 0 0 0 0 91 93 0 0 0 0 \
  2217 + 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
  2218 + 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
  2219 + 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
  2220 + 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
  2221 +x3270.dbcsConverters.chinese-gb18030: ibm-1388_P103-2001+ibm-1388_P103-2001,gb18030
  2222 +! Japanese.
  2223 +! Note that the 'charset' definition applies only to the single-byte character
  2224 +! set (1027), not the double-byte character set (300).
  2225 +x3270.codepage.japanese: 0x04940403+0x0172012c
  2226 +x3270.displayCharset.japanese: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
  2227 +x3270.charset.japanese: #table\n\
  2228 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2229 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2230 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2231 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2232 + 32 0 161 162 163 164 165 166 167 168 0 46 60 40 43 124 \
  2233 + 38 169 170 171 172 173 174 175 176 177 33 36 42 41 59 0 \
  2234 + 45 47 178 179 180 181 182 183 184 185 0 44 37 95 62 63 \
  2235 + 186 187 188 189 190 191 192 193 194 96 58 35 64 39 61 34 \
  2236 + 0 97 98 99 100 101 102 103 104 105 195 196 197 198 199 200 \
  2237 + 0 106 107 108 109 110 111 112 113 114 201 202 203 204 205 206 \
  2238 + 126 0 115 116 117 118 119 120 121 122 207 208 209 91 210 211 \
  2239 + 94 0 92 212 213 214 215 216 217 218 219 220 221 93 222 223 \
  2240 + 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
  2241 + 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
  2242 + 0 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
  2243 + 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
  2244 +x3270.dbcsConverters.japanese: ibm-1027_P100-1995+ibm-300_P110-1997,EUC-JP
  2245 +! Japanese, using code page 290 for SBCS.
  2246 +x3270.codepage.japanese-290: 0x04940122+0x0172012c
  2247 +x3270.displayCharset.japanese-290: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
  2248 +x3270.charset.japanese-290: #table\n\
  2249 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2250 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2251 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2252 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2253 + 32 161 162 163 164 165 166 167 168 169 0 46 60 40 43 124 \
  2254 + 38 170 171 172 173 174 175 0 176 0 33 92 42 41 59 0 \
  2255 + 45 47 97 98 99 100 101 102 103 104 0 44 37 95 62 63 \
  2256 + 91 105 106 107 108 109 110 111 112 96 58 35 64 39 61 34 \
  2257 + 93 177 178 179 180 181 182 183 184 185 186 113 187 188 189 190 \
  2258 + 191 192 193 194 195 196 197 198 199 200 201 114 0 202 203 204 \
  2259 + 0 126 205 206 207 208 209 210 211 212 213 115 214 215 216 217 \
  2260 + 94 0 0 116 117 118 119 120 121 122 218 219 220 221 222 223 \
  2261 + 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
  2262 + 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
  2263 + 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
  2264 + 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
  2265 +x3270.dbcsConverters.japanese-290: ibm-290+ibm-300_P110-1997,EUC-JP
  2266 +! Japanese, using code page 930 for both SBCS and DBCS.
  2267 +x3270.codepage.japanese-930: 0x017203a2+0x017203a2
  2268 +x3270.displayCharset.japanese-930: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
  2269 +x3270.charset.japanese-930: #table\n\
  2270 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2271 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2272 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2273 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2274 + 32 161 162 163 164 165 166 167 168 169 0 46 60 40 43 124 \
  2275 + 38 170 171 172 173 174 175 0 176 0 33 92 42 41 59 0 \
  2276 + 45 47 97 98 99 100 101 102 103 104 0 44 37 95 62 63 \
  2277 + 91 105 106 107 108 109 110 111 112 96 58 35 64 39 61 34 \
  2278 + 93 177 178 179 180 181 182 183 184 185 186 113 187 188 189 190 \
  2279 + 191 192 193 194 195 196 197 198 199 200 201 114 0 202 203 204 \
  2280 + 0 126 205 206 207 208 209 210 211 212 213 115 214 215 216 217 \
  2281 + 94 0 0 116 117 118 119 120 121 122 218 219 220 221 222 223 \
  2282 + 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
  2283 + 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
  2284 + 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
  2285 + 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
  2286 +x3270.dbcsConverters.japanese-930: ibm-930+ibm-930,EUC-JP
  2287 +! Japanese, using code page 939 for both SBCS and DBCS.
  2288 +x3270.codepage.japanese-939: 0x017203ab+0x017203ab
  2289 +x3270.displayCharset.japanese-939: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
  2290 +x3270.charset.japanese-939: #table\n\
  2291 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2292 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2293 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2294 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2295 + 32 0 161 162 163 164 165 166 167 168 0 46 60 40 43 124 \
  2296 + 38 169 170 171 172 173 174 175 176 177 33 36 42 41 59 0 \
  2297 + 45 47 178 179 180 181 182 183 184 185 0 44 37 95 62 63 \
  2298 + 186 187 188 189 190 191 192 193 194 96 58 35 64 39 61 34 \
  2299 + 0 97 98 99 100 101 102 103 104 105 195 196 197 198 199 200 \
  2300 + 0 106 107 108 109 110 111 112 113 114 201 202 203 204 205 206 \
  2301 + 126 0 115 116 117 118 119 120 121 122 207 208 209 91 210 211 \
  2302 + 94 0 92 212 213 214 215 216 217 218 219 220 221 93 222 223 \
  2303 + 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
  2304 + 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
  2305 + 0 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
  2306 + 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
  2307 +x3270.dbcsConverters.japanese-939: ibm-939+ibm-939,EUC-JP
  2308 +! Japanese, using code page 1390 for both SBCS and DBCS.
  2309 +x3270.codepage.japanese-1390: 0x0172056e+0x0172056e
  2310 +x3270.displayCharset.japanese-1390: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
  2311 +x3270.charset.japanese-1390: #table\n\
  2312 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2313 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2314 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2315 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2316 + 32 161 162 163 164 165 166 167 168 169 0 46 60 40 43 124 \
  2317 + 38 170 171 172 173 174 175 0 176 0 33 92 42 41 59 0 \
  2318 + 45 47 97 98 99 100 101 102 103 104 0 44 37 95 62 63 \
  2319 + 91 105 106 107 108 109 110 111 112 96 58 35 64 39 61 34 \
  2320 + 93 177 178 179 180 181 182 183 184 185 186 113 187 188 189 190 \
  2321 + 191 192 193 194 195 196 197 198 199 200 201 114 0 202 203 204 \
  2322 + 0 126 205 206 207 208 209 210 211 212 213 115 214 215 216 217 \
  2323 + 94 0 0 116 117 118 119 120 121 122 218 219 220 221 222 223 \
  2324 + 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
  2325 + 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
  2326 + 36 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
  2327 + 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
  2328 +x3270.dbcsConverters.japanese-1390: ibm-1390+ibm-1390,EUC-JP
  2329 +! Japanese, using code page 1399 for both SBCS and DBCS.
  2330 +x3270.codepage.japanese-1399: 0x01720577+0x01720577
  2331 +x3270.displayCharset.japanese-1399: jisx0201.1976-0+jisx0208.1983-0,iso10646-1
  2332 +x3270.charset.japanese-1399: #table\n\
  2333 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2334 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2335 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2336 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \
  2337 + 32 0 161 162 163 164 165 166 167 168 0 46 60 40 43 124 \
  2338 + 38 169 170 171 172 173 174 175 176 177 33 36 42 41 59 0 \
  2339 + 45 47 178 179 180 181 182 183 184 185 0 44 37 95 62 63 \
  2340 + 186 187 188 189 190 191 192 193 194 96 58 35 64 39 61 34 \
  2341 + 0 97 98 99 100 101 102 103 104 105 195 196 197 198 199 200 \
  2342 + 0 106 107 108 109 110 111 112 113 114 201 202 203 204 205 206 \
  2343 + 126 0 115 116 117 118 119 120 121 122 207 208 209 91 210 211 \
  2344 + 94 0 92 212 213 214 215 216 217 218 219 220 221 93 222 223 \
  2345 + 123 65 66 67 68 69 70 71 72 73 0 0 0 0 0 0 \
  2346 + 125 74 75 76 77 78 79 80 81 82 0 0 0 0 0 0 \
  2347 + 0 0 83 84 85 86 87 88 89 90 0 0 0 0 0 0 \
  2348 + 48 49 50 51 52 53 54 55 56 57 0 0 0 0 0 0
  2349 +x3270.dbcsConverters.japanese-1399: ibm-1399+ibm-1399,EUC-JP
  2350 +#endif
  2351 +! Non-standard Persian support.
  2352 +x3270.charset.persian: \
  2353 + *0x42: 0x0622 \n\
  2354 + *0x43: 0x0627 \n\
  2355 + *0x44: 0x0628 \n\
  2356 + *0x45: 0xfb56 \n\
  2357 + *0x46: 0x062a \n\
  2358 + *0x47: 0x062b \n\
  2359 + *0x48: 0x062c \n\
  2360 + *0x49: 0xfb7a \n\
  2361 + *0x51: 0x062d \n\
  2362 + *0x52: 0x062e \n\
  2363 + *0x53: 0x062f \n\
  2364 + *0x54: 0x0630 \n\
  2365 + *0x55: 0x0631 \n\
  2366 + *0x56: 0x0632 \n\
  2367 + *0x57: 0xfb8b \n\
  2368 + *0x58: 0x0633 \n\
  2369 + *0x59: 0x0634 \n\
  2370 + *0x62: 0x0635 \n\
  2371 + *0x63: 0x0636 \n\
  2372 + *0x64: 0x0638 \n\
  2373 + *0x65: 0x0639 \n\
  2374 + *0x66: 0x063a \n\
  2375 + *0x67: 0x063b \n\
  2376 + *0x68: 0x063d \n\
  2377 + *0x69: 0x063e \n\
  2378 + *0x70: 0x063f \n\
  2379 + *0x71: 0x06a9 \n\
  2380 + *0x72: 0x06af \n\
  2381 + *0x73: 0x0641 \n\
  2382 + *0x74: 0x0643 \n\
  2383 + *0x75: 0x0644 \n\
  2384 + *0x76: 0x0646 \n\
  2385 + *0x77: 0x0645 \n\
  2386 + *0x78: 0x064d \n\
  2387 + *0x80: 0x064c \n\
  2388 + *0x8c: 0x0621 \n\
  2389 + *0x8d: 0x0623 \n\
  2390 + *0x8e: 0x0625 \n\
  2391 + *0x9c: 0x0629 \n\
  2392 + *0x9d: 0x0626 \n\
  2393 + *0x9e: 0xfdfc \n\
  2394 + *0xcb: 0x061b \n\
  2395 + *0xcc: 0x060c \n\
  2396 + *0xcd: 0x061f
  2397 +x3270.codepage.persian: 37
  2398 +x3270.displayCharset.persian: iso10646-1
  2399 +! IBM codepage 1047, used by Unix System Services
  2400 +x3270.charset.cp1047: \
  2401 + 0xad: [ \n 0xba: Yacute \n\
  2402 + 0xbd: ] \n 0xbb: diaeresis \n\
  2403 + 0x5f: asciicircum \n 0xb0: notsign
  2404 +! Spanish character set for x3270.
  2405 +x3270.codepage.spanish: 284
  2406 +x3270.displayCharset.spanish: 3270cg-1a,3270cg-1,iso8859-1
  2407 +x3270.charset.spanish: #table\n\
  2408 + 0 1 2 3 156 9 134 127 151 141 142 11 12 13 14 15 \
  2409 + 16 17 18 19 157 133 8 135 24 25 146 143 28 29 30 31 \
  2410 +128 129 130 131 132 10 23 27 136 137 138 139 140 5 6 7 \
  2411 +144 145 22 147 148 149 150 4 152 153 154 155 20 21 158 26 \
  2412 + 32 160 226 228 224 225 227 229 231 166 91 46 60 40 43 124 \
  2413 + 38 233 234 235 232 237 238 239 236 223 93 36 42 41 59 172 \
  2414 + 45 47 194 196 192 193 195 197 199 35 241 44 37 95 62 63 \
  2415 +248 201 202 203 200 205 206 207 204 96 58 209 64 39 61 34 \
  2416 +216 97 98 99 100 101 102 103 104 105 171 187 240 253 254 177 \
  2417 +176 106 107 108 109 110 111 112 113 114 170 186 230 184 198 164 \
  2418 +181 168 115 116 117 118 119 120 121 122 161 191 208 221 222 174 \
  2419 +162 163 165 183 169 167 182 188 189 190 94 33 175 126 180 215 \
  2420 +123 65 66 67 68 69 70 71 72 73 173 244 246 242 243 245 \
  2421 +125 74 75 76 77 78 79 80 81 82 185 251 252 249 250 255 \
  2422 + 92 247 83 84 85 86 87 88 89 90 178 212 214 210 211 213 \
  2423 + 48 49 50 51 52 53 54 55 56 57 179 219 220 217 218 159
  2424 +! Spanish w/Euro (code page 1145)
  2425 +x3270.codepage.spanish-euro: 0x02b70479
  2426 +x3270.displayCharset.spanish-euro: 3270cg-15a,3270cg-15,iso8859-15
... ...
src/lib3270/lib3270.pc.in 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +prefix=@prefix@
  2 +exec_prefix=@exec_prefix@
  3 +libdir=@libdir@
  4 +includedir=@includedir@
  5 +
  6 +version_major=@PACKAGE_MAJOR_VERSION@
  7 +version_minor=@PACKAGE_MINOR_VERSION@
  8 +sdk_version=@LIB3270_SDK_VERSION@
  9 +
  10 +Name: @PACKAGE_NAME@
  11 +Description: @PACKAGE_DESCRIPTION@
  12 +Version: @PACKAGE_VERSION@
  13 +Libs: -L\@libdir@ -l@LIB3270_NAME@
  14 +Libs.private: @LIBSSL_LIBS@
  15 +Cflags: -I@includedir@
  16 +
... ...
src/lib3270/mkfb/mkfb.c 0 → 100644
... ... @@ -0,0 +1,662 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como mkfb.c e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 +/*
  31 + * mkfb.c
  32 + * Utility to create RDB string definitions from a simple #ifdef'd .ad
  33 + * file
  34 + */
  35 +
  36 +#include "../../include/config.h"
  37 +
  38 +
  39 +#if defined( WIN32 )
  40 + #include <windows.h>
  41 + #define tmpfile w32_tmpfile
  42 +#elif defined( __APPLE__ )
  43 + #define tmpfile osx_tmpfile
  44 +#endif // OS
  45 +
  46 +#include <sys/stat.h>
  47 +#include <fcntl.h>
  48 +
  49 +#include <stdio.h>
  50 +#include <string.h>
  51 +#include <ctype.h>
  52 +#include <stdlib.h>
  53 +#include <errno.h>
  54 +
  55 +#define BUFSZ 1024 /* input line buffer size */
  56 +#define ARRSZ 8192 /* output array size */
  57 +#define SSSZ 10 /* maximum nested ifdef */
  58 +
  59 +unsigned aix[ARRSZ]; /* fallback array indices */
  60 +unsigned xlno[ARRSZ]; /* fallback array line numbers */
  61 +unsigned n_fallbacks = 0; /* number of fallback entries */
  62 +
  63 +/* ifdef state stack */
  64 +#define MODE_COLOR 0x00000001
  65 +#define MODE_FT 0x00000002
  66 +#define MODE_TRACE 0x00000004
  67 +#define MODE_MENUS 0x00000008
  68 +#define MODE_ANSI 0x00000010
  69 +#define MODE_KEYPAD 0x00000020
  70 +#define MODE_APL 0x00000040
  71 +#define MODE_PRINTER 0x00000080
  72 +#define MODE_STANDALONE 0x00000100
  73 +#define MODE_SCRIPT 0x00000200
  74 +#define MODE_DBCS 0x00000400
  75 +#define MODE__WIN32 0x00000800
  76 +
  77 +#define MODEMASK 0x00000fff
  78 +
  79 +struct {
  80 + unsigned long ifdefs;
  81 + unsigned long ifndefs;
  82 + unsigned lno;
  83 +} ss[SSSZ];
  84 +int ssp = 0;
  85 +
  86 +struct {
  87 + const char *name;
  88 + unsigned long mask;
  89 +} parts[] = {
  90 + { "COLOR", MODE_COLOR },
  91 + { "X3270_FT", MODE_FT },
  92 + { "X3270_TRACE", MODE_TRACE },
  93 + { "X3270_MENUS", MODE_MENUS },
  94 + { "X3270_ANSI", MODE_ANSI },
  95 + { "X3270_KEYPAD", MODE_KEYPAD },
  96 + { "X3270_APL", MODE_APL },
  97 + { "X3270_PRINTER", MODE_PRINTER },
  98 + { "STANDALONE", MODE_STANDALONE },
  99 + { "X3270_SCRIPT", MODE_SCRIPT },
  100 + { "X3270_DBCS", MODE_DBCS },
  101 + { "_WIN32", MODE__WIN32 }
  102 +};
  103 +#define NPARTS (sizeof(parts)/sizeof(parts[0]))
  104 +
  105 +unsigned long is_defined =
  106 + MODE_COLOR |
  107 +#if defined(X3270_FT)
  108 + MODE_FT
  109 +#else
  110 + 0
  111 +#endif
  112 +|
  113 +#if defined(X3270_TRACE)
  114 + MODE_TRACE
  115 +#else
  116 + 0
  117 +#endif
  118 +|
  119 +#if defined(X3270_MENUS)
  120 + MODE_MENUS
  121 +#else
  122 + 0
  123 +#endif
  124 +|
  125 +#if defined(X3270_ANSI)
  126 + MODE_ANSI
  127 +#else
  128 + 0
  129 +#endif
  130 +|
  131 +#if defined(X3270_KEYPAD)
  132 + MODE_KEYPAD
  133 +#else
  134 + 0
  135 +#endif
  136 +|
  137 +#if defined(X3270_APL)
  138 + MODE_APL
  139 +#else
  140 + 0
  141 +#endif
  142 +|
  143 +#if defined(X3270_PRINTER)
  144 + MODE_PRINTER
  145 +#else
  146 + 0
  147 +#endif
  148 +|
  149 +#if defined(X3270_SCRIPT)
  150 + MODE_SCRIPT
  151 +#else
  152 + 0
  153 +#endif
  154 +|
  155 +#if defined(X3270_DBCS)
  156 + MODE_DBCS
  157 +#else
  158 + 0
  159 +#endif
  160 +|
  161 +#if defined(_WIN32)
  162 + MODE__WIN32
  163 +#else
  164 + 0
  165 +#endif
  166 + ;
  167 +unsigned long is_undefined;
  168 +
  169 +char *me;
  170 +
  171 +void emit(FILE *t, int ix, char c);
  172 +
  173 +void
  174 +usage(void)
  175 +{
  176 + fprintf(stderr, "usage: %s [infile [outfile]]\n", me);
  177 + exit(1);
  178 +}
  179 +
  180 +int
  181 +main(int argc, char *argv[])
  182 +{
  183 + char buf[BUFSZ];
  184 + int lno = 0;
  185 + int cc = 0;
  186 + int i;
  187 + int continued = 0;
  188 + const char *filename = "standard input";
  189 + FILE *u, *t, *tc = NULL, *tm = NULL, *o;
  190 + int cmode = 0;
  191 + unsigned long ifdefs;
  192 + unsigned long ifndefs;
  193 + int last_continue = 0;
  194 +
  195 + /* Parse arguments. */
  196 + if ((me = strrchr(argv[0], '/')) != (char *)NULL)
  197 + me++;
  198 + else
  199 + me = argv[0];
  200 + if (argc > 1 && !strcmp(argv[1], "-c")) {
  201 + cmode = 1;
  202 + is_defined |= MODE_STANDALONE;
  203 + argc--;
  204 + argv++;
  205 + }
  206 + switch (argc) {
  207 + case 1:
  208 + break;
  209 + case 2:
  210 + case 3:
  211 + if (strcmp(argv[1], "-")) {
  212 + if (freopen(argv[1], "r", stdin) == (FILE *)NULL) {
  213 + perror(argv[1]);
  214 + exit(1);
  215 + }
  216 + filename = argv[1];
  217 + }
  218 + break;
  219 + default:
  220 + usage();
  221 + }
  222 +
  223 + is_undefined = MODE_COLOR | (~is_defined & MODEMASK);
  224 +
  225 + /* Do #ifdef, comment and whitespace processing first. */
  226 + u = tmpfile();
  227 + if (u == NULL) {
  228 + perror("tmpfile");
  229 + exit(1);
  230 + }
  231 +
  232 + while (fgets(buf, BUFSZ, stdin) != (char *)NULL) {
  233 + char *s = buf;
  234 + int sl;
  235 + int i;
  236 +
  237 + lno++;
  238 +
  239 + /* Skip leading white space. */
  240 + while (isspace(*s))
  241 + s++;
  242 + if (cmode &&
  243 + (!strncmp(s, "x3270.", 6) || !strncmp(s, "x3270*", 6))) {
  244 + s += 6;
  245 + }
  246 +
  247 + /* Remove trailing white space. */
  248 + while ((sl = strlen(s)) && isspace(s[sl-1]))
  249 + s[sl-1] = '\0';
  250 +
  251 + /* Skip comments and empty lines. */
  252 + if ((!last_continue && *s == '!') || !*s)
  253 + continue;
  254 +
  255 + /* Check for simple if[n]defs. */
  256 + if (*s == '#') {
  257 + int ifnd = 1;
  258 +
  259 + if (!strncmp(s, "#ifdef ", 7) ||
  260 + !(ifnd = strncmp(s, "#ifndef ", 8))) {
  261 + char *tk;
  262 +
  263 + if (ssp >= SSSZ) {
  264 + fprintf(stderr,
  265 + "%s, line %d: Stack overflow\n",
  266 + filename, lno);
  267 + exit(1);
  268 + }
  269 + ss[ssp].ifdefs = 0L;
  270 + ss[ssp].ifndefs = 0L;
  271 + ss[ssp].lno = lno;
  272 +
  273 + tk = s + 7 + !ifnd;
  274 + for (i = 0; i < NPARTS; i++) {
  275 + if (!strcmp(tk, parts[i].name)) {
  276 + if (!ifnd)
  277 + ss[ssp++].ifndefs =
  278 + parts[i].mask;
  279 + else
  280 + ss[ssp++].ifdefs =
  281 + parts[i].mask;
  282 + break;
  283 + }
  284 + }
  285 + if (i >= NPARTS) {
  286 + fprintf(stderr,
  287 + "%s, line %d: Unknown condition\n",
  288 + filename, lno);
  289 + exit(1);
  290 + }
  291 + continue;
  292 + }
  293 +
  294 + else if (!strcmp(s, "#else")) {
  295 + unsigned long tmp;
  296 +
  297 + if (!ssp) {
  298 + fprintf(stderr,
  299 + "%s, line %d: Missing #if[n]def\n",
  300 + filename, lno);
  301 + exit(1);
  302 + }
  303 + tmp = ss[ssp-1].ifdefs;
  304 + ss[ssp-1].ifdefs = ss[ssp-1].ifndefs;
  305 + ss[ssp-1].ifndefs = tmp;
  306 + } else if (!strcmp(s, "#endif")) {
  307 + if (!ssp) {
  308 + fprintf(stderr,
  309 + "%s, line %d: Missing #if[n]def\n",
  310 + filename, lno);
  311 + exit(1);
  312 + }
  313 + ssp--;
  314 + } else {
  315 + fprintf(stderr,
  316 + "%s, line %d: Unrecognized # directive\n",
  317 + filename, lno);
  318 + exit(1);
  319 + }
  320 + continue;
  321 + }
  322 +
  323 + /* Figure out if there's anything to emit. */
  324 +
  325 + /* First, look for contradictions. */
  326 + ifdefs = 0;
  327 + ifndefs = 0;
  328 + for (i = 0; i < ssp; i++) {
  329 + ifdefs |= ss[i].ifdefs;
  330 + ifndefs |= ss[i].ifndefs;
  331 + }
  332 + if (ifdefs & ifndefs) {
  333 +#ifdef DEBUG_IFDEFS
  334 + fprintf(stderr, "contradiction, line %d\n", lno);
  335 +#endif
  336 + continue;
  337 + }
  338 +
  339 + /* Then, apply the actual values. */
  340 + if (ifdefs && (ifdefs & is_defined) != ifdefs) {
  341 +#ifdef DEBUG_IFDEFS
  342 + fprintf(stderr, "ifdef failed, line %d\n", lno);
  343 +#endif
  344 + continue;
  345 + }
  346 + if (ifndefs && (ifndefs & is_undefined) != ifndefs) {
  347 +#ifdef DEBUG_IFDEFS
  348 + fprintf(stderr, "ifndef failed, line %d\n", lno);
  349 +#endif
  350 + continue;
  351 + }
  352 +
  353 + /* Emit the text. */
  354 + fprintf(u, "%lx %lx %d\n%s\n", ifdefs, ifndefs, lno, s);
  355 + last_continue = strlen(s) > 0 && s[strlen(s) - 1] == '\\';
  356 + }
  357 + if (ssp) {
  358 + fprintf(stderr, "%d missing #endif(s) in %s\n", ssp, filename);
  359 + fprintf(stderr, "last #ifdef was at line %u\n", ss[ssp-1].lno);
  360 + exit(1);
  361 + }
  362 +
  363 + /* Re-scan, emitting code this time. */
  364 + rewind(u);
  365 + t = tmpfile();
  366 + if (t == NULL) {
  367 + perror("tmpfile");
  368 + exit(1);
  369 + }
  370 + if (!cmode) {
  371 + tc = tmpfile();
  372 + if (tc == NULL) {
  373 + perror("tmpfile");
  374 + exit(1);
  375 + }
  376 + tm = tmpfile();
  377 + if (tm == NULL) {
  378 + perror("tmpfile");
  379 + exit(1);
  380 + }
  381 + }
  382 +
  383 + /* Emit the initial boilerplate. */
  384 + fprintf(t, "/* This file was created automatically from %s by mkfb. */\n\n",
  385 + filename);
  386 + if (cmode) {
  387 + fprintf(t, "#include \"../../src/lib3270/private.h\"\n");
  388 + fprintf(t, "static unsigned char fsd[] = {\n");
  389 + } else {
  390 + fprintf(t, "unsigned char common_fallbacks[] = {\n");
  391 + fprintf(tc, "unsigned char color_fallbacks[] = {\n");
  392 + fprintf(tm, "unsigned char mono_fallbacks[] = {\n");
  393 + }
  394 +
  395 + /* Scan the file, emitting the fsd array and creating the indices. */
  396 + while (fscanf(u, "%lx %lx %d\n", &ifdefs, &ifndefs, &lno) == 3) {
  397 + char *s = buf;
  398 + char c;
  399 + int white;
  400 + FILE *t_this = t;
  401 + int ix = 0;
  402 +
  403 + if (fgets(buf, BUFSZ, u) == NULL)
  404 + break;
  405 + if (strlen(buf) > 0 && buf[strlen(buf)-1] == '\n')
  406 + buf[strlen(buf)-1] = '\0';
  407 +
  408 +#if 0
  409 + fprintf(stderr, "%lx %lx %d %s\n", ifdefs, ifndefs, lno, buf);
  410 +#endif
  411 +
  412 + /* Add array offsets. */
  413 + if (cmode) {
  414 + /* Ignore color. Accumulate offsets into an array. */
  415 + if (n_fallbacks >= ARRSZ) {
  416 + fprintf(stderr, "%s, line %d: Buffer overflow\n", filename, lno);
  417 + exit(1);
  418 + }
  419 + aix[n_fallbacks] = cc;
  420 + xlno[n_fallbacks++] = lno;
  421 + } else {
  422 + /* Use color to decide which file to write into. */
  423 + if (!(ifdefs & MODE_COLOR) && !(ifndefs & MODE_COLOR)) {
  424 + /* Both. */
  425 + t_this = t;
  426 + ix = 0;
  427 + } else if (ifdefs & MODE_COLOR) {
  428 + /* Just color. */
  429 + t_this = tc;
  430 + ix = 1;
  431 + } else {
  432 + /* Just mono. */
  433 + t_this = tm;
  434 + ix = 2;
  435 + }
  436 + }
  437 +
  438 + continued = 0;
  439 + white = 0;
  440 + while ((c = *s++) != '\0') {
  441 + if (c == ' ' || c == '\t')
  442 + white++;
  443 + else if (white) {
  444 + emit(t_this, ix, ' ');
  445 + cc++;
  446 + white = 0;
  447 + }
  448 + switch (c) {
  449 + case ' ':
  450 + case '\t':
  451 + break;
  452 + case '#':
  453 + if (!cmode) {
  454 + emit(t_this, ix, '\\');
  455 + emit(t_this, ix, '#');
  456 + cc += 2;
  457 + } else {
  458 + emit(t_this, ix, c);
  459 + cc++;
  460 + }
  461 + break;
  462 + case '\\':
  463 + if (*s == '\0') {
  464 + continued = 1;
  465 + break;
  466 + } else if (cmode) {
  467 + switch ((c = *s++)) {
  468 + case 't':
  469 + c = '\t';
  470 + break;
  471 + case 'n':
  472 + c = '\n';
  473 + break;
  474 + default:
  475 + break;
  476 + }
  477 + }
  478 + /* else fall through */
  479 + default:
  480 + emit(t_this, ix, c);
  481 + cc++;
  482 + break;
  483 + }
  484 + }
  485 + if (white) {
  486 + emit(t_this, ix, ' ');
  487 + cc++;
  488 + white = 0;
  489 + }
  490 + if (!continued) {
  491 + if (cmode)
  492 + emit(t_this, ix, 0);
  493 + else
  494 + emit(t_this, ix, '\n');
  495 + cc++;
  496 + }
  497 + }
  498 + fclose(u);
  499 + if (cmode)
  500 + fprintf(t, "};\n\n");
  501 + else {
  502 + emit(t, 0, 0);
  503 + fprintf(t, "};\n\n");
  504 + emit(tc, 0, 0);
  505 + fprintf(tc, "};\n\n");
  506 + emit(tm, 0, 0);
  507 + fprintf(tm, "};\n\n");
  508 + }
  509 +
  510 +
  511 + /* Open the output file. */
  512 + if (argc == 3) {
  513 + o = fopen(argv[2], "w");
  514 + if (o == NULL) {
  515 + perror(argv[2]);
  516 + exit(1);
  517 + }
  518 + } else
  519 + o = stdout;
  520 +
  521 + /* Copy tmp to output. */
  522 + rewind(t);
  523 + if (!cmode) {
  524 + rewind(tc);
  525 + rewind(tm);
  526 + }
  527 + while (fgets(buf, sizeof(buf), t) != NULL) {
  528 + fprintf(o, "%s", buf);
  529 + }
  530 + if (!cmode) {
  531 + while (fgets(buf, sizeof(buf), tc) != NULL) {
  532 + fprintf(o, "%s", buf);
  533 + }
  534 + while (fgets(buf, sizeof(buf), tm) != NULL) {
  535 + fprintf(o, "%s", buf);
  536 + }
  537 + }
  538 +
  539 + if (cmode) {
  540 + /* Emit the fallback array. */
  541 + fprintf(o, "String fallbacks[%u] = {\n", n_fallbacks + 1);
  542 + for (i = 0; i < n_fallbacks; i++) {
  543 + fprintf(o, "\t(String)&fsd[%u], /* line %u */\n",
  544 + aix[i],
  545 + xlno[i]);
  546 + }
  547 + fprintf(o, "\t(String)NULL\n};\n\n");
  548 +
  549 + /* Emit some test code. */
  550 + fprintf(o, "%s", "#if defined(DUMP) /*[*/\n\
  551 +#include <stdio.h>\n\
  552 +int\n\
  553 +main(int argc, char *argv[])\n\
  554 +{\n\
  555 + int i;\n\
  556 +\n\
  557 + for (i = 0; fallbacks[i] != NULL; i++)\n\
  558 + printf(\"%d: %s\\n\", i, fallbacks[i]);\n\
  559 + return 0;\n\
  560 +}\n");
  561 + fprintf(o, "#endif /*]*/\n\n");
  562 + }
  563 +
  564 + if (o != stdout)
  565 + fclose(o);
  566 + fclose(t);
  567 + if (!cmode) {
  568 + fclose(tc);
  569 + fclose(tm);
  570 + }
  571 +
  572 + return 0;
  573 +}
  574 +
  575 +static int n_out[3] = { 0, 0, 0 };
  576 +
  577 +void
  578 +emit(FILE *t, int ix, char c)
  579 +{
  580 + if (n_out[ix] >= 19) {
  581 + fprintf(t, "\n");
  582 + n_out[ix] = 0;
  583 + }
  584 + fprintf(t, "%3d,", (unsigned char)c);
  585 + n_out[ix]++;
  586 +}
  587 +
  588 +#if defined(_WIN32)
  589 +FILE * w32_tmpfile( void )
  590 +{
  591 + char *dir;
  592 + char *xtemplate;
  593 + DWORD retval;
  594 + size_t len;
  595 + int fd;
  596 + FILE *file = NULL;
  597 +
  598 + dir = (char *) malloc(PATH_MAX);
  599 + xtemplate = (char *) malloc(PATH_MAX);
  600 +
  601 + /* Find Windows temporary file directory.
  602 + We provide this as the directory argument to path_search
  603 + because Windows defines P_tmpdir to "\\" and will therefore
  604 + try to put all temporary files in the root (unless $TMPDIR
  605 + is set). */
  606 + retval = GetTempPath (PATH_MAX, dir);
  607 + if (retval == 0 || retval >= PATH_MAX - 1)
  608 + goto done;
  609 +
  610 + do
  611 + {
  612 + char *tempname = tempnam(dir,"XXXXXX");
  613 + if(!tempname)
  614 + goto done;
  615 +
  616 + fd = _open (tempname,_O_BINARY | _O_CREAT | _O_TEMPORARY | _O_EXCL | _O_RDWR,_S_IREAD | _S_IWRITE);
  617 + }
  618 + while (fd < 0 && errno == EEXIST);
  619 +
  620 + if (fd < 0)
  621 + goto done;
  622 +
  623 + file = _fdopen (fd, "w+b");
  624 + if (file == NULL)
  625 + {
  626 + int save_errno = errno;
  627 + _close (fd);
  628 + errno = save_errno;
  629 + }
  630 +
  631 + done:
  632 + free(xtemplate);
  633 + free(dir);
  634 + return file;
  635 +}
  636 +#elif defined( __APPLE__ )
  637 +FILE * osx_tmpfile( void )
  638 +{
  639 + int fd = -1;
  640 + FILE *file = NULL;
  641 +
  642 + do
  643 + {
  644 + char *tempname = tempnam(NULL,"XXXXXX");
  645 + if(!tempname)
  646 + return NULL;
  647 + fd = open (tempname,O_CREAT | O_EXCL | O_RDWR,S_IREAD | S_IWRITE);
  648 + } while (fd < 0 && errno == EEXIST);
  649 +
  650 +
  651 + file = fdopen (fd, "w+b");
  652 + if (file == NULL)
  653 + {
  654 + int save_errno = errno;
  655 + close (fd);
  656 + errno = save_errno;
  657 + }
  658 +
  659 + return file;
  660 +}
  661 +
  662 +#endif // _WIN32
... ...
src/mkfb/mkfb.c
... ... @@ -1,662 +0,0 @@
1   -/*
2   - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
3   - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
4   - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270.
5   - *
6   - * Copyright (C) <2008> <Banco do Brasil S.A.>
7   - *
8   - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
9   - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
10   - * Free Software Foundation.
11   - *
12   - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
13   - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
14   - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
15   - * obter mais detalhes.
16   - *
17   - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
18   - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como mkfb.c e possui - linhas de código.
22   - *
23   - * Contatos:
24   - *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
27   - *
28   - */
29   -
30   -/*
31   - * mkfb.c
32   - * Utility to create RDB string definitions from a simple #ifdef'd .ad
33   - * file
34   - */
35   -
36   -#include "../include/config.h"
37   -
38   -
39   -#if defined( WIN32 )
40   - #include <windows.h>
41   - #define tmpfile w32_tmpfile
42   -#elif defined( __APPLE__ )
43   - #define tmpfile osx_tmpfile
44   -#endif // OS
45   -
46   -#include <sys/stat.h>
47   -#include <fcntl.h>
48   -
49   -#include <stdio.h>
50   -#include <string.h>
51   -#include <ctype.h>
52   -#include <stdlib.h>
53   -#include <errno.h>
54   -
55   -#define BUFSZ 1024 /* input line buffer size */
56   -#define ARRSZ 8192 /* output array size */
57   -#define SSSZ 10 /* maximum nested ifdef */
58   -
59   -unsigned aix[ARRSZ]; /* fallback array indices */
60   -unsigned xlno[ARRSZ]; /* fallback array line numbers */
61   -unsigned n_fallbacks = 0; /* number of fallback entries */
62   -
63   -/* ifdef state stack */
64   -#define MODE_COLOR 0x00000001
65   -#define MODE_FT 0x00000002
66   -#define MODE_TRACE 0x00000004
67   -#define MODE_MENUS 0x00000008
68   -#define MODE_ANSI 0x00000010
69   -#define MODE_KEYPAD 0x00000020
70   -#define MODE_APL 0x00000040
71   -#define MODE_PRINTER 0x00000080
72   -#define MODE_STANDALONE 0x00000100
73   -#define MODE_SCRIPT 0x00000200
74   -#define MODE_DBCS 0x00000400
75   -#define MODE__WIN32 0x00000800
76   -
77   -#define MODEMASK 0x00000fff
78   -
79   -struct {
80   - unsigned long ifdefs;
81   - unsigned long ifndefs;
82   - unsigned lno;
83   -} ss[SSSZ];
84   -int ssp = 0;
85   -
86   -struct {
87   - const char *name;
88   - unsigned long mask;
89   -} parts[] = {
90   - { "COLOR", MODE_COLOR },
91   - { "X3270_FT", MODE_FT },
92   - { "X3270_TRACE", MODE_TRACE },
93   - { "X3270_MENUS", MODE_MENUS },
94   - { "X3270_ANSI", MODE_ANSI },
95   - { "X3270_KEYPAD", MODE_KEYPAD },
96   - { "X3270_APL", MODE_APL },
97   - { "X3270_PRINTER", MODE_PRINTER },
98   - { "STANDALONE", MODE_STANDALONE },
99   - { "X3270_SCRIPT", MODE_SCRIPT },
100   - { "X3270_DBCS", MODE_DBCS },
101   - { "_WIN32", MODE__WIN32 }
102   -};
103   -#define NPARTS (sizeof(parts)/sizeof(parts[0]))
104   -
105   -unsigned long is_defined =
106   - MODE_COLOR |
107   -#if defined(X3270_FT)
108   - MODE_FT
109   -#else
110   - 0
111   -#endif
112   -|
113   -#if defined(X3270_TRACE)
114   - MODE_TRACE
115   -#else
116   - 0
117   -#endif
118   -|
119   -#if defined(X3270_MENUS)
120   - MODE_MENUS
121   -#else
122   - 0
123   -#endif
124   -|
125   -#if defined(X3270_ANSI)
126   - MODE_ANSI
127   -#else
128   - 0
129   -#endif
130   -|
131   -#if defined(X3270_KEYPAD)
132   - MODE_KEYPAD
133   -#else
134   - 0
135   -#endif
136   -|
137   -#if defined(X3270_APL)
138   - MODE_APL
139   -#else
140   - 0
141   -#endif
142   -|
143   -#if defined(X3270_PRINTER)
144   - MODE_PRINTER
145   -#else
146   - 0
147   -#endif
148   -|
149   -#if defined(X3270_SCRIPT)
150   - MODE_SCRIPT
151   -#else
152   - 0
153   -#endif
154   -|
155   -#if defined(X3270_DBCS)
156   - MODE_DBCS
157   -#else
158   - 0
159   -#endif
160   -|
161   -#if defined(_WIN32)
162   - MODE__WIN32
163   -#else
164   - 0
165   -#endif
166   - ;
167   -unsigned long is_undefined;
168   -
169   -char *me;
170   -
171   -void emit(FILE *t, int ix, char c);
172   -
173   -void
174   -usage(void)
175   -{
176   - fprintf(stderr, "usage: %s [infile [outfile]]\n", me);
177   - exit(1);
178   -}
179   -
180   -int
181   -main(int argc, char *argv[])
182   -{
183   - char buf[BUFSZ];
184   - int lno = 0;
185   - int cc = 0;
186   - int i;
187   - int continued = 0;
188   - const char *filename = "standard input";
189   - FILE *u, *t, *tc = NULL, *tm = NULL, *o;
190   - int cmode = 0;
191   - unsigned long ifdefs;
192   - unsigned long ifndefs;
193   - int last_continue = 0;
194   -
195   - /* Parse arguments. */
196   - if ((me = strrchr(argv[0], '/')) != (char *)NULL)
197   - me++;
198   - else
199   - me = argv[0];
200   - if (argc > 1 && !strcmp(argv[1], "-c")) {
201   - cmode = 1;
202   - is_defined |= MODE_STANDALONE;
203   - argc--;
204   - argv++;
205   - }
206   - switch (argc) {
207   - case 1:
208   - break;
209   - case 2:
210   - case 3:
211   - if (strcmp(argv[1], "-")) {
212   - if (freopen(argv[1], "r", stdin) == (FILE *)NULL) {
213   - perror(argv[1]);
214   - exit(1);
215   - }
216   - filename = argv[1];
217   - }
218   - break;
219   - default:
220   - usage();
221   - }
222   -
223   - is_undefined = MODE_COLOR | (~is_defined & MODEMASK);
224   -
225   - /* Do #ifdef, comment and whitespace processing first. */
226   - u = tmpfile();
227   - if (u == NULL) {
228   - perror("tmpfile");
229   - exit(1);
230   - }
231   -
232   - while (fgets(buf, BUFSZ, stdin) != (char *)NULL) {
233   - char *s = buf;
234   - int sl;
235   - int i;
236   -
237   - lno++;
238   -
239   - /* Skip leading white space. */
240   - while (isspace(*s))
241   - s++;
242   - if (cmode &&
243   - (!strncmp(s, "x3270.", 6) || !strncmp(s, "x3270*", 6))) {
244   - s += 6;
245   - }
246   -
247   - /* Remove trailing white space. */
248   - while ((sl = strlen(s)) && isspace(s[sl-1]))
249   - s[sl-1] = '\0';
250   -
251   - /* Skip comments and empty lines. */
252   - if ((!last_continue && *s == '!') || !*s)
253   - continue;
254   -
255   - /* Check for simple if[n]defs. */
256   - if (*s == '#') {
257   - int ifnd = 1;
258   -
259   - if (!strncmp(s, "#ifdef ", 7) ||
260   - !(ifnd = strncmp(s, "#ifndef ", 8))) {
261   - char *tk;
262   -
263   - if (ssp >= SSSZ) {
264   - fprintf(stderr,
265   - "%s, line %d: Stack overflow\n",
266   - filename, lno);
267   - exit(1);
268   - }
269   - ss[ssp].ifdefs = 0L;
270   - ss[ssp].ifndefs = 0L;
271   - ss[ssp].lno = lno;
272   -
273   - tk = s + 7 + !ifnd;
274   - for (i = 0; i < NPARTS; i++) {
275   - if (!strcmp(tk, parts[i].name)) {
276   - if (!ifnd)
277   - ss[ssp++].ifndefs =
278   - parts[i].mask;
279   - else
280   - ss[ssp++].ifdefs =
281   - parts[i].mask;
282   - break;
283   - }
284   - }
285   - if (i >= NPARTS) {
286   - fprintf(stderr,
287   - "%s, line %d: Unknown condition\n",
288   - filename, lno);
289   - exit(1);
290   - }
291   - continue;
292   - }
293   -
294   - else if (!strcmp(s, "#else")) {
295   - unsigned long tmp;
296   -
297   - if (!ssp) {
298   - fprintf(stderr,
299   - "%s, line %d: Missing #if[n]def\n",
300   - filename, lno);
301   - exit(1);
302   - }
303   - tmp = ss[ssp-1].ifdefs;
304   - ss[ssp-1].ifdefs = ss[ssp-1].ifndefs;
305   - ss[ssp-1].ifndefs = tmp;
306   - } else if (!strcmp(s, "#endif")) {
307   - if (!ssp) {
308   - fprintf(stderr,
309   - "%s, line %d: Missing #if[n]def\n",
310   - filename, lno);
311   - exit(1);
312   - }
313   - ssp--;
314   - } else {
315   - fprintf(stderr,
316   - "%s, line %d: Unrecognized # directive\n",
317   - filename, lno);
318   - exit(1);
319   - }
320   - continue;
321   - }
322   -
323   - /* Figure out if there's anything to emit. */
324   -
325   - /* First, look for contradictions. */
326   - ifdefs = 0;
327   - ifndefs = 0;
328   - for (i = 0; i < ssp; i++) {
329   - ifdefs |= ss[i].ifdefs;
330   - ifndefs |= ss[i].ifndefs;
331   - }
332   - if (ifdefs & ifndefs) {
333   -#ifdef DEBUG_IFDEFS
334   - fprintf(stderr, "contradiction, line %d\n", lno);
335   -#endif
336   - continue;
337   - }
338   -
339   - /* Then, apply the actual values. */
340   - if (ifdefs && (ifdefs & is_defined) != ifdefs) {
341   -#ifdef DEBUG_IFDEFS
342   - fprintf(stderr, "ifdef failed, line %d\n", lno);
343   -#endif
344   - continue;
345   - }
346   - if (ifndefs && (ifndefs & is_undefined) != ifndefs) {
347   -#ifdef DEBUG_IFDEFS
348   - fprintf(stderr, "ifndef failed, line %d\n", lno);
349   -#endif
350   - continue;
351   - }
352   -
353   - /* Emit the text. */
354   - fprintf(u, "%lx %lx %d\n%s\n", ifdefs, ifndefs, lno, s);
355   - last_continue = strlen(s) > 0 && s[strlen(s) - 1] == '\\';
356   - }
357   - if (ssp) {
358   - fprintf(stderr, "%d missing #endif(s) in %s\n", ssp, filename);
359   - fprintf(stderr, "last #ifdef was at line %u\n", ss[ssp-1].lno);
360   - exit(1);
361   - }
362   -
363   - /* Re-scan, emitting code this time. */
364   - rewind(u);
365   - t = tmpfile();
366   - if (t == NULL) {
367   - perror("tmpfile");
368   - exit(1);
369   - }
370   - if (!cmode) {
371   - tc = tmpfile();
372   - if (tc == NULL) {
373   - perror("tmpfile");
374   - exit(1);
375   - }
376   - tm = tmpfile();
377   - if (tm == NULL) {
378   - perror("tmpfile");
379   - exit(1);
380   - }
381   - }
382   -
383   - /* Emit the initial boilerplate. */
384   - fprintf(t, "/* This file was created automatically from %s by mkfb. */\n\n",
385   - filename);
386   - if (cmode) {
387   - fprintf(t, "#include \"../../src/lib3270/private.h\"\n");
388   - fprintf(t, "static unsigned char fsd[] = {\n");
389   - } else {
390   - fprintf(t, "unsigned char common_fallbacks[] = {\n");
391   - fprintf(tc, "unsigned char color_fallbacks[] = {\n");
392   - fprintf(tm, "unsigned char mono_fallbacks[] = {\n");
393   - }
394   -
395   - /* Scan the file, emitting the fsd array and creating the indices. */
396   - while (fscanf(u, "%lx %lx %d\n", &ifdefs, &ifndefs, &lno) == 3) {
397   - char *s = buf;
398   - char c;
399   - int white;
400   - FILE *t_this = t;
401   - int ix = 0;
402   -
403   - if (fgets(buf, BUFSZ, u) == NULL)
404   - break;
405   - if (strlen(buf) > 0 && buf[strlen(buf)-1] == '\n')
406   - buf[strlen(buf)-1] = '\0';
407   -
408   -#if 0
409   - fprintf(stderr, "%lx %lx %d %s\n", ifdefs, ifndefs, lno, buf);
410   -#endif
411   -
412   - /* Add array offsets. */
413   - if (cmode) {
414   - /* Ignore color. Accumulate offsets into an array. */
415   - if (n_fallbacks >= ARRSZ) {
416   - fprintf(stderr, "%s, line %d: Buffer overflow\n", filename, lno);
417   - exit(1);
418   - }
419   - aix[n_fallbacks] = cc;
420   - xlno[n_fallbacks++] = lno;
421   - } else {
422   - /* Use color to decide which file to write into. */
423   - if (!(ifdefs & MODE_COLOR) && !(ifndefs & MODE_COLOR)) {
424   - /* Both. */
425   - t_this = t;
426   - ix = 0;
427   - } else if (ifdefs & MODE_COLOR) {
428   - /* Just color. */
429   - t_this = tc;
430   - ix = 1;
431   - } else {
432   - /* Just mono. */
433   - t_this = tm;
434   - ix = 2;
435   - }
436   - }
437   -
438   - continued = 0;
439   - white = 0;
440   - while ((c = *s++) != '\0') {
441   - if (c == ' ' || c == '\t')
442   - white++;
443   - else if (white) {
444   - emit(t_this, ix, ' ');
445   - cc++;
446   - white = 0;
447   - }
448   - switch (c) {
449   - case ' ':
450   - case '\t':
451   - break;
452   - case '#':
453   - if (!cmode) {
454   - emit(t_this, ix, '\\');
455   - emit(t_this, ix, '#');
456   - cc += 2;
457   - } else {
458   - emit(t_this, ix, c);
459   - cc++;
460   - }
461   - break;
462   - case '\\':
463   - if (*s == '\0') {
464   - continued = 1;
465   - break;
466   - } else if (cmode) {
467   - switch ((c = *s++)) {
468   - case 't':
469   - c = '\t';
470   - break;
471   - case 'n':
472   - c = '\n';
473   - break;
474   - default:
475   - break;
476   - }
477   - }
478   - /* else fall through */
479   - default:
480   - emit(t_this, ix, c);
481   - cc++;
482   - break;
483   - }
484   - }
485   - if (white) {
486   - emit(t_this, ix, ' ');
487   - cc++;
488   - white = 0;
489   - }
490   - if (!continued) {
491   - if (cmode)
492   - emit(t_this, ix, 0);
493   - else
494   - emit(t_this, ix, '\n');
495   - cc++;
496   - }
497   - }
498   - fclose(u);
499   - if (cmode)
500   - fprintf(t, "};\n\n");
501   - else {
502   - emit(t, 0, 0);
503   - fprintf(t, "};\n\n");
504   - emit(tc, 0, 0);
505   - fprintf(tc, "};\n\n");
506   - emit(tm, 0, 0);
507   - fprintf(tm, "};\n\n");
508   - }
509   -
510   -
511   - /* Open the output file. */
512   - if (argc == 3) {
513   - o = fopen(argv[2], "w");
514   - if (o == NULL) {
515   - perror(argv[2]);
516   - exit(1);
517   - }
518   - } else
519   - o = stdout;
520   -
521   - /* Copy tmp to output. */
522   - rewind(t);
523   - if (!cmode) {
524   - rewind(tc);
525   - rewind(tm);
526   - }
527   - while (fgets(buf, sizeof(buf), t) != NULL) {
528   - fprintf(o, "%s", buf);
529   - }
530   - if (!cmode) {
531   - while (fgets(buf, sizeof(buf), tc) != NULL) {
532   - fprintf(o, "%s", buf);
533   - }
534   - while (fgets(buf, sizeof(buf), tm) != NULL) {
535   - fprintf(o, "%s", buf);
536   - }
537   - }
538   -
539   - if (cmode) {
540   - /* Emit the fallback array. */
541   - fprintf(o, "String fallbacks[%u] = {\n", n_fallbacks + 1);
542   - for (i = 0; i < n_fallbacks; i++) {
543   - fprintf(o, "\t(String)&fsd[%u], /* line %u */\n",
544   - aix[i],
545   - xlno[i]);
546   - }
547   - fprintf(o, "\t(String)NULL\n};\n\n");
548   -
549   - /* Emit some test code. */
550   - fprintf(o, "%s", "#if defined(DUMP) /*[*/\n\
551   -#include <stdio.h>\n\
552   -int\n\
553   -main(int argc, char *argv[])\n\
554   -{\n\
555   - int i;\n\
556   -\n\
557   - for (i = 0; fallbacks[i] != NULL; i++)\n\
558   - printf(\"%d: %s\\n\", i, fallbacks[i]);\n\
559   - return 0;\n\
560   -}\n");
561   - fprintf(o, "#endif /*]*/\n\n");
562   - }
563   -
564   - if (o != stdout)
565   - fclose(o);
566   - fclose(t);
567   - if (!cmode) {
568   - fclose(tc);
569   - fclose(tm);
570   - }
571   -
572   - return 0;
573   -}
574   -
575   -static int n_out[3] = { 0, 0, 0 };
576   -
577   -void
578   -emit(FILE *t, int ix, char c)
579   -{
580   - if (n_out[ix] >= 19) {
581   - fprintf(t, "\n");
582   - n_out[ix] = 0;
583   - }
584   - fprintf(t, "%3d,", (unsigned char)c);
585   - n_out[ix]++;
586   -}
587   -
588   -#if defined(_WIN32)
589   -FILE * w32_tmpfile( void )
590   -{
591   - char *dir;
592   - char *xtemplate;
593   - DWORD retval;
594   - size_t len;
595   - int fd;
596   - FILE *file = NULL;
597   -
598   - dir = (char *) malloc(PATH_MAX);
599   - xtemplate = (char *) malloc(PATH_MAX);
600   -
601   - /* Find Windows temporary file directory.
602   - We provide this as the directory argument to path_search
603   - because Windows defines P_tmpdir to "\\" and will therefore
604   - try to put all temporary files in the root (unless $TMPDIR
605   - is set). */
606   - retval = GetTempPath (PATH_MAX, dir);
607   - if (retval == 0 || retval >= PATH_MAX - 1)
608   - goto done;
609   -
610   - do
611   - {
612   - char *tempname = tempnam(dir,"XXXXXX");
613   - if(!tempname)
614   - goto done;
615   -
616   - fd = _open (tempname,_O_BINARY | _O_CREAT | _O_TEMPORARY | _O_EXCL | _O_RDWR,_S_IREAD | _S_IWRITE);
617   - }
618   - while (fd < 0 && errno == EEXIST);
619   -
620   - if (fd < 0)
621   - goto done;
622   -
623   - file = _fdopen (fd, "w+b");
624   - if (file == NULL)
625   - {
626   - int save_errno = errno;
627   - _close (fd);
628   - errno = save_errno;
629   - }
630   -
631   - done:
632   - free(xtemplate);
633   - free(dir);
634   - return file;
635   -}
636   -#elif defined( __APPLE__ )
637   -FILE * osx_tmpfile( void )
638   -{
639   - int fd = -1;
640   - FILE *file = NULL;
641   -
642   - do
643   - {
644   - char *tempname = tempnam(NULL,"XXXXXX");
645   - if(!tempname)
646   - return NULL;
647   - fd = open (tempname,O_CREAT | O_EXCL | O_RDWR,S_IREAD | S_IWRITE);
648   - } while (fd < 0 && errno == EEXIST);
649   -
650   -
651   - file = fdopen (fd, "w+b");
652   - if (file == NULL)
653   - {
654   - int save_errno = errno;
655   - close (fd);
656   - errno = save_errno;
657   - }
658   -
659   - return file;
660   -}
661   -
662   -#endif // _WIN32