[gsharp-cvs] CVS update: gsharp/sdl.lisp

Christophe Rhodes crhodes at common-lisp.net
Mon Feb 16 18:50:20 UTC 2004


Update of /project/gsharp/cvsroot/gsharp
In directory common-lisp.net:/tmp/cvs-serv11405

Modified Files:
	sdl.lisp 
Log Message:
add *FONTS-DIRECTORY* to allow running GSharp when not in the gsharp
directory; essentially, we address the path relative to the path of
sdl.lisp or sdl.fasl (note: may break if this is subjected to Debian's
common-lisp-controller)

One remaining LOOP BY -1 that slipped through the net

Date: Mon Feb 16 13:50:20 2004
Author: crhodes

Index: gsharp/sdl.lisp
diff -u gsharp/sdl.lisp:1.1.1.1 gsharp/sdl.lisp:1.2
--- gsharp/sdl.lisp:1.1.1.1	Mon Feb 16 10:46:21 2004
+++ gsharp/sdl.lisp	Mon Feb 16 13:50:20 2004
@@ -1,5 +1,9 @@
 (in-package :sdl)
 
+(defvar *fonts-directory*
+  (merge-pathnames (make-pathname :directory '(relative "Fonts"))
+		   (make-pathname :directory (pathname-directory *load-truename*))))
+
 (defgeneric glyph (font glyph-no))
 (defgeneric glyph-offsets (font glyph-no))
 (defgeneric staff-line-distance (font))
@@ -113,7 +117,7 @@
 					:element-type '(unsigned-byte 8)
 					:initial-element 16))
 	(loop for r from 0 below (car (array-dimensions matrix))
-	      for y from (gf-char-max-n gf-char) by -1 do
+	      for y downfrom (gf-char-max-n gf-char) by 1 do
 	      (loop for c from 0 below (cadr (array-dimensions matrix))
 		    for x from (gf-char-min-m gf-char) do
 		    (decf (aref pixmap
@@ -159,7 +163,9 @@
     (- notehead-right-x-offset notehead-left-x-offset)))
 
 (defun load-font (staff-line-distance)
-  (let* ((gf-font (parse-gf-file (format nil "Fonts/sdl~a.gf" staff-line-distance)))
+  (let* ((gf-font (parse-gf-file (merge-pathnames
+				  (format nil "sdl~a.gf" staff-line-distance)
+				  *fonts-directory*)))
 	 (maxchar (reduce #'max (gf-font-chars gf-font) :key #'gf-char-no))
 	 (glyphs (make-array (list (1+ maxchar)) :initial-element nil)))
     (loop for char in (gf-font-chars gf-font) do





More information about the Gsharp-cvs mailing list