]> git.donarmstrong.com Git - lilypond.git/commitdiff
* Merge from stable:
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 6 Nov 2002 13:29:00 +0000 (13:29 +0000)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 6 Nov 2002 13:29:00 +0000 (13:29 +0000)
    cvs update -jlilypond_1_6_6 -jlilypond_1_6_6_1

17 files changed:
ChangeLog
Documentation/topdocs/INSTALL.texi
Documentation/user/music-glossary.tely
Documentation/user/refman.itely
Documentation/windows/installing.texi
GNUmakefile.in
THANKS
aclocal.m4
lily/main.cc
lily/rest-collision.cc
ps/music-drawing-routines.ps
python/lilylib.py
scripts/midi2ly.py
scripts/mup2ly.py
scripts/update-lily.py
stepmake/aclocal.m4
tex/lily-ps-defs.tex

index 14305d368a3ca42c05e11342c53981d619546b3e..60ad34f2198ac194f3339ade6707b5e73888fefe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2002-11-06  Jan Nieuwenhuizen  <janneke@gnu.org>
 
+       * Merge from stable:
+
+           cvs update -jlilypond_1_6_6 -jlilypond_1_6_6_1
+       
        * ly/paper16-init.ly (paperSixteen): Bugfix: set fonts instead of
        stylesheet.
 
        (schedule_lilypond_block): Implement `noquote' option for LaTeX
        mode.
 
+2002-11-03  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+       * ChangeLog: Add 1.6.6 release marker.  See below.
+
+       * stepmake/stepmake/po-targets.make: Remove --c++ option.
+
+       * scripts/midi2ly.py: Fix global syntax warnings.
+
+       * GNUmakefile.in: Generate builddir locale tree too.
+
+       * scripts/ly2dvi.py:
+       * scripts/midi2ly.py: 
+       * scripts/mup2ly.py: 
+       * scripts/update-lily.py:
+       * lily/main.cc (setup_paths): Fix for locales setup.
+
+2002-10-29  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+       * Documentation/windows/installing.texi: Soften wording about
+       necessity of becoming Administrator.  tommie@iae.nl reports this
+       does not seem to be necessary for his flavour of Windows 2000.
+       Explicitely discourage text mode mounts.
+
+2002-10-27  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * lily/rest.cc (after_line_breaking): backport dot position fix.
+
+       * lily/rest-collision.cc (do_shift): also remove dots for suicided
+       rests. Thanks to Klaus Zimmermann for finding this bug.
+
+2002-10-24  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+       * Documentation/topdocs/INSTALL.texi: Correction for broken /bin/sh.
+
+2002-10-24  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * Documentation/user/music-glossary.tely: fix links.
+
+2002-10-21  Werner Lemberg  <wl@gnu.org>
+
+       * tex/lily-ps-defs.tex (\lilypondsetdimen): Define ID macro.
+       (\lilypondpostscript): Define PS macros `lyscaleXXX' (`XXX' is the
+       scaling factor) only once and use them in the definition of
+       \embeddedps.
+       * ps/music-drawing-routines.ps (skeel): Removed.
+
+2002-10-21  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+       * stepmake/aclocal.m4: Changed 6 instances of $( ) to ` `, for
+       Solaris7, as we don't use nested $( ) constructs.
+
+2002-10-21  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * VERSION: Release 1.6.6.
+       
 2002-10-21  Jan Nieuwenhuizen  <janneke@gnu.org>
 
        * Documentation/topdocs/INSTALL.texi: Add note about using ksh for
index c96536c400cf1a1a3e4bcd938eead65c3e8eafe2..2ff60036d333891d69ea165f8c36d4271eb10dd0 100644 (file)
@@ -730,11 +730,11 @@ CFLAGS='-I /usr/pkg/include' LDFLAGS='-L/usr/pkg/lib' ./configure
 @file{/bin/sh} is not yet POSIX compliant, but @file{/bin/ksh} or bash
 is.  Please run configure like:
 @example
-        /bin/ksh -c ./configure
+        CONFIG_SHELL=/bin/ksh ksh -c ./configure
 @end example
 or
 @example
-        bash -c ./configure
+        CONFIG_SHELL=/bin/bash bash -c ./configure
 @end example
 
 @item Sparc64/Solaris 2.6, GNU make-3.77
