Ignore:
Timestamp:
Sep 29, 2005 10:21:05 PM (15 years ago)
Author:
dkearney
Message:
  1. initial checkin of RpLibrary? code, includes c++/c/fortran bindings
  2. minor modifications to makefiles to accommodate new code
  3. updated README in src to tell how to compile code in src and test
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/fortran/RpFortranCommon.c

    r76 r77  
    3737}
    3838
     39std::string null_terminate_str(const char* inStr, int len)
     40{
     41    int retVal = 0;
     42    std::string newStr = "";
     43    const char* current = NULL;
     44
     45    if (inStr) {
     46
     47        current = inStr+len-1;
     48
     49        while ((len > 0) && (isspace(*(current)))) {
     50            // dont strip off newlines
     51
     52            if ( (*(current) == '\f')
     53              || (*(current) == '\n')
     54              || (*(current) == '\r')
     55              || (*(current) == '\t')
     56              || (*(current) == '\v') )
     57            {
     58                break;
     59            }
     60
     61            if (--len) {
     62                current--;
     63            }
     64        }
     65
     66        newStr = std::string(inStr,len);
     67
     68        retVal++;
     69    }
     70
     71    // return retVal;
     72
     73    return newStr;
     74}             
     75
     76
    3977void fortranify(const char* inBuff, char* retText, int retTextLen) {
    4078
     
    4280    int i = 0;
    4381
    44     inBuffLen = strlen(inBuff);
     82    if (inBuff && retText && (retTextLen > 0)) {
     83        inBuffLen = strlen(inBuff);
    4584
    46     strncpy(retText, inBuff, retTextLen);
     85        strncpy(retText, inBuff, retTextLen);
    4786
    48     // fortran-ify the string
    49     if (inBuffLen < retTextLen) {
    50         for (i = inBuffLen; i < retTextLen; i++) {
    51             retText[i] = ' ';
     87        // fortran-ify the string
     88        if (inBuffLen < retTextLen) {
     89            for (i = inBuffLen; i < retTextLen; i++) {
     90                retText[i] = ' ';
     91            }
    5292        }
    5393    }
Note: See TracChangeset for help on using the changeset viewer.