1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
/* Copyright (c) 1998, 1999, 2003, 2004 Lance Arsenault, (GNU GPL (v2+))
*/
#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <gtkmm.h>
#include "value_t.h"
#include "Globel.h"
#include "FileList.h"
FileList *FileList::first = NULL;
FileList::FileList(char *filename)
{
if(filename)
fileName = strdup(filename);
else
fileName = NULL;
skipLines = 0;
readLabels = 0;
labelSeparator = LABEL_SEPARATOR;
hasLinearField = false;
linearFieldStep = (value_t) 1.0;
linearFieldStart = (value_t) 0.0;
takeLog = false;
next = NULL;
if(first)
{
FileList *l = first;
while(l->next)
l = l->next;
l->next = this;
}
else
first = this;
}
void FileList::setFileName(const char *filename)
{
if(fileName)
free(fileName);
if(filename)
fileName = strdup(filename);
else
fileName = NULL;
}
FileList::~FileList(void)
{
if(fileName)
{
free(fileName);
fileName = NULL;
}
FileList *l = first, *prev = NULL;
for(;l;l = l->next)
{
if(this == l)
break;
prev = l;
}
if(l) // this == l
{
if(prev)
prev->next = next;
else // this == first
first = next;
}
}
|