Move conf_line and free_line from conf.c to lib.c
As they are uses for mdstat as well as mdadm.conf, they don't really belong in conf.c This removes a dependency between mdmon and conf.c Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
b76dc29975
commit
d0c017a663
39
config.c
39
config.c
|
@ -108,45 +108,6 @@ int match_keyword(char *word)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* conf_line reads one logical line from the conffile.
|
|
||||||
* It skips comments and continues until it finds a line that starts
|
|
||||||
* with a non blank/comment. This character is pushed back for the next call
|
|
||||||
* A doubly linked list of words is returned.
|
|
||||||
* the first word will be a keyword. Other words will have had quotes removed.
|
|
||||||
*/
|
|
||||||
|
|
||||||
char *conf_line(FILE *file)
|
|
||||||
{
|
|
||||||
char *w;
|
|
||||||
char *list;
|
|
||||||
|
|
||||||
w = conf_word(file, 1);
|
|
||||||
if (w == NULL) return NULL;
|
|
||||||
|
|
||||||
list = dl_strdup(w);
|
|
||||||
free(w);
|
|
||||||
dl_init(list);
|
|
||||||
|
|
||||||
while ((w = conf_word(file,0))){
|
|
||||||
char *w2 = dl_strdup(w);
|
|
||||||
free(w);
|
|
||||||
dl_add(list, w2);
|
|
||||||
}
|
|
||||||
/* printf("got a line\n");*/
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
void free_line(char *line)
|
|
||||||
{
|
|
||||||
char *w;
|
|
||||||
for (w=dl_next(line); w != line; w=dl_next(line)) {
|
|
||||||
dl_del(w);
|
|
||||||
dl_free(w);
|
|
||||||
}
|
|
||||||
dl_free(line);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct conf_dev {
|
struct conf_dev {
|
||||||
struct conf_dev *next;
|
struct conf_dev *next;
|
||||||
char *name;
|
char *name;
|
||||||
|
|
40
lib.c
40
lib.c
|
@ -23,6 +23,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "mdadm.h"
|
#include "mdadm.h"
|
||||||
|
#include "dlink.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
/* This fill contains various 'library' style function. They
|
/* This fill contains various 'library' style function. They
|
||||||
|
@ -407,3 +408,42 @@ unsigned long GCD(unsigned long a, unsigned long b)
|
||||||
}
|
}
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* conf_line reads one logical line from the conffile or mdstat.
|
||||||
|
* It skips comments and continues until it finds a line that starts
|
||||||
|
* with a non blank/comment. This character is pushed back for the next call
|
||||||
|
* A doubly linked list of words is returned.
|
||||||
|
* the first word will be a keyword. Other words will have had quotes removed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
char *conf_line(FILE *file)
|
||||||
|
{
|
||||||
|
char *w;
|
||||||
|
char *list;
|
||||||
|
|
||||||
|
w = conf_word(file, 1);
|
||||||
|
if (w == NULL) return NULL;
|
||||||
|
|
||||||
|
list = dl_strdup(w);
|
||||||
|
free(w);
|
||||||
|
dl_init(list);
|
||||||
|
|
||||||
|
while ((w = conf_word(file,0))){
|
||||||
|
char *w2 = dl_strdup(w);
|
||||||
|
free(w);
|
||||||
|
dl_add(list, w2);
|
||||||
|
}
|
||||||
|
/* printf("got a line\n");*/
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
void free_line(char *line)
|
||||||
|
{
|
||||||
|
char *w;
|
||||||
|
for (w=dl_next(line); w != line; w=dl_next(line)) {
|
||||||
|
dl_del(w);
|
||||||
|
dl_free(w);
|
||||||
|
}
|
||||||
|
dl_free(line);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue