//**********************************************************************
//* change history
//**********************************************************************
v7.0  :-First opened. 1994/07/28
       -Test environment.
           PS/55, AT-compatible, IBM5575-H02, Canon BJ-15V.
           IBM DOS J5.0/V, OS/2 2.11.
v7.1  :-Option which output separate print job for each input file.
        (for OS/2 version and Dos version under MVDM session).
       -OS/2 version,Option which set document name to print job.
       -OS/2 version,Bug of DosFindFirst err when multi-input file
        option used.
       -for JDOS 4.0(about display line count).
       -allow multiple option for a /Y or a /N toggle option parm.
       -Option which erase header line,column gage line,line-No prefix.
v7.2  :-Option which allow select file using file archived attribute.
       -Option which allow partial file print by offset value or line-No
        range.
       -Bug of line-No presentation when record mode specified.
       -Option which bypass "same as above" process under hex-dump mode.
       -To set line-No,Assume Record mode when /Nl(NO CRLF) option used.
       -Option which display version update history(/V).
       -two type help./?(abridge) and /h(detail).
       -char pitch(/Cn/p),line pitch(/Ln/p),font style(/F) option.
       -Fast path option(/Yf) added.
       -Change /= parm key to /E,because "=" is ignored for batch file
        parm.
v7.3  :1995/02/08
       -(BUG) abend when no ending value for /i (input range)
v7.4  :-move help,general description and change history to .DOC file
        to reduce module size.
        drop /V,/G option and abridged help msg by /? and /H
       -support file name from standard input(stdin)
       -indirect file name specification(/Yi)
       -process sequence option when multiple file name specified.(/Ol)
       -background option(protect keyboard interface)(/Yb)
       -printable also hidden file.
       -fullpath filename on header.
       -multiple page range on /P option.
       -available max column option(/C-nn).
       -AND/OR condition for /D.
       -form type specification on /E option.
       -(BUG)open error when file name specification is like as \aaa.
v7.5  :1996/02/10
       -modify err msg when input file name is directory.
v7.8  :1996/08/24
       -(BUG)when used DBCS(double byte char set) for filename.
       -Add A(all) option to print file confirmation.
       -Add /FXXxx option of replacing FormFeed char to specified one.
        (avoid redundant page eject)
       -shorten file path name of header line when path is too long.
v7.9  :1996/09/18
       -(BUG)print position error of 8 byte delimiter '-' for 16 byte
        long hex dump.
v8.0  :1996/12/17
       -(BUG)Kanji font style parameter is rejected for ESCP.
       -For ESCP,convert MS-KANJI to JIS-KANJI and print KEISEN char
        (Graphic char to draw line or box) replacing by '/'.
       -Add Roman font style for ESCP ANK font style.
       -Add support for Canon printer(LIPS III control command).
        tested by Canon LASER SHOT
       -Add option which bypass FormFeed command before 1st page.
       -LPI set command change to 1/180 from 1/360 inches unit for ESCP.
        1/180 is more applicable.
       -Add 14.4 CPI for IBM PAGES and Canon.
        For some Canon printer,CPI is changable for ANK char but it is
        fixed to 72CPI for DBCS font.
        100 column per line for 14.4cpi for example for A4 form.
v8.2  :-/Yv(No page eject at end of each file) option is added.
       -'E'(End-up) is available to request to ignore the file after this
        for print confirmation msg.
       -(BUG) Erroneous shortening filename on header line for long file
        name when /Yf(fast path mode).
       -Default value change for file order from /Oe(by extention order)
        to /On(by name order)
       -Print stop by Esc key at page end.
       -(BUG)File name cut on header line when it contains space.
       -Display all filename selected when replyed 'A' for confirmation.
v8.3  :1997/10/01
       -(BUG)Drive id ignored in the case "\" is missing in print file
        specification.
       -(BUG)Restart file is rejected if path is specified in wild-card
        print file specification.
