[PATCH] move get_pair to udev_config.c because udevinfo doesn't need all of namedev.o

This commit is contained in:
greg@kroah.com 2004-01-26 19:21:58 -08:00 committed by Greg KH
parent 1f6d07b9a5
commit 274812b502
4 changed files with 41 additions and 42 deletions

View File

@ -3,7 +3,7 @@
*
* Userspace devfs
*
* Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
* Copyright (C) 2003,2004 Greg Kroah-Hartman <greg@kroah.com>
*
* 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 the
@ -91,6 +91,4 @@ extern void dump_config_dev_list(void);
extern void dump_perm_dev(struct perm_device *dev);
extern void dump_perm_dev_list(void);
extern int get_pair(char **orig_string, char **left, char **right);
#endif

View File

@ -3,7 +3,7 @@
*
* Userspace devfs
*
* Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
* Copyright (C) 2003,2004 Greg Kroah-Hartman <greg@kroah.com>
*
*
* This program is free software; you can redistribute it and/or modify it
@ -52,41 +52,6 @@ static int add_config_dev(struct config_device *new_dev)
return 0;
}
int get_pair(char **orig_string, char **left, char **right)
{
char *temp;
char *string = *orig_string;
if (!string)
return -ENODEV;
/* eat any whitespace */
while (isspace(*string) || *string == ',')
++string;
/* split based on '=' */
temp = strsep(&string, "=");
*left = temp;
if (!string)
return -ENODEV;
/* take the right side and strip off the '"' */
while (isspace(*string))
++string;
if (*string == '"')
++string;
else
return -ENODEV;
temp = strsep(&string, "\"");
if (!string || *temp == '\0')
return -ENODEV;
*right = temp;
*orig_string = string;
return 0;
}
void dump_config_dev(struct config_device *dev)
{
/*FIXME dump all sysfs's */
@ -166,7 +131,7 @@ int namedev_init_rules(void)
/* get all known keys */
while (1) {
retval = get_pair(&temp, &temp2, &temp3);
retval = parse_get_pair(&temp, &temp2, &temp3);
if (retval)
break;

1
udev.h
View File

@ -59,6 +59,7 @@ do { \
extern int udev_add_device(char *path, char *subsystem);
extern int udev_remove_device(char *path, char *subsystem);
extern void udev_init_config(void);
extern int parse_get_pair(char **orig_string, char **left, char **right);
extern char **main_argv;
extern char **main_envp;

View File

@ -3,7 +3,7 @@
*
* Userspace devfs
*
* Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
* Copyright (C) 2003,2004 Greg Kroah-Hartman <greg@kroah.com>
*
*
* This program is free software; you can redistribute it and/or modify it
@ -68,6 +68,41 @@ static void init_variables(void)
strncpy(_var, value, sizeof(_var)); \
}
int parse_get_pair(char **orig_string, char **left, char **right)
{
char *temp;
char *string = *orig_string;
if (!string)
return -ENODEV;
/* eat any whitespace */
while (isspace(*string) || *string == ',')
++string;
/* split based on '=' */
temp = strsep(&string, "=");
*left = temp;
if (!string)
return -ENODEV;
/* take the right side and strip off the '"' */
while (isspace(*string))
++string;
if (*string == '"')
++string;
else
return -ENODEV;
temp = strsep(&string, "\"");
if (!string || *temp == '\0')
return -ENODEV;
*right = temp;
*orig_string = string;
return 0;
}
static int parse_config_file(void)
{
char line[255];
@ -108,7 +143,7 @@ static int parse_config_file(void)
if (*temp == COMMENT_CHARACTER)
continue;
retval = get_pair(&temp, &variable, &value);
retval = parse_get_pair(&temp, &variable, &value);
if (retval)
break;