Súbor: [Platon] / libcfg+ / TODO (stiahnutie)
Revízia 1.37, Mon Jan 12 05:59:22 2004 UTC (20 years, 10 months ago) by nepto
Zmeny od 1.36: +3 -1
[lines]
TODO update.
|
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
Platon Group <platon@platon.sk> http://platon.sk/
|