XpSetLocaleHinter

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
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 val-
       ues, locale information about the current client required by XpCreate-
       Context,	 XpGetPrinterList  and XpGetPdmStartParams is at best consid-
       ered a "hint" when transmitted to the X Print Server and PDM. In	 sin-
       gle  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 fall-
       back 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
       example, "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
       installed.   XpSetLocaleHinter  makes  its  own	private	 copy of hin-
       ter_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()
	  {



	      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 hinter_desc, then the keyword will be replaced with the  result  of
       hinter_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
       standard for a "String Network Locale-Specification  Syntax"  (X/Open,
       Distributed  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
       information 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),      XpGetPdmStart-
       Params(3Xp), XpGetPrinterList(3Xp), XpSetLocaleHinter(3Xp)



						       XpSetLocaleHinter(3Xp)