Kaydet (Commit) 477e657c authored tarafından Hennes Rohling's avatar Hennes Rohling

#i15275# Move crashrep sources to OOo cvs module

üst b26ea054
cr crashrep : sal sysui gtk tools NULL
cr crashrep usr1 - all cr_mkout NULL
cr crashrep\source\unx\res nmake - u cr_sures NULL
cr crashrep\source\unx nmake - u cr_sunx cr_sures.u NULL
cr crashrep nmake - u cr_supstack NULL
cr crashrep\source\win32 nmake - n cr_swin32 NULL
mkdir: %_DEST%\bin%_EXT%\01
mkdir: %_DEST%\bin%_EXT%\03
mkdir: %_DEST%\bin%_EXT%\07
mkdir: %_DEST%\bin%_EXT%\30
mkdir: %_DEST%\bin%_EXT%\31
mkdir: %_DEST%\bin%_EXT%\33
mkdir: %_DEST%\bin%_EXT%\34
mkdir: %_DEST%\bin%_EXT%\39
mkdir: %_DEST%\bin%_EXT%\45
mkdir: %_DEST%\bin%_EXT%\46
mkdir: %_DEST%\bin%_EXT%\48
mkdir: %_DEST%\bin%_EXT%\49
mkdir: %_DEST%\bin%_EXT%\66
mkdir: %_DEST%\bin%_EXT%\81
mkdir: %_DEST%\bin%_EXT%\82
mkdir: %_DEST%\bin%_EXT%\86
mkdir: %_DEST%\bin%_EXT%\88
mkdir: %_DEST%\bin%_EXT%\90
mkdir: %_DEST%\bin%_EXT%\96
..\%__SRC%\bin\01\soreport.exe %_DEST%\bin%_EXT%\crashrep.exe
..\%__SRC%\bin\soreport.exe.manifest %_DEST%\bin%_EXT%\crashrep.exe.manifest
%_DEST%\bin%_EXT%\guistdio.com %_DEST%\bin%_EXT%\crashrep.com
..\%__SRC%\bin\crash_report* %_DEST%\bin%_EXT%\crash_report*
..\%__SRC%\bin\pstack %_DEST%\bin%_EXT%\pstack.bin
..\%__SRC%\bin\crash_dump.res.01 %_DEST%\bin%_EXT%\01\crash_dump.res
..\%__SRC%\bin\crash_dump.res.03 %_DEST%\bin%_EXT%\03\crash_dump.res
..\%__SRC%\bin\crash_dump.res.07 %_DEST%\bin%_EXT%\07\crash_dump.res
..\%__SRC%\bin\crash_dump.res.30 %_DEST%\bin%_EXT%\30\crash_dump.res
..\%__SRC%\bin\crash_dump.res.31 %_DEST%\bin%_EXT%\31\crash_dump.res
..\%__SRC%\bin\crash_dump.res.33 %_DEST%\bin%_EXT%\33\crash_dump.res
..\%__SRC%\bin\crash_dump.res.34 %_DEST%\bin%_EXT%\34\crash_dump.res
..\%__SRC%\bin\crash_dump.res.39 %_DEST%\bin%_EXT%\39\crash_dump.res
..\%__SRC%\bin\crash_dump.res.45 %_DEST%\bin%_EXT%\45\crash_dump.res
..\%__SRC%\bin\crash_dump.res.46 %_DEST%\bin%_EXT%\46\crash_dump.res
..\%__SRC%\bin\crash_dump.res.48 %_DEST%\bin%_EXT%\48\crash_dump.res
..\%__SRC%\bin\crash_dump.res.49 %_DEST%\bin%_EXT%\49\crash_dump.res
..\%__SRC%\bin\crash_dump.res.66 %_DEST%\bin%_EXT%\66\crash_dump.res
..\%__SRC%\bin\crash_dump.res.81 %_DEST%\bin%_EXT%\81\crash_dump.res
..\%__SRC%\bin\crash_dump.res.82 %_DEST%\bin%_EXT%\82\crash_dump.res
..\%__SRC%\bin\crash_dump.res.86 %_DEST%\bin%_EXT%\86\crash_dump.res
..\%__SRC%\bin\crash_dump.res.88 %_DEST%\bin%_EXT%\88\crash_dump.res
..\%__SRC%\bin\crash_dump.res.90 %_DEST%\bin%_EXT%\90\crash_dump.res
..\%__SRC%\bin\crash_dump.res.96 %_DEST%\bin%_EXT%\96\crash_dump.res
%_DEST%\bin%_EXT%\guistdio.com %_DEST%\bin%_EXT%\crashrep.com
This diff is collapsed.
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include <hash_map>
#include <vector>
#include <string>
class WizardDialog;
// returns success, on true application will quit
bool save_crash_report( const std::string& rFileName, const std::hash_map< std::string, std::string >& rSettings );
// returns success, on true application will quit
bool send_crash_report( WizardDialog &rDialog, const std::hash_map< std::string, std::string >& rSettings );
// must return a valid UTF8 string containing the message that will be sent
std::string crash_get_details( const std::hash_map< std::string, std::string >& rSettings );
class StringResource
{
public:
static void init( int argc, char** argv );
static const char* get( const char* pKey );
};
class WizardPage
{
protected:
std::string m_aWizardTitle;
GtkWidget* m_pPageContents;
WizardDialog* m_pDialog;
public:
WizardPage( WizardDialog* pDialog ) : m_pDialog( pDialog ) {}
virtual ~WizardPage();
const char* getTitle() const { return m_aWizardTitle.c_str(); }
GtkWidget* getContents() const { return m_pPageContents; }
virtual void update() = 0;
};
class WizardDialog
{
std::vector< WizardPage* > m_aPages;
int m_nCurrentPage;
GtkWidget* m_pTopLevel;
GtkWidget* m_pVBox;
GtkWidget* m_pViewPort;
GtkWidget* m_pWizardTitle;
GtkWidget* m_pPageArea;
GtkWidget* m_pSeparator;
GtkWidget* m_pButtonBox;
GtkWidget* m_pBackButton;
GtkWidget* m_pNextButton;
GtkWidget* m_pSendButton;
GtkWidget* m_pCancelButton;
GtkWidget* m_pStatusDialog;
std::hash_map< std::string, std::string > m_aSettings;
static gint button_clicked( GtkWidget* pButton, WizardDialog* pThis );
void nextPage();
void lastPage();
public:
WizardDialog();
~WizardDialog();
// takes ownership of page
void insertPage( WizardPage* pPage );
void show( bool bShow = true );
void show_messagebox( const std::string& rMessage );
gint show_sendingstatus( bool bInProgress );
void hide_sendingstatus();
std::hash_map< std::string, std::string >& getSettings() { return m_aSettings; }
GtkWindow* getTopLevel() const { return GTK_WINDOW(m_pTopLevel); }
};
class MainPage : public WizardPage
{
GtkWidget* m_pInfo;
GtkWidget* m_pEditLabel;
GtkWidget* m_pEdit;
GtkWidget* m_pEntryLabel;
GtkWidget* m_pEntryVBox;
GtkWidget* m_pScrolledEntry;
GtkWidget* m_pEntry;
GtkWidget* m_pHBox;
GtkWidget* m_pRightColumn;
GtkWidget* m_pLeftColumn;
GtkWidget* m_pDetails;
GtkWidget* m_pSave;
GtkWidget* m_pCheck;
GtkWidget* m_pOptions;
GtkWidget* m_pAddressLabel;
GtkWidget* m_pAddress;
static gint button_clicked( GtkWidget* pButton, MainPage* pThis );
static gint button_toggled( GtkWidget* pButton, MainPage* pThis );
public:
MainPage( WizardDialog* );
virtual ~MainPage();
virtual void update();
};
class WelcomePage : public WizardPage
{
public:
WelcomePage( WizardDialog* );
virtual ~WelcomePage();
virtual void update();
};
class OptionsDialog
{
GtkWidget* m_pDialog;
GtkWidget* m_pPage;
GtkWidget* m_pLeftColumn;
GtkWidget* m_pFrame;
GtkWidget* m_pDirect;
GtkWidget* m_pManual;
GtkWidget* m_pServerLabel;
GtkWidget* m_pServer;
GtkWidget* m_pColon;
GtkWidget* m_pPortLabel;
GtkWidget* m_pPort;
GtkWidget* m_pNote;
GtkWidget* m_pOkButton;
GtkWidget* m_pCancelButton;
GtkWidget* m_pButtonBox;
GtkWidget* m_pVBox;
GtkWidget* m_pHBox;
GtkWidget* m_pVBoxServer;
GtkWidget* m_pVBoxPort;
static gint button_toggled( GtkWidget* pButton, OptionsDialog* pThis );
public:
OptionsDialog( GtkWindow* pParent,
std::hash_map< std::string, std::string >& rSettings );
virtual ~OptionsDialog();
std::string getUseProxy();
std::string getServer();
std::string getPort();
};
This diff is collapsed.
#*************************************************************************
#
# $RCSfile: makefile.mk,v $
#
# $Revision: 1.1 $
#
# last change: $Author: hro $ $Date: 2003-06-06 11:21:58 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
#
# - GNU Lesser General Public License Version 2.1
# - Sun Industry Standards Source License Version 1.1
#
# Sun Microsystems Inc., October, 2000
#
# GNU Lesser General Public License Version 2.1
# =============================================
# Copyright 2000 by Sun Microsystems, Inc.
# 901 San Antonio Road, Palo Alto, CA 94303, USA
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1, as published by the Free Software Foundation.
#
# This library 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 for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
#
# Sun Industry Standards Source License Version 1.1
# =================================================
# The contents of this file are subject to the Sun Industry Standards
# Source License Version 1.1 (the "License"); You may not use this file
# except in compliance with the License. You may obtain a copy of the
# License at http://www.openoffice.org/license.html.
#
# Software provided under this License is provided on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
# See the License for the specific provisions governing your rights and
# obligations concerning the Software.
#
# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
#
# Copyright: 2000 by Sun Microsystems, Inc.
#
# All Rights Reserved.
#
# Contributor(s): _______________________________________
#
#
#
#*************************************************************************
PRJ=..$/..
PRJNAME=crashrep
TARGET=crash_report.bin
TARGETTYPE=CUI
ENABLE_EXCEPTIONS=TRUE
LIBTARGET=NO
LIBSALCPPRT=$(0)
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
# ------------------------------------------------------------------
CFLAGS+=`pkg-config --cflags gtk+-2.0`
OBJFILES=\
$(OBJ)$/interface.obj \
$(OBJ)$/res.obj \
$(OBJ)$/main.obj
APP1NOSAL=TRUE
APP1TARGET=$(TARGET)
APP1OBJS=$(OBJFILES)
.IF "$(COM)" == "GCC"
APP1STDLIBS=-Wl,-Bstatic `pkg-config --only-mod-libs --libs gtk+-2.0` -lpng -lzlib -ljpeg -ltiff -Wl,-Bdynamic -lXext -lX11 -ldl -lnsl
.ELSE
APP1STDLIBS=-Bstatic `pkg-config --only-mod-libs --libs gtk+-2.0` -lpng -lzlib -ljpeg -ltiff -Bdynamic -lXext -lX11 -ldl -lsocket -lnsl
.ENDIF
ALL: ALLTAR $(BIN)$/crash_dump.res.01
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
$(BIN)$/crash_dump.res.01: ..$/all$/crashrep.lng
$(BIN)$/unxcrashres ..$/all$/crashrep.lng $(BIN)$/crash_dump.res
#if OSL_DEBUG_LEVEL == 0
#define NDEBUG
#endif
#include <assert.h>
#include <interface.hxx>
#include <cstdio>
#include <hash_map>
#include <string>
using namespace std;
static hash_map< string, string >* pStringResources = NULL;
static string getResFileName( const char* progname )
{
string aRet = progname;
size_t pos = aRet.rfind( '/' );
// FIXME: search PATH if necessary
assert( pos != string::npos );
aRet.erase( pos );
aRet.append( "/resource/crash_dump.res" );
return aRet;
}
static void filterString( string& rString )
{
static const char* pProductName = getenv( "PRODUCTNAME" );
static int nProductLen = pProductName ? strlen( pProductName ) : 0;
static const char* pProductVersion = getenv( "PRODUCTVERSION" );
static int nVersionLen = pProductVersion ? strlen( pProductVersion ) : 0;
// fill in eventually escaped characters
string::size_type pos = 0;
while( (pos = rString.find( '\\' ) ) != string::npos )
{
char cRep = 0;
switch( rString[pos+1] )
{
case 't': cRep = '\t';break;
case 'n': cRep = '\n';break;
case 'r': cRep = '\r';break;
case 'f': cRep = '\f';break;
default: cRep = rString[pos+1];
}
if( cRep )
rString.replace( pos, 2, &cRep, 1 );
}
while( (pos = rString.find( '~' ) ) != string::npos )
{
// replace mnemonic marker
rString.replace( pos, 1, "_", 1 );
}
while( (pos = rString.find( "%PRODUCTNAME%" ) ) != string::npos )
{
rString.replace( pos, 13, pProductName ? pProductName : "OpenOffice" );
}
while( (pos = rString.find( "%PRODUCTVERSION%" ) ) != string::npos )
{
rString.replace( pos, 16, pProductVersion ? pProductVersion : "" );
}
// remove whitespace at end
pos = rString.find_last_not_of( "\r\n\t\f " );
if( pos != string::npos )
rString.erase( pos+1 );
}
void StringResource::init( int argc, char** argv )
{
pStringResources = new hash_map< string, string >();
string aResFile = getResFileName( argv[0] );
FILE* fp = fopen( aResFile.c_str(), "r" );
if( fp )
{
char buf[4096];
string aKey;
string aValue;
while( ! feof( fp ) )
{
if( ! fgets( buf, sizeof(buf), fp ) )
break;
char* pEq = strchr( buf, '=' );
if( ! pEq || *(pEq+1) == 0 ) // invalid line
continue;
aKey = string(buf, pEq-buf);
aValue = pEq+1;
while( (aValue.empty() || aValue[ aValue.size()-1 ] != '\n') && ! feof( fp ) )
{
if( fgets( buf, sizeof( buf ), fp ) )
aValue.append( buf );
}
filterString( aValue );
(*pStringResources)[aKey] = aValue;
}
fclose( fp );
}
}
const char* StringResource::get( const char* pKey )
{
hash_map< string, string >::const_iterator it = pStringResources->find( pKey );
return (it == pStringResources->end()) ? "" : it->second.c_str();
}
PRJ=..$/..$/..
PRJNAME=crashrep
TARGET=unxcrashres
LIBTARGET=NO
TARGETTYPE=CUI
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
# --- Files --------------------------------------------------------
APP1TARGET=$(TARGET)
APP1OBJS=$(OBJ)$/unxcrashres.obj
APP1STDLIBS=$(TOOLSLIB) $(SALLIB)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
#include <tools/config.hxx>
#include <rtl/string.hxx>
#include <osl/thread.h>
#include <tools/l2txtenc.hxx>
#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< int, hash_map< OString, OString, 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 );
int nRes = aKey.ToInt32();
// tailor key
filterValue( aValue, aGroup, aKey );
aFiles[nRes][aGroup] = ByteString( String( aValue, Langcode2TextEncoding( (USHORT)nRes ) ), RTL_TEXTENCODING_UTF8 );
}
}
for( hash_map< int, hash_map< OString, OString, OStringHash > >::const_iterator lang_it = aFiles.begin(); lang_it != aFiles.end(); ++lang_it )
{
ByteString aFile( argv[2] );
aFile.Append( '.' );
if( lang_it->first < 10 )
aFile.Append( '0' );
aFile.Append( ByteString::CreateFromInt32( 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;
}
#include <stdio.h>
#include <string.h>
#include "base64.h"
static const char base64_tab[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
extern "C" size_t base64_encode( FILE *fin, FILE *fout )
{
size_t nBytesRead = 0;
size_t nLineLength = 0;
size_t nBytesWritten = 0;
size_t nBytes = 0;
do
{
unsigned char in_buffer[3];
memset( in_buffer, 0, sizeof(in_buffer) );
nBytes = fread( in_buffer, 1, sizeof(in_buffer), fin );
nBytesRead += nBytes;
if ( nBytes )
{
unsigned long value =
((unsigned long)in_buffer[0]) << 16 |
((unsigned long)in_buffer[1]) << 8 |
((unsigned long)in_buffer[2]) << 0;
unsigned char out_buffer[4];
memset( out_buffer, '=', sizeof(out_buffer) );
out_buffer[0] = base64_tab[(value >> 18) & 0x3F];
out_buffer[1] = base64_tab[(value >> 12) & 0x3F];
if ( nBytes > 1 )
{
out_buffer[2] = base64_tab[(value >> 6) & 0x3F];
if ( nBytes > 2 )
out_buffer[3] = base64_tab[(value >> 0) & 0x3F];
}
if ( nLineLength >= 76 )
{
fputs( "\n", fout );
nLineLength = 0;
}
nBytesWritten += fwrite( out_buffer, 1, sizeof(out_buffer), fout );
nLineLength += sizeof(out_buffer);
}
} while ( nBytes );
return nBytesWritten;
}
#ifndef __BASE64_H
#define __BASE64_H
#ifndef _INC_STDIO
#include <stdio.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
size_t base64_encode( FILE *fin, FILE *fout );
#ifdef __cplusplus
}
#endif
#endif /* __BASE64_H */
1 LANG_ENGLISH SUBLANG_ENGLISH_US
3 LANG_PORTUGUESE SUBLANG_PORTUGUESE
4 LANG_GERMAN SUBLANG_GERMAN
7 LANG_RUSSIAN SUBLANG_NEUTRAL
30 LANG_GREEK SUBLANG_NEUTRAL
31 LANG_DUTCH SUBLANG_DUTCH
33 LANG_FRENCH SUBLANG_FRENCH
34 LANG_SPANISH SUBLANG_SPANISH
35 LANG_FINNISH SUBLANG_NEUTRAL
36 LANG_HUNGARIAN SUBLANG_NEUTRAL
39 LANG_ITALIAN SUBLANG_ITALIAN
42 LANG_CZECH SUBLANG_NEUTRAL
43 LANG_SLOVAK SUBLANG_NEUTRAL
44 LANG_ENGLISH SUBLANG_ENGLISH_UK
45 LANG_DANISH SUBLANG_NEUTRAL
46 LANG_SWEDISH SUBLANG_SWEDISH
47 LANG_NORWEGIAN SUBLANG_NORWEGIAN_BOKMAL
48 LANG_POLISH SUBLANG_NEUTRAL
49 LANG_GERMAN SUBLANG_NEUTRAL
55 LANG_PORTUGUESE SUBLANG_PORTUGUESE_BRAZILIAN
81 LANG_JAPANESE SUBLANG_NEUTRAL
82 LANG_KOREAN SUBLANG_KOREAN
86 LANG_CHINESE SUBLANG_CHINESE_SIMPLIFIED
88 LANG_CHINESE SUBLANG_CHINESE_TRADITIONAL
90 LANG_TURKISH SUBLANG_NEUTRAL
96 LANG_ARABIC SUBLANG_NEUTRAL
97 LANG_HEBREW SUBLANG_NEUTRAL
37 LANG_CATALAN SUBLANG_NEUTRAL
66 LANG_THAI SUBLANG_NEUTRAL
#*************************************************************************
#
# $RCSfile: makefile.mk,v $
#
# $Revision: 1.1 $
#
# last change: $Author: hro $ $Date: 2003-06-06 11:22:04 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
#
# - GNU Lesser General Public License Version 2.1
# - Sun Industry Standards Source License Version 1.1
#
# Sun Microsystems Inc., October, 2000
#
# GNU Lesser General Public License Version 2.1
# =============================================
# Copyright 2000 by Sun Microsystems, Inc.
# 901 San Antonio Road, Palo Alto, CA 94303, USA
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1, as published by the Free Software Foundation.
#
# This library 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 for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
#
# Sun Industry Standards Source License Version 1.1
# =================================================
# The contents of this file are subject to the Sun Industry Standards
# Source License Version 1.1 (the "License"); You may not use this file
# except in compliance with the License. You may obtain a copy of the
# License at http://www.openoffice.org/license.html.
#
# Software provided under this License is provided on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
# See the License for the specific provisions governing your rights and
# obligations concerning the Software.
#
# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
#
# Copyright: 2000 by Sun Microsystems, Inc.
#
# All Rights Reserved.
#
# Contributor(s): _______________________________________
#
#
#
#*************************************************************************
PRJ=..$/..
PRJNAME=crashrep
TARGET=soreport
LIBTARGET=NO
ENABLE_EXCEPTIONS=TRUE
TARGETTYPE=GUI
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
# --- Resources ----------------------------------------------------
RCFILES=$(TARGET).rc
# --- Files --------------------------------------------------------
OBJFILES=\
$(OBJ)$/soreport.obj\
$(OBJ)$/mapi.obj\
$(OBJ)$/base64.obj
LNGFILES=..$/all$/crashrep.lng
APP1OBJS=$(OBJFILES)
APP1NOSAL=TRUE
APP1TARGET=$(TARGET)
STDLIB1=\
gdi32.lib\
comctl32.lib\
comdlg32.lib\
advapi32.lib\
wsock32.lib\
dbghelp.lib
APP1NOSVRES=$(RES)$/$(TARGET).res
ALLTAR: $(BIN)$/$(TARGET).exe.manifest
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
# Generate the native Windows resource file
# using lngconvex.exe
$(RCFILES) : $(LNGFILES) makefile.mk rcfooter.txt rcheader.txt rctemplate.txt ctrylnglist.txt
+lngconvex.exe -lng ..\all\crashrep.lng -rc $(TARGET).rc -c ctrylnglist.txt -rct rctemplate.txt -rch rcheader.txt -rcf rcfooter.txt
$(BIN)$/$(TARGET).exe.manifest: soreport.manifest
+$(COPY) $< $@
// Footer
\ No newline at end of file
// Header
#include "resource.h"
#include "winres.h"
LANGUAGE %LANGUAGE% , %SUBLANGUAGE%
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_WELCOME_PAGE DIALOGEX 0, 41, 327, 195
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
CONTROL "",IDC_RICHEDIT21,"RICHEDIT20W",TCS_RAGGEDRIGHT | ES_READONLY |
TCS_MULTISELECT | WS_VSCROLL,7,7,313,151
END
IDD_REPORT_PAGE DIALOGEX 0, 41, 327, 195
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "1",IDC_REPORT_INTRO,7,7,313,48
LTEXT "2",IDC_ENTER_TITLE,7,58,233,8
EDITTEXT IDC_EDIT_TITLE,7,68,235,14,ES_AUTOHSCROLL
LTEXT "3",IDC_ENTER_DESCRIPTION,7,86,316,8
EDITTEXT IDC_EDIT_DESCRIPTION,7,97,235,49,ES_MULTILINE |
ES_WANTRETURN | WS_VSCROLL
CONTROL "4",IDC_ALLOW_CONTACT,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,7,148,303,10
LTEXT "4a",IDC_LABEL_EMAIL,18,162,226,
8
EDITTEXT IDC_EDIT_EMAIL,17,173,224,14,ES_AUTOHSCROLL
PUSHBUTTON "5",IDC_SHOW_REPORT,249,94,74,14
PUSHBUTTON "6",IDC_OPTIONS,249,116,74,14
PUSHBUTTON "7",IDC_SAVE_REPORT,249,138,74,14
END
IDD_DIALOG_FRAME DIALOGEX 0, 0, 331, 265
STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND |
DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "1"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
LTEXT "",IDC_STATIC,0,0,331,40
CONTROL "",IDC_HEADER,"RICHEDIT20W",TCS_VERTICAL | TCS_MULTISELECT | ES_READONLY,
7,7,316,33
PUSHBUTTON "1",IDBACK,155,244,50,14
PUSHBUTTON "2",IDNEXT,214,244,50,14
PUSHBUTTON "3",IDFINISH,214,244,50,14
PUSHBUTTON "4",IDCANCEL,273,244,50,14
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,40,331,1
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,237,331,1
END
IDD_PREVIEW_FRAME DIALOGEX 0, 0, 251, 185
STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND |
DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_SIZEBOX
CAPTION "1"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "",IDC_EDIT_PREVIEW,"RICHEDIT20W",ES_MULTILINE |
ES_AUTOVSCROLL | WS_VSCROLL | ES_AUTOHSCROLL | WS_HSCROLL |
TCS_MULTISELECT | ES_READONLY | TCS_RAGGEDRIGHT |
WS_BORDER
,
7,7,237,150
DEFPUSHBUTTON "4",IDOK,193,164,50,14
END
IDD_OPTIONS_FRAME DIALOGEX 0, 0, 295, 182
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
WS_SYSMENU
CAPTION "1"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
GROUPBOX "1",IDC_PROXY_SETTINGS,7,7,222,92
CONTROL "2",IDC_RADIO_SYSTEM,"Button",BS_AUTORADIOBUTTON,15,27,
208,10
CONTROL "3",IDC_RADIO_DIRECT,"Button",BS_AUTORADIOBUTTON,15,39,
208,10
CONTROL "4",IDC_RADIO_MANUAL,"Button",BS_AUTORADIOBUTTON,15,51,
208,10
LTEXT "5",IDC_LABEL_PROXYSERVER,27,64,148,8
EDITTEXT IDC_EDIT_PROXYSERVER,27,76,148,14,ES_AUTOHSCROLL
LTEXT ":",IDC_STATIC,178,78,8,8
LTEXT "6",IDC_LABEL_PROXYPORT,184,64,40,8
EDITTEXT IDC_EDIT_PROXYPORT,184,76,40,14,ES_AUTOHSCROLL |
ES_NUMBER
DEFPUSHBUTTON "7",IDOK,238,7,50,14
PUSHBUTTON "8",IDCANCEL,238,26,50,14
CONTROL "",IDC_PROXY_DESCRIPTION,"RichEdit20W",ES_MULTILINE |
ES_READONLY | WS_VSCROLL,7,106,281,69
END
IDD_SENDING_STATUS DIALOGEX 0, 0, 216, 73
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
WS_SYSMENU
CAPTION "1"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
PUSHBUTTON "2",IDCANCEL,159,52,50,14
LTEXT "3",IDC_SENDING_REPORT_STATUS,7,7,202,34
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_WELCOME_CAPTION %WELCOME_CAPTION%
IDS_WELCOME_HEADER %WELCOME_HEADER%
IDS_WELCOME_BODY1 %WELCOME_BODY1%
IDS_WELCOME_BODY2 %WELCOME_BODY2%
IDS_WELCOME_BODY3 %WELCOME_BODY3%
IDS_PRIVACY_URL %PRIVACY_URL%
IDS_NEXT_BUTTON %NEXT_BUTTON%
IDS_CANCEL_BUTTON %CANCEL_BUTTON%
IDS_OK_BUTTON %OK_BUTTON%
END
STRINGTABLE
BEGIN
IDS_REPORT_CAPTION %REPORT_CAPTION%
IDS_REPORT_HEADER %REPORT_HEADER%
IDS_REPORT_INTRO %REPORT_BODY%
IDS_ENTER_TITLE %ENTER_TITLE%
IDS_ALLOW_CONTACT %ALLOW_CONTACT%
IDS_ENTER_DESCRIPTION %ENTER_DESCRIPTION%
IDS_BACK_BUTTON %BACK_BUTTON%
IDS_SEND_BUTTON %SEND_BUTTON%
IDS_DONOT_SEND_BUTTON %DONOT_SEND_BUTTON%
IDS_SHOW_REPORT_BUTTON %SHOW_REPORT_BUTTON%
IDS_SAVE_REPORT_BUTTON %SAVE_REPORT_BUTTON%
IDS_OPTIONS_BUTTON %OPTIONS_BUTTON%
IDS_LABEL_EMAIL %ENTER_EMAIL%
END
STRINGTABLE
BEGIN
IDS_ERROR_MSG_SIMPLE_MAPI %ERROR_MSG_SIMPLE_MAPI%
IDS_ERROR_MSG_DISK_FULL %ERROR_MSG_DISK_FULL%
IDS_ERROR_MSG_PROXY %ERROR_MSG_PROXY%
IDS_ERROR_MSG_NOCONNECT %ERROR_MSG_NOCONNECT%
IDS_ERROR_MSG_NOEMAILADDRESS %ERROR_MSG_NOEMAILADDRESS%
IDS_SENDING_REPORT_HEADER %SENDING_REPORT_HEADER%
IDS_SENDING_REPORT_STATUS %SENDING_REPORT_STATUS%
IDS_SENDING_REPORT_STATUS_FINISHED %SENDING_REPORT_STATUS_FINISHED%
IDS_MSG_CMDLINE_USAGE %MSG_CMDLINE_USAGE%
IDS_MSG_PARAM_PROCESSID %MSG_PARAM_PROCESSID%
IDS_MSG_PARAM_PROCESSID_DESCRIPTION %MSG_PARAM_PROCESSID_DESCRIPTION%
IDS_MSG_PARAM_HELP_DESCRIPTION %MSG_PARAM_HELP_DESCRIPTION%
END
STRINGTABLE
BEGIN
IDS_OPTIONS_CAPTION %OPTIONS_TITLE%
IDS_PROXY_SETTINGS_HEADER %PROXY_SETTINGS_HEADER%
IDS_PROXY_SYSTEM %PROXY_SETTINGS_SYSTEM%
IDS_PROXY_DIRECT %PROXY_SETTINGS_DIRECT%
IDS_PROXY_MANUAL %PROXY_SETTINGS_MANUAL%
IDS_LABEL_PROXYSERVER %PROXY_SETTINGS_ADDRESS%
IDS_LABEL_PROXYPORT %PROXY_SETTINGS_PORT%
IDS_PROXY_DESCRIPTION %PROXY_SETTINGS_DESCRIPTION%
END
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by soreport.rc
//
#define IDD_DIALOG_FRAME 101
#define IDS_WELCOME_CAPTION 102
#define IDS_WELCOME_HEADER 103
#define IDS_WELCOME_BODY1 104
#define IDS_PRIVACY_URL 105
#define IDS_NEXT_BUTTON 106
#define IDD_WELCOME_PAGE 107
#define IDS_CANCEL_BUTTON 107
#define IDD_REPORT_PAGE 108
#define IDS_REPORT_CAPTION 108
#define IDS_REPORT_HEADER 109
#define IDS_DESCRIPTION 110
#define IDS_REPORT_INTRO 110
#define IDS_ENTER_TITLE 111
#define IDS_ALLOW_CONTACT 112
#define IDS_ENTER_DESCRIPTION 113
#define IDS_BACK_BUTTON 114
#define IDS_SEND_BUTTON 115
#define IDS_DONOT_SEND_BUTTON 116
#define IDS_SHOW_REPORT_BUTTON 117
#define IDS_SAVE_REPORT_BUTTON 118
#define IDD_PREVIEW_FRAME 119
#define IDS_ERROR_MSG_SIMPLE_MAPI 120
#define IDS_ERROR_MSG_DISK_FULL 121
#define IDS_OK_BUTTON 122
#define IDS_OPTIONS_BUTTON 123
#define IDS_LABEL_EMAIL 124
#define IDD_OPTIONS_FRAME 125
#define IDS_OPTIONS_CAPTION 126
#define IDS_PROXY_SETTINGS_HEADER 127
#define IDS_PROXY_SYSTEM 128
#define IDS_PROXY_DIRECT 129
#define IDS_PROXY_MANUAL 130
#define IDS_LABEL_PROXYSERVER 131
#define IDS_LABEL_PROXYPORT 132
#define IDS_PROXY_DESCRIPTION 133
#define IDS_ERROR_MSG_PROXY 134
#define IDS_ERROR_MSG_NOCONNECT 135
#define IDS_SENDING_REPORT_HEADER 136
#define IDS_SENDING_REPORT_STATUS 137
#define IDS_SENDING_REPORT_STATUS_FINISHED 138
#define IDD_SENDING_STATUS 139
#define IDS_WELCOME_BODY2 140
#define IDS_WELCOME_BODY3 141
#define IDS_ERROR_MSG_NOEMAILADDRESS 142
#define IDS_MSG_CMDLINE_USAGE 143
#define IDS_MSG_PARAM_PROCESSID 144
#define IDS_MSG_PARAM_PROCESSID_DESCRIPTION 145
#define IDS_MSG_PARAM_HELP_DESCRIPTION 146
#define IDC_RICHEDIT_HEADER 1005
#define IDC_RICHEDIT21 1006
#define IDC_ALLOW_CONTACT 1007
#define IDC_EDIT_TITLE 1008
#define IDC_EDIT_DESCRIPTION 1009
#define IDC_SHOW_REPORT 1010
#define IDC_SAVE_REPORT 1011
#define IDNEXT 1012
#define IDBACK 1014
#define IDC_REPORT_INTRO 1015
#define IDC_ENTER_TITLE 1016
#define IDFINISH 1016
#define IDC_ENTER_DESCRIPTION 1017
#define IDC_EDIT3 1018
#define IDC_HEADER 1019
#define IDC_STATICBK 1020
#define IDC_EDIT_PREVIEW 1021
#define IDC_EDIT_EMAIL 1022
#define IDC_OPTIONS 1023
#define IDC_PROXY_SETTINGS 1024
#define IDC_RADIO_SYSTEM 1025
#define IDC_RADIO_DIRECT 1026
#define IDC_RADIO_MANUAL 1027
#define IDC_LABEL_PROXYSERVER 1028
#define IDC_LABEL_PROXYPORT 1029
#define IDC_EDIT_PROXYSERVER 1030
#define IDC_EDIT_PROXYPORT 1031
#define IDC_LABEL_EMAIL 1032
#define IDC_PROXY_DESCRIPTION 1033
#define IDC_SENDING_REPORT_STATUS 1034
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 147
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1035
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment