Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Fix to the pathname simplifer logic. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
d31c0f9c29b27aa9deaae9adde86a94c |
| User & Date: | drh 2008-11-21 22:16:08.000 |
Context
|
2008-11-22
| ||
| 10:12 | Added some text to index.wiki pointing new users at anonymous login to see links. check-in: 927da3300f user: kejoki tags: trunk | |
|
2008-11-21
| ||
| 22:16 | Fix to the pathname simplifer logic. check-in: d31c0f9c29 user: drh tags: trunk | |
|
2008-11-20
| ||
| 23:19 | Another attempt to get the /home to /login redirection correct. check-in: 0a523be389 user: drh tags: trunk | |
Changes
Changes to src/file.c.
| ︙ | ︙ | |||
205 206 207 208 209 210 211 | } /* ** Simplify a filename by ** ** * removing any trailing and duplicate / ** * removing /./ | | > | | 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 |
}
/*
** Simplify a filename by
**
** * removing any trailing and duplicate /
** * removing /./
** * removing /A/../
**
** Changes are made in-place. Return the new name length.
*/
int file_simplify_name(char *z, int n){
int i, j;
while( n>1 && z[n-1]=='/' ){ n--; }
for(i=j=0; i<n; i++){
if( z[i]=='/' ){
if( z[i+1]=='/' ) continue;
if( z[i+1]=='.' && i+2<n && z[i+2]=='/' ){
i += 1;
continue;
}
if( z[i+1]=='.' && i+3<n && z[i+2]=='.' && z[i+3]=='/' ){
while( j>0 && z[j-1]!='/' ){ j--; }
if( j>0 ){ j--; }
i += 2;
continue;
}
}
z[j++] = z[i];
}
z[j] = 0;
return j;
|
| ︙ | ︙ |