Urs Liska <u...@openlilylib.org> writes: > Am 04.12.2013 15:00, schrieb Jan-Peter Voigt: >> Am 04.12.2013 14:58, schrieb Urs Liska: >>> Hi, >>> >>> next helpless question: what Scheme type is the "location" argument used >>> for Scheme functions? >>> (write)ing location gives >> Hi, its: >> ly:input-location? >> >> HTH > Unfortunately not (TH).
Wanna bet? > This is what redirects me to > > Input * > unsmob_input (SCM s) > { > if (SCM_IMP (s)) > return 0; > if (SCM_CAR (s) == (SCM)input_tag) // ugh. > return (Input *) SCM_CDR (s); > else > return 0; > } > > And that's where I get stuck. This function looks like it somehow > munges a Scheme pair or list, so I tried to access it through > (car location) > but that didn't work. Oh, that's bloody entrails you are dealing with here, the raw C++ code used for implementing a Scheme type. You don't want to go there. Not even the C++ code wants to go there more than once. > Which isn't surprising because the original (write) would have printed > something like (location "...") if it were a list, isn't it? #<...> basically means "Uh, I have no way of printing this primitive type in a way that could be read back in, but here is some information anyway." The naming consistency for input locations and their related Scheme and C++ types and print results is actually screwed up much more than any other type I can think of. It was probably implemented before Jan and Han-Wen figured out how to do things systematically. You won't learn anything useful from _this_ code. What are you trying to achieve? -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user