punycode_encode

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
punycode_encode(3)		    libidn		   punycode_encode(3)



NAME
       punycode_encode

SYNOPSIS
       #include <punycode.h>

       int punycode_encode(size_t input_length, const punycode_uint [] input,
       const unsigned char [] case_flags, size_t  *  output_length,  char  []
       output);

ARGUMENTS
       size_t input_length
		    The number of code points in the input array and the num-
		   ber of flags in the case_flags array.

       const punycode_uint [] input
		    An array of code points.  They are presumed to be Unicode
		   code points, but that is not strictly REQUIRED.  The array
		   contains code points, not code units.   UTF-16  uses	 code
		   units   D800	  through   DFFF  to  refer  to	 code  points
		   10000..10FFFF.  The code points D800..DFFF do not occur in
		   any	valid Unicode string.  The code points that can occur
		   in Unicode strings (0..D7FF	and  E000..10FFFF)  are	 also
		   called Unicode scalar values.

       const unsigned char [] case_flags
		    A NULL
		    pointer  or	 an  array  of boolean values parallel to the
		   input array.	 Nonzero (true, flagged)  suggests  that  the
		   corresponding  Unicode  character  be  forced to uppercase
		   after  being	 decoded  (if  possible),  and	zero  (false,
		   unflagged)  suggests	 that  it  be forced to lowercase (if
		   possible).  ASCII code points (0..7F) are  encoded  liter-
		   ally, except that ASCII letters are forced to uppercase or
		   lowercase according to the corresponding case  flags.   If
		   case_flags is a NULL
		    pointer  then  ASCII  letters  are	left as they are, and
		   other code points are treated as unflagged.

       size_t * output_length
		    The caller passes in the maximum  number  of  ASCII	 code
		   points  that it can receive.	 On successful return it will
		   contain the number of ASCII code points actually output.

       char [] output
		    An array of ASCII code points.  It is  *not*  null-termi-
		   nated; it will contain zeros if and only if the input con-
		   tains zeros.	 (Of course the caller can leave room  for  a
		   terminator and add one if needed.)

DESCRIPTION
       Converts	 a  sequence  of  code	points	(presumed  to be Unicode code
       points) to Punycode.

RETURN VALUE
	The return value can be any of	the  punycode_status  values  defined
       above except punycode_bad_input

       punycode_success	 , then output_size and output might contain garbage.

REPORTING BUGS
       Report bugs to <bug-libidn@gnu.org>.

COPYRIGHT
       Copyright © 2002, 2003, 2004 Simon Josefsson.
       Permission is granted to make and distribute verbatim copies  of	 this
       manual  provided	 the  copyright notice and this permission notice are
       preserved on all copies.

SEE ALSO
       The full documentation for libidn is maintained as a  Texinfo  manual.
       If  the	info and libidn programs are properly installed at your site,
       the command

	      info libidn

       should give you access to the complete manual.



libidn				    0.5.6		   punycode_encode(3)