Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
477e657c
Kaydet (Commit)
477e657c
authored
Haz 06, 2003
tarafından
Hennes Rohling
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
#i15275# Move crashrep sources to OOo cvs module
üst
b26ea054
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1008 additions
and
0 deletions
+1008
-0
build.lst
crashrep/prj/build.lst
+6
-0
d.lst
crashrep/prj/d.lst
+44
-0
interface.cxx
crashrep/source/unx/interface.cxx
+0
-0
interface.hxx
crashrep/source/unx/interface.hxx
+158
-0
main.cxx
crashrep/source/unx/main.cxx
+0
-0
makefile.mk
crashrep/source/unx/makefile.mk
+101
-0
res.cxx
crashrep/source/unx/res.cxx
+108
-0
makefile.mk
crashrep/source/unx/res/makefile.mk
+22
-0
unxcrashres.cxx
crashrep/source/unx/res/unxcrashres.cxx
+80
-0
base64.cpp
crashrep/source/win32/base64.cpp
+56
-0
base64.h
crashrep/source/win32/base64.h
+19
-0
ctrylnglist.txt
crashrep/source/win32/ctrylnglist.txt
+29
-0
makefile.mk
crashrep/source/win32/makefile.mk
+117
-0
rcfooter.txt
crashrep/source/win32/rcfooter.txt
+2
-0
rcheader.txt
crashrep/source/win32/rcheader.txt
+4
-0
rctemplate.txt
crashrep/source/win32/rctemplate.txt
+168
-0
resource.h
crashrep/source/win32/resource.h
+94
-0
soreport.cpp
crashrep/source/win32/soreport.cpp
+0
-0
No files found.
crashrep/prj/build.lst
0 → 100755
Dosyayı görüntüle @
477e657c
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
crashrep/prj/d.lst
0 → 100755
Dosyayı görüntüle @
477e657c
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
crashrep/source/unx/interface.cxx
0 → 100755
Dosyayı görüntüle @
477e657c
This diff is collapsed.
Click to expand it.
crashrep/source/unx/interface.hxx
0 → 100755
Dosyayı görüntüle @
477e657c
#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
();
};
crashrep/source/unx/main.cxx
0 → 100755
Dosyayı görüntüle @
477e657c
This diff is collapsed.
Click to expand it.
crashrep/source/unx/makefile.mk
0 → 100755
Dosyayı görüntüle @
477e657c
#*************************************************************************
#
# $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
crashrep/source/unx/res.cxx
0 → 100755
Dosyayı görüntüle @
477e657c
#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
();
}
crashrep/source/unx/res/makefile.mk
0 → 100755
Dosyayı görüntüle @
477e657c
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
crashrep/source/unx/res/unxcrashres.cxx
0 → 100755
Dosyayı görüntüle @
477e657c
#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
;
}
crashrep/source/win32/base64.cpp
0 → 100755
Dosyayı görüntüle @
477e657c
#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
;
}
crashrep/source/win32/base64.h
0 → 100755
Dosyayı görüntüle @
477e657c
#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 */
crashrep/source/win32/ctrylnglist.txt
0 → 100755
Dosyayı görüntüle @
477e657c
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
crashrep/source/win32/makefile.mk
0 → 100755
Dosyayı görüntüle @
477e657c
#*************************************************************************
#
# $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)
$<
$@
crashrep/source/win32/rcfooter.txt
0 → 100755
Dosyayı görüntüle @
477e657c
// Footer
\ No newline at end of file
crashrep/source/win32/rcheader.txt
0 → 100755
Dosyayı görüntüle @
477e657c
// Header
#include "resource.h"
#include "winres.h"
crashrep/source/win32/rctemplate.txt
0 → 100755
Dosyayı görüntüle @
477e657c
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
crashrep/source/win32/resource.h
0 → 100755
Dosyayı görüntüle @
477e657c
//{{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
crashrep/source/win32/soreport.cpp
0 → 100755
Dosyayı görüntüle @
477e657c
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment