Changeset 5001

Show
Ignore:
Timestamp:
11/01/07 14:59:55 (7 years ago)
Author:
khali
Message:

Final status messages go to stdout.
Fix two harmless file descriptor leaks.
Don't return an error when readback fails or doesn't match, it might be OK.

Location:
i2c-tools/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • i2c-tools/trunk/CHANGES

    r4954 r5001  
    22----------------- 
    33 
     4SVN 
     5  i2cset: Final status messages go to stdout 
     6          Return success even when readback fails or doesn't match 
     7 
    483.0.0 (2007-10-14) 
    59  Initial release 
  • i2c-tools/trunk/tools/i2cset.c

    r4948 r5001  
    4949        int res, i2cbus, address, size, file; 
    5050        int value, daddress, vmask = 0; 
    51         int e1; 
    5251        char filename[20]; 
    5352        unsigned long funcs; 
     
    233232                        fprintf(stderr, "Error: Could not set PEC: %s\n", 
    234233                                strerror(errno)); 
     234                        close(file); 
    235235                        exit(1); 
    236236                } 
     
    241241        } 
    242242 
    243         e1 = 0; 
    244243        if (size == I2C_SMBUS_WORD_DATA) { 
    245244                res = i2c_smbus_write_word_data(file, daddress, value); 
     
    248247        } 
    249248        if (res < 0) { 
    250                 fprintf(stderr, "Warning - write failed\n"); 
    251                 e1++; 
     249                fprintf(stderr, "Error: Write failed\n"); 
     250                close(file); 
     251                exit(1); 
    252252        } 
    253253 
     
    257257                                strerror(errno)); 
    258258                        close(file); 
    259                         exit(e1); 
     259                        exit(1); 
    260260                } 
    261261        } 
     
    269269 
    270270        if (res < 0) { 
    271                 fprintf(stderr, "Warning - readback failed\n"); 
    272                 e1++; 
     271                printf("Warning - readback failed\n"); 
    273272        } else 
    274273        if (res != value) { 
    275                 e1++; 
    276                 fprintf(stderr, "Warning - data mismatch - wrote " 
    277                         "0x%0*x, read back 0x%0*x\n", 
    278                         size == I2C_SMBUS_WORD_DATA ? 4 : 2, value, 
    279                         size == I2C_SMBUS_WORD_DATA ? 4 : 2, res); 
    280         } else { 
    281                 fprintf(stderr, "Value 0x%0*x written, readback matched\n", 
    282                         size == I2C_SMBUS_WORD_DATA ? 4 : 2, value); 
    283         } 
    284  
    285         exit(e1); 
     274                printf("Warning - data mismatch - wrote " 
     275                       "0x%0*x, read back 0x%0*x\n", 
     276                       size == I2C_SMBUS_WORD_DATA ? 4 : 2, value, 
     277                       size == I2C_SMBUS_WORD_DATA ? 4 : 2, res); 
     278        } else { 
     279                printf("Value 0x%0*x written, readback matched\n", 
     280                       size == I2C_SMBUS_WORD_DATA ? 4 : 2, value); 
     281        } 
     282 
     283        exit(0); 
    286284}