diff options
author | Jan Holesovsky <kendy@suse.cz> | 2011-03-23 16:59:26 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2011-03-23 16:59:26 +0100 |
commit | d4e88719d67c5cadb55c85cd372d412fd969c613 (patch) | |
tree | 7213e99d8df05f9676cacb75e43f8a0789b263ab /xmloff | |
parent | dab1b528ed2e2e0f7c494b3d955d8e0ba9798c0a (diff) | |
parent | d46e1d383278641d664dce56965c11b05ac95b4a (diff) |
Merge commit 'ooo/DEV300_m103'
Conflicts:
basic/source/runtime/makefile.mk
basic/source/runtime/step2.cxx
desktop/prj/build.lst
desktop/source/app/app.cxx
desktop/source/deployment/registry/dp_backend.cxx
drawinglayer/source/attribute/fontattribute.cxx
editeng/inc/editeng/fontitem.hxx
editeng/source/editeng/edtspell.cxx
editeng/source/misc/svxacorr.cxx
framework/inc/services/substitutepathvars.hxx
framework/source/services/substitutepathvars.cxx
sfx2/qa/cppunit/makefile.mk
sfx2/source/doc/SfxDocumentMetaData.cxx
sfx2/source/doc/objxtor.cxx
svx/source/dialog/svxruler.cxx
sysui/desktop/icons/so9_base_app.ico
sysui/desktop/icons/so9_calc_app.ico
sysui/desktop/icons/so9_draw_app.ico
sysui/desktop/icons/so9_impress_app.ico
sysui/desktop/icons/so9_main_app.ico
sysui/desktop/icons/so9_math_app.ico
sysui/desktop/icons/so9_writer_app.ico
xmlhelp/source/cxxhelp/provider/databases.cxx
xmlhelp/source/cxxhelp/provider/db.cxx
xmlhelp/source/cxxhelp/provider/db.hxx
Diffstat (limited to 'xmloff')
-rwxr-xr-x | xmloff/source/chart/SchXMLExport.cxx | 143 | ||||
-rwxr-xr-x | xmloff/source/chart/SchXMLSeries2Context.cxx | 9 | ||||
-rwxr-xr-x | xmloff/source/chart/SchXMLTools.cxx | 2 | ||||
-rwxr-xr-x | xmloff/source/core/xmlexp.cxx | 9 | ||||
-rwxr-xr-x | xmloff/source/draw/shapeexport.cxx | 2 | ||||
-rwxr-xr-x | xmloff/source/style/xmlnume.cxx | 24 | ||||
-rwxr-xr-x | xmloff/source/style/xmlnumi.cxx | 16 | ||||
-rwxr-xr-x | xmloff/source/text/XMLAutoTextEventExport.cxx | 3 | ||||
-rwxr-xr-x | xmloff/source/text/txtprhdl.cxx | 3 | ||||
-rwxr-xr-x | xmloff/source/transform/PropertyActionsOOo.cxx | 2 |
10 files changed, 161 insertions, 52 deletions
diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx index 9921ab4478..7d743508c9 100755 --- a/xmloff/source/chart/SchXMLExport.cxx +++ b/xmloff/source/chart/SchXMLExport.cxx @@ -604,24 +604,20 @@ OUString lcl_flattenStringSequence( const Sequence< OUString > & rSequence ) return aResult.makeStringAndClear(); } -OUString lcl_getLabelString( const Reference< chart2::data::XDataSequence > & xLabelSeq ) +void lcl_getLabelStringSequence( Sequence< OUString >& rOutLabels, const Reference< chart2::data::XDataSequence > & xLabelSeq ) { - Sequence< OUString > aLabels; - uno::Reference< chart2::data::XTextualDataSequence > xTextualDataSequence( xLabelSeq, uno::UNO_QUERY ); if( xTextualDataSequence.is()) { - aLabels = xTextualDataSequence->getTextualData(); + rOutLabels = xTextualDataSequence->getTextualData(); } else if( xLabelSeq.is()) { Sequence< uno::Any > aAnies( xLabelSeq->getData()); - aLabels.realloc( aAnies.getLength()); + rOutLabels.realloc( aAnies.getLength()); for( sal_Int32 i=0; i<aAnies.getLength(); ++i ) - aAnies[i] >>= aLabels[i]; + aAnies[i] >>= rOutLabels[i]; } - - return lcl_flattenStringSequence( aLabels ); } sal_Int32 lcl_getMaxSequenceLength( @@ -641,46 +637,96 @@ sal_Int32 lcl_getMaxSequenceLength( return nResult; } -double lcl_getValueFromSequence( const Reference< chart2::data::XDataSequence > & xSeq, sal_Int32 nIndex ) +uno::Sequence< rtl::OUString > lcl_DataSequenceToStringSequence( + const uno::Reference< chart2::data::XDataSequence >& xDataSequence ) { - double fResult = 0.0; - ::rtl::math::setNan( &fResult ); - Reference< chart2::data::XNumericalDataSequence > xNumSeq( xSeq, uno::UNO_QUERY ); - if( xNumSeq.is()) + uno::Sequence< rtl::OUString > aResult; + if(!xDataSequence.is()) + return aResult; + + uno::Reference< chart2::data::XTextualDataSequence > xTextualDataSequence( xDataSequence, uno::UNO_QUERY ); + if( xTextualDataSequence.is() ) { - Sequence< double > aValues( xNumSeq->getNumericalData()); - if( nIndex < aValues.getLength() ) - fResult = aValues[nIndex]; + aResult = xTextualDataSequence->getTextualData(); } else { - Sequence< uno::Any > aAnies( xSeq->getData()); - if( nIndex < aAnies.getLength() ) - aAnies[nIndex] >>= fResult; + uno::Sequence< uno::Any > aValues = xDataSequence->getData(); + aResult.realloc(aValues.getLength()); + + for(sal_Int32 nN=aValues.getLength();nN--;) + aValues[nN] >>= aResult[nN]; } - return fResult; -} + return aResult; +} ::std::vector< double > lcl_getAllValuesFromSequence( const Reference< chart2::data::XDataSequence > & xSeq ) { double fNan = 0.0; ::rtl::math::setNan( &fNan ); ::std::vector< double > aResult; + if(!xSeq.is()) + return aResult; + uno::Sequence< double > aValuesSequence; Reference< chart2::data::XNumericalDataSequence > xNumSeq( xSeq, uno::UNO_QUERY ); - if( xNumSeq.is()) + if( xNumSeq.is() ) { - Sequence< double > aValues( xNumSeq->getNumericalData()); - ::std::copy( aValues.getConstArray(), aValues.getConstArray() + aValues.getLength(), - ::std::back_inserter( aResult )); + aValuesSequence = xNumSeq->getNumericalData(); } - else if( xSeq.is()) + else { - Sequence< uno::Any > aAnies( xSeq->getData()); - aResult.resize( aAnies.getLength(), fNan ); + Sequence< uno::Any > aAnies( xSeq->getData() ); + aValuesSequence.realloc( aAnies.getLength() ); for( sal_Int32 i=0; i<aAnies.getLength(); ++i ) - aAnies[i] >>= aResult[i]; + aAnies[i] >>= aValuesSequence[i]; + } + + //special handling for x-values (if x-values do point to categories, indices are used instead ) + Reference< beans::XPropertySet > xProp( xSeq, uno::UNO_QUERY ); + if( xProp.is() ) + { + OUString aRole; + xProp->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "Role") ) ) >>= aRole; + if( aRole.match( OUString( RTL_CONSTASCII_USTRINGPARAM( "values-x") ) ) ) + { + //lcl_clearIfNoValuesButTextIsContained - replace by indices if the values are not appropriate + bool bHasValue=false; + bool bHasText=false; + sal_Int32 nCount = aValuesSequence.getLength(); + for( sal_Int32 j = 0; j < nCount; ++j ) + { + if( !::rtl::math::isNan( aValuesSequence[j] ) ) + { + bHasValue=true; + break; + } + } + if(!bHasValue) + { + //no double value is countained + //is there any text? + uno::Sequence< rtl::OUString > aStrings( lcl_DataSequenceToStringSequence( xSeq ) ); + sal_Int32 nTextCount = aStrings.getLength(); + for( sal_Int32 j = 0; j < nTextCount; ++j ) + { + if( aStrings[j].getLength() ) + { + bHasText=true; + break; + } + } + } + if( !bHasValue && bHasText ) + { + for( sal_Int32 j = 0; j < nCount; ++j ) + aValuesSequence[j] = j+1; + } + } } + + ::std::copy( aValuesSequence.getConstArray(), aValuesSequence.getConstArray() + aValuesSequence.getLength(), + ::std::back_inserter( aResult )); return aResult; } @@ -805,15 +851,20 @@ lcl_TableData lcl_getDataForLocalTable( Sequence< OUString > aSimpleCategories; if( xAnyDescriptionAccess.is() ) { + //categories if( bSeriesFromColumns ) + { aSimpleCategories = xAnyDescriptionAccess->getRowDescriptions(); + aResult.aComplexRowDescriptions = xAnyDescriptionAccess->getAnyRowDescriptions(); + } else + { aSimpleCategories = xAnyDescriptionAccess->getColumnDescriptions(); - - aResult.aComplexColumnDescriptions = xAnyDescriptionAccess->getAnyColumnDescriptions(); - aResult.aComplexRowDescriptions = xAnyDescriptionAccess->getAnyRowDescriptions(); + aResult.aComplexColumnDescriptions = xAnyDescriptionAccess->getAnyColumnDescriptions(); + } } + //series values and series labels SchXMLExportHelper_Impl::tDataSequenceCont::size_type nNumSequences = aSequencesToExport.size(); SchXMLExportHelper_Impl::tDataSequenceCont::const_iterator aBegin( aSequencesToExport.begin()); SchXMLExportHelper_Impl::tDataSequenceCont::const_iterator aEnd( aSequencesToExport.end()); @@ -842,7 +893,7 @@ lcl_TableData lcl_getDataForLocalTable( tStringVector& rCategories = bSeriesFromColumns ? aResult.aRowDescriptions : aResult.aColumnDescriptions; tStringVector& rLabels = bSeriesFromColumns ? aResult.aColumnDescriptions : aResult.aRowDescriptions; - + //categories lcl_SequenceToVector( aSimpleCategories, rCategories ); if( rCategoriesRange.getLength() ) @@ -858,19 +909,25 @@ lcl_TableData lcl_getDataForLocalTable( // iterate over all sequences size_t nSeqIdx = 0; + Sequence< Sequence< OUString > > aComplexLabels(nNumSequences); for( ; aIt != aEnd; ++aIt, ++nSeqIdx ) { OUString aRange; + Sequence< OUString >& rCurrentComplexLabel = aComplexLabels[nSeqIdx]; if( aIt->first.is()) { - rLabels[nSeqIdx] = lcl_getLabelString( aIt->first ); + lcl_getLabelStringSequence( rCurrentComplexLabel, aIt->first ); + rLabels[nSeqIdx] = lcl_flattenStringSequence( rCurrentComplexLabel ); aRange = aIt->first->getSourceRangeRepresentation(); if( xRangeConversion.is()) aRange = xRangeConversion->convertRangeToXML( aRange ); } else if( aIt->second.is()) - rLabels[nSeqIdx] = lcl_flattenStringSequence( + { + rCurrentComplexLabel.realloc(1); + rLabels[nSeqIdx] = rCurrentComplexLabel[0] = lcl_flattenStringSequence( aIt->second->generateLabel( chart2::data::LabelOrigin_SHORT_SIDE )); + } if( bSeriesFromColumns ) aResult.aColumnDescriptions_Ranges.push_back( aRange ); else @@ -898,6 +955,16 @@ lcl_TableData lcl_getDataForLocalTable( if( !lcl_SequenceHasUnhiddenData(aIt->first) && !lcl_SequenceHasUnhiddenData(aIt->second) ) aResult.aHiddenColumns.push_back(nSeqIdx); } + Sequence< Sequence< Any > >& rComplexAnyLabels = bSeriesFromColumns ? aResult.aComplexColumnDescriptions : aResult.aComplexRowDescriptions;//#i116544# + rComplexAnyLabels.realloc(aComplexLabels.getLength()); + for( sal_Int32 nN=0; nN<aComplexLabels.getLength();nN++ ) + { + Sequence< OUString >& rSource = aComplexLabels[nN]; + Sequence< Any >& rTarget = rComplexAnyLabels[nN]; + rTarget.realloc( rSource.getLength() ); + for( sal_Int32 i=0; i<rSource.getLength(); i++ ) + rTarget[i] = uno::makeAny( rSource[i] ); + } } catch( uno::Exception & rEx ) { @@ -1765,7 +1832,7 @@ void SchXMLExportHelper_Impl::exportTable() for( t2DNumberContainer::const_iterator aRowIt( aData.aDataInRows.begin()) ; aRowIt != aData.aDataInRows.end() - ; aRowIt++, nC++, aRowDescriptionsIter++ ) + ; ++aRowIt, ++nC ) { SvXMLElementExport aRow( mrExport, XML_NAMESPACE_TABLE, XML_TABLE_ROW, sal_True, sal_True ); @@ -1803,8 +1870,10 @@ void SchXMLExportHelper_Impl::exportTable() if( !bHasOwnData && aRowDescriptions_RangeIter != aRowDescriptions_RangeEnd ) { // remind the original range to allow a correct re-association when copying via clipboard - SchXMLTools::exportRangeToSomewhere( mrExport, *aRowDescriptions_RangeIter++ ); + SchXMLTools::exportRangeToSomewhere( mrExport, *aRowDescriptions_RangeIter ); + ++aRowDescriptions_RangeIter; } + ++aRowDescriptionsIter; } } diff --git a/xmloff/source/chart/SchXMLSeries2Context.cxx b/xmloff/source/chart/SchXMLSeries2Context.cxx index 8b0c12f839..14b330f378 100755 --- a/xmloff/source/chart/SchXMLSeries2Context.cxx +++ b/xmloff/source/chart/SchXMLSeries2Context.cxx @@ -422,7 +422,7 @@ void SchXMLSeries2Context::StartElement( const uno::Reference< xml::sax::XAttrib // values Reference< chart2::data::XDataSequence > xSeq; - if( bHasRange ) + if( bHasRange && m_aSeriesRange.getLength() ) xSeq = SchXMLTools::CreateDataSequence( m_aSeriesRange, mxNewDoc ); Reference< beans::XPropertySet > xSeqProp( xSeq, uno::UNO_QUERY ); @@ -441,7 +441,7 @@ void SchXMLSeries2Context::StartElement( const uno::Reference< xml::sax::XAttrib tSchXMLIndexWithPart( m_rGlobalSeriesImportInfo.nCurrentDataIndex, SCH_XML_PART_VALUES ), xLabeledSeq )); // label - if( bHasLabelRange ) + if( bHasLabelRange && m_aSeriesLabelRange.getLength() ) { Reference< chart2::data::XDataSequence > xLabelSequence = SchXMLTools::CreateDataSequence( m_aSeriesLabelRange, mxNewDoc ); @@ -580,6 +580,11 @@ void SchXMLSeries2Context::EndElement() aDomainInfos.push_back( aDomainInfo ); m_rGlobalSeriesImportInfo.nCurrentDataIndex++; } + else if( m_rGlobalSeriesImportInfo.aFirstFirstDomainAddress.getLength() ) + { + DomainInfo aDomainInfo( OUString::createFromAscii("values-y"), m_rGlobalSeriesImportInfo.aFirstFirstDomainAddress, m_rGlobalSeriesImportInfo.nFirstFirstDomainIndex ) ; + aDomainInfos.push_back( aDomainInfo ); + } } if( bDeleteSeries ) diff --git a/xmloff/source/chart/SchXMLTools.cxx b/xmloff/source/chart/SchXMLTools.cxx index 6ef163023c..b713eca982 100755 --- a/xmloff/source/chart/SchXMLTools.cxx +++ b/xmloff/source/chart/SchXMLTools.cxx @@ -416,7 +416,7 @@ Reference< chart2::data::XDataSequence > CreateDataSequence( OSL_FAIL( "could not create data sequence" ); } - if( !xRet.is() && !xChartDoc->hasInternalDataProvider() ) + if( !xRet.is() && !xChartDoc->hasInternalDataProvider() && rRange.getLength() ) { //#i103911# switch to internal data in case the parent cannot provide the requested data xChartDoc->createInternalDataProvider( sal_True /* bCloneExistingData */ ); diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx index 901ac9781c..064fb96eda 100755 --- a/xmloff/source/core/xmlexp.cxx +++ b/xmloff/source/core/xmlexp.cxx @@ -116,8 +116,8 @@ using namespace ::xmloff::token; sal_Char const sXML_1_1[] = "1.1"; sal_Char const sXML_1_2[] = "1.2"; -const sal_Char s_grddl_xsl[] = - "http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl"; +// #i115030#: the XSLT is not finished, and not available via HTTP +const sal_Char s_grddl_xsl[] = "http://FIXME"; #define LOGFILE_AUTHOR "mb93740" @@ -1260,7 +1260,7 @@ void SvXMLExport::SetBodyAttributes() } static void -lcl_AddGrddl(SvXMLExport & rExport, const sal_Int32 nExportMode) +lcl_AddGrddl(SvXMLExport & rExport, const sal_Int32 /*nExportMode*/) { // check version >= 1.2 switch (rExport.getDefaultVersion()) { @@ -1269,11 +1269,14 @@ lcl_AddGrddl(SvXMLExport & rExport, const sal_Int32 nExportMode) default: break; } + // #i115030#: disabled +#if 0 if (EXPORT_SETTINGS != nExportMode) // meta, content, styles { rExport.AddAttribute( XML_NAMESPACE_GRDDL, XML_TRANSFORMATION, OUString(RTL_CONSTASCII_USTRINGPARAM(s_grddl_xsl)) ); } +#endif } sal_uInt32 SvXMLExport::exportDoc( enum ::xmloff::token::XMLTokenEnum eClass ) diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx index f6541a71ec..b6cae94ac0 100755 --- a/xmloff/source/draw/shapeexport.cxx +++ b/xmloff/source/draw/shapeexport.cxx @@ -694,7 +694,7 @@ void XMLShapeExport::exportShape(const uno::Reference< drawing::XShape >& xShape if( xSet.is() && ( mrExport.getDefaultVersion() > SvtSaveOptions::ODFVER_012 ) ) { if( aShapeInfo.meShapeType != XmlShapeTypeDrawPageShape && aShapeInfo.meShapeType != XmlShapeTypePresPageShape && - aShapeInfo.meShapeType != XmlShapeTypeHandoutShape ) + aShapeInfo.meShapeType != XmlShapeTypeHandoutShape && aShapeInfo.meShapeType != XmlShapeTypeDrawChartShape ) try { diff --git a/xmloff/source/style/xmlnume.cxx b/xmloff/source/style/xmlnume.cxx index 8f048d4efc..a472d61eb6 100755 --- a/xmloff/source/style/xmlnume.cxx +++ b/xmloff/source/style/xmlnume.cxx @@ -291,15 +291,25 @@ void SvxXMLNumRuleExport::exportLevelStyle( sal_Int32 nLevel, sTmp.append( nLevel + 1 ); GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_LEVEL, sTmp.makeStringAndClear() ); // #i110694#: no style-name on list-level-style-image - if ((sTextStyleName.getLength() > 0) && (NumberingType::BITMAP != eType)) + // #i116149#: neither prefix/suffix + if (NumberingType::BITMAP != eType) { - GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_STYLE_NAME, - GetExport().EncodeStyleName( sTextStyleName ) ); + if (sTextStyleName.getLength() > 0) + { + GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_STYLE_NAME, + GetExport().EncodeStyleName( sTextStyleName ) ); + } + if (sPrefix.getLength() > 0) + { + GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NUM_PREFIX, + sPrefix ); + } + if (sSuffix.getLength() > 0) + { + GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NUM_SUFFIX, + sSuffix ); + } } - if( sPrefix.getLength() > 0 ) - GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NUM_PREFIX, sPrefix ); - if( sSuffix.getLength() > 0 ) - GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_NUM_SUFFIX, sSuffix ); enum XMLTokenEnum eElem = XML_LIST_LEVEL_STYLE_NUMBER; if( NumberingType::CHAR_SPECIAL == eType ) diff --git a/xmloff/source/style/xmlnumi.cxx b/xmloff/source/style/xmlnumi.cxx index f434f00a77..81b65c2cf9 100755 --- a/xmloff/source/style/xmlnumi.cxx +++ b/xmloff/source/style/xmlnumi.cxx @@ -491,6 +491,22 @@ Sequence<beans::PropertyValue> SvxXMLListLevelStyleContext_Impl::GetProperties( nCount++; } + if (bBullet && sSuffix.getLength()) + { + sal_uInt16 const nVersion(GetImport().getGeneratorVersion()); + sal_Int32 nUPD; + sal_Int32 nBuildId; + if (GetImport().getBuildIds(nUPD, nBuildId) + && ( (SvXMLImport::OOo_1x == nVersion) + || (SvXMLImport::OOo_2x == nVersion) + || (310 == nUPD) || (320 == nUPD) || (330 == nUPD) + || ((300 == nUPD) && (nBuildId <= 9573)))) + { + // #i93908# OOo < 3.4 wrote a bogus suffix for bullet chars + sSuffix = ::rtl::OUString(); // clear it + } + } + Sequence<beans::PropertyValue> aPropSeq( nCount ); if( nCount > 0 ) { diff --git a/xmloff/source/text/XMLAutoTextEventExport.cxx b/xmloff/source/text/XMLAutoTextEventExport.cxx index 90279eed6d..3d0d08f081 100755 --- a/xmloff/source/text/XMLAutoTextEventExport.cxx +++ b/xmloff/source/text/XMLAutoTextEventExport.cxx @@ -210,6 +210,9 @@ void XMLAutoTextEventExport::addNamespaces() GetAttrList().AddAttribute( GetNamespaceMap().GetAttrNameByIndex( XML_NAMESPACE_OOO ), GetNamespaceMap().GetNameByIndex( XML_NAMESPACE_OOO ) ); + GetAttrList().AddAttribute( + GetNamespaceMap().GetAttrNameByIndex( XML_NAMESPACE_XLINK ), + GetNamespaceMap().GetNameByIndex( XML_NAMESPACE_XLINK ) ); } void XMLAutoTextEventExport::exportEvents() diff --git a/xmloff/source/text/txtprhdl.cxx b/xmloff/source/text/txtprhdl.cxx index ed9810d4a6..dd774e916e 100755 --- a/xmloff/source/text/txtprhdl.cxx +++ b/xmloff/source/text/txtprhdl.cxx @@ -1031,7 +1031,8 @@ sal_Bool XMLTextCombineCharPropHdl_Impl::exportXML( { rValue >>= rStrExpValue; - return sal_True; + // #i114107# attribute of type "character": export only if length is 1 + return (1 == rStrExpValue.getLength()) ? sal_True : sal_False; } XMLTextCombineCharPropHdl_Impl::~XMLTextCombineCharPropHdl_Impl() diff --git a/xmloff/source/transform/PropertyActionsOOo.cxx b/xmloff/source/transform/PropertyActionsOOo.cxx index 265f42f1e1..dc2c0677cc 100755 --- a/xmloff/source/transform/PropertyActionsOOo.cxx +++ b/xmloff/source/transform/PropertyActionsOOo.cxx @@ -648,6 +648,8 @@ XMLTransformerActionInit aTextPropertyOOoAttrActionTable[] = NO_PARAMS }, /* #i113645# */ { XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_COLOR, XML_ATACTION_REMOVE, NO_PARAMS }, /* #i113645# */ + { XML_NAMESPACE_FO, XML_WRAP_OPTION, XML_ATACTION_REMOVE, + NO_PARAMS }, /* #i116555# */ { XML_NAMESPACE_OFFICE, XML_TOKEN_INVALID, XML_ATACTION_EOT, NO_PARAMS } }; |