pike.git / src / combine_path.h

version» Context lines:

pike.git/src/combine_path.h:61:   #define IS_ROOT(X, L) ( (((L) > 0) && IS_SEP( INDEX_PCHARP((X),0) ))?1:0)      #define APPEND_PATH append_path_nt   #define COMBINE_PATH combine_path_nt      #define CHAR_CURRENT '.'   #define CHAR_ROOT '/'      #endif /* NT_COMBINE_PATH */    -  - #ifdef AMIGAOS_COMBINE_PATH - #define IS_SEP(X) ( (X)=='/' ) - #define IS_ANY_SEP(X) ( (X) == '/' || (X) == ':' ) - #define IS_ABS(X, L) find_absolute2((X), (L)) - #define IS_ROOT(X, L) ( ((L) > 0) && ( INDEX_PCHARP((X),0) == CHAR_ROOT)?1:0) - #define APPEND_PATH append_path_amigaos - #define COMBINE_PATH combine_path_amigaos - #define CHAR_ROOT ':' -  - static int find_absolute2(PCHARP s, ptrdiff_t len) - { -  int r=0, p=0; -  int c; -  while((c=INDEX_PCHARP(s,p)) && (len > 0)) { -  ++p; -  --len; -  if(c == CHAR_ROOT) -  r = p; -  } -  return r>1? r:0; - } -  - #endif /* AMIGAOS_COMBINE_PATH */ -  -  +    #ifndef IS_ANY_SEP   #define IS_ANY_SEP(X) IS_SEP(X)   #endif      static void APPEND_PATH(struct string_builder *s,    PCHARP path,    size_t len)   {    size_t from=0;    int tmp, abs;
pike.git/src/combine_path.h:160:    while(1)    {   #if COMBINE_PATH_DEBUG > 1    /* s->s->str[s->s->len]=0; */    fprintf(stderr, "combine_path(2), TO: \"%s\"[%d]\n", s->s->str, s->s->len);    fprintf(stderr, "combine_path(2), FROM (%d): \"%s\"[%d]\n",    from, path.ptr+from, len - from);   #endif    if(IS_SEP(LAST_PUSHED()))    { - #ifdef AMIGAOS_COMBINE_PATH -  if(from<len && INDEX_PCHARP(path, from) == '/' && -  s->s->len>1 && !IS_ANY_SEP(index_shared_string(s->s,s->s->len-2))) { -  /* Handle "//" */ -  int tmp=s->s->len-2; -  while(tmp>0 && !IS_ANY_SEP(index_shared_string(s->s,tmp-1))) -  --tmp; -  s->s->len=tmp; -  s->known_shift=0; -  from++; -  continue; -  } - #else /* !AMIGAOS_COMBINE_PATH */ +     while(s->s->len && IS_SEP(LAST_PUSHED()))    s->s->len--;    PUSH('/');    if(from<len && INDEX_PCHARP(path, from) == '.')    {    int c3;   #if COMBINE_PATH_DEBUG > 0    /* s->s->str[s->s->len]=0; */    fprintf(stderr, "combine_path(0), TO: \"%s\"[%d]\n",    s->s->str, s->s->len);
pike.git/src/combine_path.h:239:    case 0:    case '/':   #ifdef NT_COMBINE_PATH    case '\\':   #endif    /* Handle ".". */    from++;    continue;    }    } - #endif /* !AMIGAOS_COMBINE_PATH */ +     }       if(from>=len) break;    PUSH(INDEX_PCHARP(path, from++));    }    if((s->s->len > 1) && (s->s->len > abs) &&    !IS_SEP(INDEX_PCHARP(path, from-1)) &&    IS_SEP(LAST_PUSHED()))    s->s->len--;   
pike.git/src/combine_path.h:352:    }    UNSET_ONERROR(tmp);    pop_n_elems(args);    push_string(finish_string_builder(&ret));   }         #undef COMBINE_PATH_DEBUG   #undef UNIX_COMBINE_PATH   #undef NT_COMBINE_PATH - #undef AMIGAOS_COMBINE_PATH +