index 9f24f0b04b2906865d1cc51b213655b9cef6de9e..5a3baae926a280912e946741030cd824691c73fb 100644 (file)
@@ -7,8 +7,8 @@
 @end html
 
 @ifhtml
-This document is also available in @uref{glossary.ps.gz,gzipped
-PostScript} and @uref{glossary.pdf,PDF}.
+This document is also available in @uref{music-glossary.ps.gz,gzipped
+PostScript} and @uref{music-glossary.pdf,PDF}.
 @end ifhtml
 
 @titlepage
index 970ab92817abff1db0216cb06848c4f9748ec032..23b02e40cb8d842e8f96335ec1dbc1be037e03ef 100644 (file)
@@ -752,23 +752,27 @@ emacsclient --no-wait +%l %f
 If you use xemacs instead of emacs, you use @code{(gnuserve-start)} in
 your @file{.emacs}, and set @code{XEDITOR} to @code{gnuclient -q +%l %f}
 
-For using Vim, set @code{XEDITOR} to @code{gvim --remote +%l %f}, or use this
-argument with xdvi's @code{-editor} option.
+For using Vim, set @code{XEDITOR} to @code{gvim --remote +%l %f}, or
+use this argument with xdvi's @code{-editor} option.
+
 @cindex NEdit
 For using NEdit, set @code{XEDITOR} to @code{nc -noask +%l %f}, or
 use this argument with xdvi's @code{-editor} option.
 
 If can also make your editor jump to the exact location of the note
-you clicked. This is only supported on Emacs. Users of version 20 must
-apply the patch @file{emacsclient.patch}. Users of version 21 must
-apply @file{server.el.patch} (version 21.2 and earlier).  At the top
-of the @code{ly} file, replace the @code{set!} line with the following
-line,
+you clicked. This is only supported on Emacs and VIM. Users of Emacs version
+20 must apply the patch @file{emacsclient.patch}. Users of version 21
+must apply @file{server.el.patch} (version 21.2 and earlier).  At the
+top of the @code{ly} file, replace the @code{set-point-and-click} line
+with the following line,
 @example
 #(ly:set-point-and-click 'line-column)
 @end example
 @cindex line-colomn-location
-and set @code{XEDITOR} to @code{emacsclient --no-wait +%l:%c %f}.
+and set @code{XEDITOR} to @code{emacsclient --no-wait +%l:%c %f}.  Vim
+users can set @var{XEDITOR} to @code{gvim --remote +:%l:norm%c| %f}.
+
+
 
 @refbugs
 
