[M3commit] CVS Update: cm3

Jay Krell jkrell at elego.de
Sat Jun 27 12:37:00 CEST 2009


CVSROOT:	/usr/cvs
Changes by:	jkrell at birch.	09/06/27 12:37:00

Modified files:
	cm3/m3-sys/cm3/src/: M3Build.m3 
	cm3/m3-sys/m3quake/src/: QMachine.m3 

Log message:
	remove dotdots more often
	
	This will let -no-m3ship-resolution work far more often (I've been using it),
	pretty up some output, and the reported problem where mkdir(foo/..) fails
	(which I just saw now, once.)
	
	Output from an instrumented Unresolve shows the problem:
	Unresolve input is "/cm3/pkg/m3core/src/word"
	Unresolve substitutes is /cm3/bin/../pkg => PKG_INSTALL
	Unresolve output is "/cm3/pkg/m3core/src/word"
	
	See, the dotdots had already been removed on the input, but
	not the substitutions.
	
	This will break unusual cases where people have dotdot
	in their paths AND symlinks en route.
	That is foo/../bar goes to just bar, losing any change that foo would have had.
	
	This was already fragile because cm3 already did remove dotdots in a
	number of places, it is just doing it more often now. (Notice again,
	the dotdots were already removed on the path actually being used,
	which was formed from the substitution, but had its dotdots already
	smushed out, whereas the original source did not.)
	
	Single dot elements will also be removed foo/./bar => foo/bar but that
	doesn't break anything I presume. (And again, they were already
	removed sometimes.)




More information about the M3commit mailing list