Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019

punycode_decode (3)


punycode_decode - API function


#include <punycode.h>

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


punycode_decode(3)                  libidn                  punycode_decode(3)

       punycode_decode - API function

       #include <punycode.h>

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

       size_t input_length
                   The number of ASCII code points in the  input array.

       const char [] input
                   An array of ASCII code points (0..7F).

       size_t * output_length
                   The caller passes in the maximum number of code points that
                   it  can  receive  into the  output array (which is also the
                   maximum number of flags that it can receive into the
                    case_flags array, if  case_flags is not a  NULL  pointer).
                   On  successful  return  it  will contain the number of code
                   points actually output (which is also the number  of  flags
                   actually output, if case_flags is not a null pointer).  The
                   decoder will never need to output more code points than the
                   number  of  ASCII  code points in the input, because of the
                   way the encoding is defined.  The  number  of  code  points
                   output  cannot exceed the maximum possible value of a puny-
                   code_uint, even if the supplied
                    output_length is greater than that.

       punycode_uint [] output
                   An array of code points like the input  argument  of  puny-
                   code_encode() (see above).

       unsigned char [] case_flags
                   A  NULL pointer (if the flags are not needed by the caller)
                   or an array of  boolean  values  parallel  to  the   output
                   array.   Nonzero  (true,  flagged) suggests that the corre-
                   sponding Unicode character be forced to  uppercase  by  the
                   caller  (if possible), and zero (false, unflagged) suggests
                   that it be forced to lowercase (if possible).   ASCII  code
                   points  (0..7F)  are output already in the proper case, but
                   their flags will be set appropriately so that applying  the
                   flags would be harmless.

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

       Return value: The return value can be any of the Punycode_status values
       defined above.  If not PUNYCODE_SUCCESS, then
        output_length ,  output , and  case_flags might contain garbage.

       Report bugs to <bug-libidn@gnu.org>.
       General guidelines for reporting bugs: http://www.gnu.org/gethelp/
       GNU Libidn home page: http://www.gnu.org/software/libidn/

       Copyright (C) 2002-2016 Simon Josefsson.
       Copying  and  distribution  of this file, with or without modification,
       are permitted in any medium  without  royalty  provided  the  copyright
       notice and this notice are preserved.

       See attributes(7) for descriptions of the following attributes:

       |Availability   | library/libidn   |
       |Stability      | Uncommitted      |
       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.  As an alternative you
       may obtain the manual from:


       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source                was                downloaded                from

       Further information about this software can be found on the open source
       community website at https://www.gnu.org/software/libidn.

libidn                               1.34                   punycode_decode(3)