Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Tuesday, October 13, 2026
About Us
Magazine
Open Source
CVS
Services
Index  »  Projects  »  libcfg+  »  Documentation  »  TXT  »  TODO

libcfg+/txt/TODO

libcfg+ TODO list
-----------------

- standard files such as README, AUTHORS, TODO an so on are not installed
  into /usr/doc/ together with other documentation
* when building on Gentoo Linux, make.conf CFLAGS are not used in addition
  to our libcfg+ compilation flags

* implement functions for multi properties manipulation:
  - cfg_clear_properties()
  - cfg_add_properties()
  - cfg_remove_properties()

- implement boolean datatypes initialization arguments properties;
  with '0', 'off' and 'disabled' defaults for FALSE and '1', 'on' and 'enabled'
  defaults for TRUE
* cfg_set_cmdline_context() reimplementation from argc to begin_pos/end_pos; it
  will allow parse a subset of items from string array; also create
  cfg_(set|get)_cmdline_context_by_argc() macro to get old behaviour of
  cfg_(set|get)_cmdline_context() functions (begin_pos is 0, end_pos is argc-1,
  context has CFG_PROCESS_FIRST flag not set)
* variable arguments (va) functions for property manipulation
* clickable references to real properties of every virtual property in
  documentation

* implement multiple outputs from single SGML sources; we need at least
  - man page
  - changelog

* `make distcheck' doesn't work due to error during documentation generation;
  html/* and doxygen/* doesn't exists because they have hardcoded paths to sgml
  and *.h sources in its configuration files and appropriate Makefile parts
+ rewrite special properties manipulation
  - old code was removed, only in props.c was left commented
  - make appropriate changes in documentation
  - check doxygen documentation
* rewrite context flags stuff
  * rewritten, but virtual properties need also implement
  * quotations reimplement
* move Doxygen building stuff to doc/Makefile.in directory

* linking to our library doesn't work (props.h is missing); we need also
  install another headers, prefered models in /usr/include:
    1. cfg+.h, [cfg.h], cfg+/cfg+.c, cfg+/props.h
    2. cfg+.h, [cfg.h], platon/cfg+.c, platon/props.h
    3. cfg+.h, [cfg.h], platon/cfg+/cfg+.c, platon/cfg+/props.h
  or we can
    4. modify existing code not to use #include "props.h" directive
  - if you fix this, try to compile and link examples/example.c again installed
    library into system (hint: use export LD_LIBRARY_PATH to specify place of
    library files when run example binary)
  - solution no. 4 was choosen and implemented

- building stuff:
  * normal 'make' SHOULD NOT build documentation (not everyone have docbook
    installed on his or her system)
  * move examples into doc/ and make appropriate 'make install' update
  * name and version substitution in doc/sgml/libcfg+.sgml
    - done (rajo)
  * date substitution in doc/sgml/libcfg+.sgml
  * make install should call make install in doc/
  * make install in doc/ should install into /usr/share/doc/ (?) these
    subdirectories: doxygen/ sgml/ html/
	- finally /usr/doc/ was used
  * make doc should call make doxygen and make doc in doc/
	- done (rajo); use 'make documentation' not 'make doc'; doc target conflict
	  with name of directory
  * make doc in doc/ should call make html, make pdf, ... in doc/
    - done (rajo)
  + make <format> in doc/ should generate appropraite documentation format and
    move it into separate directory (available formats should be html, pdf, ps,
    tex, rtf, txt)
  * solve install problem when library files (especially symlinks) are already
    installed
  - if 'ln' is not present, than use 'cp -l'
  * doxygen building stuff move to doc/Makefile.in file
    - done (rajo)

* think about CVS tag (not) in header
* think about own CVS tag $Platon
  - implemented
* rename to libcfg+; that cover: CVS project rename, cfg.c and cfg.h files
  rename, distribution directory name, ...
* missing, rebuild, configure.in must be in distribution?
  - rebuild is useful
  - configure.in is for help purpose of users
  - missing - removed, because we don't know what it is for
* objects from str/ are created in level-up directory - is it OK?
  - yes it is; use -o option to specify location of object files or use the
	same option for specifying new unique object filename in the same directory
	(so str/strplus.c will compile into str/strplus.o or str_strplus.o)
* move sources into src/ subdirectory (also with str/)
  - done (rajo)
* move documentation into doc/ or docs/ subdirectory
  - done (rajo)

* implement config file end_pos (in both modes, positions and line)
  - line mode tested, works fine; position tests needed
* get_cur_opt_idx() will return number of line in config file context
  - implemented; set CFG_FILE_LINE_USAGE flag to use line arithmetic
- make clearly understandable stuff around cfg_reset_context() and
  cfg_set_(cmdline|cfgfile)_context() function
- multi booleans in config file should be also initialized via var = value

- option aliases (really needed?)
- case insensitive options (isn't this a little bit strange idea?)

+ number of spaces in cfgfile option names should not be relevant in compare
  with real option names in file; that means "multi int" is the same as
  "multi  int" and "multi\tint"
  - seems to be fixed, but needs testing
+ fix this bug: numbers in format 09 cannot be converted to decimal data type
  - it is not bug, it is feature: numbers started with 0 are considered to be
    in octal format; similary numbers started with 0x or 0X are considered to
    be in hexadecimal format; so 09 is really invalid, because in octal format
    this number is not correct

- in cfgfile multi lines handling don't trim all left white characters in 2nd
  or more part of multi line, but substitute it for one space; this the same
  behaviour as it is for right white characters trims in all parts of multi
  lines excepts the last one

* make cfgfile.c and cmdline.c to be standalone and compileable files;
  shared functions prefix by __cfg and move it to the shared.c;
  make HUGE warning in shared.h for normal user not to include that file

* universal, but customizable cfg error handle stuff
  - should work fine

* get_multi_line() will return return code according to error and pointer
  to buffer will be passed as function parameter
* parameter to specify end of line postfixes for multi lines quotation thinking
* (oh no! ;-) multi arguments quotations and separation (split_multi_arg()
* function) single argument quotations (unquote_single_arg() function)
+ also ability to turn quotations off (any idea how will this be useful? ;-)
  - there is a possiblity to specify quotation prefixes/postfixes; just clear
    them to turn quotations off

* functions str_left_trim(), str_right_trim() for white characters removing
* macros ltrim(), rtrim() or str_ltrim(), str_ltrim()
* macros str_trim(), strtrim(), trim()

* leftover arguments dual mode:
  1. can have valid options after leftover arguments
  2. after first leftover argument is all cosidered as leftover argument
  Default initialization will be according to POSIXLY_CORRECT environment
  variable. Can be changed by changing context flags.
  - POSIXLY_CORRECT environment lookup not implemented
* better stuff for manipulating with context flags (add, remove, clear, ...)
  - cfg_set_context_flag(), cfg_clear_context_flag()
    and getting info functions cfg_get_context_flag(), cfg_is_context_flag() 

* universal functions with strdyn context properties manipulation and
  create appropriate macros
* cfg_add_cmdline_stop_str() and similar function should return
  result if item was successfully added into string list

* for each numeric data type (INT, UINT, LONG, ...) tests if range
  checks works properly; for INT it doesn't
  - it works, but int and long seems to be the same datatype
* fix ULONG argument parsing (there is strange strtoul() behaviour)

* command line stop string implemented
* create strdyn_create_ar() and link strdyn_duplicate()
* boolean multi options initialization handling
* multi options detection and error handling
* string data type support added
* string multi options initialization handling
 

Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top · Feedback form · Application form
Report bug on PLATON.SK website · Terms of use · Privacy policy