pmattes / x3270

Family of IBM 3270 emulators
47 stars 19 forks source link

pr3287 doesn't issue a good error for bad command line. #6

Closed swhobbit closed 4 years ago

swhobbit commented 4 years ago

Overview:

I'd rather have a simple error message and a line suggesting how to display the full help than NO error message and a flood of options which cause the command I typed in to scroll of the screen (the terminal I was in didn't even scrollback!)

Version:

pr3287 v4.0ga9 Wed May 27 17:32:08 UTC 2020 ahd Build options: via gcc 8.3.0 32-bit

Problem:

pr3287 doesn't issue an error message if command line has errors; it dumps a spew of all possible options

How to reproduce:

pr3287 -command spool.py -V PRT @hercules:${HERCULES_PORT}

Expected behavior:

Precise error reporting bad or missing parameter

Current result:

[wile:14,~/hercules/kew3,89] `pr3287 -command spool.py -V PRT  @hercules:3278`
usage: pr3287 [options] [lu[,lu...]@]host[:port]
Options:
  -accepthostname 
                   accept a specific name in host cert
  -assoc  associate with a session (TN3270E only)
  -cadir      find CA certificate database in 
  -cafile    find CA certificates in 
  -certfile  find client certificate in 
  -certfiletype pem|asn1
                   specify client certificate file type
  -chainfile 
                   specify client certificate chain file
  -codepage  specify host code page
  -command "" use  for printing (default "lpr")
  -blanklines      display blank lines even if empty (formatted LU3)
  -daemon          become a daemon after connecting
  -emflush         flush printer output when an unformatted EM order arrives
                   (historical option; this is now the default)
  -noemflush       do not flush printer output when an unformatted EM order
                   arrives
  -crlf            expand newlines to CR/LF
  -crthru          pass through CRs in unformatted 3270 mode
  -eojtimeout 
                   time out end of print job
  -ffeoj           assume FF at the end of each print job
  -ffthru          pass through SCS FF orders
  -ffskip          skip FF orders at top of page
  -keyfile   find certificate private key in 
  -keyfiletype pem|asn1
                   specify private key file type
  -keypasswd file:|string:
                   specify private key password
  -ignoreeoj       ignore PRINT-EOJ commands
  -mpp          define the Maximum Presentation Position (unformatted
                   line length)
  -noverifycert    do not verify host certificate for TLS connections
  -proxy "" 
                   connect to host via specified proxy
  -reconnect       keep trying to reconnect
  -skipcc          skip ASA carriage control characters in unformatted host
                   output
  -syncport port   TCP port for login session synchronization
  -trace           trace data stream to /tmp/x3trc.
  -tracedir   directory to keep trace information in
  -trnpre    file of transparent data to send before each job
  -trnpost   file of transparent data to send after each job
  -v               display version information and exit
  -verifycert      verify host certificate for TLS connections (enabled by default)
  -V               log verbose information about connection negotiation
  -xtable    specify a custom EBCDIC-to-ASCII translation table
pmattes commented 4 years ago

You're right, I should do the option dump only on request, with --help or -?. This is true for all of the emulators, not just pr3287.

I will put this on the 4.0 to-do list.

pmattes commented 4 years ago

Fix is committed.