Ok james, give me a few days more to digest your
ideas and perhaps come up with some code as a
solution.

gerard


>From: James Cameron <quozl at us.netrek.org>
>Reply-To: vanilla-list at us.netrek.org
>To: vanilla-list at us.netrek.org
>Subject: Re: [Vanilla List] any growth on this?
>Date: Tue, 27 Nov 2001 23:24:04 +1100
>
>On Tue, Nov 27, 2001 at 04:20:58AM -0500, Gerard Lim wrote:
> > Correct me if I'm wrong, but does it rely on having the descriptions,
> > keys, and types of options in one file:  sysdefaults.h?  I can see now
> > how easy it is to add a new option.
>
>Yes, that's right.  Because the maintainers of the server also maintain
>gum, so synchronisation can be easy.  The file sysdefaults.h contains
>the procedure for adding new options.
>
> > However such a thing doesn't exist for COW.  The keymap and options are
> > 'hardcoded', as it were, in two files:  input.c and defaults.c (correct 
>me
> > if I'm wrong).
>
>Yes, that's right.  This should change.  Suggest how to change it?
>
>Idea: special compilation mode for COW that causes getdefault() and the
>datatype variants to track what is given to them to fetch.  Use the
>compiled result to generate a list of parameter names and types that are
>placed in a header that is used by defaults.c.  Change getdefault() to
>issue a warning when a new parameter is seen that is not in the list.
>
>Audit the code periodically using regular expression searching to
>verify that all the defaults are known.
>
>Since the client is in maintenance mode, and no new major features are
>being written, the cost of keeping the known parameters in the list
>should be low.
>
>My quick guess at the size of the task:
>1) files that contain getdefault or variants,
>
>% egrep -l "intDefault|booleanDefault|getdefault" *.c|fmt
>audio.c cowmain.c defaults.c defwin.c docwin.c findslot.c gnu_win32.c
>input.c main.c newwin.c parsemeta.c playback.c playerlist.c sound.c
>winsprite.c x11sprite.c x11window.c
>
>2) total number of files,
>
>% egrep -l "intDefault|booleanDefault|getdefault" *.c|wc --lines
>      17
>
>3) number of calls or parameters to investigate,
>
>% egrep "intDefault|booleanDefault|getdefault" *.c|wc --lines
>     182
>% cat *.c|egrep "intDefault|booleanDefault|getdefault"|sort|uniq|wc --lines
>     165
>% cat *.c|egrep "intDefault|booleanDefault|getdefault"|cut -f2 
>-d\"|sort|uniq|more|wc --lines
>     154
>
>
>What might not be caught by an semi-automatic analysis is calls to
>getdefault() that are conditional.  One could argue that such calls
>are not for important parameters!
>
> > The bottom line is I don't see an easy way of using code in the parent
> > project to make setting and getting labels and values for the widgets
> > easy for us.
>
>True, but we should be able to improve the parent project as a side-
>effect of making it easy for us.
>
>--
>James Cameron    mailto:quozl at us.netrek.org     http://quozl.netrek.org/
>_______________________________________________
>vanilla-list mailing list
>vanilla-list at us.netrek.org
>https://mailman.real-time.com/mailman/listinfo/vanilla-list


_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp