summaryrefslogtreecommitdiff
path: root/crashrep/source/unx/res
diff options
context:
space:
mode:
Diffstat (limited to 'crashrep/source/unx/res')
-rwxr-xr-xcrashrep/source/unx/res/makefile.mk63
-rwxr-xr-xcrashrep/source/unx/res/unxcrashres.cxx104
2 files changed, 167 insertions, 0 deletions
diff --git a/crashrep/source/unx/res/makefile.mk b/crashrep/source/unx/res/makefile.mk
new file mode 100755
index 000000000000..4e6d733e2d37
--- /dev/null
+++ b/crashrep/source/unx/res/makefile.mk
@@ -0,0 +1,63 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2008 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.6 $
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=crashrep
+TARGET=unxcrashres
+LIBTARGET=NO
+TARGETTYPE=CUI
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+.IF "$(OS)"=="MACOSX"
+
+dummy:
+ @echo "Nothing to build for OS $(OS)"
+
+.ELSE # "$(OS)"=="MACOSX"
+
+# --- Files --------------------------------------------------------
+
+SOLARLIB!:=$(SOLARLIB:s/jre/jnore/)
+
+APP1TARGET=$(TARGET)
+APP1OBJS=$(OBJ)$/unxcrashres.obj
+APP1STDLIBS=$(TOOLSLIB) $(SALLIB)
+
+.ENDIF "$(OS)"=="MACOSX"
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/crashrep/source/unx/res/unxcrashres.cxx b/crashrep/source/unx/res/unxcrashres.cxx
new file mode 100755
index 000000000000..4bfd34f58ba0
--- /dev/null
+++ b/crashrep/source/unx/res/unxcrashres.cxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: unxcrashres.cxx,v $
+ * $Revision: 1.5 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/#include <tools/config.hxx>
+#include <rtl/string.hxx>
+#include <osl/thread.h>
+
+#include <hash_map>
+#include <string>
+#include <cstdio>
+#include <cerrno>
+
+using namespace std;
+using namespace rtl;
+
+void filterValue( ByteString& rValue, const OString& rGroup, const ByteString& rKey )
+{
+ USHORT nStartPos = rValue.Search( '"' );
+ USHORT nStopPos = rValue.SearchBackward( '"' );
+ if( nStartPos == STRING_NOTFOUND || nStopPos == STRING_NOTFOUND )
+ {
+ fprintf( stderr, "Error: invalid key in [%s] in key \"%s\"\n",
+ rGroup.getStr(),
+ rKey.GetBuffer() );
+ exit( 1 );
+ }
+ rValue.Erase( nStopPos );
+ rValue.Erase( 0, nStartPos+1 );
+}
+
+int main( int argc, char** argv )
+{
+ if( argc != 3 )
+ {
+ fprintf( stderr, "USAGE: unxcrashres <in_lng_file> <out_file_prefix>\n" );
+ exit( 1 );
+ }
+
+ ByteString tmp_argv1( argv[1] );
+ Config aConfig( String( tmp_argv1, osl_getThreadTextEncoding() ) );
+ hash_map< ByteString, hash_map< OString, OString, OStringHash >, OStringHash > aFiles;
+
+ for( USHORT i = 0; i < aConfig.GetGroupCount(); i++ )
+ {
+ aConfig.SetGroup( aConfig.GetGroupName( i ) );
+ OString aGroup = aConfig.GetGroupName( i );
+ USHORT nKeys = aConfig.GetKeyCount();
+ for( USHORT n = 0; n < nKeys; n++ )
+ {
+ ByteString aKey = aConfig.GetKeyName( n );
+ ByteString aValue = aConfig.ReadKey( aKey );
+ // tailor key
+ filterValue( aValue, aGroup, aKey );
+
+ aFiles[aKey][aGroup] = ByteString( aValue );
+ }
+ }
+
+ for( hash_map< ByteString, hash_map< OString, OString, OStringHash >, OStringHash >::const_iterator lang_it = aFiles.begin(); lang_it != aFiles.end(); ++lang_it )
+ {
+ ByteString aFile( argv[2] );
+ aFile.Append( '.' );
+ aFile.Append( lang_it->first );
+ FILE* fp = fopen( aFile.GetBuffer(), "w" );
+ if( ! fp )
+ {
+ fprintf( stderr, "Error: could not open \"%s\" for writing: %s\n",
+ aFile.GetBuffer(), strerror( errno ) );
+ exit(1);
+ }
+ for( hash_map< OString, OString, OStringHash >::const_iterator line_it = lang_it->second.begin(); line_it != lang_it->second.end(); ++line_it )
+ {
+ fprintf( fp, "%s=%s\n", line_it->first.getStr(), line_it->second.getStr() );
+ }
+ fclose( fp );
+ }
+
+ return 0;
+}