summaryrefslogtreecommitdiffstats
path: root/parse-xml.c
AgeCommit message (Collapse)Author
2011-09-01Start parsing gas mixesGravatar Linus Torvalds
The suunto xml is just completely crazy. What's the helium percentage companion to "o2pct"? Would it be "hepct"? No. It's "hepct_0". Ok, so they didn't number the first o2pct, which could be seen as sane: that's the only mix value that should always exist. And they clearly started their indexing with 0. So with multiple mixes, you'd then expect "o2pct_1" and "hepct_1", right? Wrong! Because XML people are crazy, the second O2 mix percentage is obviously "o2pct_2". So the O2 percentages are one-based, with an implicit one. But the He percentages are zero-based with an explicit zero. So the second mix is "o2pct_2" and "hepct_1". I'd like to ask what drugs Suunto people are on, but hey, it's a Finnish company. No need to ask. Vodka explains everything. LOTS AND LOTS OF VODKA. In comparison, the libdivecomputer output is nice and sane, and uses a 'gasmix' node. Of course, now we have so many different XML nesting nodes to check that I just made it an array of different noces. That also allows me to mark the suunto case, so that we only do the "check for crazy alcoholic xml entries" when it's a suunto file. The "type of file" thing is probably a good idea for deciding on default units too. Some day. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Get rid of our 'ignore' rulesGravatar Linus Torvalds
I'll start doing some kind of "save unparsed things as extended items" thing, and the ignore rules were just there to get rid of some of the noise from early parsing. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01xml parsing: start traversing properties tooGravatar Linus Torvalds
This requires us to change the way we match things up, because now we can have things like dives.dive.sample.event.time and dives.dive.sample.time and they are different things (that "sample.event.time" is a 'time' property of the 'event'). Now, this is always going to be ambiguous, since our linearized name of the xml doesn't really care whether it's a xml node "child" or a "property", but quite frankly, I don't care. XML just isn't worth the pain. In fact, maybe this ambiguity can end up being a good thing. We will parse these two different lines of XML the same way: <dive><sample><time>50</time><depth>10.8</depth></sample></dive> <dive><sample time="50" depth="10.8"></sample></dive> and the attribute approach seems to be the nicer one. Maybe I'll use that for the output format. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-01Rename some files to be more appropriateGravatar Linus Torvalds
The executable is now called 'divelog'. If this gets useful enough to actually *use*, I guess I'll have to come up with a real name some day. Add a silly README, rename 'parse' to 'parse-xml'. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>