Index: TSRM/tsrm_virtual_cwd.c =================================================================== RCS file: /repository/TSRM/tsrm_virtual_cwd.c,v retrieving revision 1.74.2.9.2.32 diff -u -p -d -r1.74.2.9.2.32 tsrm_virtual_cwd.c --- TSRM/tsrm_virtual_cwd.c 10 Jul 2007 13:21:11 -0000 1.74.2.9.2.32 +++ TSRM/tsrm_virtual_cwd.c 19 Jul 2007 12:17:00 -0000 @@ -695,6 +695,11 @@ no_realpath: free(free_path); + if (use_realpath == CWD_EXPAND && path[path_length-1] == DEFAULT_SLASH && state->cwd[state->cwd_length] != DEFAULT_SLASH) { + state->cwd[state->cwd_length++] = DEFAULT_SLASH; + state->cwd[state->cwd_length] = '\0'; + } + if ((use_realpath == CWD_REALPATH) && ret) { CWD_STATE_FREE(state); *state = old_state; @@ -979,14 +984,14 @@ CWD_API int virtual_rename(char *oldname int retval; CWD_STATE_COPY(&old_state, &CWDG(cwd)); - if (virtual_file_ex(&old_state, oldname, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&old_state, oldname, NULL, CWD_EXPAND)) { CWD_STATE_FREE(&old_state); return -1; } oldname = old_state.cwd; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, newname, NULL, CWD_FILEPATH)) { + if (virtual_file_ex(&new_state, newname, NULL, CWD_EXPAND)) { CWD_STATE_FREE(&old_state); CWD_STATE_FREE(&new_state); return -1;