1.3. fcmp: A file compare program

Start felix section to tools/fcmp.flx[1 /1 ]
     1: #line 345 "./lpsrc/flx_faio_tools.pak"
     2: #import <flx.flxh>
     3: 
     4: include "flx_faio";
     5: include "flx_stream";
     6: 
     7: open Faio;
     8: open Flx_stream;
     9: open TerminalIByteStream[fd_t];
    10: 
    11: val fn1,fn2 = System::argv 1, System::argv 2;
    12: 
    13: gen openi(s:string):fd_t = {
    14:   var f: fd_t;
    15:   f = Faio_posix::ropen(s);
    16:   if Faio_posix::invalid f do
    17:     print$ "Can't open input file " + s + "\n";
    18:     System::exit 1;
    19:   done;
    20:   return f;
    21: }
    22: 
    23: var f1 = openi(fn1);
    24: var f2 = openi(fn2);
    25: var result : int;
    26: cmp (f1,f2, &result);
    27: iclose(f1);
    28: iclose(f2);
    29: 
    30: if result < 0 do
    31:   print$ fn1 + " < " + fn2;
    32: elif result > 0 do
    33:   print$ fn1 + " > " + fn2;
    34: else
    35:   print$ fn1 + " == " + fn2;
    36: done;
    37: endl;
    38: 
    39: System::exit(result);
    40: 
End felix section to tools/fcmp.flx[1]