Complete.Org: Mailing Lists: Archives: freeciv-dev: September 2001:
[Freeciv-Dev] Re: Split patch (was Re: [RFC PATCH] init_techs)
Home

[Freeciv-Dev] Re: Split patch (was Re: [RFC PATCH] init_techs)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Justin Moore <justin@xxxxxxxxxxx>
Cc: Freeciv Developers <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: Split patch (was Re: [RFC PATCH] init_techs)
From: Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 23 Sep 2001 09:26:49 +0200
Reply-to: rf13@xxxxxxxxxxxxxxxxxxxxxx

On Sat, Sep 22, 2001 at 05:26:05PM -0400, Justin Moore wrote:
> 
>  /***************************************************************************
> +  PERL-like split.  Takes a string of characters to split on, a buffer to
> +  split, and an array of pointers to return.  Can set a max size on the

It returns an int. It may fill/write an array of pointers.

> +  number of chunks into which you can split the buffer.
> +

> +  NOTE: This WILL change the original buffer, so if you want an original
> +        copy of it, make it before you pass it to this function.

Can you please remove this restriction.

> +
> +  Return the number of sub-elements found.
> +***************************************************************************/
> +int split(char *toks, char *buf, char **args, int max_args)

Can you please add some consts. Yes I know that const isn't used much
in freeciv. But this method is more like the str* method.

> +{
> +  int i;
> +  int nfound;
> +  int len;
> +  char *my_toks;
> +

> +  if((buf[0] == '#') || (buf[0] == '\n')) /* Comment or blank line */
> +    return 0;

The handling of comments should be in this general purpose method.

> +

> +  /* Remove all leading whitespace and toks.

Please mention this in the header.

What about memory management? Who allocates the space for args? The
caller or split? It looks like args are currently pointers to buf. I
don't like this.

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "Python is executable pseudocode. Perl is executable line noise"
    -- Bruce Eckel


[Prev in Thread] Current Thread [Next in Thread]