浏览代码

Only log error when setting FullScreenSelectedMonitors

We don't want the log to spam every time this parameter is used so only
complain from the parses when the value is changed.
tags/v1.11.90
Pierre Ossman 2 年前
父节点
当前提交
b24cfff4be
共有 2 个文件被更改,包括 18 次插入12 次删除
  1. 16
    11
      vncviewer/MonitorIndicesParameter.cxx
  2. 2
    1
      vncviewer/MonitorIndicesParameter.h

+ 16
- 11
vncviewer/MonitorIndicesParameter.cxx 查看文件

@@ -74,7 +74,7 @@ bool MonitorIndicesParameter::setParam(const char* value)
if (strlen(value) < 0)
return false;

if (!parseIndices(value, &indices)) {
if (!parseIndices(value, &indices, true)) {
vlog.error(_("Invalid configuration specified for %s"), name);
return false;
}
@@ -134,21 +134,19 @@ static bool parseNumber(std::string number, std::set<int> *indices)

int v = strtol(number.c_str(), NULL, 0);

if (v <= 0) {
vlog.error(_("The given monitor index(%s) is too small to be valid"), number.c_str());
if (v <= 0)
return false;
}

if (v > INT_MAX) {
vlog.error(_("The given monitor index (%s) is too large to be valid"), number.c_str());
if (v > INT_MAX)
return false;
}

indices->insert(v-1);
return true;
}

bool MonitorIndicesParameter::parseIndices(const char* value, std::set<int> *indices)
bool MonitorIndicesParameter::parseIndices(const char* value,
std::set<int> *indices,
bool complain)
{
char d;
std::string current;
@@ -162,13 +160,16 @@ bool MonitorIndicesParameter::parseIndices(const char* value, std::set<int> *ind
current.push_back(d);
else if (d == ',') {
if (!parseNumber(current, indices)) {
vlog.error(_("Invalid monitor index '%s'"), current.c_str());
if (complain)
vlog.error(_("Invalid monitor index '%s'"),
current.c_str());
return false;
}

current.clear();
} else {
vlog.error(_("Unexpected character '%c'"), d);
if (complain)
vlog.error(_("Unexpected character '%c'"), d);
return false;
}
}
@@ -178,8 +179,12 @@ bool MonitorIndicesParameter::parseIndices(const char* value, std::set<int> *ind
return true;

// Parsing anything we have left.
if (!parseNumber(current, indices))
if (!parseNumber(current, indices)) {
if (complain)
vlog.error(_("Invalid monitor index '%s'"),
current.c_str());
return false;
}

return true;
}

+ 2
- 1
vncviewer/MonitorIndicesParameter.h 查看文件

@@ -36,7 +36,8 @@ private:
int fltkIndex;
} Monitor;

bool parseIndices(const char* value, std::set<int> *indices);
bool parseIndices(const char* value, std::set<int> *indices,
bool complain=false);
std::vector<MonitorIndicesParameter::Monitor> fetchMonitors();
static int compare(const void*, const void*);
};

正在加载...
取消
保存