sanei_config.h File Reference

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.
char * sanei_config_read (char *str, int n, FILE *stream)
 Read a line from configuration file.
const char * sanei_config_skip_whitespace (const char *str)
 Remove all whitespace from the beginning of a 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.
void sanei_config_attach_matching_devices (const char *name, SANE_Status(*attach)(const char *dev))
 Expand device name patterns into a list of devices.
SANE_Status sanei_configure_attach (const char *config_file, SANEI_Config *config, SANE_Status(*config_attach)(SANEI_Config *config, const char *devname))
 Parse configuration file, reading configuration options and trying to attach devices found in file.
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.


Detailed Description

Generic configuration support.

Use the functions of this header file if you want to read and analyze configuration files.


Function Documentation

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.

Parameters:
name filename with extension but without path (such as "mustek.conf")
Returns:
file pointer, or NULL if not found

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.

Parameters:
str points to the buffer for the line
n size of the buffer
stream file pointer
Returns:
str on success and NULL on error

const char* sanei_config_skip_whitespace ( const char *  str  ) 

Remove all whitespace from the beginning of a string.

Parameters:
str string
Returns:
string without leading whitespace

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.

Parameters:
str line of text to scan for a string constant
string_const copy of the string constant
Returns:
a pointer to the position in str where the scan stopped

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.

Parameters:
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)  config_attach 
)

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.

Parameters:
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
Returns:
SANE_STATUS_GOOD if no errors SANE_STATUS_ACCESS_DENIED if configuration file can't be opened

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.

Returns:
a string containing the configuration paths, separated by the operating system's path separator


Generated on Mon Jan 31 21:43:30 2011 for SANEI by  doxygen 1.5.6