[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: spice-sdb connection order confusion



Heh.  Do you have this fcn in Scheme?

;-)

Stuart


> 
> 
> > This gets a bit confusing for more than 9 pins: P10 winds up between
> > P1 and P2!
> 
> My local copy of PCB uses this string comparison function to sort
> embedded numbers numerically.  I use this to sort netlists, because of
> the same pin numbering bug you mention.
> 
> static int
> string_cmp (const char *a, const char *b)
> {
>   while (*a && *b)
>     {
>       if (isdigit(*a) && isdigit(*b))
>       {
> 	int ia = atoi(a);
> 	int ib = atoi(b);
> 	if (ia != ib)
> 	  return ia - ib;
> 	while (isdigit(*a))
> 	  a++;
> 	while (isdigit(*b))
> 	  b++;
>       }
>       else if (tolower(*a) != tolower(*b))
> 	return tolower(*a) - tolower(*b);
>       a++;
>       b++;
>     }
>   if (*a)
>     return 1;
>   if (*b)
>     return -1;
>   return 0;
> }
>