1
0
Fork 0

Cope with SGPropertyNode::getStringValue() now returning std::string by value.

This is by Lars Toenning <dev@ltoenning.de>, Roman Ludwicki <romek21@op.pl> and
SDeAstis <salvatore.deastis@gmail.com>, in 2021 Hackathon.

Also cope with removal of SGPropertyNode::getName() - use getNameString()
instead.
This commit is contained in:
Roman Ludwicki 2021-11-06 19:10:20 +01:00 committed by Julian Smith
parent 4bcfe6cd64
commit 82f967ab92
121 changed files with 501 additions and 500 deletions

View file

@ -260,7 +260,7 @@ void FGAIBase::readFromScenario(SGPropertyNode* scFileNode)
return;
setPath(scFileNode->getStringValue("model",
fgGetString("/sim/multiplay/default-model", default_model)));
fgGetString("/sim/multiplay/default-model", default_model).c_str()).c_str());
setFallbackModelIndex(scFileNode->getIntValue("fallback-model-index", 0));

View file

@ -173,7 +173,7 @@ void FGAICarrier::update(double dt) {
//automatic turn into wind with a target wind of 25 kts otd
//SG_LOG(SG_AI, SG_ALERT, "AICarrier: MPControl " << MPControl << " AIControl " << AIControl);
if (strcmp(_ai_latch_node->getStringValue(), "")) {
if (_ai_latch_node->getStringValue() != "") {
SG_LOG(SG_AI, SG_DEBUG, "FGAICarrier::update(): not updating because ai-latch=" << _ai_latch_node->getStringValue());
}
else if (!_MPControl && _AIControl){

View file

@ -455,8 +455,8 @@ void FGAIMultiplayer::update(double dt)
//
bool motion_logging = false;
{
const char* callsign = mLogRawSpeedMultiplayer->getStringValue();
if (callsign && callsign[0] && this->_callsign == callsign)
string callsign = mLogRawSpeedMultiplayer->getStringValue();
if (!callsign.empty() && this->_callsign == callsign)
{
motion_logging = true;
}

View file

@ -118,10 +118,10 @@ void PerformanceDB::load(const SGPath& filename)
SGPropertyNode * node = root.getNode("performancedb");
for (int i = 0; i < node->nChildren(); i++) {
SGPropertyNode * db_node = node->getChild(i);
if (!strcmp(db_node->getName(), "aircraft")) {
if (db_node->getNameString() == "aircraft") {
PerformanceData* data = NULL;
if (db_node->hasChild("base")) {
const string& baseName = db_node->getStringValue("base");
std::string baseName = db_node->getStringValue("base");
PerformanceData* baseData = _db[baseName];
if (!baseData) {
SG_LOG(SG_AI, SG_ALERT,
@ -136,21 +136,21 @@ void PerformanceDB::load(const SGPath& filename)
}
data->initFromProps(db_node);
const string& name = db_node->getStringValue("type", "heavy_jet");
std::string name = db_node->getStringValue("type", "heavy_jet");
registerPerformanceData(name, data);
} else if (!strcmp(db_node->getName(), "alias")) {
const string& alias(db_node->getStringValue("alias"));
} else if (db_node->getNameString() == "alias") {
std::string alias = db_node->getStringValue("alias");
if (alias.empty()) {
SG_LOG(SG_AI, SG_ALERT, "performance DB alias entry with no <alias> definition");
continue;
}
for (auto matchNode : db_node->getChildren("match")) {
const string& match(matchNode->getStringValue());
std::string match = matchNode->getStringValue();
_aliases.push_back(StringPair(match, alias));
}
} else {
SG_LOG(SG_AI, SG_ALERT, "unrecognized performance DB entry:" << db_node->getName());
SG_LOG(SG_AI, SG_ALERT, "unrecognized performance DB entry:" << db_node->getNameString());
}
} // of nodes iteration
}

View file

@ -625,8 +625,8 @@ void FGSubmodelMgr::setData(int id, const string& path, bool serviceable, const
if (sm->contents_node != 0)
sm->contents = sm->contents_node->getDoubleValue();
const char *trigger_path = entry_node->getStringValue("trigger", 0);
if (trigger_path) {
string trigger_path = entry_node->getStringValue("trigger", "");
if (!trigger_path.empty()) {
sm->trigger_node = fgGetNode(trigger_path, true);
sm->trigger_node->setBoolValue(sm->trigger_node->getBoolValue());
}

View file

@ -225,9 +225,9 @@ string ATISEncoder::processTokens( SGPropertyNode_ptr node )
string ATISEncoder::processToken( SGPropertyNode_ptr token )
{
HandlerMap::iterator it = handlerMap.find( token->getName());
HandlerMap::iterator it = handlerMap.find( token->getNameString());
if( it == handlerMap.end() ) {
SG_LOG(SG_ATC, SG_WARN, "ATISEncoder: unknown token: " << token->getName() );
SG_LOG(SG_ATC, SG_WARN, "ATISEncoder: unknown token: " << token->getNameString() );
return EMPTY;
}
handler_t h = it->second;

View file

@ -104,7 +104,7 @@ ATISInformationProvider::CloudEntries MetarPropertiesATISInformationProvider::ge
using simgear::PropertyList;
PropertyList layers = _metar->getNode("clouds", true )->getChildren("layer");
for( PropertyList::iterator it = layers.begin(); it != layers.end(); ++it ) {
const char * coverage = (*it)->getStringValue("coverage","clear");
std::string coverage = (*it)->getStringValue("coverage", "clear");
double elevation = (*it)->getDoubleValue("elevation-ft", -9999 );
if( elevation > 0 ) {
reply[elevation] = coverage;

View file

@ -44,7 +44,7 @@
using std::string;
static SGPropertyNode *getNamedNode(SGPropertyNode *prop, const char *name)
static SGPropertyNode *getNamedNode(SGPropertyNode *prop, const std::string& name)
{
SGPropertyNode* p;
@ -52,7 +52,7 @@ static SGPropertyNode *getNamedNode(SGPropertyNode *prop, const char *name)
if ((p = getNamedNode(prop->getChild(i), name)))
return p;
if (!strcmp(prop->getStringValue("name"), name))
if (prop->getStringValue("name") == name)
return prop;
return 0;
}

View file

@ -137,18 +137,18 @@ static bool ReadFGReplayData2(
ret->raw_data.resize(0);
for (auto data: config->getChildren("data"))
{
const char* data_type = data->getStringValue();
std::string data_type = data->getStringValue();
SG_LOG(SG_SYSTEMS, SG_BULK, "in.tellg()=" << in.tellg() << " data_type=" << data_type);
uint32_t length;
readRaw(in, length);
SG_LOG(SG_SYSTEMS, SG_DEBUG, "length=" << length);
if (!in) break;
if (load_signals && !strcmp(data_type, "signals"))
if (load_signals && data_type == "signals")
{
ret->raw_data.resize(length);
in.read(&ret->raw_data.front(), ret->raw_data.size());
}
else if (load_multiplayer && !strcmp(data_type, "multiplayer"))
else if (load_multiplayer && data_type == "multiplayer")
{
/* Multiplayer information is a vector of vectors. */
ret->multiplayer_messages.clear();
@ -168,7 +168,7 @@ static bool ReadFGReplayData2(
);
}
}
else if (load_extra_properties && !strcmp(data_type, "extra-properties"))
else if (load_extra_properties && data_type == "extra-properties")
{
ReadFGReplayDataExtraProperties(in, ret, length);
}
@ -439,14 +439,14 @@ static void writeFrame2(FGReplayData* r, std::ostream& out, SGPropertyNode_ptr c
{
for (auto data: config->getChildren("data"))
{
const char* data_type = data->getStringValue();
if (!strcmp(data_type, "signals"))
std::string data_type = data->getStringValue();
if (data_type == "signals")
{
uint32_t signals_size = r->raw_data.size();
writeRaw(out, signals_size);
out.write(&r->raw_data.front(), r->raw_data.size());
}
else if (!strcmp(data_type, "multiplayer"))
else if (data_type == "multiplayer")
{
uint32_t length = 0;
for (auto message: r->multiplayer_messages)
@ -463,7 +463,7 @@ static void writeFrame2(FGReplayData* r, std::ostream& out, SGPropertyNode_ptr c
out.write(&message->front(), message_size);
}
}
else if (!strcmp(data_type, "extra-properties"))
else if (data_type == "extra-properties")
{
uint32_t length = r->extra_properties.size();
SG_LOG(SG_SYSTEMS, SG_DEBUG, "data_type=" << data_type << " out.tellp()=" << out.tellp()
@ -493,19 +493,19 @@ bool continuousWriteFrame(Continuous& continuous, FGReplayData* r, std::ostream&
bool has_extra_properties = false;
for (auto data: config->getChildren("data"))
{
const char* data_type = data->getStringValue();
if (!strcmp(data_type, "signals"))
std::string data_type = data->getStringValue();
if (data_type == "signals")
{
has_signals = true;
}
else if (!strcmp(data_type, "multiplayer"))
else if (data_type == "multiplayer")
{
if (!r->multiplayer_messages.empty())
{
has_multiplayer = true;
}
}
else if (!strcmp(data_type, "extra-properties"))
else if (data_type == "extra-properties")
{
if (!r->extra_properties.empty())
{

View file

@ -83,7 +83,7 @@ static void s_RecordPropertyDiffs(
{
assert(a);
assert(b);
assert(!strcmp(a->getName(), b->getName()));
assert(a->getNameString() == b->getNameString());
assert(a->getPath() == b->getPath());
assert(a->getIndex() == b->getIndex());
@ -96,9 +96,9 @@ static void s_RecordPropertyDiffs(
}
}
// If values differ, write a's value to out and change b's value to a's value.
const char* a_value = a->getStringValue();
const char* b_value = b->getStringValue();
if (strcmp(a_value, b_value)) {
const std::string a_value = a->getStringValue();
const std::string b_value = b->getStringValue();
if (a_value != b_value) {
// Values are different so write out node <a> and update b.
SG_LOG(SG_SYSTEMS, SG_DEBUG, "recording property change:"
<< a->getPath()
@ -114,7 +114,7 @@ static void s_RecordPropertyDiffs(
int bn = b->nChildren();
for (int i=0; i<bn; ++i) {
SGPropertyNode* bc = b->getChild(i);
SGPropertyNode* ac = a->getChild(bc->getName(), bc->getIndex(), false /*create*/);
SGPropertyNode* ac = a->getChild(bc->getNameString(), bc->getIndex(), false /*create*/);
if (!ac) {
// Child node is in b but not in a; we write out special
// information about the deleted node and remove from b.
@ -129,7 +129,7 @@ static void s_RecordPropertyDiffs(
int an = a->nChildren();
for (int i=0; i<an; ++i) {
SGPropertyNode* ac = a->getChild(i);
SGPropertyNode* bc = b->getChild(ac->getName(), ac->getIndex(), true /*create*/);
SGPropertyNode* bc = b->getChild(ac->getNameString(), ac->getIndex(), true /*create*/);
// Recurse.
s_RecordPropertyDiffs(out, ac, bc, path_exclude_prefixes);
}
@ -282,7 +282,7 @@ FGFlightRecorder::reinit(SGPropertyNode_ptr ConfigNode)
else
{
// set name of active flight recorder type
const char* pRecorderName =
const std::string pRecorderName =
m_ConfigNode->getStringValue("name",
"aircraft-specific flight recorder");
SG_LOG(SG_SYSTEMS, SG_INFO, "FlightRecorder: Using custom recorder configuration: " << pRecorderName);
@ -357,8 +357,8 @@ FGFlightRecorder::getDefault(void)
// set name of active flight recorder type
SG_LOG(SG_SYSTEMS, SG_INFO, "FlightRecorder: No custom configuration. Loading generic default recorder.");
const char* Path = m_RecorderNode->getStringValue("default-config",NULL);
if (!Path)
const std::string Path = m_RecorderNode->getStringValue("default-config", "");
if (Path.empty())
{
SG_LOG(SG_SYSTEMS, SG_ALERT, "FlightRecorder: No default flight recorder specified! Check defaults.xml!");
}
@ -423,13 +423,13 @@ FGFlightRecorder::processSignalList(const char* pSignalType, TSignalList& Signal
{
SignalNode = SignalListNode->getChild("signal",Index,false);
if (SignalNode.valid()&&
(0==strcmp(pSignalType, SignalNode->getStringValue("type","float"))))
(std::string(pSignalType) == SignalNode->getStringValue("type", "float")))
{
string PropertyPath = SignalNode->getStringValue("property","");
string PropertyPath = SignalNode->getStringValue("property", "");
if (!PropertyPath.empty())
{
PropertyPath = PropPrefix + PropertyPath;
const char* pInterpolation = SignalNode->getStringValue("interpolation","linear");
const std::string pInterpolation = SignalNode->getStringValue("interpolation", "linear");
// Check if current signal has a "%i" place holder. Otherwise count is 1.
string::size_type IndexPos = PropertyPath.find("%i");
@ -462,17 +462,17 @@ FGFlightRecorder::processSignalList(const char* pSignalType, TSignalList& Signal
Capture.Signal = fgGetNode(PPath.c_str(),true);
}
if (0==strcmp(pInterpolation,"discrete"))
if (pInterpolation == "discrete")
Capture.Interpolation = discrete;
else
if ((0==strcmp(pInterpolation,"angular"))||
(0==strcmp(pInterpolation,"angular-rad")))
if ((pInterpolation == "angular")||
(pInterpolation == "angular-rad"))
Capture.Interpolation = angular_rad;
else
if (0==strcmp(pInterpolation,"angular-deg"))
if (pInterpolation == "angular-deg")
Capture.Interpolation = angular_deg;
else
if (0==strcmp(pInterpolation,"linear"))
if (pInterpolation == "linear")
Capture.Interpolation = linear;
else
{

View file

@ -198,8 +198,8 @@ static void popupTip(const char* message, int delay)
SGPath makeSavePath(FGTapeType type, SGPath* path_timeless)
{
const char* tape_directory = fgGetString("/sim/replay/tape-directory", "");
const char* aircraftType = fgGetString("/sim/aircraft", "unknown");
std::string tape_directory = fgGetString("/sim/replay/tape-directory", "");
std::string aircraftType = fgGetString("/sim/aircraft", "unknown");
if (path_timeless) *path_timeless = "";
SGPath path = SGPath(tape_directory);
path.append(aircraftType);
@ -296,10 +296,10 @@ static void loadMessages(FGReplayInternal& self)
for (auto it = msgs.begin(); it != msgs.end();++it)
{
const char* msgText = (*it)->getStringValue("text", "");
std::string msgText = (*it)->getStringValue("text", "");
const double msgTime = (*it)->getDoubleValue("time", -1.0);
const char* msgSpeaker = (*it)->getStringValue("speaker", "pilot");
if (msgText[0] != 0 && msgTime >= 0)
std::string msgSpeaker = (*it)->getStringValue("speaker", "pilot");
if (!msgText.empty() && msgTime >= 0)
{
FGReplayMessages data;
data.sim_time = msgTime;
@ -605,7 +605,7 @@ static bool saveRawReplayData(
for (auto data: meta->getNode("meta")->getChildren("data"))
{
SG_LOG(SG_SYSTEMS, SG_DEBUG, "data->getStringValue()=" << data->getStringValue());
if (!strcmp(data->getStringValue(), "multiplayer"))
if (data->getStringValue() == "multiplayer")
{
uint32_t length = 0;
for (auto message: frame->multiplayer_messages)
@ -1622,19 +1622,20 @@ static void indexContinuousRecording(FGReplayInternal& self, const void* data, s
}
if (length)
{
stats[data->getStringValue()].num_frames += 1;
stats[data->getStringValue()].bytes += length;
if (!strcmp(data->getStringValue(), "signals"))
std::string data_type = data->getStringValue();
stats[data_type].num_frames += 1;
stats[data_type].bytes += length;
if (data_type == "signals")
{
frameinfo.has_signals = true;
}
else if (!strcmp(data->getStringValue(), "multiplayer"))
else if (data_type == "multiplayer")
{
frameinfo.has_multiplayer = true;
++self.m_continuous->m_num_frames_multiplayer;
self.m_continuous->m_in_multiplayer = true;
}
else if (!strcmp(data->getStringValue(), "extra-properties"))
else if (data_type == "extra-properties")
{
frameinfo.has_extra_properties = true;
++self.m_continuous->m_num_frames_extra_properties;
@ -2012,7 +2013,7 @@ FGReplayInternal::loadTape(
bool multiplayer = false;
for (auto data: meta_meta.getChildren("data"))
{
if (!strcmp(data->getStringValue(), "multiplayer"))
if (data->getStringValue() == "multiplayer")
{
multiplayer = true;
}

View file

@ -167,7 +167,7 @@ Autopilot::Autopilot( SGPropertyNode_ptr rootNode, SGPropertyNode_ptr configNode
for( int i = 0; i < count; ++i )
{
SGPropertyNode_ptr node = configNode->getChild(i);
string childName = node->getName();
string childName = node->getNameString();
if( childName == "property"
|| childName == "property-root" )
continue;

View file

@ -187,7 +187,7 @@ void FGXMLAutopilotGroupImplementation::initFrom( SGPropertyNode_ptr rootNode,
void FGXMLAutopilotGroup::addAutopilotFromFile( const std::string& name,
SGPropertyNode_ptr apNode,
const char* path )
const std::string& path )
{
SGPath config = globals->resolve_maybe_aircraft_path(path);
if( config.isNull() )

View file

@ -36,7 +36,7 @@ public:
static FGXMLAutopilotGroup * createInstance(const std::string& nodeName);
void addAutopilotFromFile( const std::string & name, SGPropertyNode_ptr apNode, const char * path );
void addAutopilotFromFile( const std::string & name, SGPropertyNode_ptr apNode, const std::string& path );
virtual void addAutopilot( const std::string & name, SGPropertyNode_ptr apNode, SGPropertyNode_ptr config ) = 0;
virtual void removeAutopilot( const std::string & name ) = 0;

View file

@ -47,7 +47,7 @@ bool Component::configure( SGPropertyNode& prop_root,
for( int i = 0; i < cfg.nChildren(); ++i )
{
SGPropertyNode_ptr child = cfg.getChild(i);
std::string cname(child->getName());
std::string cname(child->getNameString());
if( !configure(*child, cname, prop_root)
&& cname != "params" ) // 'params' is usually used to specify parameters

View file

@ -903,7 +903,7 @@ bool DigitalFilter::configure( SGPropertyNode& prop_root,
for( int i = 0; i < cfg.nChildren(); ++i )
{
SGPropertyNode_ptr child = cfg.getChild(i);
std::string cname(child->getName());
std::string cname(child->getNameString());
bool ok = false;
if (!ok) ok = _implementation->configure(*child, cname, prop_root);
if (!ok) ok = configure(*child, cname, prop_root);

View file

@ -383,7 +383,7 @@ bool FlipFlopImplementation::configure( SGPropertyNode& prop_root,
for( int i = 0; i < cfg.nChildren(); ++i )
{
SGPropertyNode_ptr child = cfg.getChild(i);
string cname(child->getName());
string cname(child->getNameString());
if( configure(*child, cname, prop_root) )
continue;

View file

@ -154,13 +154,13 @@ void InputValue::parse( SGPropertyNode& prop_root,
if( !valueNode )
{
// no <value>, <prop> or <expression> element, use text node
const char * textnode = cfg.getStringValue();
std::string textnode = cfg.getStringValue();
char * endp = NULL;
// try to convert to a double value. If the textnode does not start with a number
// endp will point to the beginning of the string. We assume this should be
// a property name
_value = strtod( textnode, &endp );
if( endp == textnode )
_value = strtod( textnode.c_str(), &endp );
if( endp == textnode.c_str() )
_property = prop_root.getNode(textnode, true);
}
}

View file

@ -131,7 +131,7 @@ static string formatPropertyValue(SGPropertyNode* nd, const string& format)
}
if (format.find('s') != string::npos) {
::snprintf(buf, 512, format.c_str(), nd->getStringValue());
::snprintf(buf, 512, format.c_str(), nd->getStringValue().c_str());
return buf;
}
@ -466,8 +466,8 @@ NavDisplay::NavDisplay(SGPropertyNode *node) :
continue;
}
const char* id = symbol->getStringValue("id");
if (id && strlen(id)) {
string id = symbol->getStringValue("id", "");
if (!id.empty()) {
definitionDict[id] = def;
}
@ -481,8 +481,8 @@ NavDisplay::NavDisplay(SGPropertyNode *node) :
continue;
}
const char* id = rule->getStringValue("symbol");
if (id && strlen(id) && (definitionDict.find(id) != definitionDict.end())) {
string id = rule->getStringValue("symbol", "");
if (!id.empty() && (definitionDict.find(id) != definitionDict.end())) {
r->setDefinition(definitionDict[id]);
} else {
SG_LOG(SG_INSTR, SG_WARN, "symbol rule has missing/unknown definition id:" << id);
@ -1305,11 +1305,11 @@ void NavDisplay::computePositionedState(FGPositioned* pos, string_set& states)
static string mapAINodeToType(SGPropertyNode* model)
{
// assume all multiplayer items are aircraft for the moment. Not ideal.
if (!strcmp(model->getName(), "multiplayer")) {
if (model->getNameString() == "multiplayer") {
return "ai-aircraft";
}
return string("ai-") + model->getName();
return string("ai-") + model->getNameString();
}
void NavDisplay::processAI()
@ -1464,7 +1464,7 @@ void NavDisplay::processCustomSymbols()
string_set ss;
computeCustomSymbolStates(symNode, ss);
SymbolRuleVector rules;
findRules(symNode->getName(), ss, rules);
findRules(symNode->getNameString(), ss, rules);
if (rules.empty()) {
return; // no rules matched, we can skip this item
}

View file

@ -89,7 +89,7 @@ bool CockpitDisplayManager::build (SGPropertyNode* config_props)
{
for ( int i = 0; i < config_props->nChildren(); ++i ) {
SGPropertyNode *node = config_props->getChild(i);
std::string name = node->getName();
std::string name = node->getNameString();
std::ostringstream subsystemname;
subsystemname << "instrument-" << i << '-'

View file

@ -92,7 +92,7 @@ inline static osg::Vec3 fromPolar(double fi, double r)
return osg::Vec3(sin(fi * SGD_DEGREES_TO_RADIANS) * r, cos(fi * SGD_DEGREES_TO_RADIANS) * r, 0);
}
void GroundRadar::createTexture(const char* texture_name)
void GroundRadar::createTexture(const std::string& texture_name)
{
setSize(TextureHalfSize + TextureHalfSize);
allocRT();

View file

@ -52,7 +52,7 @@ public:
virtual void update (double dt);
protected:
void createTexture(const char* texture_name);
void createTexture(const std::string& texture_name);
void addRunwayVertices(const FGRunwayBase* aRunway, double aTowerLat, double aTowerLon, double aScale, osg::Vec3Array* aVertices);
osg::Geometry *addPavementGeometry(const FGPavement* aPavement, double aTowerLat, double aTowerLon, double aScale);

View file

@ -1205,7 +1205,7 @@ FGTextLayer::Chunk::getValue () const
sprintf(_buf, _fmt.c_str(), _text.c_str());
return _buf;
case TEXT_VALUE:
sprintf(_buf, _fmt.c_str(), _node->getStringValue());
sprintf(_buf, _fmt.c_str(), _node->getStringValue().c_str());
break;
case DOUBLE_VALUE:
double d = _offs + _node->getFloatValue() * _mult;

View file

@ -115,7 +115,7 @@ readTexture (const SGPropertyNode * node)
node->getFloatValue("y1"),
node->getFloatValue("x2", 1.0),
node->getFloatValue("y2", 1.0));
SG_LOG(SG_COCKPIT, SG_DEBUG, "Read texture " << node->getName());
SG_LOG(SG_COCKPIT, SG_DEBUG, "Read texture " << node->getNameString());
return texture;
}
@ -255,7 +255,7 @@ readTransformation (const SGPropertyNode * node, float w_scale, float h_scale)
{
FGPanelTransformation * t = new FGPanelTransformation;
string name = node->getName();
string name = node->getNameString();
string type = node->getStringValue("type");
string propName = node->getStringValue("property", "");
SGPropertyNode * target = 0;
@ -454,7 +454,7 @@ readLayer (const SGPropertyNode * node, float w_scale, float h_scale)
layer = new FGGroupLayer();
for (int i = 0; i < node->nChildren(); i++) {
const SGPropertyNode * child = node->getChild(i);
if (!strcmp(child->getName(), "layer"))
if (child->getNameString() == "layer")
((FGGroupLayer *)layer)->addLayer(readLayer(child, w_scale, h_scale));
}
}
@ -483,12 +483,12 @@ readLayer (const SGPropertyNode * node, float w_scale, float h_scale)
int nChunks = chunk_group->nChildren();
for (int i = 0; i < nChunks; i++) {
const SGPropertyNode * node = chunk_group->getChild(i);
if (!strcmp(node->getName(), "chunk")) {
if (node->getNameString() == "chunk") {
FGTextLayer::Chunk * chunk = readTextChunk(node);
if (chunk != 0)
tlayer->addChunk(chunk);
} else {
SG_LOG( SG_COCKPIT, SG_INFO, "Skipping " << node->getName()
SG_LOG( SG_COCKPIT, SG_INFO, "Skipping " << node->getNameString()
<< " in chunks" );
}
}
@ -501,7 +501,7 @@ readLayer (const SGPropertyNode * node, float w_scale, float h_scale)
layer = new FGSwitchLayer();
for (int i = 0; i < node->nChildren(); i++) {
const SGPropertyNode * child = node->getChild(i);
if (!strcmp(child->getName(), "layer"))
if (child->getNameString() == "layer")
((FGGroupLayer *)layer)->addLayer(readLayer(child, w_scale, h_scale));
}
}
@ -542,12 +542,12 @@ readLayer (const SGPropertyNode * node, float w_scale, float h_scale)
int nTransformations = trans_group->nChildren();
for (int i = 0; i < nTransformations; i++) {
const SGPropertyNode * node = trans_group->getChild(i);
if (!strcmp(node->getName(), "transformation")) {
if (node->getNameString() == "transformation") {
FGPanelTransformation * t = readTransformation(node, w_scale, h_scale);
if (t != 0)
layer->addTransformation(t);
} else {
SG_LOG( SG_COCKPIT, SG_INFO, "Skipping " << node->getName()
SG_LOG( SG_COCKPIT, SG_INFO, "Skipping " << node->getNameString()
<< " in transformations" );
}
}
@ -611,12 +611,12 @@ readInstrument (const SGPropertyNode * node, const SGPath& path)
int nActions = action_group->nChildren();
for (int i = 0; i < nActions; i++) {
const SGPropertyNode * node = action_group->getChild(i);
if (!strcmp(node->getName(), "action")) {
if (node->getNameString() == "action") {
FGPanelAction * action = readAction(node, w_scale, h_scale);
if (action != 0)
instrument->addAction(action);
} else {
SG_LOG( SG_COCKPIT, SG_INFO, "Skipping " << node->getName()
SG_LOG( SG_COCKPIT, SG_INFO, "Skipping " << node->getNameString()
<< " in actions" );
}
}
@ -630,12 +630,12 @@ readInstrument (const SGPropertyNode * node, const SGPath& path)
int nLayers = layer_group->nChildren();
for (int i = 0; i < nLayers; i++) {
const SGPropertyNode * node = layer_group->getChild(i);
if (!strcmp(node->getName(), "layer")) {
if (node->getNameString() == "layer") {
FGInstrumentLayer * layer = readLayer(node, w_scale, h_scale);
if (layer != 0)
instrument->addLayer(layer);
} else {
SG_LOG( SG_COCKPIT, SG_INFO, "Skipping " << node->getName()
SG_LOG( SG_COCKPIT, SG_INFO, "Skipping " << node->getNameString()
<< " in layers" );
}
}
@ -741,11 +741,11 @@ readPanel (const SGPropertyNode * root, const SGPath& path)
int nInstruments = instrument_group->nChildren();
for (int i = 0; i < nInstruments; i++) {
const SGPropertyNode * node = instrument_group->getChild(i);
if (!strcmp(node->getName(), "instrument")) {
if (node->getNameString() == "instrument") {
FGPanelInstrument * instrument = readInstrument(node, path);
if (instrument != 0)
panel->addInstrument(instrument);
} else if (!strcmp(node->getName(), "special-instrument")) {
} else if (node->getNameString() == "special-instrument") {
//cout << "Special instrument found in instruments section!\n";
const string name = node->getStringValue("name");
if (name == "KLN89 GPS") {
@ -791,7 +791,7 @@ readPanel (const SGPropertyNode * root, const SGPath& path)
SG_LOG( SG_COCKPIT, SG_WARN, "Unknown special instrument found" );
}
} else {
SG_LOG( SG_COCKPIT, SG_WARN, "Skipping " << node->getName()
SG_LOG( SG_COCKPIT, SG_WARN, "Skipping " << node->getNameString()
<< " in instruments section" );
}
}

View file

@ -96,7 +96,7 @@ wxRadarBg::wxRadarBg(SGPropertyNode *node) :
branch = "/instrumentation/" + _name;
_Instrument = fgGetNode(branch.c_str(), _num, true);
const char *tacan_source = node->getStringValue("tacan-source", "/instrumentation/tacan");
string tacan_source = node->getStringValue("tacan-source", "/instrumentation/tacan");
_Tacan = fgGetNode(tacan_source, true);
_font_node = _Instrument->getNode("font", true);
@ -596,8 +596,8 @@ wxRadarBg::update_data(const SGPropertyNode *ac, double altitude, double heading
callsign->setAlignment(osgText::Text::LEFT_BOTTOM_BASE_LINE);
callsign->setLineSpacing(_font_spacing);
const char *identity = ac->getStringValue("transponder-id");
if (!identity[0])
string identity = ac->getStringValue("transponder-id", "");
if (identity.empty())
identity = ac->getStringValue("callsign");
stringstream text;
@ -730,7 +730,7 @@ wxRadarBg::update_aircraft()
continue;
double echo_radius, sigma;
const string name = model->getName();
const string name = model->getNameString();
//cout << "name "<<name << endl;
if (name == "aircraft" || name == "tanker")

View file

@ -115,7 +115,7 @@ double FGClouds::buildCloud(SGPropertyNode *cloud_def_root, SGPropertyNode *box_
for(int i = 0; i < box_def->nChildren() ; i++) {
SGPropertyNode *abox = box_def->getChild(i);
if( strcmp(abox->getName(), "box") == 0) {
if( abox->getNameString() == "box" ) {
string type = abox->getStringValue("type", "cu-small");
cld_def = cloud_def_root->getChild(type.c_str());
@ -212,7 +212,7 @@ void FGClouds::buildLayer(int iLayer, const string& name, double coverage) {
for(int i = 0; i < layer_def->nChildren() ; i++) {
SGPropertyNode *acloud = layer_def->getChild(i);
if( strcmp(acloud->getName(), "cloud") == 0) {
if( acloud->getNameString() == "cloud" ) {
string cloud_name = acloud->getStringValue("name");
tCloudVariety[CloudVarietyCount].name = cloud_name;
double count = acloud->getDoubleValue("count", 1.0);

View file

@ -519,7 +519,7 @@ void FGExternalPipe::update_property( double dt ) {
// Send requested property values to fdm
for ( unsigned int i = 0; i < nodes.size(); i++ ) {
sprintf( cmd, "set %s %s", property_names[i].c_str(),
nodes[i]->getStringValue() );
nodes[i]->getStringValue().c_str() );
// cout << " sending " << cmd << endl;
result = write_property( pd1, cmd );
}

View file

@ -922,7 +922,7 @@ void FGFDMExec::BuildPropertyCatalog(struct PropertyCatalogStructure* pcs)
for (int i=0; i<pcs->node->nChildren(); i++) {
string access="";
pcsNew->base_string = pcs->base_string + "/" + pcs->node->getChild(i)->getName();
pcsNew->base_string = pcs->base_string + "/" + pcs->node->getChild(i)->getNameString();
int node_idx = pcs->node->getChild(i)->getIndex();
if (node_idx != 0) {
pcsNew->base_string = CreateIndexedPropertyName(pcsNew->base_string, node_idx);

View file

@ -112,14 +112,14 @@ bool FGPropertyNode::HasNode (const string &path)
string FGPropertyNode::GetName( void ) const
{
return string( getName() );
return getNameString();
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
string FGPropertyNode::GetPrintableName( void ) const
{
string temp_string(getName());
string temp_string(getNameString());
size_t initial_location=0;
size_t found_location;

View file

@ -130,7 +130,7 @@ void FGDeadBand::Debug(int from)
cout << " GAIN: " << gain << endl;
for (auto node: OutputNodes)
cout << " OUTPUT: " << node->getName() << endl;
cout << " OUTPUT: " << node->getNameString() << endl;
}
}
if (debug_lvl & 2 ) { // Instantiation/Destruction notification

View file

@ -121,7 +121,7 @@ void FGFCSFunction::Debug(int from)
if (!InputNodes.empty())
cout << " INPUT: " << InputNodes[0]->GetName() << endl;
for (auto node: OutputNodes)
cout << " OUTPUT: " << node->getName() << endl;
cout << " OUTPUT: " << node->getNameString() << endl;
}
}
if (debug_lvl & 2 ) { // Instantiation/Destruction notification

View file

@ -224,7 +224,7 @@ void FGFilter::Debug(int from)
}
for (auto node: OutputNodes)
cout << " OUTPUT: " << node->getName() << endl;
cout << " OUTPUT: " << node->getNameString() << endl;
}
}
if (debug_lvl & 2 ) { // Instantiation/Destruction notification

View file

@ -198,7 +198,7 @@ void FGGain::Debug(int from)
cout << " GAIN: " << Gain->GetName() << endl;
for (auto node: OutputNodes)
cout << " OUTPUT: " << node->getName() << endl;
cout << " OUTPUT: " << node->getNameString() << endl;
if (Type == "AEROSURFACE_SCALE") {
cout << " In/Out Mapping:" << endl;

View file

@ -190,7 +190,7 @@ void FGKinemat::Debug(int from)
cout << " " << Detents[i] << " " << TransitionTimes[i] << endl;
}
for (auto node: OutputNodes)
cout << " OUTPUT: " << node->getName() << endl;
cout << " OUTPUT: " << node->getNameString() << endl;
if (!DoScale) cout << " NOSCALE" << endl;
}
}

View file

@ -237,7 +237,7 @@ void FGPID::Debug(int from)
cout << " INPUT: " << InputNodes[0]->GetNameWithSign() << endl;
for (auto node: OutputNodes)
cout << " OUTPUT: " << node->getName() << endl;
cout << " OUTPUT: " << node->getNameString() << endl;
}
}
if (debug_lvl & 2 ) { // Instantiation/Destruction notification

View file

@ -334,7 +334,7 @@ void FGSensor::Debug(int from)
}
}
for (auto node: OutputNodes)
cout << " OUTPUT: " << node->getName() << endl;
cout << " OUTPUT: " << node->getNameString() << endl;
}
}
if (debug_lvl & 2 ) { // Instantiation/Destruction notification

View file

@ -204,7 +204,7 @@ void FGSwitch::Debug(int from)
++i;
}
for (auto node: OutputNodes)
cout << " OUTPUT: " << node->getName() << endl;
cout << " OUTPUT: " << node->getNameString() << endl;
}
}
if (debug_lvl & 2 ) { // Instantiation/Destruction notification

View file

@ -57,10 +57,10 @@ FGLaRCsim::FGLaRCsim( double dt ) {
aero = fgGetNode("/sim/aero", true);
uiuc_type = fgGetNode("/sim/uiuc-type", true);
ls_toplevel_init( 0.0, (char *)(aero->getStringValue()) );
ls_toplevel_init( 0.0, (char *)(aero->getStringValue().c_str()) );
lsic=new LaRCsimIC; //this needs to be brought up after LaRCsim is
if ( !strcmp(aero->getStringValue(), "c172") ) {
if ( aero->getStringValue() == "c172" ) {
copy_to_LaRCsim(); // initialize all of LaRCsim's vars
//this should go away someday -- formerly done in fg_init.cxx
@ -71,7 +71,7 @@ FGLaRCsim::FGLaRCsim( double dt ) {
I_xz = 0.000000E+00;
}
if ( !strcmp(aero->getStringValue(), "basic") ) {
if ( aero->getStringValue() == "basic" ) {
copy_to_LaRCsim(); // initialize all of LaRCsim's vars
//this should go away someday -- formerly done in fg_init.cxx
@ -119,7 +119,7 @@ void FGLaRCsim::update( double dt ) {
int multiloop = _calc_multiloop(dt);
// if flying c172-larcsim, do the following
if ( !strcmp(aero->getStringValue(), "c172") ) {
if ( aero->getStringValue() == "c172" ) {
// set control inputs
// cout << "V_calibrated_kts = " << V_calibrated_kts << '\n';
eng.set_IAS( V_calibrated_kts );
@ -190,7 +190,7 @@ void FGLaRCsim::update( double dt ) {
}
// done with c172-larcsim if-block
if ( !strcmp(aero->getStringValue(), "basic") ) {
if ( aero->getStringValue() == "basic" ) {
// set control inputs
// cout << "V_calibrated_kts = " << V_calibrated_kts << '\n';
eng.set_IAS( V_calibrated_kts );
@ -277,7 +277,7 @@ void FGLaRCsim::update( double dt ) {
// IO360.cxx for the C172 thrust is broken (not sure why).
// So force C172 to use engine model in c172_engine.c instead of the IO360.cxx.
// if ( !strcmp(aero->getStringValue(), "c172") ) {
// if ( aero->getStringValue() == "c172" ) {
// Use_External_Engine = 1;
// } else {
// Use_External_Engine = 0;
@ -318,7 +318,7 @@ void FGLaRCsim::update( double dt ) {
// if flying uiuc, set some properties and over-ride some previous ones
#ifdef ENABLE_UIUC_MODEL
if ( !strcmp(aero->getStringValue(), "uiuc")) {
if ( aero->getStringValue() == "uiuc" ) {
// surface positions and other general properties
fgSetDouble("/surface-positions/flight/rudder-pos-norm", fgGetDouble("/controls/flight/rudder"));
@ -377,10 +377,10 @@ void FGLaRCsim::update( double dt ) {
// make the engine cranking and running sounds when fgfs starts up
fgSetDouble("/engines/engine/cranking", 1);
fgSetDouble("/engines/engine/running", 1);
if ( !strcmp(uiuc_type->getStringValue(), "uiuc-prop")) {
if ( uiuc_type->getStringValue() == "uiuc-prop" ) {
// uiuc prop driven airplane, e.g. Wright Flyer
}
else if ( !strcmp(uiuc_type->getStringValue(), "uiuc-jet")) {
else if ( uiuc_type->getStringValue() == "uiuc-jet" ) {
// uiuc jet aircraft, e.g. a4d
// used for setting the sound
fgSetDouble("/engines/engine/n1", (75 + (globals->get_controls()->get_throttle( 0 ) * 100.0 )/400));
@ -388,15 +388,15 @@ void FGLaRCsim::update( double dt ) {
// used for setting the instruments
fgSetDouble("/engines/engine[0]/n1", (50 + (globals->get_controls()->get_throttle( 0 ) * 50)));
}
else if ( !strcmp(uiuc_type->getStringValue(), "uiuc-sailplane")) {
else if ( uiuc_type->getStringValue() == "uiuc-sailplane" ) {
// uiuc sailplane, e.g. asw20
fgSetDouble("/engines/engine/cranking", 0);
}
else if ( !strcmp(uiuc_type->getStringValue(), "uiuc-hangglider")) {
else if ( uiuc_type->getStringValue() == "uiuc-hangglider" ) {
// uiuc hang glider, e.g. airwave
fgSetDouble("/engines/engine/cranking", 0);
}
else if ( !strcmp(uiuc_type->getStringValue(), "uiuc-ornithopter")) {
else if ( uiuc_type->getStringValue() == "uiuc-ornithopter" ) {
// flapping wings
fgSetDouble("/canopy/position-norm", 0);
fgSetDouble("/wing-phase/position-norm", sin(flapper_phi - 3 * LS_PI / 2));
@ -759,7 +759,7 @@ bool FGLaRCsim::copy_from_LaRCsim() {
// cout << "climb rate = " << -V_down * 60 << endl;
#ifdef ENABLE_UIUC_MODEL
if (!strcmp(aero->getStringValue(), "uiuc") && aircraft_) {
if (aero->getStringValue() == "uiuc" && aircraft_) {
if (pilot_elev_no) {
globals->get_controls()->set_elevator(Long_control);
globals->get_controls()->set_elevator_trim(Long_trim);

View file

@ -281,15 +281,14 @@ void Hitch::findBestAIObject(bool doit,bool running_as_autoconnect)
_towEndIsConnectedToProperty=false;
SGPropertyNode * ainode = fgGetNode("/ai/models",false);
if(!ainode) return;
char myCallsign[256]="***********";
std::string myCallsign = "***********";
if (running_as_autoconnect)
{
//get own callsign
SGPropertyNode *cs=fgGetNode("/sim/multiplay/callsign",false);
if (cs)
{
strncpy(myCallsign,cs->getStringValue(),256);
myCallsign[255]=0;
myCallsign = cs->getStringValue();
}
//reset tow length for search radius. Lentgh will be later copied from master
_towLength=_winchInitialTowLength;
@ -299,8 +298,8 @@ void Hitch::findBestAIObject(bool doit,bool running_as_autoconnect)
for (int i=0;i<ainode->nChildren();i++)
{
SGPropertyNode * n=ainode->getChild(i);
_nodeIsMultiplayer = strncmp("multiplayer",n->getName(),11)==0;
_nodeIsAiAircraft = strncmp("aircraft",n->getName(),8)==0;
_nodeIsMultiplayer = strncmp("multiplayer", n->getNameString().c_str(), 11) == 0;
_nodeIsAiAircraft = strncmp("aircraft", n->getNameString().c_str(), 8) == 0;
if (!(_nodeIsMultiplayer || _nodeIsAiAircraft))
continue;
if (running_as_autoconnect)
@ -308,7 +307,7 @@ void Hitch::findBestAIObject(bool doit,bool running_as_autoconnect)
if (!_nodeIsMultiplayer)
continue;
if(n->getBoolValue("sim/hitches/aerotow/open",true)) continue;
if(strncmp(myCallsign,n->getStringValue("sim/hitches/aerotow/tow/connected-to-ai-or-mp-callsign"),255)!=0)
if (myCallsign != n->getStringValue("sim/hitches/aerotow/tow/connected-to-ai-or-mp-callsign"))
continue;
}
double pos[3];
@ -565,7 +564,7 @@ void Hitch::integrate (float dt)
{
std::stringstream message;
message<<"Could not lock hitch (tow length is insufficient) on hitch "
<<_node->getName()<<" "<<_node->getIndex()<<"!";
<<_node->getNameString()<<" "<<_node->getIndex()<<"!";
fgSetString("/sim/messages/pilot", message.str().c_str());
_open=true;
return;
@ -576,7 +575,7 @@ void Hitch::integrate (float dt)
if (_node->getBoolValue("broken",false)&&_open)
message<<"Oh no, the tow is broken";
else
message<<(_open?"Opened hitch ":"Locked hitch ")<<_node->getName()<<" "<<_node->getIndex()<<"!";
message<<(_open?"Opened hitch ":"Locked hitch ")<<_node->getNameString()<<" "<<_node->getIndex()<<"!";
fgSetString("/sim/messages/pilot", message.str().c_str());
_oldOpen=_open;
}
@ -599,23 +598,21 @@ void Hitch::integrate (float dt)
if (_node)
{
//_towEndNode=fgGetNode(_node->getStringValue("tow/node"), false);
char towNode[256];
strncpy(towNode,_node->getStringValue("tow/node"),256);
towNode[255]=0;
std::string towNode = _node->getStringValue("tow/node");
_towEndNode=fgGetNode("ai/models")->getNode(towNode, false);
//AI and multiplayer objects seem to change node?
//Check if we have the right one by callsign
if (_nodeIsMultiplayer || _nodeIsAiAircraft)
{
char MPcallsign[256]="";
const char *MPc;
MPc=_node->getStringValue("tow/connected-to-ai-or-mp-callsign");
if (MPc)
std::string MPcallsign = "";
std::string MPc =_node->getStringValue("tow/connected-to-ai-or-mp-callsign");
if (!MPc.empty())
{
strncpy(MPcallsign,MPc,256);
MPcallsign[255]=0;
MPcallsign = MPc;
}
if (((_towEndNode)&&(strncmp(_towEndNode->getStringValue("callsign"),MPcallsign,255)!=0))||!_towEndNode)
if ((_towEndNode
&& _towEndNode->getStringValue("callsign") != MPcallsign)
|| !_towEndNode)
{
_timeToNextReConnectTry-=dt;
if((_timeToNextReConnectTry<0)||(_timeToNextReConnectTry>10))
@ -627,13 +624,17 @@ void Hitch::integrate (float dt)
for (int i=0;i<ainode->nChildren();i++)
{
SGPropertyNode * n=ainode->getChild(i);
if(_nodeIsMultiplayer?strncmp("multiplayer",n->getName(),11)==0:strncmp("aircraft",n->getName(),8))
if (strcmp(n->getStringValue("callsign"),MPcallsign)==0)//found
if (_nodeIsMultiplayer
? strncmp("multiplayer", n->getNameString().c_str(), 11) == 0
: strncmp("aircraft", n->getNameString().c_str(), 8)
) {
if (n->getStringValue("callsign") == MPcallsign)//found
{
_towEndNode=n;
//_node->setStringValue("tow/node",n->getPath());
_node->setStringValue("tow/node",n->getDisplayName());
}
}
}
}
}

View file

@ -81,14 +81,14 @@ CanvasWidget::CanvasWidget( int x, int y,
SGPropertyNode *load = nasal->getNode("load");
if( load )
{
const char *s = load->getStringValue();
const std::string s = load->getStringValue();
// avoid crash FLIGHTGEAR-5FQ
if (!s) {
if (s.empty()) {
SG_LOG(SG_GUI, SG_ALERT, "Empty 'load' script for Canvas widget:" << cprops->getStringValue("name"));
return;
}
nas->handleCommand(module.c_str(), file.c_str(), s, cprops);
nas->handleCommand(module.c_str(), file.c_str(), s.c_str(), cprops);
}
}

View file

@ -106,7 +106,7 @@ WeatherScenariosModel::WeatherScenariosModel(QObject *pr) :
int nChildren = scenarios->nChildren();
for (int i = 0; i < nChildren; i++) {
SGPropertyNode_ptr scenario = scenarios->getChild(i);
if (strcmp(scenario->getName(), "scenario") != 0) {
if (scenario->getNameString() != "scenario") {
continue;
}

View file

@ -164,7 +164,7 @@ FGFontCache::get(SGPropertyNode *node)
if (!node)
return get("Helvetica.txf", 15.0, 0.0);
const char *name = node->getStringValue("name", "Helvetica.txf");
std::string name = node->getStringValue("name", "Helvetica.txf");
float size = node->getFloatValue("size", 15.0);
float slant = node->getFloatValue("slant", 0.0);

View file

@ -254,7 +254,7 @@ void GUIInfo::apply_format(SGPropertyNode* n)
else if (fmt_type == f_DOUBLE)
snprintf(buf, FORMAT_BUFSIZE, format.c_str(), n->getDoubleValue());
else
snprintf(buf, FORMAT_BUFSIZE, format.c_str(), n->getStringValue());
snprintf(buf, FORMAT_BUFSIZE, format.c_str(), n->getStringValue().c_str());
buf[FORMAT_BUFSIZE] = '\0';
text = buf;
@ -686,8 +686,8 @@ FGPUIDialog::FGPUIDialog(SGPropertyNode* props) : FGDialog(props),
_nasal_close = nasal->getNode("close");
SGPropertyNode* open = nasal->getNode("open");
if (open) {
const char* s = open->getStringValue();
nas->createModule(_module.c_str(), _module.c_str(), s, strlen(s), props);
string s = open->getStringValue();
nas->createModule(_module.c_str(), _module.c_str(), s.c_str(), s.length(), props);
}
}
display(props);
@ -703,8 +703,8 @@ FGPUIDialog::~FGPUIDialog()
auto nas = globals->get_subsystem<FGNasalSys>();
if (nas) {
if (_nasal_close) {
const char* s = _nasal_close->getStringValue();
nas->createModule(_module.c_str(), _module.c_str(), s, strlen(s), _props);
string s = _nasal_close->getStringValue();
nas->createModule(_module.c_str(), _module.c_str(), s.c_str(), s.length(), _props);
}
nas->deleteModule(_module.c_str());
}
@ -890,7 +890,7 @@ FGPUIDialog::makeObject(SGPropertyNode* props, int parentWidth, int parentHeight
int height = props->getIntValue("height", parentHeight);
int x = props->getIntValue("x", (parentWidth - width) / 2);
int y = props->getIntValue("y", (parentHeight - height) / 2);
string type = props->getName();
string type = props->getNameString();
if (type.empty())
type = "dialog";
@ -989,11 +989,11 @@ FGPUIDialog::makeObject(SGPropertyNode* props, int parentWidth, int parentHeight
} else if (type == "button") {
puButton* obj;
const char* legend = props->getStringValue("legend", "[none]");
string legend = props->getStringValue("legend", "[none]");
if (props->getBoolValue("one-shot", true))
obj = new puOneShot(x, y, legend);
obj = new puOneShot(x, y, legend.c_str());
else
obj = new puButton(x, y, legend);
obj = new puButton(x, y, legend.c_str());
if (presetSize)
obj->setSize(width, height);
setupObject(obj, props);
@ -1149,14 +1149,14 @@ void FGPUIDialog::setupObject(puObject* object, SGPropertyNode* props)
_conditionalObjects.push_back(cnd);
}
string type = props->getName();
string type = props->getNameString();
if (type == "input" && props->getBoolValue("live"))
object->setDownCallback(action_callback);
if (type == "text") {
const char* format = props->getStringValue("format", 0);
if (format) {
info->fmt_type = validate_format(format);
string format = props->getStringValue("format", "");
if (!format.empty()) {
info->fmt_type = validate_format(format.c_str());
if (info->fmt_type != f_INVALID)
info->format = format;
else
@ -1165,10 +1165,8 @@ void FGPUIDialog::setupObject(puObject* object, SGPropertyNode* props)
}
if (props->hasValue("property")) {
const char* name = props->getStringValue("name");
if (name == 0)
name = "";
const char* propname = props->getStringValue("property");
string name = props->getStringValue("name", "");
string propname = props->getStringValue("property");
SGPropertyNode_ptr node = fgGetNode(propname, true);
if (type == "map") {
// mapWidget binds to a sub-tree of properties, and
@ -1189,12 +1187,12 @@ void FGPUIDialog::setupObject(puObject* object, SGPropertyNode* props)
if (!bindings.empty()) {
info->key = props->getIntValue("keynum", -1);
if (props->hasValue("key"))
info->key = getKeyCode(props->getStringValue("key", ""));
info->key = getKeyCode(props->getStringValue("key", "").c_str());
for (auto bindingNode : bindings) {
const char* cmd = bindingNode->getStringValue("command");
if (!strcmp(cmd, "nasal")) {
string cmd = bindingNode->getStringValue("command");
if (cmd == "nasal") {
// we need to clone the binding node, so we can unique the
// Nasal module. Otherwise we always modify the global dialog
// definition, and cloned dialogs use the same Nasal module for
@ -1235,7 +1233,7 @@ void FGPUIDialog::setupGroup(puGroup* group, SGPropertyNode* props,
void FGPUIDialog::setColor(puObject* object, SGPropertyNode* props, int which)
{
string type = props->getName();
string type = props->getNameString();
if (type.empty())
type = "dialog";
if (type == "textbox" && props->getBoolValue("editable"))
@ -1470,7 +1468,7 @@ void FGPUIDialog::applySize(puObject* object)
// Implementation of FGDialog::PropertyObject.
////////////////////////////////////////////////////////////////////////
FGPUIDialog::PropertyObject::PropertyObject(const char* n,
FGPUIDialog::PropertyObject::PropertyObject(string n,
puObject* o, SGPropertyNode_ptr p) : name(n),
object(o),
node(p)
@ -1502,11 +1500,11 @@ fgValueList::~fgValueList()
void fgValueList::make_list()
{
SGPropertyNode_ptr values = _props;
const char* vname = "value";
string vname = "value";
if (_props->hasChild("properties")) {
// dynamic values, read from a property's children
const char* path = _props->getStringValue("properties");
string path = _props->getStringValue("properties");
values = fgGetNode(path, true);
}
@ -1518,7 +1516,7 @@ void fgValueList::make_list()
_list = new char*[value_nodes.size() + 1];
unsigned int i;
for (i = 0; i < value_nodes.size(); i++) {
_list[i] = strdup((char*)value_nodes[i]->getStringValue());
_list[i] = strdup((char*)value_nodes[i]->getStringValue().c_str());
}
_list[i] = 0;
}

View file

@ -176,7 +176,7 @@ private:
// closes.
std::vector<void*> _info;
struct PropertyObject {
PropertyObject(const char* name,
PropertyObject(std::string name,
puObject* object,
SGPropertyNode_ptr node);
std::string name;

View file

@ -195,8 +195,8 @@ FGPUIMenuBar::make_menu (SGPropertyNode * node)
FGLocale::utf8toLatin1(label);
// append the keyboard hint to the menu entry
const char* key = item_nodes[i]->getStringValue("key", 0);
if (key)
string key = item_nodes[i]->getStringValue("key", "");
if (!key.empty())
{
label.append(" <");
label.append(key);

View file

@ -77,7 +77,7 @@ bool AircraftItem::initFromFile(QDir dir, QString filePath)
LocalizedStrings ls;
ls.locale = "en";
ls.strings["name"] = QString::fromStdString(sim->getStringValue("description")).trimmed();
authors = sim->getStringValue("author");
authors = QString::fromStdString(sim->getStringValue("author"));
if (sim->hasChild("rating")) {
SGPropertyNode_ptr ratingsNode = sim->getNode("rating");
@ -88,11 +88,11 @@ bool AircraftItem::initFromFile(QDir dir, QString filePath)
if (sim->hasChild("long-description")) {
// clean up any XML whitspace in the text.
ls.strings["desc"] = QString(sim->getStringValue("long-description")).simplified();
ls.strings["desc"] = QString::fromStdString(sim->getStringValue("long-description")).simplified();
}
if (sim->hasChild("variant-of")) {
variantOf = sim->getStringValue("variant-of");
variantOf = QString::fromStdString(sim->getStringValue("variant-of"));
} else {
isPrimary = true;
}
@ -106,16 +106,16 @@ bool AircraftItem::initFromFile(QDir dir, QString filePath)
int nChildren = tagsNode->nChildren();
for (int i = 0; i < nChildren; i++) {
const SGPropertyNode* c = tagsNode->getChild(i);
if (strcmp(c->getName(), "tag") == 0) {
const char* tagName = c->getStringValue();
usesHeliports |= (strcmp(tagName, "helicopter") == 0);
if (c->getNameString() == "tag") {
std::string tagName = c->getStringValue();
usesHeliports |= (tagName == "helicopter");
// could also consider vtol tag?
usesSeaports |= (strcmp(tagName, "seaplane") == 0);
usesSeaports |= (strcmp(tagName, "floats") == 0);
needsMaintenance |= (strcmp(tagName, "needs-maintenance") == 0);
usesSeaports |= (tagName == "seaplane");
usesSeaports |= (tagName == "floats");
needsMaintenance |= (tagName == "needs-maintenance");
// and actually store the tags
tags.push_back(QString::fromUtf8(tagName));
tags.push_back(QString::fromStdString(tagName));
}
} // of tags iteration
} // of set-xml has tags
@ -148,13 +148,13 @@ bool AircraftItem::initFromFile(QDir dir, QString filePath)
}
if (sim->hasChild("thumbnail")) {
thumbnailPath = sim->getStringValue("thumbnail");
thumbnailPath = QString::fromStdString(sim->getStringValue("thumbnail"));
} else {
thumbnailPath = "thumbnail.jpg";
}
if (sim->hasChild("minimum-fg-version")) {
minFGVersion = sim->getStringValue("minimum-fg-version");
minFGVersion = QString::fromStdString(sim->getStringValue("minimum-fg-version"));
}
homepageUrl = QUrl(QString::fromStdString(sim->getStringValue("urls/home-page")));

View file

@ -110,7 +110,7 @@ void MPServersModel::onRefreshMPServersDone(simgear::HTTP::Request*)
for (int i=0; i<targetnode->nChildren(); ++i) {
SGPropertyNode* c = targetnode->getChild(i);
if (c->getName() != std::string("server")) {
if (c->getNameString() != "server") {
continue;
}

View file

@ -2068,7 +2068,7 @@ MapWidget::DrawAIObject::DrawAIObject(SGPropertyNode* m, const SGGeod& g) :
char buffer[1024];
::snprintf(buffer, 1024, "%s\n%dkts",
model->getStringValue("name", "<>"),
model->getStringValue("name", "<>").c_str(),
speedKts);
legend = buffer;
}

View file

@ -208,7 +208,7 @@ bool FGMouseCursor::setCursorCommand(const SGPropertyNode* arg, SGPropertyNode*)
}
Cursor c = cursorFromString(arg->getStringValue("cursor"));
Cursor c = cursorFromString(arg->getStringValue("cursor").c_str());
setCursor(c);
return true;
}

View file

@ -400,7 +400,7 @@ QString QmlAircraftInfo::authors() const
QString html = "<ul>\n";
for (auto a : structuredAuthors->getChildren("author")) {
html += "<li>";
html += a->getStringValue("name");
html += QString::fromStdString(a->getStringValue("name"));
if (a->hasChild("nick")) {
html += QStringLiteral(" '") + QString::fromStdString(a->getStringValue("nick")) + QStringLiteral("'");
}

View file

@ -147,7 +147,7 @@ public:
auto it = std::find(_directChildren.begin(), _directChildren.end(), child);
if (it == _directChildren.end()) {
SG_LOG(SG_GUI, SG_DEV_ALERT, "Bug in QmlPropertyModel - child not found when removing:" << parent->getPath() << " - " << child->getName());
SG_LOG(SG_GUI, SG_DEV_ALERT, "Bug in QmlPropertyModel - child not found when removing:" << parent->getPath() << " - " << child->getNameString());
return;
}

View file

@ -120,7 +120,7 @@ void mkDialog (const char *txt)
if (!msg->getNode(name.c_str(), false))
break;
if (!strcmp(txt, msg->getNode(name.c_str())->getStringValue("message"))) {
if (!strcmp(txt, msg->getNode(name.c_str())->getStringValue("message").c_str())) {
SG_LOG(SG_GENERAL, SG_WARN, "mkDialog(): duplicate of message " << txt);
return;
}
@ -397,11 +397,11 @@ void fgHiResDump()
glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
glHint(GL_POINT_SMOOTH_HINT, GL_DONT_CARE);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_DONT_CARE);
if ( (!strcmp(fgGetString("/sim/rendering/fog"), "disabled")) ||
if ( fgGetString("/sim/rendering/fog") == "disabled" ||
(!fgGetBool("/sim/rendering/shading"))) {
// if fastest fog requested, or if flat shading force fastest
glHint ( GL_FOG_HINT, GL_FASTEST );
} else if ( !strcmp(fgGetString("/sim/rendering/fog"), "nicest") ) {
} else if ( fgGetString("/sim/rendering/fog") == "nicest" ) {
glHint ( GL_FOG_HINT, GL_DONT_CARE );
}

View file

@ -24,10 +24,10 @@ int LayoutWidget::stringLength(const char* s)
return (int)(FONT.getFloatStringWidth(s) + 0.999);
}
const char* LayoutWidget::type()
std::string LayoutWidget::type()
{
const char* t = _prop->getName();
return (*t == 0) ? "dialog" : t;
string t = _prop->getNameString();
return t.empty() ? "dialog" : t;
}
bool LayoutWidget::hasParent()
@ -47,9 +47,8 @@ int LayoutWidget::nChildren()
int n = 0;
for(int i=0; i<_prop->nChildren(); i++) {
SGPropertyNode* p = _prop->getChild(i);
const char* name = p->getName();
if(p->nChildren() != 0 || !strcmp(name, "hrule")
|| !strcmp(name, "vrule"))
string name = p->getNameString();
if (p->nChildren() != 0 || name == "hrule" || name == "vrule")
n++;
}
return n;
@ -62,9 +61,8 @@ LayoutWidget LayoutWidget::getChild(int idx)
int n = 0;
for(int i=0; i<_prop->nChildren(); i++) {
SGPropertyNode* p = _prop->getChild(i);
const char* name = p->getName();
if(p->nChildren() != 0 || !strcmp(name, "hrule")
|| !strcmp(name, "vrule")) {
string name = p->getNameString();
if (p->nChildren() != 0 || name == "hrule" || name == "vrule") {
if(idx == n) return LayoutWidget(p);
n++;
}
@ -87,7 +85,7 @@ bool LayoutWidget::getBool(const char* f, bool dflt)
return _prop->getBoolValue(f, dflt);
}
const char* LayoutWidget::getStr(const char* f)
std::string LayoutWidget::getStr(const char* f)
{
return _prop->getStringValue(f);
}

View file

@ -46,8 +46,8 @@ void LayoutWidget::calcPrefSize(int* w, int* h)
if (!getBool("enabled", true) || isType("nasal"))
return;
int legw = stringLength(getStr("legend"));
int labw = stringLength(getStr("label"));
int legw = stringLength(getStr("legend").c_str());
int labw = stringLength(getStr("label").c_str());
if(isType("dialog") || isType("group") || isType("frame")) {
if(!hasField("layout")) {
@ -55,10 +55,10 @@ void LayoutWidget::calcPrefSize(int* w, int* h)
if(hasField("width")) *w = getNum("width");
if(hasField("height")) *h = getNum("height");
} else {
const char* layout = getStr("layout");
if (eq(layout, "hbox" )) doHVBox(false, false, w, h);
else if(eq(layout, "vbox" )) doHVBox(false, true, w, h);
else if(eq(layout, "table")) doTable(false, w, h);
string layout = getStr("layout");
if (layout == "hbox") doHVBox(false, false, w, h);
else if(layout == "vbox") doHVBox(false, true, w, h);
else if(layout == "table") doTable(false, w, h);
}
} else if (isType("text")) {
*w = labw;
@ -130,25 +130,25 @@ void LayoutWidget::layout(int x, int y, int w, int h)
// Correct our box for alignment. The values above correspond to
// a "fill" alignment.
const char* halign = (isGroup || isType("hrule")) ? "fill" : "center";
string halign = (isGroup || isType("hrule")) ? "fill" : "center";
if(hasField("halign")) halign = getStr("halign");
if(eq(halign, "left")) {
if(halign == "left") {
w = prefw;
} else if(eq(halign, "right")) {
} else if(halign == "right") {
x += w - prefw;
w = prefw;
} else if(eq(halign, "center")) {
} else if(halign == "center") {
x += (w - prefw)/2;
w = prefw;
}
const char* valign = (isGroup || isType("vrule")) ? "fill" : "center";
string valign = (isGroup || isType("vrule")) ? "fill" : "center";
if(hasField("valign")) valign = getStr("valign");
if(eq(valign, "bottom")) {
if(valign == "bottom") {
h = prefh;
} else if(eq(valign, "top")) {
} else if(valign == "top") {
y += h - prefh;
h = prefh;
} else if(eq(valign, "center")) {
} else if(valign == "center") {
y += (h - prefh)/2;
h = prefh;
}
@ -186,10 +186,10 @@ void LayoutWidget::layout(int x, int y, int w, int h)
// Finally, if we are ourselves a layout object, do the actual layout.
if(isGroup && hasField("layout")) {
const char* layout = getStr("layout");
if (eq(layout, "hbox" )) doHVBox(true, false);
else if(eq(layout, "vbox" )) doHVBox(true, true);
else if(eq(layout, "table")) doTable(true);
string layout = getStr("layout");
if (layout == "hbox") doHVBox(true, false);
else if(layout == "vbox") doHVBox(true, true);
else if(layout == "table") doTable(true);
}
}

View file

@ -24,7 +24,7 @@ public:
LayoutWidget() { _prop = 0; }
LayoutWidget(SGPropertyNode* p) { _prop = p; }
const char* type();
std::string type();
bool hasParent();
LayoutWidget parent();
int nChildren();
@ -32,7 +32,7 @@ public:
bool hasField(const char* f);
int getNum(const char* f);
bool getBool(const char* f, bool dflt = false);
const char* getStr(const char* f);
std::string getStr(const char* f);
void setNum(const char* f, int num);
void calcPrefSize(int* w, int* h);
@ -43,7 +43,7 @@ private:
static puFont FONT;
static bool eq(const char* a, const char* b);
bool isType(const char* t) { return eq(t, type()); }
bool isType(const char* t) { return (t == type()); }
int padding();
int stringLength(const char* s); // must handle null argument

View file

@ -23,21 +23,21 @@ FGMenuBar::getLocalizedLabel(SGPropertyNode* node)
if (!node)
return {};
const char* name = node->getStringValue("name", 0);
std::string name = node->getStringValue("name", "");
const auto translated = globals->get_locale()->getLocalizedString(name, "menu");
if (!translated.empty())
return translated;
// return default with fallback to name
const char* l = node->getStringValue("label", name);
std::string label = node->getStringValue("label", name.c_str());
// this can occur if the menu item is missing a <name>
if (l == nullptr) {
if (label.empty()) {
SG_LOG(SG_GUI, SG_ALERT, "FGMenuBar::getLocalizedLabel: No <name> defined for:" << node->getPath());
return string{"<unnamed>"};
}
return string{l};
return label;
}
// end of menubar.cxx

View file

@ -71,7 +71,7 @@ NewGUI::~NewGUI ()
//
static void findAllLeafValues(SGPropertyNode* node, const std::string& leaf, std::vector<std::string>& out)
{
const char* name = node->getName();
string name = node->getNameString();
if (name == leaf) {
out.push_back(node->getStringValue());
}
@ -121,7 +121,7 @@ NewGUI::init ()
SGPath p(globals->get_fg_root(), "gui/dialogs");
readDir(p);
SGPath aircraftDialogDir(string(fgGetString("/sim/aircraft-dir")), "gui/dialogs");
SGPath aircraftDialogDir(fgGetString("/sim/aircraft-dir"), "gui/dialogs");
if (aircraftDialogDir.exists()) {
readDir(aircraftDialogDir);
}
@ -414,12 +414,11 @@ NewGUI::setMenuBarOverlapHide(bool hide)
void
NewGUI::newDialog (SGPropertyNode* props)
{
const char* cname = props->getStringValue("name");
if(!cname) {
string name = props->getStringValue("name", "");
if(name.empty()) {
SG_LOG(SG_GENERAL, SG_ALERT, "New dialog has no <name> property");
return;
}
string name = cname;
if(_active_dialogs.find(name) == _active_dialogs.end()) {
_dialog_props[name] = props;
@ -566,7 +565,7 @@ NewGUI::setStyle (void)
for (int i = 0; i < n->nChildren(); i++) {
SGPropertyNode *child = n->getChild(i);
_colors[child->getName()] = new FGColor(child);
_colors[child->getNameString()] = new FGColor(child);
}
FGColor *c = _colors["background"];

View file

@ -189,15 +189,15 @@ protected:
private:
void createMenuBarImplementation();
struct ltstr
/*struct ltstr
{
bool operator()(const char* s1, const char* s2) const {
return strcmp(s1, s2) < 0;
bool operator()(const std::string& s1, const std::string& s2) const {
return s1 < s2;
}
};
};*/
puFont *_font;
typedef std::map<const char*,FGColor*, ltstr> ColourDict;
typedef std::map<std::string, FGColor*> ColourDict;
ColourDict _colors;
typedef ColourDict::iterator _itt_t;
typedef ColourDict::const_iterator _citt_t;

View file

@ -86,7 +86,7 @@ static void dumpProperties(const SGPropertyNode *node)
continue;
int index = c->getIndex();
cout << std::setw(11) << getValueTypeString(c) << " " << c->getName();
cout << std::setw(11) << getValueTypeString(c) << " " << c->getNameString();
if (index > 0)
cout << '[' << index << ']';
cout << " = ";
@ -409,7 +409,7 @@ int PropertyList::nodeNameCompare(const void *p1, const void *p2)
const SGPropertyNode *n1 = (*(const NodeData *)p1).node;
const SGPropertyNode *n2 = (*(const NodeData *)p2).node;
int diff = strcmp(n1->getName(), n2->getName());
int diff = strcmp(n1->getNameString().c_str(), n2->getNameString().c_str());
return diff ? diff : n1->getIndex() - n2->getIndex();
}

View file

@ -38,7 +38,7 @@ void FGCommonInput::read_bindings (const SGPropertyNode * node, binding_list_t *
PropertyList bindings = node->getChildren("binding");
static string nasal = "nasal";
for (unsigned int i = 0; i < bindings.size(); i++) {
const char *cmd = bindings[i]->getStringValue("command");
std::string cmd = bindings[i]->getStringValue("command");
if (nasal.compare(cmd) == 0 && !module.empty())
bindings[i]->setStringValue("module", module.c_str());
binding_list[modifiers].push_back(new SGBinding(bindings[i], globals->get_props()));

View file

@ -820,12 +820,12 @@ void FGHIDDevice::defineReport(SGPropertyNode_ptr reportNode)
for (int c=0; c < nChildren; ++c) {
const auto nd = reportNode->getChild(c);
const int size = nd->getIntValue("size", 1); // default to a single bit
if (!strcmp(nd->getName(), "unused-bits")) {
if (nd->getNameString() == "unused-bits") {
bitCount += size;
continue;
}
if (!strcmp(nd->getName(), "type") || !strcmp(nd->getName(), "id")) {
if (nd->getNameString() == "type" || nd->getNameString() == "id") {
continue; // already handled above
}

View file

@ -420,7 +420,7 @@ void FGMouseInput::init()
SGPropertyNode * mode_node = mouse_node->getChild("mode", j, true);
// Read the mouse cursor for this mode
m.modes[j].cursor = FGMouseCursor::cursorFromString(mode_node->getStringValue("cursor", "inherit"));
m.modes[j].cursor = FGMouseCursor::cursorFromString(mode_node->getStringValue("cursor", "inherit").c_str());
// Read other properties for this mode
m.modes[j].constrained = mode_node->getBoolValue("constrained", false);

View file

@ -73,8 +73,8 @@ HUD::Input::Input(const SGPropertyNode *n, float factor, float offset,
_coeff = 1.0 - 1.0 / powf(10, fabs(n->getFloatValue("damp", 0.0)));
SGPropertyNode *p = ((SGPropertyNode *)n)->getNode("property", false);
if (p) {
const char *path = p->getStringValue();
if (path && path[0]) {
string path = p->getStringValue();
if (!path.empty()) {
_property = fgGetNode(path, true);
_valid = true;
}
@ -395,52 +395,52 @@ int HUD::load(const char *file, float x, float y, int level, const string& inden
for (int i = 0; i < root.nChildren(); i++) {
SGPropertyNode *n = root.getChild(i);
const char *d = n->getStringValue("name", 0);
string d = n->getStringValue("name", "");
string desc;
if (d)
if (!d.empty())
desc = string(": \"") + d + '"';
const char *name = n->getName();
if (!strcmp(name, "name")) {
const string name = n->getNameString();
if (name == "name") {
continue;
} else if (!strcmp(name, "enable3d")) {
} else if (name == "enable3d") {
// set in the tree so that valueChanged() picks it up
_3DenabledN->setBoolValue(n->getBoolValue());
continue;
} else if (!strcmp(name, "import")) {
const char *fn = n->getStringValue("path", "");
} else if (name == "import") {
string fn = n->getStringValue("path", "");
float xoffs = n->getFloatValue("x-offset", 0.0f);
float yoffs = n->getFloatValue("y-offset", 0.0f);
SG_LOG(SG_INPUT, TREE, indent << "|__import " << fn << desc);
string ind = indent + string(i + 1 < root.nChildren() ? "| " : " ");
ret |= load(fn, x + xoffs, y + yoffs, level + 1, ind);
ret |= load(fn.c_str(), x + xoffs, y + yoffs, level + 1, ind);
continue;
}
SG_LOG(SG_INPUT, TREE, indent << "|__" << name << desc);
Item *item;
if (!strcmp(name, "label")) {
if (name == "label") {
item = static_cast<Item *>(new Label(this, n, x, y));
} else if (!strcmp(name, "gauge")) {
} else if (name == "gauge") {
item = static_cast<Item *>(new Gauge(this, n, x, y));
} else if (!strcmp(name, "tape")) {
} else if (name == "tape") {
item = static_cast<Item *>(new Tape(this, n, x, y));
} else if (!strcmp(name, "dial")) {
} else if (name == "dial") {
item = static_cast<Item *>(new Dial(this, n, x, y));
} else if (!strcmp(name, "turn-bank-indicator")) {
} else if (name == "turn-bank-indicator") {
item = static_cast<Item *>(new TurnBankIndicator(this, n, x, y));
} else if (!strcmp(name, "ladder")) {
} else if (name == "ladder") {
item = static_cast<Item *>(new Ladder(this, n, x, y));
_ladders.insert(_ladders.begin(), item);
continue;
} else if (!strcmp(name, "runway")) {
} else if (name == "runway") {
item = static_cast<Item *>(new Runway(this, n, x, y));
} else if (!strcmp(name, "aiming-reticle")) {
} else if (name == "aiming-reticle") {
item = static_cast<Item *>(new AimingReticle(this, n, x, y));
} else {
SG_LOG(SG_INPUT, TREE, indent << " \\...unsupported!");
@ -466,7 +466,7 @@ void HUD::valueChanged(SGPropertyNode *node)
loadNow = true;
}
if (!strcmp(node->getName(), "current-path") && _visible) {
if (node->getNameString() == "current-path" && _visible) {
loadNow = true;
}
@ -483,7 +483,7 @@ void HUD::valueChanged(SGPropertyNode *node)
load(path.c_str());
}
if (!strcmp(node->getName(), "current-color")) {
if (node->getNameString() == "current-color") {
currentColorChanged();
}
@ -501,7 +501,7 @@ void HUD::valueChanged(SGPropertyNode *node)
_a = clamp(_alpha->getFloatValue());
_cl = clamp(_alpha_clamp->getFloatValue());
_units = strcmp(_unitsN->getStringValue(), "feet") ? METER : FEET;
_units = _unitsN->getStringValue() != "feet" ? METER : FEET;
_listener_active = false;
}

View file

@ -51,24 +51,24 @@ HUD::Item::Item(HUD *hud, const SGPropertyNode *n, float x, float y) :
vector<SGPropertyNode_ptr> opt = n->getChildren("option");
for (unsigned int i = 0; i < opt.size(); i++) {
const char *o = opt[i]->getStringValue();
if (!strcmp(o, "vertical"))
string o = opt[i]->getStringValue();
if (o == "vertical")
_options |= VERTICAL;
else if (!strcmp(o, "horizontal"))
else if (o == "horizontal")
_options |= HORIZONTAL;
else if (!strcmp(o, "top"))
else if (o == "top")
_options |= TOP;
else if (!strcmp(o, "left"))
else if (o == "left")
_options |= LEFT;
else if (!strcmp(o, "bottom"))
else if (o == "bottom")
_options |= BOTTOM;
else if (!strcmp(o, "right"))
else if (o == "right")
_options |= RIGHT;
else if (!strcmp(o, "both"))
else if (o == "both")
_options |= (LEFT|RIGHT);
else if (!strcmp(o, "noticks"))
else if (o == "noticks")
_options |= NOTICKS;
else if (!strcmp(o, "notext"))
else if (o == "notext")
_options |= NOTEXT;
else
SG_LOG(SG_INPUT, SG_WARN, "HUD: unsupported option: " << o);

View file

@ -43,29 +43,29 @@ HUD::Label::Label(HUD *hud, const SGPropertyNode *n, float x, float y) :
if (node)
_blink_condition = sgReadCondition(globals->get_props(), node);
const char *halign = n->getStringValue("halign", "center");
if (!strcmp(halign, "left"))
string halign = n->getStringValue("halign", "center");
if (halign == "left")
_halign = LEFT;
else if (!strcmp(halign, "right"))
else if (halign == "right")
_halign = RIGHT;
else
_halign = HCENTER;
_halign |= VCENTER;
const char *pre = n->getStringValue("prefix", 0);
const char *post = n->getStringValue("postfix", 0);
const char *fmt = n->getStringValue("format", 0);
string pre = n->getStringValue("prefix", "");
string post = n->getStringValue("postfix", "");
string fmt = n->getStringValue("format", "");
if (pre)
if (!pre.empty())
_format = pre;
if (fmt)
if (!fmt.empty())
_format += fmt;
else
_format += "%s";
if (post)
if (!post.empty())
_format += post;
_mode = check_format(_format.c_str());
@ -148,7 +148,7 @@ void HUD::Label::draw(void)
if (_mode == NONE)
snprintf(buf, BUFSIZE, _format.c_str(), 0);
else if (_mode == STRING)
snprintf(buf, BUFSIZE, _format.c_str(), _input.getStringValue());
snprintf(buf, BUFSIZE, _format.c_str(), _input.getStringValue().c_str());
else if (_mode == INT)
snprintf(buf, BUFSIZE, _format.c_str(), int(_input.getFloatValue()));
else if (_mode == LONG)

View file

@ -78,8 +78,8 @@ HUD::Ladder::Ladder(HUD *hud, const SGPropertyNode *n, float x, float y) :
_hat(n->getBoolValue("enable-hat")),
_clip_box(new ClipBox(n->getNode("clipping")))
{
const char *t = n->getStringValue("type");
_type = strcmp(t, "climb-dive") ? PITCH : CLIMB_DIVE;
string t = n->getStringValue("type");
_type = t != "climb-dive" ? PITCH : CLIMB_DIVE;
if (!_width_units)
_width_units = 45;
@ -300,7 +300,7 @@ void HUD::Ladder::draw(void)
for (int i = 0; i < models->nChildren(); i++) {
SGPropertyNode *chld = models->getChild(i);
string name;
name = chld->getName();
name = chld->getNameString();
if (name == "tanker" || name == "aircraft" || name == "multiplayer") {
bool valid = chld->getBoolValue("valid");
bool in_range = chld->getBoolValue("radar/in-range", true);

View file

@ -73,7 +73,7 @@ public:
return _property->getBoolValue();
}
const char *getStringValue() const {
std::string getStringValue() const {
assert(_property);
return _property->getStringValue();
}

View file

@ -43,15 +43,14 @@ HUD::Tape::Tape(HUD *hud, const SGPropertyNode *n, float x, float y) :
{
_half_width_units = range_to_show() / 2.0;
const char *s;
s = n->getStringValue("pointer-type");
_pointer_type = strcmp(s, "moving") ? FIXED : MOVING; // "fixed", "moving"
string s = n->getStringValue("pointer-type");
_pointer_type = s != "moving" ? FIXED : MOVING; // "fixed", "moving"
s = n->getStringValue("tick-type");
_tick_type = strcmp(s, "bullet") ? LINE : CIRCLE; // "bullet", "line"
_tick_type = s != "bullet" ? LINE : CIRCLE; // "bullet", "line"
s = n->getStringValue("tick-length"); // "variable", "constant"
_tick_length = strcmp(s, "constant") ? VARIABLE : CONSTANT;
_tick_length = s != "constant" ? VARIABLE : CONSTANT;
_label_fmt = check_format(_format.c_str());
if (_label_fmt != INT && _label_fmt != LONG

View file

@ -280,8 +280,8 @@ void DCLGPS::update(double dt) {
// Check if an alarm timer has expired
if(_alarmSet) {
if(_alarmTime.hr() == atoi(fgGetString("/instrumentation/clock/indicated-hour"))
&& _alarmTime.min() == atoi(fgGetString("/instrumentation/clock/indicated-min"))) {
if(_alarmTime.hr() == atoi(fgGetString("/instrumentation/clock/indicated-hour").c_str())
&& _alarmTime.min() == atoi(fgGetString("/instrumentation/clock/indicated-min").c_str())) {
_messageStack.push_back("*Timer Expired");
_alarmSet = false;
}
@ -971,8 +971,8 @@ void DCLGPS::SetPowerOnTimer() {
}
void DCLGPS::ResetPowerOnTimer() {
_powerOnTime.set_hr(atoi(fgGetString("/instrumentation/clock/indicated-hour")));
_powerOnTime.set_min(atoi(fgGetString("/instrumentation/clock/indicated-min")));
_powerOnTime.set_hr(atoi(fgGetString("/instrumentation/clock/indicated-hour").c_str()));
_powerOnTime.set_min(atoi(fgGetString("/instrumentation/clock/indicated-min").c_str()));
_powerOnTimerSet = true;
}

View file

@ -146,8 +146,8 @@ DME::update (double delta_time_sec)
char tmp[16];
// Figure out the source
const char * source = _source_node->getStringValue();
if (source[0] == '\0') {
string source = _source_node->getStringValue();
if (source.empty()) {
std::string branch;
branch = "/instrumentation/" + name() + "/frequencies/selected-mhz";
_source_node->setStringValue(branch.c_str());

View file

@ -32,7 +32,7 @@ HeadingIndicatorDG::HeadingIndicatorDG ( SGPropertyNode *node ) :
int i;
for ( i = 0; i < node->nChildren(); ++i ) {
SGPropertyNode *child = node->getChild(i);
std::string cname = child->getName();
std::string cname = child->getNameString();
std::string cval = child->getStringValue();
if ( cname == "name" ) {
name = cval;

View file

@ -31,7 +31,7 @@ HeadingIndicatorFG::HeadingIndicatorFG ( SGPropertyNode *node )
int i;
for ( i = 0; i < node->nChildren(); ++i ) {
SGPropertyNode *child = node->getChild(i);
string cname = child->getName();
string cname = child->getNameString();
string cval = child->getStringValue();
if ( cname == "name" ) {
name = cval;

View file

@ -111,7 +111,7 @@ bool FGInstrumentMgr::build (SGPropertyNode* config_props, const SGPath& path)
{
for ( int i = 0; i < config_props->nChildren(); ++i ) {
SGPropertyNode *node = config_props->getChild(i);
std::string name = node->getName();
std::string name = node->getNameString();
std::ostringstream subsystemname;
subsystemname << "instrument-" << i << '-'

View file

@ -1131,7 +1131,7 @@ MK_VIII::IOHandler::update_inputs ()
{
const char *mode;
mode = mk_node(autopilot_heading_lock)->getStringValue();
mode = mk_node(autopilot_heading_lock)->getStringValue().c_str();
mk_dinput(autopilot_engaged) = mode && *mode;
}
@ -4625,7 +4625,7 @@ MK_VIII::MK_VIII (SGPropertyNode *node)
for (int i = 0; i < node->nChildren(); ++i)
{
SGPropertyNode *child = node->getChild(i);
string cname = child->getName();
string cname = child->getNameString();
string cval = child->getStringValue();
if (cname == "name")

View file

@ -291,7 +291,7 @@ TACAN::valueChanged(SGPropertyNode *prop)
int index = prop->getIndex();
std::string channel = _channel;
if (std::string("selected-mhz") == prop->getName())
if (std::string("selected-mhz") == prop->getNameString())
{
FGTACANRecord *rec= globals->get_channellist()->findByFrequency(prop->getDoubleValue()*1000);
if (rec != nullptr) {

View file

@ -1184,7 +1184,7 @@ TCAS::TCAS(SGPropertyNode* pNode) :
for (int i = 0; i < pNode->nChildren(); ++i)
{
SGPropertyNode* pChild = pNode->getChild(i);
string cname = pChild->getName();
string cname = pChild->getNameString();
string cval = pChild->getStringValue();
int cintval = pChild->getIntValue();

View file

@ -171,7 +171,7 @@ compare_values (SGPropertyNode * value1, SGPropertyNode * value2)
case simgear::props::DOUBLE:
return (value1->getDoubleValue() == value2->getDoubleValue());
default:
return !strcmp(value1->getStringValue(), value2->getStringValue());
return value1->getStringValue() == value2->getStringValue();
}
}
@ -253,7 +253,7 @@ do_pause (const SGPropertyNode * arg, SGPropertyNode * root)
static bool
do_load (const SGPropertyNode * arg, SGPropertyNode * root)
{
SGPath file(arg->getStringValue("file", "fgfs.sav"));
SGPath file(arg->getStringValue("file", "fgfs.sav").c_str());
if (file.extension() != "sav")
file.concat(".sav");
@ -286,7 +286,7 @@ do_load (const SGPropertyNode * arg, SGPropertyNode * root)
static bool
do_save (const SGPropertyNode * arg, SGPropertyNode * root)
{
SGPath file(arg->getStringValue("file", "fgfs.sav"));
SGPath file(arg->getStringValue("file", "fgfs.sav").c_str());
if (file.extension() != "sav")
file.concat(".sav");
@ -543,7 +543,7 @@ do_property_adjust (const SGPropertyNode * arg, SGPropertyNode * root)
* arg->getDoubleValue("offset"));
double unmodifiable, modifiable;
split_value(prop->getDoubleValue(), arg->getStringValue("mask", "all"),
split_value(prop->getDoubleValue(), arg->getStringValue("mask", "all").c_str(),
&unmodifiable, &modifiable);
modifiable += amount;
limit_value(&modifiable, arg);
@ -575,7 +575,7 @@ do_property_multiply (const SGPropertyNode * arg, SGPropertyNode * root)
double factor = arg->getDoubleValue("factor", 1.0);
double unmodifiable, modifiable;
split_value(prop->getDoubleValue(), arg->getStringValue("mask", "all"),
split_value(prop->getDoubleValue(), arg->getStringValue("mask", "all").c_str(),
&unmodifiable, &modifiable);
modifiable *= factor;
limit_value(&modifiable, arg);

View file

@ -365,7 +365,7 @@ private:
vector<SGPropertyNode_ptr> cache = _cache->getChildren("aircraft");
for (unsigned int i = 0; i < cache.size(); i++) {
const char *name = cache[i]->getStringValue("file", "");
const std::string name = cache[i]->getStringValue("file", "");
if (!simgear::strutils::iequals(_searchAircraft, name)) {
continue;
}

View file

@ -624,7 +624,7 @@ fgGetDouble (const char * name, double defaultValue)
return globals->get_props()->getDoubleValue(name, defaultValue);
}
const char *
std::string
fgGetString (const char * name, const char * defaultValue)
{
return globals->get_props()->getStringValue(name, defaultValue);

View file

@ -7,6 +7,7 @@
#define __FG_PROPS_HXX 1
#include <iosfwd>
#include <algorithm>
#include <simgear/structure/subsystem_mgr.hxx>
#include <simgear/props/tiedpropertylist.hxx>
@ -424,7 +425,7 @@ inline double fgGetDouble (const std::string & name, double defaultValue = 0.0)
* does not exist.
* @return The property's value as a string, or the default value provided.
*/
extern const char * fgGetString (const char * name,
extern std::string fgGetString (const char * name,
const char * defaultValue = "");
/**
@ -441,7 +442,7 @@ extern const char * fgGetString (const char * name,
* does not exist.
* @return The property's value as a string, or the default value provided.
*/
inline const char * fgGetString (const std::string & name,
inline std::string fgGetString (const std::string & name,
const std::string & defaultValue = std::string(""))
{
return fgGetString( name.c_str(), defaultValue.c_str() );
@ -856,9 +857,12 @@ public:
if (node->getType() != simgear::props::STRING)
return;
char *s = const_cast<char *>(node->getStringValue());
for (; *s; s++)
*s = toupper(*s);
std::string value = node->getStringValue();
std::string value_orig = value;
std::transform(value.begin(), value.end(), value.begin(), ::toupper);
if (value != value_orig) {
node->setStringValue(value);
}
}
};

View file

@ -472,12 +472,12 @@ do_presets_commit (const SGPropertyNode * arg, SGPropertyNode * root)
static bool
do_press_cockpit_button (const SGPropertyNode * arg, SGPropertyNode * root)
{
const char *prefix = arg->getStringValue("prefix");
const string prefix = arg->getStringValue("prefix");
if (arg->getBoolValue("guarded") && fgGetDouble((string(prefix) + "-guard").c_str()) < 1)
if (arg->getBoolValue("guarded") && fgGetDouble((prefix + "-guard").c_str()) < 1)
return true;
string prop = string(prefix) + "-button";
string prop = prefix + "-button";
double value;
if (arg->getBoolValue("latching"))
@ -494,10 +494,10 @@ do_press_cockpit_button (const SGPropertyNode * arg, SGPropertyNode * root)
static bool
do_release_cockpit_button (const SGPropertyNode * arg, SGPropertyNode * root)
{
const char *prefix = arg->getStringValue("prefix");
const string prefix = arg->getStringValue("prefix");
if (arg->getBoolValue("guarded")) {
string prop = string(prefix) + "-guard";
string prop = prefix + "-guard";
if (fgGetDouble(prop.c_str()) < 1) {
fgSetDouble(prop.c_str(), 1);
return true;
@ -505,7 +505,7 @@ do_release_cockpit_button (const SGPropertyNode * arg, SGPropertyNode * root)
}
if (! arg->getBoolValue("latching")) {
fgSetDouble((string(prefix) + "-button").c_str(), 0);
fgSetDouble((prefix + "-button").c_str(), 0);
fgSetBool(arg->getStringValue("discrete"), false);
}

View file

@ -84,7 +84,7 @@ public:
}
// test against the aircraft-dir property
const char* aircraftDir = fgGetString("/sim/aircraft-dir");
const std::string aircraftDir = fgGetString("/sim/aircraft-dir");
string_list aircraftDirPieces(sgPathBranchSplit(aircraftDir));
if (!aircraftDirPieces.empty() && (aircraftDirPieces.back() == pieces[1])) {
// current aircraft-dir matches resource aircraft

View file

@ -316,8 +316,8 @@ FGLocale::loadResource(SGPropertyNode* localeNode, const char* resource)
return true;
}
const char* path_str = resourceNode->getStringValue();
if (!path_str)
string path_str = resourceNode->getStringValue();
if (path_str.empty())
{
SG_LOG(SG_GENERAL, SG_WARN, "No path in " << stringNode->getPath() << "/" << resource << ".");
return false;
@ -494,21 +494,21 @@ FGLocale::getLocalizedStrings(const char* id, const char* resource)
}
// Check for localized font
const char*
std::string
FGLocale::getDefaultFont(const char* fallbackFont)
{
assert(_inited);
const char* font = nullptr;
std::string font;
if (_currentLocale)
{
font = _currentLocale->getStringValue("font", "");
if (font[0] != 0)
if (!font.empty())
return font;
}
if (_defaultLocale)
{
font = _defaultLocale->getStringValue("font", "");
if (font[0] != 0)
if (!font.empty())
return font;
}

View file

@ -96,7 +96,7 @@ public:
/**
* Obtain default font for current locale.
*/
const char* getDefaultFont (const char* fallbackFont);
std::string getDefaultFont (const char* fallbackFont);
/**
* Obtain a message string, from a localized resource ID, and use it as

View file

@ -569,9 +569,9 @@ struct SGLogDeltasListener : SGPropertyChangeListener
{
void valueChanged(SGPropertyNode* node) override
{
const char* value = node->getStringValue();
std::string value = node->getStringValue();
std::cerr << __FILE__ << ":" << __LINE__ << ": sglogdeltas value=" << value << "\n";
logDeltaSet(value);
logDeltaSet(value.c_str());
}
};
static SGLogDeltasListener s_sglogdeltas_listener;

View file

@ -339,17 +339,17 @@ private:
}
int getNumMaturity(const char * str)
int getNumMaturity(const std::string& str)
{
// Changes should also be reflected in $FG_ROOT/options.xml
const char* levels[] = {"alpha","beta","early-production","production"};
if (!strcmp(str, "all")) {
if (str == "all") {
return 0;
}
for (size_t i=0; i<(sizeof(levels)/sizeof(levels[0]));i++)
if (strcmp(str,levels[i])==0)
if (str == levels[i])
return i;
return 0;
@ -809,7 +809,7 @@ static int
fgOptAltitude( const char *arg )
{
fgSetBool("/sim/presets/onground", false);
if ( !strcmp(fgGetString("/sim/startup/units"), "feet") )
if ( fgGetString("/sim/startup/units") == "feet" )
fgSetDouble("/sim/presets/altitude-ft", atof( arg ));
else
fgSetDouble("/sim/presets/altitude-ft",
@ -821,7 +821,7 @@ static int
fgOptUBody( const char *arg )
{
fgSetString("/sim/presets/speed-set", "UVW");
if ( !strcmp(fgGetString("/sim/startup/units"), "feet") )
if ( fgGetString("/sim/startup/units") == "feet" )
fgSetDouble("/sim/presets/uBody-fps", atof( arg ));
else
fgSetDouble("/sim/presets/uBody-fps",
@ -833,7 +833,7 @@ static int
fgOptVBody( const char *arg )
{
fgSetString("/sim/presets/speed-set", "UVW");
if ( !strcmp(fgGetString("/sim/startup/units"), "feet") )
if ( fgGetString("/sim/startup/units") == "feet" )
fgSetDouble("/sim/presets/vBody-fps", atof( arg ));
else
fgSetDouble("/sim/presets/vBody-fps",
@ -845,7 +845,7 @@ static int
fgOptWBody( const char *arg )
{
fgSetString("/sim/presets/speed-set", "UVW");
if ( !strcmp(fgGetString("/sim/startup/units"), "feet") )
if ( fgGetString("/sim/startup/units") == "feet" )
fgSetDouble("/sim/presets/wBody-fps", atof(arg));
else
fgSetDouble("/sim/presets/wBody-fps",
@ -857,7 +857,7 @@ static int
fgOptVNorth( const char *arg )
{
fgSetString("/sim/presets/speed-set", "NED");
if ( !strcmp(fgGetString("/sim/startup/units"), "feet") )
if ( fgGetString("/sim/startup/units") == "feet" )
fgSetDouble("/sim/presets/speed-north-fps", atof( arg ));
else
fgSetDouble("/sim/presets/speed-north-fps",
@ -869,7 +869,7 @@ static int
fgOptVEast( const char *arg )
{
fgSetString("/sim/presets/speed-set", "NED");
if ( !strcmp(fgGetString("/sim/startup/units"), "feet") )
if ( fgGetString("/sim/startup/units") == "feet" )
fgSetDouble("/sim/presets/speed-east-fps", atof(arg));
else
fgSetDouble("/sim/presets/speed-east-fps",
@ -881,7 +881,7 @@ static int
fgOptVDown( const char *arg )
{
fgSetString("/sim/presets/speed-set", "NED");
if ( !strcmp(fgGetString("/sim/startup/units"), "feet") )
if ( fgGetString("/sim/startup/units") == "feet" )
fgSetDouble("/sim/presets/speed-down-fps", atof(arg));
else
fgSetDouble("/sim/presets/speed-down-fps",
@ -2416,7 +2416,7 @@ OptionResult Options::initAircraft()
} else {
SG_LOG(SG_INPUT, SG_INFO, "No user specified aircraft, using default" );
// ensure aircraft-id is valid
fgSetString("/sim/aircraft-id", fgGetString("/sim/aircraft"));
fgSetString("/sim/aircraft-id", fgGetString("/sim/aircraft").c_str());
}
if (p->showAircraft) {

View file

@ -242,8 +242,8 @@ do_reinit (const SGPropertyNode * arg, SGPropertyNode * root)
globals->get_subsystem_mgr()->reinit();
} else {
for ( unsigned int i = 0; i < subsystems.size(); i++ ) {
const char * name = subsystems[i]->getStringValue();
SGSubsystem * subsystem = globals->get_subsystem(name);
std::string name = subsystems[i]->getStringValue();
SGSubsystem * subsystem = globals->get_subsystem(name.c_str());
if (subsystem == 0) {
result = false;
SG_LOG( SG_GENERAL, SG_ALERT,
@ -271,8 +271,8 @@ do_suspend (const SGPropertyNode * arg, SGPropertyNode * root)
vector<SGPropertyNode_ptr> subsystems = arg->getChildren("subsystem");
for ( unsigned int i = 0; i < subsystems.size(); i++ ) {
const char * name = subsystems[i]->getStringValue();
SGSubsystem * subsystem = globals->get_subsystem(name);
std::string name = subsystems[i]->getStringValue();
SGSubsystem * subsystem = globals->get_subsystem(name.c_str());
if (subsystem == 0) {
result = false;
SG_LOG(SG_GENERAL, SG_ALERT, "Subsystem " << name << " not found");
@ -295,8 +295,8 @@ do_resume (const SGPropertyNode * arg, SGPropertyNode * root)
vector<SGPropertyNode_ptr> subsystems = arg->getChildren("subsystem");
for ( unsigned int i = 0; i < subsystems.size(); i++ ) {
const char * name = subsystems[i]->getStringValue();
SGSubsystem * subsystem = globals->get_subsystem(name);
std::string name = subsystems[i]->getStringValue();
SGSubsystem * subsystem = globals->get_subsystem(name.c_str());
if (subsystem == 0) {
result = false;
SG_LOG(SG_GENERAL, SG_ALERT, "Subsystem " << name << " not found");

View file

@ -263,8 +263,7 @@ void FGModelMgr::update(double dt)
if (instance->heading_deg_node != 0)
heading = testNan(instance->heading_deg_node->getDoubleValue());
} catch (const sg_range_exception&) {
const char *path = instance->node->getStringValue("path",
"unknown");
string path = instance->node->getStringValue("path", "unknown");
SG_LOG(SG_AIRCRAFT, SG_INFO, "Instance of model " << path
<< " has invalid values");
return;
@ -359,7 +358,7 @@ bool FGModelMgr::Instance::checkLoaded() const
void
FGModelMgr::Listener::childAdded(SGPropertyNode * parent, SGPropertyNode * child)
{
if (strcmp(parent->getName(), "model") || strcmp(child->getName(), "load"))
if (parent->getNameString() != "model" || child->getNameString() != "load")
return;
_mgr->add_model(parent);
@ -368,7 +367,7 @@ FGModelMgr::Listener::childAdded(SGPropertyNode * parent, SGPropertyNode * child
void
FGModelMgr::Listener::childRemoved(SGPropertyNode * parent, SGPropertyNode * child)
{
if (strcmp(parent->getName(), "models") || strcmp(child->getName(), "model"))
if (parent->getNameString() != "models" || child->getNameString() != "model")
return;
// search instance by node and remove it from scenegraph

View file

@ -1378,7 +1378,7 @@ FGMultiplayMgr::SendMyPosition(const FGExternalMotionData& motionInfo)
else
PosMsg->pad = 0;
strncpy(PosMsg->Model, fgGetString("/sim/model/path"), MAX_MODEL_NAME_LEN);
strncpy(PosMsg->Model, fgGetString("/sim/model/path").c_str(), MAX_MODEL_NAME_LEN);
PosMsg->Model[MAX_MODEL_NAME_LEN - 1] = '\0';
if (fgGetBool("/sim/freeze/replay-state", true)&&
fgGetBool("/sim/multiplay/freeze-on-replay",true))
@ -2163,13 +2163,13 @@ void FGMultiplayMgr::Send(double mpTime)
{
// FIXME: We assume unspecified are strings for the moment.
const char* cstr = it->second->getStringValue();
int len = strlen(cstr);
string cstr = it->second->getStringValue();
size_t len = cstr.length();
if (len > 0)
{
pData->string_value = new char[len + 1];
strcpy(pData->string_value, cstr);
strcpy(pData->string_value, cstr.c_str());
}
else
{
@ -2487,8 +2487,8 @@ FGMultiplayMgr::ProcessPosMsg(const FGMultiplayMgr::MsgBuf& Msg,
// --test-motion-mp.
//
{
const char* callsign = pLogRawSpeedMultiplayer->getStringValue();
if (callsign && callsign[0] && !strcmp(callsign, MsgHdr->Callsign)) {
string callsign = pLogRawSpeedMultiplayer->getStringValue();
if (!callsign.empty() && callsign == string(MsgHdr->Callsign)) {
static SGVec3d s_pos_prev;
static double s_simtime_prev = -1;
SGVec3d pos = motionInfo.position;
@ -2753,7 +2753,7 @@ FGMultiplayMgr::addMultiplayer(const std::string& callsign,
int config_children_n = config->nChildren();
for (int i=0; i<config_children_n; ++i) {
SGPropertyNode* node = config->getChild(i);
global_config->setDoubleValue(node->getName(), node->getDoubleValue());
global_config->setDoubleValue(node->getNameString(), node->getDoubleValue());
}
}
}

View file

@ -385,7 +385,7 @@ WayptRef Waypt::createFromString(RouteBase* aOwner, const std::string& s, const
if (pos != string::npos) {
altFt = std::stof(target.substr(pos + 1));
target = target.substr(0, pos);
if (!strcmp(fgGetString("/sim/startup/units"), "meter")) {
if (fgGetString("/sim/startup/units") == "meter") {
altFt *= SG_METER_TO_FEET;
}
altSetting = RESTRICT_AT;
@ -487,12 +487,12 @@ bool Waypt::initFromProperties(SGPropertyNode_ptr aProp)
}
if (aProp->hasChild("alt-restrict")) {
_altRestrict = restrictionFromString(aProp->getStringValue("alt-restrict"));
_altRestrict = restrictionFromString(aProp->getStringValue("alt-restrict").c_str());
_altitudeFt = aProp->getDoubleValue("altitude-ft");
}
if (aProp->hasChild("speed-restrict")) {
_speedRestrict = restrictionFromString(aProp->getStringValue("speed-restrict"));
_speedRestrict = restrictionFromString(aProp->getStringValue("speed-restrict").c_str());
_speed = aProp->getDoubleValue("speed");
}

View file

@ -407,7 +407,7 @@ bool FGATCInput::do_analog_in() {
// read the next config entry from the property tree
SGPropertyNode *child = analog_in_node->getChild(i);
string cname = child->getName();
string cname = child->getNameString();
int index = child->getIndex();
string name = "";
string type = "";
@ -680,7 +680,7 @@ bool FGATCInput::do_switches() {
// read the next config entry from the property tree
SGPropertyNode *child = switches_node->getChild(i);
string cname = child->getName();
string cname = child->getNameString();
string name = "";
string type = "";
vector <SGPropertyNode *> output_nodes;
@ -881,7 +881,7 @@ bool FGATCInput::do_radio_switches() {
// read the next config entry from the property tree
SGPropertyNode *child = radio_in_node->getChild(i);
string cname = child->getName();
string cname = child->getNameString();
if ( cname == "switch" ) {
string name = "";

View file

@ -441,7 +441,7 @@ bool FGATCOutput::do_analog_out() {
// read the next config entry from the property tree
SGPropertyNode *child = analog_out_node->getChild(i);
string cname = child->getName();
string cname = child->getNameString();
int index = child->getIndex();
string name = "";
string type = "";
@ -510,7 +510,7 @@ bool FGATCOutput::do_lamps() {
// read the next config entry from the property tree
SGPropertyNode *child = lamps_out_node->getChild(i);
string cname = child->getName();
string cname = child->getNameString();
int index = child->getIndex();
string name = "";
string type = "";

View file

@ -245,7 +245,7 @@ void FGCom::postinit()
std::string app = "FGFS-";
app += _version_node->getStringValue();
iaxc_set_callerid( _callsign_node->getStringValue(), app.c_str() );
iaxc_set_callerid( _callsign_node->getStringValue().c_str(), app.c_str() );
iaxc_set_formats (IAXC_FORMAT_SPEEX, IAXC_FORMAT_ULAW|IAXC_FORMAT_SPEEX);
iaxc_set_speex_settings(1, 5, 0, 1, 0, 3);
iaxc_set_filters(IAXC_FILTER_AGC | IAXC_FILTER_DENOISE);

View file

@ -393,7 +393,7 @@ void FGFlarm::parse_message(const std::vector<std::string>& tokens)
{
// reply with config data
snprintf( nmea, 256, "$PFLAC,A,%s,%s",
keyword.c_str(), configNode->getStringValue());
keyword.c_str(), configNode->getStringValue().c_str());
add_with_checksum(nmea, 256);
Error = false;
}
@ -447,7 +447,7 @@ void FGFlarm::parse_message(const std::vector<std::string>& tokens)
// reply
snprintf( nmea, 256, "$PFLAC,A,%s,%s",
keyword.c_str(), configNode->getStringValue());
keyword.c_str(), configNode->getStringValue().c_str());
add_with_checksum(nmea, 256);
}
}

View file

@ -357,8 +357,8 @@ bool FGGeneric::gen_message_binary() {
}
default: // SG_STRING
const char *strdata = _out_message[i].prop->getStringValue();
int32_t strlength = strlen(strdata);
string strdata = _out_message[i].prop->getStringValue();
size_t strlength = strdata.length();
if (binary_byte_order == BYTE_ORDER_NEEDS_CONVERSION) {
SG_LOG( SG_IO, SG_ALERT, "Generic protocol: "
@ -372,7 +372,7 @@ bool FGGeneric::gen_message_binary() {
}
memcpy(&buf[length], &strlength, sizeof(int32_t));
length += sizeof(int32_t);
strncpy(&buf[length], strdata, strlength);
strncpy(&buf[length], strdata.c_str(), strlength);
length += strlength;
/* FIXME padding for alignment? Something like:
* length += (strlength % 4 > 0 ? sizeof(int32_t) - strlength % 4 : 0;
@ -455,7 +455,7 @@ bool FGGeneric::gen_message_ascii() {
default: // SG_STRING
snprintf(tmp, 255, format.c_str(),
_out_message[i].prop->getStringValue());
_out_message[i].prop->getStringValue().c_str());
}
generic_sentence += tmp;

View file

@ -29,7 +29,7 @@ namespace http {
class FlightHistoryUriHandler : public URIHandler {
public:
FlightHistoryUriHandler( const char * uri = "/flighthistory/" ) : URIHandler( uri ) {}
FlightHistoryUriHandler( const std::string& uri = "/flighthistory/" ) : URIHandler( uri ) {}
virtual bool handleRequest( const HTTPRequest & request, HTTPResponse & response, Connection * connection );
private:
};

View file

@ -29,7 +29,7 @@ namespace http {
class JsonUriHandler : public URIHandler {
public:
JsonUriHandler( const char * uri = "/json/" ) : URIHandler( uri ) {}
JsonUriHandler( const std::string& uri = "/json/" ) : URIHandler( uri ) {}
virtual bool handleRequest( const HTTPRequest & request, HTTPResponse & response, Connection * connection );
private:
SGPropertyNode_ptr getRequestedNode(const HTTPRequest & request);

View file

@ -28,7 +28,7 @@ namespace http {
class NavdbUriHandler : public URIHandler {
public:
NavdbUriHandler( const char * uri = "/navdb" ) : URIHandler( uri ) {}
NavdbUriHandler( const std::string& uri = "/navdb" ) : URIHandler( uri ) {}
virtual bool handleRequest( const HTTPRequest & request, HTTPResponse & response, Connection * connection );
};

View file

@ -29,7 +29,7 @@ namespace http {
class PkgUriHandler : public URIHandler {
public:
PkgUriHandler( const char * uri = "/pkg/" ) : URIHandler( uri ) {}
PkgUriHandler( const std::string& uri = "/pkg/" ) : URIHandler( uri ) {}
virtual bool handleRequest( const HTTPRequest & request, HTTPResponse & response, Connection * connection );
private:
};

View file

@ -74,7 +74,7 @@ private:
class CompareNodes {
public:
bool operator() (const SGPropertyNode *a, const SGPropertyNode *b) const {
int r = strcmp(a->getName(), b->getName());
int r = strcmp(a->getNameString().c_str(), b->getNameString().c_str());
return r ? r < 0 : a->getIndex() < b->getIndex();
}
};

Some files were not shown because too many files have changed in this diff Show more