summaryrefslogtreecommitdiff
path: root/man/XpSetLocaleHinter.man
diff options
context:
space:
mode:
Diffstat (limited to 'man/XpSetLocaleHinter.man')
-rw-r--r--man/XpSetLocaleHinter.man205
1 files changed, 205 insertions, 0 deletions
diff --git a/man/XpSetLocaleHinter.man b/man/XpSetLocaleHinter.man
new file mode 100644
index 0000000..73a5445
--- /dev/null
+++ b/man/XpSetLocaleHinter.man
@@ -0,0 +1,205 @@
+.\" $XdotOrg: $
+.\"
+.\" Copyright 1996 Hewlett-Packard Company
+.\" Copyright 1996 International Business Machines Corp.
+.\" Copyright 1996, 1999, 2004 Sun Microsystems, Inc.
+.\" Copyright 1996 Novell, Inc.
+.\" Copyright 1996 Digital Equipment Corp.
+.\" Copyright 1996 Fujitsu Limited
+.\" Copyright 1996 Hitachi, Ltd.
+.\" Copyright 1996 X Consortium, Inc.
+.\"
+.\" Permission is hereby granted, free of charge, to any person obtaining a
+.\" copy of this software and associated documentation files (the "Software"),
+.\" to deal in the Software without restriction, including without limitation
+.\" the rights to use, copy, modify, merge, publish, distribute,
+.\" sublicense, and/or sell copies of the Software, and to permit persons
+.\" to whom the Software is furnished to do so, subject to the following
+.\" conditions:
+.\"
+.\" The above copyright notice and this permission notice shall be
+.\" included in all copies or substantial portions of the Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+.\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\" IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+.\"
+.\" Except as contained in this notice, the names of the copyright holders
+.\" shall not be used in advertising or otherwise to promote the sale, use
+.\" or other dealings in this Software without prior written authorization
+.\" from said copyright holders.
+.\"
+.TH XpSetLocaleHinter 3Xp __xorgversion__ "XPRINT FUNCTIONS"
+.SH NAME
+XpSetLocaleHinter \- Sets a "locale hinter" function and description of it.
+.SH SYNOPSIS
+.br
+ cc [ flag... ] file... -lXp [ library... ]
+.br
+ #include <X11/extensions/Print.h>
+.LP
+.B void XpSetLocaleHinter
+(
+.I hinter_proc
+.I hinter_desc
+)
+.br
+ XPHinterProc \fIhinter_proc\fP\^;
+.br
+ char *\fIhinter_desc\fP\^;
+.if n .ti +5n
+.if t .ti +.5i
+.SH ARGUMENTS
+.TP
+.I hinter_proc
+A pointer to a "hinter proc".
+.TP
+.I hinter_desc
+A pointer to contextual information about the locale hinter proc.
+.SH DESCRIPTION
+.LP
+Since (to date) there is no single industry standard for locale values, locale
+information about the current client required by XpCreateContext,
+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
+.I hinter_desc
+is NULL.
+
+XpSetLocaleHinter sets the
+.I hinter_proc
+and
+.I hinter_desc
+which will be subsequently used by the Xp calls requiring a locale hint (see
+above).
+.I hinter_proc
+is the function that will generate the locale hint (for example,
+"C"), and
+.I hinter_desc
+is a string, with or without the embeddable keyword %locale%, that provides a
+higher level context for the results of
+.I hinter_proc.
+
+If
+.I hinter_proc
+is set to NULL, then the default Xp hinter proc is installed.
+XpSetLocaleHinter makes its own private copy of
+.I hinter_desc
+prior to returning.
+
+An example set call might look as follows:
+
+.nf
+ XpSetLocaleHinter( my_hinter, "%locale%;CDElocale" );
+.fi
+
+Where my_hinter might look as follows:
+
+.nf
+ char *my_hinter()
+ {
+ /*
+ * Use setlocale() to retrieve the current locale.
+ */
+ return( my_x_strdup( setlocale(LC_CTYPE, (char *) NULL) ) );
+ }
+
+.fi
+
+
+When the client's locale is needed, if both
+.I hinter_desc
+and the results of
+.I hinter_proc
+are non-NULL, and the keyword %locale% is found in
+.I hinter_desc,
+then the keyword will be replaced with the result of
+.I hinter_proc.
+The resulting string will be used as the locale hint by the Xp calls.
+
+If both
+.I hinter_desc
+and the results of
+.I hinter_proc
+are non-NULL, but the keyword %locale% is not found in
+.I hinter_desc,
+then
+.I hinter_desc,
+as is, becomes the string used as the locale hint by the Xp calls.
+
+If one of
+.I hinter_desc
+or the results of
+.I hinter_proc
+is NULL, then the other non-NULL value becomes the string used as the locale
+hint by the Xp calls.
+
+If
+.I hinter_desc
+and the results of
+.I hinter_proc
+are NULL, then a NULL (i.e. (char *) NULL) locale hint is sent by the Xp calls.
+
+The syntax for
+.I 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
+.I hinter_desc
+syntax is:
+
+.nf
+ name_spec[;registry_spec[;ver_spec[;encoding_spec]]]
+
+.fi
+
+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 `;'.
+.SH STRUCTURES
+The signature for
+.I hinter_proc
+is defined in <X11/extensions/Print.h> as follows:
+
+.nf
+ typedef char * (*XPHinterProc)();
+
+.fi
+.I hinter_proc
+is expected to return a string that can be freed using XFree by the Xp calls
+themselves.
+
+Some examples include (
+.I hinter_desc
+to left, expanded results to the right):
+
+.nf
+ 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
+
+.fi
+.SH FILES
+.PD 0
+.TP 20
+<X11/extensions/Print.h>
+.SH "SEE ALSO"
+.BR XpCreateContext (3Xp),
+.BR XpGetLocaleHinter (3Xp),
+.BR XpGetPdmStartParams (3Xp),
+.BR XpGetPrinterList (3Xp),
+.BR XpSetLocaleHinter (3Xp)