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 *
       output_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  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 ar-
		   ray.	 Nonzero (true,	flagged) suggests that the correspond-
		   ing 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.

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
       defined 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  no-
       tice 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 command

	      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+14.3.quarterly>

home | help