DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

XpSetLocaleHinter(3)





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
       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 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
       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), XpGetPdmStartParams(3Xp),
       XpGetPrinterList(3Xp), XpSetLocaleHinter(3Xp)

X Version 11                      libXp 1.0.0           XpSetLocaleHinter(3Xp)

Man(1) output converted with man2html