diff options
Diffstat (limited to 'libXt/util')
-rw-r--r-- | libXt/util/Makefile.am | 62 | ||||
-rw-r--r-- | libXt/util/Shell.ht | 190 | ||||
-rw-r--r-- | libXt/util/StrDefs.ct | 102 | ||||
-rw-r--r-- | libXt/util/StrDefs.ht | 122 | ||||
-rw-r--r-- | libXt/util/makefile | 4 | ||||
-rw-r--r-- | libXt/util/makestrs.c | 1492 | ||||
-rw-r--r-- | libXt/util/makestrs.man | 432 | ||||
-rw-r--r-- | libXt/util/string.list | 796 |
8 files changed, 1603 insertions, 1597 deletions
diff --git a/libXt/util/Makefile.am b/libXt/util/Makefile.am index dedfa6b56..625c05aa7 100644 --- a/libXt/util/Makefile.am +++ b/libXt/util/Makefile.am @@ -1,31 +1,31 @@ -noinst_PROGRAMS = makestrs - -CC = @CC_FOR_BUILD@ -CFLAGS = @CFLAGS_FOR_BUILD@ -LDFLAGS = @LDFLAGS_FOR_BUILD@ - -EXTRA_DIST = \ - Shell.ht \ - StrDefs.ct \ - StrDefs.ht \ - string.list - -AM_CFLAGS = $(XT_CFLAGS) -makestrs_SOURCES = makestrs.c - - -# Man page -appmandir = $(APP_MAN_DIR) - -appman_PRE = makestrs.man - -noinst_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@) - -EXTRA_DIST += $(appman_PRE) -CLEANFILES = $(noinst_DATA) - -SUFFIXES = .$(APP_MAN_SUFFIX) .man - -# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure -.man.$(APP_MAN_SUFFIX): - $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ +noinst_PROGRAMS = makestrs
+
+CC = @CC_FOR_BUILD@
+CFLAGS = @CFLAGS_FOR_BUILD@
+LDFLAGS = @LDFLAGS_FOR_BUILD@
+
+EXTRA_DIST = \
+ Shell.ht \
+ StrDefs.ct \
+ StrDefs.ht \
+ string.list
+
+AM_CFLAGS = $(XT_CFLAGS)
+makestrs_SOURCES = makestrs.c
+
+
+# Man page
+appmandir = $(APP_MAN_DIR)
+
+appman_PRE = makestrs.man
+
+noinst_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
+
+EXTRA_DIST += $(appman_PRE)
+CLEANFILES = $(noinst_DATA)
+
+SUFFIXES = .$(APP_MAN_SUFFIX) .man
+
+# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+.man.$(APP_MAN_SUFFIX):
+ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
diff --git a/libXt/util/Shell.ht b/libXt/util/Shell.ht index fc78678f3..821854dfd 100644 --- a/libXt/util/Shell.ht +++ b/libXt/util/Shell.ht @@ -1,94 +1,96 @@ -/*********************************************************** - -Copyright 1987, 1988, 1994, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - - -Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ - -#ifndef _XtShell_h -#define _XtShell_h - -#include <X11/SM/SMlib.h> -#include <X11/Intrinsic.h> - -/*********************************************************************** - * - * Shell Widget - * - ***********************************************************************/ -/* - * Shell-specific resources names, classes, and a representation type. - */ - -#ifndef XTSTRINGDEFINES -#define _XtShell_h_Const const -#endif - -<<<STRING_TABLE_GOES_HERE>>> - -#ifndef XTSTRINGDEFINES -#undef _XtShell_h_Const -#endif - -/* Class record constants */ - -typedef struct _ShellClassRec *ShellWidgetClass; -typedef struct _OverrideShellClassRec *OverrideShellWidgetClass; -typedef struct _WMShellClassRec *WMShellWidgetClass; -typedef struct _TransientShellClassRec *TransientShellWidgetClass; -typedef struct _TopLevelShellClassRec *TopLevelShellWidgetClass; -typedef struct _ApplicationShellClassRec *ApplicationShellWidgetClass; -typedef struct _SessionShellClassRec *SessionShellWidgetClass; - -#ifndef SHELL -externalref WidgetClass shellWidgetClass; -externalref WidgetClass overrideShellWidgetClass; -externalref WidgetClass wmShellWidgetClass; -externalref WidgetClass transientShellWidgetClass; -externalref WidgetClass topLevelShellWidgetClass; -externalref WidgetClass applicationShellWidgetClass; -externalref WidgetClass sessionShellWidgetClass; -#endif - -#endif /* _XtShell_h */ -/* DON'T ADD STUFF AFTER THIS #endif */ +/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+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
+OPEN GROUP 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 name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+
+#ifndef _XtShell_h
+#define _XtShell_h
+
+#ifndef XT_NO_SM
+#include <X11/SM/SMlib.h>
+#endif
+#include <X11/Intrinsic.h>
+
+/***********************************************************************
+ *
+ * Shell Widget
+ *
+ ***********************************************************************/
+/*
+ * Shell-specific resources names, classes, and a representation type.
+ */
+
+#ifndef XTSTRINGDEFINES
+#define _XtShell_h_Const const
+#endif
+
+<<<STRING_TABLE_GOES_HERE>>>
+
+#ifndef XTSTRINGDEFINES
+#undef _XtShell_h_Const
+#endif
+
+/* Class record constants */
+
+typedef struct _ShellClassRec *ShellWidgetClass;
+typedef struct _OverrideShellClassRec *OverrideShellWidgetClass;
+typedef struct _WMShellClassRec *WMShellWidgetClass;
+typedef struct _TransientShellClassRec *TransientShellWidgetClass;
+typedef struct _TopLevelShellClassRec *TopLevelShellWidgetClass;
+typedef struct _ApplicationShellClassRec *ApplicationShellWidgetClass;
+typedef struct _SessionShellClassRec *SessionShellWidgetClass;
+
+#ifndef SHELL
+externalref WidgetClass shellWidgetClass;
+externalref WidgetClass overrideShellWidgetClass;
+externalref WidgetClass wmShellWidgetClass;
+externalref WidgetClass transientShellWidgetClass;
+externalref WidgetClass topLevelShellWidgetClass;
+externalref WidgetClass applicationShellWidgetClass;
+externalref WidgetClass sessionShellWidgetClass;
+#endif
+
+#endif /* _XtShell_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/libXt/util/StrDefs.ct b/libXt/util/StrDefs.ct index c3b15d861..a4d6efa00 100644 --- a/libXt/util/StrDefs.ct +++ b/libXt/util/StrDefs.ct @@ -1,51 +1,51 @@ -/*********************************************************** - -Copyright 1987, 1988, 1994, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - - -Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ - -#define Const const - -<<<STRING_TABLE_GOES_HERE>>> - +/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+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
+OPEN GROUP 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 name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+
+#define Const const
+
+<<<STRING_TABLE_GOES_HERE>>>
+
diff --git a/libXt/util/StrDefs.ht b/libXt/util/StrDefs.ht index b003bb85b..c57ce4558 100644 --- a/libXt/util/StrDefs.ht +++ b/libXt/util/StrDefs.ht @@ -1,61 +1,61 @@ -/*********************************************************** - -Copyright 1987, 1988, 1994, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - - -Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ - -#ifndef _XtStringDefs_h_ -#define _XtStringDefs_h_ - -#ifndef XTSTRINGDEFINES -#define _XtStringDefs_h_Const const -#endif - -<<<STRING_TABLE_GOES_HERE>>> - -#ifndef XTSTRINGDEFINES -#undef _XtStringDefs_h_Const -#endif - -#endif /* _XtStringDefs_h_ */ +/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+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
+OPEN GROUP 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 name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
+
+#ifndef _XtStringDefs_h_
+#define _XtStringDefs_h_
+
+#ifndef XTSTRINGDEFINES
+#define _XtStringDefs_h_Const const
+#endif
+
+<<<STRING_TABLE_GOES_HERE>>>
+
+#ifndef XTSTRINGDEFINES
+#undef _XtStringDefs_h_Const
+#endif
+
+#endif /* _XtStringDefs_h_ */
diff --git a/libXt/util/makefile b/libXt/util/makefile new file mode 100644 index 000000000..52ce89702 --- /dev/null +++ b/libXt/util/makefile @@ -0,0 +1,4 @@ +TTYAPP = makestrs + +CSRCS = makestrs.c + diff --git a/libXt/util/makestrs.c b/libXt/util/makestrs.c index 902d461c5..3f531936b 100644 --- a/libXt/util/makestrs.c +++ b/libXt/util/makestrs.c @@ -1,746 +1,746 @@ -/* - -Copyright (c) 1991, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -*/ - -/* Constructs string definitions */ - -#include <stdio.h> -#include <X11/Xos.h> -#include <stdlib.h> -#include <unistd.h> - -typedef struct _TableEnt { - struct _TableEnt* next; - char* left; - char* right; - int offset; -} TableEnt; - -typedef struct _Table { - struct _Table* next; - TableEnt* tableent; - TableEnt* tableentcurrent; - TableEnt** tableenttail; - char* name; - int offset; -} Table; - -typedef struct _File { - struct _File* next; - FILE* tmpl; - char* name; - Table* table; - Table* tablecurrent; - Table** tabletail; -} File; - -static File* file = NULL; -static File* filecurrent = NULL; -static File** filetail = &file; -static char* conststr; -static char* prefixstr = NULL; -static char* featurestr = NULL; -static char* ctmplstr = NULL; -static char* fileprotstr; -static char* externrefstr; -static char* externdefstr; - -#ifndef FALSE -# define FALSE 0 -# define TRUE !(FALSE) -#endif - -static int solaris_abi_names = FALSE; - -#define X_DEFAULT_ABI 0 -#define X_ARRAYPER_ABI 1 -#define X_INTEL_ABI 2 -#define X_INTEL_ABI_BC 3 -#define X_SPARC_ABI 4 -#define X_FUNCTION_ABI 5 - -#define X_MAGIC_STRING "<<<STRING_TABLE_GOES_HERE>>>" - -/* Wrapper for fopen() - * Prepend filename with an includedir which can be specified on the - * commandline. Needed to separate source and build directories. - */ -static char* includedir = NULL; -static FILE *ifopen(const char *file, const char *mode) -{ - size_t len; - char *buffer; - FILE *ret; - - if (includedir == NULL) - return fopen(file, mode); - - len = strlen(file) + strlen(includedir) + 1; - buffer = (char*)malloc(len + 1); - if (buffer == NULL) - return NULL; - - strcpy(buffer, includedir); - strcat(buffer, "/"); - strcat(buffer, file); - - ret = fopen(buffer, mode); - - free(buffer); - return ret; -} - -static void WriteHeaderProlog (FILE *f, File *phile) -{ - Table* t; - TableEnt* te; - - (void) fprintf (f, "#ifdef %s\n", featurestr); - for (t = phile->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) { - if (strcmp (te->left, "RAtom") == 0) { - (void) fprintf (f, - "#ifndef %s%s\n#define %s%s \"%s\"\n#endif\n", - prefixstr, te->left, prefixstr, te->left, te->right); - } else { - (void) fprintf (f, - "#define %s%s \"%s\"\n", - prefixstr, te->left, te->right); - } - } - (void) fprintf (f, "%s", "#else\n"); -} - -static void IntelABIWriteHeader (FILE *f, File *phile) -{ - Table* t; - TableEnt* te; - - WriteHeaderProlog (f, phile); - - for (t = phile->table; t; t = t->next) { - (void) fprintf (f, "%s %sConst char %s[];\n", - externrefstr, conststr ? conststr : fileprotstr, t->name); - for (te = t->tableent; te; te = te->next) - (void) fprintf (f, - "#ifndef %s%s\n#define %s%s ((char*)&%s[%d])\n#endif\n", - prefixstr, te->left, prefixstr, te->left, t->name, te->offset); - } - - (void) fprintf (f, "#endif /* %s */\n", featurestr); -} - -static void SPARCABIWriteHeader (FILE *f, File *phile) -{ - Table* t; - TableEnt* te; - - for (t = phile->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) - (void) fprintf (f, "#define %s%s \"%s\"\n", - prefixstr, te->left, te->right); -} - -static void FunctionWriteHeader (FILE *f, File *phile) -{ - Table* t; - TableEnt* te; - - WriteHeaderProlog (f, phile); - - (void) fprintf (f, "%s %sConst char* %s();\n", - externrefstr, conststr ? conststr : fileprotstr, - phile->table->name); - - for (t = phile->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) - (void) fprintf (f, - "#ifndef %s%s\n#define %s%s (%s(%d))\n#endif\n", - prefixstr, te->left, prefixstr, te->left, phile->table->name, - te->offset); - - (void) fprintf (f, "#endif /* %s */\n", featurestr); -} - -static void ArrayperWriteHeader (FILE *f, File *phile) -{ - Table* t; - TableEnt* te; - - WriteHeaderProlog (f, phile); - - for (t = phile->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) - (void) fprintf (f, - "#ifndef %s%s\n%s %sConst char %s%s[];\n#endif\n", - prefixstr, te->left, - externrefstr, conststr ? conststr : fileprotstr, - prefixstr, te->left); - - (void) fprintf (f, "#endif /* %s */\n", featurestr); -} - -static void DefaultWriteHeader (FILE *f, File *phile) -{ - Table* t; - TableEnt* te; - - WriteHeaderProlog (f, phile); - - (void) fprintf (f, "%s %sConst char %s[];\n", - externrefstr, conststr ? conststr : fileprotstr, - phile->table->name); - - for (t = phile->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) - (void) fprintf (f, - "#ifndef %s%s\n#define %s%s ((char*)&%s[%d])\n#endif\n", - prefixstr, te->left, prefixstr, te->left, phile->table->name, - te->offset); - - (void) fprintf (f, "#endif /* %s */\n", featurestr); -} - -static void CopyTmplProlog (FILE *tmpl, FILE *f) -{ - char buf[1024]; - static char* magic_string = X_MAGIC_STRING; - int magic_string_len = strlen (magic_string); - - while (fgets (buf, sizeof buf, tmpl)) { - if (strncmp (buf, magic_string, magic_string_len) == 0) { - return; - } - (void) fputs (buf, f); - } -} - -static void CopyTmplEpilog (FILE *tmpl, FILE *f) -{ - char buf[1024]; - - while (fgets (buf, sizeof buf, tmpl)) - (void) fputs (buf, f); -} - -static char* abistring[] = { - "Default", "Array per string", "Intel", "Intel BC", "SPARC", "Function" }; - -static void WriteHeader (char *tagline, File *phile, int abi) -{ - FILE* f; - char* tmp; - static void (*headerproc[])(FILE *f, File *phile) = { - DefaultWriteHeader, ArrayperWriteHeader, - IntelABIWriteHeader, IntelABIWriteHeader, - SPARCABIWriteHeader, FunctionWriteHeader }; - - if ((f = fopen (phile->name, "w+")) == NULL) exit (1); - - if (phile->tmpl) CopyTmplProlog (phile->tmpl, f); - - (void) fprintf (f, - "%s\n%s\n/* %s ABI version -- Do not edit */\n", - "/* $Xorg: makestrs.c,v 1.6 2001/02/09 02:03:17 xorgcvs Exp $ */", - "/* This file is automatically generated. */", - abistring[abi]); - - if (tagline) (void) fprintf (f, "/* %s */\n\n", tagline); - - /* do the right thing for Motif, i.e. avoid _XmXmStrDefs_h_ */ - if (strcmp (prefixstr, "Xm") == 0) { - if ((fileprotstr = malloc (strlen (phile->name) + 3)) == NULL) - exit (1); - (void) sprintf (fileprotstr, "_%s_", phile->name); - } else { - if ((fileprotstr = malloc (strlen (phile->name) + strlen (prefixstr) + 3)) == NULL) - exit (1); - (void) sprintf (fileprotstr, "_%s%s_", prefixstr, phile->name); - } - - for (tmp = fileprotstr; *tmp; tmp++) if (*tmp == '.') *tmp = '_'; - - (*headerproc[abi])(f, phile); - - if (phile->tmpl) CopyTmplEpilog (phile->tmpl, f); - - (void) free (fileprotstr); - (void) fclose (phile->tmpl); - (void) fclose (f); -} - -static void WriteSourceLine (TableEnt *te, int abi, int fudge) -{ - char* c; - - for (c = te->right; *c; c++) (void) printf ("'%c',", *c); - (void) printf ("%c", '0'); - if (te->next || fudge) (void) printf ("%c", ','); - (void) printf ("%s", "\n"); -} - -static char* const_string = "%s %sConst char %s[] = {\n"; - -static void IntelABIWriteSource (int abi) -{ - File* phile; - - for (phile = file; phile; phile = phile->next) { - Table* t; - TableEnt* te; - - for (t = phile->table; t; t = t->next) { - (void) printf (const_string, externdefstr, - conststr ? conststr : "", t->name); - for (te = t->tableent; te; te = te->next) - WriteSourceLine (te, abi, 0); - (void) printf ("%s\n\n", "};"); - } - } -} - -static void IntelABIBCWriteSource (int abi) -{ - File* phile; - - for (phile = file; phile; phile = phile->next) { - Table* t; - TableEnt* te; - - (void) printf (const_string, externdefstr, - conststr ? conststr : "", phile->table->name); - - for (t = phile->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) - WriteSourceLine (te, abi, t->next ? 1 : 0); - (void) printf ("%s\n\n", "};"); - - if (phile->table->next) { - (void) printf (const_string, externdefstr, - conststr ? conststr : "", phile->table->next->name); - for (t = phile->table->next; t; t = t->next) - for (te = t->tableent; te; te = te->next) - WriteSourceLine (te, abi, 0); - (void) printf ("%s\n\n", "};"); - } - } -} - -static void FunctionWriteSource (int abi) -{ - File* phile; - - for (phile = file; phile; phile = phile->next) { - Table* t; - TableEnt* te; - - (void) printf ("static %sConst char _%s[] = {\n", - conststr ? conststr : "", phile->table->name); - - for (t = phile->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) - WriteSourceLine (te, abi, t->next ? 1 : 0); - (void) printf ("%s\n\n", "};"); - - (void) printf ("%sConst char* %s(index)\n int index;\n{\n return &_%s[index];\n}\n\n", - conststr ? conststr : "", - phile->table->name, phile->table->name); - } -} - -static void ArrayperWriteSource (int abi) -{ - File* phile; - static int done_atom; - - for (phile = file; phile; phile = phile->next) { - Table* t; - TableEnt* te; - - for (t = phile->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) { - if (strcmp (te->left, "RAtom") == 0) { - if (done_atom) return; - done_atom = 1; - } - (void) printf ("%s %sConst char %s%s[] = \"%s\";\n", - externdefstr, conststr ? conststr : "", - prefixstr, - te->left, te->right); - } - } -} - -static void DefaultWriteSource (int abi) -{ - File* phile; - - for (phile = file; phile; phile = phile->next) { - Table* t; - TableEnt* te; - - (void) printf (const_string, externdefstr, conststr ? conststr : "", - phile->table->name); - - for (t = phile->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) - WriteSourceLine (te, abi, t->next ? 1 : 0); - (void) printf ("%s\n\n", "};"); - } -} - -static void WriteSource(char *tagline, int abi) -{ - static void (*sourceproc[])(int) = { - DefaultWriteSource, ArrayperWriteSource, - IntelABIWriteSource, IntelABIBCWriteSource, - DefaultWriteSource, FunctionWriteSource }; - - FILE* tmpl; - - if (ctmplstr) { - tmpl = ifopen (ctmplstr, "r"); - - if (tmpl) CopyTmplProlog (tmpl, stdout); - else { - (void) fprintf (stderr, "Expected template %s, not found\n", - ctmplstr); - exit (1); - } - } else - tmpl = NULL; - - - (void) printf ("%s\n%s\n/* %s ABI version -- Do not edit */\n", - "/* $Xorg: makestrs.c,v 1.6 2001/02/09 02:03:17 xorgcvs Exp $ */", - "/* This file is automatically generated. */", - abistring[abi]); - - if (tagline) (void) printf ("/* %s */\n\n", tagline); - - (*sourceproc[abi])(abi); - - if (tmpl) CopyTmplEpilog (tmpl, stdout); -} - -static void DoLine(char *buf) -{ -#define X_NO_TOKEN 0 -#define X_FILE_TOKEN 1 -#define X_TABLE_TOKEN 2 -#define X_PREFIX_TOKEN 3 -#define X_FEATURE_TOKEN 4 -#define X_EXTERNREF_TOKEN 5 -#define X_EXTERNDEF_TOKEN 6 -#define X_CTMPL_TOKEN 7 -#define X_HTMPL_TOKEN 8 -#define X_CONST_TOKEN 9 - - int token; - char lbuf[1024]; - static char* file_str = "#file"; - static char* table_str = "#table"; - static char* prefix_str = "#prefix"; - static char* feature_str = "#feature"; - static char* externref_str = "#externref"; - static char* externdef_str = "#externdef"; - static char* ctmpl_str = "#ctmpl"; - static char* htmpl_str = "#htmpl"; - static char* const_str = "#const"; - - if (strncmp (buf, file_str, strlen (file_str)) == 0) - token = X_FILE_TOKEN; - else if (strncmp (buf, table_str, strlen (table_str)) == 0) - token = X_TABLE_TOKEN; - else if (strncmp (buf, prefix_str, strlen (prefix_str)) == 0) - token = X_PREFIX_TOKEN; - else if (strncmp (buf, feature_str, strlen (feature_str)) == 0) - token = X_FEATURE_TOKEN; - else if (strncmp (buf, externref_str, strlen (externref_str)) == 0) - token = X_EXTERNREF_TOKEN; - else if (strncmp (buf, externdef_str, strlen (externdef_str)) == 0) - token = X_EXTERNDEF_TOKEN; - else if (strncmp (buf, ctmpl_str, strlen (ctmpl_str)) == 0) - token = X_CTMPL_TOKEN; - else if (strncmp (buf, htmpl_str, strlen (htmpl_str)) == 0) - token = X_HTMPL_TOKEN; - else if (strncmp (buf, const_str, strlen (const_str)) == 0) - token = X_CONST_TOKEN; - else - token = X_NO_TOKEN; - - switch (token) { - case X_FILE_TOKEN: - { - File* phile; - - if ((phile = (File*) malloc (sizeof(File))) == NULL) - exit(1); - if ((phile->name = malloc (strlen (buf + strlen (file_str)) + 1)) == NULL) - exit(1); - (void) strcpy (phile->name, buf + strlen (file_str) + 1); - phile->table = NULL; - phile->tablecurrent = NULL; - phile->tabletail = &phile->table; - phile->next = NULL; - phile->tmpl = NULL; - - *filetail = phile; - filetail = &phile->next; - filecurrent = phile; - } - break; - case X_TABLE_TOKEN: - { - Table* table; - if ((table = (Table*) malloc (sizeof(Table))) == NULL) - exit(1); - if ((table->name = malloc (strlen (buf + strlen (table_str)) + 1)) == NULL) - exit(1); - (void) strcpy (table->name, buf + strlen (table_str) + 1); - if (solaris_abi_names) { - if (strcmp(table->name, "XtStringsR6") == 0) { - strcpy(table->name, "XtR6Strings"); - } else if (strcmp(table->name, "XtShellStringsR6") == 0) { - strcpy(table->name, "XtR6ShellStrings"); - } - } - table->tableent = NULL; - table->tableentcurrent = NULL; - table->tableenttail = &table->tableent; - table->next = NULL; - table->offset = 0; - - *filecurrent->tabletail = table; - filecurrent->tabletail = &table->next; - filecurrent->tablecurrent = table; - } - break; - case X_PREFIX_TOKEN: - if ((prefixstr = malloc (strlen (buf + strlen (prefix_str)) + 1)) == NULL) - exit(1); - (void) strcpy (prefixstr, buf + strlen (prefix_str) + 1); - break; - case X_FEATURE_TOKEN: - if ((featurestr = malloc (strlen (buf + strlen (feature_str)) + 1)) == NULL) - exit(1); - (void) strcpy (featurestr, buf + strlen (feature_str) + 1); - break; - case X_EXTERNREF_TOKEN: - if ((externrefstr = malloc (strlen (buf + strlen (externref_str)) + 1)) == NULL) - exit(1); - (void) strcpy (externrefstr, buf + strlen (externref_str) + 1); - break; - case X_EXTERNDEF_TOKEN: - if ((externdefstr = malloc (strlen (buf + strlen (externdef_str)) + 1)) == NULL) - exit(1); - (void) strcpy (externdefstr, buf + strlen (externdef_str) + 1); - break; - case X_CTMPL_TOKEN: - if ((ctmplstr = malloc (strlen (buf + strlen (ctmpl_str)) + 1)) == NULL) - exit(1); - (void) strcpy (ctmplstr, buf + strlen (ctmpl_str) + 1); - break; - case X_HTMPL_TOKEN: - if ((filecurrent->tmpl = ifopen (buf + strlen (htmpl_str) + 1, "r")) == NULL) { - (void) fprintf (stderr, - "Expected template %s, not found\n", htmpl_str); - exit (1); - } - break; - case X_CONST_TOKEN: - if ((conststr = malloc (strlen (buf + strlen (const_str)) + 1)) == NULL) - exit(1); - (void) strcpy (conststr, buf + strlen (const_str) + 1); - break; - default: - { - char* right; - TableEnt* tableent; - int llen; - int rlen; - int len; - - if ((right = index(buf, ' '))) - *right++ = 0; - else - right = buf + 1; - if (buf[0] == 'H') { - strcpy (lbuf, prefixstr); - strcat (lbuf, right); - right = lbuf; - } - - llen = len = strlen(buf) + 1; - rlen = strlen(right) + 1; - if (right != buf + 1) len += rlen; - if ((tableent = (TableEnt*)malloc(sizeof(TableEnt) + len)) == NULL) - exit(1); - tableent->left = (char *)(tableent + 1); - strcpy(tableent->left, buf); - if (llen != len) { - tableent->right = tableent->left + llen; - strcpy(tableent->right, right); - } else { - tableent->right = tableent->left + 1; - } - tableent->next = NULL; - - *filecurrent->tablecurrent->tableenttail = tableent; - filecurrent->tablecurrent->tableenttail = &tableent->next; - filecurrent->tablecurrent->tableentcurrent = tableent; - } - break; - } -} - -static void IntelABIIndexEntries (File *file) -{ - Table* t; - TableEnt* te; - - for (t = file->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) { - te->offset = t->offset; - t->offset += strlen (te->right); - t->offset++; - } -} - -static void DefaultIndexEntries (File *file) -{ - Table* t; - TableEnt* te; - int offset = 0; - - for (t = file->table; t; t = t->next) - for (te = t->tableent; te; te = te->next) { - te->offset = offset; - offset += strlen (te->right); - offset++; - } -} - -static void IndexEntries (File *file, int abi) -{ - switch (abi) { - case X_SPARC_ABI: - break; - case X_INTEL_ABI: - case X_INTEL_ABI_BC: - IntelABIIndexEntries (file); - break; - default: - DefaultIndexEntries (file); - break; - } -} - -static char* DoComment (char *line) -{ - char* tag; - char* eol; - char* ret; - int len; - - /* assume that the first line with two '$' in it is the RCS tag line */ - if ((tag = index (line, '$')) == NULL) return NULL; - if ((eol = index (tag + 1, '$')) == NULL) return NULL; - len = eol - tag; - if ((ret = malloc (len)) == NULL) - exit (1); - (void) strncpy (ret, tag + 1, len - 1); - ret[len - 2] = 0; - return ret; -} - -int main(int argc, char *argv[]) -{ - int len, i; - char* tagline = NULL; - File* phile; - FILE *f; - char buf[1024]; - int abi = -#ifndef ARRAYPERSTR - X_DEFAULT_ABI; -#else - X_ARRAYPER_ABI; -#endif - - f = stdin; - if (argc > 1) { - for (i = 1; i < argc; i++) { - if (strcmp (argv[i], "-f") == 0) { - if (++i < argc) - f = fopen (argv[i], "r"); - else - return 1; - } - if (strcmp (argv[i], "-i") == 0) { - if (++i < argc) - includedir = argv[i]; - else - return 1; - } - if (strcmp (argv[i], "-sparcabi") == 0) - abi = X_SPARC_ABI; - if (strcmp (argv[i], "-intelabi") == 0) - abi = X_INTEL_ABI; - if (strcmp (argv[i], "-functionabi") == 0) - abi = X_FUNCTION_ABI; - if (strcmp (argv[i], "-earlyR6bc") == 0 && abi == X_INTEL_ABI) - abi = X_INTEL_ABI_BC; - if (strcmp (argv[i], "-arrayperabi") == 0) - abi = X_ARRAYPER_ABI; -#ifdef ARRAYPERSTR - if (strcmp (argv[i], "-defaultabi") == 0) - abi = X_DEFAULT_ABI; -#endif - if (strcmp (argv[i], "-solarisabinames") == 0) - solaris_abi_names = TRUE; - } - } - - if (f == NULL) return 1; - while (fgets(buf, sizeof buf, f)) { - if (!buf[0] || buf[0] == '\n') - continue; - if (buf[0] == '!') { - if (tagline) continue; - tagline = DoComment (buf); - continue; - } - if (buf[(len = strlen (buf) - 1)] == '\n') buf[len] = '\0'; - DoLine(buf); - } - for (phile = file; phile; phile = phile->next) { - if (abi != X_ARRAYPER_ABI) IndexEntries (phile, abi); - WriteHeader (tagline, phile, abi); - } - WriteSource(tagline, abi); - return 0; -} - +/*
+
+Copyright (c) 1991, 1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+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
+OPEN GROUP 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 name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/* Constructs string definitions */
+
+#include <stdio.h>
+#include <X11/Xos.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+typedef struct _TableEnt {
+ struct _TableEnt* next;
+ char* left;
+ char* right;
+ int offset;
+} TableEnt;
+
+typedef struct _Table {
+ struct _Table* next;
+ TableEnt* tableent;
+ TableEnt* tableentcurrent;
+ TableEnt** tableenttail;
+ char* name;
+ int offset;
+} Table;
+
+typedef struct _File {
+ struct _File* next;
+ FILE* tmpl;
+ char* name;
+ Table* table;
+ Table* tablecurrent;
+ Table** tabletail;
+} File;
+
+static File* file = NULL;
+static File* filecurrent = NULL;
+static File** filetail = &file;
+static char* conststr;
+static char* prefixstr = NULL;
+static char* featurestr = NULL;
+static char* ctmplstr = NULL;
+static char* fileprotstr;
+static char* externrefstr;
+static char* externdefstr;
+
+#ifndef FALSE
+# define FALSE 0
+# define TRUE !(FALSE)
+#endif
+
+static int solaris_abi_names = FALSE;
+
+#define X_DEFAULT_ABI 0
+#define X_ARRAYPER_ABI 1
+#define X_INTEL_ABI 2
+#define X_INTEL_ABI_BC 3
+#define X_SPARC_ABI 4
+#define X_FUNCTION_ABI 5
+
+#define X_MAGIC_STRING "<<<STRING_TABLE_GOES_HERE>>>"
+
+/* Wrapper for fopen()
+ * Prepend filename with an includedir which can be specified on the
+ * commandline. Needed to separate source and build directories.
+ */
+static char* includedir = NULL;
+static FILE *ifopen(const char *file, const char *mode)
+{
+ size_t len;
+ char *buffer;
+ FILE *ret;
+
+ if (includedir == NULL)
+ return fopen(file, mode);
+
+ len = strlen(file) + strlen(includedir) + 1;
+ buffer = (char*)malloc(len + 1);
+ if (buffer == NULL)
+ return NULL;
+
+ strcpy(buffer, includedir);
+ strcat(buffer, "/");
+ strcat(buffer, file);
+
+ ret = fopen(buffer, mode);
+
+ free(buffer);
+ return ret;
+}
+
+static void WriteHeaderProlog (FILE *f, File *phile)
+{
+ Table* t;
+ TableEnt* te;
+
+ (void) fprintf (f, "#ifdef %s\n", featurestr);
+ for (t = phile->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next) {
+ if (strcmp (te->left, "RAtom") == 0) {
+ (void) fprintf (f,
+ "#ifndef %s%s\n#define %s%s \"%s\"\n#endif\n",
+ prefixstr, te->left, prefixstr, te->left, te->right);
+ } else {
+ (void) fprintf (f,
+ "#define %s%s \"%s\"\n",
+ prefixstr, te->left, te->right);
+ }
+ }
+ (void) fprintf (f, "%s", "#else\n");
+}
+
+static void IntelABIWriteHeader (FILE *f, File *phile)
+{
+ Table* t;
+ TableEnt* te;
+
+ WriteHeaderProlog (f, phile);
+
+ for (t = phile->table; t; t = t->next) {
+ (void) fprintf (f, "%s %sConst char %s[];\n",
+ externrefstr, conststr ? conststr : fileprotstr, t->name);
+ for (te = t->tableent; te; te = te->next)
+ (void) fprintf (f,
+ "#ifndef %s%s\n#define %s%s ((char*)&%s[%d])\n#endif\n",
+ prefixstr, te->left, prefixstr, te->left, t->name, te->offset);
+ }
+
+ (void) fprintf (f, "#endif /* %s */\n", featurestr);
+}
+
+static void SPARCABIWriteHeader (FILE *f, File *phile)
+{
+ Table* t;
+ TableEnt* te;
+
+ for (t = phile->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next)
+ (void) fprintf (f, "#define %s%s \"%s\"\n",
+ prefixstr, te->left, te->right);
+}
+
+static void FunctionWriteHeader (FILE *f, File *phile)
+{
+ Table* t;
+ TableEnt* te;
+
+ WriteHeaderProlog (f, phile);
+
+ (void) fprintf (f, "%s %sConst char* %s();\n",
+ externrefstr, conststr ? conststr : fileprotstr,
+ phile->table->name);
+
+ for (t = phile->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next)
+ (void) fprintf (f,
+ "#ifndef %s%s\n#define %s%s (%s(%d))\n#endif\n",
+ prefixstr, te->left, prefixstr, te->left, phile->table->name,
+ te->offset);
+
+ (void) fprintf (f, "#endif /* %s */\n", featurestr);
+}
+
+static void ArrayperWriteHeader (FILE *f, File *phile)
+{
+ Table* t;
+ TableEnt* te;
+
+ WriteHeaderProlog (f, phile);
+
+ for (t = phile->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next)
+ (void) fprintf (f,
+ "#ifndef %s%s\n%s %sConst char %s%s[];\n#endif\n",
+ prefixstr, te->left,
+ externrefstr, conststr ? conststr : fileprotstr,
+ prefixstr, te->left);
+
+ (void) fprintf (f, "#endif /* %s */\n", featurestr);
+}
+
+static void DefaultWriteHeader (FILE *f, File *phile)
+{
+ Table* t;
+ TableEnt* te;
+
+ WriteHeaderProlog (f, phile);
+
+ (void) fprintf (f, "%s %sConst char %s[];\n",
+ externrefstr, conststr ? conststr : fileprotstr,
+ phile->table->name);
+
+ for (t = phile->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next)
+ (void) fprintf (f,
+ "#ifndef %s%s\n#define %s%s ((char*)&%s[%d])\n#endif\n",
+ prefixstr, te->left, prefixstr, te->left, phile->table->name,
+ te->offset);
+
+ (void) fprintf (f, "#endif /* %s */\n", featurestr);
+}
+
+static void CopyTmplProlog (FILE *tmpl, FILE *f)
+{
+ char buf[1024];
+ static char* magic_string = X_MAGIC_STRING;
+ int magic_string_len = strlen (magic_string);
+
+ while (fgets (buf, sizeof buf, tmpl)) {
+ if (strncmp (buf, magic_string, magic_string_len) == 0) {
+ return;
+ }
+ (void) fputs (buf, f);
+ }
+}
+
+static void CopyTmplEpilog (FILE *tmpl, FILE *f)
+{
+ char buf[1024];
+
+ while (fgets (buf, sizeof buf, tmpl))
+ (void) fputs (buf, f);
+}
+
+static char* abistring[] = {
+ "Default", "Array per string", "Intel", "Intel BC", "SPARC", "Function" };
+
+static void WriteHeader (char *tagline, File *phile, int abi)
+{
+ FILE* f;
+ char* tmp;
+ static void (*headerproc[])(FILE *f, File *phile) = {
+ DefaultWriteHeader, ArrayperWriteHeader,
+ IntelABIWriteHeader, IntelABIWriteHeader,
+ SPARCABIWriteHeader, FunctionWriteHeader };
+
+ if ((f = fopen (phile->name, "w+")) == NULL) exit (1);
+
+ if (phile->tmpl) CopyTmplProlog (phile->tmpl, f);
+
+ (void) fprintf (f,
+ "%s\n%s\n/* %s ABI version -- Do not edit */\n",
+ "/* $Xorg: makestrs.c,v 1.6 2001/02/09 02:03:17 xorgcvs Exp $ */",
+ "/* This file is automatically generated. */",
+ abistring[abi]);
+
+ if (tagline) (void) fprintf (f, "/* %s */\n\n", tagline);
+
+ /* do the right thing for Motif, i.e. avoid _XmXmStrDefs_h_ */
+ if (strcmp (prefixstr, "Xm") == 0) {
+ if ((fileprotstr = malloc (strlen (phile->name) + 3)) == NULL)
+ exit (1);
+ (void) sprintf (fileprotstr, "_%s_", phile->name);
+ } else {
+ if ((fileprotstr = malloc (strlen (phile->name) + strlen (prefixstr) + 3)) == NULL)
+ exit (1);
+ (void) sprintf (fileprotstr, "_%s%s_", prefixstr, phile->name);
+ }
+
+ for (tmp = fileprotstr; *tmp; tmp++) if (*tmp == '.') *tmp = '_';
+
+ (*headerproc[abi])(f, phile);
+
+ if (phile->tmpl) CopyTmplEpilog (phile->tmpl, f);
+
+ (void) free (fileprotstr);
+ (void) fclose (phile->tmpl);
+ (void) fclose (f);
+}
+
+static void WriteSourceLine (TableEnt *te, int abi, int fudge)
+{
+ char* c;
+
+ for (c = te->right; *c; c++) (void) printf ("'%c',", *c);
+ (void) printf ("%c", '0');
+ if (te->next || fudge) (void) printf ("%c", ',');
+ (void) printf ("%s", "\n");
+}
+
+static char* const_string = "%s %sConst char %s[] = {\n";
+
+static void IntelABIWriteSource (int abi)
+{
+ File* phile;
+
+ for (phile = file; phile; phile = phile->next) {
+ Table* t;
+ TableEnt* te;
+
+ for (t = phile->table; t; t = t->next) {
+ (void) printf (const_string, externdefstr,
+ conststr ? conststr : "", t->name);
+ for (te = t->tableent; te; te = te->next)
+ WriteSourceLine (te, abi, 0);
+ (void) printf ("%s\n\n", "};");
+ }
+ }
+}
+
+static void IntelABIBCWriteSource (int abi)
+{
+ File* phile;
+
+ for (phile = file; phile; phile = phile->next) {
+ Table* t;
+ TableEnt* te;
+
+ (void) printf (const_string, externdefstr,
+ conststr ? conststr : "", phile->table->name);
+
+ for (t = phile->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next)
+ WriteSourceLine (te, abi, t->next ? 1 : 0);
+ (void) printf ("%s\n\n", "};");
+
+ if (phile->table->next) {
+ (void) printf (const_string, externdefstr,
+ conststr ? conststr : "", phile->table->next->name);
+ for (t = phile->table->next; t; t = t->next)
+ for (te = t->tableent; te; te = te->next)
+ WriteSourceLine (te, abi, 0);
+ (void) printf ("%s\n\n", "};");
+ }
+ }
+}
+
+static void FunctionWriteSource (int abi)
+{
+ File* phile;
+
+ for (phile = file; phile; phile = phile->next) {
+ Table* t;
+ TableEnt* te;
+
+ (void) printf ("static %sConst char _%s[] = {\n",
+ conststr ? conststr : "", phile->table->name);
+
+ for (t = phile->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next)
+ WriteSourceLine (te, abi, t->next ? 1 : 0);
+ (void) printf ("%s\n\n", "};");
+
+ (void) printf ("%sConst char* %s(index)\n int index;\n{\n return &_%s[index];\n}\n\n",
+ conststr ? conststr : "",
+ phile->table->name, phile->table->name);
+ }
+}
+
+static void ArrayperWriteSource (int abi)
+{
+ File* phile;
+ static int done_atom;
+
+ for (phile = file; phile; phile = phile->next) {
+ Table* t;
+ TableEnt* te;
+
+ for (t = phile->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next) {
+ if (strcmp (te->left, "RAtom") == 0) {
+ if (done_atom) return;
+ done_atom = 1;
+ }
+ (void) printf ("%s %sConst char %s%s[] = \"%s\";\n",
+ externdefstr, conststr ? conststr : "",
+ prefixstr,
+ te->left, te->right);
+ }
+ }
+}
+
+static void DefaultWriteSource (int abi)
+{
+ File* phile;
+
+ for (phile = file; phile; phile = phile->next) {
+ Table* t;
+ TableEnt* te;
+
+ (void) printf (const_string, externdefstr, conststr ? conststr : "",
+ phile->table->name);
+
+ for (t = phile->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next)
+ WriteSourceLine (te, abi, t->next ? 1 : 0);
+ (void) printf ("%s\n\n", "};");
+ }
+}
+
+static void WriteSource(char *tagline, int abi)
+{
+ static void (*sourceproc[])(int) = {
+ DefaultWriteSource, ArrayperWriteSource,
+ IntelABIWriteSource, IntelABIBCWriteSource,
+ DefaultWriteSource, FunctionWriteSource };
+
+ FILE* tmpl;
+
+ if (ctmplstr) {
+ tmpl = ifopen (ctmplstr, "r");
+
+ if (tmpl) CopyTmplProlog (tmpl, stdout);
+ else {
+ (void) fprintf (stderr, "Expected template %s, not found\n",
+ ctmplstr);
+ exit (1);
+ }
+ } else
+ tmpl = NULL;
+
+
+ (void) printf ("%s\n%s\n/* %s ABI version -- Do not edit */\n",
+ "/* $Xorg: makestrs.c,v 1.6 2001/02/09 02:03:17 xorgcvs Exp $ */",
+ "/* This file is automatically generated. */",
+ abistring[abi]);
+
+ if (tagline) (void) printf ("/* %s */\n\n", tagline);
+
+ (*sourceproc[abi])(abi);
+
+ if (tmpl) CopyTmplEpilog (tmpl, stdout);
+}
+
+static void DoLine(char *buf)
+{
+#define X_NO_TOKEN 0
+#define X_FILE_TOKEN 1
+#define X_TABLE_TOKEN 2
+#define X_PREFIX_TOKEN 3
+#define X_FEATURE_TOKEN 4
+#define X_EXTERNREF_TOKEN 5
+#define X_EXTERNDEF_TOKEN 6
+#define X_CTMPL_TOKEN 7
+#define X_HTMPL_TOKEN 8
+#define X_CONST_TOKEN 9
+
+ int token;
+ char lbuf[1024];
+ static char* file_str = "#file";
+ static char* table_str = "#table";
+ static char* prefix_str = "#prefix";
+ static char* feature_str = "#feature";
+ static char* externref_str = "#externref";
+ static char* externdef_str = "#externdef";
+ static char* ctmpl_str = "#ctmpl";
+ static char* htmpl_str = "#htmpl";
+ static char* const_str = "#const";
+
+ if (strncmp (buf, file_str, strlen (file_str)) == 0)
+ token = X_FILE_TOKEN;
+ else if (strncmp (buf, table_str, strlen (table_str)) == 0)
+ token = X_TABLE_TOKEN;
+ else if (strncmp (buf, prefix_str, strlen (prefix_str)) == 0)
+ token = X_PREFIX_TOKEN;
+ else if (strncmp (buf, feature_str, strlen (feature_str)) == 0)
+ token = X_FEATURE_TOKEN;
+ else if (strncmp (buf, externref_str, strlen (externref_str)) == 0)
+ token = X_EXTERNREF_TOKEN;
+ else if (strncmp (buf, externdef_str, strlen (externdef_str)) == 0)
+ token = X_EXTERNDEF_TOKEN;
+ else if (strncmp (buf, ctmpl_str, strlen (ctmpl_str)) == 0)
+ token = X_CTMPL_TOKEN;
+ else if (strncmp (buf, htmpl_str, strlen (htmpl_str)) == 0)
+ token = X_HTMPL_TOKEN;
+ else if (strncmp (buf, const_str, strlen (const_str)) == 0)
+ token = X_CONST_TOKEN;
+ else
+ token = X_NO_TOKEN;
+
+ switch (token) {
+ case X_FILE_TOKEN:
+ {
+ File* phile;
+
+ if ((phile = (File*) malloc (sizeof(File))) == NULL)
+ exit(1);
+ if ((phile->name = malloc (strlen (buf + strlen (file_str)) + 1)) == NULL)
+ exit(1);
+ (void) strcpy (phile->name, buf + strlen (file_str) + 1);
+ phile->table = NULL;
+ phile->tablecurrent = NULL;
+ phile->tabletail = &phile->table;
+ phile->next = NULL;
+ phile->tmpl = NULL;
+
+ *filetail = phile;
+ filetail = &phile->next;
+ filecurrent = phile;
+ }
+ break;
+ case X_TABLE_TOKEN:
+ {
+ Table* table;
+ if ((table = (Table*) malloc (sizeof(Table))) == NULL)
+ exit(1);
+ if ((table->name = malloc (strlen (buf + strlen (table_str)) + 1)) == NULL)
+ exit(1);
+ (void) strcpy (table->name, buf + strlen (table_str) + 1);
+ if (solaris_abi_names) {
+ if (strcmp(table->name, "XtStringsR6") == 0) {
+ strcpy(table->name, "XtR6Strings");
+ } else if (strcmp(table->name, "XtShellStringsR6") == 0) {
+ strcpy(table->name, "XtR6ShellStrings");
+ }
+ }
+ table->tableent = NULL;
+ table->tableentcurrent = NULL;
+ table->tableenttail = &table->tableent;
+ table->next = NULL;
+ table->offset = 0;
+
+ *filecurrent->tabletail = table;
+ filecurrent->tabletail = &table->next;
+ filecurrent->tablecurrent = table;
+ }
+ break;
+ case X_PREFIX_TOKEN:
+ if ((prefixstr = malloc (strlen (buf + strlen (prefix_str)) + 1)) == NULL)
+ exit(1);
+ (void) strcpy (prefixstr, buf + strlen (prefix_str) + 1);
+ break;
+ case X_FEATURE_TOKEN:
+ if ((featurestr = malloc (strlen (buf + strlen (feature_str)) + 1)) == NULL)
+ exit(1);
+ (void) strcpy (featurestr, buf + strlen (feature_str) + 1);
+ break;
+ case X_EXTERNREF_TOKEN:
+ if ((externrefstr = malloc (strlen (buf + strlen (externref_str)) + 1)) == NULL)
+ exit(1);
+ (void) strcpy (externrefstr, buf + strlen (externref_str) + 1);
+ break;
+ case X_EXTERNDEF_TOKEN:
+ if ((externdefstr = malloc (strlen (buf + strlen (externdef_str)) + 1)) == NULL)
+ exit(1);
+ (void) strcpy (externdefstr, buf + strlen (externdef_str) + 1);
+ break;
+ case X_CTMPL_TOKEN:
+ if ((ctmplstr = malloc (strlen (buf + strlen (ctmpl_str)) + 1)) == NULL)
+ exit(1);
+ (void) strcpy (ctmplstr, buf + strlen (ctmpl_str) + 1);
+ break;
+ case X_HTMPL_TOKEN:
+ if ((filecurrent->tmpl = ifopen (buf + strlen (htmpl_str) + 1, "r")) == NULL) {
+ (void) fprintf (stderr,
+ "Expected template %s, not found\n", htmpl_str);
+ exit (1);
+ }
+ break;
+ case X_CONST_TOKEN:
+ if ((conststr = malloc (strlen (buf + strlen (const_str)) + 1)) == NULL)
+ exit(1);
+ (void) strcpy (conststr, buf + strlen (const_str) + 1);
+ break;
+ default:
+ {
+ char* right;
+ TableEnt* tableent;
+ int llen;
+ int rlen;
+ int len;
+
+ if ((right = index(buf, ' ')))
+ *right++ = 0;
+ else
+ right = buf + 1;
+ if (buf[0] == 'H') {
+ strcpy (lbuf, prefixstr);
+ strcat (lbuf, right);
+ right = lbuf;
+ }
+
+ llen = len = strlen(buf) + 1;
+ rlen = strlen(right) + 1;
+ if (right != buf + 1) len += rlen;
+ if ((tableent = (TableEnt*)malloc(sizeof(TableEnt) + len)) == NULL)
+ exit(1);
+ tableent->left = (char *)(tableent + 1);
+ strcpy(tableent->left, buf);
+ if (llen != len) {
+ tableent->right = tableent->left + llen;
+ strcpy(tableent->right, right);
+ } else {
+ tableent->right = tableent->left + 1;
+ }
+ tableent->next = NULL;
+
+ *filecurrent->tablecurrent->tableenttail = tableent;
+ filecurrent->tablecurrent->tableenttail = &tableent->next;
+ filecurrent->tablecurrent->tableentcurrent = tableent;
+ }
+ break;
+ }
+}
+
+static void IntelABIIndexEntries (File *file)
+{
+ Table* t;
+ TableEnt* te;
+
+ for (t = file->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next) {
+ te->offset = t->offset;
+ t->offset += strlen (te->right);
+ t->offset++;
+ }
+}
+
+static void DefaultIndexEntries (File *file)
+{
+ Table* t;
+ TableEnt* te;
+ int offset = 0;
+
+ for (t = file->table; t; t = t->next)
+ for (te = t->tableent; te; te = te->next) {
+ te->offset = offset;
+ offset += strlen (te->right);
+ offset++;
+ }
+}
+
+static void IndexEntries (File *file, int abi)
+{
+ switch (abi) {
+ case X_SPARC_ABI:
+ break;
+ case X_INTEL_ABI:
+ case X_INTEL_ABI_BC:
+ IntelABIIndexEntries (file);
+ break;
+ default:
+ DefaultIndexEntries (file);
+ break;
+ }
+}
+
+static char* DoComment (char *line)
+{
+ char* tag;
+ char* eol;
+ char* ret;
+ int len;
+
+ /* assume that the first line with two '$' in it is the RCS tag line */
+ if ((tag = index (line, '$')) == NULL) return NULL;
+ if ((eol = index (tag + 1, '$')) == NULL) return NULL;
+ len = eol - tag;
+ if ((ret = malloc (len)) == NULL)
+ exit (1);
+ (void) strncpy (ret, tag + 1, len - 1);
+ ret[len - 2] = 0;
+ return ret;
+}
+
+int main(int argc, char *argv[])
+{
+ int len, i;
+ char* tagline = NULL;
+ File* phile;
+ FILE *f;
+ char buf[1024];
+ int abi =
+#ifndef ARRAYPERSTR
+ X_DEFAULT_ABI;
+#else
+ X_ARRAYPER_ABI;
+#endif
+
+ f = stdin;
+ if (argc > 1) {
+ for (i = 1; i < argc; i++) {
+ if (strcmp (argv[i], "-f") == 0) {
+ if (++i < argc)
+ f = fopen (argv[i], "r");
+ else
+ return 1;
+ }
+ if (strcmp (argv[i], "-i") == 0) {
+ if (++i < argc)
+ includedir = argv[i];
+ else
+ return 1;
+ }
+ if (strcmp (argv[i], "-sparcabi") == 0)
+ abi = X_SPARC_ABI;
+ if (strcmp (argv[i], "-intelabi") == 0)
+ abi = X_INTEL_ABI;
+ if (strcmp (argv[i], "-functionabi") == 0)
+ abi = X_FUNCTION_ABI;
+ if (strcmp (argv[i], "-earlyR6bc") == 0 && abi == X_INTEL_ABI)
+ abi = X_INTEL_ABI_BC;
+ if (strcmp (argv[i], "-arrayperabi") == 0)
+ abi = X_ARRAYPER_ABI;
+#ifdef ARRAYPERSTR
+ if (strcmp (argv[i], "-defaultabi") == 0)
+ abi = X_DEFAULT_ABI;
+#endif
+ if (strcmp (argv[i], "-solarisabinames") == 0)
+ solaris_abi_names = TRUE;
+ }
+ }
+
+ if (f == NULL) return 1;
+ while (fgets(buf, sizeof buf, f)) {
+ if (!buf[0] || buf[0] == '\n')
+ continue;
+ if (buf[0] == '!') {
+ if (tagline) continue;
+ tagline = DoComment (buf);
+ continue;
+ }
+ if (buf[(len = strlen (buf) - 1)] == '\n') buf[len] = '\0';
+ DoLine(buf);
+ }
+ for (phile = file; phile; phile = phile->next) {
+ if (abi != X_ARRAYPER_ABI) IndexEntries (phile, abi);
+ WriteHeader (tagline, phile, abi);
+ }
+ WriteSource(tagline, abi);
+ return 0;
+}
+
diff --git a/libXt/util/makestrs.man b/libXt/util/makestrs.man index 0bb1b0ad3..3bb43559e 100644 --- a/libXt/util/makestrs.man +++ b/libXt/util/makestrs.man @@ -1,216 +1,216 @@ -.\" Copyright (c) 1993, 1994, 1998 The Open Group -.\" -.\" Permission to use, copy, modify, distribute, and sell this software and its -.\" documentation for any purpose is hereby granted without fee, provided that -.\" the above copyright notice appear in all copies and that both that -.\" copyright notice and this permission notice appear in supporting -.\" documentation. -.\" -.\" 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 OPEN GROUP 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 name of The Open Group shall not -.\" be used in advertising or otherwise to promote the sale, use or other -.\" dealing in this Software without prior written authorization from The -.\" Open Group. -.\" -.TH MAKESTRS 1 __xorgversion__ -.SH NAME -makestrs \- makes string table C source and header(s) -.SH SYNOPSIS -.B makestrs [-f source] [-i includedir] [-abioptions ...] -.SH DESCRIPTION -The -.I makestrs -command creates string table C source files and headers. -If -.I -f -.I source -is not specified -.I makestrs -will read from -.IR stdin . -The C source file is always written to -.IR stdout . -.I makestrs -creates one or more C header files as specified in the source file. -The following options may be specified: -.IR -sparcabi , -.IR -intelabi , -.IR -functionabi , -.IR -arrayperabi , -and -.I -defaultabi. -.LP -.I -sparcabi -is used on SPARC platforms conforming to the SPARC -Compliance Definition, i.e. SVR4/Solaris. -.LP -.I -intelabi -is used on Intel platforms conforming to the System -V Application Binary Interface, i.e. SVR4. -.LP -.I -earlyR6abi -may be used in addition to -.I -intelabi -for situations -where the vendor wishes to maintain binary compatibility between -X11R6 public-patch 11 (and earlier) and X11R6 public-patch 12 (and later). -.LP -.I -functionabi -generates a functional abi to the string table. This -mechanism imposes a severe performance penalty and it's recommended -that you not use it. -.LP -.I -arrayperabi -results in a separate array for each string. This is -the default behavior if makestrs was compiled with -DARRAYPERSTR -(it almost never is). -.LP -.I -defaultabi -forces the generation of the "normal" string table even -if makestrs was compiled with -DARRAYPERSTR. Since makestrs is almost -never compiled with -DARRAYPERSTR this is the default behavior if -no abioptions are specified. -.LP -.I -i includedir -forces the reading of templates from the includedir instead of the local -directory. This is useful to have separate source and build directories. -.SH SYNTAX -The syntax for string-list file is (items in square brackets are optional): -.RS 4 -\&#prefix <text> -.RE -.RS 4 -\&#feature <text> -.RE -.RS 4 -\&#externref <text> -.RE -.RS 4 -\&#externdef [<text>] -.RE -.RS 4 -[#ctempl <text>] -.RE -.LP -.RS 4 -\&#file <filename> -.RE -.RS 4 -\&#table <tablename> -.RE -.RS 4 -[#htempl] -.RE -.RS 4 -<text> -.RE -.RS 4 -\&... -.RE -.RS 4 -<text> -.RE -.RS 4 -[#table <tablename> -.RE -.RS 4 -<text> -.RE -.RS 4 -\&... -.RE -.RS 4 -<text> -.RE -.RS 4 -\& ... -.RE -.RS 4 -\&#table <tablename> -.RE -.RS 4 -\& ...] -.RE -.RS 4 -[#file <filename> -.RE -.RS 4 -\& ...] -.RE -.LP -In words you may have one or more #file directives. Each #file may have -one or more #table directives. -.LP -The #prefix directive determines the string that makestr will prefix -to each definition. -.LP -The #feature directive determines the string that makestr will use -for the feature-test macro, e.g. X[TM]STRINGDEFINES. -.LP -The #externref directive determines the string that makestr will use -for the extern clause, typically this will be "extern" but Motif wants -it to be "externalref" -.LP -The #externdef directive determines the string that makestr will use -for the declaration, typically this will be the null string (note that -makestrs requires a trailing space in this case, i.e. "#externdef "), -and Motif will use "externaldef(_xmstrings). -.LP -The #ctmpl directive determines the name of the file used as a template -for the C source file that is generated -.LP -Each #file <filename> directive will result in a corresponding header -file by that name containing the appropriate definitions as specified -by command line options. A single C source file containing the -declarations for the definitions in all the headers will be printed -to stdout. -.LP -The #htmpl directive determines the name of the file used as a template -for the C header file that is generated. -.LP -Each #table <tablename> directive will be processed in accordance with -the ABI. On most platforms all tables will be catenated into a single -table with the name of the first table for that file. To conform to -the Intel ABI separate tables will be generated with the names indicated. -.LP -The template files specified by the #ctmpl and #htmpl directives -are processed by copying line for line from the template file to -the appropriate output file. The line containing the string -.I <<<STRING_TABLE_GOES_HERE>>> -is not copied to the output file. The appropriate data is then -copied to the output file and then the remainder of the template -file is copied to the output file. -.SH BUGS -makestrs is not very forgiving of syntax errors. Sometimes you need -a trailing space after # directives, other times they will mess you -up. No warning messages are emitted. -.SH SEE ALSO -SPARC Compliance Definition 2.2., SPARC International Inc., -535 Middlefield Road, Suite 210, Menlo Park, CA 94025 -.LP -System V Application Binary Interface, Third Edition, -ISBN 0-13-100439-5 -UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs, -NJ 07632 -.LP -System V Application Binary Interface, Third Edition, Intel386 -Architecture Processor Supplement -ISBN 0-13-104670-5 -UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs, -NJ 07632 -.LP -System V Application Binary Interface, Third Edition, SPARC -Architecture Processor Supplement -ISBN 0-13-104696-9 -UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs, -NJ 07632 +.\" Copyright (c) 1993, 1994, 1998 The Open Group
+.\"
+.\" Permission to use, copy, modify, distribute, and sell this software and its
+.\" documentation for any purpose is hereby granted without fee, provided that
+.\" the above copyright notice appear in all copies and that both that
+.\" copyright notice and this permission notice appear in supporting
+.\" documentation.
+.\"
+.\" 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 OPEN GROUP 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 name of The Open Group shall not
+.\" be used in advertising or otherwise to promote the sale, use or other
+.\" dealing in this Software without prior written authorization from The
+.\" Open Group.
+.\"
+.TH MAKESTRS 1 __xorgversion__
+.SH NAME
+makestrs \- makes string table C source and header(s)
+.SH SYNOPSIS
+.B makestrs [-f source] [-i includedir] [-abioptions ...]
+.SH DESCRIPTION
+The
+.I makestrs
+command creates string table C source files and headers.
+If
+.I -f
+.I source
+is not specified
+.I makestrs
+will read from
+.IR stdin .
+The C source file is always written to
+.IR stdout .
+.I makestrs
+creates one or more C header files as specified in the source file.
+The following options may be specified:
+.IR -sparcabi ,
+.IR -intelabi ,
+.IR -functionabi ,
+.IR -arrayperabi ,
+and
+.I -defaultabi.
+.LP
+.I -sparcabi
+is used on SPARC platforms conforming to the SPARC
+Compliance Definition, i.e. SVR4/Solaris.
+.LP
+.I -intelabi
+is used on Intel platforms conforming to the System
+V Application Binary Interface, i.e. SVR4.
+.LP
+.I -earlyR6abi
+may be used in addition to
+.I -intelabi
+for situations
+where the vendor wishes to maintain binary compatibility between
+X11R6 public-patch 11 (and earlier) and X11R6 public-patch 12 (and later).
+.LP
+.I -functionabi
+generates a functional abi to the string table. This
+mechanism imposes a severe performance penalty and it's recommended
+that you not use it.
+.LP
+.I -arrayperabi
+results in a separate array for each string. This is
+the default behavior if makestrs was compiled with -DARRAYPERSTR
+(it almost never is).
+.LP
+.I -defaultabi
+forces the generation of the "normal" string table even
+if makestrs was compiled with -DARRAYPERSTR. Since makestrs is almost
+never compiled with -DARRAYPERSTR this is the default behavior if
+no abioptions are specified.
+.LP
+.I -i includedir
+forces the reading of templates from the includedir instead of the local
+directory. This is useful to have separate source and build directories.
+.SH SYNTAX
+The syntax for string-list file is (items in square brackets are optional):
+.RS 4
+\&#prefix <text>
+.RE
+.RS 4
+\&#feature <text>
+.RE
+.RS 4
+\&#externref <text>
+.RE
+.RS 4
+\&#externdef [<text>]
+.RE
+.RS 4
+[#ctempl <text>]
+.RE
+.LP
+.RS 4
+\&#file <filename>
+.RE
+.RS 4
+\&#table <tablename>
+.RE
+.RS 4
+[#htempl]
+.RE
+.RS 4
+<text>
+.RE
+.RS 4
+\&...
+.RE
+.RS 4
+<text>
+.RE
+.RS 4
+[#table <tablename>
+.RE
+.RS 4
+<text>
+.RE
+.RS 4
+\&...
+.RE
+.RS 4
+<text>
+.RE
+.RS 4
+\& ...
+.RE
+.RS 4
+\&#table <tablename>
+.RE
+.RS 4
+\& ...]
+.RE
+.RS 4
+[#file <filename>
+.RE
+.RS 4
+\& ...]
+.RE
+.LP
+In words you may have one or more #file directives. Each #file may have
+one or more #table directives.
+.LP
+The #prefix directive determines the string that makestr will prefix
+to each definition.
+.LP
+The #feature directive determines the string that makestr will use
+for the feature-test macro, e.g. X[TM]STRINGDEFINES.
+.LP
+The #externref directive determines the string that makestr will use
+for the extern clause, typically this will be "extern" but Motif wants
+it to be "externalref"
+.LP
+The #externdef directive determines the string that makestr will use
+for the declaration, typically this will be the null string (note that
+makestrs requires a trailing space in this case, i.e. "#externdef "),
+and Motif will use "externaldef(_xmstrings).
+.LP
+The #ctmpl directive determines the name of the file used as a template
+for the C source file that is generated
+.LP
+Each #file <filename> directive will result in a corresponding header
+file by that name containing the appropriate definitions as specified
+by command line options. A single C source file containing the
+declarations for the definitions in all the headers will be printed
+to stdout.
+.LP
+The #htmpl directive determines the name of the file used as a template
+for the C header file that is generated.
+.LP
+Each #table <tablename> directive will be processed in accordance with
+the ABI. On most platforms all tables will be catenated into a single
+table with the name of the first table for that file. To conform to
+the Intel ABI separate tables will be generated with the names indicated.
+.LP
+The template files specified by the #ctmpl and #htmpl directives
+are processed by copying line for line from the template file to
+the appropriate output file. The line containing the string
+.I <<<STRING_TABLE_GOES_HERE>>>
+is not copied to the output file. The appropriate data is then
+copied to the output file and then the remainder of the template
+file is copied to the output file.
+.SH BUGS
+makestrs is not very forgiving of syntax errors. Sometimes you need
+a trailing space after # directives, other times they will mess you
+up. No warning messages are emitted.
+.SH SEE ALSO
+SPARC Compliance Definition 2.2., SPARC International Inc.,
+535 Middlefield Road, Suite 210, Menlo Park, CA 94025
+.LP
+System V Application Binary Interface, Third Edition,
+ISBN 0-13-100439-5
+UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,
+NJ 07632
+.LP
+System V Application Binary Interface, Third Edition, Intel386
+Architecture Processor Supplement
+ISBN 0-13-104670-5
+UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,
+NJ 07632
+.LP
+System V Application Binary Interface, Third Edition, SPARC
+Architecture Processor Supplement
+ISBN 0-13-104696-9
+UNIX Press, PTR Prentice Hall, 113 Sylvan Avenue, Englewood Cliffs,
+NJ 07632
diff --git a/libXt/util/string.list b/libXt/util/string.list index 5e8d8519f..1ebea29e7 100644 --- a/libXt/util/string.list +++ b/libXt/util/string.list @@ -1,398 +1,398 @@ -! NOTE: To maintain binary compatibility, you can only APPEND items within -! a given list!!!! -! -! See the makestrs(1) manual. -! - -#prefix Xt -#feature XTSTRINGDEFINES -#externref extern -#externdef -! note that the trailing space is required in the #externdef line. -#ctmpl util/StrDefs.ct - -#file StringDefs.h -#table XtStrings -#htmpl util/StrDefs.ht - -Naccelerators -NallowHoriz -NallowVert -NancestorSensitive -Nbackground -NbackgroundPixmap -Nbitmap -NborderColor -Nborder borderColor -NborderPixmap -NborderWidth -Ncallback -Nchildren -Ncolormap -Ndepth -NdestroyCallback -NeditType -Nfile -Nfont -NforceBars -Nforeground -Nfunction -Nheight -Nhighlight -NhSpace -Nindex -NinitialResourcesPersistent -NinnerHeight -NinnerWidth -NinnerWindow -NinsertPosition -NinternalHeight -NinternalWidth -NjumpProc -Njustify -NknobHeight -NknobIndent -NknobPixel -NknobWidth -Nlabel -Nlength -NlowerRight -NmappedWhenManaged -NmenuEntry -Nname -Nnotify -NnumChildren -Norientation -Nparameter -Npixmap -NpopupCallback -NpopdownCallback -Nresize -NreverseVideo -Nscreen -NscrollProc -NscrollDCursor -NscrollHCursor -NscrollLCursor -NscrollRCursor -NscrollUCursor -NscrollVCursor -Nselection -NselectionArray -Nsensitive -Nshown -Nspace -Nstring -NtextOptions -NtextSink -NtextSource -Nthickness -Nthumb -NthumbProc -Ntop -Ntranslations -NunrealizeCallback -Nupdate -NuseBottom -NuseRight -Nvalue -NvSpace -Nwidth -Nwindow -Nx -Ny -CAccelerators -CBackground -CBitmap -CBoolean -CBorderColor -CBorderWidth -CCallback -CColormap -CColor -CCursor -CDepth -CEditType -CEventBindings -CFile -CFont -CForeground -CFraction -CFunction -CHeight -CHSpace -CIndex -CInitialResourcesPersistent -CInsertPosition -CInterval -CJustify -CKnobIndent -CKnobPixel -CLabel -CLength -CMappedWhenManaged -CMargin -CMenuEntry -CNotify -COrientation -CParameter -CPixmap -CPosition -CReadOnly -CResize -CReverseVideo -CScreen -CScrollProc -CScrollDCursor -CScrollHCursor -CScrollLCursor -CScrollRCursor -CScrollUCursor -CScrollVCursor -CSelection -CSensitive -CSelectionArray -CSpace -CString -CTextOptions -CTextPosition -CTextSink -CTextSource -CThickness -CThumb -CTranslations -CValue -CVSpace -CWidth -CWindow -CX -CY -RAcceleratorTable -RAtom -RBitmap -RBool -RBoolean -RCallback -RCallProc -RCardinal -RColor -RColormap -RCursor -RDimension -RDisplay -REditMode -REnum -RFile -RFloat -RFont -RFontStruct -RFunction -RGeometry -RImmediate -RInitialState -RInt -RJustify -RLongBoolean Bool -RObject -ROrientation -RPixel -RPixmap -RPointer -RPosition -RScreen -RShort -RString -RStringArray -RStringTable -RUnsignedChar -RTranslationTable -RVisual -RWidget -RWidgetClass -RWidgetList -RWindow -Eoff -Efalse -Eno -Eon -Etrue -Eyes -Evertical -Ehorizontal -EtextRead read -EtextAppend append -EtextEdit edit -Extdefaultbackground -Extdefaultforeground -Extdefaultfont -NfontSet -RFontSet -CFontSet - -#table XtStringsR6 - -RGravity -NcreateHook -NchangeHook -NconfigureHook -NgeometryHook -NdestroyHook -Nshells -NnumShells -RCommandArgArray -RDirectoryString -REnvironmentArray -RRestartStyle -RSmcConn -Hcreate -HsetValues -HmanageChildren -HunmanageChildren -HmanageSet -HunmanageSet -HrealizeWidget -HunrealizeWidget -HaddCallback -HaddCallbacks -HremoveCallback -HremoveCallbacks -HremoveAllCallbacks -HaugmentTranslations -HoverrideTranslations -HuninstallTranslations -HsetKeyboardFocus -HsetWMColormapWindows -HsetMappedWhenManaged -HmapWidget -HunmapWidget -Hpopup -HpopupSpringLoaded -Hpopdown -Hconfigure -HpreGeometry -HpostGeometry -Hdestroy - -#file Shell.h -#table XtShellStrings -#htmpl util/Shell.ht - -NiconName -CIconName -NiconPixmap -CIconPixmap -NiconWindow -CIconWindow -NiconMask -CIconMask -NwindowGroup -CWindowGroup -Nvisual -CVisual -NtitleEncoding -CTitleEncoding -NsaveUnder -CSaveUnder -Ntransient -CTransient -NoverrideRedirect -COverrideRedirect -NtransientFor -CTransientFor -NiconNameEncoding -CIconNameEncoding -NallowShellResize -CAllowShellResize -NcreatePopupChildProc -CCreatePopupChildProc -Ntitle -CTitle -RAtom -Nargc -CArgc -Nargv -CArgv -NiconX -CIconX -NiconY -CIconY -Ninput -CInput -Niconic -CIconic -NinitialState -CInitialState -Ngeometry -CGeometry -NbaseWidth -CBaseWidth -NbaseHeight -CBaseHeight -NwinGravity -CWinGravity -NminWidth -CMinWidth -NminHeight -CMinHeight -NmaxWidth -CMaxWidth -NmaxHeight -CMaxHeight -NwidthInc -CWidthInc -NheightInc -CHeightInc -NminAspectY -CMinAspectY -NmaxAspectY -CMaxAspectY -NminAspectX -CMinAspectX -NmaxAspectX -CMaxAspectX -NwmTimeout -CWmTimeout -NwaitForWm waitforwm -CWaitForWm Waitforwm - -#table XtShellStringsR6 - -Nwaitforwm -CWaitforwm -NclientLeader -CClientLeader -NwindowRole -CWindowRole -Nurgency -CUrgency -NcancelCallback -NcloneCommand -CCloneCommand -Nconnection -CConnection -NcurrentDirectory -CCurrentDirectory -NdieCallback -NdiscardCommand -CDiscardCommand -Nenvironment -CEnvironment -NinteractCallback -NjoinSession -CJoinSession -NprogramPath -CProgramPath -NresignCommand -CResignCommand -NrestartCommand -CRestartCommand -NrestartStyle -CRestartStyle -NsaveCallback -NsaveCompleteCallback -NsessionID -CSessionID -NshutdownCommand -CShutdownCommand -NerrorCallback - +! NOTE: To maintain binary compatibility, you can only APPEND items within
+! a given list!!!!
+!
+! See the makestrs(1) manual.
+!
+
+#prefix Xt
+#feature XTSTRINGDEFINES
+#externref extern
+#externdef
+! note that the trailing space is required in the #externdef line.
+#ctmpl util/StrDefs.ct
+
+#file StringDefs.h
+#table XtStrings
+#htmpl util/StrDefs.ht
+
+Naccelerators
+NallowHoriz
+NallowVert
+NancestorSensitive
+Nbackground
+NbackgroundPixmap
+Nbitmap
+NborderColor
+Nborder borderColor
+NborderPixmap
+NborderWidth
+Ncallback
+Nchildren
+Ncolormap
+Ndepth
+NdestroyCallback
+NeditType
+Nfile
+Nfont
+NforceBars
+Nforeground
+Nfunction
+Nheight
+Nhighlight
+NhSpace
+Nindex
+NinitialResourcesPersistent
+NinnerHeight
+NinnerWidth
+NinnerWindow
+NinsertPosition
+NinternalHeight
+NinternalWidth
+NjumpProc
+Njustify
+NknobHeight
+NknobIndent
+NknobPixel
+NknobWidth
+Nlabel
+Nlength
+NlowerRight
+NmappedWhenManaged
+NmenuEntry
+Nname
+Nnotify
+NnumChildren
+Norientation
+Nparameter
+Npixmap
+NpopupCallback
+NpopdownCallback
+Nresize
+NreverseVideo
+Nscreen
+NscrollProc
+NscrollDCursor
+NscrollHCursor
+NscrollLCursor
+NscrollRCursor
+NscrollUCursor
+NscrollVCursor
+Nselection
+NselectionArray
+Nsensitive
+Nshown
+Nspace
+Nstring
+NtextOptions
+NtextSink
+NtextSource
+Nthickness
+Nthumb
+NthumbProc
+Ntop
+Ntranslations
+NunrealizeCallback
+Nupdate
+NuseBottom
+NuseRight
+Nvalue
+NvSpace
+Nwidth
+Nwindow
+Nx
+Ny
+CAccelerators
+CBackground
+CBitmap
+CBoolean
+CBorderColor
+CBorderWidth
+CCallback
+CColormap
+CColor
+CCursor
+CDepth
+CEditType
+CEventBindings
+CFile
+CFont
+CForeground
+CFraction
+CFunction
+CHeight
+CHSpace
+CIndex
+CInitialResourcesPersistent
+CInsertPosition
+CInterval
+CJustify
+CKnobIndent
+CKnobPixel
+CLabel
+CLength
+CMappedWhenManaged
+CMargin
+CMenuEntry
+CNotify
+COrientation
+CParameter
+CPixmap
+CPosition
+CReadOnly
+CResize
+CReverseVideo
+CScreen
+CScrollProc
+CScrollDCursor
+CScrollHCursor
+CScrollLCursor
+CScrollRCursor
+CScrollUCursor
+CScrollVCursor
+CSelection
+CSensitive
+CSelectionArray
+CSpace
+CString
+CTextOptions
+CTextPosition
+CTextSink
+CTextSource
+CThickness
+CThumb
+CTranslations
+CValue
+CVSpace
+CWidth
+CWindow
+CX
+CY
+RAcceleratorTable
+RAtom
+RBitmap
+RBool
+RBoolean
+RCallback
+RCallProc
+RCardinal
+RColor
+RColormap
+RCursor
+RDimension
+RDisplay
+REditMode
+REnum
+RFile
+RFloat
+RFont
+RFontStruct
+RFunction
+RGeometry
+RImmediate
+RInitialState
+RInt
+RJustify
+RLongBoolean Bool
+RObject
+ROrientation
+RPixel
+RPixmap
+RPointer
+RPosition
+RScreen
+RShort
+RString
+RStringArray
+RStringTable
+RUnsignedChar
+RTranslationTable
+RVisual
+RWidget
+RWidgetClass
+RWidgetList
+RWindow
+Eoff
+Efalse
+Eno
+Eon
+Etrue
+Eyes
+Evertical
+Ehorizontal
+EtextRead read
+EtextAppend append
+EtextEdit edit
+Extdefaultbackground
+Extdefaultforeground
+Extdefaultfont
+NfontSet
+RFontSet
+CFontSet
+
+#table XtStringsR6
+
+RGravity
+NcreateHook
+NchangeHook
+NconfigureHook
+NgeometryHook
+NdestroyHook
+Nshells
+NnumShells
+RCommandArgArray
+RDirectoryString
+REnvironmentArray
+RRestartStyle
+RSmcConn
+Hcreate
+HsetValues
+HmanageChildren
+HunmanageChildren
+HmanageSet
+HunmanageSet
+HrealizeWidget
+HunrealizeWidget
+HaddCallback
+HaddCallbacks
+HremoveCallback
+HremoveCallbacks
+HremoveAllCallbacks
+HaugmentTranslations
+HoverrideTranslations
+HuninstallTranslations
+HsetKeyboardFocus
+HsetWMColormapWindows
+HsetMappedWhenManaged
+HmapWidget
+HunmapWidget
+Hpopup
+HpopupSpringLoaded
+Hpopdown
+Hconfigure
+HpreGeometry
+HpostGeometry
+Hdestroy
+
+#file Shell.h
+#table XtShellStrings
+#htmpl util/Shell.ht
+
+NiconName
+CIconName
+NiconPixmap
+CIconPixmap
+NiconWindow
+CIconWindow
+NiconMask
+CIconMask
+NwindowGroup
+CWindowGroup
+Nvisual
+CVisual
+NtitleEncoding
+CTitleEncoding
+NsaveUnder
+CSaveUnder
+Ntransient
+CTransient
+NoverrideRedirect
+COverrideRedirect
+NtransientFor
+CTransientFor
+NiconNameEncoding
+CIconNameEncoding
+NallowShellResize
+CAllowShellResize
+NcreatePopupChildProc
+CCreatePopupChildProc
+Ntitle
+CTitle
+RAtom
+Nargc
+CArgc
+Nargv
+CArgv
+NiconX
+CIconX
+NiconY
+CIconY
+Ninput
+CInput
+Niconic
+CIconic
+NinitialState
+CInitialState
+Ngeometry
+CGeometry
+NbaseWidth
+CBaseWidth
+NbaseHeight
+CBaseHeight
+NwinGravity
+CWinGravity
+NminWidth
+CMinWidth
+NminHeight
+CMinHeight
+NmaxWidth
+CMaxWidth
+NmaxHeight
+CMaxHeight
+NwidthInc
+CWidthInc
+NheightInc
+CHeightInc
+NminAspectY
+CMinAspectY
+NmaxAspectY
+CMaxAspectY
+NminAspectX
+CMinAspectX
+NmaxAspectX
+CMaxAspectX
+NwmTimeout
+CWmTimeout
+NwaitForWm waitforwm
+CWaitForWm Waitforwm
+
+#table XtShellStringsR6
+
+Nwaitforwm
+CWaitforwm
+NclientLeader
+CClientLeader
+NwindowRole
+CWindowRole
+Nurgency
+CUrgency
+NcancelCallback
+NcloneCommand
+CCloneCommand
+Nconnection
+CConnection
+NcurrentDirectory
+CCurrentDirectory
+NdieCallback
+NdiscardCommand
+CDiscardCommand
+Nenvironment
+CEnvironment
+NinteractCallback
+NjoinSession
+CJoinSession
+NprogramPath
+CProgramPath
+NresignCommand
+CResignCommand
+NrestartCommand
+CRestartCommand
+NrestartStyle
+CRestartStyle
+NsaveCallback
+NsaveCompleteCallback
+NsessionID
+CSessionID
+NshutdownCommand
+CShutdownCommand
+NerrorCallback
+
|