Gilles THIBAULT wrote >>one way to make point and click work on windows xp follows [...] > ... > Eluze
Hello, in relation to issue 3306 [http://code.google.com/p/lilypond/issues/detail?id=3306] I analized the point-and-click problem on my Win7/64 computer. (Why does it not work out of the box after installation?) *Here the result:* The registry entry for point-and-click after the setup of version 2.17.15 and 2.17.16: HKEY_CLASSES_ROOT\textedit\shell\open\command (type REG_EXPAND_SZ) has value »"$INSTDIR\usr\bin\guile.exe" -e main -s "$INSTDIR\usr\bin\lilypond-invoke-editor.scm" "%1"« where $INSTDIR is the installation directory *1. *File »$INSTDIR/usr/bin/lilypond-invoke-editor.scm« does not exist. The correct file name is without the extension ».scm«. *2. *I placed this 7-line minimal script at »$INSTDIR/usr/bin/lilypond-invoke-editor.scm«: / #!/home/gub/gub/target/tools/root/usr/bin/guile -s !# (define (main args) (for-each display (list "\ncommandline = '" args "'\n")) (system "pause")) (main (command-line))/ This did show, it's executed twice. Removing the option »-e main« will it only make executed once. *==> corrected registry entry:* »"*$INSTDIR\usr\bin\guile.exe" -s "$INSTDIR\usr\bin\lilypond-invoke-editor" "%1"*« this corresponds to the header line (for UNIX) of this lilypond-invoke-editor script. Bug in the script file $INSTDIR/usr/bin/lilypond-invoke-editor: *3. *For testing I executed it in the command shell. I got the error message »ERROR: no code for module (scm editor)«, because »LILYPOND_DATADIR« (which extends the »%load-path«) points to »$INSTDIR\usr/share/lilypond/2.17.16« (resp. 2.17.15), but this directory does not exist on a windows installation, the last element of the path is called »current« instead. *==> *move »(define PLATFORM before »(define LILYPOND_DATADIR conditionaly use »"current"« instead of »TOPLEVEL-VERSION« for definition of LILYPOND_DATADIR if the PLATFORM is »'windows« Then it will find module »$INSTDIR/usr/share/lilypond/current/scm/editor.scm« to load *Modifications to $INSTDIR/usr/bin/lilypond-invoke-editor:*+ (define PLATFORM /+ (string->symbol + (string-downcase + (car (string-tokenize (vector-ref (uname) 0) char-set:letter))))) + (define PROGRAM-NAME "lilypond-invoke-editor") (define TOPLEVEL-VERSION "2.17.16") (define DATADIR "/usr/share") (define COMPILE-TIME-PREFIX (format #f "~a/lilypond/~a" DATADIR TOPLEVEL-VERSION)) ;; argv0 relocation -- do in wrapper? (define LILYPOND_DATADIR (let* ((prefix (or (getenv "LILYPOND_DATADIR") (dirname (dirname (car (command-line))))))) (if (eq? prefix (dirname DATADIR)) COMPILE-TIME-PREFIX (format #f "~a/share/lilypond/~a" - prefix TOPLEVEL_VERSION)))) + prefix + (if (eq? PLATFORM 'windows) + "current" + TOPLEVEL-VERSION))))) ... - (define PLATFORM - (string->symbol - (string-downcase - (car (string-tokenize (vector-ref (uname) 0) char-set:letter))))) -/ There is another lilypad usage problem which may be tuned by a modification in »$INSTDIR/usr/share/lilypond/current/scm/editor.scm«: *4. *If you enable the option »-e main« again in the registry settings, you will notice the scripts waits until lilypad terminates, and due to this option it will open lilypad again and wait until it terminates again. Even without the option »-e main« in the registry command line and started form a GUI application there are three more processes running and waiting until lilypad terminates. *==> *in the »editor-command-template-alist« prefix the lilypad command with »start « to launch lilypad in the background (equivalent to appending »&« on UNIX) if the PLATFORM is »'windows«. /NOTICE: this file editor.scm is also loaded by lily.scm, but I havn't seen any effect caused by this modification./ *Modifications to $INSTDIR/usr/share/lilypond/current/scm/editor.scm:* / (define editor-command-template-alist - '(("emacs" . "emacsclient --no-wait +%(line)s:%(column)s %(file)s || (emacs +%(line)s:%(column)s %(file)s&)") + `(("emacs" . "emacsclient --no-wait +%(line)s:%(column)s %(file)s || (emacs +%(line)s:%(column)s %(file)s&)") ("gvim" . "gvim --remote +:%(line)s:norm%(column)s %(file)s") ("uedit32" . "uedit32 %(file)s -l%(line)s -c%(char)s") ("nedit" . "nc -noask +%(line)s %(file)s") ("gedit" . "gedit +%(line)s %(file)s") ("jedit" . "jedit -reuseview %(file)s +line:%(line)s") ("syn" . "syn -line %(line)s -col %(char)s %(file)s") - ("lilypad" . "lilypad +%(line)s:%(char)s %(file)s"))) + ("lilypad" . ,(if (eq? PLATFORM 'windows) + "start lilypad +%(line)s:%(char)s %(file)s" + "lilypad +%(line)s:%(char)s %(file)s"))))/ ArnoldTheresius -- View this message in context: http://lilypond.1069038.n5.nabble.com/Point-and-Click-does-not-work-on-Windows-tp115986p144562.html Sent from the Dev mailing list archive at Nabble.com. _______________________________________________ lilypond-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-devel
