Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Python/getcwd.c

    r2 r391  
    2727getcwd(char *buf, int size)
    2828{
    29         char localbuf[MAXPATHLEN+1];
    30         char *ret;
    31        
    32         if (size <= 0) {
    33                 errno = EINVAL;
    34                 return NULL;
    35         }
    36         ret = getwd(localbuf);
    37         if (ret != NULL && strlen(localbuf) >= (size_t)size) {
    38                 errno = ERANGE;
    39                 return NULL;
    40         }
    41         if (ret == NULL) {
    42                 errno = EACCES; /* Most likely error */
    43                 return NULL;
    44         }
    45         strncpy(buf, localbuf, size);
    46         return buf;
     29    char localbuf[MAXPATHLEN+1];
     30    char *ret;
     31
     32    if (size <= 0) {
     33        errno = EINVAL;
     34        return NULL;
     35    }
     36    ret = getwd(localbuf);
     37    if (ret != NULL && strlen(localbuf) >= (size_t)size) {
     38        errno = ERANGE;
     39        return NULL;
     40    }
     41    if (ret == NULL) {
     42        errno = EACCES; /* Most likely error */
     43        return NULL;
     44    }
     45    strncpy(buf, localbuf, size);
     46    return buf;
    4747}
    4848
     
    5858getcwd(char *buf, int size)
    5959{
    60         FILE *fp;
    61         char *p;
    62         int sts;
    63         if (size <= 0) {
    64                 errno = EINVAL;
    65                 return NULL;
    66         }
    67         if ((fp = popen(PWD_CMD, "r")) == NULL)
    68                 return NULL;
    69         if (fgets(buf, size, fp) == NULL || (sts = pclose(fp)) != 0) {
    70                 errno = EACCES; /* Most likely error */
    71                 return NULL;
    72         }
    73         for (p = buf; *p != '\n'; p++) {
    74                 if (*p == '\0') {
    75                         errno = ERANGE;
    76                         return NULL;
    77                 }
    78         }
    79         *p = '\0';
    80         return buf;
     60    FILE *fp;
     61    char *p;
     62    if (size <= 0) {
     63        errno = EINVAL;
     64        return NULL;
     65    }
     66    if ((fp = popen(PWD_CMD, "r")) == NULL)
     67        return NULL;
     68    if (fgets(buf, size, fp) == NULL || pclose(fp) != 0) {
     69        errno = EACCES; /* Most likely error */
     70        return NULL;
     71    }
     72    for (p = buf; *p != '\n'; p++) {
     73        if (*p == '\0') {
     74            errno = ERANGE;
     75            return NULL;
     76        }
     77    }
     78    *p = '\0';
     79    return buf;
    8180}
    8281
Note: See TracChangeset for help on using the changeset viewer.