;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 1998--2014 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; Copyright (C) 1998--2015 Jan Nieuwenhuizen <janneke@gnu.org>
;;;; Han-Wen Nienhuys <hanwen@xs4all.nl>
;;;;
;;;; LilyPond is free software: you can redistribute it and/or modify
(define-public PLATFORM
(string->symbol
(string-downcase
- (car (string-tokenize (utsname:sysname (uname)))))))
+ (car (string-tokenize (utsname:sysname (uname)) char-set:letter)))))
+
+;; We don't use (srfi srfi-39) (parameter objects) here because that
+;; does not give us a name/handle to the underlying fluids themselves.
+
+(define %parser (make-fluid))
+(define %location (make-fluid))
+;; No public setters: should not get overwritten in action
+(define-public (*parser*) (fluid-ref %parser))
+(define-public (*location*) (fluid-ref %location))
+;; but properly scoped location should be fine
+(defmacro-public with-location (loc . body)
+ `(with-fluids ((,%location ,loc)) ,@body))
+
+;; It would be nice to convert occurences of parser/location to
+;; (*parser*)/(*location*) using the syncase module but it is utterly
+;; broken in GUILE 1 and would require changing a lot of unrelated
+;; innocuous constructs which just happen to fall apart with
+;; inscrutable error messages.
;;
;; Session-handling variables and procedures.
(and (eq? PLATFORM 'windows)
(> file-name-length 2)
(eq? (string-ref file-name 1) #\:)
- (eq? (string-ref file-name 2) #\/))))))
+ (or (eq? (string-ref file-name 2) #\\)
+ (eq? (string-ref file-name 2) #\/)))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; If necessary, emulate Guile V2 module_export_all! for Guile V1.8.n
"part-combiner.scm"
"autochange.scm"
"define-music-properties.scm"
+ "time-signature.scm"
"time-signature-settings.scm"
"auto-beam.scm"
"chord-name.scm"
"bezier-tools.scm"
- "ly-syntax-constructors.scm"
"define-context-properties.scm"
"translation-functions.scm"
(,ly:pitch? . "pitch")
(,ly:prob? . "property object")
(,ly:score? . "score")
- (,ly:simple-closure? . "simple closure")
(,ly:skyline? . "skyline")
(,ly:skyline-pair? . "pair of skylines")
(,ly:source-file? . "source file")