[PATCH] 39468 Translate German comments
Tom Thorogood
tom at tomthorogood.com
Sat Feb 25 09:28:41 PST 2012
Hello,
git diff attached for comphelper directory. Sent this in last week but
looks like the message got flagged somehow.
This is my first submission; please let me know if I've done something
incorrectly!
-Tom Thorogood
(do you need GPL stuff for comments? If so: I'm submitting this under
the Gnu Public License--do whatever you want with it forever and ever).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20120225/8c9fce1b/attachment.htm>
-------------- next part --------------
diff --git a/comphelper/inc/comphelper/oslfile2streamwrap.hxx b/comphelper/inc/comphelper/oslfile2streamwrap.hxx
index 6199ea5..754be72 100644
--- a/comphelper/inc/comphelper/oslfile2streamwrap.hxx
+++ b/comphelper/inc/comphelper/oslfile2streamwrap.hxx
@@ -42,7 +42,7 @@ namespace comphelper
//==================================================================
// FmUnoIOStream,
-// strem to read and write from data read from a file
+// stream zum schreiben un lesen von Daten, basieren auf File
//==================================================================
class COMPHELPER_DLLPUBLIC OSLInputStreamWrapper : public ::cppu::WeakImplHelper1<stario::XInputStream>
{
@@ -63,7 +63,7 @@ public:
//==================================================================
// FmUnoOutStream,
-// sync data for the files
+// Datensenke fuer Files
//==================================================================
class OSLOutputStreamWrapper : public ::cppu::WeakImplHelper1<stario::XOutputStream>
{
diff --git a/comphelper/source/container/container.cxx b/comphelper/source/container/container.cxx
index 39ab7ba..7bf2f8f 100644
--- a/comphelper/source/container/container.cxx
+++ b/comphelper/source/container/container.cxx
@@ -51,9 +51,9 @@ IndexAccessIterator::~IndexAccessIterator() {}
::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> IndexAccessIterator::Next()
{
sal_Bool bCheckingStartingPoint = !m_xCurrentObject.is();
- // Is the current node the starting point ?
+ // ist die aktuelle Node der Anfangspunkt ?
sal_Bool bAlreadyCheckedCurrent = m_xCurrentObject.is();
- // Have I already tested the current node through ShouldHandleElement ?
+ // habe ich die aktuelle Node schon mal mittels ShouldHandleElement testen ?
if (!m_xCurrentObject.is())
m_xCurrentObject = m_xStartingPoint;
@@ -62,7 +62,7 @@ IndexAccessIterator::~IndexAccessIterator() {}
sal_Bool bFoundSomething = sal_False;
while (!bFoundSomething && bHasMoreToSearch)
{
- // Priming loop
+ // pre-order-traversierung
if (!bAlreadyCheckedCurrent && ShouldHandleElement(xSearchLoop))
{
m_xCurrentObject = xSearchLoop;
@@ -70,10 +70,10 @@ IndexAccessIterator::~IndexAccessIterator() {}
}
else
{
- // First, see if there's something below
+ // zuerst absteigen, wenn moeglich
::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess> xContainerAccess(xSearchLoop, ::com::sun::star::uno::UNO_QUERY);
if (xContainerAccess.is() && xContainerAccess->getCount() && ShouldStepInto(xContainerAccess))
- {
+ { // zum ersten Child
::com::sun::star::uno::Any aElement(xContainerAccess->getByIndex(0));
xSearchLoop = *(::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>*)aElement.getValue();
bCheckingStartingPoint = sal_False;
@@ -82,9 +82,9 @@ IndexAccessIterator::~IndexAccessIterator() {}
}
else
{
- // Otherwise, look above and to the right, if possible
+ // dann nach oben und nach rechts, wenn moeglich
while (m_arrChildIndizies.size() > 0)
- { // If the list isn't empty and there's nothing above
+ { // (mein Stack ist nich leer, also kann ich noch nach oben gehen)
::com::sun::star::uno::Reference< ::com::sun::star::container::XChild> xChild(xSearchLoop, ::com::sun::star::uno::UNO_QUERY);
OSL_ENSURE(xChild.is(), "IndexAccessIterator::Next : a content has no approriate interface !");
@@ -92,35 +92,36 @@ IndexAccessIterator::~IndexAccessIterator() {}
xContainerAccess = ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>(xParent, ::com::sun::star::uno::UNO_QUERY);
OSL_ENSURE(xContainerAccess.is(), "IndexAccessIterator::Next : a content has an invalid parent !");
- // Update the SearchLoop index
+ // den Index, den SearchLoop in diesem Parent hatte, von meinem 'Stack'
sal_Int32 nOldSearchChildIndex = m_arrChildIndizies[m_arrChildIndizies.size() - 1];
m_arrChildIndizies.pop_back();
if (nOldSearchChildIndex < xContainerAccess->getCount() - 1)
- { // Search to the right in this row
+ { // auf dieser Ebene geht es noch nach rechts
++nOldSearchChildIndex;
- // also the next child
+ // also das naechste Child
::com::sun::star::uno::Any aElement(xContainerAccess->getByIndex(nOldSearchChildIndex));
xSearchLoop = *(::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>*) aElement.getValue();
bCheckingStartingPoint = sal_False;
- // and update its position in the list
+ // und dessen Position auf den 'Stack'
m_arrChildIndizies.push_back((sal_Int32)nOldSearchChildIndex);
break;
}
- // Finally, if there is nothing in this row to the right, we'll move on to the next row
+ // hierher komme ich, wenn es auf der aktuellen Ebene nicht nach rechts geht, dann mache ich eine darueber weiter
xSearchLoop = xParent;
bCheckingStartingPoint = sal_False;
}
if (m_arrChildIndizies.empty() && !bCheckingStartingPoint)
- { // This the case if if I have no neighbors to the right in the original serach loop
+ { // das ist genau dann der Fall, wenn ich keinen rechten Nachbarn fuer irgendeinen der direkten Vorfahren des
+ // urspruenglichen xSearchLoop gefunden habe
bHasMoreToSearch = sal_False;
}
}
if (bHasMoreToSearch)
- { // If there is still a node in the tree to which can be tested.
+ { // ich habe in xSearchLoop jetzt ein Interface eines 'Knotens' meines 'Baumes', den ich noch abtesten kann
if (ShouldHandleElement(xSearchLoop))
{
m_xCurrentObject = xSearchLoop;
@@ -128,7 +129,7 @@ IndexAccessIterator::~IndexAccessIterator() {}
}
else
if (bCheckingStartingPoint)
- // Nothing more to do
+ // ich bin noch am Anfang, konnte nicht absteigen, und habe an diesem Anfang nix gefunden -> nix mehr zu tun
bHasMoreToSearch = sal_False;
bAlreadyCheckedCurrent = sal_True;
}
diff --git a/comphelper/source/container/enumhelper.cxx b/comphelper/source/container/enumhelper.cxx
index 2549f56..3c6afd5 100644
--- a/comphelper/source/container/enumhelper.cxx
+++ b/comphelper/source/container/enumhelper.cxx
@@ -97,7 +97,7 @@ staruno::Any SAL_CALL OEnumerationByName::nextElement( )
m_xAccess.clear();
}
- if (!aRes.hasValue()) //There are no more elements
+ if (!aRes.hasValue()) // es gibt kein Element mehr
throw starcontainer::NoSuchElementException();
return aRes;
@@ -201,7 +201,7 @@ staruno::Any SAL_CALL OEnumerationByIndex::nextElement( )
}
}
- if (!aRes.hasValue()) // there are no more elements
+ if (!aRes.hasValue()) // es gibt kein Element mehr
throw starcontainer::NoSuchElementException();
return aRes;
}
diff --git a/comphelper/source/eventattachermgr/eventattachermgr.cxx b/comphelper/source/eventattachermgr/eventattachermgr.cxx
index c39f757..9c119a1 100644
--- a/comphelper/source/eventattachermgr/eventattachermgr.cxx
+++ b/comphelper/source/eventattachermgr/eventattachermgr.cxx
@@ -98,9 +98,9 @@ class ImplEventAttacherManager
friend class AttacherAllListener_Impl;
::std::deque< AttacherIndex_Impl > aIndex;
Mutex aLock;
- // Container for the ScriptListener
+ // Container fuer die ScriptListener
OInterfaceContainerHelper aScriptListeners;
- // Instance of EventAttcher
+ // EventAttacher-Instanz
Reference< XEventAttacher2 > xAttacher;
Reference< XMultiServiceFactory > mxSMgr;
Reference< XIdlReflection > mxCoreReflection;
@@ -112,7 +112,7 @@ public:
const Reference< XMultiServiceFactory > rSMgr );
~ImplEventAttacherManager();
- // Methods from XEventAttacherManager
+ // Methoden von XEventAttacherManager
virtual void SAL_CALL registerScriptEvent(sal_Int32 Index, const ScriptEventDescriptor& ScriptEvent)
throw( IllegalArgumentException, RuntimeException );
virtual void SAL_CALL registerScriptEvents(sal_Int32 Index, const Sequence< ScriptEventDescriptor >& ScriptEvents)
@@ -136,7 +136,7 @@ public:
virtual void SAL_CALL removeScriptListener(const Reference< XScriptListener >& Listener)
throw( IllegalArgumentException, RuntimeException );
- // Methods from XPersistObject
+ // Methoden von XPersistObject
virtual OUString SAL_CALL getServiceName(void) throw( RuntimeException );
virtual void SAL_CALL write(const Reference< XObjectOutputStream >& OutStream) throw( IOException, RuntimeException );
virtual void SAL_CALL read(const Reference< XObjectInputStream >& InStream) throw( IOException, RuntimeException );
@@ -157,9 +157,8 @@ private:
//========================================================================
//========================================================================
-
-// Implementation of an EventAttacher-relation AllListeners, which
-// forwards only individual events of a general AllListener instance
+// Implementation eines EventAttacher-bezogenen AllListeners, der
+// nur einzelne Events an einen allgemeinen AllListener weiterleitet
class AttacherAllListener_Impl : public WeakImplHelper1< XAllListener >
{
ImplEventAttacherManager* mpManager;
@@ -174,11 +173,11 @@ public:
AttacherAllListener_Impl( ImplEventAttacherManager* pManager_, const OUString &rScriptType_,
const OUString & rScriptCode_ );
- // Methods of XAllListener
+ // Methoden von XAllListener
virtual void SAL_CALL firing(const AllEventObject& Event) throw( RuntimeException );
virtual Any SAL_CALL approveFiring(const AllEventObject& Event) throw( InvocationTargetException, RuntimeException );
- // Methods of XEventListener
+ // Methoden von XEventListener
virtual void SAL_CALL disposing(const EventObject& Source) throw( RuntimeException );
};
@@ -199,7 +198,7 @@ AttacherAllListener_Impl::AttacherAllListener_Impl
//========================================================================
-// Methods from XAllListener
+// Methoden von XAllListener
void SAL_CALL AttacherAllListener_Impl::firing(const AllEventObject& Event)
throw( RuntimeException )
{
@@ -212,8 +211,7 @@ void SAL_CALL AttacherAllListener_Impl::firing(const AllEventObject& Event)
aScriptEvent.ScriptType = aScriptType;
aScriptEvent.ScriptCode = aScriptCode;
-
- // Iterate over all listeners and send events
+ // ueber alle Listener iterieren und Events senden
OInterfaceIteratorHelper aIt( mpManager->aScriptListeners );
while( aIt.hasMoreElements() )
((XScriptListener *)aIt.next())->firing( aScriptEvent );
@@ -280,7 +278,7 @@ Any SAL_CALL AttacherAllListener_Impl::approveFiring( const AllEventObject& Even
aScriptEvent.ScriptCode = aScriptCode;
Any aRet;
- // Iterate over ll listeners and send events
+ // ueber alle Listener iterieren und Events senden
OInterfaceIteratorHelper aIt( mpManager->aScriptListeners );
while( aIt.hasMoreElements() )
{
@@ -354,7 +352,7 @@ Any SAL_CALL AttacherAllListener_Impl::approveFiring( const AllEventObject& Even
}
//========================================================================
-// Methods from XEventListenever
+// Methoden von XEventListener
void SAL_CALL AttacherAllListener_Impl::disposing(const EventObject& )
throw( RuntimeException )
{
@@ -362,7 +360,7 @@ void SAL_CALL AttacherAllListener_Impl::disposing(const EventObject& )
}
-// Constructor methods fur EventAttacherManager
+// Create-Methode fuer EventAttacherManager
Reference< XEventAttacherManager > createEventAttacherManager( const Reference< XMultiServiceFactory > & rSMgr )
throw( Exception )
{
@@ -417,7 +415,7 @@ ImplEventAttacherManager::~ImplEventAttacherManager()
Reference< XIdlReflection > ImplEventAttacherManager::getReflection() throw( Exception )
{
Guard< Mutex > aGuard( aLock );
- // Is there already a service? If not, create one
+ // Haben wir den Service schon? Sonst anlegen
if( !mxCoreReflection.is() )
{
Reference< XInterface > xIFace( mxSMgr->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.reflection.CoreReflection" )) ) );
@@ -476,7 +474,7 @@ public:
}
//-----------------------------------------------------------------------------
-// Methods from XEventAttacherManager
+//*** Methoden von XEventAttacherManager ***
void SAL_CALL ImplEventAttacherManager::registerScriptEvent
(
sal_Int32 nIndex,
@@ -486,7 +484,7 @@ void SAL_CALL ImplEventAttacherManager::registerScriptEvent
{
Guard< Mutex > aGuard( aLock );
- // Examine the index and apply the array
+ // Index pruefen und Array anpassen
::std::deque<AttacherIndex_Impl>::iterator aIt = implCheckIndex( nIndex );
::std::deque< AttachedObject_Impl > aList = (*aIt).aObjList;
@@ -534,7 +532,7 @@ void SAL_CALL ImplEventAttacherManager::registerScriptEvents
{
Guard< Mutex > aGuard( aLock );
- // Examine the index and apply the array
+ // Index pruefen und Array anpassen
::std::deque<AttacherIndex_Impl>::iterator aIt = implCheckIndex( nIndex );
::std::deque< AttachedObject_Impl > aList = (*aIt).aObjList;
@@ -659,7 +657,7 @@ void SAL_CALL ImplEventAttacherManager::attach(sal_Int32 nIndex, const Reference
if( static_cast< ::std::deque< AttacherIndex_Impl >::size_type>(nIndex) >= aIndex.size() )
{
- // Read older files
+ // alte Dateien lesen
if( nVersion == 1 )
{
insertEntry( nIndex );
@@ -677,7 +675,6 @@ void SAL_CALL ImplEventAttacherManager::attach(sal_Int32 nIndex, const Reference
aTmp.aHelper = Helper;
aCurrentPosition->aObjList.push_back( aTmp );
- // ??? What is this comment for ?
//::std::deque< AttachedObject_Impl >::iterator aObjIt = (*aIt).aObjList.back();
AttachedObject_Impl & rCurObj = aCurrentPosition->aObjList.back();
rCurObj.aAttachedListenerSeq = Sequence< Reference< XEventListener > >( aCurrentPosition->aEventList.size() );
@@ -772,7 +769,7 @@ void SAL_CALL ImplEventAttacherManager::removeScriptListener(const Reference< XS
}
-// Methods of XPersistObject
+// Methoden von XPersistObject
OUString SAL_CALL ImplEventAttacherManager::getServiceName(void)
throw( RuntimeException )
{
@@ -783,26 +780,26 @@ void SAL_CALL ImplEventAttacherManager::write(const Reference< XObjectOutputStre
throw( IOException, RuntimeException )
{
Guard< Mutex > aGuard( aLock );
- // Don't run without XMarkableStream
+ // Ohne XMarkableStream laeuft nichts
Reference< XMarkableStream > xMarkStream( OutStream, UNO_QUERY );
if( !xMarkStream.is() )
return;
- // Print the version
+ // Version schreiben
OutStream->writeShort( 2 );
- // Mark the position for length
+ // Position fuer Laenge merken
sal_Int32 nObjLenMark = xMarkStream->createMark();
OutStream->writeLong( 0L );
OutStream->writeLong( aIndex.size() );
- // Print sequences
+ // Sequences schreiben
::std::deque<AttacherIndex_Impl>::iterator aIt = aIndex.begin();
::std::deque<AttacherIndex_Impl>::iterator aEnd = aIndex.end();
while( aIt != aEnd )
{
- // Print the length of the sequence and all descriptiors
+ // Laenge der Sequence und alle Descriptoren schreiben
OutStream->writeLong( (*aIt).aEventList.size() );
::std::deque< ScriptEventDescriptor >::iterator aEvtIt = (*aIt).aEventList.begin();
::std::deque< ScriptEventDescriptor >::iterator aEvtEnd = (*aIt).aEventList.end();
@@ -820,7 +817,7 @@ void SAL_CALL ImplEventAttacherManager::write(const Reference< XObjectOutputStre
++aIt;
}
- // The length is now known
+ // Die jetzt bekannte Laenge eintragen
sal_Int32 nObjLen = xMarkStream->offsetToMark( nObjLenMark ) -4;
xMarkStream->jumpToMark( nObjLenMark );
OutStream->writeLong( nObjLen );
@@ -832,31 +829,31 @@ void SAL_CALL ImplEventAttacherManager::read(const Reference< XObjectInputStream
throw( IOException, RuntimeException )
{
Guard< Mutex > aGuard( aLock );
- // Don't run without XMarkableStream
+ // Ohne XMarkableStream laeuft nichts
Reference< XMarkableStream > xMarkStream( InStream, UNO_QUERY );
if( !xMarkStream.is() )
return;
- // Read the version
+ // Version lesen
nVersion = InStream->readShort();
- // Next is the time since version 1
- // Must this be maintained in later versions?
+ // Zunaechst kommen die Daten gemaess Version 1,
+ // muss auch bei hoeheren Versionen beibehalten werden
sal_Int32 nLen = InStream->readLong();
- // Position for comparative purposes
+ // Position fuer Vergleichszwecke
sal_Int32 nObjLenMark = xMarkStream->createMark();
- // Number of read sequences
+ // Anzahl der zu lesenden Sequences
sal_Int32 nItemCount = InStream->readLong();
for( sal_Int32 i = 0 ; i < nItemCount ; i++ )
{
insertEntry( i );
- // Read the length of the sequence
+ // Laenge der Sequence lesen
sal_Int32 nSeqLen = InStream->readLong();
- // Display the sequence and read the descriptors
+ // Sequence anlegen und Descriptoren lesen
Sequence< ScriptEventDescriptor > aSEDSeq( nSeqLen );
ScriptEventDescriptor* pArray = aSEDSeq.getArray();
for( sal_Int32 j = 0 ; j < nSeqLen ; j++ )
@@ -871,20 +868,21 @@ void SAL_CALL ImplEventAttacherManager::read(const Reference< XObjectInputStream
registerScriptEvents( i, aSEDSeq );
}
- // Have we read the specified length?
+ // Haben wir die angegebene Laenge gelesen?
sal_Int32 nRealLen = xMarkStream->offsetToMark( nObjLenMark );
if( nRealLen != nLen )
{
- // Only if the StreamVersion is > 1 and the date still follows, can
- // this be true. Otherwise, something is completely gone.
+ // Nur wenn die StreamVersion > 1 ist und noch Daten folgen, kann das
+ // Ganze richtig sein. Sonst ist etwas voellig daneben gegangen.
if( nRealLen > nLen || nVersion == 1 )
{
OSL_FAIL( "ImplEventAttacherManager::read(): Fatal Error, wrong object length" );
}
else
{
- // TODO: Examine if between storage of the dates could be useful
- // But for now, it's easier to skip it
+ // TODO: Pruefen, ob Zwischen-Speicherung der Daten sinnvoll sein koennte
+
+ // Vorerst einfach nur Skippen
sal_Int32 nSkipCount = nLen - nRealLen;
InStream->skipBytes( nSkipCount );
}
diff --git a/comphelper/source/property/propagg.cxx b/comphelper/source/property/propagg.cxx
index e186582..be24a1d 100644
--- a/comphelper/source/property/propagg.cxx
+++ b/comphelper/source/property/propagg.cxx
@@ -146,12 +146,12 @@ OPropertyArrayAggregationHelper::OPropertyArrayAggregationHelper(
m_aProperties.realloc( nMergedProps );
pMergedProps = m_aProperties.getArray(); // reset, needed again below
- // sort the properties by name
+ // sortieren der Properties nach Namen
::std::sort( pMergedProps, pMergedProps+nMergedProps, PropertyCompareByName());
pMergedProps = m_aProperties.getArray();
- // sync the map positions
+ // Positionen in der Map abgleichen
for ( nMPLoop = 0; nMPLoop < nMergedProps; ++nMPLoop, ++pMergedProps )
m_aPropertyAccessors[ pMergedProps->Handle ].nPos = nMPLoop;
}
@@ -292,7 +292,7 @@ sal_Int32 OPropertyArrayAggregationHelper::fillHandles(
for( sal_Int32 i = 0; i < nReqLen; ++i )
{
- // determine the logarithm
+ // Logarithmus ermitteln
sal_uInt32 n = (sal_uInt32)(pEnd - pCur);
sal_Int32 nLog = 0;
while( n )
@@ -301,7 +301,8 @@ sal_Int32 OPropertyArrayAggregationHelper::fillHandles(
n = n >> 1;
}
- // Number of the searched properties * the Log2 of the reamining properties
+ // Anzahl der noch zu suchenden Properties * dem Log2 der verbleibenden
+ // zu dursuchenden Properties.
if( (nReqLen - i) * nLog >= pEnd - pCur )
{
// linear search is better
@@ -484,7 +485,7 @@ void OPropertySetAggregationHelper::disposing()
if ( m_xAggregateSet.is() && m_bListening )
{
- // register as a single listener
+ // als einziger Listener anmelden
m_xAggregateMultiSet->removePropertiesChangeListener(this);
m_xAggregateSet->removeVetoableChangeListener(::rtl::OUString(), this);
m_bListening = sal_False;
@@ -594,7 +595,7 @@ void OPropertySetAggregationHelper::startListening()
if (!m_bListening && m_xAggregateSet.is())
{
- // register as a single listener
+ // als einziger Listener anmelden
::com::sun::star::uno::Sequence< ::rtl::OUString > aPropertyNames;
m_xAggregateMultiSet->addPropertiesChangeListener(aPropertyNames, this);
m_xAggregateSet->addVetoableChangeListener(::rtl::OUString(), this);
diff --git a/solenv/bin/mkdocs.sh b/solenv/bin/mkdocs.sh
index faf39e9..a075a74 100755
--- a/solenv/bin/mkdocs.sh
+++ b/solenv/bin/mkdocs.sh
@@ -81,7 +81,7 @@ function proc_text {
function setup {
parm=$1
if [ -z "${!parm}" ] ; then
- echo "grep \"${parm}=\" ./config_host.mk | sed -re \" s/${parm}=//\")"
+ echo "grep \"${parm}=\" ./config_host.mk | sed -re \" s/${parm}=//\")"
echo "$parm=$(grep \"${parm}=\" ./config_host.mk | sed -re \" s/${parm}=//\")"
eval "$parm=$(grep \"${parm}=\" ./config_host.mk | sed -re \" s/${parm}=//\")"
fi
@@ -209,7 +209,7 @@ for module_name in *; do
else
empty_modules[${#empty_modules[*]}]=$module_name
fi
- fi
+ fi
done
if [ ${#empty_modules[*]} -gt 0 ]; then
echo -e "<p> </p><p>READMEs were not available for these modules:</p><ul>\n" >> "$BASE_OUTPUT/index.html"
diff --git a/svx/source/gengal/gengal.sh b/svx/source/gengal/gengal.sh
index 7c07db8..5173fb4 100644
--- a/svx/source/gengal/gengal.sh
+++ b/svx/source/gengal/gengal.sh
@@ -2,7 +2,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -34,7 +34,7 @@ export SAL_ENABLE_FILE_LOCKING
sd_cwd="`pwd`"
if [ -h "$0" ] ; then
sd_basename=`basename "$0"`
- sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
+ sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
cd "`dirname "$0"`"
cd "`dirname "$sd_script"`"
else
More information about the LibreOffice
mailing list