Sign in

docs Examples

iconv_h

iconv_h

**free
/if defined(ICONV_H)
/eof
/endif
/define ICONV_H

// * Copyright (c) 2006,2011 Scott C. Klement                                    +
// * All rights reserved.                                                        +
// *                                                                             +
// * Redistribution and use in source and binary forms, with or without          +
// * modification, are permitted provided that the following conditions          +
// * are met:                                                                    +
// * 1. Redistributions of source code must retain the above copyright           +
// *    notice, this list of conditions and the following disclaimer.            +
// * 2. 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.     +
// *                                                                             +
// * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 THE AUTHOR OR CONTRIBUTORS 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.                                                                +

dcl-ds iconv_t qualified template;
  return_value   int( 10 );
  cd             int( 10 ) dim( 12 );
end-ds;

dcl-ds QtqCode_t qualified template;
  CCSID          int( 10 ) inz;
  ConvAlt        int( 10 ) inz;
  SubsAlt        int( 10 ) inz;
  ShiftAlt       int( 10 ) inz( 1 );
  InpLenOp       int( 10 ) inz( 0 );
  ErrorOpt       int( 10 ) inz( 1 );
  Reserved       char( 8 ) inz( *ALLx'00' );
end-ds;

dcl-ds iconv_code_t qualified template;
  owner          char( 8 )  inz( 'IBMCCSID' );
  CCSID          char( 5 )  inz( '00000' );
  ConvAlt        char( 3 )  inz( '000' );
  SubsAlt        char( 1 )  inz( '0' );
  ShiftAlt       char( 1 )  inz( '0' );
  InpLenOpt      char( 1 )  inz( '0' );
  ErrorOpt       char( 1 )  inz( '0' );
  ReservedFrom   char( 12 ) inz( *ALLx'00' );
end-ds;

dcl-pr QtqIconvOpen like( iconv_t ) extproc( 'QtqIconvOpen' );
  toCode         likeds( QtqCode_t ) const;
  fromCode       likeds( QtqCode_t ) const;
end-pr;

dcl-pr iconv_open like( iconv_t ) extproc( 'iconv_open' );
  toCode         likeds( iconv_code_t ) const;
  fromCode       likeds( iconv_code_t ) const;
end-pr;

dcl-pr iconv int( 10 ) extproc( 'iconv' );
  cd             like( iconv_t ) value;
  inbuf          pointer;
  inbytesleft    uns( 10 );
  outbuf         pointer;
  outbytesleft   uns( 10 );
end-pr;

dcl-pr iconv_close int( 10 ) extproc( 'iconv_close' );
  cd             like( iconv_t ) value;
end-pr;