From 2fd39fbbb1ad87d1bb7ad325862711919f3e7d4c Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Fri, 23 Oct 1998 16:51:45 +0300 Subject: [PATCH] patch::: 1.1.0.jcn1: tegen nul pl 0.jcn1 pl 17.jcn7 - added: set*text, timesig, beam - guile-1.3 is fine; my egcs-1.0.2's -O2 is broken --- BUGS | 6 ++++ NEWS | 5 +++ VERSION | 2 +- init/scm.ly | 55 ++++++++++++++++++++++++++++++--- lily/include/lookup.hh | 7 ++--- lily/include/time-signature.hh | 5 +-- lily/lookup.cc | 41 ++++++++++++------------ lily/time-signature-engraver.cc | 2 +- lily/time-signature.cc | 6 ++-- tex/lilyponddefs.ps | 22 +++++++++++-- 10 files changed, 114 insertions(+), 37 deletions(-) diff --git a/BUGS b/BUGS index 054d425246..1651e800d6 100644 --- a/BUGS +++ b/BUGS @@ -9,6 +9,12 @@ Compiling with -O2 -finline-functions will cause crashes during parsing stage. +[Linux ppc, egcs-1.0.2] + +All compiling with -O2 is suspect, in particular guile-1.3, and +Lily herself will break. + + [All platforms] When dealing with beaming that is not correct (eg quarter notes in diff --git a/NEWS b/NEWS index 4cf107903c..147d1a9977 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +pl 0.jcn1 +pl 17.jcn7 + - added: set*text, timesig, beam + - guile-1.3 is fine; my egcs-1.0.2's -O2 is broken + 1.1.0 pl 18.exp diff --git a/VERSION b/VERSION index ef23e353b8..c427fb2b32 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 PATCH_LEVEL=0 -MY_PATCH_LEVEL= +MY_PATCH_LEVEL=jcn1 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/init/scm.ly b/init/scm.ly index bd27dec6f4..f576ea8875 100644 --- a/init/scm.ly +++ b/init/scm.ly @@ -44,6 +44,23 @@ (eval-string (string-append s \"-\" o))) ;;; output definitions + +(define + (beam o width slope thick) + ((invoke-output o \"beam\") width slope thick)) + +(define + (beam-ps width slope thick) + (string-append + (numbers->string (list width slope thick)) \" draw_beam \" )) + +(define + (beam-tex width slope thick) + (string-append + \"\\\\embeddedps{\" + (beam-ps width slope thick) + \"}\")) + (define (char o n) ((invoke-output o \"char\") n)) @@ -159,12 +176,12 @@ (define (generalmeter-ps num den) - (string-append num \" \" den \" generalmeter \")) + (string-append (number->string (inexact->exact num)) \" \" (number->string (inexact->exact den)) \" generalmeter \")) (define (generalmeter-tex num den) (string-append - \"\\\\generalmeter{\" num \"}{\" den \"}\")) + \"\\\\generalmeter{\" (number->string (inexact->exact num)) \"}{\" (number->string (inexact->exact den)) \"}\")) (define (header o creator generate) @@ -257,10 +274,32 @@ \"\\\\rulesym{\" (number->dim-tex x) \"}{\" (number->dim-tex y) \"}\")) (define - (setitalic o s) (empty o)) + (setbold o s) + ((invoke-output o \"text\") \"bold\" s)) + +(define + (setfinger o s) + ((invoke-output o \"text\") \"finger\" s)) (define - (settext o s) (empty o)) + (sethuge o s) + ((invoke-output o \"text\") \"huge\" s)) + +(define + (setitalic o s) + ((invoke-output o \"text\") \"italic\" s)) + +(define + (setlarge o s) + ((invoke-output o \"text\") \"large\" s)) + +(define + (setLarge o s) + ((invoke-output o \"text\") \"Large\" s)) + +(define + (settext o s) + ((invoke-output o \"text\") \"text\" s)) (define (slur o l) @@ -324,6 +363,14 @@ (stop-line-tex) \"}\\\\interscoreline\") +(define + (text-ps f s) + (string-append \"(\" s \") set\" f \" \")) + +(define + (text-tex f s) + (string-append \"\\\\set\" f \"{\" s \"}\")) + (define (urg-fix-font-ps) \"/fontA { /feta20 findfont 12 scalefont setfont} bind def fontA\n\") diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index 6b7047651d..1781679920 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -34,7 +34,7 @@ public: Atom afm_find (String) const; Atom ball (int) const; Atom bar (String, Real height) const; - Atom beam (Real,Real, Real) const; + Atom beam (Real, Real, Real) const; Atom clef (String) const; Atom dashed_slur (Array controls, Real thick, Real dash) const; Atom dots () const; @@ -44,7 +44,6 @@ public: Atom hairpin (Real width, bool decresc, bool continued) const; Atom plet (Real dy, Real dx, Direction dir) const; void print () const; - Atom ps_beam (Real slope, Real width, Real thick) const; Atom rest (int, bool outside) const; Atom rule_symbol (Real height, Real width) const; Atom script (String idx) const; @@ -54,8 +53,8 @@ public: Atom text (String style, String text) const; Atom vbrace (Real &dy) const; Atom vbracket (Real &dy) const; - Atom special_time_signature (String, Array) const; - Atom time_signature (Array) const; + Atom special_time_signature (String, Array) const; + Atom time_signature (Array) const; Paper_def * paper_l_; Symtables *symtables_p_; diff --git a/lily/include/time-signature.hh b/lily/include/time-signature.hh index ed079a29ff..55c8133d38 100644 --- a/lily/include/time-signature.hh +++ b/lily/include/time-signature.hh @@ -6,9 +6,10 @@ #ifndef METER_HH #define METER_HH + #include "item.hh" #include "array.hh" -#include "scalar.hh" +#include "real.hh" /** Print a time_signature sign. @@ -25,7 +26,7 @@ protected: virtual Molecule*brew_molecule_p() const; public: Time_signature () ; - Array args_; + Array args_; String time_sig_type_str_; DECLARE_MY_RUNTIME_TYPEINFO; diff --git a/lily/lookup.cc b/lily/lookup.cc index 9d85d63ba9..a8a4af3dd5 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -115,11 +115,17 @@ Lookup::bar (String str, Real h) const Atom Lookup::beam (Real slope, Real width, Real thick) const { - Atom a (ps_beam (slope, width, thick)); Real height = slope * width; Real min_y = (0 ? height) + thick/2; - + + Array arr; + arr.push (width); + arr.push (slope); + arr.push (thick); + + Atom a; + a.lambda_ = lambda_scm ("beam", arr); a.dim_[X_AXIS] = Interval (0, width); a.dim_[Y_AXIS] = Interval (min_y, max_y); return a; @@ -223,19 +229,26 @@ Lookup::script (String str) const } Atom -Lookup::special_time_signature (String s, Array arr) const +Lookup::special_time_signature (String s, Array arr) const { -#if 0 - String symbolname = "timesig-"+s+"%/%"; - Atom a (afm_find (lambda_scm (symbolname, arr))); + String symbolname = "timesig-" + s; + if (!arr.empty ()) + symbolname += to_str (arr[0]); + if (arr.size () >1) + symbolname += "/" + to_str (arr[1]); + + Atom a = afm_find (symbolname); if (!a.empty ()) return a; + +#if 0 //guess we covered this // Try if the full name was given a = afm_find ("timesig-"+s); if (!a.empty ()) return a; - // Resort to default layout with numbers #endif + + // Resort to default layout with numbers return time_signature (arr); } @@ -289,7 +302,7 @@ Lookup::text (String style, String text) const } Atom -Lookup::time_signature (Array a) const +Lookup::time_signature (Array a) const { Atom s ((*symtables_p_) ("param")->lookup ("time_signature")); s.lambda_ = lambda_scm (s.str_, a); @@ -370,18 +383,6 @@ Lookup::plet (Real dy , Real dx, Direction dir) const return s; } -Atom -Lookup::ps_beam (Real slope, Real width, Real thick) const -{ - String ps; - ps += to_str (width) + " "+ to_str (slope) + " " + to_str (thick) - + " draw_beam "; - - Atom s; - s.str_ = ps; - return s; -} - Atom Lookup::slur (Array controls) const { diff --git a/lily/time-signature-engraver.cc b/lily/time-signature-engraver.cc index 89e29e61ed..739bae6712 100644 --- a/lily/time-signature-engraver.cc +++ b/lily/time-signature-engraver.cc @@ -35,7 +35,7 @@ Time_signature_engraver::do_process_requests() Time_signature_change_req *req = timing_grav_l->time_signature_req_l(); if (req) { - Array args; + Array args; args.push (req->beats_i_); args.push (req->one_beat_i_); diff --git a/lily/time-signature.cc b/lily/time-signature.cc index 7e18f0e05d..edee3d9fbe 100644 --- a/lily/time-signature.cc +++ b/lily/time-signature.cc @@ -26,13 +26,13 @@ Time_signature::brew_molecule_p () const { if (time_sig_type_str_[0]=='1') { - Array tmparr=args_; - tmparr[1]=Scalar(0); + Array tmparr = args_; + tmparr[1]= 0; s = lookup_l ()->time_signature (tmparr); } else { - s = lookup_l ()-> special_time_signature (time_sig_type_str_,args_); + s = lookup_l ()-> special_time_signature (time_sig_type_str_ ,args_); } } else diff --git a/tex/lilyponddefs.ps b/tex/lilyponddefs.ps index 467dc4589a..07e3845d15 100644 --- a/tex/lilyponddefs.ps +++ b/tex/lilyponddefs.ps @@ -22,7 +22,7 @@ grestore } bind def -/settext +/settext % '(' text ')' { gsave % urg @@ -31,6 +31,24 @@ grestore } bind def +/setfinger % '(' text ')' +{ + gsave + % urg + /feta-nummer5 findfont 12 scalefont setfont + show + grestore +} bind def + +/setitalic % '(' text ')' +{ + gsave + % urg + /Times-Italic findfont 12 scalefont setfont + show + grestore +} bind def + /vrule % width height depth { gsave @@ -125,7 +143,7 @@ grestore } bind def -/draw_beam +/draw_beam % width slope thick { 2 div /beam_thick exch def /beam_slope exch def -- 2.39.2