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

FreeBSD Manual Pages

  
 
  

home | help
XpSetLocaleHinter(3Xp)	       XPRINT FUNCTIONS		XpSetLocaleHinter(3Xp)

NAME
       XpSetLocaleHinter -  Sets a "locale hinter" function and	description of
       it.

SYNOPSIS
	     cc	[ flag... ] file... -lXp [ library... ]
	     #include <X11/extensions/Print.h>

       void XpSetLocaleHinter (	hinter_proc hinter_desc	)
	     XPHinterProc hinter_proc;
	     char *hinter_desc;

ARGUMENTS
       hinter_proc
	      A	pointer	to a "hinter proc".

       hinter_desc
	      A	pointer	to contextual  information  about  the	locale	hinter
	      proc.

DESCRIPTION
       Since (to date) there is	no single industry standard for	locale values,
       locale information about	the current client  required  by  XpCreateCon-
       text,  XpGetPrinterList and XpGetPdmStartParams is at best considered a
       "hint" when transmitted to the X	Print Server and PDM. In single	vendor
       environments,  the  locale hint should be consistent and	understood. In
       multi-vendor environments however, the locale hint may or  may  not  be
       understood. The caller locale will be used as the fallback default.

       XpSetLocaleHinter  and  XpGetLocaleHinter access	hooks that are used to
       register	more advanced hint generators. By default, Xp  uses  a	hinter
       proc  that calls	setlocale on  the CTYPE	category on POSIX systems, and
       hinter_desc is NULL.

       XpSetLocaleHinter sets the hinter_proc and hinter_desc  which  will  be
       subsequently  used by the Xp calls requiring a locale hint (see above).
       hinter_proc is the function that	will generate the locale hint (for ex-
       ample,  "C"),  and  hinter_desc is a string, with or without the	embed-
       dable keyword %locale%, that provides a higher level  context  for  the
       results of hinter_proc.

       If  hinter_proc	is set to NULL,	then the default Xp hinter proc	is in-
       stalled.	 XpSetLocaleHinter makes its own private copy  of  hinter_desc
       prior to	returning.

       An example set call might look as follows:

	   XpSetLocaleHinter( my_hinter, "%locale%;CDElocale" );

       Where my_hinter might look as follows:

	  char *my_hinter()
	  {
	      /*
	       * Use setlocale() to retrieve the current locale.
	       */
	      return( my_x_strdup( setlocale(LC_CTYPE, (char *)	NULL) )	);
	  }

       When the	client's locale	is needed, if both hinter_desc and the results
       of hinter_proc are non-NULL, and	the keyword %locale% is	found in  hin-
       ter_desc,  then	the  keyword  will be replaced with the	result of hin-
       ter_proc.  The resulting	string will be used as the locale hint by  the
       Xp calls.

       If  both	 hinter_desc  and the results of hinter_proc are non-NULL, but
       the keyword %locale% is not found in hinter_desc, then hinter_desc,  as
       is, becomes the string used as the locale hint by the Xp	calls.

       If  one	of hinter_desc or the results of hinter_proc is	NULL, then the
       other non-NULL value becomes the	string used as the locale hint by  the
       Xp calls.

       If  hinter_desc	and  the  results of hinter_proc are NULL, then	a NULL
       (i.e. (char *) NULL) locale hint	is sent	by the Xp calls.

       The syntax for hinter_desc is a variation of the	unadopted X/Open stan-
       dard  for  a "String Network Locale-Specification Syntax" (X/Open, Dis-
       tributed	Internationalization Services, Version 2, 1994 Snapshot).  The
       Xp hinter_desc syntax is:

	   name_spec[;registry_spec[;ver_spec[;encoding_spec]]]

       In  Xp,	the  first  item is the	locale name, followed by progressively
       more detailed information about the locale name,	with each piece	of in-
       formation separated by a	`;'.

STRUCTURES
       The signature for hinter_proc is	defined	in <X11/extensions/Print.h> as
       follows:

	   typedef char	* (*XPHinterProc)();

       hinter_proc is expected to return a string  that	 can  be  freed	 using
       XFree by	the Xp calls themselves.

       Some  examples  include	( hinter_desc to left, expanded	results	to the
       right):

	   CFRENCH				  CFRENCH
	   %locale%				  C
	   %locale%;CDElocale			  C;CDElocale
	   %locale%;HP				  C;HP
	   %locale%;IBM				  C;IBM
	   %locale%;XOPEN;01_11;XFN-001001	  de_DE;XOPEN;01_11;XFN-001001

FILES
       <X11/extensions/Print.h>
SEE ALSO
       XpCreateContext(3Xp), XpGetLocaleHinter(3Xp), XpGetPdmStartParams(3Xp),
       XpGetPrinterList(3Xp), XpSetLocaleHinter(3Xp)

X Version 11			  libXp	1.0.3		XpSetLocaleHinter(3Xp)

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | STRUCTURES | FILES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=XpSetLocaleHinter&sektion=3xp&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help