SANEI 1.3.1.74-c434
|
Generic configuration support. More...
Go to the source code of this file.
Data Structures | |
struct | SANEI_Config |
this structure holds the description of configuration options. More... | |
Functions | |
FILE * | sanei_config_open (const char *name) |
Search configuration file name along directory list and return file pointer if such a file exists. More... | |
char * | sanei_config_read (char *str, int n, FILE *stream) |
Read a line from configuration file. More... | |
const char * | sanei_config_skip_whitespace (const char *str) |
Remove all whitespace from the beginning of a string. More... | |
const char * | sanei_config_get_string (const char *str, char **string_const) |
Scan a string constant from a line of text and return a malloced copy of it. More... | |
void | sanei_config_attach_matching_devices (const char *name, SANE_Status(*attach)(const char *dev)) |
Expand device name patterns into a list of devices. More... | |
SANE_Status | sanei_configure_attach (const char *config_file, SANEI_Config *config, SANE_Status(*config_attach)(SANEI_Config *config, const char *devname, void *data), void *data) |
Parse configuration file, reading configuration options and trying to attach devices found in file. More... | |
const char * | sanei_config_get_paths (void) |
Return the list of config directories, extracted from the SANE_CONFIG_DIR environment variable and the default paths. More... | |
Generic configuration support.
Use the functions of this header file if you want to read and analyze configuration files.
FILE * sanei_config_open | ( | const char * | name | ) |
Search configuration file name along directory list and return file pointer if such a file exists.
The following directory list is used: 1st: SANE_CONFIG_DIR environment variable. 2nd: PATH_SANE_CONFIG_DIR set during configuration. 3rd: Current directory.
name | filename with extension but without path (such as "mustek.conf") |
char * sanei_config_read | ( | char * | str, |
int | n, | ||
FILE * | stream | ||
) |
Read a line from configuration file.
Strips all unwanted chars. Use this instead of fgets() to remove line ending chars on all known platforms.
str | points to the buffer for the line |
n | size of the buffer |
stream | file pointer |
const char * sanei_config_skip_whitespace | ( | const char * | str | ) |
Remove all whitespace from the beginning of a string.
str | string |
const char * sanei_config_get_string | ( | const char * | str, |
char ** | string_const | ||
) |
Scan a string constant from a line of text and return a malloced copy of it.
It's the responsibility of the caller to free the returned string constant at an appropriate time. Whitespace in front of the string constant is ignored. Whitespace can be included in the string constant by enclosing it in double-quotes.
str | line of text to scan for a string constant |
string_const | copy of the string constant |
void sanei_config_attach_matching_devices | ( | const char * | name, |
SANE_Status(*)(const char *dev) | attach | ||
) |
Expand device name patterns into a list of devices.
Apart from a normal device name (such as /dev/sdb), this function currently supports SCSI device specifications of the form:
scsi VENDOR MODEL TYPE BUS CHANNEL ID LUN
Where VENDOR is the desired vendor name. MODEL is the desired model name. TYPE is the desired device type. All of these can be set to * to match anything. To include whitespace in these strings, enclose them in double-quotes ("). BUS, ID, and LUN are the desired SCSI bus, id, and logical-unit numbers. These can be set to * or simply omitted to match anything.
name | device name pattern |
attach | attach function |
SANE_Status sanei_configure_attach | ( | const char * | config_file, |
SANEI_Config * | config, | ||
SANE_Status(*)(SANEI_Config *config, const char *devname, void *data) | config_attach, | ||
void * | data | ||
) |
Parse configuration file, reading configuration options and trying to attach devices found in file.
The option are gathered in a single configuration structure. Each time a line holds a value that is not an option, the attach function is called with the name found and the configuration structure with it's current values.
config_file | name of the configuration file to read |
config | configuration structure to be filled during configuration parsing and passed to the attach callback function |
config_attach | attach with config callback function |
const char * sanei_config_get_paths | ( | void | ) |
Return the list of config directories, extracted from the SANE_CONFIG_DIR environment variable and the default paths.