[patch] TODO for 4.6.1: ./file in tar archive

Roland Illig roland.illig at gmx.de
Wed Oct 20 19:43:34 UTC 2004


Leonard den Ottolander wrote:
>  	    q = current_file_name;
> -	    /* FIXME: should be q = vfs_normalize_dir(q) */
>  	    while (q[0] == '.' && q[1] == '/')
>  	        q += 2;
>  	    if (*q == '.' && *(q+1) == '\0')
> -	        q = "";
> +	        q++;

Well, that's hard to decide. ;) I just discovered that some lines above 
the same idiom (str += strlen(str)) is used. The fine points of the 
semantic are:

 >>> q++ <<<
We actually have (and it is important that it is) a pointer to the pathname.

 >>> q = "" <<<
q will be assigned an empty string.

Personally, I prefer the second one, as we don't care to which empty 
string q points.

> +	canonicalize_pathname(q);

The function canonicalize_pathname is not suited to the problem. We 
should split it into two functions:

1. canonicalize_pathname_but_preserve_UNC()
2. canonicalize_unix_pathname

Then we can use canonicalize_unix_pathname to do the job.

As UNC pathnames have nothing to do with Unix I wonder how the function 
has found its way into util*unix*.c.

Roland



More information about the mc-devel mailing list