[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 4/6] libxl: debug output for args and env when invoking hotplug script



Wei Liu writes ("[PATCH 4/6] libxl: debug output for args and env when invoking 
hotplug script"):
> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
...
> +        const char *arg;
> +        unsigned int x = 2;
> +
> +        arg = args[x];
> +        while (arg) {
> +            LOG(DEBUG, "\t%s", arg);
> +            x++;
> +            arg = args[x];
> +        }

What a strange way to write

   for (x=2; (arg = args[x]); x++) {

or

   for (x=2; (arg = args[x++]); ) {

or

   x = 2;
   while ((arg = args[x++])) {

If you really insist on not doing assignment in the conditional (which
IMO is a very usual C idiom) then you should avoid the repeated code
with

   x = 2;
   for (;;) {
      arg = args[x++];
      if (!arg) break;

or some such.

> +        const char *k, *v;
> +        unsigned int x = 0;
> +
> +        k = env[x];
> +        while (k) {
> +            v = env[x+1];
> +            LOG(DEBUG, "\t%s: %s", k, v);
> +            x += 2;
> +            k = env[x];
> +        }

How about one of

   for (x=0; (k = env[x]); x += 2) {
       v = env[x+1];

   for (x=0; (k = env[x]) && (v = env[x+1]); x += 2) {

   for (x=0; (k = env[x++]) && (v = env[x++]); ) {

   x = 0;
   while ((k = env[x++])) {
       v = env[x++];
       assert(v);

?

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.