Hmm, may need to think about this. We risk adding adhoc patches on adhoc patches and painting ourselves into a corner.
Agree we should not add a new keyword just to emulate an obscure special case that is not well understood or well handled by 'ignore'. So a modifier of 'ignore' would be better, as Tarquin suggests. >extend ignore end 8 7 #or >extend ignore 8 7 end Not sure about the word 'end', as it will not always be evident which end of a loop is the 'end’. Especially where there are loops within loops or beside loops. Maybe 'force'. Not sure about that either, but the user rule of thumb could be, if 'ignore' does not work, try 'ignore force'. extend ignore force 8 7 #or extend ignore 8 7 force Maybe we should take time to think about it for a while. We have a tentative solution right now, as Stacho has found, using the combination. extend start 1 extend ignore 7 8 extend ignore 8 7 ie, if extend ignore <leg> does not work, try following it with extend ignore <reversed leg> Using Tarquin's example this gives a log like... START 1@extendedloop RIGHT 2@extendedloop RIGHT 10@extendedloop RIGHT 9@extendedloop RIGHT 8@extendedloop #ie random branch taken as far as 8 BACK 9@extendedloop BACK 10@extendedloop BACK 2@extendedloop #step back to 2 RIGHT 3@extendedloop RIGHT 4@extendedloop RIGHT 5@extendedloop RIGHT 6@extendedloop RIGHT 7@extendedloop RIGHT 11@extendedloop #at end branch 11… BACK 7@extendedloop BACK 6@extendedloop BACK 5@extendedloop BACK 4@extendedloop BACK 3@extendedloop BACK 2@extendedloop BACK 1@extendedloop #step all the way back to 1 START 8@extendedloop #auto restart at 8 RIGHT 7@extendedloop #finish the last leg done And vise versa extend start 1 extend ignore 8 7 extend ignore 7 8 START 1@extendedloop RIGHT 2@extendedloop RIGHT 10@extendedloop RIGHT 9@extendedloop RIGHT 8@extendedloop #ie random branch taken as far as 8 BACK 9@extendedloop BACK 10@extendedloop BACK 2@extendedloop #ie random branch taken as far as 8 RIGHT 3@extendedloop RIGHT 4@extendedloop RIGHT 5@extendedloop RIGHT 6@extendedloop RIGHT 7@extendedloop RIGHT 11@extendedloop #at end branch 11… BACK 7@extendedloop BACK 6@extendedloop BACK 5@extendedloop BACK 4@extendedloop BACK 3@extendedloop BACK 2@extendedloop BACK 1@extendedloop #step all the way back to 1 START 8@extendedloop#auto restart at 8 RIGHT 7@extendedloop #finish the last leg done It disturbs me that the sequence is exactly the same. I agree with Tarquin, “it smells like there will be some unpredictable hidden behaviours in there”. A question Stacho. Are extend statements processed in sequence they are written, or are they all read by Therion before Therion chooses best order to process them (as it does with survey data)? I’m suspecting the latter. Bruce -----Original Message----- From: Therion <therion-boun...@speleo.sk> On Behalf Of Tarquin Wilton-Jones via Therion Sent: Wednesday, 8 July 2020 02:42 To: therion@speleo.sk Cc: Tarquin Wilton-Jones <tarquin.wilton-jo...@ntlworld.com> Subject: Re: [Therion] Revisiting Breaking extended elevations on specific stations > Well, there is one workaround. But to be honest, I have no idea why :/ > > extend ignore 7 8 > extend ignore 8 7 Wow! First thought is; that ... really shouldn't work, and it looks almost like a bug. Maybe there is logic though, if you look at those two statements in the opposite order (which also works, by the way). Therion proceeds along 1-2-10-9-8-7-11 "Therion, please ignore 8-7" Therion breaks the survey at 8. Therion now goes: 10-9-8 8 / / 1-2-3-4-5-6-7-11 "Therion, please ignore 7-8" Therion breaks the survey at 7. It now has a floating 7-8 leg not connected to anything. So it connects it to the 10-9-8 branch, and ends up with the desired output. So maybe this is trustworthy rather than a bug? But it hurts my head to read it, and it smells like there will be some unpredictable hidden behaviours in there. > Something like: > > extend end 8 7 > > ... would be definitely better. Is it OK to implement it like that? I like that it will never clash with existing stuff. I don't like that it introduces a new keyword instead of "ignore", that does the same thing as "ignore". I would personally prefer it as a modifier rather than a keyword, for consistency: extend ignore end 8 7 extend ignore 8 7 end But others may have stronger opinions. _______________________________________________ Therion mailing list <mailto:Therion@speleo.sk> Therion@speleo.sk <https://mailman.speleo.sk/listinfo/therion> https://mailman.speleo.sk/listinfo/therion
_______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion