From f69ed7d77e59431acde302c6bc3b655a00ca4980 Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 23:22:00 +0000 Subject: [PATCH] lilypond-1.3.52 --- CHANGES | 23 +++++++++++++++--- Documentation/faq.texi | 50 +++++++++++++++++++++++++++++---------- VERSION | 2 +- lily/include/ly-smobs.icc | 13 ++++++---- 4 files changed, 67 insertions(+), 21 deletions(-) diff --git a/CHANGES b/CHANGES index af80dfea24..e18d51f048 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,22 @@ -1.3.50 +* Bugfix in smob handling. Delete the C-part of freed smobs. Be +honest about amount of allocation and deletion, so GUILE doesn't +overestimate the amount of memory. + +* Faq update: nicer blank note paper, courtesy Mats Bengtsson. + +* Bugfix: don't crash on durations that are not a power of 2. + +* Build manpages during `make all' + +* Bugfix: don't do absolute comparisons in Polynomial::clean (). + +* Bugfix: set visibility-lambda for key signature created by +createKeyOnClefChange. Fixes disappearing key signatures. + +* Bugfix: make System_start_delimiter of bar-line type invisible when +it spans only one staff. + +1.3.51 ====== * Item cleanups. Copying items and rearranging pointers are done in @@ -8,8 +26,7 @@ with some items not disappearing from hara-kiri staffs. * Use Scheme for Key_item data members. * Don't use regex in chord-names.scm under windows; hybrid chordnames - user+calculated will be partly broken. - +user+calculated will be partly broken. 1.3.50 ====== diff --git a/Documentation/faq.texi b/Documentation/faq.texi index 64232c2ae0..e523c786d8 100644 --- a/Documentation/faq.texi +++ b/Documentation/faq.texi @@ -310,22 +310,46 @@ tagline="Typeset by GNU LilyPond" @subsubsection Can I make blank manuscript paper with LilyPond? -Theoretically, yes but it is easier to do with TeX: +Theoretically, yes but it is easier to do with (La)TeX. This LaTeX file +will do the trick for you: + @example -\def\foo@{\hbox@{\vrule width 15.0cm height 0.5pt depth 0.0pt@} -\nointerlineskip -\vskip 5pt\nointerlineskip@} -\def\musicline@{\vbox @{ - \foo\foo\foo\foo\foo -@}\par@} - -\musicline -\musicline -\musicline -\musicline -\bye +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% notepaper.tex +% Mats Bengtsson, 18/5 2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\documentclass[a4paper]@{article@} + +\usepackage@{ifthen@} +\usepackage[noheadfoot,hmargin=15mm,vmargin=20mm]@{geometry@} + +\pagestyle@{empty@} + +\newcounter@{staffnumber@} +\newlength@{\interstaffline@} + +\newcommand@{\drawline@}@{\hbox@{\rule@{\textwidth@}@{0.5pt@}@} + \nointerlineskip\vskip\interstaffline\nointerlineskip@} + +\newcommand@{\printstaff@}@{\vfill + \vbox@{\drawline\drawline\drawline\drawline\drawline@} + \vfill@} + +\begin@{document@} +\typeout@{@}\typeout@{@} +\typein[\staffsize]@{Type in the staff size (20pt is a common value):@} +\setlength@{\interstaffline@}@{\staffsize@} +\setlength@{\interstaffline@}@{.25\interstaffline@} +\typeout@{@} +\typein[\num]@{Type in the number of staffs:@} +\setcounter@{staffnumber@}@{\num@} + +\mbox@{@} % To get a starting point for the \vfill +\whiledo@{\value@{staffnumber@}>0@}@{% + \printstaff \addtocounter@{staffnumber@}@{-1@}@} +\end@{document@} @end example diff --git a/VERSION b/VERSION index b5601a0786..ea5b0890e4 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 -PATCH_LEVEL=51 +PATCH_LEVEL=52 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/lily/include/ly-smobs.icc b/lily/include/ly-smobs.icc index b652432ca8..48b3120b24 100644 --- a/lily/include/ly-smobs.icc +++ b/lily/include/ly-smobs.icc @@ -56,6 +56,8 @@ CL::unsmobify_self () \ SCM_CAR(self_scm_) = SCM_EOL; \ SCM_CDR(self_scm_) = SCM_EOL; \ self_scm_ = SCM_EOL; \ +\ + scm_done_malloc ( - sizeof (CL));\ } \ \ SCM \ @@ -72,7 +74,7 @@ CL::smobify_self () \ self_scm_ = s; \ scm_protect_object (s); \ \ -/* no scm_done_malloc() ! */ \ + scm_done_malloc(sizeof(CL));\ do_smobify_self(); \ return s; \ } \ @@ -83,10 +85,13 @@ CL::free_smob (SCM ses) \ /* someone else did the deed already; this might be an automatic var.*/ \ if (s->self_scm_ != ses)\ return 0; \ +\ + /* no need to call scm_unprotect_object, since this call \ + implies that the object is not protected. */ \ SCM_CAR(ses) = SCM_EOL;\ - \ - return 0;\ -} \ + delete s;\ + return sizeof (CL);\ +} \ ADD_SCM_INIT_FUNC(CL, CL::init_smobs)\ -- 2.39.5