ooo-build r11757 - in trunk: . patches/ooxml patches/src680
- From: strba svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r11757 - in trunk: . patches/ooxml patches/src680
- Date: Fri, 29 Feb 2008 09:31:46 +0000 (GMT)
Author: strba
Date: Fri Feb 29 09:31:46 2008
New Revision: 11757
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11757&view=rev
Log:
2008-02-29 Fridrich Strba <fridrich strba bluewin ch>
* patches/src680/oox-fasttokenizer-fix.diff,
patches/ooxml/writerfilter-source-resourcemodel-util_cxx.diff,
patches/ooxml/oox-depends-on-tools.diff: remove unneeded patches.
* patches/ooxml/cws-xmlfilter03-sc.diff: add patch.
* patches/src680/apply, patches/ooxml/cws-xmlfilter03-sw.diff,
patches/ooxml/cws-xmlfilter03-offapi.diff, configure.in:
extracted a "nominated" version of xmlfilter03 cws and uploading updated
writerfilter and oox tarballs
Added:
trunk/patches/ooxml/cws-xmlfilter03-sc.diff
Removed:
trunk/patches/ooxml/oox-depends-on-tools.diff
trunk/patches/ooxml/writerfilter-source-resourcemodel-util_cxx.diff
trunk/patches/src680/oox-fasttokenizer-fix.diff
Modified:
trunk/ChangeLog
trunk/configure.in
trunk/patches/ooxml/cws-xmlfilter03-offapi.diff
trunk/patches/ooxml/cws-xmlfilter03-sw.diff
trunk/patches/src680/apply
Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in (original)
+++ trunk/configure.in Fri Feb 29 09:31:46 2008
@@ -1114,10 +1114,10 @@
fi
AC_SUBST(MIRROR)
-OOX_MODULE_TARBALL="oox.2008-01-29.tar.bz2"
+OOX_MODULE_TARBALL="oox.2008-02-29.tar.bz2"
AC_SUBST(OOX_MODULE_TARBALL)
-WRITERFILTER_MODULE_TARBALL="writerfilter.2008-01-29.tar.bz2"
+WRITERFILTER_MODULE_TARBALL="writerfilter.2008-02-29.tar.bz2"
AC_SUBST(WRITERFILTER_MODULE_TARBALL)
AC_CONFIG_FILES([download], [chmod +x download])
Modified: trunk/patches/ooxml/cws-xmlfilter03-offapi.diff
==============================================================================
--- trunk/patches/ooxml/cws-xmlfilter03-offapi.diff (original)
+++ trunk/patches/ooxml/cws-xmlfilter03-offapi.diff Fri Feb 29 09:31:46 2008
@@ -1,6 +1,380 @@
+--- offapi/com/sun/star/animations/XTransitionFilter.idl 7 Sep 2005 20:42:48 -0000 1.3
++++ offapi/com/sun/star/animations/XTransitionFilter.idl 13 Feb 2008 15:31:10 -0000 1.3.448.1
+@@ -75,7 +75,7 @@ interface XTransitionFilter : XAnimate
+ the transition progress increases and <false/> indicating that the parent media will
+ become less visible as the transition progress increases.
+
+- The default value is </true>.
++ The default value is <true/>.
+ */
+ [attribute] boolean Mode;
+
+--- offapi/com/sun/star/chart2/DataPointProperties.idl 23 Nov 2007 11:42:42 -0000 1.4
++++ offapi/com/sun/star/chart2/DataPointProperties.idl 13 Feb 2008 15:31:11 -0000 1.4.60.1
+@@ -117,7 +117,7 @@ service DataPointProperties
+ [property] string HatchName;
+ [property] string FillBitmapName;
+
+- /** If </TRUE>, fills the background of a hatch with the color
++ /** If <TRUE/>, fills the background of a hatch with the color
+ given in the <member>Color</member> property.
+ */
+ [property] boolean FillBackground;
+--- offapi/com/sun/star/chart2/XAxis.idl 22 May 2007 14:59:06 -0000 1.2
++++ offapi/com/sun/star/chart2/XAxis.idl 13 Feb 2008 15:31:11 -0000 1.2.186.1
+@@ -38,7 +38,7 @@ interface XAxis : ::com::sun::star::uno:
+
+ <p>If you do not want to render certain a sub-grid, in the
+ corresponding <type>XPropertySet</type> the property
+- <member>GridProperties::Show</member> must be </FALSE>.</p>
++ <member>GridProperties::Show</member> must be <FALSE/>.</p>
+ */
+ sequence< com::sun::star::beans::XPropertySet > getSubGridProperties();
+
+--- offapi/com/sun/star/chart2/XChartDocument.idl 22 May 2007 14:59:15 -0000 1.2
++++ offapi/com/sun/star/chart2/XChartDocument.idl 13 Feb 2008 15:31:11 -0000 1.2.186.1
+@@ -107,7 +107,7 @@ interface XChartDocument : ::com::sun::s
+ void createInternalDataProvider( [in] boolean bCloneExistingData )
+ raises( com::sun::star::util::CloseVetoException );
+
+- /** @return </TRUE> if the data provider set at the chart document
++ /** @return <TRUE/> if the data provider set at the chart document
+ is an internal one.
+
+ <p>This is the case directly after
+--- offapi/com/sun/star/chart2/XChartTypeTemplate.idl 22 May 2007 15:00:14 -0000 1.2
++++ offapi/com/sun/star/chart2/XChartTypeTemplate.idl 13 Feb 2008 15:31:11 -0000 1.2.186.1
+@@ -117,7 +117,7 @@ interface XChartTypeTemplate : ::com::su
+ template.</p>
+
+ <p>Ideally a <member>matchesTemplate</member> call for the
+- given diagram should return </TRUE> before this method is
++ given diagram should return <TRUE/> before this method is
+ called.</p>
+
+ @param xDataSource
+--- offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl 23 Nov 2007 11:43:52 -0000 1.3
++++ offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl 13 Feb 2008 15:31:11 -0000 1.3.60.1
+@@ -92,7 +92,7 @@ interface XRegressionCurveCalculator : c
+ instead of <member>nPointCount</member> points. This is only
+ allowed if the parameter
+ <member>bMaySkipPointsInCalculation</member> is set to
+- </TRUE>.
++ <TRUE/>.
+
+ <p>It is important that a renderer takes the scalings into
+ account. When one of these parameters is unknown, no
+@@ -100,7 +100,7 @@ interface XRegressionCurveCalculator : c
+
+ @param bMaySkipPointsInCalculation determines whether it is
+ allowed to skip points in the calculation. When this
+- parameter is </TRUE> it is assumed that the underlying
++ parameter is <TRUE/> it is assumed that the underlying
+ coordinate system is cartesian.
+
+ @param xScalingX a scaling that is used for the values in
+--- offapi/com/sun/star/chart2/XUndoManager.idl 25 Jul 2007 08:19:28 -0000 1.2
++++ offapi/com/sun/star/chart2/XUndoManager.idl 13 Feb 2008 15:31:11 -0000 1.2.116.1
+@@ -84,11 +84,11 @@ interface XUndoManager : ::com::sun::sta
+ */
+ void redo( [inout] ::com::sun::star::frame::XModel xCurrentModel );
+
+- /** @return </TRUE> if the undo stack is not empty, i.e. a call to undo() will succeed
++ /** @return <TRUE/> if the undo stack is not empty, i.e. a call to undo() will succeed
+ */
+ boolean undoPossible();
+
+- /** @return </TRUE> if the redo stack is not empty, i.e. a call to redo() will succeed
++ /** @return <TRUE/> if the redo stack is not empty, i.e. a call to redo() will succeed
+ */
+ boolean redoPossible();
+
+--- offapi/com/sun/star/chart2/data/HighlightedRange.idl 22 May 2007 15:07:18 -0000 1.2
++++ offapi/com/sun/star/chart2/data/HighlightedRange.idl 13 Feb 2008 15:31:11 -0000 1.2.186.1
+@@ -66,7 +66,7 @@ struct HighlightedRange
+ long PreferredColor;
+
+ /** If the highlighted range is visually highlighted and this
+- member is </TRUE>, the range given in
++ member is <TRUE/>, the range given in
+ <member>RangeRepresentation</mamber> may be included in a
+ merged range rectangle spanning a bigger range.
+ */
+--- offapi/com/sun/star/chart2/data/XDataProvider.idl 25 Jul 2007 08:20:01 -0000 1.3
++++ offapi/com/sun/star/chart2/data/XDataProvider.idl 13 Feb 2008 15:31:11 -0000 1.3.116.1
+@@ -60,9 +60,9 @@ module data
+ */
+ interface XDataProvider : ::com::sun::star::uno::XInterface
+ {
+- /** If </TRUE> is returned a call to createDataSource with the
++ /** If <TRUE/> is returned, a call to createDataSource with the
+ same arguments must return a valid XDataSequence object. If
+- </FALSE> is returned, createDataSource throws an exception.
++ <FALSE/> is returned, createDataSource throws an exception.
+ */
+ boolean createDataSourcePossible( [in] sequence< com::sun::star::beans::PropertyValue > aArguments );
+
+@@ -121,9 +121,9 @@ interface XDataProvider : ::com::sun::s
+ sequence< com::sun::star::beans::PropertyValue > detectArguments(
+ [in] XDataSource xDataSource );
+
+- /** If </TRUE> is returned a call to
++ /** If <TRUE/> is returned, a call to
+ createDataSequenceByRangeRepresentation with the same argument must
+- return a valid XDataSequence object. If </FALSE> is returned,
++ return a valid XDataSequence object. If <FALSE/> is returned,
+ createDataSequenceByRangeRepresentation throws an exception.
+ */
+ boolean createDataSequenceByRangeRepresentationPossible( [in] string aRangeRepresentation );
+--- offapi/com/sun/star/linguistic2/XDictionaryList.idl 8 Sep 2005 02:10:51 -0000 1.11
++++ offapi/com/sun/star/linguistic2/XDictionaryList.idl 13 Feb 2008 15:31:11 -0000 1.11.448.1
+@@ -149,7 +149,7 @@ published interface XDictionaryList : co
+ the object to be notified of dictionary-list events.
+
+ @param bReceiveVerbose
+- </TRUE> if the listener requires more detailed event
++ <TRUE/> if the listener requires more detailed event
+ notification than usual.
+
+ @see <type scope="com::sun::star::linguistic2">XDictionaryListEventListener</type>
+--- offapi/com/sun/star/rendering/IntegerBitmapLayout.idl 2 Nov 2005 13:21:54 -0000 1.5
++++ offapi/com/sun/star/rendering/IntegerBitmapLayout.idl 13 Feb 2008 15:31:11 -0000 1.5.428.1
+@@ -130,15 +130,15 @@ struct IntegerBitmapLayout
+ /** This member determines the bit order (only relevant if a pixel
+ uses less than 8 bits, of course).<p>
+
+- When </TRUE>, this member denotes that the leftmost pixel from
++ When <TRUE/>, this member denotes that the leftmost pixel from
+ an 8 bit amount of pixel data consists of the bits starting
+- with the most significant bit. When </FALSE>, it's starting
++ with the most significant bit. When <FALSE/>, it's starting
+ with the least significant bit.<p>
+
+ Example: for a 1bpp bitmap, each pixel is represented by
+- exactly one bit. If this member is </TRUE>, the first pixel is
++ exactly one bit. If this member is <TRUE/>, the first pixel is
+ the MSB of the first byte, and the eighth pixel is the LSB of
+- the first byte. If this member is </FALSE>, it's just the
++ the first byte. If this member is <FALSE/>, it's just the
+ opposite.
+ */
+ boolean IsMsbFirst;
+--- offapi/com/sun/star/rendering/XBitmap.idl 2 Nov 2005 13:23:05 -0000 1.5
++++ offapi/com/sun/star/rendering/XBitmap.idl 13 Feb 2008 15:31:11 -0000 1.5.428.1
+@@ -82,7 +82,7 @@ interface XBitmap : ::com::sun::star::un
+ This method checks, whether the bitmap contains any alpha
+ information.<p>
+
+- @return </TRUE>, if the bitmap has alpha data, or </FALSE> if
++ @return <TRUE/>, if the bitmap has alpha data, or <FALSE/> if
+ not.
+ */
+ boolean hasAlpha();
+--- offapi/com/sun/star/sheet/NamedRange.idl 10 Jan 2008 12:40:37 -0000 1.7
++++ offapi/com/sun/star/sheet/NamedRange.idl 6 Feb 2008 10:58:41 -0000 1.7.4.1
+@@ -91,6 +91,24 @@ published service NamedRange
+ @since OOo 2.x
+ */
+ [optional, readonly, property] long TokenIndex;
++
++ //-------------------------------------------------------------------------
++
++ /** Determines if this defined name represents a shared formula.
++
++ <p>This special property shall not be used externally. It is used by
++ import and export filters for compatibility with spreadsheet
++ documents containing shared formulas. Shared formulas are shared
++ by several cells to save memory and to decrease file size.</p>
++
++ <p>A defined name with this property set will not appear in the user
++ interface of Calc, and its name will not appear in cell formulas. A
++ formula referring to this defined name will show the formula
++ definition contained in the name instead.</p>
++
++ @since CWS xmlfilter03
++ */
++ [optional, property] boolean IsSharedFormula;
+ };
+
+ //=============================================================================
+--- offapi/com/sun/star/sheet/SpreadsheetDrawPage.idl 8 Sep 2005 04:52:44 -0000 1.9
++++ offapi/com/sun/star/sheet/SpreadsheetDrawPage.idl 30 Jan 2008 11:44:42 -0000 1.9.448.1
+@@ -61,7 +61,7 @@
+ <listing>
+ xPage = xDoc.DrawPages(0)
+ for x% = 0 to 200
+- xShape = xProv.createInstance( "com::sun::star::drawing::LineShape" )
++ xShape = xProv.createInstance( "com.sun.star.drawing.LineShape" )
+ xShape.LineColor = rgb( 255, 0, n%+20 )
+ xShape.LineWidth = 20
+ xShape.Position = Point( x%, 2*x% )
+--- offapi/com/sun/star/style/ParagraphProperties.idl 18 Jul 2007 09:49:29 -0000 1.22
++++ offapi/com/sun/star/style/ParagraphProperties.idl 13 Feb 2008 15:31:12 -0000 1.22.124.1
+@@ -431,7 +431,7 @@ published service ParagraphProperties
+ [optional, property] com::sun::star::container::XNameContainer ParaUserDefinedAttributes;
+
+ //-------------------------------------------------------------------------
+- /** returns </TRUE> if the numbering of a paragraph is a number but
++ /** returns <TRUE/> if the numbering of a paragraph is a number but
+ has no symbol.
+
+ <p>If the paragraph is not part of a numbering the property is void.</p>
+--- offapi/com/sun/star/text/XTextTableCursor.idl 30 Jan 2007 15:25:18 -0000 1.12
++++ offapi/com/sun/star/text/XTextTableCursor.idl 13 Feb 2008 15:31:12 -0000 1.12.218.1
+@@ -169,7 +169,7 @@ published interface XTextTableCursor: co
+ for each cell contained in the range.
+
+ @param bHorizontal
+- </true> if the range should be split vertically.
++ <true/> if the range should be split vertically.
+ Otherwise it will be split horizontally.
+
+ @see com:sun::star::Cell
+--- offapi/com/sun/star/text/fieldmaster/Bibliography.idl 8 Sep 2005 06:52:40 -0000 1.6
++++ offapi/com/sun/star/text/fieldmaster/Bibliography.idl 13 Feb 2008 15:31:12 -0000 1.6.448.1
+@@ -53,13 +53,13 @@ published service Bibliography
+ service com::sun::star::text::TextFieldMaster;
+
+ //------------------------------------------------------------------------
+- /** determins whether the bibiliography text fields are numbered. If </FALSE> the
++ /** determins whether the bibiliography text fields are numbered. If <FALSE/> the
+ short name of the bibliography entry is displayed instead.
+ */
+ [property] boolean IsNumberEntries;
+ //------------------------------------------------------------------------
+ /** determins whether the bibliography entries in a bibliography index are sorted
+- by the document position. If </FALSE> the SortKey property determins the
++ by the document position. If <FALSE/> the SortKey property determins the
+ sorting of the entries.
+ */
+ [property] boolean IsSortByPosition;
+--- offapi/com/sun/star/text/textfield/ConditionalText.idl 8 Sep 2005 06:55:50 -0000 1.8
++++ offapi/com/sun/star/text/textfield/ConditionalText.idl 13 Feb 2008 15:31:12 -0000 1.8.448.1
+@@ -50,10 +50,10 @@ published service ConditionalText
+ {
+ service com::sun::star::text::TextField;
+
+- /** contains the text that is displayed if the condition evaluates to </TRUE>.
++ /** contains the text that is displayed if the condition evaluates to <TRUE/>.
+ */
+ [property] string TrueContent;
+- /** contains the text that is displayed if the condition evaluates to </FALSE>.
++ /** contains the text that is displayed if the condition evaluates to <FALSE/>.
+ */
+ [property] string FalseContent;
+ /** contains the condition.
+--- offapi/com/sun/star/text/textfield/HiddenText.idl 8 Sep 2005 07:00:02 -0000 1.6
++++ offapi/com/sun/star/text/textfield/HiddenText.idl 13 Feb 2008 15:31:13 -0000 1.6.448.1
+@@ -51,7 +51,7 @@ published service HiddenText
+ service com::sun::star::text::TextField;
+
+ /** contains the text content of the hidden text field.
+- <p> The content is displayed if the condition evaluates to </FALSE>.</p>
++ <p> The content is displayed if the condition evaluates to <FALSE/>.</p>
+ */
+ [property] string Content;
+ /** contains the condition.
+--- offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl 8 Sep 2005 08:28:48 -0000 1.3
++++ offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl 13 Feb 2008 15:31:13 -0000 1.3.448.1
+@@ -92,8 +92,8 @@ interface XModuleUIConfigurationManager
+ characters for type and name.
+
+ @return
+- </TRUE> if settings have been found in the default layer,
+- otherwise </FALSE>.
++ <TRUE/> if settings have been found in the default layer,
++ otherwise <FALSE/>.
+ */
+ boolean isDefaultSettings( [in] string ResourceURL ) raises ( com::sun::star::lang::IllegalArgumentException );
+
+@@ -107,8 +107,8 @@ interface XModuleUIConfigurationManager
+ characters for type and name.
+
+ @return
+- </TRUE> if default settings have been found in the default layer,
+- otherwise </FALSE>.
++ <TRUE/> if default settings have been found in the default layer,
++ otherwise <FALSE/>.
+ */
+ ::com::sun::star::container::XIndexAccess getDefaultSettings( [in] string ResourceURL ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException );
+
+--- offapi/com/sun/star/util/URL.idl 8 Sep 2005 08:56:59 -0000 1.8
++++ offapi/com/sun/star/util/URL.idl 13 Feb 2008 15:31:13 -0000 1.8.448.1
+@@ -47,7 +47,7 @@ module com { module sun { module star
+ <p>
+ If the structure represents a valid URL or not depends on prior usage of
+ the functions of <type>XURLTransformer</type>. Only after one of the functions
+- returned </TRUE> this can be assumed.</br>
++ returned <TRUE/> this can be assumed.</br>
+ It is not necessary to set all of the fields; either <member>URL::Complete</member>
+ or (some of) the others are set. Additionally, most of the other
+ fields, like <member>URL::Host</member>, <member>URL::Port</member>,
+--- offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl 8 Sep 2005 09:48:31 -0000 1.3
++++ offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl 13 Feb 2008 15:31:13 -0000 1.3.448.1
+@@ -55,7 +55,7 @@ interface XMissionTaker : com::sun::star
+ /**
+ * Forces a mission to make an end.
+ *
+- * @return <code>true</true> if the mission is completed successfully, <code>false</code>
++ * @return <true/> if the mission is completed successfully, <false/>
+ * otherwise.
+ */
+ boolean endMission();
+--- offapi/com/sun/star/xml/sax/FastShapeContextHandler.idl 10 Jan 2008 12:44:39 -0000 1.2
++++ offapi/com/sun/star/xml/sax/FastShapeContextHandler.idl 13 Feb 2008 15:31:13 -0000 1.2.4.1
+@@ -35,7 +35,9 @@
+ #ifndef __com_sun_star_xml_sax_FastShapeContextHandler_idl__
+ #define __com_sun_star_xml_sax_FastShapeContextHandler_idl__
+
++#ifndef __com_sun_star_xml_sax_XFastShapeContextHandler_idl__
+ #include <com/sun/star/xml/sax/XFastShapeContextHandler.idl>
++#endif
+
+ //=============================================================================
+
+@@ -44,9 +46,8 @@ module com { module sun { module star
+ service FastShapeContextHandler : XFastShapeContextHandler
+ {
+ };
+-};
+-};
+-};
+-};
+-};
++
++}; }; }; }; };
++
+ #endif
++
+--- offapi/com/sun/star/xml/sax/FastTokenHandler.idl 10 Jan 2008 12:45:02 -0000 1.2
++++ offapi/com/sun/star/xml/sax/FastTokenHandler.idl 13 Feb 2008 15:31:13 -0000 1.2.4.1
+@@ -44,9 +44,8 @@ module com { module sun { module star
+ service FastTokenHandler : XFastTokenHandler
+ {
+ };
+-};
+-};
+-};
+-};
+-};
++
++}; }; }; }; };
++
+ #endif
++
--- offapi/com/sun/star/xml/sax/XFastShapeContextHandler.idl 10 Jan 2008 12:45:52 -0000 1.2
-+++ offapi/com/sun/star/xml/sax/XFastShapeContextHandler.idl 23 Jan 2008 12:10:39 -0000 1.2.4.1
-@@ -45,6 +45,7 @@
++++ offapi/com/sun/star/xml/sax/XFastShapeContextHandler.idl 13 Feb 2008 15:34:18 -0000 1.2.4.3
+@@ -35,16 +35,11 @@
+ #ifndef __com_sun_star_xml_sax_XFastShapeContextHandler_idl__
+ #define __com_sun_star_xml_sax_XFastShapeContextHandler_idl__
+
+-#ifndef __com_sun_star_xml_sax_XFastContextHandler_idl__
+ #include <com/sun/star/xml/sax/XFastContextHandler.idl>
+-#endif
+-
+-#ifndef __com_sun_star_drawing_XShape_idl__
+-#include <com/sun/star/drawing/XShape.idl>
+-#endif
#include <com/sun/star/drawing/XShape.idl>
#include <com/sun/star/drawing/XShapes.idl>
#include <com/sun/star/frame/XModel.idl>
@@ -8,7 +382,7 @@
//=============================================================================
-@@ -62,7 +63,8 @@ interface XFastShapeContextHandler: com:
+@@ -62,7 +57,8 @@ interface XFastShapeContextHandler: com:
[attribute, readonly] com::sun::star::drawing::XShape Shape;
[attribute] com::sun::star::drawing::XShapes Shapes;
[attribute] com::sun::star::frame::XModel Model;
Added: trunk/patches/ooxml/cws-xmlfilter03-sc.diff
==============================================================================
--- (empty file)
+++ trunk/patches/ooxml/cws-xmlfilter03-sc.diff Fri Feb 29 09:31:46 2008
@@ -0,0 +1,125 @@
+--- sc/inc/unonames.hxx 5 Feb 2008 15:43:36 -0000 1.76
++++ sc/inc/unonames.hxx 18 Feb 2008 16:14:07 -0000 1.75.2.2
+@@ -299,6 +299,7 @@
+ #define SC_UNONAME_FROMSELECT "FromSelection"
+ #define SC_UNONAME_CONRES "ConnectionResource"
+ #define SC_UNONAME_TOKENINDEX "TokenIndex"
++#define SC_UNONAME_ISSHAREDFMLA "IsSharedFormula"
+
+ // text fields
+ #define SC_UNONAME_ANCTYPE "AnchorType"
+--- sc/source/ui/unoobj/nameuno.cxx 10 Jan 2008 13:19:02 -0000 1.17
++++ sc/source/ui/unoobj/nameuno.cxx 6 Feb 2008 10:59:49 -0000 1.17.2.1
+@@ -72,6 +72,7 @@ const SfxItemPropertyMap* lcl_GetNamedRa
+ {MAP_CHAR_LEN(SC_UNO_LINKDISPBIT), 0, &getCppuType((uno::Reference<awt::XBitmap>*)0), beans::PropertyAttribute::READONLY, 0 },
+ {MAP_CHAR_LEN(SC_UNO_LINKDISPNAME), 0, &getCppuType((rtl::OUString*)0), beans::PropertyAttribute::READONLY, 0 },
+ {MAP_CHAR_LEN(SC_UNONAME_TOKENINDEX),0, &getCppuType((sal_Int32*)0), beans::PropertyAttribute::READONLY, 0 },
++ {MAP_CHAR_LEN(SC_UNONAME_ISSHAREDFMLA), 0, &getBooleanCppuType(), 0, 0 },
+ {0,0,0,0,0,0}
+ };
+ return aNamedRangeMap_Impl;
+@@ -273,8 +274,8 @@ sal_Int32 SAL_CALL ScNamedRangeObj::getT
+ ScRangeData* pData = GetRangeData_Impl();
+ if (pData)
+ {
+- // interne RT_* Flags werden weggelassen
+-
++ // do not return internal RT_* flags
++ // see property 'IsSharedFormula' for RT_SHARED
+ if ( pData->HasType(RT_CRITERIA) ) nType |= sheet::NamedRangeFlag::FILTER_CRITERIA;
+ if ( pData->HasType(RT_PRINTAREA) ) nType |= sheet::NamedRangeFlag::PRINT_AREA;
+ if ( pData->HasType(RT_COLHEADER) ) nType |= sheet::NamedRangeFlag::COLUMN_HEADER;
+@@ -285,6 +286,7 @@ sal_Int32 SAL_CALL ScNamedRangeObj::getT
+
+ void SAL_CALL ScNamedRangeObj::setType( sal_Int32 nUnoType ) throw(uno::RuntimeException)
+ {
++ // see property 'IsSharedFormula' for RT_SHARED
+ ScUnoGuard aGuard;
+ sal_uInt16 nNewType = RT_NAME;
+ if ( nUnoType & sheet::NamedRangeFlag::FILTER_CRITERIA ) nNewType |= RT_CRITERIA;
+@@ -351,35 +353,48 @@ uno::Reference<beans::XPropertySetInfo>
+ }
+
+ void SAL_CALL ScNamedRangeObj::setPropertyValue(
+- const rtl::OUString& /* aPropertyName */, const uno::Any& /* aValue */ )
++ const rtl::OUString& rPropertyName, const uno::Any& aValue )
+ throw(beans::UnknownPropertyException, beans::PropertyVetoException,
+ lang::IllegalArgumentException, lang::WrappedTargetException,
+ uno::RuntimeException)
+ {
+- // everything is read-only
++ ScUnoGuard aGuard;
++ if ( rPropertyName.equalsAscii( SC_UNONAME_ISSHAREDFMLA ) )
++ {
++ bool bIsShared = false;
++ if( aValue >>= bIsShared )
++ {
++ sal_uInt16 nNewType = bIsShared ? RT_SHARED : RT_NAME;
++ Modify_Impl( NULL, NULL, NULL, NULL, &nNewType );
++ }
++ }
+ }
+
+-uno::Any SAL_CALL ScNamedRangeObj::getPropertyValue( const rtl::OUString& aPropertyName )
++uno::Any SAL_CALL ScNamedRangeObj::getPropertyValue( const rtl::OUString& rPropertyName )
+ throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+ uno::RuntimeException)
+ {
+ ScUnoGuard aGuard;
+ uno::Any aRet;
+- String aString(aPropertyName);
+- if ( aString.EqualsAscii( SC_UNO_LINKDISPBIT ) )
++ if ( rPropertyName.equalsAscii( SC_UNO_LINKDISPBIT ) )
+ {
+ // no target bitmaps for individual entries (would be all equal)
+ // ScLinkTargetTypeObj::SetLinkTargetBitmap( aRet, SC_LINKTARGETTYPE_RANGENAME );
+ }
+- else if ( aString.EqualsAscii( SC_UNO_LINKDISPNAME ) )
++ else if ( rPropertyName.equalsAscii( SC_UNO_LINKDISPNAME ) )
+ aRet <<= rtl::OUString( aName );
+- else if ( aString.EqualsAscii( SC_UNONAME_TOKENINDEX ) )
++ else if ( rPropertyName.equalsAscii( SC_UNONAME_TOKENINDEX ) )
+ {
+ // get index for use in formula tokens (read-only)
+ ScRangeData* pData = GetRangeData_Impl();
+ if (pData)
+ aRet <<= static_cast<sal_Int32>(pData->GetIndex());
+ }
++ else if ( rPropertyName.equalsAscii( SC_UNONAME_ISSHAREDFMLA ) )
++ {
++ if( ScRangeData* pData = GetRangeData_Impl() )
++ aRet <<= static_cast< bool >( pData->HasType( RT_SHARED ) );
++ }
+ return aRet;
+ }
+
+@@ -389,24 +404,22 @@ SC_IMPL_DUMMY_PROPERTY_LISTENER( ScNamed
+
+ rtl::OUString SAL_CALL ScNamedRangeObj::getImplementationName() throw(uno::RuntimeException)
+ {
+- return rtl::OUString::createFromAscii( "ScNamedRangeObj" );
++ return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScNamedRangeObj" ) );
+ }
+
+ sal_Bool SAL_CALL ScNamedRangeObj::supportsService( const rtl::OUString& rServiceName )
+ throw(uno::RuntimeException)
+ {
+- String aServiceStr( rServiceName );
+- return aServiceStr.EqualsAscii( SCNAMEDRANGEOBJ_SERVICE ) ||
+- aServiceStr.EqualsAscii( SCLINKTARGET_SERVICE );
++ return rServiceName.equalsAscii( SCNAMEDRANGEOBJ_SERVICE ) ||
++ rServiceName.equalsAscii( SCLINKTARGET_SERVICE );
+ }
+
+ uno::Sequence<rtl::OUString> SAL_CALL ScNamedRangeObj::getSupportedServiceNames()
+ throw(uno::RuntimeException)
+ {
+ uno::Sequence<rtl::OUString> aRet(2);
+- rtl::OUString* pArray = aRet.getArray();
+- pArray[0] = rtl::OUString::createFromAscii( SCNAMEDRANGEOBJ_SERVICE );
+- pArray[1] = rtl::OUString::createFromAscii( SCLINKTARGET_SERVICE );
++ aRet[0] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCNAMEDRANGEOBJ_SERVICE ) );
++ aRet[1] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SCLINKTARGET_SERVICE ) );
+ return aRet;
+ }
+
Modified: trunk/patches/ooxml/cws-xmlfilter03-sw.diff
==============================================================================
--- trunk/patches/ooxml/cws-xmlfilter03-sw.diff (original)
+++ trunk/patches/ooxml/cws-xmlfilter03-sw.diff Fri Feb 29 09:31:46 2008
@@ -1,6 +1,6 @@
---- sw/source/core/doc/doctxm.cxx 27 Sep 2007 08:37:21 -0000 1.47
-+++ sw/source/core/doc/doctxm.cxx 22 Jan 2008 14:21:14 -0000 1.47.160.1
-@@ -1867,10 +1867,14 @@ void SwTOXBaseSection::GenerateText( USH
+--- sw/source/core/doc/doctxm.cxx 29 Jan 2008 08:37:38 -0000 1.48
++++ sw/source/core/doc/doctxm.cxx 18 Feb 2008 16:15:53 -0000 1.47.160.2
+@@ -1868,10 +1868,14 @@ void SwTOXBaseSection::GenerateText( USH
}
else
nRightMargin = aNdRect.Width();
@@ -15,6 +15,318 @@
aTStops.Insert( SvxTabStop( nRightMargin, SVX_TAB_ADJUST_RIGHT,
cDfltDecimalChar,
+--- sw/source/core/layout/frmtool.cxx 12 Feb 2008 16:10:03 -0000 1.101
++++ sw/source/core/layout/frmtool.cxx 18 Feb 2008 16:15:47 -0000 1.100.162.2
+@@ -2061,6 +2061,14 @@ long SwBorderAttrs::CalcRight( const SwF
+ else
+ nRight += rLR.GetRight();
+
++ // --> OD 2008-01-21 #newlistlevelattrs#
++ // correction: retrieve left margin for numbering in R2L-layout
++ if ( pCaller->IsTxtFrm() && pCaller->IsRightToLeft() )
++ {
++ nRight += ((SwTxtFrm*)pCaller)->GetTxtNode()->GetLeftMarginWithNum();
++ }
++ // <--
++
+ return nRight;
+ }
+
+@@ -2081,8 +2089,14 @@ long SwBorderAttrs::CalcLeft( const SwFr
+ else
+ nLeft += rLR.GetLeft();
+
+- if ( pCaller->IsTxtFrm() )
++ // --> OD 2008-01-21 #newlistlevelattrs#
++ // correction: do not retrieve left margin for numbering in R2L-layout
++// if ( pCaller->IsTxtFrm() )
++ if ( pCaller->IsTxtFrm() && !pCaller->IsRightToLeft() )
++ // <--
++ {
+ nLeft += ((SwTxtFrm*)pCaller)->GetTxtNode()->GetLeftMarginWithNum();
++ }
+
+ return nLeft;
+ }
+--- sw/source/core/text/itrcrsr.cxx 22 Nov 2007 15:38:25 -0000 1.77
++++ sw/source/core/text/itrcrsr.cxx 13 Feb 2008 14:06:03 -0000 1.77.102.1
+@@ -202,27 +202,26 @@ void SwTxtMargin::CtorInitTxtMargin( SwT
+ const int nLMWithNum = pNode->GetLeftMarginWithNum( sal_True );
+ if ( pFrm->IsRightToLeft() )
+ {
++ // --> OD 2008-01-23 #newlistlevelattrs#
++ // this calculation is identical this the calculation for L2R layout - see below
+ nLeft = pFrm->Frm().Left() +
+ pFrm->Prt().Left() +
+ nLMWithNum -
+- ( rSpace.GetTxtFirstLineOfst() < 0 ?
+- rSpace.GetTxtFirstLineOfst() :
+- 0 );
++ pNode->GetLeftMarginWithNum( sal_False ) -
++ rSpace.GetLeft() +
++ rSpace.GetTxtLeft();
+ }
+ else
+ {
+ if ( !pNode->getIDocumentSettingAccess()->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING) )
+ {
+- // --> FME 2004-07-29 #i32267# Do not forget paragraph border
+- // I'm quite sure this can be optimized. But how?
+- // Not enough time to figure out.
++ // this calculation is identical this the calculation for R2L layout - see above
+ nLeft = pFrm->Frm().Left() +
+ pFrm->Prt().Left() +
+ nLMWithNum -
+ pNode->GetLeftMarginWithNum( sal_False ) -
+ rSpace.GetLeft() +
+ rSpace.GetTxtLeft();
+- // <--
+ }
+ else
+ {
+--- sw/source/core/text/txttab.cxx 10 Jan 2008 12:30:04 -0000 1.28
++++ sw/source/core/text/txttab.cxx 13 Feb 2008 14:06:04 -0000 1.28.2.1
+@@ -74,7 +74,6 @@
+ const SvxTabStop *SwLineInfo::GetTabStop( const SwTwips nSearchPos,
+ const SwTwips nRight ) const
+ {
+- // Mit den KSHORTs aufpassen, falls nLinePos < nLeft
+ for( MSHORT i = 0; i < pRuler->Count(); ++i )
+ {
+ const SvxTabStop &rTabStop = pRuler->operator[](i);
+@@ -118,14 +117,28 @@ SwTabPortion *SwTxtFormatter::NewTabPort
+ // #i24363# tab stops relative to indent
+ // nTabLeft: The absolute value, the tab stops are relative to: Tabs origin.
+ //
+- const SwTwips nTmpIndent = pFrm->GetTxtNode()->getIDocumentSettingAccess()->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT) ?
+- pFrm->GetAttrSet()->GetLRSpace().GetTxtLeft() : 0;
+-
+- const SwTwips nTabLeft = bRTL ?
+- pFrm->Frm().Right() -
+- nTmpIndent :
+- pFrm->Frm().Left() +
+- nTmpIndent;
++ // --> OD 2008-02-07 #newlistlevelattrs#
++// const SwTwips nTmpIndent = pFrm->GetTxtNode()->getIDocumentSettingAccess()->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT) ?
++// pFrm->GetAttrSet()->GetLRSpace().GetTxtLeft() : 0;
++// const SwTwips nTabLeft = bRTL ?
++// pFrm->Frm().Right() - nTmpIndent :
++// pFrm->Frm().Left() + nTmpIndent;
++ SwTwips nTabLeft( 0 );
++ if ( pFrm->GetTxtNode()->getIDocumentSettingAccess()->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT) )
++ {
++ nTabLeft = Left();
++ if ( bRTL )
++ {
++ Point aPoint( nTabLeft, 0 );
++ pFrm->SwitchLTRtoRTL( aPoint );
++ nTabLeft = aPoint.X();
++ }
++ }
++ else
++ {
++ nTabLeft = bRTL ? pFrm->Frm().Right() : pFrm->Frm().Left();
++ }
++ // <--
+
+ //
+ // nLinePos: The absolute position, where we started the line formatting.
+@@ -217,19 +230,42 @@ SwTabPortion *SwTxtFormatter::NewTabPort
+ cFill = 0;
+ eAdj = SVX_TAB_ADJUST_LEFT;
+ }
++ // --> OD 2008-02-07 #newlistlevelattrs#
+ long nForced = 0;
++ if ( !pFrm->GetTxtNode()->getIDocumentSettingAccess()->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT) )
++ {
++ if ( bRTL )
++ {
++ Point aPoint( Left(), 0 );
++ pFrm->SwitchLTRtoRTL( aPoint );
++ nForced = pFrm->Frm().Right() - aPoint.X();
++ }
++ else
++ {
++ nForced = Left() - pFrm->Frm().Left();
++ }
++ }
+ if( pCurr->HasForcedLeftMargin() )
+ {
+ SwLinePortion* pPor = pCurr->GetPortion();
+ while( pPor && !pPor->IsFlyPortion() )
+ pPor = pPor->GetPortion();
+ if( pPor )
+- nForced = pPor->Width();
++ nForced += pPor->Width();
+ }
+
+- if( nNextPos > 0 &&
+- ( bRTL && nTabLeft - nForced < nCurrentAbsPos ||
+- !bRTL && nTabLeft + nForced > nCurrentAbsPos ) )
++ // <--
++ // --> OD 2008-02-07 #newlistlevelattrs#
++ // In case that the proposed new tab stop position is the list tab stop
++ // position, do not force a tab stop at left margin.
++// if( nNextPos > 0 &&
++// ( bRTL && nTabLeft - nForced < nCurrentAbsPos ||
++// !bRTL && nTabLeft + nForced > nCurrentAbsPos ) )
++ if (
++ ( ( bRTL && nCurrentAbsPos > nTabLeft - nForced ) ||
++ ( !bRTL && nCurrentAbsPos < nTabLeft + nForced ) ) &&
++ nNextPos > nForced )
++ // <--
+ {
+ eAdj = SVX_TAB_ADJUST_DEFAULT;
+ cFill = 0;
+--- sw/source/core/unocore/unodraw.cxx 12 Nov 2007 16:26:46 -0000 1.78
++++ sw/source/core/unocore/unodraw.cxx 4 Feb 2008 11:32:04 -0000 1.78.104.2
+@@ -55,9 +55,12 @@
+ #ifndef _SVX_UNOPRNMS_HXX
+ #include <svx/unoprnms.hxx>
+ #endif
++#include <swunohelper.hxx>
+ #ifndef _DOC_HXX //autogen
+ #include <doc.hxx>
+ #endif
++#include <fmtflcnt.hxx>
++#include <txtatr.hxx>
+ #ifndef _SWDOCSH_HXX
+ #include <docsh.hxx>
+ #endif
+@@ -658,6 +661,16 @@ void SwXDrawPage::add(const uno::Referen
+ aExcept.Message = C2U("illegal object");
+ throw aExcept;
+ }
++
++ // --> OD, HB
++ if ( pSvxShape->GetSdrObject() )
++ {
++ if ( pSvxShape->GetSdrObject()->IsInserted() )
++ {
++ return;
++ }
++ }
++ // <--
+ GetSvxPage()->add(xShape);
+
+ uno::Reference< uno::XAggregation > xAgg = pShape->GetAggregationInterface();
+@@ -1212,10 +1225,38 @@ void SwXShape::setPropertyValue(const rt
+ aValue >>= xRg;
+ if ( SwXTextRange::XTextRangeToSwPaM(*pInternalPam, xRg) )
+ {
++ if(aAnchor.GetAnchorId() == FLY_IN_CNTNT)
++ {
++ //delete old SwFmtFlyCnt
++ //With AnchorAsCharacter the current TxtAttribute has to be deleted.
++ //Tbis removes the frame format too.
++ //To prevent this the connection between format and attribute has to be broken before.
++ const SwPosition *pPos = aAnchor.GetCntntAnchor();
++ SwTxtNode *pTxtNode = pPos->nNode.GetNode().GetTxtNode();
++ ASSERT( pTxtNode->HasHints(), "Missing FlyInCnt-Hint." );
++ const xub_StrLen nIdx = pPos->nContent.GetIndex();
++ SwTxtAttr * pHnt = pTxtNode->GetTxtAttr( nIdx, RES_TXTATR_FLYCNT );
++ DBG_ASSERT( pHnt && pHnt->Which() == RES_TXTATR_FLYCNT,
++ "Missing FlyInCnt-Hint." );
++ DBG_ASSERT( pHnt && pHnt->GetFlyCnt().GetFrmFmt() == pFmt,
++ "Wrong TxtFlyCnt-Hint." );
++ ((SwFmtFlyCnt&)pHnt->GetFlyCnt()).SetFlyFmt();
++
++ //The connection is removed now the attribute can be deleted.
++ pTxtNode->Delete( RES_TXTATR_FLYCNT, nIdx, nIdx );
++ //create a new one
++ SwTxtNode *pNd = pInternalPam->GetNode()->GetTxtNode();
++ DBG_ASSERT( pNd, "Crsr steht nicht auf TxtNode." );
++ pNd->InsertItem( SwFmtFlyCnt( pFmt ),
++ pInternalPam->GetPoint()->nContent.GetIndex(), 0 );
++ }
++ else
++ {
+ aAnchor.SetAnchor( pInternalPam->GetPoint() );
+ aSet.Put(aAnchor);
+ pFmt->SetAttr(aSet);
+ }
++ }
+ else
+ {
+ throw uno::RuntimeException();
+@@ -1254,6 +1295,77 @@ void SwXShape::setPropertyValue(const rt
+ else
+ {
+ aPropSet.setPropertyValue(*pMap, aValue, aSet);
++
++ if(RES_ANCHOR == pMap->nWID && MID_ANCHOR_ANCHORTYPE == pMap->nMemberId)
++ {
++ bool bSetAttr = true;
++ sal_Int32 eNewAnchor = SWUnoHelper::GetEnumAsInt32( aValue );
++
++ //if old anchor was in_cntnt the related text attribute has to be removed
++ const SwFmtAnchor& rOldAnchor = pFmt->GetAnchor();
++ RndStdIds eOldAnchorId = rOldAnchor.GetAnchorId();
++ SdrObject* pObj = pFmt->FindSdrObject();
++ SwFrmFmt *pFlyFmt = FindFrmFmt( pObj );
++ pFlyFmt->DelFrms();
++ if( text::TextContentAnchorType_AS_CHARACTER != eNewAnchor &&
++ FLY_IN_CNTNT == eOldAnchorId )
++ {
++ //With AnchorAsCharacter the current TxtAttribute has to be deleted.
++ //Tbis removes the frame format too.
++ //To prevent this the connection between format and attribute has to be broken before.
++ const SwPosition *pPos = rOldAnchor.GetCntntAnchor();
++ SwTxtNode *pTxtNode = pPos->nNode.GetNode().GetTxtNode();
++ ASSERT( pTxtNode->HasHints(), "Missing FlyInCnt-Hint." );
++ const xub_StrLen nIdx = pPos->nContent.GetIndex();
++ SwTxtAttr * pHnt = pTxtNode->GetTxtAttr( nIdx, RES_TXTATR_FLYCNT );
++ DBG_ASSERT( pHnt && pHnt->Which() == RES_TXTATR_FLYCNT,
++ "Missing FlyInCnt-Hint." );
++ DBG_ASSERT( pHnt && pHnt->GetFlyCnt().GetFrmFmt() == pFlyFmt,
++ "Wrong TxtFlyCnt-Hint." );
++ ((SwFmtFlyCnt&)pHnt->GetFlyCnt()).SetFlyFmt();
++
++ //The connection is removed now the attribute can be deleted.
++ pTxtNode->Delete( RES_TXTATR_FLYCNT, nIdx, nIdx );
++ }
++ else if( text::TextContentAnchorType_AT_PAGE != eNewAnchor &&
++ FLY_PAGE == eOldAnchorId )
++ {
++ SwFmtAnchor aNewAnchor( dynamic_cast< const SwFmtAnchor& >( aSet.Get( RES_ANCHOR ) ) );
++ //if the fly has been anchored at page then it needs to be connected
++ //to the content position
++ SwPaM aPam(pDoc->GetNodes().GetEndOfContent());
++ if( pDoc->GetRootFrm() )
++ {
++ SwCrsrMoveState aState( MV_SETONLYTEXT );
++ Point aTmp( pObj->GetSnapRect().TopLeft() );
++ pDoc->GetRootFrm()->GetCrsrOfst( aPam.GetPoint(), aTmp, &aState );
++ }
++ else
++ {
++ //without access to the layout the last node of the body will be used as anchor position
++ aPam.Move( fnMoveBackward, fnGoDoc );
++ }
++ //anchor position has to be inserted after the text attribute has been inserted
++ aNewAnchor.SetAnchor( aPam.GetPoint() );
++ aSet.Put( aNewAnchor );
++ pFmt->SetAttr(aSet);
++ bSetAttr = false;
++ if( text::TextContentAnchorType_AS_CHARACTER == eNewAnchor &&
++ FLY_IN_CNTNT != eOldAnchorId )
++ {
++ //the RES_TXTATR_FLYCNT needs to be added now
++ SwTxtNode *pNd = aPam.GetNode()->GetTxtNode();
++ DBG_ASSERT( pNd, "Crsr is not in a TxtNode." );
++ pNd->InsertItem( SwFmtFlyCnt( pFlyFmt ),
++ aPam.GetPoint()->nContent.GetIndex(), 0 );
++ //aPam.GetPoint()->nContent--;
++
++ }
++ }
++ if( bSetAttr )
++ pFmt->SetAttr(aSet);
++ }
++ else
+ pFmt->SetAttr(aSet);
+ }
+ }
--- sw/source/core/unocore/unotbl.cxx 10 Jan 2008 12:31:03 -0000 1.113
+++ sw/source/core/unocore/unotbl.cxx 22 Jan 2008 13:08:49 -0000 1.113.2.1
@@ -769,6 +769,9 @@ void lcl_SetTblSeparators(const uno::Any
Modified: trunk/patches/src680/apply
==============================================================================
--- trunk/patches/src680/apply (original)
+++ trunk/patches/src680/apply Fri Feb 29 09:31:46 2008
@@ -1655,25 +1655,21 @@
cws-xmlfilter02-toolkit.diff
cws-xmlfilter03-sw.diff
+cws-xmlfilter03-sc.diff
cws-xmlfilter03-offapi.diff
win32-installer-register-moox-types.diff
-oox-depends-on-tools.diff, i#85614
-oox-fasttokenizer-fix.diff
writerfilter-module-writer.diff
+writerfilter-source-dmapper-domainmapper-debug.diff
+
[ OOXML < ooh680-m6 ]
gperf-3-is-needed-m5.diff
[ OOXML >= ooh680-m6 ]
gperf-3-is-needed.diff
-[ OOXML ]
-writerfilter-source-dmapper-domainmapper-debug.diff
-
-writerfilter-source-resourcemodel-util_cxx.diff
-
[ CalcFixes ]
# Allow comma as a cell separators in functions
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]