> Documentation question from trying to understand *location* in David's
> solution:
>  
> I found that function in the IR documentation[1], but I could not find the
> definition of a sip:
> >  
> > Function: ly:input-file-line-char-column sip
> > Return input location in sip as (file-name line char column).
> > 
> >  
>  
> Guessing, is sip a stream input pointer?  Where would I look to find the
> definition/example of sip?


Well, if you have that code snippet, you basically do #(display (*location*))
and look at the result, which is something like

#<location /tmp/frescobaldi-7wfyx79d/tmpqvfqyl7q/document.ly:3:2>

indicating that *location* doesn't return a string but a special type of
location/input object.

This is also what the "input" prefix on the function name means — functions
specific to a LilyPond object type are prefixed with ly:that-type (e.g.,
ly:grob-parent, ly:context-property, etc.).

The name "sip" is a bit weird; looking in the commit that added the code 19
years ago, it looks like it was meant as "smob input" (where smob = Scheme
object = LilyPond C++ object made available to Scheme).


Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to