Fix typos in src/App

This commit is contained in:
luz.paz
2019-07-19 15:18:29 -04:00
committed by wmayer
parent 951d872831
commit 3a1a6eb7d8
18 changed files with 75 additions and 76 deletions

View File

@@ -141,14 +141,14 @@ public:
/** Setup a pending application-wide active transaction
*
* @param name: new transaction name
* @param persist: by default, if the calling code is inside any invokation
* @param persist: by default, if the calling code is inside any invocation
* of a command, it will be auto closed once all command within the current
* stack exists. To disable auto closing, set persist=true
*
* @return The new transaction ID.
*
* Call this function to setup an application-wide transaction. All current
* pending transactions of opening documents will be commited first.
* pending transactions of opening documents will be committed first.
* However, no new transaction is created by this call. Any subsequent
* changes in any current opening document will auto create a transaction
* with the given name and ID. If more than one document is changed, the
@@ -163,7 +163,7 @@ public:
*
* Bsides calling this function directly, it will be called by automatically
* if 1) any new transaction is created with a different ID, or 2) any
* transaction with the current active transaction ID is either commited or
* transaction with the current active transaction ID is either committed or
* aborted
*/
void closeActiveTransaction(bool abort=false, int id=0);
@@ -575,11 +575,11 @@ private:
void* operator new(size_t size);
public:
/** Construtor
/** Constructor
*
* @param name: optional new transaction name on construction
* @param tmpName: if true and a new transaction is setup, the name given is
* considered as temperary, and subsequent construction of this class (or
* considered as temporary, and subsequent construction of this class (or
* calling Application::setActiveTransaction()) can override the transaction
* name.
*
@@ -609,7 +609,7 @@ public:
/** Enable/Disable any AutoTransaction instance in the current stack
*
* Once disabled, any empty temperary named transaction is closed. If there
* Once disabled, any empty temporary named transaction is closed. If there
* are non-empty or non-temperary named active transaction, it will not be
* auto closed.
*

View File

@@ -161,8 +161,8 @@ PyMethodDef Application::Methods[] = {
{"setActiveTransaction", (PyCFunction) Application::sSetActiveTransaction, METH_VARARGS,
"setActiveTransaction(name, persist=False) -- setup active transaction with the given name\n\n"
"name: the transaction name\n"
"persist(False): by default, if the calling code is inside any invokation of a command, it\n"
" will be auto closed once all command within the current stack exists. To\n"
"persist(False): by default, if the calling code is inside any invocation of a command, it\n"
" will be auto closed once all commands within the current stack exists. To\n"
" disable auto closing, set persist=True\n"
"Returns the transaction ID for the active transaction. An application-wide\n"
"active transaction causes any document changes to open a transaction with\n"

View File

@@ -158,9 +158,9 @@ public:
/** @name Element name mapping */
//@{
/// Sepecial prefix to mark the begining of a mapped sub-element name
/// Special prefix to mark the beginning of a mapped sub-element name
static const std::string &elementMapPrefix();
/// Sepecial postfix to mark the following tag
/// Special postfix to mark the following tag
static const std::string &tagPostfix();
/// Speical postfix to mark the index of an array element
static const std::string &indexPostfix();
@@ -176,7 +176,7 @@ public:
*/
static const char *isMappedElement(const char *name);
/// Strip out the trailing element name if there is mapped element name preceeds it.
/// Strip out the trailing element name if there is mapped element name precedes it.
static std::string newElementName(const char *name);
/// Strip out the mapped element name if there is one.
static std::string oldElementName(const char *name);

View File

