Показать сообщение отдельно

  #38  
Старый 30.12.2008, 20:31
ShAnKaR
Постоянный
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме:
4646474

Репутация: 1424


По умолчанию

потом файл tsrm_virtual_cwd.c
функция virtual_file_ex:
Цитата:

free_path = path_copy = tsrm_strndup(path, path_length);

ptr = tsrm_strtok_r(path_copy, TOKENIZER_STRING, &tok);
тут TOKENIZER_STRING у меня равен "/" в винде наверно чтото другое.

файл tsrm_strtok_r.c
Цитата:
char *tsrm_strtok_r(char *s, const char *delim, char **last)
{
char *token;

if (s == NULL) {
s = *last;
}

while (*s && in_character_class(*s, delim)) {
s++;
}
if (!*s) {
return NULL;
}

token = s;

while (*s && !in_character_class(*s, delim)) {
s++;
}
if (!*s) {
*last = s;
} else {
*s = '\0';
*last = s + 1;
}
return token;
}
потом опять файл tsrm_virtual_cwd.c
функция virtual_file_ex:
и тут наверно и идет бага:
Цитата:
while (ptr) {
...

} else if (!IS_DIRECTORY_CURRENT(ptr, ptr_length)) {
...
memcpy(&state->cwd[state->cwd_length], ptr, ptr_length+1);
...
ну а символ точка это как раз и есть 'IS_DIRECTORY_CURRENT' , следовательно можно использоывать не только длинную строчку из '/' а ещё и '/.'
остается конечно не понятно почему без точки в конце не пашет

Последний раз редактировалось ShAnKaR; 30.12.2008 в 20:49..
 
Ответить с цитированием