summaryrefslogtreecommitdiffstats
path: root/lib/libsi18n/makstrdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libsi18n/makstrdb.c')
-rw-r--r--lib/libsi18n/makstrdb.c221
1 files changed, 221 insertions, 0 deletions
diff --git a/lib/libsi18n/makstrdb.c b/lib/libsi18n/makstrdb.c
new file mode 100644
index 00000000..6f8b78dd
--- /dev/null
+++ b/lib/libsi18n/makstrdb.c
@@ -0,0 +1,221 @@
+/** BEGIN COPYRIGHT BLOCK
+ * Copyright 2001 Sun Microsystems, Inc.
+ * Portions copyright 1999, 2001-2003 Netscape Communications Corporation.
+ * All rights reserved.
+ * END COPYRIGHT BLOCK **/
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "netsite.h"
+#ifdef BERKELEY_DB_RESOURCE
+#include "mcom_db.h"
+#include "nsres.h"
+#endif
+
+#define RESOURCE_STR
+
+/********************************************/
+/* Begin: Application dependent information */
+/********************************************/
+
+#ifdef MCC_ADMSERV
+#include "gsadmserv.h"
+#define GSXXX_H_INCLUDED
+#endif
+
+#ifdef NS_ENTERPRISE
+#include "gshttpd.h"
+#define GSXXX_H_INCLUDED
+#endif
+
+#ifdef NS_DS
+#include "gsslapd.h"
+#define GSXXX_H_INCLUDED
+#endif
+
+#ifdef NS_PERSONAL
+#include "gshttpd.h"
+#define GSXXX_H_INCLUDED
+#endif
+
+#ifdef MCC_PROXY
+#include "gsproxy.h"
+#define GSXXX_H_INCLUDED
+#endif
+
+#ifdef buildAnotherServer
+#include "gsanother.h"
+#define GSXXX_H_INCLUDED
+#endif
+
+/********************************************/
+/* End: Application dependent information */
+/********************************************/
+
+/**********************************************/
+/* Begin: Check that BUILD_MODULE is handled */
+/* and a gs*.h file has been included */
+/**********************************************/
+
+#ifndef GSXXX_H_INCLUDED
+#error Error in makstrdb.c: BUILD_MODULE not handled; gs*.h not included.
+#endif
+
+/********************************************/
+/* End: Check that BUILD_MODULE is handled */
+/* and a gs*.h file has been included */
+/********************************************/
+
+/*******************************************************************************/
+
+#ifdef XP_DEBUG
+
+void
+XP_PrintStringDatabase(void) /* debug routine */
+{
+ int i;
+ int j;
+ char* LibraryName;
+ RESOURCE_TABLE* table;
+
+ j = 0;
+ while (table=allxpstr[j++].restable) {
+ LibraryName = table->str;
+ printf("Library %d: %s\n",j,LibraryName);
+ i = 1;
+ table++;
+ while (table->str) {
+ printf("%d: %s %d \"%s\"\n",i,LibraryName,table->id,table->str);
+ i++;
+ table++;
+ }
+ }
+}
+
+#endif /* XP_DEBUG */
+
+#ifdef BERKELEY_DB_RESOURCE
+/*******************************************************************************/
+
+int
+XP_MakeStringDatabase(void)
+{
+ int j;
+ char* LibraryName;
+ char* cptr;
+ RESOURCE_TABLE* table;
+ NSRESHANDLE hresdb;
+ char DBTlibraryName[128];
+
+ /* Creating database */
+ hresdb = NSResCreateTable(DATABASE_NAME, NULL);
+ if (hresdb==0) {
+ printf("Error creating database %s\n",DATABASE_NAME);
+ return 1;
+ }
+
+ j = 0;
+ while (table=allxpstr[j++].restable) {
+ LibraryName = table->str;
+ printf("Add Library %d: %s\n",j,LibraryName);
+ table++;
+ while (table->str) {
+ if (table->id==-1 && strstr(table->str,"$DBT: ")) {
+ cptr = strstr(table->str,"referenced");
+ if (cptr) {
+ strncpy(cptr,"in DB file",10);
+ }
+ }
+ NSResAddString(hresdb,LibraryName,table->id,table->str,0);
+ table++;
+ }
+ }
+
+ NSResCloseTable(hresdb);
+ return 0;
+}
+#endif
+
+/*******************************************************************************/
+
+int
+XP_MakeStringProperties(void)
+{
+ int j;
+ char* LibraryName;
+ char* cptr;
+ RESOURCE_TABLE* table;
+ FILE *hresfile;
+ char buffer[2000];
+ char *src, *dest;
+ char *dbfile;
+
+ /* Creating database */
+ dbfile = (char *) malloc (strlen(DATABASE_NAME) + 20);
+ strcpy(dbfile, DATABASE_NAME);
+ strcat(dbfile, ".properties");
+
+ hresfile = fopen(dbfile, "w");
+
+ if (hresfile==NULL) {
+ printf("Error creating properties file %s\n",DATABASE_NAME);
+ return 1;
+ }
+
+ j = 0;
+ while (table=allxpstr[j++].restable) {
+ LibraryName = table->str;
+ fprintf(hresfile, "\n");
+ fprintf(hresfile, "#######################################\n");
+ fprintf(hresfile, "############### %s ###############\n", LibraryName);
+ printf("Add Library %d: %s\n",j,LibraryName);
+ table++;
+ while (table->str) {
+ /*
+ Change special char to \uXXXX
+ */
+ src = table->str;
+ dest = buffer;
+ while (*src) {
+ if (*src < 0x20) {
+ strcpy(dest,"\\u00");
+ dest += 4;
+ sprintf(dest, "%02x", *src);
+ dest += 1;
+ }
+ else {
+ *dest = *src;
+ }
+ src ++;
+ dest ++;
+ }
+ *dest = '\0';
+
+ if (table->id > 0) {
+ fprintf(hresfile, "%s-%d =%s\n", LibraryName, table->id, buffer);
+ }
+ table++;
+ }
+ }
+
+ fclose(hresfile);
+ return 0;
+}
+
+
+
+
+/*******************************************************************************/
+
+int main()
+{
+#if 0
+ return XP_MakeStringDatabase();
+#else
+ return XP_MakeStringProperties();
+#endif
+}
+
+/*******************************************************************************/