<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>Here is an unnecessarily complete explanation:<BR>
<BR>
The problem was <BR>
Given "a../..", M3Path.FixPath wasn't doing anything. I wanted to fix that.<BR>
It would collapse "a/.." or ".a/.." or "a./.." correctly, but not "a../.."<BR>
I know people will disagree as to what is "correct" due to symlinks, but this was/is the behavior.<BR>
<BR>
Given input like "../.." it should also leave that alone, because "there is nowhere for it to go".<BR>
<BR>
In fixing "a../.." to collapse to nothing or ".", I also broke leaving "../.." alone.<BR>
<BR>
I thought the check for "is the element prior to ".." also ".."?" wasn't needed, since they get removed, left to right, and the scan is restarted for every change, but they aren't removed if "there is nowhere to go", so the check is valid. But the check wasn't right. It didn't check for a ".." element, it checked for an element ending in "..".<BR>
<BR>
NOW it should be treating them both correctly, as well as not indexing out of bounds for other input as it was doing.<BR>
I added a check that the previous element is of length 2, and "ends" "..".<BR>
<BR>
Yes, I realize that elements ending in ".." but not equal to ".." are rare and not particularly interesting.<BR>
Windows even has trouble with them:<BR>
<BR>
C:\>mkdir a.. <BR>
C:\>dir a* <BR> 02/25/2008 12:11 AM <DIR> a <BR><BR>
Huh? <BR>
<BR>
C:\>mkdir <A href="file://\\?\c:\a">\\?\c:\a</A>.. <BR>
C:\>dir a* <BR> 02/25/2008 12:11 AM <DIR> a <BR> 02/25/2008 12:12 AM <DIR> a.. <BR>
<BR>
C:\>rmdir a.. <BR>
C:\>dir a* <BR> 02/25/2008 12:12 AM <DIR> a.. <BR>
<BR>
Huh? <BR>
<BR>
- Jay<BR><BR>
<BR>
<HR id=EC_stopSpelling>
<BR>
From: jayk123@hotmail.com<BR>To: wagner@elegosoft.com<BR>Date: Sun, 24 Feb 2008 15:58:20 +0000<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] Revert cm3 to version 6 days ago<BR><BR>
<META content="Microsoft SafeHTML" name=Generator>
<STYLE>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass EC_body.hmmessage
{font-size:10pt;font-family:Tahoma;}
</STYLE>
Ok, I see:<BR><A href="http://modula3.elegosoft.com/cm3/logs/cm3-pkg-report-FreeBSD4.html#tr_m3-db-odbc" target=_blank>http://modula3.elegosoft.com/cm3/logs/cm3-pkg-report-FreeBSD4.html#tr_m3-db-odbc</A><BR><BR>It really must be:<BR><A href="http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Path.m3.diff?r1=1.14;r2=1.15" target=_blank>http://modula3.elegosoft.com/cgi-bin/cvsweb.cgi/cm3/m3-sys/cm3/src/M3Path.m3.diff?r1=1.14;r2=1.15</A><BR> <BR>The error is<BR> <BR> <BR>unable to open "/pub/users/m3/work/cm3-ws/new.elego.de-2008-02-24-13-13-31/cm3/m3-db/odbc/test/src/../odbc/FreeBSD4/.M3EXPORTS"<BR> <BR>but it should be trying to open:<BR> <BR>"/pub/users/m3/work/<FONT face="">cm3-ws</FONT>/new.elego.de-2008-02-24-13-13-31/cm3/m3-db/odbc/test/src/../../../odbc/FreeBSD4/.M3EXPORTS"<BR> <BR>or, fixed up: <BR> <BR>"/pub/users/m3/work/cm3-ws/new.elego.de-2008-02-24-13-13-31/cm3/m3-db/odbc/FreeBSD4/.M3EXPORTS"<BR> <BR>My change is making it remove two instances of .. at once or something like that.<BR>I still am not reading it fully, but this must be it.<BR> <BR>Overrides are often/usually "built down" from ROOT, but in this case they are "built up".<BR> <BR>Anyway I'm off to debug:<BR>== package C:\dev2\cm3.2\m3-obliq\obliqrt ==<BR> +++ ['cm3.exe -build -keep -DROOT=/cygdrive/C/dev2/cm3.2 -DCM3_VERSION_TEXT=d5.<BR>6.0 -DCM3_VERSION_NUMBER=050600 -DCM3_LAST_CHANGED=2008-01-31 @M3novm', 'cm3.exe<BR> -ship -keep -DROOT=/cygdrive/C/dev2/cm3.2 -DCM3_VERSION_TEXT=d5.6.0 -DCM3_VERSI<BR>ON_NUMBER=050600 -DCM3_LAST_CHANGED=2008-01-31 @M3novm'] +++<BR>--- building in NT386GNU ---<BR>ignoring ../src/m3overrides<BR>/cygdrive/C/cm3/bin/shobjcodegen -o ObValue -p -so ObValue.ReplObjStd -i ObValue<BR>Rep -T.M3IMPTAB<BR>/cygdrive/C/cm3/bin/shobjcodegen: Processing ObValue.ReplObjStd<BR>"/cygdrive/C/cm3/pkg/sharedobj/src/sharedobj.tmpl", line 49: quake runtime error<BR>: exit 35584: /cygdrive/C/cm3/bin/shobjcodegen -o ObValue -p -so ObValue.ReplObj<BR>Std -i ObValueRep -T.M3IMPTAB<BR> <BR>and I have guests coming soon too. :)<BR> <BR> - Jay<BR><BR><BR>
<HR id=EC_stopSpelling>
<BR>
<BR>> Date: Sun, 24 Feb 2008 16:32:05 +0100<BR>> From: wagner@elegosoft.com<BR>> To: jayk123@hotmail.com<BR>> CC: m3devel@elegosoft.com<BR>> Subject: RE: Revert cm3 to version 6 days ago<BR>> <BR>> Quoting Jay <jayk123@hotmail.com>:<BR>> <BR>> > Oh darn, inevitably that is not my final answer..<BR>> > more like attached..<BR>> <BR>> Jay,<BR>> <BR>> the files seem to work OK on my FreeBSD system. But the tinderbox<BR>> tests on birch and new have failed, in spite of my CVS revert;<BR>> so please don't commit anything until I have found out what is wrong.<BR>> It may take some time, because I'm expecting guests soon and won't<BR>> be able to do much until tomorrow evening.<BR>> <BR>> Olaf<BR>> <BR>> > - Jay<BR>> ><BR>> > From: jayk123@hotmail.comTo: wagner@elegosoft.comSubject: RE: Revert <BR>> > cm3 to version 6 days agoDate: Sun, 24 Feb 2008 14:20:03 +0000<BR>> ><BR>> ><BR>> > Olaf can you try the attached? Thanks, - Jay<BR>> -- <BR>> Olaf Wagner -- elego Software Solutions GmbH<BR>> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany<BR>> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95<BR>> http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin<BR>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194<BR>> <BR><BR><BR><BR>
<HR>
<BR>
Helping your favorite cause is as easy as instant messaging. You IM, we give. <A href="http://im.live.com/Messenger/IM/Home/?source=text_hotmail_join" target=_blank>Learn more.</A> <BR><br /><hr />Helping your favorite cause is as easy as instant messaging. You IM, we give. <a href='http://im.live.com/Messenger/IM/Home/?source=text_hotmail_join' target='_new'>Learn more.</a></body>
</html>