summaryrefslogtreecommitdiff
path: root/brdclocks.c
diff options
context:
space:
mode:
Diffstat (limited to 'brdclocks.c')
-rw-r--r--brdclocks.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/brdclocks.c b/brdclocks.c
index e22a748..402ea03 100644
--- a/brdclocks.c
+++ b/brdclocks.c
@@ -38,7 +38,7 @@ cLockedBroadcast::~cLockedBroadcast()
// Parse
//***************************************************************************
-bool cLockedBroadcast::Parse(char* line)
+bool cLockedBroadcast::Parse(char* line)
{
int fields;
@@ -47,7 +47,7 @@ bool cLockedBroadcast::Parse(char* line)
char* aSearchMode = 0;
char* aActive = 0;
- fields = sscanf(line, "%a[^:]:%a[^:]:%a[^:]:%a[^\n]",
+ fields = sscanf(line, "%m[^:]:%m[^:]:%m[^:]:%m[^\n]",
&aName, &aPattern, &aSearchMode, &aActive);
if (fields == 4)
@@ -60,16 +60,17 @@ bool cLockedBroadcast::Parse(char* line)
for (int i = 0; i < smCount; i++)
{
- if (strcmp(searchModes[i], aSearchMode) == 0)
+ if (aSearchMode && strcmp(searchModes[i], aSearchMode) == 0)
{
searchMode = i;
break;
}
}
- active = strcmp(aActive, "yes") == 0;
+ if (aActive)
+ active = strcmp(aActive, "yes") == 0;
}
-
+
if (aSearchMode) free(aSearchMode);
if (aActive) free(aActive);
@@ -84,7 +85,7 @@ bool cLockedBroadcast::Save(FILE* file)
{
// Format: "<name>:<pattern>:<searchMode>:<active>"
- return fprintf(file, "%s:%s:%s:%s\n",
+ return fprintf(file, "%s:%s:%s:%s\n",
name,
pattern,
searchModes[searchMode],
@@ -120,6 +121,6 @@ int cLockedBroadcasts::Locked(const char* aName, long /*startTime*/)
if (broadcast->Locked())
return yes;
}
-
+
return no;
}