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


>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 
> > 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

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