From 3fa98245d98436a0f042ffca9bf102e9f920bace Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lars=20M=C3=BCller?= Date: Sun, 27 May 2007 15:58:19 +0000 Subject: [PATCH] r23166: Bring samba.org's iniparser copy in sync with the upstream version 2.17. --- source/iniparser/AUTHORS | 4 + source/iniparser/Makefile | 14 +- source/iniparser/html/dir_000000.html | 27 - source/iniparser/html/dirs.html | 19 - source/iniparser/html/doxygen.css | 107 ++-- source/iniparser/html/globals_func.html | 89 ++-- source/iniparser/html/index.html | 50 +- source/iniparser/html/iniparser_8h.html | 788 +++++++++++++---------------- source/iniparser/html/iniparser_8main.html | 2 +- source/iniparser/html/tab_b.gif | Bin 0 -> 35 bytes source/iniparser/html/tab_l.gif | Bin 0 -> 706 bytes source/iniparser/html/tab_r.gif | Bin 0 -> 2585 bytes source/iniparser/html/tabs.css | 102 ++++ source/iniparser/src/dictionary.c | 8 +- source/iniparser/src/dictionary.h | 4 +- source/iniparser/src/iniparser.c | 24 +- source/iniparser/src/iniparser.h | 22 +- source/iniparser/src/strlib.c | 8 +- source/iniparser/src/strlib.h | 8 +- 19 files changed, 670 insertions(+), 606 deletions(-) delete mode 100644 source/iniparser/html/dir_000000.html delete mode 100644 source/iniparser/html/dirs.html rewrite source/iniparser/html/globals_func.html (80%) create mode 100644 source/iniparser/html/tab_b.gif create mode 100644 source/iniparser/html/tab_l.gif create mode 100644 source/iniparser/html/tab_r.gif create mode 100644 source/iniparser/html/tabs.css diff --git a/source/iniparser/AUTHORS b/source/iniparser/AUTHORS index 86f842c50df..f3dc8765748 100644 --- a/source/iniparser/AUTHORS +++ b/source/iniparser/AUTHORS @@ -1 +1,5 @@ +Author for this package: Nicolas Devillard + +Many thanks to the many people who contributed ideas, code, suggestions, +corrections, enhancements. diff --git a/source/iniparser/Makefile b/source/iniparser/Makefile index 59793dbee19..bc5d61211ae 100644 --- a/source/iniparser/Makefile +++ b/source/iniparser/Makefile @@ -4,12 +4,16 @@ # Compiler settings CC = gcc -CFLAGS = -O3 +CFLAGS = -O3 -fPIC # Ar settings to build the library AR = ar ARFLAGS = rcv +SHLD = ${CC} ${CFLAGS} +LDSHFLAGS = -shared -Wl,-Bsymbolic -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib +LDFLAGS = -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib + # Set RANLIB to ranlib on systems that require it (Sun OS < 4, Mac OSX) # RANLIB = ranlib RANLIB = true @@ -34,17 +38,21 @@ SRCS = src/iniparser.c \ OBJS = $(SRCS:.c=.o) -default: libiniparser.a +default: libiniparser.a libiniparser.so libiniparser.a: $(OBJS) @($(AR) $(ARFLAGS) libiniparser.a $(OBJS)) @($(RANLIB) libiniparser.a) +libiniparser.so: $(OBJS) + @$(SHLD) $(LDSHFLAGS) -o $@.0 $(OBJS) $(LDFLAGS) \ + -Wl,-soname=`basename $@`.0 + clean: $(RM) $(OBJS) veryclean: - $(RM) $(OBJS) libiniparser.a + $(RM) $(OBJS) libiniparser.a libiniparser.so* rm -rf ./html ; mkdir html cd test ; $(MAKE) veryclean diff --git a/source/iniparser/html/dir_000000.html b/source/iniparser/html/dir_000000.html deleted file mode 100644 index 9e4da6fc683..00000000000 --- a/source/iniparser/html/dir_000000.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - -iniparser 2.x - - - - - - - - -

src Directory Reference

- - - - - - -

-


Files

file  iniparser.h
 Parser for ini files.
- - - diff --git a/source/iniparser/html/dirs.html b/source/iniparser/html/dirs.html deleted file mode 100644 index 1671bd26b11..00000000000 --- a/source/iniparser/html/dirs.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - -iniparser 2.x - - - - - - - -

iniparser Directories

This directory hierarchy is sorted roughly, but not completely, alphabetically: - - - diff --git a/source/iniparser/html/doxygen.css b/source/iniparser/html/doxygen.css index decae9e3941..c7db1a8a04e 100644 --- a/source/iniparser/html/doxygen.css +++ b/source/iniparser/html/doxygen.css @@ -17,8 +17,8 @@ H3 { CAPTION { font-weight: bold } DIV.qindex { width: 100%; - background-color: #eeeeff; - border: 1px solid #b0b0b0; + background-color: #e8eef2; + border: 1px solid #84b0c7; text-align: center; margin: 2px; padding: 2px; @@ -26,16 +26,16 @@ DIV.qindex { } DIV.nav { width: 100%; - background-color: #eeeeff; - border: 1px solid #b0b0b0; + background-color: #e8eef2; + border: 1px solid #84b0c7; text-align: center; margin: 2px; padding: 2px; line-height: 140%; } DIV.navtab { - background-color: #eeeeff; - border: 1px solid #b0b0b0; + background-color: #e8eef2; + border: 1px solid #84b0c7; text-align: center; margin: 2px; margin-right: 15px; @@ -80,7 +80,7 @@ A.codeRef:visited { font-weight: normal; color: #0000FF} A:hover { text-decoration: none; background-color: #f2f2ff } DL.el { margin-left: -1cm } .fragment { - font-family: Fixed, monospace; + font-family: monospace, fixed; font-size: 95%; } PRE.fragment { @@ -96,14 +96,7 @@ PRE.fragment { padding-bottom: 4px; } DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } -TD.md { background-color: #F4F4FB; font-weight: bold; } -TD.mdPrefix { - background-color: #F4F4FB; - color: #606060; - font-size: 80%; -} -TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } -TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } + DIV.groupHeader { margin-left: 16px; margin-top: 12px; @@ -118,7 +111,7 @@ BODY { margin-left: 20px; } TD.indexkey { - background-color: #eeeeff; + background-color: #e8eef2; font-weight: bold; padding-right : 10px; padding-top : 2px; @@ -131,7 +124,7 @@ TD.indexkey { border: 1px solid #CCCCCC; } TD.indexvalue { - background-color: #eeeeff; + background-color: #e8eef2; font-style: italic; padding-right : 10px; padding-top : 2px; @@ -156,13 +149,6 @@ SPAN.comment { color: #800000 } SPAN.preprocessor { color: #806020 } SPAN.stringliteral { color: #002080 } SPAN.charliteral { color: #008080 } -.mdTable { - border: 1px solid #868686; - background-color: #F4F4FB; -} -.mdRow { - padding: 8px 10px; -} .mdescLeft { padding: 0px 8px 4px 8px; font-size: 80%; @@ -286,24 +272,87 @@ FORM.search { INPUT.search { font-size: 75%; color: #000080; font-weight: normal; - background-color: #eeeeff; + background-color: #e8eef2; } TD.tiny { font-size: 75%; } a { - color: #252E78; + color: #1A41A8; } a:visited { - color: #3D2185; + color: #2A3798; } .dirtab { padding: 4px; border-collapse: collapse; - border: 1px solid #b0b0b0; + border: 1px solid #84b0c7; } -TH.dirtab { background: #eeeeff; +TH.dirtab { background: #e8eef2; font-weight: bold; } HR { height: 1px; border: none; border-top: 1px solid black; } + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; + white-space: nowrap; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } diff --git a/source/iniparser/html/globals_func.html b/source/iniparser/html/globals_func.html dissimilarity index 80% index 3e398005f57..dc5c7126f05 100644 --- a/source/iniparser/html/globals_func.html +++ b/source/iniparser/html/globals_func.html @@ -1,35 +1,54 @@ - - - - - -iniparser 2.x - - - - - - - - - -

-

- - - + + + + + +iniparser 2.x + + + + + + + +
+ +
+  +

+

+ + + diff --git a/source/iniparser/html/index.html b/source/iniparser/html/index.html index e0ca48b8723..a09575587d2 100644 --- a/source/iniparser/html/index.html +++ b/source/iniparser/html/index.html @@ -10,8 +10,8 @@ - -

iniparser documentation

+ +

iniparser documentation

2.x


@@ -22,14 +22,17 @@ iniParser is a simple C library offering ini file parsing services. The library What is an ini file?

An ini file is an ASCII file describing simple parameters (character strings, integers, floating-point values or booleans) in an explicit format, easy to use and modify for users.

An ini file is segmented into Sections, declared by the following syntax:

-

    [Section Name]
+
+    [Section Name]
 	

i.e. the section name enclosed in square brackets, alone on a line. Sections names are allowed to contain any character but square brackets or linefeeds. Slashes (/) are also reserved for hierarchical sections (see below).

In any section are zero or more variables, declared with the following syntax:

-

    Key = value ; comment
+
+    Key = value ; comment
 	

The key is any string (possibly containing blanks). The value is any character on the right side of the equal sign. Values can be given enclosed with quotes. If no quotes are present, the value is understood as containing all characters between the first and the last non-blank characters. The following declarations are identical:

-

    Hello = "this is a long string value" ; comment
+
+    Hello = "this is a long string value" ; comment
     Hello = this is a long string value ; comment
 	

The semicolon and comment at the end of the line are optional. If there is a comment, it starts from the first character after the semicolon up to the end of the line.

@@ -46,7 +49,7 @@ Type 'make', that should do it.

To use the library in your programs, add the following line on top of your module:

    #include "iniparser.h"
 

-And link your program with the iniparser library by adding -liniparser.a to the compile line.

+And link your program with the iniparser library by adding -liniparser.a to the compile line.

See the file test/initest.c for an example.


@@ -59,22 +62,24 @@ The library is completely documented in its header file. On-line documentation h

Using the parser

Comments are discarded by the parser. Then sections are identified, and in each section a new entry is created for every keyword found. The keywords are stored with the following syntax:

-

    [Section]
+
+    [Section]
     Keyword = value ; comment
 	

is converted to the following key pair:

-

    ("section:keyword", "value")
+
+    ("section:keyword", "value")
 	

This means that if you want to retrieve the value that was stored in the section called Pizza, in the keyword Cheese, you would make a request to the dictionary for "pizza:cheese". All section and keyword names are converted to lowercase before storage in the structure. The value side is conserved as it has been parsed, though.

-Section names are also stored in the structure. They are stored using as key the section name, and a NULL associated value. They can be queried through iniparser_find_entry().

-To launch the parser, simply use the function called iniparser_load(), which takes an input file name and returns a newly allocated dictionary structure. This latter object should remain opaque to the user and only accessed through the following accessor functions:

+Section names are also stored in the structure. They are stored using as key the section name, and a NULL associated value. They can be queried through iniparser_find_entry().

+To launch the parser, simply use the function called iniparser_load(), which takes an input file name and returns a newly allocated dictionary structure. This latter object should remain opaque to the user and only accessed through the following accessor functions:

+
  • iniparser_getstr()
  • iniparser_getint()
  • iniparser_getdouble()
  • iniparser_getboolean()
  • -Finally, discard this structure using iniparser_freedict().

    +Finally, discard this structure using iniparser_freedict().

    All values parsed from the ini file are stored as strings. The getint, getdouble and getboolean accessors are just converting these strings to the requested type on the fly, but you could basically perform this conversion by yourself after having called the getstr accessor.

    -Notice that the iniparser_getboolean() function will return an integer (0 or 1), trying to make sense of what was found in the file. Strings starting with "y", "Y", "t", "T" or "1" are considered true values (return 1), strings starting with "n", "N", "f", "F", "0" are considered false (return 0). This allows flexible handling of boolean answers.

    -If you want to add extra information into the structure that was not present in the ini file, you can use iniparser_setstr() to insert a string.

    +Notice that the iniparser_getboolean() function will return an integer (0 or 1), trying to make sense of what was found in the file. Strings starting with "y", "Y", "t", "T" or "1" are considered true values (return 1), strings starting with "n", "N", "f", "F", "0" are considered false (return 0). This allows flexible handling of boolean answers.

    +If you want to add extra information into the structure that was not present in the ini file, you can use iniparser_setstr() to insert a string.


    A word about the implementation

    @@ -84,7 +89,8 @@ The dictionary structure is a pretty simple dictionary implementation which migh Hierarchical ini files

    ini files are nice to present informations to the user in a readable format, but lack a very useful feature: the possibility of organizing data in a hierarchical (tree-like) fashion. The following convention can be used to make ini files obtain this second dimension:

    A section depends on another section if it contains its name as a prefix, separated by slashes (/). For example: we have 2 main sections in the ini file. The first one is called Pizza and has two child subsections called Cheese and Ham. The second main section in the ini file is called Wine and has two child subsections called Year and Grape. As a tree, this could appear as:

    -

        |
    +
    +    |
         +-- Pizza
         |     +-- Cheese
         |     +-- Ham
    @@ -93,7 +99,8 @@ A section depends on another section if it contains its name as a prefix, separa
              +--- Grape
     	

    In an ini file, that would be converted to:

    -

        [Pizza]
    +
    +    [Pizza]
     
         [Pizza/Cheese]
         Name   = Gorgonzola ;
    @@ -116,15 +123,16 @@ This proposal is actually more related to the way people write ini files, more t
     Accessing the above tree would give something like (error checking removed for clarity sake):

        dictionary * d ;
     
    -    d = iniparser_load("example.ini");
    +    d = iniparser_load("example.ini");
     
    -    printf("cheese name is %s\n", iniparser_getstr(d, "pizza/cheese:name"));
    -    printf("grape name is %s\n",  iniparser_getstr(d, "wine/grape:name"));
    +    printf("cheese name is %s\n", iniparser_getstr(d, "pizza/cheese:name"));
    +    printf("grape name is %s\n",  iniparser_getstr(d, "wine/grape:name"));
     
    -    iniparser_freedict(d);
    +    iniparser_freedict(d);
     

    The whole ini file above is represented in the dictionary as the following list of pairs:

    -

        key                             value
    +
    +    key                             value
     
         "pizza"                         NULL
         "pizza/cheese"                  NULL
    diff --git a/source/iniparser/html/iniparser_8h.html b/source/iniparser/html/iniparser_8h.html
    index 3f0534f31ec..9a7d5ecbc34 100644
    --- a/source/iniparser/html/iniparser_8h.html
    +++ b/source/iniparser/html/iniparser_8h.html
    @@ -10,97 +10,87 @@
     
     
     
    -
    -
    +
     

    iniparser.h File Reference

    Parser for ini files. More...

    - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - +

    Functions

    int iniparser_getnsec (dictionary *d)
    int iniparser_getnsec (dictionary *d)
     Get number of sections in a dictionary.
    char * iniparser_getsecname (dictionary *d, int n)
     Get number of sections in a dictionary.
    char * iniparser_getsecname (dictionary *d, int n)
     Get name for section n in a dictionary.
    void iniparser_dump_ini (dictionary *d, FILE *f)
     Get name for section n in a dictionary.
    void iniparser_dump_ini (dictionary *d, FILE *f)
     Save a dictionary to a loadable ini file.
    void iniparser_dump (dictionary *d, FILE *f)
     Save a dictionary to a loadable ini file.
    void iniparser_dump (dictionary *d, FILE *f)
     Dump a dictionary to an opened file pointer.
    char * iniparser_getstr (dictionary *d, char *key)
     Dump a dictionary to an opened file pointer.
    char * iniparser_getstr (dictionary *d, const char *key)
     Get the string associated to a key, return NULL if not found.
    char * iniparser_getstring (dictionary *d, char *key, char *def)
     Get the string associated to a key, return NULL if not found.
    char * iniparser_getstring (dictionary *d, const char *key, char *def)
     Get the string associated to a key.
    int iniparser_getint (dictionary *d, char *key, int notfound)
     Get the string associated to a key.
    int iniparser_getint (dictionary *d, const char *key, int notfound)
     Get the string associated to a key, convert to an int.
    double iniparser_getdouble (dictionary *d, char *key, double notfound)
     Get the string associated to a key, convert to an int.
    double iniparser_getdouble (dictionary *d, char *key, double notfound)
     Get the string associated to a key, convert to a double.
    int iniparser_getboolean (dictionary *d, char *key, int notfound)
     Get the string associated to a key, convert to a double.
    int iniparser_getboolean (dictionary *d, const char *key, int notfound)
     Get the string associated to a key, convert to a boolean.
    int iniparser_setstr (dictionary *ini, char *entry, char *val)
     Get the string associated to a key, convert to a boolean.
    int iniparser_setstr (dictionary *ini, char *entry, char *val)
     Set an entry in a dictionary.
    void iniparser_unset (dictionary *ini, char *entry)
     Set an entry in a dictionary.
    void iniparser_unset (dictionary *ini, char *entry)
     Delete an entry in a dictionary.
    int iniparser_find_entry (dictionary *ini, char *entry)
     Delete an entry in a dictionary.
    int iniparser_find_entry (dictionary *ini, char *entry)
     Finds out if a given entry exists in a dictionary.
    dictionary * iniparser_load (char *ininame)
     Finds out if a given entry exists in a dictionary.
    dictionary * iniparser_load (const char *ininame)
     Parse an ini file and return an allocated dictionary object.
    void iniparser_freedict (dictionary *d)
     Parse an ini file and return an allocated dictionary object.
    void iniparser_freedict (dictionary *d)
     Free all memory associated to an ini dictionary.
     Free all memory associated to an ini dictionary.


    Detailed Description

    Parser for ini files.

    -

    Author:
    N. Devillard
    -
    Date:
    Mar 2000
    -
    Version:
    Revision
    1.20
    +
    Author:
    N. Devillard
    +
    Date:
    Mar 2000
    +
    Version:
    Revision
    1.23

    Function Documentation

    -

    - - - - -
    - + +
    +
    +
    - - - - + + + + - - - - + + + + - - - + + +
    void iniparser_dump dictionary *  d, void iniparser_dump (dictionary *  d,
    FILE *  fFILE *  f 
    )
    -
    - - - -
    -   - + +

    Dump a dictionary to an opened file pointer. @@ -111,42 +101,34 @@ Dump a dictionary to an opened file pointer.

    f Opened file pointer to dump to.

    -
    Returns:
    void
    -This function prints out the contents of a dictionary, one element by line, onto the provided file pointer. It is OK to specify stderr or stdout as output files. This function is meant for debugging purposes mostly. - - -

    - - - - -
    - +
    Returns:
    void
    +This function prints out the contents of a dictionary, one element by line, onto the provided file pointer. It is OK to specify stderr or stdout as output files. This function is meant for debugging purposes mostly. + +

    + +

    +
    +
    - - - - + + + + - - - - + + + + - - - + + +
    void iniparser_dump_ini dictionary *  d, void iniparser_dump_ini (dictionary *  d,
    FILE *  fFILE *  f 
    )
    -
    - - - -
    -   - + +

    Save a dictionary to a loadable ini file. @@ -157,42 +139,34 @@ Save a dictionary to a loadable ini file.

    f Opened file pointer to dump to
    -

    Returns:
    void
    -This function dumps a given dictionary into a loadable ini file. It is Ok to specify stderr or stdout as output files. - - -

    - - - - -
    - +
    Returns:
    void
    +This function dumps a given dictionary into a loadable ini file. It is Ok to specify stderr or stdout as output files. + +

    + +

    +
    +
    - - - - + + + + - - - - + + + + - - - + + +
    int iniparser_find_entry dictionary *  ini, int iniparser_find_entry (dictionary *  ini,
    char *  entrychar *  entry 
    )
    -
    - - - -
    -   - + +

    Finds out if a given entry exists in a dictionary. @@ -203,33 +177,25 @@ Finds out if a given entry exists in a dictionary.

    entry Name of the entry to look for
    -

    Returns:
    integer 1 if entry exists, 0 otherwise
    -Finds out if a given entry exists in the dictionary. Since sections are stored as keys with NULL associated values, this is the only way of querying for the presence of sections in a dictionary. - - -

    - - - - -
    - - - - - - - - +
    Returns:
    integer 1 if entry exists, 0 otherwise
    +Finds out if a given entry exists in the dictionary. Since sections are stored as keys with NULL associated values, this is the only way of querying for the presence of sections in a dictionary. + +

    + +

    +
    +
    void iniparser_freedict dictionary *  d  ) 
    + + + + + + +
    void iniparser_freedict (dictionary *  d  ) 
    -
    - - - -
    -   - + +

    Free all memory associated to an ini dictionary. @@ -239,48 +205,40 @@ Free all memory associated to an ini dictionary.

    d Dictionary to free
    -

    Returns:
    void
    -Free all memory associated to an ini dictionary. It is mandatory to call this function before the dictionary object gets out of the current context. - - -

    - - - - -
    - +
    Returns:
    void
    +Free all memory associated to an ini dictionary. It is mandatory to call this function before the dictionary object gets out of the current context. + +

    + +

    +
    +
    - - - - + + + + - - - - + + + + - - - - + + + + - - - + + +
    int iniparser_getboolean dictionary *  d, int iniparser_getboolean (dictionary *  d,
    char *  key, const char *  key,
    int  notfoundint  notfound 
    )
    -
    - - - -
    -   - + +

    Get the string associated to a key, convert to a boolean. @@ -292,7 +250,7 @@ Get the string associated to a key, convert to a boolean.

    notfound Value to return in case of error
    -

    Returns:
    integer
    +
    Returns:
    integer
    This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the notfound value is returned.

    A true boolean is found if one of the following is matched:

      @@ -302,47 +260,39 @@ A false boolean is found if one of the following is matched:

      • A string starting with 'n'
      • A string starting with 'N'
      • A string starting with 'f'
      • A string starting with 'F'
      • A string starting with '0'

      -The notfound value returned if no boolean is identified, does not necessarily have to be 0 or 1. - - -

      - - - - -
      - +The notfound value returned if no boolean is identified, does not necessarily have to be 0 or 1. + +

      + +

      +
      +
      - - - - + + + + - - - - + + + + - - - - + + + + - - - + + +
      double iniparser_getdouble dictionary *  d, double iniparser_getdouble (dictionary *  d,
      char *  key, char *  key,
      double  notfounddouble  notfound 
      )
      -
      - - - -
      -   - + +

      Get the string associated to a key, convert to a double. @@ -354,48 +304,40 @@ Get the string associated to a key, convert to a double.

      notfound Value to return in case of error
      -

      Returns:
      double
      -This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the notfound value is returned. - - -

      - - - - -
      - +
      Returns:
      double
      +This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the notfound value is returned. + +

      + +

      +
      +
      - - - - + + + + - - - - + + + + - - - - + + + + - - - + + +
      int iniparser_getint dictionary *  d, int iniparser_getint (dictionary *  d,
      char *  key, const char *  key,
      int  notfoundint  notfound 
      )
      -
      - - - -
      -   - + +

      Get the string associated to a key, convert to an int. @@ -407,33 +349,31 @@ Get the string associated to a key, convert to an int.

      notfound Value to return in case of error
      -

      Returns:
      integer
      -This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the notfound value is returned. - - -

      - - - - -
      - - - - - - - - +
      Returns:
      integer
      +This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the notfound value is returned.

      +Supported values for integers include the usual C notation so decimal, octal (starting with 0) and hexadecimal (starting with 0x) are supported. Examples:

      +

        +
      • "42" -> 42
      • "042" -> 34 (octal -> decimal)
      • "0x42" -> 66 (hexa -> decimal)
      +

      +Warning: the conversion may overflow in various ways. Conversion is totally outsourced to strtol(), see the associated man page for overflow handling.

      +Credits: Thanks to A. Becker for suggesting strtol() + +

      + +

      +
      +
      int iniparser_getnsec dictionary *  d  ) 
      + + + + + + +
      int iniparser_getnsec (dictionary *  d  ) 
      -
      - - - -
      -   - + +

      Get number of sections in a dictionary. @@ -443,44 +383,36 @@ Get number of sections in a dictionary.

      d Dictionary to examine
      -

      Returns:
      int Number of sections found in dictionary
      +
      Returns:
      int Number of sections found in dictionary
      This function returns the number of sections found in a dictionary. The test to recognize sections is done on the string stored in the dictionary: a section name is given as "section" whereas a key is stored as "section:key", thus the test looks for entries that do not contain a colon.

      This clearly fails in the case a section name contains a colon, but this should simply be avoided.

      -This function returns -1 in case of error. - - -

      - - - - -
      - +This function returns -1 in case of error. + +

      + +

      +
      +
      - - - - + + + + - - - - + + + + - - - + + +
      char* iniparser_getsecname dictionary *  d, char* iniparser_getsecname (dictionary *  d,
      int  nint  n 
      )
      -
      - - - -
      -   - + +

      Get name for section n in a dictionary. @@ -491,43 +423,35 @@ Get name for section n in a dictionary.

      n Section number (from 0 to nsec-1).
      -

      Returns:
      Pointer to char string
      +
      Returns:
      Pointer to char string
      This function locates the n-th section in a dictionary and returns its name as a pointer to a string statically allocated inside the dictionary. Do not free or modify the returned string!

      -This function returns NULL in case of error. - - -

      - - - - -
      - +This function returns NULL in case of error. + +

      + +

      +
      +
      - - - - + + + + - - - - + + + + - - - + + +
      char* iniparser_getstr dictionary *  d, char* iniparser_getstr (dictionary *  d,
      char *  keyconst char *  key 
      )
      -
      - - - -
      -   - + +

      Get the string associated to a key, return NULL if not found. @@ -538,49 +462,41 @@ Get the string associated to a key, return NULL if not found.

      key Key string to look for
      -

      Returns:
      pointer to statically allocated character string, or NULL.
      +
      Returns:
      pointer to statically allocated character string, or NULL.
      This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, NULL is returned. The returned char pointer is pointing to a string allocated in the dictionary, do not free or modify it.

      -This function is only provided for backwards compatibility with previous versions of iniparser. It is recommended to use iniparser_getstring() instead. - - -

      - - - - -
      - +This function is only provided for backwards compatibility with previous versions of iniparser. It is recommended to use iniparser_getstring() instead. + +

      + +

      +
      +
      - - - - + + + + - - - - + + + + - - - - + + + + - - - + + +
      char* iniparser_getstring dictionary *  d, char* iniparser_getstring (dictionary *  d,
      char *  key, const char *  key,
      char *  defchar *  def 
      )
      -
      - - - -
      -   - + +

      Get the string associated to a key. @@ -592,33 +508,25 @@ Get the string associated to a key.

      def Default value to return if key not found.
      -

      Returns:
      pointer to statically allocated character string
      -This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the pointer passed as 'def' is returned. The returned char pointer is pointing to a string allocated in the dictionary, do not free or modify it. - - -

      - - - - -
      - - - - - - - - +
      Returns:
      pointer to statically allocated character string
      +This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the pointer passed as 'def' is returned. The returned char pointer is pointing to a string allocated in the dictionary, do not free or modify it. + +

      + +

      +
      +
      dictionary* iniparser_load char *  ininame  ) 
      + + + + + + +
      dictionary* iniparser_load (const char *  ininame  ) 
      -
      - - - -
      -   - + +

      Parse an ini file and return an allocated dictionary object. @@ -628,49 +536,41 @@ Parse an ini file and return an allocated dictionary object.

      ininame Name of the ini file to read.
      -

      Returns:
      Pointer to newly allocated dictionary
      +
      Returns:
      Pointer to newly allocated dictionary
      This is the parser for ini files. This function is called, providing the name of the file to be read. It returns a dictionary object that should not be accessed directly, but through accessor functions instead.

      -The returned dictionary must be freed using iniparser_freedict(). - - -

      - - - - -
      - +The returned dictionary must be freed using iniparser_freedict(). + +

      + +

      +
      +
      - - - - + + + + - - - - + + + + - - - - + + + + - - - + + +
      int iniparser_setstr dictionary *  ini, int iniparser_setstr (dictionary *  ini,
      char *  entry, char *  entry,
      char *  valchar *  val 
      )
      -
      - - - -
      -   - + +

      Set an entry in a dictionary. @@ -682,42 +582,34 @@ Set an entry in a dictionary.

      val New value to associate to the entry.
      -

      Returns:
      int 0 if Ok, -1 otherwise.
      -If the given entry can be found in the dictionary, it is modified to contain the provided value. If it cannot be found, -1 is returned. It is Ok to set val to NULL. - - -

      - - - - -
      - +
      Returns:
      int 0 if Ok, -1 otherwise.
      +If the given entry can be found in the dictionary, it is modified to contain the provided value. If it cannot be found, -1 is returned. It is Ok to set val to NULL. + +

      + +

      +
      +
      - - - - + + + + - - - - + + + + - - - + + +
      void iniparser_unset dictionary *  ini, void iniparser_unset (dictionary *  ini,
      char *  entrychar *  entry 
      )
      -
      - - - -
      -   - + +

      Delete an entry in a dictionary. @@ -728,10 +620,10 @@ Delete an entry in a dictionary.

      entry Entry to delete (entry name)
      -

      Returns:
      void
      -If the given entry can be found, it is deleted from the dictionary. - - +
      Returns:
      void
      +If the given entry can be found, it is deleted from the dictionary. +
    +

    diff --git a/source/iniparser/html/iniparser_8main.html b/source/iniparser/html/iniparser_8main.html index 38a963bbc7f..a00eed2f9eb 100644 --- a/source/iniparser/html/iniparser_8main.html +++ b/source/iniparser/html/iniparser_8main.html @@ -10,7 +10,7 @@ - +

    iniparser.main File Reference

    diff --git a/source/iniparser/html/tab_b.gif b/source/iniparser/html/tab_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d623483ffdf5f9f96900108042a7ab0643fe2a3 GIT binary patch literal 35 mcwTe&bhEHbWMp7uXkcJy*>IeJfk6j|89*WoOiV6}4AuZ}83fn> literal 0 HcwPel00001 diff --git a/source/iniparser/html/tab_l.gif b/source/iniparser/html/tab_l.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b1e6337c9299a700401a2a78a2c6ffced475216 GIT binary patch literal 706 zcwTe&bhEHbZT`}F1e&(Gg}Y(8=I;HA5#Z$3JI=gGB)FQ#odI(O&E^@q;x zK6mr*m3xOS-#u~t!I@i+u0DKm^U160k6t`|^WpV}&n+8{U%dD9&a>B#U%!9-@yol< zU%&tQ{rk_K|NsC0`}dE5ET97-Kz?Ch`|mI9rna83hMm2xP=jBIMDsOm+zXwzZmG~R;R#)lv4Bfe&~f#I#c>DyWWAHt+!RY)&KI$b@p(kMyG{*;gWDg zyeL|eZf{dHNYmXyDSufzJVRAfbRbM z_*_M>zpHsROHdQR3?hv$<0IX%BTMTIQLHdEZ*?slZQZ-a-^YJQNK8tGr=+HRM11<3 zo{{+_EBk9sZeBjZL|x8!pRcJ2s=NY?!Qv{bs%vWN>hT03siCo{xuvzOy-r=-Snb$B z?S14fR(DTt-;e$Q_TbR)$mkenoIAnePfkq_7XuAcR5Uc?mRD9q;x&o%-_l$EW|sjJ z{-+DZ<+sKvX|B4wF*u;08G8l%6i9bd*wA*qNg5kf3|1s)&jJdZBL4{?_s4 zg^@i>zqP7_nSCZ?Zj@SG>LE)9>a^{sggJH>f)OUSXf?>bQqMw24x|>3dW}h}6|!;n>A7yCx`h#Zh>*i1 z)h~^=#O~H}*Oj*K)PsD|Z^aNqGu?$QdG3wGHQ`{j|9Dp;NxH;sPt@~hItSG}k#_vH zd3EEKbeT`j^Js4RwY4r1jpt0WZ;#4CE)B8hFgxrEF4W06!-Y@Kfv+ zjVDtbwVq6-fsK%pA6>0yClQ`b##5jEGD6-=u=PexrQd|kPG#JQGoH@8;rrpJ@`DoO zbXGv!>~wbU_G7>FzXzVo|uPS#Gzx|3a<5cj7|bC=?l3&y5>F!b21M7YUc6 z5@n0T`PH%@(sI^TP=oln?X$*p_gBxFex4*fYX+!oJ!{z^vY-~sU$j^V&Aw!3W|ex`BhU(d_4fG}12^oLFW4^8s*;|2 zDd$6n{A5YcVOuOy!VGFYA2Rx!S^)3;!!d&1g{zIr{YmG%qEJGlyk`Z7s@FqkqP*JfbHg<0;|Wn-*QsGWeDr;K;ESxhoi$VuP-{ zW*K4UNnFUDNPU3;u(jthE~bQ}ujp0Us#=AKJrsFR$pJ|E?IRA#PaINK&TQM~q!MZV zV6V#kGbc5BJ#T;-?xF(9+Wn?*?;ZJv)zjA656>avor==c5kOPJla=o7kpStU)k@1NyDq-JO)A5XA^RNT7>%>X9SZ=Z9`%8>_I-=yJ zNU8!jnBiw5`qDlBaJN!0q%t11<29wkx}M4miV$UURZ7onSpwu!+m0IGr_ZpdT~MMZ zXE~|#9M!Yy@}1SAY(v-uDU}tqDar$=mf7!ubjRq3^OfAn{?Mj%$JvO#sVA2?9=qY` z;-tTGpuy;bHLV98AuiNcMS`6nSMDk4%S&BntXQqR=|pj{%rY72`UujOm32fO_)zHr z_CsIprnuBz73KLJ@}od!tqkmjx{^WrQDU=(^h`$mRSM}x8Ce~)J^JQqJ*^)Tu~vRZ zwftHq#JjxBp)|4Q>2)@3ppLkP4o)t=8J%#oCbgv`oLTNGrLmhf*Rb6!PmB#?9 z08vtl+lMwW9P!fd6xZRI=%6tA2xn7L-_j8%r+*xv@s@|DxM7}W&_}0jq=fE2F?N+_ zS#vj}#6czo+I$waXb?jjQN@OLx^PzSWqj#zm0=^;bl-~w^^MEP*vOgRDdsEu{ZPEg^%atonVz(%{<6@S8+?}@Tt;#``Z;!d&{RP3d?eDUDWl=G)=ha}Q z?lvyoIg+l9SpN>xD*oWb;AuHL?=Xi~Cdn!D4~(pnp%o|KVT}9MbNEhs&PqzG>w^Po z1Pa)FB@MxN@S6qU--DMCg{}{kJP5RF@Zj|NNZ#>~4f?OOlbM~aw@)B87zKFL%!i9oa>*IZp)fN6rN+6bLFHkVh$~ zuaLt)dL8`k^By`d6mVe;4H_0cShN{@VJxY%8=fC>vdyGpBtBJ*3+PDOQ6FO|A*E^& esvXLqH- 42 + "042" -> 34 (octal -> decimal) + "0x42" -> 66 (hexa -> decimal) + + Warning: the conversion may overflow in various ways. Conversion is + totally outsourced to strtol(), see the associated man page for overflow + handling. + + Credits: Thanks to A. Becker for suggesting strtol() */ /*--------------------------------------------------------------------------*/ int iniparser_getint(dictionary * d, const char * key, int notfound) @@ -288,7 +302,7 @@ int iniparser_getint(dictionary * d, const char * key, int notfound) str = iniparser_getstring(d, key, INI_INVALID_KEY); if (str==INI_INVALID_KEY) return notfound ; - return atoi(str); + return (int)strtol(str, NULL, 0); } diff --git a/source/iniparser/src/iniparser.h b/source/iniparser/src/iniparser.h index 2df8ffe8374..5bbd9045cfc 100644 --- a/source/iniparser/src/iniparser.h +++ b/source/iniparser/src/iniparser.h @@ -4,16 +4,16 @@ @file iniparser.h @author N. Devillard @date Mar 2000 - @version $Revision: 1.20 $ + @version $Revision: 1.23 $ @brief Parser for ini files. */ /*--------------------------------------------------------------------------*/ /* - $Id: iniparser.h,v 1.20 2005/08/19 17:23:21 ndevilla Exp $ + $Id: iniparser.h,v 1.23 2006-09-27 11:03:35 ndevilla Exp $ $Author: ndevilla $ - $Date: 2005/08/19 17:23:21 $ - $Revision: 1.20 $ + $Date: 2006-09-27 11:03:35 $ + $Revision: 1.23 $ */ #ifndef _INIPARSER_H_ @@ -154,6 +154,20 @@ char * iniparser_getstring(dictionary * d, const char * key, char * def); This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the notfound value is returned. + + Supported values for integers include the usual C notation + so decimal, octal (starting with 0) and hexadecimal (starting with 0x) + are supported. Examples: + + - "42" -> 42 + - "042" -> 34 (octal -> decimal) + - "0x42" -> 66 (hexa -> decimal) + + Warning: the conversion may overflow in various ways. Conversion is + totally outsourced to strtol(), see the associated man page for overflow + handling. + + Credits: Thanks to A. Becker for suggesting strtol() */ /*--------------------------------------------------------------------------*/ int iniparser_getint(dictionary * d, const char * key, int notfound); diff --git a/source/iniparser/src/strlib.c b/source/iniparser/src/strlib.c index b954a36cf79..f0d85aea580 100644 --- a/source/iniparser/src/strlib.c +++ b/source/iniparser/src/strlib.c @@ -4,7 +4,7 @@ @file strlib.c @author N. Devillard @date Jan 2001 - @version $Revision: 1.8 $ + @version $Revision: 1.9 $ @brief Various string handling routines to complement the C lib. This modules adds a few complementary string routines usually missing @@ -13,10 +13,10 @@ /*--------------------------------------------------------------------------*/ /* - $Id: strlib.c,v 1.8 2002/12/12 10:29:16 ndevilla Exp $ + $Id: strlib.c,v 1.9 2006-09-27 11:04:11 ndevilla Exp $ $Author: ndevilla $ - $Date: 2002/12/12 10:29:16 $ - $Revision: 1.8 $ + $Date: 2006-09-27 11:04:11 $ + $Revision: 1.9 $ */ /*--------------------------------------------------------------------------- diff --git a/source/iniparser/src/strlib.h b/source/iniparser/src/strlib.h index 39ca26f1df0..cd70a6287de 100644 --- a/source/iniparser/src/strlib.h +++ b/source/iniparser/src/strlib.h @@ -4,7 +4,7 @@ @file strlib.h @author N. Devillard @date Jan 2001 - @version $Revision: 1.3 $ + @version $Revision: 1.4 $ @brief Various string handling routines to complement the C lib. This modules adds a few complementary string routines usually missing @@ -13,10 +13,10 @@ /*--------------------------------------------------------------------------*/ /* - $Id: strlib.h,v 1.3 2001/10/19 08:31:41 ndevilla Exp $ + $Id: strlib.h,v 1.4 2006-09-27 11:04:11 ndevilla Exp $ $Author: ndevilla $ - $Date: 2001/10/19 08:31:41 $ - $Revision: 1.3 $ + $Date: 2006-09-27 11:04:11 $ + $Revision: 1.4 $ */ #ifndef _STRLIB_H_ -- 2.11.4.GIT