Provided by: seyon_2.20c-31_amd64 bug

NAME

       Seyon - X11 Telecommunications Package.

SYNOPSIS

       seyon [-option ...] [-toolkit_option ...] [-- -emulator_option ...]

DESCRIPTION

       Seyon is a complete full-featured telecommunications package for the X Window System. Some
       of its features are:

              * Dialing directory that supports an unlimited number of entries. The directory  is
              fully  mouse-driven  and features call progress monitoring, dial timeout, automatic
              redial, multi-number dialing, and circular redial queue. Each item in  the  dialing
              directory can be configured with its own baud rate, bit mask, and script file.  The
              dialing directory uses a plain-text phone book  that  can  be  edited  from  withen
              Seyon. Seyon also supports manual dialing.

              *  Terminal  emulation  window supporting DEC VT02, Tektronix 4014, and ANSI. Seyon
              delegates its terminal emulation to xterm, so all the familiar xterm functions such
              as  the  scroll-back  buffer,  cut-and-paste  utility, and visual bell are availabe
              through Seyon's terminal emulation window. Using xterm also means that Seyon has  a
              more  complete  emulation  of  VT102  than other any Unix or DOS telecommunications
              program. Other terminal emulation programs can also be used with Seyon to suit  the
              user's  need;  for  example, color xterm can be used to provide emulation for color
              ANSI (popular on many BBS systems), and xvt can be used if memory is a bit tight.

              * Script language to automate tedious tasks such  as  logging  into  remote  hosts.
              Seyon's  script  interpreter uses plain-text files and has a syntax similar to that
              of sh, with a few extra addtions. It supports  many  familiar  statements  such  as
              conditional  branching  by  if-else and looping by goto. Scripts may be assigned to
              items in the dialing directory for automatic execution after a connection is made.

              * Unlimited number of slots for external file transfer  protocols.   Protocols  are
              activated  from  a  mouse-driven  transfer  console  that  uses  a plain-text file,
              editable from withen Seyon, for protocol configuration. Seyon prompts the user  for
              filenames  only  if  the  chosen  protocol  requires  filenames  or if the transfer
              operation is an upload, for which Seyon also accepts wildcards.  Multiple  download
              directories can be specified for the different transfer slots.

              *  Support  for  Zmodem  auto-download. Seyon detects incoming Zmodem signature and
              automatically activates a user-specified zmodem protocol to receive incoming files.
              Zmodem transfers can thus be completely automatic and require no user intervention.

              *  Translation  modes.  Seyon  can perfrom useful trasnlations on the user's input.
              From example, Seyon can translate backspace to delete (useful on may Unix systems),
              newline  to  carriage  return (useful on many BBS hosts), and my favorite, meta key
              tranlation: to send keys pressed while the meta (ALT) key is held down as an escape
              (ESC)  followed  by  the key press. The latter mode simulates the meta key on hosts
              that do not support 8-bit-clean connections and makes possible the use of the  meta
              key in programs like Emacs on such hosts.

              * Other features: interactive setting of program parameters, on-line help, software
              (XONN/XOFF) and hardware (RTS/CTS) flow control, session capture  to  a  file,  and
              temporary running of a local shell in the terminal emulation window.

       Seyon  is intended to be both simple and extensively configurable.  Almost every aspect of
       Seyon can be configured via the resources to suit the user's taste.

