[Libreoffice-commits] .: 2 commits - tools/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Sun Aug 19 12:27:32 PDT 2012
tools/source/datetime/tdate.cxx | 10 -
tools/source/datetime/ttime.cxx | 20 +--
tools/source/debug/debug.cxx | 2
tools/source/fsys/comdep.hxx | 18 +-
tools/source/fsys/dirent.cxx | 179 ++++++++++++++---------------
tools/source/fsys/filecopy.cxx | 14 +-
tools/source/fsys/tdir.cxx | 44 +++----
tools/source/fsys/unx.cxx | 17 +-
tools/source/fsys/wldcrd.cxx | 19 +--
tools/source/fsys/wntmsc.cxx | 41 +++---
tools/source/generic/b3dtrans.cxx | 54 ++++----
tools/source/generic/bigint.cxx | 73 +++++-------
tools/source/generic/config.cxx | 109 ++++++++---------
tools/source/generic/fract.cxx | 128 ++++++++-------------
tools/source/generic/gen.cxx | 10 -
tools/source/generic/poly.cxx | 51 +++-----
tools/source/generic/poly2.cxx | 34 +----
tools/source/generic/svborder.cxx | 4
tools/source/memtools/multisel.cxx | 18 +-
tools/source/memtools/unqidx.cxx | 23 +--
tools/source/rc/resmgr.cxx | 41 +++---
tools/source/ref/errinf.cxx | 57 +++------
tools/source/ref/globname.cxx | 3
tools/source/ref/pstm.cxx | 225 ++++++++++++++-----------------------
tools/source/stream/cachestr.cxx | 5
tools/source/stream/stream.cxx | 127 +++++++++-----------
tools/source/stream/strmunx.cxx | 18 +-
tools/source/stream/strmwnt.cxx | 34 ++---
tools/source/string/strascii.cxx | 82 ++++++-------
tools/source/string/strimp.cxx | 102 +++++++---------
tools/source/string/tustring.cxx | 122 ++++++++------------
31 files changed, 750 insertions(+), 934 deletions(-)
New commits:
commit 17d4bb38fad453cc56a93f8cb9f389ed6ee03af8
Author: Philipp Riemer <ruderphilipp at gmail.com>
Date: Sun Aug 19 21:19:29 2012 +0200
cleanup files in tools/source
This is a follow-up patch of 7710faa45640d25a83136a35044aafdb1b168d88.
Change-Id: I1f54cbe5c3170e9a79e11e9b9c1da3791419a4ba
diff --git a/tools/source/datetime/tdate.cxx b/tools/source/datetime/tdate.cxx
index 2cb3ab0..d1a6c94 100644
--- a/tools/source/datetime/tdate.cxx
+++ b/tools/source/datetime/tdate.cxx
@@ -232,10 +232,10 @@ sal_uInt16 Date::GetWeekOfYear( DayOfWeek eStartDay,
// x_monday - thursday
if ( n1WDay < nMinimumNumberOfDaysInWeek )
nWeek = 1;
- // friday
+ // Friday
else if ( n1WDay == nMinimumNumberOfDaysInWeek )
nWeek = 53;
- // saturday
+ // Saturday
else if ( n1WDay == nMinimumNumberOfDaysInWeek + 1 )
{
// Year after leapyear
@@ -244,7 +244,7 @@ sal_uInt16 Date::GetWeekOfYear( DayOfWeek eStartDay,
else
nWeek = 52;
}
- // sunday
+ // Sunday
else
nWeek = 52;
diff --git a/tools/source/debug/debug.cxx b/tools/source/debug/debug.cxx
index 1f30ef1..3d573b5 100644
--- a/tools/source/debug/debug.cxx
+++ b/tools/source/debug/debug.cxx
@@ -45,7 +45,7 @@
#ifdef DBG_UTIL
-// --- PointerList ---
+// PointerList
#define PBLOCKCOUNT 1024
diff --git a/tools/source/fsys/comdep.hxx b/tools/source/fsys/comdep.hxx
index eae34a3..1b0a04b 100644
--- a/tools/source/fsys/comdep.hxx
+++ b/tools/source/fsys/comdep.hxx
@@ -63,9 +63,9 @@ struct DirReader_Impl
bInUse( sal_False )
{
- // only use the String from Memer-Var
+ // only use the String from Member-Var
-#if defined(UNX) //for further eplanation see DirReader_Impl::Read() in unx.cxx
+#if defined(UNX) // for further explanation see DirReader_Impl::Read() in unx.cxx
pDosDir = NULL;
#else
aBypass = rtl::OUStringToOString(aPath, osl_getThreadTextEncoding());
@@ -84,18 +84,18 @@ struct DirReader_Impl
{ if( pDosDir ) closedir( pDosDir ); }
// Init and Read are system-independent
- sal_uInt16 Init(); // Initializes (and if necessary) reads devices
- sal_uInt16 Read(); // Reads one entry and appends it if ok
+ sal_uInt16 Init(); ///< Initializes (and if necessary) reads devices
+ sal_uInt16 Read(); ///< Reads one entry and appends it if ok
};
struct FileCopier_Impl
{
- FSysAction nActions; // action command (Copy/Move/recur)
- Link aErrorLink; // link to call upon errors
- ErrCode eErr; // current errorcode in the handler
- const DirEntry* pErrSource; // for error handlers in case of Source error
- const DirEntry* pErrTarget; // for error handlers in case of Target error
+ FSysAction nActions; ///< action command (Copy/Move/recur)
+ Link aErrorLink; ///< link to call upon errors
+ ErrCode eErr; ///< current errorcode in the handler
+ const DirEntry* pErrSource; ///< for Error-Handler in case of Source error
+ const DirEntry* pErrTarget; ///< for Error-Handler in case of Target error
FileCopier_Impl()
: nActions( 0 ), eErr( 0 ),
diff --git a/tools/source/fsys/dirent.cxx b/tools/source/fsys/dirent.cxx
index 919e1c9..aef1299 100644
--- a/tools/source/fsys/dirent.cxx
+++ b/tools/source/fsys/dirent.cxx
@@ -998,7 +998,7 @@ sal_Bool DirEntry::operator==( const DirEntry& rEntry ) const
{
DBG_CHKTHIS( DirEntry, ImpCheckDirEntry );
- // test wheather the contents are textual the same
+ // test whether the contents are textual the same
if ( nError && ( nError == rEntry.nError ) )
return sal_True;
diff --git a/tools/source/fsys/wntmsc.cxx b/tools/source/fsys/wntmsc.cxx
index f2eeffc..80fa6e8 100644
--- a/tools/source/fsys/wntmsc.cxx
+++ b/tools/source/fsys/wntmsc.cxx
@@ -586,6 +586,7 @@ sal_Bool FileStat::Update( const DirEntry& rDirEntry, sal_Bool bForceAccess )
}
// Special treatment if it's a root without device
+
if ( !rDirEntry.aName.getLength() && rDirEntry.eFlag == FSYS_FLAG_ABSROOT )
{
nKindFlags = FSYS_KIND_DIR;
diff --git a/tools/source/generic/poly.cxx b/tools/source/generic/poly.cxx
index b15c97c..9f66f90 100644
--- a/tools/source/generic/poly.cxx
+++ b/tools/source/generic/poly.cxx
@@ -793,7 +793,7 @@ void Polygon::Optimize( sal_uIntPtr nOptimizeFlags, const PolyOptimizeData* pDat
}
-/* Recursively subdivide cubic bezier curve via deCasteljau.
+/** Recursively subdivide cubic bezier curve via deCasteljau.
@param rPointIter
Output iterator, where the subdivided polylines are written to.
diff --git a/tools/source/ref/errinf.cxx b/tools/source/ref/errinf.cxx
index 48087a7..7126c06 100644
--- a/tools/source/ref/errinf.cxx
+++ b/tools/source/ref/errinf.cxx
@@ -156,13 +156,11 @@ ErrorInfo* EDcr_Impl::GetDynamicErrorInfo(sal_uIntPtr lId)
return new ErrorInfo(lId & ~ERRCODE_DYNAMIC_MASK);
}
-
sal_uInt16 DynamicErrorInfo::GetDialogMask() const
{
return pImpl->nMask;
}
-
StringErrorInfo::StringErrorInfo(
sal_uIntPtr UserId, const String& aStringP, sal_uInt16 nFlags)
: DynamicErrorInfo(UserId, nFlags), aString(aStringP)
diff --git a/tools/source/stream/stream.cxx b/tools/source/stream/stream.cxx
index c0a20ec..6ca4d07 100644
--- a/tools/source/stream/stream.cxx
+++ b/tools/source/stream/stream.cxx
@@ -745,8 +745,8 @@ rtl::OUString read_zeroTerminated_uInt8s_ToOUString(SvStream& rStream, rtl_TextE
read_zeroTerminated_uInt8s_ToOString(rStream), eEnc);
}
-//Attempt to write a prefixed sequence of nUnits 16bit units from an OUString,
-//returned value is number of bytes written
+/** Attempt to write a prefixed sequence of nUnits 16bit units from an OUString,
+ returned value is number of bytes written */
sal_Size write_uInt16s_FromOUString(SvStream& rStrm, const rtl::OUString& rStr,
sal_Size nUnits)
{
diff --git a/tools/source/stream/strmwnt.cxx b/tools/source/stream/strmwnt.cxx
index 7f1e47d..1d7dfb2 100644
--- a/tools/source/stream/strmwnt.cxx
+++ b/tools/source/stream/strmwnt.cxx
@@ -17,9 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-/*
- Todo: StreamMode <-> AllocateMemory
-*/
+// TODO: StreamMode <-> AllocateMemory
#include <string.h>
#include <limits.h>
commit 9cadf9bdf3c9210d9b79eaaed32282d6b7bf9e12
Author: Oliver Günther <mail at oliverguenther.de>
Date: Sat Aug 11 23:01:00 2012 +0000
fdo#39468: Translated German comments in core/tools/source
Change-Id: I28ec097a70a8d71312d9e8382c3cf71a1eabde88
diff --git a/tools/source/datetime/tdate.cxx b/tools/source/datetime/tdate.cxx
index f49433a..2cb3ab0 100644
--- a/tools/source/datetime/tdate.cxx
+++ b/tools/source/datetime/tdate.cxx
@@ -238,7 +238,7 @@ sal_uInt16 Date::GetWeekOfYear( DayOfWeek eStartDay,
// saturday
else if ( n1WDay == nMinimumNumberOfDaysInWeek + 1 )
{
- // Jahr nach Schaltjahr
+ // Year after leapyear
if ( Date( 1, 1, GetYear()-1 ).IsLeapYear() )
nWeek = 53;
else
@@ -256,7 +256,7 @@ sal_uInt16 Date::GetWeekOfYear( DayOfWeek eStartDay,
nWeek = (nDayOfYear + n1WDay) / 7;
if ( nWeek == 53 )
{
- // next x_Sonntag == first x_Sonntag in the new year
+ // next x_Sunday == first x_Sunday in the new year
// == still the same week!
long nTempDays = DateToDays( GetDay(), GetMonth(), GetYear() );
nTempDays += 6 - (GetDayOfWeek()+(7-(short)eStartDay)) % 7;
diff --git a/tools/source/datetime/ttime.cxx b/tools/source/datetime/ttime.cxx
index 9667718..b32c090 100644
--- a/tools/source/datetime/ttime.cxx
+++ b/tools/source/datetime/ttime.cxx
@@ -41,7 +41,7 @@ static sal_Int32 TimeToSec100( const Time& rTime )
sal_Int32 nSec = rTime.GetSec();
sal_Int32 n100Sec = rTime.Get100Sec();
-// Wegen Interal Compiler Error bei MSC, etwas komplizierter
+// Due to interal compiler error in MSC a little bit more complicated:
// return (n100Sec + (nSec*100) + (nMin*60*100) + (nHour*60*60*100) * nSign);
sal_Int32 nRet = n100Sec;
@@ -74,7 +74,7 @@ Time::Time( TimeInitSystem )
SYSTEMTIME aDateTime;
GetLocalTime( &aDateTime );
- // Zeit zusammenbauen
+ // construct time
nTime = (((sal_Int32)aDateTime.wHour)*1000000) +
(((sal_Int32)aDateTime.wMinute)*10000) +
(((sal_Int32)aDateTime.wSecond)*100) +
@@ -83,10 +83,10 @@ Time::Time( TimeInitSystem )
time_t nTmpTime;
struct tm aTime;
- // Zeit ermitteln
+ // determine time
nTmpTime = time( 0 );
- // Zeit zusammenbauen
+ // construct time
if ( localtime_r( &nTmpTime, &aTime ) )
{
nTime = (((sal_Int32)aTime.tm_hour)*1000000) +
@@ -105,7 +105,7 @@ Time::Time( const Time& rTime )
Time::Time( sal_uIntPtr nHour, sal_uIntPtr nMin, sal_uIntPtr nSec, sal_uIntPtr n100Sec )
{
- // Zeit normalisieren
+ // normalize time
nSec += n100Sec / 100;
n100Sec = n100Sec % 100;
nMin += nSec / 60;
@@ -113,7 +113,7 @@ Time::Time( sal_uIntPtr nHour, sal_uIntPtr nMin, sal_uIntPtr nSec, sal_uIntPtr n
nHour += nMin / 60;
nMin = nMin % 60;
- // Zeit zusammenbauen
+ // construct time
nTime = (sal_Int32)(n100Sec + (nSec*100) + (nMin*10000) + (nHour*1000000));
}
@@ -135,7 +135,7 @@ void Time::SetMin( sal_uInt16 nNewMin )
sal_Int32 nSec = GetSec();
sal_Int32 n100Sec = Get100Sec();
- // kein Ueberlauf
+ // no overflow
nNewMin = nNewMin % 60;
nTime = (n100Sec + (nSec*100) + (((sal_Int32)nNewMin)*10000) +
@@ -149,7 +149,7 @@ void Time::SetSec( sal_uInt16 nNewSec )
sal_Int32 nMin = GetMin();
sal_Int32 n100Sec = Get100Sec();
- // kein Ueberlauf
+ // no overflow
nNewSec = nNewSec % 60;
nTime = (n100Sec + (((sal_Int32)nNewSec)*100) + (nMin*10000) +
@@ -163,7 +163,7 @@ void Time::Set100Sec( sal_uInt16 nNew100Sec )
sal_Int32 nMin = GetMin();
sal_Int32 nSec = GetSec();
- // kein Ueberlauf
+ // no overflow
nNew100Sec = nNew100Sec % 100;
nTime = (((sal_Int32)nNew100Sec) + (nSec*100) + (nMin*10000) +
@@ -271,7 +271,7 @@ Time Time::GetUTCOffset()
sal_Int32 nUTC;
short nTempTime;
- // Evt. Wert neu ermitteln
+ // determine value again if needed
if ( (nCacheSecOffset == -1) ||
((nTicks - nCacheTicks) > 360000) ||
( nTicks < nCacheTicks ) // handle overflow
diff --git a/tools/source/fsys/dirent.cxx b/tools/source/fsys/dirent.cxx
index 8a729cc..919e1c9 100644
--- a/tools/source/fsys/dirent.cxx
+++ b/tools/source/fsys/dirent.cxx
@@ -248,11 +248,11 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
do
{
- // den Namen vor dem ersten "\\" abspalten,
- // falls '\\' am Anfang, ist der Name '\\',
- // der Rest immer ohne die fuehrenden '\\'.
- // ein ":" trennt ebenfalls, gehoert aber zum Namen
- // den ersten '\\', '/' oder ':' suchen
+ // split name before first "\\",
+ // if '\\' is at beginning of string, name is set to '\\'.
+ // ":" also splits the string and belongs to the name.
+
+ // search first occurance of '\\', '/' or ':'
sal_uInt16 nPos;
for ( nPos = 0;
nPos < aPfad.Len() && //?O
@@ -261,7 +261,7 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
nPos++ )
/* do nothing */;
- // ist der Name ein UNC Pathname?
+ // is the name a UNC pathname?
if ( nPos == 0 && aPfad.Len() > 1 &&
( ( aPfad.GetChar(0) == '\\' && aPfad.GetChar(1) == '\\' ) ||
( aPfad.GetChar(0) == '/' && aPfad.GetChar(1) == '/' ) ) )
@@ -272,37 +272,36 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
aName = rtl::OUStringToOString(aPfad.Copy( 2, nPos-2 ), osl_getThreadTextEncoding());
aStack.Push( new DirEntry( aName, FSYS_FLAG_ABSROOT ) );
}
- // ist der Name die Root des aktuellen Drives?
+ // Is the name the root of the current drive?
else if ( nPos == 0 && aPfad.Len() > 0 &&
( aPfad.GetChar(0) == '\\' || aPfad.GetChar(0) == '/' ) )
{
- // Root-Directory des aktuellen Drives
+ // Push root directory of current drive
aStack.Push( new DirEntry( FSYS_FLAG_ABSROOT ) );
}
else
{
- // ist der Name ein Drive?
+ // Is the name itself a drive?
if ( nPos < aPfad.Len() && aPfad.GetChar(nPos) == ':' )
{
aName = rtl::OUStringToOString(aPfad.Copy( 0, nPos + 1 ), osl_getThreadTextEncoding());
- // ist der Name die Root des Drives
+ // Is the name the root of a drive?
if ( (nPos + 1) < aPfad.Len() &&
( aPfad.GetChar(nPos+1) == '\\' || aPfad.GetChar(nPos+1) == '/' ) )
{
- // schon was auf dem Stack?
- // oder Novell-Format? (not supported wegen URLs)
+ // unsupported if stack not empty or is a Novell format (URL)
if ( !aStack.Empty() || aName.getLength() > 2 )
{
aName = rPfad;
return FSYS_ERR_MISPLACEDCHAR;
}
- // Root-Directory des Drive
+ // Push as root directory of drive
aStack.Push( new DirEntry( aName, FSYS_FLAG_ABSROOT ) );
}
else
{
- // liegt ein anderes Drive auf dem Stack?
+ // clear stack if another drive is currently on it
if ( !aStack.Empty() )
{
rtl::OString aThis(aStack.Bottom()->aName);
@@ -313,48 +312,45 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
aStack.Clear();
}
- // liegt jetzt nichts mehr auf dem Stack?
if ( aStack.Empty() )
aStack.Push( new DirEntry( aName, FSYS_FLAG_RELROOT ) );
}
}
-
- // es ist kein Drive
+ // Name is not a drive
else
{
- // den Namen ohne Trenner abspalten
+ // split the name without seperator
aName = rtl::OUStringToOString(aPfad.Copy( 0, nPos ), osl_getThreadTextEncoding());
- // stellt der Name die aktuelle Directory dar?
+ // Is the name the current directory?
if ( aName == "." )
/* do nothing */;
- // stellt der Name die Parent-Directory dar?
+ // Is the name the parent directory?
else if ( aName == ".." )
{
- // ist nichts, ein Parent oder eine relative Root
- // auf dem Stack?
+ // Is the stack empty, or a parent (or relative root) on it?
if ( ( aStack.Empty() ) ||
( aStack.Top()->eFlag == FSYS_FLAG_PARENT ) ||
( aStack.Top()->eFlag == FSYS_FLAG_RELROOT ) )
- // fuehrende Parents kommen auf den Stack
+ // add leading parent to stack
aStack.Push( new DirEntry( FSYS_FLAG_PARENT ) );
- // ist es eine absolute Root
+ // It's an absolute root path
else if ( aStack.Top()->eFlag == FSYS_FLAG_ABSROOT )
{
- // die hat keine Parent-Directory
+ // Then there is no parent directory
aName = rPfad;
return FSYS_ERR_NOTEXISTS;
}
else
- // sonst hebt der Parent den TOS auf
+ // Otherwise removee parent TOS
delete aStack.Pop();
}
else
{
- // normalen Entries kommen auf den Stack
+ // add ordinary entries to the stack
DirEntry *pNew = new DirEntry( aName, FSYS_FLAG_NORMAL );
if ( !pNew->IsValid() )
{
@@ -368,7 +364,7 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
}
}
- // den Restpfad bestimmen
+ // determine remainder of path
aPfad.Erase( 0, nPos + 1 );
while ( aPfad.Len() && ( aPfad.GetChar(0) == '\\' || aPfad.GetChar(0) == '/' ) )
aPfad.Erase( 0, 1 );
@@ -376,7 +372,7 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
while ( aPfad.Len() );
sal_uIntPtr nErr = ERRCODE_NONE;
- // Haupt-Entry (selbst) zuweisen
+ // Set the main entry itself
if ( aStack.Empty() )
{
eFlag = FSYS_FLAG_CURRENT;
@@ -390,59 +386,59 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
delete aStack.Pop();
}
- // die Parent-Entries vom Stack holen
- DirEntry** pTemp = &pParent; // Zeiger auf den Member pParent setzen
+ // pop parent entry from stack
+ DirEntry** pTemp = &pParent;
while ( !aStack.Empty() )
{
*pTemp = aStack.Pop();
- // Zeiger auf den Member pParent des eigenen Parent setzen
+ // set member pointer to the pParent of the member's own parent
pTemp = &( (*pTemp)->pParent );
}
- // wird damit ein Volume beschrieben?
+ // Does this describe a volume?
if ( !pParent && eFlag == FSYS_FLAG_RELROOT && !aName.isEmpty() )
eFlag = FSYS_FLAG_VOLUME;
- // bei gesetztem ErrorCode den Namen komplett "ubernehmen
+ // use full aName if error code was set
if ( nErr )
aName = rPfad;
return nErr;
#else
DBG_CHKTHIS( DirEntry, ImpCheckDirEntry );
- // die einzelnen Namen auf einen Stack packen
+ // Add single names to the stack
DirEntryStack aStack;
rtl::OString aPfad(rPfad);
do
{
- // den Namen vor dem ersten "/" abspalten,
- // falls '/' am Anfang, ist der Name '/',
- // der Rest immer ohne die fuehrenden '/'.
- // den ersten '/' suchen
+ // split names on the first occurance of "/",
+ // if '/' starts the string, it itself becomes the name
+
+ // search first occurance of "/"
sal_uInt16 nPos;
for ( nPos = 0;
nPos < aPfad.getLength() && aPfad[nPos] != '/';
nPos++ )
/* do nothing */;
- // ist der Name die Root des aktuellen Drives?
+ // is the name the root of the current drive?
if ( nPos == 0 && !aPfad.isEmpty() && ( aPfad[0] == '/' ) )
{
- // Root-Directory des aktuellen Drives
+ // push root directory of current drive to stack
aStack.Push( new DirEntry( FSYS_FLAG_ABSROOT ) );
}
else
{
- // den Namen ohne Trenner abspalten
+ // split name without seperator
aName = aPfad.copy(0, nPos);
- // stellt der Name die aktuelle Directory dar?
+ // Is the name the current directory?
if ( aName == "." )
/* do nothing */;
#ifdef UNX
- // stellt der Name das User-Dir dar?
+ // Is the name the user's home directory?
else if ( aName == "~" )
{
DirEntry aHome( String( (const char *) getenv( "HOME" ), osl_getThreadTextEncoding()) );
@@ -450,30 +446,29 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
aStack.Push( new DirEntry( aHome[ (sal_uInt16) n-1 ] ) );
}
#endif
- // stellt der Name die Parent-Directory dar?
+ // Is the name the current parent directory?
else if ( aName == ".." )
{
- // ist nichts, ein Parent oder eine relative Root
- // auf dem Stack?
+ // Is the stack empty, or a parent (or relative root) is on top?
if ( ( aStack.Empty() ) || ( aStack.Top()->eFlag == FSYS_FLAG_PARENT ) )
{
- // fuehrende Parents kommen auf den Stack
+ // push leading parents to stack
aStack.Push( new DirEntry(rtl::OString(), FSYS_FLAG_PARENT) );
}
- // ist es eine absolute Root
+ // Is the name an absolute root?
else if ( aStack.Top()->eFlag == FSYS_FLAG_ABSROOT )
{
- // die hat keine Parent-Directory
+ // they do not have parent directories
return FSYS_ERR_NOTEXISTS;
}
else
- // sonst hebt der Parent den TOS auf
+ // otherwise remove parent TOS from stack
delete aStack.Pop();
}
else
{
DirEntry *pNew = NULL;
- // normalen Entries kommen auf den Stack
+ // push ordinary entries on the stack
pNew = new DirEntry( aName, FSYS_FLAG_NORMAL );
if ( !pNew->IsValid() )
{
@@ -486,7 +481,7 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
}
}
- // den Restpfad bestimmen
+ // get remainder of path
aPfad = nPos < aPfad.getLength()
? aPfad.copy(nPos + 1) : rtl::OString();
while ( !aPfad.isEmpty() && ( aPfad[0] == '/' ) )
@@ -494,7 +489,7 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
}
while (!aPfad.isEmpty());
- // Haupt-Entry (selbst) zuweisen
+ // insert main entry itself
if ( aStack.Empty() )
{
eFlag = FSYS_FLAG_CURRENT;
@@ -507,7 +502,7 @@ FSysError DirEntry::ImpParseName( const rtl::OString& rPfad )
delete aStack.Pop();
}
- // die Parent-Entries vom Stack holen
+ // Get parent entries from stack
DirEntry** pTemp = &pParent;
while ( !aStack.Empty() )
{
@@ -530,7 +525,7 @@ static FSysPathStyle GetStyle( FSysPathStyle eStyle )
/** Convert name to match OS norm. */
void DirEntry::ImpTrim()
{
- // Wildcards werden nicht geclipt
+ // Do not trim wildcard characters
if ( ( aName.indexOf( '*' ) != -1 ) ||
( aName.indexOf( '?' ) != -1 ) ||
( aName.indexOf( ';' ) != -1 ) )
@@ -598,7 +593,7 @@ DirEntry::DirEntry( const String& rInitName, FSysPathStyle eStyle )
pParent = NULL;
- // schnelle Loesung fuer Leerstring
+ // faster check for empty string
if ( !rInitName.Len())
{
eFlag = FSYS_FLAG_CURRENT;
@@ -652,7 +647,7 @@ DirEntry::DirEntry( const rtl::OString& rInitName, FSysPathStyle eStyle )
pParent = NULL;
- // schnelle Loesung fuer Leerstring
+ // faster check for empty string
if ( rInitName.isEmpty() )
{
eFlag = FSYS_FLAG_CURRENT;
@@ -757,7 +752,7 @@ sal_Bool DirEntry::Exists( FSysAccess nAccess ) const
return sal_False;
#if defined WNT
- // spezielle Filenamen sind vom System da
+ // get special file names from system
if ( aName.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("CLOCK$")) ||
aName.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("CON")) ||
aName.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("AUX")) ||
@@ -853,7 +848,7 @@ String DirEntry::GetFull( FSysPathStyle eStyle, sal_Bool bWithDelimiter,
rtl::OString aRet = aBuf.makeStringAndClear();
- //! noch ein Hack
+ // HACK
if ( nMaxChars < STRING_MAXLEN )
aRet = ImplCutPath( aRet, nMaxChars, ACCESSDELIM_C(eStyle) );
@@ -881,7 +876,7 @@ String DirEntry::GetExtension( char cSep ) const
if ( p1 >= p0 )
{
- // es wurde ein cSep an der Position p1 gefunden
+ // found a cSep at position p1
return rtl::OStringToOUString(aName.copy(p1 - p0 + 1),
osl_getThreadTextEncoding());
}
@@ -900,12 +895,12 @@ String DirEntry::GetBase( char cSep ) const
if ( p1 >= p0 )
{
- // es wurde ein cSep an der Position p1 gefunden
+ // found a cSep at position p1
return rtl::OStringToOUString(aName.copy(0, p1 - p0),
osl_getThreadTextEncoding());
}
- // es wurde kein cSep gefunden
+ // did not find a cSep
return rtl::OStringToOUString(aName, osl_getThreadTextEncoding());
}
@@ -1037,7 +1032,7 @@ DirEntry& DirEntry::operator=( const DirEntry& rEntry )
return *this;
}
- // Name und Typ uebernehmen, Refs beibehalten
+ // set name and type, but keep refs
aName = rEntry.aName;
eFlag = rEntry.eFlag;
nError = FSYS_ERR_OK;
@@ -1083,19 +1078,19 @@ DirEntry DirEntry::operator+( const DirEntry& rEntry ) const
return rEntry;
}
- // irgendwas + "." (=> pEntryTop == &rEntry)
+ // something + "." (=> pEntryTop == &rEntry)
if (pEntryTop->eFlag == FSYS_FLAG_RELROOT && pEntryTop->aName.isEmpty())
{
DBG_ASSERT( pEntryTop == &rEntry, "DirEntry::op+ buggy" );
return *this;
}
- // root += ".." (=> unmoeglich)
+ // root += ".." (=> impossible)
if ( pEntryTop->eFlag == FSYS_FLAG_PARENT && pThisTop == this &&
( eFlag == FSYS_FLAG_ABSROOT ) )
return DirEntry( FSYS_FLAG_INVALID );
- // irgendwas += abs (=> nur Device uebernehmen falls vorhanden)
+ // something += abs (=> only append device if existant)
if ( pEntryTop->eFlag == FSYS_FLAG_ABSROOT )
{
rtl::OString aDevice;
@@ -1107,7 +1102,7 @@ DirEntry DirEntry::operator+( const DirEntry& rEntry ) const
return aRet;
}
- // irgendwas += ".." (=> aufloesen)
+ // something += ".." (=> break apart)
if ( eFlag == FSYS_FLAG_NORMAL && pEntryTop->eFlag == FSYS_FLAG_PARENT )
{
String aConcated( GetFull() );
@@ -1116,7 +1111,7 @@ DirEntry DirEntry::operator+( const DirEntry& rEntry ) const
return DirEntry( aConcated );
}
- // sonst einfach hintereinander haengen
+ // otherwise append consecutively
DirEntry aRet( rEntry );
DirEntry *pTop = aRet.ImpGetTopPtr();
pTop->pParent = new DirEntry( *this );
@@ -1149,14 +1144,14 @@ void DirEntry::SetExtension( const String& rExtension, char cSep )
rtl::OStringBuffer aBuf(aName);
- // cSep im Namen suchen
+ // search cSep within aName
const sal_Char *p0 = aBuf.getStr();
const sal_Char *p1 = p0 + aBuf.getLength() - 1;
while ( p1 >= p0 && *p1 != cSep )
p1--;
if ( p1 >= p0 )
{
- // es wurde ein cSep an der Position p1 gefunden
+ // found a cSep on position p1
sal_Int32 n = static_cast<sal_Int32>(
p1 - p0 + 1 - ( rExtension.Len() ? 0 : 1 ));
@@ -1165,7 +1160,7 @@ void DirEntry::SetExtension( const String& rExtension, char cSep )
}
else if ( rExtension.Len() )
{
- // es wurde kein cSep gefunden
+ // no cSep was found
aBuf.append(cSep);
}
@@ -1265,7 +1260,7 @@ namespace
DirEntry DirEntry::TempName( DirEntryKind eKind ) const
{
- // ggf. Base-Temp-Dir verwenden (macht Remote keinen Sinn => vorher)
+ // use base-temp-dir if necessary
const DirEntry &rEntry = TempNameBase_Impl::get();
if ( !pParent && FSYS_FLAG_CURRENT != rEntry.eFlag && FSYS_FLAG_ABSROOT != eFlag )
{
@@ -1430,7 +1425,7 @@ sal_Bool DirEntry::MakeDir( sal_Bool bSloppy ) const
{
DBG_CHKTHIS( DirEntry, ImpCheckDirEntry );
- // Schnellpruefung, ob vorhanden
+ // fast check if exists
if ( FileStat( *this ).IsKind( FSYS_KIND_DIR ) )
return sal_True;
if ( bSloppy && pParent )
@@ -1440,11 +1435,11 @@ sal_Bool DirEntry::MakeDir( sal_Bool bSloppy ) const
const DirEntry *pNewDir = bSloppy ? pParent : this;
if ( pNewDir )
{
- // den Path zum Dir erzeugen
+ // Create path to dir
if ( pNewDir->pParent && !pNewDir->pParent->MakeDir(sal_False) )
return sal_False;
- // das Dir selbst erzeugen
+ // create dir ourselves
if ( pNewDir->eFlag == FSYS_FLAG_ABSROOT ||
pNewDir->eFlag == FSYS_FLAG_VOLUME )
return sal_True;
@@ -1465,7 +1460,6 @@ sal_Bool DirEntry::MakeDir( sal_Bool bSloppy ) const
sal_Bool bResult = (0 == _mkdir(bDirName.getStr()));
if ( !bResult )
{
- // Wer hat diese Methode const gemacht ?
#ifdef WIN32
((DirEntry *)this)->SetError( Sys2SolarError_Impl( GetLastError() ) );
#else
@@ -1487,7 +1481,7 @@ FSysError DirEntry::CopyTo( const DirEntry& rDest, FSysAction nActions ) const
if ( FSYS_ACTION_COPYFILE != (nActions & FSYS_ACTION_COPYFILE) )
#ifdef UNX
{
- // Hardlink anlegen
+ // create hardlink
HACK(redirection missing)
rtl::OString aThis(rtl::OUStringToOString(GetFull(), osl_getThreadTextEncoding()));
rtl::OString aDest(rtl::OUStringToOString(rDest.GetFull(), osl_getThreadTextEncoding()));
@@ -1539,19 +1533,18 @@ FSysError DirEntry::MoveTo( const DirEntry& rNewName ) const
aFromDevice=aFromDevice.GetDevice();
aToDevice=aToDevice.GetDevice();
- //Quelle und Ziel auf gleichem device?
if (aFromDevice==aToDevice)
{
- // ja, also intra-device-move mit MoveFile
+ // same device, use intra-device-move with MoveFile
MoveFile( bFrom.getStr(), bTo.getStr() );
- // MoveFile ist buggy bei cross-device operationen.
- // Der R?ckgabewert ist auch dann sal_True, wenn nur ein Teil der Operation geklappt hat.
- // Zudem zeigt MoveFile unterschiedliches Verhalten bei unterschiedlichen NT-Versionen.
+ // Note: MoveFile is buggy for cross-device operations.
+ // Return value is TRUE, even if the operation was only partially successful.
+ // MoveFile has varying behavior between differing NT-versions.
return Sys2SolarError_Impl( GetLastError() );
}
else
{
- //nein, also inter-device-move mit copy/delete
+ // Not the same device, use inter-device-move with copy/delete
FSysError nCopyError = CopyTo(rNewName, FSYS_ACTION_COPYFILE);
DirEntry aKill(rtl::OStringToOUString(bTo, osl_getThreadTextEncoding()));
@@ -1589,7 +1582,7 @@ FSysError DirEntry::MoveTo( const DirEntry& rNewName ) const
#else
{
if( errno == EXDEV )
-// cross device geht latuernich nicht mit rename
+ // simple rename does not work cross device
{
FILE *fpIN = fopen( bFrom.getStr(), "r" );
FILE *fpOUT = fopen( bTo.getStr(), "w" );
@@ -1601,7 +1594,7 @@ FSysError DirEntry::MoveTo( const DirEntry& rNewName ) const
while( ( nBytes = fread( pBuf, 1, sizeof(pBuf), fpIN ) ) && ! nErr )
{
nWritten = fwrite( pBuf, 1, nBytes, fpOUT );
- // Fehler im fwrite ?
+ // Error in fwrite ?
if( nWritten < nBytes )
{
nErr = errno;
@@ -1654,7 +1647,7 @@ FSysError DirEntry::Kill( FSysAction nActions ) const
FSysError eError = FSYS_ERR_OK;
FSysFailOnErrorImpl();
- // Name als doppelt 0-terminierter String
+ // Terminate name string with two '0'
String aTmpName( GetFull() );
rtl::OString bTmpName(rtl::OUStringToOString(aTmpName, osl_getThreadTextEncoding()));
@@ -1662,7 +1655,7 @@ FSysError DirEntry::Kill( FSysAction nActions ) const
strcpy( pName, bTmpName.getStr() );
pName[bTmpName.getLength()+1] = (char) 0;
- //read-only files sollen auch geloescht werden koennen
+ // delete read-only files as well
sal_Bool isReadOnly = FileStat::GetReadOnlyFlag(*this);
if (isReadOnly)
{
@@ -1672,7 +1665,7 @@ FSysError DirEntry::Kill( FSysAction nActions ) const
// directory?
if ( FileStat( *this ).IsKind(FSYS_KIND_DIR) )
{
- // Inhalte recursiv loeschen?
+ // Delete recursively?
if ( FSYS_ACTION_RECURSIVE == (nActions & FSYS_ACTION_RECURSIVE) )
{
Dir aDir( *this, FSYS_KIND_DIR|FSYS_KIND_FILE );
@@ -1685,13 +1678,13 @@ FSysError DirEntry::Kill( FSysAction nActions ) const
}
}
- // das Dir selbst loeschen
+ // remove Dir myself
#ifdef WIN32
SetLastError(0);
#endif
if ( eError == FSYS_ERR_OK && 0 != _rmdir( (char*) pName ) )
{
- // falls L"oschen nicht ging, CWD umsetzen
+ // Change CWD if deletion failed
#ifdef WIN32
eError = Sys2SolarError_Impl( GetLastError() );
#else
@@ -1756,7 +1749,7 @@ FSysError DirEntry::Kill( FSysAction nActions ) const
}
}
- //falls Fehler, originales read-only flag wieder herstellen
+ // restore original read-only flag upon error
if ( isReadOnly && (eError!=ERRCODE_NONE) )
{
FileStat::SetReadOnlyFlag(*this, isReadOnly);
diff --git a/tools/source/fsys/filecopy.cxx b/tools/source/fsys/filecopy.cxx
index 56c6aab..84b0833 100644
--- a/tools/source/fsys/filecopy.cxx
+++ b/tools/source/fsys/filecopy.cxx
@@ -92,12 +92,12 @@ sal_Bool FileCopier::Progress()
ErrCode FileCopier::Error( ErrCode eErr, const DirEntry* pSource, const DirEntry* pTarget )
{
- // kein Fehler oder kein ErrorHandler?
+ // No error or no error handler?
if ( !eErr || !pImp->aErrorLink )
- // => Error beibehalten
+ // => keep error
return eErr;
- // sonst gesetzten ErrorHandler fragen
+ // otherwise request from ErrorHandler
pImp->pErrSource = pSource;
pImp->pErrTarget = pTarget;
pImp->eErr = eErr;
@@ -112,7 +112,7 @@ FSysError FileCopier::DoCopy_Impl( const DirEntry &rSource, const DirEntry &rTar
FSysError eRet = FSYS_ERR_OK;
ErrCode eWarn = FSYS_ERR_OK;
- // Zieldateiname ggf. kuerzen
+ // shorten target name if necessary
DirEntry aTgt;
aTgt = rTarget;
@@ -199,9 +199,9 @@ FSysError FileCopier::DoCopy_Impl( const DirEntry &rSource, const DirEntry &rTar
else
eRet = Error( aTargetStream.GetError(), 0, &aTgt );
- // unvollstaendiges File wieder loeschen
aTargetStream.Close();
+ // remove incomplete file
if ( nBytesCopied != nBytesTotal )
{
aTgt.Kill();
@@ -242,14 +242,14 @@ FSysError FileCopier::DoCopy_Impl( const DirEntry &rSource, const DirEntry &rTar
}
}
#endif
- // bei Move ggf. das File/Dir loeschen
+ // Remove File/Dir upon Move if necessary
if ( FSYS_ERR_OK == ERRCODE_TOERROR(eRet) && ( pImp->nActions & FSYS_ACTION_MOVE ) )
{
ErrCode eKillErr = Error( rSource.Kill() | ERRCODE_WARNING_MASK, &rSource, 0 );
if ( eKillErr != ERRCODE_WARNING_MASK )
{
if ( rSource.Exists() )
- // loeschen ging nicht => dann die Kopie wieder loeschen
+ // Removal failed => remove copy
aTgt.Kill( pImp->nActions );
if ( !eWarn )
eWarn = eKillErr;
diff --git a/tools/source/fsys/tdir.cxx b/tools/source/fsys/tdir.cxx
index f96c502..b33c9cf 100644
--- a/tools/source/fsys/tdir.cxx
+++ b/tools/source/fsys/tdir.cxx
@@ -37,7 +37,6 @@ sal_Bool Dir::ImpInsertPointReached( const DirEntry& rNewEntry,
( ( FSYS_KIND_FILE | FSYS_KIND_DIR | FSYS_KIND_DEV | \
FSYS_KIND_CHAR | FSYS_KIND_BLOCK ) & nKindFlags )
- // einfache Dinge erfordern einfache Loesungen
if ( pLst->empty() )
return sal_True;
@@ -168,7 +167,6 @@ sal_Bool Dir::ImpInsertPointReached( const DirEntry& rNewEntry,
if ( nSortIndex == ( pSortLst->size() - 1 ) )
return sal_True;
else
- //Rekursion
return ImpInsertPointReached( rNewEntry, rNewStat,
nCurPos, nSortIndex + 1 );
#undef VALUE
@@ -177,7 +175,7 @@ sal_Bool Dir::ImpInsertPointReached( const DirEntry& rNewEntry,
/// Insert as sorted
void Dir::ImpSortedInsert( const DirEntry *pNewEntry, const FileStat *pNewStat )
{
- //Sonderfall, keine Sortierung gewuenscht.
+ // special case: no sorting required
if ( !pSortLst ) {
pLst->push_back( (DirEntry*)pNewEntry );
return;
@@ -231,11 +229,11 @@ void Dir::Construct( DirEntryKind nKindFlags )
void Dir::Reset()
{
- // ggf. alten Reader l"oschen
+ // remove old Reader if necessary
if ( pReader && pReader->bInUse )
DELETEZ(pReader);
- // alle DirEntries aus der Liste entfernen und deren Speicher freigeben
+ // Remove all DirEntries from List and free memory
if ( pLst )
{
for ( size_t i = 0, n = pLst->size(); i < n; ++i ) {
@@ -246,7 +244,7 @@ void Dir::Reset()
else
pLst = new DirEntryList();
- // Alte File-Stat's Loeschen
+ // Remove old File-Stats
if ( pStatLst )
{
for ( size_t i = 0, n = pStatLst->size(); i < n; ++i ) {
@@ -257,7 +255,7 @@ void Dir::Reset()
pStatLst = NULL;
}
- // Verlangen die Sortierkriterien FileStat's?
+ // Does sorting require FileStats?
if ( pSortLst )
{
for ( size_t i = 0, n = pSortLst->size(); i < n; ++i ) {
@@ -272,11 +270,11 @@ void Dir::Reset()
}
}
- // ggf. einen neuen Reader aufsetzen
+ // Create new reader if necessary
if ( !pReader )
pReader = new DirReader_Impl( *this );
- // gibt es das zu oeffnende Verzeichnis ueberhaupt?
+ // Does the directory exist at all?
#if !defined(UNX) //explanation: see DirReader_Impl::Read() in unx.cxx
if( !pReader->pDosDir )
{
@@ -290,30 +288,30 @@ void Dir::Reset()
sal_uInt16 Dir::Scan( sal_uInt16 nCount )
{
- sal_uInt16 nRead = 0; // Anzahl in dieser Runde gelesener Eintr"age
+ sal_uInt16 nRead = 0; // Number of read entries in this round
FSysFailOnErrorImpl();
- // noch nicht fertig gewesen
+ // did not complete
if ( pReader )
{
- // frischer Reader?
+ // is this a new reader?
if ( pLst->empty() )
{
- // dann ggf. Laufwerke scannen
+ // Scan directories
pReader->bInUse = sal_True;
nRead = pReader->Init();
}
- // weiterlesen...
+ // continue reading
while ( nRead <= nCount && !pReader->bReady )
nRead = nRead + pReader->Read();
- // fertig?
+ // done?
if ( pReader && pReader->bReady )
DELETEZ( pReader );
}
- // Anzahl der gelesenen zur"uckgeben
+ // Return read entry count
return nRead;
}
@@ -331,7 +329,7 @@ Dir::~Dir()
{
DBG_DTOR( Dir, NULL );
- // alle DirEntries aus der Liste entfernen und deren Speicher freigeben
+ // Remove all DirEntries and free memory
if ( pLst )
{
for ( size_t i = 0, n = pLst->size(); i < n; ++i ) {
@@ -341,14 +339,14 @@ Dir::~Dir()
delete pLst;
}
- // alle Sorts aus der Liste entfernen und deren Speicher freigeben
+ // Remove all Sorts from list and free memory
if ( pSortLst )
{
pSortLst->clear();
delete pSortLst;
}
- // alle FileStat's aus der Liste entfernen und deren Speicher freigeben
+ // Remove all FileStats from list and free memory
if ( pStatLst )
{
for ( size_t i = 0, n = pStatLst->size(); i < n; ++i ) {
@@ -358,7 +356,6 @@ Dir::~Dir()
delete pStatLst;
}
- // ggf. laufenden Reader freigeben
delete pReader;
}
@@ -372,16 +369,15 @@ DirEntry& Dir::operator[] ( size_t nIndex ) const
Dir& Dir::operator+=( const Dir& rDir )
{
- // ggf. erst den Rest lesen
+ // Read the rest of the directory
if ( pReader )
Scan( USHRT_MAX );
DBG_ASSERT( !rDir.pReader, "Dir::+= with incomplete Dir" );
- // ggf. initiale Liste erzeugen
if ( !pLst )
pLst = new DirEntryList();
- //Verlangen die Sortierkriterien FileStat's?
+ // FileStats required by sorting criteria?
sal_Bool bStat = sal_False;
if ( pSortLst ) {
for ( size_t i = 0, n = pSortLst->size(); i < n && !bStat; ++i ) {
@@ -411,7 +407,7 @@ Dir& Dir::operator+=( const Dir& rDir )
size_t Dir::Count( sal_Bool bUpdated ) const
{
- // ggf. erst den Rest lesen
+ // Read the rest of the directory
if ( bUpdated && pReader )
((Dir*)this)->Scan( USHRT_MAX );
diff --git a/tools/source/fsys/unx.cxx b/tools/source/fsys/unx.cxx
index 00472a5..59ca419 100644
--- a/tools/source/fsys/unx.cxx
+++ b/tools/source/fsys/unx.cxx
@@ -151,8 +151,7 @@ static sal_Bool GetMountEntry(dev_t dev, struct mymnttab *mytab)
continue;
}
# ifdef LINUX
- /* #61624# File mit setmntent oeffnen und mit fclose schliessen stoesst
- bei der glibc-2.1 auf wenig Gegenliebe */
+ // #61624# Opening file with setmntent and closing with fclose fails for glibc-2.1
endmntent( fp );
# else
fclose (fp);
@@ -165,7 +164,7 @@ static sal_Bool GetMountEntry(dev_t dev, struct mymnttab *mytab)
return sal_True;
}
# ifdef LINUX
- /* #61624# dito */
+ /* #61624# see above */
endmntent( fp );
# else
fclose (fp);
@@ -252,7 +251,7 @@ sal_uInt16 DirReader_Impl::Read()
return 0;
}
- // Directories und Files auflisten?
+ // List directories and dirs
if ( ( pDir->eAttrMask & FSYS_KIND_DIR || pDir->eAttrMask & FSYS_KIND_FILE ) &&
( ( pDosEntry = readdir( pDosDir ) ) != NULL ) )
{
@@ -274,7 +273,7 @@ sal_uInt16 DirReader_Impl::Read()
!( pDir->eAttrMask & FSYS_KIND_VISIBLE &&
pDosEntry->d_name[0] == '.' ) )
{
- if ( pDir->pStatLst ) //Status fuer Sort gewuenscht?
+ if ( pDir->pStatLst ) // Does sorting criteria require status?
pDir->ImpSortedInsert( pTemp, new FileStat( aStat ) );
else
pDir->ImpSortedInsert( pTemp, NULL );
@@ -309,7 +308,7 @@ sal_Bool FileStat::Update( const DirEntry& rDirEntry, SAL_UNUSED_PARAMETER sal_B
return sal_False;
}
- // Sonderbehandlung falls es sich um eine Root handelt
+ // Special case if DirEntry is root
if ( rDirEntry.eFlag == FSYS_FLAG_ABSROOT )
{
nKindFlags = FSYS_KIND_DIR;
@@ -327,7 +326,7 @@ sal_Bool FileStat::Update( const DirEntry& rDirEntry, SAL_UNUSED_PARAMETER sal_B
// note that this is not a solution, since filenames containing special characters
// are handled badly across the whole Office
- // Sonderbehandlung falls es sich um eine Wildcard handelt
+ // special treatment if name contains wildcards
rtl::OString aTempName(rtl::OUStringToOString(rDirEntry.GetName(), osl_getThreadTextEncoding()));
if ( aTempName.indexOf('?') != -1 ||
aTempName.indexOf('*') != -1 ||
@@ -377,9 +376,9 @@ const char *TempDirImpl( char *pBuf )
if ( pValue )
strcpy( pBuf, pValue );
else
- // auf Solaris und Linux ist P_tmpdir vorgesehen
+ // P_tempdir exists in Solaris and Linux
strcpy( pBuf, P_tmpdir );
- // hart auf "/tmp" sollte wohl nur im Notfall verwendet werden
+ // don't use "/tmp" as hard coded directory
//strcpy( pBuf, "/tmp" );
#endif /* MACOSX */
diff --git a/tools/source/fsys/wldcrd.cxx b/tools/source/fsys/wldcrd.cxx
index d61bea9..303b59c 100644
--- a/tools/source/fsys/wldcrd.cxx
+++ b/tools/source/fsys/wldcrd.cxx
@@ -19,12 +19,12 @@
#include <tools/wldcrd.hxx>
-/* Diese Methode ueberprueft, ob die Wilde Karte in pWild mit dem String
- * in pStr matscht.
- * Vertragen sich die beiden, so wird 1 zurueckgegeben, sonst 0.
+/** Tests, whether a wildcard in pWild will match for pStr.
*
- * ein '*' in pWild bedeutet n beliebige Zeichen, mit n>=0
- * ein '?' in pWild bedeutet genau ein beliebiges Zeichen
+ * If they match, return 1, otherwise 0.
+ *
+ * '*' in pWild means n chars for n > 0.
+ * '?' in pWild mean match exactly one character.
*
*/
sal_uInt16 WildCard::ImpMatch( const char *pWild, const char *pStr ) const
@@ -50,8 +50,8 @@ sal_uInt16 WildCard::ImpMatch( const char *pWild, const char *pStr ) const
else
pWild += pos;
else
- break; // ACHTUNG laeuft unter bestimmten
- // Umstaenden in den nachsten case rein!!
+ break; // WARNING: may cause execution of next case
+ // in some circumstances!
case '*':
while ( *pWild == '*' )
pWild++;
@@ -97,12 +97,11 @@ sal_Bool WildCard::Matches( const String& rString ) const
{
while ( (nSepPos = aTmpWild.indexOf(cSepSymbol)) != -1 )
{
- // alle getrennten WildCard's pruefen
+ // Check all splitted wildcards
if ( ImpMatch( aTmpWild.copy( 0, nSepPos ).getStr(), aString.getStr() ) )
return sal_True;
- aTmpWild = aTmpWild.copy(nSepPos + 1); // Trennsymbol entfernen
+ aTmpWild = aTmpWild.copy(nSepPos + 1); // remove separator
}
- // und noch den hinter dem letzen Trennsymbol bzw. den einzigen
}
if ( ImpMatch( aTmpWild.getStr(), aString.getStr() ) )
diff --git a/tools/source/fsys/wntmsc.cxx b/tools/source/fsys/wntmsc.cxx
index f514b86..f2eeffc 100644
--- a/tools/source/fsys/wntmsc.cxx
+++ b/tools/source/fsys/wntmsc.cxx
@@ -63,7 +63,7 @@ struct dirent *readdir( DIR *pDir )
char *pBuf = new char[ strlen( pDir->p ) + 5 ];
if ( pBuf )
{
- // *.* dahinter, ggf mit "\\" abtrennen (falls nicht schon da)
+ // if string ends with *.*, seperate with "\\" (unless it exists)
strcpy( pBuf, pDir->p );
strcat( pBuf, "\\*.*" + ( *(pBuf + strlen( pBuf ) - 1 ) == '\\' ) );
CharUpperBuff( pBuf, strlen(pBuf) );
@@ -145,12 +145,12 @@ String DirEntry::GetVolume() const
rtl::OString aRootDir = pTop->aName;
FSysFailOnErrorImpl();
- // Network-Device zuerst probieren wegen langsamer Samba-Drives
+ // Try network device first due to slow samba drives
if ( !WNetGetConnection( aRootDir.getStr(),
sVolumeName, &nVolumeNameLen ) )
aRet = String( sVolumeName, osl_getThreadTextEncoding());
- // dann den VolumeNamen fuer lokale Drives
+ // Append volume name for local drives
if ( aRet.Len() == 0 )
{
aRootDir += rtl::OString(RTL_CONSTASCII_STRINGPARAM("\\"));
@@ -190,14 +190,14 @@ sal_Bool DirEntry::SetCWD( sal_Bool bSloppy ) const
USHORT DirReader_Impl::Init()
{
- // Block-Devices auflisten?
+ // List Block-devices?
if ( pDir->eAttrMask & FSYS_KIND_BLOCK )
{
- // CWD merken
+ // remember CWD
DirEntry aCurrentDir;
aCurrentDir.ToAbs();
- // einzeln auf Existenz und Masken-konformit"at pr"ufen
+ // Check for existence and conformity to flags
USHORT nRead = 0;
char sDrive[3] = { '?', ':', 0 };
char sRoot[4] = { '?', ':', '\\', 0 };
@@ -208,7 +208,7 @@ USHORT DirReader_Impl::Init()
DirEntry* pDrive = new DirEntry( sDrive, FSYS_FLAG_VOLUME );
if ( pDir->aNameMask.Matches( String(rtl::OStringToOUString(sDrive, osl_getThreadTextEncoding())) ) && GetDriveType( sRoot ) != 1 )
{
- if ( pDir->pStatLst ) //Status fuer Sort gewuenscht?
+ if ( pDir->pStatLst ) // Status required by sorting criteria?
{
FileStat *pNewStat = new FileStat( *pDrive );
pDir->ImpSortedInsert( pDrive, pNewStat );
@@ -221,7 +221,7 @@ USHORT DirReader_Impl::Init()
delete pDrive;
}
- // CWD restaurieren
+ // restore CWD
aCurrentDir.SetCWD();
return nRead;
}
@@ -231,19 +231,19 @@ USHORT DirReader_Impl::Init()
USHORT DirReader_Impl::Read()
{
- // Directories und Files auflisten?
+ // List directories and Files?
if ( ( pDir->eAttrMask & FSYS_KIND_DIR ||
pDir->eAttrMask & FSYS_KIND_FILE ) &&
( ( pDosEntry = readdir( pDosDir ) ) != NULL ) )
{
- // Gross/Kleinschreibung nicht beruecksichtigen
+ // Do not distinguish between lower-/upper-case letters
size_t nLen = strlen(pDosEntry->d_name);
std::vector<char> aBuffer(nLen);
memcpy(&aBuffer[0], pDosEntry->d_name, nLen);
CharLowerBuff(&aBuffer[0], nLen);
rtl::OString aLowerName(&aBuffer[0], nLen);
- // Flags pruefen
+ // check Flags
sal_Bool bIsDirAndWantsDir =
( ( pDir->eAttrMask & FSYS_KIND_DIR ) &&
#ifdef ICC
@@ -284,7 +284,7 @@ USHORT DirReader_Impl::Read()
#endif
if ( pParent )
pTemp->ImpChangeParent( new DirEntry( *pParent ), sal_False );
- if ( pDir->pStatLst ) //Status fuer Sort gewuenscht?
+ if ( pDir->pStatLst ) // Status required by sorting criteria?
{
FileStat *pNewStat = new FileStat( (void*) pDosDir );
pDir->ImpSortedInsert( pTemp, pNewStat );
@@ -585,8 +585,7 @@ sal_Bool FileStat::Update( const DirEntry& rDirEntry, sal_Bool bForceAccess )
return sal_False;
}
- // Sonderbehandlung falls es sich um eine Root ohne Laufwerk handelt
-
+ // Special treatment if it's a root without device
if ( !rDirEntry.aName.getLength() && rDirEntry.eFlag == FSYS_FLAG_ABSROOT )
{
nKindFlags = FSYS_KIND_DIR;
@@ -594,15 +593,15 @@ sal_Bool FileStat::Update( const DirEntry& rDirEntry, sal_Bool bForceAccess )
return sal_True;
}
- // keine Error-Boxen anzeigen
+ // Don't show error boxes
FSysFailOnErrorImpl();
// Redirect
String aPath( rDirEntry.GetFull() );
DirEntry aDirEntry( aPath );
- // ist ein Medium im Laufwerk?
- HACK("wie?")
+ // Is a medium in this device?
+ HACK("How?")
sal_Bool bAccess = sal_True;
const DirEntry *pTop = aDirEntry.ImpGetTopPtr();
rtl::OString aName = rtl::OString(pTop->aName).toAsciiLowerCase();
@@ -623,7 +622,7 @@ sal_Bool FileStat::Update( const DirEntry& rDirEntry, sal_Bool bForceAccess )
DBG_WARNING( "floppy will clatter" );
}
- // Sonderbehandlung, falls es sich um ein Volume handelt
+ // Special treatment if it's a volume
if ( aDirEntry.eFlag == FSYS_FLAG_VOLUME ||
aDirEntry.eFlag == FSYS_FLAG_ABSROOT )
{
@@ -667,18 +666,17 @@ sal_Bool FileStat::Update( const DirEntry& rDirEntry, sal_Bool bForceAccess )
return sal_True;
}
- // Statusinformation vom Betriebssystem holen
+ // Get status data from OS
HANDLE h; //()
_WIN32_FIND_DATAA aEntry = INIT_WIN32_FIND_DATAA;
DirEntry aAbsEntry( aDirEntry );
if ( bAccess && aAbsEntry.ToAbs() )
{
- // im Namen k"onnen auch ';*?' als normale Zeichen vorkommen
+ // names can contain ';*?' as normal characters
rtl::OString aFilePath(rtl::OUStringToOString(aAbsEntry.GetFull(), osl_getThreadTextEncoding()));
OSL_TRACE( "FileStat: %s", aFilePath.getStr() );
h = aFilePath.getLength() < 230
- // die Win32-API ist hier sehr schwammig
? FindFirstFile( aFilePath.getStr(), &aEntry )//TPF: 2i
: INVALID_HANDLE_VALUE;
@@ -733,7 +731,7 @@ sal_Bool FileStat::Update( const DirEntry& rDirEntry, sal_Bool bForceAccess )
if ( h == INVALID_HANDLE_VALUE )
{
- // Sonderbehandlung falls es sich um eine Wildcard handelt
+ // Special treatment if name contains wildcard
rtl::OString aTempName(rtl::OUStringToOString(aDirEntry.GetName(), osl_getThreadTextEncoding()));
if ( strchr( aTempName.getStr(), '?' ) ||
strchr( aTempName.getStr(), '*' ) ||
diff --git a/tools/source/generic/b3dtrans.cxx b/tools/source/generic/b3dtrans.cxx
index bb8ec2c..ce4ce26 100644
--- a/tools/source/generic/b3dtrans.cxx
+++ b/tools/source/generic/b3dtrans.cxx
@@ -129,7 +129,7 @@ void B3dTransformationSet::Ortho(basegfx::B3DHomMatrix& rTarget,
/// reset values
void B3dTransformationSet::Reset()
{
- // Matritzen auf Einheitsmatritzen
+ // Reset matrices to identity matrices
maObjectTrans.identity();
PostSetObjectTrans();
@@ -161,7 +161,7 @@ void B3dTransformationSet::Reset()
/// Object transformation
void B3dTransformationSet::PostSetObjectTrans()
{
- // Zuweisen und Inverse bestimmen
+ // Assign and compute inverse
maInvObjectTrans = maObjectTrans;
maInvObjectTrans.invert();
}
@@ -180,7 +180,7 @@ void B3dTransformationSet::SetOrientation( basegfx::B3DPoint aVRP, basegfx::B3DV
void B3dTransformationSet::PostSetOrientation()
{
- // Zuweisen und Inverse bestimmen
+ // Assign and compute inverse
maInvOrientation = maOrientation;
maInvOrientation.invert();
}
@@ -201,11 +201,11 @@ const basegfx::B3DHomMatrix& B3dTransformationSet::GetProjection()
void B3dTransformationSet::PostSetProjection()
{
- // Zuweisen und Inverse bestimmen
+ // Assign and comptue inverse
maInvProjection = GetProjection();
maInvProjection.invert();
- // Abhaengige Matritzen invalidieren
+ // invalidate dependent matrices
mbObjectToDeviceValid = sal_False;
mbWorldToViewValid = sal_False;
}
@@ -213,17 +213,16 @@ void B3dTransformationSet::PostSetProjection()
/// Transformations for viewport
void B3dTransformationSet::CalcViewport()
{
- // Faktoren fuer die Projektion
+ // Parameters for projection
double fLeft(mfLeftBound);
double fRight(mfRightBound);
double fBottom(mfBottomBound);
double fTop(mfTopBound);
- // Soll das Seitenverhaeltnis Beachtung finden?
- // Falls ja, Bereich der Projektion an Seitenverhaeltnis anpassen
+ // Adjust projection to aspect ratio, if set
if(GetRatio() != 0.0)
{
- // Berechne aktuelles Seitenverhaeltnis der Bounds
+ // Compute current aspect ratio of boundaries
double fBoundWidth = (double)(maViewportRectangle.GetWidth() + 1);
double fBoundHeight = (double)(maViewportRectangle.GetHeight() + 1);
double fActRatio = 1;
@@ -237,17 +236,17 @@ void B3dTransformationSet::CalcViewport()
{
case Base3DRatioShrink :
{
- // Kleineren Teil vergroessern
+ // Dilate smaller part
if(fActRatio > mfRatio)
{
- // X vergroessern
+ // enlarge X
fFactor = 1.0 / fActRatio;
fRight *= fFactor;
fLeft *= fFactor;
}
else
{
- // Y vergroessern
+ // enlarge Y
fFactor = fActRatio;
fTop *= fFactor;
fBottom *= fFactor;
@@ -256,17 +255,17 @@ void B3dTransformationSet::CalcViewport()
}
case Base3DRatioGrow :
{
- // GroesserenTeil verkleinern
+ // scale down larger part
if(fActRatio > mfRatio)
{
- // Y verkleinern
+ // scale down Y
fFactor = fActRatio;
fTop *= fFactor;
fBottom *= fFactor;
}
else
{
- // X verkleinern
+ // scale down X
fFactor = 1.0 / fActRatio;
fRight *= fFactor;
fLeft *= fFactor;
@@ -275,7 +274,7 @@ void B3dTransformationSet::CalcViewport()
}
case Base3DRatioMiddle :
{
- // Mitteln
+ // averaging
fFactor = ((1.0 / fActRatio) + 1.0) / 2.0;
fRight *= fFactor;
fLeft *= fFactor;
@@ -287,10 +286,10 @@ void B3dTransformationSet::CalcViewport()
}
}
- // Ueberschneiden sich Darstellungsflaeche und Objektflaeche?
+ // Do projection and object areas overlap?
maSetBound = maViewportRectangle;
- // Mit den neuen Werten Projektion und ViewPort setzen
+ // Reset projection with new values
basegfx::B3DHomMatrix aNewProjection;
// #i36281#
@@ -299,8 +298,7 @@ void B3dTransformationSet::CalcViewport()
// which is 1/10000th, comared with 1/tenth of a million from SMALL_DVALUE.
const double fDistPart((mfFarBound - mfNearBound) * 0.0001);
- // Near, Far etwas grosszuegiger setzen, um falsches,
- // zu kritisches clippen zu verhindern
+ // To avoid critical clipping, set Near & Far generously
if(mbPerspective)
{
Frustum(aNewProjection, fLeft, fRight, fBottom, fTop, mfNearBound - fDistPart, mfFarBound + fDistPart);
@@ -310,10 +308,10 @@ void B3dTransformationSet::CalcViewport()
Ortho(aNewProjection, fLeft, fRight, fBottom, fTop, mfNearBound - fDistPart, mfFarBound + fDistPart);
}
- // jetzt schon auf gueltig setzen um Endlosschleife zu vermeiden
+ // Set to true to guarantee loop termination
mbProjectionValid = sal_True;
- // Neue Projektion setzen
+ // set new projection
SetProjection(aNewProjection);
// fill parameters for ViewportTransformation
@@ -322,12 +320,12 @@ void B3dTransformationSet::CalcViewport()
maTranslate.setY((double)maSetBound.Top() + ((maSetBound.GetHeight() - 1L) / 2.0));
maTranslate.setZ(ZBUFFER_DEPTH_RANGE / 2.0);
- // Skalierung
+ // Scaling
maScale.setX((maSetBound.GetWidth() - 1L) / 2.0);
maScale.setY((maSetBound.GetHeight() - 1L) / -2.0);
maScale.setZ(ZBUFFER_DEPTH_RANGE / 2.0);
- // Auf Veraenderung des ViewPorts reagieren
+ // React to change of viewport
PostSetViewport();
}
@@ -356,7 +354,7 @@ void B3dTransformationSet::SetDeviceRectangle(double fL, double fR, double fB, d
mbObjectToDeviceValid = sal_False;
mbWorldToViewValid = sal_False;
- // Aenderung bekanntmachen
+ // Broadcast changes
if(bBroadCastChange)
DeviceRectangleChange();
}
@@ -472,7 +470,7 @@ void B3dCamera::DeviceRectangleChange()
// call parent
B3dViewport::DeviceRectangleChange();
- // Auf Aenderung reagieren
+ // react to changes
CalcNewViewportValues();
}
@@ -517,14 +515,14 @@ sal_Bool B3dCamera::CalcFocalLength()
if(bUseFocalLength)
{
- // Position aufgrund der FocalLength korrigieren
+ // Update position if focal length changes
aCorrectedPosition = basegfx::B3DPoint(0.0, 0.0, fFocalLength * fWidth / 35.0);
aCorrectedPosition = EyeToWorldCoor(aCorrectedPosition);
bRetval = sal_True;
}
else
{
- // FocalLength anhand der Position anpassen
+ // Adjust focal length based on given position
basegfx::B3DPoint aOldPosition;
aOldPosition = WorldToEyeCoor(aOldPosition);
if(fWidth != 0.0)
diff --git a/tools/source/generic/bigint.cxx b/tools/source/generic/bigint.cxx
index 331b603..9247b1f 100644
--- a/tools/source/generic/bigint.cxx
+++ b/tools/source/generic/bigint.cxx
@@ -31,14 +31,14 @@ static const long MY_MINLONG = -MY_MAXLONG;
static const long MY_MAXSHORT = 0x00007fff;
static const long MY_MINSHORT = -MY_MAXSHORT;
-/* Die ganzen Algorithmen zur Addition, Subtraktion, Multiplikation und
- * Division von langen Zahlen stammen aus SEMINUMERICAL ALGORITHMS von
- * DONALD E. KNUTH aus der Reihe The Art of Computer Programming. Zu finden
- * sind diese Algorithmen im Kapitel 4.3.1. The Classical Algorithms.
+/*
+ * The algorithms for Addition, Substraction, Multiplication and Divison
+ * of large numbers originate from SEMINUMERICAL ALGORITHMS by
+ * DONALD E. KNUTH in the series The Art of Computer Programming:
+ * chapter 4.3.1. The Classical Algorithms.
*/
-// Muss auf sal_uInt16/INT16/sal_uInt32/sal_Int32 umgestellt werden !!! W.P.
-
+// TODO: Needs conversion to sal_uInt16/INT16/sal_uInt32/sal_Int32
void BigInt::MakeBigInt( const BigInt& rVal )
{
if ( rVal.bIsBig )
@@ -91,9 +91,9 @@ void BigInt::Normalize()
if ( bIsNeg )
nVal = -nVal;
}
- // else ist nVal undefiniert !!! W.P.
+ // else nVal is undefined !!! W.P.
}
- // wozu, nLen ist doch undefiniert ??? W.P.
+ // why? nVal is undefined ??? W.P.
else if ( nVal & 0xFFFF0000L )
nLen = 2;
else
@@ -158,8 +158,8 @@ void BigInt::AddLong( BigInt& rB, BigInt& rErg )
int i;
char len;
- // wenn die Zahlen unterschiedlich lang sind, sollte zunaechst bei
- // der kleineren Zahl die fehlenden Ziffern mit 0 initialisert werden
+ // if length of the two values differ, fill remaining positions
+ // of the smaller value with zeros.
if (nLen >= rB.nLen)
{
len = nLen;
@@ -173,7 +173,7 @@ void BigInt::AddLong( BigInt& rB, BigInt& rErg )
nNum[i] = 0;
}
- // Die Ziffern werden von hinten nach vorne addiert
+ // Add numerals, starting from the back
long k;
long nZ = 0;
for (i = 0, k = 0; i < len; i++) {
@@ -184,20 +184,18 @@ void BigInt::AddLong( BigInt& rB, BigInt& rErg )
k = 0;
rErg.nNum[i] = (sal_uInt16)(nZ & 0xffffL);
}
- // Trat nach der letzten Addition ein Ueberlauf auf, muss dieser
- // noch ins Ergebis uebernommen werden
- if (nZ & 0xff0000L) // oder if(k)
+ // If an overflow occured, add to solution
+ if (nZ & 0xff0000L) // or if(k)
{
rErg.nNum[i] = 1;
len++;
}
- // Die Laenge und das Vorzeichen setzen
+ // Set length and sign
rErg.nLen = len;
rErg.bIsNeg = bIsNeg && rB.bIsNeg;
rErg.bIsBig = sal_True;
}
- // Wenn nur einer der beiden Operanten negativ ist, wird aus der
- // Addition eine Subtaktion
+ // If one of the values is negative, perform substraction instead
else if (bIsNeg)
{
bIsNeg = sal_False;
@@ -220,8 +218,8 @@ void BigInt::SubLong( BigInt& rB, BigInt& rErg )
char len;
long nZ, k;
- // wenn die Zahlen unterschiedlich lang sind, sollte zunaechst bei
- // der kleineren Zahl die fehlenden Ziffern mit 0 initialisert werden
+ // if length of the two values differ, fill remaining positions
+ // of the smaller value with zeros.
if (nLen >= rB.nLen)
{
len = nLen;
@@ -259,14 +257,13 @@ void BigInt::SubLong( BigInt& rB, BigInt& rErg )
k = 0;
rErg.nNum[i] = (sal_uInt16)(nZ & 0xffffL);
}
- // wenn a < b, dann Vorzeichen vom Ergebnis umdrehen
+ // if a < b, revert sign
rErg.bIsNeg = !bIsNeg;
}
rErg.nLen = len;
rErg.bIsBig = sal_True;
}
- // Wenn nur einer der beiden Operanten negativ ist, wird aus der
- // Subtaktion eine Addition
+ // If one of the values is negative, perform addition instead
else if (bIsNeg)
{
bIsNeg = sal_False;
@@ -329,7 +326,7 @@ void BigInt::DivLong( const BigInt& rB, BigInt& rErg ) const
aTmpB.Mult( rB, nMult );
for (j = aTmpA.nLen - 1; j >= nLenB; j--)
- { // Raten des Divisors
+ { // guess divisor
nTmp = ( (long)aTmpA.nNum[j] << 16 ) + aTmpA.nNum[j - 1];
if (aTmpA.nNum[j] == aTmpB.nNum[nLenB1])
nQ = 0xFFFF;
@@ -339,7 +336,7 @@ void BigInt::DivLong( const BigInt& rB, BigInt& rErg ) const
if ( ((sal_uInt32)aTmpB.nNum[nLenB1 - 1] * nQ) >
((((sal_uInt32)nTmp) - aTmpB.nNum[nLenB1] * nQ) << 16) + aTmpA.nNum[j - 2])
nQ--;
- // Und hier faengt das Teilen an
+ // Start division
nK = 0;
nTmp = 0;
for (i = 0; i < nLenB; i++)
@@ -398,7 +395,7 @@ void BigInt::ModLong( const BigInt& rB, BigInt& rErg ) const
aTmpB.Mult( rB, nMult);
for (j = aTmpA.nLen - 1; j >= nLenB; j--)
- { // Raten des Divisors
+ { // Guess divisor
nTmp = ( (long)aTmpA.nNum[j] << 16 ) + aTmpA.nNum[j - 1];
if (aTmpA.nNum[j] == aTmpB.nNum[nLenB1])
nQ = 0xFFFF;
@@ -408,7 +405,7 @@ void BigInt::ModLong( const BigInt& rB, BigInt& rErg ) const
if ( ((sal_uInt32)aTmpB.nNum[nLenB1 - 1] * nQ) >
((((sal_uInt32)nTmp) - aTmpB.nNum[nLenB1] * nQ) << 16) + aTmpA.nNum[j - 2])
nQ--;
- // Und hier faengt das Teilen an
+ // Start division
nK = 0;
nTmp = 0;
for (i = 0; i < nLenB; i++)
@@ -669,13 +666,13 @@ BigInt& BigInt::operator+=( const BigInt& rVal )
{
if( nVal <= MY_MAXLONG && rVal.nVal <= MY_MAXLONG
&& nVal >= MY_MINLONG && rVal.nVal >= MY_MINLONG )
- { // wir bewegen uns im ungefaehrlichem Bereich
+ { // No overflows may occur here
nVal += rVal.nVal;
return *this;
}
if( (nVal < 0) != (rVal.nVal < 0) )
- { // wir bewegen uns im ungefaehrlichem Bereich
+ { // No overflows may occur here
nVal += rVal.nVal;
return *this;
}
@@ -695,13 +692,13 @@ BigInt& BigInt::operator-=( const BigInt& rVal )
{
if ( nVal <= MY_MAXLONG && rVal.nVal <= MY_MAXLONG &&
nVal >= MY_MINLONG && rVal.nVal >= MY_MINLONG )
- { // wir bewegen uns im ungefaehrlichem Bereich
+ { // No overflows may occur here
nVal -= rVal.nVal;
return *this;
}
if ( (nVal < 0) == (rVal.nVal < 0) )
- { // wir bewegen uns im ungefaehrlichem Bereich
+ { // No overflows may occur here
nVal -= rVal.nVal;
return *this;
}
@@ -720,8 +717,8 @@ BigInt& BigInt::operator*=( const BigInt& rVal )
if ( !bIsBig && !rVal.bIsBig
&& nVal <= MY_MAXSHORT && rVal.nVal <= MY_MAXSHORT
&& nVal >= MY_MINSHORT && rVal.nVal >= MY_MINSHORT )
- // nicht optimal !!! W.P.
- { // wir bewegen uns im ungefaehrlichem Bereich
+ // TODO: not optimal !!! W.P.
+ { // No overflows may occur here
nVal *= rVal.nVal;
}
else
@@ -747,7 +744,7 @@ BigInt& BigInt::operator/=( const BigInt& rVal )
if ( !bIsBig )
{
- // wir bewegen uns im ungefaehrlichem Bereich
+ // No overflows may occur here
nVal /= rVal.nVal;
return *this;
}
@@ -763,7 +760,7 @@ BigInt& BigInt::operator/=( const BigInt& rVal )
if ( rVal.nVal <= (long)0xFFFF && rVal.nVal >= -(long)0xFFFF )
{
- // ein BigInt durch ein sal_uInt16 teilen
+ // Divide BigInt with an sal_uInt16
sal_uInt16 nTmp;
if ( rVal.nVal < 0 )
{
@@ -785,7 +782,7 @@ BigInt& BigInt::operator/=( const BigInt& rVal )
return *this;
}
- // BigInt durch BigInt teilen
+ // Divide BigInt with BigInt
BigInt aTmp1, aTmp2;
aTmp1.MakeBigInt( *this );
aTmp2.MakeBigInt( rVal );
@@ -806,14 +803,14 @@ BigInt& BigInt::operator%=( const BigInt& rVal )
if ( !bIsBig )
{
- // wir bewegen uns im ungefaehrlichem Bereich
+ // No overflows may occur here
nVal %= rVal.nVal;
return *this;
}
if ( rVal.nVal <= (long)0xFFFF && rVal.nVal >= -(long)0xFFFF )
{
- // ein BigInt durch ein short teilen
+ // Divide Bigint by short
sal_uInt16 nTmp;
if ( rVal.nVal < 0 )
{
@@ -832,7 +829,7 @@ BigInt& BigInt::operator%=( const BigInt& rVal )
if ( ABS_IsLess( rVal ) )
return *this;
- // BigInt durch BigInt teilen
+ // Divide BigInt with BigInt
BigInt aTmp1, aTmp2;
aTmp1.MakeBigInt( *this );
aTmp2.MakeBigInt( rVal );
diff --git a/tools/source/generic/config.cxx b/tools/source/generic/config.cxx
index c590f6b..d2852cf 100644
--- a/tools/source/generic/config.cxx
+++ b/tools/source/generic/config.cxx
@@ -196,11 +196,10 @@ rtl::OString makeOString(const sal_uInt8* p, sal_uInt64 n)
static void ImplMakeConfigList( ImplConfigData* pData,
const sal_uInt8* pBuf, sal_uInt64 nLen )
{
- // kein Buffer, keine Daten
if ( !nLen )
return;
- // Buffer parsen und Liste zusammenbauen
+ // Parse buffer and build config list
sal_uInt64 nStart;
sal_uInt64 nLineLen;
sal_uInt64 nNameLen;
@@ -218,29 +217,29 @@ static void ImplMakeConfigList( ImplConfigData* pData,
if ( pBuf[i] == 0x1A )
break;
- // Spaces und Tabs entfernen
+ // Remove spaces and tabs
while ( (pBuf[i] == ' ') || (pBuf[i] == '\t') )
i++;
- // Zeilenanfang merken
+ // remember line-starts
nStart = i;
pLine = pBuf+i;
- // Zeilenende suchen
+ // search line-endings
while ( (i < nLen) && pBuf[i] && (pBuf[i] != '\r') && (pBuf[i] != '\n') &&
(pBuf[i] != 0x1A) )
i++;
nLineLen = i-nStart;
- // Wenn Zeilenende (CR/LF), dann noch einen weiterschalten
+ // if Line-ending is found, continue once
if ( (i+1 < nLen) &&
(pBuf[i] != pBuf[i+1]) &&
((pBuf[i+1] == '\r') || (pBuf[i+1] == '\n')) )
i++;
i++;
- // Zeile auswerten
+ // evaluate line
if ( *pLine == '[' )
{
pGroup = new ImplGroupData;
@@ -255,10 +254,10 @@ static void ImplMakeConfigList( ImplConfigData* pData,
pPrevKey = NULL;
pKey = NULL;
- // Gruppennamen rausfiltern
+ // filter group names
pLine++;
nLineLen--;
- // Spaces und Tabs entfernen
+ // remove spaces and tabs
while ( (*pLine == ' ') || (*pLine == '\t') )
{
nLineLen--;
@@ -278,8 +277,7 @@ static void ImplMakeConfigList( ImplConfigData* pData,
{
if ( nLineLen )
{
- // Wenn noch keine Gruppe existiert, dann alle Keys in die
- // Default-Gruppe
+ // If no group exists yet, add to default
if ( !pGroup )
{
pGroup = new ImplGroupData;
@@ -294,7 +292,7 @@ static void ImplMakeConfigList( ImplConfigData* pData,
pPrevKey = NULL;
}
- // Falls Leerzeile vorhanden, dann anhaengen
+ // if empty line, append it
if ( pPrevKey )
{
while ( pGroup->mnEmptyLines )
@@ -307,7 +305,7 @@ static void ImplMakeConfigList( ImplConfigData* pData,
}
}
- // Neuen Key erzeugen
+ // Generate new key
pKey = new ImplKeyData;
pKey->mpNext = NULL;
if ( pPrevKey )
@@ -327,7 +325,7 @@ static void ImplMakeConfigList( ImplConfigData* pData,
while ( (nNameLen < nLineLen) && (pLine[nNameLen] != '=') )
nNameLen++;
nKeyLen = nNameLen;
- // Spaces und Tabs entfernen
+ // Remove spaces and tabs
if ( nNameLen )
{
while ( (pLine[nNameLen-1] == ' ') || (pLine[nNameLen-1] == '\t') )
@@ -339,7 +337,7 @@ static void ImplMakeConfigList( ImplConfigData* pData,
{
pLine += nKeyLen;
nLineLen -= nKeyLen;
- // Spaces und Tabs entfernen
+ // Remove spaces and tabs
while ( (*pLine == ' ') || (*pLine == '\t') )
{
nLineLen--;
@@ -356,10 +354,8 @@ static void ImplMakeConfigList( ImplConfigData* pData,
}
else
{
- // Leerzeilen werden nur gezaehlt und beim Erzeugen des
- // naechsten Keys angehaengt, da wir Leerzeilen am Ende
- // einer Gruppe auch nach hinzufuegen von neuen Keys nur
- // am Ende der Gruppe wieder speichern wollen
+ // Spaces are counted and appended only after key generation,
+ // as we want to store spaces even after adding new keys
if ( pGroup )
pGroup->mnEmptyLines++;
}
@@ -396,12 +392,11 @@ static sal_uInt8* ImplGetConfigBuffer( const ImplConfigData* pData, sal_uIntPtr&
nLineEndLen = 2;
}
- // Buffergroesse ermitteln
nBufLen = 0;
pGroup = pData->mpFirstGroup;
while ( pGroup )
{
- // Leere Gruppen werden nicht geschrieben
+ // Don't write empty groups
if ( pGroup->mpFirstKey )
{
nBufLen += pGroup->maGroupName.getLength() + nLineEndLen + 2;
@@ -417,7 +412,7 @@ static sal_uInt8* ImplGetConfigBuffer( const ImplConfigData* pData, sal_uIntPtr&
pKey = pKey->mpNext;
}
- // Leerzeile nach jeder Gruppe auch wieder speichern
+ // Write empty lines after each group
if ( !pGroup->mnEmptyLines )
pGroup->mnEmptyLines = 1;
nBufLen += nLineEndLen * pGroup->mnEmptyLines;
@@ -426,7 +421,7 @@ static sal_uInt8* ImplGetConfigBuffer( const ImplConfigData* pData, sal_uIntPtr&
pGroup = pGroup->mpNext;
}
- // Laenge dem Aufrufer mitteilen
+ // Output buffer length
rLen = nBufLen;
if ( !nBufLen )
{
@@ -442,17 +437,17 @@ static sal_uInt8* ImplGetConfigBuffer( const ImplConfigData* pData, sal_uIntPtr&
return 0;
}
- // Schreibbuffer anlegen (wird vom Aufrufer zerstoert)
+ // Allocate new write buffer (caller frees it)
pWriteBuf = new sal_uInt8[nBufLen];
if ( !pWriteBuf )
return 0;
- // Buffer fuellen
+ // fill buffer
pBuf = pWriteBuf;
pGroup = pData->mpFirstGroup;
while ( pGroup )
{
- // Leere Gruppen werden nicht geschrieben
+ // Don't write empty groups
if ( pGroup->mpFirstKey )
{
*pBuf = '['; pBuf++;
@@ -499,7 +494,7 @@ static sal_uInt8* ImplGetConfigBuffer( const ImplConfigData* pData, sal_uIntPtr&
pKey = pKey->mpNext;
}
- // Leerzeile nach jeder Gruppe auch wieder speichern
+ // Store empty line after each group
sal_uInt16 nEmptyLines = pGroup->mnEmptyLines;
while ( nEmptyLines )
{
@@ -526,7 +521,7 @@ static void ImplReadConfig( ImplConfigData* pData )
sal_Bool bIsUTF8BOM =sal_False;
sal_uInt8* pBuf = ImplSysReadConfig( pData->maFileName, nRead, bRead, bIsUTF8BOM, nTimeStamp );
- // Aus dem Buffer die Config-Verwaltungsliste aufbauen
+ // Read config list from buffer
if ( pBuf )
{
ImplMakeConfigList( pData, pBuf, nRead );
@@ -552,7 +547,7 @@ static void ImplWriteConfig( ImplConfigData* pData )
}
#endif
- // Aus der Config-Liste einen Buffer zusammenbauen
+ // Read config list from buffer
sal_uIntPtr nBufLen;
sal_uInt8* pBuf = ImplGetConfigBuffer( pData, nBufLen );
if ( pBuf )
@@ -575,7 +570,7 @@ static void ImplDeleteConfigData( ImplConfigData* pData )
{
pTempGroup = pGroup->mpNext;
- // Alle Keys loeschen
+ // remove all keys
pKey = pGroup->mpFirstKey;
while ( pKey )
{
@@ -584,7 +579,7 @@ static void ImplDeleteConfigData( ImplConfigData* pData )
pKey = pTempKey;
}
- // Gruppe loeschen und weiterschalten
+ // remove group and continue
delete pGroup;
pGroup = pTempGroup;
}
@@ -617,7 +612,7 @@ static void ImplFreeConfigData( ImplConfigData* pDelData )
sal_Bool Config::ImplUpdateConfig() const
{
- // Wenn sich TimeStamp unterscheidet, dann Datei neu einlesen
+ // Re-read file if timestamp differs
if ( mpData->mnTimeStamp != ImplSysGetConfigTimeStamp( maFileName ) )
{
ImplDeleteConfigData( mpData );
@@ -644,7 +639,7 @@ ImplGroupData* Config::ImplGetGroup() const
pGroup = pGroup->mpNext;
}
- // Falls Gruppe noch nicht existiert, dann dazufuegen
+ // Add group if not exists
if ( !pGroup )
{
pGroup = new ImplGroupData;
@@ -657,9 +652,7 @@ ImplGroupData* Config::ImplGetGroup() const
mpData->mpFirstGroup = pGroup;
}
- // Gruppenname immer uebernehmen, da er auch in dieser Form
- // geschrieben werden soll. Ausserdem die Cache-Members der
- // Config-Klasse updaten
+ // Always inherit group names and upate cache members
pGroup->maGroupName = maGroupName;
((Config*)this)->mnDataUpdateId = mpData->mnDataUpdateId;
((Config*)this)->mpActGroup = pGroup;
@@ -670,7 +663,7 @@ ImplGroupData* Config::ImplGetGroup() const
Config::Config( const rtl::OUString& rFileName )
{
- // Daten initialisieren und einlesen
+ // Initialize config data
maFileName = toUncPath( rFileName );
mpData = ImplGetConfigData( maFileName );
mpActGroup = NULL;
@@ -699,8 +692,7 @@ Config::~Config()
void Config::SetGroup(const rtl::OString& rGroup)
{
- // Wenn neue Gruppe gesetzt wird, muss beim naechsten mal die
- // Gruppe neu ermittelt werden
+ // If group is to be reset, it needs to be updated on next call
if ( maGroupName != rGroup )
{
maGroupName = rGroup;
@@ -710,7 +702,7 @@ void Config::SetGroup(const rtl::OString& rGroup)
void Config::DeleteGroup(const rtl::OString& rGroup)
{
- // Config-Daten evt. updaten
+ // Update config data if necessary
if ( !mnLockCount || !mpData->mbRead )
{
ImplUpdateConfig();
@@ -730,7 +722,7 @@ void Config::DeleteGroup(const rtl::OString& rGroup)
if ( pGroup )
{
- // Alle Keys loeschen
+ // Remove all keys
ImplKeyData* pTempKey;
ImplKeyData* pKey = pGroup->mpFirstKey;
while ( pKey )
@@ -740,14 +732,14 @@ void Config::DeleteGroup(const rtl::OString& rGroup)
pKey = pTempKey;
}
- // Gruppe weiterschalten und loeschen
+ // Rewire pointers and remove group
if ( pPrevGroup )
pPrevGroup->mpNext = pGroup->mpNext;
else
mpData->mpFirstGroup = pGroup->mpNext;
delete pGroup;
- // Config-Datei neu schreiben
+ // Rewrite config data
if ( !mnLockCount && mbPersistence )
ImplWriteConfig( mpData );
else
@@ -755,7 +747,6 @@ void Config::DeleteGroup(const rtl::OString& rGroup)
mpData->mbModified = sal_True;
}
- // Gruppen auf ungluetig setzen
mnDataUpdateId = mpData->mnDataUpdateId;
mpData->mnDataUpdateId++;
}
@@ -763,7 +754,7 @@ void Config::DeleteGroup(const rtl::OString& rGroup)
rtl::OString Config::GetGroupName(sal_uInt16 nGroup) const
{
- // Config-Daten evt. updaten
+ // Update config data if necessary
if ( !mnLockCount )
ImplUpdateConfig();
@@ -787,7 +778,7 @@ rtl::OString Config::GetGroupName(sal_uInt16 nGroup) const
sal_uInt16 Config::GetGroupCount() const
{
- // Config-Daten evt. updaten
+ // Update config data if necessary
if ( !mnLockCount )
ImplUpdateConfig();
@@ -804,7 +795,7 @@ sal_uInt16 Config::GetGroupCount() const
sal_Bool Config::HasGroup(const rtl::OString& rGroup) const
{
- // Config-Daten evt. updaten
+ // Update config data if necessary
if ( !mnLockCount )
ImplUpdateConfig();
@@ -850,11 +841,11 @@ rtl::OString Config::ReadKey(const rtl::OString& rKey, const rtl::OString& rDefa
OSL_TRACE("%s", aTraceStr.getStr());
#endif
- // Config-Daten evt. updaten
+ // Update config data if necessary
if ( !mnLockCount )
ImplUpdateConfig();
- // Key suchen und Value zurueckgeben
+ // Search key, return value if found
ImplGroupData* pGroup = ImplGetGroup();
if ( pGroup )
{
@@ -885,14 +876,14 @@ void Config::WriteKey(const rtl::OString& rKey, const rtl::OString& rStr)
OSL_TRACE("%s", aTraceStr.getStr());
#endif
- // Config-Daten evt. updaten
+ // Update config data if necessary
if ( !mnLockCount || !mpData->mbRead )
{
ImplUpdateConfig();
mpData->mbRead = sal_True;
}
- // Key suchen und Value setzen
+ // Search key and update value if found
ImplGroupData* pGroup = ImplGetGroup();
if ( pGroup )
{
@@ -939,14 +930,14 @@ void Config::WriteKey(const rtl::OString& rKey, const rtl::OString& rStr)
void Config::DeleteKey(const rtl::OString& rKey)
{
- // Config-Daten evt. updaten
+ // Update config data if necessary
if ( !mnLockCount || !mpData->mbRead )
{
ImplUpdateConfig();
mpData->mbRead = sal_True;
}
- // Key suchen und Value setzen
+ // Search key and update value
ImplGroupData* pGroup = ImplGetGroup();
if ( pGroup )
{
@@ -963,14 +954,14 @@ void Config::DeleteKey(const rtl::OString& rKey)
if ( pKey )
{
- // Gruppe weiterschalten und loeschen
+ // Rewire group pointers and delete
if ( pPrevKey )
pPrevKey->mpNext = pKey->mpNext;
else
pGroup->mpFirstKey = pKey->mpNext;
delete pKey;
- // Config-Datei neu schreiben
+ // Rewrite config file
if ( !mnLockCount && mbPersistence )
ImplWriteConfig( mpData );
else
@@ -993,11 +984,11 @@ sal_uInt16 Config::GetKeyCount() const
OSL_TRACE("%s", aTraceStr.getStr());
#endif
- // Config-Daten evt. updaten
+ // Update config data if necessary
if ( !mnLockCount )
ImplUpdateConfig();
- // Key suchen und Value zurueckgeben
+ // Search key and update value
sal_uInt16 nCount = 0;
ImplGroupData* pGroup = ImplGetGroup();
if ( pGroup )
@@ -1029,7 +1020,7 @@ rtl::OString Config::GetKeyName(sal_uInt16 nKey) const
OSL_TRACE("%s", aTraceStr.getStr());
#endif
- // Key suchen und Name zurueckgeben
+ // search key and return name if found
ImplGroupData* pGroup = ImplGetGroup();
if ( pGroup )
{
@@ -1064,7 +1055,7 @@ rtl::OString Config::ReadKey(sal_uInt16 nKey) const
OSL_TRACE("%s", aTraceStr.getStr());
#endif
- // Key suchen und Value zurueckgeben
+ // Search key and return value if found
ImplGroupData* pGroup = ImplGetGroup();
if ( pGroup )
{
diff --git a/tools/source/generic/fract.cxx b/tools/source/generic/fract.cxx
index a9a20de..5c805dc 100644
--- a/tools/source/generic/fract.cxx
+++ b/tools/source/generic/fract.cxx
@@ -23,20 +23,16 @@
#include <tools/stream.hxx>
#include <tools/bigint.hxx>
-// Beschreibung: Berechnet den groessten gemeinsamen Teiler von
-// nVal1 und nVal2
-// Parameter long nVal1, long nVal2
-
-// Die Funktion GetGGT berechnet den groessten gemeinsamen Teiler der
-// beiden als Parameter uebergebenen Werte nVal1 und nVal2 nach dem
-// Algorithmus von Euklid. Hat einer der beiden Parameter den Wert 0 oder
-// 1, so wird als Ergebnis der Wert 1 zur�ckgegeben. Da der Algorithmus
-// nur mit positiven Zahlen arbeitet, werden die beiden Parameter
-// entsprechend umgewandelt.
-// Zum Algorithmus: die beiden Parameter werden solange ducheinander
-// geteilt, bis sie beide gleich sind oder bis bei der Division
-// kein Rest bleibt. Der kleinere der beiden Werte ist dann der
-// GGT.
+/** Compute greates common divisor using Euclidian algorithm
+
+ As the algorithm works on positive values only, the absolute value
+ of each parameter is used.
+
+ @param nVal1
+ @param nVal2
+
+ @note: If one parameter is {0,1}, GetGGT returns 1.
+*/
static long GetGGT( long nVal1, long nVal2 )
{
nVal1 = Abs( nVal1 );
@@ -101,11 +97,10 @@ static void Reduce( BigInt &rVal1, BigInt &rVal2 )
rVal2 /= nB;
}
-// Zur Initialisierung eines Bruches wird nNum dem Zaehler und nDen dem
-// Nenner zugewiesen. Da negative Werte des Nenners einen Bruch als
-// ungueltig kennzeichnen, wird bei der Eingabe eines negativen Nenners
-// sowohl das Vorzeichen des Nenners und des Zaehlers invertiert um wieder
-// einen gueltigen Wert fuer den Bruch zu erhalten.
+// Initialized by setting nNum as nominator and nDen as denominator
+// Negative values in the denominator are invalid and cause the
+// inversion of both nominator and denominator signs
+// in order to return the correct value.
Fraction::Fraction( long nNum, long nDen )
{
nNumerator = nNum;
@@ -116,17 +111,15 @@ Fraction::Fraction( long nNum, long nDen )
nNumerator = -nNumerator;
}
- // Kuerzen ueber Groesste Gemeinsame Teiler
+ // Reduce through GCD
long n = GetGGT( nNumerator, nDenominator );
nNumerator /= n;
nDenominator /= n;
}
-// Wenn der Wert von dVal groesser ist als LONG_MAX, dann wird der Bruch
-// auf den Wert ungueltig gesetzt, ansonsten werden dVal und der Nenner
-// solange mit 10 multipliziert, bis entweder der Zaehler oder der Nenner
-// groesser als LONG_MAX / 10 ist. Zum Schluss wird der so entstandene Bruch
-// gekuerzt.
+// If dVal > LONG_MAX, the fraction is set as invalid.
+// Otherwise, dVal and denominator are multiplied with 10, until one of them
+// is larger than (LONG_MAX / 10) and the fraction is reduced with GCD
Fraction::Fraction( double dVal )
{
long nDen = 1;
@@ -147,7 +140,7 @@ Fraction::Fraction( double dVal )
nNumerator = (long)dVal;
nDenominator = nDen;
- // Kuerzen ueber Groesste Gemeinsame Teiler
+ // Reduce through GCD
long n = GetGGT( nNumerator, nDenominator );
nNumerator /= n;
nDenominator /= n;
@@ -161,15 +154,12 @@ Fraction::operator double() const
return (double)0;
}
-// Zunaechst werden die beiden Parameter auf ihre Gueltigkeit ueberprueft.
-// Ist einer der Parameter ungueltig, dann ist auch des Ergebnis
-// ungueltig. Zur Addition werden die beiden Brueche erst durch
-// Erweiterung mit den Nenner des jeweils anderen Bruches auf einen
-// gemeinsamen Nenner gebracht. Anschliessend werden die beiden Zaehler
-// addiert und das Ergebnis gekuerzt (durch Division von Zaehler und
-// Nenner mit nGGT). Innerhalb der Funktion wird mit dem Datentyp SLong
-// gerechnet, um einen Moeglichen Ueberlauf erkennen zu koennen. Bei
-// einem Ueberlauf wird das Ergebnis auf den Wert ungueltig gesetzt.
+// This methods first validates both values.
+// If one of the arguments is invalid, the whole operation is invalid.
+// For addition both fractions are extended to match the denominator,
+// then nominators are added and reduced (through GCD).
+// Internal datatype for computation is SLong to detect overflows,
+// which cause the operation to be marked as invalid
Fraction& Fraction::operator += ( const Fraction& rVal )
{
if ( !rVal.IsValid() )
@@ -206,15 +196,12 @@ Fraction& Fraction::operator += ( const Fraction& rVal )
return *this;
}
-// Zunaechst werden die beiden Parameter auf ihre Gueltigkeit ueberprueft.
-// Ist einer der Parameter ungueltig, dann ist auch des Ergebnis
-// ungueltig. Zur Subtraktion werden die beiden Brueche erst durch
-// Erweiterung mit den Nenner des jeweils anderen Bruches auf einen
-// gemeinsamen Nenner gebracht. Anschliessend werden die beiden Zaehler
-// subtrahiert und das Ergebnis gekuerzt (durch Division von Zaehler und
-// Nenner mit nGGT). Innerhalb der Funktion wird mit dem Datentyp BigInt
-// gerechnet, um einen Moeglichen Ueberlauf erkennen zu koennen. Bei
-// einem Ueberlauf wird das Ergebnis auf den Wert ungueltig gesetzt.
+// This methods first validates both values.
+// If one of the arguments is invalid, the whole operation is invalid.
+// For substraction, both fractions are extended to match the denominator,
+// then nominators are substracted and reduced (through GCD).
+// Internal datatype for computation is SLong to detect overflows,
+// which cause the operation to be marked as invalid
Fraction& Fraction::operator -= ( const Fraction& rVal )
{
if ( !rVal.IsValid() )
@@ -251,16 +238,12 @@ Fraction& Fraction::operator -= ( const Fraction& rVal )
return *this;
}
-// Zunaechst werden die beiden Parameter auf ihre Gueltigkeit ueberprueft.
-// Ist einer der Parameter ungueltig, dann ist auch des Ergebnis
-// ungueltig. Zur Multiplikation werden jeweils die beiden Zaehler und
-// Nenner miteinander multipliziert. Um Ueberlaufe zu vermeiden, werden
-// vorher jeweils der GGT zwischen dem Zaehler des einen und dem Nenner
-// des anderen Bruches bestimmt und bei der Multiplikation Zaehler und
-// Nenner durch die entsprechenden Werte geteilt.
-// Innerhalb der Funktion wird mit dem Datentyp BigInt gerechnet, um
-// einen Moeglichen Ueberlauf erkennen zu koennen. Bei einem Ueberlauf
-// wird das Ergebnis auf den Wert ungueltig gesetzt.
+// This methods first validates both values.
+// If one of the arguments is invalid, the whole operation is invalid.
+// For mutliplication, nominator and denominators are first reduced
+// (through GCD), and then multiplied.
+// Internal datatype for computation is BigInt to detect overflows,
+// which cause the operation to be marked as invalid
Fraction& Fraction::operator *= ( const Fraction& rVal )
{
if ( !rVal.IsValid() )
@@ -292,19 +275,12 @@ Fraction& Fraction::operator *= ( const Fraction& rVal )
return *this;
}
-// Zunaechst werden die beiden Parameter auf ihre Gueltigkeit ueberprueft.
-// Ist einer der Parameter ungueltig, dann ist auch des Ergebnis
-// ungueltig.
-// Um den Bruch a durch b zu teilen, wird a mit dem Kehrwert von b
-// multipliziert. Analog zu Multiplikation wird jezt jeweils der Zaehler
-// des einen Bruches mit dem Nenner des anderen multipliziert.
-// Um Ueberlaufe zu vermeiden, werden vorher jeweils der GGT zwischen den
-// beiden Zaehlern und den beiden Nennern bestimmt und bei der
-// Multiplikation Zaehler und Nenner durch die entsprechenden Werte
-// geteilt.
-// Innerhalb der Funktion wird mit dem Datentyp BigInt gerechnet, um
-// einen Moeglichen Ueberlauf erkennen zu koennen. Bei einem Ueberlauf
-// wird das Ergebnis auf den Wert ungueltig gesetzt.
+// This methods first validates both values.
+// If one of the arguments is invalid, the whole operation is invalid.
+// For dividing a/b, we multiply a with the inverse of b.
+// To avoid overflows, we first reduce both fractions with GCD.
+// Internal datatype for computation is BigInt to detect overflows,
+// which cause the operation to be marked as invalid
Fraction& Fraction::operator /= ( const Fraction& rVal )
{
if ( !rVal.IsValid() )
@@ -472,12 +448,9 @@ bool operator == ( const Fraction& rVal1, const Fraction& rVal2 )
&& rVal1.nDenominator == rVal2.nDenominator;
}
-// Beide Operanden werden zunaechst auf ihre Gueltigkeit ueberprueft und
-// anschliessend zur Sicherheit noch einmal gekuerzt. Um die Brueche
-// (a/b) und (c/d) zu vergleichen, werden sie zunaechst auf einen
-// gemeinsamen Nenner gebracht (b*d), um dann die beiden Zaehler (a*d)
-// und (c*b) zu vergleichen. Das Ergebnis dieses Vergleichs wird
-// zurueckgegeben.
+// This methods first validates and reduces both values.
+// To compare (a/b) with (c/d), extend denominators (b*d), then return
+// the result of comparing the nominators (a < c)
bool operator < ( const Fraction& rVal1, const Fraction& rVal2 )
{
if ( !rVal1.IsValid() || !rVal2.IsValid() )
@@ -491,12 +464,9 @@ bool operator < ( const Fraction& rVal1, const Fraction& rVal2 )
return nN < nD;
}
-// Beide Operanden werden zunaechst auf ihre Gueltigkeit ueberprueft und
-// anschliessend zur Sicherheit noch einmal gekuerzt. Um die Brueche
-// (a/b) und (c/d) zu vergleichen, werden sie zunaechst auf einen
-// gemeinsamen Nenner gebracht (b*d), um dann die beiden Zaehler (a*d)
-// und (c*b) zu vergleichen. Das Ergebnis dieses Vergleichs wird
-// zurueckgegeben.
+// This methods first validates and reduces both values.
+// To compare (a/b) with (c/d), extend denominators (b*d), then return
+// the result of comparing nominators (a > c)
bool operator > ( const Fraction& rVal1, const Fraction& rVal2 )
{
if ( !rVal1.IsValid() || !rVal2.IsValid() )
diff --git a/tools/source/generic/gen.cxx b/tools/source/generic/gen.cxx
index 0c1702e..e4a03a3 100644
--- a/tools/source/generic/gen.cxx
+++ b/tools/source/generic/gen.cxx
@@ -89,18 +89,18 @@ Rectangle& Rectangle::Intersection( const Rectangle& rRect )
return *this;
}
- // nicht mit umgedrehten Rechtecken arbeiten
+ // Justify rectangle
Rectangle aTmpRect( rRect );
Justify();
aTmpRect.Justify();
- // Schnitt bilden
+ // Perform intersection
nLeft = Max( nLeft, aTmpRect.nLeft );
nRight = Min( nRight, aTmpRect.nRight );
nTop = Max( nTop, aTmpRect.nTop );
nBottom= Min( nBottom, aTmpRect.nBottom );
- // Feststellen ob Schnitt leer
+ // Determine if intersection is empty
if ( nRight < nLeft || nBottom < nTop )
*this = Rectangle();
@@ -111,7 +111,6 @@ void Rectangle::Justify()
{
long nHelp;
- // Abfrage, ob Right kleiner Left
if ( (nRight < nLeft) && (nRight != RECT_EMPTY) )
{
nHelp = nLeft;
@@ -119,7 +118,6 @@ void Rectangle::Justify()
nRight = nHelp;
}
- // Abfrage, ob Bottom kleiner Top
if ( (nBottom < nTop) && (nBottom != RECT_EMPTY) )
{
nHelp = nBottom;
@@ -167,7 +165,7 @@ sal_Bool Rectangle::IsInside( const Rectangle& rRect ) const
sal_Bool Rectangle::IsOver( const Rectangle& rRect ) const
{
- // Wenn sie sich nicht schneiden, ueberlappen sie auch nicht
+ // If there's no intersection, they don't overlap
return !GetIntersection( rRect ).IsEmpty();
}
diff --git a/tools/source/generic/poly.cxx b/tools/source/generic/poly.cxx
index cf0a017..b15c97c 100644
--- a/tools/source/generic/poly.cxx
+++ b/tools/source/generic/poly.cxx
@@ -218,7 +218,7 @@ void ImplPolygon::ImplSplit( sal_uInt16 nPos, sal_uInt16 nSpace, ImplPolygon* pI
if( nPos >= mnPoints )
{
- // Hinten anhaengen
+ // Append at the back
nPos = mnPoints;
ImplSetSize( nNewSize, sal_True );
@@ -232,7 +232,6 @@ void ImplPolygon::ImplSplit( sal_uInt16 nPos, sal_uInt16 nSpace, ImplPolygon* pI
}
else
{
- // PointArray ist in diesem Zweig immer vorhanden
const sal_uInt16 nSecPos = nPos + nSpace;
const sal_uInt16 nRest = mnPoints - nPos;
@@ -248,7 +247,7 @@ void ImplPolygon::ImplSplit( sal_uInt16 nPos, sal_uInt16 nSpace, ImplPolygon* pI
memcpy( pNewAry + nSecPos, mpPointAry + nPos, nRest * sizeof( Point ) );
delete[] (char*) mpPointAry;
- // ggf. FlagArray beruecksichtigen
+ // consider FlagArray
if( mpFlagAry )
{
sal_uInt8* pNewFlagAry = new sal_uInt8[ nNewSize ];
@@ -281,7 +280,7 @@ void ImplPolygon::ImplCreateFlagArray()
inline void Polygon::ImplMakeUnique()
{
- // Falls noch andere Referenzen bestehen, dann kopieren
+ // copy references if any exist
if ( mpImplPolygon->mnRefCount != 1 )
{
if ( mpImplPolygon->mnRefCount )
@@ -413,7 +412,7 @@ Polygon::Polygon( const Point& rCenter, long nRadX, long nRadY, sal_uInt16 nPoin
if( nRadX && nRadY )
{
- // Default berechnen (abhaengig von Groesse)
+ // Compute default (depends on size)
if( !nPoints )
{
nPoints = (sal_uInt16) ( F_PI * ( 1.5 * ( nRadX + nRadY ) -
@@ -425,7 +424,7 @@ Polygon::Polygon( const Point& rCenter, long nRadX, long nRadY, sal_uInt16 nPoin
nPoints >>= 1;
}
- // Anzahl der Punkte auf durch 4 teilbare Zahl aufrunden
+ // Ceil number of points until divisible by four
mpImplPolygon = new ImplPolygon( nPoints = (nPoints + 3) & ~3 );
Point* pPt;
@@ -481,7 +480,7 @@ Polygon::Polygon( const Rectangle& rBound, const Point& rStart, const Point& rEn
if( ( nRadX > 32 ) && ( nRadY > 32 ) && ( nRadX + nRadY ) < 8192 )
nPoints >>= 1;
- // Winkel berechnen
+ // compute threshold
const double fRadX = nRadX;
const double fRadY = nRadY;
const double fCenterX = aCenter.X();
@@ -499,9 +498,7 @@ Polygon::Polygon( const Rectangle& rBound, const Point& rStart, const Point& rEn
if ( bFullCircle )
fDiff = F_2PI;
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list