setup.c: Prepare for Windows directory separators.

This turns two switch/case statements into an if-else-if cascade because
we later do not want to have

        case '/':
    #ifdef __MINGW32__
        case '\\':
    #endif

but use a predicate is_dir_sep(foo) in order to check for the directory
separator.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
maint
Johannes Sixt 2008-03-01 21:11:14 +01:00
parent 80ba074f41
commit 4cd148d83f
1 changed files with 5 additions and 8 deletions

13
setup.c
View File

@ -26,24 +26,21 @@ static int sanitary_path_copy(char *dst, const char *src)
* (4) "../" -- strip one, eat slash and continue. * (4) "../" -- strip one, eat slash and continue.
*/ */
if (c == '.') { if (c == '.') {
switch (src[1]) { if (!src[1]) {
case '\0':
/* (1) */ /* (1) */
src++; src++;
break; } else if (src[1] == '/') {
case '/':
/* (2) */ /* (2) */
src += 2; src += 2;
while (*src == '/') while (*src == '/')
src++; src++;
continue; continue;
case '.': } else if (src[1] == '.') {
switch (src[2]) { if (!src[2]) {
case '\0':
/* (3) */ /* (3) */
src += 2; src += 2;
goto up_one; goto up_one;
case '/': } else if (src[2] == '/') {
/* (4) */ /* (4) */
src += 3; src += 3;
while (*src == '/') while (*src == '/')