OPTIONS

       Besides the toolkit options, Seyon recognizes the following command-line switches:

       -modems <device-list>
              Overrides the resource modems. Refer to the description  of  that  resource  below.
              Unlike the resource, however, the list here has to be quoted if it consists of more
              than one entry.

       -emulator <terminal-emulation-program>
              Instructs Seyon to use the specified program as the terminal  emulator.   If  Seyon
              fails  to  execute  that program, it will fall back to xterm. If this option is not
              given, Seyon will try to use seyon-emu, which should be a  link  to  your  favorite
              terminal  emulation  program. Seyon will fall back to xterm in this case as well if
              it fails to execute seyon-emu.

       --     This switch instructs Seyon to pass the rest of the command-line  to  the  terminal
              emulation  program. All options following this switch will be passed blindly to the
              emulator. This switch cannot be combined with -noemulator.

       -nodefargs
              Seyon usually invokes the terminal emulation program with some options to  set  the
              application  name  and  window  and  icon  titles  (those are -name Seyon -T "Seyon
              Terminal Emulator" -n Terminal). If this switch is given, Seyon will not pass those
              options  to  the emulator.  This is to accommodate terminal emulation programs that
              use a different command-line syntax than xterm --  like  xvt,  cmdtool,  shelltool,
              ..etc. You can use the '--' switch to pass your own options to the emulator.

       -noemulator
              This  option  is  valid  only  if Seyon is invoked from withen a terminal emulation
              program in the foreground of an interactive shell session.  If  given,  Seyon  will
              not  launch  a  new  terminal  emulator, but will use the existing one instead. You
              cannot use the '--' switch if this option is given.

       -script <script-file>
              Causes Seyon to automatically executes  the  specified  script  after  the  startup
              script  is  run. The specified script file will be looked for according to the rule
              mentioned under the description of the resource scriptDirectory below.

       -entries <entries-list>
              Overrides the resource  defaultPhoneEntries.  Refer  to  the  description  of  that
              resource  below. Unlike the resource, however, the list here has to be quoted if it
              consists of more than one entry.

       -dial, -nodial
              Overrides the resource dialAutoStart and sets it to 'on'  and  If  both  -dial  and
              -nodial are specified on the command-line, the override value will be set according
              to the last of the two on the command-line.

RESOURCES

       Besides the toolkit resources, Seyon defines the following proprietry resources:

       autoZmodem (boolean)
              Specifies whether Seyon is to look for Zmodem auto-download signature.  If enabled,
              Seyon  will  detect  incoming  Zmodem signature and execute the action given by the
              resource autoZmodemAction (typically  to  start  a  local  rz).  Otherwise,  Zmodem
              signature will be ignored.  Default value: on

       autoZmodemAction (string)
              Specifies  a  simple  or  compound  action  that will be executed when Zmodem auto-
              download signature is detected. This action will be executed only if  the  resource
              autoZmodem  is enabled (see above). Refer to the section entitled SeQuickKeys for a
              description of available actions.  Default value: ShellCommand($rz);

       backspaceTranslation (boolean)
              Whether to translate user's backspace to delete. When the remote  host  is  a  Unix
              system,  it's  better to set this to on, since many Unix systems are not happy with
              backspace.  Default value: off

       captureFile (string)
              The name of capture file. Seyon will write  session  captures  to  this  file  when
              capture  is  enabled.  This  file  will be placed in Seyon's default directory. The
              capture file will not be overwritten by successive  capture  sessions.  Seyon  will
              merely apped new capture to its end.  Default value: capture

       connectString (string)
              The  modem  connect  string.  This  the  string  response  the  modem  gives when a
              connection is made after dialing.  Default value: CONNECT

       defaultBits (int)
              The default number of bits (character size). Seyon will set the number of  bits  to
              this  value on startup and will use it for items in the dialing directory for which
              no such parameter is given. Valid values are 5, 6, 7, and 8.  Default value: 8

       defaultBPS (string)
              The default baud rate. Seyon will set the baud rate to this value  on  startup  and
              will  use  it  for  items in the dialing directory for which no baud rate is given.
              Default value: 9600

       defaultDirectory (string)
              Seyon's default directory. When looking for its files, Seyon will  first  try  this
              default directory, then the current directory. Seyon will also put the capture file
              in this directory.  Default value: ~/.seyon

       defaultParity (int)
              The default parity. Seyon will set the parity to this value on startup and will use
              it  for  items in the dialing directory for which no such parameter is given. Valid
              values are 0 (no parity), 1 (odd parity), and 2 (even parity).  Default value: 0

       defaultPhoneEntries (int array)
              This resource specifies a list of numbers corresponding to the order the entries in
              the  dialing  directory  appear  at. Seyon will highlight (select) those entries on
              startup and whenever you click ``Default'' from  the  dialing  directory.  This  is
              useful  if there is a set of entries that you most frequesntly dial that want to be
              highlghted automatically instead of doing that every time by hand. You can override
              this resource by the -entries command-line switch.  Unlike the command-line switch,
              however, the list here should not be quoted. Phonebook entries numbering starts  at
              one.  No default value.

       defaultStopBits (int)
              The  default  number  of  stop bits. Seyon will set the number of stop bits to this
              value on startup and will use it for items in the dialing directory  for  which  no
              such parameter is given. Valid values are 1 and 2.  Default value: 1

       dialAutoStart (boolean)
              This  resource  specifies  that Seyon should start dialing the entries specified by
              the resource defaultPhoneEntries (or its override command-line switch) on  startup.
              Seyon  will  commence  dialing those entries after executing the startup script and
              any script specified at the command  line.  A  more  convenient  way  of  automatic
              dialing  on  startup  is  to  use  the  override  command-line  switch -dial, which
              overrides this resource and enables. If the resource is enabled, it can be disabled
              at  the  command  line  by the override switch -nodial. Refer to the description of
              these switches above.  Default value: off

       dialCancelString (string)
              The string Seyon sends to the modem to cancel dialing while in  progress.   Default
              value: ^M

       dialDelay (int)
              How  long  in  seconds  Seyon  should  wait  after  no  connection  is  made withen
              dialTimeOut before ciculating to the next number.  Default value: 10

       dialDirFormat (string)
              This is a format string that specifies the layout of  the  dialing  direcotry.  The
              default  is '%-15s %-15s %6s %1c%1c%1c %1c%1c %s' (no quotes).  Briefly: the fields
              represent the host name, number, the baud rate, bits, parity,  stop  bits,  whether
              there is a custom prefix, suffix, and the script name. You can understand more what
              each field refers to by comparing with  dialing  directory,  fields  that  use  the
              current setting (via the keyword CURRENT) are designated by a question mark. Notice
              that you cannot change the order the items in the dialing directory appear at, only
              the  format. For example, if the numbers you call are all 7-digits, your host names
              are short, you never use baud rates above 9600, and you  like  dashes  between  the
              baud  rate,  bits,  parity,  and  stop  bits fields, then you may prefer to use the
              format string '%-10s %-8s %5s-%1c-%1c-%1c %1c%1c %s', which would be narrower  than
              the default format.  Default value: %-15s %-15s %6s %1c%1c%1c %1c%1c %s

       dialPrefix (string)
              The  string Seyon sends to the modem before the phone number. To use pulse dialing,
              set this resource to .IR ATDP .  Default value: ATDT

       dialRepeat (int)
              How many times Seyon should try dialing a number. Seyon will give up on  dialing  a
              number if no connection is made after this many tries.  Default value: 5

       dialSuffix (string)
              The  string  Seyon  sends  to  the modem after the phone number. This string has to
              contain a carraige return or the number will never get sent to the  mode.   Default
              value: ^M

       dialTimeOut (int)
              How  long  in  seconds  Seyon should wait for a connection to made after dialing is
              complete. Seyon will cancel the dialing  if  no  connection  is  made  withen  this
              period.  Default value: 45

       exitConfirm (boolean)
              Whether  Seyon  should  prompt for hanguping up before exiting. If off-line and the
              resource ignoreModemDCD is set to 'off', Seyon will not prompt for hanging up  upon
              exiting even if this resource is set to Default value: on

       funMessages (string array)
              The  fun  messages to be displayed when Seyon has no other important information to
              show. This should be a list of double-quoted  [funny]  sentences.   Default  value:
              varies, version-dependent

       funMessagesInterval (int)
              The  temporal  interval in seconds between successive fun messages.  Default value:
              15

       idleGuard (boolean)
              If set to on, Seyon will send a string to the remote  host  whenever  the  terminal
              session  is  idle  (no  keyboard  input)  for a given amount of time. The resources
              idleGuardInterval and idleGuardString specify  the  above  time  interval  and  the
              string  to  be  sent  to  the  remote  host  when idle. It is useful to enable this
              features to keep the session alive when one is away from the computer for  a  while
              (e.g.  to prevent auto-logout).  Default value: off

       idleGuardInterval (int)
              The  amount  of time in seconds Seyon is to consider the session idle when there is
              no keyboard activity at the terminal for that long.  Seyon will send  a  string  to
              the remote host every such interval as long as the session is idle.  Default value:
              300

       idleGuardString (string)
              The string to be sent to the remote host when the session  is  idle.   This  string
              will  be  sent at a regular interval as long as the sesiion remains idle. Note that
              the current translations will be used in  sending  this  string;  for  example,  if
              backspaceTranslation  is  enabled, then the default string <Space><BS> will be sent
              as <Space><DEL>.  Default value: \s^H (space then backspace)

       ignoreModemDCD (boolean)
              If this resource is set to 'on', the modem DCD (Data Carrier Detect) status will be
              ignored. Some of the consequences of setting this to ´on´ is that Seyon will always
              prompt for hangup (if the resource exitConfirm is set to 'on') even  if  the  modem
              DCD status indicates that it is off-line, and dialing will be attempted even if the
              modem DCD status indicates that it is on-line. It is highly  recommended  that  you
              keep  this set to 'off' unless your modem does not honor the DCD line. Consult your
              modem's manual for more details.  Default value: off

       hangupBeforeDial (boolean)
              When set to on, Seyon will hangup the line (if connected) before dialing the  phone
              number.  Otherwise,  the  number  will  be dialed without hanging up, and it is the
              user's responsibility to ensure  that  the  line  is  clear  (no  connection)  when
              dialing.  Default value: on

       hangupConfirm (boolean)
              Whether  Seyon  should  ask  for  confirmation  before hanging up the phone Default
              value: on

       hangupViaDTR (boolean)
              When enabled, Seyon will hangup up the modem by dropping DTR. This is much  quicker
              than  hanging  up by sending a Hayes-like hangup string to the modem and waiting to
              allow for escape guard time. However, some  modems  and  serial  drivers  choke  on
              dropping DTR and others just don't hangup when DTR is dropped, so in these cases it
              should be disabled.  If disabled, Seyon will hangup the modem by sending the string
              specified  by  the resource modemAttentionString, followed by that specified by the
              resource modemHangupString.  Default value: off

       metaKeyTranslation (boolean)
              Whether to transmit keys pressed while the meta (ALT) key is held down as an escape
              (ESC)  followed  by  the  key  press. Most hosts do not support 8-bit sessions, and
              hence do not recognize the meta key.  Therefore, this translation mode  has  to  be
              enabled  when connected to such hosts to take advantage of the meta key in programs
              that make use of it like Emacs.  Default value: on

       modemAttentionString (string)
              The string to send to the modem to get its attention (switch to command mode). This
              string  will  be  sent  to  the modem before the hangup string when hangupViaDTR is
              disabled.  Default value: +++

       modemHangupString (string)
              The hangup string to send to the modem  when  hangupViaDTR  is  disabled.   Default
              value: ATH^M

       modems (string)
              A  list  of  modem  devies to use. Seyon will try modems in this list one after the
              other until it finds an available modem or  the  list  is  exhausted.   No  default
              value.

       modemStatusInterval (int)
              This resource controls the amount of time (in seconds) between updates to the modem
              status toggles (including the clock). The default is five seconds, but you can  set
              it  to  one second (or any other number) if you want the toggles to be updated more
              frequently. Even if you set this to a large number, Seyon is intellegent enough  to
              update the toggles after each connect or hangup.  Default value: 5

       modemVMin (int)
              This  resource  specifies  the  minimum  number of characters that should be in the
              buffer before the read process is satified. The read process will wait  until  that
              number  of  incoming  characters is in the buffer or 0.1 second has elapsed between
              the receiption of two characters before displaying the data  in  the  buffer.  This
              results  in  the data being displayed in chunks and speeds up the terminal display.
              The speedup would be most noticeable on slow machnes with fast modems.

              Leave this resource at its default (1) or set it at a low value (6) if you  have  a
              slow  modem  (e.g. 2400bps). Otherwise you might set it to the maximum value, which
              is platform-dependent but generally 255. If you set it to any number  greater  than
              the maximum value, it will be truncated to the maximum value.  Default value: 1

       newlineTranslation (string)
              When  the Enter key is pressed, newline character (\n) is generated.  This resource
              determines what to translate this  character  to.  Three  modes  are  possible:  no
              translation  (newline), carriage return (\r), and carriage return / line feed. Unix
              systems usually expect newline or  carrage  return,  DOS  systems  expect  carraige
              return  or  carriage  return  /  line feed. The three keywords corresponding to the
              above modes are nl, cr, and cr/lf.  Default value: cr

       noConnectStringX [X = 1-4] (string)
              The response strings given by the modem when connection fails.  Default values:  NO
              CARRIER, NO DIALTONE, BUSY, VOICE (respectively)

       phonelistFile (string)
              The  name  of  the phone list (dialing directory) file. See the included example to
              learn how this file should be formatted.  Default value: phonelist

       postConnectAction (string)
              Specifies a simple or compound action that will be executed after a connection to a
              remote  host  is  made.  This  action  will  be  executed before running any script
              attached to that host in the  dialing  directory.  All  actions  here  have  to  be
              synchronous.  Refer  to the section entitled SeQuickKeys below for a description of
              available actions.  Default value: Beep();

       protocolsFile (string)
              The name of the protocols file. This file tells Seyon what file transfer  protocols
              are  available.  The  user will be promted with a list based on this file when file
              transfer is to be initiated.  Default value: protocols

       quickKey?
              Refer to the section entitled SeQuickKeys below.

       rtsctsFlowControl (boolean)
              Whether Seyon should turn on RTS/CTS hardware flow control. Make sure the modem  is
              set to use this as well.  Default value: off

       scriptDirectory (string)
              Seyon's  script  directory.  When  looking  for  scripts, Seyon will first try this
              script directory, then the current directory.  Default value: defaultDirectory

       showFunMessages (boolean)
              Whether to display funny messages when Seyon has no other important information  to
              show.   Seyon  will  display  those  messages  at  an  interval  specified  by  the
              funMessagesInterval resource when there is no other important information to convey
              to  the  user.  To disable the display of fun messages, this resource has be set to
              off.  Default value: on

       startupAction (string)
              Specifies a simple or compound action that will be executed on startup. This action
              is  executed  prior  to running any script (in case the -script switch is given) or
              dialing any entry of the dialing directory (in case the -dial switch  is  given  or
              the  resource  dialAutoStart  is  enabled).  You  can  make  Seyon open the dialing
              directory automatically on startup by using the simple action ``OpenWidnow(Dial);''
              as  a  constituent  of  this  complex  action stack.  Note that running the startup
              script is just a special case of this  resource.  Refer  to  the  section  entitled
              SeQuickKeys   for   a   description   of   available   actions.    Default   value:
              RunScript(startup);

       startupFile (string)
              Seyon's startup file. Seyon will execute all commands in this  file  upon  startup.
              This  file  can  have  any  commands acceptable as script commands. The most useful
              command to put  here  is  the  set  command,  to  set  the  various  communications
              parameters.  Default value: startup

       stripHighBit (boolean)
              Whether  to strip the high (eights) bit from incoming characters. If set to on, the
              high bit of all incoming characters will be stripped,  which  will  make  an  8-N-1
              setting  behave  like  7-N-1,  even  though eight bits are used for each character.
              Default value: off

       xonxoffFlowControl (boolean)
              Whether Seyon should turn on XON/XOFF software flow control.  Default value: off

SEQUICKKEYS

       Seyon allows the user to have custom buttons, called SeQuickKeys (z  quickies),  to  which
       actions  can  be  attached.  SeQuickKeys  provide  a convenient way via which the user can
       invoke frequently-used operations by  a  singe  mouse  click.  SeQuickKeys  are  specified
       through the resources quickKeyX, where X is an integer corresponding to the order at which
       that SeQuickKey is to appear on the command center.  Relevant subparts  of  that  resource
       are visible, action, and label. Here is an example:

              Seyon*quickKey3.visible: on
              Seyon*quickKey3.action: FileTransfer(1,file); Beep();
              Seyon*quickKey3.label: Upload

       The first line specifies that SeQuickKey3 should be visible. The second line specifies the
       action bound to the SeQuickKey (in this case, a  compound  action),  and  the  third  line
       specifies  the label for that SeQuickKey's button. Other subparts can also be specified in
       a similar fashion (e.g.  background, foreground, ..etc.)

       Actions can be either simple or compound. A compound action consists of a stack of  simple
       actions and can be used as simple mini-script.  Examples:

       • Set(idleGuard,on); DialEntries(Default);
       • Echo("Uploading files..."); Transmit(rz); \
             FieTransfer(1,"*.ico $HOME/acct.wks"); Echo(Done);
       • OpenWindow(Dial); DialEntries("2 5 6");
       • Echo("Goodbye.."); Hangup(); Quit();
       • Set(baud,9600); ManualDial("555-5555");
       • Echo("Will upload..."); ShellCommand("$sz *.wks");
       • Set(parity,0); RunScript(login.scr); Echo(Finished);

       The  following  is  a  list  of  actions  Seyon  currently  supports.  Asterisks designate
       asynchronoous actions. Brackets designate optional arguments.

       Beep ();
              Rings the bell making a short beep.

       CloseWindow(window [,...]);
              Closes (dismisses) the given windows. Currenly the  only  valid  argument  to  this
              action  is  Dial,  which  corresponds  to  the  dialing  idrectory window. Example:
              CloseWindow(Dial);

       DialEntries(entries-list);*
              Dials entries in the dialing directory corresponding by order to  the  given  list.
              Entries  will  be dialed as if the user had selected them on the dialing directory.
              Entries will be dialed without opening the  dialing  directory.  You  can  use  the
              action  ``OpenWindow(Dial);'' and stack the two actions in a compound action if you
              want the dialing directory to be opened.

              The list must be quoted if it consists of more than one entry, and  entries  should
              be  separated  by  white  space, not commas.  If the list consists of just the word
              ``Default'', then the entries given by the  resource  defaultPhoneEntries  will  be
              dialed, refer to the description of that resource for more details.

              The  most  common  use  of  this  action  is  attach  frequesntly-dialed  hosts  to
              SeQuickKeys, making dialing those hosts a one-click operation. If  this  action  is
              not  the  last  in  a  compound  action  stack,  actions  specified by the resource
              postConnectAction may not work properly.  Examples: DialEntries(2);  DialEntries("2
              4 5"); DialEntries(Default);

       DivertFile([file]);*
              Sends  the given file to the remote host as a text upload. If the optional argument
              ``file'' is not specified, Seyon will pop up a dialog box asking for the file name.
              In  the latter case this action is similar to clicking Divert from the Misc window.
              Examples: DivertFile("/tmp/acct.wks"); DivertFile();

       Echo([string]);
              Echos the given string to the terminal. Does not send it to the modem (use Transmit
              for  that).  If  the string consists of more than one word, it must be quoted. Note
              that unlike the shell command of the same name, this command does not  accepts  the
              switch  -n but always appends newline to the string. If the argument is omitted, an
              empty line will be echoed. Examples: Echo(Hello); Echo("Hello there"); Echo();

       FileTransfer(entry, [file-list]);*
              Executes the transfer protocol  corresponding  by  order  in  the  trasfer  console
              (protocols  file) to ``entry''. If that protocol requires a file name and file-list
              is omitted, Seyon will pop up a dialog box asking for the file. Otherwise file-list
              will  be  passed  to  that protocol. The list must be quotes if it consists of more
              than one word and items in it should be separated by white space.  It  can  contain
              wild      cards     and     shell     variables.     Examples:     FileTransfer(1);
              FileTransfer(2,acct.wks); FileTransfer(2,"*.wks $HOME/acct.wks");

       Hangup();
              Disconnects the line. Does not pop up a confirmation box.

       IconifyWindow(window [,...]);
              Iconifies the given windows. Valid arguments to this action  are  Main,  Dial,  and
              Term,  corresponding  respectively  to  the  command center, dialing directory, and
              terminal emulator windows. When the argument is Term, this action will work only if
              the  terminal  emulator  sets  the  envirenment variable WINDOWID, like xterm does.
              Examples: IconifyWindow(Main,Dial,Term); IconifyWindow(Dial);

       ManualDial([number]);*
              Dials a number as if the Manual button had been clicked from the dialing directory.
              If  ``number''  is  specified, it will be dialed directly and no dialog box will be
              popped up asking for the number.  Examples: ManualDial(555-5555); ManualDial();

       Message([string]);
              Echos the given string to the message box of Seyon's command center (main  window).
              If the string consists of more than one word, it must be quoted. If the argument is
              omitted, an empty line will be echoed.   Examples:  Message(Hello);  Message("Hello
              there"); Message();

       OpenWindow(window [,...]);
              Opens  each  of the given windows by popping it if closed or de-iconifying it if in
              an iconic state.  Valid  arguments  to  this  action  are  Main,  Dial,  and  Term,
              corresponding  respectively  to the command center, dialing directory, and terminal
              emulator windows. When the argument is Term, this action  will  work  only  if  the
              terminal  emulator  sets  the  envirenment  variable  WINDOWID,  like  xterm  does.
              Examples: OpenWindow(Main,Dial,Term); OpenWindow(Dial);

       Quit();
              Exits Seyon completely and returns to the shell. Does not  pop  up  a  confirmation
              box.

       RunScript([script-name]);*
              Executes  the  script given by the file script-name. The script will be executed as
              if the user had selected it via the Script button. If  script-name  is  omitted,  a
              dialog  box  will be popped up asking for the script name. This is a very versatile
              action, as many remote and local commands or series of commands can be performed by
              attaching  appropriate  scripts  to  SeQuickKeys.  Examples:  RunScript(login.scr);
              RunScript();

       Set(parameter, value);
              Sets the specified parameter to the given value. Can be used  to  set  the  various
              communications parameters. Available parameters are listed under the script command
              ``set''.  Examples: Set(baud,9600); Set(parity,0); Set(idleGuard,off).

       ShellCommand(shell-command);*
              Executes the given shell command via the user's  shell  pointed  to  by  the  SHELL
              environment variable, or /bin/sh if that environment variable is not set. Note that
              the command must be quoted if it consists of more than one word. If the first  non-
              space  letter  of  the  command  is  the  character  ``$'', then standard input and
              standard output will be redirected to to the modem. This  action  can  be  used  to
              execute   any  external  program  from  withen  Seyon.  Example:  ShellCommand(ls);
              ShellCommand("$cd $HOME; sz -vv *.wks");

       Transmit(string);
              Transmits the given string to the remote host. The string  must  be  quoted  if  it
              consists  of  more  than  one  word.  The  string  is  transmitted  as  is (no case
              conversions are performed). No newline character or carriage return is appended  to
              the  string, use the prefix characters for that (e.g. ^M, ^J). See the discripttion
              of the script command  ``transmit''  for  more  details.  Example:  Transmit(ls^M);
              Transmit("ls -CF^M");

SCRIPT LANGUAGE

       Script files can automate some tedious tasks such as logging into a system.  A script file
       is an ascii text file and may be entered or edited using any standard text editor.

       The script file is read line by line.  Empty lines (consisting of white  space  only)  are
       ignored.  Comments are lines whose first non-space character is a pound sign (#).

       The  script  processor reads each script line, ignoring leading white space, into words. A
       word is defined as either:

              • a sequence of characters delimited by white space, or
              • a sequence of characters enclosed in single or double quotes.

       The first word of a script file is considered the command word.  If the last character  of
       the  command  word  is  a colon (:), the line is considered to be a label (the object of a
       goto statement).  Otherwise, it is assumed to be a script command and  is  interpreted  as
       such. Command words are case insensative.

       Some  commands  take  one  or  more arguments. Each argument is parsed as a single word as
       defined above.  If blanks are required in an argument, the argument must be  quoted  using
       single or double quotes.

   Script Command List
       Below is the description of all commands that may be used in the Seyon script language:

       capture on|off (currently may not work)
              The  command capture on will enable capture. All characters received during waitfor
              processing will be appended to the capture file. The command capture off will close
              the  capture  file.   This setting does not currently extend to terminal mode. This
              may be offered in a later release.

       debug on|off
              If the argument is on, all subsequent command lines processed will be displayed  on
              the  local  screen.  The  exception to this is lines containing a transmit command.
              These lines will just print TRANSMIT..., so that passwords, etc. can be  protected.
              If the argument is off, scripts will execute quietly (this is the default setting).

       dial <number>
              Dial  the  specified  number.  Seyon supports generic "Hayes" compatible modems for
              dialing.  Note that this command requires an actual phone number. The phonebook  is
              not used for this function.

       echo <string>
              Echos the given string to the terminal. Does not send it to the modem (use transmit
              for that). If the string contains spaces, it must be quoted. Note that  unlike  the
              shell  command  of  the  same name, this command does not accepts the switch -n but
              always appends newline to the string.

       exit   Terminates the script file prior to the end of file. Returns to terminal mode.

       flush  Flushes the modem, i.e. discards data written to the modem but not transmitted  and
              data received but not read.

       goto <label>
              Goes  to  the  specified label in the script file and continues execution from that
              point. The label may either precede or follow the actual goto statement. A label is
              any command word whose last character is a colon (:).

       hanup  Hangups up the line and disconnects from the remote host.

       if, else, endif
              Syntax:
              if <condition>
                      <statements>
              [else
                      <statements>]
              endif

              Conditionally  executes statements based on specified condition. Seyon supports the
              following conditions:

              waitfor: true if the last waitfor command was successful.
              linked: true if this script was executed from the dialing directory.

              Conditions may be negated using the prefix not or the character !:

              !waitfor: true If the last waitfor command timed out.
              not waitfor: same as !waitfor above

              The else and endif keywords must appear on their own lines. If statements  may  not
              be nested.

       pause <time>
              Suspends  execution  of  the  script  for the specified number of seconds.  This is
              usually used for timing considerations; for example, waiting a  couple  of  seconds
              after receiving the connect message and typing ^C to CompuServe.

       purge  Reads and discards all data coming from the modem for the duration of one second.

       quit   Terminates the script and exits the whole program (returns to the shell).

       redial Redials the last number dialed using the dial command.

       send_break
              Sends a BREAK signal to te remote host.

       set <parameter> <value>
              Sets  the  specified  parameter  to the given value. Can be used to set the various
              communications parameters for each host.  The  follwoing  is  a  list  of  the  set
              keywords  that  Seyon  recognizes. Keywords marked with an asterisk set the current
              parameter only, not  the  default  one.  Refer  to  the  corresponig  resource  (in
              parentheses below) for details of the function of each keyword.

              baud* (defaultBPS)
              bits* (defaultBits)
              parity* (defaultParity)
              stopBits* (defaultStopBits)
              stripHighBit (stripHighBit)
              newlineTranslation (newlineTranslation)
              del (backspaceTranslation)
              meta_tr (metaKeyTranslation)
              xoff (xonxoffFlowControl)
              rtscts (rtsctsFlowControl)
              autozm (zmodemAutoDownload)
              idleGuard (idleGuard)

              Boolean keywords accept on or off as their argument, other keywords accept the same
              arguments as the corresponding resources.

       shell <shell-command>
              Executes the given shell command via the user's  shell  pointed  to  by  the  SHELL
              environment variable, or /bin/sh if the environment variable SHELL is not set. Note
              that the command must be quoted if it consists of more than one word. If the  first
              non-space  letter  of  the  command  is  the character '$', then standard input and
              standard output will be redirected to to the modem. This command  can  be  used  to
              execute  any  external  program  from  withen Seyon. Example: shell "cd /usr/dl; rz
              -vv".

       transmit <text>
              Transmits the specified text to the remote host. The text argument should be quoted
              (using  single or double quotes) if there are spaces to be transmitted. The text is
              transmitted as is (no case conversions are performed).

              Prefix characters:

              ^ is the Control character prefix: the  next  character  is  made  into  a  control
              character. For example, ^M is carriage return (0x0D) and ^J is newline (0x0A).
              \  is  quote  prefix:  the  next character is transmitted verbatim. For example, \^
              would transmit a literal ^.

       tty on|off
              This command specifies whether or not characters received from the  modem  will  be
              displayed  on  the  local  terminal.  Since the only time that the script processor
              looks at the receive queue is during waitfor processing, the displays  may  look  a
              bit  erratic.   Use  the  tty  off  command  to  disable  local display of received
              characters during script processing.

       waitfor <text> [timeout]
              Waits for the specified text to appear from the modem. The text argument should  be
              quoted (using single or double quotes) if there are spaces to be transmitted.

              Special  characters  are  interpreted  the  same  as  for transmit.  If the timeout
              argument is specified, Seyon will wait that number of seconds  for  the  string  to
              appear.  If no timeout is given, Seyon defaults to 30 seconds.

              During  waitfor  processing,  characters  received  (up  to  and including the last
              character found in the text or in the timeout) can be captured to a disk  file  (if
              capture on is specified), and/or displayed to the screen (if tty on is specified).

       when [<string-to-expect> <string-to-send>]
              Sends  string-to-send  whenever  it  encounters string-to-expect while waiting in a
              waitfor command, whatever the number if times string-to-expect is encountered.

              This is is useful if the order of prompts expected is not known  before  hand.  For
              example, some BBS systems (notably PCBoard) change the prompts depeding on the time
              of call, and a complete script for such boards  cannot  be  written  using  waitfor
              only.

              As many number of when commands as desired can be specified. A when command with no
              arguments clears all outstanding when commands.  waitfor commands  take  precedence
              over when commands if they expect the same string.

              A typical use of this command would be:

                      when "Continue?"       "y^M"
                      when "More?"           "n^M"
                      waitfor "BBS Command?"
                      when

              The  above script keeps sending "y^M" to every Continue?" prompt and "n^M" to every
              "More?" prompt until the the string "BBS Command?" is encountered.  The  lasy  when
              clears all outstanding when commands.

FILES

       The  default  Seyon  files are startup, phonelist, and protocols.  These have to be in the
       current directory, Seyon's default directory (~/.seyon), or the user's home directory. The
       default  script directory is Seyon's default directory. All of these files and directories
       can be overridden by setting the appropriate  resources.  See  the  description  of  those
       resources as well as the description of the files above.

SEE ALSO

       xterm(1), resize(1)

COPYRIGHT

       Seyon  is  Copyright  (c)  1992-1993  of  Muhammad  M. Saggaf. Seyon is not public domain.
       Permission is granted to use and distribute Seyon freely for any use and to sell it at any
       price  without  reference to the copyright owner provided that in all above cases Seyon is
       intact and is not made part of any program either in  whole  or  in  part  and  that  this
       copyright  notice  is included with Seyon. Permission is also granted to modify the source
       as long as the modified source is not distributed without prior consent of the author.

BUGS

       The script command 'set port' is not supported in this release. If the action  DialEntries
       is  not  the  last  in  a  compound  action  stack,  actions  specified  by  the  resource
       postConnectAction may not work properly.

       If Seyon is hung, it can be made to exit cleanly by killing its main process by signal  15
       (SIGTERM)  from  another  shell.  Seyon's  main process is the one that has the lowest PID
       (Process ID) number. For example, if ps shows:

                1100 p0 S     0:04 seyon -noemulator
                1101 p0 S     0:00 seyon -noemulator
                1102 p0 S     0:38 seyon -noemulator

       Then ``kill -15 1100'' or ``kill 1100'' would cause Seyon clean up and exit gracefully.

AUTHOR

       Muhammad M. Saggaf, alsaggaf@mit.edu. Snail  Mail:  Muhammad  Saggaf,  Box  9863,  Dhahran
       31311, SAUDI ARABIA. I apologize that I may not be able to respond to all correspondence I
       receive.

       xcomm 2.2 was written by Eric Coe and Larry Gensch.

ACKNOWLEDGEMENT

       David Boyce for helpuful suggestions, the Imake file, and patches for  clean  build  under
       gcc  -Wall;  Joaquim  Jorge  for the lex/yacc parsing routines contributed by him; and the
       many  people  who  sent  me  patches  for  various  platforms:   Fred   Appleman   (SVR4),
       atae@spva.dnet.nasa.gov  (Ultrix),  Alain  Hebert (SVR3.2), Peter Davies (Sun Sparc), Eric
       Schmidt (Apollo), David Sanderson (AIX), Jonathan Bayer (Sun), Jeff Johnson (SVR4),  Glenn
       Geers  (SVR4-Esix),  Tony  Vincent-Sun-Vienna  (Solaris),  Bob  Smith (SunOS 3.x and sgtty
       interface). (pardon me if I forgot to mention you). I'm also  thankful  to  all  the  nice
       people who sent me suggestions or bug reports.

       The  MultiList  widget  used  in  the  dialing  directory  is  written  by the Free Widget
       Foundation. You can get it and other FWF widgets by ftp from a.cs.uiuc.edu.

                                                                                         SEYON(1)