Changeset 3638 for trunk/lang/octave


Ignore:
Timestamp:
Apr 26, 2013 5:28:07 AM (8 years ago)
Author:
gah
Message:

fix ruby getstring for binary strings

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lang/octave/src/rpLibGetString.cc

    r1844 r3638  
    4141    octave_value_list retval;
    4242    int err = 1;
    43     int nargin = args.length ();
    44     std::string path = "";
    45     int libHandle = 0;
    46     RpLibrary* lib = NULL;
     43    int argc;
    4744    std::string retStr = "";
    4845
    49     if (nargin == 2) {
    50 
    51         if (    args(0).is_real_scalar () &&
    52                 args(1).is_string      ()   ) {
     46    argc = args.length();
     47    if (argc == 2) {
     48        if ((args(0).is_real_scalar()) && (args(1).is_string())) {
     49            std::string path;
     50            int libHandle;
    5351
    5452            libHandle = args(0).int_value ();
     53
    5554            path = args(1).string_value ();
    56 
    5755            /* Call the C subroutine. */
    5856            // path can be an empty string
    59             if ( (libHandle >= 0) ) {
     57            if (libHandle >= 0) {
     58                RpLibrary* lib;
    6059
    6160                lib = (RpLibrary*) getObject_Void(libHandle);
    62 
    63                 if (lib) {
    64                     retStr = lib->getString(path);
    65                     err = 0;
     61                if (lib != NULL) {
     62                    retval(0) = lib->getString(path);
     63                    retval(1) = 0;
     64                    return retval;
    6665                }
    67                 else {
    68                     // lib was null (not found in dictionary)
    69                 }
     66            } else {
     67                // invalid libHandle
     68                _PRINT_USAGE(who.c_str());
    7069            }
    71             else {
    72                 // invalid libHandle
    73                 _PRINT_USAGE (who.c_str());
    74             }
     70        } else {
     71            // wrong arg types
     72            _PRINT_USAGE(who.c_str());
    7573        }
    76         else {
    77             // wrong arg types
    78             _PRINT_USAGE (who.c_str());
    79         }
     74    } else {
     75        // wrong number of args.
     76        _PRINT_USAGE(who.c_str());
    8077    }
    81     else {
    82         // wrong number of args.
    83         _PRINT_USAGE (who.c_str());
    84     }
    85 
    8678    retval(0) = retStr;
    87     retval(1) = err;
     79    retval(1) = 1;
    8880    return retval;
    8981}
Note: See TracChangeset for help on using the changeset viewer.