suite3270-3.6/c3270/c3270_files.mk 0000664 0000765 0000765 00000000206 13221577163 014201 0 ustar pdm pdm # c3270-specific object files
C3270_OBJECTS = c3270.o ft_gui.o help.o icmd.o keymap.o keypad.o menubar.o \
screen.o ssl_passwd_gui.o
suite3270-3.6/c3270/c3270.man 0000664 0000765 0000765 00000151540 13221600610 013153 0 ustar pdm pdm '\" t
.TH c3270 1 "29 December 2017"
.SH "NAME"
c3270 \-
curses-based
\s-1IBM\s+1 host access tool
.SH "SYNOPSIS"
\fBc3270\fP
[\fIoptions\fP]
[\fIhost\fP]
.br
\fBc3270\fP [\fIoptions\fP] \fIsession-file\fP.c3270
.SH "DESCRIPTION"
\fBc3270\fP opens a telnet connection to an \s-1IBM\s+1
host in a console window.
It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection),
and supports IND$FILE file transfer.
If the console is capable of displaying colors, then \fBc3270\fP emulates an
\s-1IBM\s+1 3279. Otherwise, it emulates a 3278.
The full syntax for \fIhost\fP is:
.RS
[\fIprefix\fP:]...[\fILUname\fP@]\fIhostname\fP[:\fIport\fP][=\fIaccept\fP]
.RE
.LP
Prepending a \fBP:\fP onto \fIhostname\fP causes the connection to go
through the \fItelnet-passthru\fP service rather than directly to the host.
See \s-1PASSTHRU\s+1 below.
.LP
Prepending an \fBS:\fP onto \fIhostname\fP removes the "extended data
stream" option reported to the host.
See \fB\-tn\fP below for further information.
.LP
Prepending an \fBN:\fP onto \fIhostname\fP
turns off TN3270E support for the session.
.LP
Prepending an \fBL:\fP onto \fIhostname\fP
causes \fBc3270\fP to first create an SSL/TLS tunnel to the host, and then
create a TN3270 session inside the tunnel. (This function is supported only if
\fBc3270\fP was built with SSL/TLS support).
Note that TLS-encrypted sessions using the TELNET START-TLS option are
negotiated with the host automatically; for these sessions the \fBL:\fP prefix
should not be used.
.LP
Prepending a \fBY:\fP onto \fIhostname\fP
causes \fBc3270\fP to skip validation of host SSL/TLS certificates.
This overrides any other configuration or command-line options.
.LP
Prepending an \fBA:\fP onto \fIhostname\fP is equivalent to setting the
\fB\-nvt\fP option; it forces an NVT-mode session instead of a
3270-mode session.
.LP
A specific Logical Unit (LU) name to use may be specified by prepending it to
the \fIhostname\fP with an `\fB@\fP'.
Multiple LU names to try can be separated by commas.
An empty LU can be placed in the list with an extra comma.
(Note that the LU name is used for different purposes by different kinds of
hosts.
For example, CICS uses the LU name as the Terminal ID.)
.LP
The \fIhostname\fP may optionally be placed inside square-bracket
characters `\fB[\fP' and `\fB]\fP'.
This will prevent any colon `\fB:\fP' characters in the hostname
from being interpreted as indicating option prefixes or port numbers.
This allows numeric IPv6 addresses to be used as hostnames.
.LP
On systems that support the \fIforkpty\fP library call, the
\fIhostname\fP may be replaced with \fB\-e\fP and a command string.
This will cause \fBc3270\fP to connect to a local child process, such as
a shell.
.LP
The port to connect to defaults to
\fBtelnet\fP.
This can be overridden with the \fB\-port\fP option, or by appending
a \fIport\fP to the \fIhostname\fP with a colon
`\fB:\fP'.
(For compatability with previous versions of \fBc3270\fP
and with \fItn3270\fP(1), the \fIport\fP
may also be specified as a second, separate argument.)
.LP
An optional accept name (a hostname to accept in the host's SSL/TLS
certificate) may be specified by appending it to the hostname with an equals
sign (`\fB=\fP').
The accept name can also be specified with the \fB\-accepthostname\fP
option.
.SH "OPTIONS"
\fBc3270\fP understands
the following options:
.TP
\fB\-accepthostname\fP \fIname\fP
Specifies a particular hostname to accept when validating the name presented
in the server SSL certificate, instead of comparing to the name
used to make the connection.
.TP
\fB\-allbold\fP
Forces all characters to be displayed in bold.
This helps with PC consoles which display non-bold characters in unreadably
dim colors.
All-bold mode is the default for color displays, but not for monochrome
displays.
.TP
\fB\-altscreen \fIrows\fP\fBx\fP\fIcols\fP\fB=\fP\fIinit_string\fP\fP
Defines the dimensions and escape sequence for the alternate (132-column)
screen mode.
See \s-1SCREEN SIZE SWITCHING\s+1, below.
.TP
\fB\-cadir\fP \fIdirectory\fP
Specifies a directory containing CA (root) certificates to use when verifying a
certificate provided by the host. (OpenSSL only)
.TP
\fB\-cafile\fP \fIfilename\fP
Specifies a \s-1PEM\s+1-format file containing CA (root) certificates to use
when verifying a certificate provided by the host. (OpenSSL only)
.TP
\fB\-cbreak\fP
Causes \fBc3270\fP to operate in \fIcbreak\fP mode, instead of \fIraw\fP
mode.
In \fIcbreak\fP mode, the TTY driver will properly process XOFF and XON
characters, which are required by some terminals for proper operation.
However, those characters (usually ^S and ^Q), as well as the characters for
\fBinterrupt\fP, \fBquit\fP, and \fBlnext\fP (usually ^C, ^\\
and ^V respectively) will be seen by \fBc3270\fP only if preceded by
the \fBlnext\fP character.
The \fBsusp\fP character (usually ^Z) cannot be seen by \fBc3270\fP at all.
.TP
\fB\-certfile\fP \fIfilename\fP
Specifies a file containing a client certificate to provide to the host.
The default file type is \s-1PEM\s+1.
.TP
\fB\-clientcert\fP \fIname\fP
Specifies the name of a client certificate to provide to the host.
(MacOS only)
.TP
\fB\-certfiletype\fP \fItype\fP
Specifies the type of the certificate file specified
by \fB\-certfile\fP.
\fIType\fP can be \fBpem\fP or \fBasn1\fP. (OpenSSL only)
.TP
\fB\-chainfile \fIfilename\fP\fP
Specifies a certificate chain file in \s-1PEM\s+1 format, containing a
certificate to provide to the host, as well as one or more
intermediate certificates and the CA certificate used to sign that certificate.
If \fB\-chainfile\fP is specified, it
overrides \fB\-certfile\fP. (OpenSSL only)
.TP
\fB\-charset\fP \fIname\fP
Specifies an \s-1EBCDIC\s+1 host character set.
.TP
\fB\-clear\fP \fItoggle\fP
Sets the initial value of \fItoggle\fP to \fBfalse\fP.
.TP
\fB\-connecttimeout\fP \fIseconds\fP
Specifies the time that c3270 will wait for a host connection to
complete.
.TP
\fB\-defaultfgbg\fP
Causes c3270 to use the terminal's default foreground color
instead of the curses color \fBblack\fP, and the terminal's
default background color instead of the curses color \fBwhite\fP.
This is helpful for emulators such as \fIgnome-terminal\fP whose
representation of a black background is a murky gray, and for emulators
configured to use black text on a white background.
It is set automatically if the environment variable \fBCOLORTERM\fP is
set to \fBgnome-terminal\fP. It is available only if c3270 was
compiled with a version of \fIncurses\fP that supports default colors,
if the emulator supports default colors, and if the termcap/terminfo entry
indicates this capability.
.TP
\fB\-defscreen \fIrows\fP\fBx\fP\fIcols\fP\fB=\fP\fIinit_string\fP\fP
Defines the dimensions and escape sequence for the default (80-column)
screen mode.
See \s-1SCREEN SIZE SWITCHING\s+1, below.
.TP
\fB\-devname\fP \fIname\fP
Specifies a device name (workstation ID) for RFC 4777 support.
.TP
\fB\-hostsfile\fP \fIfile\fP
Uses \fIfile\fP as the hosts file, which allows aliases for host names and
scripts to be executed at login.
See \fIibm_hosts\fP(1) for details.
.TP
\fB\-httpd\fP \fB[\fP\fIaddr\fP\fB:]\fP\fIport\fP
Specifies a port and optional address to listen on for HTTP connections.
\fIAddr\fP can be specified as `*' to indicate 0.0.0.0; the
default is 127.0.0.1. IPv6 numeric addresses must be specified inside of
square brackets, e.g., [::1]:4080 to specify the IPv6 loopback address and
TCP port 4080.
.IP
Note that this option is mutually-exclusive with the \-scriptport
option
.
.TP
\fB\-keyfile\fP \fIfilename\fP
Specifies a file containing the private key for the certificate file
(specified via \fB\-certfile\fP or \fB\-chainfile\fP).
The default file type is \s-1PEM\s+1. (OpenSSL only)
.TP
\fB\-keyfiletype\fP \fItype\fP
Specifies the type of the private key file specified
by \fB\-keyfile\fP.
\fIType\fP can be \fBpem\fP or \fBasn1\fP. (OpenSSL only)
.TP
\fB\-keypasswd\fP \fItype\fP:\fIvalue\fP
Specifies the password for the private key file (OpenSSL) or client
certificate file (MacOS), if it is encrypted.
The argument can be \fBfile\fP:\fIfilename\fP, specifying that the
password is in a file, or \fBstring\fP:\fIstring\fP, specifying the
password on the command-line directly.
If the private key file is encrypted and no \fB\-keypasswd\fP
option is given,
the password will be prompted for interactively.
.TP
\fB\-keymap\fP \fIname\fP
Specifies a keyboard map to be found in the resource
\fBc3270.keymap.\fP\fIname\fP or the file \fIname\fP.
See \s-1KEYMAPS\s+1 below for details.
.TP
\fB\-km\fP \fIname\fP
Specifies the local encoding method for multi-byte text.
\fIname\fP is an encoding name recognized by the ICU library.
(Supported only when c3270 is compiled with DBCS support, and necessary
only when c3270 cannot figure it out from the locale.)
.TP
\fB\-loginmacro\fP \fIAction(arg...) ...\fP
Specifies a macro to run at login time.
.TP
\fB\-model\fP \fIname\fP
The model of 3270 display to be emulated.
The model name is in two parts, either of which may be omitted:
.IP
The first part is the
\fBbase model\fP,
which is either \fB3278\fP or \fB3279\fP.
\fB3278\fP specifies a monochrome (green on black) 3270 display;
\fB3279\fP specifies a color 3270 display.
.IP
The second part is the
\fBmodel number\fP,
which specifies the number of rows and columns.
Model 4 is the default.
.PP
.TS
center;
c c c .
T{
.na
.nh
Model Number
T} T{
.na
.nh
Columns
T} T{
.na
.nh
Rows
T}
_
T{
.na
.nh
2
T} T{
.na
.nh
80
T} T{
.na
.nh
24
T}
T{
.na
.nh
3
T} T{
.na
.nh
80
T} T{
.na
.nh
32
T}
T{
.na
.nh
4
T} T{
.na
.nh
80
T} T{
.na
.nh
43
T}
T{
.na
.nh
5
T} T{
.na
.nh
132
T} T{
.na
.nh
27
T}
.TE
.IP
Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but
most hosts seem to work with them anyway.
.IP
The default model
for a color display is \fB3279\-4\fP.
For a monochrome display, it is \fB3278\-4\fP.
.TP
\fB\-mono\fP
Prevents \fBc3270\fP from using color, ignoring any color capabilities
reported by the terminal.
.TP
\fB\-noprompt\fP
An alias for \-secure.
.TP
\fB\-noverifycert\fP
For SSL/TLS connections, do not verify the host certificate.
.TP
\fB\-nvt\fP
Start in NVT mode instead of waiting for the host to send data, and make the
default terminal type \fBxterm\fP.
.TP
\fB\-oversize\fP \fIcols\fP\fBx\fP\fIrows\fP
Makes the screen larger than the default for the chosen model number.
This option has effect only in combination with extended data stream support
(controlled by the "c3270.extended" resource), and only if the host
supports the Query Reply structured field.
The number of columns multiplied by the number of rows must not exceed
16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.
.IP
It can also be specified as \fBauto\fP, which causes \fBc3270\fP to fill
the entire terminal or console window.
.TP
\fB\-port\fP \fIn\fP
Specifies a different \s-1TCP\s+1 port to connect to.
\fIn\fP can be a name from \fB/etc/services\fP like \fBtelnet\fP, or a
number.
This option changes the default port number used for all connections.
(The positional parameter affects only the initial connection.)
.TP
\fB\-proxy \fItype\fP:\fIhost\fP[:\fIport\fP]\fP
Causes \fBc3270\fP to connect via the specified proxy, instead of
using a direct connection.
The \fIhost\fP can be an IP address or hostname.
The optional \fIport\fP can be a number or a service name.
For a list of supported proxy \fItypes\fP, see \s-1PROXY\s+1
below.
.TP
\fB\-printerlu \fIluname\fP\fP
Causes \fBc3270\fP to automatically start a \fIpr3287\fP printer
session.
If \fIluname\fP is ".", then the printer session will be associated with the
interactive terminal session (this requires that the host support TN3270E).
Otherwise, the value is used as the explicit LU name to associate with the
printer session.
.TP
\fB\-reconnect\fP
Causes \fBc3270\fP
to automatically reconnect to the host if it ever disconnects.
This option has effect only if a hostname is specified on the command line.
.TP
\fB\-rv\fP
Switches c3270 from a white-on-black display to a black-on-white
display.
.TP
\fB\-sl\fP \fIn\fP
Specifies that \fIn\fP lines should be saved for scrolling back.
The default is 4096.
.TP
\fB\-scriptport\fP \fB[\fP\fIaddr\fP\fB:]\fP\fIport\fP
Specifies a port and optional address to listen on for scripting connections.
\fIAddr\fP can be specified as `*' to indicate 0.0.0.0; the
default is 127.0.0.1. IPv6 numeric addresses must be specified inside of
square brackets, e.g., [::1]:4081 to specify the IPv6 loopback address and
TCP port 4081.
.IP
Note that this option is mutually-exclusive with the \-httpd
option
.
.TP
\fB\-scriptportonce\fP
Allows c3270 to accept only one script connection. When that connection is
broken, c3270 will exit.
.TP
\fB\-secure\fP
Disables the interactive \fBc3270>\fP prompt.
When used, a hostname must be provided on the command line.
.TP
\fB\-set\fP \fItoggle\fP
Sets the initial value of \fItoggle\fP to \fBtrue\fP.
.TP
\fB\-socket\fP
Causes the emulator to create a Unix-domain socket when it starts, for use
by script processes to send commands to the emulator.
The socket is named \fB/tmp/x3sck.\fP\fIpid\fP.
The \fB\-p\fP option of \fIx3270if\fP causes it to use this socket,
instead of pipes specified by environment variables.
.TP
\fB\-tn\fP \fIname\fP
Specifies the terminal name to be transmitted over the telnet connection.
The default name is
\fBIBM\-\fP\fImodel_name\fP\fB\-E\fP,
for example,
\fBIBM\-3279\-4\-E\fP
for a color display, or
\fBIBM\-3278\-4\-E\fP
for a monochrome display.
.IP
Some hosts are confused by the \fB\-E\fP
suffix on the terminal name, and will ignore the extra screen area on
models 3, 4 and 5.
Prepending an \fBs:\fP on the hostname, or setting the "c3270.extended"
resource to "false", removes the \fB\-E\fP
from the terminal name when connecting to such hosts.
.IP
The name can also be specified with the "c3270.termName" resource.
.TP
\fB\-trace\fP
Turns on data stream and event tracing at startup.
The default trace file name is
\fB/tmp/x3trc\fP.
.TP
\fB\-tracefile\fP \fIfile\fP
Specifies a file to save data stream and event traces into.
If the name starts with `>>', data will be appended to the file.
.TP
\fB\-tracefilesize\fP \fIsize\fP
Places a limit on the size of a trace file.
If this option is not specified, or is specified as \fB0\fP or \fBnone\fP,
the trace file size will be unlimited.
The minimum size is 64 Kbytes.
The value of \fIsize\fP can have a \fBK\fP or \fBM\fP suffix, indicating
kilobytes or megabytes respectively.
When the trace file reaches the size limit, it will be renamed with a
`-' appended and a new file started.
.TP
\fB\-user\fP \fIname\fP
Specifies the user name for RFC 4777 support.
.TP
\fB\-utf8\fP
Forces the local codeset to be UTF-8, ignoring the locale or Windows codepage.
.TP
\fB\-v\fP
Display the version and build options for \fBc3270\fP and exit.
.TP
\fB\-verifycert\fP
For SSL/TLS connections, verify the host certificate, and do not allow
the connection to complete unless it can be validated. (This is the default
setting.)
This option is overridden by a \fBy:\fP prepended to the hostname when
connecting.
.TP
\fB\-xrm\fP "c3270.\fIresource\fP: \fIvalue\fP"
Sets the value of the named \fIresource\fP to \fIvalue\fP.
Resources control less common \fBc3270\fP
options, and are defined under \s-1RESOURCES\s+1 below.
.SH "STATUS LINE"
If the terminal that \fBc3270\fP is running on
has at least one more row that the 3270 model requires (e.g., 25 rows for a
model 2), \fBc3270\fP will display a status line.
The \fBc3270\fP status line contains a variety of information.
From left to right, the fields are:
.TP
\fBcomm status\fP
The first symbol is always a \fB4\fP.
If \fBc3270\fP is in TN3270E mode, the second symbol is a \fBB\fP;
otherwise it is an \fBA\fP.
If
\fBc3270\fP is in SSCP-LU mode, the third symbol is an \fBS\fP.
Otherwise it is blank.
.TP
\fBkeyboard lock\fP
If the keyboard is locked, an "X" symbol and a message field indicate the
reason for the keyboard lock.
.TP
\fBtypeahead\fP
The letter "T" indicates that one or more keystrokes are in the typeahead
buffer.
.TP
\fBtemporary keymap\fP
The letter "K" indicates that a temporary keymap is in effect.
.TP
\fBreverse\fP
The letter "R" indicates that the keyboard is in reverse field entry mode.
.TP
\fBinsert mode\fP
The
letter "I" indicates that the keyboard is in insert mode.
.TP
\fBprinter session\fP
The letter "P" indicates that a \fIpr3287\fP session is active.
.TP
\fBsecure connection\fP
A green letter "S" indicates that the connection is secured via SSL/TLS.
.TP
\fBLU name\fP
The LU name associated with the session, if there is one.
.TP
\fBcursor position\fP
The cursor row and column are optionally displayed, zero padded and separated
by a "/".
Location 001/001 is at the upper left, which is different from the row and
columns parameters used with various actions, where the upper left corner is
row 0, column 0.
.SH "ACTIONS"
Here is a complete list of basic c3270 actions.
Script-specific actions are described on the
\fIx3270-script\fP(1) manual page.
).PP
Actions marked with an asterisk (*) may block, sending data to the host and
possibly waiting for a response.
.PP
.TS
center; lw(3i) lw(3i).
T{
.na
.nh
.in +2
.ti -2
*Attn
T} T{
.na
.nh
attention key
T}
T{
.na
.nh
.in +2
.ti -2
BackSpace
T} T{
.na
.nh
move cursor left (or send \s-1ASCII BS\s+1)
T}
T{
.na
.nh
.in +2
.ti -2
BackTab
T} T{
.na
.nh
tab to start of previous input field
T}
T{
.na
.nh
.in +2
.ti -2
CircumNot
T} T{
.na
.nh
input "^" in \s-1NVT\s+1 mode, or "notsign" in 3270 mode
T}
T{
.na
.nh
.in +2
.ti -2
*Clear
T} T{
.na
.nh
clear screen
T}
T{
.na
.nh
.in +2
.ti -2
Compose
T} T{
.na
.nh
next two keys form a special symbol
T}
T{
.na
.nh
.in +2
.ti -2
*Connect(\fIhost\fP)
T} T{
.na
.nh
connect to \fIhost\fP
T}
T{
.na
.nh
.in +2
.ti -2
*CursorSelect
T} T{
.na
.nh
Cursor Select \s-1AID\s+1
T}
T{
.na
.nh
.in +2
.ti -2
Delete
T} T{
.na
.nh
delete character under cursor (or send \s-1ASCII DEL\s+1)
T}
T{
.na
.nh
.in +2
.ti -2
DeleteField
T} T{
.na
.nh
delete the entire field
T}
T{
.na
.nh
.in +2
.ti -2
DeleteWord
T} T{
.na
.nh
delete the current or previous word
T}
T{
.na
.nh
.in +2
.ti -2
*Disconnect
T} T{
.na
.nh
disconnect from host
T}
T{
.na
.nh
.in +2
.ti -2
Down
T} T{
.na
.nh
move cursor down
T}
T{
.na
.nh
.in +2
.ti -2
Dup
T} T{
.na
.nh
duplicate field
T}
T{
.na
.nh
.in +2
.ti -2
*Enter
T} T{
.na
.nh
Enter \s-1AID\s+1 (or send \s-1ASCII CR\s+1)
T}
T{
.na
.nh
.in +2
.ti -2
Erase
T} T{
.na
.nh
erase previous character (or send \s-1ASCII BS\s+1)
T}
T{
.na
.nh
.in +2
.ti -2
EraseEOF
T} T{
.na
.nh
erase to end of current field
T}
T{
.na
.nh
.in +2
.ti -2
EraseInput
T} T{
.na
.nh
erase all input fields
T}
T{
.na
.nh
.in +2
.ti -2
Escape
T} T{
.na
.nh
escape to \fBc3270>\fP prompt
T}
T{
.na
.nh
.in +2
.ti -2
Execute(\fIcmd\fP)
T} T{
.na
.nh
execute a command in a shell
T}
T{
.na
.nh
.in +2
.ti -2
FieldEnd
T} T{
.na
.nh
move cursor to end of field
T}
T{
.na
.nh
.in +2
.ti -2
FieldMark
T} T{
.na
.nh
mark field
T}
T{
.na
.nh
.in +2
.ti -2
HexString(\fIhex_digits\fP)
T} T{
.na
.nh
insert control-character string
T}
T{
.na
.nh
.in +2
.ti -2
Home
T} T{
.na
.nh
move cursor to first input field
T}
T{
.na
.nh
.in +2
.ti -2
Insert
T} T{
.na
.nh
set insert mode
T}
T{
.na
.nh
.in +2
.ti -2
*Interrupt
T} T{
.na
.nh
send \s-1TELNET IP\s+1 to host
T}
T{
.na
.nh
.in +2
.ti -2
Keypad
T} T{
.na
.nh
Display pop-up keypad
T}
T{
.na
.nh
.in +2
.ti -2
Key(\fIkeysym\fP)
T} T{
.na
.nh
insert key \fIkeysym\fP
T}
T{
.na
.nh
.in +2
.ti -2
Key(0x\fIxx\fP)
T} T{
.na
.nh
insert key with character code \fIxx\fP
T}
T{
.na
.nh
.in +2
.ti -2
Left
T} T{
.na
.nh
move cursor left
T}
T{
.na
.nh
.in +2
.ti -2
Left2
T} T{
.na
.nh
move cursor left 2 positions
T}
T{
.na
.nh
.in +2
.ti -2
Menu
T} T{
.na
.nh
Display menu bar
T}
T{
.na
.nh
.in +2
.ti -2
MonoCase
T} T{
.na
.nh
toggle uppercase-only mode
T}
T{
.na
.nh
.in +2
.ti -2
MoveCursor(\fIrow\fP, \fIcol\fP)
T} T{
.na
.nh
move cursor to zero-origin (\fIrow\fP,\fIcol\fP)
T}
T{
.na
.nh
.in +2
.ti -2
Newline
T} T{
.na
.nh
move cursor to first field on next line (or send \s-1ASCII LF\s+1)
T}
T{
.na
.nh
.in +2
.ti -2
NextWord
T} T{
.na
.nh
move cursor to next word
T}
T{
.na
.nh
.in +2
.ti -2
*PA(\fIn\fP)
T} T{
.na
.nh
Program Attention \s-1AID\s+1 (\fIn\fP from 1 to 3)
T}
T{
.na
.nh
.in +2
.ti -2
*PF(\fIn\fP)
T} T{
.na
.nh
Program Function \s-1AID\s+1 (\fIn\fP from 1 to 24)
T}
T{
.na
.nh
.in +2
.ti -2
PreviousWord
T} T{
.na
.nh
move cursor to previous word
T}
T{
.na
.nh
.in +2
.ti -2
Printer(Start[,\fIlu\fP]|Stop)
T} T{
.na
.nh
start or stop printer session
T}
T{
.na
.nh
.in +2
.ti -2
PrintText(\fIcommand\fP)
T} T{
.na
.nh
print screen text on printer
T}
T{
.na
.nh
.in +2
.ti -2
Quit
T} T{
.na
.nh
exit \fBc3270\fP
T}
T{
.na
.nh
.in +2
.ti -2
Redraw
T} T{
.na
.nh
redraw window
T}
T{
.na
.nh
.in +2
.ti -2
Reset
T} T{
.na
.nh
reset locked keyboard
T}
T{
.na
.nh
.in +2
.ti -2
Right
T} T{
.na
.nh
move cursor right
T}
T{
.na
.nh
.in +2
.ti -2
Right2
T} T{
.na
.nh
move cursor right 2 positions
T}
T{
.na
.nh
.in +2
.ti -2
*Script(\fIcommand\fP[,\fIarg\fP...])
T} T{
.na
.nh
run a script
T}
T{
.na
.nh
.in +2
.ti -2
Scroll(Forward|Backward)
T} T{
.na
.nh
scroll screen
T}
T{
.na
.nh
.in +2
.ti -2
*String(\fIstring\fP)
T} T{
.na
.nh
insert string (simple macro facility)
T}
T{
.na
.nh
.in +2
.ti -2
Tab
T} T{
.na
.nh
move cursor to next input field
T}
T{
.na
.nh
.in +2
.ti -2
Toggle(\fIoption\fP[,\fIset|clear\fP])
T} T{
.na
.nh
toggle an option
T}
T{
.na
.nh
.in +2
.ti -2
ToggleInsert
T} T{
.na
.nh
toggle insert mode
T}
T{
.na
.nh
.in +2
.ti -2
ToggleReverse
T} T{
.na
.nh
toggle reverse-input mode
T}
T{
.na
.nh
.in +2
.ti -2
*Transfer(\fIoption\fP=\fIvalue\fP...')
T} T{
.na
.nh
file transfer
T}
T{
.na
.nh
.in +2
.ti -2
Up
T} T{
.na
.nh
move cursor up
T}
T{
.na
.nh
.in +2
.ti -2
ignore
T} T{
.na
.nh
do nothing
T}
.TE
.LP
Any of the above actions may be entered at the \fBc3270>\fP prompt;
these commands are also available for use in keymaps
(see \s-1KEYMAPS\s+1).
Command names are case-insensitive.
Parameters can be specified with parentheses and commas, e.g.:
.RS
PF(1)
.RE
or with spaces, e.g.:
.RS
PF 1
.RE
Parameters can be quoted with double-quote characters, to allow spaces,
commas, and parentheses to be used.
.LP
\fBc3270\fP also supports the following interactive commands:
.TP
\fBHelp\fP
Displays a list of available commands.
.TP
\fBScreenTrace\fP
Turns screen tracing (saving screen images to a file) on or off.
The command \fBscreentrace on\fP enables screen tracing;
the command \fBscreentrace off\fP disables it.
After \fBon\fP, a filename may be specified to override the default
trace file name of
\fB/tmp/x3scr.\fP\fIpid\fP.
The keyaord \fBon\fP can also be followed by the keyword \fBprinter\fP and an optional
print command
to direct screen traces directly to the printer.
.TP
\fBShow\fP
Displays statistics and settings.
.TP
\fBTrace\fP
Turns tracing on or off.
The command \fBtrace on\fP enables data stream and keyboard event tracing;
the command \fBtrace off\fP disables it.
The qualifier \fBdata\fP or \fBkeyboard\fP can be specified
before \fBon\fP or \fBoff\fP to enable or disable a particular trace.
After \fBon\fP, a filename may be specified to override the default
trace file name of
\fB/tmp/x3trc.\fP\fIpid\fP.
.LP
Note that certain parameters to c3270 actions (such as the names of files
and keymaps) are subject to \fIsubstitutions\fP:
.LP
The character \fB~\fP at the beginning of a string is replaced with the user's
home directory.
A \fB~\fP character followed by a username is
replaced with that user's home directory.
.LP
Environment variables are substituted using the Unix shell convention of
$\fIname\fP or ${\fIname\fP}.
.LP
Two special pseudo-environment variables are supported. ${TIMESTAMP} is
replaced with a microsecond-resolution timestamp; ${UNIQUE} is replaced with a
string guaranteed to make a unique filename (the process ID optionally
followed by a dash and a string of digits). ${UNIQUE} is used to form trace
file names.
.SH "KEYMAPS"
The \fB\-keymap\fP option
or the \fBc3270.keymap\fP resource
allow a custom keymap to be specified.
If the option \fB\-keymap\fP \fIxxx\fP is given (or the
\fBc3270.keymap\fP resource has the value \fIxxx\fP),
\fBc3270\fP
will look for a resource named \fBc3270.keymap.\fP\fIxxx\fP.
If no resource definition is found, it will look for a file named
\fIxxx\fP.
.LP
Multiple keymaps may be specified be separating their names with commas.
Definitions in later keymaps supercede those in earlier keymaps.
.LP
In addition, separate keymaps may be defined that apply only in 3270 mode or
\s-1NVT\s+1 mode.
For example, the resource definition
\fBc3270.keymap.\fP\fIxxx\fP\fB.nvt\fP
or the file
\fIxxx\fP\fB.nvt\fP
will augment the definition
of keymap \fIxxx\fP in \s-1NVT\s+1 mode.
Similarly, the resource definition
\fBc3270.keymap.\fP\fIxxx\fP\fB.3270\fP
or the file
\fIxxx\fP\fB.3270\fP
will augment the definition
of keymap \fIxxx\fP in 3270 mode.
.LP
Temporary keymaps can also be added or removed while c3270 is running
with the \fBKeymap\fP action.
See \fIx3270-script\fP(1) for details.
.LP
Each line (rule) in a keymap specifies actions to perform when a
particular key or sequence of keys is pressed.
Keymap rules have the following syntax:
.LP
.RS
[\fBMeta\fP][\fBCtrl\fP]\fB\fP\fIkey\fP...: \fIaction\fP[(\fIparam\fP[,...])] ...
.RE
.LP
Here is a sample keymap definition from a file:
.LP
.RS
! Lines beginning with ! are ignored and can
.br
! occur anywhere.
.br
! Definition of keymap xxx
.br
! \ When Alt-c is pressed, clear the screen.
.br
Altc: Clear()
.br
! \ When PageUp is pressed, send PF7 to the host.
.br
PPAGE: PF(7)
.br
! \ When Ctrl-a is pressed, then F1, send PF13
.br
! \ to the host.
.br
Ctrla F1: PF(13)
.RE
.LP
Here is the same definition as a resource:
.LP
.RS
! Lines beginning with ! are ignored, but NOT
.br
! within a definition.
.br
! Note that the \\ is required at the end of the
.br
! first line, and \\n\\ is
.br
! required at the end of every other line except
.br
! the last.
.br
! Definition of keymap xxx
.br
c3270.keymap.xxx: \\
.br
\ Altc: Clear() \\n\\
.br
\ PPAGE: PF(7) \\n\\
.br
\ CtrlA F1: PF(13)
.RE
.LP
The optional
\fBAlt\fP or \fBCtrl\fP modifiers specify that
the
\fBAlt\fP and \fBCtrl\fP keys are pressed along with the
specified \fIkey\fP, respectively.
\fIKey\fP is either an \s-1ISO\s+1 8859-1 symbol name, such as \fBequal\fP
for `=' and \fBa\fP for `a', or a symbolic
\fBncurses\fP key name,
such as \fBUP\fP.
More than one \fIkey\fP can be specified, indicating that a sequence of
keys must be pressed in order for the rule to be matched.
The \fIaction\fP is an action from the \s-1ACTIONS\s+1 list
above.
More than one \fIaction\fP may be specified; they will be executed in order.
.LP
Keymap entries are case-sensitive and modifier-specific.
This means that a keymap for the \fBb\fP key will match only a
lowercase \fBb\fP.
Actions for uppercase \fBB\fP, or for \fBAlt-B\fP,
must be specified separately.
.LP
The base keymap is:
.LP
.TS
l l.
T{
.na
.nh
Key
T} T{
.na
.nh
Action
T}
_
T{
.na
.nh
Ctrl]
T} T{
.na
.nh
Escape
T}
T{
.na
.nh
Ctrla Ctrla
T} T{
.na
.nh
Key(0x01)
T}
T{
.na
.nh
Ctrla Ctrl]
T} T{
.na
.nh
Key(0x1d)
T}
T{
.na
.nh
Ctrla Tab
T} T{
.na
.nh
BackTab
T}
T{
.na
.nh
Ctrla c
T} T{
.na
.nh
Clear
T}
T{
.na
.nh
Ctrla e
T} T{
.na
.nh
Escape
T}
T{
.na
.nh
Ctrla r
T} T{
.na
.nh
Reset
T}
T{
.na
.nh
Ctrla k
T} T{
.na
.nh
Keypad
T}
T{
.na
.nh
Ctrla l
T} T{
.na
.nh
Redraw
T}
T{
.na
.nh
Ctrla m
T} T{
.na
.nh
Compose
T}
T{
.na
.nh
Ctrla n
T} T{
.na
.nh
Menu
T}
T{
.na
.nh
Ctrla p
T} T{
.na
.nh
PrintText
T}
T{
.na
.nh
Ctrla ^
T} T{
.na
.nh
Key(notsign)
T}
T{
.na
.nh
Ctrlk
T} T{
.na
.nh
Keypad
T}
T{
.na
.nh
Ctrln
T} T{
.na
.nh
Menu
T}
T{
.na
.nh
UP
T} T{
.na
.nh
Up
T}
T{
.na
.nh
DOWN
T} T{
.na
.nh
Down
T}
T{
.na
.nh
LEFT
T} T{
.na
.nh
Left
T}
T{
.na
.nh
RIGHT
T} T{
.na
.nh
Right
T}
T{
.na
.nh
F(\fIn\fP)
T} T{
.na
.nh
PF(\fIn\fP)
T}
T{
.na
.nh
Ctrla F(\fIn\fP)
T} T{
.na
.nh
PF(\fIn\fP+12)
T}
T{
.na
.nh
Ctrla 1
T} T{
.na
.nh
PA(1)
T}
T{
.na
.nh
Ctrla 2
T} T{
.na
.nh
PA(2)
T}
T{
.na
.nh
Ctrla 3
T} T{
.na
.nh
PA(3)
T}
T{
.na
.nh
PPAGE
T} T{
.na
.nh
Scroll(Backward)
T}
T{
.na
.nh
NPAGE
T} T{
.na
.nh
Scroll(Forward)
T}
.TE
.LP
The base 3270-mode keymap adds:
.LP
.TS
l l.
T{
.na
.nh
Key
T} T{
.na
.nh
Action
T}
_
T{
.na
.nh
Ctrlc
T} T{
.na
.nh
Clear
T}
T{
.na
.nh
Ctrld
T} T{
.na
.nh
Dup
T}
T{
.na
.nh
Ctrlf
T} T{
.na
.nh
FieldMark
T}
T{
.na
.nh
Ctrli
T} T{
.na
.nh
Tab
T}
T{
.na
.nh
Ctrll
T} T{
.na
.nh
Redraw
T}
T{
.na
.nh
Ctrlr
T} T{
.na
.nh
Reset
T}
T{
.na
.nh
Ctrlu
T} T{
.na
.nh
DeleteField
T}
T{
.na
.nh
BackSpace
T} T{
.na
.nh
BackSpace
T}
T{
.na
.nh
Return
T} T{
.na
.nh
Enter
T}
T{
.na
.nh
Tab
T} T{
.na
.nh
Tab
T}
T{
.na
.nh
Linefeed
T} T{
.na
.nh
Newline
T}
T{
.na
.nh
BACKSPACE
T} T{
.na
.nh
BackSpace
T}
T{
.na
.nh
DC
T} T{
.na
.nh
Delete
T}
T{
.na
.nh
HOME
T} T{
.na
.nh
Home
T}
T{
.na
.nh
IC
T} T{
.na
.nh
ToggleInsert
T}
.TE
.SH "THE META OR ALT KEY"
Some keyboards do not have a \fBMeta\fP key.
Instead, they have an \fBAlt\fP key.
Sometimes this key acts as a proper
\fBMeta\fP key, that is, it is a modifier key that sets the high-order bit
(0x80) in the code that is transmitted for each key.
Other keyboards send a two-character sequence when
the \fBAlt\fP key is pressed with another key: the Escape character (0x1b),
followed by the code for the other key.
.LP
The resource \fBc3270.metaEscape\fP and the termcap \fBkm\fP attribute
control how \fBc3270\fP will interpret these sequences.
When \fBc3270.metaEscape\fP is set to \fBtrue\fP, or when
\fBc3270.metaEscape\fP is set to \fBauto\fP and the termcap \fBkm\fP
attribute is set, the keyboard is assumed to have a separate \fBMeta\fP key.
The Escape key can be used as an ordinary data key and has no special meaning.
.LP
When \fBc3270.metaEscape\fP is set to \fBtrue\fP, or when
\fBc3270.metaEscape\fP is set to \fBauto\fP and the termcap \fBkm\fP
attribute is not set, the keyboard is assumed to use the Escape character
as a prefix to indicate that the following character is supposed to have the
high-order bit set.
When \fBc3270\fP sees an Escape character from the keyboard, it sets a short
timeout.
If another character arrives before the timeout expires, then \fBc3270\fP
will combine the two characters, setting the high-order bit of the second.
In an event trace file, the combined character is listed as \fIderived\fP.
In a keymap, only the combined character or the \fBMeta\fP prefix may be used.
The Escape key can still be used by itself, but only if there is a short pause
before pressing another key.
.LP
The default value for \fBc3270.metaEscape\fP is \fBauto\fP.
.SH "FILE TRANSFER"
The \fBTransfer\fP action implements \fBIND$FILE\fP file transfer.
This action requires that the \fBIND$FILE\fP
program be installed on the \s-1IBM\s+1 host, and that the 3270 cursor
be located in a field that will accept a \s-1TSO\s+1 or \s-1VM/CMS\s+1 command.
.LP
The \fBTransfer\fP action
can be entered at the command prompt with no parameters, which will cause it
to prompt interactively for the file names and options.
It can also be invoked with parameters to define the entire transfer.
.LP
Because of the complexity and number of options for file transfer, the
parameters to the \fBTransfer\fP action take the unique form
of \fIoption\fP=\fIvalue\fP, and can appear in any order.
Note that if the \fIvalue\fP contains spaces (such as a VM/CMS file name),
then the entire parameter must be quoted, e.g., "HostFile=xxx foo a".
The options are:
.LP
.TS
l c l l.
T{
.na
.nh
Option
T} T{
.na
.nh
Required?
T} T{
.na
.nh
Default
T} T{
.na
.nh
Other Values
T}
_
T{
.na
.nh
Direction
T} T{
.na
.nh
No
T} T{
.na
.nh
receive
T} T{
.na
.nh
send
T}
T{
.na
.nh
HostFile
T} T{
.na
.nh
Yes
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T}
T{
.na
.nh
LocalFile
T} T{
.na
.nh
Yes
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T}
T{
.na
.nh
Host
T} T{
.na
.nh
No
T} T{
.na
.nh
tso
T} T{
.na
.nh
vm, cics
T}
T{
.na
.nh
Mode
T} T{
.na
.nh
No
T} T{
.na
.nh
ascii
T} T{
.na
.nh
binary
T}
T{
.na
.nh
Cr
T} T{
.na
.nh
No
T} T{
.na
.nh
remove
T} T{
.na
.nh
add, keep
T}
T{
.na
.nh
Remap
T} T{
.na
.nh
No
T} T{
.na
.nh
yes
T} T{
.na
.nh
no
T}
T{
.na
.nh
Exist
T} T{
.na
.nh
No
T} T{
.na
.nh
keep
T} T{
.na
.nh
replace, append
T}
T{
.na
.nh
Recfm
T} T{
.na
.nh
No
T} T{
.na
.nh
\
T} T{
.na
.nh
fixed, variable, undefined
T}
T{
.na
.nh
Lrecl
T} T{
.na
.nh
No
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T}
T{
.na
.nh
Blksize
T} T{
.na
.nh
No
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T}
T{
.na
.nh
Allocation
T} T{
.na
.nh
No
T} T{
.na
.nh
\
T} T{
.na
.nh
tracks, cylinders, avblock
T}
T{
.na
.nh
PrimarySpace
T} T{
.na
.nh
Sometimes
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T}
T{
.na
.nh
SecondarySpace
T} T{
.na
.nh
No
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T}
T{
.na
.nh
Avblock
T} T{
.na
.nh
Sometimes
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T}
T{
.na
.nh
BufferSize
T} T{
.na
.nh
No
T} T{
.na
.nh
4096
T} T{
.na
.nh
\
T}
.TE
.LP
The option details are as follows.
.TP
\fBDirection\fP
\fBsend\fP to send a file to the host,
\fBreceive\fP to receive a file from the host.
.TP
\fBHostFile\fP
The name of the file on the host.
.TP
\fBLocalFile\fP
The name of the file on the local workstation.
.TP
\fBHost\fP
The type of host (which dictates the form of the \fBIND$FILE\fP command):
\fBtso\fP (the default), \fBvm\fP or \fBcics\fP.
.TP
\fBMode\fP
Use \fBascii\fP (the default) for a text file, which will be translated
between \s-1EBCDIC\s+1 and \s-1ASCII\s+1 as necessary.
Use \fBbinary\fP for non-text files.
.TP
\fBCr\fP
Controls how \fBNewline\fP characters are handled when transferring
\fBMode=ascii\fP files.
\fBremove\fP (the default) strips \fBNewline\fP characters in local files
before transferring them to the host.
\fBadd\fP adds \fBNewline\fP characters to each host file record before
transferring it to the local workstation.
\fBkeep\fP preserves \fBNewline\fP characters when transferring a local file
to the host.
.TP
\fBRemap\fP
Controls text translation for \fBMode=ascii\fP files.
The value \fByes\fP (the default) causes c3270 to remap the text to ensure
maximum compatibility between the workstation's character set and encoding
and the host's \s-1EBCDIC\s+1 code page.
The value \fBno\fP causes c3270 to pass the text to or from the host
as-is, leaving all translation to the \fBIND$FILE\fP program on the host.
.TP
\fBExist\fP
Controls what happens when the destination file already exists.
\fBkeep\fP (the default) preserves the file, causing the
\fBTransfer\fP action to fail.
\fBreplace\fP overwrites the destination file with the source file.
\fBappend\fP appends the source file to the destination file.
.TP
\fBRecfm\fP
Controls the record format of files created on the host.
(\s-1TSO\s+1 and \s-1VM\s+1 hosts only.)
\fBfixed\fP creates a file with fixed-length records.
\fBvariable\fP creates a file with variable-length records.
\fBundefined\fP creates a file with undefined-length records (\s-1TSO\s+1 hosts
only).
The \fBLrecl\fP option controls the record length or maximum record length for
\fBRecfm=fixed\fP and \fBRecfm=variable\fP files, respectively.
.TP
\fBLrecl\fP
Specifies the record length (or maximum record length) for files created on
the host.
(\s-1TSO\s+1 and \s-1VM\s+1 hosts only.)
.TP
\fBBlksize\fP
Specifies the block size for files created on the host.
(\s-1TSO\s+1 and \s-1VM\s+1 hosts only.)
.TP
\fBAllocation\fP
Specifies the units for the \fBPrimarySpace\fP and
\fBSecondarySpace\fP options: \fBtracks\fP, \fBcylinders\fP or
\fBavblock\fP. (\s-1TSO\s+1 hosts only.)
.TP
\fBPrimarySpace\fP
Primary allocation for a file.
The units are given by the \fBAllocation\fP option.
Required when the \fBAllocation\fP is specified as something other than
\fBdefault\fP.
(\s-1TSO\s+1 hosts only.)
.TP
\fBSecondarySpace\fP
Secondary allocation for a file.
The units are given by the \fBAllocation\fP option. (\s-1TSO\s+1 hosts only.)
.TP
\fBAvblock\fP
Average block size, required when \fBAllocation\fP specifies \fBavblock\fP.
(\s-1TSO\s+1 hosts only.)
.TP
\fBBufferSize\fP
Buffer size for DFT-mode transfers.
Can range from 256 to 32768.
Larger values give better performance, but some hosts may not be able to
support them.
.LP
There are also resources that control the default values for each of the
file transfer parameters.
These resources have the same names as the \fBTransfer\fP keywords, but with
\fBft\fP prepended. E.g., the default for the \fBMode\fP keyword is the
\fBc3270.ftMode\fP resource.
.SH "THE PRINTTEXT ACTION"
The \fBPrintText\fP produces screen snapshots in a number of different
forms.
The default form wth no arguments sends a copy of the screen to the default
printer.
A single argument is
the command to use to print, e.g., \fBlpr\fP.
.LP
Multiple arguments can include keywords to control the output of
\fBPrintText\fP:
.TP
\fBfile\fP \fIfilename\fP
Save the output in a file.
.TP
\fBhtml\fP
Save the output as HTML. This option implies \fBfile\fP.
.TP
\fBrtf\fP
Save the output as RichText. This option implies \fBfile\fP.
The font defaults to \fBCourier New\fP and the
point size defaults to 8.
These can be overridden by the \fBprintTextFont\fP and \fBprintTextSize\fP
resources, respectively.
.TP
\fBstring\fP
Return the output as a string. This can only be used from scripts.
.TP
\fBmodi\fP
Render modified fields in italics.
.TP
\fBcaption\fP \fItext\fP
Add the specified \fItext\fP as a caption above the output.
Within \fItext\fP, the special sequence \fB%T%\fP will be replaced with
a timestamp.
.TP
\fBcommand\fP \fIcommand\fP
Directs the output to a command.
This allows one or more of the other keywords to be specified, while still
sending the output to the printer.
.SH "SCRIPTS"
There are several types of
script functions available.
.TP
\fBThe String Action\fP
The simplest method for
scripting is provided via the \fBString\fP
action.
The arguments to \fBString\fP are one or more double-quoted strings which are
inserted directly as if typed.
The C backslash conventions are honored as follows.
(Entries marked * mean that after sending the \s-1AID\s+1 code to the host,
\fBc3270\fP will wait for the host to unlock the keyboard before further
processing the string.)
.TS
l l.
T{
.na
.nh
\eb
T} T{
.na
.nh
Left
T}
T{
.na
.nh
\ee\fIxxxx\fP
T} T{
.na
.nh
EBCDIC character in hex
T}
T{
.na
.nh
\ef
T} T{
.na
.nh
Clear*
T}
T{
.na
.nh
\en
T} T{
.na
.nh
Enter*
T}
T{
.na
.nh
\epa\fIn\fP
T} T{
.na
.nh
PA(\fIn\fP)*
T}
T{
.na
.nh
\epf\fInn\fP
T} T{
.na
.nh
PF(\fInn\fP)*
T}
T{
.na
.nh
\er
T} T{
.na
.nh
Newline
T}
T{
.na
.nh
\et
T} T{
.na
.nh
Tab
T}
T{
.na
.nh
\eT
T} T{
.na
.nh
BackTab
T}
T{
.na
.nh
\eu\fIxxxx\fP
T} T{
.na
.nh
Unicode character in hex
T}
T{
.na
.nh
\ex\fIxxxx\fP
T} T{
.na
.nh
Unicode character in hex
T}
.TE
.IP
Note that the numeric values for the \ee, \eu and \ex sequences
can be abbreviated to 2 digits.
Note also that EBCDIC codes greater than 255 and some Unicode character codes
represent DBCS characters, which will work only if c3270 is built with
DBCS support and the host allows DBCS input in the current field.
.IP
An example keymap entry would be:
.RS
Metap: String("probs clearrdr\en")
.RE
.IP
\fBNote:\fP
The strings are in \s-1ASCII\s+1 and converted to \s-1EBCDIC\s+1,
so beware of inserting
control codes.
.IP
There is also an alternate form of the \fBString\fP action, \fBHexString\fP,
which is used to enter non-printing data.
The argument to \fBHexString\fP is a string of hexadecimal digits, two per
character. A leading 0x or 0X is optional.
In 3270 mode, the hexadecimal data represent \s-1EBCDIC\s+1 characters, which
are entered into the current field.
In \s-1NVT\s+1 mode, the hexadecimal data represent \s-1ASCII\s+1 characters,
which are sent directly to the host.
.TP
\fBThe Script Action\fP
This action causes \fBc3270\fP to start a child process which can
execute \fBc3270\fP actions.
Standard input and output from the child process are piped back to
\fBc3270\fP.
The \fBScript\fP action is fully documented in
\fIx3270-script\fP(1).
.SH "COMPOSITE CHARACTERS"
\fBc3270\fP
allows the direct entry of accented letters and special symbols.
Pressing and releasing the "Compose" key, followed by two other keys, causes
entry of the symbol combining those two keys.
For example, "Compose" followed by the "C" key and the "," (comma) key, enters
the "C-cedilla" symbol.
A C on the status line indicates a pending composite character.
.PP
The mappings between these pairs of ordinary keys and the symbols they
represent is controlled by the "c3270.composeMap" resource; it gives the
name of the map to use.
The maps themselves are named "c3270.composeMap.\fIname\fP".
The default is "latin1", which gives mappings for most of the symbols in
the \s-1ISO\s+1 8859-1 Latin-1 character set that are not in the
7-bit \s-1ASCII\s+1
character set.
.PP
\fBNote:\fP
The default keymap defines
Metam
as the "Compose" key.
You
may set up your own "Compose" key with
a keymap that maps some other keysym onto the \fBCompose\fP action.
.SH "PRINTER SESSION SUPPORT"
c3270 supports associated printer sessions via the \fIpr3287\fP(1)
program.
The \fBPrinter\fP action is used to start or stop a \fIpr3287\fP session.
.LP
The action \fBPrinter Start\fP starts a printer session, associated with the
current LU. (This works only if the host supports TN3270E.)
.LP
The action \fBPrinter Start\fP \fIlu\fP starts a printer session, associated
with a specific \fIlu\fP.
.LP
The action \fBPrinter Stop\fP stops a printer session.
.LP
The resource \fBc3270.printer.options\fP specifies extra options, such as
\fB-trace\fP to pass to \fIpr3287\fP.
.LP
See \fIpr3287\fP(1) for further details.
.LP
The resource \fBc3270.printerLu\fP controls automatic printer session
start-up. If it is set to `\fB.\fP', then whenever a login session is started,
a printer session will automatically be started, associated with the login
session. If it is set an LU name, then the automatic printer session will be
associated with the specified LU.
.SH "PASSTHRU"
\fBc3270\fP supports the Sun \fItelnet-passthru\fP
service provided by the \fIin.telnet-gw\fP server.
This allows outbound telnet connections through a firewall machine.
When a \fBp:\fP is prepended to a hostname, \fBc3270\fP
acts much like the \fIitelnet\fP(1) command.
It contacts the machine named \fBinternet-gateway\fP at the port defined in
\fB/etc/services\fP as \fBtelnet-passthru\fP
(which defaults to 3514).
It then passes the requested hostname and port to the
\fBin.telnet-gw\fP server.
.SH "PROXY"
The \fB\-proxy\fP option or the \fBc3270.proxy\fP resource
causes c3270 to use a proxy server to connect to the host.
The syntax of the option or resource is:
.RS
\fItype\fP:\fIhost\fP[:\fIport\fP]
.RE
The supported values for \fItype\fP are:
.TS
center;
c l c .
T{
.na
.nh
Proxy Type
T} T{
.na
.nh
Protocol
T} T{
.na
.nh
Default Port
T}
_
T{
.na
.nh
http
T} T{
.na
.nh
RFC 2817 HTTP tunnel (squid)
T} T{
.na
.nh
3128
T}
T{
.na
.nh
passthru
T} T{
.na
.nh
Sun in.telnet-gw
T} T{
.na
.nh
none
T}
T{
.na
.nh
socks4
T} T{
.na
.nh
SOCKS version 4
T} T{
.na
.nh
1080
T}
T{
.na
.nh
socks5
T} T{
.na
.nh
SOCKS version 5 (RFC 1928)
T} T{
.na
.nh
1080
T}
T{
.na
.nh
telnet
T} T{
.na
.nh
No protocol (just send \fBconnect\fP \fIhost port\fP)
T} T{
.na
.nh
none
T}
.TE
.LP
The special types \fBsocks4a\fP and \fBsocks5d\fP can also be used to force
the proxy server to do the hostname resolution for the SOCKS protocol.
.SH "SCREEN SIZE SWITCHING"
When running as a 3270 Model 5, \fBc3270\fP can take advantage of terminals
that can switch between 80 and 132 column modes.
.LP
Because the curses library does not support mode switching, the escape
sequences and resulting screen dimensions must be specified explicitly to
\fBc3270\fP.
These are specified with the \fB\-altscreen\fP and
\fB\-defscreen\fP command-line options, or the
\fBaltScreen\fP and \fBdefScreen\fP resources.
\fB\-altscreen\fP or \fBaltScreen\fP defines the alternate
(132-column) mode; \fB\-defscreen\fP or \fBdefScreen\fP defines the
default (80-column) mode.
.LP
The syntax for the options and resources is
\fIrows\fP\fBx\fP\fIcols\fP\fB=\fP\fIinit_string\fP,
where \fIrows\fP and \fIcols\fP give the screen dimensions, and
\fIinit_string\fP is the escape sequence to transmit to the terminal to
enter that mode.
For \fBdefscreen\fP, the minimum dimensions are 24 rows and 80 columns.
For \fBaltscreen\fP, the minimum dimensions are 27 rows and 132 columns.
Within \fIinit_string\fP, the usual escape sequences are supported
(\\E for escape, \\r, \\b, etc.).
For example, the init string for a 132-column xterm is:
.IP
\\E[?40h\\E[?3h
.LP
Note: When \fBdefscreen\fP and \fBaltscreen\fP are specified, the model
number is always set to 5.
.SH "RESOURCES"
Certain \fBc3270\fP
options can be configured via resources.
Resources are defined
in the file \fB.c3270pro\fP in the user's
home directory, and
by \fB\-xrm\fP options.
The definitions are similar to X11 resources, and use a similar syntax.
The resources available in \fBc3270\fP are:
.LP
.TS
l l l l.
T{
.na
.nh
Resource
T} T{
.na
.nh
Default
T} T{
.na
.nh
Option
T} T{
.na
.nh
Purpose
T}
_
T{
.na
.nh
allBold
T} T{
.na
.nh
Auto
T} T{
.na
.nh
\-allbold
T} T{
.na
.nh
Display all characters bold
T}
T{
.na
.nh
altScreen
T} T{
.na
.nh
\
T} T{
.na
.nh
\-altscreen
T} T{
.na
.nh
132-col screen definition
T}
T{
.na
.nh
blankFill
T} T{
.na
.nh
False
T} T{
.na
.nh
\-set blankFill
T} T{
.na
.nh
Blank Fill mode
T}
T{
.na
.nh
charset
T} T{
.na
.nh
bracket
T} T{
.na
.nh
\-charset
T} T{
.na
.nh
\s-1EBCDIC\s+1 character set
T}
T{
.na
.nh
composeMap
T} T{
.na
.nh
latin1
T} T{
.na
.nh
\
T} T{
.na
.nh
Name of composed-character map
T}
T{
.na
.nh
cursesColor\%ForHostColor\fIn\fP
T} T{
.na
.nh
(note 6)
T} T{
.na
.nh
\
T} T{
.na
.nh
Color mapping
T}
T{
.na
.nh
cursesColor\%ForDefault
T} T{
.na
.nh
green
T} T{
.na
.nh
\
T} T{
.na
.nh
Default color mapping
T}
T{
.na
.nh
cursesColor\%ForIntensified
T} T{
.na
.nh
red
T} T{
.na
.nh
\
T} T{
.na
.nh
Default color mapping
T}
T{
.na
.nh
cursesColor\%ForProtected
T} T{
.na
.nh
blue
T} T{
.na
.nh
\
T} T{
.na
.nh
Default color mapping
T}
T{
.na
.nh
cursesColor\%ForProtectedIntensified
T} T{
.na
.nh
white
T} T{
.na
.nh
\
T} T{
.na
.nh
Default color mapping
T}
T{
.na
.nh
cursesKeymap
T} T{
.na
.nh
True
T} T{
.na
.nh
\
T} T{
.na
.nh
Set curses keymap option
T}
T{
.na
.nh
defScreen
T} T{
.na
.nh
\
T} T{
.na
.nh
\-defscreen
T} T{
.na
.nh
80-col screen definition
T}
T{
.na
.nh
dbcsCgcsgid
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T} T{
.na
.nh
Override DBCS CGCSGID
T}
T{
.na
.nh
dsTrace
T} T{
.na
.nh
False
T} T{
.na
.nh
\-trace
T} T{
.na
.nh
Data stream tracing
T}
T{
.na
.nh
eof
T} T{
.na
.nh
^D
T} T{
.na
.nh
\
T} T{
.na
.nh
\s-1NVT\s+1-mode \s-1EOF\s+1 character
T}
T{
.na
.nh
erase
T} T{
.na
.nh
^H
T} T{
.na
.nh
\
T} T{
.na
.nh
\s-1NVT\s+1-mode erase character
T}
T{
.na
.nh
extended
T} T{
.na
.nh
True
T} T{
.na
.nh
\
T} T{
.na
.nh
Use 3270 extended data stream
T}
T{
.na
.nh
eventTrace
T} T{
.na
.nh
False
T} T{
.na
.nh
\-trace
T} T{
.na
.nh
Event tracing
T}
T{
.na
.nh
hostsFile
T} T{
.na
.nh
\
T} T{
.na
.nh
\-hostsfile
T} T{
.na
.nh
Host alias/macro file
T}
T{
.na
.nh
icrnl
T} T{
.na
.nh
False
T} T{
.na
.nh
\
T} T{
.na
.nh
Map \s-1CR\s+1 to \s-1NL\s+1 on \s-1NVT\s+1-mode input
T}
T{
.na
.nh
inlcr
T} T{
.na
.nh
False
T} T{
.na
.nh
\
T} T{
.na
.nh
Map \s-1NL\s+1 to \s-1CR\s+1 in \s-1NVT\s+1-mode input
T}
T{
.na
.nh
intr
T} T{
.na
.nh
^C
T} T{
.na
.nh
\
T} T{
.na
.nh
\s-1NVT\s+1-mode interrupt character
T}
T{
.na
.nh
keymap
T} T{
.na
.nh
\
T} T{
.na
.nh
\-keymap
T} T{
.na
.nh
Keyboard map name
T}
T{
.na
.nh
keymap.\fIfoo\fP
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T} T{
.na
.nh
Definition of keymap \fIfoo\fP
T}
T{
.na
.nh
kill
T} T{
.na
.nh
^U
T} T{
.na
.nh
\
T} T{
.na
.nh
\s-1NVT\s+1-mode kill character
T}
T{
.na
.nh
lineWrap
T} T{
.na
.nh
False
T} T{
.na
.nh
\-set lineWrap
T} T{
.na
.nh
\s-1NVT\s+1 line wrap mode
T}
T{
.na
.nh
lnext
T} T{
.na
.nh
^V
T} T{
.na
.nh
\
T} T{
.na
.nh
\s-1NVT\s+1-mode lnext character
T}
T{
.na
.nh
m3279
T} T{
.na
.nh
(note 1)
T} T{
.na
.nh
\-model
T} T{
.na
.nh
3279 (color) emulation
T}
T{
.na
.nh
metaEscape
T} T{
.na
.nh
Auto
T} T{
.na
.nh
\
T} T{
.na
.nh
Interpret ESC-x as Meta-x
T}
T{
.na
.nh
mono
T} T{
.na
.nh
(note 5)
T} T{
.na
.nh
\-mono
T} T{
.na
.nh
Ignore terminal color capabilities
T}
T{
.na
.nh
monoCase
T} T{
.na
.nh
False
T} T{
.na
.nh
\-set monoCase
T} T{
.na
.nh
Mono-case mode
T}
T{
.na
.nh
noPrompt
T} T{
.na
.nh
False
T} T{
.na
.nh
\-noprompt
T} T{
.na
.nh
Disable command-prompt mode
T}
T{
.na
.nh
numericLock
T} T{
.na
.nh
False
T} T{
.na
.nh
\
T} T{
.na
.nh
Lock keyboard for numeric field error
T}
T{
.na
.nh
oerrLock
T} T{
.na
.nh
True
T} T{
.na
.nh
\
T} T{
.na
.nh
Lock keyboard for input error
T}
T{
.na
.nh
oversize
T} T{
.na
.nh
\
T} T{
.na
.nh
\-oversize
T} T{
.na
.nh
Oversize screen dimensions
T}
T{
.na
.nh
port
T} T{
.na
.nh
telnet
T} T{
.na
.nh
\-port
T} T{
.na
.nh
Non-default TCP port
T}
T{
.na
.nh
printer.*
T} T{
.na
.nh
(note 4)
T} T{
.na
.nh
\
T} T{
.na
.nh
Printer session config
T}
T{
.na
.nh
printerLu
T} T{
.na
.nh
(note 4)
T} T{
.na
.nh
\
T} T{
.na
.nh
Printer session config
T}
T{
.na
.nh
quit
T} T{
.na
.nh
^\e
T} T{
.na
.nh
\
T} T{
.na
.nh
\s-1NVT\s+1-mode quit character
T}
T{
.na
.nh
reconnect
T} T{
.na
.nh
False
T} T{
.na
.nh
\-reconnect
T} T{
.na
.nh
Automatically reconnect to host
T}
T{
.na
.nh
rprnt
T} T{
.na
.nh
^R
T} T{
.na
.nh
\
T} T{
.na
.nh
\s-1NVT\s+1-mode reprint character
T}
T{
.na
.nh
sbcsCgcsgid
T} T{
.na
.nh
\
T} T{
.na
.nh
\
T} T{
.na
.nh
Override SBCS CGCSGID
T}
T{
.na
.nh
secure
T} T{
.na
.nh
False
T} T{
.na
.nh
\
T} T{
.na
.nh
Disable "dangerous" options
T}
T{
.na
.nh
termName
T} T{
.na
.nh
(note 2)
T} T{
.na
.nh
\-tn
T} T{
.na
.nh
\s-1TELNET\s+1 terminal type string
T}
T{
.na
.nh
traceDir
T} T{
.na
.nh
/tmp
T} T{
.na
.nh
\
T} T{
.na
.nh
Directory for trace files
T}
T{
.na
.nh
traceFile
T} T{
.na
.nh
(note 3)
T} T{
.na
.nh
\-tracefile
T} T{
.na
.nh
File for trace output
T}
T{
.na
.nh
typeahead
T} T{
.na
.nh
True
T} T{
.na
.nh
\
T} T{
.na
.nh
Allow typeahead
T}
T{
.na
.nh
werase
T} T{
.na
.nh
^W
T} T{
.na
.nh
\
T} T{
.na
.nh
\s-1NVT\s+1-mode word-erase character
T}
.TE
.LP
.RS
\fINote 1\fP: \fBm3279\fP defaults to
\fBTrue\fP if the terminal supports color,
\fBFalse\fP otherwise.
It can be forced to \fBFalse\fP with the proper \fB\-model\fP
option.
.LP
\fINote 2\fP:
The default terminal type string is constructed from the model number, color
emulation, and extended data stream modes.
E.g., a model 2 with color emulation and the extended data stream option
would be sent as \fBIBM-3279-2-E\fP.
Note also that when \s-1TN3270E\s+1
mode is used, the terminal type is always sent as 3278, but this does not
affect color capabilities.
.LP
\fINote 3\fP: The default trace file is
\fBx3trc.\fP\fIpid\fP in the directory specified by
the \fBtraceDir\fP resource.
.LP
\fINote 4\fP: See \s-1PRINTER SUPPORT\s+1 for details.
.LP
\fINote 5\fP: \fBmono\fP defaults to \fBfalse\fP if the
terminal supports at least 8 colors and to \fBtrue\fP otherwise.
.LP
\fINote 6\fP: The default curses color mappings for host colors
0 through 15 are: black, blue, red, magenta, green, cyan, yellow, white, black,
blue, yellow, blue, green, cyan, black and white.
.RE
.LP
In \fB.c3270pro\fP, lines are continued with a
backslash character.
.LP
\fB\-xrm\fP options override definitions found in \fB.c3270pro\fP.
If more than one \fB\-xrm\fP option is given for the same resource,
the last one on the command line is used.
.SH "FILES"
/usr/local/lib/x3270/ibm_hosts
.br
$HOME/.c3270pro
.SH "SEE ALSO"
pr3287(1), s3270(1), x3270-script(1), x3270(1), tcl3270(1), telnet(1), tn3270(1)
.br
Data Stream Programmer's Reference, IBM GA23-0059
.br
Character Set Reference, IBM GA27-3831
.br
RFC 1576, TN3270 Current Practices
.br
RFC 1646, TN3270 Extensions for LUname and Printer Selection
.br
RFC 2355, TN3270 Enhancements
.SH "COPYRIGHTS"
Copyright 1993-2017, Paul Mattes.
.br
Copyright 2004-2005, Don Russell.
.br
Copyright 2004, Dick Altenbern.
.br
Copyright 1990, Jeff Sparkes.
.br
Copyright 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA
30332.
.br
All rights reserved.
.LP
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
.TP
*
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
.TP
*
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.TP
*
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes,
GTRC nor
the names of their contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.
.LP
THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF
SPARKES AND GTRC
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK
ALTENBERN, JEFF
SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.SH "VERSION"
c3270 3.6ga4
suite3270-3.6/c3270/conf.h.in 0000664 0000765 0000765 00000004735 13221577163 013446 0 ustar pdm pdm /*
* Copyright (c) 2000-2015, 2017 Paul Mattes.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the names of Paul Mattes nor the names of his contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* conf.h
* System-specific #defines for libraries and library functions.
* Automatically generated from conf.h.in by configure.
*/
/* Libraries. */
#undef HAVE_LIBNCURSESW
#undef HAVE_LIBNCURSES
#undef HAVE_LIBCURSES
#undef HAVE_LIBREADLINE
/* Header files. */
#undef HAVE_NCURSESW_NCURSES_H
#undef HAVE_NCURSES_NCURSES_H
#undef HAVE_NCURSES_H
#undef HAVE_CURSES_H
#undef HAVE_NCURSESW_TERM_H
#undef HAVE_NCURSES_TERM_H
#undef HAVE_TERM_H
#undef HAVE_SYS_SELECT_H
#undef HAVE_READLINE_HISTORY_H
#undef HAVE_PTY_H
#undef HAVE_LIBUTIL_H
#undef HAVE_UTIL_H
#undef HAVE_GETOPT_H
/* Uncommon functions. */
#undef HAVE_VASPRINTF
#undef HAVE_FSEEKO
#undef HAVE_FORKPTY
#undef HAVE_USE_DEFAULT_COLORS
/* Default pager. */
#define LESSPATH ""
#define MOREPATH ""
/* Wide curses. */
#undef CURSES_WIDE
/* Configuration options. */
/* Broken stuff. */
#undef BROKEN_NEWTERM
/* Optional parts. */
#undef X3270_DBCS
#undef X3270_LOCAL_PROCESS
#undef X3270_IPV6
suite3270-3.6/c3270/configure 0000775 0000765 0000765 00000604162 13221577163 013652 0 ustar pdm pdm #! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for c3270 3.x.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
# Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='print -r --'
as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
fi
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there. '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
"
as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }
exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1"
if (eval "$as_required") 2>/dev/null; then :
as_have_required=yes
else
as_have_required=no
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
as_shell=$as_dir/$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
CONFIG_SHELL=$as_shell as_have_required=yes
if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
break 2
fi
fi
done;;
esac
as_found=false
done
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
CONFIG_SHELL=$SHELL as_have_required=yes
fi; }
IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
export CONFIG_SHELL
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
fi
if test x$as_have_required = xno; then :
$as_echo "$0: This script requires a shell more modern than all"
$as_echo "$0: the shells that I found on your system."
if test x${ZSH_VERSION+set} = xset ; then
$as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
else
$as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
$0: including any error possibly output before this
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
fi
exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
$as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -p'
fi
else
as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
if test -x / >/dev/null 2>&1; then
as_test_x='test -x'
else
if ls -dL / >/dev/null 2>&1; then
as_ls_L_option=L
else
as_ls_L_option=
fi
as_test_x='
eval sh -c '\''
if test -d "$1"; then
test -d "$1/.";
else
case $1 in #(
-*)set "./$1";;
esac;
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
???[sx]*):;;*)false;;esac;fi
'\'' sh
'
fi
as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
test -n "$DJDIR" || exec 7<&0 &1
# Name of the host.
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='c3270'
PACKAGE_TARNAME='c3270'
PACKAGE_VERSION='3.x'
PACKAGE_STRING='c3270 3.x'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
# Factoring default headers for most tests.
ac_includes_default="\
#include
#ifdef HAVE_SYS_TYPES_H
# include
#endif
#ifdef HAVE_SYS_STAT_H
# include
#endif
#ifdef STDC_HEADERS
# include
# include
#else
# ifdef HAVE_STDLIB_H
# include
# endif
#endif
#ifdef HAVE_STRING_H
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
# include
# endif
# include
#endif
#ifdef HAVE_STRINGS_H
# include
#endif
#ifdef HAVE_INTTYPES_H
# include
#endif
#ifdef HAVE_STDINT_H
# include
#endif
#ifdef HAVE_UNISTD_H
# include
#endif"
ac_subst_vars='LTLIBOBJS
LIBOBJS
DBCS
LIBX3270DIR
MOREPATH
LESSPATH
CURSES_WIDE
EGREP
GREP
CPP
CCOPTIONS
BROKEN_NEWTERM
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
OBJEXT
EXEEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
with_readline
enable_dbcs
enable_local_process
enable_ipv6
'
ac_precious_vars='build_alias
host_alias
target_alias
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CPP'
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'
ac_prev=
ac_dashdash=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval $ac_prev=\$ac_option
ac_prev=
continue
fi
case $ac_option in
*=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
*=) ac_optarg= ;;
*) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir=$ac_optarg ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build_alias ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build_alias=$ac_optarg ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file=$ac_optarg ;;
--config-cache | -C)
cache_file=config.cache ;;
-datadir | --datadir | --datadi | --datad)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=*)
datadir=$ac_optarg ;;
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
datarootdir=$ac_optarg ;;
-disable-* | --disable-*)
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=no ;;
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
docdir=$ac_optarg ;;
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
dvidir=$ac_optarg ;;
-enable-* | --enable-*)
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=\$ac_optarg ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix=$ac_optarg ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he | -h)
ac_init_help=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
ac_init_help=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
ac_init_help=short ;;
-host | --host | --hos | --ho)
ac_prev=host_alias ;;
-host=* | --host=* | --hos=* | --ho=*)
host_alias=$ac_optarg ;;
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
htmldir=$ac_optarg ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir=$ac_optarg ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir=$ac_optarg ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir=$ac_optarg ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir=$ac_optarg ;;
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
localedir=$ac_optarg ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst | --locals)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
localstatedir=$ac_optarg ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir=$ac_optarg ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c | -n)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir=$ac_optarg ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=$ac_optarg ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix=$ac_optarg ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix=$ac_optarg ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name=$ac_optarg ;;
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
pdfdir=$ac_optarg ;;
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
psdir=$ac_optarg ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir=$ac_optarg ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir=$ac_optarg ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site=$ac_optarg ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir=$ac_optarg ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir=$ac_optarg ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target_alias ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target_alias=$ac_optarg ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers | -V)
ac_init_version=: ;;
-with-* | --with-*)
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=\$ac_optarg ;;
-without-* | --without-*)
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=no ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes=$ac_optarg ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
-*) as_fn_error $? "unrecognized option: \`$ac_option'
Try \`$0 --help' for more information"
;;
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
*)
# FIXME: should be removed in autoconf 3.0.
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
# Check all directory arguments for consistency.
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
case $ac_val in
*/ )
ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
eval $ac_var=\$ac_val;;
esac
# Be sure to have absolute directory names.
case $ac_val in
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
$as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used" >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
fi
ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-
test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then the parent directory.
ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r "$srcdir/$ac_unique_file"; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
eval ac_env_${ac_var}_set=\${${ac_var}+set}
eval ac_env_${ac_var}_value=\$${ac_var}
eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
eval ac_cv_env_${ac_var}_value=\$${ac_var}
done
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures c3270 3.x to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or \`..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/c3270]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
_ACEOF
cat <<\_ACEOF
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of c3270 3.x:";;
esac
cat <<\_ACEOF
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dbcs leave out DBCS support
--disable-local-process leave out local process support
--disable-ipv6 leave out IPv6 support
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--without-readline Don't use the readline library
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
CPP C preprocessor
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to the package provider.
_ACEOF
ac_status=$?
fi
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
test -d "$ac_dir" ||
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
continue
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
# Check for guested configure.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
elif test -f "$ac_srcdir/configure"; then
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
c3270 configure 3.x
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##
# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
# ac_fn_c_try_cpp LINENO
# ----------------------
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_cpp ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_cpp conftest.$ac_ext"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
# the include files in INCLUDES and setting the cache variable VAR
# accordingly.
ac_fn_c_check_header_mongrel ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if eval \${$3+:} false; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
else
# Is the header compilable?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
$as_echo_n "checking $2 usability... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_header_compiler=yes
else
ac_header_compiler=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
$as_echo "$ac_header_compiler" >&6; }
# Is the header present?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
$as_echo_n "checking $2 presence... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <$2>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
ac_header_preproc=yes
else
ac_header_preproc=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }
# So? What about this header?
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
yes:no: )
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
;;
no:yes:* )
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
eval "$3=\$ac_header_compiler"
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_mongrel
# ac_fn_c_try_run LINENO
# ----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
# that executables *can* be run.
ac_fn_c_try_run ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then :
ac_retval=0
else
$as_echo "$as_me: program exited with status $ac_status" >&5
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_run
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
# INCLUDES, setting the cache variable VAR accordingly.
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
eval "$3=yes"
else
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
$as_test_x conftest$ac_exeext
}; then :
ac_retval=0
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case declares $2.
For example, HP-UX 11i declares gettimeofday. */
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $2 (); below.
Prefer to if __STDC__ is defined, since
exists even on freestanding compilers. */
#ifdef __STDC__
# include
#else
# include
#endif
#undef $2
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char $2 ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined __stub_$2 || defined __stub___$2
choke me
#endif
int
main ()
{
return $2 ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
eval "$3=yes"
else
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by c3270 $as_me 3.x, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
_ASUNAME
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
$as_echo "PATH: $as_dir"
done
IFS=$as_save_IFS
} >&5
cat >&5 <<_ACEOF
## ----------- ##
## Core tests. ##
## ----------- ##
_ACEOF
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
for ac_arg
do
case $ac_arg in
-no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2)
as_fn_append ac_configure_args1 " '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
case $ac_arg in
*=* | --config-cache | -C | -disable-* | --disable-* \
| -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
| -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
| -with-* | --with-* | -without-* | --without-* | --x)
case "$ac_configure_args0 " in
"$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
esac
;;
-* ) ac_must_keep_next=true ;;
esac
fi
as_fn_append ac_configure_args " '$ac_arg'"
;;
esac
done
done
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
# Save into config.log some information that might help in debugging.
{
echo
$as_echo "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
sed -n \
"s/'\''/'\''\\\\'\'''\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
;; #(
*)
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
)
echo
$as_echo "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
$as_echo "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
$as_echo "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
$as_echo "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
$as_echo "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
cat confdefs.h
echo
fi
test "$ac_signal" != 0 &&
$as_echo "$as_me: caught signal $ac_signal"
$as_echo "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
$as_echo "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_URL "$PACKAGE_URL"
_ACEOF
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
# We do not want a PATH search for config.site.
case $CONFIG_SITE in #((
-*) ac_site_file1=./$CONFIG_SITE;;
*/*) ac_site_file1=$CONFIG_SITE;;
*) ac_site_file1=./$CONFIG_SITE;;
esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
else
ac_site_file1=$ac_default_prefix/share/config.site
ac_site_file2=$ac_default_prefix/etc/config.site
fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do
test "x$ac_site_file" = xNONE && continue
if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
done
if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
$as_echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val=\$ac_cv_env_${ac_var}_value
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
# differences in whitespace do not lead to failure.
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
*\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
*) as_fn_append ac_configure_args " '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
## -------------------- ##
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_config_headers="$ac_config_headers conf.h"
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install-sh -c"
break
elif test -f "$ac_dir/install.sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install.sh -c"
break
elif test -f "$ac_dir/shtool"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/shtool install -c"
break
fi
done
if test -z "$ac_aux_dir"; then
as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
# Account for people who put trailing slashes in PATH elements.
case $as_dir/ in #((
./ | .// | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
rm -rf conftest.one conftest.two conftest.dir
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
break 3
fi
fi
fi
done
done
;;
esac
done
IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
fi
if test "${ac_cv_path_install+set}" = set; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
# value for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
INSTALL=$ac_install_sh
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
$as_echo "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# != 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
fi
fi
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
for ac_prog in cl.exe
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$CC" && break
done
fi
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in cl.exe
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
$as_echo "$ac_ct_CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$ac_ct_CC" && break
done
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
fi
fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
$as_echo_n "checking whether the C compiler works... " >&6; }
ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
ac_rmfiles=
for ac_file in $ac_files
do
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
* ) ac_rmfiles="$ac_rmfiles $ac_file";;
esac
done
rm -f $ac_rmfiles
if { { ac_try="$ac_link_default"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
# so that the user can short-circuit this test for compilers unknown to
# Autoconf.
for ac_file in $ac_files ''
do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
;;
[ab].out )
# We found the default executable, but exeext='' is most
# certainly right.
break;;
*.* )
if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
# We set ac_cv_exeext here because the later test for it is not
# safe: cross compilers may not add the suffix if given an `-o'
# argument, so we may need to know it at that point already.
# Even if this section looks crufty: it has the advantage of
# actually working.
break;;
* )
break;;
esac
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
else
ac_file=''
fi
if test -z "$ac_file"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
$as_echo_n "checking for C compiler default output file name... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
$as_echo "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
$as_echo_n "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
# `rm'.
for ac_file in conftest.exe conftest conftest.*; do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
break;;
* ) break;;
esac
done
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
$as_echo "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
int
main ()
{
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
$as_echo_n "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
$as_echo "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
$as_echo_n "checking for suffix of object files... " >&6; }
if ${ac_cv_objext+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
rm -f conftest.o conftest.obj
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
*) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
break;;
esac
done
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
$as_echo "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_compiler_gnu=yes
else
ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
$as_echo "$ac_cv_c_compiler_gnu" >&6; }
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
else
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
else
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
$as_echo "$ac_cv_prog_cc_g" >&6; }
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#include
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (p, i)
char **p;
int i;
{
return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
char *s;
va_list v;
va_start (v,p);
s = g (p, va_arg (v,int));
va_end (v);
return s;
}
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
function prototypes and stuff, but not '\xHH' hex character constants.
These don't provoke an error unfortunately, instead are silently treated
as 'x'. The following induces an error, until -std is added to get
proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
array size at least. It's necessary to write '\x00'==0 to get something
that's true only with -std. */
int osf4_cc_array ['\x00' == 0 ? 1 : -1];
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
inside strings and character constants. */
#define FOO(x) 'x'
int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
int argc;
char **argv;
int
main ()
{
return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
;
return 0;
}
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
# AC_CACHE_VAL
case "x$ac_cv_prog_cc_c89" in
x)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
$as_echo "none needed" >&6; } ;;
xno)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
$as_echo "unsupported" >&6; } ;;
*)
CC="$CC $ac_cv_prog_cc_c89"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
esac
if test "x$ac_cv_prog_cc_c89" != xno; then :
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ansi="-std=c99 -pedantic"
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
if ${ac_cv_build+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
if ${ac_cv_host+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
case "$host_os" in
*cygwin*) CPPFLAGS=-D_XOPEN_SOURCE_EXTENDED
ansi=""
;;
hpux) CPPFLAGS=-D_XOPEN_SOURCE_EXTENDED
;;
solaris2*) CPPFLAGS="-D__EXTENSIONS__ -D_XOPEN_SOURCE_EXTENDED"
;;
darwin*) CCOPTIONS="-no-cpp-precomp -Wno-deprecated-declarations"
CPPFLAGS=-D_XOPEN_SOURCE_EXTENDED
;;
linux*) CPPFLAGS="-D_POSIX_SOURCE -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE"
;;
aix*) BROKEN_NEWTERM=1
;;
esac
if test "$GCC" = yes
then # Add common gcc options, plus flags for dependency generation.
CCOPTIONS="$CCOPTIONS -Wall -Wsign-compare $ansi -Wno-variadic-macros -MMD -MP"
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
$as_echo_n "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if ${ac_cv_prog_CPP+:} false; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CPP needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
do
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# Prefer to if __STDC__ is defined, since
# exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC__
# include
#else
# include
#endif
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
else
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
# Broken: success on invalid input.
continue
else
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
done
ac_cv_prog_CPP=$CPP
fi
CPP=$ac_cv_prog_CPP
else
ac_cv_prog_CPP=$CPP
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
$as_echo "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# Prefer to if __STDC__ is defined, since
# exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef __STDC__
# include
#else
# include
#endif
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
else
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
# Broken: success on invalid input.
continue
else
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
if ${ac_cv_path_GREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
ac_path_GREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
{ test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
*GNU*)
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
*)
ac_count=0
$as_echo_n 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
$as_echo 'GREP' >> "conftest.nl"
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_GREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_GREP="$ac_path_GREP"
ac_path_GREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_GREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
$as_echo "$ac_cv_path_GREP" >&6; }
GREP="$ac_cv_path_GREP"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
then ac_cv_path_EGREP="$GREP -E"
else
if test -z "$EGREP"; then
ac_path_EGREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
{ test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
*GNU*)
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
*)
ac_count=0
$as_echo_n 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
$as_echo 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP="$ac_path_EGREP"
ac_path_EGREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_EGREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
$as_echo "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if ${ac_cv_header_stdc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#include
int
main ()
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_header_stdc=yes
else
ac_cv_header_stdc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "memchr" >/dev/null 2>&1; then :
else
ac_cv_header_stdc=no
fi
rm -f conftest*
fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "free" >/dev/null 2>&1; then :
else
ac_cv_header_stdc=no
fi
rm -f conftest*
fi
if test $ac_cv_header_stdc = yes; then
# /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
if test "$cross_compiling" = yes; then :
:
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#if ((' ' & 0x0FF) == 0x020)
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#else
# define ISLOWER(c) \
(('a' <= (c) && (c) <= 'i') \
|| ('j' <= (c) && (c) <= 'r') \
|| ('s' <= (c) && (c) <= 'z'))
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
#endif
#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
int
main ()
{
int i;
for (i = 0; i < 256; i++)
if (XOR (islower (i), ISLOWER (i))
|| toupper (i) != TOUPPER (i))
return 2;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
else
ac_cv_header_stdc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
$as_echo "$ac_cv_header_stdc" >&6; }
if test $ac_cv_header_stdc = yes; then
$as_echo "#define STDC_HEADERS 1" >>confdefs.h
fi
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
inttypes.h stdint.h unistd.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
fi
done
for ac_header in sys/select.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_select_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_SYS_SELECT_H 1
_ACEOF
fi
done
if test "$with_readline" != no; then
for ac_header in readline/history.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "readline/history.h" "ac_cv_header_readline_history_h" "$ac_includes_default"
if test "x$ac_cv_header_readline_history_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_READLINE_HISTORY_H 1
_ACEOF
fi
done
fi
for ac_header in pty.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "pty.h" "ac_cv_header_pty_h" "$ac_includes_default"
if test "x$ac_cv_header_pty_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_PTY_H 1
_ACEOF
fi
done
for ac_header in libutil.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "libutil.h" "ac_cv_header_libutil_h" "$ac_includes_default"
if test "x$ac_cv_header_libutil_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBUTIL_H 1
_ACEOF
fi
done
for ac_header in util.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "util.h" "ac_cv_header_util_h" "$ac_includes_default"
if test "x$ac_cv_header_util_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_UTIL_H 1
_ACEOF
fi
done
for ac_header in getopt.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
if test "x$ac_cv_header_getopt_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_GETOPT_H 1
_ACEOF
fi
done
for ac_header in ncursesw/ncurses.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "ncursesw/ncurses.h" "ac_cv_header_ncursesw_ncurses_h" "$ac_includes_default"
if test "x$ac_cv_header_ncursesw_ncurses_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NCURSESW_NCURSES_H 1
_ACEOF
else
for ac_header in ncurses/ncurses.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "ncurses/ncurses.h" "ac_cv_header_ncurses_ncurses_h" "$ac_includes_default"
if test "x$ac_cv_header_ncurses_ncurses_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NCURSES_NCURSES_H 1
_ACEOF
else
for ac_header in ncurses.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" "$ac_includes_default"
if test "x$ac_cv_header_ncurses_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NCURSES_H 1
_ACEOF
else
for ac_header in curses.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "curses.h" "ac_cv_header_curses_h" "$ac_includes_default"
if test "x$ac_cv_header_curses_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_CURSES_H 1
_ACEOF
else
as_fn_error $? "No curses header file" "$LINENO" 5
fi
done
fi
done
fi
done
fi
done
for ac_header in ncursesw/term.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "ncursesw/term.h" "ac_cv_header_ncursesw_term_h" "$ac_includes_default"
if test "x$ac_cv_header_ncursesw_term_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NCURSESW_TERM_H 1
_ACEOF
else
for ac_header in ncurses/term.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "ncurses/term.h" "ac_cv_header_ncurses_term_h" "$ac_includes_default"
if test "x$ac_cv_header_ncurses_term_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NCURSES_TERM_H 1
_ACEOF
else
for ac_header in term.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "term.h" "ac_cv_header_term_h" "$ac_includes_default"
if test "x$ac_cv_header_term_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_TERM_H 1
_ACEOF
fi
done
fi
done
fi
done
# Check whether --with-readline was given.
if test "${with_readline+set}" = set; then :
withval=$with_readline;
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing forkpty" >&5
$as_echo_n "checking for library containing forkpty... " >&6; }
if ${ac_cv_search_forkpty+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char forkpty ();
int
main ()
{
return forkpty ();
;
return 0;
}
_ACEOF
for ac_lib in '' util; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_forkpty=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_forkpty+:} false; then :
break
fi
done
if ${ac_cv_search_forkpty+:} false; then :
else
ac_cv_search_forkpty=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_forkpty" >&5
$as_echo "$ac_cv_search_forkpty" >&6; }
ac_res=$ac_cv_search_forkpty
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
for ac_func in forkpty
do :
ac_fn_c_check_func "$LINENO" "forkpty" "ac_cv_func_forkpty"
if test "x$ac_cv_func_forkpty" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_FORKPTY 1
_ACEOF
fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for newterm in -lncursesw" >&5
$as_echo_n "checking for newterm in -lncursesw... " >&6; }
if ${ac_cv_lib_ncursesw_newterm+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lncursesw $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char newterm ();
int
main ()
{
return newterm ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_ncursesw_newterm=yes
else
ac_cv_lib_ncursesw_newterm=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_newterm" >&5
$as_echo "$ac_cv_lib_ncursesw_newterm" >&6; }
if test "x$ac_cv_lib_ncursesw_newterm" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBNCURSESW 1
_ACEOF
LIBS="-lncursesw $LIBS"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for newterm in -lncurses" >&5
$as_echo_n "checking for newterm in -lncurses... " >&6; }
if ${ac_cv_lib_ncurses_newterm+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lncurses $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char newterm ();
int
main ()
{
return newterm ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_ncurses_newterm=yes
else
ac_cv_lib_ncurses_newterm=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_newterm" >&5
$as_echo "$ac_cv_lib_ncurses_newterm" >&6; }
if test "x$ac_cv_lib_ncurses_newterm" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBNCURSES 1
_ACEOF
LIBS="-lncurses $LIBS"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for newterm in -lcurses" >&5
$as_echo_n "checking for newterm in -lcurses... " >&6; }
if ${ac_cv_lib_curses_newterm+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcurses $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char newterm ();
int
main ()
{
return newterm ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_curses_newterm=yes
else
ac_cv_lib_curses_newterm=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_newterm" >&5
$as_echo "$ac_cv_lib_curses_newterm" >&6; }
if test "x$ac_cv_lib_curses_newterm" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBCURSES 1
_ACEOF
LIBS="-lcurses $LIBS"
else
as_fn_error $? "Can't find libncurses or new-enough libcurses" "$LINENO" 5
fi
fi
fi
if test "$with_readline" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_initialize in -lreadline" >&5
$as_echo_n "checking for rl_initialize in -lreadline... " >&6; }
if ${ac_cv_lib_readline_rl_initialize+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lreadline $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char rl_initialize ();
int
main ()
{
return rl_initialize ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_readline_rl_initialize=yes
else
ac_cv_lib_readline_rl_initialize=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_initialize" >&5
$as_echo "$ac_cv_lib_readline_rl_initialize" >&6; }
if test "x$ac_cv_lib_readline_rl_initialize" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBREADLINE 1
_ACEOF
LIBS="-lreadline $LIBS"
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
$as_echo_n "checking for library containing gethostbyname... " >&6; }
if ${ac_cv_search_gethostbyname+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char gethostbyname ();
int
main ()
{
return gethostbyname ();
;
return 0;
}
_ACEOF
for ac_lib in '' nsl; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_gethostbyname=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_gethostbyname+:} false; then :
break
fi
done
if ${ac_cv_search_gethostbyname+:} false; then :
else
ac_cv_search_gethostbyname=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5
$as_echo "$ac_cv_search_gethostbyname" >&6; }
ac_res=$ac_cv_search_gethostbyname
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
$as_echo_n "checking for library containing socket... " >&6; }
if ${ac_cv_search_socket+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char socket ();
int
main ()
{
return socket ();
;
return 0;
}
_ACEOF
for ac_lib in '' socket; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_socket=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_socket+:} false; then :
break
fi
done
if ${ac_cv_search_socket+:} false; then :
else
ac_cv_search_socket=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
$as_echo "$ac_cv_search_socket" >&6; }
ac_res=$ac_cv_search_socket
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
if test -n "$BROKEN_NEWTERM"
then if test "$ac_cv_lib_ncurses_newterm" = yes
then :
else $as_echo "#define BROKEN_NEWTERM 1" >>confdefs.h
fi
fi
for ac_func in use_default_colors
do :
ac_fn_c_check_func "$LINENO" "use_default_colors" "ac_cv_func_use_default_colors"
if test "x$ac_cv_func_use_default_colors" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_USE_DEFAULT_COLORS 1
_ACEOF
fi
done
for ac_func in vasprintf
do :
ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
if test "x$ac_cv_func_vasprintf" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_VASPRINTF 1
_ACEOF
fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
if ${ac_cv_sys_largefile_source+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include /* for off_t */
#include
int
main ()
{
int (*fp) (FILE *, off_t, int) = fseeko;
return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_sys_largefile_source=no; break
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _LARGEFILE_SOURCE 1
#include /* for off_t */
#include
int
main ()
{
int (*fp) (FILE *, off_t, int) = fseeko;
return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_sys_largefile_source=1; break
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
ac_cv_sys_largefile_source=unknown
break
done
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
$as_echo "$ac_cv_sys_largefile_source" >&6; }
case $ac_cv_sys_largefile_source in #(
no | unknown) ;;
*)
cat >>confdefs.h <<_ACEOF
#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
_ACEOF
;;
esac
rm -rf conftest*
# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
# in glibc 2.1.3, but that breaks too many other things.
# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
if test $ac_cv_sys_largefile_source != unknown; then
$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
fi
if test "$ac_cv_lib_ncursesw_newterm" = yes
then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wadd_wch in -lncursesw" >&5
$as_echo_n "checking for wadd_wch in -lncursesw... " >&6; }
if ${ac_cv_lib_ncursesw_wadd_wch+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lncursesw $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char wadd_wch ();
int
main ()
{
return wadd_wch ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_ncursesw_wadd_wch=yes
else
ac_cv_lib_ncursesw_wadd_wch=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncursesw_wadd_wch" >&5
$as_echo "$ac_cv_lib_ncursesw_wadd_wch" >&6; }
if test "x$ac_cv_lib_ncursesw_wadd_wch" = xyes; then :
$as_echo "#define CURSES_WIDE 1" >>confdefs.h
Cw=1
fi
elif test "$ac_cv_lib_ncurses_newterm" = yes
then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wadd_wch in -lncurses" >&5
$as_echo_n "checking for wadd_wch in -lncurses... " >&6; }
if ${ac_cv_lib_ncurses_wadd_wch+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lncurses $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char wadd_wch ();
int
main ()
{
return wadd_wch ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_ncurses_wadd_wch=yes
else
ac_cv_lib_ncurses_wadd_wch=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_wadd_wch" >&5
$as_echo "$ac_cv_lib_ncurses_wadd_wch" >&6; }
if test "x$ac_cv_lib_ncurses_wadd_wch" = xyes; then :
$as_echo "#define CURSES_WIDE 1" >>confdefs.h
Cw=1
fi
elif test "$ac_cv_lib_curses_newterm" = yes
then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wadd_wch in -lcurses" >&5
$as_echo_n "checking for wadd_wch in -lcurses... " >&6; }
if ${ac_cv_lib_curses_wadd_wch+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcurses $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char wadd_wch ();
int
main ()
{
return wadd_wch ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_curses_wadd_wch=yes
else
ac_cv_lib_curses_wadd_wch=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curses_wadd_wch" >&5
$as_echo "$ac_cv_lib_curses_wadd_wch" >&6; }
if test "x$ac_cv_lib_curses_wadd_wch" = xyes; then :
$as_echo "#define CURSES_WIDE 1" >>confdefs.h
Cw=1
fi
else echo "What??? "
fi
if test "$Cw" != "1"
then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Wide curses not found -- c3270 will not be able to support multi-byte character encodings" >&5
$as_echo "$as_me: WARNING: Wide curses not found -- c3270 will not be able to support multi-byte character encodings" >&2;}
fi
# Extract the first word of "less", so it can be a program name with args.
set dummy less; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_LESSPATH+:} false; then :
$as_echo_n "(cached) " >&6
else
case $LESSPATH in
[\\/]* | ?:[\\/]*)
ac_cv_path_LESSPATH="$LESSPATH" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_LESSPATH="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
LESSPATH=$ac_cv_path_LESSPATH
if test -n "$LESSPATH"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LESSPATH" >&5
$as_echo "$LESSPATH" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
cat >>confdefs.h <<_ACEOF
#define LESSPATH "$LESSPATH"
_ACEOF
# Extract the first word of "more", so it can be a program name with args.
set dummy more; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_MOREPATH+:} false; then :
$as_echo_n "(cached) " >&6
else
case $MOREPATH in
[\\/]* | ?:[\\/]*)
ac_cv_path_MOREPATH="$MOREPATH" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_MOREPATH="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
MOREPATH=$ac_cv_path_MOREPATH
if test -n "$MOREPATH"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOREPATH" >&5
$as_echo "$MOREPATH" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
cat >>confdefs.h <<_ACEOF
#define MOREPATH "$MOREPATH"
_ACEOF
LIBX3270DIR='${sysconfdir}/x3270'
# Check whether --enable-dbcs was given.
if test "${enable_dbcs+set}" = set; then :
enableval=$enable_dbcs;
fi
case "$enable_dbcs" in
no) ;;
*) $as_echo "#define X3270_DBCS 1" >>confdefs.h
DBCS=-DX3270_DBCS=1
;;
esac
# Check whether --enable-local_process was given.
if test "${enable_local_process+set}" = set; then :
enableval=$enable_local_process;
fi
case "$enable_local_process" in
""|yes) $as_echo "#define X3270_LOCAL_PROCESS 1" >>confdefs.h
;;
esac
# Check whether --enable-ipv6 was given.
if test "${enable_ipv6+set}" = set; then :
enableval=$enable_ipv6;
fi
case "$enable_ipv6" in
""|yes) $as_echo "#define X3270_IPV6 1" >>confdefs.h
;;
esac
ac_config_files="$ac_config_files Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems. If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
_ACEOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
# `set' does not quote correctly, so add quotes: double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
) |
sed '
/^ac_cv_env_/b end
t clear
:clear
s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
debug=false
ac_cs_recheck=false
ac_cs_silent=false
SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='print -r --'
as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
fi
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there. '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
$as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -p'
fi
else
as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
if test -x / >/dev/null 2>&1; then
as_test_x='test -x'
else
if ls -dL / >/dev/null 2>&1; then
as_ls_L_option=L
else
as_ls_L_option=
fi
as_test_x='
eval sh -c '\''
if test -d "$1"; then
test -d "$1/.";
else
case $1 in #(
-*)set "./$1";;
esac;
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
???[sx]*):;;*)false;;esac;fi
'\'' sh
'
fi
as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by c3270 $as_me 3.x, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
CONFIG_COMMANDS = $CONFIG_COMMANDS
$ $0 $@
on `(hostname || uname -n) 2>/dev/null | sed 1q`
"
_ACEOF
case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac
case $ac_config_headers in *"
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
and actions are specified as TAGs, all are instantiated by default.
Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
--config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
instantiate the configuration file FILE
--header=FILE[:TEMPLATE]
instantiate the configuration header FILE
Configuration files:
$config_files
Configuration headers:
$config_headers
Report bugs to the package provider."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
c3270 config.status 3.x
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
Copyright (C) 2010 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
test -n "\$AWK" || AWK=awk
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
case $1 in
--*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
--*=)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=
ac_shift=:
;;
*)
ac_option=$1
ac_optarg=$2
ac_shift=shift
;;
esac
case $ac_option in
# Handling of the options.
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
$as_echo "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
# This is an error.
-*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
shift
done
ac_configure_extra_args=
if $ac_cs_silent; then
exec 6>/dev/null
ac_configure_extra_args="$ac_configure_extra_args --silent"
fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
fi
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
$as_echo "$ac_log"
} >&5
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Handling of arguments.
for ac_config_target in $ac_config_targets
do
case $ac_config_target in
"conf.h") CONFIG_HEADERS="$CONFIG_HEADERS conf.h" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used. Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
fi
# Have a temporary directory for convenience. Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp= ac_tmp=
trap 'exit_status=$?
: "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then
ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
eval ac_cr=\$\'\\r\'
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
{
echo "cat >conf$$subs.awk <<_ACEOF" &&
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' >$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
}
{
line = $ 0
nfields = split(line, field, "@")
substed = 0
len = length(field[1])
for (i = 2; i < nfields; i++) {
key = field[i]
keylen = length(key)
if (S_is_set[key]) {
value = S[key]
line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
len += length(value) + length(field[++i])
substed = 1
} else
len += 1 + keylen
}
print line
}
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
h
s///
s/^/:/
s/[ ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
s/:*$//
x
s/\(=[ ]*\).*/\1/
G
s/\n//
s/^[^=]*=[ ]*$//
}'
fi
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"
# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.
# Create a delimiter string that does not exist in confdefs.h, to ease
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
if test -z "$ac_tt"; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
# For the awk script, D is an array of macro values keyed by name,
# likewise P contains macro parameters if any. Preserve backslash
# newline sequences.
ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
sed -n '
s/.\{148\}/&'"$ac_delim"'/g
t rset
:rset
s/^[ ]*#[ ]*define[ ][ ]*/ /
t def
d
:def
s/\\$//
t bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3"/p
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
d
:bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3\\\\\\n"\\/p
t cont
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
t cont
d
:cont
n
s/.\{148\}/&'"$ac_delim"'/g
t clear
:clear
s/\\$//
t bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/"/p
d
:bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
b cont
' >$CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
for (key in D) D_is_set[key] = 1
FS = ""
}
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
line = \$ 0
split(line, arg, " ")
if (arg[1] == "#") {
defundef = arg[2]
mac1 = arg[3]
} else {
defundef = substr(arg[1], 2)
mac1 = arg[2]
}
split(mac1, mac2, "(") #)
macro = mac2[1]
prefix = substr(line, 1, index(line, defundef) - 1)
if (D_is_set[macro]) {
# Preserve the white space surrounding the "#".
print prefix "define", macro P[macro] D[macro]
next
} else {
# Replace #undef with comments. This is necessary, for example,
# in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
if (defundef == "undef") {
print "/*", prefix defundef, macro, "*/"
next
}
}
}
{ print }
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "
shift
for ac_tag
do
case $ac_tag in
:[FHLC]) ac_mode=$ac_tag; continue;;
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
ac_save_IFS=$IFS
IFS=:
set x $ac_tag
IFS=$ac_save_IFS
shift
ac_file=$1
shift
case $ac_mode in
:L) ac_source=$1;;
:[FH])
ac_file_inputs=
for ac_f
do
case $ac_f in
-) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
test -f "$ac_f" ||
case $ac_f in
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
$as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
$as_echo "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
ac_sed_conf_input=`$as_echo "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
case $ac_tag in
*:-:* | *:-) cat >"$ac_tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
case $ac_mode in
:F)
#
# CONFIG_FILE
#
case $INSTALL in
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
esac
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
p
q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
s&@datadir@&$datadir&g
s&@docdir@&$docdir&g
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF
# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
>$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
case $ac_file in
-) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
# CONFIG_HEADER
#
if test x"$ac_file" != x-; then
{
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
;;
esac
done # for ac_tag
as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded. So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status. When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
ac_config_files="$ac_config_files Makefile.obj"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems. If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
_ACEOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
# `set' does not quote correctly, so add quotes: double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
) |
sed '
/^ac_cv_env_/b end
t clear
:clear
s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
debug=false
ac_cs_recheck=false
ac_cs_silent=false
SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='print -r --'
as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
fi
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there. '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
$as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -p'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -p'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -p'
fi
else
as_ln_s='cp -p'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
if test -x / >/dev/null 2>&1; then
as_test_x='test -x'
else
if ls -dL / >/dev/null 2>&1; then
as_ls_L_option=L
else
as_ls_L_option=
fi
as_test_x='
eval sh -c '\''
if test -d "$1"; then
test -d "$1/.";
else
case $1 in #(
-*)set "./$1";;
esac;
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
???[sx]*):;;*)false;;esac;fi
'\'' sh
'
fi
as_executable_p=$as_test_x
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by c3270 $as_me 3.x, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
CONFIG_COMMANDS = $CONFIG_COMMANDS
$ $0 $@
on `(hostname || uname -n) 2>/dev/null | sed 1q`
"
_ACEOF
case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac
case $ac_config_headers in *"
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
and actions are specified as TAGs, all are instantiated by default.
Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
--config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
instantiate the configuration file FILE
--header=FILE[:TEMPLATE]
instantiate the configuration header FILE
Configuration files:
$config_files
Configuration headers:
$config_headers
Report bugs to the package provider."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
c3270 config.status 3.x
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
Copyright (C) 2010 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
test -n "\$AWK" || AWK=awk
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
case $1 in
--*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
--*=)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=
ac_shift=:
;;
*)
ac_option=$1
ac_optarg=$2
ac_shift=shift
;;
esac
case $ac_option in
# Handling of the options.
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
$as_echo "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
# This is an error.
-*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
shift
done
ac_configure_extra_args=
if $ac_cs_silent; then
exec 6>/dev/null
ac_configure_extra_args="$ac_configure_extra_args --silent"
fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
fi
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
$as_echo "$ac_log"
} >&5
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Handling of arguments.
for ac_config_target in $ac_config_targets
do
case $ac_config_target in
"conf.h") CONFIG_HEADERS="$CONFIG_HEADERS conf.h" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"Makefile.obj") CONFIG_FILES="$CONFIG_FILES Makefile.obj" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used. Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
fi
# Have a temporary directory for convenience. Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp= ac_tmp=
trap 'exit_status=$?
: "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then
ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
eval ac_cr=\$\'\\r\'
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
{
echo "cat >conf$$subs.awk <<_ACEOF" &&
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' >$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
}
{
line = $ 0
nfields = split(line, field, "@")
substed = 0
len = length(field[1])
for (i = 2; i < nfields; i++) {
key = field[i]
keylen = length(key)
if (S_is_set[key]) {
value = S[key]
line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
len += length(value) + length(field[++i])
substed = 1
} else
len += 1 + keylen
}
print line
}
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
h
s///
s/^/:/
s/[ ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
s/:*$//
x
s/\(=[ ]*\).*/\1/
G
s/\n//
s/^[^=]*=[ ]*$//
}'
fi
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"
# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.
# Create a delimiter string that does not exist in confdefs.h, to ease
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
if test -z "$ac_tt"; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
# For the awk script, D is an array of macro values keyed by name,
# likewise P contains macro parameters if any. Preserve backslash
# newline sequences.
ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
sed -n '
s/.\{148\}/&'"$ac_delim"'/g
t rset
:rset
s/^[ ]*#[ ]*define[ ][ ]*/ /
t def
d
:def
s/\\$//
t bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3"/p
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
d
:bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3\\\\\\n"\\/p
t cont
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
t cont
d
:cont
n
s/.\{148\}/&'"$ac_delim"'/g
t clear
:clear
s/\\$//
t bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/"/p
d
:bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
b cont
' >$CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
for (key in D) D_is_set[key] = 1
FS = ""
}
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
line = \$ 0
split(line, arg, " ")
if (arg[1] == "#") {
defundef = arg[2]
mac1 = arg[3]
} else {
defundef = substr(arg[1], 2)
mac1 = arg[2]
}
split(mac1, mac2, "(") #)
macro = mac2[1]
prefix = substr(line, 1, index(line, defundef) - 1)
if (D_is_set[macro]) {
# Preserve the white space surrounding the "#".
print prefix "define", macro P[macro] D[macro]
next
} else {
# Replace #undef with comments. This is necessary, for example,
# in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
if (defundef == "undef") {
print "/*", prefix defundef, macro, "*/"
next
}
}
}
{ print }
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "
shift
for ac_tag
do
case $ac_tag in
:[FHLC]) ac_mode=$ac_tag; continue;;
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
ac_save_IFS=$IFS
IFS=:
set x $ac_tag
IFS=$ac_save_IFS
shift
ac_file=$1
shift
case $ac_mode in
:L) ac_source=$1;;
:[FH])
ac_file_inputs=
for ac_f
do
case $ac_f in
-) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
test -f "$ac_f" ||
case $ac_f in
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
$as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
$as_echo "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
ac_sed_conf_input=`$as_echo "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
case $ac_tag in
*:-:* | *:-) cat >"$ac_tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
case $ac_mode in
:F)
#
# CONFIG_FILE
#
case $INSTALL in
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
esac
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
p
q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
s&@datadir@&$datadir&g
s&@docdir@&$docdir&g
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF
# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
>$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
case $ac_file in
-) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
# CONFIG_HEADER
#
if test x"$ac_file" != x-; then
{
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
$as_echo "/* $configure_input */" \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
;;
esac
done # for ac_tag
as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded. So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status. When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
suite3270-3.6/c3270/configure.in 0000664 0000765 0000765 00000013546 13221577163 014254 0 ustar pdm pdm dnl Copyright (c) 2000-2017, Paul Mattes.
dnl All rights reserved.
dnl
dnl Redistribution and use in source and binary forms, with or without
dnl modification, are permitted provided that the following conditions are met:
dnl * Redistributions of source code must retain the above copyright
dnl notice, this list of conditions and the following disclaimer.
dnl * Redistributions in binary form must reproduce the above copyright
dnl notice, this list of conditions and the following disclaimer in the
dnl documentation and/or other materials provided with the distribution.
dnl * Neither the names of Paul Mattes nor the names of his contributors
dnl may be used to endorse or promote products derived from this software
dnl without specific prior written permission.
dnl
dnl THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED
dnl WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
dnl EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dnl SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
dnl TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
dnl PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
dnl LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
dnl NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
dnl SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
dnl Process this file with autoconf to produce a configure script.
AC_INIT(c3270,3.x)
AC_PREREQ(2.50)
AC_CONFIG_HEADER(conf.h)
dnl Checks for programs.
AC_PROG_INSTALL
AC_PROG_CC
dnl Figure out what sort of host this is.
dnl If it's hpux, then pass the -D_XOPEN_SOURCE_EXTENDED flag to cc, so that
dnl all of the curses KEY_XXX definitions are visible.
dnl If it's solaris2, then pass the -D__EXTENSIONS__ flas to cc, so that all
dnl of the usual Unix functions are visible.
ansi="-std=c99 -pedantic"
AC_CANONICAL_HOST
case "$host_os" in
*cygwin*) CPPFLAGS=-D_XOPEN_SOURCE_EXTENDED
dnl On Cygwin, gcc -ansi or -std=xxx hides POSIX declarations,
dnl and there is no macro you can set to get them back.
ansi=""
;;
hpux) CPPFLAGS=-D_XOPEN_SOURCE_EXTENDED
;;
solaris2*) CPPFLAGS="-D__EXTENSIONS__ -D_XOPEN_SOURCE_EXTENDED"
;;
darwin*) CCOPTIONS="-no-cpp-precomp -Wno-deprecated-declarations"
CPPFLAGS=-D_XOPEN_SOURCE_EXTENDED
;;
linux*) CPPFLAGS="-D_POSIX_SOURCE -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE"
;;
aix*) BROKEN_NEWTERM=1
;;
esac
if test "$GCC" = yes
then # Add common gcc options, plus flags for dependency generation.
CCOPTIONS="$CCOPTIONS -Wall -Wsign-compare $ansi -Wno-variadic-macros -MMD -MP"
fi
AC_SUBST(host)
AC_SUBST(BROKEN_NEWTERM)
AC_SUBST(CCOPTIONS)
dnl Checks for header files.
AC_CHECK_HEADERS(sys/select.h)
if test "$with_readline" != no; then
AC_CHECK_HEADERS(readline/history.h)
fi
AC_CHECK_HEADERS(pty.h)
AC_CHECK_HEADERS(libutil.h)
AC_CHECK_HEADERS(util.h)
AC_CHECK_HEADERS(getopt.h)
dnl Find the best curses header file and hope it's consistent with the library
dnl we found.
AC_CHECK_HEADERS(ncursesw/ncurses.h, ,
[AC_CHECK_HEADERS(ncurses/ncurses.h, ,
[AC_CHECK_HEADERS(ncurses.h, ,
[AC_CHECK_HEADERS(curses.h, , [AC_MSG_ERROR(No curses header file)])])])])
AC_CHECK_HEADERS(ncursesw/term.h, ,
[AC_CHECK_HEADERS(ncurses/term.h, ,
[AC_CHECK_HEADERS(term.h)])])
dnl Check for --without-readline
AC_ARG_WITH(readline, [ --without-readline Don't use the readline library])
dnl Check for libraries.
dnl Note that the order here is important. The last libraries should appear
dnl first, so that objects in them can be used by subsequent libraries.
AC_SEARCH_LIBS(forkpty, util)
AC_CHECK_FUNCS(forkpty)
AC_CHECK_LIB(ncursesw, newterm, , [AC_CHECK_LIB(ncurses, newterm, , [AC_CHECK_LIB(curses, newterm, , [AC_MSG_ERROR(Can't find libncurses or new-enough libcurses)])])])
if test "$with_readline" != no; then
AC_CHECK_LIB(readline, rl_initialize)
fi
AC_SEARCH_LIBS(gethostbyname, nsl)
AC_SEARCH_LIBS(socket, socket)
dnl If we're on AIX and have ncurses, cancel BROKEN_NEWTERM.
if test -n "$BROKEN_NEWTERM"
then if test "$ac_cv_lib_ncurses_newterm" = yes
then :
else AC_DEFINE(BROKEN_NEWTERM,1)
fi
fi
dnl Check for the ncurses default-color extensions.
AC_CHECK_FUNCS(use_default_colors)
dnl Checks for library functions.
AC_CHECK_FUNCS(vasprintf)
AC_FUNC_FSEEKO
dnl Check for curses wide character support.
if test "$ac_cv_lib_ncursesw_newterm" = yes
then AC_CHECK_LIB(ncursesw, wadd_wch, [AC_DEFINE(CURSES_WIDE,1)
Cw=1])
elif test "$ac_cv_lib_ncurses_newterm" = yes
then AC_CHECK_LIB(ncurses, wadd_wch, [AC_DEFINE(CURSES_WIDE,1)
Cw=1])
elif test "$ac_cv_lib_curses_newterm" = yes
then AC_CHECK_LIB(curses, wadd_wch, [AC_DEFINE(CURSES_WIDE,1)
Cw=1])
else echo "What??? "
fi
if test "$Cw" != "1"
then AC_MSG_WARN(Wide curses not found -- c3270 will not be able to support multi-byte character encodings)
fi
AC_SUBST(CURSES_WIDE)
dnl Check for default pager
AC_PATH_PROG(LESSPATH, less)
AC_DEFINE_UNQUOTED(LESSPATH,"$LESSPATH")
AC_PATH_PROG(MOREPATH, more)
AC_DEFINE_UNQUOTED(MOREPATH,"$MOREPATH")
dnl Set up the configuration directory.
LIBX3270DIR='${sysconfdir}/x3270'
AC_SUBST(LIBX3270DIR)
dnl Check for unwanted parts.
AC_ARG_ENABLE(dbcs,[ --disable-dbcs leave out DBCS support])
case "$enable_dbcs" in
no) ;;
*) AC_DEFINE(X3270_DBCS,1)
DBCS=-DX3270_DBCS=1
;;
esac
AC_SUBST(DBCS)
AC_ARG_ENABLE(local_process,[ --disable-local-process leave out local process support])
case "$enable_local_process" in
""|yes) AC_DEFINE(X3270_LOCAL_PROCESS,1)
;;
esac
AC_ARG_ENABLE(ipv6,[ --disable-ipv6 leave out IPv6 support])
case "$enable_ipv6" in
""|yes) AC_DEFINE(X3270_IPV6,1)
;;
esac
dnl Generate the Makefile.
AC_OUTPUT(Makefile)
AC_OUTPUT(Makefile.obj)
suite3270-3.6/c3270/documentation-ssl-body.html 0000664 0000765 0000765 00000020566 13221577163 017234 0 ustar pdm pdm
x3270 and TLS
x3270 supports secure communication via the Transport Layer Security protocol
(TLS), formerly called the Secure Sockets Layer (SSL). (The text
below refers to x3270, but the descriptions apply to all of the
members of the suite.)
A secure connection can be negotiated immediately by specifying the
L: prefix on the hostname (e.g., L:foo.whatever.net), or can
be negotiated later via the TELNET STARTTLS option, which is initiated by
the host after the connection has been established.
TLS on Unix (except MacOS)
On Unix (except for MacOS), x3270 TLS support uses the
OpenSSL library.
Much of the information below is common to many OpenSSL clients and more
extensive documentation is available on the Web.
A Note on PEM Format
PEM (Privacy Enhanced Mail) is a text file format used for TLS
certificates and private keys.
It is easily recognized by headers like the following:
-----BEGIN CERTIFICATE-----
A certificate is the text between (and including) the BEGIN CERTIFICATE
and END CERTIFICATE headers. A private key is the text between (and including)
the BEGIN RSA PRIVATE KEY and END RSA PRIVATE KEY headers.
A PEM-format file can contain multiple certificates and keys.
Options and Resources
TLS is controlled by a number of different command-line options and resources.
Specifying the Server's Root Certificate
If your host's certificate was not signed by a well-known certificate authority
(CA), you can configure x3270 to accept it by specifying an alternate set of
root certificate(s).
The -cafile option (or the caFile resource) can be used to
specify a file containing one or more server root certificates.
This file must be in PEM format.
If there are a large number of certificates, the -cadir option (or
the caDir resource) can be used to specify a directory containing root
certificates.
This directory contains files that use the naming convention of
hash.seq, where hash is the hash of the certificate
value and seq is a sequence number (since multiple certificates could
have the same hash) starting with 0.
If your host uses a self-signed certificate, x3270 will not normally allow
TLS authentication with it. To allow authentication with self-signed
certificates, set the selfSignedOk resource to true.
Updating the Root Certificate Database
To avoid having to specify a root certificate for each invocation of x3270,
one or more certificates can be added to the OpenSSL root certificate database.
On Unix, this procedure is (unfortunately) an
operating-system- and release- specific procedure.
However, the OpenSSL root certificate database is common to all OpenSSL
applications on your workstation, so instructions on updating it should be
easily found on the web.
Specifying a Certificate for the Client (the Emulator)
If you have been issued a certificate and a private key to allow your client
(the emulator) to be authenticated by your host, there are several options that
allow this to be specified to x3270.
The -certfile option (or the certFile resource) defines a
file containing the client certificate.
By default, this file is in PEM format, but it can also be in ASN1 format,
which is specified by setting the -certfiletype option (or the
certFileType resource) to the value asn1.
The -chainfile option (or the chainFile resource) defines a
PEM-format file containing both the client certificate and any intermediate
certificates that were used to sign it.
If a chain file is specified, it is used instead of the certificate file.
Specifying the Private Key for the Client Certificate
The file containing the private key for the client certificate can be specified
by the -keyfile option or the keyFile resource.
This file is in PEM format by default, but can be in ASN1 format, by
specifying the -keyfiletype option or the keyFileType resource
with the value asn1.
If no explicit key file is specified, the default is to find the private
key in the chain file or the client certificate file (whichever was
specified).
If the private key is encrypted, then a password must be specified.
x3270 and c3270 will prompt for a password interactively.
For the other emulators, the password is given with the -keypasswd
option or the keyPasswd resource. (These also work with x3270 and c3270.)
The password can have one of two formats.
The format file:filename specifies a file containing the password.
The format string:string specifies the password as a string in
the option or resource directly.
Controlling Host Certificate Verification
By default, host certificates are always verified.
To disable host certificate verification, set the verifyHostCert
resource to false or specify the -noverifycert option.
When host certificates are verified, self-signed certificates are not
allowed.
To allow self-signed host certificates, set the selfSignedOk resource
to true or specify the -selfsignedok option.
Also, when host certificates are verified, the name in the host's
certificate is checked.
This check can be controlled by the acceptHostname resource or the
-accepthostname option.
The value can be any, which disables hostname checking, or
a specific hostname to use for comparison. (The form DNS:hostname is
also available for
backwards-compatibility.)
TLS on MacOS
On MacOS, x3270 uses Secure Transport for TLS.
Options and Resources
TLS is controlled by a number of different command-line options and resources.
Specifying a Certificate for the Client (the Emulator)
The -clientcert option (or the clientCert resource) gives the
name of a client certificate to be used. This certificate must be installed in
the keychain.
The -certfile option (or the certFile resource) defines a
file containing the client certificate.
The file must be in PKCS12 format.
Specifying a Password for the Client Certificate File
If the private key is encrypted, then a password must be specified.
x3270 and c3270 will prompt for a password interactively.
For the other emulators, the password is given with the -keypasswd
option or the keyPasswd resource. (These also work with x3270 and c3270.)
The password can have one of two formats.
The format file:filename specifies a file containing the password.
The format string:string specifies the password as a string in
the option or resource directly.
Controlling Host Certificate Verification
By default, host certificates are always verified.
To disable host certificate verification, set the verifyHostCert
resource to false or specify the -noverifycert option.
When host certificates are verified, the name in the host's
certificate is compared to the name used to establish the connection.
The acceptHostname resource or the -accepthostname option can be
used to specify a different name to compare.
TLS on Windows
wc3270, ws3270 and wpr3287 use the native Windows Schannel APIs for TLS.
This means that the emulators' TLS support is limited by the functionality
supported by the underlying OS, but it benefits from OS fixes and updates over
time without any need to update the app.
Options and Resources
TLS is controlled by a number of different command-line options and resources.
Specifying a Certificate for the Client (the Emulator)
The -clientcert option (or the clientCert resource) gives the
name of a client certificate to be used. This certificate must be installed in
the Personal certificate store.
Controlling Host Certificate Verification
By default, host certificates are always verified.
To disable host certificate verification, set the verifyHostCert
resource to false or specify the -noverifycert option.
When host certificates are verified, the name in the host's
certificate is compared to the name used to establish the connection.
The acceptHostname resource or the -accepthostname option can be
used to specify a different name to compare.
suite3270-3.6/c3270/ft.inc 0000664 0000765 0000765 00000013550 13221577163 013042 0 ustar pdm pdm XX_SH(File Transfer)
The XX_FB(Transfer) XX_action implements XX_FB(IND$FILE) file transfer.
This XX_action requires that the XX_FB(IND$FILE)
program be installed on the XX_SM(IBM) host, and that the 3270 cursor
be located in a field that will accept a XX_SM(TSO) or XX_SM(VM/CMS) command.
XX_LP
ifelse(XX_PRODUCT,x3270,,XX_PRODUCT,s3270,,XX_PRODUCT,tcl3270,,`The XX_FB(Transfer) XX_action
can be entered at the command prompt with no parameters, which will cause it
to prompt interactively for the file names and options.
It can also be invoked with parameters to define the entire transfer.
')dnl
XX_LP
Because of the complexity and number of options for file transfer, the
parameters to the XX_FB(Transfer) XX_action take the unique form
of XX_FI(option)=XX_FI(value), and can appear in any order.
Note that if the XX_FI(value) contains spaces (such as a VM/CMS file name),
then the entire parameter must be quoted, e.g., "HostFile=xxx foo a".
The options are:
XX_LP
XX_TS(4,l c l l.)
XX_TR(XX_TD(Option) XX_TD(Required?) XX_TD(Default) XX_TD(Other Values))
XX_T_()
XX_TR(XX_TD(Direction) XX_TD(No) XX_TD(receive) XX_TD(send))
XX_TR(XX_TD(HostFile) XX_TD(Yes) XX_TD(XX_NBSP) XX_TD(XX_NBSP))
XX_TR(XX_TD(LocalFile) XX_TD(Yes) XX_TD(XX_NBSP) XX_TD(XX_NBSP))
XX_TR(XX_TD(Host) XX_TD(No) XX_TD(tso) `XX_TD(`vm, cics')')
XX_TR(XX_TD(Mode) XX_TD(No) XX_TD(ascii) XX_TD(binary))
XX_TR(XX_TD(Cr) XX_TD(No) XX_TD(remove) `XX_TD(`add, keep')')
XX_TR(XX_TD(Remap) XX_TD(No) XX_TD(yes) XX_TD(no))
XX_TR(XX_TD(Exist) XX_TD(No) XX_TD(keep) `XX_TD(`replace, append')')
XX_TR(XX_TD(Recfm) XX_TD(No) XX_TD(XX_NBSP) `XX_TD(`fixed, variable, undefined')')
XX_TR(XX_TD(Lrecl) XX_TD(No) XX_TD(XX_NBSP) XX_TD(XX_NBSP))
XX_TR(XX_TD(Blksize) XX_TD(No) XX_TD(XX_NBSP) XX_TD(XX_NBSP))
XX_TR(XX_TD(Allocation) XX_TD(No) XX_TD(XX_NBSP) `XX_TD(`tracks, cylinders, avblock')')
XX_TR(XX_TD(PrimarySpace) XX_TD(Sometimes) XX_TD(XX_NBSP) XX_TD(XX_NBSP))
XX_TR(XX_TD(SecondarySpace) XX_TD(No) XX_TD(XX_NBSP) XX_TD(XX_NBSP))
XX_TR(XX_TD(Avblock) XX_TD(Sometimes) XX_TD(XX_NBSP) XX_TD(XX_NBSP))
XX_TR(XX_TD(BufferSize) XX_TD(No) XX_TD(4096) XX_TD(XX_NBSP))
XX_TE()
XX_LP
The option details are as follows.
XX_TPS()dnl
XX_TP(XX_FB(Direction))
XX_FB(send) to send a file to the host,
XX_FB(receive) to receive a file from the host.
XX_TP(XX_FB(HostFile))
The name of the file on the host.
XX_TP(XX_FB(LocalFile))
The name of the file on the local workstation.
XX_TP(XX_FB(Host))
The type of host (which dictates the form of the XX_FB(IND$FILE) command):
XX_FB(tso) (the default), XX_FB(vm) or XX_FB(cics).
XX_TP(XX_FB(Mode))
Use XX_FB(ascii) (the default) for a text file, which will be translated
between XX_SM(EBCDIC) and XX_SM(ASCII) as necessary.
Use XX_FB(binary) for non-text files.
XX_TP(XX_FB(Cr))
Controls how XX_FB(Newline) characters are handled when transferring
XX_FB(Mode=ascii) files.
XX_FB(remove) (the default) strips XX_FB(Newline) characters in local files
before transferring them to the host.
XX_FB(add) adds XX_FB(Newline) characters to each host file record before
transferring it to the local workstation.
XX_FB(keep) preserves XX_FB(Newline) characters when transferring a local file
to the host.
XX_TP(XX_FB(Remap))
Controls text translation for XX_FB(Mode=ascii) files.
The value XX_FB(yes) (the default) causes XX_PRODUCT to remap the text to ensure
maximum compatibility between the workstation's character set and encoding
and the host's XX_SM(EBCDIC) code page.
The value XX_FB(no) causes XX_PRODUCT to pass the text to or from the host
as-is, leaving all translation to the XX_FB(IND$FILE) program on the host.
XX_TP(XX_FB(Exist))
Controls what happens when the destination file already exists.
XX_FB(keep) (the default) preserves the file, causing the
XX_FB(Transfer) XX_action to fail.
XX_FB(replace) overwrites the destination file with the source file.
XX_FB(append) appends the source file to the destination file.
XX_TP(XX_FB(Recfm))
Controls the record format of files created on the host.
(XX_SM(TSO) and XX_SM(VM) hosts only.)
XX_FB(fixed) creates a file with fixed-length records.
XX_FB(variable) creates a file with variable-length records.
XX_FB(undefined) creates a file with undefined-length records (XX_SM(TSO) hosts
only).
The XX_FB(Lrecl) option controls the record length or maximum record length for
XX_FB(Recfm=fixed) and XX_FB(Recfm=variable) files, respectively.
XX_TP(XX_FB(Lrecl))
Specifies the record length (or maximum record length) for files created on
the host.
(XX_SM(TSO) and XX_SM(VM) hosts only.)
XX_TP(XX_FB(Blksize))
Specifies the block size for files created on the host.
(XX_SM(TSO) and XX_SM(VM) hosts only.)
XX_TP(XX_FB(Allocation))
Specifies the units for the XX_FB(PrimarySpace) and
XX_FB(SecondarySpace) options: XX_FB(tracks), XX_FB(cylinders) or
XX_FB(avblock). (XX_SM(TSO) hosts only.)
XX_TP(XX_FB(PrimarySpace))
Primary allocation for a file.
The units are given by the XX_FB(Allocation) option.
Required when the XX_FB(Allocation) is specified as something other than
XX_FB(default).
(XX_SM(TSO) hosts only.)
XX_TP(XX_FB(SecondarySpace))
Secondary allocation for a file.
The units are given by the XX_FB(Allocation) option. (XX_SM(TSO) hosts only.)
XX_TP(XX_FB(Avblock))
Average block size, required when XX_FB(Allocation) specifies XX_FB(avblock).
(XX_SM(TSO) hosts only.)
XX_TP(XX_FB(BufferSize))
Buffer size for DFT-mode transfers.
Can range from 256 to 32768.
Larger values give better performance, but some hosts may not be able to
support them.
ifelse(XX_PLATFORM,windows,`XX_TP(XX_FB(WindowsCodePage))
Overrides the workstation code page used for XX_SM(ASCII) file transfers.
By default, the system XX_SM(ANSI) code page is used.
')dnl
XX_TPE()dnl
XX_LP
There are also resources that control the default values for each of the
file transfer parameters.
These resources have the same names as the XX_FB(Transfer) keywords, but with
XX_FB(ft) prepended. E.g., the default for the XX_FB(Mode) keyword is the
XX_FB(XX_PRODUCT.ftMode) resource.
suite3270-3.6/c3270/hostname.inc 0000664 0000765 0000765 00000006002 13221577163 014241 0 ustar pdm pdm The full syntax for XX_FI(host) is:
XX_RS([XX_FI(prefix):]...[XX_FI(LUname)@]XX_FI(hostname)[:XX_FI(port)][=XX_FI(accept)])
ifelse(XX_PRODUCT,wc3270,,`XX_LP
Prepending a XX_FB(P:) onto XX_FI(hostname) causes the connection to go
through the XX_FI(telnet-passthru) service rather than directly to the host.
See XX_LINK(#Passthru,XX_SM(PASSTHRU)) below.
')dnl
XX_LP
Prepending an XX_FB(S:) onto XX_FI(hostname) removes the "extended data
stream" option reported to the host.
See XX_LINK(#tn,XX_FB(XX_DASHED(tn))) below for further information.
XX_LP
Prepending an XX_FB(N:) onto XX_FI(hostname)
turns off TN3270E support for the session.
XX_LP
Prepending an XX_FB(L:) onto XX_FI(hostname)
causes XX_FB(XX_PRODUCT) to first create an SSL/TLS tunnel to the host, and then
create a TN3270 session inside the tunnel. (This function is supported only if
XX_FB(XX_PRODUCT) was built with SSL/TLS support).
Note that TLS-encrypted sessions using the TELNET START-TLS option are
negotiated with the host automatically; for these sessions the XX_FB(L:) prefix
should not be used.
XX_LP
Prepending a XX_FB(Y:) onto XX_FI(hostname)
causes XX_FB(XX_PRODUCT) to skip validation of host SSL/TLS certificates.
This overrides any other configuration or command-line options.
XX_LP
Prepending an XX_FB(A:) onto XX_FI(hostname) is equivalent to setting the
XX_FB(XX_DASHED(nvt)) option; it forces an NVT-mode session instead of a
3270-mode session.
XX_LP
A specific Logical Unit (LU) name to use may be specified by prepending it to
the XX_FI(hostname) with an XX_DQUOTED(XX_FB(@)).
Multiple LU names to try can be separated by commas.
An empty LU can be placed in the list with an extra comma.
(Note that the LU name is used for different purposes by different kinds of
hosts.
For example, CICS uses the LU name as the Terminal ID.)
XX_LP
The XX_FI(hostname) may optionally be placed inside square-bracket
characters XX_DQUOTED(XX_FB([)) and XX_DQUOTED(XX_FB(])).
This will prevent any colon XX_DQUOTED(XX_FB(:)) characters in the hostname
from being interpreted as indicating option prefixes or port numbers.
This allows numeric IPv6 addresses to be used as hostnames.
ifelse(XX_PRODUCT,wc3270,,XX_PRODUCT,ws3270,,`XX_LP
On systems that support the XX_FI(forkpty) library call, the
XX_FI(hostname) may be replaced with XX_FB(XX_DASHED(e)) and a command string.
This will cause XX_FB(XX_PRODUCT) to connect to a local child process, such as
a shell.
')dnl
XX_LP
The port to connect to defaults to
XX_FB(telnet).
This can be overridden with the XX_FB(XX_DASHED(port)) option, or by appending
a XX_FI(port) to the XX_FI(hostname) with a colon
XX_DQUOTED(XX_FB(:)).
(For compatability with previous versions of XX_FB(XX_PRODUCT)
and with XX_FI(tn3270)(1), the XX_FI(port)
may also be specified as a second, separate argument.)
XX_LP
An optional accept name (a hostname to accept in the host's SSL/TLS
certificate) may be specified by appending it to the hostname with an equals
sign (XX_DQUOTED(XX_FB(=))).
The accept name can also be specified with the XX_FB(XX_DASHED(accepthostname))
option.
suite3270-3.6/c3270/html/Bugs.html 0000664 0000765 0000765 00000000752 13221577163 014470 0 ustar pdm pdm
Known Bugs in c3270 3.3
Known Bugs in c3270 3.3.6
(none)
If you discover any other problems in c3270, please contact
Paul Mattes.
c3270 opens a telnet connection to an IBM
host in a console window.
It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection),
and supports IND$FILE file transfer.
If the console is capable of displaying colors, then c3270 emulates an
IBM 3279. Otherwise, it emulates a 3278.
The full syntax for host is:
[prefix:]...[LUname@]hostname[:port][=accept]
Prepending a P: onto hostname causes the connection to go
through the telnet-passthru service rather than directly to the host.
See PASSTHRU below.
Prepending an S: onto hostname removes the "extended data
stream" option reported to the host.
See -tn below for further information.
Prepending an N: onto hostname
turns off TN3270E support for the session.
Prepending an L: onto hostname
causes c3270 to first create an SSL/TLS tunnel to the host, and then
create a TN3270 session inside the tunnel. (This function is supported only if
c3270 was built with SSL/TLS support).
Note that TLS-encrypted sessions using the TELNET START-TLS option are
negotiated with the host automatically; for these sessions the L: prefix
should not be used.
Prepending a Y: onto hostname
causes c3270 to skip validation of host SSL/TLS certificates.
This overrides any other configuration or command-line options.
Prepending an A: onto hostname is equivalent to setting the
-nvt option; it forces an NVT-mode session instead of a
3270-mode session.
A specific Logical Unit (LU) name to use may be specified by prepending it to
the hostname with an `@'.
Multiple LU names to try can be separated by commas.
An empty LU can be placed in the list with an extra comma.
(Note that the LU name is used for different purposes by different kinds of
hosts.
For example, CICS uses the LU name as the Terminal ID.)
The hostname may optionally be placed inside square-bracket
characters `[' and `]'.
This will prevent any colon `:' characters in the hostname
from being interpreted as indicating option prefixes or port numbers.
This allows numeric IPv6 addresses to be used as hostnames.
On systems that support the forkpty library call, the
hostname may be replaced with -e and a command string.
This will cause c3270 to connect to a local child process, such as
a shell.
The port to connect to defaults to
telnet.
This can be overridden with the -port option, or by appending
a port to the hostname with a colon
`:'.
(For compatability with previous versions of c3270
and with tn3270(1), the port
may also be specified as a second, separate argument.)
An optional accept name (a hostname to accept in the host's SSL/TLS
certificate) may be specified by appending it to the hostname with an equals
sign (`=').
The accept name can also be specified with the -accepthostname
option.
Options
c3270 understands
the following options:
-accepthostnamename
Specifies a particular hostname to accept when validating the name presented
in the server SSL certificate, instead of comparing to the name
used to make the connection.
-allbold
Forces all characters to be displayed in bold.
This helps with PC consoles which display non-bold characters in unreadably
dim colors.
All-bold mode is the default for color displays, but not for monochrome
displays.
-altscreen rowsxcols=init_string
Defines the dimensions and escape sequence for the alternate (132-column)
screen mode.
See SCREEN SIZE SWITCHING, below.
-cadirdirectory
Specifies a directory containing CA (root) certificates to use when verifying a
certificate provided by the host. (OpenSSL only)
-cafilefilename
Specifies a PEM-format file containing CA (root) certificates to use
when verifying a certificate provided by the host. (OpenSSL only)
-cbreak
Causes c3270 to operate in cbreak mode, instead of raw
mode.
In cbreak mode, the TTY driver will properly process XOFF and XON
characters, which are required by some terminals for proper operation.
However, those characters (usually ^S and ^Q), as well as the characters for
interrupt, quit, and lnext (usually ^C, ^\
and ^V respectively) will be seen by c3270 only if preceded by
the lnext character.
The susp character (usually ^Z) cannot be seen by c3270 at all.
-certfilefilename
Specifies a file containing a client certificate to provide to the host.
The default file type is PEM.
-clientcertname
Specifies the name of a client certificate to provide to the host.
(MacOS only)
-certfiletypetype
Specifies the type of the certificate file specified
by -certfile.
Type can be pem or asn1. (OpenSSL only)
-chainfile filename
Specifies a certificate chain file in PEM format, containing a
certificate to provide to the host, as well as one or more
intermediate certificates and the CA certificate used to sign that certificate.
If -chainfile is specified, it
overrides -certfile. (OpenSSL only)
-charsetname
Specifies an EBCDIC host character set.
See CHARACTER SETS below.
-cleartoggle
Sets the initial value of toggle to false.
The list of toggle names is under TOGGLES
below.
-connecttimeoutseconds
Specifies the time that c3270 will wait for a host connection to
complete.
-defaultfgbg
Causes c3270 to use the terminal's default foreground color
instead of the curses color black, and the terminal's
default background color instead of the curses color white.
This is helpful for emulators such as gnome-terminal whose
representation of a black background is a murky gray, and for emulators
configured to use black text on a white background.
It is set automatically if the environment variable COLORTERM is
set to gnome-terminal. It is available only if c3270 was
compiled with a version of ncurses that supports default colors,
if the emulator supports default colors, and if the termcap/terminfo entry
indicates this capability.
-defscreen rowsxcols=init_string
Defines the dimensions and escape sequence for the default (80-column)
screen mode.
See SCREEN SIZE SWITCHING, below.
-devnamename
Specifies a device name (workstation ID) for RFC 4777 support.
-hostsfilefile
Uses file as the hosts file, which allows aliases for host names and
scripts to be executed at login.
See ibm_hosts(1) for details.
-httpd[addr:]port
Specifies a port and optional address to listen on for HTTP connections.
Addr can be specified as `*' to indicate 0.0.0.0; the
default is 127.0.0.1. IPv6 numeric addresses must be specified inside of
square brackets, e.g., [::1]:4080 to specify the IPv6 loopback address and
TCP port 4080.
Note that this option is mutually-exclusive with the -scriptport
option
.
-keyfilefilename
Specifies a file containing the private key for the certificate file
(specified via -certfile or -chainfile).
The default file type is PEM. (OpenSSL only)
-keyfiletypetype
Specifies the type of the private key file specified
by -keyfile.
Type can be pem or asn1. (OpenSSL only)
-keypasswdtype:value
Specifies the password for the private key file (OpenSSL) or client
certificate file (MacOS), if it is encrypted.
The argument can be file:filename, specifying that the
password is in a file, or string:string, specifying the
password on the command-line directly.
If the private key file is encrypted and no -keypasswd
option is given,
the password will be prompted for interactively.
-keymapname
Specifies a keyboard map to be found in the resource
c3270.keymap.name or the file name.
See KEYMAPS below for details.
-kmname
Specifies the local encoding method for multi-byte text.
name is an encoding name recognized by the ICU library.
(Supported only when c3270 is compiled with DBCS support, and necessary
only when c3270 cannot figure it out from the locale.)
-loginmacroAction(arg...) ...
Specifies a macro to run at login time.
-modelname
The model of 3270 display to be emulated.
The model name is in two parts, either of which may be omitted:
The first part is the
base model,
which is either 3278 or 3279.
3278 specifies a monochrome (green on black) 3270 display;
3279 specifies a color 3270 display.
The second part is the
model number,
which specifies the number of rows and columns.
Model 4 is the default.
Model Number
Columns
Rows
2
80
24
3
80
32
4
80
43
5
132
27
Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but
most hosts seem to work with them anyway.
The default model
for a color display is 3279-4.
For a monochrome display, it is 3278-4.
-mono
Prevents c3270 from using color, ignoring any color capabilities
reported by the terminal.
-noprompt
An alias for -secure.
-noverifycert
For SSL/TLS connections, do not verify the host certificate.
-nvt
Start in NVT mode instead of waiting for the host to send data, and make the
default terminal type xterm.
-oversizecolsxrows
Makes the screen larger than the default for the chosen model number.
This option has effect only in combination with extended data stream support
(controlled by the "c3270.extended" resource), and only if the host
supports the Query Reply structured field.
The number of columns multiplied by the number of rows must not exceed
16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.
It can also be specified as auto, which causes c3270 to fill
the entire terminal or console window.
-portn
Specifies a different TCP port to connect to.
n can be a name from /etc/services like telnet, or a
number.
This option changes the default port number used for all connections.
(The positional parameter affects only the initial connection.)
-proxy type:host[:port]
Causes c3270 to connect via the specified proxy, instead of
using a direct connection.
The host can be an IP address or hostname.
The optional port can be a number or a service name.
For a list of supported proxy types, see PROXY
below.
-printerlu luname
Causes c3270 to automatically start a pr3287 printer
session.
If luname is ".", then the printer session will be associated with the
interactive terminal session (this requires that the host support TN3270E).
Otherwise, the value is used as the explicit LU name to associate with the
printer session.
-reconnect
Causes c3270
to automatically reconnect to the host if it ever disconnects.
This option has effect only if a hostname is specified on the command line.
-rv
Switches c3270 from a white-on-black display to a black-on-white
display.
-sln
Specifies that n lines should be saved for scrolling back.
The default is 4096.
-scriptport[addr:]port
Specifies a port and optional address to listen on for scripting connections.
Addr can be specified as `*' to indicate 0.0.0.0; the
default is 127.0.0.1. IPv6 numeric addresses must be specified inside of
square brackets, e.g., [::1]:4081 to specify the IPv6 loopback address and
TCP port 4081.
Note that this option is mutually-exclusive with the -httpd
option
.
-scriptportonce
Allows c3270 to accept only one script connection. When that connection is
broken, c3270 will exit.
-secure
Disables the interactive c3270> prompt.
When used, a hostname must be provided on the command line.
-settoggle
Sets the initial value of toggle to true.
The list of toggle names is under TOGGLES
below.
-socket
Causes the emulator to create a Unix-domain socket when it starts, for use
by script processes to send commands to the emulator.
The socket is named /tmp/x3sck.pid.
The -p option of x3270if causes it to use this socket,
instead of pipes specified by environment variables.
-tnname
Specifies the terminal name to be transmitted over the telnet connection.
The default name is
IBM-model_name-E,
for example,
IBM-3279-4-E
for a color display, or
IBM-3278-4-E
for a monochrome display.
Some hosts are confused by the -E
suffix on the terminal name, and will ignore the extra screen area on
models 3, 4 and 5.
Prepending an s: on the hostname, or setting the "c3270.extended"
resource to "false", removes the -E
from the terminal name when connecting to such hosts.
The name can also be specified with the "c3270.termName" resource.
-trace
Turns on data stream and event tracing at startup.
The default trace file name is
/tmp/x3trc.
-tracefilefile
Specifies a file to save data stream and event traces into.
If the name starts with `>>', data will be appended to the file.
-tracefilesizesize
Places a limit on the size of a trace file.
If this option is not specified, or is specified as 0 or none,
the trace file size will be unlimited.
The minimum size is 64 Kbytes.
The value of size can have a K or M suffix, indicating
kilobytes or megabytes respectively.
When the trace file reaches the size limit, it will be renamed with a
`-' appended and a new file started.
-username
Specifies the user name for RFC 4777 support.
-utf8
Forces the local codeset to be UTF-8, ignoring the locale or Windows codepage.
-v
Display the version and build options for c3270 and exit.
-verifycert
For SSL/TLS connections, verify the host certificate, and do not allow
the connection to complete unless it can be validated. (This is the default
setting.)
This option is overridden by a y: prepended to the hostname when
connecting.
-xrm "c3270.resource: value"
Sets the value of the named resource to value.
Resources control less common c3270
options, and are defined under RESOURCES below.
Modes
c3270 has two basic modes: command-prompt and session.
Command-prompt mode is where the c3270> prompt is
displayed.
Interactive commands can be entered at this prompt, to connect to a host,
disconnect from a host, transfer files, display statistics, exit
c3270, etc.
The complete list of interactive commands is listed under
ACTIONS.
Session mode is where the emulated 3270 screen is displayed;
keyboard commands cause the display buffer to be modified or data to be
sent to the host.
To switch from display mode to command-prompt mode, press
Ctrl-].
To switch from command-prompt mode to display mode, press Enter
(without entering a command) at the c3270> prompt.
Character Sets
The -charset
option or the "c3270.charset" resource controls the EBCDIC
host character set used by c3270.
Available sets include:
Charset Name
Host Code Page
Display Character Set
belgian
500
iso8859-1
belgian-euro
1148
iso8859-15
bracket
037
iso8859-1
brazilian
275
iso8859-1
chinese-gb18030
1388
iso8859-1 + iso10646-1
cp1047
1047
iso8859-1
cp870
870
iso8859-2
finnish
278
iso8859-1
finnish-euro
1143
iso8859-15
french
297
iso8859-1
french-euro
1147
iso8859-15
german
273
iso8859-1
german-euro
1141
iso8859-15
greek
423
iso8859-7
hebrew
424
iso8859-8
icelandic
871
iso8859-1
icelandic-euro
1149
iso8859-15
italian
280
iso8859-1
italian-euro
1144
iso8859-15
japanese-kana
930
jisx0201.1976-0 + jisx0208.1983-0
japanese-latin
939
jisx0201.1976-0 + jisx0208.1983-0
norwegian
277
iso8859-1
norwegian-euro
1142
iso8859-15
russian
880
koi8-r
simplified-chinese
935
iso8859-1 + gb2312.1980-0
slovenian
870
iso8859-2
spanish
284
iso8859-1
spanish-euro
1145
iso8859-15
swedish
278
iso8859-1
swedish-euro
1143
iso8859-15
thai
1160
iso8859-11 tis620.2529-0
traditional-chinese
937
iso8859-1 + Big5-0
turkish
1026
iso8859-9
uk
285
iso8859-1
uk-euro
1146
iso8859-15
us-euro
1140
iso8859-15
us-intl
037
iso8859-1
The default character set is
bracket,
which is useful for common U.S. IBM hosts which use EBCDIC
codes AD and BD for the `[' and `]' characters,
respectively.
Note that any of the host code pages listed above can be specified by adding
cp to the host code page, e.g., cp037 for host code page 037.
Also note that the code pages available for a given version of c3270
are displayed by the -v command-line option.
Menu Bar and Keypad
c3270 supports a menu bar and pop-up keypad.
The menu bar allows common functions to be executed without needing to switch
to the c3270> prompt.
It is available by pressing Alt-N, or if the console supports a mouse, by
clicking on the menu titles displayed at the top of the screen.
The on-screen menu title bar can be turned off via the "c3270.menuBar"
resource.
The pop-up keypad allows the 3270-specific keys (PF keys, PA
keys, Clear,
Reset, etc.) to be invoked without memorizing their key mappings or switching
to the c3270> prompt.
The keypad can be popped up by pressing Alt-K, or can be invoked via a menu
option.
Hosts Database
c3270 uses the ibm_hosts database to
define aliases for host names, and to specify
macros to be executed when a connection is first made.
See ibm_hosts(5) for details.
You may specify a different ibm_hosts
database with the "c3270.hostsFile" resource.
NVT Mode
Some hosts use an ASCII front-end to do initial login negotiation,
then later switch to 3270 mode.
c3270 will emulate an ANSI X3.64 terminal until the host
places it in 3270 mode (telnet BINARY and SEND EOR modes, or
TN3270E mode negotiation).
If the host later negotiates to stop functioning in 3270 mode,
c3270 will return to NVT emulation.
In NVT mode, c3270
supports both character-at-a-time mode and line mode operation.
You may select the mode with a menu option.
When in line mode, the special characters and operational characteristics are
defined by resources:
Mode/Character
Resource
Default
Translate CR to NL
c3270.icrnl
true
Translate NL to CR
c3270.inlcr
false
Erase previous character
c3270.erase
^?
Erase entire line
c3270.kill
^U
Erase previous word
c3270.werase
^W
Redisplay line
c3270.rprnt
^R
Ignore special meaning of next character
c3270.lnext
^V
Interrupt
c3270.intr
^C
Quit
c3270.quit
^\
End of file
c3270.eof
^D
Separate keymaps can be defined for use only when c3270 is in
3270 mode or NVT mode.
See KEYMAPS for details.
Toggles
c3270 has a number of configurable modes which may be selected by
the -set and -clear options.
These names can also be used as the first parameter to the Toggle
action, and are the names of resources that can be used to set or clear
the value of each toggle at start-up.
aidWait
Changes the behavior of actions that send an AID to the
host (Enter,
Clear, PA and PF).
When set, these actions no longer block until the host unlocks the keyboard.
It is up to the script to poll the prompt for the unlocked state, or to use
the Wait(Unlock) action to wait for the unlock.
altCursor
If set, the cursor will be an underline. If clear, it will be a solid block.
blankFill
If set, c3270 modifies interactive 3270 behavior in two ways.
First, when a character is typed into a field, all nulls in the field to the
left of that character are changed to blanks.
This eliminates a common 3270 data-entry surprise.
Second, in insert mode, trailing blanks in a field are treated like nulls,
eliminating the annoying `lock-up' that often occurs when inserting
into an field with (apparent) space at the end.
crosshair
When set, c3270 will display a crosshair to help locate the cursor on the
screen.
lineWrap
If set, the NVT terminal emulator automatically assumes
a NEWLINE character when it reaches the end of a line.
monoCase
If set, c3270 operates in uppercase-only mode.
screenTrace
Turns on screen tracing at start-up.
Each time the screen changes, its contents are appended to the file
.
showTiming
If set, the time taken by the host to process an AID is displayed on
the status line.
trace
Turns on data stream and event tracing at start-up.
Network traffic (both a hexadecimal representation and its
interpretation) is logged to the file
.
The directory for the trace file can be changed with
the "c3270.traceDir" resource.
Script commands are also traced.
underscore
If set, c3270 will display underlined fields by substituting
underscore `_' characters for blanks or nulls in the field.
Otherwise, these fields will be displayed
using the terminal's native
underlining mode, if one is defined.
visibleControl
If set, control characters (NULLs, SI/SO and field attributes), which are
usually displayed as blanks, are visible on the display.
NULs become periods, SO becomes `<',
SI becomes `>'.
Field attributes are mapped onto the characters 0 through 9 and A through V
and are displayed in
reverse-video
yellow.
Field attribute mappings are part of the c3270 Resources
documentation for the visibleControl resource.
Status Line
If the terminal that c3270 is running on
has at least one more row that the 3270 model requires (e.g., 25 rows for a
model 2), c3270 will display a status line.
The c3270 status line contains a variety of information.
From left to right, the fields are:
comm status
The first symbol is always a 4.
If c3270 is in TN3270E mode, the second symbol is a B;
otherwise it is an A.
If
c3270 is in SSCP-LU mode, the third symbol is an S.
Otherwise it is blank.
keyboard lock
If the keyboard is locked, an "X" symbol and a message field indicate the
reason for the keyboard lock.
typeahead
The letter "T" indicates that one or more keystrokes are in the typeahead
buffer.
temporary keymap
The letter "K" indicates that a temporary keymap is in effect.
reverse
The letter "R" indicates that the keyboard is in reverse field entry mode.
insert mode
The
letter "I" indicates that the keyboard is in insert mode.
printer session
The letter "P" indicates that a pr3287 session is active.
secure connection
A green letter "S" indicates that the connection is secured via SSL/TLS.
LU name
The LU name associated with the session, if there is one.
cursor position
The cursor row and column are optionally displayed, zero padded and separated
by a "/".
Location 001/001 is at the upper left, which is different from the row and
columns parameters used with various actions, where the upper left corner is
row 0, column 0.
Actions
Here is a complete list of basic c3270 actions.
Script-specific actions are described on the
x3270-script(1) manual page.
)
Actions marked with an asterisk (*) may block, sending data to the host and
possibly waiting for a response.
*Attn
attention key
BackSpace
move cursor left (or send ASCII BS)
BackTab
tab to start of previous input field
CircumNot
input "^" in NVT mode, or "¬" in 3270 mode
*Clear
clear screen
Compose
next two keys form a special symbol
*Connect(host)
connect to host
*CursorSelect
Cursor Select AID
Delete
delete character under cursor (or send ASCII DEL)
DeleteField
delete the entire field
DeleteWord
delete the current or previous word
*Disconnect
disconnect from host
Down
move cursor down
Dup
duplicate field
*Enter
Enter AID (or send ASCII CR)
Erase
erase previous character (or send ASCII BS)
EraseEOF
erase to end of current field
EraseInput
erase all input fields
Escape
escape to c3270> prompt
Execute(cmd)
execute a command in a shell
FieldEnd
move cursor to end of field
FieldMark
mark field
HexString(hex_digits)
insert control-character string
Home
move cursor to first input field
Insert
set insert mode
*Interrupt
send TELNET IP to host
Keypad
Display pop-up keypad
Key(keysym)
insert key keysym
Key(0xxx)
insert key with character code xx
Left
move cursor left
Left2
move cursor left 2 positions
Menu
Display menu bar
MonoCase
toggle uppercase-only mode
MoveCursor(row, col)
move cursor to zero-origin (row,col)
Newline
move cursor to first field on next line (or send ASCII LF)
NextWord
move cursor to next word
*PA(n)
Program Attention AID (n from 1 to 3)
*PF(n)
Program Function AID (n from 1 to 24)
PreviousWord
move cursor to previous word
Printer(Start[,lu]|Stop)
start or stop printer session
PrintText(command)
print screen text on printer
Quit
exit c3270
Redraw
redraw window
Reset
reset locked keyboard
Right
move cursor right
Right2
move cursor right 2 positions
*Script(command[,arg...])
run a script
Scroll(Forward|Backward)
scroll screen
*String(string)
insert string (simple macro facility)
Tab
move cursor to next input field
Toggle(option[,set|clear])
toggle an option
ToggleInsert
toggle insert mode
ToggleReverse
toggle reverse-input mode
*Transfer(option=value...')
file transfer
Up
move cursor up
ignore
do nothing
Any of the above actions may be entered at the c3270> prompt;
these commands are also available for use in keymaps
(see KEYMAPS).
Command names are case-insensitive.
Parameters can be specified with parentheses and commas, e.g.:
PF(1)
or with spaces, e.g.:
PF 1
Parameters can be quoted with double-quote characters, to allow spaces,
commas, and parentheses to be used.
c3270 also supports the following interactive commands:
Help
Displays a list of available commands.
ScreenTrace
Turns screen tracing (saving screen images to a file) on or off.
The command screentrace on enables screen tracing;
the command screentrace off disables it.
After on, a filename may be specified to override the default
trace file name of
/tmp/x3scr.pid.
The keyaord on can also be followed by the keyword printer and an optional
print command
to direct screen traces directly to the printer.
Show
Displays statistics and settings.
Trace
Turns tracing on or off.
The command trace on enables data stream and keyboard event tracing;
the command trace off disables it.
The qualifier data or keyboard can be specified
before on or off to enable or disable a particular trace.
After on, a filename may be specified to override the default
trace file name of
/tmp/x3trc.pid.
Note that certain parameters to c3270 actions (such as the names of files
and keymaps) are subject to substitutions:
The character ~ at the beginning of a string is replaced with the user's
home directory.
A ~ character followed by a username is
replaced with that user's home directory.
Environment variables are substituted using the Unix shell convention of
$name or ${name}.
Two special pseudo-environment variables are supported. ${TIMESTAMP} is
replaced with a microsecond-resolution timestamp; ${UNIQUE} is replaced with a
string guaranteed to make a unique filename (the process ID optionally
followed by a dash and a string of digits). ${UNIQUE} is used to form trace
file names.
Keymaps
The -keymap option
or the c3270.keymap resource
allow a custom keymap to be specified.
If the option -keymapxxx is given (or the
c3270.keymap resource has the value xxx),
c3270
will look for a resource named c3270.keymap.xxx.
If no resource definition is found, it will look for a file named
xxx.
Multiple keymaps may be specified be separating their names with commas.
Definitions in later keymaps supercede those in earlier keymaps.
In addition, separate keymaps may be defined that apply only in 3270 mode or
NVT mode.
For example, the resource definition
c3270.keymap.xxx.nvt
or the file
xxx.nvt
will augment the definition
of keymap xxx in NVT mode.
Similarly, the resource definition
c3270.keymap.xxx.3270
or the file
xxx.3270
will augment the definition
of keymap xxx in 3270 mode.
Temporary keymaps can also be added or removed while c3270 is running
with the Keymap action.
See x3270-script(1) for details.
Each line (rule) in a keymap specifies actions to perform when a
particular key or sequence of keys is pressed.
Keymap rules have the following syntax:
! Lines beginning with ! are ignored and can
! occur anywhere.
! Definition of keymap xxx
! When Alt-c is pressed, clear the screen.
Alt<Key>c: Clear()
! When PageUp is pressed, send PF7 to the host.
<Key>PPAGE: PF(7)
! When Ctrl-a is pressed, then F1, send PF13
! to the host.
Ctrl<Key>a <Key>F1: PF(13)
Here is the same definition as a resource:
! Lines beginning with ! are ignored, but NOT
! within a definition.
! Note that the \ is required at the end of the
! first line, and \n\ is
! required at the end of every other line except
! the last.
! Definition of keymap xxx
c3270.keymap.xxx: \
Alt<Key>c: Clear() \n\
<Key>PPAGE: PF(7) \n\
Ctrl<Key>A <Key>F1: PF(13)
The optional
Alt or Ctrl modifiers specify that
the
Alt and Ctrl keys are pressed along with the
specified key, respectively.
Key is either an ISO 8859-1 symbol name, such as equal
for `=' and a for `a', or a symbolic
ncurses key name,
such as UP.
More than one key can be specified, indicating that a sequence of
keys must be pressed in order for the rule to be matched.
The action is an action from the ACTIONS list
above.
More than one action may be specified; they will be executed in order.
Keymap entries are case-sensitive and modifier-specific.
This means that a keymap for the b key will match only a
lowercase b.
Actions for uppercase B, or for Alt-B,
must be specified separately.
The base keymap is:
Key
Action
Ctrl<Key>]
Escape
Ctrl<Key>a Ctrl<Key>a
Key(0x01)
Ctrl<Key>a Ctrl<Key>]
Key(0x1d)
Ctrl<Key>a <Key>Tab
BackTab
Ctrl<Key>a <Key>c
Clear
Ctrl<Key>a <Key>e
Escape
Ctrl<Key>a <Key>r
Reset
Ctrl<Key>a <Key>k
Keypad
Ctrl<Key>a <Key>l
Redraw
Ctrl<Key>a <Key>m
Compose
Ctrl<Key>a <Key>n
Menu
Ctrl<Key>a <Key>p
PrintText
Ctrl<Key>a <Key>^
Key(notsign)
Ctrl<Key>k
Keypad
Ctrl<Key>n
Menu
<Key>UP
Up
<Key>DOWN
Down
<Key>LEFT
Left
<Key>RIGHT
Right
<Key>F(n)
PF(n)
Ctrl<Key>a <Key>F(n)
PF(n+12)
Ctrl<Key>a <Key>1
PA(1)
Ctrl<Key>a <Key>2
PA(2)
Ctrl<Key>a <Key>3
PA(3)
<Key>PPAGE
Scroll(Backward)
<Key>NPAGE
Scroll(Forward)
The base 3270-mode keymap adds:
Key
Action
Ctrl<Key>c
Clear
Ctrl<Key>d
Dup
Ctrl<Key>f
FieldMark
Ctrl<Key>i
Tab
Ctrl<Key>l
Redraw
Ctrl<Key>r
Reset
Ctrl<Key>u
DeleteField
<Key>BackSpace
BackSpace
<Key>Return
Enter
<Key>Tab
Tab
<Key>Linefeed
Newline
<Key>BACKSPACE
BackSpace
<Key>DC
Delete
<Key>HOME
Home
<Key>IC
ToggleInsert
The Meta or Alt Key
Some keyboards do not have a Meta key.
Instead, they have an Alt key.
Sometimes this key acts as a proper
Meta key, that is, it is a modifier key that sets the high-order bit
(0x80) in the code that is transmitted for each key.
Other keyboards send a two-character sequence when
the Alt key is pressed with another key: the Escape character (0x1b),
followed by the code for the other key.
The resource c3270.metaEscape and the termcap km attribute
control how c3270 will interpret these sequences.
When c3270.metaEscape is set to true, or when
c3270.metaEscape is set to auto and the termcap km
attribute is set, the keyboard is assumed to have a separate Meta key.
The Escape key can be used as an ordinary data key and has no special meaning.
When c3270.metaEscape is set to true, or when
c3270.metaEscape is set to auto and the termcap km
attribute is not set, the keyboard is assumed to use the Escape character
as a prefix to indicate that the following character is supposed to have the
high-order bit set.
When c3270 sees an Escape character from the keyboard, it sets a short
timeout.
If another character arrives before the timeout expires, then c3270
will combine the two characters, setting the high-order bit of the second.
In an event trace file, the combined character is listed as derived.
In a keymap, only the combined character or the Meta prefix may be used.
The Escape key can still be used by itself, but only if there is a short pause
before pressing another key.
The default value for c3270.metaEscape is auto.
File Transfer
The Transfer action implements IND$FILE file transfer.
This action requires that the IND$FILE
program be installed on the IBM host, and that the 3270 cursor
be located in a field that will accept a TSO or VM/CMS command.
The Transfer action
can be entered at the command prompt with no parameters, which will cause it
to prompt interactively for the file names and options.
It can also be invoked with parameters to define the entire transfer.
Because of the complexity and number of options for file transfer, the
parameters to the Transfer action take the unique form
of option=value, and can appear in any order.
Note that if the value contains spaces (such as a VM/CMS file name),
then the entire parameter must be quoted, e.g., "HostFile=xxx foo a".
The options are:
Option
Required?
Default
Other Values
Direction
No
receive
send
HostFile
Yes
LocalFile
Yes
Host
No
tso
vm, cics
Mode
No
ascii
binary
Cr
No
remove
add, keep
Remap
No
yes
no
Exist
No
keep
replace, append
Recfm
No
fixed, variable, undefined
Lrecl
No
Blksize
No
Allocation
No
tracks, cylinders, avblock
PrimarySpace
Sometimes
SecondarySpace
No
Avblock
Sometimes
BufferSize
No
4096
The option details are as follows.
Direction
send to send a file to the host,
receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command):
tso (the default), vm or cics.
Mode
Use ascii (the default) for a text file, which will be translated
between EBCDIC and ASCII as necessary.
Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring
Mode=ascii files.
remove (the default) strips Newline characters in local files
before transferring them to the host.
add adds Newline characters to each host file record before
transferring it to the local workstation.
keep preserves Newline characters when transferring a local file
to the host.
Remap
Controls text translation for Mode=ascii files.
The value yes (the default) causes c3270 to remap the text to ensure
maximum compatibility between the workstation's character set and encoding
and the host's EBCDIC code page.
The value no causes c3270 to pass the text to or from the host
as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists.
keep (the default) preserves the file, causing the
Transfer action to fail.
replace overwrites the destination file with the source file.
append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host.
(TSO and VM hosts only.)
fixed creates a file with fixed-length records.
variable creates a file with variable-length records.
undefined creates a file with undefined-length records (TSO hosts
only).
The Lrecl option controls the record length or maximum record length for
Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on
the host.
(TSO and VM hosts only.)
Blksize
Specifies the block size for files created on the host.
(TSO and VM hosts only.)
Allocation
Specifies the units for the PrimarySpace and
SecondarySpace options: tracks, cylinders or
avblock. (TSO hosts only.)
PrimarySpace
Primary allocation for a file.
The units are given by the Allocation option.
Required when the Allocation is specified as something other than
default.
(TSO hosts only.)
SecondarySpace
Secondary allocation for a file.
The units are given by the Allocation option. (TSO hosts only.)
Avblock
Average block size, required when Allocation specifies avblock.
(TSO hosts only.)
BufferSize
Buffer size for DFT-mode transfers.
Can range from 256 to 32768.
Larger values give better performance, but some hosts may not be able to
support them.
There are also resources that control the default values for each of the
file transfer parameters.
These resources have the same names as the Transfer keywords, but with
ft prepended. E.g., the default for the Mode keyword is the
c3270.ftMode resource.
The PrintText Action
The PrintText produces screen snapshots in a number of different
forms.
The default form wth no arguments sends a copy of the screen to the default
printer.
A single argument is
the command to use to print, e.g., lpr.
Multiple arguments can include keywords to control the output of
PrintText:
filefilename
Save the output in a file.
html
Save the output as HTML. This option implies file.
rtf
Save the output as RichText. This option implies file.
The font defaults to Courier New and the
point size defaults to 8.
These can be overridden by the printTextFont and printTextSize
resources, respectively.
string
Return the output as a string. This can only be used from scripts.
modi
Render modified fields in italics.
captiontext
Add the specified text as a caption above the output.
Within text, the special sequence %T% will be replaced with
a timestamp.
commandcommand
Directs the output to a command.
This allows one or more of the other keywords to be specified, while still
sending the output to the printer.
Scripts
There are several types of
script functions available.
The String Action
The simplest method for
scripting is provided via the String
action.
The arguments to String are one or more double-quoted strings which are
inserted directly as if typed.
The C backslash conventions are honored as follows.
(Entries marked * mean that after sending the AID code to the host,
c3270 will wait for the host to unlock the keyboard before further
processing the string.)
\b
Left
\exxxx
EBCDIC character in hex
\f
Clear*
\n
Enter*
\pan
PA(n)*
\pfnn
PF(nn)*
\r
Newline
\t
Tab
\T
BackTab
\uxxxx
Unicode character in hex
\xxxxx
Unicode character in hex
Note that the numeric values for the \e, \u and \x sequences
can be abbreviated to 2 digits.
Note also that EBCDIC codes greater than 255 and some Unicode character codes
represent DBCS characters, which will work only if c3270 is built with
DBCS support and the host allows DBCS input in the current field.
An example keymap entry would be:
Meta<Key>p: String("probs clearrdr\n")
Note:
The strings are in ASCII and converted to EBCDIC,
so beware of inserting
control codes.
There is also an alternate form of the String action, HexString,
which is used to enter non-printing data.
The argument to HexString is a string of hexadecimal digits, two per
character. A leading 0x or 0X is optional.
In 3270 mode, the hexadecimal data represent EBCDIC characters, which
are entered into the current field.
In NVT mode, the hexadecimal data represent ASCII characters,
which are sent directly to the host.
The Script Action
This action causes c3270 to start a child process which can
execute c3270 actions.
Standard input and output from the child process are piped back to
c3270.
The Script action is fully documented in
x3270-script(1).
Composite Characters
c3270
allows the direct entry of accented letters and special symbols.
Pressing and releasing the "Compose" key, followed by two other keys, causes
entry of the symbol combining those two keys.
For example, "Compose" followed by the "C" key and the "," (comma) key, enters
the "C-cedilla" symbol.
A C on the status line indicates a pending composite character.
The mappings between these pairs of ordinary keys and the symbols they
represent is controlled by the "c3270.composeMap" resource; it gives the
name of the map to use.
The maps themselves are named "c3270.composeMap.name".
The default is "latin1", which gives mappings for most of the symbols in
the ISO 8859-1 Latin-1 character set that are not in the
7-bit ASCII
character set.
Note:
The default keymap defines
Meta<Key>m
as the "Compose" key.
You
may set up your own "Compose" key with
a keymap that maps some other keysym onto the Compose action.
Printer Session Support
c3270 supports associated printer sessions via the pr3287(1)
program.
The Printer action is used to start or stop a pr3287 session.
The action Printer Start starts a printer session, associated with the
current LU. (This works only if the host supports TN3270E.)
The action Printer Startlu starts a printer session, associated
with a specific lu.
The action Printer Stop stops a printer session.
The resource c3270.printer.options specifies extra options, such as
-trace to pass to pr3287.
See pr3287(1) for further details.
The resource c3270.printerLu controls automatic printer session
start-up. If it is set to `.', then whenever a login session is started,
a printer session will automatically be started, associated with the login
session. If it is set an LU name, then the automatic printer session will be
associated with the specified LU.
Passthru
c3270 supports the Sun telnet-passthru
service provided by the in.telnet-gw server.
This allows outbound telnet connections through a firewall machine.
When a p: is prepended to a hostname, c3270
acts much like the itelnet(1) command.
It contacts the machine named internet-gateway at the port defined in
/etc/services as telnet-passthru
(which defaults to 3514).
It then passes the requested hostname and port to the
in.telnet-gw server.
Proxy
The -proxy option or the c3270.proxy resource
causes c3270 to use a proxy server to connect to the host.
The syntax of the option or resource is:
type:host[:port]
The supported values for type are:
Proxy Type
Protocol
Default Port
http
RFC 2817 HTTP tunnel (squid)
3128
passthru
Sun in.telnet-gw
none
socks4
SOCKS version 4
1080
socks5
SOCKS version 5 (RFC 1928)
1080
telnet
No protocol (just send connecthost port)
none
The special types socks4a and socks5d can also be used to force
the proxy server to do the hostname resolution for the SOCKS protocol.
Screen Size Switching
When running as a 3270 Model 5, c3270 can take advantage of terminals
that can switch between 80 and 132 column modes.
Because the curses library does not support mode switching, the escape
sequences and resulting screen dimensions must be specified explicitly to
c3270.
These are specified with the -altscreen and
-defscreen command-line options, or the
altScreen and defScreen resources.
-altscreen or altScreen defines the alternate
(132-column) mode; -defscreen or defScreen defines the
default (80-column) mode.
The syntax for the options and resources is
rowsxcols=init_string,
where rows and cols give the screen dimensions, and
init_string is the escape sequence to transmit to the terminal to
enter that mode.
For defscreen, the minimum dimensions are 24 rows and 80 columns.
For altscreen, the minimum dimensions are 27 rows and 132 columns.
Within init_string, the usual escape sequences are supported
(\E for escape, \r, \b, etc.).
For example, the init string for a 132-column xterm is:
\E[?40h\E[?3h
Note: When defscreen and altscreen are specified, the model
number is always set to 5.
Resources
Certain c3270
options can be configured via resources.
Resources are defined
in the file .c3270pro in the user's
home directory, and
by -xrm options.
The definitions are similar to X11 resources, and use a similar syntax.
The resources available in c3270 are:
Note 1: m3279 defaults to
True if the terminal supports color,
False otherwise.
It can be forced to False with the proper -model
option.
Note 2:
The default terminal type string is constructed from the model number, color
emulation, and extended data stream modes.
E.g., a model 2 with color emulation and the extended data stream option
would be sent as IBM-3279-2-E.
Note also that when TN3270E
mode is used, the terminal type is always sent as 3278, but this does not
affect color capabilities.
Note 3: The default trace file is
x3trc.pid in the directory specified by
the traceDir resource.
Note 5: mono defaults to false if the
terminal supports at least 8 colors and to true otherwise.
Note 6: The default curses color mappings for host colors
0 through 15 are: black, blue, red, magenta, green, cyan, yellow, white, black,
blue, yellow, blue, green, cyan, black and white.
In .c3270pro, lines are continued with a
backslash character.
-xrm options override definitions found in .c3270pro.
If more than one -xrm option is given for the same resource,
the last one on the command line is used.
Files
/usr/local/lib/x3270/ibm_hosts
$HOME/.c3270pro
See Also
pr3287(1), s3270(1), x3270-script(1), x3270(1), tcl3270(1), telnet(1), tn3270(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
*
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
*
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
*
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes,
GTRC nor
the names of their contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF
SPARKES AND GTRC
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK
ALTENBERN, JEFF
SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Version
c3270 3.6ga4
This HTML document and the accompanying troff document were generated with
a set of write-only m4 macros and the powerful vi editor.
Last modified 29 December 2017.
suite3270-3.6/c3270/html/documentation-relnotes-body.html 0000664 0000765 0000765 00000327054 13221577443 021235 0 ustar pdm pdm
Caveats and Known Issues for x3270, c3270, wc3270, s3270, ws3270, tcl3270, pr3287 and wpr3287 3.6
Linux
Unity's Terminal app will intercept a number of keys (such as F1) that
c3270 needs for 3270 operations. The easiest way to prevent this is to create
a profile for c3270, with Shortcuts disabled (from the taskbar, select
Preferences from the Terminal menu, then go to the Shortcuts tab and un-check
Enable shortcuts). You can also disable or remap individual shortcuts
if you find the others useful.
Windows
Under Windows 10, the console windows that wc3270 runs in will intercept
mouse clicks and certain control keys needed by wc3270 for correct operation.
To prevent this, you must explicitly disable several console window options
for each wc3270 window. Click on the terminal icon in the upper left
of the wc3270 window and select Properties. Select the Options tab, and look
for the Edit section. Uncheck Quick Edit Mode and Enable Ctrl
key Shortcuts.
MacOS
When running c3270 in a Terminal window, the Backspace key performs the
Delete() action (deleting the character under the cursor) instead of
the BackSpace() action (deleting the character to the left of the
cursor). This is corrected through Terminal's Preferences dialog. Under the
Advanced tab, select Delete sends Control-H.
Changes in x3270, c3270, wc3270, s3270, ws3270, tcl3270, pr3287 and wpr3287 3.6
3.6 is the current development line for the x3270 suite.
Changes in version 3.6ga3, 29. December 2017
[all] Rename the tls resource to startTls, which makes its
meaning much clearer.
[wc3270, ws3270] The x3270if command was not flushing
its output correctly. (Thanks to Kalman Reti for the fix.)
[wc3270, ws3270] PrintText() would sometimes include
junk in the output, if called more than once. This is now fixed.
Changes in version 3.6beta2, 3. December 2017
[wc3270] Added a (hackish) fix for the Windows 10 "Ctrl key
shortcuts" feature that interferes with Ctrl-C, Ctrl-V and F11.
[all] Added support for periodically sending a TELNET NOP to the host,
controlled by a new nopSeconds resource.
[all] Added support for some missing xterm escape sequences.
[all] Made the NVT-mode F1 through F4 keys compatible with xterm, rather
than VT100.
[c3270, wc3270] Turn off the cursor when scrolled back.
[all] Fixed TELNET NEW-ENVIRONMENT behavior to be more compatible with
IBM iSeries hosts.
Changes in version 3.6alpha1, 8. March 2017
[all] Fixed the unlockDelay resource, which was inadvertently
ignored (effectively aways on) for several releases. The value is now
false for s3270, ws3270 and tcl3270, and true elsewhere.
[x3270, c3270, wc3270] Display the host certificate
when the lock icon (x3270) or lock field in the OIA (c3270/wc3270) is
clicked.
[all] An accept name can now be appended to the hostname using =,
e.g., L:myhost.com=myparticularhost.com.
The -disable-ssl configure option now applies to Windows.
[all Windows] Windows cross-compilers are now tested by the configure
script. If they are not found, they will be excluded from the build.
[x3270] Fixed pop-up window and keypad placement issues on the
Unity desktop, and some crashes related to window movement.
[all] Re-enabled the A: host modifier to indicate an NVT-mode host
(equivalent to the -nvt command-line option or nvtMode
resource).
[x3270, c3270, wc3270] Added host certificate
display to the x3270 Connection Status dialog and the c3270/wc3270
Show(Status) action.
[all Unix] Removed explicit support for self-signed host certificates (the
-selfsignedok option and selfSignedOk resource). This is
because the implementation assumed that being self-signed was the only
verification error, while there could be many. To allow self-signed
certificates, disable verification.
[all] Added support for the Y: host modifier to disable host
certificate checking.
[all Unix] Removed support for the IP: form of accepting a name
in a host certificate.
[all Unix] Changed the configure script option to specify the location
of the OpenSSL installation from --with-ssl= to with-openssl=.
[all Unix] Switched MacOS to use Secure Transport instead of OpenSSL.
OpenSSL can still be selected during build with the
--disable-stransport option to the configure script.
[all] Switched to verifying host certficates by default. This can be
disabled by using the -noverifycert opton or by setting the
verifyHostCert resource to false.
[all Windows] Removed SSL configurations from the Visual Studio
project.
[all Windows] Switched Windows SSL/TLS from OpenSSL to the native Windows
Schannel APIs. This allows secure connections without the need to install a
separate set of DLLs.
Changes in version 3.5ga12, 10. September 2017
[all Windows] Removed some items from the Windows installer that
interfered with installing as SYSTEM.
Changes in version 3.5ga11, 26. June 2017
[all] Fixed an issue where the web server would reject requests
containing fields with 1-character-long values.
[all] Improved error reporting for certain cases of SSL/TLS tunnel
set-up failure.
Changes in version 3.5ga10, 16. January 2017
[all] Upgraded Windows to OpenSSL 1.1 and added OpenSSL 1.1 support for
other platforms where available.
[s3270, ws3270] Restored oerrLock as the
default.
[all] Fixed the CloseScript action.
Changes in version 3.5ga9, 26. December 2016
[c3270, wc3270] Fixed display of default attributes in NVT
mode.
[all] Corrected Hebrew and Greek character set defintions.
[all] Corrected echoing of multi-byte characters in NVT line mode.
[wc3270] Allow the -utf8 option to force the Windows code
page to UTF-8.
[wc3270] Use the built-in UTF-8 encoder/decoder when in UTF-8 mode
to allow NVT-mode UTF-8 output to be displayed correctly.
[all] Fixed the missing letter 'Z' in the simplified-chinese (cp935)
host code page.
[x3270>] Fixed the configure script to find X11 headers and
libraries correctly.
[all] Allow Wait(n,Second) to work when disconnected.
[x3270>] Fixed an issue with missed timeouts.
Changes in version 3.5ga8, 9. May 2016
[x3270] Fixed the toggle names saved with the File->Save Changed
Options menu option and when processing the WM_SAVE_YOURSELF
message.
[x3270] Explicitly test for X11, Xt, Xmu and Xaw header files and
libraries in the configure script.
[x3270] Put the dryrun script in the object directory.
[wc3270] Allow Windows VKey codes to be specified in wc3270 keymaps
in hexadecimal with the syntax VKEY-0xnn. This allows unknown
VKeys to be specified. The same syntax is used in traces.
[x3270] Fixed an issue where parameters beyond the second
were ignored in many keymap actions.
[all] Fixed an issue with the Abort action called from scripts.
[all Windows] Always find root_certs.txt in the same directory as the
executable, if not installed.
[all] Validate the parameters to the Transfer() action better.
[pr3287] Fix the configure script so it properly detects
missing OpenSSL header files, even if the OpenSSL library is present.
[all] Limit DFT buffer size to 32767. 32768 causes the host to send 0-byte
buffers.
Changes in version 3.5beta7, 8. March 2016
[wc3270] Fixed a crash in the Session Wizard.
Changes in version 3.5beta6, 25. February 2016
[wc3270, ws3270] Fixed a problem that broke SSL.
[all] Added swedish and swedish-euro as aliases for host
code pages 278 and 1143 respectively.
[all] Changed the keyboard unlock behavior when a BIND-IMAGE is received
from the host. Prior to release 3.3.14, the keyboard would not be unlocked
on a new host connection until a Write was received. In 3.3.14, this was
changed so that the keyboard would be unlocked as soon as a BIND-IMAGE was
received, and in release 3.4, a new host option (B:) was added to
revert to the old behavior. In this release, the old behavior (waiting for
a Write) is the default again. A new resource, bindUnock is added to
enable the new behavior (unlocking as soon as the BIND-IMAGE is received)
when set to true. The B: host option is still supported, as a no-op.
Changes in version 3.5beta5, 15. February 2016
[wc3270] Added crosshair cursor and cursor type to the Session
Wizard.
[all] Added a -connectimeout option and a connectTimeout
resource to specify a shorter timeout for the host connection to complete.
[all Windows] Simplified the installer, removing the option of doing a
per-user install.
[all Windows] Got rid of the wc3270 Application Data directory. The root
certificates file is now in the installation directory. ws3270 and wpr3287
trace files now go into the current directory by default. Session files and
keymaps are now stored in the My Documents\wc3270 folder. When wc3270
is installed, an Upgrade Wizard will automatically copy existing session
files and keymaps to the new location. (The old files will be preserved, but
ignored.)
[all] Made the EraseEOF, Insert, ToggleInsert, Home, FieldEnd and
EraseInput actions clear the insert overflow condition.
Changes in version 3.5alpha4, 15. January 2016
[s3270, ws3270] Added a -minversion option and
minVersion resource to specify a minimum required version. If the
emulator is running an earlier version, it will abort.
[all] Object files (but not yet documentation) are now built in a separate
obj directory with machine-specific subdirectories. Both 32- and
64-bit Windows binaries are always built.
[all Windows] 64-bit executables are now installed on 64-bit Windows
systems. Note that upgrades from 32-bit to 64-bit wc3270 require uninstalling
the 32-bit version first. The installer offers to do this automatically. Note
also that downgrading from a 64-bit version to an older 32-bit version,
without first manually uninstalling the 64-bit version, will cause a mess:
duplicate versions of wc3270 will be listed in Add or Remove Programs,
and uninstalling one of them will half uninstall the other.
There are also now 32-bit and 64-bit versions of the no-install ZIP
file.
[all Windows] OpenSSL 64-bit now builds cleanly on Visual Studio.
[all Windows] Fixed a heap corruption crash when the OpenSSL libraries
are found (even if a secure connections is not in use).
[x3270] Dropped support for xmkmf and imake. x3270 builds and
installs only using autoconf paths now.
Changes in version 3.5alpha3, 11. January 2016
[wc3270] Added SelectLeft, SelectRight,
SelectUp and SelectDown actions to extend the selection area
with shifted cursor keys. Remapped NextWord and PreviousWord to
Ctrl<Key>RIGHT and Ctrl<Key>LEFT respectively.
[wc3270] Added a selection indicator to the window title.
Changes in version 3.5alpha2, 1. January 2016
[all] Fixed Visual Studio 2013 build issues.
Changes in version 3.5alpha2, 1. January 2016
[all] The timeout for Wait can now be specified as a floating-point
number to wait for fractions of a second.
[x3270] Improved resize logic. Window maximize now does something
sensible. Added a Snap Window Size menu option.
[wc3270] Added support for the altCursor toggle, which
if set, changes wc3270 to use an underscore cursor instead of a block
cursor.
[s3270] Fixed an x3270if build problem when libiconv is needed,
plus a build issue that crept in with Makefile.in rationalization.
[all] Added the scriptPortOnce resource and the
-scriptportoncde command-line option to allow only one scripting
connection, after which the emulator will exit.
[all] Removed arbitrary restrictions on the length of script command lines
and on the number of arguments per command.
[all] Allow scripts to issue multiple commands per line.
[all] Synchronize the ReadBuffer action with the
Wait(Output) action, just like Ascii and Ebcdic.
[x3270, c3270, wc3270] Added support for a
crosshairColor resource to allow the color of the crosshair cursor to
be changed. The value is a host color name or index.
Changes in version 3.5alpha1, 10. July 2015
[x3270] Changed the crosshair cursor to a thin purple line, instead
of a reverse-video bar. Extended it into the alternate screen area (if in
primary mode) and into the OIA.
[c3270, wc3270] Added support for a crosshair cursor, using
the crosshair toggle.
[all] Added missing attributes to the ReadBuffer action's output
(background color and input ocntrol) and combined multiple SA orders in
the same buffer location into a single SA order.
[all Windows] Added support for compiling 64-bit Windows executables in
Visual Studio. Switched from VS 2010 to VS 2013. Removed the old nmake
makefiles (use msbuild now for command-line builds).
[all Windows] Switched to the mingw-w64 compiler on Linux and Cygwin.
Made the necessary changes to allow compiling 64-bit Windows executables on
Linux. To build for 64-bit, set the variable WIN64. 32-bit is still the
default.
Changes in version 3.4ga11, Nn. Month 2016
[all] Limit DFT buffer size to 32767. 32768 causes the host to send 0-byte
buffers.
[all] Allow VS2010 builds with spaces in pathnames.
Changes in version 3.4ga10, 1. January 2016
[all] Changed scripts to use /usr/bin/env.
[all] Suspend the idle command while a file transfer is in progress.
Changes in version 3.4ga9, 23. October 2015
[c3270, wc3270] Fixed binary file transfer bug.
[x3270] Fixed missing 'Not Connected' message when disconnecting
from a host.
[all] Fixed trace display of incoming IPv6 connections and the parsing of
the x3270 -scriptport option.
[tcl3270] Added tcl3270 support for Tcl 8.6.
[all] Renamed $INSTALL variable in the top-level configure script
(bugs:15).
Changes in version 3.4ga8, 18. September 2015
[x3270] Fixed a crash in the Configure Idle Command pop-up.
[x3270] Fixed an issue with overwriting local files in file
transfers.
[s3270] Fixed an x3270if build problem when libiconv is needed.
[all] Fixed a problem with truncating the list of LUs when connecting to
a host.
[all] Fixed a crash when too many parameters are passed to an action in a
macro or script.
Changes in version 3.4ga7, 28. August 2015
Fixed a number of warnings found by the MacOS C compiler, which turned
out to be real issues.
[all] Synchronize the ReadBuffer action with the
Wait(Output) action, just like Ascii and Ebcdic.
Changes in version 3.4ga6, 10. August 2015
[all] Fixed an NVT-mode emulation problem.
Changes in version 3.4ga5, 10. July 2015
[all] Fixed a synchronization issue with scripts and file transfers.
[c3270, wc3270] Fixed a crash when the Transfer action was
called from a script.
[x3270] Fixed a crash when visible control characters are turned on
in 3278 mode.
[pr3287] Changed the pr3287 Makefile to use $INSTALL_DATA
(bugs:#13).
[All Unix] Added -D_DEFAULT_SOURCE wherever a Makefile used -D_BSD_SOURCE,
to get rid of compiler warnings with newer versions of glibc
(bugs:#12).
Changes in version 3.4ga4, 16. June 2015
[x3270, c3270, wc3270] Corrected the OIA display of
save-to-printer pages.
[c3270, wc3270] Made the help for file-transfer reflect
the current defaults. Added help for Keymap.
[wc3270] Fixed the pager at the wc3270> prompt. Now it adapts
to the size of the console window correctly.
Changes in version 3.4beta3, 28. May 2015
[pr3287, wpr3287] Fixed a problem with printer session
start-up when both a specific printer LU and an SSL tunnel (L:) are
specified.
Changes in version 3.4alpha2, 15. May 2015
[c3270, wc3270] Added a Keymap action to add or
remove temporary keymaps. The semantics are the same as the x3270 action of
the same name.
[all] Made the parameter to ResumeScript optional, and relaxed the
restrictions on when PauseScript can be used, so it can now be used
from macros and command files read with the Source action.
Changes in version 3.4alpha1, 28. April 2015
[c3270, wc3270] Allow the DFT buffer size to be changed in
the c3270/wc3270 file transfer dialog.
[c3270, wc3270] Allow file transfers to be interrupted
with Ctrl-C.
[x3270] Fixed an issue where the terminal type would not be
reported to the host as IBM-DYNAMIC if the screen was
put into oversize mode via a menu selection (it was correct if oversize came
from a resource). Also
made sure that the 'About->Configuration' display of the terminal type is
always correct.
[all] Added resources to define the default values for each of the
IND$FILE file transfer parameters. The resources have the same names as the
Transfer action keywords, with ft prepended. E.g., the
Mode default is controlled by the ftMode resource. For
consistency, deprecated dftBufferSize and ftCodePage in favor
of ftBufferSize and ftWindowsCodePage (the old resources are
still available).
[all] Added missing functionality to specify the size for avblock
TSO file allocations in IND$FILE file transfers.
[x3270] Added an aplCircledAlpha resource to allow x3270
to properly display APL underscored uppercase letters
with the APL385 font,
by translating them to the (nonstandard) Unicode circled-alphabetic range
U+24B6 to U+25CF.
[x3270, c3270, wc3270] Overhauled visible control
characters so that field attributes are completely decoded. Field attributes
are now in underlined yellow in x3270. Added visible control character
support to c3270 (also underlined yellow) and wc3270 (reverse-video yellow),
with a menu option.
[all] Overhauled the build structure. Now there are libraries for common
functions.
[wc3270] Mapped Alt-left-click onto a lightpen select operation.
Added a lightPenPrimary resource to switch this, so that an unmodified
left-click is a lightpen select and Alt-left-click is a cursor move or
copy/paste highlight.
[all] Added a B: prefix option to hostnames to disable the
automatic keyboard unlock when a BIND-IMAGE is
received.
[all] Added an -nvt option and an nvtMode resource to
force NVT mode as soon as a session is connected. This
overrides the usual
behavior of locking the keyboard and waiting for the host to send
NVT-mode
data or negotiate 3270 mode before unlocking. This option also changes the
default terminal type to xterm.
[c3270] Added a mapping from the Escape key to the Escape()
action (breaking to the c3270> prompt).
[x3270] Added a maxRecent resource to control the maximum
size of the recent host list in the Connect menu.
[wc3270] Added right-click and Enter to Copy, and right-click to
Paste, and Enter to Copy, like Quick Edit mode.
[wc3270] Added a nodialog option to PrintText to
suppress with Windows print dialog.
[wc3270] Added font auto-sizing to GDI screen
printing.
[wc3270] Added Paste with Left Margin menu.
[all] Allow the -scriptport option to specify an address to listen
on.
[all] Added webserver support. The -httpd option starts a webserver
listening on the specified port. The webserver supports a REST
API and some basic HTML objects.
[all] Removed configurability of tracing, NVT mode,
TN3270E support, scripting, menus file transfer, the x3270 pop-up keypad and
printer sessions (they're always enabled now).
[x3270, wc3270] Added an overlayPaste toggle.
When set, pasting over a protected field will simply increment the cursor
position instead of locking the keyboard. This allows forms to be copied and
pasted with the protected fields included. Setting this toggle also
implicitly sets the marginedPaste toggle.
[x3270] Changed the selection logic so that a rectangular
selection (the default for 3270 mode) never ends with a newline character.
Changes in version 3.3.15ga8, 24. December 2014
[x3270, wc3270] Improved paste behavior. Patch courtesy of
Máximo Castañeda.
[all] Added append and replace keywords to the
PrintText action to control how existing files are handled.
[all] Made Wait(Output) work in NVT mode.
[x3270] Fixed security holes in the Print Window Bitmap menu
item and the PrintWindow action.
[wc3270] Fixed multiple GDI printing problems: captions
mis-centered, page overflow with multiple screens per page, "save screens
to printer" not working at all.
Changes in version 3.3.15ga7, 14. December 2014
[wc3270] Fixed some typos in the Session Wizard.
[wc3270] Fixed several issues with Notepad editing of
miscellaneous resources in the Session Wizard.
[wc3270] Allow the printTextOrientation resource to be
specified.
[x3270] Fixed dialog boxes lost behind the file transfer
dialog.
[all] Fixed a crash in the Query action.
Changes in version 3.3.15ga6, 28. November 2014
[wc3270, ws3270] Fixed a bug with the Transfer
action ignoring the BufferSize parameter.
Changes in version 3.3.15ga5, 14. October 2014
[all] Allow file transfers to be started when the screen is unformatted
and includes space characters.
[all] Corrected the documentation for the menuBar resource.
[wc3270] Allow the keyword none to be given to the Session
Wizard editing menu.
Changes in version 3.3.15ga4, 3. October 2014
[all] Fixed a problem with -scriptport connections never being
accepted again after a socket error.
Changes in version 3.3.15beta3, 19. September 2014
[pr3287] Added an -mpp option to set a non-default Maximum
Presentation Position (the maximum line length for unformatted Write
commands).
[all] Corrected the BINARY and NOCRLF options passed to the CICS version
of IND$FILE.
[all] Added a --disable-ipv6 option to the ./configure script to
allow IPv6 support to be explicitly disabled.
Changes in version 3.3.15beta2, 12. August 2014
[all] Changed the IND$FILE command to all-uppercase, to make
certain hosts happier (found by Máximo Castañeda).
[wc3270] Fixed a Cygwin Makefile problem (found by Máximo
Castañeda).
[all] Fixed some zOS/USS build issues (found by Kevin Morris).
Changes in version 3.3.15alpha1, 17. July 2014
[all] Added a newEnviron resource. If set to true (the
default), the emulator will respond to the TELNET NEW-ENVIRON option. If set
to false, it will not.
[wc3270] Fixed a problem where editing an all-users session would
result in copying the session to the current user's AppData directory, and
re-creating the shortcut would point it to the wrong entry.
[wc3270] Added Session Wizard options to copy a session, rename a
session, and create a shortcut for a session.
[all] Fixed several issues with TN3270E options negotiation (thank you to
Máximo Castañeda for pointing these out).
[wc3270] Changed the default directory for trace files from the
wc3270 AppData directory to the current user's desktop. Also fixed a number
of documentation issues in this area.
[all] Added a tls resource. If set to false, TLS
negotiations from the host will be rejected.
[wc3270] Added menu options to start up HTML help and the Session
Wizard.
[c3270] If there is room, added a line (a row of underscored
blanks) between the 3270 display and the OIA.
[wc3270] Changed the menu bar to reverse video.
[wc3270] Added a Cut action, mapped to Ctrl-x. It is the
same as Copy, but it also erases the copied text (in modifiable
fields) when it finishes.
[wc3270, ws3270] Added support for a separate Windows
code page for IND$FILE ASCII file translations, via the ftCodePage
resource and the WindowsCodePage= parameter to the Transfer
action.
[all] Produce a better error message when the host disconnects because the
emulator does not support SSL.
[wc3270] Added a Session Wizard option to turn on tracing at
start-up.
[wc3270] Extended the Session Wizard to present a menu of existing
sessions to choose from, to permit a session to be deleted, and to edit the
free-form settings in the session file with Notepad.
[wc3270] Added automatic resizing of the console window to match
the model number and oversize.
[all] Removed Windows 98 support.
[wc3270] Added Esc as an alias for ESCAPE in keymaps.
[all] List out the toggle names when a -set or -clear
doesn't find a match.
[wc3270] Added support for GDI (direct) printers to the
PrintText() and ScreenTrace() actions using the new gdi
keyword option. Added resources to control GDI printing:
printTextOrientation, printTextHorizontalMargin and
printTextVerticalMargin.
Changes in version 3.3.14ga11, 3. May 2014
[pr3287, wpr3287] Changed the -xtable option so that
the translations are considered transparent data (they are not considered
when checking for line wrap or when skipping ASA carriage control
characters).
Changes in version 3.3.14ga10, 27. April 2014
[x3270] Restored the ability to use the special 3270 fonts with
code page 1047.
[pr3287, wpr3287] Backed out the previous change to ignore
NULLs (they really are supposed to be considered blanks in unformatted Write
commands). Replaced it with a new -skipcc option to ignore ASA
carriage control characters at the beginning of each line; it only applies
to unformatted Write commands.
Changes in version 3.3.14ga9, 13. April 2014
[pr3287, wpr3287] Fixed a problem with misinterpreting
NULL (X'00') characters in unformatted mode as spaces, when they should be
ignored. This caused printer output to be shifted and sometimes wrapped.
[wc3270] Corrected the Copy() action so the space after a
word selected with a double mouse click is not copied to the clipboard.
[all 3270] Fixed a crash when disabling tracing after opening the trace
file fails.
Changes in version 3.3.14beta8, 31. March 2014
[all 3270] Changed the keyboard to unlock when a BIND-IMAGE is received.
This matches the behavior of PCOMM and is consistent with some comments found
on IBM webpages. The net result is that the keyboard will be unlocked (and
scripts may be allowed to proceed) earlier than with previous versions of the
emulators. This is good for talking to hosts that don't send an initial Write
command (as can happen with CICS); previously this Write was the only trigger
for unlocking the keyboard at connect or BIND time. But it is bad if a script
implicitly depended on the old behavior. Scripts confused by this change may
need to add a Wait(InputField) to cover these cases.
[all 3270] Got rid of the E status for keyboard lock in the
scripting prompt. The status is now L (locked) or U
(unlocked).
[all 3270] Added decoding of UNBIND reasons to traces.
[all 3270] Increased the number of situations where keyboard input can
result in typeahead instead of drops.
Changes in version 3.3.14ga7, 8. March 2014
[c3270, wc3270] Corrected a problem where the
trace on command at the c3270> prompt resulted in tracing to
a file named on.
[c3270, wc3270] Reversed the order of keymaps.
User-specified keymaps appear first, with later-specified ones before
earlier-specified ones, so the override relationships are more obvious.
On Windows, this also resolves the rules for ambiguous keymaps -- the first
match wins, given the new ordering rules.
[wc3270] Fixed a problem with printable virtual key events
being interpreted incorrectly, even though they were traced correctly, for
example, Ctrl-Shift-3.
[wc3270] Fixed a problem with the RightCtrl modifier
in a keymap being interpreted as Ctrl.
[wc3270Fixed some man pages that accidentally ended up as html.
Changes in version 3.3.14ga6, 23. January 2014
[all] Fixed a problem with displaying text in NVT mode when the host
does no TELNET negotiation.
[all] Deprecated the dsTrace and eventTrace resources (and
associated toggles and x3270 menu options) and replaced them with a new
single trace resource and toggle. The old resources and toggles are
still available, but are effectively aliases for the new single setting.
Changes in version 3.3.14alpha5, 30. December 2013
[c3270, wc3270] Added screen scrolling (saving previous
screen contents, to be displayed interactively), controlled by the new
Scroll action. Scroll(Backward) (mapped onto PageUp) goes back
one screen; Scroll(Forward) (mapped onto PageDown) goes ahead one
screen. The Reset action cancels scrolling. The -sl
command-line option or scrollLines resource changes the number of
lines saved for scrolling from the default of 4096.
[x3270] Turned the scrollbar on by default. Mapped the PageUp and
PageDown keys to the (new) Scroll action, to scroll up or down one
screen, respectively. Modified the Reset action to cancel any
screen scrolling.
[all Windows] Got everything to build under MSVC again, using either the
command line or MS Visual Studio. A Visual Studio solution file is now
included in the source tarball. Windows targets also cross-compile again with
the latest Cygwin MinGW.
Changes in version 3.3.14alpha4, 21. December 2013
[all] Added a printTextScreensPerPage resource to control how many
screens of text are displayed per page when tracing screens to the
printer.
[all] Corrected screen tracing to the printer so it observes the
printer.name and printer.command resources.
Changes in version 3.3.14alpha3, 16. December 2013
[all, wc3270] Fixed problem with message display during
file transfers initiated by scripts.
[all] Fixed a problem reading files with the Source action, when
the file does not end with a CR or NL.
Changes in version 3.3.14alpha2, 4. November 2013
[all] Added support for CICS IND$FILE file transfers.
Changes in version 3.3.14alpha1, 30. October 2013
[all] Allow file transfers to start when the screen is unformatted.
[all] Fixed a problem with the initial data stream trace snapshot when the
screen is unformatted.
A wrapper function was put around the Windows snprintf function,
to ensure that it always NUL-terminates strings. The lack of such a wrapper
could lead to string overflows in some situations.
[wc3270] Added the ability to install wc3270 for all users or just
for the current
user (the old behavior was just the current user). Also extended the
installer to allow selective installation of various pieces. The Session
Wizard can now create and edit session files and desktop shortcuts for either
all users or the current user, and keymaps can be located in either the
all-users or current user's AppData directory. Trace files are always left
in the current user's AppData directory.
[wc3270] wc3270 Session files are now editable from the Windows
context menu (right-clicking from explorer).
[wc3270] Windows 98 is no longer supported by the wc3270 installer.
This is
because the installer tool used by wc3270 (Inno Setup) no longer supports
Windows 98, not because of any inherent limitation in wc3270. The no-setup
.ZIP file can still be used to install wc3270 on Windows 98 by hand. A
simple Windows 98-specific installer may be added at some point in the
future.
[wc3270] Added native select/copy to wc3270. Just highlight with
the mouse and press Ctrl-C. The Clear action is still available via
Alt-C.
Changes in version 3.3.13ga7, 11. September 2013
[wc3270] Fixed a hang when the wc3270 window was closed on XP.
[all] Fixed connect() failures on MacOS.
Changes in version 3.3.13ga6, 8. September 2013
[all] Corrected a problem with the display of non-display fields
(incorrectly observing the colors and graphic rendition).
[wpr3287] Added the -tracedir option, just like pr3287.
[pr3287, wpr3287] Added tracing of the -xtable
translation table.
[pr3287, wpr3287] Added tracing of the data stream sent to
the printer.
[pr3287, wpr3287] Use the same unique trace file name
convention as the other emulators.
[pr3287, wpr3287] Added a -crthru option to pass
CR orders through to the printer in unformatted 3270 mode, instead of
interpreting them.
Changes in version 3.3.13beta5, 4. September 2013
[wc3270] Added logic to the Session Wizard to automatically correct
old-format UNC printer names, and also fixed some minor bugs in it.
[all] Corrected the CGCSGID for code page 1145 (spanish-euro).
[all] Second try at getting pr3287/wpr3287 shut down and re-launched
correctly.
Changes in version 3.3.13beta4, 23. August 2013
[all] Corrected the start/stop of pr3287/wpr3287 printer sessions, so that
a new one is not started until the previous one has completely exited.
Changes in version 3.3.13beta3, 6. August 2013
[pr3287, wpr3287] Made sure trace files get flushed for each
entry.
Changes in version 3.3.13alpha2, 30. July 2013
[all] Fixed a crash when connecting to certain hosts using an SSL tunnel.
[all except x3270] Fixed a parsing problem for session files and
-xrm options that resulted in doubled backslash characters.
[all] Fixed a crash in the Wait(n,seconds) action.
[wc3270] Made sure that the wpr3287 process is stopped when the
wc3270 window is closed.
[wc3270] Fixed new issues created by the previous Windows 8 process
creation fix.
Changes in version 3.3.13alpha1, 11. July 2013
[wc3270] Fixed some issues with starting Wordpad and wpr3287 on
Windows 8.
[x3270] Combined the various text screen save/print options into
a single menu option, which brings up a dialog box that allows snapshots,
continuous saving, save to text, HTML or RichText or directly to the
printer.
[c3270, wc3270] Added the ability to save a stream of
screens to the printer via a menu option or the new Printer option to
the ScreenTrace action.
[x3270] Added a -secure to simplify invoking secure mode.
[c3270, wc3270] Allow -noprompt mode without a host
specified on the command line.
[pr3287, wpr3287] Added custom translation tables via the
-xtable option.
[pr3287, wpr3287] Made -emflush the default.
Added a -noemflush to specify the old behavior.
[all] Corrected a problem with interpreting the SuppressMap
resource. (Courtesy of Marcin Cieślak.)
[wc3270] Corrected the working directory for auto-shortcut mode.
[all] Added the -accepthostname command-line option and
acceptHostname resource to allow accepting specific names and IP
addresses in host certificates, or any name.
[all] Turned off variable substitution for all actions under certain
circumstances, such as inside macros. It mostly just caused confusion.
[all] Added two pseudo-variables for filename substitutions: ${TIMESTAMP}
becomes a microsecond-resolution timestamp and ${UNIQUE} guarantees that the
filename is unique. Changed the default trace file names to use ${UNIQUE}.
[all] Added a number of keywords to the Query action.
[all] Made the Open (Connect) and Close
(Disconnect) aliases available everywhere.
[s3270, ws3270] Enabled the idle command (the
idleCommand, idleCommandEnabled and idleTimeout
resources).
[all] Added support for code page 803 (hebrew-old).
[s3270, ws3270] Added a -utf8 command-line option and
a utf8 resource to force local I/O to be encoded as UTF-8.
[all] Added a -loginmacro command-line option, and made the
existing loginMacro resource work on x3270.
[wc3270] Made screen printing via PrintText (Alt-P)
asynchronous, so wc3270 can continue processing keyboard events and host
output while the screen print is being prepared.
[s3270, ws3270, tcl3270] Made 3279 (color) mode the
default.
[all] Added output to scripts to the event trace file.
[wc3270, ws3270] Now there is a single wc3270 .exe file and
a single ws3270 .exe file; they each find the OpenSSL DLLs automatically if
they are installed.
Changes in version 3.3.12ga13, 2. May 2013
[c3270, wc3270] Fixed a start-up crash when the tracing is
enabled and the menu bar is disabled.
[all] Added support for the LF (X'25') format control order.
[All] Fixed a number of buffer overflow crashes.
Changes in version 3.3.12ga12, 1. March 2013
[All] Added logic to verify the name in the host certificate.
[All] Pass all SSL-related parameters to the pr3287 session.
[x3270] On the Connect menu, made the recent host list a
pull-right sub-menu, if there is an ibm_hosts file in use.
[x3270] The -trace option now implies event tracing as well.
[x3270] Spaces are now allowed in the file transfer dialog local
file name.
[all] Corrected issues when invalid Unicode characters are encountered
during a file transfer.
[x3270, wc3270] Corrected a crash when tracing without a
file, when the monitor window was closed.
[ws3270] Corrected the behavior of stdin processing, so ws3270 is
not blocked trying to read stdin most of the time. Also fixed an issue where
the scripting prompt would start with E when the keyboard was in
inhibit mode.
[wc3270] Removed a duplicated rule in Msc/Makefile.
[all] Changed the CGCSGID for cp930 (Japanese) 0x080b012c (2059, 300) to
0x0172012c (370, 300).
[wc3270, c3270] Corrected the behavior of the Menu option in
the Session Wizard and the menuBar resource, neither of which worked
correctly.
Changes in version 3.3.12ga11, 23. July 2012
[all] Corrected a problem with not sending the TELNET TERMINAL TYPE when
the TELNET NEW ENVIRONMENT option had been negotiated.
[x3270, c3270] Corrected issues with manual page
warnings.
Changes in version 3.3.12ga10, 8. July 2012
[all] Turned off automatic SSL host certificate verification and added a
verifyHostCert resource and -verifycert option to enable it.
[wc3270] Improved behavior when SSL negotiation fails.
[x3270, c3270, wc3270] Changed the 'secure' icon to green when
SSL/TLS is active and the host is verified, and yellow when SSL/TLS is
active but the host certificate is unverified.
[c3270] Added a defaultFgBg resource and -defaultfgbg
option to use the terminal's default foreground and background colors in
place of the curses colors white and black respectively -- if
the ncurses library, terminal and termcap/terminfo entry support default
color. It is automatically set for gnome-terminal.
Changes in version 3.3.12beta9, 13. February 2012
[all] Added a selfSignedOk resource to allow SSL authentication
with hosts that use self-signed certificates.
Changes in version 3.3.12ga7, 24. August 2011
[wc3270] Improved the Keymap and Build documentation.
[wc3270] Added catf.exe to the no-install zip file.
[wc3270] Added BackSpace as an alias for the BACK
key.
[all] Corrected a buffer overflow problem when starting tracing with
large screen sizes.
[wc3270] Corrected an installation issue with the root certificates
file.
[wc3270] Changed the OpenSSL documentation to refer to the Lite
version of the OpenSSL DLL.
[All but wc3270 and x3270] Made the hostname
resource work as-documented: if it is defined, then the emulator will connect
to that host at start-up.
[c3270] Added a key sequence for screen printing (Ctrl-a,
p).
Changes in version 3.3.12beta6, 4. January 2011
[all] Added support for the TELNET NEW-ENVIRON sub-negotiation, used
to specify the Workstation ID to iSeries hosts, as specified by RFC 4777.
[c3270, wc3270] Corrected a problem with mouse clicks on the
top two lines on the screen.
[all] Included SSL documentation.
Changes in version 3.3.12a4, 8. December 2010
[wc3270] Restored the SSL option in the Session Wizard.
Changes in version 3.3.12a3, 2. December 2010
[All] Completed the options and resources needed for complete OpenSSL
support.
Changes in version 3.3.12a2, 25. November 2010
[pr3287, wpr3287] Added a -ffeoj option to output
a formfeed at the end of each print job.
Changes in version 3.3.11ga6, 19. September 2010
[wc3270] Fixed an issue with non-ASCII text in the Info
command.
[wc3270] Removed junk characters from the top line of model 5
screens.
[pr3287, wpr3287] Corrected an issue with missing newlines
at the end of each formatted 3270 stream Write command.
[pr3287, wpr3287] Modified the -trnpre and
-trnpost options to open the files for each print job, so they can be
changed between print jobs.
Changes in version 3.3.11beta5, 30. July 2010
[all 3270] Improved tracing. Trace entries now include time stamps.
Trace file limits operate much more simply. A trace file name can start
with ">>" to have the data appended to the file.
[all 3270] Allow -scriptport TCP ports to be re-used quickly.
Changes in version 3.3.11beta4, 25. July 2010
[wc3270] Corrected a problem where mouse input would be ignored
after screen printing (Alt-P) or use of the Execute() action.
[wc3270] Added a bellMode resource to allow precise control
of what wc3270 does in response to ALARM WCCs and BELL characters.
[c3270] Fixed a problem with hangs when a connection fails on
recent versions of Cygwin.
[x3270, c3270, wc3270] Added a new token to the
printer.assocCommandLine and printer.luCommandLine resources:
%O% will be substituted with the value of the new
printer.options resource. This allows extra options such as
-emflush to be passed easily to pr3287 and wpr3287
sessions without having to redefine the rather ugly
printer.assocCommandLine and printer.luCommandLine
resources.
[pr3287] Fixed a build issue on platforms that use the iconv
library, such as Macs.
[all] Added a bindLimit resource (default true) to control
whether the screen dimensions specified by the host in a BIND image
will be obeyed.
[wc3270] Fixed the cursor position toggle to turn off correctly.
[c3270 and wc3270] Added a menu option to toggle underscore
mode.
[c3270] Fixed underscore mode to only affect underlined fields.
Changes in version 3.3.11beta3, 7. July 2010
[pr3287 and wpr3287] Added the -emflush option, to
flush pending printer output when an EM order is received in unformatted
3270 mode. This helps preserve multi-page output from hosts that to not
clear the 3270 buffer between pages.
Changes in version 3.3.11beta2, 6. May 2010
[c3270, wc3270] Added a menu bar and pop-up keypad,
usually controlled by the mouse or by the new Menu and
Keypad actions.
[c3270, wc3270] Implemented the showTiming toggle,
to display the time taken for the host to process an AID in the OIA.
[wc3270] Overhauled auto-shortcut mode, so that no shortcut is
needed to run a wc3270 session file.
Changes in version 3.3.10ga5, 6. May 2010
[c3270] Corrected a screen refresh problem when first
connected.
[wc3270] Include the font size and oversize dimensions in the
automatically-generated shortcuts.
[c3270] Allow the 'c3270.printer.command' resource.
[x3270] Fixed a problem with temporary keymaps being cleared when
connecting to or disconnecting from a host.
[x3270, c3270] Corrected some APL characters that were
not displayed correctly with Unicode fonts.
[all] Corrected operation on EBCDIC-based hosts.
[all] Corrected the behavior of hostname prefixes such as L:,
which were "sticky", i.e., once set they would be set for all future
connections.
[all] Corrected the reported CGCSGID for code page 1147
(french-euro).
[all except x3270] Disabled the Query Reply report for background
color support, which confused some older versions of GDDM. This report can
be explicitly enabled by setting the qrBgColor resource to
true.
[all] In oversize mode, changed the terminal type to IBM-DYNAMIC.
Changes in version 3.3.10ga4, 2. October 2009
[all x3270] Improved the File Transfer summary display.
[all x3270] Removed the keyboard lock when processing an Enter AID in
SSCP-LU mode.
[x3270] Fixed a build problem when DBCS support is disabled.
[c3270] Made the special keymap key names (e.g., PRINT)
case-insensitive.
[c3270] Fixed a problem with keyboard input in ISO 8859
locales.
[x3270] Increased the maximum number of fonts scanned to
50000.
Changes in version 3.3.10ga3, 15. September 2009
[x3270] Fixed some bugs in the xmkmf-free build.
Changes in version 3.3.10alpha2, 10. September 2009
[c3270] Added the ability to move the 3270 cursor with the mouse,
if the terminal supports it. Add a Mouse resource, which can be
set to False to disable it.
[all 3270] Added a Translate keyword to the Transfer
action's parameters and an additional question to the interactive
c3270/wc3270Transfer dialog, to allow the automatic
remapping of text (usually done to get the most accurate translation)
to be disabled.
Restored the pop-up window that displays trace files.
Changes in version 3.3.10alpha1, 3. September 2009
[3270] Allow the program to be built without xmkmf.
[all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode
file transfers.
[all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the
local fopen() flags when receiving a binary file.
[x3270] Added the APL up- and down-arrow characters (↑ and
↓) to the 12-point fonts (thanks to Paul Scott for the fix).
[all 3270] Script comments are now allowed (any input line beginning with
# or !).
[wc3270] Added support for the Enhanced keymap modifier
(EnhancedReturn is the keypad Enter key. Also added Enter,
PageUp and PageDown as aliases for the Windows keys RETURN,
PRIOR and NEXT.
[wc3270] Added oversize, font size and background color
support to the Session Wizard.
[x3270] Fixed a problem with ignored -set and -clear
options.
[c3270 and wc3270] Added support for the
-oversize auto option, which allows the emulator to use the entire
area of the terminal or console window it is running in.
[x3270] Removed the huge delay at start-up.
[x3270, c3270, s3270 and wc3270] Added support
for TCP-socket-based scripting via the -scriptport option. For
wc3270, this is the first time that scripting has been available.
[all 3270 except x3270] Added support for the screenTraceFile
resource.
[all 3270] Fixed a file descriptor leak with the -socket option.
[all 3270] Fixed a crash with the Toggle action and undefined
toggles.
[wc3270] Implemented no-install mode (allowing wc3270 to run
without installing the software) and auto-shortcut mode (where wc3270
automatically creates a temporary shortcut file to match a session file and
runs it).
[all 3270] When a hostname resolves to multiple addresses, try each until
one works.
[all 3270] Corrected an issue where the keyboard would lock on the first
screen when connecting to hosts like Hercules.
[wc3270] Added mappings of the Page Up and Page Down
keys to PF(7) and PF(8) respectively.
[wc3270, ws3270] Removed the .dll files from the
distribution.
[c3270] Corrected an issue with cursor and function keys not
being recognized if they are the first key pressed.
[all 3270] BIND image screen sizing is now observed.
[pr3287 and wpr3287] Corrected the -charset
documentation on the manual page.
[all 3270] Resurrected flipped-screen mode via the Flip and
ToggleReverse actions.
[all 3270] Added a Seconds form to the Wait action,
allowing a script or macro to delay itself an arbitrary length of time.
[wc3270] Modified the PrintText action so that
Wordpad is started minimized.
Changes in version 3.3.9ga11, 25. March 2009
[x3270 and c3270] Re-enable the ibm_hosts file
(it was accidentally being ignored).
[all but wc3270] Don't crash when there is no iconv
translation for the locale codeset.
[all but x3270] Fixed a build failure in glue.c when DBCS was
disabled.
[wc3270] Corrected the default keymap so that the uppercase
versions of the Alt mapping also work.
[wc3270] Corrected the documentation of the
printTextFont and printTextSize resources.
[c3270] Corrected a number of errors in parsing
CursesColorForxxx resources.
[c3270] Added support for -rv, which puts c3270 into
black-on-white mode.
[c3270] Added support for 16-color terminals, with the
-color8 option overriding this and forcing 8-color support only.
On a 16-color terminal, -allbold is no longer the default.
[c3270, wc3270, s3270 and tcl3270] Ensured
that command-line parameters override session files.
[c3270] Made session files replace profiles, rather than just
overriding any common definitions. This is more intuitive and consistent
with x3270.
Changes in version 3.3.9ga11, 27. February 2009
Common Changes
Improved hostname parsing. Now backslashes can be used to quote
any character, and square brackets can be used to quote any element (LU name,
host name, or port).
Fixed a number of compiler warnings from newer versions of gcc and a
number of small memory leaks.
Overhauled the host code pages and CGCSGIDs for DBCS. Added
sbcsCgcsgid and dbcsCgcsgid resources to override the
compiled-in values.
Added a caption text option to the PrintText
action, which will place the specified caption above the screen image.
Within the text, the string %T% is interpolated to a timestamp.
Improved the state dump when tracing starts to include NVT and
SSCP-LU state and the SNA BIND image.
Updated the copyright and licensing notices (now a standard BSD
license).
Added support for carriage-return (0x0d) characters in the
String action, which imply the Newline action.
Changed the Attn action so that it sends an IAC
BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the
session is not SNA bound.
Added Traditional Chinese (host code page 937) support.
Extended the String action's \e and \x sequences
to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary
Unicode input. Also added \u as an alias for \x.
Changes to x3270
Fixed a crash when pasting an empty selection.
Made the Query Reply response for x3270 identical to the other
tools.
Included fonts for Traditional Chinese.
Changes to x3270 and c3270
Removed the nested copy of pr3287.
from the source. pr3287 must now be built separately from its own
package.
Changes to wc3270
Corrected a problem with color mapping in the OIA.
Changed the New Session Wizard to the Session
Wizard and gave it the ability to edit existing session files and
re-create missing session files. Note that this ability is limited to
session files created with 3.3.9beta10 or later.
Added a wc3270.printer.codepage resource to set
the Windows code page for the associated pr3287 printer session.
Simplified the operation of the New Session Wizard,
so it asks fewer questions.
Added a pager to interactive mode.
Made the PrintText font and point size
configurable via the printTextFont and printTextSize
resources.
Changed the default 'blue' color for created shortcuts
to a somewhat lighter shade, to make it more readable.
Changed the Session Wizard to specify the code page
and proper font when creating shortcuts for DBCS sessions. This should
allow DBCS to work on Windows 2000 and Vista.
Included ws3270 in the wc3270 release.
Changes to c3270 and wc3270
Added feedback for the progress of file transfers.
Implemented the Info action,
which writes a message to the OIA (the line below the display).
Added a no-prompt mode, via the
-noprompt command-line option and the noPrompt resource .
Added automatic reconnect, via the
-reconnect command-line option and the reconnect resource.
Changes to ws3270 (formerly available as a pre-release)
Fixed a bug which resulted in all command timings
being displayed as '-'.
Added the -localcp option and
localCP resource to change the Windows code page used for local
workstation I/O.
Added DBCS support and support for building using Microsoft tools.
Changes to pr3287 and wpr3287
Fixed a serious character-mapping bug.
Added DBCS support.
Changes to specific versions
[c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
[All except wc3270 and ws3270] Extended the rtf
option of the PrintText to non-Windows platforms.
[All except x3270] Fixed a number of issues with -xrm
option processing and keymap display when backslash sequences were used.
Changes in version 3.3.8p2, 13 December 2008
[wc3270] Corrected the handling of 8-bit and DBCS characters in
the PrintText action.
[tcl3270] Extended configure to find the Tcl
library version automatically.
[wc3270] Corrected a problem which caused mouse clicks not to be
recognized (not moving the cursor) if NumLock was set.
[all] Corrected the configure script to recognize
a separately-installed iconv library even if the iconv()
function is defined in libc.
[wc3270] Restored the bell sound, and added a visualBell
resource to disable it.
Changes in version 3.3.8p1, 20 October 2008
[wc3270] Restored the Ctrl-] mapping for the
Escape action, which had been inadvertently removed.
[wc3270] wc3270 now starts successfully on Windows
Vista.
[c3270] On platforms that require the iconv library,
c3270 once again recognizes ncurses names in keymaps.
[x3270] The module keysym2ucs.c now builds on
FreeBSD.
[x3270] Selections now work properly on platforms that do not
support XA_UTF8_STRING.
Changes in version 3.3.8, 11 October 2008
Version 3.3.8 includes a significant internal change, using Unicode for all
translations between the host and the local workstation.
This change should be
transparent, but users who depended on certain behaviors of the old
implementation may see unexpected differences.
Common Changes
Many more EBCDIC characters, such as Graphics Escape line-drawing and APL
characters, are now properly displayed (even without special 3270 fonts),
traced, cut/pasted with other applications, and returned by scripting actions
like Ascii.
With two exceptions, the locale's encoding is now observed consistently
when reading keymaps, generating trace files, etc.
The exceptions are:
tcl3270 always uses UTF-8, per the internal Tcl convention.
Because Cygwin doesn't really support locales, the Windows ANSI code
page is used as the local encoding instead.
Stateful encodings such as ISO 2022 are untested and very likely do
not work.
The ICU library is no longer used, and ICU .cnv files are no longer
included with the code.
Translation to/from the local encoding requires one of two facilities:
Either libc must support __STDC_ISO_10646__ (wchar_ts
are defined to be Unicode values, as on Linux and Windows), or there must be
an iconv library that can translate between UTF-8 and all local
encodings.
DBCS support is enabled by default, except on Windows.
It can be explicitly
disabled in the configure script to reduce the size of the
executable (removing several large translation tables).
The -v/--verbose option has been added to display build and
copyright information.
The Thai host code page has changed from 838 to 1160.
Changes Common to the 3270 Terminal Emulators
The Key action now accepts Unicode arguments in the form
U+nnnn, removing possible ambiguity from translating from the
Added a Source action to read script commands from a file.
Added a 10 second timeout to the start of the Transfer action.
Added an unlockDelayMs resource to change the number of
milliseconds of delay before actually unlocking the keyboard after the
host requests it. The default is 350; use 0 to disable the delay
altogether.
IND$FILE file transfer now transfers DBCS text files properly.
Changes Common to 3287 Printer Emulators
Added direct support for all x3270 host character sets via the
-charset option.
Added -trnpre and -trnpost options to specify files
containing transparent data to send to the printer before and after
each print job, respectively.
Product-Specific Changes
[x3270] Commands entered into the Print Screen Text dialog
are now saved by the Save Changed Options in File option.
[x3270] Fixed some bad interactions between the pop-up keypad and
the GNOME window manager.
[x3270] The Euro fonts have been folded into the standard
fonts.
[x3270] The font menu is now arranged hierarchically by
foundry and family.
[c3270] Added an underscore toggle to allow underlined
fields to be displayed even on consoles with no native underlining
support, by substituting underscore '_' characters for blanks and nulls
in underlined fields.
[c3270] Overhauled Meta and Alt key support.
Removed support for the archaic Meta modifier in keymaps (it was an
alias for setting bit 0x80 in each key). Replaced it with an Alt
modifier, which matches the ESC sequence sent for the Alt key
by many terminals, and which can be combined with full 8-bit input
characters.
[c3270] Changed the interpretation of keymaps so that keys and
symbols are matched in Unicode. That is, keymap text is converted from the
current locale's encoding to Unicode before matching, and input character
codes are converted to Unicode before matching. This eliminates the
difficulty in creating keymaps and interpreting traces in non-Latin-1
locales -- needing to translate from the accidental interpretation of
8-bit values as Latin-1 when they are not -- but with the side-effect
of rendering some carefully-crafted existing keymaps invalid. Keymaps
can also be written using Unicode U+nnnn notation.
[c3270] Changed the metaEscape resource so that auto
means on, instead of using the terminfo km resource.
[c3270] Added an acs resource to control the use of curses
ACS codes.
If c3270.acs is set to true (the default), c3270
will use curses ACS codes for line-drawing characters. If set to
false, it will display line-drawing characters with Unicode.
[wc3270] Added an underscore toggle to control how
underlined and blinking fields are displayed. If it is set (the default),
underlined fields are displayed by substituting underscore (_)
characters for blanks and nulls, and blinking fields actually blink.
If it is clear, underlined and blinking fields are displayed with
highlighted backgrounds, which is compatible with previous versions of
wc3270.
[wc3270] Left-clicking with the mouse will now move the cursor
to that location.
[wc3270] The PrintText action now works, and is mapped by
default to the sequence Alt <Key>p.
The printer.name resource defines the default printer to use.
[wc3270] The PrintText action can now be used to produce
a RichText snapshot of the screen contents, via the rtf keyword.
[wc3270] The program longer attempts to set the console code page,
which was error-prone and unnecessary.
[wc3270] The idle command feature now works, controlled
by the idleCommand, idleCommandEnabled and idleTimeout
resources.
[wc3270] The program no longer attempts to set the console code
page, which could lead to hangs on Vista.
[wc3270] The installation now creates a program group item to
explore the wc3270 Application Data directory.
[wc3270] Corrected a problem with console color overrides, which
prevented reverse-video mode (white background) from working properly.
For now, the recommended method for enabling reverse video mode is to add
these lines to your session file:
[wc3270] wc3270 now builds with the Microsoft tools.
The file Msc/Makefile is a makefile for nmake.
[tcl3270] Added a commandTimeout resource to force any
Tcl3270 command to time out after the specified number of seconds.
(Thanks to Mark Young.)
[tcl3270] Fixed a per-command memory leak. (Thanks to Mark
Young.)
[wpr3287] Added a -printercp option to specify a particular
code page for printer output.
[wpr3287] wpr3287 now builds with the Microsoft tools.
The file Msc/Makefile is a makefile for nmake.
Changes in x3270 3.3.7p8, 28. August 2008
Bug Fixes:
Corrected the buffer addressing mode logic for oversize screens.
Changes in x3270 3.3.7p7, 4. July 2008
Bug Fixes:
Corrected input of 8-bit characters when x3270 is run in a
UTF-8 locale.
Corrected a bug which sometimes left the local file open after a
failed file transfer.
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Changes in x3270 3.3.7p3, 22. February 2008
Bug Fixes:
Fixed an issue with Idle commands, which would cause x3270
to exit with a Not Found error as soon as the idle command
fired.
Changes in x3270 3.3.7, 25. December 2007
Bug Fixes:
Fixed the annoying delay when x3270 starts with an error
pop-up.
Shortened the manpage so that it displays on non-groff platforms.
The full text is still available in the HTML version.
Plugged a number of memory leaks.
x3270 will now compile on platforms that do not support
IPv6, such as Cygwin.
x3270 will no longer crash or spin when the -script
option is used.
Shifted function keys should work again (they map to PF13-PF24).
The screen can now be resized larger, as well as smaller.
Removed the dependency on <bitmaps/gray>, which
required installing an obscure X11 development package on some
platforms.
New Features:
Added UTF-8 support. If the current locale specifies UTF-8 encoding,
then all text output (trace data, script interactions, screen snapshots,
etc.) will be UTF-8 encoded, and all text input (arguments to the
Key and String actions, etc.) must be UTF-8 encoded.
In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
Added a SelectAll action, mapped to Ctrl-A.
Changes in c3270 3.3.7p8, 28. August 2008
Bug Fixes:
Corrected the buffer addressing mode logic for oversize screens.
Allowed c3270 to build under SLES 10's unusual ncurses
configuration.
Changes in c3270 3.3.7p7, 4. July 2008
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Bug Fixes:
Corrected a bug which sometimes left the local file open after a
failed file transfer.
Changes in c3270 3.3.7p4, 29. February 2008
Bug Fixes:
Fixed c3270's configure script again, so it will build on
systems without the ncurses library.
Enabled idle command functionality, which had been
accidentally disabled.
Changes in c3270 3.3.7p1, 28. December 2007
Bug Fixes:
c3270's configure script would not detect missing ncurses
header files, and c3270 would not build if ncursesw was not
installed.
Changes in c3270 3.3.7, 25. December 2007
Bug Fixes:
c3270 will now display characters such as
the notsign¬ properly in terminal windows in UTF-8
locales.
Note that this display support requires an ncurses or
curses library that supports wide characters.
New Features:
Added UTF-8 support. If the current locale specifies UTF-8 encoding,
then all text output (trace data, script interactions, screen snapshots,
etc.) will be UTF-8 encoded, and all text input (arguments to the
Key and String actions, etc.) must be UTF-8 encoded.
In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
Added display of the host code page and locale codeset to the
show status command.
Added support for changing the color mappings. The curses color
for a given host color can be specified with the resource
c3270.cursesColorForHostColorn, where n is a
host color number (0 through 15), and the value of the resource is a
curses color number (0 through 7).
In addition, the field-attribute-based colors used when the host
does not specify a particular color can be changed via the following
resources:
The value for each of these is a curses color number (0 through 7).
Changes in wc3270 3.3.7p8, 28. August 2008
Bug Fixes:
Fixed idle command support.
Changes in wc3270 3.3.7p7, 4. July 2008
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Bug Fixes:
Fixed a problem with transferring binary files, where 0x0d
characters might be accidentally added to or removed from the data.
Corrected a bug which sometimes left the local file open after a
failed file transfer.
Changes in wc3270 3.3.7p5, 11. April 2008
Bug Fixes:
After installation is complete, get rid of mkshort.exe, which
shares its name (but not its functionality) with a computer surveillance
application.
Corrected several issues with key event processing and the default
keymap.
Changes in wc3270 3.3.7p3, 22. February 2008
Bug Fixes:
Changed the New Session Wizard to create the Application Data
directory, so wc3270 can be run by any user, not just the one
that installed it.
Changed the default window title from the pathname of the session
to just the session name.
Changes in wc3270 3.3.7p2, 15. January 2008
Bug Fixes:
Fixed an embarrassing problem that kept wpr3287 from
starting.
Changes in wc3270 3.3.7, 25. December 2007
Bug Fixes:
Fixed line-drawing characters.
Enabled IPv6 support for Windows XP and later.
Set the input code page correctly, so that keyboard input works
correctly when there is a mismatch between the default Windows code
page and the code page implied by the wc3270 character set option.
New Features:
Added limited support for Windows 98. wc3270 will install and run on
Windows 98, but internationalization support is limited -- the only
supported host code page is 37, and the only supported Windows code
page is 437. This is expected to improve in the future.
Added a wc3270.highlightUnderline resource to control
highlighting of underlined and blinking text. (Set to false to
disable background highlighting.)
Moved session files, keymaps and trace files to the Application
Data directory. (wc3270 will still look in its installation
directory for session files and keymaps, after first searching the
Application Data directory.)
This makes wc3270 a better Windows citizen in general, and a
better Vista citizen in particular.
Added support for changing the color mappings. The console color
for a given host color can be specified with the resource
wc3270.consoleColorForHostColorn, where n is a
host color number (0 through 15), and the value of the resource is a
console color number (0 through 15).
In addition, the
field-attribute-based colors used when the host does not specify a
particular color can be changed via the following resources:
The value for each of these is a host color number; the actual color
displayed is defined by the corresponding
wc3270.consoleColorForHostColorn
resource.
Added a new cp1153 character set.
It implements host code page 1153 and uses Windows code page 1250,
used primarily in Central Europe.
Added display of the Windows code page to the character set
screen in the New Session Wizard.
Added display of the host and Windows code pages to the show
status command.
Changes in s3270 3.3.7p8, 28. August 2008
Bug Fixes:
Corrected the buffer addressing mode logic for oversize screens.
Changes in s3270 3.3.7p7, 4. July 2008
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Bug Fixes:
Corrected a bug which sometimes left the local file open after a
failed file transfer.
Changes in s3270 3.3.7, 25. December 2007
Bug Fixes:
(none)
New Features:
Added UTF-8 support. If the current locale specifies UTF-8 encoding,
then all text output (trace data, screen snapshots, the Ascii
and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and
all text input (arguments to the Key and String actions,
etc.) must be UTF-8 encoded.
In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
NOTE: If you were were previously running s3270 in a
UTF-8 locale, this is an incompatible change.
To ensure the previous behavior, set your locale to C before
starting s3270.
Changes in tcl3270 3.3.7p8, 28. August 2008
Bug Fixes:
Corrected the buffer addressing mode logic for oversize screens.
Changes in tcl3270 3.3.7p7, 4. July 2008
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Bug Fixes:
Corrected a bug which sometimes left the local file open after a
failed file transfer.
Changes in tcl3270 3.3.7p3, 22. February 2008
Bug Fixes:
Fixed a problem with non-ASCII characters returned by the Ascii
command.
Fixed a problem with the Connect command, which resulted in
subsequent actions not blocking properly.
Changes in tcl3270 3.3.7, 25. December 2007
Bug Fixes:
(none)
New Features:
Added UTF-8 support. If the current locale specifies UTF-8 encoding,
then all text output (trace data, screen snapshots, the Ascii
and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text
input (arguments to the Key and String actions, etc.) must
be UTF-8 encoded.
In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
Changes in pr3287 3.3.7p8, 28. August 2008
Bug Fixes:
Fixed the interpretation of SCS CR characters.<\li>
Changes in pr3287 3.3.7, 25. December 2007
Enhancements:
Added proxy support via the -proxy option.
Changes in wpr3287 3.3.7p8, 28. August 2008
Bug Fixes:
Fixed the interpretation of SCS CR characters.<\li>
Changes in wpr3287 3.3.7, 25. December 2007
(none)
Changes in x3270 3.3.6, 23. June 2007
Bug Fixes:
Fixed the highlighted attribute for individual regions of the
screen (versus the highlighted field attribute); it had been
accidentally disabled.
New Features:
Added support for IBM Code Page 1047 (-charset cp1047).
Added proxy support via the -proxy option or the proxy
resource.
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Pseudo-Color mode is no more.
This was the mode that x3270 used when a 3278 model was specified, or
if the m3279 resource were set to False.
Pseudo-Color assigned colors to regions of the screen based on
intensity and light-pen selectability, and did not support 3279 colors.
Now turning off color or selecting a 3278 results in something that
looks like a 3278 (i.e., it's green).
To resurrect Pseudo-Color mode, set the following resources:
x3270.inputColor: orange
x3270.boldColor: cyan
Changes in c3270 3.3.6, 23. June 2007
Bug Fixes:
The code now builds with ICU 3.6.
Got local process (-e) support to work again.
Fixed -mono -allbold mode.
c3270 now paints the entire screen, not just the areas it
intends to use, so there are no uninitialized regions.
New Features:
Added support for IBM Code Page 1047 (-charset cp1047).
Added proxy support via the -proxy option or the proxy
resource.
Added support for the 3270 background color attribute.
Added more mappings to the 3270 default keymap (IC ->
ToggleInsert, Ctrl<Key>U -> DeleteField,
etc.).
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Like x3270 and wc3270, -model 3278 now
specifies a green-screen 3278 (if the terminal supports color), and
like x3270, -mono specifies that any color capabilities
reported by the terminal should be ignored.
Changes in wc3270 3.3.6, 23. June 2007
Bug Fixes:
Restored line-drawing character support.
Restored background color support in NVT mode.
Corrected some screen rendering issues.
Fixed screen trace (-set screenTrace).
Removed the -mono option and mono resource.
New Features:
Added the Spanish character set, CP 284.
Added proxy support via the -proxy option or the proxy
resource.
Added support for setting the window title, either automatically,
or via the -title option or wc3270.title resource.
Added gray background highlighting of underlined and blinking
text.
Windows consoles don't support these attributes, but at least
they can be distinguished from other text now.
Added background color support in 3270 mode.
Added a window to monitor trace output.
Greatly improved key event tracing.
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Changes in s3270 3.3.6, 23. June 2007
Bug Fixes:
The code now builds with ICU 3.6.
Removed the -mono option and mono resource.
New Features:
Added proxy support via the -proxy option or the proxy
resource.
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Changes in tcl3270 3.3.6, 23. June 2007
Bug Fixes:
The code now builds with ICU 3.6.
Removed the -mono option and mono resource.
New Features:
Added proxy support via the -proxy option or the proxy
resource.
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Changes in wc3270 3.3.5p9, 10. June 2007
Bug Fixes:
The shortcut cursor size property is now obeyed.
The -model 3278 option now works correctly.
New Features:
Added secure connection status to the status line and the
show status command.
Reverse video is now supported.
Added support for IBM Code Page 1047 (-charset cp1047).
Added a keymap tutorial to the documentation.
Changes in wc3270 3.3.5p8, 29. April 2007
Bug Fixes:
Fixed a hang when wpr3287 exits unexpectedly.
Improved behavior when input comes from multiple sources, such
as when pasting text.
Greatly improved screen update speed.
New Features:
Added wpr3287 support back to the wizard. It was in the
GUI version, but was never in the text version.
Integrated new back-end printer support in wpr3287,
including a new wc3270.printer.name resource.
Added a Paste() action, mapped to Ctrl-V, to do multi-line
paste properly.
Added a .wc3270km suffix to keymap files.
Added keymap support to the wizard.
Added interactive prompting to the Transfer() action.
Changes in wpr3287 3.3.5p8, 29. April 2007
New Features:
Added direct support for Windows printers, instead of relying
on the DOS PRINT command.
This included changing the -command option to a -printer
option, to specify the Windows printer to use as a back end.
Changes in x3270 3.3.5p6, 7. April 2007
Bug Fixes:
x3270 will now build with ICU 3.6.
A long-standing screen update bug is finally fixed.
The unused x3270hist.pl script is no longer installed.
Changes in c3270 3.3.5p4, 7. April 2007
Bug Fixes:
c3270 can now be built without File Transfer support.
The unused x3270hist.pl script is no longer installed.
Changes in wc3270 3.3.5p3, 2. March 2007
Bug Fixes:
Reverted the wc3270 New Session Wizard to the non-GUI version, because
the GUI version, built with Microsoft Visual C++ 2005
Express Edition, had too many dependencies (latest service pack,
.NET framework) on the target machine.
Changes in wc3270 3.3.5p2, 16. February 2007
Bug Fixes:
Ensured that the desktop shortcuts specify Lucida Console, so
non-ASCII-7 characters are displayed properly.
New Features:
Added a file association for the .wc3270 suffix.
Replaced the console version of the New Session Wizard with a
proper GUI version.
Changes in wc3270 3.3.5p1, 6. February 2007
Bug Fixes:
Added the working directory to the desktop links created by the
setup program.
New Features:
Added printer session (wpr3287) support.
Changes in x3270 3.3.5, 1. February 2007
Bug Fixes:
Fixed a crash when the user's home directory or the ~/.x3270connect
file wasn't writable.
Fixed some endcases when pasting text that wraps lines and a field
skip is encountered.
Fixed the handling of SI characters in cut/pasted text.
Allow the use of ICU version 3.0 or greater.
Fixed a scripting hang when the host disconnects during
Wait(output)).
Turned the unlockDelay option back on by default.
Fixed a problem where unlockDelay could result in the
keyboard never unlocking, if the host unlocked the keyboard
often enough.
Added a workaround for very old snprintf()
implementations.
Fixed a problem with DBCS input corrupting existing DBCS
subfields.
Fixed a problem with the Wait action in the expect glue.
(Thanks to Jason Howk for the fix.)
Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
Fixed a SIGCHLD handler issue on AIX.
Fixed a problem with CR/LF translation on ASCII file transfers.
New Features:
Added a -socket option to x3270, s3270 and c3270 to allow a
script to connect to a Unix-domain socket to control the emulator, and
added a -p option to x3270if to connect to the socket.
Added optional support for plugins, with a first plugin to
implement command history on VM/CMS and TSO hosts.
Allow arbitrary color names (#rrggbb) to be used in color
schemes.
Added support for hierarchical macro menus.
Added an XkSelector resource to allow transparent
support of non-English keyboards.
Added preliminary support the 16-bit display fonts and the Persian
character set.
Added Title and WindowState actions to allow the x3270
window title and icon state to bw changed respectively.
Changes in x3270 3.3.4, 10. April 2005
Bug Fixes:
The code once again builds on Cygwin and other systems not supporting
IPv6.
The -xrm option works again in x3270.
The -name X Toolkit option works with x3270, though
not yet with app-defaults files.
Removed spurious 'no child' error messages from pr3287 on some
systems.
Removed unintended blank-line suppression from the output of
PrintText html string.
Restored some missing keymap definitions (rlx, ow)
and some missing lines from other keymap definitions (apl).
Restored the automatic keyboard unlock delay when processing a
macro or string. This allows macros and strings with embedded AID
sequences to work with hosts that unlock the keyboard before they
finish processing a command. Scripts are presumed to be able to
figure out when the host is finished, or can set the unlockDelay
resource to true get the delay all the time.
Fixed an apparent hang (actually just extreme slowness) when the
host sends a message larger than 4 Kbytes on an SSL tunnel.
Removed spurious 'Wait timed out' errors in the Wait
action.
New Features:
Added a newer, more flexible version of Don Russell's RPQNAMES
support.
Added support for IPv6.
Added an oldclick keymap to restore the pre-3.3 mouse click
behavior.
Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005
Bug Fixes:
Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to
less than 4 MBytes. This was a bug in how compiled-in app-defaults
files were generated.
Got separate app-defaults files (configure --enable-app-defaults)
to work again.
Fixed a crash when a login macro is used in NVT mode or when the
host un-negotiates TN3270E mode.
Fixed the titles of the Copyright and Configuration pop-ups.
Temporarily disabled the RPQNAMES Query Reply. It was causing IBM
QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES
1 to conf.h. Hopefully a proper fix can be found shortly.
New Features:
Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004
Bug Fixes:
The Transfer() action did not work at all -- it generated
(null) as the name of the IND$FILE command.
Also improved its behavior when invoked from a script or macro in
x3270 and c3270.
Corrected the definition of the hebrew (code page 424)
character set, removing undefined characters.
Corrected the display character set for the brazilian (code
page 275) character set.
Corrected the character set definition logic so that undefined
ASCII codes are truly undefined in NVT mode.
Corrected the ibm_hosts file (the hostsFile resource
or the -hostsfile option).
Variable and tilde substitution are now performed on the value, and if
a non-default value is specified and the file does not exist, an error
pop-up is generated.
Added a pause to make sure that c3270 start-up error messages will
be seen.
Got the c3270 default field colors right, and made all-bold mode
actually make all the fields bold.
Fixed the default primary/alternate screen size (it was alternate,
it's supposed to be primary).
Fixed c3270 color support with ncurses and 80/132 screen-size
switching.
Sometimes only one of the screen sizes had color.
Fixed a memory leak in pr3287 when the -reconnect option
is used. (Thanks to Marcelo Lemos for the fix.)
Fixed the output of NVT-mode ANSI line-drawing characters in the
Ascii() scripting action.
These were formerly all output as blanks; now they are output in
the same was as x3270 3.2.
Fixed the display of NVT-mode ANSI line-drawing characters when
x3270 is using a 3270 font.
Fixed the display of DBCS blanks, which sometimes displayed as
'undefined' characters.
Fixed DBCS character display with fonts whose maximum bounds are
larger than their reported line-spacing bounds.
Fixed make depend.
Fixed x3270_glue.expect, which got confused when there was
a whitespace-delimited double-quote in the emulator output.
Fixed crashes when the entire File or Options menus were suppressed.
Fixed a scripting hang when an UNBIND command arrived while an AID
was pending.
Fixed a problem with the incomplete processing of a NULLing Program
Tab order, which could leave formatting artifacts on the screen.
Removed <subchar1> clauses in two of the .ucm files
that prevents later versions of ICU's makeconv from accepting
them, and removed DOS carriage-return characters from the CP837
.ucm file.
Corrected some DFT-mode file upload problems: corrected the data
length, and corrected an empty-buffer problem when the file size was
an even multiple of the buffer size.
Corrected a DBCS conversion problem with ICU 3.0.
Added variable buffer-size support to DFT file transfers.
Corrected a line-drawing character bug in c3270.
Fixed a buffer overflow problem in the ReadBuffer action.
Fixed garbage characters generated for APL data by the Ascii
and ReadBuffer actions.
Allow 0 timeouts in Wait actions.
New Features:
Added command-line options to the pr3287 trace file.
Added support for dead keys (acute, grave, circumflex, tilde,
diaeresis) to the x3270 default keymap, and improved the Latin-1 compose
map. (Thanks to Marcelo Lemos for the change.)
Added new actions for improved mouse interactions, and made them the
default. Button 1 now moves the cursor, without the Shift key.
Added support for DBCS in pr3287, but only when started from an
x3270 or c3270 session.
Added Don Russell's RPQNAMES support.
Removed Minolta-copyrighted 5250 code, because of licensing
problems.
Added an aidWait toggle to allow AID script actions
(Clear, Enter, PA and PF) to complete
immediately without waiting for the host to unlock the keyboard, and a
Wait(Unlock) action action to block a script until the keyboard
is unlocked, regardless of the state of the new toggle.
Removed the old scripting hack that delayed actually unlocking the
keyboard for 50ms after the host indicates that it should be unlocked.
Added an unlockDelay resource, which can be set to true to
turn the delay hack back on.
Added a dftBufferSize resource to set the default DFT
buffer size.
Added an x3270 Save Screen Text menu option to save the
screen image in a file, optionally in HTML.
Added options to the PrintText action to save to a file, to save HTML,
and to return the text as script data.
Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003
Bug Fixes:
Corrected an x3270 screen-redraw crash when using fixedSize
and xim.
Corrected a problem in x3270_glue.expect, which caused
Tcl syntax errors if a string began with a dash. Thanks to David
Taylor for the fix.
Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS
character set.
Made DBCS encoding recognition automatic wherever possible, leaving
the -km option for cases when x3270 can't figure it out from the
locale.
Made c3270's configure more robust when it can't find one or
the other of libncurses or ncurses.h.
Got automatic pr3287 start-up (-printerlu) working again in
c3270.
Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much
useless.
New Features:
Added support for Cyrillic keysyms to the x3270 Default()
action.
Added an 'unlocked' icon for unencrypted connections, if x3270 is
built with SSL/TLS support.
Error messages are now written to the trace file.
The response to the TELNET TIMING MARK option has been changed to
make it compatible with the majority of TELNET clients.
The response to DO TIMING MARK is now WONT TIMING MARK.
To restore the previous behavior (responding with WILL TIMING MARK,
originally derived from the BSD TELNET client), set the resource
x3270.bsdTm to true.
Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003
Bug Fixes:
Made nondisplay fields invisible to the Ascii() action.
Corrected start-field values at the beginning of data stream traces
and in the 3270 Read Buffer response.
Corrected a tight loop in the macro error cancellation logic.
Corrected a crash when connecting to a host and there is no menu
bar visible.
Corrected x3270 crashes in monochrome mode (-mono) and
pseudo-color mode (-model 3278).
New Features:
Added a ReadBuffer() action to dump the entire contents of
the 3270 buffer, including field attributes and extended attributes.
Added support for suppress resources for each menu item.
If set to True, that menu item will not appear.
Added a suppressActions resource, a list of the names of
actions to disable. This is primarily for controlled environments where
the user does not have access to the x3270 command line, but can
edit keymap definitions.
Added a Setverbose function to x3270_glue.expect
to allow verbosity to be changed on the fly.
(Courtesy of David Taylor.)
Added the ability to define resources in an environment variable,
$X3270RDB. The environment variable overrides values set in
the profile file, but is overridden by command-line options.
Added a fixedSize resource to force the x3270 main
window to a particular size. fixedSize has the form
widthxheight, in pixels.
The 3270 display will float in the center of the window, if need
be.
Added a new x3270 keypad position (x3270.keypad):
insideRight. This positions the keypad on top of the upper
right-hand corner of the x3270 window, just under the keypad
button on the menu bar.
Changes in pr3287 3.3.1alpha10, 10. August 2003
Enhancements:
Added support for the -tracedir option, to specify a directory
to store trace files in.
Added support the the -eojtimeout option, to automatically
flush any pending print job after a specified period of inactivity.
Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003
Bug Fixes:
DBCS character set names are displayed in the x3270
Options->Font menu only when DBCS support is built into x3270.
Removed the concept of 'per-host' resources. Use profiles for
this.
Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8
and 3.2.20.
Fixed a Unicode conversion crash.
Fixed a bug in processing the Modify Field order, which would cause
the character set attribute for the field to be accidentally reset to
the default.
New Features:
x3270 user-specified lists (character sets, hosts, fonts,
color schemes) can now be organized into sub-lists.
The name Bob>Fred>Tony specifies that there is a sub-list called
Bob, which contains a sub-list Fred, which contains the
item Tony.
The TELNET START-TLS option is now supported.
Changes in pr3287 3.3.1alpha9, 30. July 2003
Bug Fixes:
Ignore SIGINT in the print job process, so that killing an
interactive pr3287 with ^C won't cause buffered data to be lost.
Fixed a problem with losing a byte of data after an SHF order.
Fixed the SCS HT order, which was completely broken.
Enhancements:
Added support for SIGUSR1 to flush the print job.
Added support for the TELNET START-TLS option.
Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003
Bug Fixes:
Builds cleanly on Linux with -Wall -ansi -pedantic.
Builds without OpenSSL libraries being present.
Correctly records Field Attributes in the initial screen snapshot
in a Data Stream Trace file.
Auto-Skip fields work properly.
"Dead" positions in DBCS fields are handled correctly.
Invalid host DBCS characters are handled better and are displayed
in the Data Stream Trace file.
The Erase action now works properly with DBCS characters.
The x3270 Visible Control Characters toggle now works
properly.
The EBCDIC notsign '¬' can now be entered in c3270 with
Ctrl-A, ^ (it formerly caused an error message).
New Features:
The Erase action is now the default for the BackSpace
key in x3270.
Ctrl-A, a is now mapped onto the Attn action in the
c3270 default 3270 keymap.
Four more Japanese host code pages have been added: 930, 939, 1390
and 1399. This uses new support for combined SBCS/DBCS code pages.
Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003
Bug Fixes:
(Same as x3270 3.2.20)
New Features:
DBCS support for Simplified Chinese and Japanese, including x3270
integration
with XIM.
Tunneled SSL support added (entire Telnet session inside of an SSL
tunnel).
Uses the OpenSSL library.
Toggled with an 'L:' prefix on the hostname.
A Visible Control Characters toggle replaces x3270's
3270d Debug Font.
About x3270 pop-up split into three smaller pieces.
If you have a problem building, installing, or running c3270, please browse
through this file first.
General Questions
Am I allowed to use it?
Yes. Full copyright information is in the
Lineage file, but the gist
is that anyone is free to use the code, and anyone is free to sell copies
of the code.
You are also free to modify it and to redistribute it, provided you
preserve the existing copyright notices.
Why are notsign characters (and other accented characters) displayed as
blanks or strings of garbage?
The most common cause of this is a problem with locales, in particular, the
codeset (LC_CTYPE) in use.
There could be a mismatch between the locale that the c3270
process is using and the locale supported by the terminal hardware or
terminal emulation software that c3270 is running on.
For example, c3270 may be running in a locale that uses UTF-8
encoding (e.g., en_US.UTF-8), while the terminal it is running on does
not support UTF-8.
Or it may be running on a terminal emulator (xterm,
gnome-terminal that is running in a non-UTF-8 locale, such as
en_US.ISO8859-1.
Use the show stats command at the c3270< prompt to
display the locale codeset that the c3270 process is using.
Note that the locale conflict can easily arise when c3270 is run on
a remote host, e.g., in an ssh session.
The remote host (where the output is being generated) and the local host
(where the output is being interpreted and displayed) can often have different
default locales.
It is also possible that c3270 was built without UTF-8 support.
In order to support UTF-8, c3270 must be built with an ncurses
or curses library that supports wide characters.
The show stats command will also indicate whether or not c3270
supports UTF-8.
Getting Help
If you are still having a problem with c3270, feel free to send e-mail to
Paul Mattes, Paul.Mattes@usa.net
No guarantees are made about responses to
particular problems, but a patches are usually forthcoming in a few days.
It will also get you on an x3270 mailing list, which also includes
information on c3270, and where you can find out about new releases and
bug fixes.
When you send a question about c3270, please include the following
information. It makes it much easier to narrow down the problem.
The version of c3270 you are using, including all patches, e.g.,
"3.3.6p1".
What kind of machine you are running on, e.g., "Sun SPARC-10".
What operating system you are running, and what version, e.g., "SunOS
4.1.3_U1" or "Irix 5.2". The "uname -a" command will usually provide
this information.
Complaints, suggestions, requests for enhancements, and porting experiences
are also welcome. Code changes for bug fixes and enhancements are also
welcome, provided that you don't mind your code being placed (often
anonymously) under the x3270 license.
suite3270-3.6/c3270/html/Intro.html 0000664 0000765 0000765 00000001662 13221577163 014664 0 ustar pdm pdm
c3270 Introduction
c3270 Introduction
c3270 is a curses-based IBM 3270 terminal emulator. It can be used to
communicate with any IBM host that supports 3270-style connections over TELNET.
It can also communicate with hosts that use line-by-line ASCII mode to do
initial login negotiation before switching to full-screen 3270 mode.
c3270 emulates one of four models of an IBM 3278 or 3279 terminal. The
difference between the various models is the screen size. The emulation is
not quite complete; c3270 understands extended field orders but does not
implement some of the extended attributes (outlining, extended validation,
etc.).
suite3270-3.6/c3270/html/Lineage.html 0000664 0000765 0000765 00000004476 13221577163 015143 0 ustar pdm pdm
c3270 Lineage
c3270 Lineage
Here is the official copyright notice for c3270 3.3.
It is a standard 3-element BSD license.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff
Sparkes, GTRC nor the names of their contributors may be used to endorse
or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF
SPARKES AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL,
DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
suite3270-3.6/c3270/html.m4 0000664 0000765 0000765 00000006422 13221577163 013144 0 ustar pdm pdm dnl Copyright (c) 2000-2013, Paul Mattes.
dnl All rights reserved.
dnl
dnl Redistribution and use in source and binary forms, with or without
dnl modification, are permitted provided that the following conditions are met:
dnl * Redistributions of source code must retain the above copyright
dnl notice, this list of conditions and the following disclaimer.
dnl * Redistributions in binary form must reproduce the above copyright
dnl notice, this list of conditions and the following disclaimer in the
dnl documentation and/or other materials provided with the distribution.
dnl * Neither the names of Paul Mattes nor the names of his contributors
dnl may be used to endorse or promote products derived from this software
dnl without specific prior written permission.
dnl
dnl THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED
dnl WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
dnl EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dnl SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
dnl TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
dnl PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
dnl LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
dnl NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
dnl SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
dnl
dnl Man page macros in m4, produces html output
changequote(<,>)dnl
define(XX_POSESSIVE,$1's)dnl
define(XX_DQUOTED,``$1'')dnl
changequote(`,')dnl
changecom()dnl
define(XX_TH)dnl
define(XX_XL,`translit($1,` ()/',-)')dnl
define(XX_XR,`$1 ')dnl
define(XX_SH,`dnl
divert(1)dnl
XX_XR($1)
divert(2)dnl
divert(3)dnl
This HTML document and the accompanying troff document were generated with
a set of write-only m4 macros and the powerful vi editor.
Last modified XX_DATE.
divert(2)dnl
There is also a hypertext version of the
c3270 man page,
and of the man pages for x3270-script
and x3270if.
Please read Build before going ahead and building
the program. Also, if you
have a problem, scan through FAQ; there are lots of
interesting answers there.
Updates to c3270, as well as the current status of development and bugs, are
available from the x3270 Web Page.
Feel free to send comments, criticism, suggestions, complaints, etc., to Paul
Mattes,
Paul.Mattes@usa.net.
Requests will be addressed as time and resources permit.
There is also an x3270 mailing list, which also includes information about
c3270, and which receives news about new releases.
You can subscribe to this list
here.
suite3270-3.6/c3270/html/ReleaseNotes.html 0000664 0000765 0000765 00000327333 13221600611 016151 0 ustar pdm pdm
c3270 Release Notes
Caveats and Known Issues for x3270, c3270, wc3270, s3270, ws3270, tcl3270, pr3287 and wpr3287 3.6
Linux
Unity's Terminal app will intercept a number of keys (such as F1) that
c3270 needs for 3270 operations. The easiest way to prevent this is to create
a profile for c3270, with Shortcuts disabled (from the taskbar, select
Preferences from the Terminal menu, then go to the Shortcuts tab and un-check
Enable shortcuts). You can also disable or remap individual shortcuts
if you find the others useful.
Windows
Under Windows 10, the console windows that wc3270 runs in will intercept
mouse clicks and certain control keys needed by wc3270 for correct operation.
To prevent this, you must explicitly disable several console window options
for each wc3270 window. Click on the terminal icon in the upper left
of the wc3270 window and select Properties. Select the Options tab, and look
for the Edit section. Uncheck Quick Edit Mode and Enable Ctrl
key Shortcuts.
MacOS
When running c3270 in a Terminal window, the Backspace key performs the
Delete() action (deleting the character under the cursor) instead of
the BackSpace() action (deleting the character to the left of the
cursor). This is corrected through Terminal's Preferences dialog. Under the
Advanced tab, select Delete sends Control-H.
Changes in x3270, c3270, wc3270, s3270, ws3270, tcl3270, pr3287 and wpr3287 3.6
3.6 is the current development line for the x3270 suite.
Changes in version 3.6ga3, 29. December 2017
[all] Rename the tls resource to startTls, which makes its
meaning much clearer.
[wc3270, ws3270] The x3270if command was not flushing
its output correctly. (Thanks to Kalman Reti for the fix.)
[wc3270, ws3270] PrintText() would sometimes include
junk in the output, if called more than once. This is now fixed.
Changes in version 3.6beta2, 3. December 2017
[wc3270] Added a (hackish) fix for the Windows 10 "Ctrl key
shortcuts" feature that interferes with Ctrl-C, Ctrl-V and F11.
[all] Added support for periodically sending a TELNET NOP to the host,
controlled by a new nopSeconds resource.
[all] Added support for some missing xterm escape sequences.
[all] Made the NVT-mode F1 through F4 keys compatible with xterm, rather
than VT100.
[c3270, wc3270] Turn off the cursor when scrolled back.
[all] Fixed TELNET NEW-ENVIRONMENT behavior to be more compatible with
IBM iSeries hosts.
Changes in version 3.6alpha1, 8. March 2017
[all] Fixed the unlockDelay resource, which was inadvertently
ignored (effectively aways on) for several releases. The value is now
false for s3270, ws3270 and tcl3270, and true elsewhere.
[x3270, c3270, wc3270] Display the host certificate
when the lock icon (x3270) or lock field in the OIA (c3270/wc3270) is
clicked.
[all] An accept name can now be appended to the hostname using =,
e.g., L:myhost.com=myparticularhost.com.
The -disable-ssl configure option now applies to Windows.
[all Windows] Windows cross-compilers are now tested by the configure
script. If they are not found, they will be excluded from the build.
[x3270] Fixed pop-up window and keypad placement issues on the
Unity desktop, and some crashes related to window movement.
[all] Re-enabled the A: host modifier to indicate an NVT-mode host
(equivalent to the -nvt command-line option or nvtMode
resource).
[x3270, c3270, wc3270] Added host certificate
display to the x3270 Connection Status dialog and the c3270/wc3270
Show(Status) action.
[all Unix] Removed explicit support for self-signed host certificates (the
-selfsignedok option and selfSignedOk resource). This is
because the implementation assumed that being self-signed was the only
verification error, while there could be many. To allow self-signed
certificates, disable verification.
[all] Added support for the Y: host modifier to disable host
certificate checking.
[all Unix] Removed support for the IP: form of accepting a name
in a host certificate.
[all Unix] Changed the configure script option to specify the location
of the OpenSSL installation from --with-ssl= to with-openssl=.
[all Unix] Switched MacOS to use Secure Transport instead of OpenSSL.
OpenSSL can still be selected during build with the
--disable-stransport option to the configure script.
[all] Switched to verifying host certficates by default. This can be
disabled by using the -noverifycert opton or by setting the
verifyHostCert resource to false.
[all Windows] Removed SSL configurations from the Visual Studio
project.
[all Windows] Switched Windows SSL/TLS from OpenSSL to the native Windows
Schannel APIs. This allows secure connections without the need to install a
separate set of DLLs.
Changes in version 3.5ga12, 10. September 2017
[all Windows] Removed some items from the Windows installer that
interfered with installing as SYSTEM.
Changes in version 3.5ga11, 26. June 2017
[all] Fixed an issue where the web server would reject requests
containing fields with 1-character-long values.
[all] Improved error reporting for certain cases of SSL/TLS tunnel
set-up failure.
Changes in version 3.5ga10, 16. January 2017
[all] Upgraded Windows to OpenSSL 1.1 and added OpenSSL 1.1 support for
other platforms where available.
[s3270, ws3270] Restored oerrLock as the
default.
[all] Fixed the CloseScript action.
Changes in version 3.5ga9, 26. December 2016
[c3270, wc3270] Fixed display of default attributes in NVT
mode.
[all] Corrected Hebrew and Greek character set defintions.
[all] Corrected echoing of multi-byte characters in NVT line mode.
[wc3270] Allow the -utf8 option to force the Windows code
page to UTF-8.
[wc3270] Use the built-in UTF-8 encoder/decoder when in UTF-8 mode
to allow NVT-mode UTF-8 output to be displayed correctly.
[all] Fixed the missing letter 'Z' in the simplified-chinese (cp935)
host code page.
[x3270>] Fixed the configure script to find X11 headers and
libraries correctly.
[all] Allow Wait(n,Second) to work when disconnected.
[x3270>] Fixed an issue with missed timeouts.
Changes in version 3.5ga8, 9. May 2016
[x3270] Fixed the toggle names saved with the File->Save Changed
Options menu option and when processing the WM_SAVE_YOURSELF
message.
[x3270] Explicitly test for X11, Xt, Xmu and Xaw header files and
libraries in the configure script.
[x3270] Put the dryrun script in the object directory.
[wc3270] Allow Windows VKey codes to be specified in wc3270 keymaps
in hexadecimal with the syntax VKEY-0xnn. This allows unknown
VKeys to be specified. The same syntax is used in traces.
[x3270] Fixed an issue where parameters beyond the second
were ignored in many keymap actions.
[all] Fixed an issue with the Abort action called from scripts.
[all Windows] Always find root_certs.txt in the same directory as the
executable, if not installed.
[all] Validate the parameters to the Transfer() action better.
[pr3287] Fix the configure script so it properly detects
missing OpenSSL header files, even if the OpenSSL library is present.
[all] Limit DFT buffer size to 32767. 32768 causes the host to send 0-byte
buffers.
Changes in version 3.5beta7, 8. March 2016
[wc3270] Fixed a crash in the Session Wizard.
Changes in version 3.5beta6, 25. February 2016
[wc3270, ws3270] Fixed a problem that broke SSL.
[all] Added swedish and swedish-euro as aliases for host
code pages 278 and 1143 respectively.
[all] Changed the keyboard unlock behavior when a BIND-IMAGE is received
from the host. Prior to release 3.3.14, the keyboard would not be unlocked
on a new host connection until a Write was received. In 3.3.14, this was
changed so that the keyboard would be unlocked as soon as a BIND-IMAGE was
received, and in release 3.4, a new host option (B:) was added to
revert to the old behavior. In this release, the old behavior (waiting for
a Write) is the default again. A new resource, bindUnock is added to
enable the new behavior (unlocking as soon as the BIND-IMAGE is received)
when set to true. The B: host option is still supported, as a no-op.
Changes in version 3.5beta5, 15. February 2016
[wc3270] Added crosshair cursor and cursor type to the Session
Wizard.
[all] Added a -connectimeout option and a connectTimeout
resource to specify a shorter timeout for the host connection to complete.
[all Windows] Simplified the installer, removing the option of doing a
per-user install.
[all Windows] Got rid of the wc3270 Application Data directory. The root
certificates file is now in the installation directory. ws3270 and wpr3287
trace files now go into the current directory by default. Session files and
keymaps are now stored in the My Documents\wc3270 folder. When wc3270
is installed, an Upgrade Wizard will automatically copy existing session
files and keymaps to the new location. (The old files will be preserved, but
ignored.)
[all] Made the EraseEOF, Insert, ToggleInsert, Home, FieldEnd and
EraseInput actions clear the insert overflow condition.
Changes in version 3.5alpha4, 15. January 2016
[s3270, ws3270] Added a -minversion option and
minVersion resource to specify a minimum required version. If the
emulator is running an earlier version, it will abort.
[all] Object files (but not yet documentation) are now built in a separate
obj directory with machine-specific subdirectories. Both 32- and
64-bit Windows binaries are always built.
[all Windows] 64-bit executables are now installed on 64-bit Windows
systems. Note that upgrades from 32-bit to 64-bit wc3270 require uninstalling
the 32-bit version first. The installer offers to do this automatically. Note
also that downgrading from a 64-bit version to an older 32-bit version,
without first manually uninstalling the 64-bit version, will cause a mess:
duplicate versions of wc3270 will be listed in Add or Remove Programs,
and uninstalling one of them will half uninstall the other.
There are also now 32-bit and 64-bit versions of the no-install ZIP
file.
[all Windows] OpenSSL 64-bit now builds cleanly on Visual Studio.
[all Windows] Fixed a heap corruption crash when the OpenSSL libraries
are found (even if a secure connections is not in use).
[x3270] Dropped support for xmkmf and imake. x3270 builds and
installs only using autoconf paths now.
Changes in version 3.5alpha3, 11. January 2016
[wc3270] Added SelectLeft, SelectRight,
SelectUp and SelectDown actions to extend the selection area
with shifted cursor keys. Remapped NextWord and PreviousWord to
Ctrl<Key>RIGHT and Ctrl<Key>LEFT respectively.
[wc3270] Added a selection indicator to the window title.
Changes in version 3.5alpha2, 1. January 2016
[all] Fixed Visual Studio 2013 build issues.
Changes in version 3.5alpha2, 1. January 2016
[all] The timeout for Wait can now be specified as a floating-point
number to wait for fractions of a second.
[x3270] Improved resize logic. Window maximize now does something
sensible. Added a Snap Window Size menu option.
[wc3270] Added support for the altCursor toggle, which
if set, changes wc3270 to use an underscore cursor instead of a block
cursor.
[s3270] Fixed an x3270if build problem when libiconv is needed,
plus a build issue that crept in with Makefile.in rationalization.
[all] Added the scriptPortOnce resource and the
-scriptportoncde command-line option to allow only one scripting
connection, after which the emulator will exit.
[all] Removed arbitrary restrictions on the length of script command lines
and on the number of arguments per command.
[all] Allow scripts to issue multiple commands per line.
[all] Synchronize the ReadBuffer action with the
Wait(Output) action, just like Ascii and Ebcdic.
[x3270, c3270, wc3270] Added support for a
crosshairColor resource to allow the color of the crosshair cursor to
be changed. The value is a host color name or index.
Changes in version 3.5alpha1, 10. July 2015
[x3270] Changed the crosshair cursor to a thin purple line, instead
of a reverse-video bar. Extended it into the alternate screen area (if in
primary mode) and into the OIA.
[c3270, wc3270] Added support for a crosshair cursor, using
the crosshair toggle.
[all] Added missing attributes to the ReadBuffer action's output
(background color and input ocntrol) and combined multiple SA orders in
the same buffer location into a single SA order.
[all Windows] Added support for compiling 64-bit Windows executables in
Visual Studio. Switched from VS 2010 to VS 2013. Removed the old nmake
makefiles (use msbuild now for command-line builds).
[all Windows] Switched to the mingw-w64 compiler on Linux and Cygwin.
Made the necessary changes to allow compiling 64-bit Windows executables on
Linux. To build for 64-bit, set the variable WIN64. 32-bit is still the
default.
Changes in version 3.4ga11, Nn. Month 2016
[all] Limit DFT buffer size to 32767. 32768 causes the host to send 0-byte
buffers.
[all] Allow VS2010 builds with spaces in pathnames.
Changes in version 3.4ga10, 1. January 2016
[all] Changed scripts to use /usr/bin/env.
[all] Suspend the idle command while a file transfer is in progress.
Changes in version 3.4ga9, 23. October 2015
[c3270, wc3270] Fixed binary file transfer bug.
[x3270] Fixed missing 'Not Connected' message when disconnecting
from a host.
[all] Fixed trace display of incoming IPv6 connections and the parsing of
the x3270 -scriptport option.
[tcl3270] Added tcl3270 support for Tcl 8.6.
[all] Renamed $INSTALL variable in the top-level configure script
(bugs:15).
Changes in version 3.4ga8, 18. September 2015
[x3270] Fixed a crash in the Configure Idle Command pop-up.
[x3270] Fixed an issue with overwriting local files in file
transfers.
[s3270] Fixed an x3270if build problem when libiconv is needed.
[all] Fixed a problem with truncating the list of LUs when connecting to
a host.
[all] Fixed a crash when too many parameters are passed to an action in a
macro or script.
Changes in version 3.4ga7, 28. August 2015
Fixed a number of warnings found by the MacOS C compiler, which turned
out to be real issues.
[all] Synchronize the ReadBuffer action with the
Wait(Output) action, just like Ascii and Ebcdic.
Changes in version 3.4ga6, 10. August 2015
[all] Fixed an NVT-mode emulation problem.
Changes in version 3.4ga5, 10. July 2015
[all] Fixed a synchronization issue with scripts and file transfers.
[c3270, wc3270] Fixed a crash when the Transfer action was
called from a script.
[x3270] Fixed a crash when visible control characters are turned on
in 3278 mode.
[pr3287] Changed the pr3287 Makefile to use $INSTALL_DATA
(bugs:#13).
[All Unix] Added -D_DEFAULT_SOURCE wherever a Makefile used -D_BSD_SOURCE,
to get rid of compiler warnings with newer versions of glibc
(bugs:#12).
Changes in version 3.4ga4, 16. June 2015
[x3270, c3270, wc3270] Corrected the OIA display of
save-to-printer pages.
[c3270, wc3270] Made the help for file-transfer reflect
the current defaults. Added help for Keymap.
[wc3270] Fixed the pager at the wc3270> prompt. Now it adapts
to the size of the console window correctly.
Changes in version 3.4beta3, 28. May 2015
[pr3287, wpr3287] Fixed a problem with printer session
start-up when both a specific printer LU and an SSL tunnel (L:) are
specified.
Changes in version 3.4alpha2, 15. May 2015
[c3270, wc3270] Added a Keymap action to add or
remove temporary keymaps. The semantics are the same as the x3270 action of
the same name.
[all] Made the parameter to ResumeScript optional, and relaxed the
restrictions on when PauseScript can be used, so it can now be used
from macros and command files read with the Source action.
Changes in version 3.4alpha1, 28. April 2015
[c3270, wc3270] Allow the DFT buffer size to be changed in
the c3270/wc3270 file transfer dialog.
[c3270, wc3270] Allow file transfers to be interrupted
with Ctrl-C.
[x3270] Fixed an issue where the terminal type would not be
reported to the host as IBM-DYNAMIC if the screen was
put into oversize mode via a menu selection (it was correct if oversize came
from a resource). Also
made sure that the 'About->Configuration' display of the terminal type is
always correct.
[all] Added resources to define the default values for each of the
IND$FILE file transfer parameters. The resources have the same names as the
Transfer action keywords, with ft prepended. E.g., the
Mode default is controlled by the ftMode resource. For
consistency, deprecated dftBufferSize and ftCodePage in favor
of ftBufferSize and ftWindowsCodePage (the old resources are
still available).
[all] Added missing functionality to specify the size for avblock
TSO file allocations in IND$FILE file transfers.
[x3270] Added an aplCircledAlpha resource to allow x3270
to properly display APL underscored uppercase letters
with the APL385 font,
by translating them to the (nonstandard) Unicode circled-alphabetic range
U+24B6 to U+25CF.
[x3270, c3270, wc3270] Overhauled visible control
characters so that field attributes are completely decoded. Field attributes
are now in underlined yellow in x3270. Added visible control character
support to c3270 (also underlined yellow) and wc3270 (reverse-video yellow),
with a menu option.
[all] Overhauled the build structure. Now there are libraries for common
functions.
[wc3270] Mapped Alt-left-click onto a lightpen select operation.
Added a lightPenPrimary resource to switch this, so that an unmodified
left-click is a lightpen select and Alt-left-click is a cursor move or
copy/paste highlight.
[all] Added a B: prefix option to hostnames to disable the
automatic keyboard unlock when a BIND-IMAGE is
received.
[all] Added an -nvt option and an nvtMode resource to
force NVT mode as soon as a session is connected. This
overrides the usual
behavior of locking the keyboard and waiting for the host to send
NVT-mode
data or negotiate 3270 mode before unlocking. This option also changes the
default terminal type to xterm.
[c3270] Added a mapping from the Escape key to the Escape()
action (breaking to the c3270> prompt).
[x3270] Added a maxRecent resource to control the maximum
size of the recent host list in the Connect menu.
[wc3270] Added right-click and Enter to Copy, and right-click to
Paste, and Enter to Copy, like Quick Edit mode.
[wc3270] Added a nodialog option to PrintText to
suppress with Windows print dialog.
[wc3270] Added font auto-sizing to GDI screen
printing.
[wc3270] Added Paste with Left Margin menu.
[all] Allow the -scriptport option to specify an address to listen
on.
[all] Added webserver support. The -httpd option starts a webserver
listening on the specified port. The webserver supports a REST
API and some basic HTML objects.
[all] Removed configurability of tracing, NVT mode,
TN3270E support, scripting, menus file transfer, the x3270 pop-up keypad and
printer sessions (they're always enabled now).
[x3270, wc3270] Added an overlayPaste toggle.
When set, pasting over a protected field will simply increment the cursor
position instead of locking the keyboard. This allows forms to be copied and
pasted with the protected fields included. Setting this toggle also
implicitly sets the marginedPaste toggle.
[x3270] Changed the selection logic so that a rectangular
selection (the default for 3270 mode) never ends with a newline character.
Changes in version 3.3.15ga8, 24. December 2014
[x3270, wc3270] Improved paste behavior. Patch courtesy of
Máximo Castañeda.
[all] Added append and replace keywords to the
PrintText action to control how existing files are handled.
[all] Made Wait(Output) work in NVT mode.
[x3270] Fixed security holes in the Print Window Bitmap menu
item and the PrintWindow action.
[wc3270] Fixed multiple GDI printing problems: captions
mis-centered, page overflow with multiple screens per page, "save screens
to printer" not working at all.
Changes in version 3.3.15ga7, 14. December 2014
[wc3270] Fixed some typos in the Session Wizard.
[wc3270] Fixed several issues with Notepad editing of
miscellaneous resources in the Session Wizard.
[wc3270] Allow the printTextOrientation resource to be
specified.
[x3270] Fixed dialog boxes lost behind the file transfer
dialog.
[all] Fixed a crash in the Query action.
Changes in version 3.3.15ga6, 28. November 2014
[wc3270, ws3270] Fixed a bug with the Transfer
action ignoring the BufferSize parameter.
Changes in version 3.3.15ga5, 14. October 2014
[all] Allow file transfers to be started when the screen is unformatted
and includes space characters.
[all] Corrected the documentation for the menuBar resource.
[wc3270] Allow the keyword none to be given to the Session
Wizard editing menu.
Changes in version 3.3.15ga4, 3. October 2014
[all] Fixed a problem with -scriptport connections never being
accepted again after a socket error.
Changes in version 3.3.15beta3, 19. September 2014
[pr3287] Added an -mpp option to set a non-default Maximum
Presentation Position (the maximum line length for unformatted Write
commands).
[all] Corrected the BINARY and NOCRLF options passed to the CICS version
of IND$FILE.
[all] Added a --disable-ipv6 option to the ./configure script to
allow IPv6 support to be explicitly disabled.
Changes in version 3.3.15beta2, 12. August 2014
[all] Changed the IND$FILE command to all-uppercase, to make
certain hosts happier (found by Máximo Castañeda).
[wc3270] Fixed a Cygwin Makefile problem (found by Máximo
Castañeda).
[all] Fixed some zOS/USS build issues (found by Kevin Morris).
Changes in version 3.3.15alpha1, 17. July 2014
[all] Added a newEnviron resource. If set to true (the
default), the emulator will respond to the TELNET NEW-ENVIRON option. If set
to false, it will not.
[wc3270] Fixed a problem where editing an all-users session would
result in copying the session to the current user's AppData directory, and
re-creating the shortcut would point it to the wrong entry.
[wc3270] Added Session Wizard options to copy a session, rename a
session, and create a shortcut for a session.
[all] Fixed several issues with TN3270E options negotiation (thank you to
Máximo Castañeda for pointing these out).
[wc3270] Changed the default directory for trace files from the
wc3270 AppData directory to the current user's desktop. Also fixed a number
of documentation issues in this area.
[all] Added a tls resource. If set to false, TLS
negotiations from the host will be rejected.
[wc3270] Added menu options to start up HTML help and the Session
Wizard.
[c3270] If there is room, added a line (a row of underscored
blanks) between the 3270 display and the OIA.
[wc3270] Changed the menu bar to reverse video.
[wc3270] Added a Cut action, mapped to Ctrl-x. It is the
same as Copy, but it also erases the copied text (in modifiable
fields) when it finishes.
[wc3270, ws3270] Added support for a separate Windows
code page for IND$FILE ASCII file translations, via the ftCodePage
resource and the WindowsCodePage= parameter to the Transfer
action.
[all] Produce a better error message when the host disconnects because the
emulator does not support SSL.
[wc3270] Added a Session Wizard option to turn on tracing at
start-up.
[wc3270] Extended the Session Wizard to present a menu of existing
sessions to choose from, to permit a session to be deleted, and to edit the
free-form settings in the session file with Notepad.
[wc3270] Added automatic resizing of the console window to match
the model number and oversize.
[all] Removed Windows 98 support.
[wc3270] Added Esc as an alias for ESCAPE in keymaps.
[all] List out the toggle names when a -set or -clear
doesn't find a match.
[wc3270] Added support for GDI (direct) printers to the
PrintText() and ScreenTrace() actions using the new gdi
keyword option. Added resources to control GDI printing:
printTextOrientation, printTextHorizontalMargin and
printTextVerticalMargin.
Changes in version 3.3.14ga11, 3. May 2014
[pr3287, wpr3287] Changed the -xtable option so that
the translations are considered transparent data (they are not considered
when checking for line wrap or when skipping ASA carriage control
characters).
Changes in version 3.3.14ga10, 27. April 2014
[x3270] Restored the ability to use the special 3270 fonts with
code page 1047.
[pr3287, wpr3287] Backed out the previous change to ignore
NULLs (they really are supposed to be considered blanks in unformatted Write
commands). Replaced it with a new -skipcc option to ignore ASA
carriage control characters at the beginning of each line; it only applies
to unformatted Write commands.
Changes in version 3.3.14ga9, 13. April 2014
[pr3287, wpr3287] Fixed a problem with misinterpreting
NULL (X'00') characters in unformatted mode as spaces, when they should be
ignored. This caused printer output to be shifted and sometimes wrapped.
[wc3270] Corrected the Copy() action so the space after a
word selected with a double mouse click is not copied to the clipboard.
[all 3270] Fixed a crash when disabling tracing after opening the trace
file fails.
Changes in version 3.3.14beta8, 31. March 2014
[all 3270] Changed the keyboard to unlock when a BIND-IMAGE is received.
This matches the behavior of PCOMM and is consistent with some comments found
on IBM webpages. The net result is that the keyboard will be unlocked (and
scripts may be allowed to proceed) earlier than with previous versions of the
emulators. This is good for talking to hosts that don't send an initial Write
command (as can happen with CICS); previously this Write was the only trigger
for unlocking the keyboard at connect or BIND time. But it is bad if a script
implicitly depended on the old behavior. Scripts confused by this change may
need to add a Wait(InputField) to cover these cases.
[all 3270] Got rid of the E status for keyboard lock in the
scripting prompt. The status is now L (locked) or U
(unlocked).
[all 3270] Added decoding of UNBIND reasons to traces.
[all 3270] Increased the number of situations where keyboard input can
result in typeahead instead of drops.
Changes in version 3.3.14ga7, 8. March 2014
[c3270, wc3270] Corrected a problem where the
trace on command at the c3270> prompt resulted in tracing to
a file named on.
[c3270, wc3270] Reversed the order of keymaps.
User-specified keymaps appear first, with later-specified ones before
earlier-specified ones, so the override relationships are more obvious.
On Windows, this also resolves the rules for ambiguous keymaps -- the first
match wins, given the new ordering rules.
[wc3270] Fixed a problem with printable virtual key events
being interpreted incorrectly, even though they were traced correctly, for
example, Ctrl-Shift-3.
[wc3270] Fixed a problem with the RightCtrl modifier
in a keymap being interpreted as Ctrl.
[wc3270Fixed some man pages that accidentally ended up as html.
Changes in version 3.3.14ga6, 23. January 2014
[all] Fixed a problem with displaying text in NVT mode when the host
does no TELNET negotiation.
[all] Deprecated the dsTrace and eventTrace resources (and
associated toggles and x3270 menu options) and replaced them with a new
single trace resource and toggle. The old resources and toggles are
still available, but are effectively aliases for the new single setting.
Changes in version 3.3.14alpha5, 30. December 2013
[c3270, wc3270] Added screen scrolling (saving previous
screen contents, to be displayed interactively), controlled by the new
Scroll action. Scroll(Backward) (mapped onto PageUp) goes back
one screen; Scroll(Forward) (mapped onto PageDown) goes ahead one
screen. The Reset action cancels scrolling. The -sl
command-line option or scrollLines resource changes the number of
lines saved for scrolling from the default of 4096.
[x3270] Turned the scrollbar on by default. Mapped the PageUp and
PageDown keys to the (new) Scroll action, to scroll up or down one
screen, respectively. Modified the Reset action to cancel any
screen scrolling.
[all Windows] Got everything to build under MSVC again, using either the
command line or MS Visual Studio. A Visual Studio solution file is now
included in the source tarball. Windows targets also cross-compile again with
the latest Cygwin MinGW.
Changes in version 3.3.14alpha4, 21. December 2013
[all] Added a printTextScreensPerPage resource to control how many
screens of text are displayed per page when tracing screens to the
printer.
[all] Corrected screen tracing to the printer so it observes the
printer.name and printer.command resources.
Changes in version 3.3.14alpha3, 16. December 2013
[all, wc3270] Fixed problem with message display during
file transfers initiated by scripts.
[all] Fixed a problem reading files with the Source action, when
the file does not end with a CR or NL.
Changes in version 3.3.14alpha2, 4. November 2013
[all] Added support for CICS IND$FILE file transfers.
Changes in version 3.3.14alpha1, 30. October 2013
[all] Allow file transfers to start when the screen is unformatted.
[all] Fixed a problem with the initial data stream trace snapshot when the
screen is unformatted.
A wrapper function was put around the Windows snprintf function,
to ensure that it always NUL-terminates strings. The lack of such a wrapper
could lead to string overflows in some situations.
[wc3270] Added the ability to install wc3270 for all users or just
for the current
user (the old behavior was just the current user). Also extended the
installer to allow selective installation of various pieces. The Session
Wizard can now create and edit session files and desktop shortcuts for either
all users or the current user, and keymaps can be located in either the
all-users or current user's AppData directory. Trace files are always left
in the current user's AppData directory.
[wc3270] wc3270 Session files are now editable from the Windows
context menu (right-clicking from explorer).
[wc3270] Windows 98 is no longer supported by the wc3270 installer.
This is
because the installer tool used by wc3270 (Inno Setup) no longer supports
Windows 98, not because of any inherent limitation in wc3270. The no-setup
.ZIP file can still be used to install wc3270 on Windows 98 by hand. A
simple Windows 98-specific installer may be added at some point in the
future.
[wc3270] Added native select/copy to wc3270. Just highlight with
the mouse and press Ctrl-C. The Clear action is still available via
Alt-C.
Changes in version 3.3.13ga7, 11. September 2013
[wc3270] Fixed a hang when the wc3270 window was closed on XP.
[all] Fixed connect() failures on MacOS.
Changes in version 3.3.13ga6, 8. September 2013
[all] Corrected a problem with the display of non-display fields
(incorrectly observing the colors and graphic rendition).
[wpr3287] Added the -tracedir option, just like pr3287.
[pr3287, wpr3287] Added tracing of the -xtable
translation table.
[pr3287, wpr3287] Added tracing of the data stream sent to
the printer.
[pr3287, wpr3287] Use the same unique trace file name
convention as the other emulators.
[pr3287, wpr3287] Added a -crthru option to pass
CR orders through to the printer in unformatted 3270 mode, instead of
interpreting them.
Changes in version 3.3.13beta5, 4. September 2013
[wc3270] Added logic to the Session Wizard to automatically correct
old-format UNC printer names, and also fixed some minor bugs in it.
[all] Corrected the CGCSGID for code page 1145 (spanish-euro).
[all] Second try at getting pr3287/wpr3287 shut down and re-launched
correctly.
Changes in version 3.3.13beta4, 23. August 2013
[all] Corrected the start/stop of pr3287/wpr3287 printer sessions, so that
a new one is not started until the previous one has completely exited.
Changes in version 3.3.13beta3, 6. August 2013
[pr3287, wpr3287] Made sure trace files get flushed for each
entry.
Changes in version 3.3.13alpha2, 30. July 2013
[all] Fixed a crash when connecting to certain hosts using an SSL tunnel.
[all except x3270] Fixed a parsing problem for session files and
-xrm options that resulted in doubled backslash characters.
[all] Fixed a crash in the Wait(n,seconds) action.
[wc3270] Made sure that the wpr3287 process is stopped when the
wc3270 window is closed.
[wc3270] Fixed new issues created by the previous Windows 8 process
creation fix.
Changes in version 3.3.13alpha1, 11. July 2013
[wc3270] Fixed some issues with starting Wordpad and wpr3287 on
Windows 8.
[x3270] Combined the various text screen save/print options into
a single menu option, which brings up a dialog box that allows snapshots,
continuous saving, save to text, HTML or RichText or directly to the
printer.
[c3270, wc3270] Added the ability to save a stream of
screens to the printer via a menu option or the new Printer option to
the ScreenTrace action.
[x3270] Added a -secure to simplify invoking secure mode.
[c3270, wc3270] Allow -noprompt mode without a host
specified on the command line.
[pr3287, wpr3287] Added custom translation tables via the
-xtable option.
[pr3287, wpr3287] Made -emflush the default.
Added a -noemflush to specify the old behavior.
[all] Corrected a problem with interpreting the SuppressMap
resource. (Courtesy of Marcin Cieślak.)
[wc3270] Corrected the working directory for auto-shortcut mode.
[all] Added the -accepthostname command-line option and
acceptHostname resource to allow accepting specific names and IP
addresses in host certificates, or any name.
[all] Turned off variable substitution for all actions under certain
circumstances, such as inside macros. It mostly just caused confusion.
[all] Added two pseudo-variables for filename substitutions: ${TIMESTAMP}
becomes a microsecond-resolution timestamp and ${UNIQUE} guarantees that the
filename is unique. Changed the default trace file names to use ${UNIQUE}.
[all] Added a number of keywords to the Query action.
[all] Made the Open (Connect) and Close
(Disconnect) aliases available everywhere.
[s3270, ws3270] Enabled the idle command (the
idleCommand, idleCommandEnabled and idleTimeout
resources).
[all] Added support for code page 803 (hebrew-old).
[s3270, ws3270] Added a -utf8 command-line option and
a utf8 resource to force local I/O to be encoded as UTF-8.
[all] Added a -loginmacro command-line option, and made the
existing loginMacro resource work on x3270.
[wc3270] Made screen printing via PrintText (Alt-P)
asynchronous, so wc3270 can continue processing keyboard events and host
output while the screen print is being prepared.
[s3270, ws3270, tcl3270] Made 3279 (color) mode the
default.
[all] Added output to scripts to the event trace file.
[wc3270, ws3270] Now there is a single wc3270 .exe file and
a single ws3270 .exe file; they each find the OpenSSL DLLs automatically if
they are installed.
Changes in version 3.3.12ga13, 2. May 2013
[c3270, wc3270] Fixed a start-up crash when the tracing is
enabled and the menu bar is disabled.
[all] Added support for the LF (X'25') format control order.
[All] Fixed a number of buffer overflow crashes.
Changes in version 3.3.12ga12, 1. March 2013
[All] Added logic to verify the name in the host certificate.
[All] Pass all SSL-related parameters to the pr3287 session.
[x3270] On the Connect menu, made the recent host list a
pull-right sub-menu, if there is an ibm_hosts file in use.
[x3270] The -trace option now implies event tracing as well.
[x3270] Spaces are now allowed in the file transfer dialog local
file name.
[all] Corrected issues when invalid Unicode characters are encountered
during a file transfer.
[x3270, wc3270] Corrected a crash when tracing without a
file, when the monitor window was closed.
[ws3270] Corrected the behavior of stdin processing, so ws3270 is
not blocked trying to read stdin most of the time. Also fixed an issue where
the scripting prompt would start with E when the keyboard was in
inhibit mode.
[wc3270] Removed a duplicated rule in Msc/Makefile.
[all] Changed the CGCSGID for cp930 (Japanese) 0x080b012c (2059, 300) to
0x0172012c (370, 300).
[wc3270, c3270] Corrected the behavior of the Menu option in
the Session Wizard and the menuBar resource, neither of which worked
correctly.
Changes in version 3.3.12ga11, 23. July 2012
[all] Corrected a problem with not sending the TELNET TERMINAL TYPE when
the TELNET NEW ENVIRONMENT option had been negotiated.
[x3270, c3270] Corrected issues with manual page
warnings.
Changes in version 3.3.12ga10, 8. July 2012
[all] Turned off automatic SSL host certificate verification and added a
verifyHostCert resource and -verifycert option to enable it.
[wc3270] Improved behavior when SSL negotiation fails.
[x3270, c3270, wc3270] Changed the 'secure' icon to green when
SSL/TLS is active and the host is verified, and yellow when SSL/TLS is
active but the host certificate is unverified.
[c3270] Added a defaultFgBg resource and -defaultfgbg
option to use the terminal's default foreground and background colors in
place of the curses colors white and black respectively -- if
the ncurses library, terminal and termcap/terminfo entry support default
color. It is automatically set for gnome-terminal.
Changes in version 3.3.12beta9, 13. February 2012
[all] Added a selfSignedOk resource to allow SSL authentication
with hosts that use self-signed certificates.
Changes in version 3.3.12ga7, 24. August 2011
[wc3270] Improved the Keymap and Build documentation.
[wc3270] Added catf.exe to the no-install zip file.
[wc3270] Added BackSpace as an alias for the BACK
key.
[all] Corrected a buffer overflow problem when starting tracing with
large screen sizes.
[wc3270] Corrected an installation issue with the root certificates
file.
[wc3270] Changed the OpenSSL documentation to refer to the Lite
version of the OpenSSL DLL.
[All but wc3270 and x3270] Made the hostname
resource work as-documented: if it is defined, then the emulator will connect
to that host at start-up.
[c3270] Added a key sequence for screen printing (Ctrl-a,
p).
Changes in version 3.3.12beta6, 4. January 2011
[all] Added support for the TELNET NEW-ENVIRON sub-negotiation, used
to specify the Workstation ID to iSeries hosts, as specified by RFC 4777.
[c3270, wc3270] Corrected a problem with mouse clicks on the
top two lines on the screen.
[all] Included SSL documentation.
Changes in version 3.3.12a4, 8. December 2010
[wc3270] Restored the SSL option in the Session Wizard.
Changes in version 3.3.12a3, 2. December 2010
[All] Completed the options and resources needed for complete OpenSSL
support.
Changes in version 3.3.12a2, 25. November 2010
[pr3287, wpr3287] Added a -ffeoj option to output
a formfeed at the end of each print job.
Changes in version 3.3.11ga6, 19. September 2010
[wc3270] Fixed an issue with non-ASCII text in the Info
command.
[wc3270] Removed junk characters from the top line of model 5
screens.
[pr3287, wpr3287] Corrected an issue with missing newlines
at the end of each formatted 3270 stream Write command.
[pr3287, wpr3287] Modified the -trnpre and
-trnpost options to open the files for each print job, so they can be
changed between print jobs.
Changes in version 3.3.11beta5, 30. July 2010
[all 3270] Improved tracing. Trace entries now include time stamps.
Trace file limits operate much more simply. A trace file name can start
with ">>" to have the data appended to the file.
[all 3270] Allow -scriptport TCP ports to be re-used quickly.
Changes in version 3.3.11beta4, 25. July 2010
[wc3270] Corrected a problem where mouse input would be ignored
after screen printing (Alt-P) or use of the Execute() action.
[wc3270] Added a bellMode resource to allow precise control
of what wc3270 does in response to ALARM WCCs and BELL characters.
[c3270] Fixed a problem with hangs when a connection fails on
recent versions of Cygwin.
[x3270, c3270, wc3270] Added a new token to the
printer.assocCommandLine and printer.luCommandLine resources:
%O% will be substituted with the value of the new
printer.options resource. This allows extra options such as
-emflush to be passed easily to pr3287 and wpr3287
sessions without having to redefine the rather ugly
printer.assocCommandLine and printer.luCommandLine
resources.
[pr3287] Fixed a build issue on platforms that use the iconv
library, such as Macs.
[all] Added a bindLimit resource (default true) to control
whether the screen dimensions specified by the host in a BIND image
will be obeyed.
[wc3270] Fixed the cursor position toggle to turn off correctly.
[c3270 and wc3270] Added a menu option to toggle underscore
mode.
[c3270] Fixed underscore mode to only affect underlined fields.
Changes in version 3.3.11beta3, 7. July 2010
[pr3287 and wpr3287] Added the -emflush option, to
flush pending printer output when an EM order is received in unformatted
3270 mode. This helps preserve multi-page output from hosts that to not
clear the 3270 buffer between pages.
Changes in version 3.3.11beta2, 6. May 2010
[c3270, wc3270] Added a menu bar and pop-up keypad,
usually controlled by the mouse or by the new Menu and
Keypad actions.
[c3270, wc3270] Implemented the showTiming toggle,
to display the time taken for the host to process an AID in the OIA.
[wc3270] Overhauled auto-shortcut mode, so that no shortcut is
needed to run a wc3270 session file.
Changes in version 3.3.10ga5, 6. May 2010
[c3270] Corrected a screen refresh problem when first
connected.
[wc3270] Include the font size and oversize dimensions in the
automatically-generated shortcuts.
[c3270] Allow the 'c3270.printer.command' resource.
[x3270] Fixed a problem with temporary keymaps being cleared when
connecting to or disconnecting from a host.
[x3270, c3270] Corrected some APL characters that were
not displayed correctly with Unicode fonts.
[all] Corrected operation on EBCDIC-based hosts.
[all] Corrected the behavior of hostname prefixes such as L:,
which were "sticky", i.e., once set they would be set for all future
connections.
[all] Corrected the reported CGCSGID for code page 1147
(french-euro).
[all except x3270] Disabled the Query Reply report for background
color support, which confused some older versions of GDDM. This report can
be explicitly enabled by setting the qrBgColor resource to
true.
[all] In oversize mode, changed the terminal type to IBM-DYNAMIC.
Changes in version 3.3.10ga4, 2. October 2009
[all x3270] Improved the File Transfer summary display.
[all x3270] Removed the keyboard lock when processing an Enter AID in
SSCP-LU mode.
[x3270] Fixed a build problem when DBCS support is disabled.
[c3270] Made the special keymap key names (e.g., PRINT)
case-insensitive.
[c3270] Fixed a problem with keyboard input in ISO 8859
locales.
[x3270] Increased the maximum number of fonts scanned to
50000.
Changes in version 3.3.10ga3, 15. September 2009
[x3270] Fixed some bugs in the xmkmf-free build.
Changes in version 3.3.10alpha2, 10. September 2009
[c3270] Added the ability to move the 3270 cursor with the mouse,
if the terminal supports it. Add a Mouse resource, which can be
set to False to disable it.
[all 3270] Added a Translate keyword to the Transfer
action's parameters and an additional question to the interactive
c3270/wc3270Transfer dialog, to allow the automatic
remapping of text (usually done to get the most accurate translation)
to be disabled.
Restored the pop-up window that displays trace files.
Changes in version 3.3.10alpha1, 3. September 2009
[3270] Allow the program to be built without xmkmf.
[all 3270] Fixed the mapping of EBCDIC X'FF' to U+009F in ASCII-mode
file transfers.
[all 3270] Fixed a crash in CUT-mode binary file sends, and corrected the
local fopen() flags when receiving a binary file.
[x3270] Added the APL up- and down-arrow characters (↑ and
↓) to the 12-point fonts (thanks to Paul Scott for the fix).
[all 3270] Script comments are now allowed (any input line beginning with
# or !).
[wc3270] Added support for the Enhanced keymap modifier
(EnhancedReturn is the keypad Enter key. Also added Enter,
PageUp and PageDown as aliases for the Windows keys RETURN,
PRIOR and NEXT.
[wc3270] Added oversize, font size and background color
support to the Session Wizard.
[x3270] Fixed a problem with ignored -set and -clear
options.
[c3270 and wc3270] Added support for the
-oversize auto option, which allows the emulator to use the entire
area of the terminal or console window it is running in.
[x3270] Removed the huge delay at start-up.
[x3270, c3270, s3270 and wc3270] Added support
for TCP-socket-based scripting via the -scriptport option. For
wc3270, this is the first time that scripting has been available.
[all 3270 except x3270] Added support for the screenTraceFile
resource.
[all 3270] Fixed a file descriptor leak with the -socket option.
[all 3270] Fixed a crash with the Toggle action and undefined
toggles.
[wc3270] Implemented no-install mode (allowing wc3270 to run
without installing the software) and auto-shortcut mode (where wc3270
automatically creates a temporary shortcut file to match a session file and
runs it).
[all 3270] When a hostname resolves to multiple addresses, try each until
one works.
[all 3270] Corrected an issue where the keyboard would lock on the first
screen when connecting to hosts like Hercules.
[wc3270] Added mappings of the Page Up and Page Down
keys to PF(7) and PF(8) respectively.
[wc3270, ws3270] Removed the .dll files from the
distribution.
[c3270] Corrected an issue with cursor and function keys not
being recognized if they are the first key pressed.
[all 3270] BIND image screen sizing is now observed.
[pr3287 and wpr3287] Corrected the -charset
documentation on the manual page.
[all 3270] Resurrected flipped-screen mode via the Flip and
ToggleReverse actions.
[all 3270] Added a Seconds form to the Wait action,
allowing a script or macro to delay itself an arbitrary length of time.
[wc3270] Modified the PrintText action so that
Wordpad is started minimized.
Changes in version 3.3.9ga11, 25. March 2009
[x3270 and c3270] Re-enable the ibm_hosts file
(it was accidentally being ignored).
[all but wc3270] Don't crash when there is no iconv
translation for the locale codeset.
[all but x3270] Fixed a build failure in glue.c when DBCS was
disabled.
[wc3270] Corrected the default keymap so that the uppercase
versions of the Alt mapping also work.
[wc3270] Corrected the documentation of the
printTextFont and printTextSize resources.
[c3270] Corrected a number of errors in parsing
CursesColorForxxx resources.
[c3270] Added support for -rv, which puts c3270 into
black-on-white mode.
[c3270] Added support for 16-color terminals, with the
-color8 option overriding this and forcing 8-color support only.
On a 16-color terminal, -allbold is no longer the default.
[c3270, wc3270, s3270 and tcl3270] Ensured
that command-line parameters override session files.
[c3270] Made session files replace profiles, rather than just
overriding any common definitions. This is more intuitive and consistent
with x3270.
Changes in version 3.3.9ga11, 27. February 2009
Common Changes
Improved hostname parsing. Now backslashes can be used to quote
any character, and square brackets can be used to quote any element (LU name,
host name, or port).
Fixed a number of compiler warnings from newer versions of gcc and a
number of small memory leaks.
Overhauled the host code pages and CGCSGIDs for DBCS. Added
sbcsCgcsgid and dbcsCgcsgid resources to override the
compiled-in values.
Added a caption text option to the PrintText
action, which will place the specified caption above the screen image.
Within the text, the string %T% is interpolated to a timestamp.
Improved the state dump when tracing starts to include NVT and
SSCP-LU state and the SNA BIND image.
Updated the copyright and licensing notices (now a standard BSD
license).
Added support for carriage-return (0x0d) characters in the
String action, which imply the Newline action.
Changed the Attn action so that it sends an IAC
BREAK in TN3270 mode, and locks the keyboard in TN3270E mode when the
session is not SNA bound.
Added Traditional Chinese (host code page 937) support.
Extended the String action's \e and \x sequences
to accept 4-digit hex values, thus allowing EBCDIC DBCS input and arbitrary
Unicode input. Also added \u as an alias for \x.
Changes to x3270
Fixed a crash when pasting an empty selection.
Made the Query Reply response for x3270 identical to the other
tools.
Included fonts for Traditional Chinese.
Changes to x3270 and c3270
Removed the nested copy of pr3287.
from the source. pr3287 must now be built separately from its own
package.
Changes to wc3270
Corrected a problem with color mapping in the OIA.
Changed the New Session Wizard to the Session
Wizard and gave it the ability to edit existing session files and
re-create missing session files. Note that this ability is limited to
session files created with 3.3.9beta10 or later.
Added a wc3270.printer.codepage resource to set
the Windows code page for the associated pr3287 printer session.
Simplified the operation of the New Session Wizard,
so it asks fewer questions.
Added a pager to interactive mode.
Made the PrintText font and point size
configurable via the printTextFont and printTextSize
resources.
Changed the default 'blue' color for created shortcuts
to a somewhat lighter shade, to make it more readable.
Changed the Session Wizard to specify the code page
and proper font when creating shortcuts for DBCS sessions. This should
allow DBCS to work on Windows 2000 and Vista.
Included ws3270 in the wc3270 release.
Changes to c3270 and wc3270
Added feedback for the progress of file transfers.
Implemented the Info action,
which writes a message to the OIA (the line below the display).
Added a no-prompt mode, via the
-noprompt command-line option and the noPrompt resource .
Added automatic reconnect, via the
-reconnect command-line option and the reconnect resource.
Changes to ws3270 (formerly available as a pre-release)
Fixed a bug which resulted in all command timings
being displayed as '-'.
Added the -localcp option and
localCP resource to change the Windows code page used for local
workstation I/O.
Added DBCS support and support for building using Microsoft tools.
Changes to pr3287 and wpr3287
Fixed a serious character-mapping bug.
Added DBCS support.
Changes to specific versions
[c3270, s3270, s3270, ws3270 and x3270] Added support for session files.
[All except wc3270 and ws3270] Extended the rtf
option of the PrintText to non-Windows platforms.
[All except x3270] Fixed a number of issues with -xrm
option processing and keymap display when backslash sequences were used.
Changes in version 3.3.8p2, 13 December 2008
[wc3270] Corrected the handling of 8-bit and DBCS characters in
the PrintText action.
[tcl3270] Extended configure to find the Tcl
library version automatically.
[wc3270] Corrected a problem which caused mouse clicks not to be
recognized (not moving the cursor) if NumLock was set.
[all] Corrected the configure script to recognize
a separately-installed iconv library even if the iconv()
function is defined in libc.
[wc3270] Restored the bell sound, and added a visualBell
resource to disable it.
Changes in version 3.3.8p1, 20 October 2008
[wc3270] Restored the Ctrl-] mapping for the
Escape action, which had been inadvertently removed.
[wc3270] wc3270 now starts successfully on Windows
Vista.
[c3270] On platforms that require the iconv library,
c3270 once again recognizes ncurses names in keymaps.
[x3270] The module keysym2ucs.c now builds on
FreeBSD.
[x3270] Selections now work properly on platforms that do not
support XA_UTF8_STRING.
Changes in version 3.3.8, 11 October 2008
Version 3.3.8 includes a significant internal change, using Unicode for all
translations between the host and the local workstation.
This change should be
transparent, but users who depended on certain behaviors of the old
implementation may see unexpected differences.
Common Changes
Many more EBCDIC characters, such as Graphics Escape line-drawing and APL
characters, are now properly displayed (even without special 3270 fonts),
traced, cut/pasted with other applications, and returned by scripting actions
like Ascii.
With two exceptions, the locale's encoding is now observed consistently
when reading keymaps, generating trace files, etc.
The exceptions are:
tcl3270 always uses UTF-8, per the internal Tcl convention.
Because Cygwin doesn't really support locales, the Windows ANSI code
page is used as the local encoding instead.
Stateful encodings such as ISO 2022 are untested and very likely do
not work.
The ICU library is no longer used, and ICU .cnv files are no longer
included with the code.
Translation to/from the local encoding requires one of two facilities:
Either libc must support __STDC_ISO_10646__ (wchar_ts
are defined to be Unicode values, as on Linux and Windows), or there must be
an iconv library that can translate between UTF-8 and all local
encodings.
DBCS support is enabled by default, except on Windows.
It can be explicitly
disabled in the configure script to reduce the size of the
executable (removing several large translation tables).
The -v/--verbose option has been added to display build and
copyright information.
The Thai host code page has changed from 838 to 1160.
Changes Common to the 3270 Terminal Emulators
The Key action now accepts Unicode arguments in the form
U+nnnn, removing possible ambiguity from translating from the
Added a Source action to read script commands from a file.
Added a 10 second timeout to the start of the Transfer action.
Added an unlockDelayMs resource to change the number of
milliseconds of delay before actually unlocking the keyboard after the
host requests it. The default is 350; use 0 to disable the delay
altogether.
IND$FILE file transfer now transfers DBCS text files properly.
Changes Common to 3287 Printer Emulators
Added direct support for all x3270 host character sets via the
-charset option.
Added -trnpre and -trnpost options to specify files
containing transparent data to send to the printer before and after
each print job, respectively.
Product-Specific Changes
[x3270] Commands entered into the Print Screen Text dialog
are now saved by the Save Changed Options in File option.
[x3270] Fixed some bad interactions between the pop-up keypad and
the GNOME window manager.
[x3270] The Euro fonts have been folded into the standard
fonts.
[x3270] The font menu is now arranged hierarchically by
foundry and family.
[c3270] Added an underscore toggle to allow underlined
fields to be displayed even on consoles with no native underlining
support, by substituting underscore '_' characters for blanks and nulls
in underlined fields.
[c3270] Overhauled Meta and Alt key support.
Removed support for the archaic Meta modifier in keymaps (it was an
alias for setting bit 0x80 in each key). Replaced it with an Alt
modifier, which matches the ESC sequence sent for the Alt key
by many terminals, and which can be combined with full 8-bit input
characters.
[c3270] Changed the interpretation of keymaps so that keys and
symbols are matched in Unicode. That is, keymap text is converted from the
current locale's encoding to Unicode before matching, and input character
codes are converted to Unicode before matching. This eliminates the
difficulty in creating keymaps and interpreting traces in non-Latin-1
locales -- needing to translate from the accidental interpretation of
8-bit values as Latin-1 when they are not -- but with the side-effect
of rendering some carefully-crafted existing keymaps invalid. Keymaps
can also be written using Unicode U+nnnn notation.
[c3270] Changed the metaEscape resource so that auto
means on, instead of using the terminfo km resource.
[c3270] Added an acs resource to control the use of curses
ACS codes.
If c3270.acs is set to true (the default), c3270
will use curses ACS codes for line-drawing characters. If set to
false, it will display line-drawing characters with Unicode.
[wc3270] Added an underscore toggle to control how
underlined and blinking fields are displayed. If it is set (the default),
underlined fields are displayed by substituting underscore (_)
characters for blanks and nulls, and blinking fields actually blink.
If it is clear, underlined and blinking fields are displayed with
highlighted backgrounds, which is compatible with previous versions of
wc3270.
[wc3270] Left-clicking with the mouse will now move the cursor
to that location.
[wc3270] The PrintText action now works, and is mapped by
default to the sequence Alt <Key>p.
The printer.name resource defines the default printer to use.
[wc3270] The PrintText action can now be used to produce
a RichText snapshot of the screen contents, via the rtf keyword.
[wc3270] The program longer attempts to set the console code page,
which was error-prone and unnecessary.
[wc3270] The idle command feature now works, controlled
by the idleCommand, idleCommandEnabled and idleTimeout
resources.
[wc3270] The program no longer attempts to set the console code
page, which could lead to hangs on Vista.
[wc3270] The installation now creates a program group item to
explore the wc3270 Application Data directory.
[wc3270] Corrected a problem with console color overrides, which
prevented reverse-video mode (white background) from working properly.
For now, the recommended method for enabling reverse video mode is to add
these lines to your session file:
[wc3270] wc3270 now builds with the Microsoft tools.
The file Msc/Makefile is a makefile for nmake.
[tcl3270] Added a commandTimeout resource to force any
Tcl3270 command to time out after the specified number of seconds.
(Thanks to Mark Young.)
[tcl3270] Fixed a per-command memory leak. (Thanks to Mark
Young.)
[wpr3287] Added a -printercp option to specify a particular
code page for printer output.
[wpr3287] wpr3287 now builds with the Microsoft tools.
The file Msc/Makefile is a makefile for nmake.
Changes in x3270 3.3.7p8, 28. August 2008
Bug Fixes:
Corrected the buffer addressing mode logic for oversize screens.
Changes in x3270 3.3.7p7, 4. July 2008
Bug Fixes:
Corrected input of 8-bit characters when x3270 is run in a
UTF-8 locale.
Corrected a bug which sometimes left the local file open after a
failed file transfer.
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Changes in x3270 3.3.7p3, 22. February 2008
Bug Fixes:
Fixed an issue with Idle commands, which would cause x3270
to exit with a Not Found error as soon as the idle command
fired.
Changes in x3270 3.3.7, 25. December 2007
Bug Fixes:
Fixed the annoying delay when x3270 starts with an error
pop-up.
Shortened the manpage so that it displays on non-groff platforms.
The full text is still available in the HTML version.
Plugged a number of memory leaks.
x3270 will now compile on platforms that do not support
IPv6, such as Cygwin.
x3270 will no longer crash or spin when the -script
option is used.
Shifted function keys should work again (they map to PF13-PF24).
The screen can now be resized larger, as well as smaller.
Removed the dependency on <bitmaps/gray>, which
required installing an obscure X11 development package on some
platforms.
New Features:
Added UTF-8 support. If the current locale specifies UTF-8 encoding,
then all text output (trace data, script interactions, screen snapshots,
etc.) will be UTF-8 encoded, and all text input (arguments to the
Key and String actions, etc.) must be UTF-8 encoded.
In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
Added a SelectAll action, mapped to Ctrl-A.
Changes in c3270 3.3.7p8, 28. August 2008
Bug Fixes:
Corrected the buffer addressing mode logic for oversize screens.
Allowed c3270 to build under SLES 10's unusual ncurses
configuration.
Changes in c3270 3.3.7p7, 4. July 2008
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Bug Fixes:
Corrected a bug which sometimes left the local file open after a
failed file transfer.
Changes in c3270 3.3.7p4, 29. February 2008
Bug Fixes:
Fixed c3270's configure script again, so it will build on
systems without the ncurses library.
Enabled idle command functionality, which had been
accidentally disabled.
Changes in c3270 3.3.7p1, 28. December 2007
Bug Fixes:
c3270's configure script would not detect missing ncurses
header files, and c3270 would not build if ncursesw was not
installed.
Changes in c3270 3.3.7, 25. December 2007
Bug Fixes:
c3270 will now display characters such as
the notsign¬ properly in terminal windows in UTF-8
locales.
Note that this display support requires an ncurses or
curses library that supports wide characters.
New Features:
Added UTF-8 support. If the current locale specifies UTF-8 encoding,
then all text output (trace data, script interactions, screen snapshots,
etc.) will be UTF-8 encoded, and all text input (arguments to the
Key and String actions, etc.) must be UTF-8 encoded.
In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
Added display of the host code page and locale codeset to the
show status command.
Added support for changing the color mappings. The curses color
for a given host color can be specified with the resource
c3270.cursesColorForHostColorn, where n is a
host color number (0 through 15), and the value of the resource is a
curses color number (0 through 7).
In addition, the field-attribute-based colors used when the host
does not specify a particular color can be changed via the following
resources:
The value for each of these is a curses color number (0 through 7).
Changes in wc3270 3.3.7p8, 28. August 2008
Bug Fixes:
Fixed idle command support.
Changes in wc3270 3.3.7p7, 4. July 2008
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Bug Fixes:
Fixed a problem with transferring binary files, where 0x0d
characters might be accidentally added to or removed from the data.
Corrected a bug which sometimes left the local file open after a
failed file transfer.
Changes in wc3270 3.3.7p5, 11. April 2008
Bug Fixes:
After installation is complete, get rid of mkshort.exe, which
shares its name (but not its functionality) with a computer surveillance
application.
Corrected several issues with key event processing and the default
keymap.
Changes in wc3270 3.3.7p3, 22. February 2008
Bug Fixes:
Changed the New Session Wizard to create the Application Data
directory, so wc3270 can be run by any user, not just the one
that installed it.
Changed the default window title from the pathname of the session
to just the session name.
Changes in wc3270 3.3.7p2, 15. January 2008
Bug Fixes:
Fixed an embarrassing problem that kept wpr3287 from
starting.
Changes in wc3270 3.3.7, 25. December 2007
Bug Fixes:
Fixed line-drawing characters.
Enabled IPv6 support for Windows XP and later.
Set the input code page correctly, so that keyboard input works
correctly when there is a mismatch between the default Windows code
page and the code page implied by the wc3270 character set option.
New Features:
Added limited support for Windows 98. wc3270 will install and run on
Windows 98, but internationalization support is limited -- the only
supported host code page is 37, and the only supported Windows code
page is 437. This is expected to improve in the future.
Added a wc3270.highlightUnderline resource to control
highlighting of underlined and blinking text. (Set to false to
disable background highlighting.)
Moved session files, keymaps and trace files to the Application
Data directory. (wc3270 will still look in its installation
directory for session files and keymaps, after first searching the
Application Data directory.)
This makes wc3270 a better Windows citizen in general, and a
better Vista citizen in particular.
Added support for changing the color mappings. The console color
for a given host color can be specified with the resource
wc3270.consoleColorForHostColorn, where n is a
host color number (0 through 15), and the value of the resource is a
console color number (0 through 15).
In addition, the
field-attribute-based colors used when the host does not specify a
particular color can be changed via the following resources:
The value for each of these is a host color number; the actual color
displayed is defined by the corresponding
wc3270.consoleColorForHostColorn
resource.
Added a new cp1153 character set.
It implements host code page 1153 and uses Windows code page 1250,
used primarily in Central Europe.
Added display of the Windows code page to the character set
screen in the New Session Wizard.
Added display of the host and Windows code pages to the show
status command.
Changes in s3270 3.3.7p8, 28. August 2008
Bug Fixes:
Corrected the buffer addressing mode logic for oversize screens.
Changes in s3270 3.3.7p7, 4. July 2008
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Bug Fixes:
Corrected a bug which sometimes left the local file open after a
failed file transfer.
Changes in s3270 3.3.7, 25. December 2007
Bug Fixes:
(none)
New Features:
Added UTF-8 support. If the current locale specifies UTF-8 encoding,
then all text output (trace data, screen snapshots, the Ascii
and ReadBuffer(Ascii) actions, etc.) will be UTF-8 encoded, and
all text input (arguments to the Key and String actions,
etc.) must be UTF-8 encoded.
In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
NOTE: If you were were previously running s3270 in a
UTF-8 locale, this is an incompatible change.
To ensure the previous behavior, set your locale to C before
starting s3270.
Changes in tcl3270 3.3.7p8, 28. August 2008
Bug Fixes:
Corrected the buffer addressing mode logic for oversize screens.
Changes in tcl3270 3.3.7p7, 4. July 2008
New Features:
Added \eXX support to the String() action,
which allows an EBCDIC code to be entered.
Bug Fixes:
Corrected a bug which sometimes left the local file open after a
failed file transfer.
Changes in tcl3270 3.3.7p3, 22. February 2008
Bug Fixes:
Fixed a problem with non-ASCII characters returned by the Ascii
command.
Fixed a problem with the Connect command, which resulted in
subsequent actions not blocking properly.
Changes in tcl3270 3.3.7, 25. December 2007
Bug Fixes:
(none)
New Features:
Added UTF-8 support. If the current locale specifies UTF-8 encoding,
then all text output (trace data, screen snapshots, the Ascii
and ReadBuffer actions, etc.) will be UTF-8 encoded, and all text
input (arguments to the Key and String actions, etc.) must
be UTF-8 encoded.
In addition, the NVT-mode xterm/VT100 emulator will expect UTF-8.
Changes in pr3287 3.3.7p8, 28. August 2008
Bug Fixes:
Fixed the interpretation of SCS CR characters.<\li>
Changes in pr3287 3.3.7, 25. December 2007
Enhancements:
Added proxy support via the -proxy option.
Changes in wpr3287 3.3.7p8, 28. August 2008
Bug Fixes:
Fixed the interpretation of SCS CR characters.<\li>
Changes in wpr3287 3.3.7, 25. December 2007
(none)
Changes in x3270 3.3.6, 23. June 2007
Bug Fixes:
Fixed the highlighted attribute for individual regions of the
screen (versus the highlighted field attribute); it had been
accidentally disabled.
New Features:
Added support for IBM Code Page 1047 (-charset cp1047).
Added proxy support via the -proxy option or the proxy
resource.
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Pseudo-Color mode is no more.
This was the mode that x3270 used when a 3278 model was specified, or
if the m3279 resource were set to False.
Pseudo-Color assigned colors to regions of the screen based on
intensity and light-pen selectability, and did not support 3279 colors.
Now turning off color or selecting a 3278 results in something that
looks like a 3278 (i.e., it's green).
To resurrect Pseudo-Color mode, set the following resources:
x3270.inputColor: orange
x3270.boldColor: cyan
Changes in c3270 3.3.6, 23. June 2007
Bug Fixes:
The code now builds with ICU 3.6.
Got local process (-e) support to work again.
Fixed -mono -allbold mode.
c3270 now paints the entire screen, not just the areas it
intends to use, so there are no uninitialized regions.
New Features:
Added support for IBM Code Page 1047 (-charset cp1047).
Added proxy support via the -proxy option or the proxy
resource.
Added support for the 3270 background color attribute.
Added more mappings to the 3270 default keymap (IC ->
ToggleInsert, Ctrl<Key>U -> DeleteField,
etc.).
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Like x3270 and wc3270, -model 3278 now
specifies a green-screen 3278 (if the terminal supports color), and
like x3270, -mono specifies that any color capabilities
reported by the terminal should be ignored.
Changes in wc3270 3.3.6, 23. June 2007
Bug Fixes:
Restored line-drawing character support.
Restored background color support in NVT mode.
Corrected some screen rendering issues.
Fixed screen trace (-set screenTrace).
Removed the -mono option and mono resource.
New Features:
Added the Spanish character set, CP 284.
Added proxy support via the -proxy option or the proxy
resource.
Added support for setting the window title, either automatically,
or via the -title option or wc3270.title resource.
Added gray background highlighting of underlined and blinking
text.
Windows consoles don't support these attributes, but at least
they can be distinguished from other text now.
Added background color support in 3270 mode.
Added a window to monitor trace output.
Greatly improved key event tracing.
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Changes in s3270 3.3.6, 23. June 2007
Bug Fixes:
The code now builds with ICU 3.6.
Removed the -mono option and mono resource.
New Features:
Added proxy support via the -proxy option or the proxy
resource.
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Changes in tcl3270 3.3.6, 23. June 2007
Bug Fixes:
The code now builds with ICU 3.6.
Removed the -mono option and mono resource.
New Features:
Added proxy support via the -proxy option or the proxy
resource.
Modified Blank Fill mode to treat trailing underscore
characters ('_') like blanks when checking for input
overflow.
Changes in wc3270 3.3.5p9, 10. June 2007
Bug Fixes:
The shortcut cursor size property is now obeyed.
The -model 3278 option now works correctly.
New Features:
Added secure connection status to the status line and the
show status command.
Reverse video is now supported.
Added support for IBM Code Page 1047 (-charset cp1047).
Added a keymap tutorial to the documentation.
Changes in wc3270 3.3.5p8, 29. April 2007
Bug Fixes:
Fixed a hang when wpr3287 exits unexpectedly.
Improved behavior when input comes from multiple sources, such
as when pasting text.
Greatly improved screen update speed.
New Features:
Added wpr3287 support back to the wizard. It was in the
GUI version, but was never in the text version.
Integrated new back-end printer support in wpr3287,
including a new wc3270.printer.name resource.
Added a Paste() action, mapped to Ctrl-V, to do multi-line
paste properly.
Added a .wc3270km suffix to keymap files.
Added keymap support to the wizard.
Added interactive prompting to the Transfer() action.
Changes in wpr3287 3.3.5p8, 29. April 2007
New Features:
Added direct support for Windows printers, instead of relying
on the DOS PRINT command.
This included changing the -command option to a -printer
option, to specify the Windows printer to use as a back end.
Changes in x3270 3.3.5p6, 7. April 2007
Bug Fixes:
x3270 will now build with ICU 3.6.
A long-standing screen update bug is finally fixed.
The unused x3270hist.pl script is no longer installed.
Changes in c3270 3.3.5p4, 7. April 2007
Bug Fixes:
c3270 can now be built without File Transfer support.
The unused x3270hist.pl script is no longer installed.
Changes in wc3270 3.3.5p3, 2. March 2007
Bug Fixes:
Reverted the wc3270 New Session Wizard to the non-GUI version, because
the GUI version, built with Microsoft Visual C++ 2005
Express Edition, had too many dependencies (latest service pack,
.NET framework) on the target machine.
Changes in wc3270 3.3.5p2, 16. February 2007
Bug Fixes:
Ensured that the desktop shortcuts specify Lucida Console, so
non-ASCII-7 characters are displayed properly.
New Features:
Added a file association for the .wc3270 suffix.
Replaced the console version of the New Session Wizard with a
proper GUI version.
Changes in wc3270 3.3.5p1, 6. February 2007
Bug Fixes:
Added the working directory to the desktop links created by the
setup program.
New Features:
Added printer session (wpr3287) support.
Changes in x3270 3.3.5, 1. February 2007
Bug Fixes:
Fixed a crash when the user's home directory or the ~/.x3270connect
file wasn't writable.
Fixed some endcases when pasting text that wraps lines and a field
skip is encountered.
Fixed the handling of SI characters in cut/pasted text.
Allow the use of ICU version 3.0 or greater.
Fixed a scripting hang when the host disconnects during
Wait(output)).
Turned the unlockDelay option back on by default.
Fixed a problem where unlockDelay could result in the
keyboard never unlocking, if the host unlocked the keyboard
often enough.
Added a workaround for very old snprintf()
implementations.
Fixed a problem with DBCS input corrupting existing DBCS
subfields.
Fixed a problem with the Wait action in the expect glue.
(Thanks to Jason Howk for the fix.)
Enlarged the input buffer in x3270if. (Thanks to Igor Klingen for the fix.)
Fixed a SIGCHLD handler issue on AIX.
Fixed a problem with CR/LF translation on ASCII file transfers.
New Features:
Added a -socket option to x3270, s3270 and c3270 to allow a
script to connect to a Unix-domain socket to control the emulator, and
added a -p option to x3270if to connect to the socket.
Added optional support for plugins, with a first plugin to
implement command history on VM/CMS and TSO hosts.
Allow arbitrary color names (#rrggbb) to be used in color
schemes.
Added support for hierarchical macro menus.
Added an XkSelector resource to allow transparent
support of non-English keyboards.
Added preliminary support the 16-bit display fonts and the Persian
character set.
Added Title and WindowState actions to allow the x3270
window title and icon state to bw changed respectively.
Changes in x3270 3.3.4, 10. April 2005
Bug Fixes:
The code once again builds on Cygwin and other systems not supporting
IPv6.
The -xrm option works again in x3270.
The -name X Toolkit option works with x3270, though
not yet with app-defaults files.
Removed spurious 'no child' error messages from pr3287 on some
systems.
Removed unintended blank-line suppression from the output of
PrintText html string.
Restored some missing keymap definitions (rlx, ow)
and some missing lines from other keymap definitions (apl).
Restored the automatic keyboard unlock delay when processing a
macro or string. This allows macros and strings with embedded AID
sequences to work with hosts that unlock the keyboard before they
finish processing a command. Scripts are presumed to be able to
figure out when the host is finished, or can set the unlockDelay
resource to true get the delay all the time.
Fixed an apparent hang (actually just extreme slowness) when the
host sends a message larger than 4 Kbytes on an SSL tunnel.
Removed spurious 'Wait timed out' errors in the Wait
action.
New Features:
Added a newer, more flexible version of Don Russell's RPQNAMES
support.
Added support for IPv6.
Added an oldclick keymap to restore the pre-3.3 mouse click
behavior.
Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta2, 1. February 2005
Bug Fixes:
Reduced the Resident Set Size (RSS) of x3270 from about 40 MBytes to
less than 4 MBytes. This was a bug in how compiled-in app-defaults
files were generated.
Got separate app-defaults files (configure --enable-app-defaults)
to work again.
Fixed a crash when a login macro is used in NVT mode or when the
host un-negotiates TN3270E mode.
Fixed the titles of the Copyright and Configuration pop-ups.
Temporarily disabled the RPQNAMES Query Reply. It was causing IBM
QMF to crash. It can be re-enabled by adding #define X3270_RPQNAMES
1 to conf.h. Hopefully a proper fix can be found shortly.
New Features:
Changes in x3270, c3270, s3270 and tcl3270 3.3.3beta1, 31. December 2004
Bug Fixes:
The Transfer() action did not work at all -- it generated
(null) as the name of the IND$FILE command.
Also improved its behavior when invoked from a script or macro in
x3270 and c3270.
Corrected the definition of the hebrew (code page 424)
character set, removing undefined characters.
Corrected the display character set for the brazilian (code
page 275) character set.
Corrected the character set definition logic so that undefined
ASCII codes are truly undefined in NVT mode.
Corrected the ibm_hosts file (the hostsFile resource
or the -hostsfile option).
Variable and tilde substitution are now performed on the value, and if
a non-default value is specified and the file does not exist, an error
pop-up is generated.
Added a pause to make sure that c3270 start-up error messages will
be seen.
Got the c3270 default field colors right, and made all-bold mode
actually make all the fields bold.
Fixed the default primary/alternate screen size (it was alternate,
it's supposed to be primary).
Fixed c3270 color support with ncurses and 80/132 screen-size
switching.
Sometimes only one of the screen sizes had color.
Fixed a memory leak in pr3287 when the -reconnect option
is used. (Thanks to Marcelo Lemos for the fix.)
Fixed the output of NVT-mode ANSI line-drawing characters in the
Ascii() scripting action.
These were formerly all output as blanks; now they are output in
the same was as x3270 3.2.
Fixed the display of NVT-mode ANSI line-drawing characters when
x3270 is using a 3270 font.
Fixed the display of DBCS blanks, which sometimes displayed as
'undefined' characters.
Fixed DBCS character display with fonts whose maximum bounds are
larger than their reported line-spacing bounds.
Fixed make depend.
Fixed x3270_glue.expect, which got confused when there was
a whitespace-delimited double-quote in the emulator output.
Fixed crashes when the entire File or Options menus were suppressed.
Fixed a scripting hang when an UNBIND command arrived while an AID
was pending.
Fixed a problem with the incomplete processing of a NULLing Program
Tab order, which could leave formatting artifacts on the screen.
Removed <subchar1> clauses in two of the .ucm files
that prevents later versions of ICU's makeconv from accepting
them, and removed DOS carriage-return characters from the CP837
.ucm file.
Corrected some DFT-mode file upload problems: corrected the data
length, and corrected an empty-buffer problem when the file size was
an even multiple of the buffer size.
Corrected a DBCS conversion problem with ICU 3.0.
Added variable buffer-size support to DFT file transfers.
Corrected a line-drawing character bug in c3270.
Fixed a buffer overflow problem in the ReadBuffer action.
Fixed garbage characters generated for APL data by the Ascii
and ReadBuffer actions.
Allow 0 timeouts in Wait actions.
New Features:
Added command-line options to the pr3287 trace file.
Added support for dead keys (acute, grave, circumflex, tilde,
diaeresis) to the x3270 default keymap, and improved the Latin-1 compose
map. (Thanks to Marcelo Lemos for the change.)
Added new actions for improved mouse interactions, and made them the
default. Button 1 now moves the cursor, without the Shift key.
Added support for DBCS in pr3287, but only when started from an
x3270 or c3270 session.
Added Don Russell's RPQNAMES support.
Removed Minolta-copyrighted 5250 code, because of licensing
problems.
Added an aidWait toggle to allow AID script actions
(Clear, Enter, PA and PF) to complete
immediately without waiting for the host to unlock the keyboard, and a
Wait(Unlock) action action to block a script until the keyboard
is unlocked, regardless of the state of the new toggle.
Removed the old scripting hack that delayed actually unlocking the
keyboard for 50ms after the host indicates that it should be unlocked.
Added an unlockDelay resource, which can be set to true to
turn the delay hack back on.
Added a dftBufferSize resource to set the default DFT
buffer size.
Added an x3270 Save Screen Text menu option to save the
screen image in a file, optionally in HTML.
Added options to the PrintText action to save to a file, to save HTML,
and to return the text as script data.
Changes in x3270, c3270, s3270 and tcl3270 3.3.2, 1. December 2003
Bug Fixes:
Corrected an x3270 screen-redraw crash when using fixedSize
and xim.
Corrected a problem in x3270_glue.expect, which caused
Tcl syntax errors if a string began with a dash. Thanks to David
Taylor for the fix.
Fixed a problem with x3270 DBCS input when using a single DBCS/SBCS
character set.
Made DBCS encoding recognition automatic wherever possible, leaving
the -km option for cases when x3270 can't figure it out from the
locale.
Made c3270's configure more robust when it can't find one or
the other of libncurses or ncurses.h.
Got automatic pr3287 start-up (-printerlu) working again in
c3270.
Fixed an s3270 crash which made s3270 3.3.1alpha10 pretty much
useless.
New Features:
Added support for Cyrillic keysyms to the x3270 Default()
action.
Added an 'unlocked' icon for unencrypted connections, if x3270 is
built with SSL/TLS support.
Error messages are now written to the trace file.
The response to the TELNET TIMING MARK option has been changed to
make it compatible with the majority of TELNET clients.
The response to DO TIMING MARK is now WONT TIMING MARK.
To restore the previous behavior (responding with WILL TIMING MARK,
originally derived from the BSD TELNET client), set the resource
x3270.bsdTm to true.
Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha10, 29. August 2003
Bug Fixes:
Made nondisplay fields invisible to the Ascii() action.
Corrected start-field values at the beginning of data stream traces
and in the 3270 Read Buffer response.
Corrected a tight loop in the macro error cancellation logic.
Corrected a crash when connecting to a host and there is no menu
bar visible.
Corrected x3270 crashes in monochrome mode (-mono) and
pseudo-color mode (-model 3278).
New Features:
Added a ReadBuffer() action to dump the entire contents of
the 3270 buffer, including field attributes and extended attributes.
Added support for suppress resources for each menu item.
If set to True, that menu item will not appear.
Added a suppressActions resource, a list of the names of
actions to disable. This is primarily for controlled environments where
the user does not have access to the x3270 command line, but can
edit keymap definitions.
Added a Setverbose function to x3270_glue.expect
to allow verbosity to be changed on the fly.
(Courtesy of David Taylor.)
Added the ability to define resources in an environment variable,
$X3270RDB. The environment variable overrides values set in
the profile file, but is overridden by command-line options.
Added a fixedSize resource to force the x3270 main
window to a particular size. fixedSize has the form
widthxheight, in pixels.
The 3270 display will float in the center of the window, if need
be.
Added a new x3270 keypad position (x3270.keypad):
insideRight. This positions the keypad on top of the upper
right-hand corner of the x3270 window, just under the keypad
button on the menu bar.
Changes in pr3287 3.3.1alpha10, 10. August 2003
Enhancements:
Added support for the -tracedir option, to specify a directory
to store trace files in.
Added support the the -eojtimeout option, to automatically
flush any pending print job after a specified period of inactivity.
Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha9, 24. July 2003
Bug Fixes:
DBCS character set names are displayed in the x3270
Options->Font menu only when DBCS support is built into x3270.
Removed the concept of 'per-host' resources. Use profiles for
this.
Fixed idle commands. They were pretty much hopeless in 3.3.1alpha8
and 3.2.20.
Fixed a Unicode conversion crash.
Fixed a bug in processing the Modify Field order, which would cause
the character set attribute for the field to be accidentally reset to
the default.
New Features:
x3270 user-specified lists (character sets, hosts, fonts,
color schemes) can now be organized into sub-lists.
The name Bob>Fred>Tony specifies that there is a sub-list called
Bob, which contains a sub-list Fred, which contains the
item Tony.
The TELNET START-TLS option is now supported.
Changes in pr3287 3.3.1alpha9, 30. July 2003
Bug Fixes:
Ignore SIGINT in the print job process, so that killing an
interactive pr3287 with ^C won't cause buffered data to be lost.
Fixed a problem with losing a byte of data after an SHF order.
Fixed the SCS HT order, which was completely broken.
Enhancements:
Added support for SIGUSR1 to flush the print job.
Added support for the TELNET START-TLS option.
Changes in x3270, c3270, s3270 and tcl3270 3.3.1alpha8, 15. April 2003
Bug Fixes:
Builds cleanly on Linux with -Wall -ansi -pedantic.
Builds without OpenSSL libraries being present.
Correctly records Field Attributes in the initial screen snapshot
in a Data Stream Trace file.
Auto-Skip fields work properly.
"Dead" positions in DBCS fields are handled correctly.
Invalid host DBCS characters are handled better and are displayed
in the Data Stream Trace file.
The Erase action now works properly with DBCS characters.
The x3270 Visible Control Characters toggle now works
properly.
The EBCDIC notsign '¬' can now be entered in c3270 with
Ctrl-A, ^ (it formerly caused an error message).
New Features:
The Erase action is now the default for the BackSpace
key in x3270.
Ctrl-A, a is now mapped onto the Attn action in the
c3270 default 3270 keymap.
Four more Japanese host code pages have been added: 930, 939, 1390
and 1399. This uses new support for combined SBCS/DBCS code pages.
Changes in x3270, c3270, s3270 and tcl3270 3.3.1, 14. February 2003
Bug Fixes:
(Same as x3270 3.2.20)
New Features:
DBCS support for Simplified Chinese and Japanese, including x3270
integration
with XIM.
Tunneled SSL support added (entire Telnet session inside of an SSL
tunnel).
Uses the OpenSSL library.
Toggled with an 'L:' prefix on the hostname.
A Visible Control Characters toggle replaces x3270's
3270d Debug Font.
About x3270 pop-up split into three smaller pieces.
Resources are used to configure c3270. Resources are named items with
string, integer or Boolean values.
Resource definitions come from the following sources:
Default values are compiled into c3270.
If a session file foo.c3270 is specified on the command line,
its contents are applied.
Otherwise, if the c3270 profile (~/.c3270pro) exists, it is read and its
contents are applied.
These definitions override resource values defined by
compiled-in defaults.
Command-line options override all other resource definitions. If more
than one command-line option sets a resource, the last one is used.
Many resources have their own command-line switches, which are listed below.
Those that do not can still be set from the command-line via the -xrm
command-line option. For example c3270.bsdTm can be set by the
following command-line option:
-xrm "c3270.bsdTm: true"
Note that -xrm is supported on all of the 3270 emulators, not just on
x3270.
Resource File Syntax
A resource file
(profile or session file)
has the following syntax.
Each definition consists of:
c3270.resource-name:value
Comment lines begin with !.
Line continuation is indicated by a backshash (\) character at
the end of a line.
Multi-line resources, such as keymap definitions, are split with
newline characters, e.g.:
Defines a specific name to accept when validating the name presented in
the server's SSL/TLS certificate, instead of using the name used
to make the connection.
(The form DNS:name
is also accepted for backwards compatibility.)
When true, c3270 will use the curses Alternative Character Set (ACS) to
display box-drawing characters.
When false, c3270 will use Unicode box-drawing characters.
When true, c3270 will not block a script after executing
an AID action (Enter, Clear, PF or PA).
It is then script's responsibility to poll c3270's status until it shows
that the keyboard is no longer unlocked.
Name: c3270.allBold Type: String Default: auto Command Line: -allbold
Description:
When true, c3270 will display all text in bold. This is needed
for terminals like Linux consoles and xterms that display non-bold text
in unreadably-dim colors. When false, text will be displayed in normal or
bold, depending on the host-specified highlighting attribute.
When set to auto, it will be assumed true for 3279 emulation,
and false for 3278 emulation.
Defines a character string that will be output to switch the terminal from
80-column mode to 132-column mode.
Within the string, the sequence \E is translated to the ASCII
ESC character (0x1b).
When c3270.model is 5, and this and
c3270.defScreen are defined, c3270 will automatically change the
terminal size when the host switches between the default (24x80) screen
and the alternate (27x132) screen.
When true, this causes box-drawing characters (the Unicode 2500 block) to
be drawn with ASCII-art characters (+, - and |).
This allows a readable representation of these characters on the screen
when using fonts that do not include them or have them with the wrong
width.
When true, c3270 will unlock the keyboard as soon as the host sends a BIND
image. Otherwise, it will wait until the host sends a Write command.
Note that in some previous releases, unlocking as soon as the BIND image
was recevied was the default, and this behavior could be overridden
(forcing c3270 to wait for the Write) by the B: option on the
hostname. Since waiting for the Write is now the default, B: is
still supported as a no-op.
When true, in 3270 mode c3270 will automatically convert
trailing blanks in a field to NULLs in order to insert a character, and will
automatically convert leading NULLs to blanks so that input data is not
squeezed to the left. This works around some of the quirkier behavior of
real 3270 terminals.
Defines c3270's response to the TELNET DO TIMING MARK option. When set
to false, c3270 will respond to DO TIMING MARK with
WONT
TIMING MARK, which is consistent with most modern TELNET clients. When
true, c3270 will respond with WILL TIMING MARK, which is consistent
with the old BSD telnet command and with previous versions of
c3270. In either case, c3270 will never respond to a DONT TIMING MARK option.
Defines a directory containing CA (root) certificates, used to validate
a certificate presented by the host during SSL/TLS negotiation.
The default is determined by the OpenSSL library on your workstation.
(OpenSSL only)
Defines a PEM-format file containing CA (root) certificates, used to
validate a certificate presented by the host during SSL/TLS negotiation.
The default is determined by the OpenSSL library on your workstation.
(OpenSSL only)
If true, c3270 will set up the terminal in cbreak mode
instead of the default raw mode. Cbreak mode enables
flow-control processing in the TTY driver, and may be required for
certain terminals that use flow control to avoid dropping characters.
Gives the name of a certificate chain file to provided to the host
during SSL/TLS negotiation.
The file contains a PEM-format certificate, optionally followed by
any intermediate certificates used to sign it, and the CA (root)
certificate.
The private key for the certificate is specified by c3270.keyFile.
If c3270.chainFile is specified, it overrides c3270.certFile.
(OpenSSL only)
This defines the host EBCDIC character set, that is, what glyph (image) is
displayed for each EBCDIC code sent by the host, and what EBCDIC code is
sent to the host for each character typed on the keyboard.
This is more correctly referred to as the host code page.
To display the character sets supported by c3270, use the -v
command-line option.
If true, c3270 will respond to a Query(Color) with a list of 8
supported colors. If false, it will send a list
of 16 colors. The 8-color setting is required for some hosts which
abort a session if 16 colors are reported.
This setting will also cause c3270 to assume that the terminal supports
no more than 8 colors, and will use only the 8 basic curses colors to draw
the screen.
Gives the name of the map used to define the pairs of characters that
form composite characters with the Compose key.
The definition of compose map foo is the resource
c3270.composeMap.foo.
An individual compose map definition.
Each line in the resource is of the form:
keysym1 + keysym2 = keysym3
meaning "when the Compose key is pressed,
followed by keysym1 and keysym2 (in either order), interpret it as
keysym3." The definitions are case-sensitive.
Specifies a timeout, in seconds, that c3270 will wait for a host connection
to complete. If this is not set, the timeout will be determined by the
operating system. Note that c3270 will wait for the lesser of the two times
(the specified timeout and the system-defined timeout).
Defines what curses color to use to render a particular host color.
Host colors can be specified by name or number. That is, to define the
curses color to use when the host specifies green, which is host
color 4, either the resource c3270.cursesColorForHostColorGreen or
the resource c3270.cursesColorForHostColor4 can be defined.
The default definitions are as follows. Note that on an 8-color
terminal, c3270 only displays 8 host colors.
Host Color Index
Host Color Name
Default Curses Color (8-color terminal)
Default Curses Color (16-color terminal)
0
NeutralBlack
black
black
1
Blue
blue
12 (bright blue)
2
Red
red
red
3
Pink
red
13 (bright magenta)
4
Green
green
10 (bright green)
5
Turquoise
cyan
14 (bright cyan)
6
Yellow
yellow
11 (bright yellow)
7
NeutralWhite
white
15 (bright white)
8
Black
-
black
9
DeepBlue
-
blue
10
Orange
-
9 (bright red)
11
Purple
-
magenta
12
PaleGreen
-
green
13
PaleTurquoise
-
cyan
14
Grey
-
white
15
White
-
15 (bright white)
Note that "neutral black" means black on a display device and white on
a printing device, and "neutral white" means white on a display device and
black on a printing device.
In NVT mode, c3270 maps the ANSI-standard colors 0 through
7 to host colors, and from host colors to curses colors.
The mapping from ANSI colors to host colors cannot be changed, but the
mapping from host colors to curses colors can be with
c3270.cursesColorForHostColor* resources.
The mappings and defaults are as follows:
When true, causes c3270 to display the cursor location in the OIA
(the status line).
Name: c3270.dbcsCgcsgid Type: String Description:
Overrides the compiled-in value of the CGCSGID for the current host
character set, which will be reported to the host in response to a
Query(Character Sets). The value is an integer, which can be prefixed with
'0x' to be in hexadecimal. The upper 16 bits are the GCSGID (character
set) and the lower 16 bits are the CPGID (code page). This value
applies only to the double-byte (DBCS) character set. Use
c3270.sbcsCgcsgid for the single-byte (SBCS) character set.
If true, c3270 will use the terminal's default foreground color instead of
specifying the curses color white, and it will use the terminal's
default background color instead of specifying the curses color
black. This is helpful in two cases: for emulators such as
gnome-terminal whose usual representation of a black background is
a murky gray, and for emulators configured with a black foreground and a
white background, so that c3270's screen will appear the same way.
defaultFgBg will be set to true automatically if the environment
variable COLORTERM is set to gnome-terminal.
Note that this resource and option are available only if c3270 has been
compiled with a version of ncurses that supports default foreground and
background colors, and if the terminal and its associated termcap/terminfo
entry also support it (it is usually implemented as ANSI color 9).
Defines a character string that will be output to switch the terminal from
132-column mode to 80-column mode.
Within the string, the sequence \E is translated to the ASCII
ESC character (0x1b).
When c3270.model is 5, and this and
c3270.altScreen are defined, c3270 will automatically change the
terminal size when the host switches between the default (24x80) screen
and the alternate (27x132) screen.
Specifies the default buffer size for DFT IND$FILE file transfers. This
value can be overridden in the File Transfer dialog and by a parameter to
the Transfer action.
When true, c3270 writes a hexadecimal representation of all network
traffic (and its interpretation) into a file, which defaults to
x3trc.pid.
The directory where the file is written is defined by c3270.traceDir.
If c3270.traceFile is defined, it gives the entire pathname
and c3270.traceDir is ignored.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
When connected in line-at-a-time mode (when c3270 gathers a line of input
before forwarding it to the host), entering this character at the
keyboard causes
the current line of
input to be forwarded to the host without a trailing CR/LF sequence.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
When connected in line-at-a-time mode (c3270 gathers a line of input
before forwarding it ot the host), entering this character at the keyboard
will cause c3270 to discard the last character on the input line.
When connected in character-at-a-time mode (c3270 sends each keystroke
to the host as it is entered), this is the character that will be sent
to the host by the Erase action.
When true, c3270 traces information about keyboard and mouse
events into a file.
The default file name is
x3trc.pid.
The directory where the file is written is defined by c3270.traceDir.
If c3270.traceFile is defined, it gives the entire pathname
and c3270.traceDir is ignored.
Defines the default allocation type for files sent to TSO hosts by IND$FILE
file transfers.
Possible values are default, which lets the host decide the allocation
type, or tracks, cylinders, or avblock.
Name: c3270.ftAvblock Type: Integer Description:
Defines the default AVBOCK (average block) allocation size for files sent
to TSO hosts by IND$FILE file transfers.
Name: c3270.ftBlksize Type: Integer Description:
Defines the default block size for files sent to TSO hosts by IND$FILE
file transfers.
Specifies the default buffer size for DFT IND$FILE file transfers. This
value can be overridden in the File Transfer dialog and by a parameter to
the Transfer action.
Name: c3270.ftCr Type: String Default: auto Description:
Defines the default action for line separators (carriage returns and line
feeds) in ASCII files during IND$FILE file transfers.
The value can be auto, which will add them when files are received from the
host and remove them when they are sent to the host, add (same as auto),
remove (same as auto), or keep, meaning no special processing is done.
Defines the default IND$FILE file transfer direction, from the perspective
of the workstation.
The value can be either send (send file from workstation to host) or
receive (receive file from host to workstation).
Defines the default behavior for IND$FILE file transfers when the
destination file already exists.
The value keep means that the transfer will be
aborted,
replace means that the file will be overwritten unconditionally, and
append means that the new file will be appended to the old file.
Defines the default mode for IND$FILE file transfers: ascii (text, with
translation between the workstation's code page and EBCDIC), or binary (no
translation).
Defines the default record format for files sent to the host using
IND$FILE.
Possibe values are default, fixed, variable, and undefined.
The default value of 'default' lets IND$FILE choose an appropriate format.
Defines the default mapping behavior for ASCII files transferred with
IND$FILE.
When set to yes, ASCII files are translated by
c3270 to produce as accurate a mapping as possible between the workstation's
code page and the host's EBCDIC code page. When set to no, only the fixed
translation built into the IND$FILE application is run, which (roughly)
maps ISO 8859-1 to host code page 37.
Defines the default secondary space allocation for files sent to TSO hosts
via IND$FILE.
Name: c3270.hostname Type: String Description:
Gives the name of the host to connect to. The name can include the usual
options (prefixes to specify special connection options, LU names, and
port). A hostname specified on the command line takes precedence over
c3270.hostname.
The most common use of c3270.hostname is in session files, where a
file is used to pass all of the options to establish a c3270 session.
The pathname of a file containing hostname aliases.
The file can also be used to define a set of actions to perform when
connecting to a host.
The format of the file is explained on the ibm_hosts manual page.
The default pathname is actually ibm_hosts in the directory
defined by c3270.confDir.
Defines the TCP port and optional address to listen on for HTTP
connections. (c3270 implements a simple REST API and a set of HTML objects
for access by scripts.) The syntax of this resource is
[address:]port, where address is an IPv4 or IPv6
address such as 127.0.0.1 or 0.0.0.0, and port is a
TCP port such as 4080. The address can also be specified as *
to indicate 0.0.0.0. A numeric IPv6 address must be enclosed in
square brackets, e.g., [1234:5678::3], to avoid ambiguity between
the colons inside the address and the colon separating the address from the
port. If no address is specified, it defaults to 127.0.0.1.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
It controls whether input carriage returns are mapped to newlines.
Name: c3270.idleCommand Type: String Description:
When c3270.idleCommand is defined, it specifies a command to execute after a
period of keyboard inactivity (no AID keys pressed).
The c3270.idleCommand can be an arbitrary sequence of c3270 actions, but it
should include an action which generates an AID (Enter, Clear,
PF or PA).
c3270.idleCommandEnabled must be true in order for the
c3270.idleCommand to take effect. (This is so an idle command can be defined,
but needs to be enabled explicitly at some point after login.)
c3270.idleTimeout specifies the inactivity interval.
Controls whether c3270.idleCommand has effect as soon as a host session
is established. (This is so an idle command can be defined, but needs to
be explicitly enabled at some point after login.)
The timeout value for c3270.idleCommand.
If the value ends in h, it specifies hours; if it ends in
m it specifies minutes; if it ends in s or does not have
an alphanumeric suffix, it specifies seconds.
If the value begins with a tilde ~, the time will be randomly
varied +/-10% from the value specified.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
It controls whether input newlines are mapped to carriage returns.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
When this character is typed on the keyboard, the TELNET IP
(Interrupt Process) sequence is sent to the host.
Gives the name of a file containg the private key for the certificate
specified by c3270.certFile or c3270.chainFile. The default file type is PEM;
it can be overridden by c3270.keyFileType. If the private key is encrypted,
the password is specified by c3270.keyPasswd.
(OpenSSL only)
The name of the keyboard map to use.
It can be a single keymap name or a comma-separated list of keymaps,
which will be applied in order.
Each keymap can optionally be defined in three separate parts: a common
keymap, which is applied at all times, an NVT-mode keymap, which is
applied only in NVT mode, and a 3270-mode keymap, which is only applied
in 3270 mode.
The NVT-mode keymap has the same name as the common keymap, with the
suffix .nvt appended.
The 3270-mode keymap has the suffix .3270 appended.
Thus specifying a c3270.keymap value of foo implies the use of
three different keymaps (if found): foo, foo.nvt and
foo.3270.
c3270.keymap is only the name; the actual keymap for name
foo can be defined either by the resource c3270.keymap.foo, or
by a
keymap file.
The keymap file is not searched for in any particular
location, nor does it have a special suffix, so c3270.keymap can specify the
full pathname of the keymap file.
Name: c3270.keymap.foo Type: String Description:
The definition of keymap foo.
Please refer to the How To Create a Custom Keymap document for a
full description of the syntax.
On OpenSSL,
gives the password for the private key file specified by c3270.keyFile, if it
is encrypted.
The value can take one of two forms. file:filename specifies
that the password is in a file. string:string gives the
password value in the resource itself.
On the Mac, this gives the password for the c3270.certfile certifiate file.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
When connected in line-at-a-time mode (when c3270 gathers a line of input
before forwarding it to the host), entering this character at the
keyboard causes
the current input line to be erased.
When connected in character-at-a-time mode (when c3270 sends each
keystroke to the host), this is the ASCII character that is sent to
the host by the DeleteField
action.
This setting is used only in NVT mode.
When true, c3270 will automatically insert a
CR/LF sequence when output reaches the end of a line. When false,
output will pile up at the end of each line until the host sends a
CR/LF sequence.
Defines a sequence of commands to run as soon as a host connection is
established. Usually these would be commands used to navigate through
login screens, such String, Tab and Enter.
If a c3270.hostsFile is in use and a matching entry is found, the login
macro from that entry will be used in preference to the c3270.loginMacro.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
When connected in line-at-a-time mode (when c3270 gathers a line of input
before forwarding it to the host), entering this character at the
keyboard removes any special meaning from the next character entered.
When true, c3270 will assume that pressing a key while holding down the
Alt key will cause the terminal to transmit the ASCII ESC character
(0x1b) before the key. Thus c3270 will interpret ESC-x as Alt-x.
When false, ESC is treated like any other input character.
The terminal model that c3270 is emulating. The model is in three parts,
separated by dashes; each part is optional.
3278 or 3279
3278 specifies a monochrome (green) 3270 display.
3279 specifies a color 3270 display.
2, 3, 4 or 5
The model number, which determines the size of the screen.
Model 2 has 24 rows and 80 columns.
Model 3 has 32 rows and 80 columns.
Model 4 has 43 rows and 80 columns.
Model 5 has 27 rows and 132 columns.
The default is
the largest model that will fit on the console or terminal
emulator window where c3270 is running.
Displaying the OIA (status line) requires one more row than
what is listed above.
E
An optional suffix which indicates support for the 3270 Extended
Data Stream (color, extended attributes, Query Reply). 3279
implies E.
If true, enables c3270 to accept mouse-control events on terminals and
emulators that support them. This allows a left mouse click to move the
cursor. On terminals like xterm and gnome-terminal, this means that the
usual mouse selection actions must be performed with the Shift key pressed.
If false, mouse-control events will not be enabled.
If true, the interactive c3270> prompt will be
disabled. In particular, this means that when c3270 is not connected to
a host, a keymap or an external script is the only way to start a new
host connection.
Name: c3270.nopSeconds Type: Integer Description:
If nonzero, c3270 will send a TELNET NOP to the host every n seconds.
This can be used to keep host sessions running that would otherwise be
terminated due to inactivity.
When true, causes c3270 to start immediately in NVT mode and allow keyboard
input immediately, instead of waiting for the host to send data or
negotiate 3270 mode. It also causes the default terminal type to be
xterm.
NVT mode can also be selected per session by prepending an A: onto
the hostname.
Used only in NVT line-at-a-time mode; similar to the stty parameter
of the same name.
It controls whether output newlines are mapped to CR/LF sequences.
If true, operator errors (typing into protected fields,
insert overflow, etc.) will cause the keyboard to lock with an error
message in the OIA (status line). If false, these
errors will simply cause the terminal bell will ring, without any
keyboard lock or message.
When true, c3270 will exit as soon as a host disconnects.
The default is false if no hostname is specified on the command
line or in a session file,
true otherwise.
Sets the screen dimensions to be larger than the default for the
chosen model. Its value is a string in the format
colsxrows.
It can also be the string auto, which will cause c3270 to use the
entire screen area of the
terminal.
It is used only if the c3270.model includes the "-E" (extended
data stream) suffix, and only if the specified dimensions are larger than
the model number defaults. Also, only hosts that support the Query Reply
structured field will function properly with c3270 in this mode.
Defines a proxy server that c3270 will use to connect to hosts.
The value is of the form
type:server[:port],
where options for type are described on the c3270 manual page.
If a value is set, c3270 will automatically start a
pr3287
printer session
when a host connection is established.
If the value is ".", the
pr3287
session will
be associated with the interactive terminal session (this requires that
the host supports TN3270E). Otherwise, the value is taken as the LU
name to associate with the printer session.
Note: This resource is for debug purposes only. To add optional
parameters to the wc3270 command line, use c3270.printer.options.
The shell command to use to start a printer session, when associated with
the current TN3270E session LU (when c3270.printerLU is ".").
Within the string, the following substitutions
are made:
When true, c3270 will report in the QueryReply(color) that it supports
background color; when false, it will not. It is disabled by default
because certain versions of GDDM are confused by this report and will
crash.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
When connected in line-at-a-time mode (when c3270
gathers a line of input before forwarding it to the host),
entering this character at the keyboard causes the
TELNET BREAK sequence to be sent to the host.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
When connected in line-at-a-time mode (when c3270
gathers a line of input before forwarding it to the host), entering this
character at the keyboard causes the current input line to be redisplayed.
The number of display lines to save for the scroll bar. Note that the
scroll bar operates on full screens of data, so the value divided by the
number of rows on the screen gives you the number of screens that will be
saved.
Name: c3270.sbcsCgcsgid Type: String Description:
Overrides the compiled-in value of the CGCSGID for the current host
character set. The value is an integer, which can be prefixed with '0x'
to be in hexadecimal. The upper 16 bits are the GCSGID (character
set) and the lower 16 bits are the CPGID (code page). This value
applies only to the single-byte (SBCS) character set. Use
c3270.dbcsCgcsgid for the double-byte (DBCS) character set.
When true, c3270 will save an ASCII version of the screen image in
a file every time it changes.
The file name defaults to
x3scr.pid.
The directory where the file is written is defined by c3270.traceDir.
If c3270.screenTraceFile is defined, it defines the
file name and c3270.traceDir is ignored.
If defined, c3270 will accept script connections on the specified local TCP
port.
The rules for the commands passed over these connections are documented
in the x3270-script manual page.
The syntax of this resource is [address:]port, where
address is an IPv4 or IPv6 address such as 127.0.0.1 or
0.0.0.0, and port is a TCP port such as 4081. The
address can also be specified as * to indicate 0.0.0.0. A
numeric IPv6 address must be enclosed in square brackets, e.g.,
[1234:5678::3], to avoid ambiguity between the colons inside the
address and the colon separating the address from the port. If no address
is specified, it defaults to 127.0.0.1.
When true, c3270 will create a Unix-domain socket than can be used
by an external script to control the session. The name of the socket is
/tmp/x3sck.pid. The -p option of the
x3270if command can be used to connect to this socket.
A list of whitespace-separated action names, with or without parentheses,
which are to be ignored. The actions will be completely inaccessible,
whether by keymaps, scripts, macros or the Execute an Action menu option.
This resource is intended to be used as a security precaution for users
who can define their own keymaps, but who do not have access to resource
definitions or command-line options.
An alternate name to be sent in response to the host's TELNET DO OPTION
TERMINAL-NAME request. The default is IBM-, followed by the
value of c3270.model.
When true, c3270 writes information about events and actions, as well as a
hexadecimal representation of all network traffic (and its interpretation)
into a file, which defaults to
x3trc.pid.
The directory where the file is written is defined by c3270.traceDir.
If c3270.traceFile is defined, it gives the entire pathname
and c3270.traceDir is ignored.
If defined, gives the name of the file that data stream and event traces
will be written into.
If it begins with ">>", data will be appended to the file.
If defined, gives a limit on the size of the file that data stream and
event traces will be written into. If not defined, or defined as 0,
there
will be no limit on the size of the file. The value is a number, followed
by an optional suffix. If the suffix is K (e.g., 128K),
the value will be multiplied by 1024.
If the suffix is M, the value will be multiplied
by (1024*1024). The size limit enforced at operation boundaries, not per
byte, so the actual file may grow slightly larger. When the file size
exceeds the limit, the trace file will be renamed with a "-" appended and
a new file started.
When true, c3270 will display fields with the underlined
attribute in a special way: blank characters will be translated to
underscore (_) characters. This is needed
on terminals that
are unable to display real underlined text.
When c3270 sends the host an AID (the Enter, Clear, PF
or PA
actions), it locks the keyboard until the host sends a reply to
unlock it. Some hosts unlock the keyboard before they are actually
finished processing the command, which can cause scripts to malfunction
subtly. To avoid this, c3270 implements a hack to briefly delay actually
unlocking the keyboard.
When c3270.unlockDelay is true (the default), the keyboard unlock
will be delayed for c3270.unlockDelayMs milliseconds. Setting it to
false removes this delay.
Overrides the default value for the unlock delay (the delay between the
host unlocking the keyboard and c3270 actually performing the unlock).
The value is in milliseconds; use 0 to turn off the delay completely,
including for macros.
If true (the default), c3270 will verify SSL/TLS host certificates, and not
allow an SSL/TLS connection to complete unless the host certificate can be
validated.
If false, c3270 will not verify SSL/TLS host certificates.
This resource is overridden by a y: prepended to the hostname when
connecting, which disables certificate checking.
This setting is used only in NVT mode, and is similar in function to
the stty parameter of the same name.
When connected in line-at-a-time mode (when c3270
gathers a line of input before forwarding it to the host), entering
this character at the keyboard erases the last word of input.
When connected in character-at-a-time mode (when c3270 sends each
keystroke to the host), this is the ASCII character that is sent to
the host by the DeleteWord action.
c3270 version 3.6ga4 Fri Dec 29 21:01:29 CST 2017
suite3270-3.6/c3270/html/SSL.html 0000664 0000765 0000765 00000021037 13221600611 014211 0 ustar pdm pdm
c3270 and TLS
x3270 and TLS
x3270 supports secure communication via the Transport Layer Security protocol
(TLS), formerly called the Secure Sockets Layer (SSL). (The text
below refers to x3270, but the descriptions apply to all of the
members of the suite.)
A secure connection can be negotiated immediately by specifying the
L: prefix on the hostname (e.g., L:foo.whatever.net), or can
be negotiated later via the TELNET STARTTLS option, which is initiated by
the host after the connection has been established.
TLS on Unix (except MacOS)
On Unix (except for MacOS), x3270 TLS support uses the
OpenSSL library.
Much of the information below is common to many OpenSSL clients and more
extensive documentation is available on the Web.
A Note on PEM Format
PEM (Privacy Enhanced Mail) is a text file format used for TLS
certificates and private keys.
It is easily recognized by headers like the following:
-----BEGIN CERTIFICATE-----
A certificate is the text between (and including) the BEGIN CERTIFICATE
and END CERTIFICATE headers. A private key is the text between (and including)
the BEGIN RSA PRIVATE KEY and END RSA PRIVATE KEY headers.
A PEM-format file can contain multiple certificates and keys.
Options and Resources
TLS is controlled by a number of different command-line options and resources.
Specifying the Server's Root Certificate
If your host's certificate was not signed by a well-known certificate authority
(CA), you can configure x3270 to accept it by specifying an alternate set of
root certificate(s).
The -cafile option (or the caFile resource) can be used to
specify a file containing one or more server root certificates.
This file must be in PEM format.
If there are a large number of certificates, the -cadir option (or
the caDir resource) can be used to specify a directory containing root
certificates.
This directory contains files that use the naming convention of
hash.seq, where hash is the hash of the certificate
value and seq is a sequence number (since multiple certificates could
have the same hash) starting with 0.
If your host uses a self-signed certificate, x3270 will not normally allow
TLS authentication with it. To allow authentication with self-signed
certificates, set the selfSignedOk resource to true.
Updating the Root Certificate Database
To avoid having to specify a root certificate for each invocation of x3270,
one or more certificates can be added to the OpenSSL root certificate database.
On Unix, this procedure is (unfortunately) an
operating-system- and release- specific procedure.
However, the OpenSSL root certificate database is common to all OpenSSL
applications on your workstation, so instructions on updating it should be
easily found on the web.
Specifying a Certificate for the Client (the Emulator)
If you have been issued a certificate and a private key to allow your client
(the emulator) to be authenticated by your host, there are several options that
allow this to be specified to x3270.
The -certfile option (or the certFile resource) defines a
file containing the client certificate.
By default, this file is in PEM format, but it can also be in ASN1 format,
which is specified by setting the -certfiletype option (or the
certFileType resource) to the value asn1.
The -chainfile option (or the chainFile resource) defines a
PEM-format file containing both the client certificate and any intermediate
certificates that were used to sign it.
If a chain file is specified, it is used instead of the certificate file.
Specifying the Private Key for the Client Certificate
The file containing the private key for the client certificate can be specified
by the -keyfile option or the keyFile resource.
This file is in PEM format by default, but can be in ASN1 format, by
specifying the -keyfiletype option or the keyFileType resource
with the value asn1.
If no explicit key file is specified, the default is to find the private
key in the chain file or the client certificate file (whichever was
specified).
If the private key is encrypted, then a password must be specified.
x3270 and c3270 will prompt for a password interactively.
For the other emulators, the password is given with the -keypasswd
option or the keyPasswd resource. (These also work with x3270 and c3270.)
The password can have one of two formats.
The format file:filename specifies a file containing the password.
The format string:string specifies the password as a string in
the option or resource directly.
Controlling Host Certificate Verification
By default, host certificates are always verified.
To disable host certificate verification, set the verifyHostCert
resource to false or specify the -noverifycert option.
When host certificates are verified, self-signed certificates are not
allowed.
To allow self-signed host certificates, set the selfSignedOk resource
to true or specify the -selfsignedok option.
Also, when host certificates are verified, the name in the host's
certificate is checked.
This check can be controlled by the acceptHostname resource or the
-accepthostname option.
The value can be any, which disables hostname checking, or
a specific hostname to use for comparison. (The form DNS:hostname is
also available for
backwards-compatibility.)
TLS on MacOS
On MacOS, x3270 uses Secure Transport for TLS.
Options and Resources
TLS is controlled by a number of different command-line options and resources.
Specifying a Certificate for the Client (the Emulator)
The -clientcert option (or the clientCert resource) gives the
name of a client certificate to be used. This certificate must be installed in
the keychain.
The -certfile option (or the certFile resource) defines a
file containing the client certificate.
The file must be in PKCS12 format.
Specifying a Password for the Client Certificate File
If the private key is encrypted, then a password must be specified.
x3270 and c3270 will prompt for a password interactively.
For the other emulators, the password is given with the -keypasswd
option or the keyPasswd resource. (These also work with x3270 and c3270.)
The password can have one of two formats.
The format file:filename specifies a file containing the password.
The format string:string specifies the password as a string in
the option or resource directly.
Controlling Host Certificate Verification
By default, host certificates are always verified.
To disable host certificate verification, set the verifyHostCert
resource to false or specify the -noverifycert option.
When host certificates are verified, the name in the host's
certificate is compared to the name used to establish the connection.
The acceptHostname resource or the -accepthostname option can be
used to specify a different name to compare.
TLS on Windows
wc3270, ws3270 and wpr3287 use the native Windows Schannel APIs for TLS.
This means that the emulators' TLS support is limited by the functionality
supported by the underlying OS, but it benefits from OS fixes and updates over
time without any need to update the app.
Options and Resources
TLS is controlled by a number of different command-line options and resources.
Specifying a Certificate for the Client (the Emulator)
The -clientcert option (or the clientCert resource) gives the
name of a client certificate to be used. This certificate must be installed in
the Personal certificate store.
Controlling Host Certificate Verification
By default, host certificates are always verified.
To disable host certificate verification, set the verifyHostCert
resource to false or specify the -noverifycert option.
When host certificates are verified, the name in the host's
certificate is compared to the name used to establish the connection.
The acceptHostname resource or the -accepthostname option can be
used to specify a different name to compare.
suite3270-3.6/c3270/html/Wishlist.html 0000664 0000765 0000765 00000001222 13221577163 015367 0 ustar pdm pdm
The c3270 Wish List
The c3270 Wish List
Here is a list of some of the more interesting suggestions and requests made
for c3270. You may also take this as a list of functions that are definitely
not in this version of c3270.
There is no guarantee that anyone is actively working on these,
but feel free to yourself...
The x3270 scripting facilities allow the interactive 3270
emulators x3270 and c3270
to be operated under the control of another
program, and forms the basis for the script-only emulator s3270.
There are
four
basic scripting methods.
The first is the peer script facility,
invoked by the x3270-script switch, and the default mode for s3270.
This runs the emulator as a child of another process.
Typically this would be a script using
expect(1), perl(1),
or the co-process facility of the Korn Shell
ksh(1).
In this mode, the emulator process looks for commands on its standard input,
and places the responses on standard output.
The second method is the child script
facility, invoked by the emulator's Script action.
This runs a script as a child process of the emulator.
The child has access to pipes connected to the
emulator; the emulator looks for commands on one pipe, and places the responses on the other.
The file descriptor of the pipe for commands to the emulator
is passed in the environment variable X3270INPUT (e.g., the text string "7" if
the file descriptor is 7); the file descriptor
of the pipe for responses from the emulator is passed in the environment
variable X3270OUTPUT.
The third method uses a TCP socket.
The -scrpiptport command-line option causes the emulator to
bind a socket to the specified port (on the IPv4 loopback address, 127.0.0.1).
The emulator accepts TCP connections on that port.
Multiple commands and responses can be sent over each connection.
The fourth method uses a Unix-domain socket.
The -socket command-line option causes the emulator to
create a Unix-domain stream socket named /tmp/x3sck.pid.
The emulator accepts connections to that socket.
Multiple commands and responses can be sent over each connection.
It is possible to nest the methods.
For example, a peer or TCP socket script can invoke the Script action.
The calling script will be resumed when the nested script completes.
Commands are emulator actions; the syntax is the same as for the
right-hand side of
an x3270 or
c3270 keymap.
Unlike translation tables, action names are case-insensitive, can be
uniquely abbreviated, and the parentheses may be omitted if there are
no parameters.
Any input line that begins with # or ! is treaded as a comment
and will be ignored.
Any emulator action may be specified.
Several specific actions have been defined for use by scripts, and the behavior
of certain other actions (and of the emulators in general) is different when
an action is initiated by a script.
Some actions generate output; some may delay completion until the certain
external events occur, such as the host unlocking the keyboard.
The completion of every command is marked by a two-line message.
The first line is the current status of the emulator, documented below.
If the command is successful, the second line is the string "ok"; otherwise it
is the string "error".
Status Format
The status message consists of 12 blank-separated fields:
1 Keyboard State
If the keyboard is unlocked, the letter
U.
If the keyboard is locked waiting for a response from the host, or if not
connected to a host, the letter
L.
If the keyboard is locked because of an operator error (field overflow,
protected field, etc.), the letter
E.
2 Screen Formatting
If the screen is formatted, the letter
F.
If unformatted or in NVT mode, the letter U.
3 Field Protection
If the field containing the cursor is protected, the letter
P.
If unprotected or unformatted, the letter
U.
4 Connection State
If connected to a host, the string
C(hostname).
Otherwise, the letter
N.
5 Emulator Mode
If connected in 3270 mode, the letter
I.
If connected in NVT line mode, the letter
L.
If connected in NVT character mode, the letter
C.
If connected in unnegotiated mode (no BIND active from the host), the letter
P.
If not connected, the letter
N.
6 Model Number (2-5)
7 Number of Rows
The current number of rows defined on the screen.
The host can request that the emulator
use a 24x80 screen, so this number may be smaller than the maximum number of
rows possible with the current model.
8 Number of Columns
The current number of columns defined on the screen, subject to the same
difference for rows, above.
9 Cursor Row
The current cursor row (zero-origin).
10 Cursor Column
The current cursor column (zero-origin).
11 Window ID
The X window identifier for the main
x3270
window, in hexadecimal preceded by
0x.
For
s3270 and c3270,
this is zero.
12 Command Execution Time
The time that it took for the host to respond to the previous commnd, in
seconds with milliseconds after the decimal.
If the previous command did not require a host response, this is a dash.
Differences
When an action is initiated by a script, the emulators
behave in several different ways:
If an error occurs in processing an action, the usual pop-up window does not
appear.
Instead, the text is written to standard output.
If end-of-file is detected on standard input, the emulator exits.
(A script can exit without killing the emulator
by using the CloseScript action, below.)
Note that this applies to peer scripts only; end-of-file on the pipe
connected to a child script simply causes the pipes to be closed and
the
Script
action to complete.
The Quit action always causes the emulator to exit.
(When called from the keyboard, it will exit only if not connected to a host.)
Normally, the AID actions (Clear,
Enter,
PF,
and
PA)
will not complete until the host unlocks the keyboard.
If the parameter to a
String
action includes a code for one these actions,
it will also wait for the keyboard to unlock before proceeding.
The AidWait toggle controls with behavior.
When this toggle is set (the default), actions block as described above.
When the toggle is clear, AID actions complete immediately.
The Wait(Output) action can then be used to delay a script until the
host changes something on the screen, and the
Wait(Unlock) action can be used to delay a script until the host
unlocks the keyboard, regardless of the state of the AidWait toggle.
Note that the
Script
action does not complete until
end-of-file is detected on the pipe or the CloseScript action is called by the child process.
This behavior is not affected by the state of the AidWait toggle.
Basic Programming Strategies
3270 session scripting can be more difficult than other kinds of scripting,
because it can be hard to tell when the host is finished processing a
command.
There is a well-defined 3270 Data Stream facility for doing this: The emulator
locks the keyboard when it sends the host an AID, and the later host unlocks
the keyboard.
The emulator supports this facility directly by not allowing an AID action
to complete until the keyboard is unlocked.
Unfortunately, some hosts and some host applications unlock the keyboard as
soon as they begin processing the command, instead of after it is finished.
A human operator can see on the screen when the command is finished (e.g.,
when a READY prompt is displayed), but it can be difficult for a script to
do this. For such early-unlock hosts, the only option in a script is to poll the
screen until it can determine that the command is complete.
Another complication is that host I/O and script operation are asynchronous.
That is, the host can update the screen at any time, even between actions that
are reading the screen contents, so a script can get inconsistent results.
Assistance for this problem is provided by the Snap action.
The Snap(Save) action saves a snapshot of the screen in a special
buffer. Then the script can use Snap variants of the Ascii and
Ebcdic actions (Snap(Ascii) and Snap(Ebcdic)) to query
the saved buffer -- which the host cannot modify -- to get the data it wants.
Finally, Snap(Wait Output) blocks the script until the host
modifies the screen, specifically since the last call to Snap(Save).
Thus a script can poll the screen efficiently by writing a loop that begins
with Snap(Save) and ends with Snap(Wait Output).
Script-Specific Actions
The following actions have been defined or modified for use with scripts.
(Note that unlike the display on the status line,
row
and
col
coordinates used in these actions use [0,0] as their origin at the upper left,
not [1,1]).
AnsiText
Outputs whatever data that has been output by the host in
NVT mode
since the last time that
AnsiText
was called.
The data is preceded by the string "data: ", and has had all control characters
expanded into C backslash sequences.
This is a convenient way to capture
NVT
mode output in a synchronous manner without trying to decode the screen
contents.
Ascii(row,col,rows,cols)
Ascii(row,col,length)
Ascii(length)
Ascii
Outputs an ASCII text representation of the screen contents.
Each line is preceded by the string "data: ", and there are no control
characters.
If four parameters are given, a rectangular region of the screen is output.
(Note that the row and column are zero-origin.)
If three parameters are given,
length
characters are output, starting at the specified zero-origin row and column.
If only the
length
parameter is given, that many characters are output, starting at the cursor
position.
If no parameters are given, the entire screen is output.
The EBCDIC-to-ASCII translation and output character set depend on the both the
emulator character set (the -charset option) and the locale.
UTF-8 and certain DBCS locales may result in multi-byte expansions of EBCDIC
characters that translate to ASCII codes greater than 0x7f.
AsciiField
Outputs an ASCII text representation of the field containing the cursor.
The text is preceded by the string "data: ".
Connect(hostname)
Connects to a host.
The command does not return until the emulator
is successfully connected in the proper mode, or the connection fails.
CloseScript(status)
Causes the emulator to stop reading commands from the script.
This is useful to allow a peer script to exit, with the emulator
proceeding interactively.
(Without this command, the emulator
would exit when it detected end-of-file on standard input.)
If the script was invoked by the
Script
action, the optional
status
is used as the return status of
Script;
if nonzero,
Script
will complete with an error, and if this script was invoked as part of
login through the
ibm_hosts
file, the connection will be broken.
ContinueScript([param])
Allows a script that is waiting in a
PauseScript
action, below, to continue.
The optional
param
string is output by the
PauseScript
action.
Disconnect
Disconnects from the host.
Ebcdic(row,col,rows,cols)
Ebcdic(row,col,length)
Ebcdic(length)
Ebcdic
The same function as
Ascii
above, except that rather than generating
ASCII
text, each character is output as a 2-digit or 4-digit hexadecimal
EBCDIC
code.
EbcdicField
The same function as
AsciiField
above, except that it generates hexadecimal
EBCDIC
codes.
Info(message)
In x3270, pops up an informational message.
In c3270 and wc3270, writes an informational message to the OIA (the line below
the display).
Not defined for s3270 or tcl3270.
Expect(text[,timeout])
Pauses the script until the specified
text
appears in the data stream from the host, or the specified
timeout
(in seconds) expires.
If no
timeout
is specified, the default is 30 seconds.
Text
can contain standard C-language escape (backslash) sequences.
No wild-card characters or pattern anchor characters are understood.
Expect
is valid only in
NVT
mode.
Keymap([keymap])
Adds or removes a temporary keymap.
If the keymap parameter is given, the named keymap is added.
If no parameter is given, the most recently added keymap is removed.
MoveCursor(row,col)
Moves the cursor to the specified zero-origin coordinates.
PauseScript
Stops a script until the
ContinueScript
action, above, is executed.
This allows a script to wait for user input and continue.
Outputs the single parameter to
ContinueScript, if one is given.
PrintText([command,]filter)
Pipes an ASCII representation of the current screen image through the named
filter, e.g., lpr.
Saves the current screen contents in a file.
With the html option, saves it as HTML, otherwise saves it as plain
ASCII.
The append option (the default) causes the data to be appended to the
file if it already exists. The replace option causes the file to be
overwritten instead.
PrintText(html,string)
Returns the current screen contents as HTML.
Query(keyword)
Returns state information.
Keywords are:
Keyword
Output
BindPluName
BIND PLU returned by the host
ConnectionState
TN3270/TN3270E mode and submode
CodePage
Host code page
Cursor
Cursor position (row col)
Formatted
3270 format state (formatted or unformatted)
Host
Host name and port
LocalEncoding
Local character encoding
LuName
Host name LU name
Model
3270 model name (IBM-327x-n)
ScreenCurSize
Current screen size (rows cols)
ScreenMaxSize
Maximum screen size (rows cols)
Ssl
SSL state (secure or not-secure) and host validation state (host-verified or host-unverified)
Without a keyword, Query returns each of the defined attributes,
one per line, labeled by its name.
ReadBuffer(Ascii)
Dumps the contents of the screen buffer, one line at a time.
Positions inside data fields are generally output as 2-digit hexadecimal codes
in the current display character set.
If the current locale specifies UTF-8 (or certain DBCS character sets), some
positions may be output as multi-byte strings (4-, 6- or 8-digit codes).
DBCS characters take two positions in the screen buffer; the first location
is output as a multi-byte string in the current locale codeset, and the second
location is output as a dash.
Start-of-field characters (each of which takes up a display position) are
output as SF(aa=nn[,...]), where aa is a field
attribute type and nn is its value.
Attribute
Values
c0 basic 3270
20 protected
10 numeric
04 detectable
08 intensified
0c non-display
01 modified
41 highlighting
f1 blink
f2 reverse
f4 underscore
f8 intensify
42 foreground
f0 neutral black
f1 blue
f2 red
f3 pink
f4 green
f5 turquoise
f6 yellow
f7 neutral white
f8 black
f9 deep blue
fa orange
fb purple
fc pale green
fd pale turquoise
fe grey
ff white
43 character set
f0 default
f1 APL
f8 DBCS
Extended attributes (which do not take up display positions) are output as
SA(aa=nn), with aa and nn having
the same definitions as above (though the basic 3270 attribute will never
appear as an extended attribute).
In addition, NULL characters in the screen buffer are reported as ASCII
character 00 instead of 20, even though they should be displayed as blanks.
ReadBuffer(Ebcdic)
Equivalent to ReadBuffer(Ascii), but with the data fields output as
hexadecimal EBCDIC codes instead.
Additionally, if a buffer position has the Graphic Escape attribute, it is
displayed as GE(xx).
Script(path[,arg...])
Runs a child script, passing it optional command-line arguments.
path must specify an executable (binary) program: the emulator will
create a new process and execute it. If you simply want the emulator to read
commands from a file, use the Source action.
Performs the Ascii action on the saved screen image.
Snap(Cols)
Returns the number of columns in the saved screen image.
Snap(Ebcdic,...)
Performs the Ebcdic action on the saved screen image.
Snap(ReadBuffer)
Performs the ReadBuffer action on the saved screen image.
Snap(Rows)
Returns the number of rows in the saved screen image.
Snap(Save)
Saves a copy of the screen image and status in a temporary buffer.
This copy can be queried with other
Snap
actions to allow a script to examine a consistent screen image, even when the
host may be changing the image (or even the screen dimensions) dynamically.
Snap(Status)
Returns the status line from when the screen was last saved.
Snap(Wait[,timeout],Output)
Pauses the script until the host sends further output, then updates the snap
buffer with the new screen contents.
Used when the host unlocks the keyboard (allowing the script to proceed after
an
Enter,
PF
or
PA
action), but has not finished updating the screen.
This action is usually invoked in a loop that uses the
Snap(Ascii)
or
Snap(Ebcdic)
action to scan the screen for some pattern that indicates that the host has
fully processed the last command.
The optional timeout parameter specifies a number of seconds to wait
before failing the Snap action. The default is to wait indefinitely.
Source(file)
Read and execute commands from file.
Any output from those commands will become the output from Source.
If any of the commands fails, the Source command will not abort;
it will continue reading commands until EOF.
Title(text)
Changes the
x3270
window title to text.
Transfer(keyword=value,...)
Invokes IND$FILE file transfer.
See FILE TRANSFER below.
Wait([timeout,] 3270Mode)
Used when communicating with a host that switches between
NVT mode and 3270 mode.
Pauses the script or macro until the host negotiates 3270 mode, then waits for
a formatted screen as above.
The optional timeout parameter specifies a number of seconds to wait
before failing the Wait action. The default is to wait indefinitely.
For backwards compatibility,
Wait(3270)
is equivalent to
Wait(3270Mode)
Wait([timeout,] Disconnect)
Pauses the script until the host disconnects.
Often used to after sending a
logoff
command to a VM/CMS host, to ensure that the session is not unintentionally
set to
disconnected
state.
The optional timeout parameter specifies a number of seconds to wait
before failing the Wait action. The default is to wait indefinitely.
Wait([timeout,] InputField)
A useful utility for use at the beginning of scripts and after the
Connect action.
In 3270 mode, waits until the screen is formatted, and the host has positioned
the cursor on a modifiable field.
In NVT mode, waits until the host sends at least one byte of data.
The optional timeout parameter specifies a number of seconds to wait
before failing the Wait action. The default is to wait indefinitely.
For backwards compatibility,
Wait
is equivalent to
Wait(InputField).
Wait([timeout,] NVTMode)
Used when communicating with a host that switches between 3270 mode and
NVT mode.
Pauses the script or macro until the host negotiates NVT
mode, then waits for
a byte from the host as above.
The optional timeout parameter specifies a number of seconds to wait
before failing the Wait action. The default is to wait indefinitely.
For backwards compatibility,
Wait(ansi)
is equivalent to
Wait(NVTMode).
Wait([timeout,] Output)
Pauses the script until the host sends further output.
Often needed when the host unlocks the keyboard (allowing the script to
proceed after a
Clear,
Enter,
PF
or
PA
action), but has not finished updating the screen.
Also used in non-blocking AID mode (see DIFFERENCES
for details).
This action is usually invoked in a loop that uses the
Ascii
or
Ebcdic
action to scan the screen for some pattern that indicates that the host has
fully processed the last command.
The optional timeout parameter specifies a number of seconds to wait
before failing the Wait action. The default is to wait indefinitely.
Wait([timeout,] Unlock)
Pauses the script until the host unlocks the keyboard.
This is useful when operating in non-blocking AID mode
(toggle AidWait clear), to wait for a host command to complete.
See DIFFERENCES for details).
The optional timeout parameter specifies a number of seconds to wait
before failing the Wait action. The default is to wait indefinitely.
Wait(timeout, Seconds)
Delays the script timeout seconds.
Unlike the other forms of Wait, the timeout is not optional.
WindowState(mode)
If mode is Iconic, changes the x3270 window into an icon.
If mode is Normal, changes the x3270 window from an icon to a
normal window.
File Transfer
The Transfer action implements IND$FILE file transfer.
This action requires that the IND$FILE
program be installed on the IBM host, and that the 3270 cursor
be located in a field that will accept a TSO or VM/CMS command.
The Transfer action
can be entered at the command prompt with no parameters, which will cause it
to prompt interactively for the file names and options.
It can also be invoked with parameters to define the entire transfer.
Because of the complexity and number of options for file transfer, the
parameters to the Transfer action take the unique form
of option=value, and can appear in any order.
Note that if the value contains spaces (such as a VM/CMS file name),
then the entire parameter must be quoted, e.g., "HostFile=xxx foo a".
The options are:
Option
Required?
Default
Other Values
Direction
No
receive
send
HostFile
Yes
LocalFile
Yes
Host
No
tso
vm, cics
Mode
No
ascii
binary
Cr
No
remove
add, keep
Remap
No
yes
no
Exist
No
keep
replace, append
Recfm
No
fixed, variable, undefined
Lrecl
No
Blksize
No
Allocation
No
tracks, cylinders, avblock
PrimarySpace
Sometimes
SecondarySpace
No
Avblock
Sometimes
BufferSize
No
4096
The option details are as follows.
Direction
send to send a file to the host,
receive to receive a file from the host.
HostFile
The name of the file on the host.
LocalFile
The name of the file on the local workstation.
Host
The type of host (which dictates the form of the IND$FILE command):
tso (the default), vm or cics.
Mode
Use ascii (the default) for a text file, which will be translated
between EBCDIC and ASCII as necessary.
Use binary for non-text files.
Cr
Controls how Newline characters are handled when transferring
Mode=ascii files.
remove (the default) strips Newline characters in local files
before transferring them to the host.
add adds Newline characters to each host file record before
transferring it to the local workstation.
keep preserves Newline characters when transferring a local file
to the host.
Remap
Controls text translation for Mode=ascii files.
The value yes (the default) causes c3270 to remap the text to ensure
maximum compatibility between the workstation's character set and encoding
and the host's EBCDIC code page.
The value no causes c3270 to pass the text to or from the host
as-is, leaving all translation to the IND$FILE program on the host.
Exist
Controls what happens when the destination file already exists.
keep (the default) preserves the file, causing the
Transfer action to fail.
replace overwrites the destination file with the source file.
append appends the source file to the destination file.
Recfm
Controls the record format of files created on the host.
(TSO and VM hosts only.)
fixed creates a file with fixed-length records.
variable creates a file with variable-length records.
undefined creates a file with undefined-length records (TSO hosts
only).
The Lrecl option controls the record length or maximum record length for
Recfm=fixed and Recfm=variable files, respectively.
Lrecl
Specifies the record length (or maximum record length) for files created on
the host.
(TSO and VM hosts only.)
Blksize
Specifies the block size for files created on the host.
(TSO and VM hosts only.)
Allocation
Specifies the units for the PrimarySpace and
SecondarySpace options: tracks, cylinders or
avblock. (TSO hosts only.)
PrimarySpace
Primary allocation for a file.
The units are given by the Allocation option.
Required when the Allocation is specified as something other than
default.
(TSO hosts only.)
SecondarySpace
Secondary allocation for a file.
The units are given by the Allocation option. (TSO hosts only.)
Avblock
Average block size, required when Allocation specifies avblock.
(TSO hosts only.)
BufferSize
Buffer size for DFT-mode transfers.
Can range from 256 to 32768.
Larger values give better performance, but some hosts may not be able to
support them.
There are also resources that control the default values for each of the
file transfer parameters.
These resources have the same names as the Transfer keywords, but with
ft prepended. E.g., the default for the Mode keyword is the
c3270.ftMode resource.
Version 3.6ga4
This HTML document and the accompanying troff document were generated with
a set of write-only m4 macros and the powerful vi editor.
Last modified 29 December 2017.
suite3270-3.6/c3270/ibm_hosts 0000664 0000765 0000765 00000002052 13221577163 013643 0 ustar pdm pdm # Sample x3270 ibm_hosts file.
#
# The format of each entry is:
#
# name type [prefix]hostname[:port] [actions]
#
# where
#
# name is a name you wish to give to the host. This name
# can be used on the x3270 command line, and is the
# name that will appear on the x3270 "Connect" menu.
#
# type is one of two keywords. The value "primary" means
# the entry will appear on the "Connect" menu. The
# value "alias" means it will not.
#
# hostname is the hostname or Internet address of the host to
# to connect to. It can be preceded by a prefix such
# as "s:" or "p:" or an LU name (see the x3270 man
# page), and it can be followed by a "/" or ":" and a
# port number to indicate a TCP port other than the
# x3270 default (usually "telnet").
#
# actions is an x3270 action or actions to execute once the
# connection is made and a data-entry field is defined.
# If the text looks like x3270 actions, e.g., PF(1),
# it is unmodified; otherwise the text is used as a
# parameter to the String() action.
#
#localhost primary 127.0.0.1
suite3270-3.6/c3270/ibm_hosts.man 0000664 0000765 0000765 00000005711 13221600611 014403 0 ustar pdm pdm '\" t
.TH IBM_HOSTS 5 "29 December 2017"
.SH "NAME"
ibm_hosts \- host database for x3270 and c3270
.SH "SYNOPSIS"
/usr/lib/X11/x3270/ibm_hosts
.SH "DESCRIPTION"
The \fBibm_hosts\fP
file contains information regarding IBM hosts on the network.
An \fIIBM host\fP is a host which can communicate with a 3270 terminal
emulator such as \fBx3270\fP or \fBc3270\fP.
Each line defines a name in the following format
(optional fields are shown in brackets):
.LP
\fIname\fP \fItype\fP [\fIopt\fP:]...[\fIluname\fP@]\fIhostname\fP[:\fIport\fP] [\fIactions\fP]
.LP
Items are separated by any number of blanks and/or TAB characters.
A line beginning with # is taken as a comment (note that # anywhere
else on a line does \fInot\fP indicate a comment).
.LP
The \fIname\fP field is a mnemonic used to identify the host.
.LP
The \fItype\fP field is a keyword that indicates the type of entry.
The value \fBprimary\fP means that the \fIname\fP
will be included in host-selection menus that may be displayed by a
3270 emulator.
The value \fBalias\fP means that the \fIname\fP
will not be included in menus, but will still be accepted as valid input
when a host name is required.
.LP
The \fIhostname\fP
field is the Internet hostname or dot-notation Internet address of the host.
.LP
The \fIhostname\fP
can include `s:' or `p:' prefixes, e.g., \fBs:finicky\fP
(see the \fIx3270\fP(1) or
\fIc3270\fP(1) man page sfor details).
It can also include an LU name, separated by an `@' character, e.g.,
\fBoddlu@bluehost\fP.
Finally, it can include a non-default \fIport\fP number, appended to the
\fIhostname\fP with a colon `:' character, e.g.,
\fBbluehost:97\fP.
(For compatability with earlier versions of \fIx3270\fP,
the \fIport\fP can also be separated by a slash `/' character.)
.LP
The optional \fIactions\fP
field specifies actions to be taken once the connection is made and a
data-entry field is defined.
If the text looks like an action, e.g.,
\fBPF(1)\fP,
it is unmodified; otherwise it is taken as the parameter to the
\fBString()\fP
action.
The
\fIactions\fP
are not intended for entering usernames and passwords; rather they provide an
automated way of specifying a front-end menu option.
.SH "EXAMPLE"
Given the following
\fBibm_hosts\fP
file:
.LP
.RS
mvs primary mvs-host
.br
tso alias mvs-host
.br
mvs2 primary mvs-host:4012
.br
vm primary vtam Tab() String(3) Enter()
.RE
A 3270 emulator will display four names (\fBmvs\fP, \fBmvs2\fP,
\fBafhost\fP and \fBvm\fP) on its hosts menu.
The names \fBmvs\fP and \fBtso\fP will cause connections to the host
\fBmvs-host\fP.
The name \fBmvs2\fP will also cause a connection to
\fBmvs-host\fP,
but to port 4012 rather than the emulator's default port (usually 23).
The name \fBvm\fP will cause the 3270 emulator to connect to the host
\fBvtam\fP (presumably some sort of host-selection front-end),
enter the string `3' on the second data-entry field on the screen, and
send the Enter \s-1AID\s+1 sequence.
.SH "FILES"
/usr/lib/X11/x3270/ibm_hosts
.SH "SEE ALSO"
x3270(1),
c3270(1)
suite3270-3.6/c3270/ibm_hosts.man.m4 0000664 0000765 0000765 00000011225 13221577163 014736 0 ustar pdm pdm dnl Copyright (c) 1994-2009, Paul Mattes.
dnl All rights reserved.
dnl
dnl Redistribution and use in source and binary forms, with or without
dnl modification, are permitted provided that the following conditions are met:
dnl * Redistributions of source code must retain the above copyright
dnl notice, this list of conditions and the following disclaimer.
dnl * Redistributions in binary form must reproduce the above copyright
dnl notice, this list of conditions and the following disclaimer in the
dnl documentation and/or other materials provided with the distribution.
dnl * Neither the names of Paul Mattes nor the names of his contributors
dnl may be used to endorse or promote products derived from this software
dnl without specific prior written permission.
dnl
dnl THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED
dnl WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
dnl EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dnl SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
dnl TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
dnl PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
dnl LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
dnl NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
dnl SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
XX_TH(IBM_HOSTS,5,XX_DATE)
XX_SH(Name)
ibm_hosts XX_DASHED() host database for x3270 and c3270
XX_SH(Synopsis)
/usr/lib/X11/x3270/ibm_hosts
XX_SH(Description)
The XX_FB(ibm_hosts)
file contains information regarding IBM hosts on the network.
An XX_FI(IBM host) is a host which can communicate with a 3270 terminal
emulator such as XX_FB(x3270) or XX_FB(c3270).
Each line defines a name in the following format
(optional fields are shown in brackets):
XX_LP
XX_FI(name) XX_FI(type) [XX_FI(opt):]...[XX_FI(luname)@]XX_FI(hostname)[:XX_FI(port)] [XX_FI(actions)]
XX_LP
Items are separated by any number of blanks and/or TAB characters.
A line beginning with `#' is taken as a comment (note that `#' anywhere
else on a line does XX_FI(not) indicate a comment).
XX_LP
The XX_FI(name) field is a mnemonic used to identify the host.
XX_LP
The XX_FI(type) field is a keyword that indicates the type of entry.
The value XX_FB(primary) means that the XX_FI(name)
will be included in host-selection menus that may be displayed by a
3270 emulator.
The value XX_FB(alias) means that the XX_FI(name)
will not be included in menus, but will still be accepted as valid input
when a host name is required.
XX_LP
The XX_FI(hostname)
field is the Internet hostname or dot-notation Internet address of the host.
XX_LP
The XX_FI(hostname)
can `include' ``s:'' or ``p:'' prefixes, e.g., XX_FB(s:finicky)
(see the XX_LINK(x3270-man.html,XX_FI(x3270)(1)) or
XX_LINK(c3270-man.html,XX_FI(c3270)(1)) man page sfor details).
It can also include an LU name, separated by an ``@'' character, e.g.,
XX_FB(oddlu@bluehost).
Finally, it can include a non-default XX_FI(port) number, appended to the
XX_FI(hostname) with a colon ``:'' character, e.g.,
XX_FB(bluehost:97).
(For compatability with earlier versions of XX_FI(x3270),
the XX_FI(port) can also be separated by a slash ``/'' character.)
XX_LP
The optional XX_FI(actions)
field specifies actions to be taken once the connection is made and a
data-entry field is defined.
If the text looks like an action, e.g.,
XX_FB(PF(1)),
it is unmodified; otherwise it is taken as the parameter to the
XX_FB(String())
action.
The
XX_FI(actions)
are not intended for entering usernames and passwords; rather they provide an
automated way of specifying a front-end menu option.
XX_SH(Example)
Given the following
XX_FB(ibm_hosts)
file:
XX_LP
XX_RS(`mvs primary mvs-host
XX_BR
tso alias mvs-host
XX_BR
mvs2 primary mvs-host:4012
XX_BR
vm primary vtam Tab() String(3) Enter()
')
A 3270 emulator will display four names (XX_FB(mvs), XX_FB(mvs2),
XX_FB(afhost) and XX_FB(vm)) on its hosts menu.
The names XX_FB(mvs) and XX_FB(tso) will cause connections to the host
XX_FB(mvs-host).
The name XX_FB(mvs2) will also cause a connection to
XX_FB(mvs-host),
but to port 4012 rather than the emulator's default port (usually 23).
The name XX_FB(vm) will cause the 3270 emulator to connect to the host
XX_FB(vtam) (presumably some sort of host-selection front-end),
enter the string ``3'' on the second data-entry field on the screen, and
send the Enter XX_SM(AID) sequence.
XX_SH(Files)
/usr/lib/X11/x3270/ibm_hosts
XX_SH(See Also)
XX_LINK(x3270-man.html,x3270(1)),
XX_LINK(c3270-man.html,c3270(1))
suite3270-3.6/c3270/keymap.h 0000664 0000765 0000765 00000003436 13221577163 013377 0 ustar pdm pdm /*
* Copyright (c) 2000-2009, 2015 Paul Mattes.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the names of Paul Mattes nor the names of his contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* c3270 version of keymap.h */
#define KM_CTRL 0x0001
#define KM_ALT 0x0002
void keymap_register(void);
void keymap_init(void);
char *lookup_key(int k, ucs4_t ucs4, int modifiers);
void keymap_dump(void);
const char *decode_key(int k, ucs4_t ucs4, int hint, char *buf);
suite3270-3.6/c3270/keymaps.inc 0000664 0000765 0000765 00000027770 13221577163 014113 0 ustar pdm pdm XX_SH(Keymaps)
The XX_FB(XX_DASHED(keymap)) option
or the XX_FB(XX_PRODUCT`'.keymap) resource
allow a custom keymap to be specified.
If the option XX_FB(XX_DASHED(keymap)) XX_FI(xxx) is given (or the
XX_FB(XX_PRODUCT`'.keymap) resource has the value XX_FI(xxx)),
XX_FB(XX_PRODUCT)
will look for a resource named XX_FB(XX_PRODUCT.keymap.)`'XX_FI(xxx).
If no resource definition is found, it will look for a file named
ifelse(XX_PRODUCT,c3270,`XX_FI(xxx)',XX_PRODUCT,wc3270,`XX_FI(xxx)XX_FB(.wc3270km)').
XX_LP
Multiple keymaps may be specified be separating their names with commas.
Definitions in later keymaps supercede those in earlier keymaps.
XX_LP
In addition, separate keymaps may be defined that apply only in 3270 mode or
XX_SM(NVT) mode.
For example, the resource definition
XX_FB(XX_PRODUCT.keymap.)`'XX_FI(xxx)`'XX_FB(.nvt)
or the file
ifelse(XX_PRODUCT,c3270,`'XX_FI(xxx)`'XX_FB(.nvt),
XX_PRODUCT,wc3270,`XX_FI(xxx)XX_FB(.nvt.wc3270km)')
will augment the definition
of keymap XX_FI(xxx) in XX_SM(NVT) mode.
Similarly, the resource definition
XX_FB(XX_PRODUCT.keymap.)`'XX_FI(xxx)`'XX_FB(.3270)
or the file
ifelse(XX_PRODUCT,c3270,`'XX_FI(xxx)`'XX_FB(.3270),
XX_PRODUCT,wc3270,`XX_FI(xxx)XX_FB(.3270.wc3270km)')
will augment the definition
of keymap XX_FI(xxx) in 3270 mode.
XX_LP
Temporary keymaps can also be added or removed while XX_PRODUCT is running
with the XX_FB(Keymap) action.
See XX_LINK(XX_X3270-script.html,XX_FI(XX_X3270-script)(1)) for details.
XX_LP
Each line (rule) in a keymap specifies actions to perform when a
particular key or sequence of keys is pressed.
Keymap rules have the following syntax:
XX_LP
ifelse(XX_PRODUCT,c3270,
`XX_RS(`[XX_FB(Meta)][XX_FB(Ctrl)]XX_FB(XX_KEY())`'XX_FI(key)...: XX_FI(action)[(XX_FI(param)[,...])] ...')
',
`XX_RS(`[XX_FI(modifier)...]XX_FB(XX_KEY())`'XX_FI(key)...: XX_FI(action)[(XX_FI(param)[,...])] ...')
')dnl
XX_LP
Here is a sample keymap definition from a file:
XX_LP
XX_RS(`! Lines beginning with ! are ignored and can
XX_BR()
! occur anywhere.
XX_BR()
ifelse(XX_PRODUCT,wc3270,`! The line below will be displayed
XX_BR()
! by the New Session Wizard.
XX_BR
!description: An example.
XX_BR
')dnl
! Definition of keymap xxx
XX_BR()
! XX_NBSP()When Alt-c is pressed, clear the screen.
XX_BR()
XX_KEY(Alt,c): Clear()
XX_BR()
! XX_NBSP()When PageUp is pressed, send PF7 to the host.
XX_BR()
ifelse(XX_PRODUCT,c3270,`XX_KEY(,PPAGE): PF(7)',
`XX_KEY(,PRIOR): PF(7)')
XX_BR()
! XX_NBSP()When Ctrl-a is pressed, then F1, send PF13
XX_BR()
! XX_NBSP()to the host.
XX_BR()
XX_KEY(Ctrl,a) XX_KEY(,F1): PF(13)')
XX_LP
Here is the same definition as a resource:
XX_LP
XX_RS(`! Lines beginning with ! are ignored, but NOT
XX_BR()
! within a definition.
XX_BR()
! Note that the XX_BACKSLASH() is required at the end of the
XX_BR()
! first line, and XX_BACKSLASH(n)`'XX_BACKSLASH() is
XX_BR()
! required at the end of every other line except
XX_BR()
! the last.
XX_BR()
! Definition of keymap xxx
XX_BR()
XX_PRODUCT.keymap.xxx: XX_BACKSLASH()
XX_BR()
XX_NBSP()XX_KEY(Alt,c): Clear() XX_BACKSLASH(n)`'XX_BACKSLASH()
XX_BR()
XX_NBSP()ifelse(XX_PRODUCT,c3270,`XX_KEY(,PPAGE): PF(7) XX_BACKSLASH(n)`'XX_BACKSLASH()',
`XX_KEY(,PRIOR): PF(7) \n\')
XX_BR()
XX_NBSP()XX_KEY(Ctrl,A) XX_KEY(,F1): PF(13)')
XX_LP
The optional
ifelse(XX_PRODUCT,wc3270,`XX_FB(Shift), ')dnl
XX_FB(Alt) or XX_FB(Ctrl) modifiers specify that
the
ifelse(XX_PRODUCT,wc3270,`XX_FB(Shift), ')dnl
XX_FB(Alt) and XX_FB(Ctrl) keys are pressed along with the
specified XX_FI(key), respectively.
ifelse(XX_PRODUCT,wc3270,
`The XX_FB(LeftCtrl), XX_FB(RightCtrl), XX_FB(LeftAlt), and XX_FB(RightAlt)
modifiers specifify a particular XX_FB(Ctrl) or XX_FB(Alt) key.
')dnl
ifelse(XX_PRODUCT,wc3270,`The XX_FB(Enhanced) modifier is also available;
XX_FB(Enhanced XX_LT()Key>ENTER) is the keypad XX_FB(Enter) key.
')dnl
XX_FI(Key) is either an XX_SM(ISO) 8859-1 symbol name, such as XX_FB(equal)
for XX_DQUOTED(=) and XX_FB(a) for XX_DQUOTED(a), or a symbolic
ifelse(XX_PRODUCT,c3270,`XX_FB(ncurses)',XX_PRODUCT,wc3270,`Windows') key name,
such as XX_FB(UP).
More than one XX_FI(key) can be specified, indicating that a sequence of
keys must be pressed in order for the rule to be matched.
The XX_FI(action) is an action from the XX_LINK(#Actions,XX_SM(ACTIONS)) list
above.
More than one XX_FI(action) may be specified; they will be executed in order.
XX_LP
Keymap entries are case-sensitive and modifier-specific.
This means that a keymap for the XX_FB(b) key will match only a
lowercase XX_FB(b).
Actions for uppercase XX_FB(B), or for XX_FB(Alt-B),
must be specified separately.
ifelse(XX_PRODUCT,wc3270,
`XX_LP
Available symbolic key names are:
XX_FB(ADD),
XX_FB(ALT),
XX_FB(APPS),
XX_FB(BACK) (BackSpace),
XX_FB(BackSpace) (alias for BACK),
XX_FB(CLEAR),
XX_FB(CTRL),
XX_FB(DECIMAL),
XX_FB(DELETE),
XX_FB(DIVIDE),
XX_FB(DOWN),
XX_FB(END),
XX_FB(Enter) (alias for RETURN),
XX_FB(ESCAPE),
XX_FB(Esc) (alias for ESCAPE),
XX_FB(EXECUTE),
XX_FB(F1),
XX_FB(F2),
XX_FB(F3),
XX_FB(F4),
XX_FB(F5),
XX_FB(F6),
XX_FB(F7),
XX_FB(F8),
XX_FB(F9),
XX_FB(F10),
XX_FB(F11),
XX_FB(F12),
XX_FB(F13),
XX_FB(F14),
XX_FB(F15),
XX_FB(F16),
XX_FB(F17),
XX_FB(F18),
XX_FB(F19),
XX_FB(F20),
XX_FB(F21),
XX_FB(F22),
XX_FB(F23),
XX_FB(F24),
XX_FB(HELP),
XX_FB(HOME),
XX_FB(INSERT),
XX_FB(LEFT),
XX_FB(LMENU),
XX_FB(LWIN) (Left Windows key),
XX_FB(MULTIPLY),
XX_FB(NEXT) (Page Down),
XX_FB(NUMLOCK),
XX_FB(NUMPAD0),
XX_FB(NUMPAD1),
XX_FB(NUMPAD2),
XX_FB(NUMPAD3),
XX_FB(NUMPAD4),
XX_FB(NUMPAD5),
XX_FB(NUMPAD6),
XX_FB(NUMPAD7),
XX_FB(NUMPAD8),
XX_FB(NUMPAD9),
XX_FB(PageUp) (alias for PRIOR),
XX_FB(PageDown) (alias for Next),
XX_FB(PAUSE),
XX_FB(PRINT),
XX_FB(PRIOR) (Page Up),
XX_FB(RETURN) (Enter),
XX_FB(RIGHT),
XX_FB(RMENU),
XX_FB(RWIN) (Right Windows key),
XX_FB(SCROLL),
XX_FB(SELECT),
XX_FB(SEPARATOR),
XX_FB(SHIFT),
XX_FB(SLEEP),
XX_FB(SNAPSHOT),
XX_FB(SUBTRACT),
XX_FB(TAB)
and
XX_FB(UP).
In addition, any Windows VKey code can be specified in hexadecimal with the
syntax XX_FB(VKEY-0x)XX_FI(nn).
')dnl
XX_LP
The base keymap is:
XX_LP
XX_TS(2,l l.)
XX_TR(XX_TD(Key) XX_TD(Action))
XX_T_()
ifelse(XX_PRODUCT,c3270,
`XX_TR(XX_TD(XX_KEY(Ctrl,`]')) XX_TD(Escape))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(Ctrl,a)) XX_TD(`Key(0x01)'))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(Ctrl,`]')) XX_TD(`Key(0x1d)'))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,Tab)) XX_TD(BackTab))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,c)) XX_TD(Clear))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,e)) XX_TD(Escape))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,r)) XX_TD(Reset))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,k)) XX_TD(Keypad))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,l)) XX_TD(Redraw))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,m)) XX_TD(Compose))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,n)) XX_TD(Menu))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,p)) XX_TD(PrintText))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,^)) XX_TD(Key(notsign)))
XX_TR(XX_TD(XX_KEY(Ctrl,k)) XX_TD(Keypad))
XX_TR(XX_TD(XX_KEY(Ctrl,n)) XX_TD(Menu))
XX_TR(XX_TD(XX_KEY(,UP)) XX_TD(Up))
XX_TR(XX_TD(XX_KEY(,DOWN)) XX_TD(Down))
XX_TR(XX_TD(XX_KEY(,LEFT)) XX_TD(Left))
XX_TR(XX_TD(XX_KEY(,RIGHT)) XX_TD(Right))
XX_TR(XX_TD(XX_KEY(,`F(XX_FI(n))')) XX_TD(`PF(XX_FI(n))'))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,`F(XX_FI(n))')) XX_TD(`PF(XX_FI(n)+12)'))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,1)) XX_TD(`PA(1)'))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,2)) XX_TD(`PA(2)'))
XX_TR(XX_TD(XX_KEY(Ctrl,a) XX_KEY(,3)) XX_TD(`PA(3)'))
XX_TR(XX_TD(XX_KEY(,PPAGE)) XX_TD(`Scroll(Backward)'))
XX_TR(XX_TD(XX_KEY(,NPAGE)) XX_TD(`Scroll(Forward)'))',
XX_PRODUCT,wc3270,
`XX_TR(XX_TD(XX_KEY(Alt,1)) XX_TD(`PA(1)'))
XX_TR(XX_TD(XX_KEY(Alt,2)) XX_TD(`PA(2)'))
XX_TR(XX_TD(XX_KEY(Alt,3)) XX_TD(`PA(3)'))
XX_TR(XX_TD(XX_KEY(Alt Ctrl,`]')) XX_TD(`Key(0x1d)'))
XX_TR(XX_TD(XX_KEY(Ctrl,`]')) XX_TD(Escape))
XX_TR(XX_TD(XX_KEY(Alt,^)) XX_TD(Key(notsign)))
XX_TR(XX_TD(XX_KEY(Ctrl,c)) XX_TD(Copy))
XX_TR(XX_TD(XX_KEY(Alt,k)) XX_TD(Keymap))
XX_TR(XX_TD(XX_KEY(Alt,l)) XX_TD(Redraw))
XX_TR(XX_TD(XX_KEY(Alt,m)) XX_TD(Compose))
XX_TR(XX_TD(XX_KEY(Alt,n)) XX_TD(Menu))
XX_TR(XX_TD(XX_KEY(Ctrl,p)) XX_TD(Paste))
XX_TR(XX_TD(XX_KEY(Alt,p)) XX_TD(PrintText))
XX_TR(XX_TD(XX_KEY(Ctrl,x)) XX_TD(Cut))
XX_TR(XX_TD(XX_KEY(,PRIOR)) XX_TD(`Scroll(Backward)'))
XX_TR(XX_TD(XX_KEY(,NEXT)) XX_TD(`Scroll(Forward)'))
XX_TR(XX_TD(XX_KEY(Shift,`F`'XX_FI(n)')) XX_TD(`PF(XX_FI(n)+12)'))')
XX_TE()
XX_LP
The base 3270-mode keymap adds:
XX_LP
XX_TS(2,l l.)
XX_TR(XX_TD(Key) XX_TD(Action))
XX_T_()
ifelse(XX_PRODUCT,c3270,
`XX_TR(XX_TD(XX_KEY(Ctrl,c)) XX_TD(Clear))
XX_TR(XX_TD(XX_KEY(Ctrl,d)) XX_TD(Dup))
XX_TR(XX_TD(XX_KEY(Ctrl,f)) XX_TD(FieldMark))
XX_TR(XX_TD(XX_KEY(Ctrl,i)) XX_TD(Tab))
XX_TR(XX_TD(XX_KEY(Ctrl,l)) XX_TD(Redraw))
XX_TR(XX_TD(XX_KEY(Ctrl,r)) XX_TD(Reset))
XX_TR(XX_TD(XX_KEY(Ctrl,u)) XX_TD(DeleteField))
XX_TR(XX_TD(XX_KEY(,BackSpace)) XX_TD(BackSpace))
XX_TR(XX_TD(XX_KEY(,Return)) XX_TD(Enter))
XX_TR(XX_TD(XX_KEY(,Tab)) XX_TD(Tab))
XX_TR(XX_TD(XX_KEY(,Linefeed)) XX_TD(Newline))
XX_TR(XX_TD(XX_KEY(,BACKSPACE)) XX_TD(BackSpace))
XX_TR(XX_TD(XX_KEY(,DC)) XX_TD(Delete))
XX_TR(XX_TD(XX_KEY(,HOME)) XX_TD(Home))
XX_TR(XX_TD(XX_KEY(,IC)) XX_TD(ToggleInsert))',
XX_PRODUCT,wc3270,
`XX_TR(XX_TD(XX_KEY(Ctrl,a)) XX_TD(Attn))
XX_TR(XX_TD(XX_KEY(Alt,a)) XX_TD(Attn))
XX_TR(XX_TD(XX_KEY(Alt,c)) XX_TD(Clear))
XX_TR(XX_TD(XX_KEY(Ctrl,d)) XX_TD(Dup))
XX_TR(XX_TD(XX_KEY(Alt,d)) XX_TD(Dup))
XX_TR(XX_TD(XX_KEY(Ctrl,f)) XX_TD(FieldMark))
XX_TR(XX_TD(XX_KEY(Alt,f)) XX_TD(FieldMark))
XX_TR(XX_TD(XX_KEY(Ctrl,h)) XX_TD(Erase))
XX_TR(XX_TD(XX_KEY(Alt,i)) XX_TD(Insert))
XX_TR(XX_TD(XX_KEY(Shift Ctrl,i)) XX_TD(BackTab))
XX_TR(XX_TD(XX_KEY(Ctrl,i)) XX_TD(Tab))
XX_TR(XX_TD(XX_KEY(Ctrl,j)) XX_TD(Newline))
XX_TR(XX_TD(XX_KEY(Ctrl,l)) XX_TD(Redraw))
XX_TR(XX_TD(XX_KEY(Ctrl,m)) XX_TD(Enter))
XX_TR(XX_TD(XX_KEY(Ctrl,r)) XX_TD(Reset))
XX_TR(XX_TD(XX_KEY(Alt,r)) XX_TD(Reset))
XX_TR(XX_TD(XX_KEY(Ctrl,u)) XX_TD(DeleteField))
XX_TR(XX_TD(XX_KEY(,INSERT)) XX_TD(ToggleInsert))
XX_TR(XX_TD(XX_KEY(Shift,TAB)) XX_TD(BackTab))
XX_TR(XX_TD(XX_KEY(,BACK)) XX_TD(Erase))
XX_TR(XX_TD(XX_KEY(Shift,END)) XX_TD(EraseEOF))
XX_TR(XX_TD(XX_KEY(,END)) XX_TD(FieldEnd))
XX_TR(XX_TD(XX_KEY(Ctrl,LEFT)) XX_TD(PreviousWord))
XX_TR(XX_TD(XX_KEY(Ctrl,RIGHT)) XX_TD(NextWord))
XX_TR(XX_TD(XX_KEY(Shift,LEFT)) XX_TD(SelectLeft))
XX_TR(XX_TD(XX_KEY(Shift,RIGHT)) XX_TD(SelectRight))
XX_TR(XX_TD(XX_KEY(Shift,UP)) XX_TD(SelectUp))
XX_TR(XX_TD(XX_KEY(Shift,DOWN)) XX_TD(SelectDown))
XX_TR(XX_TD(XX_KEY(,PRIOR)) XX_TD(`PF(7)'))
XX_TR(XX_TD(XX_KEY(,NEXT)) XX_TD(`PF(8)'))')
XX_TE()
ifelse(XX_PRODUCT,c3270,
`XX_SH(The Meta or Alt Key)
Some keyboards do not have a XX_FB(Meta) key.
Instead, they have an XX_FB(Alt) key.
Sometimes this key acts as a proper
XX_FB(Meta) key, that is, it is a modifier key that sets the high-order bit
(0x80) in the code that is transmitted for each key.
Other keyboards send a two-character sequence when
the XX_FB(Alt) key is pressed with another key: the Escape character (0x1b),
followed by the code for the other key.
XX_LP
The resource XX_FB(XX_PRODUCT.metaEscape) and the termcap XX_FB(km) attribute
control how XX_FB(XX_PRODUCT) will interpret these sequences.
When XX_FB(XX_PRODUCT.metaEscape) is set to XX_FB(true), or when
XX_FB(XX_PRODUCT.metaEscape) is set to XX_FB(auto) and the termcap XX_FB(km)
attribute is set, the keyboard is assumed to have a separate XX_FB(Meta) key.
The Escape key can be used as an ordinary data key and has no special meaning.
XX_LP
When XX_FB(XX_PRODUCT.metaEscape) is set to XX_FB(true), or when
XX_FB(XX_PRODUCT.metaEscape) is set to XX_FB(auto) and the termcap XX_FB(km)
attribute is not set, the keyboard is assumed to use the Escape character
as a prefix to indicate that the following character is supposed to have the
high-order bit set.
When XX_FB(XX_PRODUCT) sees an Escape character from the keyboard, it sets a short
timeout.
If another character arrives before the timeout expires, then XX_FB(XX_PRODUCT)
will combine the two characters, setting the high-order bit of the second.
In an event trace file, the combined character is listed as XX_FI(derived).
In a keymap, only the combined character or the XX_FB(Meta) prefix may be used.
The Escape key can still be used by itself, but only if there is a short pause
before pressing another key.
XX_LP
The default value for XX_FB(XX_PRODUCT.metaEscape) is XX_FB(auto).')dnl
suite3270-3.6/c3270/LICENSE 0000664 0000765 0000765 00000003426 13221577163 012744 0 ustar pdm pdm Copyright (c) 1993-2016, Paul Mattes.
Copyright (c) 2004-2005, Don Russell.
Copyright (c) 2004, Dick Altenbern.
Copyright (c) 1990, Jeff Sparkes.
Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA
30332.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff
Sparkes, GTRC nor the names of their contributors may be used to endorse
or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, JEFF SPARKES, DICK
ALTENBERN AND GTRC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL,
DICK ALTENBERN, JEFF SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
suite3270-3.6/c3270/m4man 0000775 0000765 0000765 00000003420 13221577163 012673 0 ustar pdm pdm #!/usr/bin/env bash
# generate a man page or html man page from m4 source
function usage()
{
echo >&2 "usage: $0 -t html|man -p product -n name [-o outfile] source"
exit 1
}
while [ $# -gt 0 ]
do case $1 in
-t)
shift
case $1 in
html|man)
type=$1
shift
;;
*)
usage
esac
;;
-p)
shift
product=$1
shift
;;
-n)
shift
name=$1
shift
;;
-o)
shift
outfile=$1
shift
;;
-*)
usage
;;
*)
if [ -n "$source" ]
then usage
fi
source=$1
shift
esac
done
if [ -z "$type" -o -z "$product" -o -z "$name" -o -z "$source" ]
then usage
fi
. ./version.txt
date=`date "+%d %B %Y"`
# platform
case $product in
x3270|x3270|c3270|s3270|tcl3270|pr3287)
platform=unix
c3270=c3270
s3270=s3270
pr3287=pr3287
x3270=x3270
;;
wc3270|ws3270|wpr3287)
platform=windows
c3270=wc3270
s3270=ws3270
pr3287=wpr3287
x3270=wc3270
;;
*)
echo >&2 "Unknown product: $1"
exit 1
esac
# mode
case $product in
c3270|wc3270)
mode=console
;;
s3270|ws3270)
mode=script
;;
*)
mode=$product
;;
esac
# interactive
case $product in
x3270|c3270|wc3270)
interactive=yes
;;
*)
interactive=no
;;
esac
# set up output file, and make sure it will be deleted
if [ -n "$outfile" ]
then tf=/tmp/m4man$$
rm -f $tf
trap "rm -f $tf" exit
trap "exit" INT QUIT HUP TERM
fi
/usr/bin/m4 -DXX_PRODUCT=$product -DXX_PAGENAME=$name \
-DXX_PLATFORM=$platform -DXX_MODE=$mode -DXX_INTERACTIVE=$interactive \
-DXX_C3270=$c3270 -DXX_S3270=$s3270 -DXX_PR3287=$pr3287 -DXX_X3270=$x3270 \
-DXX_DATE="$date" -DXX_VERSION_NUMBER=$version -DXX_CYEAR=$cyear \
$type.m4 $source |
if [ -n "$outfile" ]
then cat >$tf
else cat
fi
rc=$?
if [ -n "$outfile" -a $rc -eq 0 ]
then mv $tf $outfile
fi
exit $rc
suite3270-3.6/c3270/Makefile.aux 0000664 0000765 0000765 00000006535 13221577163 014177 0 ustar pdm pdm #
# Copyright (c) 1995-2011, 2013-2015, 2017 Paul Mattes.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the names of Paul Mattes nor the names of his contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Auxiliary makefile for c3270
PRODUCT = c3270
all:
@echo "Must pick a specific make target."
DOCS = $(PRODUCT).man html/$(PRODUCT)-man.html html/ReleaseNotes.html \
html/Resources.html html/SSL.html html/x3270-script.html \
ibm_hosts.man x3270-script.man
# Rule for building the source tarball: run autoconf and build the
# documentation.
src.tgz: prepare $(DOCS) Makefile.aux
# Rule for preparing a freshly-pulled working copy: run autoconf.
prepare: configure
configure: configure.in
autoconf
MANDEP = man.m4 html.m4 m4man Makefile.aux version.txt
MKMAN = ./m4man -t man -p $(PRODUCT)
MKHTML = ./m4man -t html -p $(PRODUCT)
# Rule for building the documentation.
man: $(DOCS)
# Rules for building man pages and derived HTML documentation.
$(PRODUCT).man: x3270.man.m4 ft.inc resources.inc keymaps.inc hostname.inc $(MANDEP)
$(MKMAN) -n $(PRODUCT) -o $@ x3270.man.m4
html/$(PRODUCT)-man.html: x3270.man.m4 ft.inc resources.inc keymaps.inc hostname.inc $(MANDEP)
$(MKHTML) -n $(PRODUCT) -o $@ x3270.man.m4
ibm_hosts.man: ibm_hosts.man.m4 $(MANDEP)
$(MKMAN) -n ibm_hosts -o $@ ibm_hosts.man.m4
html/ibm_hosts.html: ibm_hosts.man.m4 ft.inc $(MANDEP)
$(MKHTML) -n ibm_hosts -o $@ ibm_hosts.man.m4
x3270-script.man: x3270-script.man.m4 ft.inc $(MANDEP)
$(MKMAN) -n x3270-script -o $@ x3270-script.man.m4
html/x3270-script.html: x3270-script.man.m4 ft.inc $(MANDEP)
$(MKHTML) -n x3270-script -o $@ x3270-script.man.m4
html/ReleaseNotes.html: html/documentation-relnotes-body.html mkstand.bash
./mkstand.bash "$(PRODUCT) Release Notes" html/documentation-relnotes-body.html $@
html/Resources.html: resource-body make-resource-doc.pl version.txt
./make-resource-doc.pl -o $@ $(PRODUCT)