v8.4  :1997/12/21
       -Windows95,GCC version is newly added.
       -Long File Name support for W95,GCC and OS/2 version.
       -/Q new option to specify output destination.
        It is alternative of 2nd positional parameter,useful for .BAT
        file.
       -over 2000 year consideration for /D parm(file selection by
        timestamp).
v8.5  :1998/12/01
       -(Win version)When printer type=/Ew(default for Win version),
        it is windows print application. Any value up to 14 is avail for
        CPI/LPI.If no CPI/LPI is specified,CPI/LPI is calculated from
        chars per line and lines per page.
        Any font name may be specified,and available font name is queried
        by /F?.
       -(OS/2)Set document name of job on remote printer by specifying
        queue name or printer name for destination other than assinged
        port name(LPTx).If default printer is set,no destination required.
        Arbitrary document name(=jobname) may be set by new /J option.
        If performance or other trouble occur,use /Nd option to change
        to usual Base print apprication.
       -7.2 CPI is not avail now for /Ei.
        Some printer may not support that CPI.
       -Add IBM KEISEN(graphic) char conversion option(/K)
        If <0x20 graphic char used for draw line is not printed,
        it is converted to any printable char.
       -Use katakana-code or extended-graphic-code by ASCII option on /M.
        Special char for western language is printed as is base by
        using extended-graphic-code(not as Japanese KATAKANA).
       -Charset default change /Mxd to /Mxj for hex dump print.
       -(BUG)Conversion SJIS to JIS is require for ES/P printer.
       -(BUG)CPI set err when /C/75 is specified for /Ec,/Ei.
       -(BUG)/N1 option is ignored when restart print.
v8.6  :1999/04/25
       -(Win Version).Adjust left margin.
v8.7  :1999/08/22 xe-v1.03
       -(Win Version:BUG).Header line err when print width is over 150 col.
       -ABEND when width is over 500.
       -Filename on page header change option(/W=).
v8.8  :-EBCDIC char set support(/M).
       -Char Set translation table file option support(/K)
       -(BUG of Win/DOS version)Read stop at EOFID(0x1a) if text mode.
       -(BUG)doubly page printed when last byte before EOF is 1st byte
             of DBCS.
v8.9  :2000/01/15
       -(BUG)Y2K. Year 2000 displayed as year 100.
v9.0  :2000/12/10
       -New file print sequence.(ignore basename or extention).
v9.1  :2001/10/08 xe-v1.08
       -function of 2 page print per sheet.
       -/Nr option added(performance up by not settting font on each page).
       -No wildcard required for print all member in the dir.
       -UNX:seperator of multiple file specification is ":".
         (for PC version it is "/")
v9.2  :2001/12/31 xe-v1.09
       -Use -q- or -q-- option to output to stdout,then redirect to
        enq AIX cmd etc.
        -q- means to use stderr for process completed msg.
       -(BUG)DOS version hung.
       -(BUG)/K(line char conversion) parm ignored when /Ei.
       -/KL(converst to single line char) option is added.
v9.3  :2002/06/08 xe-v1.11
        .(Win Version)reduce rate support.
         For the case using paper of printer driver not supported,
         or to leave space on the right or bottom of paper.
        .(Win Version)Support formid on /E parm also for Win version.
v9.4  :2003/01/19 xe-v1.12
       -(BUG)Not full page printed when reverse print(/Yp) for the
        file containing EOF(0x1a) in the middle of the file.
       -start page specification option is added.
        ex)/i180-/4 means re-print from 180'th line of input file
        and set start page to 4.
       -2page/1form support on form parameter.
        ex) /Ei/A42, /Ec/B4L2.    ("2" is appended to form name)
        print column width is half of the specification of w/o 2.
        page is set for each form.
        priviously supported 2page/1form specification /Y2 is
        for the printer with reduced print function, page column width is
        same as of the form type and page advance by 2 for each page.
        for hex dump mode,only /Y2 is supported.
       -little a bit adjust of page width col and height row for each
        form type.
       -(WIN)change driver setting of paper orientation and paper size.
