X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f Date: Thu, 17 Apr 2014 16:21:29 -0400 Message-Id: <201404172021.s3HKLTWI018066@envy.delorie.com> From: DJ Delorie To: geda-user AT delorie DOT com In-reply-to: (message from Kai-Martin Knaak on Thu, 17 Apr 2014 22:02:28 +0200) Subject: Re: [geda-user] pcb graphical objects spec References: <201404171458 DOT s3HEwG4r032541 AT envy DOT delorie DOT com> <201404171815 DOT s3HIFreo008095 AT envy DOT delorie DOT com> Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > What are the other generators? Anything a user writes that conforms to the syntax. > The only two I can come up with are footprint generators and the pcb > export of pstotext. I have some scripts that generate *.pcb files directly. > If a footprint generator generates *.pcb files that are not > consistent with the output of pcb, I'd consider this a bug. The bug > may happen to be inconsequential because pcb interprets the file in > the intended way, but still a bug. No, this is the purpose of a spec. The spec says that line separators are ignored, and both pcb and the generators honor that. Just because the spec allows for arbitrary formatting doesn't mean that we have to pick one. > So the spec is incomplete in the sense that it does not completely > cover what pcb emits and reads. It is complete in that it specifies what pcb *must* do, not what pcb *may* do. It *must* accept any input that matches the spec, but it *may* output anything that happens to meet the spec. > In other words, there is room for interpretation for third party > generators. No, there isn't. They must meet the spec too. The spec just does not mandate the placement of line separators. The generators may put them wherever they please, and pcb is required to accept that. The part that's broken is scripts that parse *.pcb files and expect things to be one-line-per-item. We've maintained that as a convenience but there's nothing in the spec that requires it. Certainly, you wouldn't want a whole Element[]() on one line!