Changeset 5721

Show
Ignore:
Timestamp:
05/13/09 18:07:50 (4 years ago)
Author:
andy
Message:

sensord: Did some refactoring in parseChips(). This fixes some deep indentation
levels.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/prog/sensord/args.c

    r5720 r5721  
    232232int parseChips(int argc, char **argv) 
    233233{ 
    234         if (optind == argc) { 
     234        int i, n = argc - optind, err; 
     235 
     236        if (n == 0) { 
    235237                sensord_args.chipNames[0].prefix = 
    236238                        SENSORS_CHIP_NAME_PREFIX_ANY; 
     
    239241                sensord_args.chipNames[0].addr = SENSORS_CHIP_NAME_ADDR_ANY; 
    240242                sensord_args.numChipNames = 1; 
    241         } else { 
    242                 int i, n = argc - optind, err; 
    243                 if (n > MAX_CHIP_NAMES) { 
    244                         fprintf(stderr, "Too many chip names.\n"); 
     243 
     244                return 0; 
     245        } 
     246 
     247        if (n > MAX_CHIP_NAMES) { 
     248                fprintf(stderr, "Too many chip names.\n"); 
     249                return -1; 
     250        } 
     251        for (i = 0; i < n; ++i) { 
     252                char *arg = argv[optind + i]; 
     253 
     254                err = sensors_parse_chip_name(arg, sensord_args.chipNames + i); 
     255                if (err) { 
     256                        fprintf(stderr, "Invalid chip name `%s': %s\n", arg, 
     257                                sensors_strerror(err)); 
    245258                        return -1; 
    246259                } 
    247                 for (i = 0; i < n; ++ i) { 
    248                         char *arg = argv[optind + i]; 
    249  
    250                         err = sensors_parse_chip_name(arg, 
    251                                                       sensord_args.chipNames + 
    252                                                       i); 
    253                         if (err) { 
    254                                 fprintf(stderr, 
    255                                         "Invalid chip name `%s': %s\n", arg, 
    256                                         sensors_strerror(err)); 
    257                                 return -1; 
    258                         } 
    259                 } 
    260                 sensord_args.numChipNames = n; 
    261         } 
     260        } 
     261        sensord_args.numChipNames = n; 
     262 
    262263        return 0; 
    263264}