Changeset 14 for trunk/txlib/txparse.c

Show
Ignore:
Timestamp:
07/08/06 18:42:16 (2 years ago)
Author:
jvw
Message:

HEX/ASCII (sector) editor control added

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/txlib/txparse.c

    r13 r14  
    249249 
    250250/*****************************************************************************/ 
    251 // Get option value num/string, with bytes/kilo/mega/giga modifier and default 
    252 /*****************************************************************************/ 
    253 ULONG TxaOptBkmg                                // RET   number value in bytes 
    254 ( 
    255    TXHANDLE            txh,                     // IN    TXA handle 
    256    char                option,                  // IN    option character 
    257    ULONG               def,                     // IN    default value 
    258    BYTE                mod                      // IN    b,kb,mb,gb modifier 
    259 ) 
    260 { 
    261    ULONG               rc = 0;                  // function return 
    262    BYTE                unit = TXA_DFUNIT; 
    263    TXA_OPTION         *opt;                     // option pointer 
    264  
    265    ENTER(); 
    266    TRACES(("Option: '%c' default: %8.8lx mod:%2.2hx = '%c'\n", 
    267             option, def, mod, mod)); 
    268  
    269    if ((opt = TxaOptValue( option)) != NULL)    // get the option details 
    270    { 
    271       switch (opt->type) 
    272       { 
    273          case TXA_STRING: 
    274             rc   = TxaParseNumber( opt->value.string, TX_RADIX_STD_CLASS, &unit); 
    275          case TXA_NO_VAL: 
    276             rc   = def; 
    277             break; 
    278  
    279          default:                               // convert, default is MiB! 
    280             rc   = opt->value.number; 
    281             unit = opt->unit; 
    282             break; 
    283       } 
    284    } 
    285    if (unit == TXA_DFUNIT) 
    286    { 
    287       unit = mod; 
    288    } 
    289    switch (tolower(unit)) 
    290    { 
    291       case 'g': 
    292          if (rc >= 4) 
    293          { 
    294             rc = 0xffffffff; 
    295             break; 
    296          } 
    297          else 
    298          { 
    299             rc *= 1024;                         // Giga 
    300          } 
    301       case 'm': rc *= 1024;                     // Mega 
    302       case 'k': rc *= 1024;                     // Kilo 
    303       default:  break;                          // Bytes, OK 
    304    } 
    305    RETURN (rc); 
    306 }                                               // end 'TxaParseBkmgNumber' 
    307 /*---------------------------------------------------------------------------*/ 
    308  
    309  
    310 /*****************************************************************************/ 
    311251// Read one item (option or argument) and store it in the txa element 
    312252/*****************************************************************************/ 
     
    780720   switch (tolower(unit)) 
    781721   { 
    782       case 'g': rc *= 1024;                     // Giga 
     722      case 'g': 
     723      if (rc >= 4) 
     724      { 
     725         rc = 0xffffffff;                       // limit at 4GiB -1 
     726         break; 
     727      } 
     728      else 
     729      { 
     730         rc *= 1024;                            // Giga 
     731      } 
    783732      case 'm': rc *= 1024;                     // Mega 
    784733      case 'k': rc *= 1024;                     // Kilo