/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
sal_uInt32 FunctionDescription::getVarArgsStart() const
{ /* XXX there are no variable number of arguments, are there? Nevertheless * consider the varargs handling of the Function Wizard and return a value
* within the bounds of parameters. */ // Don't use defines/constants that could change in future, parameter count // could be part of an implicit stable API. // offapi/com/sun/star/report/meta/XFunctionDescription.idl doesn't tell. const sal_uInt32 nVarArgs30 = 30; // ugly hard coded old VAR_ARGS of formula::ParaWin const sal_uInt32 nPairedVarArgs60 = 60; // ugly hard coded old PAIRED_VAR_ARGS of formula::ParaWin const sal_uInt32 nVarArgs255 = 255; // ugly hard coded new VAR_ARGS of formula::ParaWin const sal_uInt32 nPairedVarArgs510 = 510; // ugly hard coded new PAIRED_VAR_ARGS of formula::ParaWin
sal_uInt32 nLen = m_aParameter.getLength(); // If the value of VAR_ARGS changes then adapt *and* maintain implicit API // stability, ie. old code using the old VAR_ARGS and PAIRED_VAR_ARGS // values must still be handled. It is *not* sufficient to simply change // the values here.
static_assert(nVarArgs255 == VAR_ARGS && nPairedVarArgs510 == PAIRED_VAR_ARGS, "VAR_ARGS or PAIRED_VAR_ARGS has unexpected value"); if (nLen >= nPairedVarArgs510)
nLen -= nPairedVarArgs510; elseif (nLen >= nVarArgs255)
nLen -= nVarArgs255; elseif (nLen >= nPairedVarArgs60)
nLen -= nPairedVarArgs60; elseif (nLen >= nVarArgs30)
nLen -= nVarArgs30; return nLen ? nLen - 1 : 0;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.