Doh, sorry about the double post, I didn't finish my thought...

Quoting "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>:

> 
> 
> Ok, I'm diving in... but I'm already lost ;)
> I thought maybe the code in vlimits.c would be simple enough to use, but I
> don't
> understand how it could work... Maybe it doesn't yet ;)
> 
> Anyways, here's an excerpt:
> 
> /*
>  * vlimits.c
>  * handle domain limits in both file format
>  * Brian Kolaci <[EMAIL PROTECTED]>
>  */
> ...
> #define TOKENS " :\t\n\r"
> ...
> /* find/read the .qmailadmin-limits file */
> int vget_limits(const char *domain, struct vlimits *limits)
> {
> ...
>     /* open file */
>     if ((fs = fopen(dir, "r")) != NULL) {
>         while (fgets(buf, sizeof(buf), fs) != NULL) {
>             if ((s1 = strtok(buf, TOKENS)) == NULL)
>                 continue;
> 
>             if (!strcmp(s1, "maxpopaccounts")) {
>                 if ((s2 = strtok(NULL, TOKENS)) == NULL)
>                     continue;
>                 limits->maxpopaccounts = atoi(s2);
>             }
> 
>             if (!strcmp(s1, "maxaliases")) {
>                 if ((s2 = strtok(NULL, TOKENS)) == NULL)
>                     continue;
>                 limits->maxaliases = atoi(s2);
>             }
> 
> 
> Ok... so I assume the .qmailadmin-limits file looks like:
> maxpopaccounts    12
> maxaliases        44
> 
> I'm trying to understand this..
> while not EOF..
>   if not empty..
     
And Here's where I'm really lost:
>              if (!strcmp(s1, "maxpopaccounts")) {
?  If s1 does NOT contain maxpopaccts?
>                 if ((s2 = strtok(NULL, TOKENS)) == NULL)
?  if the next token of NULL is null loop?  (I haven't looked up continue yet,
but I assume its to restart the while.. but that's not a source of confusion yet ;)
>                     continue;
>                 limits->maxpopaccounts = atoi(s2);
>             }
> 
> so first s1 should be "maxpopacccounts" because fgets ends at \n
> But I don't get the strtok().  How can s2 be anything if NULL is being split
> up  by \t\n\r ?  Shouldn't that be buf?
> 

I can usually figure this stuff out with google, and some common sense, but this
time I don't get it.  Sorry about the double post.

Thanks

Rick






Reply via email to