Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
punycode_decode(3)		     libidn		      punycode_decode(3)

NAME
     punycode_decode - API function

SYNOPSIS
     #include <punycode.h>

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

ARGUMENTS
     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 ac-
		 tually output (which is also the number of flags actually  out-
		 put,  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 punycode_uint, even if the supplied
		  output_length is greater than that.

     punycode_uint [] output
		 An array of code points like the input argument of punycode_en-
		 code() (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 corresponding Unicode
		 character  be	forced to uppercase by the caller (if possible),
		 and zero (false, unflagged) suggests that it be forced to  low-
		 ercase (if possible).	ASCII code points (0..7F) are output al-
		 ready in the proper case, but their flags will be set appropri-
		 ately so that applying the flags would be harmless.

DESCRIPTION
     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 de-
     fined above.  If not PUNYCODE_SUCCESS, then
      output_length ,  output , and  case_flags might contain garbage.

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

COPYRIGHT
     Copyright (C) 2002-2025 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 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  com-
     mand

	    info libidn

     should  give  you access to the complete manual.  As an alternative you may
     obtain the manual from:

	    https://www.gnu.org/software/libidn/manual/

libidn				      1.43		      punycode_decode(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=punycode_decode&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help