index 9f7c4c9b08bbb3a3dfce5fe0b9e0bd5a1f16922e..40bdc9ac96850e02a133d128b38ca67a77a26fe8 100644 (file)
@@ -31,11 +31,13 @@ The binary LilyPond setup for Windows is in fact a
 @uref{http://cygwin.com, Cygwin} installation, including the LilyPond
 package for Cygwin.
 
-If you run Windows NT, 2000 or XP, please become administrator first
-(currently, installing as an ordinary user will not work).  Download
-and run @uref{http://cygwin.com/setup.exe, setup.exe}.  You will be
-asked some questions.  If you are unsure just click "Next".  Do not
-change the default install directory @file{c:/cygwin}.
+If you run Windows NT, 2000 or XP, please become administrator first;
+installing as an ordinary user does not seem to work on certain
+Windows-NT variants.  Download and run
+@uref{http://cygwin.com/setup.exe, setup.exe}.  You will be asked some
+questions.  If you are unsure just click "Next".  Do not change the
+default install directory @file{c:/cygwin}.  Do not change the default
+text type @samp{UNIX}, i.e., do not use @samp{DOS} mounts.
 
 In the Package View dialogue window, click on the Publishing section
 to view the available publishing software for Cygwin.  Make sure that
index 275b232952ba67e2e899ad8c217c839ef70dad39..fd2292d8aa3178537d5409a675dfeb58cc336ace 100644 (file)
@@ -126,6 +126,10 @@ default: $(config_h) builddir-setup
 
 builddir-setup: $(builddir)/share/lilypond-force
 
+PO_FILES = $(wildcard $(srcdir)/po/*.po)
+HELP_CATALOGS = $(PO_FILES:$(srcdir)/po/%.po=%)
+CATALOGS = $(HELP_CATALOGS:lilypond=) 
+
 $(builddir)/share/lilypond-force:
 # Preparing LilyPond tree for builddir exec
        cd $(builddir) && rm -rf share
@@ -149,6 +153,10 @@ $(builddir)/share/lilypond-force:
                ln -s ../../../mf/$(outconfbase) afm && \
                ln -s ../../../mf/$(outconfbase) tfm && \
                ln -s ../../../mf/$(outconfbase) type1
+       $(foreach i,$(CATALOGS), \
+               mkdir -p $(builddir)/share/locale/$i/LC_MESSAGES && \
+               cd $(builddir)/share/locale/$i/LC_MESSAGES && \
+               ln -fs ../../../../po/$(outconfbase)/$i.mo lilypond.mo &&) true
        touch $@
 
 local-clean: builddir-setup-clean
diff --git a/THANKS b/THANKS
index 505ed74f147dd5850ccb277b57d282466a45c8f9..6a90e7a25de951e056793a3e03c6823b3610cd79 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -17,3 +17,4 @@ Karl-Johan Karlsson
 Karl Berry
 Werner Lemberg
 Thomas Rijniers
+Klaus Zimmermann
index 19c2947aab816b492279d283d1283bb43d02fa84..e448f2e47aa26476d5a17b99d8513773b21ec33d 100644 (file)
@@ -1,6 +1,6 @@
 dnl aclocal.m4   -*-shell-script-*-
 dnl WARNING WARNING WARNING
-dnl do not edit! this is aclocal.m4, generated from /users/hanwen/usr/src/lilypond/stepmake/aclocal.m4
+dnl do not edit! this is aclocal.m4, generated from /home/fred/lily/stepmake/aclocal.m4
 dnl aclocal.m4   -*-shell-script-*-
 dnl StepMake subroutines for configure.in
 
@@ -250,10 +250,10 @@ AC_DEFUN(STEPMAKE_DATADIR, [
     local_package_datadir=$package_datadir/$FULL_VERSION
     build_package_datadir=$builddir/share/$package
     
-    DATADIR=$(echo ${datadir} | sed "s!\\\${prefix}!$presome!")
-    PACKAGE_DATADIR=$(echo ${package_datadir} | sed "s!\\\${prefix}!$presome!")
-    LOCAL_PACKAGE_DATADIR=$(echo ${local_package_datadir} | sed "s!\\\${prefix}!$presome!")
-    BUILD_PACKAGE_DATADIR=$(echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!")
+    DATADIR=`echo ${datadir} | sed "s!\\\${prefix}!$presome!"`
+    PACKAGE_DATADIR=`echo ${package_datadir} | sed "s!\\\${prefix}!$presome!"`
+    LOCAL_PACKAGE_DATADIR=`echo ${local_package_datadir} | sed "s!\\\${prefix}!$presome!"`
+    BUILD_PACKAGE_DATADIR=`echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!"`
     
     AC_SUBST(datadir)
     AC_SUBST(package_datadir)
@@ -344,7 +344,7 @@ AC_DEFUN(STEPMAKE_GETTEXT, [
     if test "$prefix" = "NONE"; then
            presome=${ac_default_prefix}
     fi
-    LOCALEDIR=$(echo ${localedir} | sed "s!\\\${prefix}!$presome!")
+    LOCALEDIR=`echo ${localedir} | sed "s!\\\${prefix}!$presome!"`
     
     AC_SUBST(localedir)
     AC_DEFINE_UNQUOTED(LOCALEDIR, "${LOCALEDIR}")
@@ -565,16 +565,18 @@ AC_DEFUN(STEPMAKE_INIT, [
 
     STEPMAKE_PROGS(TAR, tar, REQUIRED)
 
-    if test "x`uname`" = "xHP-UX"; then
-       AC_PATH_PROG(BASH, bash, /bin/sh)
+    if test "$(echo 2)" != "2" ||
+       test "x`uname`" = "xHP-UX"; then
+       AC_PATH_PROG(KSH, ksh, /bin/ksh)
+       AC_PATH_PROG(BASH, bash, $KSH)
        STEPMAKE_WARN(avoiding buggy /bin/sh)
-       AC_PATH_PROG(SHELL, bash, /bin/ksh)
+       AC_PATH_PROG(SHELL, bash, $KSH)
     else
-       AC_PATH_PROG(BASH, bash, /bin/sh)
        SHELL=/bin/sh
-       AC_SUBST(SHELL)
+       AC_PATH_PROG(BASH, bash, $SHELL)
     fi
-
+    AC_SUBST(SHELL)
+    
     STEPMAKE_PATH_PROG(PYTHON, python, REQUIRED)
 
     if expr "$MAKE" : '.*\(echo\)' >/dev/null; then
@@ -693,7 +695,7 @@ AC_DEFUN(STEPMAKE_LIBTOOL, [
     REVISION=$PATCH_LEVEL
     # CURRENT=$MINOR_VERSION
     CURRENT=`expr $MINOR_VERSION + 1`
-    # AGE=$(expr $MAJOR_VERSION + 1)
+    # AGE=`expr $MAJOR_VERSION + 1`
     AGE=$MAJOR_VERSION
     AC_SUBST(CURRENT)
     AC_SUBST(REVISION)
index 20ecf6153299b468392f5ad5d8c34feeccf3cfc7..16446cc8b3e38fdfb9df9634fa0077aacf70234a 100644 (file)
@@ -231,23 +231,14 @@ setup_paths ()
     prefix_directory[1] = lilypond_prefix;
 
 #if HAVE_GETTEXT
-  setlocale (LC_ALL, ""); /* enable locales */
-  setlocale (LC_NUMERIC, "C"); /* musn't have comma's in TeX output... */
+  /* Enable locales */
+  setlocale (LC_ALL, "");
+  /* Mustn't have commas in TeX output... */
+  setlocale (LC_NUMERIC, "C");
   String lily_locale_dir;
   String name (PACKAGE);
   name.to_lower ();
-
-  /*
-    urg; what *do* we want with $LILYPONDPREFIX, DIR_DATADIR and $prefix/share
-    handy for multiple source-dir runs, though...
-   */
-  if (!String (prefix_directory[0]).empty_b ())
-    {
-      lily_locale_dir = String (prefix_directory[0]) + "/share/locale";
-      bindtextdomain (name.to_str0 (), lily_locale_dir.to_str0 ());
-    }
-  else
-    bindtextdomain (name.to_str0 (), LOCALEDIR);
+  bindtextdomain (name.to_str0 (), LOCALEDIR);
   textdomain (name.to_str0 ());
 #endif
 
index 3950585da3e54cbb1c808c7a4d47c1aa2fabfbc1..47c8d51f08c5f438bd2e6f3a58eeda5ea28f8d02 100644 (file)
@@ -140,7 +140,12 @@ Rest_collision::do_shift (Grob *me)
              Grob* r = unsmob_grob (rests[i-1]->get_grob_property ("rest"));
 #if 1
              if (r)
-               r->suicide ();
+               {
+                 Grob * d = unsmob_grob (r->get_grob_property ("dot"));
+                 if (d)
+                   d->suicide();
+                 r->suicide ();
+               }
              rests[i-1]->suicide ();
 #else
              if (r)
index b5796e11d283e4872edb6f5226eaa82d68b0fae1..114669bbb6386f92309baba809df526dfd66116b 100644 (file)
@@ -4,9 +4,6 @@
 
 /blot-diameter { lilypondpaperblotdiameter } bind def
 
-% fucking redhat xdvi patch.
-/skeel { scale } bind def
-
 /set_tex_dimen {
        cvr def     
 } bind def
index d9250f0807ad0079c94bbb385c55ea6750107a23..683585d0a8ec6758e96d762b3f516420afb7d301 100644 (file)
@@ -86,6 +86,7 @@ try:
 except:
        pass
 
+localedir = '@localedir@'
 try:
        import gettext
        gettext.bindtextdomain ('lilypond', localedir)
index ea47e1583576a86262b90ee803a8d5eff974fef7..a6c3acd926a19f279b9c60415b6967d3e083b6cd 100644 (file)
@@ -4,8 +4,8 @@
 # 
 # source file of the GNU LilyPond music typesetter
 #
-# convert MIDI to LilyPond source
-#
+# (c) 1998--2002  Han-Wen Nienhuys <hanwen@cs.uu.nl>
+#                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
 '''
@@ -430,6 +430,7 @@ class Note:
                return (o, n, a)
                
        def dump (self):
+               global reference_note
                s = chr ((self.notename + 2)  % 7 + ord ('a'))
                s = s + self.alteration_names[self.alteration + 2]
                if absolute_p:
@@ -450,10 +451,10 @@ class Note:
                        s = s + "," * -commas
 
                if explicit_durations_p \
-                  or Duration.compare (self.duration, reference_note.duration):
+                  or Duration.compare (self.duration,
+                                       reference_note.duration):
                        s = s + self.duration.dump ()
 
-               global reference_note
                reference_note = self
                
                # TODO: move space
@@ -1051,13 +1052,10 @@ for opt in options:
 
 
        elif o == '--absolute-pitches' or o == '-a':
-               global absolute_p
                absolute_p = 1
        elif o == '--duration-quant' or o == '-d':
-               global duration_quant
                duration_quant = string.atoi (a)
        elif o == '--explicit-durations' or o == '-e':
-               global explicit_durations_p
                explicit_durations_p = 1
        elif o == '--key' or o == '-k':
                (alterations, minor) = map (string.atoi, string.split (a + ':0', ':'))[0:2]
@@ -1067,7 +1065,6 @@ for opt in options:
                        sharps = alterations
                else:
                        flats = - alterations
-               global key
                key = Key (sharps, flats, minor)
        elif o == '--start-quant' or o == '-s':
                start_quant = string.atoi (a)
index da3a43be25ca717202027999b3ce649058871018..88868a8e03f5f13f5c4468add89df1f0bf24fd45 100644 (file)
@@ -55,9 +55,10 @@ errorport = sys.stderr
 keep_temp_dir_p = 0
 verbose_p = 0
 
+localedir = '@localedir@'
 try:
        import gettext
-       gettext.bindtextdomain ('lilypond', '@localedir@')
+       gettext.bindtextdomain ('lilypond', localedir)
        gettext.textdomain ('lilypond')
        _ = gettext.gettext
 except:
index 8c3ab757a5260667017d77ce359676e96b1a2cd5..224601e3edd779e513843fb280100146db7df806 100644 (file)
@@ -54,10 +54,10 @@ release_dir = build_root + '/releases'
 patch_dir = build_root + '/patches'
 symlink_name = ''
 
-
+localedir = '@localedir@'
 try:
        import gettext
-       gettext.bindtextdomain ('lilypond', '@localedir@')
+       gettext.bindtextdomain ('lilypond', localedir)
        gettext.textdomain ('lilypond')
        _ = gettext.gettext
 except:
index 3a3257072df1b385bee2dcd1bc5c9f4c7c2840d6..603ea8b49d978a333d6e0c6a7b73d1b99435425d 100644 (file)
@@ -247,10 +247,10 @@ AC_DEFUN(STEPMAKE_DATADIR, [
     local_package_datadir=$package_datadir/$FULL_VERSION
     build_package_datadir=$builddir/share/$package
     
-    DATADIR=$(echo ${datadir} | sed "s!\\\${prefix}!$presome!")
-    PACKAGE_DATADIR=$(echo ${package_datadir} | sed "s!\\\${prefix}!$presome!")
-    LOCAL_PACKAGE_DATADIR=$(echo ${local_package_datadir} | sed "s!\\\${prefix}!$presome!")
-    BUILD_PACKAGE_DATADIR=$(echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!")
+    DATADIR=`echo ${datadir} | sed "s!\\\${prefix}!$presome!"`
+    PACKAGE_DATADIR=`echo ${package_datadir} | sed "s!\\\${prefix}!$presome!"`
+    LOCAL_PACKAGE_DATADIR=`echo ${local_package_datadir} | sed "s!\\\${prefix}!$presome!"`
+    BUILD_PACKAGE_DATADIR=`echo ${build_package_datadir} | sed "s!\\\${prefix}!$presome!"`
     
     AC_SUBST(datadir)
     AC_SUBST(package_datadir)
@@ -341,7 +341,7 @@ AC_DEFUN(STEPMAKE_GETTEXT, [
     if test "$prefix" = "NONE"; then
            presome=${ac_default_prefix}
     fi
-    LOCALEDIR=$(echo ${localedir} | sed "s!\\\${prefix}!$presome!")
+    LOCALEDIR=`echo ${localedir} | sed "s!\\\${prefix}!$presome!"`
     
     AC_SUBST(localedir)
     AC_DEFINE_UNQUOTED(LOCALEDIR, "${LOCALEDIR}")
@@ -562,16 +562,18 @@ AC_DEFUN(STEPMAKE_INIT, [
 
     STEPMAKE_PROGS(TAR, tar, REQUIRED)
 
-    if test "x`uname`" = "xHP-UX"; then
-       AC_PATH_PROG(BASH, bash, /bin/sh)
+    if test "$(echo 2)" != "2" ||
+       test "x`uname`" = "xHP-UX"; then
+       AC_PATH_PROG(KSH, ksh, /bin/ksh)
+       AC_PATH_PROG(BASH, bash, $KSH)
        STEPMAKE_WARN(avoiding buggy /bin/sh)
-       AC_PATH_PROG(SHELL, bash, /bin/ksh)
+       AC_PATH_PROG(SHELL, bash, $KSH)
     else
-       AC_PATH_PROG(BASH, bash, /bin/sh)
        SHELL=/bin/sh
-       AC_SUBST(SHELL)
+       AC_PATH_PROG(BASH, bash, $SHELL)
     fi
-
+    AC_SUBST(SHELL)
+    
     STEPMAKE_PATH_PROG(PYTHON, python, REQUIRED)
 
     if expr "$MAKE" : '.*\(echo\)' >/dev/null; then
@@ -690,7 +692,7 @@ AC_DEFUN(STEPMAKE_LIBTOOL, [
     REVISION=$PATCH_LEVEL
     # CURRENT=$MINOR_VERSION
     CURRENT=`expr $MINOR_VERSION + 1`
-    # AGE=$(expr $MAJOR_VERSION + 1)
+    # AGE=`expr $MAJOR_VERSION + 1`
     AGE=$MAJOR_VERSION
     AC_SUBST(CURRENT)
     AC_SUBST(REVISION)
index 71e31e8aabc6aadcf9f58ddc710e51b82a66d6d2..8a4522a2e72048a8fe547e359ee2afc80d890ccf 100644 (file)
@@ -6,30 +6,46 @@
 % Header info (macros/defs, etc) should go into a \special{! ... };
 % note the ! sign.  See dvips.info for details.
 %
-% Escape the colon with \string to avoid problems with French while using
-% the Babel package.
+% We protect punctuation characters with \string to avoid problems with
+% language specific shorthands (e.g. `:' for French, `"' for German, etc.).
 
 \gdef\lilypondsetdimen#1{
-  \expandafter\special{
-    ! /#1 (\csname #1\endcsname) set_tex_dimen
+  \expandafter\gdef\csname #1ps\endcsname{}
+  \special{
+    \string!
+    /#1 (\csname #1\endcsname) set_tex_dimen
   }
 }
 
 \gdef\lilypondspace{ }
 
 \gdef\lilypondpostscript{
-  % This sets CTM so that you get to the currentpoint
-  % by executing a 0 0 moveto
+  % A document processed with lilypond-book can contain music fragments in
+  % different sizes.  To reduce overhead, we define `lyscaleXXX' PS macros
+  % only once.
+  \lilypondifundefined{lyscale\lilypondpaperoutputscale}
+    {
+      \expandafter\gdef\csname lyscale\lilypondpaperoutputscale\endcsname{}
+      % This sets CTM so that you get to the currentpoint
+      % by executing a 0 0 moveto
+      \special{
+        \string!
+        /lyscale\lilypondpaperoutputscale
+          {\lilypondpaperoutputscale\lilypondspace\scaletounit %
+           dup scale} def
+      }
+    }
+    {}
+                      
   \def\embeddedps##1{
     \special{
-      ps\string: @beginspecial @setspecial %
-                 \lilypondpaperoutputscale\lilypondspace\scaletounit %
-                 \lilypondpaperoutputscale\lilypondspace\scaletounit %
-                 % FUCKING REDHAT XDVI -- ARG!
-                 skeel ##1 @endspecial
-    }
+      \string"
+      lyscale\lilypondpaperoutputscale\lilypondspace ##1}
   }
-  \lilypondsetdimen{lilypondpaperblotdiameter}
+
+  \lilypondifundefined{lilypondpaperblotdiameterps}
+    {\lilypondsetdimen{lilypondpaperblotdiameter}}
+    {}
 }
 
 \gdef\lilypondexperimentalfeatures{}