2 input-smob.cc -- implement Input smob
4 source file of the GNU LilyPond music typesetter
6 (c) 2000--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
11 #include "input-smob.hh"
13 #include "ly-smobs.icc"
15 static long input_tag
;
24 print_smob (SCM s
, SCM port
, scm_print_state
*)
26 String str
= "#<location " + unsmob_input (s
)->location_str () + ">";
27 scm_puts (str
.ch_C (), port
);
32 scm_sizet
free_smob (SCM s
)
34 delete unsmob_input (s
);
41 return unsmob_input (x
) ? SCM_BOOL_T
: SCM_BOOL_F
;
45 void start_input_smobs ()
48 = scm_make_smob_type_mfpe ("input", 0,
51 scm_make_gsubr ("ly-input-location?", 1, 0, 0, (Scheme_function_unknown
)ly_input_p
);
58 Input
* nip
= new Input (ip
);
62 SCM_SETCAR (z
, (SCM
)input_tag
);
63 SCM_SETCDR (z
, (SCM
)nip
);
73 if ((long)SCM_CAR (s
) == input_tag
) // ugh.
74 return (Input
*) SCM_CDR (s
);
80 ADD_SCM_INIT_FUNC (input
, start_input_smobs
);
83 Input dummy_input_global
;