mirror of
https://github.com/ShaYmez/P25Clients.git
synced 2025-02-03 09:44:12 -05:00
Improve the ini file parsing.
This commit is contained in:
parent
27501ccdb3
commit
2cad74a75f
@ -109,6 +109,26 @@ bool CConf::read()
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
char* value = ::strtok(NULL, "\r\n");
|
char* value = ::strtok(NULL, "\r\n");
|
||||||
|
if (value == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Remove quotes from the value
|
||||||
|
size_t len = ::strlen(value);
|
||||||
|
if (len > 1U && *value == '"' && value[len - 1U] == '"') {
|
||||||
|
value[len - 1U] = '\0';
|
||||||
|
value++;
|
||||||
|
} else {
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
// if value is not quoted, remove after # (to make comment)
|
||||||
|
if ((p = strchr(value, '#')) != NULL)
|
||||||
|
*p = '\0';
|
||||||
|
|
||||||
|
// remove trailing tab/space
|
||||||
|
for (p = value + strlen(value) - 1U; p >= value && (*p == '\t' || *p == ' '); p--)
|
||||||
|
*p = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
if (section == SECTION_GENERAL) {
|
if (section == SECTION_GENERAL) {
|
||||||
if (::strcmp(key, "Callsign") == 0) {
|
if (::strcmp(key, "Callsign") == 0) {
|
||||||
// Convert the callsign to upper case
|
// Convert the callsign to upper case
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015,2016 by Jonathan Naylor G4KLX
|
* Copyright (C) 2015,2016,2020 by Jonathan Naylor G4KLX
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -87,6 +87,26 @@ bool CConf::read()
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
char* value = ::strtok(NULL, "\r\n");
|
char* value = ::strtok(NULL, "\r\n");
|
||||||
|
if (value == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Remove quotes from the value
|
||||||
|
size_t len = ::strlen(value);
|
||||||
|
if (len > 1U && *value == '"' && value[len - 1U] == '"') {
|
||||||
|
value[len - 1U] = '\0';
|
||||||
|
value++;
|
||||||
|
} else {
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
// if value is not quoted, remove after # (to make comment)
|
||||||
|
if ((p = strchr(value, '#')) != NULL)
|
||||||
|
*p = '\0';
|
||||||
|
|
||||||
|
// remove trailing tab/space
|
||||||
|
for (p = value + strlen(value) - 1U; p >= value && (*p == '\t' || *p == ' '); p--)
|
||||||
|
*p = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
if (section == SECTION_GENERAL) {
|
if (section == SECTION_GENERAL) {
|
||||||
if (::strcmp(key, "Daemon") == 0)
|
if (::strcmp(key, "Daemon") == 0)
|
||||||
m_daemon = ::atoi(value) == 1;
|
m_daemon = ::atoi(value) == 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user