v9.7  :2005/06/06 xe-v1.18
       -destination parameter is by -q parameter only.
        Now,all parameter not flagged by / (- for unix) is input specification.
        For convenience of multiple file specification and to avoid file override
        accident.
       -New /Nu option to bypass output formfeed command(0x0c) at end of page.
        with /Ne,it is for usage under linux to redirect output to linux
        print tool.
       -delete /Yo option which functionaly overwraps to /O option.
        multiple not dir/wildcard input is sorted by /O option.
v9.8  :2007/19/06
       -Text mode 3 line virtical hex dump print by /Mtx.
v9.9  :2007/19/06
       -(Lnx version)gxp(Gnome print version) was added.(xprint.sh is not required).
       -(Win/Gnome version only)UTF-8 enncoded file print.(CharSet parm of /M.)
v9.10 :2007/10/25
       -(Lnx version)xprint support UTF-8 file.
       -(Lnx version)Option to control SS3(0x8f:extended Japanese-Kanji).
v9.11 :2008/01/23
       -Bug when print UTF8 encoded file with HEX dump mode.
v9.12 :2008/01/29
       -Correct Help message.
v9.13 :2008/02/07
       -HEX dump ABEND except for UTF8 file.
v9.14 :2008/07/28
       -"-Cmax" option was added. Adjusr Column pitch by "max line width"
        of the file.  "max line width" is limited by 512.
v9.15 :2009/12/15
       -Unicode file vertical HEX print support(used from xe only)
v9.16 :2010/04/28
       -EBCDIC file support.
v9.17 :2010/07/23
       -Horizontal and Vertical HEX print fail.
       -CUPS printer support.
v9.18 :2010/08/11
       .(BUG)UTF8 file print may fail sometimes.
v9.19 :2010/09/08
       .EBCDIC /CPEB=codepage parameter support.
       .0x15 is default EOL of EBCDIC file.
        Use /ASCEOL for 0x0a,0x0d0a EOL.
v9.20 :2010/10/04
       .(BUG)Hex code is not valid if UTF8 code was splitted by line width
             when vertical hex dump mode.
       .UCS code option for utf8 vertical hex dump mode.
          /Y8 : display UTF8 code(Default) , /N8 : display UCS code
        UCS code is not fixed length but preceding 00 is dropped.
        ex) xprint utf8-file -mtxu -n8
v9.25 :2013/08/08
       .Variable Record Length file support.
       .Translation of EBCDIC using ICU without cfg file(/ICU option)
       .Support Hex Dump print of FixedRecordLengthFile by /Mx.
        (Vertical 2 line hex dump is by /Mtx)

v9.26 :2013/11/20
        .(gxe)Changed API for print to use not gnomeprint but GTKprint.
        .(gxp)Shift parameter support. ex). -E/B5/T40.
        .(gxp)Destination parameter:"-q?" lists printers.
        .(gxp:BUG)Crash when wildcard filename is not enclosed by double quotation.
        .(gxp:BUG)Line was cut if it contains null(x00).
        .(gxp:BUG)Japanes EUC code was not printed.

        .(BUG)UCS 2nd byte was not printed for utf8 file with -n8 and -mtx options.
        .(BUG)For EBCDIC file,2nd line was invalid when the line is split.
v9.27 :2014/02/14
        .(LNX:BUG)It could not change option such as PaperSize/Orientation on print dialog by -Yd option.
        .(LNX:BUG)A4 was assumed as default paper for all printer.(ignored printer setting)
        .(LNX:BUG)Printer specification by -Q option may fail by error of multiple printer match with the parameter.
        .(LNX)gtk3 support.
        .(LNX)margin parameter is added. -E/form/M{T|B|L|R}ss[P].