@@ -191,7 +191,7 @@ struct DocumentP
static std::random_device _RD;
static std::mt19937 _RGEN(_RD());
static std::uniform_int_distribution<> _RDIST(0,5000);
// Set some random offset to reduce likelyhood of ID collison when
// Set some random offset to reduce likelihood of ID collison when
// copying shape from other document. It is probably better to randomize
// on each object ID.
lastObjectId = _RDIST(_RGEN);
@@ -2131,7 +2131,7 @@ static std::string checkFileName(const char *file) {
std::string fn(file);
// Append extension if missing. This option is added for security reason, so
// that the user won't accidently overwrite other file that may be critical.
// that the user won't accidentally overwrite other file that may be critical.
if(App::GetApplication().GetParameterGroupByPath
("User parameter:BaseApp/Preferences/Document")->GetBool("CheckExtension",true))
{
@@ -3990,7 +3990,7 @@ Document::importLinks(const std::vector<App::DocumentObject*> &objArray)
// Then change them in one go. Note that we don't make change in previous
// loop, because a changed link property may break other depending link
// properties, e.g. a link sub refering to some sub object of an xlink, If
// properties, e.g. a link sub referring to some sub object of an xlink, If
// that sub object is imported with a different name, and xlink is changed
// before this link sub, it will break.
for(auto &v : propMap)
@@ -4029,7 +4029,7 @@ DocumentObject* Document::moveObject(DocumentObject* obj, bool recursive)
if(objs.empty())
return 0;
// Some object may delete its children if deleted, so we collect the IDs
// or all depdending objects for saftey reason.
// or all depdending objects for safety reason.
std::vector<int> ids;
ids.reserve(deps.size());
for(auto o : deps)

View File

@@ -348,7 +348,7 @@ public:
* transactions, meaning that there are other transactions before the given
* ID. The Gui component shall ask user if he wants to undo multiple steps.
* And if the user agrees, call undo(id) to unroll all transaction before
* and including the the one with the give ID. Same apllies for redo.
* and including the the one with the give ID. Same applies for redo.
*
* The new transaction ID describe here is fully backward compatible.
* Calling the APIs with a default id=0 gives the original behavior.
@@ -432,7 +432,7 @@ public:
*
* This function is defined as static because it accpets objects from
* different documents, and the returned list will contain dependent
* objects from all relavent documents
* objects from all relevant documents
*
* @param objs: input objects to query for dependency.
* @param options: See DependencyOption

View File

@@ -407,7 +407,7 @@ void DocumentObject::getInListEx(std::set<App::DocumentObject*> &inSet,
if(v.first == obj) continue;
auto &outList = v.second;
// Check the outList to see if the object is there, and pend the
// object for recrusive check if it's not already in the inList
// object for recursive check if it's not already in the inList
if(outList.find(obj)!=outList.end() &&
inSet.insert(v.first).second &&
recursive)
@@ -1016,7 +1016,7 @@ DocumentObject *DocumentObject::resolve(const char *subname,
if(!parent && !subElement)
return obj;
// NOTE, the convension of '.' separated SubName demands a mandatory ending
// NOTE, the convention of '.' separated SubName demands a mandatory ending
// '.' for each object name in SubName, even if there is no subelement
// following it. So finding the last dot will give us the end of the last
// object name.

View File

@@ -175,14 +175,14 @@ public:
* For performance reason, \c element must not contain any further
* sub-elements, i.e. there should be no '.' inside \c element.
*
* @return -1 if element visiblity is not supported, 0 if element is not
* @return -1 if element visibility is not supported, 0 if element is not
* found, 1 if success
*/
virtual int setElementVisible(const char *element, bool visible);
/** Get sub-element visibility
*
* @return -1 if element visiblity is not supported or element not found, 0
* @return -1 if element visibility is not supported or element not found, 0
* if element is invisible, or else 1
*/
virtual int isElementVisible(const char *element) const;
@@ -329,7 +329,7 @@ public:
*
* @param depth: depth limitation as hint for cyclic link detection
*
* @return The last document object refered in subname. If subname is empty,
* @return The last document object referred in subname. If subname is empty,
* then it shall return itself. If subname is invalid, then it shall return
* zero.
*/
@@ -447,13 +447,13 @@ public:
/** Resolve a link reference that is relative to this object reference
*
* @param subname: on input, this is the subname reference to the object
* that is to be assigned a link. On output, the reference may be offseted
* that is to be assigned a link. On output, the reference may be offsetted
* to be rid off any common parent.
* @param link: on input, this is the top parent of the link reference. On
* output, it may be altered to one of its child to be rid off any common
* parent.
* @param linkSub: on input, this the subname of the link reference. On
* output, it may be offseted to be rid off any common parent.
* output, it may be offsetted to be rid off any common parent.
*
* @return The corrected top parent of the object that is to be assigned the
* link. If the output 'subname' is empty, then return the object itself.
@@ -534,7 +534,7 @@ public:
virtual bool redirectSubName(std::ostringstream &ss,
DocumentObject *topParent, DocumentObject *child) const;
/** Sepecial marker to mark the object as hidden
/** Special marker to mark the object as hidden
*
* It is used by Gui::ViewProvider::getElementColors(), but exposed here
* for convenience

View File

@@ -71,7 +71,7 @@ referencing subobject.
* retType: return type, 0=PyObject, 1=DocObject, 2=DocAndPyObject, 3=Placement
PyObject: return a python binding object for the (sub)object referenced in
each 'subname' The actual type of 'PyObject' is impelementation dependent.
each 'subname' The actual type of 'PyObject' is implementation dependent.
For Part::Feature compatible objects, this will be of type TopoShapePy and
pre-transformed by accumulated transformation matrix along the object path.
@@ -111,11 +111,11 @@ Return a list of objects referenced by a given subname including this object
getLinkedObject(recursive=True, matrix=None, transform=True, depth=0)
Returns the linked object if there is one, or else return itself
* recusive: whether to recursively resolve the links
* recursive: whether to recursively resolve the links
* transform: whether to transform the sub object using this object's placement
* matrix: If not none, this sepcifies the initial transformation to be applied
* matrix: If not none, this specifies the initial transformation to be applied
to the sub object. And cause the method to return a tuple (object, matrix)
containing the accumulated transformation matrix
@@ -181,7 +181,7 @@ non-object sub-element name if any.
<UserDocu>
resolveSubElement(subname,append,type) -- resolve both new and old style sub element
subname: subname reference contianing object hierarchy
subname: subname reference containing object hierarchy
append: Whether to append object hierarchy prefix inside subname to returned element name
type: 0: normal, 1: for import, 2: for export

View File

@@ -697,7 +697,7 @@ PyObject* DocumentObjectPy::getPathsByOutList(PyObject *args)
PyObject *DocumentObjectPy::getCustomAttributes(const char* attr) const
{
// Dynamic proeprty is now directly supported in PropertyContainer. So we
// Dynamic property is now directly supported in PropertyContainer. So we
// can comment out here and let PropertyContainerPy handle it.
#if 1
(void)attr;
@@ -714,7 +714,7 @@ PyObject *DocumentObjectPy::getCustomAttributes(const char* attr) const
int DocumentObjectPy::setCustomAttributes(const char* attr, PyObject *obj)
{
// The following code is practically the same as in PropertyContainerPy,
// especially since now dynamic proeprty is directly supported in
// especially since now dynamic property is directly supported in
// PropertyContainer. So we can comment out here and let PropertyContainerPy
// handle it.
#if 1

View File

@@ -260,9 +260,9 @@ class FCADLogger(object):
The default output format is:
<timestamp> <tag> <source file>(line number): message
The message is formated using new style Python string formating, e.g.
'test {}'.format(1). It is strongly recommanded to not directly use
Python string formating, but pass additional argument indirectly through
The message is formatted using new style Python string formatting, e.g.
'test {}'.format(1). It is strongly recommended to not directly use
Python string formatting, but pass additional argument indirectly through
various logger print function, because the logger can skip string
evaluation in case the logging level is disabled. For more options,
please consult the docstring of __init__(), catch() and report().
@@ -285,7 +285,7 @@ class FCADLogger(object):
you to define your own levels. The level set is persisted to user
configuration file.
By defult any tag has a log level of 2 for release, and 3 for debug
By default any tag has a log level of 2 for release, and 3 for debug
build.
'''
@@ -325,7 +325,7 @@ class FCADLogger(object):
* lineno (True): whether to print source file and line number
* parent (None): provide a parent logger, so that the log printting will
* parent (None): provide a parent logger, so that the log printing will
check for parent's log level in addition of its own
* title ('FreeCAD'): message box title used by report()
@@ -363,8 +363,8 @@ class FCADLogger(object):
This function accepts additional positional and keyword arguments,
which are forward to string.format() to generate the logging
message. It is strongly recommanded to not directly use Python
string formating, but pass additional arguments here, because the
message. It is strongly recommended to not directly use Python
string formatting, but pass additional arguments here, because the
printer can skip string evaluation in case the logging level is
disabled.
'''
@@ -379,8 +379,8 @@ class FCADLogger(object):
This function accepts additional positional and keyword arguments,
which are forward to string.format() to generate the logging
message. It is strongly recommanded to not directly use Python
string formating, but pass additional arguments here, because the
message. It is strongly recommended to not directly use Python
string formatting, but pass additional arguments here, because the
printer can skip string evaluation in case the logging level is
disabled.
'''
@@ -395,8 +395,8 @@ class FCADLogger(object):
This function accepts additional positional and keyword arguments,
which are forward to string.format() to generate the logging
message. It is strongly recommanded to not directly use Python
string formating, but pass additional arguments here, because the
message. It is strongly recommended to not directly use Python
string formatting, but pass additional arguments here, because the
printer can skip string evaluation in case the logging level is
disabled.
'''
@@ -413,8 +413,8 @@ class FCADLogger(object):
This function accepts additional positional and keyword arguments,
which are forward to string.format() to generate the logging
message. It is strongly recommanded to not directly use Python
string formating, but pass additional arguments here, because the
message. It is strongly recommended to not directly use Python
string formatting, but pass additional arguments here, because the
printer can skip string evaluation in case the logging level is
disabled.
'''
@@ -431,8 +431,8 @@ class FCADLogger(object):
This function accepts additional positional and keyword arguments,
which are forward to string.format() to generate the logging
message. It is strongly recommanded to not directly use Python
string formating, but pass additional arguments here, because the
message. It is strongly recommended to not directly use Python
string formatting, but pass additional arguments here, because the
printer can skip string evaluation in case the logging level is
disabled.
'''

View File

@@ -35,7 +35,7 @@ depending on the actual extension object underlying this python
object.
If 'val' is omitted, i.e. calling configLinkProperty(key,...), then
it is assumed the the actualy property name is the same as 'key'
it is assumed the the actually property name is the same as 'key'
</UserDocu>
</Documentation>
</Methode>
@@ -109,7 +109,7 @@ Return an expanded subname in case it references an object inside a linked plain
<CustomAttributes />
<Attribute Name="LinkedChildren" ReadOnly="true">
<Documentation>
<UserDocu>Return a flattend (in case grouped by plain group) list of linked children</UserDocu>
<UserDocu>Return a flattened (in case grouped by plain group) list of linked children</UserDocu>
</Documentation>
<Parameter Name="LinkedChildren" Type="List"/>
</Attribute>

View File

@@ -560,7 +560,7 @@ std::string ObjectIdentifier::getSubPathStr(bool toPython) const {
* @brief Construct a Component part
* @param _name Name of component
* @param _type Type; simple, array, range or map
* @param _begin Array index or begining of a Range, or INT_MAX for other type.
* @param _begin Array index or beginning of a Range, or INT_MAX for other type.
* @param _end ending of a Range, or INT_MAX for other type.
*/
@@ -723,7 +723,7 @@ ObjectIdentifier::Component ObjectIdentifier::Component::MapComponent(String &&_
/**
* @brief Create a range component with given begin and end.
* @param _begin begining index of the range
* @param _begin beginning index of the range
* @param _end ending index of the range
* @return A new Component object.
*/

View File

@@ -230,7 +230,7 @@ void PropertyListsBase::_setPyObject(PyObject *value) {
#else
if(!PyLong_Check(key))
#endif
throw Base::TypeError("expect key type to be interger");
throw Base::TypeError("expect key type to be integer");
auto idx = PyLong_AsLong(key);
if(idx<-1 || idx>listSize)
throw Base::RuntimeError("index out of bound");

View File

@@ -155,7 +155,7 @@ public:
/// Get valid paths for this property; used by auto completer
virtual void getPaths(std::vector<App::ObjectIdentifier> & paths) const;
/** Called at the begining of Document::afterRestore()
/** Called at the beginning of Document::afterRestore()
*
* This function is called without dependency sorting, because some
* types of link property can only reconstructs the linking information
@@ -170,7 +170,7 @@ public:
* restored expression in afterRestore(). The reason, in addition to
* subname mapping like PropertyLinkSub, is that it can handle document
* name adjustment as well. It internally relies on PropertyXLink to store
* the external document path for external linking. When the extenal
* the external document path for external linking. When the external
* document is restored, its internal name may change due to name conflict
* with existing documents. PropertyExpressionEngine can now auto adjust
* external references without any problem.
@@ -180,7 +180,7 @@ public:
/** Called before calling DocumentObject::onDocumentRestored()
*
* This function is called after finished calling Property::afterRestore()
* of all properies of objects. By then, the object dependency information
* of all properties of objects. By then, the object dependency information
* is assumed ready. So, unlike Property::afterRestore(), this function is
* called on objects with dependency order.
*/
@@ -292,7 +292,7 @@ private:
* AtomicPropertyChange::aboutToChange() before actual change, this enables you
* to prevent unnecessary property copy for undo/redo where there is actual
* changes. AtomicPropertyChange will guaranetee calling hasSetValue() when the
* last instance in the current call stack is destroied.
* last instance in the current call stack is destroyed.
*
* One thing to take note is that, because C++ does not allow throwing
* exception in destructor, any exception thrown when calling property's
@@ -358,7 +358,7 @@ public:
/** Check and invoke property's hasSetValue()
*
* Check if this is the last instance and the proeprty has been marked
* Check if this is the last instance and the property has been marked
* as changed. If so, invoke property's hasSetValue().
*/
// Destructor cannot throw. So we provide this function to allow error

View File

@@ -344,7 +344,7 @@ void PropertyContainer::Restore(Base::XMLReader &reader)
&& !status.test(Property::PropTransient)
&& !(getPropertyType(prop) & Prop_Transient))
{
FC_TRACE("restore proeprty '" << prop->getName() << "'");
FC_TRACE("restore property '" << prop->getName() << "'");
prop->Restore(reader);
}else
FC_TRACE("skip transient '" << prop->getName() << "'");

View File

@@ -726,7 +726,7 @@ void PropertyExpressionEngine::setPyObject(PyObject *)
/* The policy implemented in the following function is to auto erase binding in
* case linked object is gone. I think it is better to cause error and get
* user's attension
* user's attention
*
void PropertyExpressionEngine::breakLink(App::DocumentObject *obj, bool clear) {
auto owner = dynamic_cast<App::DocumentObject*>(getContainer());

View File

@@ -137,7 +137,7 @@ std::string PropertyLinkBase::updateLabelReference(const App::DocumentObject *pa
return std::string();
// Because the label is allowed to be the same across different
// hierarchy, we have to search for all occurance, and make sure the
// hierarchies, we have to search for all occurrences, and make sure the
// referenced sub-object at the found hierarchy is actually the given
// object.
for(const char *pos=subname; ((pos=strstr(pos,ref.c_str()))!=0); pos+=ref.size()) {
@@ -235,7 +235,7 @@ void PropertyLinkBase::restoreLabelReference(const DocumentObject *obj,
StringGuard guard(dot-1);
sobj = obj->getSubObject(subname.c_str());
if(!sobj) {
FC_ERR("Failed to restore lable reference " << obj->getFullName()
FC_ERR("Failed to restore label reference " << obj->getFullName()
<< '.' << ss.str());
return;
}
@@ -797,7 +797,7 @@ Property *PropertyLinkList::CopyOnLinkReplace(const App::DocumentObject *parent,
links.push_back(res.first);
} else if(*it == newObj) {
// in case newObj already exists here, we shall remove all existing
// entry, and instert it to take over oldObj's position.
// entry, and insert it to take over oldObj's position.
if(!copied) {
copied = true;
links.insert(links.end(),_lValueList.begin(),it);
@@ -1251,7 +1251,7 @@ std::string PropertyLinkBase::tryImportSubName(const App::DocumentObject *obj, c
StringGuard guard(dot);
auto sobj = obj->getSubObject(subname.c_str());
if(!sobj) {
FC_ERR("Failed to restore lable reference " << obj->getFullName() << '.' << subname);
FC_ERR("Failed to restore label reference " << obj->getFullName() << '.' << subname);
return std::string();
}
dot[0] = 0;
@@ -1305,7 +1305,7 @@ void PropertyLinkSub::Save (Base::Writer &writer) const
const auto &shadow = _ShadowSubList[i];
// shadow.second stores the old style element name. For backward
// compatibility reason, we shall store the old name into attribute
// 'value' whenver possible.
// 'value' whenever possible.
const auto &sub = shadow.second.empty()?_cSubList[i]:shadow.second;
writer.Stream() << writer.ind() << "<Sub value=\"";
if(exporting) {
@@ -2082,7 +2082,7 @@ void PropertyLinkSubList::Save (Base::Writer &writer) const
const auto &shadow = _ShadowSubList[i];
// shadow.second stores the old style element name. For backward
// compatibility reason, we shall store the old name into attribute
// 'value' whenver possible.
// 'value' whenever possible.
const auto &sub = shadow.second.empty()?_lSubList[i]:shadow.second;
writer.Stream() << writer.ind() << "<Link obj=\"" << obj->getExportName() << "\" sub=\"";
@@ -2429,7 +2429,7 @@ bool PropertyLinkSubList::adjustLink(const std::set<App::DocumentObject*> &inLis
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Key on aboslute path.
// Becuase of possible symbolic links, multiple entry may refer to the same
// Because of possible symbolic links, multiple entry may refer to the same
// file. We use QFileInfo::canonicalPath to resolve that.
typedef std::map<QString,DocInfoPtr> DocInfoMap;
DocInfoMap _DocInfoMap;
@@ -3154,7 +3154,7 @@ void PropertyXLink::Save (Base::Writer &writer) const {
const auto &shadow = _ShadowSubList[i];
// shadow.second stores the old style element name. For backward
// compatibility reason, we shall store the old name into attribute
// 'value' whenver possible.
// 'value' whenever possible.
const auto &sub = shadow.second.empty()?_SubList[i]:shadow.second;
writer.Stream() << writer.ind() << "<Sub value=\"";
if(exporting) {
@@ -3342,7 +3342,7 @@ Property *PropertyXLink::Copy(void) const
void PropertyXLink::Paste(const Property &from)
{
if(!from.isDerivedFrom(PropertyXLink::getClassTypeId()))
throw Base::TypeError("Incompatible proeprty to paste to");
throw Base::TypeError("Incompatible property to paste to");
const auto &other = static_cast<const PropertyXLink&>(from);
if(other.docName.size()) {
@@ -4077,7 +4077,7 @@ Property *PropertyXLinkSubList::Copy(void) const
void PropertyXLinkSubList::Paste(const Property &from)
{
if(!from.isDerivedFrom(PropertyXLinkSubList::getClassTypeId()))
throw Base::TypeError("Incompatible proeprty to paste to");
throw Base::TypeError("Incompatible property to paste to");
aboutToSetValue();
_Links.clear();
@@ -4484,4 +4484,3 @@ void PropertyXLinkContainer::getLinks(std::vector<App::DocumentObject *> &objs,
{
objs.insert(objs.end(),_Deps.begin(),_Deps.end());
}

View File

@@ -135,15 +135,15 @@ public:
/** Register label reference for future object relabel update
*
* @param labels: labels to be registered
* @param reset: if ture, then calls unregisterLabelReference() before
* @param reset: if true, then calls unregisterLabelReference() before
* registering
*/
void registerLabelReferences(std::vector<std::string> &&labels, bool reset=true);
/** Check subnames for label registeration
/** Check subnames for label registration
*
* @param subs: subname references
* @param reset: if ture, then calls unregisterLabelReference() before
* @param reset: if true, then calls unregisterLabelReference() before
* registering
*
* Check the give subname references and extract any label reference
@@ -186,7 +186,7 @@ public:
/** Called to reset this link property
*
* @param obj: reset link property if it is linked to this object
* @param clear: if true, then also reset property if the owner of this proeprty is \a obj
* @param clear: if true, then also reset property if the owner of this property is \a obj
*
* @sa breakLinks()
*/
@@ -324,7 +324,7 @@ public:
const App::DocumentObject *parent, App::DocumentObject *oldObj,
App::DocumentObject *newObj, const char *sub=0);
/** Helper function to check and replace a link with multiple subname refereces
/** Helper function to check and replace a link with multiple subname references
*
* @param owner: the owner of the current property
* @param obj: the current linked object
@@ -385,7 +385,7 @@ public:
*
* @param link: reset link property if it is linked to this object
* @param objs: the objects to check for the link properties
* @param clear: if ture, then also reset property if the owner of the link property is \a link
* @param clear: if true, then also reset property if the owner of the link property is \a link
*
* App::Document::breakDependency() calls this function to break the link property
*/
@@ -495,7 +495,7 @@ public:
*
* @sa registerLabelReferences()
*
* This function is used to extrac label from subname reference for
* This function is used to extract label from subname reference for
* registering of label changes.
*/
static void getLabelReferences(std::vector<std::string> &labels, const char *subname);