[Rd] Undocumented change of dirname("C:/") on R-devel on Windows

Tomas Kalibera tom@@@k@||ber@ @end|ng |rom gm@||@com
Thu Feb 23 09:15:17 CET 2023


On 2/23/23 03:27, Hiroaki Yutani wrote:
> Hi,
>
> I found dirname() behaves differently on R-devel on Windows. Since I'm not
> sure which behavior is right, let me ask here before filing this to R's
> Bigzilla.
>
> On R 4.2.2., we get
>
>      > dirname("C:/")
>      [1] "C:/"
>
> However, on R-devel (r83888), we get
>
>      > dirname("C:/")
>      [1] "."
>
> ?dirname says 'dirname returns the part of the path up to but excluding the
> last path separator, or "." if there is no path separator,' but I don't see
> how the root path is supposed to be treated based on this rule (, whether
> it's WIndows or UNIX-alike).
Thanks for spotting the difference, I've reverted to the previous 
behavior, the change was unintentional. If you spot any other suspicious 
changes in behavior in file-system operations, please report.
> What should we expect as the return value of dirname("C:/")? I feel the
> current behavior on R 4.2.2 is right, but I'd like to confirm.

I also think the old behavior is better, even though it could be argued 
whether the "/" in "C:/" is a path separator or not, and whether it is 
trailing or not. But the behavior is in line with Unix where dirname of 
"/" is also "/". Msys2 would return "C:".

If  "/" in "C:/" is a path separator but not a trailing path separator, 
then basename("C:/") should probably be "" and not "C:", and this would 
be in line with what R does on Unix. However, to be in line with Unix, I 
think the basename of "C:/" should be "C:/". Yet, Msys2 returns "C:" 
which is what R does now.

So what these functions should do on Windows is definitely tricky. In 
either case the behavior is now again as in R 4.2.2.

Best
Tomas

>
> Best,
> Yutani
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list